{"version":3,"sources":["webpack:///./src/client/default/js/components/togglerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["storeLayerTrap","TogglerComponent","element","$storeSelectionLayer","document","querySelector","SELECTORS","storeSelectionModal","$storeSelectionButton","storeSelectionButton","$options","handler","$on","onClickHandler","bind","$el","role","addEventListener","e","actionButtonKeydownHandler","actionButtonKeyupHandler","expandible","classList","contains","ariaExpanded","filterbar","onFilterbarClickHandler","closeBtn","closeDropdownBtn","remove","key","infoStrip","mainHeader","filtersDropdownBtn","isApp","isCollapsedClass","shippingCostButton","this","_handlerName","name","_relatedEls","querySelectorAll","_closeHandlerName","close","_closeRelatedEls","window","isMobile","desktopOnly","CLASSES","add","EMIT","CUSTOM_MESSAGES","UPDATE_CART_EVENTS","loadMinicart","eventSend","targetElement","trap","focusTrap","initialFocus","clickOutsideDeactivates","activate","refinementAccordion","target","closest","refinementBlocks","isDesktop","forEach","blockElement","titleElement","titleElementName","getAttribute","currentTitleElementName","ariaPressed","deactivate","ariaModal","removeAttribute","_uxa","push","location","pathname","hash","replace","appPostMessage","action","includes","tagName","ariaDisabled","closeMinicart","backdrop","BACKDROP_EVENTS","animate","delay","setTimeout","body","delayname","parseInt","componentsEls","compo","focus","toggleName","toggle","setAttribute","closeOtherDeliveryToggles","gaeventcategory","gaeventaction","TRACKING_EVENTS","update","eventCategory","eventAction","eventLabel","gaeventlabel","trackingArea","trackingType","trackingAction","trackingText","area","type","text","open","moveInfostrip","scrollTo","match","insertBefore","firstChild","dataset","elfocus","closeComponentsEls","event","keyCode","preventDefault","BaseComponent","_componentElement","_checkMessages","compOptions","options","Object","keys","filter","entry","optionValue","cleanEntry","cleanOptionKey","JSON","parse","convertType","deepFreeze","events","cb","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","error","icon","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"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","file":"js/component-togglerComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { match } from '../utilities/resolutionHandler';\nimport { appPostMessage } from '../utilities/postMessage';\nimport * as focusTrap from 'focus-trap';\nlet storeLayerTrap = null;\n\nexport default class TogglerComponent extends BaseComponent {\n  get SELECTORS() {\n    return {\n      infoStrip: '.information-strip.is-visible',\n      mainHeader: 'header.header',\n      closeDropdownBtn: '.js-toggle-close',\n      filtersDropdownBtn: '.js-filter-toggle-close',\n      storeSelectionModal: '#store-selection-bar',\n      storeSelectionButton: '#store-selection-button',\n      isApp: '.mobile-layout'\n    };\n  }\n\n  get CLASSES() {\n    return {\n      isCollapsedClass: 'toggleActive',\n      shippingCostButton: 'info-shipping-costs-btn'\n    };\n  }\n\n  get componentsEls() {\n    if (!this._handlerName) this._handlerName = this.$options.name;\n    this._relatedEls = document.querySelectorAll(`[data-option-name=${this._handlerName}]`);\n    return this._relatedEls;\n  }\n\n  get closeComponentsEls() {\n    if (!this._closeHandlerName && this.$options.close) this._closeHandlerName = this.$options.close;\n    this._closeRelatedEls = document.querySelectorAll(`[data-option-name=${this._closeHandlerName}]`);\n    return this._closeRelatedEls;\n  }\n\n  onClickHandler(e) {\n    if ((window.isMobile() && this.$options.desktopOnly) || (document.querySelector('body').classList.contains('cart') && this.$options.name == 'minicartLayer')) {\n      return;\n    } else {\n      const isActive = this.$el.classList.contains(this.CLASSES.isCollapsedClass);\n      if (isActive) {\n        this.remove();\n      } else {\n        this.add();\n        if (this.$options.name == 'minicartLayer') {\n          this.EMIT(this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.loadMinicart, { eventSend: true });\n          let targetElement = document.querySelector('.minicart-sidebar');\n          this.trap = focusTrap.createFocusTrap(targetElement, { initialFocus: targetElement, clickOutsideDeactivates: true });\n          this.trap.activate();\n        }\n      }\n    }\n  }\n\n  onFilterbarClickHandler(e) {\n    let refinementAccordion = e.target.closest('.refinements.accordion');\n    let refinementBlocks = refinementAccordion ? refinementAccordion.querySelectorAll('.refinement-block') : null;\n    if (refinementBlocks && window.isDesktop()) {\n      refinementBlocks.forEach((blockElement) => {\n        let titleElement = blockElement.querySelector('.refinement-title');\n        let titleElementName = '';\n        if (titleElement) titleElementName = titleElement.getAttribute('data-option-name') || '';\n        let currentTitleElementName = e.target.getAttribute('data-option-name') || '';\n        if (titleElementName && currentTitleElementName && titleElementName !== currentTitleElementName) {\n          titleElement.classList.remove(this.CLASSES.isCollapsedClass);\n          if (this.$options.expandible) {\n            titleElement.ariaExpanded = true;\n            if (titleElement.classList.contains('show-hide-refinements')) titleElement.ariaExpanded = false;\n          } else {\n            titleElement.ariaPressed = false;\n          }\n          if (blockElement.querySelector('.refinement-list')) blockElement.querySelector('.refinement-list').classList.remove(this.CLASSES.isCollapsedClass);\n        }\n      });\n    }\n  }\n\n  remove() {\n    if (storeLayerTrap) {\n      storeLayerTrap.deactivate();\n    }\n    if (this.$options.name == 'storeLayer') {\n      if (this.$storeSelectionLayer) {\n        this.$storeSelectionLayer.ariaModal = false;\n        this.$storeSelectionLayer.removeAttribute('tabindex');\n      }\n      window._uxa = window._uxa || [];\n      window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__')]);\n      appPostMessage({ action: 'CLOSE_STORELAYER' });\n    }\n    if (this.$options.name.includes('deliveryToggle') && (this.$el.tagName === 'BUTTON' || this.$el.role === 'button')) {\n      if (this.$options.expandible) {\n        this.$el.ariaExpanded = true;\n        if (this.$el.classList.contains('show-hide-refinements')) this.$el.ariaExpanded = false;\n      } else {\n        this.$el.ariaPressed = false;\n      }\n      this.$el.ariaDisabled = false;\n    }\n    if (this.$options.name == 'minicartLayer') {\n      this.EMIT(this.CUSTOM_MESSAGES.UPDATE_CART_EVENTS.closeMinicart);\n    }\n    if (this.$options.name == 'sidebarLayer' && document.querySelector(this.SELECTORS.isApp)) {\n      appPostMessage({ action: 'SHOW_HEADER' });\n    }\n    if (this.$options.backdrop) {\n      this.EMIT(this.CUSTOM_MESSAGES.BACKDROP_EVENTS.animate, {\n        action: close\n      });\n    }\n    if (this.$options.delay) {\n      setTimeout(() => {\n        document.body.classList.remove(this.$options.delayname);\n      }, parseInt(this.$options.delay));\n    }\n    document.body.classList.remove(this.$options.name);\n    this.componentsEls.forEach((compo) => {\n      compo.classList.remove(this.CLASSES.isCollapsedClass);\n      if (compo.tagName === 'BUTTON') {\n        if (this.$options.expandible) {\n          compo.ariaExpanded = true;\n          if (compo.classList.contains('show-hide-refinements') || compo.classList.contains('info-shipping-costs-btn')) compo.ariaExpanded = false;\n        } else {\n          compo.ariaPressed = false;\n        }\n      }\n    });\n\n    if (this.$options.name == 'storeLayer' && this.$storeSelectionButton) {\n      setTimeout(() => {\n        this.$storeSelectionButton.focus();\n      }, 200);\n    }\n  }\n\n  closeOtherDeliveryToggles(toggleName) {\n    let deliveryToggles = [...document.querySelectorAll(`[data-option-name^=deliveryToggle-]`)];\n\n    deliveryToggles.forEach((toggle) => {\n      if (toggle.getAttribute('data-option-name') != toggleName) {\n        toggle.classList.remove(this.CLASSES.isCollapsedClass);\n        if (toggle.tagName === 'BUTTON' || toggle.role === 'button') {\n          if (this.$options.expandible) {\n            toggle.ariaExpanded = false;\n          } else {\n            toggle.ariaPressed = false;\n          }\n          toggle.ariaDisabled = false;\n        }\n      }\n    });\n  }\n\n  add() {\n    if (this.$options.name == 'storeLayer') {\n      if (this.$storeSelectionLayer) {\n        this.$storeSelectionLayer.ariaModal = true;\n        this.$storeSelectionLayer.setAttribute('tabindex', '-1');\n      }\n      window._uxa = window._uxa || [];\n      window._uxa.push(['trackPageview', window.location.pathname + window.location.hash.replace('#', '?__') + '?cs-popin-metodo-di-consegna']);\n      appPostMessage({ action: 'OPEN_STORELAYER' });\n    }\n    if (this.$options.name.includes('deliveryToggle')) {\n      if ((this.$el.tagName === 'BUTTON' || this.$el.role === 'button') && !this.$el.closest('.franchise-service-card')) {\n        if (this.$options.expandible) {\n          this.$el.ariaExpanded = false;\n          if (this.$el.classList.contains('show-hide-refinements')) this.$el.ariaExpanded = true;\n        } else {\n          this.$el.ariaPressed = true;\n        }\n        this.$el.ariaDisabled = true;\n      }\n      this.closeOtherDeliveryToggles(this.$options.name);\n    }\n    if (this.$options.expandible) {\n      this.$el.ariaExpanded = true;\n    }\n    if (this.$options.gaeventcategory && this.$options.gaeventaction)\n      this.EMIT(this.CUSTOM_MESSAGES.TRACKING_EVENTS.update, {\n        eventCategory: this.$options.gaeventcategory,\n        eventAction: this.$options.gaeventaction,\n        eventLabel: this.$options.gaeventlabel ? this.$options.gaeventlabel : ''\n      });\n\n    if (this.$options.trackingArea && this.$options.trackingType && this.$options.trackingAction && this.$options.trackingText) {\n      this.EMIT(this.CUSTOM_MESSAGES.TRACKING_EVENTS.update, {\n        area: this.$options.trackingArea,\n        type: this.$options.trackingType,\n        action: this.$options.trackingAction,\n        text: this.$options.trackingText\n      });\n    }\n\n    if (this.$options.backdrop && !(document.querySelector(this.SELECTORS.isApp) && this.$options.name == 'storeLayer')) {\n      this.EMIT(this.CUSTOM_MESSAGES.BACKDROP_EVENTS.animate, {\n        action: open\n      });\n    }\n    if (this.$options.delay) {\n      document.body.classList.add(this.$options.delayname);\n    }\n    document.body.classList.add(this.$options.name);\n    if (this.$options.moveInfostrip && document.querySelector(this.SELECTORS.infoStrip)) {\n      window.scrollTo(0, 0);\n      document.querySelector(this.SELECTORS.mainHeader).classList.add('moveinfostrip');\n      if (match(null, 'md')) {\n        document.querySelector('.page').insertBefore(document.querySelector(this.SELECTORS.infoStrip), document.querySelector('.page').firstChild);\n      }\n    }\n\n    if (!(document.querySelector(this.SELECTORS.isApp) && this.$options.name == 'storeLayer')) {\n      this.componentsEls.forEach((compo) => {\n        //if (!(document.querySelector(this.SELECTORS.isApp) && (compo.dataset.component == 'storeSelectionComponent' || compo.dataset.component == 'togglerComponent'))) {\n        compo.classList.add(this.CLASSES.isCollapsedClass);\n        if (compo.tagName === 'BUTTON' && !compo.classList.contains('minicart-close')) {\n          if (this.$options.expandible) {\n            compo.ariaExpanded = false;\n            if (compo.classList.contains('show-hide-refinements') || compo.classList.contains('info-shipping-costs-btn')) compo.ariaExpanded = true;\n          } else {\n            compo.ariaPressed = true;\n          }\n        }\n        if (compo.dataset.elfocus) {\n          const input = document.querySelector(compo.dataset.elfocus);\n          input.focus();\n        }\n      });\n    }\n\n    if (this.$options.close) {\n      document.body.classList.remove(this.$options.close);\n      this.closeComponentsEls.forEach((compo) => {\n        compo.classList.remove(this.CLASSES.isCollapsedClass);\n        if (compo.tagName === 'BUTTON') {\n          if (this.$options.expandible) {\n            compo.ariaExpanded = true;\n            if (compo.classList.contains('show-hide-refinements') || compo.classList.contains('info-shipping-costs-btn')) compo.ariaExpanded = false;\n          } else {\n            compo.ariaPressed = false;\n          }\n        }\n      });\n    }\n    //accessibilità REPLAT-7633\n    if (this.$options.name == 'storeLayer' && this.$storeSelectionLayer)\n      setTimeout(() => {\n        this.$storeSelectionLayer.focus();\n        storeLayerTrap = focusTrap.createFocusTrap(this.$storeSelectionLayer, { clickOutsideDeactivates: true });\n        storeLayerTrap.activate();\n      }, 200);\n  }\n\n  actionButtonKeydownHandler(event) {\n    // The action button is activated by space on the keyup event, but the\n    // default action for space is already triggered on keydown. It needs to be\n    // prevented to stop scrolling the page before activating the button.\n    if (event.keyCode === 32) {\n      event.preventDefault();\n    }\n    // If enter is pressed, activate the button\n    else if (event.keyCode === 13) {\n      event.preventDefault();\n      this.onClickHandler();\n    }\n  }\n  actionButtonKeyupHandler(event) {\n    if (event.keyCode === 32) {\n      event.preventDefault();\n      this.onClickHandler();\n    }\n  }\n\n  constructor(element) {\n    super(element);\n    this.$storeSelectionLayer = document.querySelector(this.SELECTORS.storeSelectionModal);\n    this.$storeSelectionButton = document.querySelector(this.SELECTORS.storeSelectionButton);\n    if (this.$options.handler) {\n      this.$on('click', this.onClickHandler.bind(this));\n      if (this.$el.role === 'button') {\n        this.$el.addEventListener('keydown', (e) => {\n          this.actionButtonKeydownHandler(e);\n        });\n\n        this.$el.addEventListener('keyup', (e) => {\n          this.actionButtonKeyupHandler(e);\n        });\n      }\n    }\n    if (this.$options.expandible && !this.$el.classList.contains('refinement-title')) {\n      this.$el.ariaExpanded = false;\n    }\n    if (this.$options.filterbar && document.querySelector('.nds')) {\n      this.$on('click', this.onFilterbarClickHandler.bind(this));\n    }\n    this.closeBtn = this.$el.querySelector(this.SELECTORS.closeDropdownBtn);\n    if (this.closeBtn) {\n      this.closeBtn.addEventListener('click', () => {\n        this.remove();\n      });\n    }\n    this.$el.addEventListener('keydown', ({ key }) => {\n      if (key === 'Escape') {\n        this.remove();\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"],"sourceRoot":""}