/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (function() { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_bought_notification_on_product.js":
/*!*********************************************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_bought_notification_on_product.js ***!
  \*********************************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMoreBoughtPopup: function() { return /* binding */ PixelioCartAbandonRecoveryMoreBoughtPopup; }\n/* harmony export */ });\n/* harmony import */ var _frontend_assets_js_components_pixelio_cart_abandon_recovery_more_ajax_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request */ \"./frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request.js\");\n/* harmony import */ var _frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\n/* harmony import */ var _pixelio_cart_abandon_recovery_more_exit_intent_popup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pixelio_cart_abandon_recovery_more_exit_intent_popup */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_exit_intent_popup.js\");\n\n\n\nclass PixelioCartAbandonRecoveryMoreBoughtPopup extends _pixelio_cart_abandon_recovery_more_exit_intent_popup__WEBPACK_IMPORTED_MODULE_2__.PixelioCartAbandonRecoveryMorePopUp {\n  constructor(className, onShowCallback = null, onHideCallback = null, isFrontend = false, positiveCallback = null) {\n    super(className, onShowCallback, onHideCallback, isFrontend, positiveCallback, false, false);\n    this.popupId = \"#pixelio-cart-abandon-recovery-more-bought-message-popup-id\";\n    jQuery(this.popupId).addClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    this.ajaxRequest = new _frontend_assets_js_components_pixelio_cart_abandon_recovery_more_ajax_request__WEBPACK_IMPORTED_MODULE_0__.PixelioCartAbandonRecoveryMoreAjaxRequest();\n    this.initFrontend(isFrontend);\n  }\n  initFrontend(isFrontend) {\n    if (!isFrontend) return;\n    this.loadBoughtPopup();\n    if (pixelio_ajax.show_bought_popup) {\n      // Refresh every 30s\n      setInterval(this.loadBoughtPopup.bind(this), 30000);\n    }\n  }\n  loadBoughtPopup() {\n    const data = new FormData();\n    const productId = this.ajaxRequest.getMetaContentByName(\"pixelio-product-id\");\n    data.append(\"product_id\", productId);\n    this.ajaxRequest.makeAjaxRequest(\"pixelio_cart_abandon_recovery_more_check_bought\", data, this.updatePopupContent.bind(this));\n  }\n  updatePopupContent(response) {\n    let resp = [];\n    try {\n      resp = JSON.parse(response.data);\n    } catch (e) {\n      console.error(\"Error parsing response.data:\", e);\n      return;\n    }\n    if (!resp || resp.length === 0) return;\n    const now = Date.now();\n\n    // Récupérer ce qui est déjà vu dans le localStorage\n    let alreadySeen = {};\n    try {\n      const stored = localStorage.getItem(\"alreadySeen\");\n      if (stored) {\n        alreadySeen = JSON.parse(stored);\n      }\n    } catch (e) {\n      console.error(\"Error parsing 'alreadySeen' from localStorage:\", e);\n      alreadySeen = {};\n    }\n    resp.forEach(item => {\n      // Générer une clé unique pour cet item\n      const cleaned = String(item.min).replace(/\\D/g, '');\n      const key = `${item.customer_name}${item.customer_location}${item.product_id}${cleaned}`;\n\n      // Si l’élément n’a pas déjà été vu\n      if (!alreadySeen[key]) {\n        // Stocker avec timestamp\n        alreadySeen[key] = now;\n        localStorage.setItem(\"alreadySeen\", JSON.stringify(alreadySeen));\n        const $popup = jQuery(this.popupId);\n        $popup.removeClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n\n        // Mettre à jour le contenu du popup\n        $popup.find('.rivio-ai-cart-recovery-marketing-email-automation-bought-message-product-image').attr('src', item.product_image);\n        $popup.find('.rivio-ai-cart-recovery-marketing-email-automation-bought-product-title').text(item.product_name);\n        $popup.find('.rivio-ai-cart-recovery-marketing-email-automation-bought-message-product-description span').text(`${item.customer_name} in ${item.customer_location}`);\n        $popup.find('.rivio-ai-cart-recovery-marketing-email-automation-bought-message-product-timestamp span').text(item.min);\n        $popup.addClass(\"pixelio-cart-abandon-recovery-more-show-others-buy-checkbox-animation\");\n      }\n    });\n    setTimeout(this.stopBought.bind(this), 10000);\n  }\n  stopBought() {\n    const $popup = jQuery(this.popupId);\n    $popup.removeClass(\"pixelio-cart-abandon-recovery-more-show-others-buy-checkbox-animation\");\n    $popup.addClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_bought_notification_on_product.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_color_pickr.js":
/*!**************************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_color_pickr.js ***!
  \**************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMoreColorPickers: function() { return /* binding */ PixelioCartAbandonRecoveryMoreColorPickers; }\n/* harmony export */ });\n/* harmony import */ var _libs_color_pickr_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../libs/color_pickr.min */ \"./admin/assets/js/libs/color_pickr.min.js\");\n/* harmony import */ var _libs_color_pickr_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_libs_color_pickr_min__WEBPACK_IMPORTED_MODULE_0__);\n\nclass PixelioCartAbandonRecoveryMoreColorPickers {\n  constructor() {}\n\n  /**\r\n   * Create multiple color pickers\r\n   * @param {Array} data - array of color picker configs\r\n   */\n  pixelioCartAbandonRecoveryMoreCreateColor(data) {\n    this.allColorPickers = data;\n    this.allColorPickers.forEach(picker => {\n      const elements = jQuery(picker.className);\n      elements.each((_, element) => {\n        this.pixelioCartAbandonRecoveryMoreCreateTimerTextColorPickr(element, picker.selectors, picker.callback, picker.inputSelector);\n      });\n    });\n  }\n\n  /**\r\n   * Create single Pickr color picker instance\r\n   * @param {HTMLElement} element\r\n   * @param {String|null} selectors\r\n   * @param {Function|null} callback\r\n   * @param {String|null} inputSelector\r\n   */\n  pixelioCartAbandonRecoveryMoreCreateTimerTextColorPickr(element, selectors, callback = null, inputSelector = null) {\n    const pickr = _libs_color_pickr_min__WEBPACK_IMPORTED_MODULE_0___default().create({\n      el: element,\n      useAsButton: true,\n      theme: 'nano',\n      swatches: ['rgba(244, 67, 54, 1)', 'rgba(233, 30, 99, 0.95)', 'rgba(156, 39, 176, 0.9)', 'rgba(103, 58, 183, 0.85)', 'rgba(63, 81, 181, 0.8)', 'rgba(33, 150, 243, 0.75)', 'rgba(3, 169, 244, 0.7)', 'rgba(0, 188, 212, 0.7)', 'rgba(0, 150, 136, 0.75)', 'rgba(76, 175, 80, 0.8)', 'rgba(139, 195, 74, 0.85)', 'rgba(205, 220, 57, 0.9)', 'rgba(255, 235, 59, 0.95)', 'rgba(255, 193, 7, 1)'],\n      components: {\n        preview: true,\n        opacity: true,\n        hue: true,\n        interaction: {\n          hex: true,\n          rgba: true,\n          hsla: true,\n          hsva: true,\n          cmyk: true,\n          input: true,\n          clear: true,\n          save: true\n        }\n      },\n      autoReposition: true\n    });\n    pickr.on('save', color => {\n      if (callback) {\n        callback(element, pickr.getSelectedColor().toRGBA().toString(0), selectors, inputSelector);\n      }\n      pickr.hide();\n    });\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_color_pickr.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_exit_intent_popup.js":
