/*! Copyright (c) Safe As Milk. All rights reserved. */class ProductCardSpinner extends HTMLElement{#boundHandleImageLoad;#observer;constructor(){super(),this.loadingClass="loading",this.#observer=null,this.#boundHandleImageLoad=this.#handleImageLoad.bind(this)}connectedCallback(){this.#init()}disconnectedCallback(){this.#observer&&this.#observer.disconnect()}#init(){const image=this.nextElementSibling;!image||image.tagName!=="IMG"||(this.#observer||(this.#observer=new MutationObserver(this.#boundHandleImageLoad)),this.#observer.observe(image,{attributeFilter:["src"],attributeOldValue:!0,subtree:!1}))}#handleImageLoad(mutationList){mutationList.forEach(mutation=>{if(mutation.type==="attributes"&&mutation.attributeName==="src"){const oldUrlStr=mutation.oldValue.split("//cdn.shopify.com/").pop(),newUrlStr=mutation.target.src.split("//cdn.shopify.com/").pop();if(oldUrlStr!==newUrlStr){const currImage=mutation.target;currImage.classList.contains(this.loadingClass)||(currImage.classList.add(this.loadingClass),this.classList.add(this.loadingClass)),currImage.onload=()=>{currImage.classList.remove(this.loadingClass),this.classList.remove(this.loadingClass)}}}})}}customElements.define("product-card-spinner",ProductCardSpinner); //# sourceMappingURL=/cdn/shop/t/100/assets/product-card-spinner.js.map?v=25774890984037457101751575324