{"version":3,"sources":["webpack:///./src/client/default/js/components/headerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./src/client/default/js/utilities/URLDecoder.js","webpack:///./src/client/default/js/utilities/dataLayerUtils.js"],"names":["HeaderComponent","_BaseComponent","element","_this","_classCallCheck","_callSuper","handlePostMessage","$topPage","topBar","document","createElement","setAttribute","SELECTORS","topPage","body","insertBefore","childNodes","handleScrollHeader","handleNavClick","_inherits","_createClass","key","get","main","externalMain","logoutBtn","collapsed","_defineProperty","this","CUSTOM_MESSAGES","BREAKPOINTER","BREAKPOINT_CHANGE","onBreakpointChange","_topBar","$el","querySelector","_topPage","concat","_main","undefined","value","addEventListener","event","_window$webkit","window","webkit","messageHandlers","cordova_iab","postMessage","JSON","stringify","action","flag","classList","CLASSES","_this2","setTopBarHeight","IntersectionObserver","entries","checkHeaderPosition","intersectionRatio","threshold","observe","style","setProperty","$topBar","offsetHeight","_this3","Array","from","$main","children","forEach","headerElement","type","className","includes","getElementsByTagName","singleLink","$on","e","isPayback","target","parentElement","contains","link","area","url","href","text","innerText","sendNavEventToDataLayer","BaseComponent","_BaseGiaComponent","_componentElement","_checkMessages","compOptions","options","_objectSpread","dataset","Object","keys","filter","entry","optionValue","cleanEntry","cleanOptionKey","parse","replace","convertType","deepFreeze","getAttribute","events","cb","arguments","length","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","EMIT","LOADER_EVENTS","show","error","icon","setTimeout","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent","getPathName","pathName","dontUseCustomPathName","list","urlPathNameTable","split","urlPathNameOrSandbox","toString","endsWith","indexOf","replaceAll","parsePathName","getCustomPathName","console","log","sendAddOrRemoveProductToDataLayer","eventName","productImpressions","price","breadcrumbs","promotionInfo","dataLayer","dataLayerObj","ecommerce","items","item_id","id","item_name","name","item_brand","brand","promotion_name","quantity","item_type","dimension53","appendItemCategories","appendPriceAndDiscount","appendListIdAndName","cardSize","appendCardSize","push","sendProductClickEventToDataLayer","productToPush","currencycode","event_category","event_action","event_label","product_name","currencyCode","click","actionField","products","sendSelectItemEventToDataLayer","product","tileIndex","productName","qtyincart","index","itemType","item_list_id","sendSelectPromotionEventToDataLayer","promotion_id","creative_name","location_id","sales","sendAddShippingInfoToDataLayer","shippingMethod","shipping_tier","getSelectedShippingMethodID","map","isInternal","depth","sendErrorEventToDataLayer","errorLocation","error_name","error_location","event_detail","sendFormInvalidEventToDataLayer","formValidityObj","formId","eventDetail","detail","errors","inputField","join","method","item_category","htmlValue","item_category2","item_category3","item_category4","discount","toFixed","itemListName","location","pathname","item_list_name","size"],"mappings":"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","file":"js/component-headerComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport 'intersection-observer';\nimport { sendNavEventToDataLayer } from '../utilities/dataLayerUtils';\n\nexport default class HeaderComponent extends BaseComponent {\n get SELECTORS() {\n return {\n topBar: '.top-bar',\n topPage: 'top-page',\n main: '.header-main',\n externalMain: '.header-external',\n logoutBtn: '.header-my-account-bottom'\n };\n }\n\n get CLASSES() {\n return {\n collapsed: 'collapsed'\n };\n }\n\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.BREAKPOINTER.BREAKPOINT_CHANGE]: this.onBreakpointChange\n };\n }\n\n constructor(element) {\n super(element);\n this.handlePostMessage();\n if (!this.$topPage) {\n const topBar = document.createElement('div');\n topBar.setAttribute('id', this.SELECTORS.topPage);\n document.body.insertBefore(topBar, document.body.childNodes[0]);\n }\n this.handleScrollHeader();\n this.handleNavClick();\n }\n\n /**\n * @returns {HTMLElement | undefined}\n */\n get $topBar() {\n if (!this._topBar) this._topBar = /** @type {HTMLElement} */ (this.$el.querySelector(this.SELECTORS.topBar));\n return this._topBar;\n }\n\n /**\n * @returns {HTMLElement | undefined}\n */\n get $topPage() {\n if (!this._topPage) this._topPage = /** @type {HTMLElement} */ (document.querySelector(`#${this.SELECTORS.topPage}`));\n return this._topPage;\n }\n\n /**\n * @returns {HTMLElement | undefined}\n */\n get $main() {\n if (!this._main) this._main = /** @type {HTMLElement} */ (this.$el.querySelector(this.SELECTORS.main));\n if (this._main == undefined) {\n this._main = this.$el.querySelector(this.SELECTORS.externalMain);\n }\n return this._main;\n }\n\n handlePostMessage() {\n let logoutBtn = document.querySelector(this.SELECTORS.logoutBtn);\n\n logoutBtn?.addEventListener('click', (event) => {\n window.webkit?.messageHandlers.cordova_iab.postMessage(JSON.stringify({ action: 'LOGOUT' }));\n });\n }\n\n checkHeaderPosition(flag) {\n this.$el.classList[flag ? 'add' : 'remove'](this.CLASSES.collapsed);\n }\n\n handleScrollHeader() {\n if (!this.$topPage) return;\n this.setTopBarHeight();\n var observer = new IntersectionObserver(\n (entries) => {\n this.checkHeaderPosition(entries[0].intersectionRatio === 0);\n },\n { threshold: [0, 1] }\n );\n\n observer.observe(this.$topPage);\n }\n\n onBreakpointChange() {\n this.setTopBarHeight();\n }\n\n setTopBarHeight() {\n this.$el.style.setProperty('--top-bar-height', `${this.$topBar ? -1 * this.$topBar.offsetHeight : 0}px`);\n }\n handleNavClick() {\n Array.from(this.$main.querySelector('.container').children).forEach((headerElement) => {\n let type = 'right_section';\n if (headerElement.className.includes('header-logo')) {\n type = 'logo';\n } else if (headerElement.className.includes('navigation')) {\n type = 'main_nav';\n }\n let allSingleLinks = Array.from(headerElement.getElementsByTagName('a'));\n allSingleLinks.forEach((singleLink) => {\n this.$on(\n 'click',\n function(e) {\n var isPayback = e.target.parentElement.classList.contains('payback__text') || e.target.parentElement.classList.contains('payback__badge');\n let link = {\n area: 'header',\n type: isPayback ? 'generic_button' : type,\n url: singleLink.href ? singleLink.href : '',\n text: singleLink.innerText ? singleLink.innerText : '',\n isPayback: isPayback\n };\n sendNavEventToDataLayer(link);\n },\n singleLink\n );\n });\n });\n if (this.$topBar) {\n let allTopBarLinks = Array.from(this.$topBar.getElementsByTagName('a'));\n allTopBarLinks.forEach((singleLink) => {\n this.$on(\n 'click',\n function(e) {\n let link = {\n area: 'top_bar',\n type: 'portal',\n url: singleLink.href ? singleLink.href : '',\n text: singleLink.innerText ? singleLink.innerText : ''\n };\n sendNavEventToDataLayer(link);\n },\n singleLink\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","/**\n * @property {string} pathName\n * @property {boolean} dontUseCustomPathName\n *\n * @returns {string}\n */\nexport function getPathName(pathName, dontUseCustomPathName) {\n let list = dontUseCustomPathName === 'true' ? dontUseCustomPathName : getCustomPathName(pathName);\n console.log('URLDecoder list: ' + list);\n return list;\n}\n\nfunction getCustomPathName(pathName) {\n let urlPathNameTable = pathName.split('/');\n let urlPathNameOrSandbox = urlPathNameTable[1] === 's' ? 'isSandbox' : urlPathNameTable;\n return urlPathNameTable[1].length === 0\n ? 'homepage'\n : urlPathNameTable[1] === 'p' || urlPathNameTable[1] === 'dettaglio-prodotto'\n ? 'product-page'\n : parsePathName(urlPathNameOrSandbox);\n}\n\nfunction parsePathName(value) {\n let str = value.toString();\n\n if (str.endsWith(',')) {\n str = str.slice('', -1);\n }\n if (str.endsWith('.html')) {\n str = str.slice('', -5);\n }\n if (str.indexOf(',') == 0) {\n str = str.slice(1);\n }\n\n return str.replaceAll(',', '/');\n}\n","import { getPathName } from '../utilities/URLDecoder';\n\nexport var sendAddOrRemoveProductToDataLayer = function(eventName, productImpressions, price, breadcrumbs, promotionInfo) {\n if (!eventName || !productImpressions) {\n return;\n }\n if (window.dataLayer) {\n let dataLayerObj = {\n event: eventName,\n ecommerce: {\n items: [\n {\n item_id: productImpressions.id,\n item_name: productImpressions.name,\n item_brand: productImpressions.brand,\n promotion_name: promotionInfo && promotionInfo.name ? promotionInfo.name : '',\n quantity: productImpressions.quantity || 1,\n item_type: productImpressions.dimension53\n }\n ]\n }\n };\n if (breadcrumbs) {\n appendItemCategories(breadcrumbs, dataLayerObj.ecommerce.items[0]);\n }\n if (price) {\n appendPriceAndDiscount(price, dataLayerObj.ecommerce.items[0]);\n }\n appendListIdAndName(dataLayerObj.ecommerce.items[0]);\n if (productImpressions.cardSize) {\n appendCardSize(productImpressions.cardSize, dataLayerObj.ecommerce.items[0]);\n }\n window.dataLayer.push(dataLayerObj);\n }\n};\n\nexport var sendProductClickEventToDataLayer = function(productToPush, currencycode, list) {\n if (!window.dataLayer) return;\n window.dataLayer.push({\n event: 'product click',\n event_category: 'ecommerce',\n event_action: 'Product Click',\n event_label: productToPush.product_name,\n ecommerce: {\n currencyCode: currencycode,\n click: {\n actionField: {\n list: list\n },\n products: [productToPush]\n }\n }\n });\n};\n\nexport var sendSelectItemEventToDataLayer = function(product, breadcrumbs, tileIndex) {\n if (!window.dataLayer) return;\n let dataLayerObj = {\n event: 'select_item',\n ecommerce: {\n items: [\n {\n item_id: product.id,\n item_name: product.productName,\n promotion_name: product.promotionInfo && product.promotionInfo.name ? product.promotionInfo.name : '',\n item_brand: product.brand,\n quantity: product.qtyincart,\n index: tileIndex,\n item_type: product.itemType\n }\n ]\n }\n };\n if (product.cardSize) {\n dataLayerObj.ecommerce.items[0].item_list_id = product.cardSize;\n }\n if (breadcrumbs) {\n appendItemCategories(breadcrumbs, dataLayerObj.ecommerce.items[0]);\n }\n if (product.price) {\n appendPriceAndDiscount(product.price, dataLayerObj.ecommerce.items[0]);\n }\n appendListIdAndName(dataLayerObj.ecommerce.items[0]);\n window.dataLayer.push(dataLayerObj);\n};\n\nexport var sendSelectPromotionEventToDataLayer = function(product) {\n if (!window.dataLayer) return;\n if ((product.promotionInfo && product.promotionInfo.name) || (product.price && product.price.list && product.price.list)) {\n let dataLayerObj = {\n event: 'select_promotion',\n ecommerce: {\n items: [\n {\n item_id: product.id,\n item_name: product.productName,\n promotion_name: product.promotionInfo && product.promotionInfo.name ? product.promotionInfo.name : '',\n promotion_id: product.promotionInfo && product.promotionInfo.id ? product.promotionInfo.id : product.promotionInfo.name ? product.promotionInfo.name : '',\n creative_name: 'product card',\n location_id: 'product listing',\n price: product.price.sales.value,\n item_type: product.itemType\n }\n ]\n }\n };\n window.dataLayer.push(dataLayerObj);\n }\n};\n\nexport var getItemListName = function(breadcrumbs) {\n var itemListName = '';\n for (let i = 0; i < breadcrumbs.length; i++) {\n itemListName = itemListName + breadcrumbs[i].categoryId;\n if (i + 1 !== breadcrumbs.length) {\n itemListName = itemListName + '/';\n }\n }\n return itemListName;\n};\n\nexport var sendAddShippingInfoToDataLayer = function(products, shippingMethod) {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'add_shipping_info',\n ecommerce: {\n shipping_tier: getSelectedShippingMethodID(shippingMethod),\n items: products.map((product) => {\n var breadcrumbs = product.breadcrumbs;\n let dataLayerObj = {\n item_id: product.id,\n item_name: product.productName,\n item_brand: product.brand,\n quantity: product.qtyincart,\n item_type: product.itemType\n };\n appendItemCategories(breadcrumbs, dataLayerObj);\n appendPriceAndDiscount(product.price, dataLayerObj);\n return dataLayerObj;\n })\n }\n });\n }\n};\n\nexport var sendNavEventToDataLayer = function(link) {\n if (!window.dataLayer) return;\n let isInternal = !link.url || link.url.includes('/s/carrefour-IT/') || link.url.includes('carrefour.it/');\n window.dataLayer.push({\n event: link.isPayback ? 'button_click' : 'nav_click',\n area: link.area,\n type: link.type,\n action: isInternal ? 'redirect_internal' : 'outbound',\n depth: 'level_0',\n text: link.text\n });\n};\nexport var sendErrorEventToDataLayer = function(errorLocation, error) {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'error',\n error_name: error,\n error_location: errorLocation,\n event_detail: error\n });\n }\n};\n\nexport var sendFormInvalidEventToDataLayer = function(formValidityObj, formId) {\n if (window.dataLayer) {\n let eventDetail = [];\n if (formValidityObj && formValidityObj.detail && formValidityObj.detail.errors) {\n eventDetail = formValidityObj.detail.errors.map((inputField) => {\n return inputField.id;\n });\n }\n window.dataLayer.push({\n event: 'error',\n error_name: 'form_filed_error',\n error_location: formId ? formId : formValidityObj && formValidityObj.target && formValidityObj.target.id ? formValidityObj.target.id : 'form',\n event_detail: eventDetail.join('|')\n });\n }\n};\n\nvar getSelectedShippingMethodID = function(method) {\n switch (method) {\n case 'pickup_in_store':\n return 'click_and_collect';\n case 'drive':\n return 'click_and_collect_drive';\n case 'deliveryExpress':\n return 'home_delivery_same_day';\n case 'delivery':\n return 'home_delivery_next_day';\n case 'deliverySatellite':\n return 'home_delivery_next_day';\n\n default:\n return null;\n }\n};\n\nlet appendItemCategories = function(breadcrumbs, dataLayerObj) {\n dataLayerObj.item_category = breadcrumbs && breadcrumbs.length > 1 ? breadcrumbs[1].htmlValue.replace(/`/g, \"'\") : '';\n dataLayerObj.item_category2 = breadcrumbs && breadcrumbs.length > 2 ? breadcrumbs[2].htmlValue.replace(/`/g, \"'\") : '';\n dataLayerObj.item_category3 = breadcrumbs && breadcrumbs.length > 3 ? breadcrumbs[3].htmlValue.replace(/`/g, \"'\") : '';\n dataLayerObj.item_category4 = breadcrumbs && breadcrumbs.length > 4 ? breadcrumbs[4].htmlValue.replace(/`/g, \"'\") : '';\n};\n\nlet appendPriceAndDiscount = function(price, dataLayerObj) {\n dataLayerObj.discount = price.list && price.list.value ? (price.list.value - price.sales.value).toFixed(2) : '';\n dataLayerObj.price = price.sales.value;\n};\n\nlet appendListIdAndName = function(dataLayerObj) {\n var itemListName;\n if (document.location.pathname.indexOf('wishlist') > 0) {\n itemListName = 'le_mie_liste';\n } else if (dataLayerObj.item_list_id) {\n itemListName = getPathName(document.location.pathname, false) + dataLayerObj.item_list_id;\n } else {\n itemListName = getPathName(document.location.pathname, false);\n }\n if (document.querySelector('.minicart-sidebar-wrapper.toggleActive')) {\n dataLayerObj.item_list_id = 'mini-cart';\n dataLayerObj.item_list_name = 'mini-cart';\n } else if (document.querySelector('.zero-search-results')) {\n dataLayerObj.item_list_id = 'searchresult_0';\n dataLayerObj.item_list_name = 'searchresult_0';\n } else {\n dataLayerObj.item_list_id = itemListName;\n dataLayerObj.item_list_name = itemListName;\n }\n};\n\nexport var appendCardSize = function(size, dataLayerObj) {\n var itemListName;\n let pathName = getPathName(document.location.pathname, false);\n if (size === 'Half Width') {\n itemListName = pathName + '_card_single';\n } else {\n itemListName = pathName + '_card_double';\n }\n if (dataLayerObj) {\n dataLayerObj.item_list_id = itemListName;\n dataLayerObj.item_list_name = itemListName;\n } else {\n return itemListName;\n }\n};\n"],"sourceRoot":""}