1customElements.get("media-gallery")||customElements.define("media-gallery",class extends HTMLElement{constructor(){super(),this.selectors={viewer:'[id^="GalleryViewer"]',thumbnails:'[id^="GalleryThumbnails"]',mediaList:'[id^="Slider-Gallery"]',mediaItems:[".product__media-item"]},this.initialized=!1,this.sliderInstance=!1,this.thumbsInstance=!1}connectedCallback(){FoxTheme.Motion.inView(this,this.init.bind(this))}init(){if(this.initialized===!0)return;this.elements=window.FoxTheme.utils.queryDomNodes(this.selectors,this),this.mediaLayout=this.dataset.mediaLayout,this.onlyImage=this.dataset.onlyImage==="true",this.enableDesktopSlider=this.dataset.enableDesktopSlider==="true",this.enableMobileThumbnails=this.dataset.enableMobileThumbnails==="true",this.enableImageZoom=this.dataset.enableImageZoom==="true",this.context=this.dataset.context,this.setSliderOptions();const mql=window.matchMedia(FoxTheme.config.mediaQueryMobile);mql.onchange=this.updateMediaLayout.bind(this),this.updateMediaLayout(),this.enableImageZoom&&this.initImageZoom(),this.initialized=!0}setSliderOptions(){const mediaItemGap=parseInt(this.dataset.mediaItemGap),mediaItemGapMobile=parseInt(this.dataset.mediaItemGapMobile);switch(this.sliderOptions={init:!1,slidesPerView:this.enableMobileThumbnails?1:"auto",spaceBetween:mediaItemGapMobile,loop:!1,grabCursor:!0,allowTouchMove:!0,autoHeight:!0,breakpoints:{768:{spaceBetween:mediaItemGap}},navigation:{nextEl:this.querySelector(".swiper-button-next"),prevEl:this.querySelector(".swiper-button-prev")},pagination:{el:this.querySelector(".swiper-pagination"),clickable:!0,type:"fraction"},threshold:2},this.thumbsOptions={slidesPerView:4,breakpoints:{461:{slidesPerView:5,direction:"horizontal"}},spaceBetween:mediaItemGapMobile,loop:!1,freeMode:!0,watchSlidesProgress:!0,threshold:2,breakpoints:{768:{spaceBetween:mediaItemGap}}},this.mediaLayout){case"vertical-carousel":this.thumbsOptions.breakpoints={...this.thumbsOptions.breakpoints,768:{direction:"vertical",slidesPerView:"auto",spaceBetween:mediaItemGap}};break;case"carousel":this.thumbsOptions.breakpoints={...this.thumbsOptions.breakpoints,1024:{slidesPerView:5},1536:{slidesPerView:7}};break}}updateMediaLayout(){FoxTheme.config.mqlMobile?this.initSlider():this.enableDesktopSlider?this.initSlider():this.destroySlider()}initSlider(){typeof this.sliderInstance!="object"&&((this.enableDesktopSlider||this.enableMobileThumbnails)&&this.elements.thumbnails&&(this.thumbsInstance=new window.FoxTheme.Carousel(this.elements.thumbnails,this.thumbsOptions),this.thumbsInstance.init(),this.sliderOptions.thumbs={swiper:this.thumbsInstance.slider,autoScrollOffset:2}),this.sliderInstance=new window.FoxTheme.Carousel(this.elements.viewer,this.sliderOptions,[FoxTheme.Swiper.Thumbs]),this.sliderInstance.init(),this.handleSliderAfterInit(),this.handleSlideChange(),this.sliderInstance.slider.init())}destroySlider(){typeof this.sliderInstance=="object"&&(this.sliderInstance.slider.destroy(),this.sliderInstance=!1)}initThumbsSlider(){typeof this.thumbsInstance!="object"&&(this.thumbsInstance=new window.FoxTheme.Carousel(this.selectors.thumbnails,this.thumbsOptions),this.thumbsInstance.init())}initImageZoom(){let dataSource=[];const allMedia=[...this.querySelectorAll(".product__media-item:not(.swiper-slide-duplicate)")];allMedia&&allMedia.forEach(media=>{const{mediaType,mediaIndex,src,pswpWidth,pswpHeight}=media.dataset;let source={id:mediaIndex,mediaType};switch(mediaType){case"model":case"video":case"external_video":const htmlTag=mediaType==="model"?"product-model":"video-element";source={...source,html:`<div class="pswp__item--${mediaType}">${media.querySelector(htmlTag).outerHTML}</div>`};break;default:source={...source,src,width:pswpWidth,height:pswpHeight};break}dataSource.push(source)}),this.lightbox=new window.FoxTheme.PhotoSwipeLightbox({dataSource,pswpModule:window.FoxTheme.PhotoSwipe,bgOpacity:1,arrowPrev:!1,arrowNext:!1,zoom:!1,close:!1,counter:!1,preloader:!1}),this.lightbox.addFilter("thumbEl",(thumbEl,{id},index)=>{const slider=this.sliderInstance?.slider;if(slider){const{slides,activeIndex}=slider;if(slides[activeIndex]){const el=slides[activeIndex].querySelector("img");if(el)return el}}return thumbEl}),this.lightbox.addFilter("placeholderSrc",(placeholderSrc,{data:{id}})=>
1{const slider=this.sliderInstance?.slider;if(slider){const{slides,activeIndex}=slider;if(slides[activeIndex]){const el=slides[activeIndex].querySelector("img");if(el)return el.src}}return placeholderSrc}),this.lightbox.on("change",()=>{window.pauseAllMedia(this)});let lastLightboxIndex=null;this.lightbox.on("close",()=>{this.lightbox?.pswp?.currIndex&&(lastLightboxIndex=this.lightbox.pswp.currIndex)}),this.lightbox.on("destroy",()=>{const slider=this.sliderInstance?.slider;if(slider&&lastLightboxIndex!==null){const targetIndex=lastLightboxIndex;targetIndex>=0&&targetIndex<slider.slides.length&&slider.activeIndex!==targetIndex&&requestAnimationFrame(()=>{slider.slideTo(targetIndex,0)}),lastLightboxIndex=null}}),this.lightbox.on("pointerDown",e=>{this.lightbox?.pswp?.currSlide?.data?.mediaType!="image"&&e.preventDefault()}),this.lightbox.on("uiRegister",()=>{const lightboxUI=this.lightbox?.pswp?.ui;lightboxUI&&(this.onlyImage||(lightboxUI.registerElement({name:"next",ariaLabel:"Next slide",order:3,isButton:!0,html:'<svg class="pswp-icon-next flip-x" viewBox="0 0 100 100"><path d="M 10,50 L 60,100 L 65,90 L 25,50 L 65,10 L 60,0 Z"></path></svg>',onClick:(event,el)=>{this.lightbox?.pswp?.next()}}),lightboxUI.registerElement({name:"prev",ariaLabel:"Previous slide",order:1,isButton:!0,html:'<svg class="pswp-icon-prev rtl-flip-x" viewBox="0 0 100 100"><path d="M 10,50 L 60,100 L 65,90 L 25,50 L 65,10 L 60,0 Z"></path></svg>',onClick:(event,el)=>{this.lightbox?.pswp?.prev()}})),lightboxUI.registerElement({name:"close-zoom",ariaLabel:"Close zoom image",order:2,isButton:!0,html:'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>',onClick:(event,el)=>{this.lightbox?.pswp?.close()}}))}),this.lightbox.init(),FoxTheme.utils.addEventDelegate({selector:".js-photoswipe--zoom",context:this,handler:(e,media)=>{if(media.dataset?.mediaType==="image"){const index=Number(media.dataset.mediaIndex)||0;this.lightbox.loadAndOpen(index)}}})}handleSliderAfterInit(){this.sliderInstance.slider.on("afterInit",swiper=>{const{slides,activeIndex}=swiper;if(slides[activeIndex]){const isModelMediaType=slides[activeIndex].dataset.mediaType==="model";this.toggleSliderDraggableState(!isModelMediaType)}})}handleSlideChange(){this.sliderInstance.slider.on("realIndexChange",swiper=>{const{slides,activeIndex,thumbs}=swiper;if(thumbs.swiper&&thumbs.swiper.slideTo(activeIndex),slides[activeIndex]){this.playActiveMedia(slides[activeIndex]);const isModelMediaType=slides[activeIndex].dataset.mediaType==="model";this.toggleSliderDraggableState(!isModelMediaType)}})}toggleSliderDraggableState(isDraggable){this.sliderInstance.slider.allowTouchMove!==isDraggable&&(this.sliderInstance.slider.allowTouchMove=isDraggable)}playActiveMedia(selected){const deferredMedia=selected.querySelector("product-model");deferredMedia&&deferredMedia.loadContent(!1)}setActiveMedia(variant){if(!variant)return;let featuredMedia=variant.featured_media;if(!featuredMedia&&variant.featured_image&&(featuredMedia={id:variant.featured_image.id,position:variant.featured_image.position||0,media_type:"image"}),!!featuredMedia)if(this.sliderInstance.slider){const slideIndex=featuredMedia.position||0;this.sliderInstance.slider.slideTo(slideIndex-1,0,!1)}else this.sortMediaItems(variant,featuredMedia)}sortMediaItems(variant,featuredMedia){if(featuredMedia||(featuredMedia=variant.featured_media||(variant.featured_image?{id:variant.featured_image.id,position:variant.featured_image.position||0,media_type:"image"}:null)),!featuredMedia)return;let newMedias=this.elements.mediaItems;if(newMedias.sort(function(a,b){return a.dataset.mediaIndex-b.dataset.mediaIndex}),newMedias.some((media,index)=>{if(media.dataset.mediaId==featuredMedia.id){const[element]=newMedias.splice(index,1);return newMedias.unshift(element),!0}}),this.elements.mediaList.innerHTML="",newMedias.forEach(media=>{this.elements.mediaList.appendChild(media)}),!FoxTheme.config.mqlMobile&&this.context!=="quickview"){const selectedMedia=this.querySelector(`[data-media-id="${featuredMedia.id}"]`);selectedMedia&&window.scrollTo({top:selectedMedia.offsetTop,behavior:"smooth"})}}}); 2//# sourceMappingURL=/cdn/shop/t/93/assets/media-gallery.js.map?v=153385248993288754411773816118
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.