{"version":3,"sources":["webpack:///./src/client/default/js/components/minicartSidebarComponent.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./src/client/default/js/libs/Axios.js"],"names":["minicartSidebarComponent","props","updated","this","CUSTOM_MESSAGES","UPDATE_CART_EVENTS","totalPriceUpdate","isUpdated","quantityUpdate","updateBadgeQty","PRODUCT_UPDATE_QTY","stateupdate","reloadAtZero","loadMinicart","getMinicart","badge","totalPrice","unavailableProduct","product","promoBannerLink","$el","querySelector","SELECTORS","addEventListener","evt","preventDefault","window","dataLayer","push","event","area","type","action","text","location","href","target","force","eventSend","toggleActive","$options","url","centsContent","innerHTML","loading","cents","EventBus","off","subTotalPriceUpdate","updateCentsContextData","value","label","getProducts","join","customerLoggedIn","customerAuthenticated","eventCategory","eventAction","eventLabel","minicart_productND","querySelectorAll","parseInt","qty","products","Array","from","map","elem","prod","classList","toString","match","replace","data","totalAmount","parseFloat","toFixed","amount","currency","language","pageType","document","parseAmount","cartThresholdWidget","dataset","optionCartThresholdWidget","remove","add","a","isCentsDiv","get","cartWrapperHtml","on","appendChild","endLoading","initPromoClickEvent","sendDatalayerEvent","console","error","message","indexOf","setTimeout","BaseComponent","element","_componentElement","setAttribute","_checkMessages","compOptions","options","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","convertType","deepFreeze","getAttribute","events","cb","elements","Bean","e","stopPropagation","one","fire","container","_loading","EMIT","LOADER_EVENTS","show","body","icon","hide","option","optionReturn","key","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent","axios","Axios","create","transformRequest","headers","skiptransform","entries","formData","FormData","append","recaptchaToken","googleRecaptchaAction","googleRecaptchaClientSide","Promise","resolve","reject","grecaptcha","ready","execute","then","token","defaults","common","interceptors","request","use","config","googleRecaptchaToken","response","commonInterface","CommonInterface","pushState","replaceState","history","redirectUrl","hrefUrl","paybackParam","isPaybackPopupActive","trialParam","subscriptionTrialModalNotEligibleAfterLogin","fromEntries","res","notificationPush","showNotification","pushPromoPre","length","orderedPush","sort","promoA","promoB","rank","notifications","pushPromoPost","CancelToken","post","all","spread"],"mappings":"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","file":"js/component-minicartSidebarComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { get } from '../libs/Axios';\nimport EventBus from '../libs/Eventbus';\n\nexport default class minicartSidebarComponent extends BaseComponent {\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.totalPriceUpdate]: this.isUpdated,\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.quantityUpdate]: this.updateBadgeQty,\n [this.CUSTOM_MESSAGES.PRODUCT_UPDATE_QTY.stateupdate]: this.reloadAtZero,\n [this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.loadMinicart]: this.getMinicart\n };\n }\n\n get SELECTORS() {\n return {\n badge: '.minicartsidebar-badge',\n totalPrice: '.minicartsidebar-price',\n unavailableProduct: '.product-unavailable-minicart',\n product: '.line-item-card',\n promoBannerLink: '.cart-promo-banner--link'\n };\n }\n\n constructor(props) {\n super(props);\n this.updated = true;\n }\n\n initPromoClickEvent() {\n this.$el.querySelector(this.SELECTORS.promoBannerLink).addEventListener('click', (evt) => {\n evt.preventDefault();\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'button_click',\n area: 'minicart',\n type: 'generic_button',\n action: 'button_click',\n text: 'Scopri di piĆ¹'\n });\n window.location.href = evt.target.href;\n });\n }\n\n getMinicart({ force, eventSend, toggleActive }) {\n if ((this.updated || force) && this.$options.url) {\n let centsContent = this.$el.querySelector('#cents-div');\n this.$el.innerHTML = '';\n this.loading(this.$el);\n if (centsContent && window.cents) {\n EventBus.off(this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.subTotalPriceUpdate, this.updateCentsContextData);\n }\n this.loadMinicart(eventSend, toggleActive, centsContent);\n this.updated = false;\n }\n }\n\n isUpdated(value) {\n this.updated = true;\n const totalPrice = this.$el.querySelector(this.SELECTORS.totalPrice);\n if (totalPrice) {\n totalPrice.innerHTML = value.value;\n }\n }\n\n sendDatalayerEvent() {\n if (window.dataLayer) {\n let productIds = this.getProducts();\n let label = productIds.join('|');\n let customerLoggedIn = this.$options.customerAuthenticated ? 'logged_view' : 'unlogged_view';\n window.dataLayer.push({\n event: 'gaEvent',\n eventCategory: 'Mini-cart',\n eventAction: customerLoggedIn,\n eventLabel: label,\n minicart_productND: !!this.$el.querySelectorAll(this.SELECTORS.unavailableProduct)\n });\n }\n }\n updateBadgeQty(value) {\n const badge = this.$el.querySelector(this.SELECTORS.badge);\n if (badge) {\n badge.innerHTML = value.value;\n }\n }\n\n reloadAtZero(value) {\n if (parseInt(value.qty) == 0) {\n this.loadMinicart();\n this.updated = false;\n }\n }\n\n getProducts() {\n let products = this.$el.querySelectorAll(this.SELECTORS.product);\n return Array.from(products).map(function(elem) {\n let prod = elem.classList.toString().match(/pid-\\d*/gm);\n return prod && prod.toString().replace('pid-', '');\n });\n }\n\n updateCentsContextData(data) {\n let totalAmount = parseFloat(parseFloat(data.value * 100, 10).toFixed(2), 10);\n window.cents('set_context_data', { amount: totalAmount, currency: 'EUR', language: 'it', pageType: 'cart' });\n let centsContent = document.querySelector('#cents-div');\n if (centsContent) {\n let cartThresholdWidget = parseInt(centsContent.dataset.optionCartThresholdWidget, 10);\n let parseAmount;\n if (data.value) {\n parseAmount = parseFloat(parseFloat(data.value, 10).toFixed(2), 10);\n }\n if (data.value && parseAmount && parseAmount >= cartThresholdWidget) {\n centsContent.classList.remove('d-none');\n } else {\n centsContent.classList.add('d-none');\n }\n }\n }\n\n async loadMinicart(eventSend, toggleActive, centsContent) {\n try {\n let isCentsDiv = centsContent ? true : false;\n const { data } = toggleActive\n ? await get(this.$options.url + '?toggleActive=' + toggleActive + '¢s=' + isCentsDiv)\n : await get(this.$options.url + '?cents=' + isCentsDiv);\n\n if (data) {\n this.$el.innerHTML = data;\n if (centsContent) {\n let cartWrapperHtml = this.$el.querySelector('.cart-wrapper');\n if (cartWrapperHtml) {\n if (window.cents) {\n EventBus.on(this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.subTotalPriceUpdate, this.updateCentsContextData);\n }\n cartWrapperHtml.appendChild(centsContent);\n }\n }\n }\n this.endLoading(this.$el);\n this.initPromoClickEvent();\n if (eventSend) {\n this.sendDatalayerEvent();\n }\n } catch (error) {\n console.error(error);\n if (error.message.indexOf('429') > -1) {\n setTimeout(() => {\n this.loadMinicart();\n }, 200);\n }\n }\n }\n}\n","/* eslint-disable new-cap */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-underscore-dangle */\n\nimport Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport BaseGiaComponent from './baseGiaComponent';\n\nexport default class BaseComponent extends BaseGiaComponent {\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return /** @type {HTMLElement} */ (this._componentElement);\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super(element);\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this._checkMessages();\n }\n\n static convertType(option) {\n let optionReturn;\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * Activate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n */\n loading(container, message) {\n this._loading = true;\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || document.body,\n message: message ?? null\n });\n }\n\n /**\n *\n * Deactivate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {Boolean} [error=false]\n * @param {String} [icon]\n */\n endLoading(container, message, error = false, icon) {\n this._loading = false;\n setTimeout(() => {\n if (!this._loading) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || document.body,\n message,\n error,\n icon\n });\n }\n }, 400);\n }\n}\n","import Axios from 'axios';\nimport CommonInterface from '../base/commonInterface';\nimport CustomMessages from '../constants/customMessages';\n\n\nconst axios = Axios.create({\n transformRequest: [function (data, headers) {\n if (headers && headers.skiptransform) {\n delete headers.skiptransform;\n return data;\n }\n if (data && Object.entries(data)) {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n formData.append(key, value);\n }\n return formData;\n }\n }],\n});\n\nconst recaptchaToken = async ({ googleRecaptchaAction, googleRecaptchaClientSide }) => new Promise((resolve, reject) => {\n window.grecaptcha.ready(() => {\n window.grecaptcha.execute(googleRecaptchaClientSide, { action: googleRecaptchaAction }).then((token) => {\n resolve(token);\n });\n });\n});\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n// Add a request interceptor\naxios.interceptors.request.use(async (config) => {\n // Do something before request is sent\n if (config.data && config.data.googleRecaptchaAction && config.data.googleRecaptchaClientSide && window.grecaptcha) {\n const token = await recaptchaToken(config.data);\n config.data.googleRecaptchaToken = token;\n return config;\n }\n return config;\n}, function (error) {\n // Do something with request error\n return Promise.reject(error);\n});\n\n// Add a response interceptor\naxios.interceptors.response.use(function (response) {\n let commonInterface = new CommonInterface();\n if (response.data && response.data.pushState || response.data.replaceState) {\n response.data.pushState && history.pushState({}, '', response.data.pushState);\n response.data.replaceState && history.replaceState({}, '', response.data.replaceState);\n if (response.data.redirectUrl) {\n setTimeout(() => {\n location.href = response.data.redirectUrl;\n }, 500);\n }\n }\n else if (response.data && response.data.redirectUrl) {\n let hrefUrl=response.data.redirectUrl;\n let paybackParam = '';\n if (response.data.isPaybackPopupActive) {\n paybackParam = hrefUrl.indexOf('?') > -1 ? '&isPaybackPopupActive=true' : '?isPaybackPopupActive=true';\n }\n hrefUrl =hrefUrl+paybackParam;\n let trialParam = '';\n if (response.data.subscriptionTrialModalNotEligibleAfterLogin) {\n trialParam = hrefUrl.indexOf('?') > -1 ? '&subscriptionTrialModalNotEligibleAfterLogin=true' : '?subscriptionTrialModalNotEligibleAfterLogin=true';\n } \n location.href = hrefUrl+trialParam;\n }\n if (response.data && response.data.error) {\n if(response.config.data instanceof FormData) {\n response.config.data = Object.fromEntries(response.config.data);\n response.config.headers['Content-Type'] = \"application/json\"\n }\n commonInterface.EMIT(`error.${response.data.error}`, {res: response});\n }\n\n if (response.data && response.data.notificationPush && response.data.notificationPush.showNotification) {\n commonInterface.EMIT(`notification:push`, response.data.notificationPush);\n }\n\n if (response.data && response.data.pushPromoPre && response.data.pushPromoPre.length > 0) {\n const orderedPush = response.data.pushPromoPre.sort(function(promoA, promoB) {\n return promoA.rank > promoB.rank ? -1 : promoB.rank > promoA.rank ? 1 : 0;\n });\n commonInterface.EMIT(`notification:pushFirstAvailable`, { notifications: orderedPush });\n }\n \n if (response.data && response.data.pushPromoPost) {\n commonInterface.EMIT(`notification:pushall`, response.data.pushPromoPost);\n }\n\n\n // Any status code that lie within the range of 2xx cause this function to trigger\n // Do something with response data\n return response;\n}, function (error) {\n if (error.response?.data && error.response?.data?.redirectUrl) {\n location.href = error.response.data.redirectUrl;\n }\n\n // Any status codes that falls outside the range of 2xx cause this function to trigger\n // Do something with response error\n return Promise.reject(error);\n});\n\nexport const { CancelToken } = Axios;\n\nexport const {\n get, post, all, spread, request\n} = axios;\n"],"sourceRoot":""}