{"version":3,"file":"zoomv.7421.min.js?t=4539a9b51b072e236464","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/modules/BlogSubNav/BlogSubNav.js","webpack://@hero-digital/zoom/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from '../../../js/utilities/accordion'\r\n\r\nclass BlogSubNav {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n $accordionPanel: this.el.querySelector('.blog-sub-nav__accordion-panel'),\r\n $accordionTrigger: this.el.querySelector('.blog-sub-nav__accordion-trigger'),\r\n $triggers: this.el.querySelectorAll('.blog-sub-nav__trigger'),\r\n $lists: this.el.querySelectorAll('.blog-sub-nav__sub-list')\r\n }\r\n console.log('blog sub nav')\r\n this.initAccordion()\r\n this.addListeners()\r\n }\r\n\r\n addListeners() {\r\n const { $accordionTrigger, $triggers, $lists } = this.domMap\r\n\r\n $accordionTrigger.addEventListener('click', this.toggleAccordion.bind(this))\r\n $triggers.forEach(($trigger) =>\r\n $trigger.addEventListener('click', this.toggleMenu.bind(this))\r\n )\r\n $lists.forEach(($list) =>\r\n $list.addEventListener('focusout', this.handleListFocusout.bind(this))\r\n )\r\n window.addEventListener('click', this.handleWindowClick.bind(this))\r\n }\r\n\r\n initAccordion() {\r\n const { $accordionPanel } = this.domMap\r\n\r\n if ($accordionPanel) {\r\n new AccordionWidget($accordionPanel)\r\n }\r\n }\r\n\r\n toggleAccordion() {\r\n const { $accordionPanel, $accordionTrigger } = this.domMap\r\n const isOpen = $accordionPanel.getAttribute('aria-hidden') === 'false'\r\n\r\n $accordionPanel.setAttribute('aria-hidden', isOpen)\r\n $accordionTrigger.setAttribute('aria-expanded', !isOpen)\r\n }\r\n\r\n toggleMenu(e) {\r\n const { $triggers } = this.domMap\r\n const $trigger = e.target\r\n const isOpen = $trigger.getAttribute('aria-expanded') === 'true'\r\n\r\n $trigger.setAttribute('aria-expanded', !isOpen)\r\n $triggers.forEach(($trigger) => {\r\n if ($trigger !== e.target) {\r\n $trigger.setAttribute('aria-expanded', false)\r\n }\r\n })\r\n }\r\n\r\n handleWindowClick(e) {\r\n const { $triggers, $accordionPanel, $accordionTrigger } = this.domMap\r\n const $target = e.target\r\n if (\r\n !$target.closest('.blog-sub-nav__accordion-trigger') &&\r\n !$target.closest('.blog-sub-nav__accordion-panel')\r\n ) {\r\n\r\n if ($triggers) {\r\n $triggers.forEach(($trigger) =>\r\n $trigger.setAttribute('aria-expanded', false)\r\n )\r\n }\r\n const isOpen = $accordionPanel.getAttribute('aria-hidden') === 'false'\r\n // close blog subnav when click outside\r\n $accordionPanel.setAttribute('aria-hidden', true)\r\n $accordionTrigger.setAttribute('aria-expanded', false)\r\n }\r\n }\r\n\r\n handleListFocusout(e) {\r\n const { $triggers } = this.domMap\r\n const $target = e.relatedTarget\r\n\r\n if (!$target.closest('.blog-sub-nav__sub-list')) {\r\n $triggers.forEach(($trigger) =>\r\n $trigger.setAttribute('aria-expanded', false)\r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default BlogSubNav\r\n","/* ACCESSIBLE ACCORDION COMPONENT\r\n Code modified taken from here: https://codepen.io/stowball/pen/eZKwRv\r\n Options (add to parent element that has class \"accordion-interface\"):\r\n Multiselect: aria-multiselectable=\"true\"\r\n Always expand first item: data-firstexpanded=\"true\"\r\n To have selected panel(s) expanded at start use data-open-panels attribute with panel numbers separated by commas.\r\n Example: data-open-panels=\"1,2\"\r\n To keep panels always open at tablet breakpoints and above add to class list: accordion-interface__open-panels__md\r\n and for desktop only: accordion-interface__open-panels__lg\r\n*/\r\nimport gsap from 'gsap'\r\n\r\nfunction AccordionWidget(el, props = {}) {\r\n if (!el) return\r\n this.el = el\r\n\r\n this.preventClose = props.preventClose === true\r\n\r\n let triggerClass = 'js-accordion-trigger'\r\n let panelClass = 'js-accordion-panel'\r\n if (props.id) {\r\n triggerClass += props.id\r\n panelClass += props.id\r\n }\r\n const expandFirst = el.dataset.firstexpanded === 'true'\r\n this.multiSelectable = this.el.hasAttribute('aria-multiselectable')\r\n\r\n let selectedIndex\r\n if (Number.isInteger(props.selectedIndex)) selectedIndex = props.selectedIndex\r\n else if (expandFirst) selectedIndex = 0\r\n\r\n this.accordionTriggers = this.el.getElementsByClassName(triggerClass)\r\n this.accordionPanels = this.el.getElementsByClassName(panelClass)\r\n\r\n if (\r\n this.accordionTriggers.length === 0 ||\r\n this.accordionTriggers.length !== this.accordionPanels.length\r\n ) {\r\n return\r\n }\r\n\r\n // if we do not already have a selected index see if we have the open panels attribute\r\n if (selectedIndex === undefined && el.dataset.openPanels) {\r\n let openPanels = el.dataset.openPanels\r\n openPanels = openPanels.split(',')\r\n const panelArr = []\r\n for (const panel of openPanels) {\r\n const n = parseInt(panel)\r\n // quick test to make sure we have a positive value\r\n if ((n | 0) > 0 && n % 1 === 0 && n <= this.accordionTriggers.length) {\r\n panelArr.push(n - 1)\r\n // if this is not multiselectable then stop after first validated value\r\n if (!this.multiSelectable) break\r\n }\r\n }\r\n if (panelArr.length) selectedIndex = panelArr\r\n }\r\n\r\n this._init(selectedIndex)\r\n}\r\n\r\nAccordionWidget.prototype._init = function (selectedIndex) {\r\n this.accordionTriggersLength = this.accordionTriggers.length\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.clickListener = this._clickEvent.bind(this)\r\n this.keydownListener = this._keydownEvent.bind(this)\r\n this.focusListener = this._focusEvent.bind(this)\r\n this.keys = {\r\n prev: 38,\r\n next: 40,\r\n space: 32\r\n }\r\n\r\n let initialSelectedIndex\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].index = i\r\n this.accordionTriggers[i].addEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n this.accordionTriggers[i].classList.add('is-accordion-trigger')\r\n\r\n if (this.accordionTriggers[i].classList.contains('is-selected')) {\r\n this.expandedAccordions[i] = true\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.accordionPanels.length; i++) {\r\n this.accordionPanels[i].classList.add('is-accordion-panel')\r\n }\r\n\r\n // determine which panels need to be open\r\n if (!isNaN(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n } else if (Array.isArray(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (selectedIndex.includes(i)) this.expandedAccordions[i] = true\r\n }\r\n } else {\r\n initialSelectedIndex = this.expandedAccordions.lastIndexOf(true)\r\n\r\n if (!this.multiSelectable) {\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n }\r\n }\r\n\r\n this.initialSetIndex = selectedIndex\r\n this.setSelected(initialSelectedIndex)\r\n this.setExpanded()\r\n this.setAPI()\r\n this.el.classList.add('is-accordion')\r\n this.el.classList.add('is-initialized')\r\n}\r\n\r\nAccordionWidget.prototype._clickEvent = function (e) {\r\n e.preventDefault()\r\n this.setSelected(e.target.index, true)\r\n this.setExpanded(e.target.index, true)\r\n}\r\n\r\nAccordionWidget.prototype._keydownEvent = function (e) {\r\n let targetIndex\r\n\r\n switch (e.keyCode) {\r\n case this.keys.space:\r\n case this.keys.prev:\r\n case this.keys.next:\r\n e.preventDefault()\r\n break\r\n default:\r\n return\r\n }\r\n\r\n if (e.keyCode === this.keys.space) {\r\n // this.setExpanded(e.target.index, true);\r\n e.target.click()\r\n\r\n return\r\n } else if (e.keyCode === this.keys.prev && e.target.index > 0) {\r\n targetIndex = e.target.index - 1\r\n } else if (\r\n e.keyCode === this.keys.next &&\r\n e.target.index < this.accordionTriggersLength - 1\r\n ) {\r\n targetIndex = e.target.index + 1\r\n } else {\r\n return\r\n }\r\n\r\n this.setSelected(targetIndex, true)\r\n}\r\n\r\nAccordionWidget.prototype._focusEvent = function () {\r\n if (this.accordionTriggersLength === 1) {\r\n this.setSelected(0)\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setSelected = function (index, userInvoked) {\r\n if (index === -1) {\r\n this.accordionTriggers[0].setAttribute('tabindex', 0)\r\n\r\n return\r\n }\r\n\r\n if (Array.isArray(index)) index = index[0]\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.accordionTriggers[i].classList.add('is-selected')\r\n // this.accordionTriggers[i].setAttribute('tabindex', 0);\r\n\r\n if (userInvoked) {\r\n this.accordionTriggers[i].focus()\r\n }\r\n } else {\r\n this.accordionTriggers[i].classList.remove('is-selected')\r\n\r\n // this.accordionTriggers[i].setAttribute('tabindex', -1);\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setExpanded = function (index, userInvoked) {\r\n let i\r\n\r\n // special case to close all\r\n if (index === -1) this.expandedAccordions = []\r\n\r\n if (userInvoked) {\r\n if (this.multiSelectable) {\r\n if (!this.expandedAccordions[index]) {\r\n this.expandedAccordions[index] = true\r\n } else if (!this.preventClose) {\r\n this.expandedAccordions[index] = false\r\n }\r\n } else {\r\n const isAlreadyOpen = this.expandedAccordions[index]\r\n if (isAlreadyOpen && this.preventClose) {\r\n return\r\n }\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n this.expandedAccordions[i] = i === index\r\n }\r\n }\r\n }\r\n\r\n AccordionWidget.prototype.hidePanelContent = function (item) {\r\n //allows animation to finish before hiding inner content from assistive technology\r\n setTimeout(() => {\r\n item.setAttribute('aria-hidden', true)\r\n item.setAttribute('hidden', true)\r\n }, 325)\r\n }\r\n\r\n let hasExpanded = false\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (this.expandedAccordions[i]) {\r\n this.accordionPanels[i].setAttribute('aria-hidden', false)\r\n this.accordionPanels[i].removeAttribute('hidden')\r\n\r\n this.accordionTriggers[i].setAttribute('aria-expanded', true)\r\n this.accordionTriggers[i].classList.add('is-expanded')\r\n\r\n this.accordionPanels[i].classList.add('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 'auto', duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.add('is-active')\r\n\r\n hasExpanded = true\r\n } else {\r\n this.accordionTriggers[i].setAttribute('aria-expanded', false)\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].classList.remove('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 0, duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.remove('is-active')\r\n this.hidePanelContent(this.accordionPanels[i])\r\n }\r\n }\r\n\r\n // add close to parent to indicate there is an open element\r\n if (hasExpanded) this.el.classList.add('has-expanded-el')\r\n else this.el.classList.remove('has-expanded-el')\r\n this.hasExpanded = hasExpanded\r\n}\r\n\r\nAccordionWidget.prototype.setAPI = function () {\r\n // add API functionality here\r\n this.close = function () {\r\n this.setSelected(-1)\r\n this.setExpanded(-1)\r\n }\r\n // open initial index\r\n this.openInit = function () {\r\n const index = this.initialSetIndex\r\n if (Number.isInteger(index)) {\r\n this.setSelected(index, true)\r\n this.setExpanded(index, true)\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.destroy = function () {\r\n this.el.classList.remove('is-initialized')\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].removeAttribute('aria-expanded')\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].removeAttribute('aria-hidden')\r\n this.accordionPanels[i].classList.remove('is-open')\r\n this.accordionPanels[i].removeAttribute('tabindex')\r\n\r\n this.accordionTriggers[i].removeEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n\r\n delete this.accordionTriggers[i].index\r\n }\r\n}\r\n\r\nexport { AccordionWidget }\r\n"],"names":["BlogSubNav","el","_classCallCheck","this","domMap","$accordionPanel","querySelector","$accordionTrigger","$triggers","querySelectorAll","$lists","console","log","initAccordion","addListeners","key","value","_this","_this$domMap","addEventListener","toggleAccordion","bind","forEach","$trigger","toggleMenu","$list","handleListFocusout","window","handleWindowClick","AccordionWidget","_this$domMap2","isOpen","getAttribute","setAttribute","e","target","_this$domMap3","$target","closest","relatedTarget","props","arguments","length","undefined","preventClose","triggerClass","panelClass","id","selectedIndex","expandFirst","dataset","firstexpanded","multiSelectable","hasAttribute","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","_step","panelArr","_iterator","_createForOfIteratorHelper","split","s","n","done","panel","parseInt","push","err","f","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","index","classList","add","contains","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","preventDefault","targetIndex","keyCode","click","userInvoked","focus","remove","hidePanelContent","item","setTimeout","hasExpanded","removeAttribute","gsap","to","height","duration","parentElement","close","openInit","destroy","removeEventListener"],"sourceRoot":""}