{"version":3,"file":"812.min.js?t=1744984834426","mappings":"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","sources":["webpack://@hero-digital/masonite/./src/components/modules/Footer/Footer.js","webpack://@hero-digital/masonite/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from '../../../js/utilities/accordion'\nimport tippy from 'tippy.js'\nimport Pristine from 'pristinejs'\nimport Analytics from 'services/Analytics/Analytics'\n\n// Footer Component\nexport default class Footer {\n\tconstructor(element) {\n\t\tthis.element = element // ref to component element\n\t\tthis.config = {\n\t\t\tmatch: false,\n\t\t\taccordionArray: document.getElementsByClassName('js-module-footer-nav')\n\t\t}\n\t\tthis.analyticsService = Analytics.getInstance() // ref to analytics service\n\t\tthis.init()\n\t}\n\n\tinit() {\n\t\tconst _ = this\n\n\t\t_.mqContext()\n\n\t\t_.initPopover()\n\n\t\t_.initNewsletter()\n\t}\n\n\tmqContext() {\n\t\tconst _ = this\n\t\tconst mediaQuery = window.matchMedia('(min-width: 768px)')\n\n\t\tfunction mediaQueryChange(mediaQuery) {\n\t\t\t// Desktop\n\t\t\tif (mediaQuery.matches) {\n\t\t\t\t_.config.match = true\n\t\t\t\t_.initAccordion()\n\t\t\t\t// Mobile / Tablet\n\t\t\t} else {\n\t\t\t\t_.config.match = false\n\t\t\t\t_.initAccordion()\n\t\t\t}\n\t\t}\n\n\t\t// add a listener event\n\t\tif (mediaQuery?.addEventListener) {\n\t\t\tmediaQuery.addEventListener('change', mediaQueryChange)\n\t\t} else if (mediaQuery.addListener) {\n\t\t\tmediaQuery.addListener(mediaQueryChange)\n\t\t} else {\n\t\t\tconsole.error('Could not attach media query change listener')\n\t\t}\n\n\t\t// on page load\n\t\tmediaQueryChange(mediaQuery)\n\t}\n\n\tinitAccordion() {\n\t\tconst _ = this\n\t\tthis.accordions = []\n\n\t\t// this was changed to a for-of loop to fix a sonar lint error\n\t\tfor (const accElement of _.config.accordionArray) {\n\t\t\tconst acc = new AccordionWidget(accElement)\n\t\t\tthis.accordions.push(acc)\n\t\t\tif (_.config.match !== false) {\n\t\t\t\tacc.destroy()\n\t\t\t}\n\t\t}\n\t}\n\n\tinitPopover() {\n\t\tconst tooltipContent = document.querySelector('#js-microsites-content')\n\n\t\ttippy('.tooltip', {\n\t\t\tallowHTML: true,\n\t\t\tcontent: tooltipContent,\n\t\t\tanimateFill: true,\n\t\t\tinteractive: true,\n\t\t\tplacement: 'bottom',\n\t\t\ttrigger: 'click'\n\t\t})\n\t}\n\n\tinitNewsletter() {\n\t\tconst _ = this\n\t\tconst config = {\n\t\t\t// class of the parent element where the error/success class is added\n\t\t\tclassTo: 'newsletter__form-input',\n\t\t\terrorClass: 'fdn-input__error',\n\t\t\tsuccessClass: 'success',\n\t\t\t// class of the parent element where error text element is appended\n\t\t\terrorTextParent: 'newsletter__form-input',\n\t\t\t// type of element to create for the error text\n\t\t\terrorTextTag: 'div',\n\t\t\t// class of the error text element\n\t\t\terrorTextClass: 'fdn-input__error-container',\n\t\t\thiddenClass: 'hidden',\n\t\t\terrorDivClass: 'form__error',\n\t\t\terrorIntroDefault: 'Please correct the following errors',\n\t\t\tapiErrorDefault:\n\t\t\t\t'There was an error connecting to the server. Please try again.'\n\t\t}\n\n\t\t// get form\n\t\tconst form = document.querySelector('.newsletter__form')\n\t\tconst successMessage = document.querySelector('.newsletter__thank-you')\n\n\t\t// look for error field and create one if needed\n\t\tlet errorWrapper = form.querySelector('.' + config.errorDivClass)\n\n\t\tlet intro, introtext\n\t\tif (!errorWrapper) {\n\t\t\terrorWrapper = document.createElement('div')\n\t\t\terrorWrapper.classList.add(config.errorDivClass, config.hiddenClass)\n\t\t\tintro = document.createElement('p')\n\t\t\tintrotext = form.dataset.errorIntro || config.errorIntroDefault\n\t\t\tintro.innerHTML = introtext\n\t\t\terrorWrapper.append(intro)\n\t\t\tform.prepend(errorWrapper)\n\t\t}\n\n\t\tconst errorList = null\n\n\t\t// create the pristine\n\t\tconst pristine = new Pristine(form, config)\n\t\t// attach pristine to form object if needed by other scripts\n\t\tform.pristine = pristine\n\n\t\t// if we have a custom submit, attach validation to form object and do nothing more\n\t\tform.addEventListener('submit', (e) => {\n\t\t\tsubmitForm(\n\t\t\t\te,\n\t\t\t\tintro,\n\t\t\t\tintrotext,\n\t\t\t\terrorWrapper,\n\t\t\t\terrorList,\n\t\t\t\tpristine,\n\t\t\t\tform\n\t\t\t)\n\t\t})\n\n\t\tformActionInit()\n\n\t\tfunction submitForm(\n\t\t\te,\n\t\t\tintro,\n\t\t\tintrotext,\n\t\t\terrorWrapper,\n\t\t\terrorList,\n\t\t\tpristine,\n\t\t\tform\n\t\t) {\n\t\t\te.preventDefault()\n\n\t\t\t// re-instantiate intro text as it gets overwritten in special circumstances\n\t\t\tintro.innerHTML = introtext\n\t\t\terrorWrapper.classList.add(config.hiddenClass)\n\t\t\tconst valid = pristine.validate() // returns true or false\n\n\t\t\tif (valid) {\n\t\t\t\tsuccessMessage.classList.add('newsletter__thank-you--visible')\n\t\t\t\tform.classList.add('newsletter__form--hidden')\n\t\t\t\t_.analyticsService.trackInteraction('sign_up', {\n\t\t\t\t\tmethod: 'newsletter'\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tfunction formActionInit() {\n\t\t\tconst form = document.querySelector('form.js-validate-form')\n\t\t\tif (form) {\n\t\t\t\tconst requiredfields = form.querySelectorAll('input[required]')\n\t\t\t\tif (requiredfields) {\n\t\t\t\t\trequiredfields[0].addEventListener('focus', function () {\n\t\t\t\t\t\tupdateFormAction()\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction updateFormAction() {\n\t\t\tconst form = document.querySelector('form.js-validate-form')\n\t\t\tconst formAction = document.querySelector('#formaction')\n\t\t\tform.action = formAction?.value\n\t\t}\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":["Footer","constructor","element","this","config","match","accordionArray","document","getElementsByClassName","analyticsService","Analytics","getInstance","init","_","mqContext","initPopover","initNewsletter","mediaQuery","window","matchMedia","mediaQueryChange","matches","initAccordion","addEventListener","addListener","console","error","accordions","accElement","acc","AccordionWidget","push","destroy","tooltipContent","querySelector","tippy","allowHTML","content","animateFill","interactive","placement","trigger","classTo","errorClass","successClass","errorTextParent","errorTextTag","errorTextClass","hiddenClass","errorDivClass","errorIntroDefault","apiErrorDefault","form","successMessage","intro","introtext","errorWrapper","createElement","classList","add","dataset","errorIntro","innerHTML","append","prepend","pristine","Pristine","e","errorList","preventDefault","validate","trackInteraction","method","submitForm","requiredfields","querySelectorAll","formAction","action","value","updateFormAction","formActionInit","el","props","arguments","length","undefined","services","Services","EventEmitterService","triggerClass","panelClass","id","expandFirst","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","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","bind","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","index","contains","observe","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","targetIndex","keyCode","click","userInvoked","setAttribute","focus","remove","accordionTitle","innerText","status","emit","accordionElement","hasExpanded","parentElement","close","openInit","removeAttribute","removeEventListener","unobserve"],"sourceRoot":""}