/*!********************************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_exit_intent_popup.js ***!
  \********************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMorePopUp: function() { return /* binding */ PixelioCartAbandonRecoveryMorePopUp; }\n/* harmony export */ });\n/* harmony import */ var _pixelio_cart_abandon_recovery_more_color_pickr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pixelio_cart_abandon_recovery_more_color_pickr */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_color_pickr.js\");\n/* harmony import */ var _pixelio_cart_abandon_recovery_more_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pixelio_cart_abandon_recovery_more_timer */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_timer.js\");\n/* harmony import */ var _frontend_assets_js_components_pixelio_cart_abandon_recovery_more_ajax_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request */ \"./frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request.js\");\n\n\n\nconst {\n  PIXELIOCARTABANDONRECOVERYMOREEDITCONTAINERCLASS,\n  PIXELIOCARTABANDONRECOVERYMOREHIDEIT,\n  PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS\n} = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\nclass PixelioCartAbandonRecoveryMorePopUp extends _pixelio_cart_abandon_recovery_more_color_pickr__WEBPACK_IMPORTED_MODULE_0__.PixelioCartAbandonRecoveryMoreColorPickers {\n  constructor(className, onShowCallback = null, onHideCallback = null, isFrontend = false, positiveClickCallback = null, startTimer = true, demo = false) {\n    super();\n    if (pixelio_ajax.isCheckoutOrCart && !demo) {\n      return;\n    }\n    this.className = className;\n    this.demo = demo;\n    this.onHideCallback = onHideCallback;\n    this.onShowCallback = onShowCallback;\n    this.positiveClickCallback = positiveClickCallback;\n    this.startTimer = startTimer;\n    this.ajaxRequest = new _frontend_assets_js_components_pixelio_cart_abandon_recovery_more_ajax_request__WEBPACK_IMPORTED_MODULE_2__.PixelioCartAbandonRecoveryMoreAjaxRequest();\n    this.yesButtonSelector = \".pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-yes-button-state \";\n    this.inactivityTimeout = null;\n    this.#pixelioCartAbandonRecoveryMoreCreateColorInit();\n    this.#pixelioCartAbandonRecoveryMoreInitElements();\n    this.pixelioCartAbandonRecoveryMoreInitTimer(startTimer);\n    this.#pixelioCartAbandonRecoveryMoreCloseIconClick();\n    this.#pixelioCartAbandonRecoveryMoreInitColor();\n    this.#pixelioCartAbandonRecoveryMoreDisableBackgroundOfPreview();\n    this.pixelioCartAbandonRecoveryMoreInitEvent();\n    this.pixelioCartAbandonRecoveryMoreInitFrontendCall(isFrontend);\n    if (this.demo) this.pixelioCartAbandonRecoveryMoreShow();\n    this.exitIntentedPopupActionInit();\n  }\n  trackPage(page) {\n    let pages = JSON.parse(localStorage.getItem(this.PAGES_KEY)) || [];\n    if (pages[pages.length - 1] !== page) {\n      pages.push(page);\n    }\n    if (pages.length > 50) pages.shift();\n    localStorage.setItem(this.PAGES_KEY, JSON.stringify(pages));\n    this.calculateExitScore(pages);\n  }\n  calculateExitScore(pages) {\n    let uniquePages = [...new Set(pages)];\n    let score = uniquePages.length; // +1 par page unique\n\n    // bonus si panier / checkout visité\n    if (pages.includes('cart') || pages.includes('checkout')) score += 2;\n\n    // pages répétées\n    let repeats = pages.length - uniquePages.length;\n    if (repeats > 2) score += 1;\n\n    // seuil pour déclencher popup\n    if (score >= 5) this.pixelioCartAbandonRecoveryMoreShow();\n  }\n  resetInactivity() {\n    var self = this;\n    clearTimeout(this.inactivityTimeout);\n    this.inactivityTimeout = setTimeout(() => {\n      self.pixelioCartAbandonRecoveryMoreShow();\n    }, 15000); // 15s\n  }\n  exitIntentedPopupActionInit() {\n    if (pixelio_ajax && pixelio_ajax.exit_popup && this.className && this.className.includes(\"exit\") && !window.location.href.includes(\"admin\")) {\n      this.currentPage = history.state && history.state.page ? history.state.page : 'home';\n      //this.trackPage(this.currentPage);\n      if (history.state && history.state.page) {\n        //this.trackPage(history.state.page);\n      }\n      if (!history.state || history.length <= 1) {\n        const popupState = {\n          page: 'pixelio-popup'\n        };\n        history.replaceState(popupState, '', location.href);\n        history.pushState({\n          page: this.currentPage\n        }, '', location.href);\n      }\n      this.pixelioCartAbandonRecoveryMoreInitScrollPercent();\n      const isMobile = /Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent);\n      let lastY = window.scrollY;\n      jQuery(window).on(\"scroll.pixelioExitScroll\", function () {\n        if (lastY - window.scrollY > 50) {\n          if (isMobile) {\n            self.pixelioCartAbandonRecoveryMoreShow();\n          }\n        }\n        lastY = window.scrollY;\n      });\n      jQuery(document).on('touchstart.pixelio scroll.pixelioExitScroll', this.resetInactivity);\n      this.resetInactivity();\n      history.pushState({\n        page: \"stay\"\n      }, \"\", window.location.href);\n      document.addEventListener(\"visibilitychange\", function () {\n        if (document.visibilityState === \"hidden\") {\n          self.pixelioCartAbandonRecoveryMoreShow();\n        }\n      });\n      const self = this;\n      jQuery(window).on('popstate.pixelio', function (event) {\n        const original = event.originalEvent;\n        if (original && original.state && original.state.page === \"stay\") {\n          self.trackPage(original.state.page);\n        }\n      });\n      document.addEventListener(\"mouseleave\", e => {\n        if (e.clientY <= 0) {\n          self.pixelioCartAbandonRecoveryMoreShow();\n        }\n      });\n      jQuery(document).on('click', '.pixelio-cart-abandon-recovery-more-copy-coupon-btn', function (e) {\n        e.preventDefault();\n        const $couponEl = jQuery('.pixelio-cart-abandon-recovery-more-coupon-code-text').first();\n        if (!$couponEl.length) {\n          alert('Coupon code not found.');\n          return;\n        }\n        const couponCode = jQuery.trim($couponEl.text());\n        if (!couponCode) {\n          alert('Coupon code is empty.');\n          return;\n        }\n        const $temp = jQuery('<textarea>');\n        jQuery('body').append($temp);\n        $temp.val(couponCode).select();\n        document.execCommand('copy');\n        $temp.remove();\n\n        // Feedback utilisateur\n        alert('Coupon code copied: ' + couponCode);\n        self.pixelioCartAbandonRecoveryMoreHidePopup();\n      });\n    }\n  }\n  pixelioCartAbandonRecoveryMoreInitTimer(startTimer) {\n    this.timer = new _pixelio_cart_abandon_recovery_more_timer__WEBPACK_IMPORTED_MODULE_1__.PixelioCartAbandonRecoveryMoreTimer();\n    if (startTimer) {\n      this.timer.pixelioCartAbandonRecoveryMoreStartTimer(this.pixelioCartAbandonRecoveryMoreUpdateTimeInPopup.bind(this), this.pixelioCartAbandonRecoveryMoreHidePopup.bind(this), this.className);\n    }\n  }\n  pixelioCartAbandonRecoveryMoreInitScrollPercent() {\n    const self = this;\n    jQuery(window).off('scroll.pixelioScrollPercent').on('scroll.pixelioScrollPercent', function () {\n      const scrollPercent = window.scrollY / (document.body.scrollHeight - window.innerHeight);\n      if (scrollPercent > 0.5) {\n        if (!window.location.href.includes(\"admin\") && self.className.includes(\"-recovery-more-preview-container-exit-popup\")) {\n          self.pixelioCartAbandonRecoveryMoreShow();\n        }\n      }\n    });\n  }\n  pixelioCartAbandonRecoveryMoreInitFrontendCall(isFrontend) {\n    if (isFrontend) {\n      this.#pixelioCartAbandonRecoveryMorePopupClick();\n    }\n  }\n  pixelioCartAbandonRecoveryMoreInitEvent() {\n    const $button = jQuery(`${PIXELIOCARTABANDONRECOVERYMOREEDITCONTAINERCLASS} ${PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS}`);\n    if ($button.length) {\n      $button.on('click.pixelio mouseenter.pixelio', this.#pixelioCartAbandonRecoveryMoreEditButtonHover.bind(this));\n    }\n  }\n  pixelioCartAbandonRecoveryMoreDisabledAllButton() {\n    const $buttons = jQuery(\".pixelio-cart-abandon-recovery-more-pop-up-container\");\n    if ($buttons.length) {\n      $buttons.each(function () {\n        jQuery(this).on('click.pixelioDisabled', function (e) {\n          e.preventDefault();\n        });\n      });\n    }\n  }\n  #pixelioCartAbandonRecoveryMoreInitElements() {\n    this.colorProperty = \"color\";\n    this.backgroundProperty = \"background-color\";\n    this.borderProperty = \"border-color\";\n    this.popupYesThanksButtonOnHover = \"pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-hover-color\";\n    this.popupHeaderClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-header\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-header-background-color\"\n    };\n    this.popupNoThanksButtonClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup-text-color\"\n    };\n    this.popupHeaderTitleCTAClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-action\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-action-text-color\"\n    };\n    this.popupHeaderTitleClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-header-title\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-text-color\"\n    };\n    this.popupBodyTimerContentClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-timer-content\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-timer-content-text-color\"\n    };\n    this.popupYesButtonClass = {\n      className: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-background-color\",\n      child2: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-text-color\"\n    };\n    this.copyButtonClass = {\n      className: \".pixelio-cart-abandon-recovery-more-copy-coupon-btn\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-background-color\",\n      child2: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-text-color\"\n    };\n    this.cartTimerDescriptionClass = {\n      className: \".pixelio-cart-abandon-recovery-more-cart-timer-description\",\n      child2: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-text-color\"\n    };\n    this.popupNewsletterButtonClass = {\n      className: \".pixelio-cart-abandon-recovery-more-newsletters-submit\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-background-color\",\n      child2: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-text-color\"\n    };\n    this.cartTimer = {\n      className: \".pixelio-cart-abandon-recovery-more-cart-timer\",\n      child: \".pixelio-cart-abandon-recovery-more-pop-up-header-background-color\"\n    };\n    this.elements = [{\n      all: this.popupHeaderTitleCTAClass.className,\n      selectors: this.popupHeaderTitleCTAClass.child,\n      property: this.colorProperty\n    }, {\n      all: this.popupHeaderTitleClass.className,\n      selectors: this.popupHeaderTitleClass.child,\n      property: this.colorProperty\n    }, {\n      all: this.popupNoThanksButtonClass.className,\n      selectors: this.popupNoThanksButtonClass.child,\n      property: this.colorProperty\n    }, {\n      all: this.popupBodyTimerContentClass.className,\n      selectors: this.popupBodyTimerContentClass.child,\n      property: this.colorProperty\n    }, {\n      all: this.popupHeaderClass.className,\n      selectors: this.popupHeaderClass.child,\n      property: this.backgroundProperty\n    }, {\n      all: this.popupYesButtonClass.className,\n      selectors: this.popupYesButtonClass.child,\n      property: this.backgroundProperty\n    }, {\n      all: this.popupYesButtonClass.className,\n      selectors: this.popupYesButtonClass.child,\n      property: this.borderProperty\n    }, {\n      all: this.popupYesButtonClass.className,\n      selectors: this.popupYesButtonClass.child2,\n      property: this.colorProperty\n    }, {\n      all: this.copyButtonClass.className,\n      selectors: this.copyButtonClass.child,\n      property: this.backgroundProperty\n    }, {\n      all: this.cartTimer.className,\n      selectors: this.cartTimer.child,\n      property: this.backgroundProperty\n    }, {\n      all: this.cartTimerDescriptionClass.className,\n      selectors: this.cartTimerDescriptionClass.child,\n      property: this.colorProperty\n    }, {\n      all: this.copyButtonClass.className,\n      selectors: this.copyButtonClass.child2,\n      property: this.colorProperty\n    }, {\n      all: this.popupNewsletterButtonClass.className,\n      selectors: this.popupNewsletterButtonClass.child,\n      property: this.backgroundProperty\n    }, {\n      all: this.popupNewsletterButtonClass.className,\n      selectors: this.popupNewsletterButtonClass.child,\n      property: this.borderProperty\n    }, {\n      all: this.popupNewsletterButtonClass.className,\n      selectors: this.popupNewsletterButtonClass.child2,\n      property: this.colorProperty\n    }];\n  }\n  #pixelioCartAbandonRecoveryMoreCreateColorInit() {\n    this.pixelioCartAbandonRecoveryMoreCreateColor([{\n      className: '.pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-header',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-header\",\n      callback: this.pixelioCartAbandonRecoveryMoreBackgroundSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-header-background-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-header-title',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-header-title\",\n      callback: this.pixelioCartAbandonRecoveryMoreTextSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-text-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-header-title-action',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-action\",\n      callback: this.pixelioCartAbandonRecoveryMoreTextSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-header-title-action-text-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup',\n      selectors: '.pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup',\n      callback: this.pixelioCartAbandonRecoveryMoreTextSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup-text-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-edit-container .pixelio-cart-abandon-recovery-more-pop-up-timer-content',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-timer-content\",\n      callback: this.pixelioCartAbandonRecoveryMoreTextSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-timer-content-text-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-popup-yes-background',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup\",\n      callback: this.pixelioCartAbandonRecoveryMoreBackgroundSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-background-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-popup-yes-text',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup\",\n      callback: this.pixelioCartAbandonRecoveryMoreTextSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup-text-color\"\n    }, {\n      className: '.pixelio-cart-abandon-recovery-more-popup-yes-hover',\n      selectors: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup\",\n      callback: this.pixelioCartAbandonRecoveryMoreHoverSave.bind(this),\n      inputSelector: \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-hover-color\"\n    }]);\n  }\n  #pixelioCartAbandonRecoveryMorePopupClick() {\n    const self = this;\n    const $noThanks = jQuery(\".pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup\");\n    if ($noThanks.length) {\n      $noThanks.on('click.pixelioNoThanks', function () {\n        self.#pixelioCartAbandonRecoveryMoreClose();\n        localStorage.setItem(\"exit_popup\" + self.className, 1);\n      });\n    }\n    jQuery(PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS).off('click.pixelioThanks').on('click.pixelioThanks', function (e) {\n      e.preventDefault();\n      const data = new FormData();\n      const $rgpdCheckbox = jQuery('input[type=\"checkbox\"][name=\"pixelio-abandon-recovery-more-rgpd\"], ' + 'input[type=\"checkbox\"][name=\"pixelio-cart-abandon-recovery-more-pop-up-rgpd\"]');\n      const isRgpdActive = Boolean(Number(pixelio_ajax.isRgpdActive));\n      const rgpdChecked = $rgpdCheckbox.length > 0 ? $rgpdCheckbox.is(':checked') : false;\n      const rgpdDefinition = $rgpdCheckbox.length > 0 ? $rgpdCheckbox.closest('label').text().trim() : '';\n      if (isRgpdActive && $rgpdCheckbox.length > 0 && !rgpdChecked) {\n        alert(pixelio_ajax.missing_rgpd);\n        return;\n      }\n      const email = jQuery('#pixelio-cart-abandon-recovery-more-email').val();\n      if (!email) {\n        return;\n      }\n      if (isRgpdActive && $rgpdCheckbox.length > 0) {\n        data.append('pixelio-cart-abandon-recovery-more-pop-up-rgpd', rgpdChecked ? '1' : '0');\n        data.append('pixelio-cart-abandon-recovery-more-pop-up-rgpd-label', rgpdDefinition);\n      }\n      data.append('utm_source', localStorage.getItem('pixelio_utm_source') || '');\n      data.append('utm_campaign', localStorage.getItem('pixelio_utm_campaign') || '');\n      data.append('utm_content', localStorage.getItem('pixelio_utm_content') || '');\n      data.append('pixelio-cart-abandon-recovery-more-pop-up-email', email);\n      self.ajaxRequest.makeAjaxRequest(\"pixelio_cart_abandon_recovery_more_create_temporary_coupon\", data, function (response) {\n        if (response.success) {\n          localStorage.setItem(\"exit_popup\" + self.className, 1);\n          localStorage.setItem(\"pixelio_email\", 1);\n          jQuery(\".coupon-container\").removeClass(\"pixelio-cart-abandon-recovery-more-hide-it\");\n          const couponContainer = jQuery('.pixelio-cart-abandon-recovery-more-hide-div-if-form-showed');\n          couponContainer.removeClass('pixelio-cart-abandon-recovery-more-hide-it');\n          jQuery(PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS).parent().addClass('pixelio-cart-abandon-recovery-more-hide-it');\n          jQuery(\".pixelio-cart-abandon-recovery-more-pop-up-no-thanks-exit-popup\").addClass('pixelio-cart-abandon-recovery-more-hide-it');\n          jQuery(\".pixelio-cart-abandon-recovery-more-coupon-code-text\").text(response.data.coupon_code);\n          if (self.positiveClickCallback != null) {\n            self.positiveClickCallback();\n          }\n        } else {\n          console.warn(\"Server returned an error:\", response.data);\n        }\n      }, function (response) {\n        alert(response.data.message);\n      });\n    });\n  }\n  pixelioCartAbandonRecoveryMoreBackgroundSave(element, color, selectors = null, inputSelector = null) {\n    if (selectors != null) {\n      const $els = jQuery(selectors);\n      if ($els.length) {\n        $els.each(function () {\n          jQuery(this).css({\n            'background-color': color,\n            'border-color': color\n          });\n        });\n      }\n    } else if (element) {\n      jQuery(element).css({\n        'background-color': color,\n        'border-color': color\n      });\n    }\n    this.pixelioCartAbandonRecoveryMoreSetValue(inputSelector, color);\n  }\n  pixelioCartAbandonRecoveryMoreSetValue(inputSelector, color) {\n    if (inputSelector != null) {\n      const $inputs = jQuery(inputSelector);\n      if ($inputs.length) {\n        $inputs.each(function () {\n          jQuery(this).val(color);\n        });\n      }\n    }\n  }\n  pixelioCartAbandonRecoveryMoreHoverSave(element, color, selectors = null, inputSelector = null) {\n    this.pixelioCartAbandonRecoveryMoreAddOrRemoveClass(selectors, element, false);\n    this.#pixelioCartAbandonRecoveryMoreCreateDynamicStyle();\n    this.pixelioCartAbandonRecoveryMoreAddOrRemoveClass(selectors, element, true);\n    this.pixelioCartAbandonRecoveryMoreSetValue(inputSelector, color);\n  }\n  pixelioCartAbandonRecoveryMoreAddOrRemoveClass(selectors, element, add = true) {\n    if (selectors != null && jQuery(selectors).length) {\n      jQuery(selectors).each(function () {\n        if (add) {\n          jQuery(this).addClass(this.uniqueClass);\n        } else {\n          jQuery(this).removeClass(this.uniqueClass);\n        }\n      }.bind(this));\n    } else if (element) {\n      if (add) {\n        jQuery(element).addClass(this.uniqueClass);\n      } else {\n        jQuery(element).removeClass(this.uniqueClass);\n      }\n    }\n  }\n  pixelioCartAbandonRecoveryMoreTextSave(element, color, selectors = null, inputSelector = null) {\n    if (selectors != null) {\n      const $els = jQuery(selectors);\n      if ($els.length) {\n        jQuery($els).each(function () {\n          this.style.setProperty('color', color, 'important');\n        });\n      }\n    } else if (element) {\n      this.style.setProperty('color', color, 'important');\n    }\n    this.pixelioCartAbandonRecoveryMoreSetValue(inputSelector, color);\n  }\n  #pixelioCartAbandonRecoveryMoreEditButtonHover() {\n    const yesButtonSelector = this.yesButtonSelector;\n    const $yes = jQuery(this.yesButtonSelector);\n    if ($yes.length) {\n      $yes.removeClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    }\n    const self = this;\n    const intervalButtonState = setInterval(function () {\n      clearInterval(intervalButtonState);\n      const $yb = jQuery(yesButtonSelector);\n      if ($yb.length) {\n        $yb.addClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n      }\n    }, 10000);\n  }\n  pixelioCartAbandonRecoveryMoreShow() {\n    const $popup = jQuery(this.className);\n    if ($popup.length && (localStorage.getItem('exit_popup' + this.className) === null && localStorage.getItem(\"pixelio_email\") == null || this.demo || (this.className.includes(\"preview\") || this.className.includes(\"edit\")) && window.location.href.includes(\"admin\"))) {\n      $popup.removeClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    }\n    if (this.startTimer) {\n      this.timer.pixelioCartAbandonRecoveryMoreStartTimer(this.pixelioCartAbandonRecoveryMoreUpdateTimeInPopup.bind(this), this.pixelioCartAbandonRecoveryMoreHidePopup.bind(this), this.className);\n    }\n    if (this.onShowCallback) this.onShowCallback();\n  }\n  #pixelioCartAbandonRecoveryMoreCreateDynamicStyle() {\n    this.uniqueClass = 'dynamic-hover-' + Math.floor(Math.random() * 10000);\n    const hoverValue = jQuery(`.${this.popupYesThanksButtonOnHover}`).val() || '';\n    const newHoverRule = `\n\t\t\t.${this.uniqueClass}:hover {\n\t\t\t\tbackground-color: ${hoverValue} !important;\n\t\t\t\tborder-color: ${hoverValue} !important;\n\t\t\t}\n\t\t`;\n    const $style = jQuery('<style type=\"text/css\"></style>').text(newHoverRule);\n    jQuery('head').append($style);\n  }\n  pixelioCartAbandonRecoveryMoreHidePopup() {\n    jQuery(this.className).addClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    localStorage.setItem('remaining' + this.className, -1);\n    localStorage.setItem('exit_popup' + this.className, 1);\n  }\n  #pixelioCartAbandonRecoveryMoreDisableBackgroundOfPreview() {\n    const self = this;\n    const $disabledBackgrounds = jQuery('.pixelio-cart-abandon-recovery-more-disabled-background');\n    if ($disabledBackgrounds.length) {\n      $disabledBackgrounds.each(function () {\n        jQuery(this).on('click.pixelioDisableBg', function (event) {\n          event.preventDefault();\n          jQuery(this).parent().addClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n          if (self.onHideCallback) {\n            self.onHideCallback();\n          }\n        });\n      });\n    }\n  }\n  pixelioCartAbandonRecoveryMoreUpdateTimeInPopup() {\n    const $timerContent = jQuery(`${this.className} .pixelio-cart-abandon-recovery-more-pop-up-timer-content`);\n    if ($timerContent.length) {\n      this.timer.pixelioCartAbandonRecoveryMoreUpdateTimerContent($timerContent.toArray());\n    }\n  }\n  #pixelioCartAbandonRecoveryMoreClose() {\n    if (this.timer && typeof this.timer.pixelioCartAbandonRecoveryMoreClearTimer === 'function') {\n      this.timer.pixelioCartAbandonRecoveryMoreClearTimer();\n    }\n    jQuery(this.className).each(function () {\n      jQuery(this).addClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    });\n    if (window.location.href.includes(\"admin\")) {\n      const $saveBtn = jQuery(\"#pixelio-cart-abandon-recovery-more-save-button\");\n      if ($saveBtn.length) {\n        $saveBtn.removeClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n      }\n    }\n    const $byId = jQuery(`${this.className}`);\n    if ($byId.length) {\n      $byId.addClass(PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n    }\n  }\n  #pixelioCartAbandonRecoveryMoreCloseIconClick() {\n    const self = this;\n    jQuery(\".pixelio-cart-abandon-recovery-more-pop-up-close\").each(function () {\n      jQuery(this).on(\"click.pixelio-cart-abandon-recovery-more-close\", function () {\n        localStorage.setItem('exit_popup' + self.className, 1);\n        self.#pixelioCartAbandonRecoveryMoreClose();\n        localStorage.setItem(\"consent_refused\" + self.className, 0);\n      });\n    });\n  }\n  #pixelioCartAbandonRecoveryMoreSetPopUpProperty(selectors, property, e) {\n    const $sel = jQuery(selectors);\n    if ($sel.length && $sel.val() !== \"\" && e) {\n      // jQuery sur DOM element sûr\n      jQuery(e).css(property, $sel.val());\n    }\n  }\n  #pixelioCartAbandonRecoveryMoreAddClassToElement(selectors, uniqueClass, e) {\n    const $sel = jQuery(selectors);\n    if ($sel.length && $sel.val() !== \"\") {\n      this.#pixelioCartAbandonRecoveryMoreCreateDynamicStyle();\n      jQuery(e).addClass(uniqueClass);\n    }\n  }\n  #pixelioCartAbandonRecoveryMoreInitColor() {\n    const self = this;\n    this.elements.forEach(function (element) {\n      const $all = jQuery(element.all);\n      if ($all.length) {\n        $all.each(function () {\n          const e = this;\n          if (element.all === self.popupNewsletterButtonClass.className || element.all === self.popupYesButtonClass.className) {\n            self.#pixelioCartAbandonRecoveryMoreAddClassToElement(self.popupYesThanksButtonOnHover, self.uniqueClass, e);\n          }\n          self.#pixelioCartAbandonRecoveryMoreSetPopUpProperty(element.selectors, element.property, e);\n        });\n      }\n    });\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_exit_intent_popup.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider.js":
