PageSourceSearch

https://www.timekettle.co/cdn/shop/t/262/assets/tab-image.js?v=52104455439747522921782880272

js timekettle.co collected 2026-10-01 12:32:30 UTC 2,516 bytes, 2 lines download raw bytes

1class TabImage{constructor(section){this.section=section,this.tabs=section.querySelector(".tab-image__tabs"),this.activeTab=section.querySelector(".tab-image__tab.active"),this.currentIndex=this.activeTab?parseInt(this.activeTab.getAttribute("data-index")):0,this.isAnimating=!1,this.init()}init(){this.setupObserver(),this.setupEventListeners()}setupObserver(){const observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting&&(this.tabs.classList.add("visible"),observer.unobserve(entry.target))})},{threshold:.2});observer.observe(this.section)}setupEventListeners(){this.section.querySelectorAll(".tab-image__tab").forEach((tab,index)=>{tab.addEventListener("click",()=>this.openTab(tab,index)),tab.addEventListener("mouseenter",()=>this.handleTabHover(tab,index)),tab.addEventListener("mouseleave",()=>this.handleTabLeave(tab))})}openTab(element,index){if(this.isAnimating)return;this.isAnimating=!0;const contentItems=this.section.querySelectorAll(".tab-image__content-item"),currentItem=this.section.querySelector(".tab-image__content-item.active");contentItems.forEach(item=>{item.classList.remove("active");const container=item.querySelector(".tab-image__content-item-container");container&&(container.style.opacity="0")});const newItem=this.section.querySelector(`#${element.getAttribute("data-tab-id")}`);newItem.classList.add("active"),this.currentIndex=index,this.section.querySelectorAll(".tab-image__tab").forEach(tab=>{tab.classList.remove("active","stretch-left","stretch-right")}),element.classList.add("active"),setTimeout(()=>{const activeContainer=newItem.querySelector(".tab-image__content-item-container");activeContainer&&(activeContainer.style.opacity="1")},50),setTimeout(()=>{this.isAnimating=!1},500)}handleTabHover(hoveredTab,hoveredIndex){const activeTab=this.section.querySelector(".tab-image__tab.active");!activeTab||hoveredTab===activeTab||(activeTab.classList.remove("stretch-left","stretch-right"),hoveredIndex>this.currentIndex?activeTab.classList.add("stretch-right"):hoveredIndex<this.currentIndex&&activeTab.classList.add("stretch-left"))}handleTabLeave(hoveredTab){const activeTab=this.section.querySelector(".tab-image__tab.active");activeTab&&activeTab.classList.remove("stretch-left","stretch-right")}}document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll('[id^="tab-image-"]').forEach(section=>new TabImage(section))});
2//# sourceMappingURL=/cdn/shop/t/262/assets/tab-image.js.map?v=52104455439747522921782880272

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.