{"version":3,"file":"75.min.js?t=1744984834426","mappings":"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","sources":["webpack://@hero-digital/masonite/./src/components/modules/Accordion/Accordion.js","webpack://@hero-digital/masonite/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from 'utilities/accordion'\nimport Services from 'services'\nimport Analytics from 'services/Analytics/Analytics'\n\n/**\n * Module that displays an Accordion\n */\nexport default class Accordion {\n\tconstructor(element) {\n\t\tthis.element = element\n\t\tthis.accordionArray = this.element.getElementsByClassName(\n\t\t\t'accordion-interface'\n\t\t)\n\t\tthis.config = {\n\t\t\tmatch: false,\n\t\t\taccordionArray: this.accordionArray\n\t\t}\n\t\tthis.services = Services.getInstance()\n\t\tthis.EventEmitterService = this.services.EventEmitterService\n\t\tthis.analyticsService = Analytics.getInstance() // ref to analytics service\n\n\t\tthis.init()\n\t}\n\n\t/**\n\t * Initialize the accordion component.\n\t */\n\tinit() {\n\t\tthis.mqContext()\n\t\tthis.attachEvents()\n\t}\n\n\t/**\n\t * Destroy the component and clean up event listeners\n\t */\n\tdestroy() {\n\t\tthis.removeEvents()\n\t}\n\n\tmqContext() {\n\t\tconst _ = this\n\t\tconst mediaQuery = window.matchMedia('(min-width: 2000px)')\n\n\t\tfunction mediaQueryChange(mediaQuery) {\n\t\t\t_.config.match = false // Switch to true to disable accordion in desktop mode\n\t\t\t_.initAccordion()\n\t\t}\n\n\t\t// Add a listener event\n\t\tmediaQuery.addEventListener('change', mediaQueryChange)\n\n\t\t// On page load\n\t\tmediaQueryChange(mediaQuery)\n\t}\n\n\t/**\n\t * Initialize the accordion utility\n\t */\n\tinitAccordion() {\n\t\tconst _ = this\n\n\t\tfor (const element of _.config.accordionArray) {\n\t\t\tconst accordionWidget = new AccordionWidget(element) // Changed line: store instance in a variable\n\t\t\tif (_.config.match) {\n\t\t\t\taccordionWidget.destroy() // Changed line: call destroy on the stored instance\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Track interaction\n\t * @param {object} event - event object\n\t */\n\ttrackInteraction = (event) => {\n\t\tif (this.accordionArray[0] === event.accordionElement) {\n\t\t\tthis.analyticsService.trackInteraction('accordion', {\n\t\t\t\taccordion_title: event.accordionTitle,\n\t\t\t\taccordion_status: event.status\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Attach events to the accordion component\n\t */\n\tattachEvents() {\n\t\tthis.EventEmitterService.on('accordion', this.trackInteraction)\n\t}\n\n\t/**\n\t * Remove events from the accordion component\n\t */\n\tremoveEvents() {\n\t\tthis.EventEmitterService.off('accordion', this.trackInteraction)\n\t}\n}\n","import Services from 'services'\n\n/* ACCESSIBLE ACCORDION COMPONENT\n Code modified taken from here: https://codepen.io/stowball/pen/eZKwRv\n Options (add to parent element that has class \"accordion-interface\"):\n Multiselect: aria-multiselectable=\"true\"\n Always expand first item: data-firstexpanded=\"true\"\n To have selected panel(s) expanded at start use data-open-panels attribute with panel numbers separated by commas.\n Example: data-open-panels=\"1,2\"\n To keep panels always open at tablet breakpoints and above add to class list: accordion-interface__open-panels__md\n and for desktop only: accordion-interface__open-panels__lg\n*/\n\nfunction AccordionWidget(el, props = {}) {\n\tif (!el) return\n\tthis.el = el\n\tthis.services = Services.getInstance()\n\tthis.EventEmitterService = this.services.EventEmitterService\n\n\tlet triggerClass = 'js-accordion-trigger'\n\tlet panelClass = 'js-accordion-panel'\n\tif (props.id) {\n\t\ttriggerClass += props.id\n\t\tpanelClass += props.id\n\t}\n\tconst expandFirst = el.dataset.firstexpanded === 'true'\n\tthis.multiSelectable = this.el.hasAttribute('aria-multiselectable')\n\n\tlet selectedIndex\n\tif (Number.isInteger(props.selectedIndex))\n\t\tselectedIndex = props.selectedIndex\n\telse if (expandFirst) selectedIndex = 0\n\n\tthis.accordionTriggers = this.el.getElementsByClassName(triggerClass)\n\tthis.accordionPanels = this.el.getElementsByClassName(panelClass)\n\n\tthis.observer = new ResizeObserver((entries) => {\n\t\tentries.forEach((entry) => {\n\t\t\tif (!entry.borderBoxSize) return\n\t\t\tconst { blockSize: height } = entry.borderBoxSize[0]\n\t\t\tentry.target\n\t\t\t\t.closest('.js-accordion-panel')\n\t\t\t\t.style.setProperty('--height', `${height}px`)\n\t\t})\n\t})\n\n\tif (\n\t\tthis.accordionTriggers.length === 0 ||\n\t\tthis.accordionTriggers.length !== this.accordionPanels.length\n\t) {\n\t\treturn\n\t}\n\n\t// if we do not already have a selected index see if we have the open panels attribute\n\tif (selectedIndex === undefined && el.dataset.openPanels) {\n\t\tlet openPanels = el.dataset.openPanels\n\t\topenPanels = openPanels.split(',')\n\t\tconst panelArr = []\n\t\tfor (const panel of openPanels) {\n\t\t\tconst n = parseInt(panel)\n\t\t\t// quick test to make sure we have a positive value\n\t\t\tif ((n | 0) > 0 && n % 1 === 0 && n <= this.accordionTriggers.length) {\n\t\t\t\tpanelArr.push(n - 1)\n\t\t\t\t// if this is not multiselectable then stop after first validated value\n\t\t\t\tif (!this.multiSelectable) break\n\t\t\t}\n\t\t}\n\t\tif (panelArr.length) selectedIndex = panelArr\n\t}\n\n\tthis._init(selectedIndex)\n}\n\nAccordionWidget.prototype._init = function (selectedIndex) {\n\tthis.accordionTriggersLength = this.accordionTriggers.length\n\tthis.expandedAccordions = new Array(this.accordionTriggersLength)\n\tthis.clickListener = this._clickEvent.bind(this)\n\tthis.keydownListener = this._keydownEvent.bind(this)\n\tthis.focusListener = this._focusEvent.bind(this)\n\tthis.keys = {\n\t\tprev: 38,\n\t\tnext: 40,\n\t\tspace: 32\n\t}\n\n\tlet initialSelectedIndex\n\n\tfor (let i = 0; i < this.accordionTriggersLength; i++) {\n\t\tthis.accordionTriggers[i].index = i\n\t\tthis.accordionTriggers[i].addEventListener(\n\t\t\t'click',\n\t\t\tthis.clickListener,\n\t\t\tfalse\n\t\t)\n\t\tthis.accordionTriggers[i].addEventListener(\n\t\t\t'keydown',\n\t\t\tthis.keydownListener,\n\t\t\tfalse\n\t\t)\n\t\tthis.accordionTriggers[i].addEventListener(\n\t\t\t'focus',\n\t\t\tthis.focusListener,\n\t\t\tfalse\n\t\t)\n\t\tthis.accordionTriggers[i].classList.add('is-accordion-trigger')\n\n\t\tif (this.accordionTriggers[i].classList.contains('is-selected')) {\n\t\t\tthis.expandedAccordions[i] = true\n\t\t}\n\t}\n\n\tfor (let i = 0; i < this.accordionPanels.length; i++) {\n\t\tthis.accordionPanels[i].classList.add('is-accordion-panel')\n\n\t\tif (\n\t\t\tthis.accordionPanels[i].querySelector('.accordion-panel__inner') !==\n\t\t\tnull\n\t\t) {\n\t\t\tconst el = this.accordionPanels[i].querySelector(\n\t\t\t\t'.accordion-panel__inner'\n\t\t\t)\n\t\t\tthis.observer.observe(el)\n\t\t}\n\t}\n\n\t// determine which panels need to be open\n\tif (!isNaN(selectedIndex)) {\n\t\tinitialSelectedIndex = selectedIndex\n\t\tthis.expandedAccordions = new Array(this.accordionTriggersLength)\n\t\tthis.expandedAccordions[initialSelectedIndex] = true\n\t} else if (Array.isArray(selectedIndex)) {\n\t\tinitialSelectedIndex = selectedIndex\n\t\tthis.expandedAccordions = new Array(this.accordionTriggersLength)\n\t\tfor (let i = 0; i < this.accordionTriggersLength; i++) {\n\t\t\tif (selectedIndex.includes(i)) this.expandedAccordions[i] = true\n\t\t}\n\t} else {\n\t\tinitialSelectedIndex = this.expandedAccordions.lastIndexOf(true)\n\n\t\tif (!this.multiSelectable) {\n\t\t\tthis.expandedAccordions = new Array(this.accordionTriggersLength)\n\t\t\tthis.expandedAccordions[initialSelectedIndex] = true\n\t\t}\n\t}\n\n\tthis.initialSetIndex = selectedIndex\n\tthis.setSelected(initialSelectedIndex)\n\tthis.setExpanded()\n\tthis.setAPI()\n\tthis.el.classList.add('is-accordion')\n\tthis.el.classList.add('is-initialized')\n}\n\nAccordionWidget.prototype._clickEvent = function (e) {\n\te.preventDefault()\n\tthis.setSelected(e.target.index, true)\n\tthis.setExpanded(e.target.index, true)\n}\n\nAccordionWidget.prototype._keydownEvent = function (e) {\n\tlet targetIndex\n\n\tswitch (e.keyCode) {\n\t\tcase this.keys.space:\n\t\tcase this.keys.prev:\n\t\tcase this.keys.next:\n\t\t\te.preventDefault()\n\t\t\tbreak\n\t\tdefault:\n\t\t\treturn\n\t}\n\n\tif (e.keyCode === this.keys.space) {\n\t\t// this.setExpanded(e.target.index, true);\n\t\te.target.click()\n\n\t\treturn\n\t} else if (e.keyCode === this.keys.prev && e.target.index > 0) {\n\t\ttargetIndex = e.target.index - 1\n\t} else if (\n\t\te.keyCode === this.keys.next &&\n\t\te.target.index < this.accordionTriggersLength - 1\n\t) {\n\t\ttargetIndex = e.target.index + 1\n\t} else {\n\t\treturn\n\t}\n\n\tthis.setSelected(targetIndex, true)\n}\n\nAccordionWidget.prototype._focusEvent = function () {\n\tif (this.accordionTriggersLength === 1) {\n\t\tthis.setSelected(0)\n\t}\n}\n\nAccordionWidget.prototype.setSelected = function (index, userInvoked) {\n\tif (index === -1) {\n\t\tthis.accordionTriggers[0].setAttribute('tabindex', 0)\n\n\t\treturn\n\t}\n\n\tif (Array.isArray(index)) index = index[0]\n\tfor (let i = 0; i < this.accordionTriggersLength; i++) {\n\t\tif (i === index) {\n\t\t\tthis.accordionTriggers[i].classList.add('is-selected')\n\t\t\tthis.accordionTriggers[i].setAttribute('aria-selected', true)\n\t\t\t// this.accordionTriggers[i].setAttribute('tabindex', 0);\n\n\t\t\tif (userInvoked) {\n\t\t\t\tthis.accordionTriggers[i].focus()\n\t\t\t}\n\t\t} else {\n\t\t\tthis.accordionTriggers[i].classList.remove('is-selected')\n\t\t\tthis.accordionTriggers[i].setAttribute('aria-selected', false)\n\n\t\t\t// this.accordionTriggers[i].setAttribute('tabindex', -1);\n\t\t}\n\t}\n}\n\nAccordionWidget.prototype.setExpanded = function (index, userInvoked) {\n\tlet i\n\n\t// special case to close all\n\tif (index === -1) this.expandedAccordions = []\n\n\tif (userInvoked) {\n\t\tif (this.multiSelectable) {\n\t\t\tthis.expandedAccordions[index] = !this.expandedAccordions[index]\n\t\t} else {\n\t\t\tfor (i = 0; i < this.accordionTriggersLength; i++) {\n\t\t\t\tif (i === index) {\n\t\t\t\t\tthis.expandedAccordions[i] = !this.expandedAccordions[i]\n\t\t\t\t} else {\n\t\t\t\t\tthis.expandedAccordions[i] = false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Emit event for the clicked accordion panel\n\t\tconst accordionTitle = this.accordionTriggers[index]?.innerText\n\t\tconst status = this.expandedAccordions[index] ? 'open' : 'close'\n\n\t\tthis.EventEmitterService.emit('accordion', {\n\t\t\taccordionElement: this.el,\n\t\t\taccordionTitle,\n\t\t\tstatus\n\t\t})\n\t}\n\n\tlet hasExpanded = false\n\tfor (i = 0; i < this.accordionTriggersLength; i++) {\n\t\tif (this.expandedAccordions[i]) {\n\t\t\tthis.accordionTriggers[i].setAttribute('aria-expanded', true)\n\t\t\tthis.accordionTriggers[i].classList.add('is-expanded')\n\n\t\t\tthis.accordionPanels[i].setAttribute('aria-hidden', false)\n\t\t\tthis.accordionPanels[i].classList.add('is-open')\n\n\t\t\tthis.accordionTriggers[i].parentElement.classList.add('is-active')\n\t\t\t// this.accordionPanels[i].setAttribute('tabindex', 0);\n\n\t\t\thasExpanded = true\n\t\t} else {\n\t\t\tthis.accordionTriggers[i].setAttribute('aria-expanded', false)\n\t\t\tthis.accordionTriggers[i].classList.remove('is-expanded')\n\n\t\t\tthis.accordionPanels[i].setAttribute('aria-hidden', true)\n\t\t\tthis.accordionPanels[i].classList.remove('is-open')\n\n\t\t\tthis.accordionTriggers[i].parentElement.classList.remove('is-active')\n\t\t\t// this.accordionPanels[i].setAttribute('tabindex', -1);\n\t\t}\n\t}\n\n\t// add close to parent to indicate there is an open element\n\tif (hasExpanded) this.el.classList.add('has-expanded-el')\n\telse this.el.classList.remove('has-expanded-el')\n\tthis.hasExpanded = hasExpanded\n}\n\nAccordionWidget.prototype.setAPI = function () {\n\t// add API functionality here\n\tthis.close = function () {\n\t\tthis.setSelected(-1)\n\t\tthis.setExpanded(-1)\n\t}\n\t// open initial index\n\tthis.openInit = function () {\n\t\tconst index = this.initialSetIndex\n\t\tif (Number.isInteger(index)) {\n\t\t\tthis.setSelected(index, true)\n\t\t\tthis.setExpanded(index, true)\n\t\t}\n\t}\n}\n\nAccordionWidget.prototype.destroy = function () {\n\tthis.el.classList.remove('is-initialized')\n\n\tfor (let i = 0; i < this.accordionTriggersLength; i++) {\n\t\tthis.accordionTriggers[i].removeAttribute('aria-expanded')\n\t\tthis.accordionTriggers[i].removeAttribute('aria-selected')\n\t\tthis.accordionTriggers[i].classList.remove('is-expanded')\n\n\t\tthis.accordionPanels[i].removeAttribute('aria-hidden')\n\t\tthis.accordionPanels[i].classList.remove('is-open')\n\t\tthis.accordionPanels[i].removeAttribute('tabindex')\n\n\t\tthis.accordionTriggers[i].removeEventListener(\n\t\t\t'click',\n\t\t\tthis.clickListener,\n\t\t\tfalse\n\t\t)\n\t\tthis.accordionTriggers[i].removeEventListener(\n\t\t\t'keydown',\n\t\t\tthis.keydownListener,\n\t\t\tfalse\n\t\t)\n\t\tthis.accordionTriggers[i].removeEventListener(\n\t\t\t'focus',\n\t\t\tthis.focusListener,\n\t\t\tfalse\n\t\t)\n\n\t\tif (\n\t\t\tthis.accordionPanels[i].querySelector('.accordion-panel__inner') !==\n\t\t\tnull\n\t\t) {\n\t\t\tconst el = this.accordionPanels[i].querySelector(\n\t\t\t\t'.accordion-panel__inner'\n\t\t\t)\n\t\t\tthis.observer.unobserve(el)\n\t\t}\n\n\t\tdelete this.accordionTriggers[i].index\n\t}\n}\n\nexport { AccordionWidget }\n"],"names":["Accordion","constructor","element","this","accordionArray","getElementsByClassName","config","match","services","Services","getInstance","EventEmitterService","analyticsService","Analytics","init","mqContext","attachEvents","destroy","removeEvents","_","mediaQueryChange","mediaQuery","initAccordion","window","matchMedia","addEventListener","accordionWidget","AccordionWidget","trackInteraction","event","accordionElement","accordion_title","accordionTitle","accordion_status","status","on","off","el","props","arguments","length","undefined","triggerClass","panelClass","id","expandFirst","dataset","firstexpanded","selectedIndex","multiSelectable","hasAttribute","Number","isInteger","accordionTriggers","accordionPanels","observer","ResizeObserver","entries","forEach","entry","borderBoxSize","blockSize","height","target","closest","style","setProperty","openPanels","split","panelArr","panel","n","parseInt","push","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","bind","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","index","classList","add","contains","querySelector","observe","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","e","preventDefault","targetIndex","keyCode","click","userInvoked","setAttribute","focus","remove","innerText","emit","hasExpanded","parentElement","close","openInit","removeAttribute","removeEventListener","unobserve"],"sourceRoot":""}