1/* 2* @license 3* Broadcast Theme (c) Presidio Creative 4* 5* This file is included for advanced development by 6* Shopify Agencies. Modified versions of the theme 7* code are not supported by Shopify or Presidio Creative. 8* 9* In order to use this file you will need to change 10* theme.js to theme.dev.js in /layout/theme.liquid 11* 12*/(function(scrollLock){"use strict";(function(){const env={NODE_ENV:"production"};try{if(process){process.env=Object.assign({},process.env),Object.assign(process.env,env);return}}catch{}globalThis.process={env}})(),window.theme=window.theme||{},window.theme.sizes={mobile:480,small:750,large:990,widescreen:1400},window.theme.focusable='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',window.theme.getWindowWidth=function(){return document.documentElement.clientWidth||document.body.clientWidth||window.innerWidth},window.theme.getWindowHeight=function(){return document.documentElement.clientHeight||document.body.clientHeight||window.innerHeight},window.theme.isMobile=function(){return window.theme.getWindowWidth()<window.theme.sizes.small};const PUB_SUB_EVENTS={cartUpdate:"cart-update",quantityUpdate:"quantity-update",optionValueSelectionChange:"option-value-selection-change",variantChange:"variant-change",cartError:"cart-error"};window.theme.PUB_SUB_EVENTS=PUB_SUB_EVENTS;let subscribers={};function subscribe$1(eventName,callback){return subscribers[eventName]===void 0&&(subscribers[eventName]=[]),subscribers[eventName]=[...subscribers[eventName],callback],function(){subscribers[eventName]=subscribers[eventName].filter(cb=>cb!==callback)}}function publish$1(eventName,data){if(subscribers[eventName]){const promises=subscribers[eventName].map(callback=>callback(data));return Promise.all(promises)}else return Promise.resolve()}window.publish=publish$1,window.subscribe=subscribe$1;const moneyFormat="${{amount}}";window.theme.formatMoney=function(cents,format){typeof cents=="string"&&(cents=cents.replace(".",""));let value="";const placeholderRegex=/\{\{\s*(\w+)\s*\}\}/,formatString=format||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\d\d)+(?!\d))/g,`$1${thousands}`),centsAmount=parts[1]?decimal+parts[1]:"";return dollarsAmount+centsAmount}switch(formatString.match(placeholderRegex)[1]){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}return formatString.replace(placeholderRegex,value)},window.theme.debounce=function(fn,time){let timeout;return function(){if(fn){const functionCall=()=>fn.apply(this,arguments);clearTimeout(timeout),timeout=setTimeout(functionCall,time)}}};let screenOrientation=getScreenOrientation(),firstLoad=!0;window.theme.readHeights=function(){const h={};return h.windowHeight=Math.min(window.screen.height,window.innerHeight),h.footerHeight=getHeight('[data-section-type*="footer"]'),h.headerHeight=getHeight("[data-header-height]"),h.stickyHeaderHeight=document.querySelector("[data-header-sticky]")?h.headerHeight:0,h.collectionNavHeight=getHeight("[data-collection-nav]"),h.logoHeight=getFooterLogoWithPadding(),h};function setVars(){const{windowHeight,headerHeight,logoHeight,footerHeight,collectionNavHeight}=window.theme.readHeights(),currentScreenOrientation=getScreenOrientation();(!firstLoad||currentScreenOrientation!==screenOrientation||window.innerWidth>window.theme.sizes.mobile)&&(document.documentElement.style.setProperty("--full-height",`${windowHeight}px`),document.documentElement.style.setProperty("--three-quarters",`${windowHeight*(3/4)}px`),document.documentElement.style.setProperty("--two-thirds",`${windowHeight*(2/3)}px`),document.documentElement.style.setProperty("--one-half",`${windowHeight/2}px`),document.documentElement.style.setProperty("--one-third",`${windowHeight/3}px`),screenOrientation=currentScreenOrientation,firstLoad=!1),document.documentElement.style.setProperty("--collection-nav-height",`${collectionNavHeight}px`),document.documentElement.style.setProperty("--header-height",`${headerHeight}px`),document.documentElement.style.setProperty("--footer-height",`${footerHeight}px`),document.documentElement.style.setProperty("--content-full",`${windowHeight-headerHeight-logoHeight/2}px`),document.documentElement.style.setProperty("--content-min",`${windowHeight-headerHeight-footerHeight}px`)}function getScreenOrientation(){if(window.matchMedia("(orientation: portrait)").matches)return"portrait";if(window.matchMedia("(orientation: landscape)").matches)return"landscape"}function getHeight(selector){const el=document.querySelector(selector);return el?el.offsetHeight:0}function getFooterLogoWithPadding(){const height=getHeight("[data-footer-logo]");return height>0?height+20:0}setVars(),window.addEventListener("DOMContentLoaded",setVars),document.addEventListener("theme:resize",setVars),document.addEventListener("shopify:section:load",setVars);function pauseAllMedia(){document.querySelectorAll('[data-host="youtube"]').forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll('[data-host="vimeo"]').forEach(video=>{video.contentWindow.postMessage('{"method":"pause"}',"*")}),document.querySelectorAll("video").forEach(video=>video.pause()),document.querySelectorAll("product-model").forEach(model=>{model.modelViewerUI&&model.modelViewerUI.pause()})}window.theme.pauseAllMedia=pauseAllMedia,window.theme.scrollTo=elementTop=>{const stickyHeaderHeight=document.querySelector("[data-header-sticky]")?document.querySelector("[data-header-height]").offsetHeight:0;window.scrollTo({top:elementTop+window.scrollY-stickyHeaderHeight,left:0,behavior:"smooth"})};const trapFocusHandlers={},a11y={forceFocus(element,options){options=options||{};var savedTabIndex=element.tabIndex;element.tabIndex=-1,element.dataset.tabIndex=savedTabIndex,element.focus(),typeof options.className<"u"&&element.classList.add(options.className),element.addEventListener("blur",callback);function callback(event){event.target.removeEventListener(event.type,callback),element.tabIndex=savedTabIndex,delete element.dataset.tabIndex,typeof options.className<"u"&&element.classList.remove(options.className)}},focusHash(options){options=options||{};var hash=window.location.hash,element=document.getElementById(hash.slice(1));if(element&&options.ignore&&element.matches(options.ignore))return!1;hash&&element&&this.forceFocus(element,options)},bindInPageLinks(options){options=options||{};var links=Array.prototype.slice.call(document.querySelectorAll('a[href^="#"]'));function queryCheck(selector){return document.getElementById(selector)!==null}return links.filter(link=>{if(link.hash==="#"||link.hash===""||options.ignore&&link.matches(options.ignore)||!queryCheck(link.hash.substr(1)))return!1;var element=document.querySelector(link.hash);return element?(link.addEventListener("click",()=>{this.forceFocus(element,options)}),!0):!1})},focusable(container){var elements=Array.prototype.slice.call(container.querySelectorAll("[tabindex],[draggable],a[href],area,button:enabled,input:not([type=hidden]):enabled,object,select:enabled,textarea:enabled"));return elements.filter(element=>!!((element.offsetWidth||element.offsetHeight||element.getClientRects().length)&&this.isVisible(element)))},trapFocus(container,options){options=options||{};var elements=this.focusable(container),elementToFocus=options.elementToFocus||container,first=elements[0],last=elements[elements.length-1];this.removeTrapFocus(),trapFocusHandlers.focusin=function(event){container!==event.target&&!container.contains(event.target)&&first&&first===event.target&&first.focus(),!(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==="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),this.forceFocus(elementToFocus,options)},removeTrapFocus(){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown)},autoFocusLastElement(){window.a11y.lastElement&&document.body.classList.contains("is-focused")&&setTimeout(()=>{window.a11y.lastElement?.focus()})}
12,accessibleLinks(elements,options){if(typeof elements!="string")throw new TypeError(elements+" is not a String.");if(elements=document.querySelectorAll(elements),elements.length===0)return;options=options||{},options.messages=options.messages||{};var messages={newWindow:options.messages.newWindow||"Opens in a new window.",external:options.messages.external||"Opens external website.",newWindowExternal:options.messages.newWindowExternal||"Opens external website in a new window."},prefix=options.prefix||"a11y",messageSelectors={newWindow:prefix+"-new-window-message",external:prefix+"-external-message",newWindowExternal:prefix+"-new-window-external-message"};function generateHTML(messages2){var container=document.createElement("ul"),htmlMessages=Object.keys(messages2).reduce((html,key)=>html+="<li id="+messageSelectors[key]+">"+messages2[key]+"</li>","");container.setAttribute("hidden",!0),container.innerHTML=htmlMessages,document.body.appendChild(container)}function externalSite(link){return link.hostname!==window.location.hostname}elements.forEach(link=>{var target=link.getAttribute("target"),rel=link.getAttribute("rel"),isExternal=externalSite(link),isTargetBlank=target==="_blank",missingRelNoopener=rel===null||rel.indexOf("noopener")===-1;if(isTargetBlank&&missingRelNoopener){var relValue=rel===null?"noopener":rel+" noopener";link.setAttribute("rel",relValue)}isExternal&&isTargetBlank?link.setAttribute("aria-describedby",messageSelectors.newWindowExternal):isExternal?link.setAttribute("aria-describedby",messageSelectors.external):isTargetBlank&&link.setAttribute("aria-describedby",messageSelectors.newWindow)}),generateHTML(messages)},isVisible(el){var style=window.getComputedStyle(el);return style.display!=="none"&&style.visibility!=="hidden"}};window.theme=window.theme||{},window.theme.a11y=a11y,window.theme.throttle=(fn,wait)=>{let prev2,next;return function invokeFn(...args){const now=Date.now();next=clearTimeout(next),!prev2||now-prev2>=wait?(fn.apply(null,args),prev2=now):next=setTimeout(invokeFn.bind(null,...args),wait-(now-prev2))}};class QuantityInput extends HTMLElement{constructor(){super(),this.input=this.querySelector("input"),this.changeEvent=ne
12w 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(theme.PUB_SUB_EVENTS.quantityUpdate,this.validateQtyRules.bind(this))}disconnectedCallback(){this.quantityUpdateUnsubscriber&&this.quantityUpdateUnsubscriber()}onInputChange(event){this.validateQtyRules(),this.input&&this.input.name==="updates[]"&&this.updateCart()}onButtonClick(event){event.preventDefault();const previousValue=this.input.value,button=event.target.nodeName==="BUTTON"?event.target:event.target.closest("button"),name=button?button.name:void 0,isIncrease=name==="increase"||name==="plus",isDecrease=name==="decrease"||name==="minus";isIncrease?parseInt(this.input?.dataset?.min)>parseInt(this.input.step)&&this.input.value==0?this.input.value=this.input.dataset.min:this.input.stepUp():isDecrease&&this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent),this.input?.dataset?.min===previousValue&&isDecrease&&(this.input.value=parseInt(this.input.min))}validateQtyRules(){const value=parseInt(this.input.value);if(this.input.min){const buttonMinus=this.querySelector(".quantity__button[name='minus']")||this.querySelector(".quantity__button[name='decrease']");buttonMinus&&buttonMinus.classList.toggle("disabled",parseInt(value)<=parseInt(this.input.min))}if(this.input.max){const max=parseInt(this.input.max),buttonPlus=this.querySelector(".quantity__button[name='plus']")||this.querySelector(".quantity__button[name='increase']");buttonPlus&&buttonPlus.classList.toggle("disabled",value>=max)}}updateCart(){!this.input||this.input.value===""||this.dispatchEvent(new CustomEvent("theme:cart:update",{bubbles:!0,detail:{id:this.input.dataset.id,quantity:this.input.value}}))}}customElements.define("quantity-input",QuantityInput);class HTMLUpdateUtility{static viewTransition(oldNode,newContent,preProcessCallbacks=[],postProcessCallbacks=[]){preProcessCallbacks?.forEach(callback=>callback(newContent));const newNodeWrapper=document.createElement("div");HTMLUpdateUtility.setInnerHTML(newNodeWrapper,newContent.outerHTML);const newNode=newNodeWrapper.firstChild,uniqueKey=Date.now();oldNode.querySelectorAll("[id], [form]").forEach(element=>{element.id&&(element.id=`${element.id}-${uniqueKey}`),element.form&&element.setAttribute("form",`${element.form.getAttribute("id")}-${uniqueKey}`)}),oldNode.parentNode.insertBefore(newNode,oldNode),oldNode.style.display="none",postProcessCallbacks?.forEach(callback=>callback(newNode)),setTimeout(()=>oldNode.remove(),500)}static setInnerHTML(element,html){element.innerHTML=html,element.querySelectorAll("script").forEach(oldScriptTag=>{const newScriptTag=document.createElement("script");Array.from(oldScriptTag.attributes).forEach(attribute=>{newScriptTag.setAttribute(attribute.name,attribute.value)}),newScriptTag.appendChild(document.createTextNode(oldScriptTag.innerHTML)),oldScriptTag.parentNode.replaceChild(newScriptTag,oldScriptTag)})}}window.HTMLUpdateUtility=HTMLUpdateUtility;function appendCartItems(){if(document.querySelector("cart-items"))return;const cartItems=document.createElement("cart-items");document.body.appendChild(cartItems)}function floatLabels(container){container.querySelectorAll(".form-field").forEach(element=>{const label=element.querySelector("label"),input=element.querySelector("input, textarea");label&&input&&(input.addEventListener("keyup",event=>{event.target.value!==""?label.classList.add("label--float"):label.classList.remove("label--float")}),input.value&&input.value.length&&label.classList.add("label--float"))})}let lastWindowWidth=window.theme.getWindowWidth(),lastWindowHeight=window.theme.getWindowHeight();function dispatch$1(){document.dispatchEvent(new CustomEvent("theme:resize",{bubbles:!0})),lastWindowWidth!==window.theme.getWindowWidth()&&(document.dispatchEvent(new CustomEvent("theme:resize:width",{bubbles:!0})),lastWindowWidth=window.theme.getWindowWidth()),lastWindowHeight!==window.theme.getWindowHeight()&&(document.dispatchEvent(new CustomEvent("theme:resize:height",{bubbles:!0})),lastWindowHeight=window.theme.getWindowHeight())}function resizeListener(){window.addEventListener("resize",window.theme.debounce(function(){dispatch$1()},50))}let prev=window.scrollY,up=null,down=null,wasUp=null,wasDown=null,scrollLockTimer=0;function dispatch(){const position=window.scrollY;position>prev?(down=!0,up=!1):position<prev?(down=!1,up=!0):(up=null,down=null),prev=position,document.dispatchEvent(new CustomEvent("theme:scroll",{detail:{up,down,position},bubbles:!1})),up&&!wasUp&&document.dispatchEvent(new CustomEvent("theme:scroll:up",{detail:{position},bubbles:!1})),down&&!wasDown&&document.dispatchEvent(new CustomEvent("theme:scroll:down",{detail:{position},bubbles:!1})),wasDown=down,wasUp=up}function lock(e){setTimeout(()=>{scrollLockTimer&&clearTimeout(scrollLockTimer),scrollLock.disablePageScroll(e.detail,{allowTouchMove:el=>el.tagName==="TEXTAREA"}),document.documentElement.setAttribute("data-scroll-locked","")})}function unlock(e){const timeout=e.detail;timeout?scrollLockTimer=setTimeout(removeScrollLock,timeout):removeScrollLock()}function removeScrollLock(){scrollLock.clearQueueScrollLocks(),scrollLock.enablePageScroll(),document.documentElement.removeAttribute("data-scroll-locked")}function scrollListener(){let timeout;window.addEventListener("scroll",function(){timeout&&window.cancelAnimationFrame(timeout),timeout=window.requestAnimationFrame(function(){dispatch()})},{passive:!0}),window.addEventListener("theme:scroll:lock",lock),window.addEventListener("theme:scroll:unlock",unlock)}const wrap=(toWrap,wrapperClass="",wrapperOption)=>{const wrapper=wrapperOption||document.createElement("div");return wrapper.classList.add(wrapperClass),toWrap.parentNode.insertBefore(wrapper,toWrap),wrapper.appendChild(toWrap)};function wrapElements(container){container.querySelectorAll(".rte table").forEach(table=>{wrap(table,"rte__table-wrapper"),table.setAttribute("data-scroll-lock-scrollable","")}),container.querySelectorAll('.rte iframe[src*="youtube.com/embed"], .rte iframe[src*="player.vimeo"], .rte iframe#admin_bar_iframe').forEach(frame=>{wrap(frame,"rte__video-wrapper")})}function isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function isTouch(){isTouchDevice()?(document.documentElement.className=document.documentElement.className.replace("no-touch","supp
12orts-touch"),window.theme.touch=!0):window.theme.touch=!1}function ariaToggle(container){const toggleButtons=container.querySelectorAll("[data-aria-toggle]");toggleButtons.length&&toggleButtons.forEach(element=>{element.addEventListener("click",function(event){event.preventDefault();const currentTarget=event.currentTarget;currentTarget.setAttribute("aria-expanded",currentTarget.getAttribute("aria-expanded")=="false"?"true":"false");const toggleID=currentTarget.getAttribute("aria-controls"),toggleElement=document.querySelector(`#${toggleID}`),removeExpandingClass=()=>{toggleElement.classList.remove("expanding"),toggleElement.removeEventListener("transitionend",removeExpandingClass)},addExpandingClass=()=>{toggleElement.classList.add("expanding"),toggleElement.removeEventListener("transitionstart",addExpandingClass)};toggleElement.addEventListener("transitionstart",addExpandingClass),toggleElement.addEventListener("transitionend",removeExpandingClass),toggleElement.classList.toggle("expanded")})})}function loading(){document.body.classList.add("is-loaded")}const classes$l={loading:"is-loading"},selectors$o={img:"img.is-loading"};function loadedImagesEventHook(){document.addEventListener("load",e=>{e.target.tagName.toLowerCase()=="img"&&e.target.classList.contains(classes$l.loading)&&(e.target.classList.remove(classes$l.loading),e.target.parentNode.classList.remove(classes$l.loading),e.target.parentNode.parentNode.classList.contains(classes$l.loading)&&e.target.parentNode.parentNode.classList.remove(classes$l.loading))},!0)}function removeLoadingClassFromLoadedImages(container){container.querySelectorAll(selectors$o.img).forEach(img=>{img.complete&&(img.classList.remove(classes$l.loading),img.parentNode.classList.remove(classes$l.loading),img.parentNode.parentNode.classList.contains(classes$l.loading)&&img.parentNode.parentNode.classList.remove(classes$l.loading))})}const selectors$n={aos:"[data-aos]:not(.aos-animate)",aosAnchor:"[data-aos-anchor]",aosIndividual:"[data-aos]:not([data-aos-anchor]):not(.aos-animate)"},classes$k={aosAnimate:"aos-animate"},observerConfig={attributes:!1,childList:!0,subtree:!0};let anchorContainers=[];const mutationCallback=mutationList=>{for(const mutation of mutationList)if(mutation.type==="childList"){const element=mutation.target,elementsToAnimate=element.querySelectorAll(selectors$n.aos),anchors=element.querySelectorAll(selectors$n.aosAnchor);elementsToAnimate.length&&elementsToAnimate.forEach(element2=>{aosItemObserver.observe(element2)}),anchors.length&&initAnchorObservers(anchors)}},aosItemObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{entry.isIntersecting&&(entry.target.classList.add(classes$k.aosAnimate),observer.unobserve(entry.target))})},{root:null,rootMargin:"0px",threshold:[0,.1,.25,.5,.75,1]}),aosAnchorObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.intersectionRatio){const elementsToAnimate=entry.target.querySelectorAll(selectors$n.aos);elementsToAnimate.length&&elementsToAnimate.forEach(item=>{item.classList.add(classes$k.aosAnimate)}),observer.unobserve(entry.target);const sectionIndex=anchorContainers.indexOf("#"+entry.target.id);sectionIndex!==-1&&anchorContainers.splice(sectionIndex,1)}})},{root:null,rootMargin:"0px",threshold:[.1,.25,.5,.75,1]});function bodyMutationObserver(){new MutationObserver(mutationCallback).observe(document.body,observerConfig)}function elementsIntersectionObserver(){const elementsToAnimate=document.querySelectorAll(selectors$n.aosIndividual);elementsToAnimate.length&&elementsToAnimate.forEach(element=>{aosItemObserver.observe(element)})}function anchorsIntersectionObserver(){const anchors=document.querySelectorAll(selectors$n.aosAnchor);anchors.length&&initAnchorObservers(anchors)}function initAnchorObservers(anchors){!anchors.length||Shopify.visualPreviewMode||anchors.forEach(anchor=>{const containerId=anchor.dataset.aosAnchor;if(containerId&&anchorContainers.indexOf(containerId)===-1){const container=document.querySelector(containerId);container&&(aosAnchorObserver.observe(container),anchorContainers.push(containerId))}})}function initAnimations(){elementsIntersectionObserver(),anchorsIntersectionObserver(),bodyMutationObserver(),document.addEventListener("shopify:section:unload",e=>{const sectionId="#"+e.target.querySelector("[data-section-id]")?.id,sectionIndex=anchorContainers.indexOf(sectionId);sectionIndex!==-1&&anchorContainers.splice(sectionIndex,1)})}window.requestIdleCallback=window.requestIdleCallback||function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)},window.cancelIdleCallback=window.cancelIdleCallback||function(id){clearTimeout(id)},window.theme.settings.enableAnimations&&initAnimations(),resizeListener(),scrollListener(),isTouch(),loadedImagesEventHook(),window.addEventListener("DOMContentLoaded",()=>{ariaToggle(document),floatLabels(document),wrapElements(document),removeLoadingClassFromLoadedImages(document),loading(),appendCartItems(),requestIdleCallback(()=>{Shopify.visualPreviewMode&&document.documentElement.classList.add("preview-mode")})}),document.addEventListener("shopify:section:load",e=>{const container=e.target;floatLabels(container),wrapElements(container),ariaToggle(document)});
12const classes$j={focus:"is-focused"},selectors$m={inPageLink:"[data-skip-content]",linkesWithOnlyHash:'a[href="#"]'};class Accessibility{constructor(){this.init()}init(){this.a11y=window.theme.a11y,this.html=document.documentElement,this.body=document.body,this.inPageLink=document.querySelector(selectors$m.inPageLink),this.linkesWithOnlyHash=document.querySelectorAll(selectors$m.linkesWithOnlyHash),this.a11y.focusHash(),this.a11y.bindInPageLinks(),this.clickEvents(),this.focusEvents()}clickEvents(){this.inPageLink&&this.inPageLink.addEventListener("click",event=>{event.preventDefault()}),this.linkesWithOnlyHash&&this.linkesWithOnlyHash.forEach(item=>{item.addEventListener("click",event=>{event.preventDefault()})})}focusEvents(){document.addEventListener("mousedown",()=>{this.body.classList.remove(classes$j.focus)}),document.addEventListener("keyup",event=>{event.code==="Tab"&&this.body.classList.add(classes$j.focus)})}}window.a11y=new Accessibility,window.theme.waitForAnimationEnd=function(element){return new Promise(resolve=>{function onAnimationEnd(event){event.target==element&&(element.removeEventListener("animationend",onAnimationEnd),resolve())}element?.addEventListener("animationend",onAnimationEnd)})},window.theme.waitForAllAnimationsEnd=function(section){return new Promise((resolve,rejected)=>{const animatedElements=section.querySelectorAll("[data-aos]");let animationCount=0;function onAnimationEnd(event){animationCount++,animationCount===animatedElements.length&&resolve(),event.target.removeEventListener("animationend",onAnimationEnd)}animatedElements.forEach(element=>{element.addEventListener("animationend",onAnimationEnd)}),animationCount||rejected()})};function FetchError(object){this.status=object.status||null,this.headers=object.headers||null,this.json=object.json||null,this.body=object.body||null}FetchError.prototype=Error.prototype;const classes$i={animated:"is-animated",active:"is-active",added:"is-added",disabled:"is-disabled",empty:"is-empty",error:"has-error",headerStuck:"js__header__stuck",hidden:"is-hidden",hiding:"is-hiding",loading:"is-loading",open:"is-open",removed:"is-removed",success:"is-success",visible:"is-visible",expanded:"is-expanded",updated:"is-updated",variantSoldOut:"variant--soldout",variantUnavailable:"variant--unavailable"},selectors$l={apiContent:"[data-api-content]",apiLineItems:"[data-api-line-items]",apiUpsellItems:"[data-api-upsell-items]",apiBundleItems:"[data-api-bundle-items]",apiCartPrice:"[data-api-cart-price]",animation:"[data-animation]",buttonSkipUpsellProduct:"[data-skip-upsell-product]",cartBarAdd:"[data-cart-bar-add-to-cart]",cartCloseError:"[data-cart-error-close]",cartDrawer:"cart-drawer",cartDrawerClose:"[data-cart-drawer-close]",cartEmpty:"[data-cart-empty]",cartErrors:"[data-cart-errors]",cartItemRemove:"[data-item-remove]",cartPage:"[data-cart-page]",cartForm:"[data-cart-form]",cartTermsCheckbox:"[data-cart-acceptance-checkbox]",cartCheckoutButtonWrapper:"[data-cart-checkout-buttons]",cartCheckoutButton:"[data-cart-checkout-button]",cartTotal:"[data-cart-total]",checkoutButtons:"[data-checkout-buttons]",errorMessage:"[data-error-message]",formCloseError:"[data-close-error]",formErrorsContainer:"[data-cart-errors-container]",formWrapper:"[data-form-wrapper]",freeShipping:"[data-free-shipping]",freeShippingGraph:"[data-progress-graph]",freeShippingProgress:"[data-progress-bar]",headerWrapper:"[data-header-wrapper]",item:"[data-item]",itemsHolder:"[data-items-holder]",leftToSpend:"[data-left-to-spend]",navDrawer:"[data-drawer]",outerSection:"[data-section-id]",priceHolder:"[data-cart-price-holder]",quickAddHolder:"[data-quick-add-holder]",quickAddModal:"[data-quick-add-modal]",qtyInput:'input[name="updates[]"]',upsellProductsHolder:"[data-upsell-products]",bundleProductsHolder:"[data-bundle-products]",upsellWidget:"[data-upsell-widget]",bundleWidget:"[data-bundle-widget]",termsErrorMessage:"[data-terms-error-message]",collapsibleBody:"[data-collapsible-body]",discountInput:"[data-discount-input]",discountField:"[data-discount-field]",discountButton:"[data-apply-discount]",discountBody:"[data-discount-body]",discountCode:"[data-discount-code]",discountErrorMessage:"[data-discount-error-message]",removeDiscount:"[data-remove-discount]"},attributes$d={cartTotal:"data-cart-total",disabled:"disabled",freeShipping:"data-free-shipping",freeShippingLimit:"data-free-shipping-limit",item:"data-item",itemIndex:"data-item-index",itemTitle:"data-item-title",open:"open",quickAddHolder:"data-quick-add-h
12older",quickAddVariant:"data-quick-add-variant",scrollLocked:"data-scroll-locked",upsellAutoOpen:"data-upsell-auto-open",name:"name",maxInventoryReached:"data-max-inventory-reached",errorMessagePosition:"data-error-message-position",discountButton:"data-cart-discount-button"};class CartItems extends HTMLElement{constructor(){super(),this.a11y=window.theme.a11y}connectedCallback(){this.cartPage=document.querySelector(selectors$l.cartPage),this.cartForm=document.querySelector(selectors$l.cartForm),this.cartDrawer=document.querySelector(selectors$l.cartDrawer),this.cartEmpty=document.querySelector(selectors$l.cartEmpty),this.cartTermsCheckbox=document.querySelector(selectors$l.cartTermsCheckbox),this.cartCheckoutButtonWrapper=document.querySelector(selectors$l.cartCheckoutButtonWrapper),this.cartCheckoutButton=document.querySelector(selectors$l.cartCheckoutButton),this.checkoutButtons=document.querySelector(selectors$l.checkoutButtons),this.itemsHolder=document.querySelector(selectors$l.itemsHolder),this.priceHolder=document.querySelector(selectors$l.priceHolder),this.items=document.querySelectorAll(selectors$l.item),this.cartTotal=document.querySelector(selectors$l.cartTotal),this.freeShipping=document.querySelectorAll(selectors$l.freeShipping),this.cartErrorHolder=document.querySelector(selectors$l.cartErrors),this.cartCloseErrorMessage=document.querySelector(selectors$l.cartCloseError),this.headerWrapper=document.querySelector(selectors$l.headerWrapper),this.navDrawer=document.querySelector(selectors$l.navDrawer),this.upsellProductsHolder=document.querySelector(selectors$l.upsellProductsHolder),this.bundleProductsHolder=document.querySelector(selectors$l.bundleProductsHolder),this.subtotal=window.theme.subtotal,this.discountInput=document.querySelector(selectors$l.discountInput),this.discountField=document.querySelector(selectors$l.discountField),this.discountButton=document.querySelector(selectors$l.discountButton),this.hasDiscountBlock=!!document.querySelector(selectors$l.discountButton),this.discountErrorMessage=document.querySelector(selectors$l.discountErrorMessage),this.existingDiscountCodes=[],this.discounts=document.querySelectorAll(selectors$l.discountBody),this.cart=this.cartDrawer||this.cartPage,this.hasDiscountBlock&&(this.discountButton.addEventListener("click",event=>{event.preventDefault();const newDiscountCode=this.discountInput.value.trim();this.discountInput.value="",newDiscountCode&&this.applyDiscount(newDiscountCode)}),this.bindDiscountEventListeners()),this.animateItems=this.animateItems.bind(this),this.addToCart=this.addToCart.bind(this),this.cartAddEvent=this.cartAddEvent.bind(this),this.updateProgress=this.updateProgress.bind(this),this.onCartDrawerClose=this.onCartDrawerClose.bind(this),document.addEventListener("theme:cart:add",this.cartAddEvent),document.addEventListener("theme:announcement:init",this.updateProgress),theme.settings.cartType=="drawer"&&(document.addEventListener("theme:cart-drawer:open",this.animateItems),document.addEventListener("theme:cart-drawer:close",this.onCartDrawerClose)),this.skipUpsellProductsArray=[],this.skipBundleProductsArray=[],this.skipUpsellOrBundleProductEvent(),this.checkSkippedUpsellOrBundleProductsFromStorage(),this.toggleCartUpsellOrBundleWidgetVisibility(),this.circumference=28*Math.PI,this.freeShippingLimit=this.freeShipping.length?Number(this.freeShipping[0].getAttribute(attributes$d.freeShippingLimit))*100*window.Shopify.currency.rate:0,this.freeShippingMessageHandle(this.subtotal),this.updateProgress(),this.build=this.build.bind(this),this.updateCart=this.updateCart.bind(this),this.productAddCallback=this.productAddCallback.bind(this),this.formSubmitHandler=window.theme.throttle(this.formSubmitHandler.bind(this),50),this.cartPage&&this.animateItems(),this.cart&&(this.hasItemsInCart=this.hasItemsInCart.bind(this),this.cartCount=this.getCartItemCount()),this.toggleClassesOnContainers=this.toggleClassesOnContainers.bind(this),this.totalItems=this.items.length,this.showCannotAddMoreInCart=!1,this.cartUpdateFailed=!1,this.discountError=!1,this.cartEvents(),this.cartRemoveEvents(),this.cartUpdateEvents(),document.addEventListener("theme:product:add",this.productAddCallback),document.addEventListener("theme:product:add-error",this.productAddCallback),document.addEventListener("theme:cart:refresh",this.getCart.bind(this))}disconnectedCallback(){document.removeEventListener("theme:cart:add",this.cartAddEvent),document.removeEventListener("theme:cart:refresh",this.cartAddEvent),document.removeEventListener("theme:announcement:init",this.updateProgress),document.removeEventListener("theme:product:add",this.productAddCallback),document.removeEventListener("theme:product:add-error",this.productAddCallback),document.documentElement.hasAttribute(attributes$d.scrollLocked)&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}onCartDrawerClose(){this.resetAnimatedItems(),this.cartDrawer?.classList.contains(classe
12s$i.open)&&this.cart.classList.remove(classes$i.updated),this.cartEmpty.classList.remove(classes$i.updated),this.cartErrorHolder.classList.remove(classes$i.expanded),this.cart.querySelectorAll(selectors$l.animation).forEach(item=>{const removeHidingClass=()=>{item.classList.remove(classes$i.hiding),item.removeEventListener("animationend",removeHidingClass)};item.classList.add(classes$i.hiding),item.addEventListener("animationend",removeHidingClass)}),this.hasDiscountBlock&&this.discountErrorMessage?.classList.add("hidden")}cartUpdateEvents(){this.items=document.querySelectorAll(selectors$l.item),this.items.forEach(item=>{item.addEventListener("theme:cart:update",event=>{this.updateCart({id:event.detail.id,quantity:event.detail.quantity},item)})})}cartRemoveEvents(){document.querySelectorAll(selectors$l.cartItemRemove).forEach(button=>{const item=button.closest(selectors$l.item);button.addEventListener("click",event=>{event.preventDefault(),!button.classList.contains(classes$i.disabled)&&this.updateCart({id:button.dataset.id,quantity:0},item)})}),this.cartCloseErrorMessage&&this.cartCloseErrorMessage.addEventListener("click",event=>{event.preventDefault(),this.cartErrorHolder.classList.remove(classes$i.expanded)})}cartAddEvent(event){let formData="",button=event.detail.button;if(button.hasAttribute("disabled"))return;const form=button.form||button.closest("form");if(!form.checkValidity()){form.reportValidity();return}if(formData=new FormData(form),form!==null&&form.querySelector('[type="file"]'))return;theme.settings.cartType==="drawer"&&this.cartDrawer&&event.preventDefault();const maxInventoryReached=form.getAttribute(attributes$d.maxInventoryReached),errorMessagePosition=form.getAttribute(attributes$d.errorMessagePosition);this.showCannotAddMoreInCart=!1,maxInventoryReached==="true"&&errorMessagePosition==="cart"&&(this.showCannotAddMoreInCart=!0),this.addToCart(formData,button)}bindDiscountEventListeners(){this.hasDiscountBlock&&(this.discounts=document.querySelectorAll(selectors$l.discountBody),this.discounts.forEach(discount=>{const discountCode=discount.dataset.discountCode;this.existingDiscountCodes.includes(discountCode)||this.existingDiscountCodes.push(discountCode);const removeButton=discount.querySelector(selectors$l.removeDiscount);removeButton&&(removeButton.removeEventListener("click",this.handleRemoveDiscount),removeButton.addEventListener("click",event=>{event.preventDefault(),this.removeDiscount(discountCode)}))}))}applyDiscount(discountCode){if(this.existingDiscountCodes.includes(discountCode)){this.discountErrorMessage.classList.remove("hidden"),this.discountErrorMessage.textContent=window.theme.strings.discount_already_applied;return}this.existingDiscountCodes.push(discountCode),this.updateCartDiscounts(this.existingDiscountCodes.join(","))}removeDiscount(discountCode){this.existingDiscountCodes.includes(discountCode)&&(this.existingDiscountCodes=this.existingDiscountCodes.filter(code=>code!==discountCode),this.updateCartDiscounts(this.existingDiscountCodes.join(",")))}updateCartDiscounts(discountString){const lastAttemptedDiscount=discountString.split(",").filter(c=>c).pop()?.trim();this.disableCartButtons(),this.discountErrorMessage.classList.add("hidden"),fetch(window.theme.routes.cart_update_url,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({discount:discountString})}).then(response=>{if(!response.ok)throw new Error(`HTTP error! status: ${response.status}`);return response.text()}).then(text=>{let data;try{data=JSON.parse(text)}catch{throw console.error("Failed to parse cart update response:",text),new Error("Invalid JSON response from server.")}lastAttemptedDiscount?data.discount_codes&&Array.isArray(data.discount_codes)&&data.discount_codes.some(d=>d.code===lastAttemptedDiscount&&d.applicable)?this.discountError=!1:(this.discountError=!0,this.existingDiscountCodes=this.existingDiscountCodes.filter(code=>code!==lastAttemptedDiscount)):this.discountError=!1,this.getCart()}).catch(error=>{console.log(error)})}cartEvents(){this.cartTermsCheckbox&&(this.cartTermsCheckbox.removeEventListener("change",this.formSubmitHandler),this.cartCheckoutButtonWrapper.removeEventListener("click",this.formSubmitHandler),this.cartForm.removeEventListener("submit",this.formSubmitHandler),this.cartTermsCheckbox.addEventListener("change",this.formSubmitHandler),this.cartCheckoutButtonWrapper.addEventListener("click",this.formSubmitHandler),this.cartForm.addEventListener("submit",this.formSubmitHandler))}formSubmitHandler(){const termsAccepted=document.querySelector(selectors$l.cartTermsCheckbox).checked,termsError=document.querySelector(selectors$l.termsErrorMessage);if(termsAccepted)termsError.classList.remove(classes$i.expanded),this.cartCheckoutButton.removeAttribute(attributes$d.disabled);else{if(document.querySelector(selectors$l.termsErrorMessage).length>0)return;termsError.innerText=theme.strings.cartAcceptanceError,this.cartCheckoutButton.setAttribute(attributes$d.disabled,!0),termsError.classList.add(classes$i.expanded)}}formErrorsEvents(errorContainer){errorContainer.querySelector(selectors$l.formCloseError)?.addEventListener("click",e=>{e.preventDefault(),errorContainer&&errorContainer.classList.remove(classes$i.visible)})}getCart(){fetch(theme.routes.cart_url+"?section_id=api-cart-items").then(this.cartErrorsHandler).then(response=>response.text()).then(response=>{const element=document.createElement("div");element.innerHTML=response;const cleanResponse=element.querySelector(selectors$l.apiContent);this.build(cleanResponse)}).catch(error=>console.log(error))}addToCart(formData,button){this.cart&&this.cart.classList.add(classes$i.loading);const quickAddHolder=button?.closest(selectors$l.quickAddHolder);button&&(button.classList.add(classes$i.loading),button.disabled=!0),quickAddHolder&&quickAddHolder.classList.add(classes$i.visible),fetch(theme.routes.cart_add_url,{method:"POST",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/javascript"},body:formData}).then(response=>response.json()).then(response=>{response.status&&(this.addToCartError(response,button),button&&(button.classList.remove(classes$i.loading),button.disabled=!1),!this.showCannotAddMoreInCart)||(this.cart?(button&&(button.classList.remove(classes$i.loading),button.classList.add(classes$i.added),button.dispatchEvent(new CustomEvent("theme:product:add",{detail:{response,button},bubbles:!0}))),theme.settings.cartType==="page"&&(window.location=theme.routes.cart_url),this.getCart()):window.location=theme.routes.cart_url)}).catch(error=>{this.addToCartError(error,button),this.enableCartButtons()})}updateCart(updateData={},currentItem=null){this.cart.classList.add(classes$i.loading);let updatedQuantity=updateData.quantity;currentItem!==null&&(updatedQuantity?currentItem.classList.add(classes$i.loading):currentItem.classList.add(classes$i.removed)),this.disableCartButtons();const newItem=this.cart.querySelector(`[${attributes$d.item}="${updateData.id}"]`)||currentItem,lineIndex=newItem?.hasAttribute(attributes$d.itemIndex)?parseInt(newItem.getAttribute(attributes$d.itemIndex)):0,itemTitle=newItem?.hasAttribute(attributes$d.itemTitle)?newItem.getAttribute(attributes$d.itemTitle):null;if(lineIndex===0)return;const data={line:lineIndex,quantity:updatedQuantity};
12fetch(theme.routes.cart_change_url,{method:"post",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(data)}).then(response=>response.text()).then(state=>{if(JSON.parse(state).errors){this.cartUpdateFailed=!0,this.updateErrorText(itemTitle),this.toggleErrorMessage(),this.resetLineItem(currentItem),this.enableCartButtons(),this.bindDiscountEventListeners();return}this.getCart()}).catch(error=>{console.log(error),this.enableCartButtons()})}resetLineItem(item){const qtyInput=item.querySelector(selectors$l.qtyInput),qty=qtyInput.getAttribute("value");qtyInput.value=qty,item.classList.remove(classes$i.loading)}disableCartButtons(){const inputs=this.cart.querySelectorAll("input"),buttons=this.cart.querySelectorAll(`button, ${selectors$l.cartItemRemove}`);inputs.length&&inputs.forEach(item=>{item.classList.add(classes$i.disabled),item.blur(),item.disabled=!0}),buttons.length&&buttons.forEach(item=>{item.setAttribute(attributes$d.disabled,!0)})}enableCartButtons(){const inputs=this.cart.querySelectorAll("input"),buttons=this.cart.querySelectorAll(`button, ${selectors$l.cartItemRemove}`);inputs.length&&inputs.forEach(item=>{item.classList.remove(classes$i.disabled),item.disabled=!1}),buttons.length&&buttons.forEach(item=>{item.removeAttribute(attributes$d.disabled)}),this.cart.classList.remove(classes$i.loading)}updateErrorText(itemTitle){this.cartErrorHolder.querySelector(selectors$l.errorMessage).innerText=itemTitle}toggleErrorMessage(){this.cartErrorHolder&&(this.cartErrorHolder.classList.toggle(classes$i.expanded,this.cartUpdateFailed||this.showCannotAddMoreInCart),this.showCannotAddMoreInCart=!1,this.cartUpdateFailed=!1)}cartErrorsHandler(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}hideAddToCartErrorMessage(){(this.button.closest(selectors$l.upsellHolder)?this.button.closest(selectors$l.upsellHolder):this.button.closest(selectors$l.productForm))?.querySelector(selectors$l.formErrorsContainer)?.classList.remove(classes$i.visible)}addToCartError(data,button){if(this.showCannotAddMoreInCart)return;if(button!==null){let errorContainer=(button.closest(selectors$l.outerSection)||button.closest(selectors$l.quickAddHolder)||button.closest(selectors$l.quickAddModal))?.querySelector(selectors$l.formErrorsContainer);const buttonUpsellHolder=button.closest(selectors$l.quickAddHolder);if(buttonUpsellHolder&&buttonUpsellHolder.querySelector(selectors$l.formErrorsContainer)&&(errorContainer=buttonUpsellHolder.querySelector(selectors$l.formErrorsContainer)),errorContainer){let errorMessage=`${data.message}: ${data.description}`;data.message==data.description&&(errorMessage=data.message),errorContainer.innerHTML=`<div class="errors">${errorMessage}<button type="button" class="errors__close" data-close-error><svg aria-hidden="true" focusable="false" role="presentation" width="24px" height="24px" stroke-width="1" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="currentColor" class="icon icon-cancel"><path d="M6.758 17.243L12.001 12m5.243-5.243L12 12m0 0L6.758 6.757M12.001 12l5.243 5.243" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div>`,errorContainer.classList.add(classes$i.visible),this.formErrorsEvents(errorContainer)}button.dispatchEvent(new CustomEvent("theme:product:add-error",{detail:{response:data,button},bubbles:!0}))}const quickAddHolder=button?.closest(selectors$l.quickAddHolder);quickAddHolder&&quickAddHolder.dispatchEvent(new CustomEvent("theme:cart:error",{bubbles:!0,detail:{message:data.message,description:data.description,holder:quickAddHolder}})),this.cart?.classList.remove(classes$i.loading)}productAddCallback(event){let buttons=[],quickAddHolder=null;const hasError=event.type=="theme:product:add-error",buttonATC=event.detail.button,cartBarButtonATC=document.querySelector(selectors$l.cartBarAdd);buttons.push(buttonATC),quickAddHolder=buttonATC.closest(selectors$l.quickAddHolder),cartBarButtonATC&&buttons.push(cartBarButtonATC),buttons.forEach(button=>{button.classList.remove(classes$i.loading),hasError||button.classList.add(classes$i.added)}),setTimeout(()=>{buttons.forEach(button=>{button.classList.remove(classes$i.added),button.closest(selectors$l.formWrapper)?.classList.contains(classe
12s$i.variantSoldOut)||button.closest(selectors$l.formWrapper)?.classList.contains(classes$i.variantUnavailable)||(button.disabled=!1)}),quickAddHolder?.classList.remove(classes$i.visible)},1e3)}toggleClassesOnContainers(){const hasItemsInCart=this.hasItemsInCart();this.cart.classList.toggle(classes$i.empty,!hasItemsInCart),!hasItemsInCart&&this.cartDrawer&&setTimeout(()=>{this.a11y.trapFocus(this.cartDrawer,{elementToFocus:this.cartDrawer.querySelector(selectors$l.cartDrawerClose)})},100)}build(data){const cartItemsData=data.querySelector(selectors$l.apiLineItems),upsellItemsData=data.querySelector(selectors$l.apiUpsellItems),bundleItemsData=data.querySelector(selectors$l.apiBundleItems),cartEmptyData=cartItemsData===null&&upsellItemsData===null&&bundleItemsData===null,priceData=data.querySelector(selectors$l.apiCartPrice),cartTotal=data.querySelector(selectors$l.cartTotal);this.priceHolder&&priceData&&(this.priceHolder.innerHTML=priceData.innerHTML),cartEmptyData?(this.itemsHolder.innerHTML=data.innerHTML,this.upsellProductsHolder&&(this.upsellProductsHolder.innerHTML=""),this.bundleProductsHolder&&(this.bundleProductsHolder.innerHTML="")):(this.itemsHolder.innerHTML=cartItemsData.innerHTML,this.upsellProductsHolder&&(this.upsellProductsHolder.innerHTML=upsellItemsData.innerHTML),this.bundleProductsHolder&&(this.bundleProductsHolder.innerHTML=bundleItemsData.innerHTML),this.skipUpsellOrBundleProductEvent(),this.checkSkippedUpsellOrBundleProductsFromStorage(),this.toggleCartUpsellOrBundleWidgetVisibility()),this.newTotalItems=cartItemsData&&cartItemsData.querySelectorAll(selectors$l.item).length?cartItemsData.querySelectorAll(selectors$l.item).length:0,this.subtotal=cartTotal&&cartTotal.hasAttribute(attributes$d.cartTotal)?parseInt(cartTotal.getAttribute(attributes$d.cartTotal)):0,this.cartCount=this.getCartItemCount(),document.dispatchEvent(new CustomEvent("theme:cart:change",{bubbles:!0,detail:{cartCount:this.cartCount}})),this.cartTotal.innerHTML=this.subtotal===0?window.theme.strings.free:window.theme.formatMoney(this.subtotal,theme.moneyWithCurrencyFormat),this.totalItems!==this.newTotalItems&&(this.totalItems=this.newTotalItems,this.toggleClassesOnContainers()),this.cartDrawer?.classList.contains(classes$i.open)&&this.cart.classList.add(classes$i.updated),this.cart.classList.remove(classes$i.loading),this.hasItemsInCart()||this.cartEmpty.querySelectorAll(selectors$l.animation).forEach(item=>{item.classList.remove(classes$i.animated)}),this.hasDiscountBlock&&(this.discountField&&(this.discountField.value=this.existingDiscountCodes.join(",")),this.discountError?(this.discountErrorMessage.textContent=window.theme.strings.discount_not_applicable,this.discountErrorMessage.classList.remove("hidden")):this.discountErrorMessage.classList.add("hidden")),this.freeShippingMessageHandle(this.subtotal),this.cartRemoveEvents(),this.cartUpdateEvents(),this.toggleErrorMessage(),this.enableCartButtons(),this.updateProgress(),this.animateItems(),this.bindDiscountEventListeners(),document.dispatchEvent(new CustomEvent("theme:product:added",{bubbles:!0}))}getCartItemCount(){return Array.from(this.cart.querySelectorAll(selectors$l.qtyInput)).reduce((total,quantityInput)=>total+parseInt(quantityInput.value),0)}hasItemsInCart(){return this.totalItems>0}freeShippingMessageHandle(total){this.freeShipping.length&&this.freeShipping.forEach(message=>{const hasQualifiedShippingMessage=message.hasAttribute(attributes$d.freeShipping)&&message.getAttribute(attributes$d.freeShipping)==="true"&&total>=0;message.classList.toggle(classes$i.success,hasQualifiedShippingMessage&&total>=this.freeShippingLimit)})}updateProgress(){if(this.freeShipping=document.querySelectorAll(selectors$l.freeShipping),!this.freeShipping.length)return;const percentValue=isNaN(this.subtotal/this.freeShippingLimit)?100:this.subtotal/this.freeShippingLimit,percent=Math.min(percentValue*100,100),dashoffset=this.circumference-percent/100*this.circumference/2,diferencia=Math.round((this.freeShippingLimit-this.subtotal)/100),valorFaltante=diferencia>0?diferencia:0,leftToSpend="$"+new Intl.NumberFormat("es-CL").format(valorFaltante);this.freeShipping.forEach(item=>{const progressBar=item.querySelector(selectors$l.freeShippingProgress),progressGraph=item.querySelector(selectors$l.freeShippingGraph),leftToSpendMessage=item.querySelector(selectors$l.leftToSpend);leftToSpendMessage&&(leftToSpendMessage.innerHTML=leftToSpend),progressBar&&(progressBar.value=percent),progressGraph&&progressGraph.style.setProperty("--stroke-dashoffset",`${dashoffset}`)})}skipUpsellOrBundleProductEvent(){if(this.upsellProductsHolder===null&&this.bundleProductsHolder===null)return;const upsellSkipButtons=this.upsellProductsHolder?.querySelectorAll(selectors$l.buttonSkipUpsellProduct)||[],bundleSkipButtons=this.bundleProductsHolder?.querySelectorAll(selectors$l.buttonSkipUpsellProduct)||[],allSkipButtons=[...upsellSkipButtons,...bundleSkipButtons];allSkipButtons.length&&allSkipButtons.forEach(button=>{button.addEventListener("click",event=>{event.preventDefault();const productID=button.closest(selectors$l.quickAddHolder).getAttribute(attributes$d.quickAddHolder),isUpsell=!!button.closest(selectors$l.upsellWidget),isBundle=!!button.closest(selectors$l.bundleWidget);isUpsell&&!this.skipUpsellProductsArray.includes(productID)&&(this.skipUpsellProductsArray.push(productID),window.sessionStorage.setItem("skip_upsell_products",this.skipUpsellProductsArray),this.removeUpsellOrBundleProduct(productID,"upsell")),isBundle&&!this.skipBundleProductsArray.includes(productID)&&(this.skipBundleProductsArray.push(productID),window.sessionStorage.setItem("skip_bundle_products",this.skipBundleProductsArray),this.removeUpsellOrBundleProduct(productID,"bundle")),this.toggleCartUpsellOrBundleWidgetVisibility()})})}checkSkippedUpsellOrBundleProductsFromStorage(){[{key:"upsell",storageKey:"skip_upsell_products",array:this.skipUpsellProductsArray},{key:"bundle",storageKey:"skip_bundle_products",array:this.skipBundleProductsArray}
12].forEach(({key,storageKey,array})=>{const skippedItems=window.sessionStorage.getItem(storageKey);skippedItems&&skippedItems.split(",").forEach(productID=>{array.includes(productID)||array.push(productID),this.removeUpsellOrBundleProduct(productID,key)})})}removeUpsellOrBundleProduct(productID,type="upsell"){const holder={upsell:this.upsellProductsHolder,bundle:this.bundleProductsHolder}[type];if(!holder)return;const product=holder.querySelector(`[${attributes$d.quickAddHolder}="${productID}"]`);product&&product.parentNode&&product.parentNode.remove()}toggleCartUpsellOrBundleWidgetVisibility(){if(!this.upsellProductsHolder&&!this.bundleProductsHolder)return;const upsellItems=this.upsellProductsHolder?.querySelectorAll(selectors$l.quickAddHolder),bundleItems=this.bundleProductsHolder?.querySelectorAll(selectors$l.quickAddHolder),upsellWidget=this.upsellProductsHolder?.closest(selectors$l.upsellWidget),bundleWidget=this.bundleProductsHolder?.closest(selectors$l.bundleWidget);if(!upsellWidget&&!bundleWidget)return;const toggleWidget=(widget,items,autoOpenAttr)=>{if(widget&&(widget.classList.toggle(classes$i.hidden,!items.length),items.length&&!widget.hasAttribute(attributes$d.open)&&widget.hasAttribute(autoOpenAttr))){widget.setAttribute(attributes$d.open,!0);const widgetBody=widget.querySelector(selectors$l.collapsibleBody);widgetBody&&(widgetBody.style.height="auto")}};toggleWidget(upsellWidget,upsellItems,attributes$d.upsellAutoOpen),toggleWidget(bundleWidget,bundleItems,attributes$d.upsellAutoOpen)}resetAnimatedItems(){this.cart.querySelectorAll(selectors$l.animation).forEach(item=>{item.classList.remove(classes$i.animated),item.classList.remove(classes$i.hiding)})}animateItems(e){requestAnimationFrame(()=>{let cart=this.cart;e&&e.detail&&e.detail.target&&(cart=e.detail.target),cart?.querySelectorAll(selectors$l.animation).forEach(item=>{item.classList.add(classes$i.animated)})})}}customElements.get("cart-items")||customElements.define("cart-items",CartItems);const attributes$c={count:"data-cart-count",limit:"data-limit"};class CartCount extends HTMLElement{constructor(){super(),this.cartCount=null,this.limit=this.getAttribute(attributes$c.limit),this.onCartChangeCallback=this.onCartChange.bind(this)}connectedCallback(){document.addEventListener("theme:cart:change",this.onCartChangeCallback)}disconnectedCallback(){document.addEventListener("theme:cart:change",this.onCartChangeCallback)}onCartChange(event){this.cartCount=event.detail.cartCount,this.update()}update(){if(this.cartCount!==null){this.setAttribute(attributes$c.count,this.cartCount);let countValue=this.cartCount;this.limit&&this.cartCount>=this.limit&&(countValue="9+"),this.innerText=countValue}}}customElements.get("cart-count")||customElements.define("cart-count",CartCount);const classes$h={open:"is-open",closing:"is-closing",duplicate:"drawer--duplicate",drawerEditorError:"drawer-editor-error"},selectors$k={additionalCheckoutButtons:".additional-checkout-buttons",cartDrawer:"cart-drawer",cartDrawerClose:"[data-cart-drawer-close]",cartDrawerInner:"[data-cart-drawer-inner]",shopifySection:".shopify-section"},attributes$b={drawerUnderlay:"data-drawer-underlay"};class CartDrawer extends HTMLElement{constructor(){super(),this.cartDrawerIsOpen=!1,this.cartDrawerClose=this.querySelector(selectors$k.cartDrawerClose),this.cartDrawerInner=this.querySelector(selectors$k.cartDrawerInner),this.openCartDrawer=this.openCartDrawer.bind(this),this.closeCartDrawer=this.closeCartDrawer.bind(this),this.toggleCartDrawer=this.toggleCartDrawer.bind(this),this.openCartDrawerOnProductAdded=this.openCartDrawerOnProductAdded.bind(this),this.openCartDrawerOnSelect=this.openCartDrawerOnSelect.bind(this),this.closeCartDrawerOnDeselect=this.closeCartDrawerOnDeselect.bind(this),this.cartDrawerSection=this.closest(selectors$k.shopifySection),this.a11y=window.theme.a11y,this.closeCartEvents()}connectedCallback(){const drawerSection=this.closest(selectors$k.shopifySection);if(window.theme.hasCartDrawer)if(window.Shopify.designMode){const errorMessage=document.createElement("div");errorMessage.classList.add(classes$h.drawerEditorError),errorMessage.innerText="Cart drawer section already exists.",this.querySelector(`.${classes$h.drawerEditorError}`)||this.querySelector(selectors$k.cartDrawerInner).append(errorMessage),this.classList.add(classes$h.duplicate)}else{drawerSection.remove();return}window.theme.hasCartDrawer=!0,this.addEventListener("theme:cart-drawer:show",this.openCartDrawer),document.addEventListener("theme:cart:toggle",this.toggleCartDrawer),document.addEventListener("theme:quick-add:open",this.closeCartDrawer),document.addEventListener("theme:product:added",this.openCartDrawerOnProductAdded),document.addEventListener("shopify:block:select",this.openCartDrawerOnSelect),document.addEventListener("shopify:section:select",this.openCartDrawerOnSelect),document.addEventListener("shopify:section:deselect",this.closeCartDrawerOnDeselect)}disconnectedCallback(){document.removeEventListener("theme:product:added",this.openCartDrawerOnProductAdded),document.removeEventListener("theme:cart:toggle",this.toggleCartDrawer),document.removeEventListener("theme:quick-add:open",this.closeCartDrawer),document.removeEventListener("shopify:block:select",this.openCartDrawerOnSelect),document.removeEventListener("shopify:section:select",this.openCartDrawerOnSelect),document.removeEventListener("shopify:section:deselect",this.closeCartDrawerOnDeselect),document.querySelectorAll(selectors$k.cartDrawer).length<=1&&(window.theme.hasCartDrawer=!1),appendCartItems()}openCartDrawerOnProductAdded(){this.cartDrawerIsOpen||this.openCartDrawer()}openCartDrawerOnSelect(e){(e.target.querySelector(selectors$k.shopifySection)||e.target.closest(selectors$k.shopifySection)||e.target)===this.cartDrawerSection&&this.openCartDrawer(!0)}closeCartDrawerOnDeselect(){this.cartDrawerIsOpen&&this.closeCartDrawer()}openCartDrawer(forceOpen=!1){!forceOpen&&this.classList.contains(classe
12s$h.duplicate)||(this.cartDrawerIsOpen=!0,this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),document.body.addEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:cart-drawer:open",{detail:{target:this},bubbles:!0})),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),this.classList.add(classes$h.open),this.observeAdditionalCheckoutButtons(),window.theme.waitForAnimationEnd(this.cartDrawerInner).then(()=>{this.a11y.trapFocus(this,{elementToFocus:this.querySelector(selectors$k.cartDrawerClose)})}))}closeCartDrawer(){this.classList.contains(classes$h.open)&&(this.classList.add(classes$h.closing),this.classList.remove(classes$h.open),this.cartDrawerIsOpen=!1,document.dispatchEvent(new CustomEvent("theme:cart-drawer:close",{bubbles:!0})),this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement(),document.body.removeEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),window.theme.waitForAnimationEnd(this.cartDrawerInner).then(()=>{this.classList.remove(classes$h.closing)}))}toggleCartDrawer(){this.cartDrawerIsOpen?this.closeCartDrawer():this.openCartDrawer()}closeCartEvents(){this.cartDrawerClose.addEventListener("click",e=>{e.preventDefault(),this.closeCartDrawer()}),this.addEventListener("keyup",e=>{e.code==="Escape"&&this.closeCartDrawer()})}onBodyClick(e){e.target.hasAttribute(attributes$b.drawerUnderlay)&&this.closeCartDrawer()}observeAdditionalCheckoutButtons(){const additionalCheckoutButtons=this.querySelector(selectors$k.additionalCheckoutButtons);if(additionalCheckoutButtons){const observer=new MutationObserver(()=>{this.a11y.trapFocus(this,{elementToFocus:this.querySelector(selectors$k.cartDrawerClose)}),observer.disconnect()});observer.observe(additionalCheckoutButtons,{subtree:!0,childList:!0})}}}customElements.get("cart-drawer")||customElements.define("cart-drawer",CartDrawer);class CollapsibleElements extends HTMLElement{constructor(){super(),this.single=this.hasAttribute("single"),this.toggle=this.toggle.bind(this),this.onCollapsibleClickEvent=this.onCollapsibleClick.bind(this),this.onTransitionEndEvent=this.onTransitionEnd.bind(this)}connectedCallback(){this.collapsibles=this.querySelectorAll("[data-collapsible]"),this.toggle(),document.addEventListener("theme:resize:width",this.toggle),this.collapsibles.forEach(collapsible=>{const trigger=collapsible.querySelector("[data-collapsible-trigger]"),body=collapsible.querySelector("[data-collapsible-body]");trigger?.addEventListener("click",this.onCollapsibleClickEvent),body?.addEventListener("transitionend",this.onTransitionEndEvent)})}disconnectedCallback(){document.removeEventListener("theme:resize:width",this.toggle),this.collapsibles&&this.collapsibles.forEach(collapsible=>{const trigger=collapsible.querySelector("[data-collapsible-trigger]"),body=collapsible.querySelector("[data-collapsible-body]");trigger?.removeEventListener("click",this.onCollapsibleClickEvent),body?.removeEventListener("transitionend",this.onTransitionEndEvent)}),this.collapsibles=null}toggle(){const isDesktopView=!window.theme.isMobile();this.collapsibles.forEach(collapsible=>{if(!collapsible.hasAttribute("desktop")&&!collapsible.hasAttribute("mobile"))return;const enableDesktop=collapsible.hasAttribute("desktop")?collapsible.getAttribute("desktop"):"true",enableMobile=collapsible.hasAttribute("mobile")?collapsible.getAttribute("mobile"):"true",isEligible=isDesktopView&&enableDesktop=="true"||!isDesktopView&&enableMobile=="true",body=collapsible.querySelector("[data-collapsible-body]");isEligible?(collapsible.removeAttribute("disabled"),collapsible.querySelector("[data-collapsible-trigger]").removeAttribute("tabindex"),collapsible.removeAttribute("open"),this.setBodyHeight(body,"")):(collapsible.setAttribute("disabled",""),collapsible.setAttribute("open",!0),collapsible.querySelector("[data-collapsible-trigger]").setAttribute("tabindex",-1))})}open(collapsible){if(collapsible.getAttribute("open")=="true")return;const body=collapsible.querySelector("[data-collapsible-body]"),content=collapsible.querySelector("[data-collapsible-content]");collapsible.setAttribute("open",!0),this.setBodyHeight(body,content.offsetHeight)}close(collapsible){if(!collapsible.hasAttribute("open"))return;const body=collapsible.querySelector("[data-collapsible-body]"),content=collapsible.querySelector("[data-collapsible-content]");this.setBodyHeight(body,content.offsetHeight),collapsible.setAttribute("open",!1),setTimeout(()=>{requestAnimationFrame(()=>{this.setBodyHeight(body,0)})})}setBodyHeight(body,contentHeight){body.style.height=contentHeight!=="auto"&&contentHeight!==""?`${contentHeight}px`:contentHeight}onTransitionEnd(event){const target=event.target,collapsible=target.closest("[data-collapsible]"),body=collapsible.querySelector("[data-collapsible-body]");target!==body||!collapsible||(collapsible.getAttribute("open")=="true"&&this.setBodyHeight(body,"auto"),collapsible.getAttribute("open")=="false"&&(collapsible.removeAttribute("open"),this.setBodyHeight(body,"")))}onCollapsibleClick(event){event.preventDefault();const collapsible=event.target.closest("[data-collapsible]");
12this.single&&this.collapsibles.forEach(otherCollapsible=>{otherCollapsible.hasAttribute("open")&&otherCollapsible!=collapsible&&requestAnimationFrame(()=>{this.close(otherCollapsible)})}),collapsible.hasAttribute("open")?this.close(collapsible):this.open(collapsible),collapsible.dispatchEvent(new CustomEvent("theme:form:sticky",{bubbles:!0,detail:{element:"accordion"}})),collapsible.dispatchEvent(new CustomEvent("theme:collapsible:toggle",{bubbles:!0}))}}customElements.get("collapsible-elements")||customElements.define("collapsible-elements",CollapsibleElements);class DeferredMedia extends HTMLElement{constructor(){super(),this.querySelector("[data-deferred-media-button]")?.addEventListener("click",this.loadContent.bind(this))}loadContent(focus=!0){if(window.theme.pauseAllMedia(),!this.getAttribute("loaded")){const content=document.createElement("div");content.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",!0);const mediaElement=this.appendChild(content.querySelector("video, model-viewer, iframe"));focus&&mediaElement.focus(),mediaElement.nodeName=="VIDEO"&&mediaElement.getAttribute("autoplay")&&mediaElement.play()}}}customElements.get("deferred-media")||customElements.define("deferred-media",DeferredMedia),window.theme.DeferredMedia=window.theme.DeferredMedia||DeferredMedia;const classes$g={visible:"is-visible"};class IsInView{constructor(container,itemSelector){!container||!itemSelector||(this.observer=null,this.container=container,this.itemSelector=itemSelector,this.init())}init(){const options={root:this.container,threshold:[.01,.5,.75,.99]};this.observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.intersectionRatio>=.99?entry.target.classList.add(classes$g.visible):entry.target.classList.remove(classes$g.visible)})},options),this.container.querySelectorAll(this.itemSelector)?.forEach(item=>{this.observer.observe(item)})}destroy(){this.observer.disconnect()}}const classes$f={dragging:"is-dragging",enabled:"is-enabled",scrolling:"is-scrolling",visible:"is-visible"},selectors$j={image:"img, svg",productImage:"[data-product-image]",slide:"[data-grid-item]",slider:"[data-grid-slider]"};class DraggableSlider{constructor(sliderElement){this.slider=sliderElement,this.isDown=!1,this.startX=0,this.scrollLeft=0,this.velX=0,this.scrollAnimation=null,this.isScrolling=!1,this.duration=800,this.scrollStep=this.scrollStep.bind(this),this.scrollToSlide=this.scrollToSlide.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseWheel=this.handleMouseWheel.bind(this),this.slider.addEventListener("mousedown",this.handleMouseDown),this.slider.addEventListener("mouseleave",this.handleMouseLeave),this.slider.addEventListener("mouseup",this.handleMouseUp),this.slider.addEventListener("mousemove",this.handleMouseMove),this.slider.addEventListener("wheel",this.handleMouseWheel,{passive:!0}),this.slider.classList.add(classes$f.enabled)}handleMouseDown(e){e.preventDefault(),this.isDown=!0,this.startX=e.pageX-this.slider.offsetLeft,this.scrollLeft=this.slider.scrollLeft,this.cancelMomentumTracking()}handleMouseLeave(){this.isDown&&(this.isDown=!1,this.beginMomentumTracking())}handleMouseUp(){this.isDown=!1,this.beginMomentumTracking()}handleMouseMove(e){if(!this.isDown)return;e.preventDefault();const walk=(e.pageX-this.slider.offsetLeft-this.startX)*1,prevScrollLeft=this.slider.scrollLeft,direction=walk>0?1:-1;this.slider.classList.add(classes$f.dragging,classes$f.scrolling),this.slider.scrollLeft=this.scrollLeft-walk,this.slider.scrollLeft!==prevScrollLeft&&(this.velX=this.slider.scrollLeft-prevScrollLeft||direction)}handleMouseWheel(){this.cancelMomentumTracking(),this.slider.classList.remove(classes$f.scrolling)}beginMomentumTracking(){this.isScrolling=!1,this.slider.classList.remove(classes$f.dragging),this.cancelMomentumTracking(),this.scrollToSlide()}cancelMomentumTracking(){cancelAnimationFrame(this.scrollAnimation)}scrollToSlide(){if(!this.velX&&!this.isScrolling)return;const slide=this.slider.querySelector(`${selectors$j.slide}.${classes$f.visible}`);if(!slide)return;const gap=parseInt(window.getComputedStyle(slide).marginRight)||0,slideWidth=slide.offsetWidth+gap,targetPosition=slide.offsetLeft,direction=this.velX>0?1:-1,slidesToScroll=Math.floor(Math.abs(this.velX)/100)||1;this.startPosition=this.slider.scrollLeft,this.distance=targetPosition-this.startPosition,this.startTime=performance.now(),this.isScrolling=!0,direction<0&&this.velX<sli
12deWidth&&(this.distance-=slideWidth*slidesToScroll),direction>0&&this.velX<slideWidth&&(this.distance+=slideWidth*slidesToScroll),this.scrollAnimation=requestAnimationFrame(this.scrollStep)}scrollStep(){const currentTime=performance.now()-this.startTime,scrollPosition=parseFloat(this.easeOutCubic(Math.min(currentTime,this.duration))).toFixed(1);this.slider.scrollLeft=scrollPosition,currentTime<this.duration?this.scrollAnimation=requestAnimationFrame(this.scrollStep):(this.slider.classList.remove(classes$f.scrolling),this.velX=0,this.isScrolling=!1)}easeOutCubic(t){return t/=this.duration,t--,this.distance*(t*t*t+1)+this.startPosition}destroy(){this.slider.classList.remove(classes$f.enabled),this.slider.removeEventListener("mousedown",this.handleMouseDown),this.slider.removeEventListener("mouseleave",this.handleMouseLeave),this.slider.removeEventListener("mouseup",this.handleMouseUp),this.slider.removeEventListener("mousemove",this.handleMouseMove),this.slider.removeEventListener("wheel",this.handleMouseWheel)}}customElements.get("grid-slider")||customElements.define("grid-slider",class extends HTMLElement{constructor(){super(),this.isInitialized=!1,this.draggableSlider=null,this.positionArrows=this.positionArrows.bind(this),this.onButtonArrowClick=e=>this.buttonArrowClickEvent(e),this.slidesObserver=null,this.firstLastSlidesObserver=null,this.isDragging=!1,this.toggleSlider=this.toggleSlider.bind(this)}connectedCallback(){this.init(),this.addEventListener("theme:grid-slider:init",this.init)}init(){this.slider=this.querySelector("[data-grid-slider]"),this.slides=this.querySelectorAll("[data-grid-item]"),this.buttons=this.querySelectorAll("[data-button-arrow]"),this.slider.classList.add("scroll-snap-disabled"),this.toggleSlider(),document.addEventListener("theme:resize:width",this.toggleSlider),window.theme.waitForAllAnimationsEnd(this).then(()=>{this.slider.classList.remove("scroll-snap-disabled")}).catch(()=>{this.slider.classList.remove("scroll-snap-disabled")})}toggleSlider(){const sliderWidth=this.slider.clientWidth,slidesWidth=this.getSlidesWidth();if(sliderWidth<slidesWidth&&(!window.theme.isMobile()||!window.theme.touch)){if(this.isInitialized)return;this.slidesObserver=new IsInView(this.slider,"[data-grid-item]"),this.initArrows(),this.isInitialized=!0,this.draggableSlider=new DraggableSlider(this.slider)}else this.destroy()}initArrows(){if(!this.buttons.length){const buttonsWrap=document.createElement("div");buttonsWrap.classList.add("slider__arrows"),buttonsWrap.innerHTML=theme.sliderArrows.prev+theme.sliderArrows.next,this.append(buttonsWrap),this.buttons=this.querySelectorAll("[data-button-arrow]"),this.buttonPrev=this.querySelector("[data-button-prev]"),this.buttonNext=this.querySelector("[data-button-next]")}this.toggleArrowsObserver(),this.hasAttribute("align-arrows")&&(this.positionArrows(),this.arrowsResizeObserver()),this.buttons.forEach(buttonArrow=>{buttonArrow.addEventListener("click",this.onButtonArrowClick)})}buttonArrowClickEvent(e){e.preventDefault();const firstVisibleSlide=this.slider.querySelector("[data-grid-item].is-visible");let slide=null;e.target.hasAttribute("data-button-prev")&&(slide=firstVisibleSlide?.previousElementSibling),e.target.hasAttribute("data-button-next")&&(slide=firstVisibleSlide?.nextElementSibling),this.goToSlide(slide)}removeArrows(){this.querySelector(".slider__arrows")?.remove()}goToSlide(slide){slide&&this.slider.scrollTo({top:0,left:slide.offsetLeft,behavior:"smooth"})}getSlidesWidth(){return this.slider.querySelector("[data-grid-item]")?.clientWidth*this.slider.querySelectorAll("[data-grid-item]").length}toggleArrowsObserver(){if(this.buttonPrev&&this.buttonNext){const slidesCount=this.slides.length,firstSlide=this.slides[0],lastSlide=this.slides[slidesCount-1],config={attributes:!0,childList:!1,subtree:!1},callback=mutationList=>{for(const mutation of mutationList)if(mutation.type==="attributes"){const slide=mutation.target,isDisabled=!!slide.classList.contains("is-visible");slide==firstSlide&&(this.buttonPrev.disabled=isDisabled),slide==lastSlide&&(this.buttonNext.disabled=isDisabled)}};firstSlide&&lastSlide&&(this.firstLastSlidesObserver=new MutationObserver(callback),this.firstLastSlidesObserver.observe(firstSlide,config),this.firstLastSlidesObserver.observe(lastSlide,config))}}positionArrows(){if(this.hasAttribute("images-widths-different")){const figureElements=this.slider.querySelectorAll("figure"),biggestHeight=Math.max(0,...Array.from(figureElements).map(figure=>figure.clientHeight));this.style.setProperty("--button-position",`${biggestHeight/2}px`);return}const targetElement=this.slider.querySelector("[data-social-video-item]")||this.slider.querySelector("[data-product-image]")||this.slider.querySelector("[data-collection-image]")||this.slider.querySelector("[data-column-image]")||this.slider;targetElement&&this.style.setProperty("--button-position",`${targetElement.clientHeight/2}px`)}
12arrowsResizeObserver(){document.addEventListener("theme:resize:width",this.positionArrows)}disconnectedCallback(){this.destroy(),document.removeEventListener("theme:resize:width",this.toggleSlider)}destroy(){this.isInitialized=!1,this.draggableSlider?.destroy(),this.draggableSlider=null,this.slidesObserver?.destroy(),this.slidesObserver=null,this.removeArrows(),document.removeEventListener("theme:resize:width",this.positionArrows)}}),window.theme.hasOpenModals=function(){const openModals=!!document.querySelectorAll("dialog[open][data-scroll-lock-required]").length,openDrawers=!!document.querySelectorAll(".drawer.is-open").length;return openModals||openDrawers},customElements.get("header-component")||customElements.define("header-component",class extends HTMLElement{constructor(){super(),this.style=this.dataset.style,this.desktop=this.querySelector("[data-header-desktop]"),this.deadLinks=document.querySelectorAll('.navlink[href="#"]'),this.resizeObserver=null,this.checkWidth=this.checkWidth.bind(this),this.isSticky=this.hasAttribute("data-header-sticky"),document.body.classList.toggle("has-header-sticky",this.isSticky)}connectedCallback(){this.killDeadLinks(),this.drawerToggleEvent(),this.cartToggleEvent(),this.initSticky(),this.style!=="drawer"&&this.desktop&&(this.minWidth=this.getMinWidth(),this.listenWidth())}listenWidth(){"ResizeObserver"in window?(this.resizeObserver=new ResizeObserver(this.checkWidth),this.resizeObserver.observe(this)):document.addEventListener("theme:resize",this.checkWidth)}drawerToggleEvent(){const button=this.querySelector("[data-drawer-toggle]");button.addEventListener("click",()=>{document.querySelector("[data-drawer]").dispatchEvent(new CustomEvent("theme:drawer:toggle",{bubbles:!1,detail:{button}}))})}killDeadLinks(){this.deadLinks.forEach(el=>{el.onclick=e=>{e.preventDefault()}})}checkWidth(){if(document.body.clientWidth<this.minWidth){this.classList.add("js__show__mobile");const{headerHeight}=window.theme.readHeights();document.documentElement.style.setProperty("--header-height",`${headerHeight}px`)}else this.classList.remove("js__show__mobile")}getMinWidth(){const comparitor=document.createElement("div");comparitor.classList.add("js__header__clone","header-wrapper"),comparitor.appendChild(this.querySelector("header").cloneNode(!0)),document.body.appendChild(comparitor);const widthWrappers=comparitor.querySelectorAll("[data-takes-space-wrapper]");let minWidth=0,spaced=0;return widthWrappers.forEach(context=>{const wideElements=context.querySelectorAll("[data-child-takes-space]");let thisWidth=0;wideElements.length===3?thisWidth=this._sumSplitWidths(wideElements):thisWidth=this._sumWidths(wideElements),thisWidth>minWidth&&(minWidth=thisWidth,spaced=wideElements.length*20)}),document.body.removeChild(comparitor),minWidth+spaced}cartToggleEvent(){theme.settings.cartType==="drawer"&&this.querySelectorAll("[data-cart-toggle]")?.forEach(button=>{button.addEventListener("click",e=>{const cartDrawer=document.querySelector("cart-drawer");cartDrawer&&(e.preventDefault(),cartDrawer.dispatchEvent(new CustomEvent("theme:cart-drawer:show")),window.a11y.lastElement=button)})})}initSticky(){this.isSticky&&(this.isStuck=!1,this.cls=this.classList,this.headerOffset=document.querySelector(".page-header")?.offsetTop,this.updateHeaderOffset=this.updateHeaderOffset.bind(this),this.scrollEvent=e=>this.onScroll(e),this.listen(),this.stickOnLoad())}listen(){document.addEventListener("theme:scroll",this.scrollEvent),document.addEventListener("shopify:section:load",this.updateHeaderOffset),document.addEventListener("shopify:section:unload",this.updateHeaderOffset)}onScroll(e){e.detail.down?!this.isStuck&&e.detail.position>this.headerOffset&&this.stickSimple():e.detail.position<=this.headerOffset&&this.unstickSimple()}updateHeaderOffset(event){event.target.classList.contains("shopify-section-group-header-group")&&setTimeout(()=>{this.headerOffset=document.querySelector(".page-header")?.offsetTop})}stickOnLoad(){window.scrollY>this.headerOffset&&this.stickSimple()}stickSimple(){this.cls.add("js__header__stuck"),this.isStuck=!0}unstickSimple(){document.documentElement.hasAttribute("data-scroll-locked")||(this.cls.remove("js__header__stuck"),this.isStuck=!1)}_sumSplitWidths(nodes){let arr=[];
12return nodes.forEach(el=>{el.firstElementChild&&arr.push(el.firstElementChild.clientWidth)}),arr[0]>arr[2]?arr[2]=arr[0]:arr[0]=arr[2],arr.reduce((a,b)=>a+b)}_sumWidths(nodes){let width=0;return nodes.forEach(el=>{width+=el.clientWidth}),width}disconnectedCallback(){"ResizeObserver"in window?this.resizeObserver?.unobserve(this):document.removeEventListener("theme:resize",this.checkWidth),this.isSticky&&(document.removeEventListener("theme:scroll",this.scrollEvent),document.removeEventListener("shopify:section:load",this.updateHeaderOffset),document.removeEventListener("shopify:section:unload",this.updateHeaderOffset))}});const selectors$i={link:"[data-top-link]",wrapper:"[data-header-wrapper]",stagger:"[data-stagger]",staggerPair:"[data-stagger-first]",staggerAfter:"[data-stagger-second]",focusable:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'},classes$e={isVisible:"is-visible",meganavVisible:"meganav--visible",meganavIsTransitioning:"meganav--is-transitioning"};customElements.get("hover-disclosure")||customElements.define("hover-disclosure",class extends HTMLElement{constructor(){super(),this.wrapper=this.closest(selectors$i.wrapper),this.key=this.getAttribute("aria-controls"),this.link=this.querySelector(selectors$i.link),this.grandparent=this.classList.contains("grandparent"),this.disclosure=document.getElementById(this.key),this.transitionTimeout=0}connectedCallback(){this.setAttribute("aria-haspopup",!0),this.setAttribute("aria-expanded",!1),this.setAttribute("aria-controls",this.key),this.connectHoverToggle(),this.handleTablets(),this.staggerChildAnimations(),this.addEventListener("theme:disclosure:show",evt=>{this.showDisclosure(evt)}),this.addEventListener("theme:disclosure:hide",evt=>{this.hideDisclosure(evt)})}
12showDisclosure(e){e&&e.type&&e.type==="mouseenter"&&this.wrapper.classList.add(classes$e.meganavIsTransitioning),this.grandparent?this.wrapper.classList.add(classes$e.meganavVisible):this.wrapper.classList.remove(classes$e.meganavVisible),this.setAttribute("aria-expanded",!0),this.classList.add(classes$e.isVisible),this.disclosure.classList.add(classes$e.isVisible),this.transitionTimeout&&clearTimeout(this.transitionTimeout),this.transitionTimeout=setTimeout(()=>{this.wrapper.classList.remove(classes$e.meganavIsTransitioning)},200)}hideDisclosure(){this.classList.remove(classes$e.isVisible),this.disclosure.classList.remove(classes$e.isVisible),this.setAttribute("aria-expanded",!1),this.wrapper.classList.remove(classes$e.meganavVisible,classes$e.meganavIsTransitioning)}staggerChildAnimations(){const simple=this.querySelectorAll(selectors$i.stagger);let step=50;simple.forEach((el,index)=>{el.style.transitionDelay=`${index*step+10}ms`,step*=.95}),this.querySelectorAll(selectors$i.staggerPair).forEach((child,i)=>{const d1=i*100;child.style.transitionDelay=`${d1}ms`,child.parentElement.querySelectorAll(selectors$i.staggerAfter).forEach((grandchild,i2)=>{const d2=(i2+1)*20;grandchild.style.transitionDelay=`${d1+d2}ms`})})}handleTablets(){this.addEventListener("touchstart",function(e){this.classList.contains(classes$e.isVisible)||(e.preventDefault(),this.showDisclosure(e))}.bind(this),{passive:!0})}connectHoverToggle(){this.addEventListener("mouseenter",e=>this.showDisclosure(e)),this.link.addEventListener("focus",e=>this.showDisclosure(e)),this.addEventListener("mouseleave",()=>this.hideDisclosure()),this.addEventListener("focusout",e=>{this.contains(e.relatedTarget)||this.hideDisclosure()}),this.addEventListener("keyup",evt=>{evt.code==="Escape"&&this.hideDisclosure()})}});const selectors$h={drawerInner:"[data-drawer-inner]",drawerClose:"[data-drawer-close]",underlay:"[data-drawer-underlay]",stagger:"[data-stagger-animation]",wrapper:"[data-header-wrapper]",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])'},classes$d={animated:"drawer--animated",open:"is-open",closing:"is-closing",isFocused:"is-focused",headerStuck:"js__header__stuck"};customElements.get("header-drawer")||customElements.define("header-drawer",class extends HTMLElement{constructor(){super(),this.a11y=window.theme.a11y,this.isAnimating=!1,this.drawer=this,this.drawerInner=this.querySelector(selectors$h.drawerInner),this.underlay=this.querySelector(selectors$h.underlay),this.triggerButton=null,this.staggers=this.querySelectorAll(selectors$h.stagger),this.showDrawer=this.showDrawer.bind(this),this.hideDrawer=this.hideDrawer.bind(this),this.connectDrawer(),this.closers()}connectDrawer(){this.addEventListener("theme:drawer:toggle",e=>{this.triggerButton=e.detail?.button,this.classList.contains(classes$d.open)?this.dispatchEvent(new CustomEvent("theme:drawer:close",{bubbles:!0})):this.dispatchEvent(new CustomEvent("theme:drawer:open",{bubbles:!0}))}),this.addEventListener("theme:drawer:close",this.hideDrawer),this.addEventListener("theme:drawer:open",this.showDrawer),document.addEventListener("theme:cart-drawer:open",this.hideDrawer)}closers(){this.querySelectorAll(selectors$h.drawerClose)?.forEach(button=>{button.addEventListener("click",()=>{this.hideDrawer()})}),document.addEventListener("keyup",event=>{event.code==="Escape"&&this.hideDrawer()}),this.underlay.addEventListener("click",()=>{this.hideDrawer()})}showDrawer(){this.isAnimating||(this.isAnimating=!0,this.triggerButton?.setAttribute("aria-expanded",!0),this.classList.add(classes$d.open,classes$d.animated),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),this.drawerInner&&(this.a11y.removeTrapFocus(),window.theme.waitForAnimationEnd(this.drawerInner).then(()=>{this.isAnimating=!1,this.a11y.trapFocus(this.drawerInner,{elementToFocus:this.querySelector(selectors$h.focusable)})})))}hideDrawer(){this.isAnimating||!this.classList.contains(classes$d.open)||(this.isAnimating=!0,this.classList.add(classes$d.closing),this.classList.remove(classes$d.open),this.a11y.removeTrapFocus(),this.triggerButton&&(this.triggerButton.setAttribute("aria-expanded",!1),document.body.classList.contains(classe
12s$d.isFocused)&&this.triggerButton.focus()),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),window.theme.waitForAnimationEnd(this.drawerInner).then(()=>{this.classList.remove(classes$d.closing,classes$d.animated),this.isAnimating=!1,document.dispatchEvent(new CustomEvent("theme:sliderule:close",{bubbles:!1}))}))}disconnectedCallback(){document.removeEventListener("theme:cart-drawer:open",this.hideDrawer)}});const selectors$g={animates:"data-animates",sliderule:"[data-sliderule]",slideruleOpen:"data-sliderule-open",slideruleClose:"data-sliderule-close",sliderulePane:"data-sliderule-pane",drawerContent:"[data-drawer-content]",focusable:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',children:`:scope > [data-animates], 13 :scope > * > [data-animates], 14 :scope > * > * > [data-animates], 15 :scope > * > .sliderule-grid > *`},classes$c={isVisible:"is-visible",isHiding:"is-hiding",isHidden:"is-hidden",focused:"is-focused",scrolling:"is-scrolling"};customElements.get("mobile-sliderule")||customElements.define("mobile-sliderule",class extends HTMLElement{constructor(){super(),this.key=this.id,this.sliderule=this.querySelector(selectors$g.sliderule);const btnSelector=`[${selectors$g.slideruleOpen}='${this.key}']`;this.exitSelector=`[${selectors$g.slideruleClose}='${this.key}']`,this.trigger=this.querySelector(btnSelector),this.exit=document.querySelectorAll(this.exitSelector),this.pane=this.trigger.closest(`[${selectors$g.sliderulePane}]`),this.childrenElements=this.querySelectorAll(selectors$g.children),this.drawerContent=this.closest(selectors$g.drawerContent),this.cachedButton=null,this.a11y=window.theme.a11y,this.trigger.setAttribute("aria-haspopup",!0),this.trigger.setAttribute("aria-expanded",!1),this.trigger.setAttribute("aria-controls",this.key),this.closeSliderule=this.closeSliderule.bind(this),this.clickEvents(),this.keyboardEvents(),document.addEventListener("theme:sliderule:close",this.closeSliderule)}clickEvents(){this.trigger.addEventListener("click",()=>{this.cachedButton=this.trigger,this.showSliderule()}),this.exit.forEach(element=>{element.addEventListener("click",()=>{this.hideSliderule()})})}keyboardEvents(){this.addEventListener("keyup",evt=>{evt.stopPropagation(),evt.code==="Escape"&&this.hideSliderule()})}trapFocusSliderule(showSliderule=!0){const trapFocusButton=showSliderule?this.querySelector(this.exitSelector):this.cachedButton;this.a11y.removeTrapFocus(),trapFocusButton&&this.drawerContent&&this.a11y.trapFocus(this.drawerContent,{elementToFocus:document.body.classList.contains(classes$c.focused)?trapFocusButton:null})}hideSliderule(close=!1){const newPosition=parseInt(this.pane.dataset.sliderulePane,10)-1;this.pane.setAttribute(selectors$g.sliderulePane,newPosition),this.pane.classList.add(classes$c.isHiding),this.sliderule.classList.add(classes$c.isHiding);const hiddenSelector=close?`[${selectors$g.animates}].${classes$c.isHidden}`:`[${selectors$g.animates}="${newPosition}"]`,hiddenItems=this.pane.querySelectorAll(hiddenSelector);hiddenItems.length&&hiddenItems.forEach(element=>{element.classList.remove(classes$c.isHidden)});const children=close?this.pane.querySelectorAll(`.${classes$c.isVisible}, .${classes$c.isHiding}`):this.childrenElements;children.forEach((element,index)=>{const lastElement=children.length-1==index;element.classList.remove(classes$c.isVisible),close&&(element.classList.remove(classes$c.isHiding),this.pane.classList.remove(classes$c.isHiding));const removeHidingClass=()=>{parseInt(this.pane.getAttribute(selectors$g.sliderulePane))===newPosition&&this.sliderule.classList.remove(classes$c.isVisible),this.sliderule.classList.remove(classes$c.isHiding),this.pane.classList.remove(classes$c.isHiding),lastElement&&(this.a11y.removeTrapFocus(),close||this.trapFocusSliderule(!1)),element.removeEventListener("animationend",removeHidingClass)};window.theme.settings.enableAnimations?element.addEventListener("animationend",removeHidingClass):removeHidingClass()})}showSliderule(){let lastScrollableFrame=null;const parent=this.closest(`.${classes$c.isVisible}`);let lastScrollableElement=this.pane;parent&&(lastScrollableElement=parent),lastScrollableElement.scrollTo({top:0,left:0,behavior:"smooth"}),lastScrollableElement.classList.add(classes$c.scrolling);const lastScrollableIsScrolling=()=>{lastScrollableElement.scrollTop<=0?(lastScrollableElement.classList.remove(classes$c.scrolling),lastScrollableFrame&&cancelAnimationFrame(lastScrollableFrame)):lastScrollableFrame=requestAnimationFrame(lastScrollableIsScrolling)};lastScrollableFrame=requestAnimationFrame(lastScrollableIsScrolling);const oldPosition=parseInt(this.pane.dataset.sliderulePane,10),newPosition=oldPosition+1;this.sliderule.classList.add(classes$c.isVisible),this.pane.setAttribute(selectors$g.sliderulePane,newPosition);const hiddenItems=this.pane.querySelectorAll(`[${selectors$g.animates}="${oldPosition}"]`);
15hiddenItems.length&&hiddenItems.forEach((element,index)=>{const lastElement=hiddenItems.length-1==index;element.classList.add(classes$c.isHiding);const removeHidingClass=()=>{element.classList.remove(classes$c.isHiding),parseInt(this.pane.getAttribute(selectors$g.sliderulePane))!==oldPosition&&element.classList.add(classes$c.isHidden),lastElement&&this.trapFocusSliderule(),element.removeEventListener("animationend",removeHidingClass)};window.theme.settings.enableAnimations?element.addEventListener("animationend",removeHidingClass):removeHidingClass()})}closeSliderule(){this.pane&&this.pane.hasAttribute(selectors$g.sliderulePane)&&parseInt(this.pane.getAttribute(selectors$g.sliderulePane))>0&&(this.hideSliderule(!0),parseInt(this.pane.getAttribute(selectors$g.sliderulePane))>0&&this.pane.setAttribute(selectors$g.sliderulePane,0))}disconnectedCallback(){document.removeEventListener("theme:sliderule:close",this.closeSliderule)}});const selectors$f={details:"details",popdown:"[data-popdown]",popdownClose:"[data-popdown-close]",input:'input:not([type="hidden"])',mobileMenu:"mobile-menu"},attributes$a={popdownUnderlay:"data-popdown-underlay",scrollLocked:"data-scroll-locked"},classes$b={open:"is-open"};class SearchPopdown extends HTMLElement{constructor(){super(),this.popdown=this.querySelector(selectors$f.popdown),this.popdownContainer=this.querySelector(selectors$f.details),this.popdownClose=this.querySelector(selectors$f.popdownClose),this.popdownTransitionCallback=this.popdownTransitionCallback.bind(this),this.detailsToggleCallback=this.detailsToggleCallback.bind(this),this.mobileMenu=this.closest(selectors$f.mobileMenu),this.a11y=window.theme.a11y}connectedCallback(){this.popdown.addEventListener("transitionend",this.popdownTransitionCallback),this.popdownContainer.addEventListener("keyup",event=>event.code.toUpperCase()==="ESCAPE"&&this.close()),this.popdownContainer.addEventListener("toggle",this.detailsToggleCallback),this.popdownClose.addEventListener("click",this.close.bind(this))}detailsToggleCallback(event){event.target.hasAttribute("open")&&this.open()}popdownTransitionCallback(event){event.target!==this.popdown||event.propertyName!=="opacity"||(this.classList.contains("is-open")?this.a11y.trapFocus(this.popdown,{elementToFocus:this.popdown.querySelector('input:not([type="hidden"])')}):(this.popdownContainer.removeAttribute("open"),this.a11y.removeTrapFocus()))}onBodyClick(event){(!this.contains(event.target)||event.target.hasAttribute(attributes$a.popdownUnderlay))&&this.close()}open(){this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),document.body.addEventListener("click",this.onBodyClickEvent),document.documentElement.hasAttribute(attributes$a.scrollLocked)||document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),requestAnimationFrame(()=>{this.classList.add(classes$b.open)})}close(){this.classList.remove(classes$b.open),document.body.removeEventListener("click",this.onBodyClickEvent),this.mobileMenu||document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}}customElements.get("header-search-popdown")||customElements.define("header-search-popdown",SearchPopdown);const selectors$e={inputSearch:'input[type="search"]',focusedElements:'[aria-selected="true"] a',resetButton:'button[type="reset"]'},classes$a={hidden:"hidden"};class HeaderSearchForm extends HTMLElement{constructor(){super(),this.input=this.querySelector(selectors$e.inputSearch),this.resetButton=this.querySelector(selectors$e.resetButton),this.input&&(this.input.form.addEventListener("reset",this.onFormReset.bind(this)),this.input.addEventListener("input",window.theme.debounce(event=>{this.onChange(event)},300).bind(this)))}toggleResetButton(){const resetIsHidden=this.resetButton.classList.contains(classes$a.hidden);this.input.value.length>0&&resetIsHidden?this.resetButton.classList.remove(classes$a.hidden):this.input.value.length===0&&!resetIsHidden&&this.resetButton.classList.add(classes$a.hidden)}onChange(){this.toggleResetButton()}shouldResetForm(){return!document.querySelector(selectors$e.focusedElements)}onFormReset(event){event.preventDefault(),this.shouldResetForm()&&(this.input.value="",this.toggleResetButton(),event.target.querySelector(selectors$e.inputSearch).focus())}}customElements.define("header-search-form",HeaderSearchForm);const selectors$d={inputSearch:'input[type="search"]'};class MainSearch extends HeaderSearchForm{constructor(){super(),this.allSearchInputs=document.querySelectorAll(selectors$d.inputSearch),this.setupEventListeners()}setupEventListeners(){let allSearchForms=[];
15this.allSearchInputs.forEach(input=>allSearchForms.push(input.form)),this.input.addEventListener("focus",this.onInputFocus.bind(this)),!(allSearchForms.length<2)&&(allSearchForms.forEach(form=>form.addEventListener("reset",this.onFormReset.bind(this))),this.allSearchInputs.forEach(input=>input.addEventListener("input",this.onInput.bind(this))))}onFormReset(event){super.onFormReset(event),super.shouldResetForm()&&this.keepInSync("",this.input)}onInput(event){const target=event.target;this.keepInSync(target.value,target)}onInputFocus(){window.theme.isMobile()&&this.scrollIntoView({behavior:"smooth"})}keepInSync(value,target){this.allSearchInputs.forEach(input=>{input!==target&&(input.value=value)})}}customElements.get("main-search")||customElements.define("main-search",MainSearch);const selectors$c={scrollbar:"[data-scrollbar]",scrollbarArrowPrev:"[data-scrollbar-arrow-prev]",scrollbarArrowNext:"[data-scrollbar-arrow-next]"},classes$9={hidden:"is-hidden"},attributes$9={scrollbarSlider:"data-scrollbar-slider",scrollbarSlideFullWidth:"data-scrollbar-slide-fullwidth"};customElements.get("native-scrollbar")||customElements.define("native-scrollbar",class extends HTMLElement{constructor(){super(),this.scrollbar=this.querySelector(selectors$c.scrollbar),this.arrowNext=this.querySelector(selectors$c.scrollbarArrowNext),this.arrowPrev=this.querySelector(selectors$c.scrollbarArrowPrev),this.toggleNextArrow=this.toggleNextArrow.bind(this),this.addEventListener("theme:swatches:loaded",this.toggleNextArrow)}connectedCallback(){document.addEventListener("theme:resize",this.toggleNextArrow),this.scrollbar.hasAttribute(attributes$9.scrollbarSlider)&&this.scrollToVisibleElement(),this.arrowNext&&this.arrowPrev&&(this.events(),this.toggleNextArrow())}disconnectedCallback(){document.removeEventListener("theme:resize",this.toggleNextArrow)}events(){this.arrowNext.addEventListener("click",event=>{event.preventDefault(),this.goToNext()}),this.arrowPrev.addEventListener("click",event=>{event.preventDefault(),this.goToPrev()}),this.scrollbar.addEventListener("scroll",()=>{this.togglePrevArrow(),this.toggleNextArrow()})}goToNext(){const position=(this.scrollbar.hasAttribute(attributes$9.scrollbarSlideFullWidth)?this.scrollbar.getBoundingClientRect().width:this.scrollbar.getBoundingClientRect().width/2)+this.scrollbar.scrollLeft;this.move(position),this.arrowPrev.classList.remove(classes$9.hidden),this.toggleNextArrow()}goToPrev(){const moveWith=this.scrollbar.hasAttribute(attributes$9.scrollbarSlideFullWidth)?this.scrollbar.getBoundingClientRect().width:this.scrollbar.getBoundingClientRect().width/2,position=this.scrollbar.scrollLeft-moveWith;this.move(position),this.arrowNext.classList.remove(classes$9.hidden),this.togglePrevArrow()}toggleNextArrow(){requestAnimationFrame(()=>{this.arrowNext?.classList.toggle(classes$9.hidden,Math.round(this.scrollbar.scrollLeft+this.scrollbar.getBoundingClientRect().width+1)>=this.scrollbar.scrollWidth)})}togglePrevArrow(){requestAnimationFrame(()=>{this.arrowPrev.classList.toggle(classes$9.hidden,this.scrollbar.scrollLeft<=0)})}scrollToVisibleElement(){[].forEach.call(this.scrollbar.children,element=>{element.addEventListener("click",event=>{event.preventDefault(),this.move(element.offsetLeft-element.clientWidth)})})}move(offsetLeft,behavior="smooth"){this.scrollbar.scrollTo({top:0,left:offsetLeft,behavior})}}),customElements.get("popout-select")||customElements.define("popout-select",class extends HTMLElement{constructor(){super()}connectedCallback(){this.popoutList=this.querySelector("[data-popout-list]"),this.popoutToggle=this.querySelector("[data-popout-toggle]"),this.popoutToggleText=this.querySelector("[data-popout-toggle-text]"),this.popoutInput=this.querySelector("[data-popout-input]")||this.parentNode.querySelector("[data-popout-input]")||this.parentNode.parentNode.querySelector("[data-quantity-input]"),this.popoutOptions=this.querySelectorAll("[data-popout-option]"),this.productGridItem=this.popout
15List.closest("[data-grid-item]"),this.fireSubmitEvent=this.hasAttribute("submit"),this.popupToggleFocusoutEvent=evt=>this.onPopupToggleFocusout(evt),this.popupListFocusoutEvent=evt=>this.onPopupListFocusout(evt),this.popupToggleClickEvent=evt=>this.onPopupToggleClick(evt),this.keyUpEvent=evt=>this.onKeyUp(evt),this.bodyClickEvent=evt=>this.onBodyClick(evt),this._connectOptions(),this._connectToggle(),this._onFocusOut(),this.popupListSetDimensions()}onPopupToggleClick(evt){const ariaExpanded=evt.currentTarget.getAttribute("aria-expanded")==="true";if(this.productGridItem){const productGridItemImage=this.productGridItem.querySelector("[data-product-image]");productGridItemImage&&productGridItemImage.classList.toggle("is-visible",!ariaExpanded),this.popoutList.style.maxHeight=`${Math.abs(this.popoutToggle.getBoundingClientRect().bottom-this.productGridItem.getBoundingClientRect().bottom)}px`}evt.currentTarget.setAttribute("aria-expanded",!ariaExpanded),this.popoutList.classList.toggle("popout-list--visible"),this.popupListSetDimensions(),this.toggleListPosition(),document.body.addEventListener("click",this.bodyClickEvent)}onPopupToggleFocusout(evt){this.contains(evt.relatedTarget)||this._hideList()}onPopupListFocusout(evt){const childInFocus=evt.currentTarget.contains(evt.relatedTarget);this.popoutList.classList.contains("popout-list--visible")&&!childInFocus&&this._hideList()}toggleListPosition(){const button=this.querySelector("[data-popout-toggle]"),popoutTop=this.getBoundingClientRect().top+this.clientHeight,removeTopClass=()=>{button.getAttribute("aria-expanded")!=="true"&&this.popoutList.classList.remove("popout-list--top"),this.popoutList.removeEventListener("transitionend",removeTopClass)};button.getAttribute("aria-expanded")==="true"?window.innerHeight/2<popoutTop&&this.popoutList.classList.add("popout-list--top"):this.popoutList.addEventListener("transitionend",removeTopClass)}popupListSetDimensions(){this.popoutList.style.setProperty("--max-width","100vw"),this.popoutList.style.setProperty("--max-height","100vh"),requestAnimationFrame(()=>{this.popoutList.style.setProperty("--max-width",`${parseInt(document.body.clientWidth-this.popoutList.getBoundingClientRect().left)}px`),this.popoutList.style.setProperty("--max-height",`${parseInt(document.body.clientHeight-this.popout
15List.getBoundingClientRect().top)}px`)})}popupOptionsClick(evt){if(evt.target.closest("[data-popout-option]").attributes.href.value==="#"){evt.preventDefault();const attrValue=evt.currentTarget.hasAttribute("data-value")?evt.currentTarget.getAttribute("data-value"):"";this.popoutInput.value=attrValue;const listItem=evt.currentTarget.closest("li");if(listItem){const optionValueId=listItem.getAttribute("data-option-value-id"),productUrl=listItem.getAttribute("data-product-url");optionValueId&&this.popoutInput.setAttribute("data-option-value-id",optionValueId),productUrl&&this.popoutInput.setAttribute("data-product-url",productUrl)}if(this.popoutInput.disabled&&this.popoutInput.removeAttribute("disabled"),this.fireSubmitEvent)this._submitForm(attrValue);else{const currentTarget=evt.currentTarget.parentElement,listTargetElement=this.popoutList.querySelector(".is-active"),targetAttribute=this.popoutList.querySelector("[aria-current]");this.popoutInput.dispatchEvent(new Event("change",{bubbles:!0})),listTargetElement&&(listTargetElement.classList.remove("is-active"),currentTarget.classList.add("is-active")),this.popoutInput.name=="quantity"&&!currentTarget.nextSibling&&this.classList.add("is-active"),targetAttribute&&targetAttribute.hasAttribute("aria-current")&&(targetAttribute.removeAttribute("aria-current"),evt.currentTarget.setAttribute("aria-current","true")),attrValue!==""&&(this.popoutToggleText.innerHTML=attrValue,this.popoutToggleText.hasAttribute("data-popout-toggle-text")&&this.popoutToggleText.getAttribute("data-popout-toggle-text")!==""&&this.popoutToggleText.setAttribute("data-popout-toggle-text",attrValue)),this.onPopupToggleFocusout(evt),this.onPopupListFocusout(evt)}}}onKeyUp(evt){evt.code==="Escape"&&(this._hideList(),this.popoutToggle.focus())}onBodyClick(evt){const isOption=this.contains(evt.target);this.popoutList.classList.contains("popout-list--visible")&&!isOption&&this._hideList()}_connectToggle(){this.popoutToggle.addEventListener("click",this.popupToggleClickEvent)}_connectOptions(){this.popoutOptions.length&&this.popoutOptions.forEach(element=>{element.addEventListener("click",evt=>this.popupOptionsClick(evt))})}_onFocusOut(){this.addEventListener("keyup",this.keyUpEvent),this.popoutToggle.addEventListener("focusout",this.popupToggleFocusoutEvent),this.popoutList.addEventListener("focusout",this.popupListFocusoutEvent)}_submitForm(){const form=this.closest("form");form&&form.submit()}_hideList(){this.popoutList.classList.remove("popout-list--visible"),this.popoutToggle.setAttribute("aria-expanded",!1),this.toggleListPosition(),document.body.removeEventListener("click",this.bodyClickEvent)}});class PopupCookie{constructor(name,value,daysToExpire=7){const today=new Date,expiresDate=new Date;expiresDate.setTime(today.getTime()+36e5*24*daysToExpire),this.config={expires:expiresDate.toGMTString(),path:"/",domain:window.location.hostname,sameSite:"none",secure:!0},this.name=name,this.value=value}write(){(document.cookie.indexOf("; ")!==-1&&!document.cookie.split("; ").find(row=>row.startsWith(this.name))||document.cookie.indexOf("; ")===-1)&&(document.cookie=`${this.name}=${this.value}; expires=${this.config.expires}; path=${this.config.path}; domain=${this.config.domain}; sameSite=${this.config.sameSite}; secure=${this.config.secure}`)}read(){return document.cookie.indexOf("; ")!==-1&&document.cookie.split("; ").find(row=>row.startsWith(this.name))?document.cookie.split("; ").find(row=>row.startsWith(this.name)).split("=")[1]:!1}destroy(){document.cookie.split("; ").find(row=>row.startsWith(this.name))&&(document.cookie=`${this.name}=null; expires=${this.config.expires}; path=${this.config.path}; domain=${this.config.domain}`)}}const selectors$b={open:"[data-popup-open]",close:"[data-popup-close]",dialog:"dialog",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])',newsletterForm:"[data-newsletter-form]",newsletterHeading:"[data-newsletter-heading]",newsletterField:"[data-newsletter-field]"},attributes$8={closing:"closing",delay:"data-popup-delay",scrollLock:"data-scroll-lock-required",cookieName:"data-cookie-name",cookieValue:"data-cookie-value",preventTopLayer:"data-prevent-top-layer"},classes$8={hidden:"hidden",hasValue:"has-value",cartBarVisible:"cart-bar-visible",isVisible:"is-visible",success:"has-success",mobile:"mobile",desktop:"desktop",bottom:"bottom"};class PopupComponent extends HTMLElement{constructor(){super(),this.popup=this.querySelector(selectors$b.dialog),this.preventTopLayer=this.popup.hasAttribute(attributes$8.preventTopLayer),this.enableScrollLock=this.popup.hasAttribute(attributes$8.scrollLock),this.buttonPopupOpen=this.querySelector(selectors$b.open),this.a11y=window.theme.a11y,this.isAnimating=!1,this.cookie=new PopupCookie(this.popup.getAttribute(attributes$8.cookieName),this.popup.getAttribute(attributes$8.cookieValue)),this.checkTargetReferrer(),this.checkCookie(),this.bindListeners()}checkTargetReferrer(){this.popup.hasAttribute(attributes$8.referrer)&&location.href.indexOf(this.popup.getAttribute(attributes$8.referrer))===-1&&!window.Shopify.designMode&&this.popup.parentNode.removeChild(this.popup)}checkCookie(){this.cookie&&this.cookie.read()!==!1||(this.showPopupEvents(),this.popup.addEventListener("theme:popup:onclose",()=>this.cookie.write()))}bindListeners(){this.buttonPopupOpen?.addEventListener("click",e=>{e.preventDefault(),this.popupOpen(),window.theme.a11y.lastElement=this.buttonPopupOpen}),this.popup.querySelectorAll(selectors$b.close)?.forEach(closeButton=>{closeButton.addEventListener("click",e=>{e.preventDefault(),this.popupClose()})}),this.popup.addEventListener("click",event=>{event.target.nodeName==="DIALOG"&&event.type==="click"&&this.popupClose()}),this.popup.addEventListener("keydown",event=>{event.code==="Escape"&&(event.preventDefault(),this.popupClose())}),this.popup.addEventListener("close",()=>
15this.popupCloseActions())}popupOpen(){this.isAnimating=!0,typeof this.popup.showModal=="function"&&!this.preventTopLayer?this.popup.showModal():typeof this.popup.show=="function"?this.popup.show():this.popup.setAttribute("open",""),this.popup.removeAttribute("inert"),this.popup.setAttribute("aria-hidden",!1),this.popup.focus(),this.enableScrollLock&&document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),window.theme.waitForAnimationEnd(this.popup).then(()=>{this.isAnimating=!1,this.enableScrollLock&&this.a11y.trapFocus(this.popup),(this.popup.querySelector("[autofocus]")||this.popup.querySelector(selectors$b.focusable))?.focus()})}popupClose(){if(!(this.isAnimating||this.popup.hasAttribute("inert"))){if(!this.popup.hasAttribute(attributes$8.closing)){this.popup.setAttribute(attributes$8.closing,""),this.isAnimating=!0,window.theme.waitForAnimationEnd(this.popup).then(()=>{this.isAnimating=!1,this.popupClose()});return}typeof this.popup.close=="function"?this.popup.close():(this.popup.removeAttribute("open"),this.popup.setAttribute("aria-hidden",!0)),this.popupCloseActions()}}popupCloseActions(){this.popup.hasAttribute("inert")||(this.popup.setAttribute("inert",""),this.popup.setAttribute("aria-hidden",!0),this.popup.removeAttribute(attributes$8.closing),!window.theme.hasOpenModals()&&this.enableScrollLock&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),this.popup.dispatchEvent(new CustomEvent("theme:popup:onclose",{bubbles:!1})),this.enableScrollLock&&(this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement()))}showPopupEvents(){this.popup.hasAttribute("open")&&this.popup.getAttribute("open")==!0&&this.popupOpen(),this.delay=this.popup.hasAttribute(attributes$8.delay)?this.popup.getAttribute(attributes$8.delay):null,this.isSubmitted=window.location.href.indexOf("accepts_marketing")!==-1||window.location.href.indexOf("customer_posted=true")!==-1,this.showOnScrollEvent=window.theme.throttle(this.showOnScroll.bind(this),200),(this.delay==="always"||this.isSubmitted)&&this.popupOpen(),this.delay&&this.delay.includes("delayed")&&!this.isSubmitted&&this.showDelayed(),this.delay==="bottom"&&!this.isSubmitted&&this.showOnBottomReached(),this.delay==="idle"&&!this.isSubmitted&&this.showOnIdle()}showDelayed(){const seconds=this.delay.includes("_")?parseInt(this.delay.split("_")[1]):10;setTimeout(()=>{this.popupOpen()},seconds*1e3)}showOnIdle(){let timer=0,idleTime=6e4;const documentEvents=["mousemove","mousedown","click","touchmove","touchstart","touchend","keydown","keypress"],windowEvents=["load","resize","scroll"],startTimer=()=>{timer=setTimeout(()=>{timer=0,this.popupOpen()},idleTime),documentEvents.forEach(eventType=>{document.addEventListener(eventType,resetTimer)}),windowEvents.forEach(eventType=>{window.addEventListener(eventType,resetTimer)})},resetTimer=()=>{timer&&clearTimeout(timer),documentEvents.forEach(eventType=>{document.removeEventListener(eventType,resetTimer)}),windowEvents.forEach(eventType=>{window.removeEventListener(eventType,resetTimer)}),startTimer()};startTimer()}showOnBottomReached(){document.addEventListener("theme:scroll",this.showOnScrollEvent)}showOnScroll(){window.scrollY+window.innerHeight>=document.body.clientHeight&&(this.popupOpen(),document.removeEventListener("theme:scroll",this.showOnScrollEvent))}disconnectedCallback(){document.removeEventListener("theme:scroll",this.showOnScrollEvent)}}class PopupNewsletter extends PopupComponent{constructor(){super(),this.form=this.popup.querySelector(selectors$b.newsletterForm),this.heading=this.popup.querySelector(selectors$b.newsletterHeading),this.newsletterField=this.popup.querySelector(selectors$b.newsletterField)}connectedCallback(){const cookieExists=this.cookie?.read()!==!1,submissionSuccess=window.location.search.indexOf("?customer_posted=true")!==-1,isPositionBottom=[...this.classList].toString().includes(classes$8.bottom),targetMobile=this.popup.classList.contains(classes$8.mobile),targetDesktop=this.popup.classList.contains(classes$8.desktop),isMobileView=window.theme.isMobile();let targetMatches=!0;if((targetMobile&&!isMobileView||targetDesktop&&isMobileView)&&(targetMatches=!1),!targetMatches){super.a11y.removeTrapFocus(),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}));return}(!cookieExists||window.Shopify.designMode)&&(!window.Shopify.designMode&&!window.location.pathname.endsWith("/challenge")&&super.showPopupEvents(),this.form&&this.form.classList.contains(classe
15s$8.success)&&(super.popupOpen(),this.cookie.write()),this.popup.addEventListener("theme:popup:onclose",()=>this.cookie.write())),submissionSuccess&&(this.delay=0),(!cookieExists||window.Shopify.designMode)&&(this.show(),this.form.classList.contains(classes$8.success)&&(this.popupOpen(),this.cookie.write())),isPositionBottom&&this.observeCartBar()}show(){window.location.pathname.endsWith("/challenge")||(window.Shopify.designMode?super.popupOpen():super.showPopupEvents()),this.showForm(),this.inputField(),this.popup.addEventListener("theme:popup:onclose",()=>this.cookie.write())}observeCartBar(){if(this.cartBar=document.getElementById(selectors$b.cartBar),!this.cartBar)return;const config={attributes:!0,childList:!1,subtree:!1};let isVisible=this.cartBar.classList.contains(classes$8.isVisible);document.body.classList.toggle(classes$8.cartBarVisible,isVisible);const callback=mutationList=>{for(const mutation of mutationList)mutation.type==="attributes"&&(isVisible=mutation.target.classList.contains(classes$8.isVisible),document.body.classList.toggle(classes$8.cartBarVisible,isVisible))};this.observer=new MutationObserver(callback),this.observer.observe(this.cartBar,config)}showForm(){this.heading?.addEventListener("click",event=>{event.preventDefault(),this.heading.classList.add(classes$8.hidden),this.form.classList.remove(classes$8.hidden),this.newsletterField.focus()}),this.heading?.addEventListener("keyup",event=>{event.code==="Enter"&&this.heading.dispatchEvent(new Event("click"))})}inputField(){const setClass=()=>{this.resetClassTimer&&clearTimeout(this.resetClassTimer),this.newsletterField.value!==""&&this.popup.classList.add(classes$8.hasValue)},unsetClass=()=>{this.resetClassTimer&&clearTimeout(this.resetClassTimer),this.resetClassTimer=setTimeout(()=>{this.popup.classList.remove(classes$8.hasValue)},2e3)};this.newsletterField.addEventListener("input",setClass),this.newsletterField.addEventListener("focus",setClass),this.newsletterField.addEventListener("focusout",unsetClass)}disconnectedCallback(){this.observer&&this.observer.disconnect()}}customElements.get("popup-component")||customElements.define("popup-component",PopupComponent),customElements.get("popup-newsletter")||customElements.define("popup-newsletter",PopupNewsletter);const selectors$a={allVisibleElements:'[role="option"]',ariaSelected:'[aria-selected="true"]',popularSearches:"[data-popular-searches]",predictiveSearch:"predictive-search",predictiveSearchResults:"[data-predictive-search-results]",predictiveSearchStatus:"[data-predictive-search-status]",searchInput:'input[type="search"]',searchPopdown:"[data-popdown]",searchResultsLiveRegion:"[data-predictive-search-live-region-count-value]",searchResultsGroupsWrapper:"[data-search-results-groups-wrapper]",searchForText:"[data-predictive-search-search-for-text]",sectionPredictiveSearch:"#shopify-section-predictive-search",selectedLink:'[aria-selected="true"] a',selectedOption:'[aria-selected="true"] a, button[aria-selected="true"]'};customElements.get("predictive-search")||customElements.define("predictive-search",class extends HeaderSearchForm{constructor(){super(),this.a11y=window.theme.a11y,this.abortController=new AbortController,this.allPredictiveSearchInstances=document.querySelectorAll(selectors$a.predictiveSearch),this.cachedResults={},this.input=this.querySelector(selectors$a.searchInput),this.isOpen=!1,this.predictiveSearchResults=this.querySelector(selectors$a.predictiveSearchResults),this.searchPopdown=this.closest(selectors$a.searchPopdown),this.popularSearches=this.searchPopdown?.querySelector(selectors$a.popularSearches),this.searchTerm=""}connectedCallback(){this.input.addEventListener("focus",this.onFocus.bind(this)),this.input.form.addEventListener("submit",this.onFormSubmit.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.addEventListener("keyup",this.onKeyup.bind(this)),this.addEventListener("keydown",this.onKeydown.bind(this))}getQuery(){return this.input.value.trim()}onChange(){super.onChange();const newSearchTerm=this.getQuery();if((!this.searchTerm||!newSearchTerm.startsWith(this.searchTerm))&&this.querySelector(selectors$a.searchResultsGroupsWrapper)?.remove(),this.updateSearchForTerm(this.searchTerm,newSearchTerm),this.searchTerm=newSearchTerm,!this.searchTerm.length){this.reset();return}this.getSearchResults(this.searchTerm)}onFormSubmit(event){(!this.getQuery().length||this.querySelector(selectors$a.selectedLink))&&event.preventDefault()}onFormReset(event){super.onFormReset(event),super.shouldResetForm()&&(this.searchTerm="",this.abortController.abort(),this.abortController=new AbortController,this.closeResults(!0))}shouldResetForm(){return!document.querySelector(selectors$a.selectedLink)}onFocus(){const currentSearchTerm=this.getQuery();currentSearchTerm.length&&(this.searchTerm!==currentSearchTerm?this.onChange():this.getAttribute("results")==="true"?this.open():this.getSearchResults(this.searchTerm))}onFocusOut(){setTimeout(()=>{this.contains(document.activeElement)||this.close()})}onKeyup(event){switch(this.getQuery().length||this.close(!0),event.preventDefault(),event.code){case"ArrowUp":this.switchOption("up");break;case"ArrowDown":this.switchOption("down");break;case"Enter":this.selectOption();break}}onKeydown(event){(event.code==="ArrowUp"||event.code==="ArrowDown")&&event.preventDefault()}updateSearchForTerm(previousTerm,newTerm){const searchForTextElement=this.querySelector(selectors$a.searchForText),currentButtonText=searchForTextElement?.innerText;if(currentButtonText){if(currentButtonText.match(new RegExp(previousTerm,"g"))?.length>1)return;const newButtonText=currentButtonText.replace(previousTerm,newTerm);searchForTextElement.innerText=newButtonText}}switchOption(direction){if(!this.getAttribute("open"))return;const moveUp=direction==="up",selectedElement=this.querySelector(selectors$a.ariaSelected),allVisibleElements=Array.from(this.querySelectorAll(selectors$a.allVisibleElements)).filter(element=>element.offsetParent!==null);let activeElementIndex=0;if(moveUp&&!selectedElement)return;let selectedElementIndex=-1,i=0;for(;selectedElementIndex===-1&&i<=allVisibleElements.length;)allVisibleElements[i]===selectedElement&&(selectedElementIndex=i),i++;if(this.statusElement.textContent="",!moveUp&&selectedElement?activeElementIndex=selectedElementIndex===allVisibleElements.length-1?0:selectedElementIndex+1:moveUp&&(activeElementIndex=selectedElementIndex===0?allVisibleElements.length-1:selectedElementIndex-1),activeElementIndex===selectedElementIndex)return;const activeElement=allVisibleElements[activeElementIndex];activeElement.setAttribute("aria-selected",!0),selectedElement&&selectedElement.setAttribute("aria-selected",!1),this.input.setAttribute("aria-activedescendant",activeElement.id)}selectOption(){const selectedOption=this.querySelector(selectors$a.selectedOption);selectedOption&&selectedOption.click()}getSearchResults(searchTerm){const queryKey=searchTerm.replace(" ","-").toLowerCase();if(this.setLiveRegionLoadingState(),this.cachedResults[queryKey]){this.renderSearchResults(this.cachedResults[queryKey]);return}fetch(`${theme.routes.predictive_search_url}?q=${encodeURIComponent(searchTerm)}§ion_id=predictive-search`,{signal:this.abortController.signal}).then(response=>{if(!response.ok){var error=new Error(response.status);throw this.close(),error}return response.text()}).then(text=>{const resultsMarkup=new DOMParser().parseFromString(text,"text/html").querySelector(selectors$a.sectionPredictiveSearch).innerHTML;
15this.allPredictiveSearchInstances.forEach(predictiveSearchInstance=>{predictiveSearchInstance.cachedResults[queryKey]=resultsMarkup}),this.renderSearchResults(resultsMarkup)}).catch(error=>{if(error?.code!==20)throw this.close(),error})}setLiveRegionLoadingState(){this.statusElement=this.statusElement||this.querySelector(selectors$a.predictiveSearchStatus),this.loadingText=this.loadingText||this.getAttribute("data-loading-text"),this.setLiveRegionText(this.loadingText),this.setAttribute("loading",!0)}setLiveRegionText(statusText){this.statusElement.setAttribute("aria-hidden","false"),this.statusElement.textContent=statusText,setTimeout(()=>{this.statusElement.setAttribute("aria-hidden","true")},1e3)}renderSearchResults(resultsMarkup){this.predictiveSearchResults.innerHTML=resultsMarkup,this.setAttribute("results",!0),this.setLiveRegionResults(),this.open()}setLiveRegionResults(){this.removeAttribute("loading"),this.setLiveRegionText(this.querySelector(selectors$a.searchResultsLiveRegion).textContent)}open(){this.setAttribute("open",!0),this.input.setAttribute("aria-expanded",!0),this.isOpen=!0,this.predictiveSearchResults.style.setProperty("--results-height",`${window.visualViewport.height-this.predictiveSearchResults.getBoundingClientRect().top}px`)}close(clearSearchTerm=!1){this.closeResults(clearSearchTerm),this.isOpen=!1,this.predictiveSearchResults.style.removeProperty("--results-height")}closeResults(clearSearchTerm=!1){clearSearchTerm&&(this.input.value="",this.removeAttribute("results"));const selected=this.querySelector(selectors$a.ariaSelected);selected&&selected.setAttribute("aria-selected",!1),this.input.setAttribute("aria-activedescendant",""),this.removeAttribute("loading"),this.removeAttribute("open"),this.input.setAttribute("aria-expanded",!1),this.predictiveSearchResults?.removeAttribute("style")}reset(){this.predictiveSearchResults.innerHTML="",this.input.val="",this.a11y.removeTrapFocus(),this.popularSearches&&(this.input.dispatchEvent(new Event("blur",{bubbles:!1})),this.a11y.trapFocus(this.searchPopdown,{elementToFocus:this.input}))}}),customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.variantIdInput.disabled=!1,this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.cart=document.querySelector("cart-drawer"),this.submitButton=this.querySelector('[type="submit"]'),this.submitButtonText=this.submitButton.querySelector("[data-add-to-cart-text]"),document.querySelector("cart-drawer")&&this.submitButton.setAttribute("aria-haspopup","dialog"),this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(evt){evt.preventDefault(),document.dispatchEvent(new CustomEvent("theme:cart:add",{detail:{button:this.submitButton},bubbles:!1})),this.closest("quick-add-modal")||(window.a11y.lastElement=this.submitButton)}toggleSubmitButton(disable=!0,text=window.theme.strings.addToCart){this.submitButton.toggleAttribute("disabled",disable);const existingPriceElement=this.submitButtonText.querySelector("[data-product-price]");if(existingPriceElement){const priceHTML=existingPriceElement.outerHTML;this.submitButtonText.textContent=text,this.submitButtonText.insertAdjacentHTML("beforeend",` ${priceHTML}`)}else this.submitButtonText.textContent=text}get variantIdInput(){return this.form.querySelector("[name=id]")}});function fetchProduct(handle){const requestRoute=`${window.theme.routes.root}products/${handle}.js`;return window.fetch(requestRoute).then(response=>response.json()).catch(e=>{console.error(e)})}const selectors$9={gridSwatchFieldset:"[data-grid-swatch-fieldset]",productItem:"[data-grid-item]",productInfo:"[data-product-information]",productImage:"[data-product-image]",swatchButton:"[data-swatch-button]"},classes$7={visible:"is-visible",stopEvents:"no-events"},attributes$7={handle:"data-swatch-handle",label:"data-swatch-label",swatchCount:"data-swatch-count",variantName:"data-swatch-variant-name",variantTitle:"data-variant-title"};class GridSwatch extends HTMLElement{constructor(){super(),this.productItemMouseLeaveEvent=()=>this.hideVariantImages(),this.showVariantImageEvent=swatchButton=>this.showVariantImage(swatchButton),this.resizeEvent=()=>this.init()}connectedCallback(){this.handle=this.getAttribute(attributes$7.handle),this.productItem=this.closest(selectors$9.productItem),this.productInfo=this.closest(selectors$9.productInfo),this.productImage=this.productItem.querySelector(selectors$9.productImage),this.swatchesStyle=theme.settings.collectionSwatchStyle,document.addEventListener("theme:resize:width",this.resizeEvent);const label=this.getAttribute(attributes$7.label).trim().toLowerCase();fetchProduct(this.handle).then(product=>{this.product=product,this.colorOption=product.options.find(function(element){return element.name.toLowerCase()===label||null}),this.colorOption&&this.init()})}init(){if(this.swatchCount=this.productInfo.querySelector(`[${attributes$7.swatchCount}]`),this.swatchFieldset=this.productInfo.querySelector(selectors$9.gridSwatchFieldset),this.hideSwatchesTimer=0,this.swatchCount.hasAttribute(attributes$7.swatchCount)){if(this.swatchesStyle=="text"||this.swatchesStyle=="text-slider"){if(this.swatchesStyle=="text")return;this.swatchCount.addEventListener("mouseenter",()=>{this.hideSwatchesTimer&&clearTimeout(this.hideSwatchesTimer),this.productInfo.classList.add(classes$7.stopEvents),this.swatchFieldset.classList.add(classes$7.visible)}),this.productInfo.addEventListener("mouseleave",()=>{this.hideSwatchesTimer=setTimeout(()=>{this.productInfo.classList.remove(classes$7.stopEvents),this.swatchFieldset.classList.remove(classes$7.visible)},100)})}(this.collectionSwatchesStyle=="slider"||this.collectionSwatchesStyle=="grid")&&this.swatchFieldset.classList.add(classes$7.visible),this.swatchesStyle=="limited"&&this.swatchFieldset.classList.add(classes$7.visible)}this.bindSwatchButtonEvents()}bindSwatchButtonEvents(){this.querySelectorAll(selectors$9.swatchButton)?.forEach(swatchButton=>{swatchButton.addEventListener("mouseenter",this.showVariantImageEvent)}),this.productItem.addEventListener("mouseleave",this.productItemMouseLeaveEvent)}showVariantImage(event){const variantName=event.target.getAttribute(attributes$7.variantName)?.replaceAll('"',"'"),variantImages=this.productImage.querySelectorAll(`[${attributes$7.variantTitle}]`),variantImageSelected=this.productImage.querySelector(`[${attributes$7.variantTitle}="${variantName}"]`);variantImages?.forEach(image=>{image.classList.remove(classes$7.visible)}),variantImageSelected?.classList.add(classes$7.visible)}hideVariantImages(){this.productImage.querySelectorAll(`[${attributes$7.variantTitle}].${classes$7.visible}`)?.forEach(image=>{image.classList.remove(classes$7.visible)})}disconnectedCallback(){document.removeEventListener("theme:resize:width",this.resizeEvent)}}const selectors$8={flickityButton:".flickity-prev-next-button",productLink:"[data-product-link]",slide:"[data-hover-slide]",slideTouch:"[data-hover-slide-touch]",slider:"[data-hover-slider]",recentlyViewed:"recently-viewed",video:"video",vimeo:'[data-host="vimeo"]',youtube:'[data-host="youtube"]'};class HoverImages extends HTMLElement{constructor(){super(),this.flkty=null,this.slider=this.querySelector(selectors$8.slider),this.handleScroll=this.handleScroll.bind(this),this.recentlyViewed=this.closest(selectors$8.recentlyViewed),this.hovered=!1,this.fade=this.classList.contains("hover-images--fade"),this.fadeSlides=Array.from(this.querySelectorAll(selectors$8.slide)),this.fadeIndex=0,this.fadePrev=this.fadePrev.bind(this),this.fadeNext=this.fadeNext.bind(this),this.mouseEnterEvent=()=>this.mouseEnterActions(),this.mouseLeaveEvent=()=>this.mouseLeaveActions(),this.addEventListener("mouseenter",this.mouseEnterEvent),this.addEventListener("mouseleave",this.mouseLeaveEvent)}connectedCallback(){this.addArrowClickHandler(),this.recentlyViewed?this.recentlyViewed.addEventListener("theme:recently-viewed:loaded",()=>{this.initBasedOnDevice()}):this.initBasedOnDevice(),this.fade&&!window.theme.touch&&this.addFadeHandlers()}disconnectedCallback(){this.flkty&&(this.flkty.options.watchCSS=!1,this.flkty.destroy(),this.flkty=null),this.removeEventListener("mouseenter",this.mouseEnterEvent),this.removeEventListener("mouseleave",this.mouseLeaveEvent),this.removeFadeHandlers()}initBasedOnDevice(){window.theme.touch?this.initTouch():this.fade||this.initFlickity()}addArrowClickHandler(){const productLink=this.closest(selectors$8.productLink);productLink&&productLink.addEventListener("click",e=>{(e.target.matches(selectors$8.flickityButton)||e.target.closest(".hover-images__arrow"))&&e.preventDefault()})}addFadeHandlers(){this.fadeSlides=Array.from(this.querySelectorAll(selectors$8.slide)),this.fadePrevButton=this.querySelector(".hover-images__arrow--prev"),this.fadeNextButton=this.querySelector(".hover-images__arrow--next"),this.fadeSlides.forEac
15h((slide,index)=>{slide.classList.toggle("is-active",index===this.fadeIndex)}),this.fadePrevButton?.addEventListener("click",this.fadePrev),this.fadeNextButton?.addEventListener("click",this.fadeNext),this.updateFadeArrows()}removeFadeHandlers(){this.fadePrevButton?.removeEventListener("click",this.fadePrev),this.fadeNextButton?.removeEventListener("click",this.fadeNext)}updateFadeArrows(){!this.fadePrevButton||!this.fadeNextButton||(this.fadePrevButton.disabled=this.fadeIndex<=0,this.fadeNextButton.disabled=this.fadeIndex>=this.fadeSlides.length-1)}fadePrev(){this.fadeIndex<=0||(this.fadeSlides[this.fadeIndex]?.classList.remove("is-active"),this.fadeIndex-=1,this.fadeSlides[this.fadeIndex]?.classList.add("is-active"),this.updateFadeArrows())}fadeNext(){this.fadeIndex>=this.fadeSlides.length-1||(this.fadeSlides[this.fadeIndex]?.classList.remove("is-active"),this.fadeIndex+=1,this.fadeSlides[this.fadeIndex]?.classList.add("is-active"),this.updateFadeArrows())}initTouch(){this.style.setProperty("--slides-count",this.querySelectorAll(selectors$8.slideTouch).length),this.slider.addEventListener("scroll",this.handleScroll)}handleScroll(){const slideIndex=this.slider.scrollLeft/this.slider.clientWidth;this.style.setProperty("--slider-index",slideIndex)}initFlickity(){this.flkty||!this.slider||this.slider.classList.contains("flickity-enabled")||this.querySelectorAll(selectors$8.slide).length<2||(this.flkty=new window.theme.Flickity(this.slider,{cellSelector:selectors$8.slide,contain:!0,wrapAround:!1,watchCSS:!0,autoPlay:!1,draggable:!1,pageDots:!1,prevNextButtons:!0}),this.flkty.pausePlayer(),this.addEventListener("mouseenter",()=>{this.flkty.unpausePlayer()}),this.addEventListener("mouseleave",()=>{this.flkty.pausePlayer()}))}mouseEnterActions(){this.hovered=!0,this.videoActions()}mouseLeaveActions(){this.hovered=!1,this.videoActions()}videoActions(){const youtube=this.querySelector(selectors$8.youtube),vimeo=this.querySelector(selectors$8.vimeo),mediaExternal=youtube||vimeo,mediaNative=this.querySelector(selectors$8.video);if(mediaExternal){let action=this.hovered?"playVideo":"pauseVideo",string=`{"event":"command","func":"${action}","args":""}`;vimeo&&(action=this.hovered?"play":"pause",string=`{"method":"${action}"}`),mediaExternal.contentWindow.postMessage(string,"*"),mediaExternal.addEventListener("load",e=>{this.videoActions()})}else mediaNative&&(this.hovered?mediaNative.play():mediaNative.pause())}}const classes$6={added:"is-added",animated:"is-animated",disabled:"is-disabled",error:"has-error",loading:"is-loading",open:"is-open",overlayText:"product-item--overlay-text",visible:"is-visible",siblingLinkCurrent:"sibling__link--current"},selectors$7={animation:"[data-animation]",apiContent:"[data-api-content]",buttonQuickAdd:"[data-quick-add-btn]",buttonAddToCart:"[data-add-to-cart]",cartDrawer:"cart-drawer",cartPage:"[data-cart-page]",cartLineItems:"[data-line-items]",dialog:"dialog",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])',messageError:"[data-message-error]",modalButton:"[data-quick-add-modal-handle]",modalContent:"[data-product-upsell-ajax]",modalClose:"[data-quick-add-modal-close]",productGridItem:"data-grid-item",productInformationHolder:"[data-product-information]",quickAddHolder:"[data-quick-add-holder]",quickAddModal:"[data-quick-add-modal]",quickAddModalTemplate:"[data-quick-add-modal-template]",tooltip:"[data-tooltip]"},attributes$6={closing:"closing",productId:"data-product-id",modalHandle:"data-quick-add-modal-handle",siblingSwapper:"data-sibling-swapper",quickAddHolder:"data-quick-add-holder"};class QuickAddProduct extends HTMLElement{constructor(){super(),this.quickAddHolder=this.querySelector(selectors$7.quickAddHolder),this.quickAddHolder&&(this.modal=null,this.currentModal=null,this.productId=this.quickAddHolder.getAttribute(attributes$6.quickAddHolder),this.modalButton=this.quickAddHolder.querySelector(selectors$7.modalButton),this.handle=this.modalButton?.getAttribute(attributes$6.modalHandle),this.buttonQuickAdd=this.quickAddHolder.querySelector(selectors$7.buttonQuickAdd),this.buttonATC=this.quickAddHolder.querySelector(selectors$7.buttonAddToCart),this.button=this.modalButton||this.buttonATC,this.modalClose=this.modalClose.bind(this),this.modalCloseOnProductAdded=this.modalCloseOnProductAdded.bind(this),this.a11y=window.theme.a11y,this.isAnimating=!1,this.modalButtonClickEvent=this.modalButtonClickEvent.bind(this),this.quickAddLoadingToggle=this.quickAddLoadingToggle.bind(this))}connectedCallback(){this.modalButton&&this.modalButton.addEventListener("click",this.modalButtonClickEvent),this.buttonATC&&this.buttonATC.addEventListener("click",e=>{e.preventDefault(),window.a11y.lastElement=this.buttonATC,document.dispatchEvent(new CustomEvent("theme:cart:add",{detail:{button:this.buttonATC}}))}),this.quickAddHolder&&(this.quickAddHolder.addEventListener("animationend",this.quickAddLoadingToggle),this.errorHandler())}modalButtonClickEvent(e){e.preventDefault();const isSiblingSwapper=this.modalButton.hasAttribute(attributes$6.siblingSwapper),isSiblingLinkCurrent=this.modalButton.classList.contains(classe
15s$6.siblingLinkCurrent);isSiblingLinkCurrent||(this.modalButton.classList.add(classes$6.loading),this.modalButton.disabled=!0,isSiblingSwapper&&!isSiblingLinkCurrent&&(this.currentModal=e.target.closest(selectors$7.quickAddModal),this.currentModal.classList.add(classes$6.loading)),this.renderModal())}modalCreate(response){const modalTemplate=this.quickAddHolder.querySelector(selectors$7.quickAddModalTemplate);if(!modalTemplate)return;const htmlObject=document.createElement("div");htmlObject.innerHTML=modalTemplate.innerHTML,document.body.appendChild(htmlObject.querySelector(selectors$7.quickAddModal)),this.modal=document.querySelector(`${selectors$7.quickAddModal}[${attributes$6.productId}="${this.productId}"]`),this.modal.querySelector(selectors$7.modalContent).innerHTML=new DOMParser().parseFromString(response,"text/html").querySelector(selectors$7.apiContent).innerHTML,this.modalCreatedCallback()}modalOpen(){this.currentModal&&this.currentModal.dispatchEvent(new CustomEvent("theme:modal:close",{bubbles:!1})),typeof this.modal.show=="function"&&this.modal.show(),this.modal.setAttribute("open",!0),this.modal.removeAttribute("inert"),this.quickAddHolder.classList.add(classes$6.disabled),this.modalButton&&(this.modalButton.classList.remove(classes$6.loading),this.modalButton.disabled=!1,window.a11y.lastElement=this.modalButton),requestAnimationFrame(()=>{this.modal.querySelectorAll(selectors$7.animation).forEach(item=>{item.classList.add(classes$6.animated)})}),document.dispatchEvent(new CustomEvent("theme:quick-add:open",{bubbles:!0})),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),document.addEventListener("theme:product:added",this.modalCloseOnProductAdded,{once:!0})}modalClose(){if(!this.isAnimating){if(!this.modal.hasAttribute(attributes$6.closing)){this.modal.setAttribute(attributes$6.closing,""),this.isAnimating=!0;return}typeof this.modal.close=="function"?this.modal.close():this.modal.removeAttribute("open"),this.modal.removeAttribute(attributes$6.closing),this.modal.setAttribute("inert",""),this.modal.classList.remove(classes$6.loading),this.modalButton&&(this.modalButton.disabled=!1),this.quickAddHolder&&this.quickAddHolder.classList.contains(classes$6.disabled)&&this.quickAddHolder.classList.remove(classes$6.disabled),this.resetAnimatedItems(),document.dispatchEvent(new CustomEvent("theme:tooltip:close",{bubbles:!0,detail:{hideTransition:!0,immediate:!0}})),window.theme.hasOpenModals()||document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),document.removeEventListener("theme:product:added",this.modalCloseOnProductAdded),this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement(),this.modalRemove()}}modalRemove(){window.theme.waitForAllAnimationsEnd(this.modal).then(()=>{this.modal?.remove()}).catch(()=>{this.modal?.remove()})}modalEvents(){this.modal.querySelector(selectors$7.modalClose)?.addEventListener("click",e=>{e.preventDefault(),this.modalClose()}),this.modal.addEventListener("click",event=>{event.target.nodeName==="DIALOG"&&event.type==="click"&&this.modalClose()}),this.modal.addEventListener("keydown",event=>{event.code=="Escape"&&(event.preventDefault(),this.modalClose())}),this.modal.addEventListener("theme:modal:close",()=>{this.modalClose()}),this.modal.addEventListener("animationend",event=>{event.target===this.modal&&(this.isAnimating=!1,this.modal.hasAttribute(attributes$6.closing)?this.modalClose():setTimeout(()=>{this.a11y.trapFocus(this.modal),(this.modal.querySelector("[autofocus]")||this.modal.querySelector(selectors$7.focusable))?.focus()},50))})}modalCloseOnProductAdded(){this.resetQuickAddButtons(),this.modal&&this.modal.hasAttribute("open")&&this.modalClose()}quickAddLoadingToggle(e){e.target==this.quickAddHolder&&this.quickAddHolder.classList.remove(classes$6.disabled)}errorHandler(){this.quickAddHolder.addEventListener("theme:cart:error",event=>{const holder=event.detail.holder,parentProduct=holder.closest(`[${selectors$7.productGridItem}]`);if(!parentProduct)return;const errorMessageHolder=holder.querySelector(selectors$7.messageError),hasOverlayText=parentProduct.classList.contains(classe
15s$6.overlayText),productInfo=parentProduct.querySelector(selectors$7.productInformationHolder),button=holder.querySelector(selectors$7.buttonAddToCart);if(button){button.classList.remove(classes$6.added,classes$6.loading),holder.classList.add(classes$6.error);const removeErrorClass=()=>{this.resetQuickAddButtons(),hasOverlayText&&productInfo.classList.remove(classes$6.hidden),holder.removeEventListener("animationend",removeErrorClass)};holder.addEventListener("animationend",removeErrorClass)}errorMessageHolder&&(errorMessageHolder.innerText=event.detail.description),hasOverlayText&&productInfo.classList.add(classes$6.hidden)})}resetQuickAddButtons(){this.quickAddHolder&&this.quickAddHolder.classList.remove(classes$6.visible,classes$6.error),this.buttonQuickAdd&&(this.buttonQuickAdd.classList.remove(classes$6.added),this.buttonQuickAdd.disabled=!1)}renderModal(){window.fetch(`${window.theme.routes.root}products/${this.handle}?section_id=api-product-upsell`).then(this.upsellErrorsHandler).then(response=>response.text()).then(response=>{this.modalCreate(response)})}modalCreatedCallback(){this.modalEvents(),this.modalOpen(),wrapElements(this.modal)}upsellErrorsHandler(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}resetAnimatedItems(){this.modal?.querySelectorAll(selectors$7.animation).forEach(item=>{item.classList.remove(classes$6.animated)})}}customElements.get("quick-add-product")||customElements.define("quick-add-product",QuickAddProduct),customElements.get("grid-swatch")||customElements.define("grid-swatch",GridSwatch),customElements.get("hover-images")||customElements.define("hover-images",HoverImages);const selectors$6={buttonArrow:"[data-button-arrow]",deferredMediaButton:"[data-deferred-media-button]",focusedElement:"model-viewer, video, iframe, button, [href], input, [tabindex]",productMedia:"[data-image-id]",productMediaList:"[data-product-media-list]",section:"[data-section-id]"},classes$5={arrows:"slider__arrows",dragging:"is-dragging",hidden:"hidden",isFocused:"is-focused",mediaActive:"media--active",mediaHidden:"media--hidden",mediaHiding:"media--hiding"},attributes$5={activeMedia:"data-active-media",buttonPrev:"data-button-prev",buttonNext:"data-button-next",imageId:"data-image-id",mediaId:"data-media-id",type:"data-type",faderDesktop:"data-fader-desktop",faderMobile:"data-fader-mobile"};customElements.get("product-images")||customElements.define("product-images",class extends HTMLElement{constructor(){super(),this.initialized=!1,this.buttons=!1,this.isDown=!1,this.startX=0,this.startY=0,this.scrollLeft=0,this.onButtonArrowClick=e=>this.buttonArrowClickEvent(e),this.container=this.closest(selectors$6.section),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleKeyUp=this.handleKeyUp.bind(this),this.productMediaItems=this.querySelectorAll(selectors$6.productMedia),this.productMediaList=this.querySelector(selectors$6.productMediaList),this.setHeight=this.setHeight.bind(this),this.toggleEvents=this.toggleEvents.bind(this),this.selectMediaEvent=e=>this.showMediaOnVariantSelect(e)}connectedCallback(){Object.keys(this.productMediaItems).length<2||(this.productMediaObserver(),this.toggleEvents(),this.listen(),this.setHeight())}disconnectedCallback(){this.unlisten()}listen(){document.addEventListener("theme:resize:width",this.toggleEvents),document.addEventListener("theme:resize:width",this.setHeight),this.addEventListener("theme:media:select",this.selectMediaEvent)}unlisten(){document.removeEventListener("theme:resize:width",this.toggleEvents),document.removeEventListener("theme:resize:width",this.setHeight),this.removeEventListener("theme:media:select",this.selectMediaEvent)}toggleEvents(){const isMobileView=window.theme.isMobile();isMobileView&&this.hasAttribute(attributes$5.faderMobile)||!isMobileView&&this.hasAttribute(attributes$5.faderDesktop)?this.bindEventListeners():this.unbindEventListeners()}bindEventListeners(){this.initialized||(this.productMediaList.addEventListener("mousedown",this.handleMouseDown),this.productMediaList.addEventListener("mouseleave",this.handleMouseLeave),this.productMediaList.addEventListener("mouseup",this.handleMouseUp),this.productMediaList.addEventListener("mousemove",this.handleMouseMove),this.productMediaList.addEventListener("touchstart",this.handleMouseDown,{passive:!0}),this.productMediaList.addEventListener("touchend",this.handleMouseUp,{passive:!0}),this.productMediaList.addEventListener("touchmove",this.handleMouseMove,{passive:!0}),this.productMediaList.addEventListener("keyup",this.handleKeyUp),this.initArrows(),this.resetScrollPosition(),this.initialized=!0)}unbindEventListeners(){this.initialized&&(this.productMediaList.removeEventListener("mousedown",this.handleMouseDown),this.productMediaList.removeEventListener("mouseleave",this.handleMouseLeave),this.productMediaList.removeEventListener("mouseup",this.handleMouseUp),this.productMediaList.removeEventListener("mousemove",this.handleMouseMove),this.productMediaList.removeEventListener("touchstart",this.handleMouseDown),this.productMediaList.removeEventListener("touchend",this.handleMouseUp),this.productMediaList.removeEventListener("touchmove",this.handleMouseMove),this.productMediaList.removeEventListener("keyup",this.handleKeyUp),this.removeArrows(),this.initialized=!1)}handleMouseDown(e){this.isDown=!0,this.startX=(e.pageX||e.changedTouches[0].screenX)-this.offsetLeft,this.startY=(e.pageY||e.changedTouches[0].screenY)-this.offsetTop}handleMouseLeave(){this.isDown&&(this.isDown=!1)}handleMouseUp(e){const x=(e.pageX||e.changedTouches[0].screenX)-this.offsetLeft,y=(e.pageY||e.changedTouches[0].screenY)-this.offsetTop,distanceX=x-this.startX,distanceY=y-this.startY,direction=distanceX>0?1:-1,isImage=this.getCurrentMedia().hasAttribute(attributes$5.type)&&this.getCurrentMedia().getAttribute(attributes$5.type)==="image";Math.abs(distanceX)>10&&Math.abs(distanceX)>Math.abs(distanceY)&&isImage&&(direction<0?this.showNextImage():this.showPreviousImage()),this.isDown=!1,requestAnimationFrame(()=>{this.classList.remove(classes$5.dragging)})}handleMouseMove(){this.isDown&&this.classList.add(classes$5.dragging)}handleKeyUp(e){e.code==="ArrowLeft"&&this.showPreviousImage(),e.code==="ArrowRight"&&this.showNextImage()}handleArrowsClickEvent(){this.querySelectorAll(selectors$6.buttonArrow)?.forEach(button=>{button.addEventListener("click",e=>{e.preventDefault(),e.target.hasAttribute(attributes$5.buttonPrev)&&this.showPreviousImage(),e.target.hasAttribute(attributes$5.buttonNext)&&this.showNextImage()})})}resetScrollPosition(){this.productMediaList.scrollLeft!==0&&(this.productMediaList.scrollLeft=0)}initArrows(){if(!this.buttons.length){const buttonsWrap=document.createElement("div");buttonsWrap.classList.add(classes$5.arrows),buttonsWrap.innerHTML=theme.sliderArrows.prev+theme.sliderArrows.next,this.productMediaList.append(buttonsWrap),this.buttons=this.querySelectorAll(selectors$6.buttonArrow),this.buttonPrev=this.querySelector(`[${attributes$5.buttonPrev}]`),this.buttonNext=this.querySelector(`[${attributes$5.buttonNext}]`)}this.handleArrowsClickEvent(),this.preloadImageOnArrowHover()}removeArrows(){this.querySelector(`.${classes$5.arrows}`)?.remove()}preloadImageOnArrowHover(){this.buttonPrev?.addEventListener("mouseover",()=>{const id=this.getPreviousMediaId();this.preloadImage(id)}),this.buttonNext?.addEventListener("mouseover",()=>{const id=this.getNextMediaId();this.preloadImage(id)})}preloadImage(id){this.querySelector(`[${attributes$5.mediaId}="${id}"] img`)?.setAttribute("loading","eager")}showMediaOnVariantSelect(e){const id=e.detail.id;this.setActiveMedia(id)}getCurrentMedia(){return this.querySelector(`${selectors$6.productMedia}.${classes$5.mediaActive}`)}getNextMediaId(){const currentMedia=this.getCurrentMedia();return(currentMedia?.nextElementSibling.hasAttribute(attributes$5.imageId)?currentMedia?.nextElementSibling:this.querySelector(selectors$6.productMedia))?.getAttribute(attributes$5.mediaId)}getPreviousMediaId(){const currentMedia=this.getCurrentMedia(),lastIndex=this.productMediaItems.length-1;return(currentMedia?.previousElementSibling||this.productMediaItems[lastIndex])?.getAttribute(attributes$5.mediaId)}showNextImage(){const id=this.getNextMediaId();this.selectMedia(id)}showPreviousImage(){const id=this.getPreviousMediaId();this.selectMedia(id)}selectMedia(id){this.dispatchEvent(new CustomEvent("theme:media:select",{detail:{id}}))}setActiveMedia(id){if(!id)return;this.setAttribute(attributes$5.activeMedia,id);const activeImage=this.querySelector(`${selectors$6.productMedia}.${classes$5.mediaActive}`),selectedImage=this.querySelector(`[${attributes$5.mediaId}="${id}"]`),selectedImageFocus=selectedImage?.querySelector(selectors$6.focusedElement),deferredMedia=selectedImage.querySelector("deferred-media");activeImage?.classList.add(classes$5.mediaHiding),activeImage?.classList.remove(classes$5.mediaActive),selectedImage?.classList.remove(classes$5.mediaHiding,classes$5.mediaHidden),selectedImage?.classList.add(classes$5.mediaActive),deferredMedia&&deferredMedia.getAttribute("loaded")!==!0&&selectedImage.querySelector(selectors$6.deferredMediaButton)?.dispatchEvent(new Event("click",{bubbles:!1})),requestAnimationFrame(()=>
15{this.setHeight(),document.body.classList.contains(classes$5.isFocused)&&selectedImageFocus?.focus()})}setHeight(){const mediaHeight=this.querySelector(`${selectors$6.productMedia}.${classes$5.mediaActive}`)?.offsetHeight||this.productMediaItems[0]?.offsetHeight;this.style.setProperty("--height",`${mediaHeight}px`)}productMediaObserver(){this.productMediaItems.forEach(media=>{media.addEventListener("transitionend",e=>{e.target==media&&media.classList.contains(classes$5.mediaHiding)&&(media.classList.remove(classes$5.mediaHiding),media.classList.add(classes$5.mediaHidden))}),media.addEventListener("transitioncancel",e=>{e.target==media&&media.classList.contains(classes$5.mediaHiding)&&(media.classList.remove(classes$5.mediaHiding),media.classList.add(classes$5.mediaHidden))})})}});const selectors$5={swapHandle:"[data-swap-handle]",nativeScrollbar:"native-scrollbar",activeSibling:".sibling__link--current"},attributes$4={swapHandle:"data-swap-handle",swapUrl:"data-swap-url"};customElements.get("product-item")||customElements.define("product-item",class extends HTMLElement{abortController=void 0;pendingSwapHandle=null;postProcessHtmlCallbacks=[];handleClick=event=>this.handleChange(event);handleKeyup=event=>{(event.code===theme.keyboardKeys.ENTER||event.code===theme.keyboardKeys.NUMPADENTER)&&this.handleChange(event)};onHtmlChange=event=>this.handleHtmlChange(event);constructor(){super(),this.swapHandles=this.querySelectorAll(selectors$5.swapHandle),this.activeSibling=[...this.swapHandles].find(el=>el.querySelector(selectors$5.activeSibling))}connectedCallback(){this.scrollIntoView(),this.swapHandles?.forEach(element=>{element.addEventListener("click",this.handleClick),element.addEventListener("keyup",this.handleKeyup)}),this.initProductSwapUtility()}disconnectedCallback(){this.abortController?.abort(),this.swapHandles?.forEach(element=>{element.removeEventListener("click",this.handleClick),element.removeEventListener("keyup",this.handleKeyup)})}initProductSwapUtility(){this.postProcessHtmlCallbacks.push(()=>{document.addEventListener("theme:html:change",this.onHtmlChange)})}handleChange(event){if(!this.contains(event.target))return;const element=event.target.closest(selectors$5.swapHandle),targetUrl=element.dataset.swapUrl,productUrl=`${window.Shopify.routes.root}products/${element.dataset.swapHandle}`;this.pendingSwapHandle=element.dataset.swapHandle,this.dataset.url!==targetUrl&&this.renderProductItem({requestUrl:`${productUrl}?section_id=api-product-grid-item`,callback:this.handleSwapProduct()})}handleSwapProduct(){return html=>{const productItem=html.querySelector("product-item"),aosAnchor=productItem.id?`#${productItem.id}`:"";let productHTML=productItem.outerHTML;productHTML=productHTML.includes("||itemAnimationDelay||")?productHTML.replaceAll("||itemAnimationDelay||",0):productHTML,productHTML=productHTML.includes("||itemAnimationAnchor||")?productHTML.replaceAll("||itemAnimationAnchor||",aosAnchor):productHTML;const tempDiv=document.createElement("div");tempDiv.innerHTML=productHTML;const processedProductItem=tempDiv.querySelector("product-item");window.theme.htmlUpdate.viewTransition(this,processedProductItem,this.postProcessHtmlCallbacks)}}renderProductItem({requestUrl,callback}){this.abortController?.abort(),this.abortController=new AbortController,fetch(requestUrl,{signal:this.abortController.signal}).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html");callback(html)}).catch(error=>{error.name==="AbortError"?console.log("Fetch aborted by user"):console.error(error),document.removeEventListener("theme:html:change",this.onHtmlChange)})}handleHtmlChange(event){if(!event?.detail?.element||!this.pendingSwapHandle)return;const product=event.detail.element,swatch=product.querySelector(`[${attributes$4.swapHandle}="${this.pendingSwapHandle}"]`);swatch.focus(),this.scrollIntoView({product,swatch}),this.pendingSwapHandle=null,document.removeEventListener("theme:html:change",this.onHtmlChange)}scrollIntoView(elements=!1){if(!this.activeSibling)return;const swatch=elements?elements.swatch:this.activeSibling,nativeScrollbar=(elements?elements.product:this).querySelector(selectors$5.nativeScrollbar);
15if(!nativeScrollbar||typeof nativeScrollbar.move!="function")return;const computedStyle=getComputedStyle(swatch),swatchOffset=swatch.offsetLeft+parseFloat(computedStyle.marginLeft)+parseFloat(computedStyle.marginRight);requestAnimationFrame(()=>nativeScrollbar.move(swatchOffset-swatch.clientWidth,"instant"))}});function getSizedImageUrl(src,size){if(size===null)return src;if(size==="master")return removeProtocol(src);const match=src.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?$/i);if(match){const prefix=src.split(match[0]),suffix=match[0];return removeProtocol(`${prefix[0]}_${size}${suffix}`)}else return null}function removeProtocol(path){return path.replace(/http(s)?:/,"")}const selectors$4={productCutline:"[data-product-cutline]",productLink:"[data-product-link]",productGridItem:"[data-grid-item]",productInfo:"[data-product-information]",productImage:"[data-product-image-default]",productImageSibling:"[data-product-image-sibling]",productPrice:"[data-product-price]",siblingsInnerHolder:"[data-sibling-inner]",siblingCount:"[data-sibling-count]",siblingFieldset:"[data-sibling-fieldset]",siblingLink:"[data-sibling-link]",siblingLinkCurrent:".sibling__link--current"},classes$4={visible:"is-visible",fade:"is-fade",stopEvents:"no-events",active:"is-active",isFocused:"is-focused"},attributes$3={siblingAddedImage:"data-sibling-added-image",siblingCutline:"data-sibling-cutline",siblingImage:"data-sibling-image",siblingPrice:"data-sibling-price",siblingCompareAtPrice:"data-sibling-compare-at-price",productLink:"data-product-link",siblingLink:"data-sibling-link",mobileColumnsSmall:"data-mobile-columns-small"};class SiblingSwatches{constructor(swatches,product){this.swatches=swatches,this.product=product,this.productLinks=this.product.querySelectorAll(selectors$4.productLink),this.productCutline=this.product.querySelector(selectors$4.productCutline),this.productPrice=this.product.querySelector(selectors$4.productPrice),this.productImage=this.product.querySelector(selectors$4.productImage),this.productImageSibling=this.product.querySelector(selectors$4.productImageSibling),this.siblingsInnerHolder=this.product.querySelector(selectors$4.siblingsInnerHolder),this.init()}init(){this.cacheDefaultValues(),this.siblingsInnerHolder.addEventListener("mouseleave",()=>this.resetProductValues()),this.siblingsInnerHolder.addEventListener("focusout",()=>{document.body.classList.contains(classes$4.isFocused)&&this.resetProductValues()}),this.swatches.forEach(swatch=>{swatch.addEventListener("mouseenter",event=>this.showSibling(event)),swatch.addEventListener("focusin",event=>{document.body.classList.contains(classes$4.isFocused)&&this.showSibling(event)})}),this.productLinks.length&&this.swatches.forEach(swatch=>{swatch.addEventListener("click",()=>{this.productLinks[0].click()})})}cacheDefaultValues(){this.activeSibling=this.siblingsInnerHolder.querySelector(selectors$4.siblingLinkCurrent)?.closest(selectors$4.siblingLink),this.activeSibling&&this.productImageSibling.setAttribute(attributes$3.siblingImage,this.activeSibling.dataset.siblingImage),this.productLinkValue=this.productLinks[0].hasAttribute(attributes$3.productLink)?this.productLinks[0].getAttribute(attributes$3.productLink):"",this.productPriceValue=this.productPrice.innerHTML,this.productCutline&&(this.productCutlineValue=this.productCutline.innerHTML)}resetProductValues(){this.product.classList.remove(classes$4.active),this.productLinkValue&&this.productLinks.forEach(productLink=>{productLink.href=this.productLinkValue}),this.productPrice&&(this.productPrice.innerHTML=this.productPriceValue),this.productCutline&&this.productCutline&&(this.productCutline.innerHTML=this.productCutlineValue,this.productCutline.title=this.productCutlineValue),this.hideSiblingImage()}showSibling(event){const swatch=event.target,siblingLink=swatch.hasAttribute(attributes$3.siblingLink)?swatch.getAttribute(attributes$3.siblingLink):"",siblingPrice=swatch.hasAttribute(attributes$3.siblingPrice)?swatch.getAttribute(attributes$3.siblingPrice):"",siblingCompareAtPrice=swatch.hasAttribute(attributes$3.siblingCompareAtPrice)?swatch.getAttribute(attributes$3.siblingCompareAtPrice):"",siblingCutline=swatch.hasAttribute(attributes$3.siblingCutline)?
15swatch.getAttribute(attributes$3.siblingCutline):"",siblingImage=swatch.hasAttribute(attributes$3.siblingImage)?swatch.getAttribute(attributes$3.siblingImage):"";siblingLink&&this.productLinks.forEach(productLink=>{productLink.href=siblingLink}),siblingCompareAtPrice?this.productPrice.innerHTML=`<span class="price sale"><span class="new-price">${siblingPrice}</span> <span class="old-price">${siblingCompareAtPrice}</span></span>`:this.productPrice.innerHTML=`<span class="price">${siblingPrice}</span>`,this.productCutline&&(siblingCutline?(this.productCutline.innerHTML=siblingCutline,this.productCutline.title=siblingCutline):(this.productCutline.innerHTML="",this.productCutline.title="")),siblingImage&&this.showSiblingImage(siblingImage)}showSiblingImage(siblingImage){if(!this.productImageSibling)return;const ratio=window.devicePixelRatio||1,pixels=this.productImage.offsetWidth*ratio,widthRounded=Math.ceil(pixels/180)*180,imageSrc=getSizedImageUrl(siblingImage,`${widthRounded}x`),imageExists=this.productImageSibling.querySelector(`[src="${imageSrc}"]`),showCurrentImage=()=>{this.productImageSibling.classList.add(classes$4.visible),this.productImageSibling.querySelector(`[src="${imageSrc}"]`).classList.add(classes$4.fade)},swapImages=()=>{const activeSiblingImage=this.productImageSibling.getAttribute(attributes$3.siblingImage),swapNewImageOnHover=siblingImage!==activeSiblingImage;(siblingImage===activeSiblingImage&&this.productImageSibling.classList.contains(classes$4.visible)||swapNewImageOnHover)&&(this.productImageSibling.querySelectorAll("img").forEach(image=>{image.classList.remove(classes$4.fade)}),requestAnimationFrame(showCurrentImage))};if(imageExists)swapImages();else{const imageTag=document.createElement("img");imageTag.src=imageSrc,this.productCutline&&(imageTag.alt=this.productCutline.innerText),imageTag.addEventListener("load",()=>{this.productImageSibling.append(imageTag),swapImages()})}}hideSiblingImage(){this.productImageSibling&&(this.productImageSibling.classList.remove(classes$4.visible),this.productImageSibling.querySelectorAll("img").forEach(image=>{image.classList.remove(classes$4.fade)}))}}customElements.get("product-item-siblings")||customElements.define("product-item-siblings",class extends HTMLElement{constructor(){super(),this.resizeEvent=()=>this.handleResize()}connectedCallback(){this.product=this.closest(selectors$4.productGridItem),this.siblingCount=this.querySelector(selectors$4.siblingCount),this.siblingFieldset=this.querySelector(selectors$4.siblingFieldset),this.siblingLinks=this.querySelectorAll(selectors$4.siblingLink),this.productInfo=this.closest(selectors$4.productInfo),this.productLink=this.closest(selectors$4.link),this.hideSwatchesTimer=0,this.swatchesStyle=theme.settings.collectionSwatchStyle,this.siblingFieldset&&this.productInfo&&((this.swatchesStyle=="grid"||this.swatchesStyle=="slider"||this.swatchesStyle=="limited")&&this.siblingFieldset.classList.add(classes$4.visible),this.siblingCount&&(this.siblingCount.addEventListener("mouseenter",()=>this.showSiblings()),this.productInfo.addEventListener("mouseleave",()=>this.hideSiblings()))),this.siblingLinks.length&&new SiblingSwatches(this.siblingLinks,this.product),document.addEventListener("theme:resize:width",this.resizeEvent)}disconnectedCallback(){document.removeEventListener("theme:resize:width",this.resizeEvent)}handleResize(){this.siblingFieldset&&this.productInfo&&(this.swatchesStyle=="grid"||this.swatchesStyle=="slider"||this.swatchesStyle=="limited")&&(this.siblingFieldset.classList.add(classes$4.visible),this.limitVisibleSwatches())}showSiblings(){this.hideSwatchesTimer&&clearTimeout(this.hideSwatchesTimer),this.productLink&&this.productLink.classList.add(classes$4.stopEvents),this.swatchesStyle!="text"&&this.siblingFieldset.classList.add(classes$4.visible)}hideSiblings(){this.hideSwatchesTimer=setTimeout(()=>{this.productLink&&this.productLink.classList.remove(classes$4.stopEvents),this.siblingFieldset.classList.remove(classes$4.visible)},100)}limitVisibleSwatches(){const isMobile=window.theme.isMobile(),mobileColumnsElement=this.querySelector(`[${attributes$3.mobileColumnsSmall}]`),isMobileSwatches=mobileColumnsElement?.getAttribute(attributes$3.mobileColumnsSmall)==="true";if(!this.siblingLinks?.length||isMobile&&!isMobileSwatches)return;if(!isMobile&&this.swatchesStyle!=="limited"){this.siblingLinks.forEach(swatch=>{swatch.style.display=""});const limitedCountElement2=this.querySelector(".swatch-limited");limitedCountElement2&&limitedCountElement2.remove();return}const maxVisible=isMobile?3:5,totalSwatches=this.siblingLinks.length,visibleSwatches=Math.min(maxVisible,totalSwatches),remainingSwatches=totalSwatches-visibleSwatches;this.siblingLinks.forEach((swatch,index)=>{swatch.style.display=index<visibleSwatches?"":"none"});const limitedCountElement=this.querySelector(".swatch-limited");if(remainingSwatches>0)if(limitedCountElement)limitedCountElement.textContent=`+${remainingSwatches}`;else{const newCountElement=document.createElement("div");newCountElement.className="swatch-limited",newCountElement.textContent=`+${remainingSwatches}`,mobileColumnsElement?.appendChild(newCountElement)}else limitedCountElement&&limitedCountElement.remove()}}),Shopify.Products=(function(){const config={howManyToShow:4,howManyToStoreInMemory:10,wrapperId:"recently-viewed-products",section:null,target:"api-product-grid-item",onComplete:null};let productHandleQueue=[],wrapper=null,howManyToShowItems=null;const today=new Date,expiresDate=new Date;expiresDate.setTime(today.getTime()+36e5*24*90);const cookie={configuration:{expires:expiresDate.toGMTString(),path:"/",domain:window.location.hostname,sameSite:"none",secure:!0},name:"shopify_recently_viewed",write:function(recentlyViewed){const recentlyViewedString=encodeURIComponent(recentlyViewed.join(" "));document.cookie=`${this.name}=${recentlyViewedString}; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}; sameSite=${this.configuration.sameSite}; secure=${this.configuration.secure}`},read:function(){let recentlyViewed=[],cookieValue=null;return document.cookie.indexOf("; ")!==-1&&document.cookie.split("; ").find(row=>row.startsWith(this.name))&&(cookieValue=document.cookie.split("; ").find(row=>row.startsWith(this.name)).split("=")[1]),cookieValue!==null&&(recentlyViewed=decodeURIComponent(cookieValue).split(" ")),recentlyViewed},destroy:function(){document.cookie=`${this.name}=null; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`},remove:function(productHandle){const recentlyViewed=this.read(),position=recentlyViewed.indexOf(productHandle);position!==-1&&(recentlyViewed.splice(position,1),this.write(recentlyViewed))}},finalize=(wrapper2,section)=>{wrapper2.classList.remove("hidden");const cookieItemsLength=cookie.read().length;if(Shopify.recentlyViewed&&howManyToShowItems&&cookieItemsLength&&cookieItemsLength<howManyToShowItems&&wrapper2.children.length){let allClassesArr=[],addClassesArr=[],objCounter=0;for(const property in Shopify.recentlyViewed){objCounter+=1;const objArr=Shopify.recentlyViewed[property].split(" "),propertyIdx=parseInt(property.split("_")[1]);allClassesArr=[...allClassesArr,...objArr],(cookie.read().length===propertyIdx||objCounter===Object.keys(Shopify.recentlyViewed).length&&!addClassesArr.length)&&(addClassesArr=[...addClassesArr,...objArr])}for(let i=0;i<wrapper2.children.length;i++){const element=wrapper2.children[i];allClassesArr.length&&element.classList.remove(...allClassesArr),addClassesArr.length&&element.classList.add(...addClassesArr)}}if(config.onComplete)try{config.onComplete(wrapper2,section)}catch(error){console.log(error)}},moveAlong=(shown,productHandleQueue2,wrapper2,section,target,howManyToShow)=>{productHandleQueue2.length&&shown<howManyToShow?fetch(`${window.theme.routes.root}products/${productHandleQueue2[0]}?section_id=${target}`).then(response=>response.text()).then(product=>{const aosDelay=shown*100,aosAnchor=wrapper2.id?`#${wrapper2.id}`:"",fresh=document.createElement("div");let productReplaced=product;productReplaced=productReplaced.includes("||itemAnimationDelay||")?productReplaced.replaceAll("||itemAnimationDelay||",aosDelay):productReplaced,productReplaced=productReplaced.includes("||itemAnimationAnchor||")?productReplaced.replaceAll("||itemAnimationAnchor||",aosAnchor):productReplaced,fresh.innerHTML=productReplaced,wrapper2.innerHTML+=fresh.querySelector("[data-api-content]").innerHTML,productHandleQueue2.shift(),shown++,moveAlong(shown,productHandleQueue2,wrapper2,section,target,howManyToShow)}).catch(()=>{cookie.remove(productHandleQueue2[0]),productHandleQueue2.shift(),moveAlong(shown,productHandleQueue2,wrapper2,section,target,howManyToShow)}):finalize(wrapper2,section)};return{showRecentlyViewed:function(params){if(Shopify.visualPreviewMode)return;const paramsNew=params||{},shown=0;Object.assign(config,paramsNew),productHandleQueue=cookie.read(),wrapper=document.querySelector(`#${config.wrapperId}`),howManyToShowItems=config.howManyToShow,config.howManyToShow=Math.min(productHandleQueue.length,config.howManyToShow),config.howManyToShow&&wrapper&&moveAlong(shown,productHandleQueue,wrapper,config.section,config.target,howManyToShowItems)},getConfig:function(){return config},clearList:function(){cookie.destroy()},recordRecentlyViewed:function(params){Object.assign(config,params||{});let recentlyViewed=cookie.read();if(window.location.pathname.indexOf("/products/")!==-1){let productHandle=decodeURIComponent(window.location.pathname).match(/\/products\/([a-z0-9\-]|[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|[\u203B]|[\w\u0430-\u044f]|[\u0400-\u04FF]|[\u0900-\u097F]|[\u0590-\u05FF\u200f\u200e]|[\u0621-\u064A\u0660-\u0669 ])+/)[0].split("/products/")[1];config.handle&&(productHandle=config.handle);const position=recentlyViewed.indexOf(productHandle);position===-1?(recentlyViewed.unshift(productHandle),recentlyViewed=recentlyViewed.splice(0,config.howManyToStoreInMemory)):(recentlyViewed.splice(position,1),recentlyViewed.unshift(productHandle)),cookie.write(recentlyViewed)}},hasProducts:cookie.read().length>0}})();const selectors$3={aos:"[data-aos]",collectionImage:".collection-item__image",columnImage:"[data-column-image]",flickityNextArrow:".flickity-button.next",flickityPrevArrow:".flickity-button.previous",link:"a:not(.btn)",productItemImage:".product-item__image",section:"[data-section-id]",slide:"[data-sli
15de]",slideValue:"data-slide",sliderThumb:"[data-slider-thumb]"},attributes$2={arrowPositionMiddle:"data-arrow-position-middle",slideIndex:"data-slide-index",sliderOptions:"data-options",slideTextColor:"data-slide-text-color"},classes$3={aosAnimate:"aos-animate",desktop:"desktop",focused:"is-focused",flickityEnabled:"flickity-enabled",heroContentTransparent:"hero__content--transparent",hidden:"hidden",initialized:"is-initialized",isLoading:"is-loading",isSelected:"is-selected",mobile:"mobile",singleSlide:"single-slide"};customElements.get("slider-component")||customElements.define("slider-component",class extends HTMLElement{constructor(){super(),this.flkty=null,this.slides=this.querySelectorAll(selectors$3.slide),this.thumbs=this.querySelectorAll(selectors$3.sliderThumb),this.section=this.closest(selectors$3.section),this.bindEvents()}connectedCallback(){this.initSlider()}initSlider(){if(this.slides.length<=1)return;this.hasAttribute(attributes$2.sliderOptions)&&(this.customOptions=JSON.parse(decodeURIComponent(this.getAttribute(attributes$2.sliderOptions)))),this.classList.add(classes$3.isLoading);let slideSelector=selectors$3.slide;const isDesktopView=!window.theme.isMobile(),slideDesktop=`${selectors$3.slide}:not(.${classes$3.mobile})`,slideMobile=`${selectors$3.slide}:not(.${classes$3.desktop})`;if((this.querySelectorAll(slideDesktop).length||this.querySelectorAll(slideMobile).length)&&(isDesktopView?slideSelector=slideDesktop:slideSelector=slideMobile,this.flkty?.destroy()),this.querySelectorAll(slideSelector).length<=1){this.classList.add(classes$3.singleSlide),this.classList.remove(classes$3.isLoading);return}this.sliderOptions={cellSelector:slideSelector,contain:!0,wrapAround:!0,adaptiveHeight:!0,...this.customOptions,on:{ready:()=>{requestAnimationFrame(()=>{this.classList.add(classes$3.initialized),this.classList.remove(classes$3.isLoading),this.parentNode.dispatchEvent(new CustomEvent("theme:slider:loaded",{bubbles:!0,detail:{slider:this}}))}),this.slideActions(),this.sliderOptions.prevNextButtons&&this.positionArrows()},change:index=>{const slide=this.slides[index];if(!slide||this.sliderOptions.groupCells)return;const elementsToAnimate=slide.querySelectorAll(selectors$3.aos);elementsToAnimate.length&&elementsToAnimate.forEach(el=>{el.classList.remove(classes$3.aosAnimate),requestAnimationFrame(()=>{setTimeout(()=>{el.classList.add(classes$3.aosAnimate)},0)})})},resize:()=>{this.sliderOptions.prevNextButtons&&this.positionArrows()}}},this.initFlickity(),this.flkty.on("change",()=>this.slideActions(!0)),this.thumbs?.forEach(thumb=>{thumb.addEventListener("click",e=>{e.preventDefault();const slideIndex=[...thumb.parentElement.children].indexOf(thumb);this.flkty.select(slideIndex)})}),(!this.flkty||!this.flkty.isActive)&&this.classList.remove(classes$3.isLoading)}initFlickity(){this.sliderOptions.fade?this.flkty=new window.theme.FlickityFade(this,this.sliderOptions):this.flkty=new window.theme.Flickity(this,this.sliderOptions)}bindEvents(){this.addEventListener("theme:slider:init",()=>{this.initSlider()}),this.addEventListener("theme:slider:select",e=>{this.flkty.selectCell(e.detail.index),this.flkty.stopPlayer()}),this.addEventListener("theme:slider:deselect",()=>{this.flkty&&this.sliderOptions.hasOwnProperty("autoPlay")&&this.sliderOptions.autoPlay&&this.flkty.playPlayer()}),this.addEventListener("theme:slider:reposition",()=>{this.flkty?.reposition()}),this.addEventListener("theme:slider:destroy",()=>{this.flkty?.destroy()}),this.addEventListener("theme:slider:remove-slide",e=>{e.detail.slide&&(this.flkty?.remove(e.detail.slide),this.flkty?.cells.length===0&&this.section.classList.add(classes$3.hidden))})}slideActions(changeEvent=!1){const currentSlide=this.querySelector(`.${classes$3.isSelected}`);if(!currentSlide)return;const currentSlideTextColor=currentSlide.hasAttribute(attributes$2.slideTextColor)?currentSlide.getAttribute(attributes$2.slideTextColor):"",currentSlideLink=currentSlide.querySelector(selectors$3.link),buttons=this.querySelectorAll(`${selectors$3.slide} a, ${selectors$3.slide} button`);
15if(document.body.classList.contains(classes$3.focused)&¤tSlideLink&&this.sliderOptions.groupCells&&changeEvent&¤tSlideLink.focus(),buttons.length&&buttons.forEach(button=>{const slide=button.closest(selectors$3.slide);if(slide){const tabIndex=slide.classList.contains(classes$3.isSelected)?0:-1;button.setAttribute("tabindex",tabIndex)}}),this.style.setProperty("--text",currentSlideTextColor),this.thumbs.length&&this.thumbs.length===this.slides.length&¤tSlide.hasAttribute(attributes$2.slideIndex)){const slideIndex=parseInt(currentSlide.getAttribute(attributes$2.slideIndex)),currentThumb=this.querySelector(`${selectors$3.sliderThumb}.${classes$3.isSelected}`);currentThumb&¤tThumb.classList.remove(classes$3.isSelected),this.thumbs[slideIndex].classList.add(classes$3.isSelected)}}positionArrows(){if(!this.hasAttribute(attributes$2.arrowPositionMiddle)||!this.sliderOptions.prevNextButtons)return;const itemImage=this.querySelector(selectors$3.collectionImage)||this.querySelector(selectors$3.productItemImage)||this.querySelector(selectors$3.columnImage);itemImage&&(this.querySelector(selectors$3.flickityPrevArrow).style.top=itemImage.clientHeight/2+"px",this.querySelector(selectors$3.flickityNextArrow).style.top=itemImage.clientHeight/2+"px")}disconnectedCallback(){this.flkty&&(this.flkty.options.watchCSS=!1,this.flkty.destroy())}});const selectors$2={relatedSection:"[data-related-section]",aos:"[data-aos]",tabsLi:"[data-tab]",tabLink:".tab-link",tabLinkRecent:".tab-link__recent",tabContent:".tab-content"},classes$2={current:"current",hidden:"hidden",aosAnimate:"aos-animate",aosNoTransition:"aos-no-transition",focused:"is-focused"},attributes$1={dataTab:"data-tab",dataTabIndex:"data-tab-index"};customElements.get("tabs-component")||customElements.define("tabs-component",class extends HTMLElement{constructor(){super(),this.a11y=window.a11y}connectedCallback(){const tabsNavList=this.querySelectorAll(selectors$2.tabsLi);this.addEventListener("theme:tab:check",()=>this.checkRecentTab()),this.addEventListener("theme:tab:hide",()=>this.hideRelatedTab()),tabsNavList?.forEach(element=>{const tabId=parseInt(element.getAttribute(attributes$1.dataTab)),tab=this.querySelector(`${selectors$2.tabContent}-${tabId}`);element.addEventListener("click",()=>{this.tabChange(element,tab)}),element.addEventListener("keyup",event=>{(event.code==="Space"||event.code==="Enter")&&document.body.classList.contains(classes$2.focused)&&this.tabChange(element,tab)})})}tabChange(element,tab){if(element.classList.contains(classes$2.current))return;const currentTab=this.querySelector(`${selectors$2.tabsLi}.${classes$2.current}`),currentTabContent=this.querySelector(`${selectors$2.tabContent}.${classes$2.current}`);currentTab?.classList.remove(classes$2.current),currentTabContent?.classList.remove(classes$2.current),element.classList.add(classes$2.current),tab.classList.add(classes$2.current),element.classList.contains(classes$2.hidden)&&tab.classList.add(classes$2.hidden),this.a11y.a11y.removeTrapFocus(),this.dispatchEvent(new CustomEvent("theme:tab:change",{bubbles:!0})),element.dispatchEvent(new CustomEvent("theme:form:sticky",{bubbles:!0,detail:{element:"tab"}})),this.animateItems(tab)}animateItems(tab,animated=!0){const animatedItems=tab.querySelectorAll(selectors$2.aos);animatedItems.length&&animatedItems.forEach(animatedItem=>{animatedItem.classList.remove(classes$2.aosAnimate),animated&&(animatedItem.classList.add(classes$2.aosNoTransition),requestAnimationFrame(()=>{animatedItem.classList.remove(classes$2.aosNoTransition),animatedItem.classList.add(classes$2.aosAnimate)}))})}checkRecentTab(){const tabLink=this.querySelector(selectors$2.tabLinkRecent);if(tabLink){tabLink.classList.remove(classes$2.hidden);const tabLinkIdx=parseInt(tabLink.getAttribute(attributes$1.dataTab)),tabContent=this.querySelector(`${selectors$2.tabContent}[${attributes$1.dataTabIndex}="${tabLinkIdx}"]`);tabContent&&(tabContent.classList.remove(classes$2.hidden),this.animateItems(tabContent,!1))}}hideRelatedTab(){const relatedSection=this.querySelector(selectors$2.relatedSection);if(!relatedSection)return;const parentTabContent=relatedSection.closest(`${selectors$2.tabContent}.${classes$2.current}`);if(!parentTabContent)return;const parentTabContentIdx=parseInt(parentTabContent.getAttribute(attributes$1.dataTabIndex)),tabsNavList=this.querySelectorAll(selectors$2.tabsLi);if(tabsNavList.length>parentTabContentIdx){const nextTabsNavLink=tabsNavList[parentTabContentIdx].nextSibling;nextTabsNavLink&&(tabsNavList[parentTabContentIdx].classList.add(classes$2.hidden),nextTabsNavLink.dispatchEvent(new Event("click")))}}});const selectors$1={actions:"[data-actions]",content:"[data-content]",trigger:"[data-button]"},attributes={height:"data-height"}
15,classes$1={open:"is-open",enabled:"is-enabled"};class ToggleEllipsis extends HTMLElement{constructor(){super(),this.initialHeight=this.getAttribute(attributes.height),this.content=this.querySelector(selectors$1.content),this.trigger=this.querySelector(selectors$1.trigger),this.actions=this.querySelector(selectors$1.actions),this.toggleActions=this.toggleActions.bind(this)}connectedCallback(){this.setHeight(this.initialHeight),this.trigger.addEventListener("click",()=>{this.setHeight(this.content.offsetHeight),this.classList.add(classes$1.open)}),this.setHeight(this.initialHeight),this.toggleActions(),document.addEventListener("theme:resize",this.toggleActions),document.addEventListener("theme:collapsible:toggle",this.toggleActions)}disconnectedCallback(){document.removeEventListener("theme:resize",this.toggleActions),document.removeEventListener("theme:collapsible:toggle",this.toggleActions)}setHeight(contentHeight){this.style.setProperty("--height",`${contentHeight}px`)}toggleActions(){this.classList.toggle(classes$1.enabled,this.content.offsetHeight+this.actions.offsetHeight>this.initialHeight)}}customElements.get("toggle-ellipsis")||customElements.define("toggle-ellipsis",ToggleEllipsis);const selectors={sectionId:"[data-section-id]",tooltip:"data-tooltip",tooltipStopMouseEnter:"data-tooltip-stop-mouseenter"},classes={tooltipDefault:"tooltip-default",visible:"is-visible",hiding:"is-hiding"};customElements.get("tooltip-component")||customElements.define("tooltip-component",class extends HTMLElement{constructor(){super(),this.label=this.hasAttribute(selectors.tooltip)?this.getAttribute(selectors.tooltip):"",this.transitionSpeed=200,this.hideTransitionTimeout=0,this.addPinEvent=()=>this.addPin(),this.addPinMouseEvent=()=>this.addPin(!0),this.removePinEvent=event=>window.theme.throttle(this.removePin(event),50),this.removePinMouseEvent=event=>this.removePin(event,!0,!0)}connectedCallback(){if(!document.querySelector(`.${classes.tooltipDefault}`)){const tooltipTemplate=`<div class="${classes.tooltipDefault}__arrow"></div><div class="${classes.tooltipDefault}__inner"><div class="${classes.tooltipDefault}__text"></div></div>`,tooltipElement=document.createElement("div");tooltipElement.className=classes.tooltipDefault,tooltipElement.innerHTML=tooltipTemplate,document.body.appendChild(tooltipElement)}this.addEventListener("mouseenter",this.addPinMouseEvent),this.addEventListener("mouseleave",this.removePinMouseEvent),this.addEventListener("theme:tooltip:init",this.addPinEvent),document.addEventListener("theme:tooltip:close",this.removePinEvent)}addPin(stopMouseEnter=!1){const tooltipTarget=document.querySelector(`.${classes.tooltipDefault}`),section=this.closest(selectors.sectionId),colorSchemeClass=Array.from(section.classList).find(cls=>cls.startsWith("color-scheme-"));if(colorSchemeClass&&tooltipTarget?.classList.add(colorSchemeClass),this.label&&tooltipTarget&&(stopMouseEnter&&!this.hasAttribute(selectors.tooltipStopMouseEnter)||!stopMouseEnter)){const tooltipTargetArrow=tooltipTarget.querySelector(`.${classes.tooltipDefault}__arrow`),tooltipTargetInner=tooltipTarget.querySelector(`.${classes.tooltipDefault}__inner`),tooltipTargetText=tooltipTarget.querySelector(`.${classes.tooltipDefault}__text`);tooltipTargetText.innerHTML=this.label;const tooltipTargetWidth=tooltipTargetInner.offsetWidth,tooltipRect=this.getBoundingClientRect(),tooltipTop=tooltipRect.top,tooltipWidth=tooltipRect.width,tooltipHeight=tooltipRect.height,tooltipTargetPositionTop=tooltipTop+tooltipHeight+window.scrollY;let tooltipTargetPositionLeft=tooltipRect.left-tooltipTargetWidth/2+tooltipWidth/2;const tooltipTargetWindowDifference=tooltipTargetPositionLeft+tooltipTargetWidth-window.theme.getWindowWidth()+24;tooltipTargetWindowDifference>0&&(tooltipTargetPositionLeft-=tooltipTargetWindowDifference),tooltipTargetPositionLeft<0&&(tooltipTargetPositionLeft=0),tooltipTargetArrow.style.left=`${tooltipRect.left+tooltipWidth/2}px`,tooltipTarget.style.setProperty("--tooltip-top",`${tooltipTargetPositionTop}px`),tooltipTargetInner.style.transform=`translateX(${tooltipTargetPositionLeft}px)`,tooltipTarget.classList.remove(classes.hiding),tooltipTarget.classList.add(classes.visible),document.addEventListener("theme:scroll",this.removePinEvent)}}removePin(event,stopMouseEnter=!1,hideTransition=!1){const tooltipTarget=document.querySelector(`.${classes.tooltipDefault}
15`),tooltipVisible=tooltipTarget.classList.contains(classes.visible);tooltipTarget&&(stopMouseEnter&&!this.hasAttribute(selectors.tooltipStopMouseEnter)||!stopMouseEnter)&&(tooltipVisible&&(hideTransition||event.detail.hideTransition)&&(tooltipTarget.classList.add(classes.hiding),this.hideTransitionTimeout&&clearTimeout(this.hideTransitionTimeout),this.hideTransitionTimeout=setTimeout(()=>{tooltipTarget.classList.remove(classes.hiding)},this.transitionSpeed)),tooltipTarget.classList.remove(classes.visible),document.removeEventListener("theme:scroll",this.removePinEvent))}disconnectedCallback(){this.removeEventListener("mouseenter",this.addPinMouseEvent),this.removeEventListener("mouseleave",this.removePinMouseEvent),this.removeEventListener("theme:tooltip:init",this.addPinEvent),document.removeEventListener("theme:tooltip:close",this.removePinEvent),document.removeEventListener("theme:scroll",this.removePinEvent)}});class VariantSelects extends HTMLElement{constructor(){super()}connectedCallback(){this.addEventListener("change",event=>{const target=this.getInputForEventTarget(event.target);publish(theme.PUB_SUB_EVENTS.optionValueSelectionChange,{data:{event,target,selectedOptionValues:this.selectedOptionValues}})})}getInputForEventTarget(target){return target.tagName==="SELECT"?target.selectedOptions[0]:target}get selectedOptionValues(){const selectedNativeDropdowns=Array.from(this.querySelectorAll("select option[selected]")),selectedRadios=Array.from(this.querySelectorAll("fieldset input:checked")),selectedPopouts=Array.from(this.querySelectorAll("[data-popout-input]"));return[...selectedNativeDropdowns,...selectedRadios,...selectedPopouts].map(({dataset})=>dataset.optionValueId).filter(id=>!!id)}}customElements.define("variant-selects",VariantSelects);function getScript(url,callback,callbackError){let head=document.getElementsByTagName("head")[0],done=!1,script=document.createElement("script");script.src=url,script.onload=script.onreadystatechange=function(){!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")?(done=!0,callback()):callbackError()},head.appendChild(script)}const loaders={};function loadScript(options={}){if(options.type||(options.type="json"),options.url)return loaders[options.url]?loaders[options.url]:getScriptWithPromise(options.url,options.type);if(options.json)return loaders[options.json]?Promise.resolve(loaders[options.json]):window.fetch(options.json).then(response=>response.json()).then(response=>(loaders[options.json]=response,response));if(options.name){const key="".concat(options.name,options.version);return loaders[key]?loaders[key]:loadShopifyWithPromise(options)}else return Promise.reject()}function getScriptWithPromise(url,type){const loader=new Promise((resolve,reject)=>{type==="text"?fetch(url).then(response=>response.text()).then(data=>{resolve(data)}).catch(error=>{reject(error)}):getScript(url,function(){resolve()},function(){reject()})});return loaders[url]=loader,loader}function loadShopifyWithPromise(options){const key="".concat(options.name,options.version),loader=new Promise((resolve,reject)=>{try{window.Shopify.loadFeatures([{name:options.name,version:options.version,onLoad:err=>{onLoadFromShopify(resolve,reject,err)}}])}catch(err){reject(err)}});return loaders[key]=loader,loader}function onLoadFromShopify(resolve,reject,err){return err?reject(err):resolve()}document.addEventListener("DOMContentLoaded",function(){const scrollTopButton=document.querySelector("[data-scroll-top-button]");scrollTopButton&&(scrollTopButton.addEventListener("click",()=>{window.scrollTo({top:0,left:0,behavior:"smooth"})}),document.addEventListener("theme:scroll",()=>{scrollTopButton.classList.toggle("is-visible",window.scrollY>window.innerHeight)})),window.self!==window.top&&document.querySelector("html").classList.add("iframe"),"scrollBehavior"in document.documentElement.style||loadScript({url:window.theme.assets.smoothscroll})}),window.navigator.cookieEnabled&&(document.documentElement.className=document.documentElement.className.replace("supports-no-cookies","supports-cookies"))})(themeVendor.ScrollLock); 16//# sourceMappingURL=/cdn/shop/t/42/assets/theme.dev.js.map?v=129532379755836529941791464472
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.