{"version":3,"sources":["webpack:///./src/client/default/js/components/togglerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["storeLayerTrap","TogglerComponent","_BaseComponent","element","_this","_classCallCheck","_callSuper","$storeSelectionLayer","document","querySelector","SELECTORS","storeSelectionModal","$storeSelectionButton","storeSelectionButton","$options","handler","$on","onClickHandler","bind","$el","role","addEventListener","e","actionButtonKeydownHandler","actionButtonKeyupHandler","expandible","ariaExpanded","filterbar","onFilterbarClickHandler","closeBtn","closeDropdownBtn","remove","_ref","key","_inherits","_createClass","get","infoStrip","mainHeader","filtersDropdownBtn","isApp","isCollapsedClass","this","_handlerName","name","_relatedEls","querySelectorAll","concat","_closeHandlerName","close","_closeRelatedEls","value","window","isMobile","desktopOnly","classList","contains","CLASSES","add","EMIT","CUSTOM_MESSAGES","UPDATE_CART_EVENTS","loadMinicart","eventSend","targetElement","trap","focusTrap","initialFocus","clickOutsideDeactivates","activate","_this2","refinementAccordion","target","closest","refinementBlocks","isDesktop","forEach","blockElement","titleElement","titleElementName","getAttribute","currentTitleElementName","ariaPressed","_this3","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","_this4","_toConsumableArray","toggle","_this5","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","_BaseGiaComponent","_componentElement","_checkMessages","compOptions","options","_objectSpread","Object","keys","filter","entry","optionValue","cleanEntry","cleanOptionKey","JSON","parse","convertType","deepFreeze","events","cb","arguments","length","undefined","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    };\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          titleElement.ariaPressed = false;\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      this.$el.ariaPressed = false;\n      this.$el.ariaDisabled = false;\n    }\n    if (this.$options.expandible) {\n      this.$el.ariaExpanded = 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') compo.ariaPressed = false;\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          toggle.ariaPressed = false;\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        this.$el.ariaPressed = true;\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')) compo.ariaPressed = true;\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') compo.ariaPressed = false;\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) {\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":""}