PageSourceSearch

https://firstcityrecordstore.com/cdn/shop/t/4/assets/product-modal.js?v=177879398763311163081761580029

js firstcityrecordstore.com collected 2026-09-29 01:17:24 UTC 2,678 bytes, 2 lines download raw bytes

1if(!customElements.get("product-modal")){class ProductModal extends ModalDialog{constructor(){super(),this.bodyOverflowAttribute="data-modal-opened",this.modalInner=this.querySelector(".product-media-modal--inner"),this.media=[...this.querySelectorAll(".product-media-modal--inner > *")],this.mediaThumbs=[...this.querySelectorAll(".product-media-modal__thumbs > a")],this.loader=null,window.addEventListener("popstate",()=>{this.hasAttribute("open")&&this.hide()})}connectedCallback(){!this.media.length||!this.mediaThumbs.length||this.mediaThumbs.forEach(thumb=>thumb.addEventListener("click",this.showThumbMedia.bind(this)))}hide(){super.hide(),document.body.removeAttribute(this.bodyOverflowAttribute),window?.pauseAllMedia?.()}show(opener){this.querySelector(".loading-overlay")||this.initLoading(),window.location.hash="product-modal",super.show(opener),document.body.setAttribute(this.bodyOverflowAttribute,!0),setTimeout(()=>{this.showActiveMedia()},150)}showActiveMedia(){const activeMediaId=this.openedBy.dataset.mediaId,activeMedia=this.media.find(m=>m.dataset.mediaId===activeMediaId);activeMedia&&(this.media.forEach(m=>m.classList.toggle("active",m===activeMedia)),this.mediaThumbs.forEach(thumb=>thumb.classList.toggle("active",thumb.dataset.mediaId===activeMediaId)),activeMedia.scrollIntoView({behavior:"smooth",block:"nearest"}),activeMedia.nodeName==="IMG"&&(activeMedia.complete?this.hideLoading():this.showLoading()),activeMedia.nodeName==="DEFERRED-MEDIA"&&activeMedia.querySelector("template")?.content?.querySelector(".js-youtube")&&activeMedia.loadContent())}showThumbMedia(e){e.preventDefault(),this.querySelector(".loading-overlay")||this.initLoading();const target=e.currentTarget.closest("a");if(!target)return;const currentMediaId=target.dataset.mediaId;window?.pauseAllMedia?.(),this.mediaThumbs.forEach(thumb=>thumb.classList.remove("active")),target.classList.add("active"),this.media.forEach(media=>{const isActive=media.dataset.mediaId===currentMediaId;media.classList.toggle("active",isActive),media.removeAttribute("hidden"),isActive&&media.nodeName==="IMG"&&!media.complete&&this.showLoading()})}async initLoading(){if(!this.loader){const html=await fetchLoaderHTML();this.insertAdjacentHTML("afterbegin",html),this.loader=this.querySelector(".loading-overlay")}}showLoading(){this.loader?.classList.remove("hidden")}hideLoading(){this.loader?.classList.add("hidden")}disconnectedCallback(){this.mediaThumbs.forEach(thumb=>thumb.removeEventListener("click",this.showThumbMedia.bind(this)))}}customElements.define("product-modal",ProductModal)}
2//# sourceMappingURL=/cdn/shop/t/4/assets/product-modal.js.map?v=177879398763311163081761580029

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.