{"version":3,"file":"accordion-DZTB2tns.js","sources":["../../../../src/scripts/modules/accordion.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport '../../scss/modules/accordion.scss';\n\nclass Accordion extends Component {\n setupDefaults() {\n this.dom = {\n triggers: this.el.querySelectorAll('.accordion__item-trigger'),\n panels: this.el.querySelectorAll('.accordion__item-panel')\n };\n\n this.initAccordion();\n }\n\n addListeners() {\n (this.dom.triggers as NodeList).forEach(trigger =>\n trigger.addEventListener('click', this.handleClick.bind(this))\n );\n }\n\n initAccordion() {\n (this.dom.triggers as NodeListOf).forEach(trigger => {\n if (trigger.getAttribute('aria-expanded') === 'true') {\n this.openItem(trigger);\n }\n });\n }\n\n handleClick(e: Event) {\n const trigger = e.currentTarget as HTMLButtonElement;\n\n if (trigger.getAttribute('aria-expanded') === 'true') {\n this.closeItem(trigger);\n } else {\n this.openItem(trigger);\n }\n }\n\n openItem(trigger: HTMLButtonElement) {\n trigger.setAttribute('aria-expanded', 'true');\n\n const panel = document.getElementById(\n trigger.getAttribute('aria-controls') as string\n );\n\n if (panel) {\n const pannelContent = panel.querySelector(\n '.accordion__item-content'\n );\n\n panel.style.height = `${pannelContent?.offsetHeight}px`;\n\n setTimeout(() => (panel.style.height = 'auto'), 250);\n }\n }\n\n closeItem(trigger: HTMLButtonElement) {\n trigger.setAttribute('aria-expanded', 'false');\n\n const panel = document.getElementById(\n trigger.getAttribute('aria-controls') as string\n );\n\n if (panel) {\n const pannelContent = panel.querySelector(\n '.accordion__item-content'\n );\n panel.style.height = `${pannelContent?.offsetHeight}px`;\n setTimeout(() => (panel.style.height = '0px'));\n }\n }\n}\n\nexport default Accordion;\n"],"names":["Accordion","Component","trigger","e","panel","pannelContent"],"mappings":"yEAGA,MAAMA,UAAkBC,CAAU,CAChC,eAAgB,CACd,KAAK,IAAM,CACT,SAAU,KAAK,GAAG,iBAAiB,0BAA0B,EAC7D,OAAQ,KAAK,GAAG,iBAAiB,wBAAwB,CAC3D,EAEA,KAAK,cAAc,CAAA,CAGrB,cAAe,CACZ,KAAK,IAAI,SAAsB,QAAQC,GACtCA,EAAQ,iBAAiB,QAAS,KAAK,YAAY,KAAK,IAAI,CAAC,CAC/D,CAAA,CAGF,eAAgB,CACb,KAAK,IAAI,SAA2C,QAAmBA,GAAA,CAClEA,EAAQ,aAAa,eAAe,IAAM,QAC5C,KAAK,SAASA,CAAO,CACvB,CACD,CAAA,CAGH,YAAYC,EAAU,CACpB,MAAMD,EAAUC,EAAE,cAEdD,EAAQ,aAAa,eAAe,IAAM,OAC5C,KAAK,UAAUA,CAAO,EAEtB,KAAK,SAASA,CAAO,CACvB,CAGF,SAASA,EAA4B,CAC3BA,EAAA,aAAa,gBAAiB,MAAM,EAE5C,MAAME,EAAQ,SAAS,eACrBF,EAAQ,aAAa,eAAe,CACtC,EAEA,GAAIE,EAAO,CACT,MAAMC,EAAgBD,EAAM,cAC1B,0BACF,EAEAA,EAAM,MAAM,OAAS,GAAGC,GAAA,YAAAA,EAAe,YAAY,KAEnD,WAAW,IAAOD,EAAM,MAAM,OAAS,OAAS,GAAG,CAAA,CACrD,CAGF,UAAUF,EAA4B,CAC5BA,EAAA,aAAa,gBAAiB,OAAO,EAE7C,MAAME,EAAQ,SAAS,eACrBF,EAAQ,aAAa,eAAe,CACtC,EAEA,GAAIE,EAAO,CACT,MAAMC,EAAgBD,EAAM,cAC1B,0BACF,EACAA,EAAM,MAAM,OAAS,GAAGC,GAAA,YAAAA,EAAe,YAAY,KACnD,WAAW,IAAOD,EAAM,MAAM,OAAS,KAAM,CAAA,CAC/C,CAEJ"}