/*!****************************************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider.js ***!
  \****************************************************************************************************/
/***/ (function() {

eval("jQuery(function ($) {\n  const checkbox = $('.pixelio-cart-abandon-recovery-more-opt-in-checkbox-with-name');\n  checkbox.on('change', function () {\n    change_label($(this));\n    addButtonsClick($(this));\n  });\n  function change_label(input) {\n    var wrapper = input.closest('.pixelio-cart-abandon-recovery-more-input-wrapper');\n    if (wrapper.length === 0) {\n      wrapper = input.closest('.pixelio-cart-abandon-recovery-more-opt-in-checkbox-container');\n    }\n    const label_yes = wrapper.find('.pixelio-cart-abandon-recovery-more-checkbox-yes');\n    const label_no = wrapper.find('.pixelio-cart-abandon-recovery-more-checkbox-no');\n    const onShow = input.data('onshow');\n    const target = $('.pixelio-cart-abandon-recovery-more-opt-in-checkbox-' + onShow);\n    const dependency = target.closest('.pixelio-cart-abandon-recovery-more-all-input-dependency');\n    if (input.is(':checked')) {\n      dependency.removeClass('pixelio-cart-abandon-recovery-more-hide-it');\n      label_yes.removeClass('pixelio-cart-abandon-recovery-more-hide-it');\n      label_no.addClass('pixelio-cart-abandon-recovery-more-hide-it');\n    } else {\n      dependency.addClass('pixelio-cart-abandon-recovery-more-hide-it');\n      if (target.is(':checked')) {\n        target.closest('.pixelio-cart-abandon-recovery-more-input-wrapper').find('.pixelio-cart-abandon-recovery-more-slider-not-pro').trigger('click');\n      }\n      label_yes.addClass('pixelio-cart-abandon-recovery-more-hide-it');\n      label_no.removeClass('pixelio-cart-abandon-recovery-more-hide-it');\n    }\n  }\n  var pixelioPopup;\n  var boughtPopup;\n  const previewBtnClass = '.pixelio-cart-abandon-recovery-more-input-button-setting-action-preview';\n  const editBtnClass = '.pixelio-cart-abandon-recovery-more-input-button-setting-action-edit';\n  const boughtTarget = 'pixelio-cart-abandon-recovery-more-show-others-buy-checkbox';\n  const buttonClasses = [previewBtnClass, editBtnClass];\n  function addButtonsClick(input) {\n    $.each(buttonClasses, function (index, className) {\n      const buttons = input.closest('.pixelio-cart-abandon-recovery-more-input-wrapper').find(className);\n      if (buttons.length > 0) {\n        buttons.each(function () {\n          $(this).off('click.pixelio').on('click.pixelio', function (e) {\n            e.preventDefault();\n            let addClass = className === editBtnClass ? \"-edit\" : \"-preview\";\n            const clicked_on = $(this).data(\"clicked_on\");\n            const fullClass = \".\" + clicked_on + addClass;\n            if (clicked_on === boughtTarget) {\n              boughtPopup = new PixelioCartAbandonRecoveryMoreBoughtPopup(fullClass, hideSaveButton, showSaveButton, false);\n              boughtPopup.pixelioCartAbandonRecoveryMoreShow();\n            } else {\n              pixelioPopup = new PixelioCartAbandonRecoveryMorePopUp(fullClass, hideSaveButton, showSaveButton, false, null, false);\n              pixelioPopup.pixelioCartAbandonRecoveryMoreDisabledAllButton();\n              pixelioPopup.pixelioCartAbandonRecoveryMoreShow();\n            }\n          });\n        });\n      }\n    });\n  }\n});\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_slider.js":
/*!*********************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_slider.js ***!
  \*********************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMoreSlider: function() { return /* binding */ PixelioCartAbandonRecoveryMoreSlider; }\n/* harmony export */ });\n/* harmony import */ var _frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\n\nclass PixelioCartAbandonRecoveryMoreSlider {\n  constructor() {\n    this.moveDependancyInCorrectParent();\n    const self = this;\n    jQuery('.pixelio-cart-abandon-recovery-more-slider').each(function () {\n      self.#applySliderState(jQuery(this), true);\n    });\n    jQuery('input[type=\"checkbox\"]').on('change', function () {\n      const $clicked = jQuery(this);\n      self.#applySliderState($clicked, false);\n    });\n  }\n  moveDependancyInCorrectParent() {\n    jQuery('[class*=\"-parent\"]').each(function () {\n      const $el = jQuery(this);\n\n      // Get all classes\n      const classes = $el.attr('class').split(/\\s+/);\n\n      // Find the \"-parent\" class\n      classes.forEach(function (cls) {\n        if (cls.includes('-parent')) {\n          // Compute the target class by removing \"-parent\"\n          const targetClass = cls.replace('-parent', '');\n\n          // Remove the \"-parent\" class from the element\n          $el.removeClass(cls);\n\n          // Find the target div by class and append the current element\n          const $target = jQuery('.' + targetClass).first();\n          if ($target.length) {\n            $el.appendTo($target);\n          }\n        }\n      });\n    });\n  }\n  #applySliderState($clicked, $init) {\n    const isActive = this.#updateInputValueAndToggleSentence($clicked, $init);\n    const onShow = $clicked.parent().find('.pixelio-cart-abandon-recovery-more-opt-in-checkbox').data('onshow');\n    if (onShow) {\n      // Split si plusieurs classes/ids séparés par des virgules\n      const selectors = onShow.split(',').map(s => s.trim());\n      selectors.forEach(selector => {\n        // Tenter par classe\n        let $onShowTarget = jQuery('.' + selector);\n\n        // Si pas trouvé, tenter par name\n        if ($onShowTarget.length === 0) {\n          $onShowTarget = jQuery('input[name=\"' + selector + '\"]');\n        }\n        if (isActive) {\n          $onShowTarget.removeClass('pixelio-cart-abandon-recovery-more-hide-it');\n        } else {\n          $onShowTarget.addClass('pixelio-cart-abandon-recovery-more-hide-it');\n        }\n\n        // ✅ Ne prendre que les enfants directs\n        const $dependencyWrapper = $onShowTarget.children('.pixelio-cart-abandon-recovery-more-all-input-dependency');\n        if ($dependencyWrapper.length) {\n          $dependencyWrapper.toggleClass('pixelio-cart-abandon-recovery-more-hide-it', !isActive);\n          if (!isActive) {\n            // Reset uniquement les inputs checkbox / radio au premier niveau\n            $dependencyWrapper.children('input[type=\"checkbox\"], input[type=\"radio\"], select').each(function () {\n              if (this.type === 'checkbox' || this.type === 'radio') {\n                this.checked = false;\n                jQuery(this).trigger('change');\n              }\n            });\n          }\n        } else {\n          console.warn('❌ onshow dependency introuvable :', selector);\n        }\n      });\n    }\n  }\n  #updateInputValueAndToggleSentence($clicked, $init) {\n    let $prev = $clicked.prev();\n    let isActive = false;\n    while ($prev.length) {\n      if ($prev.is('input[type=\"hidden\"]')) {\n        const inputName = $prev.attr('name');\n        const $yes = jQuery('#' + inputName + '-yes');\n        const $no = jQuery('#' + inputName + '-no');\n        if ($prev.val() === 'on') {\n          isActive = false;\n          if (!$init) {\n            $prev.val('off');\n            $yes.addClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n            $no.removeClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n          } else {\n            isActive = true;\n          }\n        } else {\n          isActive = true;\n          if (!$init) {\n            $prev.val('on');\n            $yes.removeClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n            $no.addClass(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n          } else {\n            isActive = false;\n          }\n        }\n        break;\n      }\n      $prev = $prev.prev();\n    }\n    return isActive;\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_slider.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_timer.js":
/*!********************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_timer.js ***!
  \********************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMoreTimer: function() { return /* binding */ PixelioCartAbandonRecoveryMoreTimer; }\n/* harmony export */ });\n/* harmony import */ var _frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\n\nconst {\n  PIXELIOCARTABANDONRECOVERYMORETIMER\n} = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\nclass PixelioCartAbandonRecoveryMoreTimer {\n  constructor() {\n    this.remainingSeconds = 0;\n    this.timerInterval = null;\n    this.minutes = \"0\";\n    this.seconds = \"0\";\n  }\n\n  // Met à jour le timer à chaque tick\n  pixelioCartAbandonRecoveryMoreUpdateTimer = () => {\n    if (this.remainingSeconds >= 0) {\n      this.minutes = String(Math.floor(this.remainingSeconds % 3600 / 60));\n      this.seconds = String(this.remainingSeconds % 60);\n      this.#callCallbackIfNotNull(this.successCallback);\n      this.remainingSeconds--;\n      localStorage.setItem(this.name, this.remainingSeconds);\n    } else {\n      this.#callCallbackIfNotNull(this.finishCallback);\n      clearInterval(this.timerInterval);\n    }\n  };\n\n  // Met à jour le contenu HTML du timer\n  pixelioCartAbandonRecoveryMoreUpdateTimerContent(theTimerContent) {\n    if (!theTimerContent || theTimerContent.length < 5) return;\n\n    // Minutes\n    if (this.minutes.length >= 2) {\n      theTimerContent[0].textContent = this.minutes[0] ?? \"0\";\n      theTimerContent[1].textContent = this.minutes[1] ?? \"0\";\n    } else {\n      theTimerContent[0].textContent = \"0\";\n      theTimerContent[1].textContent = this.minutes[0] ?? \"0\";\n    }\n\n    // Secondes\n    if (this.seconds.length >= 2) {\n      theTimerContent[3].textContent = this.seconds[0] ?? \"0\";\n      theTimerContent[4].textContent = this.seconds[1] ?? \"0\";\n    } else {\n      theTimerContent[3].textContent = \"0\";\n      theTimerContent[4].textContent = this.seconds[0] ?? \"0\";\n    }\n  }\n\n  // Stoppe le timer\n  pixelioCartAbandonRecoveryMoreClearTimer() {\n    if (this.timerInterval) {\n      clearInterval(this.timerInterval);\n      this.timerInterval = null;\n    }\n  }\n\n  // Callback sécurisé\n  #callCallbackIfNotNull(callback) {\n    if (callback) callback();\n  }\n\n  // Démarre le timer\n  pixelioCartAbandonRecoveryMoreStartTimer(successCallback, finishCallback, name, reset = false) {\n    this.pixelioCartAbandonRecoveryMoreClearTimer();\n    this.successCallback = successCallback;\n    this.finishCallback = finishCallback;\n    this.name = name;\n    this.startTimeName = \"startTime\" + name;\n    const currentTime = Date.now();\n    if (window.location.href.includes(\"recovercart\")) {\n      //init timer\n      localStorage.setItem(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_0__.PIXELIOCARTABANDONRECOVERYMORETIMERSELECTORCLASS, PIXELIOCARTABANDONRECOVERYMORETIMER);\n      localStorage.setItem(this.startTimeName, undefined);\n      const url = new URL(window.location.href);\n      url.searchParams.delete(\"recovercart\");\n      window.history.replaceState({}, document.title, url.toString());\n    }\n    const storedTime = localStorage.getItem(this.startTimeName);\n    if (!storedTime || storedTime === \"undefined\" || reset) {\n      localStorage.setItem(this.startTimeName, currentTime);\n    }\n    const elapsedTime = Math.floor((currentTime - localStorage.getItem(this.startTimeName)) / 1000);\n    this.remainingSeconds = PIXELIOCARTABANDONRECOVERYMORETIMER;\n    if (elapsedTime >= this.remainingSeconds) {\n      this.#callCallbackIfNotNull(this.finishCallback);\n    } else {\n      this.remainingSeconds -= elapsedTime;\n      this.timerInterval = setInterval(this.pixelioCartAbandonRecoveryMoreUpdateTimer, 1000);\n      this.pixelioCartAbandonRecoveryMoreUpdateTimer();\n    }\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_timer.js?");

/***/ }),

