{"version":3,"sources":["webpack:///./src/client/default/js/components/homeNavComponent.js","webpack:///./src/client/default/js/base/baseComponent.js"],"names":["HomeNavComponent","_BaseComponent","element","_this","_classCallCheck","_callSuper","trap","moveTopBar","handleMobileChange","handleEscapeTrigger","window","addEventListener","getHeights","document","e","target","classList","contains","closeMenu","_inherits","_createClass","key","get","topBar","navLists","listContainer","mainHeader","triggersMobile","triggersDesktop","triggersDesktopActive","homenav","secondLevelNavigation","bodyOverlay","infoStrip","pushApp","selected","active","_defineProperty","this","CUSTOM_MESSAGES","BREAKPOINTER","BREAKPOINT_CHANGE","value","_this2","_ref2","_this3","match","querySelectorAll","SELECTORS","forEach","trigger","$off","$on","preventDefault","lists","$el","_toConsumableArray","el","index","CLASSES","remove","parentElement","add","openMenu","activeTrigger","querySelector","ariaExpanded","nextElementSibling","EMIT","BODY","TOGGLE_OVERLAY","overlayNoHeader","scroll","deactivate","targetElement","focusTrap","clickOutsideDeactivates","activate","homevavheight","getBoundingClientRect","height","listContainerheight","topbar","_document$querySelect","appendChild","_document$querySelect2","insertBefore","nextSibling","_document$querySelect3","firstChild","BaseComponent","_BaseGiaComponent","_componentElement","setAttribute","_checkMessages","compOptions","options","_objectSpread","dataset","Object","keys","filter","entry","includes","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","getAttribute","events","cb","arguments","length","undefined","elements","Bean","on","stopPropagation","one","off","fire","container","message","_loading","LOADER_EVENTS","show","body","error","icon","setTimeout","hide","option","optionReturn","str","concat","charAt","toLocaleLowerCase","slice","BaseGiaComponent"],"mappings":"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","file":"js/component-homeNavComponent-js.chunks.js","sourcesContent":["import BaseComponent from '../base/baseComponent';\nimport { match } from '../utilities/resolutionHandler';\nimport * as focusTrap from 'focus-trap';\n\nexport default class HomeNavComponent extends BaseComponent {\n get SELECTORS() {\n return {\n topBar: '.top-bar',\n navLists: '.homenav li',\n listContainer: '.homenav li.selected .glide-overflower',\n mainHeader: 'header.header',\n triggersMobile: '.homenav .category',\n triggersDesktop: '.navigation .trigger-menu',\n triggersDesktopActive: '.navigation .trigger-menu.active',\n homenav: '.homenav',\n secondLevelNavigation: '.secondLevelNavigation',\n bodyOverlay: '.overlay-no-header',\n infoStrip: '.information-strip.is-visible',\n pushApp: '.push-app-content-wrapper'\n };\n }\n\n get CLASSES() {\n return {\n selected: 'selected',\n active: 'active'\n };\n }\n\n get Messages() {\n return {\n [this.CUSTOM_MESSAGES.BREAKPOINTER.BREAKPOINT_CHANGE]: this.handleMobileChange\n };\n }\n\n constructor(element) {\n super(element);\n this.trap = null;\n this.moveTopBar();\n this.handleMobileChange();\n this.handleEscapeTrigger();\n window.addEventListener(\n 'resize',\n () => {\n this.moveTopBar();\n this.getHeights();\n },\n true\n );\n document.addEventListener('click', (e) => {\n if (e.target.classList.contains('overlay-no-header')) {\n this.closeMenu();\n }\n });\n }\n\n handleEscapeTrigger() {\n document.addEventListener('keydown', ({ key }) => {\n if (key === 'Escape') {\n this.closeMenu();\n }\n });\n }\n\n handleMobileChange() {\n if (match('lg', null)) {\n this.closeMenu();\n const triggers = document.querySelectorAll(this.SELECTORS.triggersMobile);\n triggers.forEach((trigger) => {\n this.$off('click.cat', trigger);\n this.$on(\n 'click.cat',\n (e) => {\n e.preventDefault();\n const lists = this.$el.querySelectorAll(this.SELECTORS.navLists);\n [...lists].forEach((el, index) => {\n if (el.classList.contains(this.CLASSES.selected)) {\n el.classList.remove(this.CLASSES.selected);\n }\n });\n const parent = e.target.parentElement;\n parent.classList.add(this.CLASSES.selected);\n\n this.moveTopBar();\n this.getHeights();\n },\n trigger\n );\n });\n } else {\n const triggers = document.querySelectorAll(this.SELECTORS.triggersDesktop);\n triggers.forEach((trigger) => {\n this.$off('click.cat', trigger);\n this.$on(\n 'click.cat',\n (e) => {\n e.preventDefault();\n if (trigger.classList.contains(this.CLASSES.active)) {\n this.closeMenu();\n } else {\n this.closeMenu();\n this.openMenu(trigger);\n }\n },\n trigger\n );\n });\n }\n }\n\n closeMenu() {\n const activeTrigger = document.querySelector(this.SELECTORS.triggersDesktopActive);\n if (!activeTrigger) {\n return;\n }\n activeTrigger.classList.remove(this.CLASSES.active);\n activeTrigger.ariaExpanded = false;\n activeTrigger.nextElementSibling.classList.remove(this.CLASSES.active);\n this.EMIT(this.CUSTOM_MESSAGES.BODY.TOGGLE_OVERLAY, { overlayNoHeader: false, scroll: true });\n this.trap.deactivate();\n }\n\n openMenu(activeTrigger) {\n activeTrigger.classList.add(this.CLASSES.active);\n activeTrigger.ariaExpanded = true;\n activeTrigger.nextElementSibling.classList.add(this.CLASSES.active);\n this.EMIT(this.CUSTOM_MESSAGES.BODY.TOGGLE_OVERLAY, { overlayNoHeader: true, scroll: false });\n const targetElement = activeTrigger.parentElement.querySelector('.header-dropdown-panel');\n this.trap = focusTrap.createFocusTrap(targetElement, { clickOutsideDeactivates: true });\n this.trap.activate();\n }\n\n getHeights() {\n const homevavheight = document.querySelector(this.SELECTORS.homenav).getBoundingClientRect().height;\n const listContainerheight = document.querySelector(this.SELECTORS.listContainer).getBoundingClientRect().height;\n const topbar = document.querySelector(this.SELECTORS.topBar);\n\n if (listContainerheight < homevavheight) {\n topbar.classList.add('sticky');\n } else {\n topbar.classList.remove('sticky');\n }\n }\n\n moveTopBar() {\n if (match('lg', null)) {\n document.querySelector(this.SELECTORS.listContainer)?.appendChild(document.querySelector(this.SELECTORS.topBar));\n } else if (document.querySelector(this.SELECTORS.infoStrip)) {\n document.querySelector(this.SELECTORS.mainHeader)?.insertBefore(document.querySelector(this.SELECTORS.topBar), document.querySelector(this.SELECTORS.infoStrip).nextSibling);\n } else {\n document\n .querySelector(this.SELECTORS.mainHeader)\n ?.insertBefore(\n document.querySelector(this.SELECTORS.topBar),\n document.querySelector(this.SELECTORS.pushApp) ? document.querySelector(this.SELECTORS.pushApp).nextSibling : document.querySelector(this.SELECTORS.mainHeader).firstChild\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":""}