1class ProductItem extends HTMLElement{constructor(){super(),this.selectors={productMediaTemplate:"[js-quick-view-media-template]",quickShopButton:"[js-quick-shop-button]",swatchImages:"[js-product-item-swatch-image]",swatches:"[js-swatch]",swatchOverflowButton:"[js-product-listing-swatch-overflow]"},this.classes={active:"active",swatchActive:"swatch-active",selectedSwatch:"swatch--selected"}}connectedCallback(){this.controller=new AbortController,this.quickShopButton=this.querySelector(this.selectors.quickShopButton),this.swatchImages=this.querySelectorAll(this.selectors.swatchImages),this.swatches=this.querySelectorAll(this.selectors.swatches),this.swatchOverflowButton=this.querySelector(this.selectors.swatchOverflowButton),this.swatches.forEach(swatch=>{swatch.addEventListener("click",this.handleSwatchClick.bind(this),{signal:this.controller.signal})}),this.swatchOverflowButton&&this.quickShopButton&&this.swatchOverflowButton.addEventListener("click",this.handleSwatchOverflowClick.bind(this),{signal:this.controller.signal})}handleSwatchClick(event){const swatch=event.currentTarget;if(swatch.classList.contains(this.classes.selectedSwatch)){swatch.classList.remove(this.classes.selectedSwatch),this.classList.remove(this.classes.swatchActive);for(let i=0;i<this.swatchImages.length;i++){const swatchImage=this.swatchImages[i];if(swatchImage.dataset.swatchValue===swatch.dataset.value){swatchImage.classList.remove(this.classes.active);break}}return}this.swatchImages.forEach(swatchImage=>{swatchImage.classList.remove(this.classes.active)}),this.swatches.forEach(swatch2=>{swatch2.classList.remove(this.classes.selectedSwatch)}),swatch.classList.add(this.classes.selectedSwatch);let foundSwatchImage=!1;for(let i=0;i<this.swatchImages.length;i++){const swatchImage=this.swatchImages[i];if(swatchImage.dataset.swatchValue===swatch.dataset.value){this.classList.add(this.classes.swatchActive),swatchImage.classList.add(this.classes.active),foundSwatchImage=!0;break}}foundSwatchImage||this.classList.remove(this.classes.swatchActive)}handleSwatchOverflowClick(){this.openQuickView()}disconnectedCallback(){this.controller.abort()}}customElements.get("product-item")||customElements.define("product-item",ProductItem); 2//# sourceMappingURL=/cdn/shop/t/29/assets/product-item.js.map?v=104029692654929880411788794789
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.