{"version":3,"sources":["webpack:///./src/client/default/js/components/togglerComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["TogglerComponent","element","$storeSelectionLayer","document","querySelector","SELECTORS","storeSelectionModal","$storeSelectionButton","storeSelectionButton","$options","handler","$on","onClickHandler","bind","$el","role","addEventListener","e","actionButtonKeydownHandler","actionButtonKeyupHandler","filterbar","onFilterbarClickHandler","closeBtn","closeDropdownBtn","remove","key","infoStrip","mainHeader","filtersDropdownBtn","isApp","isCollapsedClass","this","_handlerName","name","_relatedEls","querySelectorAll","_closeHandlerName","close","_closeRelatedEls","window","isMobile","desktopOnly","classList","contains","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","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';\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 (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.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.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 }, 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.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 document.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":""}