1import{W as r,X as g,J as p,m as y,Y as A,N as b,C as I,r as f}from"./storefrontApp.CsApItsi.min.js";import{P as S,F as _}from"./chunk-full_product_gallery_service.BaK1PBH.js";import{a as E}from"./chunk-product_constants.e09mIDD.js";import{P as v}from"./chunk-product_stock_changed_handler.C3zWS6V.js";import{t as $}from"./chunk-vendor-lodash.CWHFt7Z.js";import{S as C}from"./chunk-storefront_base_lit_element.lX23Jvc.js";import{e as m}from"./chunk-vendor-lit.NvY0u02.js";import"./chunk-vendor-di.Bh23gdA.js";import"./chunk-storefront_settings_constants.DIF02Gz.js";import"./chunk-vendor-rxjs.Dp7kflo.js";import"./chunk-vendor-phoenix.cdKS79L.js";import"./chunk-product_events_constants.BHFu5GP.js";var P=Object.defineProperty,u=(l,e,t,a)=>{for(var i=void 0,n=l.length-1,s;n>=0;n--)(s=l[n])&&(i=s(e,t,i)||i);return i&&P(e,t,i),i};class o extends C{constructor(){super(),this.displayMode="grid",this.id="",this.maxImagesDesktop="0",this.maxImagesMobile="0",this._layoutObserver=null,this._changeDisplayedImageOnStockChanged=a=>{const i=a.body?.images[E]?.imageName;if(!i||!this._$mainImageElement||this._isImageToDisplaySameAsCurrent(i))return;const s=this._findImageElementByUrl(`productGfx_${i}`);s&&(this._replaceMainImageContainer(s),this._handleActiveItemChange(s))},this._$featuredImageContainer=this.querySelector(`.${r.mainImageContainer}`);const e=this.querySelector(`.${r.mainImageContainer} a`);this._$mainImageElement=e?.querySelector(`.${r.galleryOpener}`)||null;const t=this.querySelectorAll(`.${r.imagesList} .${r.imageAnchor} .${r.galleryOpener}`);this._$openGalleryTrigger=this._$featuredImageContainer?.querySelector(`.${r.galleryOpenerButton}`),this._imagesUrls=[...t].map(a=>new URL(a.currentSrc||a.src).pathname),this._handleResize=$(()=>this._updateThumbnailsVisibility(),150)}static{this.moduleName=g.component}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this._handleResize),this.setAttribute("role","region")}firstUpdated(e){super.firstUpdated(e),this._initLayoutObserver(),this._syncActiveThumbnailWithMainImage(),this._updateThumbnailsVisibility(),new v(this._changeDisplayedImageOnStockChanged)}_initLayoutObserver(){const e=this.querySelector(`.${r.imagesList}`);e&&(this._layoutObserver=new MutationObserver(t=>{t.some(i=>i.type==="attributes"&&i.attributeName==="class")&&this._updateThumbnailsVisibility()}),this._layoutObserver.observe(e,{attributes:!0,subtree:!0,attributeFilter:["class"]}))}_updateThumbnailsVisibility(){const t=window.innerWidth<=y[A.sm]?this.maxImagesMobile:this.maxImagesDesktop,a=Math.max(0,Number(t)-1),i=this.querySelectorAll(`.${r.imagesList} .${r.imageContainer}.active`),n=this.querySelectorAll(`.${r.imagesList} .${r.imageContainer}:not(.active)`);i.forEach(s=>{s.style.display="none",s.removeAttribute("data-visible-index")}),n.forEach((s,c)=>{c<a?(s.style.display="block",s.setAttribute("data-visible-index",(c+1).toString())):(s.style.display="none",s.removeAttribute("data-visible-index"))})}_findImageElementByUrl(e){if(!e)return null;const t=this._imagesUrls.findIndex(i=>i.includes(e));return t===-1?null:this.querySelectorAll(`.${r.imagesList} .${r.imageContainer} .${r.galleryOpener}`)[t]||null}_syncActiveThumbnailWithMainImage(){if(!this._$mainImageElement)return;const t=this._$mainImageElement.src.match(/productGfx_[^._]+/);if(t){const a=this._findImageElementByUrl(t[0]);a&&this._handleActiveItemChange(a)}}_replaceMainImageContainer(e){if(!this._$featuredImageContainer||!this._$mainImageElement)return;const t=e.closest("a");if(!t)return;const a=this._$featuredImageContainer.querySelector("a");if(a&&a.setAttribute("href",t.getAttribute("href")||"#"),this._updateImageAndPictureData(this._$mainImageElement,e),this._updateImageAndPictureAttributes(this._$mainImageElement,e),this._$openGalleryTrigger){this._$openGalleryTrigger.setAttribute("href",t.getAttribute("href")||"#");const i=this._$openGalleryTrigger.querySelector("img");i&&(this._updateImageAndPictureData(i,e),this._updateImageAndPictureAttributes(i,e))}this.requestUpdate(),this.eventBus.emit(new p(S.updated,{galleryId:this.id,newFeaturedAnchor:a,newFeaturedImage:this._$mainImageElement}))}_updateImageAndPictureData(e,t){e.src=t.src,e.alt=t.alt,e.title=t.title,this._updatePictureSources(e,t)}_updateImageAndPictureAttributes(e,t){["image-description","image-announcement"].forEach(i=>
1{const n=t.getAttribute(`data-${i}`);n?e.setAttribute(`data-${i}`,n):e.removeAttribute(`data-${i}`)})}_updatePictureSources(e,t){const a=e.closest("picture"),i=t.closest("picture");if(a&&i){const n=a.querySelectorAll("source"),s=i.querySelectorAll("source");n.forEach((c,d)=>{const h=s[d]?.getAttribute("srcset")||s[d]?.getAttribute("data-splide-lazy-srcset");h&&c.setAttribute("srcset",h)})}}_handleActiveItemChange(e){this._clearActiveGridItems();const t=e.closest(`.${r.imageContainer}`);t&&t.classList.add("active")}_clearActiveGridItems(){this.querySelectorAll(`.${r.imageContainer}`).forEach(t=>t.classList.remove("active"))}_isImageToDisplaySameAsCurrent(e){return this._$mainImageElement?this._$mainImageElement.src?.includes(`productGfx_${e}`):!0}disconnectedCallback(){super.disconnectedCallback(),this._layoutObserver?.disconnect(),window.removeEventListener("resize",this._handleResize),this._handleResize.cancel()}}u([m({type:String,attribute:"display-mode"})],o.prototype,"displayMode");u([m({type:String,attribute:"id"})],o.prototype,"id");u([m({type:String,attribute:"data-max-desktop"})],o.prototype,"maxImagesDesktop");u([m({type:String,attribute:"data-max-mobile"})],o.prototype,"maxImagesMobile");class k extends b{static{this.featureName=g.feature}async init(){const e=[];return _.isCreated||e.push(new _),{cores:[{type:I,instance:[o]},{type:f.service,instance:e}]}}}export{k as ProductGridGalleryInitializer};
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.