{"version":3,"file":"accordion_controller-CqGlxKWB.js","sources":["../../../app/javascript/entrypoints/controllers/ui/accordion_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n get togglers() {\n return this.context.bindingObserver.bindings\n .filter((binding) => binding.action.methodName == \"toggle\")\n .map((binding) => binding.action.element);\n }\n\n get openedTogglers() {\n return this.togglers.filter((toggler) => this.isOpened(toggler));\n }\n\n get contents() {\n return this.scope.findAllElements(\"[data-accordion-id]\");\n }\n\n connect() {\n this.init();\n }\n\n init() {\n this.togglers.forEach((toggler, index) => {\n let content = this.findContent(toggler);\n // if (index === 0 && toggler.dataset.open === \"true\") {\n // this.show(toggler, content, false);\n // toggler.setAttribute('aria-expanded', 'true');\n // } else {\n // this.hide(toggler, content, false);\n // toggler.setAttribute('aria-expanded', 'false');\n // }\n });\n }\n\n toggle(e) {\n this.togglers.forEach((toggler) => {\n if (toggler.contains(e.target)) {\n if (this.isOpened(toggler)) {\n this.close(toggler);\n } else {\n this.open(toggler);\n }\n } else if (this.isOpened(toggler)) {\n this.close(toggler);\n }\n });\n\n e.preventDefault();\n }\n\n open(toggler) {\n let content = this.findContent(toggler);\n this.show(toggler, content);\n toggler.setAttribute('aria-expanded', 'true');\n this.dispatch(\"opened\", { detail: { toggler: toggler, content: content } });\n }\n\n close(toggler) {\n let content = this.findContent(toggler);\n this.hide(toggler, content);\n toggler.setAttribute('aria-expanded', 'false');\n this.dispatch(\"closed\", { detail: { toggler: toggler, content: content } });\n }\n\n show(toggler, content, transition = true) {\n if (transition) {\n content.style.height = \"auto\";\n content.style.opacity = \"1\"; // Set opacity to 1 to make it visible\n content.style.visibility = \"visible\"; // Ensure visibility is set to visible\n content.style.overflow = \"visible\";\n }\n this.toggleClass(toggler, content, true);\n }\n\n hide(toggler, content, transition = true) {\n if (transition) {\n content.style.height = \"0px\";\n content.style.opacity = \"0\"; // Set opacity to 0 to hide it\n content.style.visibility = \"hidden\"; // Ensure visibility is set to hidden\n content.style.overflow = \"hidden\";\n }\n this.toggleClass(toggler, content, false);\n }\n\n transitionEnd(e) {\n e.target.style.height = \"\";\n }\n\n toggleClass(toggler, content, opened) {\n if (opened) {\n toggler.classList.add(\"st-accordion__icon--opened\");\n toggler.dataset.state = \"open\";\n } else {\n toggler.classList.remove(\"st-accordion__icon--opened\");\n toggler.dataset.state = \"closed\";\n }\n }\n\n isOpened(toggler) {\n return toggler.getAttribute('aria-expanded') === 'true';\n }\n\n findContent(toggler) {\n let id = this.getID(toggler);\n return this.scope.findElement(`[data-accordion-id=\"${id}\"]`);\n }\n\n getID(toggler) {\n return toggler.getAttribute(\"href\").replace(/^#/, \"\");\n }\n}\n"],"names":["Accordion_controller","Controller","binding","toggler","index","content","transition","opened","id"],"mappings":"2CAEe,MAAKA,UAASC,CAAW,CACtC,IAAI,UAAW,CACb,OAAO,KAAK,QAAQ,gBAAgB,SAC/B,OAAQC,GAAYA,EAAQ,OAAO,YAAc,QAAQ,EACzD,IAAKA,GAAYA,EAAQ,OAAO,OAAO,CAC7C,CAED,IAAI,gBAAiB,CACnB,OAAO,KAAK,SAAS,OAAQC,GAAY,KAAK,SAASA,CAAO,CAAC,CAChE,CAED,IAAI,UAAW,CACb,OAAO,KAAK,MAAM,gBAAgB,qBAAqB,CACxD,CAED,SAAU,CACR,KAAK,KAAI,CACV,CAED,MAAO,CACL,KAAK,SAAS,QAAQ,CAACA,EAASC,IAAU,CAC1B,KAAK,YAAYD,CAAO,CAQ5C,CAAK,CACF,CAED,OAAO,EAAG,CACR,KAAK,SAAS,QAASA,GAAY,CAC7BA,EAAQ,SAAS,EAAE,MAAM,EACvB,KAAK,SAASA,CAAO,EACvB,KAAK,MAAMA,CAAO,EAElB,KAAK,KAAKA,CAAO,EAEV,KAAK,SAASA,CAAO,GAC9B,KAAK,MAAMA,CAAO,CAE1B,CAAK,EAED,EAAE,eAAc,CACjB,CAED,KAAKA,EAAS,CACZ,IAAIE,EAAU,KAAK,YAAYF,CAAO,EACtC,KAAK,KAAKA,EAASE,CAAO,EAC1BF,EAAQ,aAAa,gBAAiB,MAAM,EAC5C,KAAK,SAAS,SAAU,CAAE,OAAQ,CAAE,QAASA,EAAS,QAASE,CAAS,CAAA,CAAE,CAC3E,CAED,MAAMF,EAAS,CACb,IAAIE,EAAU,KAAK,YAAYF,CAAO,EACtC,KAAK,KAAKA,EAASE,CAAO,EAC1BF,EAAQ,aAAa,gBAAiB,OAAO,EAC7C,KAAK,SAAS,SAAU,CAAE,OAAQ,CAAE,QAASA,EAAS,QAASE,CAAS,CAAA,CAAE,CAC3E,CAED,KAAKF,EAASE,EAASC,EAAa,GAAM,CACpCA,IACFD,EAAQ,MAAM,OAAS,OACvBA,EAAQ,MAAM,QAAU,IACxBA,EAAQ,MAAM,WAAa,UAC3BA,EAAQ,MAAM,SAAW,WAE3B,KAAK,YAAYF,EAASE,EAAS,EAAI,CACxC,CAED,KAAKF,EAASE,EAASC,EAAa,GAAM,CACpCA,IACFD,EAAQ,MAAM,OAAS,MACvBA,EAAQ,MAAM,QAAU,IACxBA,EAAQ,MAAM,WAAa,SAC3BA,EAAQ,MAAM,SAAW,UAE3B,KAAK,YAAYF,EAASE,EAAS,EAAK,CACzC,CAED,cAAc,EAAG,CACf,EAAE,OAAO,MAAM,OAAS,EACzB,CAED,YAAYF,EAASE,EAASE,EAAQ,CAChCA,GACFJ,EAAQ,UAAU,IAAI,4BAA4B,EAClDA,EAAQ,QAAQ,MAAQ,SAExBA,EAAQ,UAAU,OAAO,4BAA4B,EACrDA,EAAQ,QAAQ,MAAQ,SAE3B,CAED,SAASA,EAAS,CAChB,OAAOA,EAAQ,aAAa,eAAe,IAAM,MAClD,CAED,YAAYA,EAAS,CACnB,IAAIK,EAAK,KAAK,MAAML,CAAO,EAC3B,OAAO,KAAK,MAAM,YAAY,uBAAuBK,CAAE,IAAI,CAC5D,CAED,MAAML,EAAS,CACb,OAAOA,EAAQ,aAAa,MAAM,EAAE,QAAQ,KAAM,EAAE,CACrD,CACH"}