{"version":3,"file":"zoomv.7978.min.js?t=3484a409de4667ea105e","mappings":"+5BAgKA,QA9Jc,WAmBX,O,EAlBD,SAAAA,EAAYC,I,4FAAIC,CAAA,KAAAF,GACdG,KAAKF,GAAKA,EACVE,KAAKC,WAAaD,KAAKF,GAAGI,iBACxB,8CAEFF,KAAKG,YAAcC,SAASF,iBAAiB,0BAC7CF,KAAKK,cAAgBL,KAAKF,GAAGQ,cAAc,+BAE3CN,KAAKO,gBAAmD,WAAjCT,EAAGU,aAAa,aACvCR,KAAKS,cAA0D,MAA1CX,EAAGU,aAAa,sBAErCR,KAAKU,0BAA4BV,KAAKU,0BAA0BC,KAAKX,MACrEA,KAAKY,8BAELZ,KAAKa,8BACLb,KAAKc,WACLd,KAAKe,qBACLf,KAAKgB,eACP,E,EAAC,EAAAC,IAAA,8BAAAC,MAED,WAA8B,IAAAC,EAAAC,EAAA,KACV,QAAlBD,EAAAnB,KAAKK,qBAAa,IAAAc,GAAlBA,EAAoBE,iBAAiB,SAAS,WAE5C,GADwE,SAArDD,EAAKf,cAAcG,aAAa,iBAClC,CACf,IAAMc,EAAQ,IAAIC,YAAY,gBAAiB,CAC7CC,OAAQ,CAAEC,SAAUL,EAAKtB,MAE3B4B,OAAOC,cAAcL,EACvB,CACF,GACF,GAAC,CAAAL,IAAA,8BAAAC,MAED,WACEQ,OAAOL,iBAAiB,gBAAiBrB,KAAKU,0BAChD,GAAC,CAAAO,IAAA,4BAAAC,MAED,SAA0BU,GACpBA,EAAEJ,OAAOC,WAAazB,KAAKF,IAC7BE,KAAK6B,eAET,GAAC,CAAAZ,IAAA,WAAAC,MAED,SAASY,GAAU,IAAAC,EAAA,KACjB/B,KAAKC,WAAW+B,SAAQ,SAAClC,GACvBA,EAAGuB,iBACD,UACA,SAACO,GACKE,GAAUA,EAASF,EAAEK,OAAOf,OAC5Ba,EAAKxB,kBACPwB,EAAKG,yBACLH,EAAK1B,cAAca,MAAQU,EAAEK,OAAOf,MACpCa,EAAK1B,cAAc8B,UAAYP,EAAEK,OAAOG,mBAAmBC,YAC3DvC,EAAGwC,SAAU,EACbP,EAAKF,gBAET,IACA,EAEJ,GACF,GAAC,CAAAZ,IAAA,yBAAAC,MAED,WACElB,KAAKC,WAAW+B,SAAQ,SAAClC,GACvBA,EAAGwC,SAAU,CACf,GACF,GAAC,CAAArB,IAAA,gBAAAC,MAED,WACE,IAAIqB,EAAAA,EAAgBvC,KAAKF,IACzB4B,OAAOL,iBAAiB,QAASrB,KAAKwC,mBAAmB7B,KAAKX,MAChE,GAAC,CAAAiB,IAAA,qBAAAC,MAED,SAAmBU,GACb5B,KAAKF,GAAG2C,UAAUC,SAAS,qBAE1Bd,EAAEK,OAAOU,QAAQ,gCACjBf,EAAEK,OAAOU,QAAQ,mCAElB3C,KAAK6B,gBAGX,GAAC,CAAAZ,IAAA,gBAAAC,MAED,WACElB,KAAK4C,eAAiB5C,KAAKF,GAAGQ,cAC5B,qDAEEN,KAAK4C,gBAAgB5C,KAAK4C,eAAeC,OAC/C,GAAC,CAAA5B,IAAA,qBAAAC,MAED,WACE,IAAM4B,EAAkB9C,KAAKF,GAAGQ,cAAc,0BACxCyC,EAAuB/C,KAAKF,GAAGQ,cAAc,+BAC7C0C,EAAehD,KAAKF,GAAGQ,cAAc,kCACrCL,EAAaD,KAAKF,GAAGI,iBAAiB,kDACtC+C,EAAOjD,KAAKF,GAAGI,iBAAiB,YAClCgD,GAAiB,EACfzC,EAAgBT,KAAKS,cAE3BqC,SAAAA,EAAiBzB,iBAAiB,WAAW,SAAUO,GACvC,cAAVA,EAAEX,KAAiC,YAAVW,EAAEX,MACxB+B,EAAaP,UAAUC,SAAS,YACnCM,EAAaP,UAAUU,IAAI,WAGxB1C,GAQW,cAAVmB,EAAEX,IACJiC,GAAiBA,EAAgB,GAAKD,EAAKG,OACxB,YAAVxB,EAAEX,MACXiC,GAAiBA,EAAgB,EAAID,EAAKG,QAAUH,EAAKG,QAE3DH,EAAKC,GAAeG,UAZN,cAAVzB,EAAEX,IACJiC,GAAiBA,EAAgB,GAAKjD,EAAWmD,OAC9B,YAAVxB,EAAEX,MACXiC,GAAiBA,EAAgB,EAAIjD,EAAWmD,QAAUnD,EAAWmD,QAEvEnD,EAAWiD,GAAeG,SAUhC,IAEAP,SAAAA,EAAiBzB,iBAAiB,WAAW,SAAUO,GACrD,GAAIkB,EAAgBL,UAAUC,SAAS,cAA0B,UAAVd,EAAEX,MAClDR,EAAe,CAClBmB,EAAE0B,iBACF,IAAMC,EAAmBtD,EAAWiD,GAChCK,IACFA,EAAiBjB,SAAWiB,EAAiBjB,QAC7CS,EAAqBZ,UAAYoB,EAAiBnB,mBAAmBC,YACrEU,EAAqBF,QAEzB,CAEJ,GACF,GAAC,CAAA5B,IAAA,yBAAAC,MAED,WAAyB,IAAAsC,EACnBC,EAAsE,QAAvDD,EAAGxD,KAAKF,GAAGQ,cAAc,sCAA8B,IAAAkD,GAAa,QAAbA,EAApDA,EAAsDnB,mBAAW,IAAAmB,OAAA,EAAjEA,EAAmEE,OAEzF,GAAID,EAAiB,CACnB,IAE+BE,EAF2CC,E,64BAAAC,CAAzD7D,KAAKF,GAAGI,iBAAiB,kCAEX,IAA/B,IAAA0D,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAiC,KAAxBC,EAAQN,EAAAzC,MACXgD,EAAQlE,KAAKF,GAAGQ,cAAc,cAAD6D,OAAeF,EAASG,GAAE,OAE3D,GAAIF,GAASA,EAAM7B,YAAYqB,SAAWD,EACxC,OAAOQ,EAAS/C,KAEpB,CAAC,OAAAmD,GAAAT,EAAAhC,EAAAyC,EAAA,SAAAT,EAAAU,GAAA,CACH,CAEA,OAAO,IACT,I,gFAAC,CA3JW,E,sJCUd,SAAS/B,EAAgBzC,GAAgB,IAAZyE,EAAKC,UAAApB,OAAA,QAAAqB,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACpC,GAAK1E,EAAL,CACAE,KAAKF,GAAKA,EAEV,IAAI4E,EAAe,uBACfC,EAAa,qBACbJ,EAAMH,KACRM,GAAgBH,EAAMH,GACtBO,GAAcJ,EAAMH,IAEtB,IAGIlB,EAHE0B,EAA2C,SAA7B9E,EAAG+E,QAAQC,cAU/B,GATA9E,KAAK+E,gBAAkB/E,KAAKF,GAAGkF,aAAa,wBAGxCC,OAAOC,UAAUX,EAAMrB,eAAgBA,EAAgBqB,EAAMrB,cACxD0B,IAAa1B,EAAgB,GAEtClD,KAAKmF,kBAAoBnF,KAAKF,GAAGsF,uBAAuBV,GACxD1E,KAAKqF,gBAAkBrF,KAAKF,GAAGsF,uBAAuBT,GAGlB,IAAlC3E,KAAKmF,kBAAkB/B,QACvBpD,KAAKmF,kBAAkB/B,SAAWpD,KAAKqF,gBAAgBjC,OAFzD,CAQA,QAAsBqB,IAAlBvB,GAA+BpD,EAAG+E,QAAQS,WAAY,CACxD,IAG8B3B,EAH1B2B,EAAaxF,EAAG+E,QAAQS,WAEtBC,EAAW,GAAE3B,E,64BAAAC,CADnByB,EAAaA,EAAWE,MAAM,MAEA,IAA9B,IAAA5B,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAgC,KAArByB,EAAK9B,EAAAzC,MACR6C,EAAI2B,SAASD,GAEnB,IAAS,EAAJ1B,GAAS,GAAKA,EAAI,GAAM,GAAKA,GAAK/D,KAAKmF,kBAAkB/B,SAC5DmC,EAASI,KAAK5B,EAAI,IAEb/D,KAAK+E,iBAAiB,KAE/B,CAAC,OAAAV,GAAAT,EAAAhC,EAAAyC,EAAA,SAAAT,EAAAU,GAAA,CACGiB,EAASnC,SAAQF,EAAgBqC,EACvC,CAEAvF,KAAK4F,MAAM1C,EAnBX,CAxBe,CA4CjB,CAEAX,EAAgBsD,UAAUD,MAAQ,SAAU1C,GAY1C,IAAI4C,EAXJ9F,KAAK+F,wBAA0B/F,KAAKmF,kBAAkB/B,OACtDpD,KAAKgG,mBAAqB,IAAIC,MAAMjG,KAAK+F,yBACzC/F,KAAKkG,cAAgBlG,KAAKmG,YAAYxF,KAAKX,MAC3CA,KAAKoG,gBAAkBpG,KAAKqG,cAAc1F,KAAKX,MAC/CA,KAAKsG,cAAgBtG,KAAKuG,YAAY5F,KAAKX,MAC3CA,KAAKwG,KAAO,CACVC,KAAM,GACNC,KAAM,GACNC,MAAO,IAKT,IAAK,IAAIC,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IAChD5G,KAAKmF,kBAAkByB,GAAGC,MAAQD,EAClC5G,KAAKmF,kBAAkByB,GAAGvF,iBACxB,QACArB,KAAKkG,eACL,GAEFlG,KAAKmF,kBAAkByB,GAAGvF,iBACxB,UACArB,KAAKoG,iBACL,GAEFpG,KAAKmF,kBAAkByB,GAAGvF,iBACxB,QACArB,KAAKsG,eACL,GAEFtG,KAAKmF,kBAAkByB,GAAGnE,UAAUU,IAAI,wBAEpCnD,KAAKmF,kBAAkByB,GAAGnE,UAAUC,SAAS,iBAC/C1C,KAAKgG,mBAAmBY,IAAK,GAIjC,IAAK,IAAIA,EAAI,EAAGA,EAAI5G,KAAKqF,gBAAgBjC,OAAQwD,IAC/C5G,KAAKqF,gBAAgBuB,GAAGnE,UAAUU,IAAI,sBAIxC,GAAK2D,MAAM5D,GAIJ,GAAI+C,MAAMc,QAAQ7D,GAAgB,CACvC4C,EAAuB5C,EACvBlD,KAAKgG,mBAAqB,IAAIC,MAAMjG,KAAK+F,yBACzC,IAAK,IAAIa,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IAC5C1D,EAAc8D,SAASJ,KAAI5G,KAAKgG,mBAAmBY,IAAK,EAEhE,MACEd,EAAuB9F,KAAKgG,mBAAmBiB,aAAY,GAEtDjH,KAAK+E,kBACR/E,KAAKgG,mBAAqB,IAAIC,MAAMjG,KAAK+F,yBACzC/F,KAAKgG,mBAAmBF,IAAwB,QAdlDA,EAAuB5C,EACvBlD,KAAKgG,mBAAqB,IAAIC,MAAMjG,KAAK+F,yBACzC/F,KAAKgG,mBAAmBF,IAAwB,EAgBlD9F,KAAKkH,gBAAkBhE,EACvBlD,KAAKmH,YAAYrB,GACjB9F,KAAKoH,cACLpH,KAAKqH,SACLrH,KAAKF,GAAG2C,UAAUU,IAAI,gBACtBnD,KAAKF,GAAG2C,UAAUU,IAAI,iBACxB,EAEAZ,EAAgBsD,UAAUM,YAAc,SAAUvE,GAChDA,EAAE0B,iBACFtD,KAAKmH,YAAYvF,EAAEK,OAAO4E,OAAO,GACjC7G,KAAKoH,YAAYxF,EAAEK,OAAO4E,OAAO,EACnC,EAEAtE,EAAgBsD,UAAUQ,cAAgB,SAAUzE,GAClD,IAAI0F,EAEJ,OAAQ1F,EAAE2F,SACR,KAAKvH,KAAKwG,KAAKG,MACf,KAAK3G,KAAKwG,KAAKC,KACf,KAAKzG,KAAKwG,KAAKE,KACb9E,EAAE0B,iBACF,MACF,QACE,OAGJ,GAAI1B,EAAE2F,UAAYvH,KAAKwG,KAAKG,MAA5B,CAKO,GAAI/E,EAAE2F,UAAYvH,KAAKwG,KAAKC,MAAQ7E,EAAEK,OAAO4E,MAAQ,EAC1DS,EAAc1F,EAAEK,OAAO4E,MAAQ,MAC1B,MACLjF,EAAE2F,UAAYvH,KAAKwG,KAAKE,MACxB9E,EAAEK,OAAO4E,MAAQ7G,KAAK+F,wBAA0B,GAIhD,OAFAuB,EAAc1F,EAAEK,OAAO4E,MAAQ,CAGjC,CAEA7G,KAAKmH,YAAYG,GAAa,EAF9B,MAZE1F,EAAEK,OAAOY,OAeb,EAEAN,EAAgBsD,UAAUU,YAAc,WACD,IAAjCvG,KAAK+F,yBACP/F,KAAKmH,YAAY,EAErB,EAEA5E,EAAgBsD,UAAUsB,YAAc,SAAUN,EAAOW,GACvD,IAAe,IAAXX,EAAJ,CAMIZ,MAAMc,QAAQF,KAAQA,EAAQA,EAAM,IACxC,IAAK,IAAID,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IAC5CA,IAAMC,GACR7G,KAAKmF,kBAAkByB,GAAGnE,UAAUU,IAAI,eAGpCqE,GACFxH,KAAKmF,kBAAkByB,GAAGvD,SAG5BrD,KAAKmF,kBAAkByB,GAAGnE,UAAUgF,OAAO,cAZ/C,MAHEzH,KAAKmF,kBAAkB,GAAGuC,aAAa,WAAY,EAoBvD,EAEAnF,EAAgBsD,UAAUuB,YAAc,SAAUP,EAAOW,GACvD,IAAIZ,EAKJ,IAFe,IAAXC,IAAc7G,KAAKgG,mBAAqB,IAExCwB,EACF,GAAIxH,KAAK+E,gBACP/E,KAAKgG,mBAAmBa,IAAU7G,KAAKgG,mBAAmBa,QAE1D,IAAKD,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IAE1C5G,KAAKgG,mBAAmBY,GADtBA,IAAMC,IACsB7G,KAAKgG,mBAAmBY,GAQ9DrE,EAAgBsD,UAAU8B,iBAAmB,SAAUC,GAErDC,YAAW,WACTD,EAAKF,aAAa,eAAe,GACjCE,EAAKF,aAAa,UAAU,EAC9B,GAAG,IACL,EAEA,IAAII,GAAc,EAClB,IAAKlB,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IACxC5G,KAAKgG,mBAAmBY,IAC1B5G,KAAKqF,gBAAgBuB,GAAGc,aAAa,eAAe,GACpD1H,KAAKqF,gBAAgBuB,GAAGmB,gBAAgB,UAExC/H,KAAKmF,kBAAkByB,GAAGc,aAAa,iBAAiB,GACxD1H,KAAKmF,kBAAkByB,GAAGnE,UAAUU,IAAI,eAExCnD,KAAKqF,gBAAgBuB,GAAGnE,UAAUU,IAAI,WACtC6E,EAAAA,GAAKC,GAAGjI,KAAKqF,gBAAgBuB,GAAI,CAAEsB,OAAQ,OAAQC,SAAU,KAE7DnI,KAAKmF,kBAAkByB,GAAGwB,cAAc3F,UAAUU,IAAI,aAEtD2E,GAAc,IAEd9H,KAAKmF,kBAAkByB,GAAGc,aAAa,iBAAiB,GACxD1H,KAAKmF,kBAAkByB,GAAGnE,UAAUgF,OAAO,eAE3CzH,KAAKqF,gBAAgBuB,GAAGnE,UAAUgF,OAAO,WACzCO,EAAAA,GAAKC,GAAGjI,KAAKqF,gBAAgBuB,GAAI,CAAEsB,OAAQ,EAAGC,SAAU,KAExDnI,KAAKmF,kBAAkByB,GAAGwB,cAAc3F,UAAUgF,OAAO,aACzDzH,KAAK2H,iBAAiB3H,KAAKqF,gBAAgBuB,KAK3CkB,EAAa9H,KAAKF,GAAG2C,UAAUU,IAAI,mBAClCnD,KAAKF,GAAG2C,UAAUgF,OAAO,mBAC9BzH,KAAK8H,YAAcA,CACrB,EAEAvF,EAAgBsD,UAAUwB,OAAS,WAEjCrH,KAAKqI,MAAQ,WACXrI,KAAKmH,aAAa,GAClBnH,KAAKoH,aAAa,EACpB,EAEApH,KAAKsI,SAAW,WACd,IAAMzB,EAAQ7G,KAAKkH,gBACfjC,OAAOC,UAAU2B,KACnB7G,KAAKmH,YAAYN,GAAO,GACxB7G,KAAKoH,YAAYP,GAAO,GAE5B,CACF,EAEAtE,EAAgBsD,UAAU0C,QAAU,WAClCvI,KAAKF,GAAG2C,UAAUgF,OAAO,kBAEzB,IAAK,IAAIb,EAAI,EAAGA,EAAI5G,KAAK+F,wBAAyBa,IAChD5G,KAAKmF,kBAAkByB,GAAGmB,gBAAgB,iBAC1C/H,KAAKmF,kBAAkByB,GAAGnE,UAAUgF,OAAO,eAE3CzH,KAAKqF,gBAAgBuB,GAAGmB,gBAAgB,eACxC/H,KAAKqF,gBAAgBuB,GAAGnE,UAAUgF,OAAO,WACzCzH,KAAKqF,gBAAgBuB,GAAGmB,gBAAgB,YAExC/H,KAAKmF,kBAAkByB,GAAG4B,oBACxB,QACAxI,KAAKkG,eACL,GAEFlG,KAAKmF,kBAAkByB,GAAG4B,oBACxB,UACAxI,KAAKoG,iBACL,GAEFpG,KAAKmF,kBAAkByB,GAAG4B,oBACxB,QACAxI,KAAKsG,eACL,UAGKtG,KAAKmF,kBAAkByB,GAAGC,KAErC,C","sources":["webpack://@hero-digital/zoom/./src/components/foundation/Dropdown/Dropdown.js","webpack://@hero-digital/zoom/./src/js/utilities/accordion.js"],"sourcesContent":["import { AccordionWidget } from '../../../js/utilities/accordion'\r\n\r\nclass Dropdown {\r\n constructor(el) {\r\n this.el = el\r\n this.checkboxes = this.el.querySelectorAll(\r\n 'input[type=\"checkbox\"]:not(.checkbox-sort)'\r\n )\r\n this.filterLists = document.querySelectorAll('.fdn-dropdown__wrapper')\r\n this.dropdownValue = this.el.querySelector('.fdn-dropdown__popup-button')\r\n\r\n this.defaultDropdown = el.getAttribute('data-type') === 'single'\r\n this.isctaDropdown = el.getAttribute('data-isctadropdown') === '1'\r\n\r\n this._handleGlobalDropdownOpen = this._handleGlobalDropdownOpen.bind(this)\r\n this.setupGlobalDropdownListener()\r\n\r\n this.setupDropdownToggleListener()\r\n this.onChange()\r\n this.keyboardNavigation()\r\n this.initAccordion()\r\n }\r\n\r\n setupDropdownToggleListener() {\r\n this.dropdownValue?.addEventListener('click', () => {\r\n const isExpanded = this.dropdownValue.getAttribute('aria-expanded') === 'true'\r\n if (!isExpanded) {\r\n const event = new CustomEvent('dropdown:open', {\r\n detail: { dropdown: this.el }\r\n })\r\n window.dispatchEvent(event)\r\n }\r\n })\r\n }\r\n\r\n setupGlobalDropdownListener() {\r\n window.addEventListener('dropdown:open', this._handleGlobalDropdownOpen)\r\n }\r\n\r\n _handleGlobalDropdownOpen(e) {\r\n if (e.detail.dropdown !== this.el) {\r\n this.closeDropdown()\r\n }\r\n }\r\n\r\n onChange(callback) {\r\n this.checkboxes.forEach((el) => {\r\n el.addEventListener(\r\n 'change',\r\n (e) => {\r\n if (callback) callback(e.target.value)\r\n if (this.defaultDropdown) {\r\n this.clearpreviousSelection()\r\n this.dropdownValue.value = e.target.value\r\n this.dropdownValue.innerHTML = e.target.nextElementSibling.textContent\r\n el.checked = true\r\n this.closeDropdown()\r\n }\r\n },\r\n false\r\n )\r\n })\r\n }\r\n\r\n clearpreviousSelection() {\r\n this.checkboxes.forEach((el) => {\r\n el.checked = false\r\n })\r\n }\r\n\r\n initAccordion() {\r\n new AccordionWidget(this.el)\r\n window.addEventListener('click', this.detectOutsideClick.bind(this))\r\n }\r\n\r\n detectOutsideClick(e) {\r\n if (this.el.classList.contains('has-expanded-el')) {\r\n if (\r\n !e.target.closest('.fdn-dropdown__popup-button') &&\r\n !e.target.closest('.fdn-dropdown__popup-container')\r\n ) {\r\n this.closeDropdown()\r\n }\r\n }\r\n }\r\n\r\n closeDropdown() {\r\n this.expandedButton = this.el.querySelector(\r\n '.fdn-dropdown__popup-button[aria-expanded=\"true\"]'\r\n )\r\n if (this.expandedButton) this.expandedButton.click()\r\n }\r\n\r\n keyboardNavigation() {\r\n const dropdownWrapper = this.el.querySelector('.fdn-dropdown__wrapper')\r\n const dropdownToggleButton = this.el.querySelector('.fdn-dropdown__popup-button')\r\n const dropdownMenu = this.el.querySelector('.fdn-dropdown__popup-container')\r\n const checkboxes = this.el.querySelectorAll('.fdn-dropdown__checkbox input[type=\"checkbox\"]')\r\n const ctas = this.el.querySelectorAll('.fdn-cta')\r\n let selectedIndex = -1\r\n const isctaDropdown = this.isctaDropdown\r\n\r\n dropdownWrapper?.addEventListener('keydown', function (e) {\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n if (!dropdownMenu.classList.contains('is-open')) {\r\n dropdownMenu.classList.add('is-open')\r\n }\r\n\r\n if (!isctaDropdown) {\r\n if (e.key === 'ArrowDown') {\r\n selectedIndex = (selectedIndex + 1) % checkboxes.length\r\n } else if (e.key === 'ArrowUp') {\r\n selectedIndex = (selectedIndex - 1 + checkboxes.length) % checkboxes.length\r\n }\r\n checkboxes[selectedIndex].focus()\r\n } else {\r\n if (e.key === 'ArrowDown') {\r\n selectedIndex = (selectedIndex + 1) % ctas.length\r\n } else if (e.key === 'ArrowUp') {\r\n selectedIndex = (selectedIndex - 1 + ctas.length) % ctas.length\r\n }\r\n ctas[selectedIndex].focus()\r\n }\r\n }\r\n })\r\n\r\n dropdownWrapper?.addEventListener('keydown', function (e) {\r\n if (dropdownWrapper.classList.contains('is-active') && e.key === 'Enter') {\r\n if (!isctaDropdown) {\r\n e.preventDefault()\r\n const selectedCheckbox = checkboxes[selectedIndex]\r\n if (selectedCheckbox) {\r\n selectedCheckbox.checked = !selectedCheckbox.checked\r\n dropdownToggleButton.innerHTML = selectedCheckbox.nextElementSibling.textContent\r\n dropdownToggleButton.click()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n getSelectedCountryCode() {\r\n let selectedCountry = this.el.querySelector('.fdn-dropdown__popup-button')?.textContent?.trim()\r\n\r\n if (selectedCountry) {\r\n let checkboxes = this.el.querySelectorAll('.fdn-dropdown__checkbox input')\r\n\r\n for (let checkbox of checkboxes) {\r\n let label = this.el.querySelector(`label[for=\"${checkbox.id}\"]`)\r\n\r\n if (label && label.textContent.trim() === selectedCountry) {\r\n return checkbox.value\r\n }\r\n }\r\n }\r\n\r\n return null\r\n }\r\n}\r\n\r\nexport default Dropdown","/* 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"],"names":["Dropdown","el","_classCallCheck","this","checkboxes","querySelectorAll","filterLists","document","dropdownValue","querySelector","defaultDropdown","getAttribute","isctaDropdown","_handleGlobalDropdownOpen","bind","setupGlobalDropdownListener","setupDropdownToggleListener","onChange","keyboardNavigation","initAccordion","key","value","_this$dropdownValue","_this","addEventListener","event","CustomEvent","detail","dropdown","window","dispatchEvent","e","closeDropdown","callback","_this2","forEach","target","clearpreviousSelection","innerHTML","nextElementSibling","textContent","checked","AccordionWidget","detectOutsideClick","classList","contains","closest","expandedButton","click","dropdownWrapper","dropdownToggleButton","dropdownMenu","ctas","selectedIndex","add","length","focus","preventDefault","selectedCheckbox","_this$el$querySelecto","selectedCountry","trim","_step","_iterator","_createForOfIteratorHelper","s","n","done","checkbox","label","concat","id","err","f","props","arguments","undefined","triggerClass","panelClass","expandFirst","dataset","firstexpanded","multiSelectable","hasAttribute","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","panelArr","split","panel","parseInt","push","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","Array","clickListener","_clickEvent","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","i","index","isNaN","isArray","includes","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","targetIndex","keyCode","userInvoked","remove","setAttribute","hidePanelContent","item","setTimeout","hasExpanded","removeAttribute","gsap","to","height","duration","parentElement","close","openInit","destroy","removeEventListener"],"sourceRoot":""}