{"version":3,"file":"812.min.js?t=1743173738202","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 constructor(element) {\n this.element = element // ref to component element\n this.config = {\n match: false,\n accordionArray: document.getElementsByClassName('js-module-footer-nav')\n }\n this.analyticsService = Analytics.getInstance() // ref to analytics service\n this.init()\n }\n\n init() {\n const _ = this\n\n _.mqContext()\n\n _.initPopover()\n\n _.initNewsletter()\n }\n\n mqContext() {\n const _ = this\n const mediaQuery = window.matchMedia('(min-width: 768px)')\n\n function mediaQueryChange(mediaQuery) {\n // Desktop\n if (mediaQuery.matches) {\n _.config.match = true\n _.initAccordion()\n // Mobile / Tablet\n } else {\n _.config.match = false\n _.initAccordion()\n }\n }\n\n // add a listener event\n if (mediaQuery?.addEventListener) {\n mediaQuery.addEventListener('change', mediaQueryChange)\n } else if (mediaQuery.addListener) {\n mediaQuery.addListener(mediaQueryChange)\n } else {\n\t\t console.error('Could not attach media query change listener');\n\t }\n\n // on page load\n mediaQueryChange(mediaQuery)\n }\n\n initAccordion() {\n const _ = this\n this.accordions = []\n\n\t // this was changed to a for-of loop to fix a sonar lint error\n\t for (const accElement of _.config.accordionArray) {\n\t\t const acc = new AccordionWidget(accElement)\n\t\t this.accordions.push(acc)\n\t\t if (_.config.match !== false) {\n\t\t\t acc.destroy()\n\t\t }\n\t }\n }\n\n initPopover() {\n const tooltipContent = document.querySelector('#js-microsites-content')\n\n tippy('.tooltip', {\n allowHTML: true,\n content: tooltipContent,\n animateFill: true,\n interactive: true,\n placement: 'bottom',\n trigger: 'click'\n })\n }\n\n initNewsletter() {\n const _ = this\n const config = {\n // class of the parent element where the error/success class is added\n classTo: 'newsletter__form-input',\n errorClass: 'fdn-input__error',\n successClass: 'success',\n // class of the parent element where error text element is appended\n errorTextParent: 'newsletter__form-input',\n // type of element to create for the error text\n errorTextTag: 'div',\n // class of the error text element\n errorTextClass: 'fdn-input__error-container',\n hiddenClass: 'hidden',\n errorDivClass: 'form__error',\n errorIntroDefault: 'Please correct the following errors',\n apiErrorDefault:\n 'There was an error connecting to the server. Please try again.'\n }\n\n // get form\n const form = document.querySelector('.newsletter__form')\n const successMessage = document.querySelector('.newsletter__thank-you')\n\n // look for error field and create one if needed\n let errorWrapper = form.querySelector('.' + config.errorDivClass)\n\n let intro, introtext\n if (!errorWrapper) {\n errorWrapper = document.createElement('div')\n errorWrapper.classList.add(config.errorDivClass, config.hiddenClass)\n intro = document.createElement('p')\n introtext = form.dataset.errorIntro || config.errorIntroDefault\n intro.innerHTML = introtext\n errorWrapper.append(intro)\n form.prepend(errorWrapper)\n }\n\n\t\tconst errorList = null;\n\n // create the pristine\n const pristine = new Pristine(form, config)\n // attach pristine to form object if needed by other scripts\n form.pristine = pristine\n\n // if we have a custom submit, attach validation to form object and do nothing more\n form.addEventListener('submit', (e) => {\n submitForm(e, intro, introtext, errorWrapper, errorList, pristine, form)\n })\n\n formActionInit()\n\n function submitForm(\n e,\n intro,\n introtext,\n errorWrapper,\n errorList,\n pristine,\n form\n ) {\n e.preventDefault()\n\n // re-instantiate intro text as it gets overwritten in special circumstances\n intro.innerHTML = introtext\n errorWrapper.classList.add(config.hiddenClass)\n const valid = pristine.validate() // returns true or false\n\n if (valid) {\n successMessage.classList.add('newsletter__thank-you--visible')\n form.classList.add('newsletter__form--hidden')\n _.analyticsService.trackInteraction('sign_up', {\n method: 'newsletter'\n })\n }\n }\n\n function formActionInit() {\n const form = document.querySelector('form.js-validate-form')\n if (form) {\n const requiredfields = form.querySelectorAll('input[required]')\n if (requiredfields) {\n requiredfields[0].addEventListener('focus', function () {\n updateFormAction()\n })\n }\n }\n }\n\n function updateFormAction() {\n const form = document.querySelector('form.js-validate-form')\n const formAction = document.querySelector('#formaction')\n form.action = formAction?.value\n }\n }\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 if (!el) return\n this.el = el\n this.services = Services.getInstance()\n this.EventEmitterService = this.services.EventEmitterService\n\n let triggerClass = 'js-accordion-trigger'\n let panelClass = 'js-accordion-panel'\n if (props.id) {\n triggerClass += props.id\n panelClass += props.id\n }\n const expandFirst = el.dataset.firstexpanded === 'true'\n this.multiSelectable = this.el.hasAttribute('aria-multiselectable')\n\n let selectedIndex\n if (Number.isInteger(props.selectedIndex)) selectedIndex = props.selectedIndex\n else if (expandFirst) selectedIndex = 0\n\n this.accordionTriggers = this.el.getElementsByClassName(triggerClass)\n this.accordionPanels = this.el.getElementsByClassName(panelClass)\n\n this.observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n if (!entry.borderBoxSize) return\n const { blockSize: height } = entry.borderBoxSize[0]\n entry.target\n .closest('.js-accordion-panel')\n .style.setProperty('--height', `${height}px`)\n })\n })\n\n if (\n this.accordionTriggers.length === 0 ||\n this.accordionTriggers.length !== this.accordionPanels.length\n ) {\n return\n }\n\n // if we do not already have a selected index see if we have the open panels attribute\n if (selectedIndex === undefined && el.dataset.openPanels) {\n let openPanels = el.dataset.openPanels\n openPanels = openPanels.split(',')\n const panelArr = []\n for (const panel of openPanels) {\n const n = parseInt(panel)\n // quick test to make sure we have a positive value\n if ((n | 0) > 0 && n % 1 === 0 && n <= this.accordionTriggers.length) {\n panelArr.push(n - 1)\n // if this is not multiselectable then stop after first validated value\n if (!this.multiSelectable) break\n }\n }\n if (panelArr.length) selectedIndex = panelArr\n }\n\n this._init(selectedIndex)\n}\n\nAccordionWidget.prototype._init = function (selectedIndex) {\n this.accordionTriggersLength = this.accordionTriggers.length\n this.expandedAccordions = new Array(this.accordionTriggersLength)\n this.clickListener = this._clickEvent.bind(this)\n this.keydownListener = this._keydownEvent.bind(this)\n this.focusListener = this._focusEvent.bind(this)\n this.keys = {\n prev: 38,\n next: 40,\n space: 32\n }\n\n let initialSelectedIndex\n\n for (let i = 0; i < this.accordionTriggersLength; i++) {\n this.accordionTriggers[i].index = i\n this.accordionTriggers[i].addEventListener(\n 'click',\n this.clickListener,\n false\n )\n this.accordionTriggers[i].addEventListener(\n 'keydown',\n this.keydownListener,\n false\n )\n this.accordionTriggers[i].addEventListener(\n 'focus',\n this.focusListener,\n false\n )\n this.accordionTriggers[i].classList.add('is-accordion-trigger')\n\n if (this.accordionTriggers[i].classList.contains('is-selected')) {\n this.expandedAccordions[i] = true\n }\n }\n\n for (let i = 0; i < this.accordionPanels.length; i++) {\n this.accordionPanels[i].classList.add('is-accordion-panel')\n\n if (\n this.accordionPanels[i].querySelector('.accordion-panel__inner') !== null\n ) {\n const el = this.accordionPanels[i].querySelector(\n '.accordion-panel__inner'\n )\n this.observer.observe(el)\n }\n }\n\n // determine which panels need to be open\n if (!isNaN(selectedIndex)) {\n initialSelectedIndex = selectedIndex\n this.expandedAccordions = new Array(this.accordionTriggersLength)\n this.expandedAccordions[initialSelectedIndex] = true\n } else if (Array.isArray(selectedIndex)) {\n initialSelectedIndex = selectedIndex\n this.expandedAccordions = new Array(this.accordionTriggersLength)\n for (let i = 0; i < this.accordionTriggersLength; i++) {\n if (selectedIndex.includes(i)) this.expandedAccordions[i] = true\n }\n } else {\n initialSelectedIndex = this.expandedAccordions.lastIndexOf(true)\n\n if (!this.multiSelectable) {\n this.expandedAccordions = new Array(this.accordionTriggersLength)\n this.expandedAccordions[initialSelectedIndex] = true\n }\n }\n\n this.initialSetIndex = selectedIndex\n this.setSelected(initialSelectedIndex)\n this.setExpanded()\n this.setAPI()\n this.el.classList.add('is-accordion')\n this.el.classList.add('is-initialized')\n}\n\nAccordionWidget.prototype._clickEvent = function (e) {\n e.preventDefault()\n this.setSelected(e.target.index, true)\n this.setExpanded(e.target.index, true)\n}\n\nAccordionWidget.prototype._keydownEvent = function (e) {\n let targetIndex\n\n switch (e.keyCode) {\n case this.keys.space:\n case this.keys.prev:\n case this.keys.next:\n e.preventDefault()\n break\n default:\n return\n }\n\n if (e.keyCode === this.keys.space) {\n // this.setExpanded(e.target.index, true);\n e.target.click()\n\n return\n } else if (e.keyCode === this.keys.prev && e.target.index > 0) {\n targetIndex = e.target.index - 1\n } else if (\n e.keyCode === this.keys.next &&\n e.target.index < this.accordionTriggersLength - 1\n ) {\n targetIndex = e.target.index + 1\n } else {\n return\n }\n\n this.setSelected(targetIndex, true)\n}\n\nAccordionWidget.prototype._focusEvent = function () {\n if (this.accordionTriggersLength === 1) {\n this.setSelected(0)\n }\n}\n\nAccordionWidget.prototype.setSelected = function (index, userInvoked) {\n if (index === -1) {\n this.accordionTriggers[0].setAttribute('tabindex', 0)\n\n return\n }\n\n if (Array.isArray(index)) index = index[0]\n for (let i = 0; i < this.accordionTriggersLength; i++) {\n if (i === index) {\n this.accordionTriggers[i].classList.add('is-selected')\n this.accordionTriggers[i].setAttribute('aria-selected', true)\n // this.accordionTriggers[i].setAttribute('tabindex', 0);\n\n if (userInvoked) {\n this.accordionTriggers[i].focus()\n }\n } else {\n this.accordionTriggers[i].classList.remove('is-selected')\n this.accordionTriggers[i].setAttribute('aria-selected', false)\n\n // this.accordionTriggers[i].setAttribute('tabindex', -1);\n }\n }\n}\n\nAccordionWidget.prototype.setExpanded = function (index, userInvoked) {\n let i\n\n // special case to close all\n if (index === -1) this.expandedAccordions = []\n\n if (userInvoked) {\n if (this.multiSelectable) {\n this.expandedAccordions[index] = !this.expandedAccordions[index]\n } else {\n for (i = 0; i < this.accordionTriggersLength; i++) {\n if (i === index) {\n this.expandedAccordions[i] = !this.expandedAccordions[i]\n } else {\n this.expandedAccordions[i] = false\n }\n }\n }\n\n // Emit event for the clicked accordion panel\n const accordionTitle = this.accordionTriggers[index]?.innerText\n const status = this.expandedAccordions[index] ? 'open' : 'close'\n\n this.EventEmitterService.emit('accordion', {\n accordionElement: this.el,\n accordionTitle,\n status\n })\n }\n\n let hasExpanded = false\n for (i = 0; i < this.accordionTriggersLength; i++) {\n if (this.expandedAccordions[i]) {\n this.accordionTriggers[i].setAttribute('aria-expanded', true)\n this.accordionTriggers[i].classList.add('is-expanded')\n\n this.accordionPanels[i].setAttribute('aria-hidden', false)\n this.accordionPanels[i].classList.add('is-open')\n\n this.accordionTriggers[i].parentElement.classList.add('is-active')\n // this.accordionPanels[i].setAttribute('tabindex', 0);\n\n hasExpanded = true\n } else {\n this.accordionTriggers[i].setAttribute('aria-expanded', false)\n this.accordionTriggers[i].classList.remove('is-expanded')\n\n this.accordionPanels[i].setAttribute('aria-hidden', true)\n this.accordionPanels[i].classList.remove('is-open')\n\n this.accordionTriggers[i].parentElement.classList.remove('is-active')\n // this.accordionPanels[i].setAttribute('tabindex', -1);\n }\n }\n\n // add close to parent to indicate there is an open element\n if (hasExpanded) this.el.classList.add('has-expanded-el')\n else this.el.classList.remove('has-expanded-el')\n this.hasExpanded = hasExpanded\n}\n\nAccordionWidget.prototype.setAPI = function () {\n // add API functionality here\n this.close = function () {\n this.setSelected(-1)\n this.setExpanded(-1)\n }\n // open initial index\n this.openInit = function () {\n const index = this.initialSetIndex\n if (Number.isInteger(index)) {\n this.setSelected(index, true)\n this.setExpanded(index, true)\n }\n }\n}\n\nAccordionWidget.prototype.destroy = function () {\n this.el.classList.remove('is-initialized')\n\n for (let i = 0; i < this.accordionTriggersLength; i++) {\n this.accordionTriggers[i].removeAttribute('aria-expanded')\n this.accordionTriggers[i].removeAttribute('aria-selected')\n this.accordionTriggers[i].classList.remove('is-expanded')\n\n this.accordionPanels[i].removeAttribute('aria-hidden')\n this.accordionPanels[i].classList.remove('is-open')\n this.accordionPanels[i].removeAttribute('tabindex')\n\n this.accordionTriggers[i].removeEventListener(\n 'click',\n this.clickListener,\n false\n )\n this.accordionTriggers[i].removeEventListener(\n 'keydown',\n this.keydownListener,\n false\n )\n this.accordionTriggers[i].removeEventListener(\n 'focus',\n this.focusListener,\n false\n )\n\n if (\n this.accordionPanels[i].querySelector('.accordion-panel__inner') !== null\n ) {\n const el = this.accordionPanels[i].querySelector(\n '.accordion-panel__inner'\n )\n this.observer.unobserve(el)\n }\n\n delete this.accordionTriggers[i].index\n }\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":""}