{"version":3,"file":"chunks/accordion.js?v=0430a15f3fe599d7c691","mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,CAAC;EAClBC,WAAWA,CAACC,IAAI,EAAE;IAChB,IAAI,CAACA,IAAI,GAAGA,IAAI,CAAC,CAAC,CAAC;IACnB,IAAI,CAACC,WAAW,GAAG,IAAI,CAACD,IAAI,CAACE,gBAAgB,CAAC,GAAG,CAAC;IAClD,IAAI,CAACC,cAAc;IACnB,IAAI,CAACC,MAAM,GAAG,CAAC;IACf,IAAI,CAACC,QAAQ,GAAG,GAAG;IACnB,IAAI,CAACC,UAAU,CAAC,CAAC;EACnB;EAEAA,UAAUA,CAAA,EAAG;IACX,IAAI,CAACL,WAAW,CAACM,OAAO,CAAEC,IAAI,IAAK;MACjCA,IAAI,CAACC,gBAAgB,CAAC,OAAO,EAAGC,CAAC,IAAK;QACpCF,IAAI,CAACG,SAAS,CAACC,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAMC,UAAU,GAAGL,IAAI,CAACG,SAAS,CAACG,QAAQ,CAAC,QAAQ,CAAC;QACpD,MAAMC,SAAS,GAAGP,IAAI,CAACQ,UAAU,CAACC,kBAAkB;QACpD,MAAMC,UAAU,GAAGH,SAAS,CAACb,gBAAgB,CAAC,GAAG,CAAC;QAElD,IAAIa,SAAS,EAAE;UACbA,SAAS,CAACJ,SAAS,CAACQ,GAAG,CAAC,QAAQ,CAAC;UACjC,IAAI,CAACf,MAAM,GACTW,SAAS,CAACK,YAAY,KAAK,CAAC,GAAGL,SAAS,CAACK,YAAY,GAAG,IAAI,CAAChB,MAAM;UAErE,IAAIS,UAAU,EAAE;YACdE,SAAS,CAACJ,SAAS,CAACU,MAAM,CAAC,QAAQ,CAAC;YACpCb,IAAI,CAACG,SAAS,CAACU,MAAM,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAACC,SAAS,CAACP,SAAS,EAAE,IAAI,CAACX,MAAM,EAAE,IAAI,CAAC;YAC5CI,IAAI,CAACe,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;YAC1CR,SAAS,CAACQ,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;YAE/CL,UAAU,CAACX,OAAO,CAAEiB,SAAS,IAAK;cAChC,IAAIA,SAAS,CAACb,SAAS,CAACG,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC1CU,SAAS,CAACD,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;gBAC/CC,SAAS,CAACR,UAAU,CAACC,kBAAkB,CAACM,YAAY,CAClD,eAAe,EACf,MACF,CAAC;cACH;YACF,CAAC,CAAC;UACJ,CAAC,MAAM;YACLf,IAAI,CAACG,SAAS,CAACQ,GAAG,CAAC,QAAQ,CAAC;YAC5BX,IAAI,CAACe,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;YAC3CR,SAAS,CAACQ,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;YAEhDL,UAAU,CAACX,OAAO,CAAEiB,SAAS,IAAK;cAChCA,SAAS,CAACb,SAAS,CAACU,MAAM,CAAC,QAAQ,CAAC;cACpCG,SAAS,CAACD,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;cAChDC,SAAS,CAACR,UAAU,CAACC,kBAAkB,CAACM,YAAY,CAClD,eAAe,EACf,OACF,CAAC;YACH,CAAC,CAAC;YACF,IAAI,CAACD,SAAS,CAACP,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC;UACrC;QACF;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAO,SAASA,CAACG,OAAO,EAAEC,YAAY,EAAEC,IAAI,EAAE;IACrC,IAAIC,aAAa,GAAGH,OAAO,CAACL,YAAY;IAExC,MAAMS,KAAK,GACT,CAACF,IAAI,GAAGD,YAAY,GAAGE,aAAa,KAAK,IAAI,CAACvB,QAAQ,GAAG,KAAK,CAAC;IAEjEsB,IAAI,IAAIF,OAAO,CAACd,SAAS,CAACQ,GAAG,CAAC,QAAQ,CAAC;IAEvC,MAAMW,IAAI,GAAGA,CAAA,KAAM;MACjB,IAAIF,aAAa,KAAKF,YAAY,EAAE;QAClCE,aAAa,GAAGD,IAAI,GAAGC,aAAa,GAAGC,KAAK,GAAGD,aAAa,GAAGC,KAAK;QAEpE,IACGF,IAAI,IAAIC,aAAa,GAAGC,KAAK,GAAGH,YAAY,IAC5C,CAACC,IAAI,IAAIC,aAAa,GAAGC,KAAK,GAAGH,YAAa,EAC/C;UACAE,aAAa,GAAGF,YAAY;UAC5B,CAACC,IAAI,IAAIF,OAAO,CAACd,SAAS,CAACU,MAAM,CAAC,QAAQ,CAAC;QAC7C;QAEAI,OAAO,CAACM,KAAK,CAAC3B,MAAM,GAAGwB,aAAa,GAAG,IAAI;QAC3C,IAAI,CAACI,kBAAkB,GAAGC,qBAAqB,CAACH,IAAI,CAAC;MACvD,CAAC,MAAM;QACLI,oBAAoB,CAAC,IAAI,CAAC/B,cAAc,CAAC;QACzCsB,OAAO,CAACM,KAAK,CAAC3B,MAAM,GAAG,MAAM;MAC/B;IACF,CAAC;IACD,IAAI,CAACD,cAAc,GAAG8B,qBAAqB,CAACH,IAAI,CAAC;EACnD;AACF;AAEA,+DAAehC,aAAa","sources":["webpack://Alster/./app/components/accordion/accordion.js"],"sourcesContent":["class AccordionMenu {\n constructor(elem) {\n this.elem = elem[0];\n this.expandIcons = this.elem.querySelectorAll(\"i\");\n this.animationFrame;\n this.height = 0;\n this.duration = 300;\n this.bindEvents();\n }\n\n bindEvents() {\n this.expandIcons.forEach((icon) => {\n icon.addEventListener(\"click\", (e) => {\n icon.classList.toggle(\"active\");\n const listIsOpen = icon.classList.contains(\"active\");\n const contentUL = icon.parentNode.nextElementSibling;\n const childIcons = contentUL.querySelectorAll(\"i\");\n\n if (contentUL) {\n contentUL.classList.add(\"active\");\n this.height =\n contentUL.offsetHeight !== 0 ? contentUL.offsetHeight : this.height;\n\n if (listIsOpen) {\n contentUL.classList.remove(\"active\");\n icon.classList.remove(\"closed\");\n this.animateUL(contentUL, this.height, true);\n icon.setAttribute(\"aria-expanded\", \"true\");\n contentUL.setAttribute(\"aria-expanded\", \"true\");\n\n childIcons.forEach((childIcon) => {\n if (childIcon.classList.contains(\"active\")) {\n childIcon.setAttribute(\"aria-expanded\", \"true\");\n childIcon.parentNode.nextElementSibling.setAttribute(\n \"aria-expanded\",\n \"true\"\n );\n }\n });\n } else {\n icon.classList.add(\"closed\");\n icon.setAttribute(\"aria-expanded\", \"false\");\n contentUL.setAttribute(\"aria-expanded\", \"false\");\n\n childIcons.forEach((childIcon) => {\n childIcon.classList.remove(\"closed\");\n childIcon.setAttribute(\"aria-expanded\", \"false\");\n childIcon.parentNode.nextElementSibling.setAttribute(\n \"aria-expanded\",\n \"false\"\n );\n });\n this.animateUL(contentUL, 0, false);\n }\n }\n });\n });\n }\n\n animateUL(element, targetHeight, open) {\n let currentHeight = element.offsetHeight;\n\n const speed =\n (open ? targetHeight : currentHeight) / (this.duration / 16.67);\n\n open && element.classList.add(\"active\");\n\n const step = () => {\n if (currentHeight !== targetHeight) {\n currentHeight = open ? currentHeight + speed : currentHeight - speed;\n\n if (\n (open && currentHeight + speed > targetHeight) ||\n (!open && currentHeight - speed < targetHeight)\n ) {\n currentHeight = targetHeight;\n !open && element.classList.remove(\"active\");\n }\n\n element.style.height = currentHeight + \"px\";\n this.animationFrameOpen = requestAnimationFrame(step);\n } else {\n cancelAnimationFrame(this.animationFrame);\n element.style.height = \"auto\";\n }\n };\n this.animationFrame = requestAnimationFrame(step);\n }\n}\n\nexport default AccordionMenu;\n"],"names":["AccordionMenu","constructor","elem","expandIcons","querySelectorAll","animationFrame","height","duration","bindEvents","forEach","icon","addEventListener","e","classList","toggle","listIsOpen","contains","contentUL","parentNode","nextElementSibling","childIcons","add","offsetHeight","remove","animateUL","setAttribute","childIcon","element","targetHeight","open","currentHeight","speed","step","style","animationFrameOpen","requestAnimationFrame","cancelAnimationFrame"],"sourceRoot":""}