import{M as s}from"./BlU1CpTV.min.js";class i extends HTMLElement{constructor(){super(...arguments),this.items=[],this.isClosingOthers=!1}connectedCallback(){this.mode=this.getAttribute("data-mode")||"multiple",this.items=Array.from(this.querySelectorAll("mws-accordion-item")),this.expandAllButton=this.getSlotElement("accordion-expand-all-button"),window.customElements.whenDefined("mws-accordion-item").then(()=>{this.init()})}init(){this.mode==="single"?this.items.forEach(t=>{t.addEventListener(s.OPEN,()=>{this.closeOthers(t)}),t.addEventListener(s.CLOSE,e=>{!this.isClosingOthers&&t.open&&e.preventDefault()})}):this.expandAllButton&&(this.expandAllButton.addEventListener("click",()=>this.toggleExpandAll()),this.items.forEach(t=>{t.addEventListener(s.OPEN,()=>{window.requestAnimationFrame(()=>this.updateExpandState())}),t.addEventListener(s.CLOSE,e=>{window.requestAnimationFrame(()=>this.updateExpandState())})}))}toggleExpandAll(){const t=this.expandAllButton.getAttribute("data-state");let e;t==="collapse-all"?(this.items.forEach(n=>{n.open=!1}),e="expand-all"):(this.items.forEach(n=>{n.open=!0}),e="collapse-all"),this.updateExpandState(e)}updateExpandState(t){t||(this.testAllItemsOpen()?t="collapse-all":t="expand-all"),this.expandAllButton.setAttribute("data-state",t)}testAllItemsOpen(){return this.items.every(t=>!!t.open)}closeOthers(t){this.isClosingOthers=!0,this.items.forEach(e=>{e!==t&&(e.open=!1)}),this.isClosingOthers=!1}getSlotElement(t){return this.querySelector(`[data-slot="${t}"]`)}getSlotElements(t){return Array.from(this.querySelectorAll(`[data-slot="${t}"]`))}}customElements.get("mws-accordion")||customElements.define("mws-accordion",i);