PageSourceSearch

https://lewisbrass.com/cdn/shop/t/2/assets/global.js?v=20712300978041928701770357086

js lewisbrass.com collected 2026-10-02 16:44:25 UTC 40,720 bytes, 2 lines download raw bytes

1const sliderInit=isUpdate=>{document.querySelectorAll(".js-media-list")&&document.querySelectorAll(".js-media-list").length>0&&document.querySelectorAll(".js-media-list").forEach((elem,index)=>{let prevButton=elem.closest(".product").querySelector(".product__slider-nav .swiper-button-prev"),nextButton=elem.closest(".product").querySelector(".product__slider-nav .swiper-button-next"),slider=new Swiper(elem,{slidesPerView:1,spaceBetween:1,mousewheel:{forceToAxis:!0},autoHeight:!1,speed:500,navigation:{nextEl:nextButton,prevEl:prevButton},pagination:{el:".product .product__pagination",type:"bullets",clickable:!0},thumbs:{swiper:document.querySelectorAll(".js-media-sublist").length>0?document.querySelectorAll(".js-media-sublist")[index]?.swiper:""},on:{afterInit:function(swiper){},slideChangeTransitionStart:function(){document.querySelector(".js-media-sublist")&&document.querySelector(".js-media-sublist").swiper.slideTo(document.querySelector(".js-media-list").swiper.activeIndex)},slideChange:function(){window.pauseAllMedia(),this.params.noSwiping=!1,document.querySelector(".js-popup-slider")&&document.querySelector(".js-popup-slider").swiper&&document.querySelector(".js-popup-slider").swiper.slideTo(this.activeIndex)},slideChangeTransitionEnd:function(){this.slides[this.activeIndex].querySelector("model-viewer")&&this.slides[this.activeIndex].querySelector(".shopify-model-viewer-ui__button--poster").removeAttribute("hidden")},touchStart:function(){this.slides[this.activeIndex].querySelector("model-viewer")&&(this.slides[this.activeIndex].querySelector("model-viewer").classList.contains("shopify-model-viewer-ui__disabled")?this.params.noSwiping=!1:(this.params.noSwiping=!0,this.params.noSwipingClass="swiper-slide"))}}});isUpdate&&setTimeout(function(){slider.update()},800)})},subSliderInit=(isUpdate,margin)=>{document.querySelectorAll(".js-media-sublist")&&document.querySelectorAll(".js-media-sublist").length>0&&document.querySelectorAll(".js-media-sublist").forEach((elem,index)=>{const slidesAmount=elem.querySelectorAll(".product__media-subitem").length,slidesPerView=slidesAmount<3?slidesAmount:3;let subSlider=new Swiper(elem,{slidesPerView,spaceBetween:8,direction:"horizontal",mousewheel:{forceToAxis:!0},freeMode:!1,watchSlidesProgress:!0,watchSlidesVisibility:!0,on:{touchEnd:function(s,e){let range=5,diff=s.touches.diff=s.isHorizontal()?s.touches.currentX-s.touches.startX:s.touches.currentY-s.touches.startY;(diff<range||diff>-range)&&(s.allowClick=!0)}},breakpoints:{1100:{spaceBetween:margin,slidesPerView}}});isUpdate&&setTimeout(function(){subSlider.update()},800)})},popupSliderInit=isUpdate=>{if(document.querySelector(".js-popup-slider")){let popupSlider=new Swiper(document.querySelector(".js-popup-slider"),{slidesPerView:1,mousewheel:{forceToAxis:!0},zoom:{maxRatio:2},navigation:{nextEl:".product-media-modal .product__slider-nav .swiper-button-next",prevEl:".product-media-modal .product__slider-nav .swiper-button-prev"},pagination:{el:".product-media-modal .product__pagination",type:"bullets",clickable:!0},on:{afterInit:function(){(document.querySelector(".product__outer--grid-gallery")||document.querySelector(".product__outer--stacked-gallery"))&&document.querySelectorAll(".product__media-list .product__media-toggle").forEach((elem,index)=>{elem.addEventListener("click",e=>{document.querySelector(".js-popup-slider")&&document.querySelector(".js-popup-slider").swiper&&document.querySelector(".js-popup-slider").swiper.slideTo(index)})})},slideChange:function(){window.pauseAllMedia(),this.params.noSwiping=!1,document.querySelector(".product-media-modal__content").classList.remove("zoom")},touchMove:function(){document.querySelector(".product-media-modal__content").classList.remove("zoom")},slideChangeTransitionEnd:function(){this.slides[this.activeIndex].querySelector("model-viewer")&&this.slides[this.activeIndex].querySelector(".shopify-model-viewer-ui__button--poster").removeAttribute("hidden")},touchStart:function(){this.slides[this.activeIndex].querySelector("model-viewer")&&(this.slides[this.activeIndex].querySelector("model-viewer").classList.contains("shopify-model-viewer-ui__disabled")?this.params.noSwiping=!1:(this.params.noSwiping=!0,this.params.noSwipingClass="swiper-slide"))}}});
1isUpdate&&setTimeout(function(){popupSlider.update()},800)}};navigator.userAgent.indexOf("iPhone")>-1&&document.querySelector("[name=viewport]").setAttribute("content","width=device-width, initial-scale=1, maximum-scale=1");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"))}document.querySelectorAll('[id^="Details-"] summary').forEach(summary=>{summary.setAttribute("role","button"),summary.setAttribute("aria-expanded","false"),summary.nextElementSibling.getAttribute("id")&&summary.setAttribute("aria-controls",summary.nextElementSibling.id),summary.addEventListener("click",event2=>{event2.currentTarget.setAttribute("aria-expanded",!event2.currentTarget.closest("details").hasAttribute("open"))}),!summary.closest("header-drawer")&&summary.parentElement.addEventListener("keyup",onKeyUpEscape)});function onKeyUpEscape(event2){if(event2.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event2.target.closest("details[open]");if(!openDetailsElement)return;const summaryElement=openDetailsElement.querySelector("summary");openDetailsElement.removeAttribute("open"),summaryElement.setAttribute("aria-expanded",!1),summaryElement.focus()}const trapFocusHandlers={};function trapFocus(container,elementToFocus=container){var elements=getFocusableElements(container),first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=event2=>{event2.target!==container&&event2.target!==last&&event2.target!==first||document.addEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",trapFocusHandlers.keydown)},trapFocusHandlers.keydown=function(event2){event2.code.toUpperCase()==="TAB"&&(event2.target===last&&!event2.shiftKey&&(event2.preventDefault(),first.focus()),(event2.target===container||event2.target===first)&&event2.shiftKey&&(event2.preventDefault(),last.focus()))},document.addEventListener("focusout",trapFocusHandlers.focusout),document.addEventListener("focusin",trapFocusHandlers.focusin),elementToFocus.focus()}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(".hero__image")&&!video.closest(".multirow__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.classList.contains("card-focused")&&elementToFocus.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=>{this.setMinimumDisable(),button.addEventListener("click",this.onButtonClick.bind(this))});var eventList=["paste","input"];for(event of eventList)this.input.addEventListener(event,function(e){/^0*?[1-9]\d*$/.test(e.currentTarget.value)||e.currentTarget.value===""?e.currentTarget.value:e.currentTarget.value=1,e.currentTarget.value===1||e.currentTarget.value===""?this.previousElementSibling.classList.add("disabled"):this.previousElementSibling.classList.remove("disabled")});this.input.addEventListener("focusout",function(e){e.currentTarget.value===""&&(e.currentTarget.value=1)})}setMinimumDisable(){this.input.value==1?this.querySelector('button[name="minus"]').classList.add("disabled"):this.querySelector('button[name="minus"]').classList.remove("disabled")}onButtonClick(event2){event2.preventDefault();const previousValue=this.input.value;event2.target.name==="plus"?this.input.stepUp():this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent),this.setMinimumDisable()}}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())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)}}};const body=document.body;let bodyScrollTop=null,locked=!1;function getScrollbarWidth(){return window.innerWidth-document.documentElement.clientWidth}function preventScroll(e){e.preventDefault()}function lockScroll(){bodyScrollTop=typeof window.pageYOffset<"u"?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;var scrollBarWidth=getScrollbarWidth();body.style.paddingRight=scrollBarWidth+"px",body.classList.add("scroll-locked"),locked=!0,document.addEventListener("scroll",preventScroll,{passive:!1})}function unlockScroll(){body.classList.remove("scroll-locked"),body.style.paddingRight="",window.scrollTo(0,bodyScrollTop),document.removeEventListener("scroll",preventScroll)}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=>{this.querySelector(".toggle-scheme-button")!==button&&this.querySelector(".header__localization-button")!==button&&this.querySelector(".header__localization-lang-button")!==button&&(button.classList.contains("mobile-facets__footer__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(event2){if(event2.code.toUpperCase()!=="ESCAPE")return;const openDetailsElement=event2.target.closest("details[open]");openDetailsElement&&(openDetailsElement===this.mainDetailsToggle?this.closeMenuDrawer(this.mainDetailsToggle.querySelector("summary")):this.closeSubmenu(openDetailsElement))}onSummaryClick(event2){const summaryElement=event2.currentTarget,detailsElement=summaryElement.parentNode,isOpen=detailsElement.hasAttribute("open");detailsElement===this.mainDetailsToggle?(isOpen&&event2.preventDefault(),isOpen?this.closeMenuDrawer(summaryElement):this.openMenuDrawer(summaryElement)):(trapFocus(summaryElement.nextElementSibling,detailsElement.querySelector("button")),setTimeout(()=>{detailsElement.classList.add("menu-opening")}))}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(event2,elementToFocus=!1){event2!==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),this.header=this.header||document.querySelector(".shopify-section-header"))}onFocusOut(event2){setTimeout(()=>{this.mainDetailsToggle.hasAttribute("open")&&!this.mainDetailsToggle.contains(document.activeElement)&&this.closeMenuDrawer()})}onCloseButtonClick(event2){const detailsElement=event2.currentTarget.closest("details");this.closeSubmenu(detailsElement)}closeSubmenu(detailsElement){detailsElement.classList.remove("menu-opening"),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.headerWrapper=document.querySelector(".header-wrapper"),document.documentElement.style.setProperty("--header-bottom-position",`${parseInt(this.headerWrapper.getBoundingClientRect().top)}px`),document.querySelector("main").querySelectorAll(".shopify-section")[0]?.classList.contains("section--has-overlay"),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 LocalizationForm extends HTMLElement{constructor(){super(),this.elements={input:this.querySelector('input[name="locale_code"], input[name="country_code"]'),button:this.querySelector("button"),panel:this.querySelector("ul")},this.handleDocumentClick=this.handleDocumentClick.bind(this),this.elements.button.addEventListener("click",this.togglePanel.bind(this)),this.addEventListener("keydown",this.onEscapePress.bind(this)),this.querySelectorAll("a").forEach(item=>item.addEventListener("click",this.onItemClick.bind(this)))}connectedCallback(){document.addEventListener("click",this.handleDocumentClick)}disconnectedCallback(){document.removeEventListener("click",this.handleDocumentClick)}handleDocumentClick(event2){this.contains(event2.target)||this.hidePanel()}hidePanel(){this.elements.button.setAttribute("aria-expanded","false"),this.elements.panel.setAttribute("hidden",!0)}showPanel(){this.elements.button.setAttribute("aria-expanded","true"),this.elements.panel.removeAttribute("hidden")}togglePanel(){this.elements.button.getAttribute("aria-expanded")==="true"?this.hidePanel():this.showPanel()}onEscapePress(event2){event2.key==="Escape"&&this.hidePanel()}onItemClick(event2){event2.preventDefault(),this.elements.input.value=event2.currentTarget.dataset.value,this.querySelector("form")?.submit(),this.hidePanel()}}customElements.define("localization-form",LocalizationForm);class ModalDialog extends HTMLElement{constructor(){super(),this.querySelector('[id^="ModalClose-"]').addEventListener("click",this.hide.bind(this,!1)),this.addEventListener("keyup",event2=>{event2.code.toUpperCase()==="ESCAPE"&&this.hide()}),this.classList.contains("media-modal")?this.addEventListener("pointerup",event2=>{event2.pointerType==="mouse"&&!event2.target.closest("deferred-media, product-model")&&this.hide()}):this.addEventListener("click",event2=>{event2.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(),/iPhone|iPad|iPod/i.test(navigator.userAgent)&&this.classList.contains("product-media-modal")&&lockScroll()}hide(){let isOpen=!1;this.removeAttribute("open"),removeTrapFocus(this.openedBy),window.pauseAllMedia(),document.querySelectorAll("body > quick-add-modal").forEach(el=>{el.hasAttribute("open")&&(isOpen=!0)}),isOpen||(document.body.classList.remove("overflow-hidden"),document.body.dispatchEvent(new CustomEvent("modalClosed")));const images=document.querySelector(".product-media-modal__content");images&&images.classList.remove("zoom"),/iPhone|iPad|iPod/i.test(navigator.userAgent)&&this.classList.contains("product-media-modal")&&unlockScroll()}}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(),this.querySelector('[id^="Deferred-Poster-"]')?.addEventListener("click",this.loadContent.bind(this)),this.getAttribute("data-autoplay")&&this.loadContent()}loadContent(){if(!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0),window.pauseAllMedia();const videoObserver=new IntersectionObserver(entries=>
1{entries.forEach(entry=>{if(entry.isIntersecting){if(this.getAttribute("data-autoplay"))if(deferredElement.nodeName=="VIDEO"){let playPromise=entry.target.play();playPromise!==void 0&&playPromise.then(_=>{}).catch(error=>{})}else entry.target.classList.contains("js-youtube")?entry.target.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):entry.target.contentWindow.postMessage('{"method":"play"}',"*")}else deferredElement.nodeName=="VIDEO"?entry.target.pause():entry.target.classList.contains("js-youtube")?entry.target.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*"):entry.target.contentWindow.postMessage('{"method":"pause"}',"*")})}),deferredElement=this.appendChild(content.querySelector("video, model-viewer, iframe"));if(deferredElement.nodeName=="VIDEO"||deferredElement.nodeName=="IFRAME")if(this.classList.contains("video-section__media")){if(deferredElement.nodeName=="VIDEO"){let playPromise=deferredElement.play();playPromise!==void 0&&playPromise.then(_=>{}).catch(error=>{})}videoObserver.observe(deferredElement)}else deferredElement.play();this.closest(".swiper")?.swiper.slides[this.closest(".swiper").swiper.activeIndex].querySelector("model-viewer")&&(this.closest(".swiper").swiper.slides[this.closest(".swiper").swiper.activeIndex].querySelector("model-viewer").classList.contains("shopify-model-viewer-ui__disabled")||(this.closest(".swiper").swiper.params.noSwiping=!0,this.closest(".swiper").swiper.params.noSwipingClass="swiper-slide"))}}}customElements.define("deferred-media",DeferredMedia);class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange)}onVariantChange(){this.updateOptions(),this.updateMasterId(),this.toggleAddButton(!0,""),this.updatePickupAvailability(),this.updateVariantStatuses(),this.currentVariant?(this.currentVariant?.featured_media&&this.dataset?.variantMediaDisplay==="show_all"&&this.updateMedia(`${this.dataset.section}-${this.currentVariant.featured_media.id}`),this.updateURL(),this.updateVariantInput(),this.renderProductInfo()):(this.toggleAddButton(!0,""),this.setUnavailable()),this.currentVariant&&(document.dispatchEvent(new CustomEvent("variant:change",{detail:{variant:this.currentVariant,previousVariant:this.previousVariant||null,formElement:document.querySelector(`#${this.getAttribute("id")}`),sectionId:this.dataset.section}})),this.previousVariant=this.currentVariant)}updateOptions(){const fieldsets=Array.from(this.querySelectorAll(".js-radio-colors"));this.options=Array.from(this.querySelectorAll("select"),select=>select.value).concat(fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value))}updateMasterId(){(this.variantData||this.querySelector('[type="application/json"]'))&&(this.currentVariant=this.getVariantData().find(variant=>(this.options.sort(),variant.options.sort(),!variant.options.map((option,index)=>this.options[index]===option).includes(!1))))}isHidden(elem){const styles=window.getComputedStyle(elem);return styles.display==="none"||styles.visibility==="hidden"}updateMedia(mediaId){if(!this.currentVariant||!this.currentVariant?.featured_media)return;const currentSection=document.querySelector(`[data-section="main-${this.dataset.section}"]`);this.mediaList=currentSection.querySelector(".product__media-list");const activeMedia=this.mediaList.querySelector(`[data-media-id="${mediaId}"]`);this.mediaList.querySelectorAll("[data-media-id]").forEach(element=>{element.classList.remove("active")}),activeMedia&&activeMedia.classList.add("active"),document.querySelectorAll(".product__media-wrapper").forEach(elem=>{if(!this.isHidden(elem)){const newMedia=elem.querySelector(`[data-media-id="${this.dataset.section}-${this.currentVariant.featured_media.id}"]`);elem.querySelector(".js-media-list")&&elem.querySelector(".js-media-list").swiper.slideTo(elem.querySelector(".js-media-list").swiper.slides.indexOf(newMedia))}})}updateURL(){if(!this.classList.contains("featured-product-radios")){if(!this.currentVariant||this.dataset.updateUrl==="false")return;window.history.replaceState({},"",`${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__controls")];
1inputWrappers.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.tagName==="OPTION"?input.innerText=input.getAttribute("value"):input.tagName==="INPUT"&&(input.classList.remove("disabled","always-clickable"),input.disabled=!1):input.tagName==="OPTION"?input.innerText=window.variantStrings.unavailable_with_option.replace("[value]",input.getAttribute("value")):input.tagName==="INPUT"&&(input.classList.add("disabled"),this.dataset.unavailableOptionsClickable==="true"?input.classList.add("always-clickable"):input.disabled=!0)})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant&&this.currentVariant.available?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.removeAttribute("available"),pickUpAvailability.innerHTML=""))}renderProductInfo(){const requestedVariantId=this.currentVariant.id,sectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section;fetch(`${this.dataset.url}?variant=${this.currentVariant.id}&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}`),colorNameSource=html.getElementById(`ColorName-${this.dataset.originalSection?this.dataset.originalSection:this.dataset.section}`),colorNameDestination=document.getElementById(`ColorName-${this.dataset.section}`);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"))),colorNameSource&&colorNameDestination&&(colorNameDestination.innerHTML=colorNameSource.innerHTML);const price=document.getElementById(`price-${this.dataset.section}`);if(price&&price.classList.remove("visibility-hidden"),inventoryDestination&&inventoryDestination.classList.toggle("visibility-hidden",inventorySource.innerText===""),this.toggleAddButton(!this.currentVariant.available,window.variantStrings.soldOut),this.dataset?.variantMediaDisplay!=="show_all"){const sourceSectionId=this.dataset.originalSection?this.dataset.originalSection:this.dataset.section,currentSectionId=this.dataset.section,mediaSource=html.querySelector(`[data-section="product-media-${sourceSectionId}"]`),mediaDestination=document.querySelector(`[data-section="product-media-${currentSectionId}"]`),mediaSubSource=html.querySelector(`[data-sub-section="product-media-${sourceSectionId}"]`),mediaSubDestination=document.querySelector(`[data-sub-section="product-media-${currentSectionId}"]`);if(mediaSource&&mediaDestination){mediaDestination.innerHTML=mediaSource.innerHTML,mediaSubSource&&mediaSubDestination&&(mediaSubDestination.innerHTML=mediaSubSource.innerHTML);const parentQuickView=this.closest("quick-add-modal");if(parentQuickView)typeof parentQuickView.removeDOMElements=="function"&&parentQuickView.removeDOMElements(mediaDestination),typeof parentQuickView.initSlider=="function"&&parentQuickView.initSlider();else{const section=document.getElementById(`shopify-section-${currentSectionId}`);section&&typeof initProductPage=="function"&&initProductPage(section)}document.querySelector(".js-media-list")&&(subSliderInit(!0,16),sliderInit(!0))}}})}
1toggleAddButton(disable=!0,text){const productForm=document.getElementById(`product-form-${this.dataset.section}`);if(!productForm)return;const addButton=productForm.querySelector('[name="add"]');if(!addButton)return;const addButtonText=addButton.querySelector(".button__label")||addButton.querySelector("span");disable?(addButton.setAttribute("disabled","disabled"),text&&(addButtonText.textContent=text)):(addButton.removeAttribute("disabled"),addButtonText.textContent=window.variantStrings.addToCart)}setUnavailable(){const addButton=document.getElementById(`product-form-${this.dataset.section}`).querySelector('[name="add"]'),price=document.getElementById(`price-${this.dataset.section}`),inventory=document.getElementById(`Inventory-${this.dataset.section}`),sku=document.getElementById(`Sku-${this.dataset.section}`);addButton&&(this.toggleAddButton(!0,window.variantStrings.unavailable),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","always-clickable"),input.disabled=!1):(input.classList.add("disabled"),this.dataset.unavailableOptionsClickable==="true"?input.classList.add("always-clickable"):input.disabled=!0)})}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 PasswordViewer{constructor(){document.querySelectorAll(".field--pass").forEach(el=>{const input=el.querySelector("input"),btnWrapper=el.querySelector(".button-pass-visibility"),btnOpen=el.querySelector(".icon-eye-close"),btnClose=el.querySelector(".icon-eye");input.addEventListener("input",()=>{input.value!==""?btnWrapper.style.display="block":btnWrapper.style.display="none"}),btnOpen.addEventListener("click",()=>{input.type="text",btnOpen.style.display="none",btnClose.style.display="block"}),btnClose.addEventListener("click",()=>{input.type="password",btnOpen.style.display="block",btnClose.style.display="none"})})}}class ProductRecommendations extends HTMLElement{constructor(){super();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);const generateSrcset=(image,widths=[])=>{const imageUrl=new URL(image.src);return widths.filter(width=>width<=image.width).map(width=>(imageUrl.searchParams.set("width",width.toString()),`${imageUrl.href} ${width}w`)).join(", ")},createImageElement=(image,classes,sizes,productTitle)=>{const previewImage=image.preview_image,newImage=new Image(previewImage.width,previewImage.height);return newImage.className=classes,newImage.alt=image.alt||productTitle,newImage.sizes=sizes,newImage.src=previewImage.src,newImage.srcset=generateSrcset(previewImage,[165,360,533,720,940,1066]),newImage.loading="lazy",newImage};document.querySelectorAll(".js-color-swatches-wrapper").forEach(wrapper=>{wrapper.querySelectorAll(".js-color-swatches input").forEach(input=>{input.addEventListener("click",event2=>{const primaryImage=wrapper.querySelector(".media--first"),secondaryImage=wrapper.querySelector(".media--second"),handleProduct=wrapper.dataset.product;if(event2.currentTarget.checked&&primaryImage){wrapper.querySelector(".js-color-swatches-link").setAttribute("href",event2.currentTarget.dataset.variantLink);const currentColor=event2.currentTarget.value;jQuery.getJSON(window.Shopify.routes.root+`products/${handleProduct}.js`,function(product){const variant=product.variants.filter(item=>item.featured_media!=null&&item.options.includes(currentColor))[0];if(variant){const newPrimaryImage=createImageElement(variant.featured_media,primaryImage.className,primaryImage.sizes,product.title);if(newPrimaryImage.src!==primaryImage.src){let flag=!1;if(secondaryImage){const secondaryImagePathname=new URL(secondaryImage.src).pathname,newPrimaryImagePathname=new URL(newPrimaryImage.src).pathname;secondaryImagePathname==newPrimaryImagePathname&&(primaryImage.remove(),secondaryImage.classList.remove("media--second"),secondaryImage.classList.add("media--first"),flag=!0)}flag==!1&&(primaryImage.animate({opacity:[1,0]},{duration:200,easing:"ease-in",fill:"forwards"}).finished,setTimeout(function(){primaryImage.replaceWith(newPrimaryImage),newPrimaryImage.animate({opacity:[0,1]},{duration:200,easing:"ease-in"}),secondaryImage&&secondaryImage.remove()},200))}}})}})})});const calcTop=section=>{const imageWrapper=section.querySelectorAll(".card__inner");let top=0;return imageWrapper?top=imageWrapper[0].offsetHeight/2:top=50,top},initSlider=()=>{let mobileLayout=1;this.dataset.mobileLayout&&(mobileLayout=this.dataset.mobileLayout);let slider=new Swiper(this.querySelector(".js-recommendation-swiper"),{slidesPerView:mobileLayout,mousewheel:{forceToAxis:!0},slidesPerGroup:1,spaceBetween:8,speed:500,navigation:{nextEl:this.querySelector(".product-recommendations__slider-nav .swiper-button-next"),prevEl:this.querySelector(".product-recommendations__slider-nav .swiper-button-prev")},breakpoints:{576:{slidesPerView:2,slidesPerGroup:2},750:{slidesPerView:3,slidesPerGroup:3,spaceBetween:24}}})};(()=>{const section=this;new ResizeObserver(entries2=>{const[entry]=entries2;let top=calcTop(section);section.querySelector(".product-recommendations__slider-nav")&&(section.querySelector(".product-recommendations__slider-nav").style.top=top+"px")}).observe(section),initSlider()})()}).catch(e=>{console.error(e)}))};new IntersectionObserver(handleIntersection.bind(this),{rootMargin:"0px 0px 400px 0px"}).observe(this)}}customElements.define("product-recommendations",ProductRecommendations),(function(){const initHeaderOverlay=()=>{const sections=document.getElementById("MainContent").querySelectorAll(".shopify-section");if(sections.length>0){const sectionFirstChild=sections[0].querySelector(".section--has-overlay"),headerGroupSections=document.querySelectorAll(".shopify-section-group-header-group"),header=document.querySelector(".shopify-section-header");sectionFirstChild?sectionFirstChild.classList.contains("section--has-overlay")?headerGroupSections[headerGroupSections.length-1]===header?(sections[0].classList.remove("not-margin"),sectionFirstChild.classList.contains("section--header-light")?header.classList.add("color-background-overlay"):header.classList.remove("color-background-overlay")):(sections[0].classList.add("not-margin"),header.classList.remove("color-background-overlay")):(sections[0].classList.remove("not-margin"),header.classList.remove("color-background-overlay")):header.classList.remove("color-background-overlay")}};initHeaderOverlay(),document.addEventListener("shopify:section:load",initHeaderOverlay),document.addEventListener("shopify:section:unload",initHeaderOverlay),document.addEventListener("shopify:section:reorder",initHeaderOverlay)})();function formatMoney(cents,format=""){typeof cents=="string"&&(cents=cents.replace(".","")),cents=parseInt(cents,10);let value="";const placeholderRegex=/\{\{\s*(\w+)\s*\}\}/,formatString=format||theme.moneyFormat;function formatWithDelimiters(number,precision=2,thousands=",",decimal="."){if(isNaN(number)||number==null)return"0";number=(number/100).toFixed(precision);const parts=number.split("."),dollarsAmount=parts[0].replace(/(\d)(?=(\d{3})+(?!\d))/g,`$1${thousands}`),centsAmount=precision>0?decimal+parts[1]:"";return dollarsAmount+centsAmount}const match=formatString.match(placeholderRegex);switch(match?match[1]:"amount"){case"amount":value=formatWithDelimiters(cents,2,",",".");break;case"amount_no_decimals":value=formatWithDelimiters(cents,0,",",".");break;case"amount_with_comma_separator":value=formatWithDelimiters(cents,2,".",",");break;case"amount_no_decimals_with_comma_separator":value=formatWithDelimiters(cents,0,".",",");break;case"amount_with_apostrophe_separator":value=formatWithDelimiters(cents,2,"'",".");break;case"amount_no_decimals_with_space_separator":value=formatWithDelimiters(cents,0," ",".");break;case"amount_with_space_separator":value=formatWithDelimiters(cents,2," ",",");break;case"amount_with_period_and_space_separator":value=formatWithDelimiters(cents,2," ",".");break;default:value=formatWithDelimiters(cents,2,",",".")}return formatString.replace(placeholderRegex,value)}const initUnderlinedTitles=()=>{let sectionTitles=document.querySelectorAll(".shopify-section:not(.shopify-section-group-header-group):not(.shopify-section-group-footer-group) .title--rounded");sectionTitles.length>
10&&sectionTitles.forEach(title=>{new ResizeObserver(entries=>{const[entry]=entries;let xs,s,m,l,xl;document.body.clientWidth<1600?(xs=95,s=160,m=280,l=380,xl=520):(xs=95,s=200,m=360,l=450,xl=620),entry.target.querySelectorAll('span[style="text-decoration:underline"]').forEach(span=>{const titleWidth=span.getBoundingClientRect().width;span.classList.remove("title--rounded-xs","title--rounded-s","title--rounded-m","title--rounded-l","title--rounded-xl","title--rounded-xxl"),titleWidth<xs?span.classList.add("title--rounded-xs"):titleWidth<s?span.classList.add("title--rounded-s"):titleWidth<m?span.classList.add("title--rounded-m"):titleWidth<l?span.classList.add("title--rounded-l"):titleWidth<xl?span.classList.add("title--rounded-xl"):span.classList.add("title--rounded-xxl")})}).observe(title)})};document.documentElement.addEventListener("cart:refresh",()=>{[{id:"cart-icon-bubble",selector:"#cart-icon-bubble"},{id:"cart-drawer",selector:"cart-drawer"},{id:"main-cart-items",selector:"#main-cart-items"},{id:"main-cart-footer",selector:"#main-cart-footer"},{id:"main-cart-shipping",selector:".cart-shipping"}].forEach(section=>{fetch(`${routes.cart_url}?section_id=${section.id}`).then(response=>response.text()).then(html=>{const source=new DOMParser().parseFromString(html,"text/html").querySelector(section.selector),target=document.querySelector(section.selector);source&&target&&(target.innerHTML=source.innerHTML)}).catch(e=>console.error(`[cart:refresh] error updating ${section.id}`,e))})});
2//# sourceMappingURL=/cdn/shop/t/2/assets/global.js.map?v=20712300978041928701770357086

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.