/***/ "./admin/assets/js/components/pixelio_cart_abandon_recovery_more_update_popup.js":
/*!***************************************************************************************!*\
  !*** ./admin/assets/js/components/pixelio_cart_abandon_recovery_more_update_popup.js ***!
  \***************************************************************************************/
/***/ (function() {

eval("(function ($) {\n  const STORAGE_KEY = 'pixelio_update_popup_hidden_until';\n  $(document).on('click', '.pixelio-cart-abandon-recovery-more-close-update-popup', function (e) {\n    e.preventDefault();\n    localStorage.setItem(STORAGE_KEY, Date.now() + 60 * 60 * 1000 // 1 heure\n    );\n    $('#pixelio-cart-abandon-recovery-more-update-popup-container').fadeOut(200);\n  });\n  $(function () {\n    const hiddenUntil = parseInt(localStorage.getItem(STORAGE_KEY) || '0', 10);\n    if (hiddenUntil > Date.now()) {\n      $('#pixelio-cart-abandon-recovery-more-update-popup-container').hide();\n    }\n  });\n})(jQuery);\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/components/pixelio_cart_abandon_recovery_more_update_popup.js?");

/***/ }),

/***/ "./admin/assets/js/libs/color_pickr.min.js":
/*!*************************************************!*\
  !*** ./admin/assets/js/libs/color_pickr.min.js ***!
  \*************************************************/
