1/* 2Generated time: March 12, 2026 14:39 3This file was created by the app developer. Feel free to contact the original developer with any questions. It was minified (compressed) by AVADA. AVADA do NOT own this script. 4*/ 5import{Component}from"@theme/component";import{supportsViewTransitions,startViewTransition,onAnimationEnd,prefersReducedMotion,debounce,preloadImage,isLowPowerDevice}from"@theme/utilities";import{scrollIntoView}from"@theme/scrolling";import{ZoomMediaSelectedEvent}from"@theme/events";import{DialogCloseEvent}from"@theme/dialog";class ZoomDialog extends Component{requiredRefs=["dialog","media","thumbnails"];#highResImagesLoaded=new Set;connectedCallback(){super.connectedCallback(),this.refs.dialog.addEventListener("scroll",this.handleScroll)}disconnectedCallback(){super.disconnectedCallback(),this.refs.dialog.removeEventListener("scroll",this.handleScroll)}async open(e,t){t.preventDefault();let{dialog:i,media:o,thumbnails:a}=this.refs,s=o[e],n=a.children[e],l=()=>{i.showModal();for(var e of[n,s])e?.scrollIntoView({behavior:"instant"})},r=t.target instanceof Element?t.target.closest("li,slideshow-slide"):null;if(!supportsViewTransitions()||isLowPowerDevice()||!r||!s)return l();let m="gallery-item-open";r.style.setProperty("view-transition-name",m);t=r.dataset.focalPoint;t&&document.documentElement.style.setProperty("--gallery-media-focal-point",t),await startViewTransition(()=>{l(),r.style.removeProperty("view-transition-name"),s.style.setProperty("view-transition-name",m)}),document.documentElement.style.removeProperty("--gallery-media-focal-point"),s.style.removeProperty("view-transition-name"),this.selectThumbnail(e,{behavior:"instant"})}loadHighResolutionImage(e){if(!e.classList.contains("product-media-container--image"))return!1;let t=e.querySelector("img.product-media__image");if(!(t&&t instanceof HTMLImageElement))return!1;let i=t.getAttribute("data_max_resolution");if(!i||this.#highResImagesLoaded.has(i))return!1;preloadImage(i);let o=new Image;o.className=t.className,o.alt=t.alt,o.setAttribute("data_max_resolution",i),o.setAttribute("ref","image"),o.onload=()=>{t.replaceWith(o),this.#highResImagesLoaded.add(i)},o.src=i}handleScroll=debounce(async()=>{var{media:e,thumbnails:t}=this.refs,i=await getMostVisibleElement(e);let o=e.indexOf(i);e=t.children[o];e&&e instanceof HTMLElement&&(Array.from(t.querySelectorAll("button")).forEach((e,t)=>{e.setAttribute("aria-selected",""+(t===o))}),this.loadHighResolutionImage(i),this.dispatchEvent(new ZoomMediaSelectedEvent(o)))},50);async close(){var{dialog:e,media:t}=this.refs;if(!supportsViewTransitions()||isLowPowerDevice())return this.closeDialog();let i=await getMostVisibleElement(t);t=t.indexOf(i);let o="gallery-item-close";var a=this.closest("media-gallery");let s=("carousel"===a?.presentation?a.slideshow?.slides:a?.media)?.[t];if(!s)return this.closeDialog();a=s.dataset.focalPoint;a&&document.documentElement.style.setProperty("--gallery-media-focal-point",a),e.classList.add("dialog--closed"),await onAnimationEnd(this.refs.thumbnails),i.style.setProperty("view-transition-name",o),await startViewTransition(()=>{i.style.removeProperty("view-transition-name"),s.style.setProperty("view-transition-name",o),this.closeDialog()}),s.style.removeProperty("view-transition-name"),e.classList.remove("dialog--closed"),document.documentElement.style.removeProperty("--gallery-media-focal-point")}closeDialog(){var e=this.refs.dialog;e.close(),window.dispatchEvent(new DialogCloseEvent)}handleKeyDown(e){"Escape"===e.key&&(e.preventDefault(),this.close())}async handleThumbnailClick(e){var t=prefersReducedMotion()?"instant":"smooth";this.selectThumbnail(e,{behavior:t})}async handleThumbnailPointerEnter(e){var t=this.refs.media;t[e]&&this.loadHighResolutionImage(t[e])}async selectThumbnail(i,e={behavior:"smooth"}){var t,o,a;this.refs.thumbnails&&this.refs.thumbnails.children.length&&(isNaN(i)||i<0||i>=this.refs.thumbnails.children.length||({media:t,thumbnails:o}=this.refs,(a=o.children[i])&&a instanceof HTMLElement&&(Array.from(o.querySelectorAll("button")).forEach((e,t)=>{e.setAttribute("aria-selected",""+(t===i))}),scrollIntoView(a,{ancestor:o,behavior:e.behavior,block:"center",inline:"center"}),(a=t[i])&&(a.scrollIntoView({behavior:e.behavior}),this.loadHighResolutionImage(a)),this.dispatchEvent(new ZoomMediaSelectedEvent(i)))))}}function getMostVisibleElement(o){return new Promise(t=>{let i=new IntersectionObserver(e=>{e=e.reduce((e,t)=>
5t.intersectionRatio>e.intersectionRatio?t:e);i.disconnect(),t(e.target)},{threshold:Array.from({length:100},(e,t)=>t/100)});for(var e of o)i.observe(e)})}customElements.get("zoom-dialog")||customElements.define("zoom-dialog",ZoomDialog);export{ZoomDialog};
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.