1import{Component}from"@theme/component";import{getFocusableElements,throttle,isMobileBreakpoint,mediaQueryMobile}from"@theme/utilities";import{Swiper,Navigation,Pagination,Mousewheel,Autoplay,EffectFade}from"@theme/swiper";import{setupCounter}from"@theme/carousel-features/counter";import{setupNavigationPosition,performNavigationPositionCalculation}from"@theme/carousel-features/navigation-position";import{setupThumbnails,destroyThumbnailSwiper}from"@theme/carousel-features/thumbnails";import{setupProgressbarAutoplay}from"@theme/carousel-features/progressbar-autoplay";const MOBILE_DESKTOP_BREAKPOINT=768;export class CarouselComponent extends Component{swiperInstance=null;counterFormat="{current} / {total}";lastResolvedOptions=null;requiredRefs=["container"];paginationItems=null;progressBars=null;combinedProgressBar=null;combinedText=null;slideData=null;shouldUseCombined=!1;#currentPaginationMode=null;get currentPaginationMode(){return this.#currentPaginationMode}set currentPaginationMode(value){this.#currentPaginationMode=value}autoplayDelay=null;resizeCleanup=null;#isRecreating=!1;thumbnailSwiper=null;thumbnailItems=null;thumbnailsEnabled=!1;navigationPositionTimeout=null;navigationPositionObserver=null;#accessibilityObserver=null;#accessibilitySetup=!1;progressAnimationRafId=null;#isDestroyed=!1;#customPaginationModule=null;#currentBreakpoint=null;#swiperEventListeners={breakpoint:null,slideChange:null,slidesUpdated:null,slideChangeTransitionEnd:null};#autoHeightUpdateTimeout=null;#lastAutoHeightActiveIndex=null;#autoHeightUpdateRafId=null;#isUpdatingAutoHeight=!1;#isHandlingResize=!1;#isHandlingBreakpointAutoHeight=!1;#shopifyAbortController;static get observedAttributes(){return["data-options"]}connectedCallback(){super.connectedCallback(),this.#isDestroyed=!1,this.#accessibilitySetup=!1,this.swiperInstance&&this.#destroySwiper(),this.#parseOptions()["custom-pagination"]&&this.#loadCustomPaginationFeature().catch(()=>{}),requestAnimationFrame(()=>{this.#initSwiper()})}updatedCallback(){super.updatedCallback(),requestAnimationFrame(()=>{this.refs?.container&&(this.swiperInstance&&!this.swiperInstance.destroyed&&this.#destroySwiper(!0,!1),this.#initSwiper())})}disconnectedCallback(){this.#isDestroyed=!0,this.thumbnailsEnabled=!1,this.#cleanupSwiperEventListeners(),this.#autoHeightUpdateTimeout&&(clearTimeout(this.#autoHeightUpdateTimeout),this.#autoHeightUpdateTimeout=null),this.#autoHeightUpdateRafId&&(cancelAnimationFrame(this.#autoHeightUpdateRafId),this.#autoHeightUpdateRafId=null),this.#lastAutoHeightActiveIndex=null,this.#destroySwiper(),this.resizeCleanup&&(this.resizeCleanup(),this.resizeCleanup=null),this.navigationPositionTimeout&&(clearTimeout(this.navigationPositionTimeout),this.navigationPositionTimeout=null),this.#accessibilityObserver&&(this.#accessibilityObserver.disconnect(),this.#accessibilityObserver=null),this.#accessibilitySetup=!1,this.navigationPositionObserver&&(this.navigationPositionObserver.disconnect(),this.navigationPositionObserver=null),this.progressAnimationRafId!==null&&(cancelAnimationFrame(this.progressAnimationRafId),this.progressAnimationRafId=null)}attributeChangedCallback(name,_oldValue,_newValue){name==="data-options"&&(this.#destroySwiper(),requestAnimationFrame(()=>{this.#initSwiper()}))}#initSwiper(){if(this.swiperInstance||!this.refs.container)return;this.#currentBreakpoint=isMobileBreakpoint()?"mobile":"desktop";const rawOptions=this.#parseOptions(),optionsWithElements=this.#resolveElementSelectors(rawOptions),finalOptions=this.#resolveModules(optionsWithElements);if(this.finalOptions=finalOptions,this.#setupResizeHandler(finalOptions),this.#shouldDestroyForViewport(finalOptions)){this.#destroySwiper(),this.#setControlsHidden(!0,finalOptions);return}this.#setControlsHidden(!1,finalOptions),this.#createSwiper(finalOptions).catch(error=>{this.#isDestroyed||console.error("CarouselComponent: failed to create Swiper",error)})}get slideClass(){return this.finalOptions?.slideClass||"swiper-slide"}static#SWIPER_SLIDE_PROPERTIES=new Set(["width","height","margin","margin-left","margin-right","margin-top","margin-bottom","margin-inline-start","margin-inline-end","margin-block-start","margin-block-end","transform","-webkit-transform","-ms-transform"]);#extractTemplateStyles(styleAttr){return!styleAttr||typeof styleAttr!="string"?"":styleAttr.split(";").map(decl=>decl.trim()).filter(decl=>{const colonIndex=decl.indexOf(":");if(colonIndex<=0)return!1;const prop=decl.slice(0,colonIndex).trim().toLowerCase();return!CarouselComponent.#SWIPER_SLIDE_PROPERTIES.has(prop)}).join("; ").trim()}#destroySwiper(keepOptions=!1,cleanStyles=!0,preserveTemplateStyles=!1){if(this.#cleanupSwiperEventListeners(),this.swiperInstance){const slideElements=cleanStyles&&preserveTemplateStyles&&this.swiperInstance.slides?.length?Array.from(this.swiperInstance.slides):[],savedSlideStyles=slideElements.map(slide=>this.#extractTemplateStyles(slide.getAttribute("style"))),wrapper=this.swiperInstance.wrapperEl;wrapper&&(wrapper.style.height="",wrapper.closest(".swiper")?.classList.remove("swiper-autoheight"));try{this.swiperInstance.destroy(!0,cleanStyles)}catch{}
1slideElements.forEach((slide,i)=>{savedSlideStyles[i]&&slide.setAttribute("style",savedSlideStyles[i])}),this.swiperInstance=null}destroyThumbnailSwiper(this),this.lastResolvedOptions=null,keepOptions||(this.finalOptions=null),this.#shopifyAbortController?.abort(),this.#shopifyAbortController=void 0}async#loadCustomPaginationFeature(){if(this.#customPaginationModule)return this.#customPaginationModule;try{return this.#customPaginationModule=import("@theme/carousel-features/custom-pagination"),this.#customPaginationModule}catch(error){return console.error("CarouselComponent: failed to load custom-pagination feature",error),this.#customPaginationModule=Promise.reject(error),this.#customPaginationModule}}async#callCustomPaginationFunction(functionName,...args){if(!this.#isDestroyed)try{const paginationModule=await this.#loadCustomPaginationFeature();if(this.#isDestroyed)return;const fn=await paginationModule[functionName];typeof fn=="function"&&fn(this,...args)}catch{}}async#createSwiper(finalOptions){const container=this.refs.container;if(!container)return;if(container.querySelectorAll(`.${this.slideClass}`).length===0){this.#setControlsHidden(!0,finalOptions);return}const swiperOptions={...finalOptions,preloadImages:!1,lazy:!1,watchSlidesProgress:finalOptions.watchSlidesProgress??!1,watchSlidesVisibility:finalOptions.watchSlidesVisibility??!1};try{if(this.swiperInstance=new Swiper(container,swiperOptions),this.#isDestroyed){this.swiperInstance.destroy();return}if(this.lastResolvedOptions=swiperOptions,setupCounter(this,swiperOptions),swiperOptions["custom-pagination"])try{const paginationModule=await this.#loadCustomPaginationFeature();if(this.#isDestroyed)return;const{setupCustomPagination}=await paginationModule;setupCustomPagination(this,swiperOptions)}catch(error){console.error("CarouselComponent: failed to setup custom pagination",error)}if(swiperOptions.thumbnails?.enabled&&(this.thumbnailsEnabled=!0,setupThumbnails(this,swiperOptions.thumbnails)),setupNavigationPosition(this,swiperOptions),this.resizeCleanup&&(this.resizeCleanup(),this.resizeCleanup=null),this.#setupResizeHandler(swiperOptions),this.#checkSlidesPerView(swiperOptions),requestAnimationFrame(()=>{requestAnimationFrame(()=>{!this.#isDestroyed&&this.swiperInstance&&this.#checkSlidesPerView(swiperOptions)})}),this.#setupSwiperEventListeners(swiperOptions),swiperOptions.pagination?.type==="progressbar"&&swiperOptions.autoplay&&setupProgressbarAutoplay(this,swiperOptions),swiperOptions["custom-pagination"]){const initialIndex=this.lastResolvedOptions?.loop?this.swiperInstance.realIndex??0:this.swiperInstance.activeIndex??0;this.#callCustomPaginationFunction("updateActivePagination",initialIndex)}this.#registerDesignModeEvents(),this.#setupAccessibilityLazy(),this.dispatchEvent(new CustomEvent("carousel:ready",{bubbles:!1,detail:{swiperInstance:this.swiperInstance}}))}catch(error){console.error("CarouselComponent: failed to initialize Swiper",error)}}#setupAccessibilityLazy(){if(this.#accessibilitySetup)return;if(!("IntersectionObserver"in window)){this.#setupAccessibility();return}const{container}=this.refs,rect=container.getBoundingClientRect();if(rect.top<window.innerHeight&&rect.bottom>0&&rect.left<window.innerWidth&&rect.right>0){this.#setupAccessibility();return}this.#accessibilityObserver=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.isIntersecting&&!this.#accessibilitySetup&&(this.#setupAccessibility(),this.#accessibilityObserver&&(this.#accessibilityObserver.disconnect(),this.#accessibilityObserver=null))})},{rootMargin:"50px",threshold:.01}),this.#accessibilityObserver.observe(container)}#setupAccessibility(){if(this.#accessibilitySetup)return;this.#accessibilitySetup=!0;const{container}=this.refs,focusableEls=getFocusableElements(container);focusableEls&&focusableEls.forEach(el=>{el.addEventListener("focusin",()=>{if(!el.matches(":focus-visible"))return;const slide=el.closest(`.${this.slideClass}`);if(!slide||!this.swiperInstance)return;const index=this.swiperInstance.slides.indexOf(slide);index!==-1&&index!==this.swiperInstance.activeIndex&&this.goToSlide(index,0,!1)})})}#parseOptions(){const attr=this.getAttribute("data-options");
1if(attr)try{return JSON.parse(attr)}catch{console.error("CarouselComponent: invalid JSON in data-options")}const script=this.querySelector('script[ref="config"][type="application/json"]');if(script&&script.textContent)try{return JSON.parse(script.textContent)}catch{console.error('CarouselComponent: invalid JSON in <script ref="config"> content')}return{}}#resolveModules(options){const MODULE_MAP={Navigation,Pagination,Mousewheel,Autoplay,EffectFade};let moduleNames=Array.isArray(options.modules)?options.modules:[];moduleNames.length===0&&(options.navigation&&moduleNames.push("Navigation"),options.pagination&&moduleNames.push("Pagination"),options.mousewheel&&moduleNames.push("Mousewheel"),options.autoplay&&moduleNames.push("Autoplay"),(options.effect==="fade"||options.fadeEffect)&&moduleNames.push("EffectFade"));const modules=[];for(const name of moduleNames){const mod=MODULE_MAP[name];mod&&!modules.includes(mod)&&modules.push(mod)}return{...options,modules}}#resolveElementSelectors(options){const resolved={...options},resolve=selectorOrEl=>{if(typeof selectorOrEl!="string")return selectorOrEl;try{return this.querySelector(selectorOrEl)}catch{return selectorOrEl}},byRef=name=>{const targetBreakpoint=isMobileBreakpoint()?"mobile":"desktop",targetContainer=this.querySelector(`[data-controls-breakpoint="${targetBreakpoint}"]`);if(targetContainer){const computedStyle=window.getComputedStyle(targetContainer);if(computedStyle.display!=="none"&&computedStyle.visibility!=="hidden"){const el=targetContainer.querySelector(`[data-ref="${name}"]`);if(el)return el.setAttribute("ref",name),el}}const fallbackEl=this.querySelector(`[ref="${name}"]`);if(fallbackEl){const parentContainer=fallbackEl.closest("[data-controls-breakpoint]");if(parentContainer){const computedStyle=window.getComputedStyle(parentContainer);if(computedStyle.display==="none"||computedStyle.visibility==="hidden")return null}}return fallbackEl},paginationRef=byRef("pagination");if(resolved.pagination===!0&&(resolved.pagination={}),!resolved.pagination&&paginationRef)resolved.pagination={el:paginationRef};else if(resolved.pagination&&typeof resolved.pagination=="object"){const el=resolved.pagination.el??paginationRef;resolved.pagination={...resolved.pagination,el:resolve(el)}}if(resolved.navigation===!0&&(resolved.navigation={}),resolved.navigation&&typeof resolved.navigation=="object"){const next=resolved.navigation.nextEl??byRef("next"),prev=resolved.navigation.prevEl??byRef("prev");resolved.navigation={...resolved.navigation,nextEl:resolve(next),prevEl:resolve(prev)}}else{const next=byRef("next"),prev=byRef("prev");(next||prev)&&(resolved.navigation={nextEl:next??void 0,prevEl:prev??void 0})}if(resolved.scrollbar&&typeof resolved.scrollbar=="object"){const el=resolved.scrollbar.el??byRef("scrollbar");resolved.scrollbar={...resolved.scrollbar,el:resolve(el)}}const counterRef=byRef("counter"),hasCounterOption=Object.prototype.hasOwnProperty.call(options,"counter");if(resolved.counter===!0&&(resolved.counter={}),typeof resolved.counter=="string"&&(resolved.counter={format:resolved.counter}),!hasCounterOption&&counterRef)resolved.counter={el:counterRef,format:this.counterFormat};else if(resolved.counter&&typeof resolved.counter=="object"){const el=resolved.counter.el??counterRef;resolved.counter={...resolved.counter,el:resolve(el),format:typeof resolved.counter.format=="string"?resolved.counter.format:this.counterFormat}}return resolved.navigationPosition&&typeof resolved.navigationPosition=="object"&&(resolved.navigationPosition={enabled:resolved.navigationPosition.enabled!==!1,selector:resolved.navigationPosition.selector||"img",offset:Number(resolved.navigationPosition.offset)||0,fallback:resolved.navigationPosition.fallback||"center",...resolved.navigationPosition}),resolved}#shouldDestroyForViewport(options){const w=window.innerWidth||0,below=Number(options.destroyBelow),above=Number(options.destroyAbove),isMobile=isMobileBreakpoint(),useMediaQuery=val=>val===MOBILE_DESKTOP_BREAKPOINT,shouldDestroyBelow=!Number.isNaN(below)&&(useMediaQuery(below)?isMobile:w<below),shouldDestroyAbove=!Number.isNaN(above)&&(useMediaQuery(above)?!isMobile:w>=above);return shouldDestroyBelow||shouldDestroyAbove}#setControlsHidden(hidden,options){const toggle=el=>{el instanceof HTMLElement&&el.classList.toggle("hidden-control",hidden)};if(!this.querySelector("[data-controls-breakpoint]")){const controlsEl=this.querySelector('[ref="controls"]');controlsEl instanceof HTMLElement&&controlsEl.classList.toggle("hidden",hidden);const controlsWrapper=this.querySelector(".carousel__controls");controlsWrapper instanceof HTMLElement&&controlsWrapper.classList.toggle("hidden-control",hidden)}const pagEl=options?.pagination?.el||this.querySelector('[ref="pagination"]');options&&Object.prototype.hasOwnProperty.call(options,"pagination")&&toggle(pagEl);const nextEl=options?.navigation?.nextEl||this.querySelector('[ref="next"]'),prevEl=options?.navigation?.prevEl||this.querySelector('[ref="prev"]');options&&Object.prototype.hasOwnProperty.call(options,"navigation")&&(toggle(nextEl),toggle(prevEl));const counterEl=this.querySelector('[ref="counter"]');if(options&&Object.prototype.hasOwnProperty.call(options,"counter")){const shouldHide=hidden||!options.counter;counterEl instanceof HTMLElement&&counterEl.classList.toggle("hidden",shouldHide)}const thumbnailContainer=this.querySelector('[ref="thumbnails"]');thumbnailContainer&&options?.thumbnails?.enabled&&thumbnailContainer.classList.toggle("hidden",hidden)}#getCurrentSlidesPerView(options){const windowWidth=window.innerWidth;if(options.breakpoints&&typeof options.breakpoints=="object"){const matchingBreakpoint=this.#findMatchingBreakpoint(Object.keys(options.breakpoints),windowWidth);if(matchingBreakpoint!==null){const perView=options.breakpoints[matchingBreakpoint].slidesPerView;if(typeof perView=="number")return perView;if(perView==="auto")return this.swiperInstance?.params?.slidesPerView||1}}const basePerView=options.slidesPerView;return typeof basePerView=="number"?basePerView:basePerView==="auto"&&this.swiperInstance?.params?.slidesPerView||1}#findMatchingBreakpoint(breakpointKeys,windowWidth){const availableBreakpoints=breakpointKeys.filter(key=>!isNaN(Number(key))).map(key=>Number(key)).sort((a,b)=>a-b);let matchingBreakpoint=null;for(const bp of availableBreakpoints)if(windowWidth>=bp)matchingBreakpoint=bp;else break;return matchingBreakpoint}#checkSlidesPerView(options){if(!this.swiperInstance)return;const slides=this.querySelectorAll(`.${this.slideClass}`);
1if(slides.length===0)return;const controlsEl=this.querySelector('[ref="controls"]');if(!controlsEl)return;const swiper=this.swiperInstance;let hideControls=slides.length<=1;if(!hideControls&&typeof swiper.isLocked=="boolean"&&(hideControls=swiper.isLocked),!hideControls){let minSlidesNeeded=swiper.params?.slidesPerView;typeof minSlidesNeeded!="number"&&(minSlidesNeeded=this.#getCurrentSlidesPerView(options)),minSlidesNeeded=typeof minSlidesNeeded=="number"?minSlidesNeeded:parseFloat(minSlidesNeeded)||1,hideControls=slides.length<=minSlidesNeeded}controlsEl.classList.toggle("hidden-control",hideControls)}#setupSwiperEventListeners(options){this.#cleanupSwiperEventListeners(),this.swiperInstance&&(this.#swiperEventListeners.breakpoint=()=>{this.#isRecreating||this.#isHandlingResize||(this.#checkSlidesPerView(options),this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.wrapperEl&&!this.swiperInstance.params?.autoHeight?(this.#autoHeightUpdateTimeout&&(clearTimeout(this.#autoHeightUpdateTimeout),this.#autoHeightUpdateTimeout=null),this.#autoHeightUpdateRafId&&(cancelAnimationFrame(this.#autoHeightUpdateRafId),this.#autoHeightUpdateRafId=null),this.#isUpdatingAutoHeight=!1,this.#isHandlingBreakpointAutoHeight=!1,requestAnimationFrame(()=>{this.swiperInstance&&!this.#isDestroyed&&!this.swiperInstance.params?.autoHeight&&(this.swiperInstance.wrapperEl.style.height="",this.swiperInstance.el.classList.remove("swiper-autoheight"))})):this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.params?.autoHeight&&!this.#isUpdatingAutoHeight&&!this.#isHandlingBreakpointAutoHeight&&(this.#isHandlingBreakpointAutoHeight=!0,this.#lastAutoHeightActiveIndex=null,requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.params?.autoHeight&&!this.#isUpdatingAutoHeight&&this.#debouncedUpdateAutoHeight(),this.#isHandlingBreakpointAutoHeight=!1})})))},this.swiperInstance.on("breakpoint",this.#swiperEventListeners.breakpoint),this.#swiperEventListeners.slidesUpdated=()=>{this.#isRecreating||this.#isHandlingResize||(this.#checkSlidesPerView(options),this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.params?.autoHeight&&!this.swiperInstance.animating&&!this.#isUpdatingAutoHeight&&!this.#isHandlingBreakpointAutoHeight?(this.#lastAutoHeightActiveIndex=null,this.#debouncedUpdateAutoHeight()):this.swiperInstance&&!this.#isDestroyed&&!this.swiperInstance.params?.autoHeight&&this.swiperInstance.wrapperEl&&requestAnimationFrame(()=>{this.swiperInstance&&!this.#isDestroyed&&!this.swiperInstance.params?.autoHeight&&(this.swiperInstance.wrapperEl.style.height="",this.swiperInstance.el.classList.remove("swiper-autoheight"))}))},this.swiperInstance.on("slidesUpdated",this.#swiperEventListeners.slidesUpdated),this.#swiperEventListeners.slideChangeTransitionEnd=()=>
1{if(this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.params?.autoHeight&&!this.#isUpdatingAutoHeight){const currentActiveIndex=this.swiperInstance.activeIndex;this.#lastAutoHeightActiveIndex!==currentActiveIndex&&(this.#lastAutoHeightActiveIndex=currentActiveIndex,this.#debouncedUpdateAutoHeight())}},this.swiperInstance.on("slideChangeTransitionEnd",this.#swiperEventListeners.slideChangeTransitionEnd),options["custom-pagination"]&&(this.#swiperEventListeners.slideChange=()=>{const currentIndex=this.lastResolvedOptions?.loop?this.swiperInstance.realIndex??0:this.swiperInstance.activeIndex??0;this.#callCustomPaginationFunction("updateActivePagination",currentIndex)},this.swiperInstance.on("slideChange",this.#swiperEventListeners.slideChange)))}#cleanupSwiperEventListeners(){this.swiperInstance&&Object.entries(this.#swiperEventListeners).forEach(([event,handler])=>{handler&&(this.swiperInstance.off(event,handler),this.#swiperEventListeners[event]=null)})}#debouncedUpdateAutoHeight(){this.#isUpdatingAutoHeight||(this.#autoHeightUpdateTimeout&&(clearTimeout(this.#autoHeightUpdateTimeout),this.#autoHeightUpdateTimeout=null),this.#autoHeightUpdateRafId&&(cancelAnimationFrame(this.#autoHeightUpdateRafId),this.#autoHeightUpdateRafId=null),this.#autoHeightUpdateTimeout=setTimeout(()=>{this.#autoHeightUpdateRafId=requestAnimationFrame(()=>{if(this.swiperInstance&&!this.#isDestroyed&&this.swiperInstance.params?.autoHeight){this.#isUpdatingAutoHeight=!0;try{this.swiperInstance.updateAutoHeight()}finally{this.#isUpdatingAutoHeight=!1}}this.#autoHeightUpdateTimeout=null,this.#autoHeightUpdateRafId=null})},16))}#setupResizeHandler(options){this.resizeCleanup&&(this.resizeCleanup(),this.resizeCleanup=null),this.#currentBreakpoint=isMobileBreakpoint()?"mobile":"desktop";const runViewportCheck=async()=>{if(!this.#isDestroyed&&!this.#isHandlingResize){this.#isHandlingResize=!0;try{const freshRawOptions=this.#parseOptions(),freshOptionsWithElements=this.#resolveElementSelectors(freshRawOptions),freshFinalOptions=this.#resolveModules(freshOptionsWithElements),shouldDestroy=this.#shouldDestroyForViewport(freshFinalOptions),isActive=!!this.swiperInstance;if(shouldDestroy&&isActive){this.#destroySwiper(!1,!0,!0),this.#setControlsHidden(!0,freshFinalOptions);return}if(!shouldDestroy&&!isActive){if(this.finalOptions=freshFinalOptions,this.#setControlsHidden(!1,freshFinalOptions),!this.#isRecreating){this.#isRecreating=!0;try{await this.#createSwiper(freshFinalOptions).catch(error=>{this.#isDestroyed||console.error("CarouselComponent: failed to recreate Swiper",error)})}finally{this.#isRecreating=!1}}return}const newBreakpoint=isMobileBreakpoint()?"mobile":"desktop";if(this.#currentBreakpoint!==newBreakpoint&&(this.#currentBreakpoint=newBreakpoint,this.querySelector("[data-controls-breakpoint]")&&this.swiperInstance&&!this.#isRecreating)){this.#isRecreating=!0;try{if(await new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve))),this.#destroySwiper(!0,!0,!0),await new Promise(resolve=>requestAnimationFrame(()=>requestAnimationFrame(resolve))),!this.finalOptions){this.#isRecreating=!1;return}const optionsWithElements=this.#resolveElementSelectors(this.#parseOptions()),finalOptions=this.#resolveModules(optionsWithElements);this.finalOptions=finalOptions,await this.#createSwiper(finalOptions)}finally{this.#isRecreating=!1}}this.swiperInstance&&!this.#isRecreating&&(this.#checkSlidesPerView(freshFinalOptions),freshFinalOptions?.navigationPosition?.enabled&&performNavigationPositionCalculation(this,freshFinalOptions),this.slideData&&this.#callCustomPaginationFunction("updateCombinedPaginationState"))}finally{this.#isHandlingResize=!1}}},handleResize=throttle(runViewportCheck,150);window.addEventListener("resize",handleResize);const hasMobileDesktopBreakpoint=Number(options?.destroyAbove)===MOBILE_DESKTOP_BREAKPOINT||Number(options?.destroyBelow)===MOBILE_DESKTOP_BREAKPOINT,handleMediaQueryChange=()=>{this.#isDestroyed||runViewportCheck()};hasMobileDesktopBreakpoint&&mediaQueryMobile.addEventListener("change",handleMediaQueryChange),this.resizeCleanup=()=>{window.removeEventListener("resize",handleResize),handleResize.cancel?.(),hasMobileDesktopBreakpoint&&mediaQueryMobile.removeEventListener("change",handleMediaQueryChange)}}get sectionId(){return this.getAttribute("data-section-id")}#registerDesignModeEvents(){if(!this.finalOptions?.shopifyBlocks||!Shopify.designMode||!this.sectionId)return;this.#shopifyAbortController?.abort(),this.#shopifyAbortController=new AbortController;const{signal}=this.#shopifyAbortController,isLoop=["true",!0].includes(this.swiperInstance.params?.loop);document.addEventListener("shopify:block:select",event=>{if(event.detail.sectionId!=this.sectionId)return;const slideEl=event.target.closest(`.${this.slideClass}`);
1if(!slideEl)return;const index=isLoop?Number(slideEl.dataset.swiperSlideIndex):Array.from(slideEl.parentElement?.children??[]).indexOf(slideEl);this.goToSlide(index)},{signal})}goToSlide(index,speed,runCallbacks=!0){!this.swiperInstance||this.swiperInstance.destroyed||(this.swiperInstance.autoplay?.running&&this.swiperInstance.autoplay.pause(),this.lastResolvedOptions?.loop?this.swiperInstance.slideToLoop(index,speed,runCallbacks):this.swiperInstance.slideTo(index,speed,runCallbacks))}}customElements.get("carousel-slider")||customElements.define("carousel-slider",CarouselComponent);export{CarouselComponent as default}; 2//# sourceMappingURL=/cdn/shop/t/19/assets/carousel.js.map?v=93490625242619139691778097488
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.