PageSourceSearch

https://www.kiiboom.com/cdn/shop/t/11/assets/featured-collection.js?v=165760156732424705711751229177

js kiiboom.com collected 2026-09-28 10:10:51 UTC 7,412 bytes, 2 lines download raw bytes

1if(!customElements.get("m-featured-collection")){class MFeaturedCollection extends HTMLElement{constructor(){super()}connectedCallback(){this.selectors={loadMoreBtn:"[data-load-more]",loadMoreBtnWrapper:".m-featured-collection__button",productsContainer:"[data-products-container]",products:[".m-product-card"],soldNumber:["[data-sold-number]"],availableNumber:["[data-available-number]"],countDown:"[data-flashsale-countdown]",slideControls:".m-slider-controls",slideContainer:".m-mixed-layout__wrapper"},this.domNodes=queryDomNodes(this.selectors,this),this.buttonType=this.dataset.buttonType,this.infiniteLoad=this.dataset.infiniteLoad,this.enableSlider=this.dataset.enableSlider==="true",this.showPagination=this.dataset.showPagination==="true",this.showNavigation=this.dataset.showNavigation==="true",this.enableFlashsale=this.dataset.enableFlashsale==="true",this.enableCountdown=this.dataset.enableCountdown==="true",this.id=this.dataset.id,this.items=this.dataset.items,this.mobileDisableSlider=this.dataset.mobileDisableSlider==="true",this.initByScreenSize(),document.addEventListener("matchMobile",()=>{this.initByScreenSize()}),document.addEventListener("unmatchMobile",()=>{this.initByScreenSize()}),this.enableFlashsale&&this.initFlashSale(),this.canLoad=!0,this.currentPage=1,this.spinner=spinner(),!this.enableSlider&&this.buttonType==="load"&&this.infiniteLoad==="true"&&this.initInfiniteLoad(),!this.enableSlider&&this.buttonType==="load"&&this.initLoadMore(),MinimogTheme.config.mqlMobile&&this.mobileDisableSlider&&this.buttonType==="load"&&this.infiniteLoad==="true"&&this.initInfiniteLoad(),MinimogTheme.config.mqlMobile&&this.mobileDisableSlider&&this.buttonType==="load"&&this.initLoadMore(),document.addEventListener("matchMobile",()=>{MinimogTheme.config.mqlMobile&&this.mobileDisableSlider&&this.buttonType==="load"&&this.initLoadMore(),MinimogTheme.config.mqlMobile&&this.mobileDisableSlider&&this.buttonType==="load"&&this.infiniteLoad==="true"&&this.initInfiniteLoad()})}initByScreenSize(){if(!this.enableSlider)return;const{slideContainer,slideControls}=queryDomNodes(this.selectors,this);MinimogTheme.config.mqlMobile&&this.mobileDisableSlider?(slideControls&&slideControls.classList.add("m:hidden"),slideContainer&&slideContainer.classList.remove("swiper-container"),this.swiper&&this.swiper.destroy(!1,!0)):(slideControls&&slideControls.classList.remove("m:hidden"),this.initSlider())}initSlider(){const{slideContainer}=queryDomNodes(this.selectors,this),controlsContainer=this.querySelector(".m-slider-controls"),prevButton=controlsContainer&&controlsContainer.querySelector(".m-slider-controls__button-prev"),nextButton=controlsContainer&&controlsContainer.querySelector(".m-slider-controls__button-next"),slideItemsLength=slideContainer.querySelector(".swiper-wrapper").childElementCount;slideContainer&&slideContainer.classList.add("swiper-container"),this.slider=new MinimogLibs.Swiper(slideContainer,{slidesPerView:2,showPagination:this.showPagination,showNavigation:this.showNavigation,loop:!this.enableFlashsale,pagination:this.showPagination?{el:this.querySelector(".swiper-pagination"),clickable:!0}:!1,breakpoints:{768:{slidesPerView:parseInt(this.items)>=3?3:parseInt(this.items)},1024:{slidesPerView:parseInt(this.items)>=4?4:parseInt(this.items)},1280:{slidesPerView:parseInt(this.items)}},threshold:2,on:{init:()=>{setTimeout(()=>{const firstItem=this.querySelector(".m-image")||this.querySelector(".m-placeholder-svg");if(firstItem&&controlsContainer){const itemHeight=firstItem.clientHeight;controlsContainer.style.setProperty("--offset-top",parseInt(itemHeight)/2+"px"),prevButton&&prevButton.classList.remove("m:hidden"),nextButton&&nextButton.classList.remove("m:hidden")}},200)},breakpoint:(swiper,breakpointParams)=>{if(controlsContainer){const{slidesPerView}=breakpointParams;slideItemsLength>slidesPerView?(controlsContainer.classList.remove("m:hidden"),swiper.allowTouchMove=!0):(controlsContainer.classList.add("m:hidden"),swiper.allowTouchMove=!1)}}}}),this.slider&&this.showNavigation&&(prevButton&&prevButton.addEventListener("click",()=>this.slider.slidePrev()),nextButton&&nextButton.addEventListener("click",()=>this.slider.slideNext())),this.swiper=slideContainer&&slideContainer.swiper}initLoadMore(){this.triggerLoad=!1,this.totalPages=parseInt(this.dataset.totalPages),addEventDelegate({context:this.container,selector:this.selectors.loadMoreBtn,handler:e=>{e.preventDefault(),this.handleLoadMore()}})}initInfiniteLoad(){const maxPages=this.dataset.maxPages;window.addEventListener("scroll",e=>{this.canLoad=this.currentPage<parseInt(maxPages),this.canLoad&&this.offsetTop+this.clientHeight-window.innerHeight<window.scrollY&&!this.triggerLoad&&(this.triggerLoad=!0,this.handleLoadMore())})}async handleLoadMore(){this.currentPage++,this.canLoad=this.currentPage<this.totalPages,this.toggleLoading(!0);const collectionID=this.dataset.collectionId,res=await fetchCountDown(collectionID),dataUrl=`${this.dataset.url}?page=${this.currentPage}&section_id=${this.id}`;fetchCache(dataUrl).then(html=>{this.toggleLoading(!1);const products=generateDomFromString(html).querySelector(this.selectors.productsContainer),oldCards=this.domNodes.productsContainer.childElementCount;let isAppended=!1;
1if(products&&Array.from(products.childNodes).forEach(product=>{this.domNodes.productsContainer.appendChild(product);const check=setInterval(()=>{this.domNodes.productsContainer.childElementCount>oldCards&&(clearInterval(check),isAppended=!0)},50)}),this.enableFlashsale&&res.ok&&res.payload&&res.payload.length){const{expires_date}=res.payload[0];this.expires_date=expires_date;const check=setInterval(()=>{isAppended&&(clearInterval(check),this.domNodes.productsContainer.querySelectorAll(".m-product-card").forEach(card=>{const content=card.querySelector(".m-product-card__content");if(!card.querySelector(".m-product-sale-progress")){let soldNumber;card.dataset.soldNumber&&(soldNumber=card.dataset.soldNumber);const component=saleProgress(res.payload[0],card.dataset.productId,soldNumber),newComponent=generateDomFromString(component);content.appendChild(newComponent)}}))},50)}this.triggerLoad=!1,this.canLoad||this.domNodes.loadMoreBtn&&this.domNodes.loadMoreBtn.classList.add("m:hidden")})}toggleLoading(status){this.domNodes.loadMoreBtn&&(status?this.domNodes.loadMoreBtn.classList.add("m-spinner-loading"):this.domNodes.loadMoreBtn.classList.remove("m-spinner-loading"))}async initFlashSale(){const collectionID=this.dataset.collectionId,res=await fetchCountDown(collectionID);if(res.ok&&res.payload&&res.payload.length){const{expires_date}=res.payload[0];this.expires_date=expires_date,this.domNodes.products.forEach(card=>{const content=card.querySelector(".m-product-card__content"),pcardSale=card.querySelector(".m-product-sale-progress");let soldNumber;card.dataset.soldNumber&&(soldNumber=card.dataset.soldNumber);const component=saleProgress(res.payload[0],card.dataset.productId,soldNumber),newComponent=generateDomFromString(component);pcardSale||content.appendChild(newComponent)}),this.initCountDown()}}initCountDown(){const endTime=new Date(this.expires_date).getTime();this.countDownTimer=new CountdownTimer(this.domNodes.countDown,Date.now(),endTime,{loop:!0})}}customElements.define("m-featured-collection",MFeaturedCollection)}
2//# sourceMappingURL=/cdn/shop/t/11/assets/featured-collection.js.map?v=165760156732424705711751229177

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.