"use strict";(self.heliuxModules=self.heliuxModules||[]).push([[2639],{81360:(e,s,l)=>{var t=l(58480);const i={selectors:{collapseTrigger:".accordionpanel__trigger",collapseBase:".accordion__base",collapsableItems:".accordionpanel__item",accordionHeader:".accordionpanel__header",accordionPanel:".accordionpanel__panel",links:"a"},classes:{collapsable:{isCollapsable:"accordionpanel__item--collapsable",isOpen:"accordionpanel__item--open",isHidden:"accordionpanel__panel--hidden"}},attributes:{lazyloadUrl:"data-lazy-load-url"}};class a extends t.ComponentBase{init(){this.config={...i,...this.config},this.getElements(),this.config.wcmmode?this.makeAccordionCollapsable():this.accordionPanel.length?this.accordionPanel.forEach((e=>{e.classList.remove(this.config.classes.collapsable.isHidden)})):this.accordionPanel&&this.accordionPanel.classList.remove(this.config.classes.collapsable.isHidden)}setCollapsableEvents(e){e.addEventListener("click",this.collapseHandler.bind(this,e.parentElement.parentElement))}calcTotalHeight(e){const{marginBottom:s,marginTop:l}=window.getComputedStyle(e);return e.offsetHeight+parseInt(l,10)+parseInt(s,10)}keyListener(e){const{keyCode:s}=e;s!==t.keyMap.ENTER&&s!==t.keyMap.SPACE||this.collapseHandler(e.target)}collapseHandler(e){e.classList.contains(this.config.classes.collapsable.isOpen)?this.collapse(e):(this.config.singleExpansion&&[...this.el.children].forEach((s=>{e!==s&&this.collapse(s)})),this.expand(e))}makeAccordionCollapsable(){this.el.children&&[...this.el.children].forEach((e=>{e.classList.add(this.config.classes.collapsable.isCollapsable),this.setCollapsableEvents(e.querySelector(this.config.selectors.collapseTrigger)),this.makeTitleAccessible(e),e.classList.contains(this.config.classes.collapsable.isOpen)?this.expand(e):this.collapse(e)}))}makeTitleAccessible(e){this.collapseTrigger&&(e.querySelector(this.config.selectors.collapseTrigger).setAttribute("tabindex",0),e.querySelector(this.config.selectors.collapseTrigger).setAttribute("aria-expanded","false"))}collapse(e){this.calcTotalHeight(e.querySelector(this.config.selectors.collapseTrigger)),e.classList.remove(this.config.classes.collapsable.isOpen),e.querySelector(this.config.selectors.accordionPanel).classList.add(this.config.classes.collapsable.isHidden),this.toggleAnchorFocusable(e,!1),e.setAttribute("aria-expanded","false")}expand(e){const s=e.querySelector(this.config.selectors.accordionPanel);s.classList.remove(this.config.classes.collapsable.isHidden),this.loadAccordionPanel(s),e.classList.add(this.config.classes.collapsable.isOpen),e.style.maxHeight="initial",this.toggleAnchorFocusable(e),e.setAttribute("aria-expanded","true")}loadAccordionPanel(e){const s=e.querySelector(`[${this.config.attributes.lazyloadUrl}]`);let l;s&&(l=s.getAttribute(this.config.attributes.lazyloadUrl)),l&&fetch(l).then((e=>e.text())).then((s=>{e.innerHTML=s,e.removeAttribute(this.config.attributes.lazyloadUrl)})).catch((e=>console.error(e)))}toggleAnchorFocusable(e,s=!0){e.querySelectorAll(this.config.selectors.links).length>1?e.querySelectorAll(this.config.selectors.links).forEach((e=>e.setAttribute("tabindex",s?0:-1))):1===e.querySelectorAll(this.config.selectors.links).length&&e.querySelector(this.config.selectors.links).setAttribute("tabindex",s?0:-1)}}(0,t.register)({AccordionPanel:a},0)}},e=>{e.O(0,[750],(()=>e(e.s=81360))),e.O()}]);