PageSourceSearch

https://tamacolle.com/cdn/shop/t/2/assets/media-gallery.js?v=116978515559365471141778824064

js tamacolle.com collected 2026-10-08 11:37:03 UTC 11,484 bytes, 2 lines download raw bytes

1customElements.get("media-gallery")||customElements.define("media-gallery",class extends HTMLElement{constructor(){super(),this.elements={liveRegion:this.querySelector('[id^="GalleryStatus"]'),viewer:this.querySelector('[id^="GalleryViewer"]'),thumbnails:this.querySelector('[id^="GalleryThumbnails"]'),slider:this.querySelector('[id^="Slider-Thumbnails"]'),sliderMedia:this.querySelector('[id^="Slider-Gallery"]'),thumbnailsArray:this.querySelectorAll('[id^="Slide-Thumbnails"]'),parentContainer:this.closest("section")||this,sliderViewport:this.querySelector('[id^="GalleryViewer"] .slider__viewport')},this.mql=window.matchMedia("(min-width: 750px)"),this.elements.thumbnails&&(this.elements.slider.addEventListener("click",this.setActiveThumbnail.bind(this)),this.elements.slider.addEventListener("keyup",event=>{event.code.toUpperCase()==="ENTER"&&this.setActiveThumbnail(event)}),this.dataset.desktopLayout!=="one_column_grid"&&this.dataset.desktopLayout!=="two_columns_grid"&&this.mql.matches&&this.removeListSemantic())}pinGalleryViewportOverflowAnchor(){const vp=this.elements.sliderViewport;vp&&vp.style.setProperty("overflow-anchor","none")}_prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}_easeWindowScrollTo(targetY,duration){const se=document.scrollingElement||document.documentElement,maxY=Math.max(0,se.scrollHeight-se.clientHeight),clamped=Math.min(Math.max(0,targetY),maxY),startY=se.scrollTop,distance=clamped-startY;if(Math.abs(distance)<1){this._easeScrollStartedAt=0,this._lastEaseDuration=0;return}this._easeScrollGen=(this._easeScrollGen||0)+1;const gen=this._easeScrollGen;this._easeScrollStartedAt=performance.now(),this._lastEaseDuration=duration,this._easeScrollScheduledAt=0;const startTime=performance.now(),easeInOutCubic=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,step=now=>{if(gen!==this._easeScrollGen)return;const elapsed=now-startTime,progress=Math.min(elapsed/duration,1);if(progress>=1){se.scrollTop=clamped,gen===this._easeScrollGen&&(this._easeScrollStartedAt=0,this._lastEaseDuration=0);return}se.scrollTop=startY+distance*easeInOutCubic(progress),requestAnimationFrame(step)};requestAnimationFrame(step)}setActiveMedia(mediaId){const activeMedia=this.elements.viewer.querySelector(`[data-media-id="${mediaId}"]`);if(this.elements.viewer.querySelectorAll(".product__media-item--hide").length>0&&activeMedia){let activeMediaAlt=activeMedia.dataset.mediaAlt;this.elements.viewer.querySelectorAll(".product__media-item:not(.product__media-item--full)").forEach(media=>{media.classList.remove("product__media-item--variant-alt","product__media-item--show"),media.dataset.mediaAlt==activeMediaAlt&&media.classList.add("product__media-item--variant-alt")})}if(!activeMedia)return;if(activeMedia){if(this.elements.sliderMedia.classList.contains("slider-main--original")&&!this.elements.sliderMedia.classList.contains("grid--peek")){let height=activeMedia.offsetHeight;this.elements.parentContainer.offsetWidth<769?(this.elements.sliderMedia.closest(".product--side_thumbnails")?this.elements.sliderMedia.closest(".slider-block").removeAttribute("style"):this.elements.sliderMedia.removeAttribute("style"),this.elements.sliderViewport.style.height=height+"px"):(this.elements.sliderViewport.removeAttribute("style"),this.elements.sliderMedia.closest(".product--side_thumbnails")?this.elements.sliderMedia.closest(".slider-block").style.height=height+"px":this.elements.sliderMedia.style.height=height+"px"),this.pinGalleryViewportOverflowAnchor()}const prevActiv=this.elements.viewer.querySelector(".is-active");prevActiv&&prevActiv.classList.remove("is-active"),activeMedia&&activeMedia.classList.add("is-active");const lateralBehavior=this._prefersReducedMotion()?"auto":"smooth";this.elements.sliderMedia.scrollTo({left:activeMedia.offsetLeft,behavior:lateralBehavior})}if(this.querySelector('[id^="GalleryThumbnails"]')){const prevActiveThumbnail=this.elements.thumbnails.querySelector(".is-active");prevActiveThumbnail&&prevActiveThumbnail.classList.remove("is-active");let activeMediaAlt,mediaIdValue;activeMedia&&(activeMediaAlt=activeMedia.dataset.mediaAlt,mediaIdValue=activeMedia.dataset.mediaId);
1const activeThumbnail=this.elements.thumbnails.querySelector(`[data-target="${mediaIdValue}"]`);activeThumbnail&&activeThumbnail.classList.add("is-active"),this.elements.viewer.querySelectorAll(".product__media-item--hide").length>0&&activeMedia&&this.elements.thumbnails.querySelectorAll(".thumbnail-list__item:not(.product__media-item--full)").forEach(thumbnail=>{thumbnail.classList.remove("product__media-item--variant-alt","product__media-item--show"),thumbnail.dataset.mediaAlt==activeMediaAlt&&thumbnail.classList.add("product__media-item--variant-alt")});const lateralBehavior=this._prefersReducedMotion()?"auto":"smooth";this.elements.slider.scrollTo({left:activeThumbnail.offsetLeft-activeThumbnail.offsetWidth-8,behavior:lateralBehavior}),activeThumbnail.parentElement.classList.contains("thumbnail-list--column")&&this.elements.thumbnails.scrollTo({top:activeThumbnail.offsetTop-activeThumbnail.offsetHeight-8,behavior:lateralBehavior})}if(!activeMedia||(this.preventStickyHeader(),this.playActiveMedia(activeMedia),!this.elements.thumbnails))return;const thumbForAnnounce=this.elements.thumbnails.querySelector(`[data-target="${mediaId}"]`);thumbForAnnounce?.dataset?.mediaPosition!=null&&this.announceLiveRegion(activeMedia,thumbForAnnounce.dataset.mediaPosition),this.queueScrollActiveMediaIntoViewport(activeMedia)}setActiveThumbnail(event){let galleryMedia=this.elements.thumbnails.closest(".slider-block").querySelector('[id^="GalleryViewer-"]');if(galleryMedia&&typeof galleryMedia.clearScrollEndTimer=="function"&&galleryMedia.clearScrollEndTimer(),galleryMedia.querySelector('[id^="Slider-Gallery-"]').classList.add("disable-scroll"),!event.target.closest(".thumbnail-list__item"))return;this.elements.thumbnails.querySelectorAll("button").forEach(element=>element.removeAttribute("aria-current")),this.elements.thumbnails.querySelectorAll("li").forEach(item=>item.classList.remove("is-active")),galleryMedia.querySelectorAll("li").forEach(item=>item.classList.remove("is-active"));let newActiveThumb=event.target.closest(".thumbnail-list__item"),activeThumbData=newActiveThumb.dataset.target,newActiveMedia=this.elements.sliderMedia.querySelector(`[data-media-id="${activeThumbData}"]`);setTimeout(()=>{if(newActiveThumb.classList.add("is-active"),newActiveThumb.querySelector("button").setAttribute("aria-current",!0),newActiveMedia.classList.add("is-active"),this.elements.sliderMedia.classList.contains("slider-main--original")&&!this.elements.sliderMedia.classList.contains("grid--peek")){let height=newActiveMedia.offsetHeight;this.elements.parentContainer.offsetWidth<769?(this.elements.sliderMedia.closest(".product--side_thumbnails")?this.elements.sliderMedia.closest(".slider-block").removeAttribute("style"):this.elements.sliderMedia.removeAttribute("style"),this.elements.sliderViewport.style.height=height+"px"):(this.elements.sliderViewport.removeAttribute("style"),this.elements.sliderMedia.closest(".product--side_thumbnails")?this.elements.sliderMedia.closest(".slider-block").style.height=height+"px":this.elements.sliderMedia.style.height=height+"px"),this.pinGalleryViewportOverflowAnchor()}this.elements.sliderMedia.scrollTo({left:newActiveMedia.offsetLeft}),this.elements.slider.classList.contains("thumbnail-list--column")?this.elements.slider.closest(".thumbnail-slider--column").scrollTo({top:newActiveThumb.offsetTop-newActiveThumb.offsetHeight-8,behavior:"smooth"}):this.elements.slider.scrollTo({left:newActiveThumb.offsetLeft-newActiveThumb.offsetWidth-8,behavior:"smooth"})},5),setTimeout(()=>{galleryMedia.querySelector('[id^="Slider-Gallery-"]').classList.remove("disable-scroll")},500)}announceLiveRegion(activeItem,position){const image=activeItem.querySelector(".product__modal-opener--image img");if(!image)return;const announce=()=>{this.elements.liveRegion.setAttribute("aria-hidden",!1),this.elements.liveRegion.innerHTML=window.accessibilityStrings.imageAvailable.replace("[index]",position),image.closest(".lazy-image")&&image.parentNode.classList.add("lazyloaded"),setTimeout(()=>{this.elements.liveRegion.setAttribute("aria-hidden",!0)},2e3)};
1if(image.complete&&image.naturalWidth>0){announce();return}image.onload=()=>announce()}playActiveMedia(activeItem){window.pauseAllMedia();const deferredMedia=activeItem.querySelector(".deferred-media");deferredMedia&&deferredMedia.loadContent(!1)}preventStickyHeader(){this.stickyHeader=this.stickyHeader||document.querySelector("sticky-header"),this.stickyHeader&&this.stickyHeader.dispatchEvent(new Event("preventHeaderReveal"))}queueScrollActiveMediaIntoViewport(activeMedia){if(!activeMedia||activeMedia.classList.contains("product__media-item--hide"))return;const layout=this.dataset.desktopLayout;if(layout!=="one_column_grid"&&layout!=="two_columns_grid")return;this._easeScrollScheduledAt=performance.now();const run=()=>this.scrollActiveMediaIntoViewport(activeMedia);requestAnimationFrame(()=>{requestAnimationFrame(()=>{requestAnimationFrame(run)})})}scrollActiveMediaIntoViewport(activeMedia,behaviorOverride){if(!activeMedia||activeMedia.classList.contains("product__media-item--hide"))return;const layout=this.dataset.desktopLayout;if(layout!=="one_column_grid"&&layout!=="two_columns_grid")return;const headerRaw=getComputedStyle(document.documentElement).getPropertyValue("--header-height").trim();let headerOffset=0;(headerRaw.endsWith("px")||headerRaw)&&(headerOffset=parseFloat(headerRaw)||0);const edgeMargin=16,rect=activeMedia.getBoundingClientRect(),scrollMarginTop=parseFloat(getComputedStyle(activeMedia).scrollMarginTop)||0,topVisible=rect.top>=headerOffset+edgeMargin+scrollMarginTop,bottomVisible=rect.bottom<=window.innerHeight-edgeMargin;if(topVisible&&bottomVisible){this._easeScrollScheduledAt=0,this._easeScrollStartedAt=0,this._lastEaseDuration=0;return}const se=document.scrollingElement||document.documentElement,targetTop=se.scrollTop+rect.top-headerOffset-edgeMargin-scrollMarginTop,y=Math.max(0,targetTop);if(this._prefersReducedMotion()){const maxY=Math.max(0,se.scrollHeight-se.clientHeight);se.scrollTop=Math.min(y,maxY),this._easeScrollScheduledAt=0,this._easeScrollStartedAt=0,this._lastEaseDuration=0;return}const duration=behaviorOverride==="correction"?280:520;this._easeWindowScrollTo(y,duration)}alignActiveMediaAfterVariantPicker(){const active=this.elements.viewer?.querySelector(".product__media-item.is-active");if(!active)return;clearTimeout(this._alignAfterPickerTimer);const MAIN_MS=520,BUFFER_MS=56,started=this._easeScrollStartedAt||0,scheduled=this._easeScrollScheduledAt||0,tRef=started||scheduled,easeDuration=started&&this._lastEaseDuration>0?this._lastEaseDuration:MAIN_MS,elapsed=tRef?performance.now()-tRef:1/0,waitForEaseEnd=tRef?Math.max(0,easeDuration+BUFFER_MS-elapsed):0,delay=Math.max(72,waitForEaseEnd);this._alignAfterPickerTimer=setTimeout(()=>{this._alignAfterPickerTimer=null,this.isConnected&&requestAnimationFrame(()=>{requestAnimationFrame(()=>this.scrollActiveMediaIntoViewport(active,"correction"))})},delay)}removeListSemantic(){this.elements.viewer.slider&&(this.elements.viewer.slider.setAttribute("role","presentation"),this.elements.viewer.sliderItems.forEach(sli
1de=>slide.setAttribute("role","presentation")))}});
2//# sourceMappingURL=/cdn/shop/t/2/assets/media-gallery.js.map?v=116978515559365471141778824064

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.