PageSourceSearch

https://thandth.com/cdn/shop/t/25/assets/collections-showcase.js?v=94948424861872272051766055451

js thandth.com collected 2026-10-06 03:05:19 UTC 3,105 bytes, 2 lines download raw bytes

1customElements.get("collection-showcase")||customElements.define("collection-showcase-products",class extends HTMLElement{constructor(){super()}connectedCallback(){this.dataset.enableSlider==="true"&&this.initSlider()}initSlider(){const sliderOptions={slidesPerView:Number(this.dataset.items),spaceBetween:8,breakpoints:{768:{spaceBetween:20}},threshold:2};this.sliderInstance=new window.FoxTheme.Carousel(this.querySelector(".swiper"),sliderOptions),this.sliderInstance.init()}}),customElements.get("collection-showcase")||customElements.define("collection-showcase",class extends HTMLElement{constructor(){super(),this.images=this.querySelectorAll(".collection-showcase__image"),this.tabItems=this.querySelectorAll(".collection-showcase__tabs li a"),this.mainContent=this.querySelector(".collection-showcase__contents"),this.currentIndex=0,this.hoverTracker=null,this.init()}init(){this.tabItems&&("ontouchstart"in window?this.tabItems.forEach(item=>{item.addEventListener("touchstart",this.onTouchChange.bind(this)),item.addEventListener("click",this.onClick.bind(this))}):this.tabItems.forEach(item=>{item.addEventListener("mouseover",e=>this.onMouseOver(e)),item.addEventListener("focus",e=>this.onMouseOver(e))})),Shopify.designMode&&document.addEventListener("shopify:block:select",e=>{if(e.detail.sectionId!=this.dataset.sectionId)return;const{target}=e,index=Number(target.dataset.index);this.setActiveTab(index)})}isSelected(tab){return tab.classList.contains("active")}onMouseOver(e){let{target}=e;const index=Number(target.dataset.index);clearTimeout(this.hoverTracker),this.hoverTracker=setTimeout(()=>{target.classList.contains("active")||this.setActiveTab(index)},100)}onTouchChange(e){const{target}=e,index=Number(target.dataset.index);if(this.isSelected(target)){this.preventClick=!1;return}else this.preventClick=!0;this.setActiveTab(index)}onClick(e){this.preventClick&&e.preventDefault()}setActiveTab(tabIndex){if(this.currentIndex==tabIndex)return;let newTab,currentItem,newItem,currentImage,newImage;if(newImage=this.images[tabIndex],newImage.hidden=!1,newImage.classList.add("active"),currentImage=this.images[this.currentIndex],currentImage.classList.remove("active"),currentItem=this.tabItems[this.currentIndex],newItem=this.tabItems[tabIndex],currentItem.classList.remove("active"),newItem.classList.add("active"),this.mainContent.querySelectorAll(".collection-showcase__content").forEach(collection=>{collection.hidden=!0,collection.classList.remove("active")}),newTab=this.mainContent.querySelector(`.collection-showcase__content[data-index="${tabIndex}"]`),newTab)newTab.hidden=!1;else{const template=this.mainContent.querySelector(`template[data-index="${tabIndex}"]`);newTab=document.importNode(template.content,!0),this.mainContent.appendChild(newTab),newTab.hidden=!1}const gridList=newTab.querySelector("grid-list");gridList&&gridList.showGridItems();const motion=newTab.querySelector("motion-element");motion&&motion.refreshAnimation(),this.currentIndex=tabIndex}});
2//# sourceMappingURL=/cdn/shop/t/25/assets/collections-showcase.js.map?v=94948424861872272051766055451

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.