if(!customElements.get("collapsible-tab")){class CollapsibleTab extends HTMLElement{constructor(){super()}connectedCallback(){this.init()}disconnectedCallback(){this.destroy()}init=()=>{this.dataset.destroy!=="true"&&(this.setDefaultData(),this.attachEvents(),this.getAttribute("open")==="true"?(this.selected=!0,this.classList.add(this.expandedClass),this.setExpandedAria()):(this.content.style.height=this.collapsedHeight,this.classList.add(this.collapsedClass),this.setCollapsedAria()),this.content.removeAttribute("hidden"))};transitionendEventName=()=>{let i,el=document.createElement("div"),transitions={transition:"transitionend",OTransition:"otransitionend",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(i in transitions)if(transitions.hasOwnProperty(i)&&el.style[i]!==void 0)return transitions[i]};expand=()=>{const bindEvent=(ev=>{ev.target===this.content&&(this.content.removeEventListener(this.transitionendevent,bindEvent),this.isOpen&&requestAnimationFrame(()=>{this.content.style.transition="0",this.content.style.height="auto",requestAnimationFrame(()=>{this.content.style.height=null,this.content.style.transition=null,this.setExpandedAria(),this.classList.add(this.expandedClass),this.trySetTabIndex(this.content,0),this.fire("tabOpened")})}))}).bind(this);this.content.addEventListener(this.transitionendevent,bindEvent),this.isOpen=!0,this.classList.remove(this.collapsedClass),this.content.style.height=this.content.scrollHeight+"px"};collapse=()=>{const bindEvent=(ev=>{ev.target===this.content&&(this.content.removeEventListener(this.transitionendevent,bindEvent),!this.isOpen&&(this.fire("elementClosed"),this.setCollapsedAria(),this.classList.add(this.collapsedClass),this.trySetTabIndex(this.content,-1)))}).bind(this);this.content.addEventListener(this.transitionendevent,bindEvent),this.isOpen=!1,this.classList.remove(this.expandedClass),requestAnimationFrame(()=>{this.content.style.transition="0",this.content.style.height=this.content.scrollHeight+"px",requestAnimationFrame(()=>{this.content.style.transition=null,this.content.style.height=this.collapsedHeight})})};open=()=>{this.selected=!0,this.fire("elementSelected"),this.expand(),this.setAttribute("open",!0),console.log("elementSelected")};close=()=>{console.log("elementUnselected"),this.selected=!1,this.fire("elementUnselected"),this.collapse(),this.removeAttribute("open")};toggle=event=>{if(event?.preventDefault(),this.selected)this.close();else if(this.open(),this.oneAtATime){const allItems=document.querySelectorAll("collapsible-tab"),parent=this.closest("[data-first-level]");allItems.length&&allItems.forEach(item=>{item!==this&&item.selected&&parent!==item&&item.close()})}};trySetTabIndex(el,index){const tappableElements=el.querySelectorAll(this.defaultElements);tappableElements&&tappableElements.forEach(e=>{e.setAttribute("tabindex",index)})}setExpandedAria=()=>{this.trigger.setAttribute("aria-expanded","true"),this.content.setAttribute("aria-hidden","false")};setCollapsedAria=el=>{this.trigger.setAttribute("aria-expanded","false"),this.content.setAttribute("aria-hidden","true")};attachEvents=()=>{this.trigger.addEventListener("click",event=>this.toggle(event))};setDefaultData=()=>{this.events={elementSelected:[],tabOpened:[],elementUnselected:[],elementClosed:[]},this.transitionendevent=this.transitionendEventName(),this.expandedClass="is-expanded",this.collapsedClass="is-collapsed",this.trigger=this.querySelector("[data-trigger]"),this.content=this.querySelector("[data-content]"),this.collapsedHeight="0px",this.defaultElements=["a","button","input:not(.focus-none)","[data-trigger]"],this.oneAtATime=!0,this.dataset.oneOpen&&(this.oneAtATime=this.dataset.oneOpen==="true")};fire=eventName=>{let callbacks=this.events[eventName];for(let i=0;i{this.events[eventName]&&this.events[eventName].push(cb)};destroy=()=>{this.trigger.removeEventListener("click",event=>this.toggle(event)),this.content.removeAttribute("aria-hidden"),this.content.style.height="auto",this.classList.remove(this.expandedClass,this.collapsedClass),this.removeAttribute("open")}}customElements.define("collapsible-tab",CollapsibleTab)} //# sourceMappingURL=/cdn/shop/t/3/assets/collapsible-tab.js.map?v=79047165834788343291672340465