{"version":3,"sources":["webpack:///./src/client/default/js/components/trackingCookieComponent.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./src/client/default/js/libs/Axios.js"],"names":["trackingCookieComponent","element","$el","dataset","caonline","document","cookie","indexOf","classList","contains","className","modal","this","EMIT","CUSTOM_MESSAGES","MODAL_EVENTS","show","selector","$options","modalclass","$on","e","a","URL","clickedValue","target","textContent","close","url","get","data","success","pushToDataLayer","querySelector","SELECTORS","consent","window","dataLayer","push","event","cookie_consent","BaseComponent","_componentElement","setAttribute","_checkMessages","compOptions","options","Object","keys","filter","entry","includes","forEach","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","getAttribute","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","body","error","icon","setTimeout","hide","option","optionReturn","key","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent","axios","Axios","create","transformRequest","headers","skiptransform","entries","formData","FormData","value","append","recaptchaToken","googleRecaptchaAction","googleRecaptchaClientSide","Promise","resolve","reject","grecaptcha","ready","execute","action","then","token","defaults","common","interceptors","request","use","config","googleRecaptchaToken","response","commonInterface","CommonInterface","pushState","replaceState","history","redirectUrl","location","href","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-trackingCookieComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { get } from '../libs/Axios';\n\nexport default class trackingCookieComponent extends BaseComponent {\n get SELECTORS() {\n return {\n modal: '.consent-tracking-modal'\n };\n }\n\n constructor(element) {\n super(element);\n\n if (!this.$el.dataset.caonline) {\n return;\n }\n if ((document.cookie.indexOf('COOKIE_POLICY_OK=true') > -1 || document.cookie.indexOf('sfcc-consent=true') > -1) && !this.$el.classList.contains('consented')) {\n this.$el.className += ' consented';\n }\n if (\n (document.cookie.indexOf('COOKIE_POLICY_OK') == -1 || document.cookie.indexOf('sfcc-consent') > -1) &&\n !this.$el.classList.contains('consented') &&\n this.$el.classList.contains('api-true')\n ) {\n //this.showModal();\n //this.handleClick();\n }\n }\n\n showModal() {\n this.EMIT(this.CUSTOM_MESSAGES.MODAL_EVENTS.show, {\n selector: this.$options.modal,\n className: this.$options.modalclass\n });\n }\n\n handleClick() {\n this.$on(\n 'click.btnCookies',\n async (e) => {\n if (document.URL.indexOf('volantino') != -1) {\n var clickedValue = e.target.textContent.indexOf('Sì') != -1 ? 'true' : 'false';\n document.cookie = 'COOKIE_POLICY_OK=' + clickedValue + '; max-age=' + 60 * 60 * 24 * 365 + '; domain=carrefour.it';\n document.cookie = 'sfcc-consent=' + clickedValue + '; max-age=' + 60 * 60 * 24 * 365 + '; domain=carrefour.it';\n this.EMIT(this.CUSTOM_MESSAGES.MODAL_EVENTS.close, {});\n } else {\n const url = e.target.dataset.url;\n const { data } = await get(url);\n if (data.success) {\n this.EMIT(this.CUSTOM_MESSAGES.MODAL_EVENTS.close, {});\n this.pushToDataLayer(url.indexOf('consent=true') > 0);\n }\n }\n },\n document.querySelector(this.SELECTORS.modal)\n );\n }\n\n pushToDataLayer(consent) {\n if (window.dataLayer) {\n if (consent) {\n window.dataLayer.push({\n event: 'cookieAccepted'\n });\n window.dataLayer.push({\n cookie_consent: true\n });\n } else {\n window.dataLayer.push({\n cookie_consent: false\n });\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":""}