/***/ (function(module) {

eval("/*! Pickr 1.9.1 MIT | https://github.com/Simonwep/pickr */\n!function (t, e) {\n   true ? module.exports = e() : 0;\n}(self, () => (() => {\n  \"use strict\";\n\n  var t = {\n      d: (e, o) => {\n        for (var n in o) t.o(o, n) && !t.o(e, n) && Object.defineProperty(e, n, {\n          enumerable: !0,\n          get: o[n]\n        });\n      },\n      o: (t, e) => Object.prototype.hasOwnProperty.call(t, e),\n      r: t => {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n          value: \"Module\"\n        }), Object.defineProperty(t, \"__esModule\", {\n          value: !0\n        });\n      }\n    },\n    e = {};\n  t.d(e, {\n    default: () => E\n  });\n  var o = {};\n  function n(t, e, o, n, i = {}) {\n    e instanceof HTMLCollection || e instanceof NodeList ? e = Array.from(e) : Array.isArray(e) || (e = [e]), Array.isArray(o) || (o = [o]);\n    for (const s of e) for (const e of o) s[t](e, n, {\n      capture: !1,\n      ...i\n    });\n    return Array.prototype.slice.call(arguments, 1);\n  }\n  t.r(o), t.d(o, {\n    adjustableInputNumbers: () => p,\n    createElementFromString: () => r,\n    createFromTemplate: () => a,\n    eventPath: () => l,\n    off: () => s,\n    on: () => i,\n    resolveElement: () => c\n  });\n  const i = n.bind(null, \"addEventListener\"),\n    s = n.bind(null, \"removeEventListener\");\n  function r(t) {\n    const e = document.createElement(\"div\");\n    return e.innerHTML = t.trim(), e.firstElementChild;\n  }\n  function a(t) {\n    const e = (t, e) => {\n        const o = t.getAttribute(e);\n        return t.removeAttribute(e), o;\n      },\n      o = (t, n = {}) => {\n        const i = e(t, \":obj\"),\n          s = e(t, \":ref\"),\n          r = i ? n[i] = {} : n;\n        s && (n[s] = t);\n        for (const n of Array.from(t.children)) {\n          const t = e(n, \":arr\"),\n            i = o(n, t ? {} : r);\n          t && (r[t] || (r[t] = [])).push(Object.keys(i).length ? i : n);\n        }\n        return n;\n      };\n    return o(r(t));\n  }\n  function l(t) {\n    let e = t.path || t.composedPath && t.composedPath();\n    if (e) return e;\n    let o = t.target.parentElement;\n    for (e = [t.target, o]; o = o.parentElement;) e.push(o);\n    return e.push(document, window), e;\n  }\n  function c(t) {\n    return t instanceof Element ? t : \"string\" == typeof t ? t.split(/>>/g).reduce((t, e, o, n) => (t = t.querySelector(e), o < n.length - 1 ? t.shadowRoot : t), document) : null;\n  }\n  function p(t, e = t => t) {\n    function o(o) {\n      const n = [.001, .01, .1][Number(o.shiftKey || 2 * o.ctrlKey)] * (o.deltaY < 0 ? 1 : -1);\n      let i = 0,\n        s = t.selectionStart;\n      t.value = t.value.replace(/[\\d.]+/g, (t, o) => o <= s && o + t.length >= s ? (s = o, e(Number(t), n, i)) : (i++, t)), t.focus(), t.setSelectionRange(s, s), o.preventDefault(), t.dispatchEvent(new Event(\"input\"));\n    }\n    i(t, \"focus\", () => i(window, \"wheel\", o, {\n      passive: !1\n    })), i(t, \"blur\", () => s(window, \"wheel\", o));\n  }\n  const {\n    min: u,\n    max: h,\n    floor: d,\n    round: m\n  } = Math;\n  function f(t, e, o) {\n    e /= 100, o /= 100;\n    const n = d(t = t / 360 * 6),\n      i = t - n,\n      s = o * (1 - e),\n      r = o * (1 - i * e),\n      a = o * (1 - (1 - i) * e),\n      l = n % 6;\n    return [255 * [o, r, s, s, a, o][l], 255 * [a, o, o, r, s, s][l], 255 * [s, s, a, o, o, r][l]];\n  }\n  function v(t, e, o) {\n    const n = (2 - (e /= 100)) * (o /= 100) / 2;\n    return 0 !== n && (e = 1 === n ? 0 : n < .5 ? e * o / (2 * n) : e * o / (2 - 2 * n)), [t, 100 * e, 100 * n];\n  }\n  function b(t, e, o) {\n    const n = u(t /= 255, e /= 255, o /= 255),\n      i = h(t, e, o),\n      s = i - n;\n    let r, a;\n    if (0 === s) r = a = 0;else {\n      a = s / i;\n      const n = ((i - t) / 6 + s / 2) / s,\n        l = ((i - e) / 6 + s / 2) / s,\n        c = ((i - o) / 6 + s / 2) / s;\n      t === i ? r = c - l : e === i ? r = 1 / 3 + n - c : o === i && (r = 2 / 3 + l - n), r < 0 ? r += 1 : r > 1 && (r -= 1);\n    }\n    return [360 * r, 100 * a, 100 * i];\n  }\n  function y(t, e, o, n) {\n    e /= 100, o /= 100;\n    return [...b(255 * (1 - u(1, (t /= 100) * (1 - (n /= 100)) + n)), 255 * (1 - u(1, e * (1 - n) + n)), 255 * (1 - u(1, o * (1 - n) + n)))];\n  }\n  function g(t, e, o) {\n    e /= 100;\n    const n = 2 * (e *= (o /= 100) < .5 ? o : 1 - o) / (o + e) * 100,\n      i = 100 * (o + e);\n    return [t, isNaN(n) ? 0 : n, i];\n  }\n  function _(t) {\n    return b(...t.match(/.{2}/g).map(t => parseInt(t, 16)));\n  }\n  function w(t) {\n    t = t.match(/^[a-zA-Z]+$/) ? function (t) {\n      if (\"black\" === t.toLowerCase()) return \"#000\";\n      const e = document.createElement(\"canvas\").getContext(\"2d\");\n      return e.fillStyle = t, \"#000\" === e.fillStyle ? null : e.fillStyle;\n    }(t) : t;\n    const e = {\n        cmyk: /^cmyk\\D+([\\d.]+)\\D+([\\d.]+)\\D+([\\d.]+)\\D+([\\d.]+)/i,\n        rgba: /^rgba?\\D+([\\d.]+)(%?)\\D+([\\d.]+)(%?)\\D+([\\d.]+)(%?)\\D*?(([\\d.]+)(%?)|$)/i,\n        hsla: /^hsla?\\D+([\\d.]+)\\D+([\\d.]+)\\D+([\\d.]+)\\D*?(([\\d.]+)(%?)|$)/i,\n        hsva: /^hsva?\\D+([\\d.]+)\\D+([\\d.]+)\\D+([\\d.]+)\\D*?(([\\d.]+)(%?)|$)/i,\n        hexa: /^#?(([\\dA-Fa-f]{3,4})|([\\dA-Fa-f]{6})|([\\dA-Fa-f]{8}))$/i\n      },\n      o = t => t.map(t => /^(|\\d+)\\.\\d+|\\d+$/.test(t) ? Number(t) : void 0);\n    let n;\n    t: for (const i in e) if (n = e[i].exec(t)) switch (i) {\n      case \"cmyk\":\n        {\n          const [, t, e, s, r] = o(n);\n          if (t > 100 || e > 100 || s > 100 || r > 100) break t;\n          return {\n            values: y(t, e, s, r),\n            type: i\n          };\n        }\n      case \"rgba\":\n        {\n          let [, t,, e,, s,,, r] = o(n);\n          if (t = \"%\" === n[2] ? t / 100 * 255 : t, e = \"%\" === n[4] ? e / 100 * 255 : e, s = \"%\" === n[6] ? s / 100 * 255 : s, r = \"%\" === n[9] ? r / 100 : r, t > 255 || e > 255 || s > 255 || r < 0 || r > 1) break t;\n          return {\n            values: [...b(t, e, s), r],\n            a: r,\n            type: i\n          };\n        }\n      case \"hexa\":\n        {\n          let [, t] = n;\n          4 !== t.length && 3 !== t.length || (t = t.split(\"\").map(t => t + t).join(\"\"));\n          const e = t.substring(0, 6);\n          let o = t.substring(6);\n          return o = o ? parseInt(o, 16) / 255 : void 0, {\n            values: [..._(e), o],\n            a: o,\n            type: i\n          };\n        }\n      case \"hsla\":\n        {\n          let [, t, e, s,, r] = o(n);\n          if (r = \"%\" === n[6] ? r / 100 : r, t > 360 || e > 100 || s > 100 || r < 0 || r > 1) break t;\n          return {\n            values: [...g(t, e, s), r],\n            a: r,\n            type: i\n          };\n        }\n      case \"hsva\":\n        {\n          let [, t, e, s,, r] = o(n);\n          if (r = \"%\" === n[6] ? r / 100 : r, t > 360 || e > 100 || s > 100 || r < 0 || r > 1) break t;\n          return {\n            values: [t, e, s, r],\n            a: r,\n            type: i\n          };\n        }\n    }\n    return {\n      values: null,\n      type: null\n    };\n  }\n  function A(t = 0, e = 0, o = 0, n = 1) {\n    const i = (t, e) => (o = -1) => e(~o ? t.map(t => Number(t.toFixed(o))) : t),\n      s = {\n        h: t,\n        s: e,\n        v: o,\n        a: n,\n        toHSVA() {\n          const t = [s.h, s.s, s.v, s.a];\n          return t.toString = i(t, t => `hsva(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`), t;\n        },\n        toHSLA() {\n          const t = [...v(s.h, s.s, s.v), s.a];\n          return t.toString = i(t, t => `hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${s.a})`), t;\n        },\n        toRGBA() {\n          const t = [...f(s.h, s.s, s.v), s.a];\n          return t.toString = i(t, t => `rgba(${t[0]}, ${t[1]}, ${t[2]}, ${s.a})`), t;\n        },\n        toCMYK() {\n          const t = function (t, e, o) {\n            const n = f(t, e, o),\n              i = n[0] / 255,\n              s = n[1] / 255,\n              r = n[2] / 255,\n              a = u(1 - i, 1 - s, 1 - r);\n            return [100 * (1 === a ? 0 : (1 - i - a) / (1 - a)), 100 * (1 === a ? 0 : (1 - s - a) / (1 - a)), 100 * (1 === a ? 0 : (1 - r - a) / (1 - a)), 100 * a];\n          }(s.h, s.s, s.v);\n          return t.toString = i(t, t => `cmyk(${t[0]}%, ${t[1]}%, ${t[2]}%, ${t[3]}%)`), t;\n        },\n        toHEXA() {\n          const t = function (t, e, o) {\n              return f(t, e, o).map(t => m(t).toString(16).padStart(2, \"0\"));\n            }(s.h, s.s, s.v),\n            e = s.a >= 1 ? \"\" : Number((255 * s.a).toFixed(0)).toString(16).toUpperCase().padStart(2, \"0\");\n          return e && t.push(e), t.toString = () => `#${t.join(\"\").toUpperCase()}`, t;\n        },\n        clone: () => A(s.h, s.s, s.v, s.a)\n      };\n    return s;\n  }\n  const $ = t => Math.max(Math.min(t, 1), 0);\n  function C(t) {\n    const e = {\n        options: Object.assign({\n          lock: null,\n          onchange: () => 0,\n          onstop: () => 0\n        }, t),\n        _keyboard(t) {\n          const {\n              options: o\n            } = e,\n            {\n              type: n,\n              key: i\n            } = t;\n          if (document.activeElement === o.wrapper) {\n            const {\n                lock: o\n              } = e.options,\n              s = \"ArrowUp\" === i,\n              r = \"ArrowRight\" === i,\n              a = \"ArrowDown\" === i,\n              l = \"ArrowLeft\" === i;\n            if (\"keydown\" === n && (s || r || a || l)) {\n              let n = 0,\n                i = 0;\n              \"v\" === o ? n = s || r ? 1 : -1 : \"h\" === o ? n = s || r ? -1 : 1 : (i = s ? -1 : a ? 1 : 0, n = l ? -1 : r ? 1 : 0), e.update($(e.cache.x + .01 * n), $(e.cache.y + .01 * i)), t.preventDefault();\n            } else i.startsWith(\"Arrow\") && (e.options.onstop(), t.preventDefault());\n          }\n        },\n        _tapstart(t) {\n          i(document, [\"mouseup\", \"touchend\", \"touchcancel\"], e._tapstop), i(document, [\"mousemove\", \"touchmove\"], e._tapmove), t.cancelable && t.preventDefault(), e._tapmove(t);\n        },\n        _tapmove(t) {\n          const {\n              options: o,\n              cache: n\n            } = e,\n            {\n              lock: i,\n              element: s,\n              wrapper: r\n            } = o,\n            a = r.getBoundingClientRect();\n          let l = 0,\n            c = 0;\n          if (t) {\n            const e = t && t.touches && t.touches[0];\n            l = t ? (e || t).clientX : 0, c = t ? (e || t).clientY : 0, l < a.left ? l = a.left : l > a.left + a.width && (l = a.left + a.width), c < a.top ? c = a.top : c > a.top + a.height && (c = a.top + a.height), l -= a.left, c -= a.top;\n          } else n && (l = n.x * a.width, c = n.y * a.height);\n          \"h\" !== i && (s.style.left = `calc(${l / a.width * 100}% - ${s.offsetWidth / 2}px)`), \"v\" !== i && (s.style.top = `calc(${c / a.height * 100}% - ${s.offsetHeight / 2}px)`), e.cache = {\n            x: l / a.width,\n            y: c / a.height\n          };\n          const p = $(l / a.width),\n            u = $(c / a.height);\n          switch (i) {\n            case \"v\":\n              return o.onchange(p);\n            case \"h\":\n              return o.onchange(u);\n            default:\n              return o.onchange(p, u);\n          }\n        },\n        _tapstop() {\n          e.options.onstop(), s(document, [\"mouseup\", \"touchend\", \"touchcancel\"], e._tapstop), s(document, [\"mousemove\", \"touchmove\"], e._tapmove);\n        },\n        trigger() {\n          e._tapmove();\n        },\n        update(t = 0, o = 0) {\n          const {\n            left: n,\n            top: i,\n            width: s,\n            height: r\n          } = e.options.wrapper.getBoundingClientRect();\n          \"h\" === e.options.lock && (o = t), e._tapmove({\n            clientX: n + s * t,\n            clientY: i + r * o\n          });\n        },\n        destroy() {\n          const {\n            options: t,\n            _tapstart: o,\n            _keyboard: n\n          } = e;\n          s(document, [\"keydown\", \"keyup\"], n), s([t.wrapper, t.element], \"mousedown\", o), s([t.wrapper, t.element], \"touchstart\", o, {\n            passive: !1\n          });\n        }\n      },\n      {\n        options: o,\n        _tapstart: n,\n        _keyboard: r\n      } = e;\n    return i([o.wrapper, o.element], \"mousedown\", n), i([o.wrapper, o.element], \"touchstart\", n, {\n      passive: !1\n    }), i(document, [\"keydown\", \"keyup\"], r), e;\n  }\n  function k(t = {}) {\n    t = Object.assign({\n      onchange: () => 0,\n      className: \"\",\n      elements: []\n    }, t);\n    const e = i(t.elements, \"click\", e => {\n      t.elements.forEach(o => o.classList[e.target === o ? \"add\" : \"remove\"](t.className)), t.onchange(e), e.stopPropagation();\n    });\n    return {\n      destroy: () => s(...e)\n    };\n  }\n  const S = {\n      variantFlipOrder: {\n        start: \"sme\",\n        middle: \"mse\",\n        end: \"ems\"\n      },\n      positionFlipOrder: {\n        top: \"tbrl\",\n        right: \"rltb\",\n        bottom: \"btrl\",\n        left: \"lrbt\"\n      },\n      position: \"bottom\",\n      margin: 8,\n      padding: 0\n    },\n    O = (t, e, o) => {\n      const n = \"object\" != typeof t || t instanceof HTMLElement ? {\n        reference: t,\n        popper: e,\n        ...o\n      } : t;\n      return {\n        update(t = n) {\n          const {\n            reference: e,\n            popper: o\n          } = Object.assign(n, t);\n          if (!o || !e) throw new Error(\"Popper- or reference-element missing.\");\n          return ((t, e, o) => {\n            const {\n                container: n,\n                arrow: i,\n                margin: s,\n                padding: r,\n                position: a,\n                variantFlipOrder: l,\n                positionFlipOrder: c\n              } = {\n                container: document.documentElement.getBoundingClientRect(),\n                ...S,\n                ...o\n              },\n              {\n                left: p,\n                top: u\n              } = e.style;\n            e.style.left = \"0\", e.style.top = \"0\";\n            const h = t.getBoundingClientRect(),\n              d = e.getBoundingClientRect(),\n              m = {\n                t: h.top - d.height - s,\n                b: h.bottom + s,\n                r: h.right + s,\n                l: h.left - d.width - s\n              },\n              f = {\n                vs: h.left,\n                vm: h.left + h.width / 2 - d.width / 2,\n                ve: h.left + h.width - d.width,\n                hs: h.top,\n                hm: h.bottom - h.height / 2 - d.height / 2,\n                he: h.bottom - d.height\n              },\n              [v, b = \"middle\"] = a.split(\"-\"),\n              y = c[v],\n              g = l[b],\n              {\n                top: _,\n                left: w,\n                bottom: A,\n                right: $\n              } = n;\n            for (const t of y) {\n              const o = \"t\" === t || \"b\" === t;\n              let n = m[t];\n              const [s, a] = o ? [\"top\", \"left\"] : [\"left\", \"top\"],\n                [l, c] = o ? [d.height, d.width] : [d.width, d.height],\n                [p, u] = o ? [A, $] : [$, A],\n                [v, b] = o ? [_, w] : [w, _];\n              if (!(n < v || n + l + r > p)) for (const p of g) {\n                let m = f[(o ? \"v\" : \"h\") + p];\n                if (!(m < b || m + c + r > u)) {\n                  if (m -= d[a], n -= d[s], e.style[a] = `${m}px`, e.style[s] = `${n}px`, i) {\n                    const e = o ? h.width / 2 : h.height / 2,\n                      r = c / 2,\n                      u = e > r,\n                      d = m + {\n                        s: u ? r : e,\n                        m: r,\n                        e: u ? r : c - e\n                      }[p],\n                      f = n + {\n                        t: l,\n                        b: 0,\n                        r: 0,\n                        l\n                      }[t];\n                    i.style[a] = `${d}px`, i.style[s] = `${f}px`;\n                  }\n                  return t + p;\n                }\n              }\n            }\n            return e.style.left = p, e.style.top = u, null;\n          })(e, o, n);\n        }\n      };\n    };\n  class E {\n    static utils = o;\n    static version = \"1.9.1\";\n    static I18N_DEFAULTS = {\n      \"ui:dialog\": \"color picker dialog\",\n      \"btn:toggle\": \"toggle color picker dialog\",\n      \"btn:swatch\": \"color swatch\",\n      \"btn:last-color\": \"use previous color\",\n      \"btn:save\": \"Save\",\n      \"btn:cancel\": \"Cancel\",\n      \"btn:clear\": \"Clear\",\n      \"aria:btn:save\": \"save and close\",\n      \"aria:btn:cancel\": \"cancel and close\",\n      \"aria:btn:clear\": \"clear and close\",\n      \"aria:input\": \"color input field\",\n      \"aria:palette\": \"color selection area\",\n      \"aria:hue\": \"hue selection slider\",\n      \"aria:opacity\": \"selection slider\"\n    };\n    static DEFAULT_OPTIONS = {\n      appClass: null,\n      theme: \"classic\",\n      useAsButton: !1,\n      padding: 8,\n      disabled: !1,\n      comparison: !0,\n      closeOnScroll: !1,\n      outputPrecision: 0,\n      lockOpacity: !1,\n      autoReposition: !0,\n      container: \"body\",\n      components: {\n        interaction: {}\n      },\n      i18n: {},\n      swatches: null,\n      inline: !1,\n      sliders: null,\n      default: \"#42445a\",\n      defaultRepresentation: null,\n      position: \"bottom-middle\",\n      adjustableNumbers: !0,\n      showAlways: !1,\n      closeWithKey: \"Escape\"\n    };\n    _initializingActive = !0;\n    _recalc = !0;\n    _nanopop = null;\n    _root = null;\n    _color = A();\n    _lastColor = A();\n    _swatchColors = [];\n    _setupAnimationFrame = null;\n    _eventListener = {\n      init: [],\n      save: [],\n      hide: [],\n      show: [],\n      clear: [],\n      change: [],\n      changestop: [],\n      cancel: [],\n      swatchselect: []\n    };\n    constructor(t) {\n      this.options = t = Object.assign({\n        ...E.DEFAULT_OPTIONS\n      }, t);\n      const {\n        swatches: e,\n        components: o,\n        theme: n,\n        sliders: i,\n        lockOpacity: s,\n        padding: r\n      } = t;\n      [\"nano\", \"monolith\"].includes(n) && !i && (t.sliders = \"h\"), o.interaction || (o.interaction = {});\n      const {\n        preview: a,\n        opacity: l,\n        hue: c,\n        palette: p\n      } = o;\n      o.opacity = !s && l, o.palette = p || a || l || c, this._preBuild(), this._buildComponents(), this._bindEvents(), this._finalBuild(), e && e.length && e.forEach(t => this.addSwatch(t));\n      const {\n        button: u,\n        app: h\n      } = this._root;\n      this._nanopop = O(u, h, {\n        margin: r\n      }), u.setAttribute(\"role\", \"button\"), u.setAttribute(\"aria-label\", this._t(\"btn:toggle\"));\n      const d = this;\n      this._setupAnimationFrame = requestAnimationFrame(function e() {\n        if (!h.offsetWidth) return requestAnimationFrame(e);\n        d.setColor(t.default), d._rePositioningPicker(), t.defaultRepresentation && (d._representation = t.defaultRepresentation, d.setColorRepresentation(d._representation)), t.showAlways && d.show(), d._initializingActive = !1, d._emit(\"init\");\n      });\n    }\n    static create = t => new E(t);\n    _preBuild() {\n      const {\n        options: t\n      } = this;\n      for (const e of [\"el\", \"container\"]) t[e] = c(t[e]);\n      this._root = (t => {\n        const {\n            components: e,\n            useAsButton: o,\n            inline: n,\n            appClass: i,\n            theme: s,\n            lockOpacity: r\n          } = t.options,\n          l = t => t ? \"\" : 'style=\"display:none\" hidden',\n          c = e => t._t(e),\n          p = a(`\\n      <div :ref=\"root\" class=\"pickr\">\\n\\n        ${o ? \"\" : '<button type=\"button\" :ref=\"button\" class=\"pcr-button\"></button>'}\\n\\n        <div :ref=\"app\" class=\"pcr-app ${i || \"\"}\" data-theme=\"${s}\" ${n ? 'style=\"position: unset\"' : \"\"} aria-label=\"${c(\"ui:dialog\")}\" role=\"window\">\\n          <div class=\"pcr-selection\" ${l(e.palette)}>\\n            <div :obj=\"preview\" class=\"pcr-color-preview\" ${l(e.preview)}>\\n              <button type=\"button\" :ref=\"lastColor\" class=\"pcr-last-color\" aria-label=\"${c(\"btn:last-color\")}\"></button>\\n              <div :ref=\"currentColor\" class=\"pcr-current-color\"></div>\\n            </div>\\n\\n            <div :obj=\"palette\" class=\"pcr-color-palette\">\\n              <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n              <div :ref=\"palette\" class=\"pcr-palette\" tabindex=\"0\" aria-label=\"${c(\"aria:palette\")}\" role=\"listbox\"></div>\\n            </div>\\n\\n            <div :obj=\"hue\" class=\"pcr-color-chooser\" ${l(e.hue)}>\\n              <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n              <div :ref=\"slider\" class=\"pcr-hue pcr-slider\" tabindex=\"0\" aria-label=\"${c(\"aria:hue\")}\" role=\"slider\"></div>\\n            </div>\\n\\n            <div :obj=\"opacity\" class=\"pcr-color-opacity\" ${l(e.opacity)}>\\n              <div :ref=\"picker\" class=\"pcr-picker\"></div>\\n              <div :ref=\"slider\" class=\"pcr-opacity pcr-slider\" tabindex=\"0\" aria-label=\"${c(\"aria:opacity\")}\" role=\"slider\"></div>\\n            </div>\\n          </div>\\n\\n          <div class=\"pcr-swatches ${e.palette ? \"\" : \"pcr-last\"}\" :ref=\"swatches\"></div>\\n\\n          <div :obj=\"interaction\" class=\"pcr-interaction\" ${l(Object.keys(e.interaction).length)}>\\n            <input :ref=\"result\" class=\"pcr-result\" type=\"text\" spellcheck=\"false\" ${l(e.interaction.input)} aria-label=\"${c(\"aria:input\")}\">\\n\\n            <input :arr=\"options\" class=\"pcr-type\" data-type=\"HEXA\" value=\"${r ? \"HEX\" : \"HEXA\"}\" type=\"button\" ${l(e.interaction.hex)}>\\n            <input :arr=\"options\" class=\"pcr-type\" data-type=\"RGBA\" value=\"${r ? \"RGB\" : \"RGBA\"}\" type=\"button\" ${l(e.interaction.rgba)}>\\n            <input :arr=\"options\" class=\"pcr-type\" data-type=\"HSLA\" value=\"${r ? \"HSL\" : \"HSLA\"}\" type=\"button\" ${l(e.interaction.hsla)}>\\n            <input :arr=\"options\" class=\"pcr-type\" data-type=\"HSVA\" value=\"${r ? \"HSV\" : \"HSVA\"}\" type=\"button\" ${l(e.interaction.hsva)}>\\n            <input :arr=\"options\" class=\"pcr-type\" data-type=\"CMYK\" value=\"CMYK\" type=\"button\" ${l(e.interaction.cmyk)}>\\n\\n            <input :ref=\"save\" class=\"pcr-save\" value=\"${c(\"btn:save\")}\" type=\"button\" ${l(e.interaction.save)} aria-label=\"${c(\"aria:btn:save\")}\">\\n            <input :ref=\"cancel\" class=\"pcr-cancel\" value=\"${c(\"btn:cancel\")}\" type=\"button\" ${l(e.interaction.cancel)} aria-label=\"${c(\"aria:btn:cancel\")}\">\\n            <input :ref=\"clear\" class=\"pcr-clear\" value=\"${c(\"btn:clear\")}\" type=\"button\" ${l(e.interaction.clear)} aria-label=\"${c(\"aria:btn:clear\")}\">\\n          </div>\\n        </div>\\n      </div>\\n    `),\n          u = p.interaction;\n        return u.options.find(t => !t.hidden && !t.classList.add(\"active\")), u.type = () => u.options.find(t => t.classList.contains(\"active\")), p;\n      })(this), t.useAsButton && (this._root.button = t.el), t.container.appendChild(this._root.root);\n    }\n    _finalBuild() {\n      const t = this.options,\n        e = this._root;\n      if (t.container.removeChild(e.root), t.inline) {\n        const o = t.el.parentElement;\n        t.el.nextSibling ? o.insertBefore(e.app, t.el.nextSibling) : o.appendChild(e.app);\n      } else t.container.appendChild(e.app);\n      t.useAsButton ? t.inline && t.el.remove() : t.el.parentNode.replaceChild(e.root, t.el), t.disabled && this.disable(), t.comparison || (e.button.style.transition = \"none\", t.useAsButton || (e.preview.lastColor.style.transition = \"none\")), this.hide();\n    }\n    _buildComponents() {\n      const t = this,\n        e = this.options.components,\n        o = (t.options.sliders || \"v\").repeat(2),\n        [n, i] = o.match(/^[vh]+$/g) ? o : [],\n        s = () => this._color || (this._color = this._lastColor.clone()),\n        r = {\n          palette: C({\n            element: t._root.palette.picker,\n            wrapper: t._root.palette.palette,\n            onstop: () => t._emit(\"changestop\", \"slider\", t),\n            onchange(o, n) {\n              if (!e.palette) return;\n              const i = s(),\n                {\n                  _root: r,\n                  options: a\n                } = t,\n                {\n                  lastColor: l,\n                  currentColor: c\n                } = r.preview;\n              t._recalc && (i.s = 100 * o, i.v = 100 - 100 * n, i.v < 0 && (i.v = 0), t._updateOutput(\"slider\"));\n              const p = i.toRGBA().toString(0);\n              this.element.style.background = p, this.wrapper.style.background = `\\n                        linear-gradient(to top, rgba(0, 0, 0, ${i.a}), transparent),\\n                        linear-gradient(to left, hsla(${i.h}, 100%, 50%, ${i.a}), rgba(255, 255, 255, ${i.a}))\\n                    `, a.comparison ? a.useAsButton || t._lastColor || l.style.setProperty(\"--pcr-color\", p) : (r.button.style.setProperty(\"--pcr-color\", p), r.button.classList.remove(\"clear\"));\n              const u = i.toHEXA().toString();\n              for (const {\n                el: e,\n                color: o\n              } of t._swatchColors) e.classList[u === o.toHEXA().toString() ? \"add\" : \"remove\"](\"pcr-active\");\n              c.style.setProperty(\"--pcr-color\", p);\n            }\n          }),\n          hue: C({\n            lock: \"v\" === i ? \"h\" : \"v\",\n            element: t._root.hue.picker,\n            wrapper: t._root.hue.slider,\n            onstop: () => t._emit(\"changestop\", \"slider\", t),\n            onchange(o) {\n              if (!e.hue || !e.palette) return;\n              const n = s();\n              t._recalc && (n.h = 360 * o), this.element.style.backgroundColor = `hsl(${n.h}, 100%, 50%)`, r.palette.trigger();\n            }\n          }),\n          opacity: C({\n            lock: \"v\" === n ? \"h\" : \"v\",\n            element: t._root.opacity.picker,\n            wrapper: t._root.opacity.slider,\n            onstop: () => t._emit(\"changestop\", \"slider\", t),\n            onchange(o) {\n              if (!e.opacity || !e.palette) return;\n              const n = s();\n              t._recalc && (n.a = Math.round(100 * o) / 100), this.element.style.background = `rgba(0, 0, 0, ${n.a})`, r.palette.trigger();\n            }\n          }),\n          selectable: k({\n            elements: t._root.interaction.options,\n            className: \"active\",\n            onchange(e) {\n              t._representation = e.target.getAttribute(\"data-type\").toUpperCase(), t._recalc && t._updateOutput(\"swatch\");\n            }\n          })\n        };\n      this._components = r;\n    }\n    _bindEvents() {\n      const {\n          _root: t,\n          options: e\n        } = this,\n        o = [i(t.interaction.clear, \"click\", () => this._clearColor()), i([t.interaction.cancel, t.preview.lastColor], \"click\", () => {\n          this.setHSVA(...(this._lastColor || this._color).toHSVA(), !0), this._emit(\"cancel\");\n        }), i(t.interaction.save, \"click\", () => {\n          !this.applyColor() && !e.showAlways && this.hide();\n        }), i(t.interaction.result, [\"keyup\", \"input\"], t => {\n          this.setColor(t.target.value, !0) && !this._initializingActive && (this._emit(\"change\", this._color, \"input\", this), this._emit(\"changestop\", \"input\", this)), t.stopImmediatePropagation();\n        }), i(t.interaction.result, [\"focus\", \"blur\"], t => {\n          this._recalc = \"blur\" === t.type, this._recalc && this._updateOutput(null);\n        }), i([t.palette.palette, t.palette.picker, t.hue.slider, t.hue.picker, t.opacity.slider, t.opacity.picker], [\"mousedown\", \"touchstart\"], () => this._recalc = !0, {\n          passive: !0\n        })];\n      if (!e.showAlways) {\n        const n = e.closeWithKey;\n        o.push(i(t.button, \"click\", () => this.isOpen() ? this.hide() : this.show()), i(document, \"keyup\", t => this.isOpen() && (t.key === n || t.code === n) && this.hide()), i(document, [\"touchstart\", \"mousedown\"], e => {\n          this.isOpen() && !l(e).some(e => e === t.app || e === t.button) && this.hide();\n        }, {\n          capture: !0\n        }));\n      }\n      if (e.adjustableNumbers) {\n        const e = {\n          rgba: [255, 255, 255, 1],\n          hsva: [360, 100, 100, 1],\n          hsla: [360, 100, 100, 1],\n          cmyk: [100, 100, 100, 100]\n        };\n        p(t.interaction.result, (t, o, n) => {\n          const i = e[this.getColorRepresentation().toLowerCase()];\n          if (i) {\n            const e = i[n],\n              s = t + (e >= 100 ? 1e3 * o : o);\n            return s <= 0 ? 0 : Number((s < e ? s : e).toPrecision(3));\n          }\n          return t;\n        });\n      }\n      if (e.autoReposition && !e.inline) {\n        let t = null;\n        const n = this;\n        o.push(i(window, [\"scroll\", \"resize\"], () => {\n          n.isOpen() && (e.closeOnScroll && n.hide(), null === t ? (t = setTimeout(() => t = null, 100), requestAnimationFrame(function e() {\n            n._rePositioningPicker(), null !== t && requestAnimationFrame(e);\n          })) : (clearTimeout(t), t = setTimeout(() => t = null, 100)));\n        }, {\n          capture: !0\n        }));\n      }\n      this._eventBindings = o;\n    }\n    _rePositioningPicker() {\n      const {\n        options: t\n      } = this;\n      if (!t.inline) {\n        if (!this._nanopop.update({\n          container: document.body.getBoundingClientRect(),\n          position: t.position\n        })) {\n          const t = this._root.app,\n            e = t.getBoundingClientRect();\n          t.style.top = (window.innerHeight - e.height) / 2 + \"px\", t.style.left = (window.innerWidth - e.width) / 2 + \"px\";\n        }\n      }\n    }\n    _updateOutput(t) {\n      const {\n        _root: e,\n        _color: o,\n        options: n\n      } = this;\n      if (e.interaction.type()) {\n        const t = `to${e.interaction.type().getAttribute(\"data-type\")}`;\n        e.interaction.result.value = \"function\" == typeof o[t] ? o[t]().toString(n.outputPrecision) : \"\";\n      }\n      !this._initializingActive && this._recalc && this._emit(\"change\", o, t, this);\n    }\n    _clearColor(t = !1) {\n      const {\n        _root: e,\n        options: o\n      } = this;\n      o.useAsButton || e.button.style.setProperty(\"--pcr-color\", \"rgba(0, 0, 0, 0.15)\"), e.button.classList.add(\"clear\"), o.showAlways || this.hide(), this._lastColor = null, this._initializingActive || t || (this._emit(\"save\", null), this._emit(\"clear\"));\n    }\n    _parseLocalColor(t) {\n      const {\n          values: e,\n          type: o,\n          a: n\n        } = w(t),\n        {\n          lockOpacity: i\n        } = this.options,\n        s = void 0 !== n && 1 !== n;\n      return e && 3 === e.length && (e[3] = void 0), {\n        values: !e || i && s ? null : e,\n        type: o\n      };\n    }\n    _t(t) {\n      return this.options.i18n[t] || E.I18N_DEFAULTS[t];\n    }\n    _emit(t, ...e) {\n      this._eventListener[t].forEach(t => t(...e, this));\n    }\n    on(t, e) {\n      return this._eventListener[t].push(e), this;\n    }\n    off(t, e) {\n      const o = this._eventListener[t] || [],\n        n = o.indexOf(e);\n      return ~n && o.splice(n, 1), this;\n    }\n    addSwatch(t) {\n      const {\n        values: e\n      } = this._parseLocalColor(t);\n      if (e) {\n        const {\n            _swatchColors: t,\n            _root: o\n          } = this,\n          n = A(...e),\n          s = r(`<button type=\"button\" style=\"--pcr-color: ${n.toRGBA().toString(0)}\" aria-label=\"${this._t(\"btn:swatch\")}\"/>`);\n        return o.swatches.appendChild(s), t.push({\n          el: s,\n          color: n\n        }), this._eventBindings.push(i(s, \"click\", () => {\n          this.setHSVA(...n.toHSVA(), !0), this._emit(\"swatchselect\", n), this._emit(\"change\", n, \"swatch\", this);\n        })), !0;\n      }\n      return !1;\n    }\n    removeSwatch(t) {\n      const e = this._swatchColors[t];\n      if (e) {\n        const {\n          el: o\n        } = e;\n        return this._root.swatches.removeChild(o), this._swatchColors.splice(t, 1), !0;\n      }\n      return !1;\n    }\n    applyColor(t = !1) {\n      const {\n          preview: e,\n          button: o\n        } = this._root,\n        n = this._color.toRGBA().toString(0);\n      return e.lastColor.style.setProperty(\"--pcr-color\", n), this.options.useAsButton || o.style.setProperty(\"--pcr-color\", n), o.classList.remove(\"clear\"), this._lastColor = this._color.clone(), this._initializingActive || t || this._emit(\"save\", this._color), this;\n    }\n    destroy() {\n      cancelAnimationFrame(this._setupAnimationFrame), this._eventBindings.forEach(t => s(...t)), Object.keys(this._components).forEach(t => this._components[t].destroy());\n    }\n    destroyAndRemove() {\n      this.destroy();\n      const {\n        root: t,\n        app: e\n      } = this._root;\n      t.parentElement && t.parentElement.removeChild(t), e.parentElement.removeChild(e), Object.keys(this).forEach(t => this[t] = null);\n    }\n    hide() {\n      return !!this.isOpen() && (this._root.app.classList.remove(\"visible\"), this._emit(\"hide\"), !0);\n    }\n    show() {\n      return !this.options.disabled && !this.isOpen() && (this._root.app.classList.add(\"visible\"), this._rePositioningPicker(), this._emit(\"show\", this._color), this);\n    }\n    isOpen() {\n      return this._root.app.classList.contains(\"visible\");\n    }\n    setHSVA(t = 360, e = 0, o = 0, n = 1, i = !1) {\n      const s = this._recalc;\n      if (this._recalc = !1, t < 0 || t > 360 || e < 0 || e > 100 || o < 0 || o > 100 || n < 0 || n > 1) return !1;\n      this._color = A(t, e, o, n);\n      const {\n        hue: r,\n        opacity: a,\n        palette: l\n      } = this._components;\n      return r.update(t / 360), a.update(n), l.update(e / 100, 1 - o / 100), i || this.applyColor(), s && this._updateOutput(), this._recalc = s, !0;\n    }\n    setColor(t, e = !1) {\n      if (null === t) return this._clearColor(e), !0;\n      const {\n        values: o,\n        type: n\n      } = this._parseLocalColor(t);\n      if (o) {\n        const t = n.toUpperCase(),\n          {\n            options: i\n          } = this._root.interaction,\n          s = i.find(e => e.getAttribute(\"data-type\") === t);\n        if (s && !s.hidden) for (const t of i) t.classList[t === s ? \"add\" : \"remove\"](\"active\");\n        return !!this.setHSVA(...o, e) && this.setColorRepresentation(t);\n      }\n      return !1;\n    }\n    setColorRepresentation(t) {\n      return t = t.toUpperCase(), !!this._root.interaction.options.find(e => e.getAttribute(\"data-type\").startsWith(t) && !e.click());\n    }\n    getColorRepresentation() {\n      return this._representation;\n    }\n    getColor() {\n      return this._color;\n    }\n    getSelectedColor() {\n      return this._lastColor;\n    }\n    getRoot() {\n      return this._root;\n    }\n    disable() {\n      return this.hide(), this.options.disabled = !0, this._root.button.classList.add(\"disabled\"), this;\n    }\n    enable() {\n      return this.options.disabled = !1, this._root.button.classList.remove(\"disabled\"), this;\n    }\n  }\n  return e = e.default;\n})());\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/libs/color_pickr.min.js?");

/***/ }),

