1class SwiffySlider{constructor(sliderElement,configs){this.sliderElement=sliderElement,this.configs=configs,this.initSlider(),this.initEvents(),sliderElement.dataset.swiffySliderInitialized="true"}initSlider(){if(this.sliderElement.querySelector(":scope >.slider-container")?this.container=this.sliderElement.querySelector(":scope >.slider-container"):this.sliderElement.querySelector(":scope >.search-page\\:slider-container")&&(this.container=this.sliderElement.querySelector(":scope >.search-page\\:slider-container")),this.slides=this.container?this.container.querySelectorAll(":scope >.slide-item"):[],this.sliderElement.classList.contains("zoom-enlarge__wrapper")&&(this.slides=this.container?this.container.querySelectorAll(":scope >.slide-item.is-show-media-zoom-item"):[],this.listZoomThumbnailItems=this.sliderElement?.nextElementSibling?this.sliderElement.nextElementSibling.querySelectorAll(".zoom-enlarge__thumbnail-item.is-show-media-zoom-item"):[],this.container.addEventListener("scroll",()=>{this.isDragging&&this.handleScroll()},{passive:!0})),this.sliderElement.classList.contains("media-gallery__media-wrapper")&&(this.slides=this.container?this.container.querySelectorAll(":scope >.slide-item.is-show-media-item"):[]),this.sliderNavs=this.sliderElement.querySelectorAll(":scope >.slider-nav"),this.sliderNavs.length==0&&(this.sliderNavs=this.sliderElement.querySelectorAll(":scope > .slider-nav-wrapper > .slider-nav")),this.sliderIndicatorsWrapper=this.sliderElement.querySelector(":scope >.slider-indicators"),this.configs.customElement){if(this.configs.customElement.sliderNavs){const newSliderNavs=document.querySelectorAll(`${this.configs.customElement.sliderNavs}`);newSliderNavs&&newSliderNavs.length&&(this.sliderNavs=newSliderNavs)}if(this.configs.customElement.indicatorsWrapper){const newIndicatorsWrapper=document.querySelector(`${this.configs.customElement.indicatorsWrapper}`);newIndicatorsWrapper&&(this.sliderIndicatorsWrapper=newIndicatorsWrapper)}}this.sliderIndicators=this.sliderIndicatorsWrapper?this.sliderIndicatorsWrapper.querySelectorAll(".slider-indicator"):[],this.sliderElement.classList.contains("media-gallery__media-wrapper")&&(this.sliderIndicators=this.sliderIndicatorsWrapper?this.sliderIndicatorsWrapper.querySelectorAll(".slider-indicator.is-show-indicator"):[]),this.scrollbar=this.sliderElement.querySelector(".swiffy-slide-progress-bar"),this.isFullPage=this.sliderElement.classList.contains("slider-nav-page"),this.isNoDelay=this.sliderElement.classList.contains("slider-nav-nodelay"),this.isVerticalMode=this.sliderElement.classList.contains("slide-mode-vertical"),this.effect=this.configs.effect?this.configs.effect:"slide",this.ratio=this.configs.ratio?parseFloat(this.configs.ratio):1,this.speed=this.configs.speed?this.configs.speed:2500,this.isResize=this.configs.isResize?this.configs.isResize:!1,this.autoPlay=this.configs.autoPlay?this.configs.autoPlay:!1,this.autoPause=this.configs.autoPause?this.configs.autoPause:!1,this.isLoop=this.configs.isLoop===!1?this.configs.isLoop:!0,this.threshold=this.configs.threshold?this.configs.threshold:50,this.breakPoints=this.configs.breakPoints,this.currentBreakPointConfig=null,this.mediaQuery=this.configs.mediaQuery,this.firstActiveSlide=this.configs.firstActiveSlide,this.startX=0,this.endX=0,this.isDragging=!1,this.scrollLeft=0;const defaultStyle=window.getComputedStyle(this.sliderElement);if(this.defaultSlidesPerView=defaultStyle.getPropertyValue("--swiffy-slider-item-count"),this.defaultGap=defaultStyle.getPropertyValue("--swiffy-slider-item-gap"),this.slidesPerView=Number(defaultStyle.getPropertyValue("--swiffy-slider-item-count")),this.gap=defaultStyle.getPropertyValue("--swiffy-slider-item-gap"),this.activeSlideIndex=0,(this.effect==="fade"||this.effect==="push")&&this.slides.length>0){let activeIndex=Array.from(this.slides).findIndex(slide=>slide.classList.contains("is-active"));activeIndex<0?this.slides[0].classList.add("is-active"):this.activeSlideIndex=activeIndex}this.isLoop||(this.updateSliderNavStatus(0),this.sliderElement.querySelector("#MainCartUpsell")&&document.addEventListener(`${PRODUCT_EVENT.productRecommendationsChange}`,()=>{this.updateSliderNavStatus(0)})),this.firstActiveSlide&&this.firstActiveSlide!==this.activeSlideIndex&&this.slideTo(this.firstActiveSlide)}initEvents(){try{if(this.debouncedResize=debounce(this.applyBreakpointOptions.bind(this),300),window.addEventListener("resize",this.debouncedResize),this.applyBreakpointOptions(),this.sliderNavs.forEac
1h(navElement=>{const next=navElement.classList.contains("slider-nav-next");navElement.addEventListener("click",event=>{navElement.classList.contains("is-visible")&&this.slide(next)},{passive:!0})}),this.addEventToIndicators(),this.autoPlay&&this.handleAutoPlay(),["slider-nav-autohide","slider-nav-animation"].some(className=>this.sliderElement.classList.contains(className))){const threshold=this.sliderElement.getAttribute("data-slider-nav-animation-threshold")?this.sliderElement.getAttribute("data-slider-nav-animation-threshold"):.3;this.setVisibleSlides(threshold)}if(this.sliderElement.addEventListener(SWIFFY_SLIDER_EVENT.slide,()=>{this.handleIndicators()}),(this.scrollbar||this.sliderIndicators.length>0)&&this.container.addEventListener("scroll",()=>{this.handleScroll()},{passive:!0}),this.scrollbar){const indicator=this.scrollbar.closest(".swiffy-slide-indicator"),arrow_prev=indicator.querySelector(".indicator-arrow-prev"),arrow_next=indicator.querySelector(".indicator-arrow-next");arrow_prev&&arrow_next&&(arrow_prev.addEventListener("click",()=>{arrow_prev.classList.contains("active")&&(this.isDragging=!1,this.slide(!1))}),arrow_next.addEventListener("click",()=>{arrow_next.classList.contains("active")&&(this.isDragging=!1,this.slide(!0))}),this.isLoop||this.updateIndicatorArrow())}if(this.container.addEventListener("dragstart",e=>{e.preventDefault(),e.stopPropagation()}),this.container.addEventListener("pointerdown",this.handlePointerDown.bind(this),{passive:!0}),this.container.addEventListener("pointerup",this.handlePointerUp.bind(this),{passive:!0}),this.container.addEventListener("mouseleave",this.handleMouseLeave.bind(this),{passive:!0}),this.effect==="fade"||this.effect==="push"){let touchStartX=0;this.container.addEventListener("touchstart",event=>{this.isTouching=!0,event.stopPropagation(),touchStartX=event.touches[0].clientX},{passive:!0}),this.container.addEventListener("touchend",event=>{if(this.isTouching=!1,event.stopPropagation(),this.slides[this.activeSlideIndex].dataset.mediaType==="model")return;if(this.slides[this.activeSlideIndex].dataset.mediaType==="video"){const videoEle=this.slides[this.activeSlideIndex].querySelector("video");if(videoEle&&videoEle.classList.contains("is-playing"))return}const touchEndX=event.changedTouches[0].clientX,threshold=50;(touchStartX-touchEndX)*(window.Maximize.rtl?-1:1)>threshold?this.activeSlideIndex<this.slides.length-1?(this.activeSlideIndex=this.activeSlideIndex+1,this.slideTo(this.activeSlideIndex)):this.activeSlideIndex===this.slides.length-1&&this.isLoop&&(this.activeSlideIndex=0,this.slideTo(this.activeSlideIndex)):(touchEndX-touchStartX)*(window.Maximize.rtl?-1:1)>threshold&&(this.activeSlideIndex>0?(this.activeSlideIndex=this.activeSlideIndex-1,this.slideTo(this.activeSlideIndex)):this.activeSlideIndex===0&&this.isLoop&&(this.activeSlideIndex=this.slides.length-1,this.slideTo(this.activeSlideIndex)))})}if(this.effect==="slide"&&this.isLoop){let startX=0,oldActiveIndex=0,isTouch=!1;this.container.addEventListener("touchstart",event=>{this.slides[this.activeSlideIndex].dataset.mediaType!=="model"&&(isTouch=!0,startX=event.touches[0].clientX,oldActiveIndex=this.activeSlideIndex)},{passive:!0}),this.container.addEventListener("touchend",event=>{if(this.slides[this.activeSlideIndex].dataset.mediaType==="model")return;const currentX=event.changedTouches[0].clientX;let deltaX=startX-currentX,atStart=this.container.scrollLeft<=0,atEnd=this.container.scrollLeft>=this.container.scrollWidth-this.container.clientWidth-1;window.Maximize.rtl&&(deltaX*=-1,atStart=this.container.scrollLeft>=0,atEnd=Math.abs(this.container.scrollLeft)>=this.container.scrollWidth-this.container.clientWidth-1),atEnd&&deltaX>50?this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0?this.slide(!0):this.container.scrollTo({left:0,behavior:"smooth"}):atStart&&deltaX<-50&&(this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0?this.slide(!1):this.container.scrollTo({left:this.container.scrollWidth*(window.Maximize.rtl?-1:1),behavior:"smooth"}))},{passive:!0});const scrollHandler=()=>{this.sliderIndicators&&isTouch&&(isTouch=!1,this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0||this.dispatchEventSlide(oldActiveIndex))},debouncedScrollHandler=debounce(scrollHandler,20);this.container.addEventListener("scroll",debouncedScrollHandler,{passive:!0})}}
1catch(e){console.error("SwiffySlider: Error initializing Swiffy Slider events",e)}}handlePointerDown(event){this.startX=event.clientX,this.isDragging=!0}handlePointerUp(event){this.isTouching||(event.stopPropagation(),!(!this.isDragging||this.slides[this.activeSlideIndex]?.dataset?.mediaType=="model")&&(this.endX=event.clientX,this.isDragging=!1,Math.abs(this.endX-this.startX)>this.threshold&&(window.Maximize.rtl?(this.endX>this.startX&&this.slide(!0),this.endX<this.startX&&this.slide(!1)):(this.endX<this.startX&&this.slide(!0),this.endX>this.startX&&this.slide(!1)))))}handleMouseLeave(event){this.isDragging=!1}handleScroll(){this.updateScrollbarPosition()}updateIndicatorArrow(activeSlideIndex=this.activeSlideIndex){if(!this.scrollbar)return;const indicator=this.scrollbar.closest(".swiffy-slide-indicator");if(!indicator)return;const arrow_prev=indicator.querySelector(".indicator-arrow-prev"),arrow_next=indicator.querySelector(".indicator-arrow-next");if(!arrow_prev||!arrow_next)return;let isStart=!1,isEnd=!1;activeSlideIndex>=this.slides.length-this.slidesPerView&&(isEnd=!0),activeSlideIndex==0&&(isStart=!0),isStart?(arrow_prev.classList.remove("active"),arrow_prev.classList.add("inactive")):(arrow_prev.classList.remove("inactive"),arrow_prev.classList.add("active")),isEnd?(arrow_next.classList.remove("active"),arrow_next.classList.add("inactive")):(arrow_next.classList.remove("inactive"),arrow_next.classList.add("active"))}updateScrollbarPosition(){requestAnimationFrame(()=>{const container=this.container,slideWidth=this.slides[0]?.offsetWidth,gap=parseFloat(window.getComputedStyle(container).getPropertyValue("grid-gap"))||0,slideWithGap=slideWidth+gap,scrollLeft=Math.abs(container.scrollLeft)+(window.Maximize.rtl?1:0),currentSlideIndex=Math.round(scrollLeft/slideWithGap);this.scrollbar&&this.isDragging&&this.updateProgressBar(currentSlideIndex),this.sliderIndicators&&this.handleIndicators(),this.isLoop||(this.updateIndicatorArrow(currentSlideIndex),this.updateSliderNavStatus(scrollLeft)),this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0?this.updateActiveSlide(currentSlideIndex):this.activeSlideIndex=currentSlideIndex})}applyBreakpointOptions(){if(this.breakPoints){for(let breakpoint in this.breakPoints){this.currentBreakpoint=breakpoint;const config=this.breakPoints[breakpoint];if(window.matchMedia(`(${this.mediaQuery}-width: ${this.currentBreakpoint}px)`).matches&&(this.slidesPerView=Number(config.slidesPerView&&config.slidesPerView!==this.defaultSlidesPerView?config.slidesPerView:this.defaultSlidesPerView),this.gap=config.gap&&config.gap!==this.defaultGap?config.gap:this.defaultGap,this.currentBreakPointConfig=config,this.mediaQuery=="max"))break}this.sliderElement.style.setProperty("--swiffy-slider-item-count",this.slidesPerView),this.sliderElement.style.setProperty("--swiffy-slider-item-gap",this.gap),this.sliderNavs.forEach(nav=>{nav.classList[this.slidesPerView>0&&this.slidesPerView<this.slides.length?"add":"remove"]("is-visible")}),this.currentBreakPointConfig&&this.currentBreakPointConfig.isResize&&this.handleResize()}else if(this.slidesPerView=Number(window.getComputedStyle(this.container).getPropertyValue("--swiffy-slider-item-count")),this.configs.adaptWidth){let slideItemWidth=this.slides[0].offsetWidth;slideItemWidth>0&&(this.slidesPerView=Math.floor(this.container.offsetWidth/slideItemWidth))}this.sliderElement.style.setProperty("--progress-bar-active-width",`${Math.max(this.slidesPerView/this.slides.length*100,20)}%`)}setVisibleSlides(threshold=.3){let observer=new IntersectionObserver(slides=>
1{slides.forEach(slide=>{slide.isIntersecting?slide.target.classList.add("slide-visible"):slide.target.classList.remove("slide-visible")}),this.sliderElement.querySelector(".slider-container>*:first-child").classList.contains("slide-visible")?this.sliderElement.classList.add("slider-item-first-visible"):this.sliderElement.classList.remove("slider-item-first-visible"),this.sliderElement.querySelector(".slider-container>*:last-child").classList.contains("slide-visible")?this.sliderElement.classList.add("slider-item-last-visible"):this.sliderElement.classList.remove("slider-item-last-visible")},{root:this.sliderElement.querySelector(".slider-container"),threshold});for(let slide of this.slides)observer.observe(slide)}updateProgressBar(activeSlideIndex){const scrollbar=this.scrollbar;let marginRate=(100-Math.max(this.slidesPerView/this.slides.length*100,20))*(activeSlideIndex/(this.slides.length-this.slidesPerView));window.Maximize.rtl?scrollbar.style.marginRight=marginRate+"%":scrollbar.style.marginLeft=marginRate+"%"}slide(next=!0){if(!this.slides||this.slides.length===0||this.sliderElement.classList.contains("swiffy-slider-disabled"))return;const oldActiveSlideIndex=this.activeSlideIndex,slidesCount=this.slides.length;let newActiveSlideIndex;if(this.effect==="slide")if(next)if(Math.abs(this.container.scrollLeft)+this.container.offsetWidth+1>=this.container.scrollWidth){if(!this.isLoop)return;newActiveSlideIndex=0}else oldActiveSlideIndex+this.slidesPerView>slidesCount-this.slidesPerView?newActiveSlideIndex=slidesCount-this.slidesPerView:newActiveSlideIndex=oldActiveSlideIndex+this.slidesPerView;else if(Math.abs(this.container.scrollLeft)<=0){if(!this.isLoop)return;newActiveSlideIndex=slidesCount-this.slidesPerView}else oldActiveSlideIndex-this.slidesPerView<0?newActiveSlideIndex=0:newActiveSlideIndex=oldActiveSlideIndex-this.slidesPerView;else{if(newActiveSlideIndex=next?oldActiveSlideIndex+1:oldActiveSlideIndex-1,newActiveSlideIndex<0){if(!this.isLoop)return;newActiveSlideIndex=slidesCount-1}else if(newActiveSlideIndex>slidesCount-1){if(!this.isLoop)return;newActiveSlideIndex=0}if(this.sliderElement.classList.contains("media-gallery__media-wrapper")){let attempts=0;const maxAttempts=this.slides.length;for(;this.slides[newActiveSlideIndex]&&!this.slides[newActiveSlideIndex].classList.contains("is-show-media-item")&&attempts<maxAttempts;)newActiveSlideIndex=next?newActiveSlideIndex+1:newActiveSlideIndex-1,newActiveSlideIndex>=this.slides.length?newActiveSlideIndex=0:newActiveSlideIndex<0&&(newActiveSlideIndex=this.slides.length-1),attempts++;if(attempts===maxAttempts&&!this.slides[newActiveSlideIndex].classList.contains("is-show-media-item"))return}}this.scrollbar&&!this.isDragging&&this.updateProgressBar(newActiveSlideIndex),this.slideTo(newActiveSlideIndex)}updateSliderNavStatus(scrollPosition){window.Maximize.rtl&&(scrollPosition=Math.abs(scrollPosition));const isAtEnd=scrollPosition+this.container.offsetWidth+1>=this.container.scrollWidth-1,isAtStart=scrollPosition<=1;this.sliderNavs.forEach(nav=>{nav.classList.contains("slider-nav-next")?(nav.classList.toggle("nav-disabled",isAtEnd),nav.toggleAttribute("disabled",isAtEnd)):(nav.classList.toggle("nav-disabled",isAtStart),nav.toggleAttribute("disabled",isAtStart))}),isAtEnd&&isAtStart?this.sliderNavs.forEach(nav=>{nav.classList.add("hidden-nav")}):this.sliderNavs.forEach(nav=>{nav.classList.remove("hidden-nav")})}slideToByIndicator(event){const indicator=event.target,indicatorIndex=Array.from(this.sliderIndicators).indexOf(indicator),indicatorCount=this.sliderIndicators.length,slideCount=this.slides.length,newActiveSlideIndex=Math.floor(slideCount/indicatorCount*indicatorIndex);this.slideTo(newActiveSlideIndex)}slideTo(slideIndex){const oldActiveIndex=this.activeSlideIndex;if(this.effect!=="fade"&&this.effect!=="push"){this.isDragging=!1;const gap=parseInt(window.getComputedStyle(this.container)[this.isVerticalMode?"rowGap":"columnGap"])||0,scrollPosition=((this.isVerticalMode?this.slides[0]?.offsetHeight:this.slides[0]?.offsetWidth)+gap)*(window.Maximize.rtl?-1*slideIndex:sli
1deIndex),currentPosition=this.isVerticalMode?this.container.scrollTop:this.container.scrollLeft,scrollOptions={behavior:this.isNoDelay?"auto":"smooth",[this.isVerticalMode?"top":"left"]:scrollPosition},needsScroll=Math.abs(currentPosition-scrollPosition)>1;if(this.container.scrollTo(scrollOptions),this.sliderElement.classList.contains("zoom-enlarge__wrapper")&&this.sliderElement.classList.contains("opacity-0"))if(needsScroll){const targetSlide=this.slides[slideIndex];if(!targetSlide)return;const observer=new IntersectionObserver(entries=>{entries[0].isIntersecting&&(this.sliderElement.classList.contains("zoom-enlarge__wrapper")&&this.sliderElement.classList.contains("opacity-0")&&this.sliderElement.classList.remove("opacity-0"),this.isLoop||this.updateSliderNavStatus(scrollPosition),observer.disconnect())},{threshold:.99});observer.observe(targetSlide)}else this.sliderElement.classList.remove("opacity-0");this.isLoop||this.updateSliderNavStatus(scrollPosition)}this.updateActiveSlide(slideIndex),this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0||this.dispatchEventSlide(oldActiveIndex),this.sliderElement.classList.remove("invisible-slide")}handleIndicators(){this.sliderElement&&this.sliderIndicators.forEach((indicator,index)=>{indicator.classList.toggle("active",Number(this.activeSlideIndex)===index)})}handleAutoPlay(){const autoplayTimer=setInterval(()=>{this.isDragging=!1,this.slide(!0)},this.speed);this.autoplayTimer=autoplayTimer;const autoPlayer=()=>{["mouseout","touchend"].forEach(event=>{this.sliderElement.removeEventListener(event,autoPlayer)}),this.handleAutoPlay()};return this.autoPause&&(["mouseover","touchstart"].forEach(event=>{this.sliderElement.addEventListener(event,()=>{window.clearInterval(autoplayTimer)},{once:!0,passive:!0})}),["mouseout","touchend"].forEach(event=>{this.sliderElement.addEventListener(event,autoPlayer,{once:!0,passive:!0})})),this.autoplayTimer}handleResize(){const height=this.sliderElement.offsetWidth*this.ratio;(this.effect==="push"||this.effect==="fade")&&(this.sliderElement.style.height=height+"px")}updateActiveSlide(newActiveSlideIndex){this.slides.forEach((slide,index)=>{slide.classList[index===Number(newActiveSlideIndex)?"add":"remove"]("is-active")}),this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0&&this.listZoomThumbnailItems.forEach((item,index)=>{item.classList[index===Number(newActiveSlideIndex)?"add":"remove"]("is-active")});const oldActiveSlideIndex=this.activeSlideIndex;this.activeSlideIndex=newActiveSlideIndex,this.listZoomThumbnailItems&&this.listZoomThumbnailItems.length>0&&oldActiveSlideIndex!=newActiveSlideIndex&&this.dispatchEventSlide(oldActiveSlideIndex)}dispatchEventSlide(oldActiveSlideIndex){const sliderElement=this.sliderElement;this.sliderElement.dispatchEvent(new CustomEvent(`${SWIFFY_SLIDER_EVENT.slide}`,{bubbles:!0,detail:{el:sliderElement,oldActiveSlideIndex,newActiveSlideIndex:this.activeSlideIndex}}))}addEventToIndicators(){this.sliderIndicators.forEach(indicatorElement=>{indicatorElement.classList.contains("is-added-click-handle")||(indicatorElement.addEventListener("click",this.slideToByIndicator.bind(this)),indicatorElement.addEventListener("keyup",e=>{e.key==="Enter"&&this.slideToByIndicator(e)}),indicatorElement.classList.add("is-added-click-handle"))})}} 2//# sourceMappingURL=/cdn/shop/t/108/assets/swiffy-slider.js.map?v=72577779082741078701762529124
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.