PageSourceSearch

https://www.peacecoffee.com/cdn/shop/t/143/assets/media-gallery.js?v=91794483196067466481790005994

js peacecoffee.com collected 2026-09-24 21:41:30 UTC 7,952 bytes, 2 lines download raw bytes

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.sliderInstance=!1,this.thumbsInstance=!1}connectedCallback(){this.init()}init(){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.setSliderOptions();const mql=window.matchMedia(FoxTheme.config.mediaQueryMobile);mql.onchange=this.updateMediaLayout.bind(this),this.updateMediaLayout(),this.enableImageZoom&&this.initImageZoom()}setSliderOptions(){const mediaItemGap=parseInt(this.dataset.mediaItemGap);switch(this.sliderOptions={init:!1,slidesPerView:"1",spaceBetween:mediaItemGap,loop:!0,grabCursor:!0,allowTouchMove:!0,autoHeight:!0,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}},spaceBetween:mediaItemGap,loop:!1,freeMode:!0,watchSlidesProgress:!0,threshold:2},this.mediaLayout){case"vertical-carousel":this.thumbsOptions=Object.assign({},this.thumbsOptions,{breakpoints:{768:{direction:"vertical",slidesPerView:"auto"}}});break;case"slider-freemode":this.sliderOptions=Object.assign({},this.sliderOptions,{slidesPerView:"auto"});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=>{switch(media.dataset.mediaType){case"model":dataSource.push({id:media.dataset.mediaIndex,html:`<div class="pswp__item--${media.dataset.mediaType}">${media.querySelector("product-model").outerHTML}</div>`,mediaType:media.dataset.mediaType});break;case"video":case"external_video":dataSource.push({id:media.dataset.mediaIndex,html:`<div class="pswp__item--${media.dataset.mediaType}">${media.querySelector("video-element").outerHTML}</div>`,mediaType:media.dataset.mediaType});break;case"image":dataSource.push({id:media.dataset.mediaIndex,src:media.dataset.src,width:media.dataset.pswpWidth,height:media.dataset.pswpHeight,mediaType:media.dataset.mediaType});break}}),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)=>{if(this.sliderInstance&&this.sliderInstance.slider){const{slides,activeIndex}=this.sliderInstance.slider;if(slides[activeIndex]){const el=slides[activeIndex].querySelector("img");if(el)return el}}return thumbEl}),this.lightbox.addFilter("placeholderSrc",(placeholderSrc,{data:{id}})=>{if(this.sliderInstance&&this.sliderInstance.slider){const{slides,activeIndex}=this.sliderInstance.slider;if(slides[activeIndex]){const el=slides[activeIndex].querySelector("img");if(el)return el.src}}return placeholderSrc}),this.lightbox.on("change",()=>{if(window.pauseAllMedia(this),this.sliderInstance&&this.sliderInstance.slider){const{currIndex}=this.lightbox.pswp;this.sliderInstance.slider.realIndex!==currIndex&&this.sliderInstance.slider.slideToLoop(currIndex,100,!1)}}),this.lightbox.on("pointerDown",e=>{this.lightbox.pswp.currSlide.data.mediaType!="image"&&e.preventDefault()}),this.lightbox.on("uiRegister",()=>{this.onlyImage||(this.lightbox.pswp.ui.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()}}),this.lightbox.pswp.ui.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()}})),this.lightbox.pswp.ui.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" viewB
1ox="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||!variant.hasOwnProperty("featured_media")||!variant.featured_media))if(this.sliderInstance.slider){const slideIndex=variant.featured_media.position||0;this.sliderInstance.slider.slideToLoop(slideIndex-1)}else this.sortMediaItems(variant)}sortMediaItems(variant){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==variant.featured_media.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){const selectedMedia=this.querySelector(`[data-media-id="${variant.featured_media.id}"]`);selectedMedia&&window.scrollTo({top:selectedMedia.offsetTop,behavior:"smooth"})}}});
2//# sourceMappingURL=/cdn/shop/t/143/assets/media-gallery.js.map?v=91794483196067466481790005994

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.