1/*! Copyright (c) Safe As Milk. All rights reserved. */import Swiper,{A11y,Autoplay,EffectFade,Navigation,Pagination,Virtual}from"swiper";import{BREAKPOINTS,StateSwitch,debounce}from"utils";class MediaCarousel extends HTMLElement{#boundHandleMediaQueryChange;#boundHandleMobileNextImagePreviewMediaQueryChange;#indexProp;#isVirtual;#mobileNextImagePreviewStateSwitch=null;#navigationElement;#paginationElement;#resizeObserver;#slideElements;#sliderElement;#swiper=null;#stateSwitch=null;#wrapperElement;static#MEDIA_CAROUSEL_CLASS="swiper";static#MEDIA_CAROUSEL_WRAPPER_CLASS="swiper-wrapper";static#MEDIA_CAROUSEL_SLIDE_CLASS="swiper-slide";constructor(){super(),this.#boundHandleMediaQueryChange=this.#handleMediaQueryChange.bind(this),this.#boundHandleMobileNextImagePreviewMediaQueryChange=this.#handleMobileNextImagePreviewMediaQueryChange.bind(this)}connectedCallback(){this.currentSlideId=this.currentSlideId!==void 0?this.currentSlideId:this.dataset.initialSlide||0,this.#sliderElement=this.querySelector("media-carousel-slider"),this.#wrapperElement=this.querySelector("media-carousel-wrapper"),this.#slideElements=this.querySelectorAll("media-carousel-slide"),this.#paginationElement=this.querySelector("media-carousel-pagination"),this.#navigationElement=this.querySelector("media-carousel-navigation"),this.#indexProp=this.dataset.loop?"realIndex":"activeIndex",this.#isVirtual=!!(this.dataset.virtual&&this.querySelector(".js-slides"));const handleIntersection=(entries,observer)=>{entries.forEach((entry=>{entry.isIntersecting&&(observer.unobserve(this),this.dataset.breakpointMin||this.dataset.breakpointMax?(this.#stateSwitch=new StateSwitch({min:this.dataset.breakpointMin,max:this.dataset.breakpointMax}),this.#stateSwitch.active()&&this.#init(document.body.clientWidth<BREAKPOINTS.tab&&this.dataset.mobileNextImagePreview),this.#stateSwitch.on(this.#boundHandleMediaQueryChange)):this.dataset.mobileNextImagePreview?(this.#mobileNextImagePreviewStateSwitch=new StateSwitch({max:"tab"}),this.#init(this.#mobileNextImagePreviewStateSwitch.active()),this.#mobileNextImagePreviewStateSwitch.on(this.#boundHandleMobileNextImagePreviewMediaQueryChange)):this.#init())}))};new IntersectionObserver(handleIntersection.bind(this)).observe(this)}disconnectedCallback(){this.#swiper&&(this.#swiper.destroy(),this.#swiper=null),this.#stateSwitch&&this.#stateSwitch.off(this.#boundHandleMediaQueryChange),this.#mobileNextImagePreviewStateSwitch&&this.#mobileNextImagePreviewStateSwitch.off(this.#boundHandleMobileNextImagePreviewMediaQueryChange),this.#resizeObserver&&(this.#resizeObserver.disconnect(),this.#resizeObserver=null)}get initialized(){return!!(this.#swiper&&(this.#isVirtual?this.#swiper.virtual.cache[this.#swiper[this.#indexProp]]:this.#swiper.slides[this.#swiper[this.#indexProp]]))}get index(){return this.#swiper?this.#swiper[this.#indexProp]:void 0}get currentSlide(){return this.#swiper?this.#isVirtual?this.#swiper.virtual.cache[this.#swiper[this.#indexProp]]:this.#swiper.slides[this.#swiper[this.#indexProp]]:void 0}slideTo(index,speed=0){if(!(typeof index=="number"&&index>=0))throw new Error("Invalid slide index");return this.#swiper?(this.dataset.loop?this.#swiper.slideToLoop(index,speed):this.#swiper.slideTo(index,speed),this.#swiper.update(),this.#swiper):null}stop(){return this.#swiper?.autoplay?(this.#swiper.autoplay.stop(),this.#swiper):this.#swiper}start(){return this.#swiper?.autoplay?(this.#swiper.autoplay.start(),this.#swiper):this.#swiper}on(type,handler,options){return this.addEventListener(type,handler,options),this}off(type,handler,options){return this.removeEventListener(type,handler,options),this}#init(mobileNextImagePreview=!1){if(this.#swiper)return;const loadAdjacentSlidesImages=swiper=>{const previousSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]-1]:swiper.el?.querySelector(".swiper-slide-prev"),nextSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]+1]:swiper.el?.querySelector(".swiper-slide-next");[...previousSlide?previousSlide.querySelectorAll("img"):[],...nextSlide?nextSlide.querySelectorAll("img"):[]].map((img=>img.setAttribute("loading","eager")))};if(this.#isVirtual&&Array.from(this.querySelectorAll("video-player")).forEac
1h((player=>{player.reset&&player.reset()})),this.#sliderElement.classList.add(MediaCarousel.#MEDIA_CAROUSEL_CLASS),this.#wrapperElement&&this.#wrapperElement.classList.add(MediaCarousel.#MEDIA_CAROUSEL_WRAPPER_CLASS),this.#slideElements.length>0&&this.#slideElements.forEach((el=>el.classList.add(MediaCarousel.#MEDIA_CAROUSEL_SLIDE_CLASS))),this.#paginationElement&&this.#paginationElement.removeAttribute("hidden"),this.#navigationElement&&this.#navigationElement.removeAttribute("hidden"),mobileNextImagePreview){const updateSlideshow=()=>{this.#swiper&&(document.body.clientWidth<BREAKPOINTS.tab?this.#swiper.params.slidesOffsetAfter=this.offsetWidth*.09:this.#swiper.params.slidesOffsetAfter=0)};this.#resizeObserver=new ResizeObserver(debounce(updateSlideshow.bind(this),100)),this.#resizeObserver.observe(this)}this.#swiper=new Swiper(this.#sliderElement,{autoHeight:!!this.dataset.autoHeight,initialSlide:this.currentSlideId,loop:!!this.dataset.loop,modules:[A11y,...this.dataset.autoplay?[Autoplay]:[],...this.dataset.fade?[EffectFade]:[],...this.dataset.navigation?[Navigation]:[],...this.dataset.pagination?[Pagination]:[],...this.#isVirtual?[Virtual]:[]],observer:!0,observeParents:!0,slidesPerGroup:Number(this.dataset.slidesPerGroup||1),...mobileNextImagePreview?{effect:"slide",slidesPerView:Number(this.dataset.slidesPerView||1)+.1,slidesOffsetAfter:this.offsetWidth*.09}:{slidesPerView:Number(this.dataset.slidesPerView||1),...this.dataset.fade?{effect:"fade",fadeEffect:{crossFade:!0}}:{}},spaceBetween:Number(this.dataset.spaceBetween||10),speed:Number(this.dataset.speed||200),...this.dataset.autoplay?{autoplay:{delay:Number(this.dataset.autoplay||3e3)}}:{},...this.dataset.navigation?{navigation:{nextEl:this.querySelector(".js-carousel-next"),prevEl:this.querySelector(".js-carousel-prev")}}:{},...this.dataset.pagination?{pagination:{clickable:!0,el:this.querySelector(".js-carousel-pagination"),...this.dataset.paginationDynamic?{dynamicBullets:!0,dynamicMainBullets:Number(this.dataset.paginationDynamic)}:{}}}:{},...this.#isVirtual?{virtual:{slides:Array.from(this.querySelectorAll(".js-slides [data-slide]")).map((el=>(this.dataset.videoAutoplay&&Array.from(el.querySelectorAll("video-player")).forEach((player=>{player.setAttribute("data-controls","")})),el.innerHTML)))}}:{},on:{afterInit:swiper=>{const previewImage=this.querySelector("media-carousel-preview-image");previewImage&&previewImage.setAttribute("hidden","");const interval=setInterval((()=>{const currentSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]]:swiper.el?.querySelector(".swiper-slide-active");loadAdjacentSlidesImages(swiper),currentSlide&&(this.dispatchEvent(new CustomEvent("on:media-carousel:init",{detail:{currentSlide,activeIndex:swiper[this.#indexProp]}})),this.classList.remove("is-loading"),this.classList.add("is-initialized"),currentSlide.classList.add("is-visible"),clearInterval(interval))}),5)},slideChange:swiper=>{const interval=setInterval((()=>{const currentSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]]:swiper.el?.querySelector(".swiper-slide-active");loadAdjacentSlidesImages(swiper);const dispatch=()=>{this.dispatchEvent(new CustomEvent("on:media-carousel:slide-change",{detail:{currentSlide,activeIndex:swiper[this.#indexProp],previousIndex:swiper.previousIndex,previousSlide:this.#isVirtual?swiper.virtual.cache[swiper.previousIndex]:swiper.el?.querySelector(".swiper-slide-prev")}}))};currentSlide&&(this.currentSlideId=swiper[this.#indexProp],dispatch(),clearInterval(interval))}),5)},slideChangeTransitionStart:swiper=>{const interval=setInterval((()=>{const currentSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]]:swiper.el?.querySelector(".swiper-slide-active"),previousSlide=this.#isVirtual?swiper.virtual.cache[swiper.previousIndex]:swiper.el?.querySelector(".swiper-slide-prev");currentSlide&&(this.dispatchEvent(new CustomEvent("on:media-carousel:before-slide-change",{detail:{currentSlide,previousSlide,activeIndex:swiper[this.#indexProp],previousIndex:swiper.previousIndex}})),currentSlide.classList.add("is-visible"),clearInterval(interval))}),5)},transitionEnd:swiper=>{const currentSlide=this.#isVirtual?swiper.virtual.cache[swiper[this.#indexProp]]:swiper.el?.querySelector(".swiper-slide-active"),previousSlide=this.#isVirtual?swiper.virtual.cache[swiper.previousIndex]:swiper.el?.querySelector(".swiper-slide-prev");previousSlide?.classList.remove("is-visible"),this.dispatchEvent(new CustomEvent("on:media-carousel:slide-transition-end",{detail:{currentSlide,previousSlide,activeIndex:swiper[this.#indexProp],previousIndex:swiper.previousIndex}}))}}})}#destroy(){this.#swiper&&(this.#swiper.destroy(),this.#swiper=null,this.#sliderElement.classList.remove(MediaCarousel.#MEDIA_CAROUSEL_CLASS),this.querySelector("is-visible")?.classList.remove("is-visible"),this.#wrapperElement&&(this.#wrapperElement.classList.remove(MediaCarousel.#MEDIA_CAROUSEL_WRAPPER_CLASS),this.#isVirtual&&(this.#wrapperElement.innerHTML="")),this.#slideElements.length>
10&&this.#slideElements.forEach((el=>el.classList.remove(MediaCarousel.#MEDIA_CAROUSEL_SLIDE_CLASS))),this.#paginationElement&&this.#paginationElement.setAttribute("hidden",""),this.#navigationElement&&this.#navigationElement.setAttribute("hidden",""))}#handleMediaQueryChange(e){e.matches&&!this.#swiper?this.#init(document.body.clientWidth<BREAKPOINTS.tab&&this.dataset.mobileNextImagePreview):this.#swiper&&this.#destroy()}#handleMobileNextImagePreviewMediaQueryChange(e){this.#swiper&&this.#destroy(),this.#init(e.matches)}}customElements.define("media-carousel",MediaCarousel); 2//# sourceMappingURL=/cdn/shop/t/29/assets/media-carousel.js.map?v=153289103370107322111761600916
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.