{"version":3,"file":"104.da2c9cc29b7fa5ad9828.chunk.js","mappings":"+PAAA,MAAMA,SAAW,CACbC,UAAW,yBACXC,aAAc,sBACdC,WAAW,EACXC,cAAc,GAGlB,MAAMC,UACFC,YAAYC,QACRC,KAAKC,QAAUC,OAAOC,OAAO,CAAC,EAAGX,SAAUO,QAC3CC,KAAKI,mBACDJ,KAAKC,QAAQL,cACbS,OAAOC,iBAAiB,QAAQ,IAAMN,KAAKO,6BAEnD,CAEAH,mBACuCI,SAASC,iBAAiBT,KAAKC,QAAQR,WAE/CiB,SAAQjB,YAC/B,MAAMC,aAAeD,UAAUkB,cAAcX,KAAKC,QAAQP,cACpDkB,eAAiBnB,UAAUgB,iBAAiB,sBAElDf,aAAaY,iBAAiB,SAASO,MACnCA,IAAIC,iBACJpB,aAAaqB,OACbf,KAAKgB,eAAeJ,eAAgBZ,KAAKC,QAAQN,WACjDK,KAAKC,QAAQN,WAAaK,KAAKC,QAAQN,UACvCK,KAAKiB,iBAAiBvB,aAAcM,KAAKC,QAAQN,UAAU,IAG/DiB,eAAeF,SAAQQ,OACnBA,KAAKZ,iBAAiB,WAAW,KAC7B,MAAMa,cAAgBnB,KAAKoB,aAAaF,KAAKG,WAC7ChB,OAAOiB,SAASC,KAAOJ,aAAa,GACtC,GACJ,GAEV,CAEAC,aAAaI,MACT,OAAOA,KAAKC,OAAOC,QAAQ,KAAM,KAAKA,QAAQ,iBAAkB,GACpE,CAEAV,eAAeW,MAAOC,OAClBD,MAAMjB,SAAQQ,OACV,MAAMW,SAAWX,KAAKY,aAAa,kBAC7BC,OAASvB,SAASG,cAAckB,UAClCD,MACIG,OAAOC,UAAUC,SAAS,SAC1BF,OAAOC,UAAUE,OAAO,QAGvBH,OAAOC,UAAUC,SAAS,SAC3BF,OAAOC,UAAUG,IAAI,OAE7B,GAER,CAEAC,WAAWlB,MACP,MAAMW,SAAWX,KAAKY,aAAa,kBAC7BC,OAASvB,SAASG,cAAckB,UAClCE,OAAOC,UAAUC,SAAS,QAC1BF,OAAOC,UAAUE,OAAO,QAExBH,OAAOC,UAAUG,IAAI,OAE7B,CAEAlB,iBAAiBoB,OAAQT,OACrB,MAAMU,UAAYD,OAAOE,QAAQC,SAAW,cACtCC,SAAWJ,OAAOE,QAAQG,QAAU,eAC1CL,OAAOM,UAAYf,MAAQU,UAAYG,QAC3C,CAEAlC,4BACI,MAAMgB,KAAOlB,OAAOiB,SAASC,KAAKG,QAAQ,IAAK,IACzCkB,WAAaC,MAAMC,KAAKtC,SAASC,iBAAiB,uBAAuBsC,MAAKC,SAChFhD,KAAKoB,aAAa4B,QAAQ3B,aAAeE,OACzCqB,aACA5C,KAAKoC,WAAWQ,YAChBA,WAAWZ,UAAUE,OAAO,aAC5BU,WAAWK,gBAAe,GAElC,EAKF,aAEa,CAAEC,KAJHnD,SACV,IAAIF,UAAUE,OAAO,GAGF,wB","sources":["webpack://seges/./Seges.Website/scripts/core/components/accordion/index.js"],"sourcesContent":["const defaults = {\r\n container: '.js-accordion-collapse',\r\n toggleButton: '.js-collapse-button',\r\n openState: false,\r\n scrollOnLoad: true\r\n};\r\n\r\nclass Accordion {\r\n constructor(option) {\r\n this.options = Object.assign({}, defaults, option);\r\n this.setupToggleEvent();\r\n if (this.options.scrollOnLoad) {\r\n window.addEventListener('load', () => this.checkHashAndOpenAccordion());\r\n }\r\n }\r\n\r\n setupToggleEvent() {\r\n const accordionCollapseContainer = document.querySelectorAll(this.options.container);\r\n\r\n accordionCollapseContainer.forEach(container => {\r\n const toggleButton = container.querySelector(this.options.toggleButton);\r\n const accordionLinks = container.querySelectorAll('.accordion-summary');\r\n\r\n toggleButton.addEventListener('click', evt => {\r\n evt.preventDefault();\r\n toggleButton.blur();\r\n this.toggleAllItems(accordionLinks, this.options.openState);\r\n this.options.openState = !this.options.openState;\r\n this.toggleButtonText(toggleButton, this.options.openState);\r\n });\r\n\r\n accordionLinks.forEach(link => {\r\n link.addEventListener('mouseup', () => {\r\n const sanitizedText = this.sanitizeText(link.innerText);\r\n window.location.hash = sanitizedText;\r\n });\r\n });\r\n });\r\n }\r\n\r\n sanitizeText(text) {\r\n return text.trim().replace(/ /g, '_').replace(/[^a-zA-Z0-9_]/g, '');\r\n }\r\n\r\n toggleAllItems(links, state) {\r\n links.forEach(link => {\r\n const targetId = link.getAttribute('data-bs-target');\r\n const target = document.querySelector(targetId);\r\n if (state) {\r\n if (target.classList.contains('show')) {\r\n target.classList.remove('show');\r\n }\r\n } else {\r\n if (!target.classList.contains('show')) {\r\n target.classList.add('show');\r\n }\r\n }\r\n });\r\n }\r\n\r\n toggleItem(link) {\r\n const targetId = link.getAttribute('data-bs-target');\r\n const target = document.querySelector(targetId);\r\n if (target.classList.contains('show')) {\r\n target.classList.remove('show');\r\n } else {\r\n target.classList.add('show');\r\n }\r\n }\r\n\r\n toggleButtonText(button, state) {\r\n const closeText = button.dataset.bsClose || 'Fold all in';\r\n const openText = button.dataset.bsOpen || 'Fold all out';\r\n button.innerHTML = state ? closeText : openText;\r\n }\r\n\r\n checkHashAndOpenAccordion() {\r\n const hash = window.location.hash.replace('#', '');\r\n const targetLink = Array.from(document.querySelectorAll('.accordion-summary')).find(element =>\r\n this.sanitizeText(element.innerText) === hash);\r\n if (targetLink) {\r\n this.toggleItem(targetLink);\r\n targetLink.classList.remove('collapsed');\r\n targetLink.scrollIntoView(true);\r\n }\r\n }\r\n}\r\n\r\nconst init = (option) => {\r\n new Accordion(option);\r\n};\r\n\r\nexport default { init };\r\n"],"names":["defaults","container","toggleButton","openState","scrollOnLoad","Accordion","constructor","option","this","options","Object","assign","setupToggleEvent","window","addEventListener","checkHashAndOpenAccordion","document","querySelectorAll","forEach","querySelector","accordionLinks","evt","preventDefault","blur","toggleAllItems","toggleButtonText","link","sanitizedText","sanitizeText","innerText","location","hash","text","trim","replace","links","state","targetId","getAttribute","target","classList","contains","remove","add","toggleItem","button","closeText","dataset","bsClose","openText","bsOpen","innerHTML","targetLink","Array","from","find","element","scrollIntoView","init"],"sourceRoot":""}