1import{Component}from"@theme/component";import{ThemeEvents}from"@theme/events";import{StandardEvents}from"@shopify/events";export class MediaGallery extends Component{connectedCallback(){super.connectedCallback();const{signal}=this.#controller;this.closest(".shopify-section, dialog")?.addEventListener(StandardEvents.productSelect,this.#handleProductSelect,{signal}),this.refs.zoomDialogComponent?.addEventListener(ThemeEvents.zoomMediaSelected,this.#handleZoomMediaSelected,{signal})}#controller=new AbortController;disconnectedCallback(){super.disconnectedCallback(),this.#controller.abort()}#handleProductSelect=event=>{!(event.target instanceof Element)||event.target.closest("product-card")||event.promise.then(({detail})=>{if(!detail?.html)return;const{html}=detail,newMediaGallery=html.querySelector("media-gallery");newMediaGallery&&this.replaceWith(newMediaGallery)}).catch(error=>{error?.name!=="AbortError"&&console.warn("[media-gallery] Event promise rejected:",error)})};#handleZoomMediaSelected=async event=>{this.slideshow?.select(event.detail.index,void 0,{animate:!1})};zoom(index,event){this.refs.zoomDialogComponent?.open(index,event)}preloadImage(index){const zoomDialogMedia=this.refs.zoomDialogComponent?.refs.media[index];zoomDialogMedia&&this.refs.zoomDialogComponent?.loadHighResolutionImage(zoomDialogMedia)}get slideshow(){return this.refs.slideshow}get media(){return this.refs.media}get presentation(){return this.dataset.presentation}}customElements.get("media-gallery")||customElements.define("media-gallery",MediaGallery); 2//# sourceMappingURL=/cdn/shop/t/94/assets/media-gallery.js.map?v=154207211298275592001787744519
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.