/***/ "./admin/assets/js/pages/pixelio_cart_abandon_recovery_more_admin_settings.js":
/*!************************************************************************************!*\
  !*** ./admin/assets/js/pages/pixelio_cart_abandon_recovery_more_admin_settings.js ***!
  \************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_slider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/pixelio_cart_abandon_recovery_more_slider */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_slider.js\");\n/* harmony import */ var _frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable */ \"./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js\");\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_bought_notification_on_product__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/pixelio_cart_abandon_recovery_more_bought_notification_on_product */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_bought_notification_on_product.js\");\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_exit_intent_popup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/pixelio_cart_abandon_recovery_more_exit_intent_popup */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_exit_intent_popup.js\");\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider.js\");\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_components_pixelio_cart_abandon_recovery_more_jquery_checkbox_of_slider__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_update_popup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/pixelio_cart_abandon_recovery_more_update_popup */ \"./admin/assets/js/components/pixelio_cart_abandon_recovery_more_update_popup.js\");\n/* harmony import */ var _components_pixelio_cart_abandon_recovery_more_update_popup__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_components_pixelio_cart_abandon_recovery_more_update_popup__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\njQuery(document).ready(function ($) {\n  var pixelioCartAbandonRecoveryMorePopup;\n  var pixelioCartAbandonRecoveryMoreSlider = new _components_pixelio_cart_abandon_recovery_more_slider__WEBPACK_IMPORTED_MODULE_0__.PixelioCartAbandonRecoveryMoreSlider();\n  var pixelioCartAbandonRecoveryMoreButtonPreviewClass = '.pixelio-cart-abandon-recovery-more-input-button-setting-action-preview';\n  var pixelioCartAbandonRecoveryMoreBoughtClickedOn = 'pixelio-cart-abandon-recovery-more-show-others-buy-checkbox';\n  var pixelioCartAbandonRecoveryMoreButtonEditClass = '.pixelio-cart-abandon-recovery-more-input-button-setting-action-edit';\n  var pixelioCartAbandonRecoveryMoreButtons = [pixelioCartAbandonRecoveryMoreButtonPreviewClass, pixelioCartAbandonRecoveryMoreButtonEditClass];\n  var pixelioCartAbandonRecoveryMoreSaveButtonId = 'pixelio-cart-abandon-recovery-more-save-button';\n  var pixelioCartAbandonRecoveryMoreSaveFormClass = 'pixelio-cart-abandon-recovery-more-general-settings-form';\n  addButtonsClick();\n  function addButtonsClick() {\n    pixelioCartAbandonRecoveryMoreButtons.forEach(function (className) {\n      const buttons = document.querySelectorAll(className);\n      buttons.forEach(editButton => {\n        editButton.addEventListener('click', function (event) {\n          event.preventDefault();\n          var addClass = \"-preview\";\n          if (className === pixelioCartAbandonRecoveryMoreButtonEditClass) {\n            addClass = \"-edit\";\n          }\n          if ($(this).data(\"clicked_on\") === pixelioCartAbandonRecoveryMoreBoughtClickedOn) {\n            var pixelioCartAbandonRecoveryMoreBoughtPopup = new _components_pixelio_cart_abandon_recovery_more_bought_notification_on_product__WEBPACK_IMPORTED_MODULE_2__.PixelioCartAbandonRecoveryMoreBoughtPopup(\".\" + $(this).data(\"clicked_on\") + addClass, hideSaveButton, showSaveButton, false);\n            pixelioCartAbandonRecoveryMoreBoughtPopup.pixelioCartAbandonRecoveryMoreShow();\n          } else {\n            pixelioCartAbandonRecoveryMorePopup = new _components_pixelio_cart_abandon_recovery_more_exit_intent_popup__WEBPACK_IMPORTED_MODULE_3__.PixelioCartAbandonRecoveryMorePopUp(\".\" + $(this).data(\"clicked_on\") + addClass, hideSaveButton, showSaveButton, false, null, false);\n            pixelioCartAbandonRecoveryMorePopup.pixelioCartAbandonRecoveryMoreDisabledAllButton();\n            pixelioCartAbandonRecoveryMorePopup.pixelioCartAbandonRecoveryMoreShow();\n          }\n        });\n      });\n    });\n  }\n  document.getElementById(pixelioCartAbandonRecoveryMoreSaveButtonId).addEventListener('click', function () {\n    const form = document.getElementById(pixelioCartAbandonRecoveryMoreSaveFormClass);\n    form.submit();\n  });\n  function hideSaveButton() {\n    document.getElementById(pixelioCartAbandonRecoveryMoreSaveButtonId).classList.add(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n  }\n  function showSaveButton() {\n    document.getElementById(pixelioCartAbandonRecoveryMoreSaveButtonId).classList.remove(_frontend_assets_js_var_pixelio_cart_abandon_recovery_more_variable__WEBPACK_IMPORTED_MODULE_1__.PIXELIOCARTABANDONRECOVERYMOREHIDEIT);\n  }\n  function pixelioEnhanceSettingsUI() {\n    const iconMap = [{\n      keywords: ['abandoned', 'cart', 'panier'],\n      className: 'pixelio-settings-icon-cart'\n    }, {\n      keywords: ['email', 'mail', 'notification'],\n      className: 'pixelio-settings-icon-mail'\n    }, {\n      keywords: ['gdpr', 'consent'],\n      className: 'pixelio-settings-icon-gdpr'\n    }, {\n      keywords: ['map'],\n      className: 'pixelio-settings-icon-map'\n    }, {\n      keywords: ['exclude', 'user'],\n      className: 'pixelio-settings-icon-user'\n    }, {\n      keywords: ['popup', 'pop-up'],\n      className: 'pixelio-settings-icon-popup'\n    }, {\n      keywords: ['discount', 'promo'],\n      className: 'pixelio-settings-icon-discount'\n    }, {\n      keywords: ['delete', 'uninstall'],\n      className: 'pixelio-settings-icon-trash'\n    }];\n    const $rows = $('.pixelio-cart-abandon-recovery-more-checkbox-container, .pixelio-cart-abandon-recovery-more-input-container, .pixelio-cart-abandon-recovery-more-radio-container');\n    $rows.each(function () {\n      const $row = $(this);\n      const text = $row.text().toLowerCase();\n      iconMap.forEach(function (item) {\n        if (item.keywords.some(function (keyword) {\n          return text.includes(keyword);\n        })) {\n          $row.addClass(item.className);\n        }\n      });\n    });\n  }\n  pixelioEnhanceSettingsUI();\n});\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./admin/assets/js/pages/pixelio_cart_abandon_recovery_more_admin_settings.js?");

