1if(!window.theme._registeredSections.product){let formatPriceWithSup2=function(price2){const formatted=slate.Currency.formatMoney(price2,window.theme.moneyFormat).replace(/<\/?[^>]+(>|$)/g,""),symbol=window.theme.currentCurrencySymbol;return formatted.includes(symbol)?formatted.replace(symbol,`<em class="currency-symbol">${symbol}</em>`):`<em class="currency-symbol">${symbol}</em>${slate.Currency.removeCurrencySymbol(formatted)}`},checkAfterShipProducts2=function(eventId){console.log("eventId",eventId),window.theme.azRelatedProducts=window.theme.azRelatedProducts||{};const relatedSections=document.querySelectorAll(`[data-personalization-id="${eventId}"]`);Array.from(relatedSections).forEach(function(section){let productItems=section.querySelectorAll(".apz_product_item");Array.from(productItems).forEach(function(productItem){let productHandle=productItem.dataset.apzUpsellProductHandle,productData=window.theme.azRelatedProducts[productHandle];productData!=null?productData.variants.length>1&&updateAfterShipProductItem2(productItem,productData):fetch(`/products/${productHandle}.js`).then(response=>response.json()).then(data=>{window.theme.azRelatedProducts[productHandle]=data,data.variants.length>1&&updateAfterShipProductItem2(productItem,data)})})})},updateAfterShipProductItem2=function(product,data){let priceSelector=product.querySelector(".am_rec_item_price");if(priceSelector){var sortedVariants=data.variants.sort((a,b)=>a.price-b.price),firstAvailableVariant=sortedVariants.find(variant=>variant.available===!0);firstAvailableVariant&&(price=firstAvailableVariant.price,priceSelector.innerHTML=formatPriceWithSup2(price))}};var formatPriceWithSup=formatPriceWithSup2,checkAfterShipProducts=checkAfterShipProducts2,updateAfterShipProductItem=updateAfterShipProductItem2;theme.Product=(function(){function Product(container){this.container=container,this.$container=$(container),this.offer=this.container.dataset.offer;const jsonContainer=this.container.querySelector("[data-product-json-pdp]");let parsedData=null;try{parsedData=jsonContainer?JSON.parse(jsonContainer.innerText):null}catch(e){console.warn("PDP: invalid product JSON",e)}this.data=parsedData||{};const options={$container:this.$container,enableHistoryState:this.container.dataset.enableHistoryState||!1,singleOptionSelector:"[data-single-option-selector-pdp]",originalSelectorId:"[data-product-select-pdp]",product:this.data};this.variants=new slate.Variants(options),this.$container.on("variantChange",this.onVariantChanged.bind(this)),this.$container.on("updateQuantity",this.updateQuantitySelector.bind(this)),this.$container.on("variantImageChange",this.updateImages.bind(this)),this.addButtons=this.container.querySelectorAll(".pdp_main_product__add"),this.updateQuantitySelector();const self=this;if(this.addButtons.forEach(addButton=>{addButton.addEventListener("click",self.addClickHandler.bind(self))}),this.requiredFields=this.container.querySelectorAll(".gift-card-required"),this.requiredFields&&this.requiredFields.forEach(requiredField=>{requiredField.addEventListener("keyup",self.checkGiftInput.bind(self))}),this.sendOnField=this.container.querySelector(".gift-card-send-on"),this.sendOnField){const sendOnWrap=this.sendOnField.closest("[data-gc-date-wrap]");this.sendOnDisplay=sendOnWrap?sendOnWrap.querySelector("[data-gc-date-display]"):null;const sendOnVisual=this.sendOnDisplay||this.sendOnField,softValidate=()=>{sendOnVisual.getAttribute("aria-invalid")==="true"&&self.checkGiftInput()},fullValidate=self.checkGiftInput.bind(self);this.sendOnField.addEventListener("input",softValidate),this.sendOnField.addEventListener("change",softValidate),this.sendOnDisplay?(this.sendOnDisplay.addEventListener("input",softValidate),this.sendOnDisplay.addEventListener("blur",fullValidate)):this.sendOnField.addEventListener("blur",fullValidate)}if(this.gcSubmitAttempted=!1,this.container.addEventListener("pdp:add-blocked",()=>{(this.requiredFields&&this.requiredFields.length||this.sendOnField)&&(this.gcSubmitAttempted=!0,this.checkGiftInput())}),this.initImageCarousels(),this.initImageZoom(),this.initRelatedProducts(),this.toggleShippingInfoPopup(),this.shippingStockArray=[],document.querySelectorAll(".product .animate-start").forEach(function(el){el.classList.remove("animate-start")}),this.offer){this.offerPopup=document.querySelector(".multibuy-offer__popup"),this.offerPopupClose=document.querySelector(".multibuy-offer__popup--close"),this.offerPopupMessage=document.querySelector(".multibuy-offer__popup-message"),this.offerPopupLink=document.querySelector(".multibuy-offer__popup-btn"),this.offerPopupClose&&this.offerPopupClose.addEventListener("click",this.toggleOfferPopup.bind(this));const splitOffer=this.offer.split("-"),safeOfferNumberRegex=/([^\d-.]|)|/g,purgedOfferItems=splitOffer[0].replace(safeOfferNumberRegex,""),purgedOfferMoney=splitOffer[splitOffer.length-1].replace(safeOfferNumberRegex,"");this.offerItems=Number(purgedOfferItems),this.offerMoney=purgedOfferMoney}var productOfferBadge=".fancy-background";theme.CurrencySwitcher.switchCurrency(productOfferBadge),this.sizeguideTabs=document.querySelectorAll(".sizeguide__tab-header"),this.sizeguideTabs&&this.sizeguideTabs.forEac
1h(sizeguideTab=>{sizeguideTab.addEventListener("click",this.updateSizeguideTab.bind(this))});var sizeGuideWrapper=document.getElementById("size-guide-dialog");if(sizeGuideWrapper){let closeDialog2=function(){hideTrigger?hideTrigger.click():sizeGuideDialog&&(typeof sizeGuideDialog.close=="function"&&sizeGuideDialog.close(),sizeGuideDialog.removeAttribute("open"))},closest2=function(el,selector){for(;el&&el.nodeType===1;){if(el.matches?el.matches(selector):el.msMatchesSelector&&el.msMatchesSelector(selector))return el;el=el.parentElement}return null};var closeDialog=closeDialog2,closest=closest2,sizeGuideDialog=sizeGuideWrapper.querySelector("dialog.dialog__content"),overlay=sizeGuideWrapper.querySelector(".dialog__overlay"),hideTrigger=sizeGuideWrapper.querySelector("dialog.dialog__content [data-a11y-dialog-hide]");overlay&&overlay.addEventListener("click",function(e){e.target===overlay&&closeDialog2()}),sizeGuideDialog&&(sizeGuideDialog.addEventListener("click",function(e){if(e.target===sizeGuideDialog){var rect=sizeGuideDialog.getBoundingClientRect(),outside=e.clientX<rect.left||e.clientX>rect.right||e.clientY<rect.top||e.clientY>rect.bottom;outside&&closeDialog2()}}),sizeGuideDialog.addEventListener("cancel",function(e){e.preventDefault(),closeDialog2()})),document.addEventListener("click",function(e){if(!(!sizeGuideDialog||!sizeGuideDialog.open)){var clickedInsideDialog=sizeGuideDialog.contains(e.target),clickedInsideWrapper=sizeGuideWrapper.contains(e.target);clickedInsideWrapper&&!clickedInsideDialog&&(closest2(e.target,"[data-a11y-dialog-hide]")||closeDialog2())}},!0),document.addEventListener("keydown",function(e){e.key==="Escape"&&sizeGuideDialog&&sizeGuideDialog.open&&closeDialog2()})}const modalTrigger=document.querySelectorAll("[data-a11y-dialog-show]"),modalClose=document.querySelectorAll("[data-a11y-dialog-hide]"),lockModalScroll=function(){if(document.body.classList.contains("modal-active"))return;const scrollPosition=window.pageYOffset||document.documentElement.scrollTop;document.body.dataset.modalScrollPosition=scrollPosition,document.body.style.top=`-${scrollPosition}px`,document.body.classList.add("modal-active")},unlockModalScroll=function(){const scrollPosition=document.body.dataset.modalScrollPosition;document.body.classList.remove("modal-active"),document.body.style.top="",delete document.body.dataset.modalScrollPosition,scrollPosition!==void 0&&window.scrollTo(0,parseInt(scrollPosition,10)||0)};if(modalTrigger.length)for(let i=0;i<modalTrigger.length;i++)modalTrigger[i].addEventListener("click",lockModalScroll);if(modalClose.length)for(let i=0;i<modalClose.length;i++)modalClose[i].addEventListener("click",unlockModalScroll);const targetNode=this.container,config={attributes:!0,childList:!0,subtree:!0};function moveSwymWishlistIntoSlot(){try{const addToCartWrapper=targetNode.querySelector(".product-form__add-to-cart");if(!addToCartWrapper)return;const quantityWrapper=document.querySelector("[data-pdp-wishlist-slot]")||addToCartWrapper.querySelector(".product-form__add_quantity")||addToCartWrapper.querySelector(".product-form__quantity");if(!quantityWrapper)return;const swymWrapper=addToCartWrapper.querySelector(".swym-atw-btn-wrapper");if(!swymWrapper)return;const wishlistContainer=swymWrapper.querySelector("#swym-atw-button-container")||swymWrapper.querySelector(".swym-atw-button-container");if(!wishlistContainer)return;quantityWrapper.contains(wishlistContainer)||quantityWrapper.appendChild(wishlistContainer);const addButton=addToCartWrapper.querySelector(".pdp_main_product__add"),addButtonParent=addToCartWrapper.querySelector(".product-form__add")||addToCartWrapper;addButton&&addButtonParent&&addButton.parentElement!==addButtonParent&&addButtonParent.appendChild(addButton),swymWrapper.querySelector("*")||swymWrapper.parentNode&&swymWrapper.parentNode.removeChild(swymWrapper)}catch{}}function callback(mutations,observerInstance){for(let mutation of mutations){if(mutation.type==="attributes"&&mutation.attributeName==="class"){const el=mutation.target;el.classList.contains("bookmarked")?el.setAttribute("aria-label",`Remove ${el.dataset.productTitle?el.dataset.productTitle+" ":""}from wishlist`):el.classList.contains("unbookmarked")&&el.setAttribute("aria-label",`Add ${el.dataset.productTitle?el.dataset.productTitle+" ":""}to wishlist`)}mutation.type==="childList"&&Array.from(mutation.addedNodes||[]).some(node=>node&&node.nodeType===1?node.classList&&node.classList.contains("swym-atw-btn-wrapper")||node.id==="swym-atw-button-container"?!0:typeof node.querySelector=="function"?!!(node.querySelector(".swym-atw-btn-wrapper")||node.querySelector("#swym-atw-button-container")):!1:!1)&&moveSwymWishlistIntoSlot()}}new MutationObserver(callback).observe(targetNode,config),moveSwymWishlistIntoSlot();let viewItemListDataLayerDelay;const handleViewRelatedProductsEvent=()=>{const relatedProductsData=window.theme.relatedProductsData;if(!relatedProductsData)return;const{items:allResults,itemListId,itemListName,itemListType}=relatedProductsData;let skusComingIntoView=[];const viewItemListEvent=(itemList=[])=>{itemList.length&&(viewItemListDataLayerDelay&&clearTimeout(viewItemListDataLayerDelay),viewItemListDataLayerDelay=setTimeout(()=>{let promotionEvent=JSON.parse(localStorage.getItem("ga4-promotionView")||"{}");const menuNavigationState=JSON.parse(localStorage.getItem("ga4-navigationClick")||"{}").menu_navigation_state||{};window.pushEvent({event:"view_item_list",menu_navigation_state:menuNavigationState,ecommerce:Object.assign(promotionEvent,{items:itemList,item_list_id:itemListId,item_list_name:itemListName,item_list_type:itemListType,item_total_count:allResults.length,item_visible_count:window.theme.relatedProductsData.itemsVisible.length})},"ecommerce"),skusComingIntoView=[]},1e3))},productCards=document.querySelectorAll(".related-products .product-card");productCards.length&&productCards.forEach(card=>{let isVisibleNow=window.theme.isElementVisibleInViewport(card);card.setAttribute("data-visible-by-default",isVisibleNow),isVisibleNow&&skusComingIntoView.push(card.getAttribute("data-sku"));const handleIntersection=(entries,observer3)=>
1{entries.forEach(entry=>{const visibleByDefault=card.getAttribute("data-visible-by-default")||!1;if(isVisibleNow=window.theme.isElementVisibleInViewport(card,!0),entry.intersectionRatio>0&&(observer3.unobserve(entry.target),card.setAttribute("data-visible-in-viewport",isVisibleNow),isVisibleNow)){skusComingIntoView.push(card.getAttribute("data-sku"));const itemsInViewport=allResults.filter(item=>skusComingIntoView.includes(item.item_id));relatedProductsData.itemsVisible=relatedProductsData.itemsVisible||[];const visibleItems=itemsInViewport.map(item=>{const itemExists=relatedProductsData.itemsVisible.find(listItem=>listItem.item_id===item.item_id),newItem=item;return newItem.visible_by_default=visibleByDefault,itemExists||window.theme.relatedProductsData.itemsVisible.push(newItem),newItem});viewItemListEvent(visibleItems)}})};new IntersectionObserver(handleIntersection).observe(card)})};if(this.data&&this.data.title){let promotionEvent=JSON.parse(localStorage.getItem("ga4-promotionView")||"{}");const menuNavigationState=JSON.parse(localStorage.getItem("ga4-navigationClick")||"{}").menu_navigation_state||{};if(window.theme.settings.store=="US"){var globale="false";if(window.Shopify.currency.active!="USD")var globale="true";window.pushEvent({event:"productView",menu_navigation_state:menuNavigationState,ecommerce:Object.assign(promotionEvent,{currencyCode:window.theme.currency,detail:{products:[{name:this.data.title.replace(/["']/g,""),id:`${this.data.id}_${this.data.selected_or_first_available_variant.id}`,price:this.data.price/100,brand:this.data.vendor,category:this.data.type,GlobalE:globale}]}})})}else window.pushEvent({event:"productView",menu_navigation_state:menuNavigationState,ecommerce:Object.assign(promotionEvent,{currencyCode:window.theme.currency,detail:{products:[{name:this.data.title.replace(/["']/g,""),id:`${this.data.id}_${this.data.selected_or_first_available_variant.id}`,price:this.data.price/100,brand:this.data.vendor,category:this.data.type}]}})})}}return Product.prototype.updateSizeguideTab=function(event){const clickedTab=event.target;this.sizeguideTabs.forEach(tab=>{tab.classList.remove("sizeguide__tab-header--active")}),clickedTab.classList.add("sizeguide__tab-header--active");const tabIndex=clickedTab.getAttribute("data-index"),tabsContent=document.querySelectorAll(".sizeguide__tab-content");tabsContent&&tabsContent.forEach(tabContent=>{tabContent.classList.remove("sizeguide__tab-content--active")});const selectedTabContent=document.querySelector('[data-content-index="'+tabIndex+'"]');selectedTabContent&&selectedTabContent.classList.add("sizeguide__tab-content--active")},Product.prototype.updateQuantitySelector=function(){const quantitySelector=this.container.querySelector('.quantity-selector[data-component="QuantitySelector"]');let currentVariant=this.variants.currentVariant,quantity=currentVariant.inventory_quantity,cartData=theme.sideCart.cart,selectSkuItemQty=0;if(cartData&&cartData.items&&Array.isArray(cartData.items))for(let i=0;i<cartData.items.length;i++){const currentItem=cartData.items[i];currentItem&¤tItem.sku&¤tItem.sku===currentVariant.sku&&(selectSkuItemQty+=typeof currentItem.quantity=="number"?currentItem.quantity:0)}if(quantitySelector){const skuParagraph=this.$container.find("#tab-pd p.product-sku");if(skuParagraph.length>0){let skuQty=skuParagraph.data("shipping-stock-qty");!isNaN(skuQty)&&skuQty!==null&&skuQty!==void 0&&(quantity=skuQty)}quantity=quantity-selectSkuItemQty,quantity<1&&(quantity=1),quantitySelector._quantitySelector&&(quantitySelector._quantitySelector.max=quantity,quantitySelector._quantitySelector.input.value>quantity&&(quantitySelector._quantitySelector.input.value=quantity),quantitySelector.querySelector("input.quantity-selector__quantity")&&quantitySelector.querySelector("input.quantity-selector__quantity").setAttribute("max",quantity),quantitySelector._quantitySelector.onInputUpdated())}},Product.prototype.onVariantChanged=function(event){const variant=event.variant;if(this.variants.currentVariant=variant,this.container.querySelector("[data-product-price]")){let moneyFormat=window.theme.moneyFormat||null;moneyFormat=moneyFormat.replace(window.theme.currentCurrencySymbol,""),window.theme.currencyFormat=="money_format"&&(moneyFormat=moneyFormat.replace(window.theme.currentCurrency,"")),this.productPrice
1=this.container.querySelector("[data-product-price]"),this.priceWrappers=this.container.querySelectorAll("[data-price-wrapper]"),Array.from(this.priceWrappers).forEach(function(priceWrapper){let comparePriceWrapper=priceWrapper.querySelector("[data-compare-price-wrapper]"),comparePriceText=priceWrapper.querySelector("[data-compare-price]"),mainPriceText=priceWrapper.querySelector("[data-product-price]"),currencySymbol=priceWrapper.querySelector("[data-currency-symbol]");mainPriceText&&(mainPriceText.innerHTML=slate.Currency.formatMoney(variant.price,moneyFormat)),priceWrapper&&priceWrapper.classList.toggle("pdp-on-sale",variant.compare_at_price>variant.price),comparePriceText&&(comparePriceText.innerHTML=variant.compare_at_price>variant.price?slate.Currency.formatMoney(variant.compare_at_price,moneyFormat):""),comparePriceWrapper&&comparePriceWrapper.classList.toggle("hide",!(variant.compare_at_price>variant.price)),currencySymbol&¤cySymbol.classList.toggle("sale-price-text-color",variant.compare_at_price>variant.price),mainPriceText&&(variant.compare_at_price>variant.price?mainPriceText.setAttribute("data-product-original-price",""):mainPriceText.removeAttribute("data-product-original-price"))}),this.productSku=this.container.querySelectorAll(".product-sku"),this.productSku.forEach(function(skuNode){const skuLabel=skuNode.getAttribute("data-sku-label")||"SKU",skuValue=variant.sku||"";skuNode.setAttribute("data-sku",skuValue),skuNode.innerText=skuLabel+": "+skuValue,skuNode.hidden=!skuValue})}const btnOutOfStock=this.container.querySelector(".btn__outofstock"),pdpFrmQty=this.container.querySelector(".product-form__quantity");variant.available?(this.addButtons.forEach(addButton=>{addButton.removeAttribute("disabled"),addButton.querySelector("span").innerText=theme.strings.addToCart,pdpFrmQty&&pdpFrmQty.classList.contains("disabled")&&pdpFrmQty.classList.remove("disabled")}),btnOutOfStock&&(btnOutOfStock.style.display="none")):(this.addButtons.forEach(addButton=>{addButton.setAttribute("disabled","disabled"),addButton.querySelector("span").innerText=theme.strings.outOfStock,pdpFrmQty&&pdpFrmQty.classList.add("disabled")}),btnOutOfStock&&(btnOutOfStock.style.display="block")),this.updateQuantitySelector();const getInventoryData=()=>{const scriptTag=document.getElementById("VariantInventoryJson");if(!scriptTag)return null;try{return JSON.parse(scriptTag.innerHTML)}catch(e){return console.error("JSON parse error for InventoryData:",e),null}},badgeContainer=this.container.querySelector(".pdp-product__badges"),stockBadge=this.container.querySelector("[data-stock-badge]");if(badgeContainer&&stockBadge&&variant){const inventoryData=getInventoryData();let inventoryQuantity=0;if(inventoryData&&inventoryData.variants){const currentVariantData=inventoryData.variants.find(v=>v.id===variant.id);inventoryQuantity=currentVariantData?currentVariantData.inventory_quantity:0}const maxStock=parseInt(stockBadge.getAttribute("data-max-stock"))||0,stockBuffer=parseInt(stockBadge.getAttribute("data-stock-buffer"))||0,threshold=maxStock+stockBuffer;if(variant.inventory_management==="shopify"&&variant.inventory_policy==="deny"&&inventoryQuantity>0&&inventoryQuantity<=threshold){if(inventoryQuantity<=stockBuffer)stockBadge.innerHTML=stockBadge.getAttribute("data-low-stock-text")||"";else{const startText=stockBadge.getAttribute("data-start-text")||"",endText=stockBadge.getAttribute("data-end-text")||"",displayQuantity=inventoryQuantity-stockBuffer;stockBadge.innerHTML=`${startText} <span class="stock-count">${displayQuantity}</span> ${endText}`}stockBadge.classList.remove("hide")}else stockBadge.classList.add("hide")}},Product.prototype.getUniqueOffer=function(offer,quantity){const getUsedOffers=localStorage.getItem("multibuy");let random=Math.floor(Math.random()*100+1),generatedOffer="",addedQty=1,allOffers=[],generatedQtyOffer="",isAdded=!1;function getSingleOffer(singleOffer){return singleOffer.includes(generatedOffer)}if(getUsedOffers){allOffers=getUsedOffers.split(",");const alreadyAdded=allOffers.filter(singleOffer=>singleOffer.includes(offer));alreadyAdded?alreadyAdded.forEach(addedOffer=>{if(addedQty=parseInt(addedOffer.split(":")[1],10),addedQty<this.offerItems){addedQty+=quantity,generatedOffer=addedOffer.split(":")[0],generatedQtyOffer=generatedOffer+":"+addedQty;
1const offerIndex=allOffers.indexOf(addedOffer);allOffers[offerIndex]=generatedQtyOffer,isAdded=!0}}):(addedQty=quantity,generatedOffer=offer+"-"+random,generatedQtyOffer=generatedOffer+":"+addedQty,allOffers.push(generatedQtyOffer),isAdded=!0)}else addedQty=quantity,generatedOffer=offer+"-"+random,generatedQtyOffer=generatedOffer+":"+addedQty,allOffers.push(generatedQtyOffer),isAdded=!0;if(!isAdded){let notAdded=!0;for(addedQty=quantity,allOffers=getUsedOffers.split(",");notAdded;)random=Math.floor(Math.random()*100+1),generatedOffer=offer+"-"+random,generatedQtyOffer=generatedOffer+":"+addedQty,allOffers.filter(getSingleOffer).length===0&&(notAdded=!1,allOffers.push(generatedQtyOffer))}try{localStorage.setItem("multibuy",allOffers.join(","))}catch(e){console.error("Failed to save multibuy to localStorage:",e)}return generatedOffer},Product.prototype.checkMultibuyQty=function(quantity){const getUsedOffers=localStorage.getItem("multibuy"),offer=this.offer.split("-")[0]+"-"+this.offer.split("-")[2],offerQty=parseInt(this.offer.split("-")[0],10),numberOffers=quantity/offerQty,generatedQty=[];let quantityLeft;if(getUsedOffers){const alreadyAdded=getUsedOffers.split(",").filter(singleOffer=>singleOffer.includes(offer));if(alreadyAdded)alreadyAdded.forEach(addedOffer=>{const addedQty=parseInt(addedOffer.split(":")[1],10);if(addedQty!==offerQty)if(addedQty+quantity>offerQty){quantityLeft=quantity;for(let i=0;i<numberOffers;i++)i===0?(generatedQty.push(offerQty-addedQty),quantityLeft-=offerQty-addedQty):i>0&&quantityLeft>offerQty?(generatedQty.push(offerQty),quantityLeft-=offerQty):(generatedQty.push(quantityLeft),quantityLeft-=quantityLeft)}else generatedQty.push(quantity)});else if(quantity>offerQty){quantityLeft=quantity;for(let i=0;i<numberOffers;i++)quantityLeft>offerQty?(generatedQty.push(offerQty),quantityLeft-=offerQty):(generatedQty.push(quantityLeft),quantityLeft-=quantityLeft)}else generatedQty.push(quantity)}else if(quantity>offerQty){quantityLeft=quantity;for(let i=0;i<numberOffers;i++)quantityLeft>offerQty?(generatedQty.push(offerQty),quantityLeft-=offerQty):(generatedQty.push(quantityLeft),quantityLeft-=quantityLeft)}else generatedQty.push(quantity);if(generatedQty.length===0)if(quantity>offerQty){quantityLeft=quantity;for(let i=0;i<numberOffers;i++)quantityLeft>offerQty?(generatedQty.push(offerQty),quantityLeft-=offerQty):(generatedQty.push(quantityLeft),quantityLeft-=quantityLeft)}else generatedQty.push(quantity);return quantityLeft>0&&generatedQty.push(quantityLeft),generatedQty},Product.prototype.checkGiftInput=function(){const re=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;let formIsValid=!0;const form=this.container.querySelector(".product__form"),attempted=this.gcSubmitAttempted===!0;if(this.requiredFields.forEach(requiredField=>{if(requiredField.disabled){requiredField.setAttribute("aria-invalid",!1);const disabledAlert=requiredField.parentNode.querySelector(".field__error-alert");disabledAlert&&(disabledAlert.style.display="none");return}let isFilled=!0;requiredField.type==="email"?isFilled=re.test(requiredField.value.toLowerCase()):requiredField.value===""?isFilled=!1:isFilled=!0,isFilled||(formIsValid=!1);const fieldEmpty=requiredField.value==="",showError=!isFilled&&(attempted||!fieldEmpty),errorAlert=requiredField.parentNode.querySelector(".field__error-alert");if(!showError)requiredField.setAttribute("aria-invalid",!1),errorAlert&&(errorAlert.style.display="none");else if(requiredField.setAttribute("aria-invalid",!0),errorAlert){const message=!fieldEmpty&&errorAlert.dataset.invalidText?errorAlert.dataset.invalidText:errorAlert.dataset.requiredText;message&&(errorAlert.textContent=message),errorAlert.style.display="block"}}),this.sendOnField){const scheduleRadio=document.querySelector('[data-gc-send-mode] input[type="radio"][value="schedule"]'),scheduling=!this.sendOnField.disabled&&!!(scheduleRadio&&scheduleRadio.checked),chosenDate=this.sendOnField.value,typedText=this.sendOnDisplay?this.sendOnDisplay.value.trim():"";let dateIsValid=!0,dateIsEmpty=!1,dateIsMalformed=!1;if(scheduling)if(!chosenDate)dateIsValid=!1,dateIsEmpty=typedText==="",dateIsMalformed=!dateIsEmpty;else if(!/^\d{4}-\d{2}-\d{2}
1$/.test(chosenDate))dateIsValid=!1,dateIsMalformed=!0;else{const now=new Date,pad=value=>value<10?"0"+value:String(value),browserToday=now.getFullYear()+"-"+pad(now.getMonth()+1)+"-"+pad(now.getDate()),minDate=this.sendOnField.min,maxDate=this.sendOnField.max;dateIsValid=chosenDate>browserToday&&(!minDate||chosenDate>=minDate)&&(!maxDate||chosenDate<=maxDate)}dateIsValid||(formIsValid=!1);const showDateError=!dateIsValid&&(attempted||!dateIsEmpty);this.sendOnField.setAttribute("aria-invalid",showDateError),this.sendOnDisplay&&this.sendOnDisplay.setAttribute("aria-invalid",showDateError);const dateError=this.sendOnField.parentNode.querySelector(".field__error-alert");if(dateError){if(showDateError){let message;if(dateIsEmpty)message=dateError.dataset.requiredText;else if(dateIsMalformed){const skeleton=this.sendOnDisplay&&this.sendOnDisplay.getAttribute("data-gc-format")||"";message=(dateError.dataset.formatText||dateError.dataset.invalidText||"").replace("[format]",skeleton).trim()}else message=dateError.dataset.invalidText;message&&(dateError.textContent=message)}dateError.style.display=showDateError?"block":"none"}}form.classList.remove("form--needs-validation"),formIsValid?form.classList.remove("form--invalid"):form.classList.add("form--invalid")},Product.prototype.addClickHandler=function(event){const productData=this.variants&&this.variants.product;if(!productData||!productData.variants){console.warn("PDP add: product data unavailable, falling back to native form submit");return}if(event.preventDefault(),event.target.classList.contains("product--sold-out")){this.showBackInStock();return}const form=this.container.querySelector(".product__form");if((this.requiredFields&&this.requiredFields.length||this.sendOnField)&&(this.gcSubmitAttempted=!0,this.checkGiftInput(),form.classList.contains("form--invalid"))){event.stopPropagation();const firstInvalid=form.querySelector('[aria-invalid="true"]');firstInvalid&&firstInvalid.focus();return}this.addButtons.forEach(addButton=>{addButton.classList.add("btn--loading")});const variant=this.variants.currentVariant,product=this.variants.product,sizeIndex=product.options.indexOf("Size"),size=variant["option"+(sizeIndex+1)];let description;window.theme.template==="product.gift-card"?description="Amount: "+size:description="Size: "+size;const options={};product.options.forEach((option,index)=>{options[option]=variant[`option${index+1}`]});let max=999;variant.inventory_management==="shopify"&&variant.inventory_policy==="deny"&&(max=variant.inventory_quantity);let quantity=1;form.quantity&&(quantity=Number(form.quantity.value));let item,properties={},productCollections=[];if(this.variants.product.collections){const collections=this.variants.product.collections;productCollections=collections.map(collection=>collection.title?collection.title:collection);const collectionHandles=collections.map(c=>c.handle);properties._collections=collectionHandles.sort().toString()}const getSkuItemTotalQuantity=(cartData,targetSku)=>{let selectSkuItemQty=0;if(!cartData||!cartData.items||!Array.isArray(cartData.items))return console.log("can not got cart data"),0;for(let i=0;i<cartData.items.length;i++){const currentItem=cartData.items[i];currentItem&¤tItem.sku&¤tItem.sku===targetSku&&(selectSkuItemQty+=typeof currentItem.quantity=="number"?currentItem.quantity:0)}return selectSkuItemQty},getProductInventoryStock=()=>{const skuParagraph=$("#tab-pd").find("p.product-sku");return skuParagraph.length>0?skuParagraph.data("shipping-stock-qty")||max:null};function isActualNumber(value){return!(typeof value!="number"||isNaN(value))}function isItemEmptyObject(obj){return obj===null||typeof obj>"u"?!0:typeof obj!="object"||Array.isArray(obj)?!1:Object.keys(obj).length===0}let readyToAdd=!0,actualAddedQuantity=0;if(this.offer){if(window.theme.settings.enable_bopis){console.log("Checking stock for BOPIS enabled...");let itemQty=getSkuItemTotalQuantity(theme.sideCart.cart,variant.sku);const inputQuantity=quantity,itemQtyInStock=getProductInventoryStock(),availableQty=Number(itemQtyInStock)-Number(itemQty);!isActualNumber(itemQtyInStock)||availableQty>=inputQuantity&&availableQty>=0?(readyToAdd=!0,actualAddedQuantity=inputQuantity):!isActualNumber(itemQtyInStock)||availableQty<=inputQuantity&&availableQty>=0&&itemQtyInStock>0?(readyToAdd=!1,actualAddedQuantity=availableQty):(actualAddedQuantity=0,readyToAdd=!1)}else readyToAdd=!0;const needCheckQuantity=window.theme.settings.enable_bopis?actualAddedQuantity:quantity,quantities=this.checkMultibuyQty(needCheckQuantity),allItems=[];for(let j=0;j<quantities.length;j++){let rawImage1=variant.featured_image||this.data.images[0],imageSrc1="";typeof rawImage1=="string"?imageSrc1=rawImage1:rawImage1&&typeof rawImage1.src=="string"&&(imageSrc1=rawImage1.src),item={id:Number(form.id.value),product_id:this.variants.product.id,quantity:quantities[j],price:Number(variant.price),line_price:Number(variant.price),compare_price:Number(variant.compare_at_price),title:this.variants.product.title,vendor:this.variants.product.vendor,collections:productCollections,description,url:this.data.url+"?variant="+variant.id,image:imageSrc1,min:0,max,sku:variant.sku};
1const propertyInputs=document.querySelectorAll('[name*="properties"]'),length=propertyInputs.length;for(let i=0;i<length;i++)if(propertyInputs[i].value){let propertyName=propertyInputs[i].name;propertyName=propertyName.substring(11,propertyName.length-1),properties[propertyName]=propertyInputs[i].value}if(this.offer){const offer=`${this.offerItems}-${this.offerMoney}`;properties._offer=this.getUniqueOffer(offer,quantities[j])}const tags=product.tags.map(tag=>tag.toLowerCase()),discountTag=tags.find(tag=>tag.includes("discount:"));discountTag&&(properties._tagDiscount=discountTag);const discountBuyGetTag=tags.find(tag=>tag.includes("discountbuyget:"));discountBuyGetTag&&(properties._tagDiscountBuyGet=discountBuyGetTag),Object.keys(properties).length&&(item.properties=properties),quantities.length===1?theme.sideCart.addItem(item):(allItems.push(item),item={},properties={})}theme.sideCart.addItems(allItems)}else{console.log("Checking stock for BOPIS disabled...");let rawImage2=variant.featured_image||this.data.images[0],imageSrc2="";typeof rawImage2=="string"?imageSrc2=rawImage2:rawImage2&&typeof rawImage2.src=="string"&&(imageSrc2=rawImage2.src),item={id:Number(form.id.value),product_id:Number(product.id),quantity,price:Number(variant.price),line_price:Number(variant.price),compare_price:Number(variant.compare_at_price),title:this.variants.product.title,vendor:this.variants.product.vendor,collections:productCollections,description,url:this.data.url+"?variant="+variant.id,image:imageSrc2,options,min:0,max,sku:variant.sku};const propertyInputs=document.querySelectorAll('[name*="properties"]'),length=propertyInputs.length;for(let i=0;i<length;i++)if(!propertyInputs[i].disabled&&propertyInputs[i].value){let propertyName=propertyInputs[i].name;propertyName=propertyName.substring(11,propertyName.length-1),propertyName==="_greeting"?properties[propertyName]=propertyInputs[i].value.replace(/(\r\n\t|\n|\r\t)/gm,""):properties[propertyName]=propertyInputs[i].value}const tags=product.tags.map(tag=>tag.toLowerCase()),discountTag=tags.find(tag=>tag.includes("discount:"));discountTag&&(properties._tagDiscount=discountTag);const discountBuyGetTag=tags.find(tag=>tag.includes("discountbuyget:"));if(discountBuyGetTag&&(properties._tagDiscountBuyGet=discountBuyGetTag),Object.keys(properties).length&&(item.properties=properties),window.theme.settings.enable_bopis){let itemQty=getSkuItemTotalQuantity(theme.sideCart.cart,item.sku);const itemQtyInStock=getProductInventoryStock(),availableQty=Number(itemQtyInStock)-Number(itemQty);!isActualNumber(itemQtyInStock)||availableQty>=item.quantity&&availableQty>=0?(theme.sideCart.addItem(item),readyToAdd=!0,actualAddedQuantity=item.quantity):!isActualNumber(itemQtyInStock)||availableQty<=item.quantity&&availableQty>=0&&itemQtyInStock>0?(item.quantity=availableQty,theme.sideCart.addItem(item),theme.sideCart.refreshCart(),readyToAdd=!1,actualAddedQuantity=availableQty):(actualAddedQuantity=0,readyToAdd=!1)}else theme.sideCart.addItem(item),readyToAdd=!0}if(window.theme.settings.enable_bopis){let addWarningToProductQuantity2=function(option="display"){if(option!=="display"){$("#shipping-out-stock-warning-msg").remove();return}const isMobile=window.innerWidth<=989;let $targetButton=$(".product-form__add-to-cart > .product-form__add");if($targetButton.length===0){console.log("WARN: Specified button (button.smartwishlist within quantity div) not found in the given context.");return}if($("#shipping-out-stock-warning-msg").length>0){console.log("Warning message already exists. Not adding a duplicate.");return}const $warningSpan=$('<span id="shipping-out-stock-warning-msg">'+theme.settings.bopis_shipping_out_stock_pdp_notice+"</span>");$warningSpan.css({color:"#D2140A","font-family":'"futura-pt"',"font-size":"12px","font-style":"normal","font-weight":"500","line-height":"16px",width:"100%"}),$targetButton.after($warningSpan)};var addWarningToProductQuantity=addWarningToProductQuantity2;const $quantitySelectorDiv=$(".quantity-selector.quantity-selector--large");readyToAdd?$quantitySelectorDiv.length&&($quantitySelectorDiv.css("border","1p
1x solid #333"),addWarningToProductQuantity2("hide")):($quantitySelectorDiv.length&&$quantitySelectorDiv.css("border","1px solid #D2140A"),addWarningToProductQuantity2("display"));const isItemObjEmpty=isItemEmptyObject(item);let rawImage3=this.data.images[0],imageSrc3="";typeof rawImage3=="string"?imageSrc3=rawImage3:rawImage3&&typeof rawImage3.src=="string"&&(imageSrc3=rawImage3.src);const popupData={title:isItemObjEmpty?this.variants.product.title:item.title,image:imageSrc3,price:isItemObjEmpty?Number(variant.price):item.price,compare_price:isItemObjEmpty?Number(variant.compare_at_price):item.compare_price,quantity:isItemObjEmpty?quantity:item.quantity,vId:isItemObjEmpty?Number(variant.id):item.id};if(!readyToAdd&&actualAddedQuantity<=0){this.addButtons.forEach(addButton=>{addButton.classList.remove("btn--loading")});return}else popupData.quantity=actualAddedQuantity;options.Size&&(popupData.size=options.Size),setTimeout(function(){updateCartPopup(popupData)},1e3)}else theme.sideCart.openDrawer();this.offer&&(this.offerPopupMessage&&(1>=this.offerItems?this.offerPopupMessage.innerHTML="Congratulations you have met the requirements for this offer":this.offerPopupMessage.innerHTML=`This product is part of an offer: ${this.offerItems} for ${window.theme.store==="GB"?"\xA3":"$"}${this.offerMoney}.`),this.offerPopupLink&&(this.offerPopupLink.attributes.href=`/collections/${this.offer}`,this.openOfferPopup())),this.addButtons.forEach(addButton=>{addButton.classList.remove("btn--loading")})},Product.prototype.initImageCarousels=function(){let productImages=this.$container.find(".product__images"),productThumbnails=this.$container.find(".product__thumbnails"),$status=this.$container.find(".pdp-product__images--paging-info"),initialSlide=0,firstRender=0;$(document).ready(function(){$(".product__images--popups").magnificPopup({delegate:"a",type:"image",image:{markup:`<div class="mfp-figure"> 2 <div class="mfp-close"></div> 3 <div class="mfp-img"></div> 4 <div class="mfp-prev"></div> 5 <div class="mfp-next"></div> 6 <div class="mfp-bottom-bar"> 7 <div class="mfp-title"></div> 8 <div class="mfp-counter"><span class="current-slide-count">1</span> / 1</div> 9 </div> 10 </div>`},gallery:{enabled:!0,tCounter:'<span class="current-slide-count">%curr%</span> / %total%'},callbacks:{change:function(){let interaction_type="change";firstRender==0&&(interaction_type="Zoom",firstRender=1);const currentSlideCount=this.index+1;dataLayerPDPInterfaceObj.push({product_image_state:null}),dataLayerPDPInterfaceObj.push({event:"product_image_interaction",interaction_type,product_image_state:{index:currentSlideCount}})}}});var magnificPopup=$.magnificPopup.instance;$(document).on("click",".mfp-prev",function(){magnificPopup.prev()}),$(document).on("click",".mfp-next",function(){magnificPopup.next()})}),productImages.find(".product__image").length!==1&&(productImages.on("init reInit afterChange",function(event,slick,currentSlide,nextSlide){var i=(currentSlide||0)+1;$status.html(`<span class="current-slide-count">${i}</span> / ${slick.slideCount}`)}),productImages.on("afterChange",function(event,slick,currentSlide,nextSlide){if(initialSlide!=currentSlide){const pdpImageEventObj={event:"product_image_interaction",interaction_type:"Change",product_image_state:{index:currentSlide+1}};initialSlide=currentSlide,setPDPDataLayerEvents(pdpImageEventObj,"product_image_state")}}),productImages.slick({accessibility:!0,arrows:!0,asNavFor:productThumbnails,dots:!1,lazyLoad:"progressive",swipeToSlide:!0,infinite:!1,rows:0,responsive:[{breakpoint:Number(theme.settings.grid_medium),settings:{slidesToShow:1,variableWidth:!0}}]}),productThumbnails&&productThumbnails.slick({accessibility:!1,arrows:!1,prevArrow:$(".product .prevButton"),nextArrow:$(".product .nextButton"),asNavFor:productImages,centerMode:!1,focusOnSelect:!0,verticalSwiping:!0,slidesToShow:4.5,slidesToScroll:1,vertical:!0,infinite:!1,rows:0,responsive:[{breakpoint:1440,settings:{slidesToShow:5}}]}))},Product.prototype.updateImages=function(event){const variant=event.variant;if(!variant.featured_image)return;const imageId=variant.featured_image.id,productImages=$(".product__images"),productThumbn
10ails=$(".product__thumbnails");if(!productImages.hasClass("slick-initialized"))return;const slickIndex=$("[data-imgid='"+imageId+"']:not('.slick-cloned')").data("slickIndex");if(typeof slickIndex<"u"&&productImages.slick("slickGoTo",slickIndex),!productThumbnails.hasClass("slick-initialized"))return;const thumbSlickIndex=$("[data-thumbimgid='"+imageId+"']:not('.slick-cloned')").data("slickIndex");typeof thumbSlickIndex<"u"&&productThumbnails.slick("slickGoTo",thumbSlickIndex)},Product.prototype.initImageZoom=function(){const productImagesZoom=document.querySelector(".product__images--zoom");if(!productImagesZoom)return;const productImages=productImagesZoom.querySelectorAll("img"),productZoomInstances=[],initZoom=()=>{productImages.forEach(image=>{const imageZoom=new Drift(image,{paneContainer:image.parentNode,inlinePane:!1,zoomFactor:2,onHide:function(){$(".drift-opening img").attr("style","")}});productZoomInstances.push(imageZoom)})},initPopup=()=>{$(".product__images--zoom").magnificPopup({delegate:"img",type:"image",disableOn:()=>$(window).width()<parseInt(window.theme.settings.grid_medium),gallery:{enabled:!0}})},desktopQuery=window.matchMedia(`(min-width: ${window.theme.settings.grid_medium}px)`);desktopQuery.matches?initZoom():initPopup(),desktopQuery.addListener(event=>{event.matches?initZoom():(initPopup(),productZoomInstances.forEach(instance=>instance.destroy()))})},Product.prototype.initRelatedProducts=function(){const $relatedProducts=$(".related-products__container");if(!$relatedProducts.length)return;let isInited=!1;function onResize(){var clientWidth=Math.max(document.documentElement.clientWidth,window.innerWidth||0);$(".product__thumbnails").slick("setPosition"),isInited?clientWidth>=Number(theme.settings.grid_medium)&&($relatedProducts.slick("unslick"),isInited=!1):clientWidth<Number(theme.settings.grid_medium)&&($relatedProducts.slick({accessibility:!1,arrows:!1,infinite:!1,slidesToShow:1,variableWidth:!0,swipeToSlide:!0,rows:0}),isInited=!0)}window.addEventListener("resize",onResize),onResize()},Product.prototype.openOfferPopup=function(){if(this.offerPopup){window.theme.lastActiveElement=document.activeElement,this.offerPopup.classList.add("multibuy-offer__popup--expanded"),this.offerPopup.setAttribute("aria-hidden","false");const modalCloseButton=this.offerPopup.querySelector(".multibuy-offer__popup--close");modalCloseButton&&modalCloseButton.focus(),$(document).on("keydown:escape",this.toggleOfferPopup.bind(this))}},Product.prototype.toggleOfferPopup=function(event){if(event&&event.type!=="keydown:escape"&&event.preventDefault(),this.offerPopup)if(this.offerPopup.classList.contains("multibuy-offer__popup--expanded"))window.theme.lastActiveElement&&(window.theme.lastActiveElement.focus(),window.theme.lastActiveElement=null),this.offerPopup.classList.add("multibuy-offer__popup--expanded"),this.offerPopup.setAttribute("aria-hidden","true"),$(document).off("keydown:escape",this.toggleOfferPopup.bind(this));else{window.theme.lastActiveElement=document.activeElement,this.offerPopup.classList.remove("multibuy-offer__popup--expanded"),this.offerPopup.setAttribute("aria-hidden","false");const modalCloseButton=this.offerPopup.querySelector(".multibuy-offer__popup--close");modalCloseButton&&modalCloseButton.focus(),$(document).on("keydown:escape",this.toggleOfferPopup.bind(this))}},Product.prototype.toggleShippingInfoPopup=function(event){const modal=document.querySelector("[data-shipping-delivery-modal]"),rcTriggers=document.querySelectorAll("[data-shipping-delivery-trigger]"),closeModalButtons=document.querySelectorAll("[data-close-shipping-delivery]");if(!modal||!rcTriggers.length)return;function closeShippingModal(){window.theme.lastActiveElement&&(window.theme.lastActiveElement.focus(),window.theme.lastActiveElement=null),document.querySelector("body").classList.remove("stopScrolling"),modal.classList.remove("shipping-delivery-modal--visible"),modal.setAttribute("aria-hidden","true"),$(document).off("keydown:escape",closeShippingModal)}rcTriggers.forEach(trigger=>{trigger.addEventListener("click",e=>{e.preventDefault(),window.theme.lastActiveElement=document.activeElement,modal.classList.add("shipping-delivery-modal--visible"),modal.setAttribute("aria-hidden","false"),document.querySelector("body").classList.add("stopScrolling");const modalCloseButton=modal.querySelector(".shipping-delivery-modal__close");modalCloseButton&&modalCloseButton.focus(),$(document).on("keydown:escape",closeShippingModal)})}),closeModalButtons.length&&closeModalButtons.forEach(closeButton=>{closeButton.addEventListener("click",closeShippingModal)}),$(document).on("click",".pdp-shipping-policy h2",function(e){e.preventDefault(),$(".pdp-shipping-policy").removeClass("active"),$(".pdp-shipping-policy h2").removeClass("active"),$(this).addClass("active"),$(this).hasClass("policy-first")?$(".pdp-shipping-policy-first").addClass("active"):$(".pdp-shipping-policy-last").addClass("active")})},Product})(),document.addEventListener("DOMContentLoaded",function(){console.log("Product script loaded");const afterShipRecommendations=document.querySelectorAll("[data-personalization-id]");
10Array.from(afterShipRecommendations).forEach(function(recommendation){let observer=new MutationObserver(function(mutations){for(var mutation of mutations)if(console.log("Mutation detected:",mutation),mutation.type==="childList"&&recommendation.innerHTML.trim()!==""){let priceWrappers=recommendation.querySelectorAll(".am_rec_item_price,.am_rec_item_price");console.log("Product items found:",priceWrappers),Array.from(priceWrappers).forEach(function(priceWrapper){const price2=parseFloat(priceWrapper.textContent.replace(/[^0-9.]/g,""))*100;priceWrapper.innerHTML=formatPriceWithSup2(price2)}),observer.disconnect()}});observer.observe(recommendation,{childList:!0,subtree:!0})})}),window.theme.sections.register("product",theme.Product),window.theme._registeredSections.product=!0}window.recentProducts={get:()=>{const storage=localStorage.getItem("recentlyViewedProducts")||"[]";return JSON.parse(storage)},set:input=>{if(!input.handle||!input.id)throw Error("Recent products - Handle or id missing");const limit=6;let recentProducts=window.recentProducts.get();recentProducts=recentProducts.filter(product=>product.id!==input.id&&product.handle!==input.handle),recentProducts.unshift({id:input.id,handle:input.handle}),recentProducts=recentProducts.splice(0,limit*2),localStorage.setItem("recentlyViewedProducts",JSON.stringify(recentProducts))}}; 11//# sourceMappingURL=/cdn/shop/t/811/assets/product.js.map?v=5270428748991688791789977862
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.