{"version":3,"file":"zoomv.8762.min.js?t=07b0ab2746531eb319a8","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/foundation/Accordion/Accordion.js","webpack://@hero-digital/zoom/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from '../../../js/utilities/accordion'\r\n\r\nclass Accordion {\r\n constructor(el) {\r\n this.el = el\r\n this.maxItems = 5\r\n this.domMap = {\r\n $showMore: this.el.querySelector('.accordion__show'),\r\n $showLess: this.el.querySelector('.accordion__show--less')\r\n }\r\n this.disableShowmoreButton = true\r\n if(this.el.hasAttribute(\"data-disableshowmore\")) {\r\n if(this.el.getAttribute('data-disableshowmore') == 1) {\r\n this.disableShowmoreButton = false\r\n this.domMap.$showMore.hidden = true\r\n }\r\n }\r\n this.initAccordion()\r\n this.countItems()\r\n if(this.disableShowmoreButton===true) {\r\n this.addListeners()\r\n }\r\n }\r\n\r\n addListeners() {\r\n const { $showMore, $showLess } = this.domMap\r\n\r\n if($showMore) $showMore.addEventListener('click', this.showMore.bind(this))\r\n if($showLess) $showLess.addEventListener('click', this.showLess.bind(this))\r\n }\r\n\r\n initAccordion() {\r\n new AccordionWidget(this.el)\r\n }\r\n\r\n countItems() {\r\n const isDouble = this.el.classList.contains('accordion--double')\r\n\r\n if (isDouble) {\r\n const $columns = this.el.querySelectorAll('.accordion__content-column')\r\n $columns.forEach((column) => {\r\n const $items = column.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n if(this.disableShowmoreButton) this.hideItems($items)\r\n })\r\n } else {\r\n const $items = this.el.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n if(this.disableShowmoreButton) this.hideItems($items)\r\n }\r\n }\r\n\r\n hideItems($items) {\r\n const { $showMore } = this.domMap\r\n\r\n $items.forEach((item, index) => {\r\n if (index >= this.maxItems) {\r\n item.hidden = true\r\n }\r\n })\r\n\r\n if ($items.length > this.maxItems) {\r\n if($showMore) $showMore.hidden = false\r\n } else {\r\n if($showMore) $showMore.hidden = true\r\n }\r\n }\r\n\r\n showMore() {\r\n const { $showMore, $showLess } = this.domMap\r\n const isDouble = this.el.classList.contains('accordion--double')\r\n\r\n if (isDouble) {\r\n const $columns = this.el.querySelectorAll('.accordion__content-column')\r\n $columns.forEach((column) => {\r\n const $items = column.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n $items.forEach((item) => (item.hidden = false))\r\n })\r\n } else {\r\n const $items = this.el.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n $items.forEach((item) => (item.hidden = false))\r\n }\r\n\r\n $showMore.hidden = true\r\n $showLess.hidden = false\r\n }\r\n\r\n showLess() {\r\n const { $showMore, $showLess } = this.domMap\r\n const isDouble = this.el.classList.contains('accordion--double')\r\n\r\n if (isDouble) {\r\n const $columns = this.el.querySelectorAll('.accordion__content-column')\r\n $columns.forEach((column) => {\r\n const $items = column.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n this.hideItems($items)\r\n })\r\n } else {\r\n const $items = this.el.querySelectorAll(\r\n '.accordion__item, .accordion__category'\r\n )\r\n this.hideItems($items)\r\n }\r\n\r\n $showMore.hidden = false\r\n $showLess.hidden = true\r\n }\r\n}\r\n\r\nexport default Accordion\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":["Accordion","el","_classCallCheck","this","maxItems","domMap","$showMore","querySelector","$showLess","disableShowmoreButton","hasAttribute","getAttribute","hidden","initAccordion","countItems","addListeners","key","value","_this$domMap","addEventListener","showMore","bind","showLess","AccordionWidget","_this","classList","contains","querySelectorAll","forEach","column","$items","hideItems","_this2","item","index","length","_this$domMap2","_this3","_this$domMap3","props","arguments","undefined","preventClose","triggerClass","panelClass","id","selectedIndex","expandFirst","dataset","firstexpanded","multiSelectable","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","_step","panelArr","_iterator","_createForOfIteratorHelper","split","s","n","done","panel","parseInt","push","err","e","f","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","add","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","preventDefault","target","targetIndex","keyCode","click","userInvoked","focus","remove","setAttribute","hidePanelContent","setTimeout","hasExpanded","removeAttribute","gsap","to","height","duration","parentElement","close","openInit","destroy","removeEventListener"],"sourceRoot":""}