PageSourceSearch

https://www.striderite.com/cdn/shop/t/870/assets/global.js?v=26752694368008990691789061852

js striderite.com collected 2026-09-24 19:34:46 UTC 39,147 bytes, 2 lines download raw bytes

1var links=document.links;for(let i=0;i<links.length;i++){var linkHostName=links[i].hostname;linkHostName&&linkHostName!==window.location.hostname&&(links[i].target="_blank")}function getFocusableElements(container){return Array.from(container.querySelectorAll("summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe"))}const trapFocusHandlers={};function trapFocus(container,elementToFocus=container){var elements=getFocusableElements(container),first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=event=>{event.target!==container&&event.target!==last&&event.target!==first||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=function(event){event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey&&(event.preventDefault(),first.focus()),(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),elementToFocus.focus()}try{document.querySelector(":focus-visible")}catch{focusVisiblePolyfill()}function focusVisiblePolyfill(){const navKeys=["ARROWUP","ARROWDOWN","ARROWLEFT","ARROWRIGHT","TAB","ENTER","SPACE","ESCAPE","HOME","END","PAGEUP","PAGEDOWN"];let currentFocusedElement=null,mouseClick=null;window.addEventListener("keydown",event=>{navKeys.includes(event.code.toUpperCase())&&(mouseClick=!1)}),window.addEventListener("mousedown",event=>{mouseClick=!0}),window.addEventListener("focus",()=>{currentFocusedElement&&currentFocusedElement.classList.remove("focused"),!mouseClick&&(currentFocusedElement=document.activeElement,currentFocusedElement.classList.add("focused"))},!0)}function pauseAllMedia(){document.querySelectorAll(".js-youtube").forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll(".js-vimeo").forEach(video=>{video.contentWindow.postMessage('{"method":"pause"}',"*")}),document.querySelectorAll("video").forEach(video=>video.pause()),document.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&modelViewerUI.pause()})}function removeTrapFocus(elementToFocus=null){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus&&elementToFocus.focus()}function onKeyUpEscape(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");if(!openDetailsElement)return;const summaryElement=openDetailsElement.querySelector("summary");openDetailsElement.removeAttribute("open"),summaryElement.focus()}class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.target.name==="plus"?this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}}customElements.define("quantity-input",QuantityInput);function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}const serializeForm=form=>{const obj={},formData=new FormData(form);for(const key of formData.keys()){const regex=/(?:^(properties\[))(.*?)(?:\]$)/;regex.test(key)?(obj.properties=obj.properties||{},obj.properties[regex.exec(key)[2]]=formData.get(key)):obj[key]=formData.get(key)}return JSON.stringify(obj)};function fetchConfig(type="json"){return{method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}}typeof window.Shopify>"u"&&(window.Shopify={}),Shopify.bind=function(fn,scope){return function(){return fn.apply(scope,arguments)}},Shopify.setSelectorByValue=function(selector,value){for(var i=0,count=selector.options.length;i<count;i++){var option=selector.options[i];if(value==option.value||value==option.innerHTML)return selector.selectedIndex=i,i}},Shopify.addListener=function(target,eventName,callback){target.addEventListener?target.addEventListener(eventName,callback,!1):target.attachEvent("on"+eventName,callback)},Shopify.postLink=function(path,options){options=options||{};var method=options.method||"post",params=options.parameters||{},form=document.createElement("form");form.setAttribute("method",method),form.setAttribute("action",path);for(var key in params){var hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden"),hiddenField.setAttribute("name",key),hiddenField.setAttribute("value",params[key]),form.appendChild(hiddenField)}document.body.appendChild(form),form.submit(),document.body.removeChild(form)},Shopify.CountryProvinceSelector=function(country_domid,province_domid,options){this.countryEl=document.getElementById(country_domid),this.provinceEl=document.getElementById(province_domid),this.provinceContainer=document.getElementById(options.hideElement||province_domid),Shopify.addListener(this.countryEl,"change",Shopify.bind(this.countryHandler,this)),this.initCountry(),this.initProvince()},Shopify.CountryProvinceSelector.prototype={initCountry:function(){var value=this.countryEl.getAttribute("data-default");Shopify.setSelectorByValue(this.countryEl,value),this.countryHandler()},initProvince:function(){var value=this.provinceEl.getAttribute("data-default");value&&this.provinceEl.options.length>0&&Shopify.setSelectorByValue(this.provinceEl,value)},countryHandler:function(e){var opt=this.countryEl.options[this.countryEl.selectedIndex],raw=opt.getAttribute("data-provinces"),provinces=JSON.parse(raw);if(this.clearOptions(this.provinceEl),provinces&&provinces.length==0)this.provinceContainer.style.display="none";else{for(var i=0;i<provinces.length;i++){var opt=document.createElement("option");opt.value=provinces[i][0],opt.innerHTML=provinces[i][1],this.provinceEl.appendChild(opt)}this.provinceContainer.style.display=""}},clearOptions:function(selector){for(;selector.firstChild;)selector.removeChild(selector.firstChild)},setOptions:function(selector,values){for(var i=0,count=values.length;i<values.length;i++){var opt=document.createElement("option");opt.value=values[i],opt.innerHTML=values[i],selector.appendChild(opt)}}};class MenuDrawer extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details");const summaryElements=this.querySelectorAll("summary");this.addAccessibilityAttributes(summaryElements),navigator.platform==="iPhone"&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`),this.addEventListener("keyup",this.onKeyUp.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.bindEvents()}bindEvents(){this.querySelectorAll("summary").forEach(summary=>summary.addEventListener("click",this.onSummaryClick.bind(this))),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this)))}addAccessibilityAttributes(summaryElements){summaryElements.forEac
1h(element=>{element.setAttribute("role","button"),element.setAttribute("aria-expanded",!1),element.setAttribute("aria-controls",element.nextElementSibling.id)})}onKeyUp(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event){const summaryElement=event.currentTarget,detailsElement=summaryElement.parentNode,isOpen=detailsElement.hasAttribute("open"),menuDrawerElement=document.getElementById("menu-drawer");detailsElement===this.mainDetailsToggle?(isOpen&&event.preventDefault(),isOpen?this.closeMenuDrawer(summaryElement):this.openMenuDrawer(summaryElement)):(trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),setTimeout(()=>{detailsElement.classList.add("menu-opening"),menuDrawerElement.classList.add("submenu-opened")}))}openMenuDrawer(summaryElement){setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}closeMenuDrawer(event,elementToFocus=!1){event!==void 0&&(this.mainDetailsToggle.classList.remove("menu-opening"),this.mainDetailsToggle.querySelectorAll("details").forEach(details=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelector("summary").setAttribute("aria-expanded",!1),document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle))}onFocusOut(event){setTimeout(()=>{this.mainDetailsToggle.hasAttribute("open")&&!this.mainDetailsToggle.contains(document.activeElement)&&this.closeMenuDrawer()})}onCloseButtonClick(event){const detailsElement=event.currentTarget.closest("details");this.closeSubmenu(detailsElement)}closeSubmenu(detailsElement){const menuDrawerElement=document.getElementById("menu-drawer");detailsElement.classList.remove("menu-opening"),menuDrawerElement.classList.remove("submenu-opened"),removeTrapFocus(),this.closeAnimation(detailsElement)}closeAnimation(detailsElement){let animationStart;const handleAnimation=time=>{animationStart===void 0&&(animationStart=time),time-animationStart<400?window.requestAnimationFrame(handleAnimation):(detailsElement.removeAttribute("open"),detailsElement.closest("details[open]")&&trapFocus(detail
1sElement.closest("details[open]"),detailsElement.querySelector("summary")))};window.requestAnimationFrame(handleAnimation)}}customElements.define("menu-drawer",MenuDrawer);class HeaderDrawer extends MenuDrawer{constructor(){super()}openMenuDrawer(summaryElement){this.header=this.header||document.getElementById("shopify-section-header"),this.borderOffset=this.borderOffset||this.closest(".header-wrapper").classList.contains("header-wrapper--border-bottom")?1:0,document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.header.getBoundingClientRect().bottom-this.borderOffset)}px`),setTimeout(()=>{this.mainDetailsToggle.classList.add("menu-opening")}),summaryElement.setAttribute("aria-expanded",!0),trapFocus(this.mainDetailsToggle,summaryElement),document.body.classList.add(`overflow-hidden-${this.dataset.breakpoint}`)}}customElements.define("header-drawer",HeaderDrawer);class ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this)),this.addEventListener("keyup",event=>{event.code.toUpperCase()==="ESCAPE"&&this.hide()}),this.classList.contains("media-modal")?this.addEventListener("pointerup",event=>{event.pointerType==="mouse"&&!event.target.closest("deferred-media, product-model")&&this.hide()}):this.addEventListener("click",event=>{event.target.nodeName==="MODAL-DIALOG"&&this.hide()})}show(opener){this.openedBy=opener;const popup=this.querySelector(".template-popup");document.body.classList.add("overflow-hidden"),this.setAttribute("open",""),popup&&popup.loadContent(),trapFocus(this,this.querySelector('[role="dialog"]'))}hide(){document.body.classList.remove("overflow-hidden"),this.removeAttribute("open"),removeTrapFocus(this.openedBy),window.pauseAllMedia()}}customElements.define("modal-dialog",ModalDialog);class ModalOpener extends HTMLElement{constructor(){super();const button=this.querySelector("button");button&&button.addEventListener("click",()=>{const modal2=document.querySelector(this.getAttribute("data-modal"));modal2&&modal2.show(button)})}}customElements.define("modal-opener",ModalOpener);class DeferredMedia extends HTMLElement{constructor(){super();const poster=this.querySelector('[id^="Deferred-Poster-"]');poster&&(this.getAttribute("loaded")||poster.addEventListener("click",this.loadContent.bind(this)))}loadContent(){if(window.pauseAllMedia(),!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0),this.appendChild(content.querySelector("video, model-viewer, iframe")).focus()}}}customElements.define("deferred-media",DeferredMedia);class SliderComponent extends HTMLElement{constructor(){if(super(),this.slider=this.querySelector('[id^="Slider-"]'),this.sliderItems=this.querySelectorAll('[id^="Slide-"]'),this.enableSliderLooping=!1,this.currentPageElement=this.querySelector(".slider-counter--current"),this.pageTotalElement=this.querySelector(".slider-counter--total"),this.prevButton=this.querySelector('button[name="previous"]'),this.nextButton=this.querySelector('button[name="next"]'),!this.slider||!this.nextButton)return;this.initPages(),new ResizeObserver(entries=>this.initPages()).observe(this.slider),this.slider.addEventListener("scroll",this.update.bind(this)),this.prevButton.addEventListener("click",this.onButtonClick.bind(this)),this.nextButton.addEventListener("click",this.onButtonClick.bind(this))}initPages(){this.sliderItemsToShow=Array.from(this.sliderItems).filter(element=>element.clientWidth>0),!(this.sliderItemsToShow.length<2)&&(this.sliderItemOffset=this.sliderItemsToShow[1].offsetLeft-this.sliderItemsToShow[0].offsetLeft,this.slidesPerPage=Math.floor((this.slider.clientWidth-this.sliderItemsToShow[0].offsetLeft)/this.sliderItemOffset),this.totalPages=this.sliderItemsToShow.length-this.slidesPerPage+1,this.update())}resetPages(){this.sliderItems=this.querySelectorAll('[id^="Slide-"]'),this.initPages()}update(){if(!this.slider||!this.nextButton)return;const previousPage=this.currentPage;this.currentPage=Math.round(this.slider.scrollLeft/this.sliderItemOffset)+1,this.currentPageElement&&this.pageTotalElement&&(this.currentPageElement.textContent=this.currentPage,this.pageTotalElement.textContent=this.totalPages),this.currentPage!=previousPage&&this.dispatchEvent(new CustomEvent("slideChanged",{detail:{currentPage:this.currentPage,currentElement:this.sliderItemsToShow[this.currentPage-1]}})),!this.enableSliderLooping&&(this.isSlideVisible(this.sliderItemsToShow[0])&&this.slider.scrollLeft===0?this.prevButton.setAttribute("disabled","disabled"):this.prevButton.removeAttribute("disabled"),this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length-1])?this.nextButton.setAttribute("disabled","disabled"):this.nextButton.removeAttribute("disabled"))}isSlideVisible(element,offset=0){const lastVisibleSlide=this.slider.clientWidth+this.slider.scrollLeft-offset;return element.offsetLeft+element.clientWidth<=lastVisibleSlide&&element.offsetLeft>=this.slider.scrollLeft}onButtonClick(event){event.preventDefault();const step=event.currentTarget.dataset.step||1;this.slideScrollPosition=event.currentTarget.name==="next"?this.slider.scrollLeft+step*this.sliderItemOffset:this.slider.scrollLeft-step*this.sliderItemOffset,this.setSlidePosition(this.slideScrollPosition)}setSlidePosition(position){this.slider.scrollTo({left:position})}}customElements.define("slider-component",SliderComponent);class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange),this.additionalVariantData=JSON.parse(document.getElementById("additionalVariantData").textContent),this.initOptionValues(),document.addEventListener("DOMContentLoaded",this.updateBasedOnQueryParam.bind(this)),document.addEventListener("VariantAutoselected",event=>{if(window.lastAutoSelected!=event.timeStamp){window.lastAutoSelected=event.timeStamp;const thisElement=this.getComponentSelector();this.additionalVariantData=JSON.parse(document.getElementById("additionalVariantData").textContent),this.variantData=JSON.parse(thisElement.querySelector("#variantData").textContent),this.dataset.section=thisElement.dataset.section,this.stickyHeader=document.querySelector("sticky-header"),this.initOptionValues();const fieldsets=Array.from(thisElement.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked)?.value),this.onVariantChange()}this.updateSiblings()})}
1connectedCallback(){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(productForm){const idInput=productForm.querySelector('[name="id"]');idInput&&idInput.value&&idInput.value!==""&&this.toggleAddButton(!1,""),this.updateOptions(),this.updateMasterId(),this.updatePickupAvailability(),this.removeErrorMessage(),this.emitColorData(),this.computeOutOfStockState(),this.finalSaleUpdate(),this.variantInventoryCallout(),this.updateSiblings()}}onVariantChange(){if(this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,""),this.updatePickupAvailability(),this.removeErrorMessage(),this.emitColorData(),this.computeOutOfStockState(),this.finalSaleUpdate(),this.variantInventoryCallout(),this.currentVariant?(this.recalculateLoyaltyPoints(),this.enableWishlist(),this.updateMedia(),this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.updateWishlist()):(this.updatePrice(),this.toggleAddButton(!0,""),this.setUnavailable()),this.updateSiblings(),typeof window.initWholescaleWidget=="function"&&(document.querySelector(".wholescale-review-widget-stars-injection").innerHTML="",window.initWholescaleWidget()),this.currentVariant){const siblingsData=this.getSiblingsData(),currentVariant=this.currentVariant,currentColor=currentVariant.options[0],currentSize=currentVariant.options[1],currentWidth=currentVariant.options[2],allSiblings=this.querySelectorAll("sibling-option");for(const sibling of allSiblings)if(sibling.dataset.optionType.includes("color")&&sibling.dataset.name!==currentColor){const findCorrectVariant=siblingsData.find(item=>item.variants.find(variant=>variant.options[0]===sibling.dataset.name&&variant.options[1]===currentSize&&variant.options[2]===currentWidth&&variant.available))?.variants?.find(variant=>variant.options[1]===currentSize&&variant.options[2]===currentWidth&&variant.available);if(findCorrectVariant?.id){const linkElement=sibling.querySelector("a"),urlObject=ne
1w URL(linkElement?.href);urlObject?.searchParams.set("variant",findCorrectVariant.id),linkElement.setAttribute("href",urlObject.href)}}try{setTimeout(function(){if(typeof iWish<"u"){const wishlistElement=document.querySelector("input[name=id]");wishlistElement?iWish.checkIwish(wishlistElement):console.warn("Wishlist element not found!")}},500)}catch(error){console.error("Error in recommendations wishlist:",error)}}}updateSiblings(){const siblingsData=this.getSiblingsData(),currentVariant=this.currentVariant,currentColor=currentVariant.options[0],currentSize=currentVariant.options[1],currentWidth=currentVariant.options[2],allSiblings=this.querySelectorAll("sibling-option");for(const sibling of allSiblings)if(sibling.dataset.optionType.includes("color")&&sibling.dataset.name!==currentColor){const findCorrectProduct=siblingsData.find(item=>item.variants.find(variant=>variant.options[0]===sibling.dataset.name&&variant.options[1]===currentSize&&variant.options[2]===currentWidth)),findCorrectVariant=findCorrectProduct?.variants?.find(variant=>variant.options[1]===currentSize&&variant.options[2]===currentWidth);if(findCorrectVariant?.id&&findCorrectProduct?.handle){const linkElement=sibling.querySelector("a");
1try{const urlObject=new URL(linkElement?.href);urlObject&&(urlObject.pathname=`/products/${findCorrectProduct.handle}`,urlObject?.searchParams.set("variant",findCorrectVariant.id),linkElement.setAttribute("href",urlObject.href),findCorrectVariant?.available?sibling.dataset.available="true":sibling.dataset.available="false")}catch(e){console.log("err",e)}}}}variantInventoryCallout(){if(this.currentVariant){const matchingVariantInventoryNumber=JSON.parse(document.querySelector("#additionalVariantData").textContent)[this.currentVariant.id]?.inventory,variantCalloutAmount=window.Resources.product.inventoryCalloutAmount;let inventoryCallout="",inventoryAmount="";document.querySelector(".inventory__callout-message")&&(inventoryCallout=document.querySelector(".inventory__callout-message"),inventoryAmount=inventoryCallout.querySelector(".inventory__callout-amount")),matchingVariantInventoryNumber&&matchingVariantInventoryNumber<=variantCalloutAmount&&matchingVariantInventoryNumber>0?(inventoryAmount.innerHTML=matchingVariantInventoryNumber,inventoryCallout.classList.contains("inventory__callout-message--opacity")&&inventoryCallout.classList.remove("inventory__callout-message--opacity")):inventoryCallout.classList.contains("inventory__callout-message--opacity")||inventoryCallout.classList.add("inventory__callout-message--opacity")}}getLoyaltyRate(){if(loyaltylion?.ui)return this.loyaltyPointsRate||loyaltylion?.ui?.priceForProductManager?.store?.getState().program?.rules?.find(rule=>rule.kind=="purchase"&&!rule.deactivated).value||5}recalculateLoyaltyPoints(){const loyaltyPointsContainer=document.querySelector(".calculated-loyalty-points"),points=Math.ceil(this.currentVariant.price/100)*this.getLoyaltyRate();loyaltyPointsContainer.innerHTML=points}updatePrice(){const variantData=this.getVariantData();if(this.options[0]){const matchingColorVariant=variantData.find(variant=>variant.option1===this.options[0]);matchingColorVariant&&fetch(`${this.additionalVariantData[matchingColorVariant.id].url}&section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const id=`price-${this.dataset.section}`,html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=html.getElementById(id),promoDiv=document.querySelector("div.product__promo");let typeClass=localStorage.getItem("typeClass")?localStorage.getItem("typeClass"):"noType";promoDiv.textContent="";const loyaltyPointsContainer=document.querySelector(".calculated-loyalty-points"),points=Math.ceil(matchingColorVariant.price/100)*this.getLoyaltyRate();if(loyaltyPointsContainer.innerHTML=points,source&&destination){destination.innerHTML=source.innerHTML,destination.querySelector(".price").classList.add(typeClass);const[type,message,targetElem,colors,minPrice,maxPrice]=JSON.parse(localStorage.getItem("promoData"));message!==""?(promoDiv.style.color=colors[1],promoDiv.textContent=message):(promoDiv.style.color="",promoDiv.textContent="")}const price=document.getElementById(`price-${this.dataset.section}`);price&&price.classList.remove("visibility-hidden")})}}finalSaleUpdate(){setTimeout(function(){let formatedPrice=document.querySelector(".price-item").textContent.replace(/^\s+|\s+$/gm,"").substring(1),priceCheck=Number(formatedPrice),finalSale=document.querySelector(".product__final-sale-wrapper");finalSale&&(priceCheck>20?finalSale.classList.add("final-sale-hidden"):finalSale.classList.remove("final-sale-hidden"))},1200);let detailsModal=document.querySelector(".product__final-sale-wrapper details"),detailsLabel=document.querySelector(".final_sale_details");detailsLabel&&detailsLabel.addEventListener("click",function(){detailsModal.hasAttribute("open")?detailsLabel.innerText="See more details":detailsLabel.innerText="See less details"})}initOptionValues(){}computeOutOfStockState(){}emitColorData(){}updateBasedOnQueryParam(){const queryVariantID=new URLSearchParams(window.location.search).get("variant");if(queryVariantID){const queryVariant=this.additionalVariantData[queryVariantID];if(queryVariant){for(const optionName in queryVariant.options){const selectForOptionValue=this.querySelector(`select[name="options[${optionName}]"]`);if(selectForOptionValue){const option=selectForOptionValue.querySelector(`option[value="${queryVariant.options[optionName]}"]`);option?option.selected="selected":console.warn(`Select option for option ${optionName} value ${queryVariant.options[optionName]} not found.`)}else console.warn(`Select element for option ${optionName} not found.`)}this.onVariantChange()}else console.warn(`Variant ID ${queryVariantID} from query param not found in variantData`)}document.dispatchEvent(new Event("afterVariantQueryUpdate"))}updateOptions(){this.options=Array.from(this.querySelectorAll("select"),select=>select.value)}updateMasterId(){this.currentVariant=this.getVariantData().find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1))}updateMedia(){!this.currentVariant||!this.currentVariant.featured_media||!document.querySelector(`[data-media-id="${this.dataset.section}-${this.currentVariant.featured_media.id}"]`)||(this.stickyHeader=this.stickyHeader||document.querySelector("sticky-header"),this.stickyHeader&&this.stickyHeader.dispatchEvent(new Event("preventHeaderReveal")))}updateURL(){if(!this.currentVariant||this.dataset.updateUrl==="false")return;
1const url=window.location.search,urlParams=new URLSearchParams(url);urlParams.delete("variant");const finalParams=urlParams.toString()?`&${urlParams.toString()}`:"";window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}${finalParams}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available&&pickUpAvailability.fetchAvailability?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}updateWishlist(){window.wishlistAsyncInit&&wishlistAsyncInit();const wishlistEl=document.querySelector(".iWishAdd");if(wishlistEl){const selectedVariantId=this.currentVariant.id.toString(),parentId=this.additionalVariantData[selectedVariantId].parentId;wishlistEl.dataset.product=parentId,window.isInWishlist&&(window.isInWishlist(parentId,selectedVariantId)?(wishlistEl.innerHTML=iwish_added_txt,wishlistEl.classList.add("iwishAdded")):(wishlistEl.innerHTML=iwish_add_txt,wishlistEl.classList.remove("iwishAdded")))}}disableWishlist(){const wishlistEl=document.querySelector(".iwishAddWrap");wishlistEl&&wishlistEl.classList.add("disabled")}enableWishlist(){const wishlistEl=document.querySelector(".iwishAddWrap");wishlistEl&&wishlistEl.classList.remove("disabled")}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm?.handleErrorMessage&&productForm.handleErrorMessage()}renderProductInfo(){fetch(`${this.additionalVariantData[this.currentVariant.id].url}&section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const id=`price-${this.dataset.section}`,html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=html.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML);const price=document.getElementById(`price-${this.dataset.section}`);price&&price.classList.remove("visibility-hidden");let typeClass=localStorage.getItem("typeClass")?localStorage.getItem("typeClass"):"noType";source&&destination&&destination.querySelector(".price").classList.add(typeClass);const ctaLabel=this.isMissingSelections()?window.variantStrings.selectOptions:window.variantStrings.soldOut;this.toggleAddButton(!this.currentVariant||!this.currentVariant.available,ctaLabel)})}toggleAddButton(disable=!0,text){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]');addButton&&(disable?(addButton.setAttribute("disabled",!0),text&&(addButton.textContent=text)):(addButton.removeAttribute("disabled"),addButton.textContent=window.variantStrings.addToCart))}setUnavailable(){const isMissingSelections=this.isMissingSelections();isMissingSelections&&this.disableWishlist();const ctaLabel=isMissingSelections?window.variantStrings.selectOptions:window.variantStrings.unavailable,addButton=document.getElementById(`product-form-${this.dataset.section}`).querySelector('[name="add"]');addButton&&(addButton.textContent=ctaLabel)}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector("#variantData").textContent),this.variantData}getSiblingsData(){return this.siblingsData=this.siblingsData||JSON.parse(this.querySelector("[data-siblings]").textContent),this.siblingsData}isMissingSelections(){const missingOption1=this.option1Values?.length>1&&!this.options[0],missingOption2=this.option2Values?.length>1&&!this.options[1],missingOption3=this.option3Values?.length>1&&!this.options[2];return missingOption1||missingOption2||missingOption3}getComponentSelector(){return document.querySelector("variant-selects")}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super(),this.emitColorData()}initOptionValues(){const variants=this.getVariantData();this.option1Values=Array.from(new Set(variants.map(v=>v.option1))),this.option2Values=Array.from(new Set(variants.map(v=>v.option2))),this.option3Values=Array.from(new Set(variants.map(v=>v.option3))),this.option1Elements=this.getComponentSelector().querySelectorAll('fieldset[data-option-number="1"] input'),this.option2Elements=this.getComponentSelector().querySelectorAll('fieldset[data-option-number="2"] input'),this.option3Elements=this.getComponentSelector().querySelectorAll('fieldset[data-option-number="3"] input')}computeOutOfStockState(){const option1UnavailableVals=[],option2UnavailableVals=[],option3UnavailableVals=[];
1this.option1Values&&this.option1Values.forEach(val1=>{this.variantData.filter(variant=>variant.option1===val1&&(this.options[1]===void 0||variant.option2===this.options[1])&&(this.options[2]===void 0||variant.option3===this.options[2])).some(variant=>variant.available)||option1UnavailableVals.push(val1)}),this.option2Values&&this.option2Values.forEach(val2=>{this.variantData.filter(variant=>variant.option2===val2&&(this.options[0]===void 0||variant.option1===this.options[0])&&(this.options[2]===void 0||variant.option3===this.options[2])).some(variant=>variant.available)||option2UnavailableVals.push(val2)}),this.option3Values&&this.option3Values.forEach(val3=>{this.variantData.filter(variant=>variant.option3===val3&&(this.options[0]===void 0||variant.option1===this.options[0])&&(this.options[1]===void 0||variant.option2===this.options[1])).some(variant=>variant.available)||option3UnavailableVals.push(val3)}),this.option1Elements?.forEach(el=>{option1UnavailableVals.includes(el.value)?el.classList.add("unavailable"):el.classList.remove("unavailable")}),this.option2Elements?.forEach(el=>{option2UnavailableVals.includes(el.value)?el.classList.add("unavailable"):el.classList.remove("unavailable")}),this.option3Elements?.forEach(el=>{option3UnavailableVals.includes(el.value)?el.classList.add("unavailable"):el.classList.remove("unavailable")})}emitColorData(){const colorInputs=Array.from(this.getComponentSelector().querySelectorAll("input[name='Color']"));if(colorInputs.length){const selectedInput=colorInputs.find(input=>input.checked);selectedInput&&document.dispatchEvent(new CustomEvent("colorChanged",{detail:{color:selectedInput.value}}))}}updateBasedOnQueryParam(){const urlParams=new URLSearchParams(window.location.search),queryVariantID=urlParams.get("variant"),color=urlParams.get("color");if(queryVariantID){const queryVariant=this.additionalVariantData[queryVariantID];if(queryVariant){for(const optionName in queryVariant.options){const inputForOptionValue=this.querySelector(`input[name="${optionName}"][value="${queryVariant.options[optionName]}"]`);inputForOptionValue?inputForOptionValue.checked=!0:console.warn(`Input for option ${optionName} value ${queryVariant.options[optionName]} not found.`)}this.onVariantChange()}else console.warn(`Variant ID ${queryVariantID} from query param not found in variantData`)}else if(color){const inputForOptionValue=this.querySelector(`input[name="Color"][value="${color}"]`);inputForOptionValue?inputForOptionValue.checked=!0:console.warn(`Input for option Color, value ${color} not found.`)}document.dispatchEvent(new Event("afterVariantQueryUpdate"))}updateOptions(){const fieldsets=Array.from(this.getComponentSelector().querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked)?.value)}getComponentSelector(){return document.querySelector("variant-radios")}}customElements.define("variant-radios",VariantRadios);class RangeSelector extends HTMLElement{constructor(){super(),this.additionalVariantData=JSON.parse(document.getElementById("additionalVariantData").textContent),this.querySelectorAll('input[type=radio][name="Size Range"]').forEach(radio=>radio.addEventListener("change",()=>{this.fetchMainProductHtml(radio.value)})),window.addEventListener("load",this.rerunAfterpayStyling)}fetchMainProductHtml(handle){const colorLabelElement=document.getElementById(`selected-color-${this.dataset.section}`);colorLabelElement&&(colorLabelElement.innerHTML=""),fetch(`/products/${handle}?section_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{const id=`shopify-section-${this.dataset.section}`,html=this.parseResponse(responseText),destination=document.getElementById(id),source=html.getElementById(id),calculatedLoyaltyPoints=destination.querySelector(".calculated-loyalty-points").innerHTML;if(source&&destination){destination.innerHTML=source.innerHTML;let currentVariant;const productFormVariantIDElement=html.querySelector("[name='id']");if(productFormVariantIDElement){const currentVariantID=productFormVariantIDElement.value;currentVariant=this.additionalVariantData[currentVariantID]}if(currentVariant)for(const optionName in currentVariant.options){const inputForOptionValue=document.querySelector(`input[name="${optionName}"][value="${currentVariant.options[optionName]}"]`);inputForOptionValue?inputForOptionValue.checked=!0:console.warn(`Input for option ${optionName} value ${currentVariant.options[optionName]} not found.`)}destination.querySelector(".calculated-loyalty-points").innerHTML=calculatedLoyaltyPoints,document.dispatchEvent(new Event("VariantAutoselected",{bubbles:!1})),this.updateUrl(handle),this.reinitializePotentialEarnings(),this.rerunAfterpayStyling(),this.rerunModalScripts()}})}parseResponse(responseText){const domParser=new DOMParser;let html=domParser.parseFromString(responseText,"text/html");if(html.getElementsByTagName("product-form").length===0){console.warn("Failed to fully parse main section HTML. Trying again.");const html2=domParser.parseFromString(responseText,"text/html");if(html2.getElementsByTagName("product-form").length===0){console.warn("Failed to fully parse main section HTML twice. Trying one final time.");const html3=domParser.parseFromString(responseText,"text/html");html3.getElementsByTagName("product-form").length===0?console.error("Failed to parse main section HTML three times."):html=html3}else html=html2}return html}updateUrl(handle){window.history.replaceState({},"",`/products/${handle}`)}rerunAfterpayStyling(){const script=document.getElementById("afterpay-pdp");eval(script.innerHTML)}rerunModalScripts(){const modals=Array.from(document.getElementsByTagName("modal-dialog"));
1modals.forEach(modal=>{const scripts=Array.from(modal.getElementsByTagName("script"));scripts.forEach(script=>{eval(script.innerHTML)})})}reinitializePotentialEarnings(){window.zrl_mi&&zrl_mi.on_successful_product_points_fetch()}}customElements.define("range-selector",RangeSelector);class ExclusiveAccordions extends HTMLElement{constructor(){super();const accordionDetails=this.querySelectorAll(".product__accordion details");accordionDetails.forEach(targetDetail=>{targetDetail.addEventListener("click",()=>{accordionDetails.forEach(detail=>{detail!==targetDetail&&detail.removeAttribute("open");try{if(jQuery){const headerHeightStr=getComputedStyle(document.body).getPropertyValue("--calculated-header-height"),headerHeight=Number(headerHeightStr.substring(0,headerHeightStr.length-2)),targetTop=$(targetDetail).offset().top,scrollTop=$(window).scrollTop();targetTop-headerHeight<scrollTop&&$("html,body").animate({scrollTop:targetTop-headerHeight},400)}}catch{console.error("Could not scroll target accordion into view.")}})})})}}customElements.define("exclusive-accordions",ExclusiveAccordions),window.addEventListener("resize",calculateHeaderHeight),window.addEventListener("scroll",calculateHeaderHeight),window.addEventListener("DOMContentLoaded",calculateHeaderHeight);function calculateHeaderHeight(){const announcementBar=document.getElementById("shopify-section-announcement-bar"),header=document.getElementById("shopify-section-header");header.classList.contains("shopify-section-header-sticky")?totalHeaderHeight=header.offsetHeight+1:totalHeaderHeight=announcementBar.offsetHeight+header.offsetHeight+1,document.documentElement.style.setProperty("--calculated-header-height",totalHeaderHeight+"px")}let searchClears=document.querySelectorAll(".search__clear");for(let searchClear of searchClears)searchClear.addEventListener("click",e=>{e.preventDefault();let searchInput=searchClear.parentNode.querySelector(".field__input");searchInput.value="",searchInput.focus()});function onNavLink(e){setTimeout(function(){e.target.matches(":hover")&&(this.parentElement.parentElement.querySelectorAll(".header__submenu-has-children, .no-grandchildren").forEach(headerSubmenu=>{headerSubmenu.classList.remove("is-open")}),this.classList.add("is-open"))}.bind(this),200)}document.addEventListener("DOMContentLoaded",function(){var windowWidth=window.innerWidth;if(windowWidth>990){const desktopNavLinks=document.querySelectorAll(".header__submenu--left-rail.header__link-lists .header__submenu-has-children"),desktopNavLinksChildrenless=document.querySelectorAll(".header__submenu--left-rail.header__link-lists .no-grandchildren");desktopNavLinks.forEach(desktopNavLink=>desktopNavLink.addEventListener("mouseover",onNavLink)),desktopNavLinksChildrenless.forEach(desktopNavLink=>desktopNavLink.addEventListener("mouseover",e=>{e.target.matches(":hover")&&(e.target.parentElement.parentElement.querySelectorAll(".is-open").forEach(anyLink=>anyLink.classList.remove("is-open")),e.target.classList.add("is-open"))}))}});
2//# sourceMappingURL=/cdn/shop/t/870/assets/global.js.map?v=26752694368008990691789061852

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.