const init=_swat=>{fetchList(_swat),window.swymSelectedListId||createList(_swat),addSwymEventListener(_swat)},createList=_swat=>{const listConfig={lname:"My Wishlist"};_swat.createList(listConfig,({lid})=>{console.log("Successfully created a new List",lid),window.swymSelectedListId=lid},error=>console.error("Error while creating a List",error))},fetchList=_swat=>{_swat.fetchLists({callbackFn:lists=>{console.log("Fetched all Lists",lists),window.swymWishLists=lists,window.swymSelectedListId=lists?.[0]?.lid||null,updateButtonState()},errorFn:error=>console.error("Error fetching all Lists",error)})},refreshList=_swat=>{window.swymWishLists=null,fetchList(_swat)},addToWishlist=(_swat,product,event)=>{const button=event.currentTarget.closest("swymcs-wishlist-button"),lid=WishlistPlusListUIContext?.WishlistListDefaultList.lid;_swat.addToList(lid,product,addedItem=>{console.log("Product added to wishlist!",addedItem),_swat.initializeActionButtons("body")},error=>{console.error("Error adding product to wishlist",error),_swat.initializeActionButtons("body")})},removeFromWishlist=(_swat,product,event)=>{const button=event.currentTarget.closest("swymcs-wishlist-button"),lid=WishlistPlusListUIContext?.WishlistListDefaultList.lid;_swat.deleteFromList(lid,product,deletedItem=>{console.log("Product removed from wishlist!",deletedItem),_swat.initializeActionButtons("body")},error=>{console.error("Error removing product from wishlist",error),_swat.initializeActionButtons("body")})},updateButtonState=()=>{const buttons=document.querySelectorAll(".swymcs-wishlist-button");for(const button of buttons){const{epi,empi}=button.dataset;let isWishlisted=!1;if(WishlistPlusListUIContext.WishlistListDefaultList)for(const item of WishlistPlusListUIContext.WishlistListDefaultList.listcontents){if(Number(item.empi)===Number(empi)&&Number(item.epi)===Number(epi)){isWishlisted=!0;break}if(isWishlisted)break}updateButtonWishlistState(button,isWishlisted)}},updateButtonWishlistState=(button,isWishlisted)=>{const settings=button.dataset.settings?JSON.parse(button.dataset.settings):{};button.classList.toggle("swym-added-custom",isWishlisted),isWishlisted&&settings.disable_added_to_wishlist?button.disabled=!0:button.disabled=!1},addSwymEventListener=_swat=>{_swat.evtLayer.addEventListener(_swat.JSEvents.addedToWishlist,event=>{const{iu:image,dt:title}=event.detail.d;showCustomNotification(_swat,image,title,"add",1),refreshList(_swat)}),_swat.evtLayer.addEventListener(_swat.JSEvents.removedFromWishlist,event=>{const{iu:image,dt:title}=event.detail.d;showCustomNotification(_swat,image,title,"remove",1),refreshList(_swat)})},showCustomNotification=(_swat,image,title,action,listCount)=>{const message=`
${title} has been ${action==="remove"?"removed from":"added to"} ${listCount===1?"the list!":"lists!"}
`;console.log(message)};class SwymWishlistButton extends HTMLElement{constructor(){super(),this.isWishlisted=!1,this.initElement(),this.checkButtonState(),this.hideButton(),window.SwymCallbacks||(window.SwymCallbacks=[]),window.SwymCallbacks.push(this.initializeSwymButton.bind(this))}connectedCallback(){this.svg=this.querySelector("svg")}initElement(){this.button=this.querySelector("button")}updateWishlistButtonState(){const relatedButton=this.button;this.isWishlisted?(this.button.classList.add("swym-added-custom"),this.svg.setAttribute("fill","#03143B")):(this.button.classList.remove("swym-added-custom"),this.svg.setAttribute("fill","none"))}checkButtonState(){document.addEventListener(WishlistPlusListUIContext.CustomEvents?.SwymWishlistFetched,event=>{const defaultList=event.detail.defaultList;for(const product of defaultList.listcontents)if(Number(product.empi)===Number(this.button.dataset.empi)&&Number(product.epi)===Number(this.button.dataset.epi)){this.isWishlisted=!0;break}this.updateWishlistButtonState()})}updateCurrentButtonState(){this.isWishlisted=!1;const defaultList=WishlistPlusListUIContext.WishlistListDefaultList;for(const product of defaultList.listcontents)if(Number(product.empi)===Number(this.button.dataset.empi)&&Number(product.epi)===Number(this.button.dataset.epi)){this.isWishlisted=!0;break}this.updateWishlistButtonState()}initializeSwymButton(_swat){const button=this.querySelector("button");this.showButton(),button.addEventListener("click",event=>{const relatedButton=event.target.closest("swymcs-wishlist-button"),relatedInnerButton=relatedButton.querySelector("button"),product={epi:relatedInnerButton.dataset.epi,empi:relatedInnerButton.dataset.empi,du:relatedInnerButton.dataset.du};_swat.isCollectionsEnabled()?renderPopup(product):relatedButton.isWishlisted?(this.isWishlisted=!1,this.updateWishlistButtonState(),removeFromWishlist(_swat,product,event)):(this.isWishlisted=!0,this.updateWishlistButtonState(),addToWishlist(_swat,product,event))})}showButton(){this.button.style.display="block"}hideButton(){this.button.style.display="none"}}customElements.get("swymcs-wishlist-button")||customElements.define("swymcs-wishlist-button",SwymWishlistButton);const swymcsWishlistFunctions={init,fetchList,refreshList,addToWishlist,removeFromWishlist,updateButtonState};window.SwymCallbacks||(window.SwymCallbacks=[]),window.SwymCallbacks.push(swymcsWishlistFunctions.init),window.swymcsWishlistFunctions=swymcsWishlistFunctions;const updateWishlistButtonData=(wishlistButtonContainer,detail)=>{if(wishlistButtonContainer){const pdpWishlistButton=wishlistButtonContainer.querySelector("button");pdpWishlistButton&&(pdpWishlistButton.dataset.empi=detail.id,pdpWishlistButton.dataset.epi=detail.swymVariantId,location.pathname.includes("/products")&&(pdpWishlistButton.dataset.du=location.href.split("?")[0]),wishlistButtonContainer.updateCurrentButtonState())}},onSwymHandleSwatchOptionChange=({detail})=>{const customWishlistButton=document.querySelector("#swymcs-wishlist-pdp-button"),customWishlistDockerButton=document.querySelector("dna-product-docked-controls").shadowRoot.querySelector("#swymcs-wishlist-pdp-docker-button");updateWishlistButtonData(customWishlistButton,detail),updateWishlistButtonData(customWishlistDockerButton,detail)};document.addEventListener("dna:pdp:option-change",onSwymHandleSwatchOptionChange);
//# sourceMappingURL=/cdn/shop/t/1163/assets/swym-custom-wl-button.js.map?v=47820539650546951811760566324