{"version":3,"file":"zoomv.9487.min.js?t=47605d25a7aab8ad40f6","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/js/utilities/accordion.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-filter.js","webpack://@hero-digital/zoom/./src/js/utilities/datalayer/data-layer-search.js"],"sourcesContent":["/* 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 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 this.expandedAccordions[index] = !this.expandedAccordions[index]\r\n } else {\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.expandedAccordions[i] = !this.expandedAccordions[i]\r\n } else {\r\n this.expandedAccordions[i] = false\r\n }\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","function DataLayerFilter() {\r\n this.filterInteractionEvent = 'filterInteraction';\r\n this.filterAppliedInteraction = 'filter applied';\r\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint');\r\n this.uiLocation = this.apiEndpoint ? this.apiEndpoint.split('/')[2] : 'grid landing page';\r\n this.filterInputs = document.querySelectorAll('input[type=\"checkbox\"], input[type=\"radio\"], select');\r\n this._handleFilterChange = this._handleFilterChange.bind(this);\r\n}\r\n\r\nDataLayerFilter.prototype._init = function () {\r\n this._trackFilterInteractions();\r\n};\r\n\r\nDataLayerFilter.prototype._trackFilterInteractions = function () {\r\n this.filterInputs.forEach(filter => {\r\n if (!filter.hasEventListener) {\r\n filter.addEventListener('change', (event) => {\r\n if (event.target.checked || event.target.tagName === 'SELECT') {\r\n setTimeout(() => {\r\n this._handleFilterChange()\r\n }, 50)\r\n }\r\n });\r\n filter.hasEventListener = true;\r\n }\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._handleFilterChange = function () {\r\n let filtersApplied = this._getAppliedFilters();\r\n\r\n if (!filtersApplied || Object.keys(filtersApplied).length === 0) {\r\n return;\r\n }\r\n\r\n // Filter out unnecessary keys like \"sort\" and \"ot-group-id-C000X\"\r\n const validFilterKeys = Object.keys(filtersApplied).filter(\r\n key => !key.startsWith(\"ot-group-id\") && key !== \"sort\"\r\n );\r\n\r\n // Extract all selected values from relevant filters\r\n let selectedFilters = [];\r\n validFilterKeys.forEach(key => {\r\n selectedFilters = selectedFilters.concat(filtersApplied[key]);\r\n });\r\n\r\n // Remove duplicates if the same filter is clicked multiple times\r\n selectedFilters = [...new Set(selectedFilters)];\r\n\r\n if (selectedFilters.length === 0) {\r\n return;\r\n }\r\n\r\n window.dataLayer.push({\r\n event: this.filterInteractionEvent,\r\n filterInteraction: this.filterAppliedInteraction,\r\n filtersUsed: selectedFilters, \r\n uiLocation: this.uiLocation\r\n });\r\n};\r\n\r\nDataLayerFilter.prototype._getAppliedFilters = function () {\r\n const appliedFilters = {};\r\n document.querySelectorAll('input[type=\"checkbox\"]:checked, input[type=\"radio\"]:checked').forEach(input => {\r\n const filterType = input.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(input.value);\r\n });\r\n\r\n document.querySelectorAll('select').forEach(select => {\r\n if (select.value) {\r\n const filterType = select.name || 'unknown';\r\n if (!appliedFilters[filterType]) appliedFilters[filterType] = [];\r\n appliedFilters[filterType].push(select.value);\r\n }\r\n });\r\n\r\n return appliedFilters;\r\n};\r\n\r\nexport { DataLayerFilter };\r\n","function DataLayerSearch() {\n this.searchIntractionEvent = 'searchInteraction'\n this.searchValueEvent = 'search'\n this.searchBarClickIntraction = 'search bar clicked'\n this.clearSearchIntraction = 'clear search'\n this.coveoSearchLabel = 'coveo search'\n this.searchBox = document.querySelector('#q')\n this.apiEndpoint = document.querySelector('#q')?.closest('.grid-landing-page')?.getAttribute('data-api-endpoint')\n this.clearSearch = document.querySelector('.grid-landing-page__text-input__search-icon--close')\n this.resultCount = 0\n this.uiLocation = (this.apiEndpoint) ? this.apiEndpoint.split('/')[2] : 'grid landing page'\n this.coveoSearchBox = document.querySelector('.FlyoutButton')\n this.coveoSearchInput = document.querySelector('.magic-box-input input')\n this.coveoClearSearch = document.querySelector('.magic-box-icon')\n this.coveoSearchIcon = document.querySelector('.CoveoSearchButton')\n this.coveoSearchPageInput = document.querySelector('main .magic-box-input input')\n this.coveoPageClearSearch = document.querySelector('main .magic-box-icon')\n this.coveoPageSearchIcon = document.querySelector('main .CoveoSearchButton')\r\n}\r\nDataLayerSearch.prototype._init = function () {\n this._searchClick()\r\n}\n\nDataLayerSearch.prototype._updateDataLayerWithCardCount = function (resultCount) {\r if (resultCount && !isNaN(resultCount)) {\r this.resultCount = parseInt(resultCount)\r }\n if (this.searchBox.value) {\n let eventData = {\n event: this.searchValueEvent,\r\n searchTermUsed: this.searchBox.value,\r\n numResults: this.resultCount,\r\n uiLocation: this.uiLocation\r\n }\r\n window.dataLayer.push(eventData)\r\n }\r}\n\nDataLayerSearch.prototype._searchClickIntraction = function (searchBoxClick, searchBarClickIntraction, uiLocation) {\n if (searchBoxClick != null) {\n searchBoxClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchIntractionEvent,\r\n searchInteraction: searchBarClickIntraction,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntraction = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('click', () => {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n })\n }\r\n}\n\nDataLayerSearch.prototype._searchValueIntractionByPressEnter = function (searchElementClick, searchTerm, uiLocation) {\n if (searchElementClick != null) {\n searchElementClick.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' || e.keyCode === 13) {\n let eventData = {\r\n event: this.searchValueEvent,\r\n searchTermUsed: searchTerm?.value,\r\n uiLocation: uiLocation\r\n }\r\n window.dataLayer.push(eventData)\n }\n })\n }\r\n}\nDataLayerSearch.prototype._searchClick = function () {\r\n try {\n \n this._searchClickIntraction(this.searchBox,this.searchBarClickIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.clearSearch,this.clearSearchIntraction,this.uiLocation)\n\n this._searchClickIntraction(this.coveoSearchBox,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchInput,this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoSearchPageInput, this.searchBarClickIntraction, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchInput, this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntractionByPressEnter(this.coveoSearchPageInput, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchClickIntraction(this.coveoPageClearSearch,this.clearSearchIntraction, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoSearchIcon,this.coveoSearchInput, this.coveoSearchLabel)\n\n this._searchValueIntraction(this.coveoPageSearchIcon, this.coveoSearchPageInput, this.coveoSearchLabel)\n\n document.addEventListener(\"click\", function (e) {\n const target = e.target.closest(\".magic-box-suggestion\");\n if (target) {\n let eventData = {\r\n event: 'search',\r\n searchTermUsed: target.getAttribute('aria-label'),\r\n uiLocation: 'coveo search'\r\n }\r\n window.dataLayer.push(eventData)\n }\n });\r\n }\r\n catch (e) { }\r\n}\r\nexport { DataLayerSearch }\r\n"],"names":["AccordionWidget","el","props","arguments","length","undefined","this","triggerClass","panelClass","id","selectedIndex","expandFirst","dataset","firstexpanded","multiSelectable","hasAttribute","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","_step","panelArr","_iterator","_createForOfIteratorHelper","split","s","n","done","panel","value","parseInt","push","err","e","f","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","bind","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","index","addEventListener","classList","add","contains","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","preventDefault","target","targetIndex","keyCode","click","userInvoked","focus","remove","setAttribute","hidePanelContent","item","setTimeout","hasExpanded","removeAttribute","gsap","to","height","duration","parentElement","close","openInit","destroy","removeEventListener","DataLayerFilter","_document$querySelect","filterInteractionEvent","filterAppliedInteraction","apiEndpoint","document","querySelector","closest","getAttribute","uiLocation","filterInputs","querySelectorAll","_handleFilterChange","_trackFilterInteractions","_this","forEach","filter","hasEventListener","event","checked","tagName","filtersApplied","_getAppliedFilters","Object","validFilterKeys","key","startsWith","selectedFilters","concat","Set","window","dataLayer","filterInteraction","filtersUsed","appliedFilters","input","filterType","name","select","DataLayerSearch","searchIntractionEvent","searchValueEvent","searchBarClickIntraction","clearSearchIntraction","coveoSearchLabel","searchBox","clearSearch","resultCount","coveoSearchBox","coveoSearchInput","coveoClearSearch","coveoSearchIcon","coveoSearchPageInput","coveoPageClearSearch","coveoPageSearchIcon","_searchClick","_updateDataLayerWithCardCount","eventData","searchTermUsed","numResults","_searchClickIntraction","searchBoxClick","searchInteraction","_searchValueIntraction","searchElementClick","searchTerm","_this2","_searchValueIntractionByPressEnter","_this3"],"sourceRoot":""}