/***/ }),

/***/ "./frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request.js":
/*!******************************************************************************************!*\
  !*** ./frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request.js ***!
  \******************************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PixelioCartAbandonRecoveryMoreAjaxRequest: function() { return /* binding */ PixelioCartAbandonRecoveryMoreAjaxRequest; }\n/* harmony export */ });\nclass PixelioCartAbandonRecoveryMoreAjaxRequest {\n  constructor() {}\n  set_uuid(response) {\n    this.setMetaContentByName(\"pixelio-uuid\", response.data);\n  }\n  get_uuid() {\n    return new Promise((resolve, reject) => {\n      const currentUuid = this.getMetaContentByName('pixelio-uuid');\n      if (currentUuid) {\n        resolve(currentUuid);\n      } else {\n        this.makeAjaxRequest(\"pixelio_cart_abandon_recovery_more_get_uuid\", new FormData(), response => {\n          this.set_uuid(response);\n          resolve(response);\n        }, error => reject(error), null, true);\n      }\n    });\n  }\n  async makeAjaxRequest(action, data, successCallback = null, failCallback = null, unknowCallback = null, isForUuid = false) {\n    data.append('action', action);\n    data.append('nonce', pixelio_ajax.pixelio_ajax_nonce);\n    if (!isForUuid) {\n      await this.get_uuid.call(this);\n    }\n    data.append('uuid', this.getMetaContentByName('pixelio-uuid'));\n    jQuery.ajax({\n      url: pixelio_ajax.pixelio_ajax_url,\n      type: 'POST',\n      data: data,\n      processData: false,\n      contentType: false,\n      dataType: 'json',\n      success: function (response) {\n        if (response.success && successCallback) {\n          successCallback(response);\n        } else {\n          failCallback ? failCallback(response) : null;\n        }\n      },\n      error: function (jqXHR) {\n        if (jqXHR.status === 404) {\n          unknowCallback ? unknowCallback() : null;\n        } else {\n          failCallback ? failCallback() : null;\n        }\n      }\n    });\n  }\n  getMetaContentByName(name) {\n    return jQuery(`meta[name=\"${name}\"]`).attr('content') || null;\n  }\n  setMetaContentByName(name, value) {\n    jQuery(`meta[name=\"${name}\"]`).attr('content', value);\n  }\n}\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./frontend/assets/js/components/pixelio_cart_abandon_recovery_more_ajax_request.js?");

/***/ }),

