PageSourceSearch

https://www.knots-studio.com/cdn/shop/t/41/assets/global.js?v=71235327410249380981745306832

js knots-studio.com collected 2026-10-08 02:15:43 UTC 31,041 bytes, 2 lines download raw bytes

1function 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"))}document.querySelectorAll('[id^="Details-"] summary').forEach(summary=>{summary.setAttribute("role","button"),summary.setAttribute("aria-expanded",summary.parentNode.hasAttribute("open")),summary.nextElementSibling.getAttribute("id")&&summary.setAttribute("aria-controls",summary.nextElementSibling.id),summary.addEventListener("click",event=>{event.currentTarget.setAttribute("aria-expanded",!event.currentTarget.closest("details").hasAttribute("open"))}),summary.parentElement.addEventListener("keyup",onKeyUpEscape)});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(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)}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.closest(".autoplaying-video")||video.pause()}),document.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&model.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.setAttribute("aria-expanded",!1),summaryElement.focus()}class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
1w Event("change",{bubbles:!0}),this.input.addEventListener("change",this.onInputChange.bind(this)),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)))}quantityUpdateUnsubscriber=void 0;connectedCallback(){this.validateQtyRules(),this.quantityUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.quantityUpdate,this.validateQtyRules.bind(this))}disconnectedCallback(){this.quantityUpdateUnsubscriber&&this.quantityUpdateUnsubscriber()}onInputChange(event){this.validateQtyRules()}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)}validateQtyRules(){const value=parseInt(this.input.value);if(this.input.min){const min=parseInt(this.input.min);this.querySelector(".quantity__button[name='minus']").classList.toggle("disabled",value<=min)}if(this.input.max){const max=parseInt(this.input.max);this.querySelector(".quantity__button[name='plus']").classList.toggle("disabled",value>=max)}}}customElements.define("quantity-input",QuantityInput);function debounce(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}}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"),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:not(.localization-selector):not(.country-selector__close-button):not(.country-filter__reset-button)").forEach(button=>button.addEventListener("click",this.onCloseButtonClick.bind(this)))}onKeyUp(event){if(event.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(event,this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event){const summaryElement=event.currentTarget,detailsElement=summaryElement.parentNode,parentMenuElement=detailsElement.closest(".has-submenu"),isOpen=detailsElement.hasAttribute("open"),reducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)");function addTrapFocus(){trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),summaryElement.nextElementSibling.removeEventListener("transitionend",addTrapFocus)}detailsElement===this.mainDetailsToggle?(isOpen&&event.preventDefault(),isOpen?this.closeMenuDrawer(event,summaryElement):this.openMenuDrawer(summaryElement),window.matchMedia("(max-width: 990px)")&&document.documentElement.style.setProperty("--viewport-height",`${window.innerHeight}px`)):setTimeout(()=>{detailsElement.classList.add("menu-opening"),summaryElement.setAttribute("aria-expanded",!0),parentMenuElement&&parentMenuElement.classList.add("submenu-open"),!reducedMotion||reducedMotion.matches?addTrapFocus():summaryElement.nextElementSibling.addEventListener("transitionend",addTrapFocus)},100)}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(detail
1s=>{details.removeAttribute("open"),details.classList.remove("menu-opening")}),this.mainDetailsToggle.querySelectorAll(".submenu-open").forEach(submenu=>{submenu.classList.remove("submenu-open")}),document.body.classList.remove(`overflow-hidden-${this.dataset.breakpoint}`),removeTrapFocus(elementToFocus),this.closeAnimation(this.mainDetailsToggle),event instanceof KeyboardEvent&&elementToFocus?.setAttribute("aria-expanded",!1))}onFocusOut(){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 parentMenuElement=detailsElement.closest(".submenu-open");parentMenuElement&&parentMenuElement.classList.remove("submenu-open"),detailsElement.classList.remove("menu-opening"),detailsElement.querySelector("summary").setAttribute("aria-expanded",!1),removeTrapFocus(detailsElement.querySelector("summary")),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 ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this,!1)),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===this&&this.hide()})}connectedCallback(){this.moved||(this.moved=!0,document.body.appendChild(this))}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"]')),window.pauseAllMedia()}hide(){document.body.classList.remove("overflow-hidden"),document.body.dispatchEvent(new CustomEvent("modalClosed")),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 modal=document.querySelector(this.getAttribute("data-modal"));modal&&modal.show(button)})}}customElements.define("modal-opener",ModalOpener);class DeferredMedia extends HTMLElement{constructor(){super();const poster=this.querySelector('[id^="Deferred-Poster-"]');poster&&poster.addEventListener("click",this.loadContent.bind(this))}loadContent(focus=!0){if(window.pauseAllMedia(),!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0);const deferredElement=this.appendChild(content.querySelector("video, model-viewer, iframe"));focus&&deferredElement.focus()}}}customElements.define("deferred-media",DeferredMedia);class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange)}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,"",!1),this.updatePickupAvailability(),this.updateLabel(),this.removeErrorMessage(),this.updateVariantStatuses(),this.currentVariant?(this.updateURL(),this.updateVariantInput(),this.renderProductInfo(),this.updateShareUrl()):(this.toggleAddButton(!0,"",!0),this.setUnavailable())}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))}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateShareUrl(){const shareButton=document.getElementById(`Share-${this.dataset.section}`);!shareButton||!shareButton.updateUrl||shareButton.updateUrl(`${window.shopUrl}${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updateVariantStatuses(){const selectedOptionOneVariants=this.variantData.filter(variant=>this.querySelector(":checked").value===variant.option1),inputWrappers=[...this.querySelectorAll(".product-form__input")];inputWrappers.forEach((option,index)=>{if(index===0)return;const optionInputs=[...option.querySelectorAll('input[type="radio"], option')],previousOptionSelected=inputWrappers[index-1].querySelector(":checked").value,availableOptionInputsValue=selectedOptionOneVariants.filter(variant=>variant.available&&variant[`option${index}`]===previousOptionSelected).map(variantOption=>variantOption[`option${index+1}`]);this.setInputAvailability(optionInputs,availableOptionInputsValue)})}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.innerText=input.getAttribute("value"):input.innerText=window.variantStrings.unavailable_with_option.replace("[value]",input.getAttribute("value"))})}updatePickupAvailability(){if(window.isQuickAddModal)return!1;const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}updateLabel(){const label=document.getElementById("colorSwatchLabel");if(!label)return;const wrapper=document.querySelector(".radio-options-wrapper");if(!wrapper)return;const colorInput=wrapper.querySelector('.option-color-picker-wrapper input[type="radio"]:checked');colorInput&&(label.innerHTML=colorInput.value)}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector("product-form");productForm&&productForm.handleErrorMessage()}renderProductInfo(){const requestedVariantId=this.currentVariant.id,sectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section;fetch(`${this.dataset.url}?variant=${requestedVariantId}&section_id=${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`).then(response=>response.text()).then(responseText=>{if(this.currentVariant.id!==requestedVariantId)return;const html=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(`price-${this.dataset.section}`),source=html.getElementById(`price-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuSource=html.getElementById(`Sku-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),skuDestination=document.getElementById(`Sku-${this.dataset.section}`),inventorySource=html.getElementById(`Inventory-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),inventoryDestination=document.getElementById(`Inventory-${this.dataset.section}`),galSource=html.getElementById(`pageGallery-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),galDestination=document.getElementById(`pageGallery-${this.dataset.section}`);galSource&&galDestination&&this.currentVariant.featured_media&&(galDestination.innerHTML=galS
1ource.innerHTML),source&&destination&&(destination.innerHTML=source.innerHTML),inventorySource&&inventoryDestination&&(inventoryDestination.innerHTML=inventorySource.innerHTML),skuSource&&skuDestination&&(skuDestination.innerHTML=skuSource.innerHTML,skuDestination.classList.toggle("visibility-hidden",skuSource.classList.contains("visibility-hidden")));const slidesContainer=document.getElementById("SlidesCon"),leftArrow=document.querySelector(".gallery-slider-arrows .slider-arrow-left"),rightArrow=document.querySelector(".gallery-slider-arrows .slider-arrow-right");slidesContainer&&slidesContainer.addEventListener("scroll",function(){handleScroll()}),leftArrow&&leftArrow.addEventListener("click",()=>{slidesContainer.scrollBy({left:-300,behavior:"smooth"})}),rightArrow&&rightArrow.addEventListener("click",()=>{slidesContainer.scrollBy({left:300,behavior:"smooth"})}),window.isQuickAddModal||thumbnailsScroll();const price=document.getElementById(`price-${this.dataset.section}`);price&&price.classList.remove("visibility-hidden"),inventoryDestination&&inventoryDestination.classList.toggle("visibility-hidden",inventorySource.innerText==="");const addButtonUpdated=html.getElementById(`ProductSubmitButton-${sectionId}`);this.toggleAddButton(addButtonUpdated?addButtonUpdated.hasAttribute("disabled"):!0,window.variantStrings.soldOut),publish(PUB_SUB_EVENTS.variantChange,{data:{sectionId,html,variant:this.currentVariant}})})}toggleAddButton(disable=!0,text,modifyClass=!0){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]'),addButtonText=productForm.querySelector('[name="add"] > span');addButton&&(disable?(addButton.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text)):(addButton.removeAttribute("disabled"),addButtonText.textContent=window.variantStrings.addToCart))}setUnavailable(){const button=document.getElementById(`product-form-${this.dataset.section}`),addButton=button.querySelector('[name="add"]'),addButtonText=button.querySelector('[name="add"] > span'),price=document.getElementById(`price-${this.dataset.section}`),inventory=document.getElementById(`Inventory-${this.dataset.section}`),sku=document.getElementById(`Sku-${this.dataset.section}`);addButton&&(addButtonText.textContent=window.variantStrings.unavailable,price&&price.classList.add("visibility-hidden"),inventory&&inventory.classList.add("visibility-hidden"),sku&&sku.classList.add("visibility-hidden"))}getVariantData(){return this.variantData=this.variantData||JSON.parse(this.querySelector('[type="application/json"]').textContent),this.variantData}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}setInputAvailability(listOfOptions,listOfAvailableOptions){listOfOptions.forEach(input=>{listOfAvailableOptions.includes(input.getAttribute("value"))?input.classList.remove("disabled"):input.classList.add("disabled")})}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}}customElements.define("variant-radios",VariantRadios);class ProductRecommendations extends HTMLElement{constructor(){super()}connectedCallback(){const handleIntersection=(entries,observer)=>{entries[0].isIntersecting&&(observer.unobserve(this),fetch(this.dataset.url).then(response=>response.text()).then(text=>{const html=document.createElement("div");html.innerHTML=text;const recommendations=html.querySelector("product-recommendations");recommendations&&recommendations.innerHTML.trim().length&&(this.innerHTML=recommendations.innerHTML),!this.querySelector("slideshow-component")&&this.classList.contains("complementary-products")&&this.remove(),html.querySelector(".grid__item")&&this.classList.add("product-recommendations--loaded")}).catch(e=>{console.error(e)}))};new IntersectionObserver(handleIntersection.bind(this),{rootMargin:"0px 0px 400px 0px"}).observe(this)}}customElements.define("product-recommendations",ProductRecommendations),document.addEventListener("DOMContentLoaded",function(){var headings=document.querySelectorAll(".accordion-title");
1headings.forEach(function(heading){var panel=heading.nextElementSibling;panel.style.transition="none",panel.classList.contains("panel-open")&&(panel.style.height=panel.scrollHeight+"px"),setTimeout(()=>{panel.style.transition=""}),heading.addEventListener("click",function(){panel.classList.contains("panel-open")?(panel.style.height=null,panel.classList.remove("panel-open"),panel.setAttribute("aria-hidden","true"),heading.classList.remove("active"),heading.setAttribute("aria-expanded","false")):(panel.style.height=panel.scrollHeight+"px",panel.classList.add("panel-open"),panel.setAttribute("aria-hidden","false"),heading.classList.add("active"),heading.setAttribute("aria-expanded","true"))})})});function LuxeSlider(){document.querySelectorAll(".slider-outer-wrapper").forEach(wrapper=>{const sliderContainer=wrapper.querySelector(".slider-element"),leftArrow=wrapper.querySelector(".slider-arrows .slider-arrow-left"),rightArrow=wrapper.querySelector(".slider-arrows .slider-arrow-right");function setArrowState(){const firstImage=sliderContainer.querySelector("img"),placeholder=sliderContainer.querySelector(".global-image-placeholder");let imageHeight=0;firstImage?imageHeight=firstImage.clientHeight:placeholder&&(imageHeight=placeholder.clientHeight);const scrollPosition=sliderContainer.scrollLeft,containerWidth=sliderContainer.clientWidth,scrollLimit=sliderContainer.scrollWidth-containerWidth,scrollLimitWithOffset=scrollLimit-1;if(wrapper.classList.contains("slider-arrows-position-middle")&&leftArrow&&rightArrow&&imageHeight!==0&&!Shopify.designMode){const marginTop=imageHeight*.5-24;leftArrow.style.marginTop=marginTop+"px",rightArrow.style.marginTop=marginTop+"px"}leftArrow&&rightArrow&&(scrollPosition===0?leftArrow.classList.add("disabled"):leftArrow.classList.remove("disabled"),scrollPosition===scrollLimit||scrollPosition>=scrollLimitWithOffset?rightArrow.classList.add("disabled"):rightArrow.classList.remove("disabled"))}sliderContainer.addEventListener("scroll",setArrowState),setArrowState(),window.addEventListener("resize",setArrowState),leftArrow&&leftArrow.addEventListener("click",()=>{sliderContainer.scrollBy({top:0,left:-280,behavior:"smooth"})}),rightArrow&&rightArrow.addEventListener("click",()=>{sliderContainer.scrollBy({top:0,left:280,behavior:"smooth"})})})}document.addEventListener("DOMContentLoaded",LuxeSlider),document.addEventListener("DOMContentLoaded",function(){function pauseOtherMedia(except){var mediaElements=document.querySelectorAll("video, audio");mediaElements.forEach(function(media){media!==except&&!media.closest(".autoplaying-video")&&media.pause()}),document.querySelectorAll(".iframe-youtube").forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll(".evp-vimeo iframe").forEach(iframe=>{iframe.closest(".evp-vimeo")&&iframe.contentWindow.postMessage('{"method":"pause"}',"*")})}document.querySelectorAll(".video-player-sh--poster").forEach(function(poster){poster.addEventListener("click",function(){poster.classList.add("poster-hidden");var video=poster.nextElementSibling;pauseOtherMedia(video),video.play(),video.controls=!0})}),document.addEventListener("play",function(event){var playingMedia=event.target;playingMedia.closest(".autoplaying-video")||pauseOtherMedia(playingMedia)},!0)});const hotspotButtons=document.querySelectorAll(".hotspot-button");hotspotButtons.forEach(button=>{button.addEventListener("click",()=>{document.querySelectorAll(".hotspot-info").forEach(info=>{info.classList.remove("open"),info.classList.add("hidden")});const hotspotInfo=button.nextElementSibling;hotspotInfo&&hotspotInfo.classList.contains("hotspot-info")&&(hotspotInfo.classList.add("open"),hotspotInfo.classList.remove("hidden"));const closeButton=hotspotInfo.querySelector(".hotspot-close-button");closeButton&&closeButton.addEventListener("click",()=>{hotspotInfo.classList.remove("open"),hotspotInfo.classList.add("hidden")})})}),document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll(".mobile-slides-grid").forEach(mobileSlidesGrid=>{const section=mobileSlidesGrid.closest(".section-inner");if(!section)return;const paginationOuter=section.querySelector(".slider-mobile-pagination-container"),paginationContainer=section.querySelector(".slider-mobile-pagination"),paginationMarkers=section.querySelectorAll(".pagination-marker"),gridItems=section.querySelectorAll(".mobile-slides-grid-item");if(paginationMarkers.length>0&&gridItems.length>0){const totalItems=gridItems.length,totalPages=paginationMarkers.length,maxMarkersInView=5,markerWidth=paginationMarkers[0].offsetWidth,computedStyle=window.getComputedStyle(paginationContainer),markerGap=parseInt(computedStyle.getPropertyValue("column-gap")||computedStyle.getPropertyValue("gap")||"0",10);let timeoutId;const updatePagination=()=>{const scrollLeft=mobileSlidesGrid.scrollLeft,scrollWidth=mobileSlidesGrid.scrollWidth,clientWidth=mobileSlidesGrid.clientWidth,maxScrollLeft=scrollWidth-clientWidth,scrollPercentage=scrollLeft/maxScrollLeft,currentPage=Math.round(scrollPercentage*(totalPages-1));
1paginationMarkers.forEach(marker=>marker.classList.remove("active")),paginationMarkers[currentPage]&&paginationMarkers[currentPage].classList.add("active"),clearTimeout(timeoutId),timeoutId=setTimeout(()=>{if(currentPage>=2&&currentPage<=totalPages-3){const offset=(currentPage-2)*(markerWidth+markerGap);paginationContainer.style.transform=`translateX(-${offset}px)`}else if(currentPage<2)paginationContainer.style.transform="translateX(0)";else if(currentPage>=totalPages-2){const offset=(totalPages-maxMarkersInView)*(markerWidth+markerGap);paginationContainer.style.transform=`translateX(-${offset}px)`}},15)};mobileSlidesGrid.addEventListener("scroll",updatePagination),window.addEventListener("resize",updatePagination),updatePagination()}})});function updateCardArrowState(arrowLeft,arrowRight,swipeTrack){const maxScrollLeft=swipeTrack.scrollWidth-swipeTrack.clientWidth,buffer=2;swipeTrack.scrollLeft<=0?arrowLeft.classList.add("faded"):arrowLeft.classList.remove("faded"),swipeTrack.scrollLeft>=maxScrollLeft-buffer?arrowRight.classList.add("faded"):arrowRight.classList.remove("faded")}function initializeSwipeFunctionality(container=document){document.querySelectorAll(".card-product--image-swipe-container").forEach(function(container2){const swipeTrack=container2.querySelector(".card-product--image-swipe-track"),bullets=container2.querySelectorAll(".product-card--pagination-bullet"),slides=swipeTrack.querySelectorAll(".card-product--image-slide");if(swipeTrack&&bullets.length&&slides.length){const updatePagination=()=>{const trackScrollLeft=swipeTrack.scrollLeft,trackWidth=swipeTrack.clientWidth;slides.forEach((slide,index)=>{const slideLeft=slide.offsetLeft,slideWidth=slide.offsetWidth,scrollAmount=Math.round(slideWidth/2);if(trackScrollLeft>=slideLeft-scrollAmount&&trackScrollLeft<slideLeft+scrollAmount){bullets.forEach(bullet2=>bullet2.classList.remove("active"));const bullet=container2.querySelector(`.product-card--pagination-bullet[data-value="${index+1}"]`);bullet&&bullet.classList.add("active")}})};swipeTrack.addEventListener("scroll",updatePagination),updatePagination()}}),document.querySelectorAll(".card-product--image-swipe-container").forEach(function(container2){const swipeTrack=container2.querySelector(".card-product--image-swipe-track"),arrowLeft=container2.querySelector(".pcpa-left"),arrowRight=container2.querySelector(".pcpa-right");swipeTrack&&arrowLeft&&arrowRight&&(arrowLeft.addEventListener("click",function(event){event.preventDefault();const slide=swipeTrack.querySelector(".card-product--image-slide"),slideWidth=slide?slide.offsetWidth:100,swipeAmount=Math.round(slideWidth/1);swipeTrack.scrollBy({left:-swipeAmount,behavior:"smooth"})}),arrowRight.addEventListener("click",function(event){event.preventDefault();const slide=swipeTrack.querySelector(".card-product--image-slide"),slideWidth=slide?slide.offsetWidth:100,swipeAmount=Math.round(slideWidth/1);swipeTrack.scrollBy({left:swipeAmount,behavior:"smooth"})}),swipeTrack.addEventListener("scroll",function(){updateCardArrowState(arrowLeft,arrowRight,swipeTrack)}),updateCardArrowState(arrowLeft,arrowRight,swipeTrack))})}initializeSwipeFunctionality();
2//# sourceMappingURL=/cdn/shop/t/41/assets/global.js.map?v=71235327410249380981745306832

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.