PageSourceSearch

https://www.dansac.com.au/sites/public/design/refactor/scripts/productGallery-b0fe2ac8.js

js dansac.com.au collected 2026-10-06 18:58:28 UTC 4,385 bytes, 26 lines download raw bytes

1var n=Object.defineProperty;var d=(o,i,t)=>i in o?n(o,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[i]=t;var a=(o,i,t)=>(d(o,typeof i!="symbol"?i+"":i,t),t);import{a as h}from"./vendor-58675f0b.js";import{S as r}from"./swiper-core-6e5642fd.js";import{N as g}from"./navigation-363660da.js";r.use([g]);class x extends h{constructor(t){super(t);a(this,"imagesCount");a(this,"swiper");this.imagesCount=0,this.init(),this.buildGalleryLightBox()}setupDefaults(){this.dom={inner:this.el.querySelector(".product-detail__gallery-inner")}}init(){if(this.imagesCount=this.dom.inner.querySelectorAll("img").length,this.dom.inner.querySelectorAll("img").forEach((t,l)=>{const e=document.createElement("button");e.classList.add("product-detail__gallery-item"),e.dataset.index=l.toString(),e.appendChild(t),this.dom.inner.appendChild(e)}),this.dom.galleryItems=this.dom.inner.querySelectorAll(".product-detail__gallery-item"),this.imagesCount>6){const t=document.createElement("div");t.classList.add("product-detail__gallery-item-overlay");const l=this.imagesCount-6,e=this.el.dataset.viewMoreLabel.replace("[count]",l.toString());t.innerHTML=`<span>${e}</span>`,this.dom.galleryItems[5].appendChild(t),this.dom.inner.dataset.imagesCount="6"}else this.dom.inner.dataset.imagesCount=this.imagesCount.toString();this.dom.inner.dataset.initialized="initialized"}buildGalleryLightBox(){this.dom.lightbox=document.createElement("dialog"),this.dom.lightbox.classList.add("product-detail__gallery-lightbox"),this.dom.lightbox.innerHTML=`
2      <div class="product-detail__gallery-lightbox-inner">
3        <button class="product-detail__gallery-lightbox-close" autofocus>
4          <svg role="presentation">
5            <use xlink:href="#modal-close" />
6          </svg>
7        </button>
8        <div class="product-detail__gallery-lightbox-content">
9          ${this.imagesCount>0?`<div role="button" class="product-detail__gallery-lightbox-prev">
10            <svg role="presentation">
11              <use xlink:href="#modal-chevron-left" />
12            </svg>
13          </div>`:""}
14          <div class="swiper-container">
15            <div class="swiper-wrapper"></div>
16          </div>
17          ${this.imagesCount>0?`<div role="button" class="product-detail__gallery-lightbox-next">
18            <svg role="presentation">
19              <use xlink:href="#modal-chevron-right" />
20            </svg>
21          </div>`:""}
22          ${this.imagesCount>0?'<div class="product-detail__gallery-lightbox-pagination"></div>':""}
23        </div>
24      </div>
25    `,document.body.appendChild(this.dom.lightbox);const t=this.dom.lightbox.querySelector(".product-detail__gallery-lightbox-content .swiper-container"),l=this.dom.lightbox.querySelector(".product-detail__gallery-lightbox-content .swiper-wrapper");this.dom.lightboxClose=this.dom.lightbox.querySelector(".product-detail__gallery-lightbox-close"),this.dom.lightboxInner=this.dom.lightbox.querySelector(".product-detail__gallery-lightbox-inner"),this.dom.lightboxPagination=this.dom.lightbox.querySelector(".product-detail__gallery-lightbox-pagination"),this.dom.inner.querySelectorAll("img").forEach(e=>{const s=document.createElement("div");s.classList.add("swiper-slide"),s.appendChild(e.cloneNode(!0)),l.appendChild(s)}),this.swiper=new r(t,{slidesPerView:1,spaceBetween:10,navigation:{nextEl:this.dom.lightboxInner.querySelector(".product-detail__gallery-lightbox-next"),prevEl:this.dom.lightboxInner.querySelector(".product-detail__gallery-lightbox-prev")},on:{update:e=>{this.dom.lightboxPagination.innerHTML=`${e.activeIndex+1}/${e.slides.length}`},slideChange:e=>{this.dom.lightboxPagination.innerHTML=`${e.activeIndex+1}/${e.slides.length}`}}}),this.dom.lightboxClose.addEventListener("click",this.closeGalleryLightBox.bind(this)),this.dom.lightbox.addEventListener("click",this.handleClickOutside.bind(this)),this.dom.galleryItems.forEach(e=>{e.addEventListener("click",this.displayGalleryLightBox.bind(this))})}displayGalleryLightBox(t){const e=t.currentTarget.dataset.index;this.swiper.slideTo(e),this.dom.lightbox.show(),this.swiper.update(
25)}closeGalleryLightBox(){this.dom.lightbox.close()}handleClickOutside(t){const l=t.currentTarget;t.target===this.dom.lightbox&&!this.dom.lightboxInner.contains(l)&&this.closeGalleryLightBox()}}export{x as default};
26//# sourceMappingURL=productGallery-b0fe2ac8.js.map

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.