{"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":""}