/***/ "./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js":
/*!*******************************************************************************!*\
  !*** ./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js ***!
  \*******************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMOREASKCONSENTDELAY: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMOREASKCONSENTDELAY; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMOREEDITCONTAINERCLASS: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMOREEDITCONTAINERCLASS; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMOREEMAILID: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMOREEMAILID; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMOREHIDEIT: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMOREHIDEIT; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMOREPREVIEWCONTAINERCLASS: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMOREPREVIEWCONTAINERCLASS; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMORETIMER: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMORETIMER; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMORETIMERCONTENTCLASS: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMORETIMERCONTENTCLASS; },\n/* harmony export */   PIXELIOCARTABANDONRECOVERYMORETIMERSELECTORCLASS: function() { return /* binding */ PIXELIOCARTABANDONRECOVERYMORETIMERSELECTORCLASS; }\n/* harmony export */ });\nconst PIXELIOCARTABANDONRECOVERYMOREHIDEIT = \"pixelio-cart-abandon-recovery-more-hide-it\";\nconst PIXELIOCARTABANDONRECOVERYMORETIMER = typeof pixelio_ajax !== 'undefined' && pixelio_ajax.timerTime ? pixelio_ajax.timerTime : 15 * 60;\nconst PIXELIOCARTABANDONRECOVERYMOREASKCONSENTDELAY = 15000;\nconst PIXELIOCARTABANDONRECOVERYMOREEMAILID = \"#pixelio-cart-abandon-recovery-more-preview-container-email-capture\";\nconst PIXELIOCARTABANDONRECOVERYMOREEDITCONTAINERCLASS = \".pixelio-cart-abandon-recovery-more-edit-container\";\nconst PIXELIOCARTABANDONRECOVERYMORETHANKSEXITCLASS = \".pixelio-cart-abandon-recovery-more-pop-up-yes-thanks-exit-popup \";\nconst PIXELIOCARTABANDONRECOVERYMORETIMERSELECTORCLASS = \".pixelio-cart-abandon-recovery-more-cart-timer\";\nconst PIXELIOCARTABANDONRECOVERYMORETIMERCONTENTCLASS = \".pixelio-cart-abandon-recovery-more-pop-up-timer-content\";\nconst PIXELIOCARTABANDONRECOVERYMOREPREVIEWCONTAINERCLASS = \"#pixelio-cart-abandon-recovery-more-preview-container-exit-popup\";\n\n//# sourceURL=webpack://pixelio-cart-abandon-recovery-more/./frontend/assets/js/var/pixelio_cart_abandon_recovery_more_variable.js?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	!function() {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = function(module) {
/******/ 			var getter = module && module.__esModule ?
/******/ 				function() { return module['default']; } :
/******/ 				function() { return module; };
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	!function() {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = function(exports, definition) {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	!function() {
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ 	}();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	!function() {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = function(exports) {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	}();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./admin/assets/js/pages/pixelio_cart_abandon_recovery_more_admin_settings.js");
/******/ 	
/******/ })()
;