1function canonicalProductUrl(url){if(!url)return"";try{const parsed=new URL(url,window.location.origin);return parsed.origin+parsed.pathname.replace(/\/$/,"")}catch{return String(url).split("?")[0].replace(/\/$/,"")}}function getHandleFromProductUrl(url){if(!url)return null;const parts=String(url).split("/products/");return parts.length<2?null:parts[1].split("?")[0].replace(/\/$/,"")}function getWishlistHandles(listContents){return Array.isArray(listContents)?listContents.map(item=>getHandleFromProductUrl(item.du)).filter(Boolean):[]}function isProductPage(){return window.themeVariables&&window.themeVariables.settings&&window.themeVariables.settings.pageType==="product"}let globalUpdateWishlistIcons=null;function initPlpWishlist(swat,wishlistId,listContents){function addToWishlist(productData,lid){if(!productData.variantId||!productData.productId||!productData.url)return;const product={epi:productData.variantId,empi:productData.productId,du:canonicalProductUrl(productData.url)};swat.addToList(lid,product,function(){updateWishlistIcon(productData.handle,!0),window.dispatchEvent(new CustomEvent("wishlist:product-added",{detail:{productId:productData.productId,variantId:productData.variantId,url:product.du}})),typeof window.refreshSwymWishlist=="function"&&window.refreshSwymWishlist().catch(()=>{})},function(error){console.error("Swym addToList error:",error)})}function removeFromWishlist(productData,lid){if(!productData.variantId||!productData.productId||!productData.url)return;const product={epi:productData.variantId,empi:productData.productId,du:canonicalProductUrl(productData.url)};swat.deleteFromList(lid,product,function(){updateWishlistIcon(productData.handle,!1),window.dispatchEvent(new CustomEvent("wishlist:product-removed",{detail:{productId:productData.productId,variantId:productData.variantId,url:product.du}})),typeof window.refreshSwymWishlist=="function"&&window.refreshSwymWishlist().catch(()=>{})},function(error){console.error("Swym deleteFromList error:",error)})}function updateWishlistIcon(handle,isInWishlist){document.querySelectorAll(".product-item").forEach(productItem=>{const productLink=productItem.querySelector(".product-item__aspect-ratio");if(!productLink||getHandleFromProductUrl(productLink.getAttribute("href"))!==handle)return;const wishlistIcon=productItem.querySelector(".product-item__wishlist-icon");wishlistIcon&&(isInWishlist?(wishlistIcon.innerHTML=` 2 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" fill="white" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 4 </svg> 5 `,wishlistIcon.setAttribute("data-in-wishlist","true")):(wishlistIcon.innerHTML=` 6 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 7 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 8 </svg> 9 `,wishlistIcon.setAttribute("data-in-wishlist","false")))})}function updateWishlistIconForSwatchChange(productItem,newProductUrl,cachedListContents){const newHandle=getHandleFromProductUrl(newProductUrl);if(!newHandle)return;const isInWishlist=getWishlistHandles(cachedListContents).includes(newHandle),wishlistIcon=productItem.querySelector(".product-item__wishlist-icon");wishlistIcon&&(isInWishlist?(wishlistIcon.innerHTML=` 10 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 11 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" fill="white" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 12 </svg> 13 `,wishlistIcon.setAttribute("data-in-wishlist","true")):(wishlistIcon.innerHTML=` 14 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 15 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 16 </svg> 17 `,wishlistIcon.setAttribute("data-in-wishlist","false")))}function addSwatchChangeListeners(cachedListContents){document.querySelectorAll(".swatch-item").forEach(swatch=>
17{swatch.removeEventListener("click",swatch.swatchChangeHandler),swatch.swatchChangeHandler=function(){const productItem=swatch.closest(".product-item");if(!productItem)return;const swatchData=swatch.dataset,newProductId=swatchData.groupedProductId,newVariantId=swatchData.groupedProductVariantId||swatchData.groupedProductId;if(!newProductId)return;productItem.setAttribute("data-product-id",newProductId),newVariantId&&productItem.setAttribute("data-variant-id",newVariantId);const listContents2=window.__swymData&&window.__swymData.listContents||cachedListContents;updateWishlistIconForSwatchChange(productItem,swatchData.groupedProductAnchor,listContents2)},swatch.addEventListener("click",swatch.swatchChangeHandler)})}function addWishlistClickListeners(lid){document.querySelectorAll(".product-item__wishlist-icon").forEach(icon=>{icon.removeEventListener("click",icon.wishlistClickHandler),icon.wishlistClickHandler=function(e){e.preventDefault(),e.stopPropagation();const productItem=icon.closest(".product-item");if(!productItem)return;const productId=productItem.getAttribute("data-product-id"),variantId=productItem.getAttribute("data-variant-id"),productLink=productItem.querySelector(".product-item__aspect-ratio");if(!productLink||!productId||productId==="null"||productId==="undefined")return;const productUrl=productLink.getAttribute("href"),handle=getHandleFromProductUrl(productUrl);if(!handle)return;const parsedProductId=parseInt(productId,10),parsedVariantId=parseInt(variantId,10);if(isNaN(parsedProductId)||parsedProductId<=0||isNaN(parsedVariantId)||parsedVariantId<=0)return;const productData={productId:parsedProductId,variantId:parsedVariantId,handle,url:canonicalProductUrl(window.location.origin+productUrl)};icon.getAttribute("data-in-wishlist")==="true"?removeFromWishlist(productData,lid):addToWishlist(productData,lid)},icon.addEventListener("click",icon.wishlistClickHandler)})}function updateWishlistIcons(wishlistProductIds,lid,cachedListContents){document.querySelectorAll(".product-item").forEach(productItem=>{const wishlistIcon=productItem.querySelector(".product-item__wishlist-icon"),productLink=productItem.querySelector(".product-item__aspect-ratio");if(!wishlistIcon||!productLink)return;const handle=getHandleFromProductUrl(productLink.getAttribute("href"));handle&&(wishlistProductIds.includes(handle)?(wishlistIcon.innerHTML=` 18 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 19 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" fill="white" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 20 </svg> 21 `,wishlistIcon.setAttribute("data-in-wishlist","true")):(wishlistIcon.innerHTML=` 22 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 23 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 24 </svg> 25 `,wishlistIcon.setAttribute("data-in-wishlist","false")))}),addWishlistClickListeners(lid),addSwatchChangeListeners(cachedListContents)}function applyListContents(contents){const wishlistProductIds=getWishlistHandles(contents);updateWishlistIcons(wishlistProductIds,wishlistId,contents)}globalUpdateWishlistIcons=applyListContents,applyListContents(listContents),window.addEventListener("wishlist:product-added",e=>{const{productId}=e.detail||{};productId&&document.querySelectorAll(`.product-item[data-product-id="${productId}"] .product-item__wishlist-icon`).forEach(icon=>{icon.innerHTML=` 26 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 27 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" fill="white" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 28 </svg> 29 `,icon.setAttribute("data-in-wishlist","true")})}),window.addEventListener("wishlist:product-removed",e=>{const{productId}=e.detail||{};productId&&document.querySelectorAll(`.product-item[data-product-id="${productId}"] .product-item__wishlist-icon`).forEach(icon=>{icon.innerHTML=` 30 <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 31 <path d="M12.25 16.6562L19 20.875V4H5.5V20.875L12.25 16.6562Z" stroke="white" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="square"/> 32 </svg> 33 `,icon.setAttribute("data-in-wishlist","false")})}),window.addEventListener("swym:bootstrapped",event=>{event.detail&&event.detail.listContents&&applyListContents(event.detail.listContents)})}function startPlpWishlist(data){!data||!data.swat||!data.wishlistId||initPlpWishlist(data.swat,data.wishlistId,data.listContents||[])}isProductPage()||(window.__swymData?startPlpWishlist(window.__swymData):window.addEventListener("swym:bootstrapped",event=>{startPlpWishlist(event.detail)},{once:!0})),document.addEventListener("pagination:content-updated",function(){if(window.__swymData&&globalUpdateWishlistIcons){globalUpdateWishlistIcons(window.__swymData.listContents||[]);return}typeof window.refreshSwymWishlist=="function"&&window.refreshSwymWishlist().then(data=>{globalUpdateWishlistIcons&&globalUpdateWishlistIcons(data.listContents||[])}).catch(()=>{})}); 34//# sourceMappingURL=/cdn/shop/t/956/assets/swym_plp.bundle.js.map?v=166794538424412334341790853447
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.