{"version":3,"file":"component-navigationMobile.chunk.js","mappings":"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","sources":["webpack:///./assets/src/scripts/base/baseComponent.ts","webpack:///./assets/src/scripts/base/commonInterface.ts","webpack:///./assets/src/scripts/components/navigationMobile.ts","webpack:///./assets/src/scripts/utils/a11yUtils.ts","webpack:///./assets/src/scripts/utils/focusableElementUtils.ts"],"sourcesContent":["import deepFreeze from '../utils/freeze';\nimport CommonInterface from './commonInterface';\nimport Bean from 'bean';\nexport default class BaseComponent extends CommonInterface {\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super();\n this.observer = new IntersectionObserver(entries => {\n if (entries[0].isIntersecting) {\n const items = [...entries[0].target.querySelectorAll('[data-animated=\"false\"]')];\n items.forEach((item, i) => {\n setTimeout(() => {\n item.setAttribute('data-animated', 'true');\n }, 300 * i);\n });\n this.observer.unobserve(entries[0].target);\n }\n }, {\n threshold: 0.5\n });\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this.observer.observe(this._componentElement);\n }\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return this._componentElement;\n }\n get $options() {\n const compOptions = {};\n const options = Object.assign({}, 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 }\n else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n get COMPONENT_NAME() {\n return this.__proto__.constructor.name;\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 return optionReturn;\n }\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\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)\n return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e)\n e.stopPropagation();\n cb(e);\n });\n }\n else {\n Bean.on(element, events, elements, (e) => {\n if (e)\n e.stopPropagation();\n cb(e);\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 * $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 * $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 * @param {HTMLElement} [container]\n */\n loading(container, message = '') {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || this.$el,\n message\n });\n }\n /**\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {String} [icon]\n * @param {Boolean} [error=false]\n */\n endLoading(container, message, icon, error = false, time) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || this.$el,\n message,\n icon,\n error,\n time\n });\n }\n}\n","import config from 'gia/config';\nimport EventBus from '../libs/eventBus';\nimport CustomMessages from '../constants/customMessages';\nimport { getFirstFocusable, getAllFocusableElements } from '../utils/focusableElementUtils';\nexport default class CommonInterface {\n constructor() {\n config.set('log', true);\n this._grabMessages();\n }\n get CUSTOM_MESSAGES() {\n return CustomMessages;\n }\n get Messages() {\n return {};\n }\n _checkMessages() {\n for (const message in this.Messages) {\n if (window.eventQueue.get(message)) {\n const ref = this.Messages[message].bind(this);\n window.eventQueue.get(message).map((payload) => {\n ref(payload);\n });\n window.eventQueue.delete(message);\n }\n }\n }\n _grabMessages() {\n this._messages = {};\n for (const message in this.Messages) {\n if (this.Messages[message]) {\n const __ref__ = this.Messages[message].bind(this);\n this._messages[message] = __ref__;\n this.GRAB(message, __ref__);\n }\n }\n }\n _ungrabMessages() {\n for (const message in this._messages) {\n this.UNGRAB(message, this._messages[message]);\n }\n }\n objectIsEmpty(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key))\n return false;\n }\n return true;\n }\n /**\n *\n * EMIT\n *\n * @param {string} message\n * @param {Object} payload\n */\n EMIT(message, payload) {\n return EventBus.emit(message, payload);\n }\n /**\n *\n * GRAB\n *\n * @param {string} message\n * @param {Function} callBack\n */\n GRAB(message, callBack) {\n if (!callBack)\n return;\n EventBus.on(message, callBack);\n }\n /**\n *\n * UNGRAB\n *\n * @param {string} message\n * @param {Function} callBack\n */\n UNGRAB(message, callBack) {\n if (!callBack)\n return;\n EventBus.off(message, callBack);\n }\n getFirstFocusable(parent) {\n return getFirstFocusable(parent);\n }\n getFocusableElements(parent) {\n return getAllFocusableElements(parent);\n }\n _destroy() {\n this._ungrabMessages();\n }\n}\n","import a11yUtils from '../utils/a11yUtils';\nimport BaseComponent from '../base/baseComponent';\nimport customEventBus from '../libs/eventBus';\nimport customMessages from '../constants/customMessages';\nexport default class NavigationMobile extends BaseComponent {\n constructor(element) {\n super(element);\n this.subcategoryHandler();\n this.openCategoryLink();\n this.listenForBacks(); // ðŸº\n this.navigationLevel = 0;\n customEventBus.on('modal:close', (data) => {\n if (data.modalId === 'modal-navigationmobile') {\n this.closeAllSubcategories();\n }\n });\n }\n get SELECTORS() {\n return {\n modal: '.header-navigation-modal',\n panel: '.header-navigation-list',\n panelPrimary: '.header-navigation-list--primary',\n modalHeader: '.header-navigation-list-header'\n };\n }\n get CLASSESS() {\n return {\n triggerActive: 'active',\n temporaryHidden: 'temp-hidden',\n hide: 'hide'\n };\n }\n subcategoryHandler() {\n let subcategoryTriggers = this.$el.querySelectorAll('[aria-expanded]');\n let modalHeader = this.$el.querySelector(this.SELECTORS.modalHeader);\n subcategoryTriggers.forEach(trigger => {\n trigger.addEventListener('click', (e) => {\n let tgt = e.currentTarget;\n let listTgt = tgt.closest(this.SELECTORS.panel);\n listTgt.scrollTop = 0;\n tgt.setAttribute('aria-expanded', 'true');\n this.navigationLevel++;\n let panel = document.getElementById(trigger.getAttribute('aria-controls'));\n // modalHeader.classList.add(this.CLASSESS.hide);\n this.focusUpdate(panel);\n });\n });\n }\n openCategoryLink() {\n let mdlLinks = this.$el.querySelectorAll(\"[data-clicktrigger-cat-id]\");\n mdlLinks.forEach((mdlLink) => {\n mdlLink.addEventListener('click', (e) => {\n e.preventDefault();\n customEventBus.emit(customMessages.SFMC.CATEGORY.click, { category: mdlLink.dataset.clicktriggerCatId });\n window.location.href = mdlLink.getAttribute('href');\n });\n });\n }\n listenForBacks() {\n let backs = this.$el.querySelectorAll('[data-back]');\n let modalHeader = this.$el.querySelector(this.SELECTORS.modalHeader);\n backs.forEach((back) => {\n back.addEventListener('click', (e) => {\n let btn = e.currentTarget;\n let panelId = btn.closest(this.SELECTORS.panel).getAttribute('id');\n let toggle = this.$el.querySelector(`[aria-expanded=\"true\"][aria-controls=\"${panelId}\"]`);\n toggle.setAttribute('aria-expanded', 'false');\n this.navigationLevel--;\n let openSubmenu = this.$el.querySelectorAll('[aria-expanded=\"true\"]');\n if (openSubmenu.length == 0) {\n modalHeader.classList.remove(this.CLASSESS.hide);\n }\n this.focusUpdate(toggle.closest(this.SELECTORS.panel));\n });\n });\n }\n closeAllSubcategories() {\n let subcategoryTriggers = this.$el.querySelectorAll('[aria-expanded=\"true\"]');\n let modalHeader = this.$el.querySelector(this.SELECTORS.modalHeader);\n subcategoryTriggers.forEach(trigger => {\n trigger.setAttribute('aria-expanded', 'false');\n });\n modalHeader.classList.remove(this.CLASSESS.hide);\n this.navigationLevel = 0;\n this.focusUpdate();\n this.$el.querySelectorAll(this.SELECTORS.panel).forEach(el => {\n el.classList.remove('in-overflow');\n });\n }\n focusUpdate(panel = null) {\n let focusables;\n [...this.$el.getElementsByClassName(this.CLASSESS.temporaryHidden)].forEach(el => {\n el.removeAttribute('tabindex');\n el.classList.remove(this.CLASSESS.temporaryHidden);\n });\n if (this.navigationLevel !== 0) {\n let temporaryHiddenElements = a11yUtils.getAllFocusableElements(this.$el).filter(el => {\n return el.closest(this.SELECTORS.panel).id !== panel.id;\n });\n temporaryHiddenElements.forEach(el => {\n el.classList.add(this.CLASSESS.temporaryHidden);\n el.setAttribute('tabindex', '-1');\n });\n }\n this.$el.querySelectorAll(this.SELECTORS.panel).forEach(el => {\n el.classList.add('in-overflow');\n });\n if (panel) {\n panel.classList.remove('in-overflow');\n }\n }\n}\n","'use strict';\nexport default {\n keycode: {\n // http://keycode.info/\n enter: 13,\n space: 32,\n esc: 27,\n arrowUp: 38,\n arrowRight: 39,\n arrowDown: 40,\n arrowLeft: 47,\n },\n focusedElementsBeforeModal: [],\n focusableSelectors: 'button:not([disabled]), [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]',\n focusTrapOn(modal, isPopup = false) {\n this.focusedElementsBeforeModal.push(document.activeElement);\n const focusableElements = this.getAllFocusableElements(modal);\n const firstFocusableElement = !isPopup ? focusableElements[0] : modal;\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n modal.addEventListener('keydown', (e) => this.trapTabKey(e, firstFocusableElement, lastFocusableElement));\n },\n keydownHandlerPopup(e, firstFocusableElement, lastFocusableElement) {\n this.trapTabKey(e, firstFocusableElement, lastFocusableElement);\n },\n focusTrapOff() {\n if (this.focusedElementsBeforeModal.length === 0) {\n return;\n }\n let focusedElementNow = this.focusedElementsBeforeModal[this.focusedElementsBeforeModal.length - 1];\n focusedElementNow.focus();\n this.focusedElementsBeforeModal.pop();\n },\n trapTabKey(e, firstEl, lastEl) {\n if (e.keyCode === 9) {\n // TAB\n if (e.shiftKey) {\n // + SHIFT\n if (document.activeElement === firstEl) {\n e.preventDefault();\n lastEl.focus();\n }\n }\n else {\n if (document.activeElement === lastEl) {\n e.preventDefault();\n firstEl.focus();\n }\n }\n }\n },\n getFirstFocusable(parent) {\n return this.getAllFocusableElements(parent)[0];\n },\n getAllFocusableElements(parent, noFilter = false) {\n if (parent) {\n return [...parent.querySelectorAll(this.focusableSelectors)].filter((element) => {\n // check if isn't hidden (:visible selector not workink in plain js)\n return element.offsetWidth > 0 || element.offsetHeight > 0;\n });\n }\n },\n toggleEveryTabindex(wrapper, value = -1) {\n if (!wrapper) {\n console.error('Wrapper element is needed in toggleEveryTabindex()');\n return;\n }\n this.getAllFocusableElements(wrapper).forEach((el) => {\n el.setAttribute('tabindex', value);\n });\n },\n};\n","const focusableSelectors = 'button, [href]:not([aria-hidden=\"true\"]), input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]';\nexport const getFirstFocusable = (parent) => parent.querySelector(focusableSelectors);\nexport const getAllFocusableElements = (parent) => parent.querySelectorAll(focusableSelectors);\n"],"names":["BaseComponent","constructor","config","this","_grabMessages","CUSTOM_MESSAGES","Messages","_checkMessages","message","window","eventQueue","get","ref","bind","map","payload","delete","_messages","__ref__","GRAB","_ungrabMessages","UNGRAB","objectIsEmpty","object","key","hasOwnProperty","EMIT","callBack","getFirstFocusable","parent","getFocusableElements","_destroy","element","super","observer","IntersectionObserver","entries","isIntersecting","target","querySelectorAll","forEach","item","i","setTimeout","setAttribute","unobserve","threshold","_componentElement","observe","$el","$options","compOptions","options","Object","assign","dataset","keys","filter","entry","includes","cleanEntry","cleanOptionKey","optionValue","JSON","parse","replace","convertType","COMPONENT_NAME","__proto__","name","static","option","optionReturn","str","charAt","toLocaleLowerCase","slice","$on","events","cb","elements","e","stopPropagation","$one","$off","$fire","loading","container","LOADER_EVENTS","show","endLoading","icon","error","time","hide","NavigationMobile","subcategoryHandler","openCategoryLink","listenForBacks","navigationLevel","data","modalId","closeAllSubcategories","SELECTORS","modal","panel","panelPrimary","modalHeader","CLASSESS","triggerActive","temporaryHidden","subcategoryTriggers","querySelector","trigger","addEventListener","tgt","currentTarget","closest","scrollTop","document","getElementById","getAttribute","focusUpdate","mdlLink","preventDefault","category","clicktriggerCatId","location","href","backs","back","panelId","toggle","length","classList","remove","el","getElementsByClassName","removeAttribute","id","add","keycode","enter","space","esc","arrowUp","arrowRight","arrowDown","arrowLeft","focusedElementsBeforeModal","focusableSelectors","focusTrapOn","isPopup","push","activeElement","focusableElements","getAllFocusableElements","firstFocusableElement","lastFocusableElement","focus","trapTabKey","keydownHandlerPopup","focusTrapOff","pop","firstEl","lastEl","keyCode","shiftKey","noFilter","offsetWidth","offsetHeight","toggleEveryTabindex","wrapper","value","console"],"sourceRoot":""}