class ProductList{constructor(e,t=[]){this.selectors={productList:"[data-product-list]",gridContainer:"[data-grid-container]",sliderControl:".m-slider-controls"},this.swiper,this.currentScreen,e&&t.length&&(this.container=e,this.enableSlider="true"===e.dataset.enableSlider,this.productsToShow=Number(e.dataset.productsToShow)||20,this.productsPerRow=Number(e.dataset.productsPerRow),this.productHandles=t.slice(0,this.productsToShow),this.domNodes=queryDomNodes(this.selectors,e),this.init().catch(console.error))}init=async()=>{const e={};await Promise.all(this.productHandles.map((async t=>{const i=formatUrl("products",t,"view=grid-card-item"),s=await fetchCache(i),r=document.createElement("DIV");r.classList.add("swiper-slide","m:column"),r.innerHTML=s,r.querySelector('[data-view="card"]')&&(e[t]=r)})));const{productList:t,gridContainer:i}=this.domNodes;this.productHandles.forEach((s=>{const r=e[s];r&&(t.parentNode.classList.contains("foxkit-related-products__grid")?this.productHandles&&this.productHandles.length>this.productsPerRow?t&&t.appendChild(r):(t&&t.style.setProperty("display","none"),r.classList.remove("m:column"),i&&i.appendChild(r)):(this.enableSlider||t.classList.remove("swiper-wrapper"),t&&t.appendChild(r)))})),MinimogTheme.CompareProduct&&MinimogTheme.CompareProduct.setCompareButtonsState(),MinimogTheme.Wishlist&&MinimogTheme.Wishlist.setWishlistButtonsState(),setTimeout((()=>{this.initByScreenSize()}),300),this.container.classList.remove("m:hidden","hidden"),window.addEventListener("resize",debounce(this.initByScreenSize,300)),refreshProductReview()};initByScreenSize=()=>{const{productList:e,gridContainer:t,sliderControl:i}=this.domNodes,s=window.innerWidth>767?"desktop":"mobile";if(s!==this.currentScreen)if(this.currentScreen=s,"desktop"===s){if(t&&t.parentNode.classList.remove("m-mixed-layout--mobile-scroll"),this.enableSlider&&this.productHandles&&this.productHandles.length>this.productsPerRow){t&&t.classList.add("swiper-container"),i&&i.classList.remove("m:hidden","hidden");const e=this.container,s=this.container.querySelector(".m-slider-controls"),r=s&&s.querySelector(".m-slider-controls__button-prev"),o=s&&s.querySelector(".m-slider-controls__button-next"),d=t.querySelector(".swiper-wrapper").childElementCount;this.slider=new MinimogLibs.Swiper(t,{slidesPerView:2,showPagination:!1,showNavigation:!0,loop:!0,threshold:2,pagination:!1,breakpoints:{768:{slidesPerView:3},1280:{slidesPerView:parseInt(this.productsPerRow)}},on:{init:function(){setTimeout((()=>{const t=e.querySelector(".m-image");if(t&&s){const e=t.clientHeight;s.style.setProperty("--offset-top",parseInt(e)/2+"px")}}),200)},breakpoint:(e,t)=>{if(s){const{slidesPerView:i}=t;d>i?(s.classList.remove("m:hidden","hidden"),e.allowTouchMove=!0):(s.classList.add("m:hidden","hidden"),e.allowTouchMove=!1)}}}}),this.slider&&(r&&r.addEventListener("click",(()=>this.slider.slidePrev())),o&&o.addEventListener("click",(()=>this.slider.slideNext()))),this.swiper=t&&t.swiper}}else this.swiper&&this.swiper.destroy(!1,!0),t.classList.remove("swiper-container"),t.parentNode.classList.add("m-mixed-layout","m-mixed-layout--mobile-scroll"),i&&i.classList.add("m:hidden","hidden"),e.classList.add("m-mixed-layout__inner")}}MinimogTheme.ProductList=ProductList;