1if(!customElements.get("wls-accordion")){class WLSAccordion extends HTMLElement{constructor(){super(),this.classes={accordionItem:"wls-accordion-item",accordionTrigger:"wls-accordion-trigger",accordionContent:"wls-accordion-content"},this.settings={triggerMob:this.hasAttribute("data-trigger-mob"),triggerTab:this.hasAttribute("data-trigger-tab"),triggerDesk:this.hasAttribute("data-trigger-desk"),closeOthers:this.hasAttribute("data-close-others")},this.boundToggleAccordion=this._toggleAccordion.bind(this),this.boundResizeHandler=this.debounce(this._handleResize.bind(this),200),this.boundOpenItemHandler=this._handleOpenItem.bind(this)}get elements(){return{accordionItems:this.querySelectorAll(this.classes.accordionItem)}}connectedCallback(){this._init(),window.addEventListener("resize",this.boundResizeHandler),this.boundCloseAllHandler=this._closeAllAccordions.bind(this),this.addEventListener("wls:accordion:close-all",this.boundCloseAllHandler),this.addEventListener("wls:accordion:open-item",this.boundOpenItemHandler)}disconnectedCallback(){this._teardown(),window.removeEventListener("resize",this.boundResizeHandler),this.removeEventListener("wls:accordion:close-all",this.boundCloseAllHandler),this.removeEventListener("wls:accordion:open-item",this.boundOpenItemHandler)}_init(){if(!this._shouldEnableAccordion())return;const defaultIndex=parseInt(this.getAttribute("data-default-open-index"),10);this.elements.accordionItems.forEach((item,index)=>{const itemTrigger=item.querySelector(this.classes.accordionTrigger);itemTrigger&&itemTrigger.addEventListener("click",this.boundToggleAccordion);const dataIndex=parseInt(item.getAttribute("data-index"),10);!isNaN(defaultIndex)&&(defaultIndex===index||defaultIndex===dataIndex)&&this._openAccordion(item)})}_teardown(){!this.elements||!this.elements.accordionItems||this.elements.accordionItems.forEach(item=>{const itemTrigger=item.querySelector(this.classes.accordionTrigger);itemTrigger&&itemTrigger.removeEventListener("click",this.boundToggleAccordion)})}_handleResize(){this._teardown(),this._init()}_shouldEnableAccordion(){const width=window.innerWidth,{triggerMob,triggerTab,triggerDesk}=this.settings;return!!(!triggerMob&&!triggerTab&&!triggerDesk||triggerMob&&width<=767||triggerTab&&width>767&&width<=1023||triggerDesk&&width>1023)}_toggleAccordion(e){const item=e.currentTarget.closest(this.classes.accordionItem),isOpen=item.hasAttribute("data-expanded"),itemContent=item.querySelector(this.classes.accordionContent),itemTrigger=item.querySelector(this.classes.accordionTrigger);itemContent&&(isOpen?(itemContent.style.maxHeight="0px",item.removeAttribute("data-expanded"),itemTrigger&&itemTrigger.setAttribute("aria-expanded","false")):(this.settings.closeOthers&&this._closeAllAccordions(),this._openAccordion(item)))}_openAccordion(item){const itemContent=item.querySelector(this.classes.accordionContent),itemTrigger=item.querySelector(this.classes.accordionTrigger);itemContent&&(item.setAttribute("data-expanded","true"),itemTrigger&&itemTrigger.setAttribute("aria-expanded","true"),itemContent.style.maxHeight=`${itemContent.scrollHeight}px`)}_closeAllAccordions(){!this.elements||!this.elements.accordionItems||this.elements.accordionItems.forEach(item=>{const itemContent=item.querySelector(this.classes.accordionContent),itemTrigger=item.querySelector(this.classes.accordionTrigger);itemContent&&(itemContent.style.maxHeight="0px"),itemTrigger&&itemTrigger.setAttribute("aria-expanded","false"),item.removeAttribute("data-expanded")})}_handleOpenItem(event){if(!event.detail||!event.detail.index)return;const targetIndex=event.detail.index.toString(),targetItem=Array.from(this.elements.accordionItems).find(item=>item.getAttribute("data-index")===targetIndex);targetItem&&(this.settings.closeOthers&&this._closeAllAccordions(),this._openAccordion(targetItem))}debounce(fn,wait){let t;return function(){const ctx=this,args=arguments;clearTimeout(t),t=setTimeout(function(){fn.apply(ctx,args)},wait)}}}window.customElements.define("wls-accordion",WLSAccordion)} 2//# sourceMappingURL=/cdn/shop/t/5/assets/wls-accordion.js.map?v=169975332325503052721772785382
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.