{"version":3,"file":"assets/js/904.008ab352e4e942862cdd.js","mappings":"yKAGA,MAAMA,EAAW,CACfC,UAAWC,SAASC,KAAKC,iBAAiB,iBAC1CC,iBAAkBH,SAASC,KAAKC,iBAAiB,0BAYnD,SAASE,EAAWC,GAClB,MAAMN,EAAYO,KAAKC,QAAQ,iBAE/B,GAAkB,OAAdR,EAAoB,CACtB,MAAMS,EAAQC,SAASH,KAAKI,QAAQF,MAAO,KAG1B,KAAdH,EAAEM,SAAkBH,EAAQ,GACd,KAAdH,EAAEM,SAAkBH,EAAQC,SAASV,EAAUW,QAAQE,MAAQ,EAAG,OAEnEP,EAAEQ,iBACFd,EAAUG,iBAAiB,yBApBjC,SAAmBM,EAAOG,GAMxB,MALa,CACX,GAAIH,EAAQ,EACZ,GAAIA,EAAQ,GAGFG,EACb,CAayDG,CAAUN,EAAOH,EAAEM,UAAUI,QAEpF,CACF,CA6BD,SAASC,IACP,MAAMC,EAAWjB,SAASkB,eAAeZ,KAAKa,aAAa,kBACrDC,EAAO,SACPC,EAAS,YACTtB,EAAYO,KAAKC,QAAQ,iBACzBe,EAAShB,KAAKC,QAAQ,uBAhC9B,SAAqBgB,GACnB,MAAMC,EAAW,GACjB,IAAIC,EAAUF,EAAKG,WAAWC,WAC9B,KAAOF,EAASA,EAAUA,EAAQG,YACP,IAArBH,EAAQI,UAAkBJ,IAAYF,GACxCC,EAASM,KAAKL,GAGlB,OAAOD,CACR,EAwBwBO,CAAYT,GAEpBU,SAASC,IACtB,MAAMC,EAAiBD,EAAcE,cAAc,cACnD,IAAKD,EACH,OAGF,MAAME,EAAgBpC,SAASkB,eAAegB,EAAef,aAAa,kBAC1EiB,EAAchB,IAASgB,EAAchB,GACrCc,EAAeG,UAAUC,OAAOjB,GAChCY,EAAcI,UAAUC,OAAOjB,GAC/Ba,EAAeK,aAAa,gBAAiB,QAA7C,IAGFjC,KAAK+B,UAAUG,OAAOnB,GACtBC,EAAOe,UAAUG,OAAOnB,GACxBJ,EAASG,IAASH,EAASG,GAEgB,UAAvCd,KAAKa,aAAa,kBACpBb,KAAKiC,aAAa,gBAAiB,QACnCxC,EAAUsC,UAAUI,IAAIpB,KAExBf,KAAKiC,aAAa,gBAAiB,SACnCxC,EAAUsC,UAAUC,OAAOjB,GAE9B,CAmBD,QAjBA,WACE,GAAIvB,EAASC,UAAU2C,QAAU5C,EAASK,iBAAiBuC,OAAQ,CACjE,IAAK,IAAIC,EAAI,EAAGA,EAAI7C,EAASK,iBAAiBuC,OAAQC,GAAK,EACzD7C,EAASK,iBAAiBwC,GAAGC,gBAAgB,YAC7C9C,EAASK,iBAAiBwC,GAAGC,gBAAgB,SAC7C9C,EAASK,iBAAiBwC,GAAGE,iBAAiB,QAAS7B,GACvDlB,EAASK,iBAAiBwC,GAAGE,iBAAiB,UAAWzC,GAG3D,MACM0C,EADY,IAAIC,gBAAgBC,OAAOC,SAASC,QACzBC,IAAI,UAC7BL,GA7DR,SAAmBM,GACjB,MAAMC,EAAuBrD,SAASC,KAAKkC,cACxC,sCAAqCiB,OAGxC,GAAIC,EAAsB,CACxB,MAAMC,EAAWD,EAAqB3B,YACtC6B,EAAAA,EAAAA,GAAKD,EAAU,CACbE,MAAM,EACNC,SAAU,KACVC,OAAQ,IAEVL,EAAqBM,OACtB,CACF,CAgDKC,CAAUd,EAAWe,QAAQ,OAAQ,IAExC,CACF,C","sources":["webpack://ssen-distribution/./src/templates/02-components/accordion/mando-ui.accordion.js"],"sourcesContent":["import 'url-search-params-polyfill';\r\nimport jump from 'jump.js';\r\n\r\nconst elements = {\r\n accordion: document.body.querySelectorAll('.js-accordion'),\r\n accordionTrigger: document.body.querySelectorAll('.js-accordion-trigger'),\r\n};\r\n\r\nfunction calcIndex(index, keyCode) {\r\n const calc = {\r\n 38: index - 1,\r\n 40: index + 1,\r\n };\r\n\r\n return calc[keyCode];\r\n}\r\n\r\nfunction keyHandler(e) {\r\n const accordion = this.closest('.js-accordion');\r\n\r\n if (accordion !== null) {\r\n const index = parseInt(this.dataset.index, 10);\r\n\r\n if (\r\n (e.keyCode === 38 && index > 0) ||\r\n (e.keyCode === 40 && index < parseInt(accordion.dataset.count - 1, 10))\r\n ) {\r\n e.preventDefault();\r\n accordion.querySelectorAll('.js-accordion-trigger')[calcIndex(index, e.keyCode)].focus();\r\n }\r\n }\r\n}\r\n\r\nfunction getSiblings(elem) {\r\n const siblings = [];\r\n let sibling = elem.parentNode.firstChild;\r\n for (; sibling; sibling = sibling.nextSibling) {\r\n if (sibling.nodeType === 1 && sibling !== elem) {\r\n siblings.push(sibling);\r\n }\r\n }\r\n return siblings;\r\n}\r\n\r\nfunction matchAttr(trimTerm) {\r\n const firstMatchingElement = document.body.querySelector(\r\n `.js-accordion-trigger[data-search='${trimTerm}']`,\r\n );\r\n\r\n if (firstMatchingElement) {\r\n const elParent = firstMatchingElement.parentNode;\r\n jump(elParent, {\r\n a11y: true,\r\n duration: 1200,\r\n offset: 0,\r\n });\r\n firstMatchingElement.click();\r\n }\r\n}\r\n\r\nfunction toggleVisibility() {\r\n const panelDiv = document.getElementById(this.getAttribute('aria-controls'));\r\n const prop = 'hidden';\r\n const active = 'is-active';\r\n const accordion = this.closest('.js-accordion');\r\n const parent = this.closest('.js-accordion-item');\r\n const parentSiblings = getSiblings(parent);\r\n\r\n parentSiblings.forEach((parentSibling) => {\r\n const siblingTrigger = parentSibling.querySelector('.is-active');\r\n if (!siblingTrigger) {\r\n return;\r\n }\r\n\r\n const triggerTarget = document.getElementById(siblingTrigger.getAttribute('aria-controls'));\r\n triggerTarget[prop] = !triggerTarget[prop];\r\n siblingTrigger.classList.remove(active);\r\n parentSibling.classList.remove(active);\r\n siblingTrigger.setAttribute('aria-expanded', 'false');\r\n });\r\n\r\n this.classList.toggle(active);\r\n parent.classList.toggle(active);\r\n panelDiv[prop] = !panelDiv[prop];\r\n\r\n if (this.getAttribute('aria-expanded') === 'false') {\r\n this.setAttribute('aria-expanded', 'true');\r\n accordion.classList.add(active);\r\n } else {\r\n this.setAttribute('aria-expanded', 'false');\r\n accordion.classList.remove(active);\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.accordion.length && elements.accordionTrigger.length) {\r\n for (let i = 0; i < elements.accordionTrigger.length; i += 1) {\r\n elements.accordionTrigger[i].removeAttribute('disabled');\r\n elements.accordionTrigger[i].removeAttribute('title');\r\n elements.accordionTrigger[i].addEventListener('click', toggleVisibility);\r\n elements.accordionTrigger[i].addEventListener('keydown', keyHandler);\r\n }\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const searchTerm = urlParams.get('search');\r\n if (searchTerm) {\r\n matchAttr(searchTerm.replace(/\\s+/g, ''));\r\n }\r\n }\r\n}\r\n\r\nexport default init;\r\n"],"names":["elements","accordion","document","body","querySelectorAll","accordionTrigger","keyHandler","e","this","closest","index","parseInt","dataset","keyCode","count","preventDefault","calcIndex","focus","toggleVisibility","panelDiv","getElementById","getAttribute","prop","active","parent","elem","siblings","sibling","parentNode","firstChild","nextSibling","nodeType","push","getSiblings","forEach","parentSibling","siblingTrigger","querySelector","triggerTarget","classList","remove","setAttribute","toggle","add","length","i","removeAttribute","addEventListener","searchTerm","URLSearchParams","window","location","search","get","trimTerm","firstMatchingElement","elParent","jump","a11y","duration","offset","click","matchAttr","replace"],"sourceRoot":""}