1customElements.get("product-tabs")||customElements.define("product-tabs",class extends HTMLDivElement{constructor(){super()}connectedCallback(){this.sectionId=this.dataset.sectionId,this.tabPanels=this.querySelector(".tabs__panels"),this.tabBtns=this.querySelectorAll(".tabs__btn"),this.currentIndex=0,this.init()}init(){this.tabBtns.forEach(btn=>{btn.addEventListener("click",this.onClick.bind(this))}),Shopify.designMode&&this.addEventListener("shopify:block:select",e=>{if(e.detail.sectionId!=this.sectionId)return;let{target}=e;const index=Number(target.dataset.index);this.setActiveTab(index)})}onClick(e){e.preventDefault();const{target}=e,button=target.closest("button"),index=Number(button.dataset.index);this.setActiveTab(index)}setActiveTab(index){if(this.currentIndex===index)return;let newTab,newBtn,currentItem;currentItem=this.tabBtns[this.currentIndex],newBtn=this.tabBtns[index],currentItem.classList.remove("active"),newBtn.classList.add("active"),this.tabPanels.querySelectorAll(".tabs__panel").forEach(panel=>{panel.hidden=!0}),newTab=this.tabPanels.querySelector(`.tabs__panel[data-index="${index}"]`),newTab||(newTab=this.tabPanels.querySelector(`template[data-index="${index}"]`).content.cloneNode(!0).firstElementChild,this.tabPanels.appendChild(newTab));const translateY=FoxTheme.config.motionReduced?0:2.5;FoxTheme.Motion.animate(newTab,{transform:`translateY(${translateY}rem)`,opacity:.01},{duration:0}),newTab.hidden=!1,this.fixBlurryImagesOnSafari(newTab),setTimeout(()=>{FoxTheme.Motion.animate(newTab,{transform:"translateY(0)",opacity:1},{duration:.5,delay:this.animationDelay,easing:[0,0,.3,1]})},50),this.currentIndex=index,this.dispatchEvent(new CustomEvent("tabChange",{bubbles:!0,detail:{selectedIndex:index,selectedTab:newTab}}))}fixBlurryImagesOnSafari(tab){if(!(/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&navigator.userAgent.includes("Version/15."))||tab.classList.contains("images-loaded"))return;tab.classList.add("images-loaded"),tab.querySelectorAll("img[srcset]").forEach(img=>{const src=img.currentSrc||img.src;img.srcset=img.srcset,img.src="",img.src=src})}},{extends:"div"}); 2//# sourceMappingURL=/cdn/shop/t/98/assets/product-tabs.js.map?v=108070348865890868551782776257
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.