{"version":3,"sources":["webpack:///./src/client/default/js/components/headerDropdown.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./src/client/default/js/libs/Axios.js","webpack:///./src/client/default/js/utilities/URLDecoder.js","webpack:///./src/client/default/js/utilities/dataLayerUtils.js"],"names":["HeaderDropdown","element","setState","isOpen","trap","handleEscapeTrigger","isMobileApp","$options","name","$on","openDropdown","bind","$el","$triggers","e","preventDefault","appPostMessage","action","dropdown","triggers","loginBtn","this","CUSTOM_MESSAGES","BREAKPOINTER","BREAKPOINT_CHANGE","resetDropdown","_dropdown","querySelector","SELECTORS","_buttons","querySelectorAll","document","addEventListener","key","closeDropdown","currentTarget","classList","contains","getAttribute","EMIT","DROPDOWN_EVENTS","toclear","click","map","b","remove","ariaExpanded","renderLoginPopup","add","$dropdown","dataset","dropdownClass","link","area","type","url","text","innerText","sendNavEventToDataLayer","setModalTrap","target","setTimeout","targetElement","parentElement","setAttribute","focusTrap","clickOutsideDeactivates","activate","deactivate","changes","handleOpen","INTERACTION","PUSH","REMOVE","id","close","addClasses","clickOutsite","body","BODY","TOGGLE_OVERLAY","overlayNoHeader","scroll","el","a","containers","length","logged","recaptchaPublicKey","get","data","script","createElement","src","async","head","appendChild","forEach","c","innerHTML","console","error","BaseComponent","_componentElement","_checkMessages","compOptions","options","Object","keys","filter","entry","includes","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","icon","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent","axios","Axios","create","transformRequest","headers","skiptransform","entries","formData","FormData","value","append","recaptchaToken","googleRecaptchaAction","googleRecaptchaClientSide","Promise","resolve","reject","window","grecaptcha","ready","execute","then","token","defaults","common","interceptors","request","use","config","googleRecaptchaToken","response","commonInterface","CommonInterface","pushState","replaceState","history","redirectUrl","location","href","hrefUrl","paybackParam","isPaybackPopupActive","indexOf","trialParam","subscriptionTrialModalNotEligibleAfterLogin","fromEntries","res","notificationPush","showNotification","pushPromoPre","orderedPush","sort","promoA","promoB","rank","notifications","pushPromoPost","CancelToken","post","all","spread","getPathName","pathName","dontUseCustomPathName","list","urlPathNameTable","split","urlPathNameOrSandbox","toString","endsWith","replaceAll","parsePathName","getCustomPathName","log","sendAddOrRemoveProductToDataLayer","eventName","productImpressions","price","breadcrumbs","promotionInfo","dataLayer","dataLayerObj","event","ecommerce","items","item_id","item_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","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","isInternal","isPayback","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","pathname","item_list_name","size"],"mappings":"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","file":"js/component-headerDropdown-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { appPostMessage } from '../utilities/postMessage';\nimport * as focusTrap from 'focus-trap';\nimport { sendNavEventToDataLayer } from '../utilities/dataLayerUtils';\nimport { get } from '../libs/Axios';\n\nexport default class HeaderDropdown extends BaseComponent {\n  constructor(element) {\n    super(element);\n    this.setState({ isOpen: false });\n    this.trap = null;\n    this.handleEscapeTrigger();\n\n    var isMobileApp = this.$options.isMobileApp;\n    var name = this.$options.name;\n\n    if (isMobileApp && (name == null || name == 'undefined')) {\n      this.$on('click', (e) => {\n        //location.href=loginUrl;\n        e.preventDefault();\n        appPostMessage({ action: 'OPEN_LOGIN' });\n      });\n    } else {\n      this.$on('click', this.openDropdown.bind(this), this.$el, this.$triggers);\n    }\n  }\n\n  get SELECTORS() {\n    return {\n      dropdown: '.header-dropdown-panel',\n      triggers: '.header-dropdown-trigger',\n      loginBtn: '.header-button-login'\n    };\n  }\n\n  get Messages() {\n    return {\n      [this.CUSTOM_MESSAGES.BREAKPOINTER.BREAKPOINT_CHANGE]: this.resetDropdown\n    };\n  }\n\n  /** @return {HTMLElement} */\n  get $dropdown() {\n    if (!this._dropdown) this._dropdown = /** @type {HTMLElement} */ (this.$el.querySelector(this.SELECTORS.dropdown));\n    return this._dropdown;\n  }\n\n  /** @return {HTMLButtonElement[]} */\n  get $triggers() {\n    if (!this._buttons) this._buttons = /** @type {HTMLButtonElement[]} */ ([...this.$el.querySelectorAll(this.SELECTORS.triggers)]);\n    return this._buttons;\n  }\n\n  handleEscapeTrigger() {\n    document.addEventListener('keydown', ({ key }) => {\n      if (key === 'Escape') {\n        this.closeDropdown();\n      }\n    });\n  }\n\n  openDropdown(e) {\n    if (e.currentTarget.classList.contains('active')) {\n      this.closeDropdown();\n      return;\n    }\n\n    if (e.currentTarget.getAttribute('data-dropdown-class') == 'header-user') {\n      this.EMIT(this.CUSTOM_MESSAGES.DROPDOWN_EVENTS.toclear, {});\n    }\n\n    if (\n      document.querySelector('.editorial-dropdown') &&\n      document.querySelector('.editorial-dropdown').classList.contains('active') &&\n      !e.currentTarget.classList.contains('editorial-dropdown')\n    ) {\n      document\n        .querySelector('.editorial-dropdown')\n        .querySelector('.header-dropdown-trigger.active')\n        .click();\n    }\n\n    if (document.querySelector('.header-my-account').classList.contains('active') && !e.currentTarget.classList.contains('header-my-account')) {\n      document\n        .querySelector('.header-my-account')\n        .querySelector('.header-dropdown-trigger.active')\n        .click();\n    }\n\n    this.$triggers.map((b) => {\n      b.classList.remove('active');\n      b.ariaExpanded = false;\n    });\n\n    //TODO check if is login popup, ajax call + inject html response into\n    // let url = //deWrapper?.dataset.optionEndpoint;\n    // const { data } = url ? await get(url) : null;\n    this.renderLoginPopup(e.currentTarget);\n\n    e.currentTarget.classList.add('active');\n    e.currentTarget.ariaExpanded = true;\n    this.$dropdown.dataset.dropdownClass = e.currentTarget.dataset?.dropdownClass ? e.currentTarget.dataset.dropdownClass : '';\n    this.setState({ isOpen: true });\n    let link = {\n      area: 'header',\n      type: 'right_section',\n      url: '',\n      text: e.currentTarget.innerText ? e.currentTarget.innerText : ''\n    };\n    sendNavEventToDataLayer(link);\n    this.setModalTrap(e.currentTarget);\n  }\n  setModalTrap(target) {\n    setTimeout(() => {\n      let targetElement = target.parentElement.querySelector(this.SELECTORS.dropdown);\n      targetElement.setAttribute('aria-labelledby', target.getAttribute('data-id'));\n      targetElement.setAttribute('aria-modal', true);\n      this.trap = focusTrap.createFocusTrap(targetElement, { clickOutsideDeactivates: true });\n      this.trap.activate();\n    }, 200);\n  }\n\n  closeDropdown() {\n    this.setState({ isOpen: false });\n    if (this.trap) this.trap.deactivate();\n  }\n\n  stateChange(changes) {\n    if ('isOpen' in changes) {\n      this.handleOpen(changes.isOpen);\n    }\n  }\n\n  handleOpen(isOpen) {\n    this.EMIT(\n      isOpen ? this.CUSTOM_MESSAGES.INTERACTION.PUSH : this.CUSTOM_MESSAGES.INTERACTION.REMOVE,\n      isOpen ? { id: 'headerDropdown', close: this.closeDropdown.bind(this) } : {}\n    );\n    this.addClasses(isOpen);\n    this[isOpen ? '$on' : '$off']('click.outsite', isOpen ? this.clickOutsite.bind(this) : document.body, document.body);\n    this.EMIT(this.CUSTOM_MESSAGES.BODY.TOGGLE_OVERLAY, isOpen ? { overlayNoHeader: true, scroll: false } : {});\n  }\n\n  addClasses(isOpen) {\n    this.$el.classList[isOpen ? 'add' : 'remove']('active');\n    this.$dropdown.classList[isOpen ? 'add' : 'remove']('open');\n    if (!isOpen) {\n      this.$triggers.map((b) => {\n        b.classList.remove('active');\n        b.ariaExpanded = false;\n      });\n    }\n  }\n\n  clickOutsite(e) {\n    if (!this.$el.contains(e.target)) {\n      this.setState({ isOpen: false });\n    }\n  }\n\n  resetDropdown() {\n    this.closeDropdown();\n    this.EMIT(this.CUSTOM_MESSAGES.BODY.TOGGLE_OVERLAY, {});\n  }\n\n  async renderLoginPopup(el) {\n    let containers = document.querySelectorAll('.header-my-account-container');\n    if (containers && containers.length > 0) {\n      let logged = containers[0].getAttribute('data-option-auth');\n      let recaptchaPublicKey = containers[0].getAttribute('data-option-recaptcha-public-key');\n      let boolLogged = logged === 'true';\n      if (!boolLogged) {\n        let action = el.getAttribute('data-option-login-url');\n        try {\n          const { data } = await get(action, {});\n          if (data) {\n            const script = document.createElement('script');\n            script.src = 'https://www.google.com/recaptcha/api.js?render=' + recaptchaPublicKey;\n            script.async = true;\n            document.head.appendChild(script);\n            containers.forEach(function(c) {\n              c.innerHTML = data;\n            });\n          }\n        } catch (err) {\n          console.error(err);\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","/**\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":""}