{"version":3,"sources":["webpack:///./src/js/modules/header.js"],"names":["Module","Component","setupDefaults","this","dom","$el","el","$hamburger","_$","$searchPanelTrigger","$panelOverlay","$panel","$closePanelButton","$inMenuPrimaryNavButton","_$$","$backButton","$inMenuClosePanelButton","$inMenuNav","$primaryNavLinks","$myAccountTrigger","$myAccountTriggerWrapper","$myAccountPanel","$linkAndFeatured","$emailForm","$emailField","$hiddenEmailField","$emailText","$emailChange","$organizationSubmit","$dropdownMenuTriggers","$dropownMyAccountTrigger","$designElements","$organizations","baseHeaderActivatedClass","bodyPanelOpenedClass","menuPanelOpenedClass","inMenuPanelOpenedClass","currentDesignElementClass","closePanelevent","CustomEvent","initiateFocusTrap","addListeners","_on","openHeaderPanel","bind","onPanelOverlayClick","onSearchPanelTriggerClick","onClosePanelButtonClick","closeHeaerPanel","onInMenuButtonClick","onBackButtonClick","onPrimaryNavLinkMouseDown","onPrimaryNavMouseUp","onPrimaryNavKeyDown","onPrimaryNavKeyUp","onMyAccountTriggerClick","updateCtaText","handleEmailFormSubmit","handleDropdownMenuTriggerClick","handleDropdownMyAccountTriggerClick","onEmailChange","updateDesignElement","handleRegister","document","onClickOutsidePanel","autoClickMyAccountTriggerIfNeeded","classList","add","event","dispatchEvent","setAttribute","e","target","contains","remove","activateInMenuPanel","dataset","id","panelFocusTrap","activate","keyCode","KEYS","END","focusPrimaryNavOnKeyPress","length","HOME","preventDefault","don","DOWN","ENTER","LEFT","RIGHT","UP","detail","pageX","documentElement","clientWidth","closest","onPauseHeaderPanelFocusTrap","pause","onContinueHeaderPanelFocusTrap","unpause","resetForm","focusTrap","onDeactivate","allowOutsideClick","initialFocus","KEYS_DIRECTION","index","parseInt","focusPrimaryNavItem","left","right","item","blurPrimaryNavItems","removeAttribute","focus","forEach","link","body","deactivate","unbindPanelOutsideClick","hiddenClass","trigger","getElementById","panel","getAttribute","identifier","originalBtn","clone","text","textContent","href","orgs","isSingle","Organizations","placeholderValue","placeholder","value","innerHTML","map","org","label","join","disabled","$parent","currentTarget","parentNode","toggle","clickOutside","current","find","navId","reset","URL","location","searchParams","get","click"],"mappings":"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","file":"72.16a968.js","sourcesContent":["import { Component } from '@verndale/core';\nimport * as focusTrap from 'focus-trap';\nimport clickOutside from 'click-outside';\nimport { KEYS, KEYS_DIRECTION } from '../constants';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $el: this.el,\n $hamburger: this.el._$('.header__hamburger'),\n $searchPanelTrigger: this.el._$('.header__search-panel-trigger'),\n $panelOverlay: this.el._$('.header__panel-outer'),\n $panel: this.el._$('.header__panel'),\n $closePanelButton: this.el._$('.header__close-panel-trigger'),\n $inMenuPrimaryNavButton: this.el._$$('.in-menu-primary-nav__trigger'),\n $backButton: this.el._$$('.header-menu__back'),\n $inMenuClosePanelButton: this.el._$('.header__panel-close-trigger'),\n $inMenuNav: this.el._$('.header__panel'),\n $primaryNavLinks: this.el._$$('.primary-nav__link'),\n $myAccountTrigger: this.el._$('.header-panel__my-account-trigger'),\n $myAccountTriggerWrapper: this.el._$(\n '.header-panel__my-account-trigger-wrapper'\n ),\n $myAccountPanel: this.el._$('.my-account'),\n $linkAndFeatured: this.el._$$('.link-and-featured'),\n $emailForm: this.el._$('.my-account__email-form'),\n $emailField: this.el._$('[type=\"email\"]'),\n $hiddenEmailField: this.el._$('.my-account__hidden-email'),\n $emailText: this.el._$('.my-account__email-text'),\n $emailChange: this.el._$('.my-account__email-change'),\n $organizationSubmit: this.el._$(\n '.my-account__organisation-form [type=submit]'\n ),\n $dropdownMenuTriggers: this.el._$$('.header-dropdown-menu__trigger'),\n $dropownMyAccountTrigger: this.el._$(\n '.header-dropdown-menu__my-account-trigger'\n ),\n $designElements: this.el._$$('.header-panel__design-element-wrapper'),\n $organizations: () => this.el._$('.my-account__organizations select')\n };\n this.baseHeaderActivatedClass = 'header--base-search-activated';\n this.bodyPanelOpenedClass = 'header-panel-opened';\n this.menuPanelOpenedClass = 'header--panel-opened';\n this.inMenuPanelOpenedClass = 'header--in-menu-panel-opened';\n this.currentDesignElementClass =\n 'header-panel__design-element-wrapper--current';\n this.closePanelevent = new CustomEvent('close');\n\n this.initiateFocusTrap();\n }\n\n addListeners() {\n this.dom.$hamburger._on('click', this.openHeaderPanel.bind(this));\n this.dom.$panelOverlay._on('click', this.onPanelOverlayClick.bind(this));\n this.dom.$searchPanelTrigger._on(\n 'click',\n this.onSearchPanelTriggerClick.bind(this)\n );\n this.dom.$closePanelButton._on(\n 'click',\n this.onClosePanelButtonClick.bind(this)\n );\n this.dom.$inMenuClosePanelButton._on(\n 'click',\n this.closeHeaerPanel.bind(this)\n );\n this.dom.$inMenuPrimaryNavButton._on(\n 'click',\n this.onInMenuButtonClick.bind(this)\n );\n this.dom.$backButton._on('click', this.onBackButtonClick.bind(this));\n this.dom.$primaryNavLinks._on(\n 'mousedown',\n this.onPrimaryNavLinkMouseDown.bind(this)\n );\n this.dom.$primaryNavLinks._on(\n 'mouseup',\n this.onPrimaryNavMouseUp.bind(this)\n );\n this.dom.$primaryNavLinks._on(\n 'keydown',\n this.onPrimaryNavKeyDown.bind(this)\n );\n this.dom.$primaryNavLinks._on('keyup', this.onPrimaryNavKeyUp.bind(this));\n this.dom.$myAccountTrigger._on(\n 'click',\n this.onMyAccountTriggerClick.bind(this)\n );\n this.dom.$linkAndFeatured._on('tabchange', this.updateCtaText.bind(this));\n this.dom.$emailForm._on(\n 'successfullysubmitted',\n this.handleEmailFormSubmit.bind(this)\n );\n this.dom.$dropdownMenuTriggers._on(\n 'click',\n this.handleDropdownMenuTriggerClick.bind(this)\n );\n this.dom.$dropownMyAccountTrigger?._on?.(\n 'click',\n this.handleDropdownMyAccountTriggerClick.bind(this)\n );\n this.dom.$emailChange._on('click', this.onEmailChange.bind(this));\n this.dom.$panel._on('tabchange', this.updateDesignElement.bind(this));\n this.el._on('register', this.handleRegister.bind(this));\n document._on('mousedown', this.onClickOutsidePanel.bind(this));\n\n this.autoClickMyAccountTriggerIfNeeded();\n }\n\n onInMenuButtonClick() {\n this.dom.$el.classList.add(this.inMenuPanelOpenedClass);\n const event = new CustomEvent('reset');\n this.dom.$myAccountTriggerWrapper.dispatchEvent(event);\n this.dom.$myAccountPanel.setAttribute('aria-hidden', 'true');\n }\n\n onPanelOverlayClick(e) {\n if (e.target.classList.contains('header__panel-outer')) {\n this.closeHeaerPanel();\n }\n }\n\n onClosePanelButtonClick() {\n this.closeHeaerPanel();\n this.dom.$el.classList.remove(this.inMenuPanelOpenedClass);\n }\n\n onBackButtonClick() {\n this.dom.$el.classList.remove(this.inMenuPanelOpenedClass);\n }\n\n onPrimaryNavLinkMouseDown(e) {\n this.openHeaderPanel();\n this.dom.$el.classList.remove(this.baseHeaderActivatedClass);\n this.activateInMenuPanel(e.target.dataset.id);\n this.panelFocusTrap.activate();\n }\n\n onPrimaryNavMouseUp() {\n this.panelFocusTrap.activate();\n }\n\n onPrimaryNavKeyDown(e) {\n switch (e.keyCode) {\n case KEYS.END:\n this.focusPrimaryNavOnKeyPress(\n this.dom.$primaryNavLinks[this.dom.$primaryNavLinks.length - 1]\n );\n break;\n case KEYS.HOME:\n e.preventDefault();\n this.focusPrimaryNavOnKeyPress(this.don.$primaryNavLinks[0]);\n break;\n case KEYS.DOWN:\n case KEYS.ENTER:\n e.preventDefault();\n this.openHeaderPanel();\n this.activateInMenuPanel(e.target.dataset.id);\n this.panelFocusTrap.activate();\n break;\n }\n }\n\n onPrimaryNavKeyUp(e) {\n switch (e.keyCode) {\n case KEYS.LEFT:\n case KEYS.RIGHT:\n this.focusPrimaryNavOnKeyPress(e);\n break;\n case KEYS.UP:\n case KEYS.DOWN:\n case KEYS.ENTER:\n this.focusPrimaryNavOnKeyPress(e);\n break;\n }\n }\n\n onMyAccountTriggerClick(e) {\n this.dom.$el.classList.add(this.inMenuPanelOpenedClass);\n const event = new CustomEvent('reset');\n this.dom.$panel.dispatchEvent(event);\n this.updateDesignElement({ detail: { id: 'account' } });\n }\n\n onClickOutsidePanel(e) {\n if (e.pageX <= document.documentElement.clientWidth) return;\n if (e.target.classList.contains('header__hamburger')) return;\n if (e.target.classList.contains('header__panel')) return;\n if (e.target.classList.contains('header-search__reset')) return;\n if (e.target.closest('.header__panel')) return;\n if (e.target.closest('.primary-nav')) return;\n this.closeHeaerPanel();\n }\n\n onPauseHeaderPanelFocusTrap() {\n this.panelFocusTrap.pause();\n }\n\n onContinueHeaderPanelFocusTrap() {\n this.panelFocusTrap.unpause();\n }\n\n onSearchPanelTriggerClick() {\n this.openHeaderPanel();\n this.dom.$el.classList.add(this.baseHeaderActivatedClass);\n this.panelFocusTrap.activate();\n }\n\n onEmailChange() {\n this.resetForm();\n }\n\n initiateFocusTrap() {\n this.panelFocusTrap = focusTrap.createFocusTrap(this.dom.$panel, {\n onDeactivate: this.closeHeaerPanel.bind(this),\n allowOutsideClick: true,\n initialFocus: () => {\n if (this.dom.$el.classList.contains(this.baseHeaderActivatedClass)) {\n return this.dom.$el._$('.header-search__input');\n }\n return (\n this.dom.$el._$(\n '.header-menu:not([aria-hidden]) .header-menu__link'\n ) ||\n this.dom.$el._$(\n '.header-menu:not([aria-hidden]) .my-account__callout-cta'\n ) ||\n this.dom.$el._$('.header__panel-close-trigger')\n );\n }\n });\n }\n\n focusPrimaryNavOnKeyPress(e) {\n if (!KEYS_DIRECTION[e.keyCode]) return;\n if (typeof e.target.dataset.index === 'undefined') return;\n const index = parseInt(e.target.dataset.index, 10);\n\n if (this.dom.$primaryNavLinks[index + KEYS_DIRECTION[e.keyCode]]) {\n this.focusPrimaryNavItem(\n this.dom.$primaryNavLinks[index + KEYS_DIRECTION[e.keyCode]]\n );\n return;\n }\n\n if (e.keyCode === KEYS.left) {\n this.focusPrimaryNavItem(\n this.dom.$primaryNavLinks[this.dom.$primaryNavLinks.length - 1]\n );\n } else if (e.keyCode === KEYS.right) {\n this.focusPrimaryNavItem(this.dom.$primaryNavLinks[0]);\n }\n }\n\n focusPrimaryNavItem(item) {\n this.blurPrimaryNavItems();\n item.removeAttribute('tabindex');\n\n item.focus();\n }\n\n blurPrimaryNavItems() {\n this.dom.$primaryNavLinks.forEach(link => {\n link.setAttribute('tabindex', '-1');\n });\n }\n\n openHeaderPanel() {\n document.body.classList.add(this.bodyPanelOpenedClass);\n this.dom.$el.classList.add(this.menuPanelOpenedClass);\n }\n\n closeHeaerPanel() {\n this.panelFocusTrap.deactivate();\n document.body.classList.remove(this.bodyPanelOpenedClass);\n this.dom.$el.classList.remove(this.menuPanelOpenedClass);\n this.unbindPanelOutsideClick?.();\n this.dom.$el.dispatchEvent(this.closePanelevent);\n const event = new CustomEvent('reset');\n this.dom.$myAccountTriggerWrapper.dispatchEvent(event);\n }\n\n activateInMenuPanel(id) {\n const event = new CustomEvent('activatetab', { detail: { id } });\n this.dom.$inMenuNav.dispatchEvent(event);\n }\n\n updateCtaText(e) {\n const hiddenClass = 'link-and-featured-link-items__cta--hidden';\n const trigger = document.getElementById(e.detail.id);\n const panel = document.getElementById(\n trigger.getAttribute('aria-controls')\n );\n const identifier = panel.dataset.identifier;\n const originalBtn = panel._$('.link-and-featured-link-items__cta');\n const clone = _$(`.link-and-featured[data-identifier=${identifier}]`)\n ._$('.link-and-featured__tabs-cta-wrapper')\n ._$('.link-and-featured-link-items__cta');\n\n if (!originalBtn) {\n clone.classList.add(hiddenClass);\n return;\n }\n\n const text = originalBtn.textContent;\n clone.classList.remove(hiddenClass);\n clone.textContent = text;\n clone.href = originalBtn.href;\n }\n\n handleEmailFormSubmit(e) {\n const orgs = this.dom.$organizations();\n const isSingle = e.detail?.Organizations.length === 1;\n const placeholderValue = orgs.getAttribute('placeholder');\n const placeholder = `<option value=\"\">${\n placeholderValue ? placeholderValue : ''\n }</option>`;\n const renderOption = org =>\n `<option value=${org.value}>${org.label}</option>`;\n\n this.dom.$emailText.textContent = this.dom.$emailField.value;\n orgs.innerHTML = `\n ${isSingle ? '' : placeholder}\n ${e.detail?.Organizations?.map?.(renderOption).join()}\n `;\n\n this.dom.$hiddenEmailField.value = this.dom.$emailField.value;\n\n if (isSingle) {\n orgs.disabled = true;\n orgs.closest('.form-select').classList.add('form-select--disabled');\n orgs.value = e.detail.Organizations[0].value;\n this.dom.$organizationSubmit.disabled = false;\n this.dom.$organizationSubmit.classList.remove('btn--disabled');\n } else {\n orgs.disabled = false;\n orgs.closest('.form-select').classList.remove('form-select--disabled');\n this.dom.$organizationSubmit.disabled = true;\n this.dom.$organizationSubmit.classList.add('btn--disabled');\n }\n\n const event = new CustomEvent('update');\n orgs.dispatchEvent(event);\n }\n\n handleDropdownMenuTriggerClick(e) {\n const $parent = e.currentTarget.parentNode;\n $parent.classList.toggle('header-dropdown-menu--expanded');\n if ($parent.classList.contains('header-dropdown-menu--expanded')) {\n clickOutside($parent, () => {\n $parent.classList.remove('header-dropdown-menu--expanded');\n });\n }\n }\n\n handleDropdownMyAccountTriggerClick(e) {\n this.onPrimaryNavLinkMouseDown(e);\n this.updateDesignElement({ detail: { id: 'account' } });\n }\n\n handleRegister() {\n this.openHeaderPanel();\n this.activateInMenuPanel('my-account-tab');\n this.dom.$el.classList.add(this.inMenuPanelOpenedClass);\n this.panelFocusTrap.activate();\n }\n\n updateDesignElement(e) {\n const { id } = e.detail;\n const current = this.dom.$designElements.find(\n el => el.dataset.navId === id\n );\n this.dom.$designElements.forEach(el =>\n el.classList.remove(this.currentDesignElementClass)\n );\n current?.classList?.add?.(this.currentDesignElementClass);\n }\n\n resetForm() {\n this.dom.$emailForm.reset();\n this.dom.$emailForm.classList.remove('form--success');\n this.dom.$emailField.focus();\n }\n\n autoClickMyAccountTriggerIfNeeded() {\n const params = new URL(document.location).searchParams;\n\n if (typeof (params.get('register')) === 'string')\n this.dom.$dropownMyAccountTrigger?.click?.();\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}