1/* 2* @license 3* Modular Theme (c) Invisible Themes 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 Invisible. 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(bodyScrollLock,themeCurrency,Sqrl,Ajaxinate,FlickityAsNavFor,Flickity,themeImages,FlickityFade,AOS){"use strict";window.theme=window.theme||{},window.theme.sizes={mobile:550,small:767,large:1023,widescreen:1279},window.theme.keyboardKeys={TAB:9,ENTER:13,ESCAPE:27,SPACE:32,LEFTARROW:37,RIGHTARROW:39},window.theme.dimensions={headerScrolled:60},window.theme.loadedSPR=!1,window.theme.focusable='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';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"))})}function readHeights(){const h={};return h.windowHeight=window.innerHeight,h.announcementHeight=getHeight('[data-section-type*="announcement"]'),h.footerHeight=getHeight('[data-section-type*="footer"]'),h.headerHeight=getHeight("[data-header-height].header--has-scrolled")||60,h.headerInitialHeight=getHeight("[data-header-height]:not(.header--has-scrolled)"),h}function setVarsOnResize(){document.addEventListener("theme:resize",resizeVars)}function setVars(){const{windowHeight,announcementHeight,headerInitialHeight,headerHeight,footerHeight}=readHeights();document.documentElement.style.setProperty("--announcement-height",`${announcementHeight}px`),document.documentElement.style.setProperty("--header-height",`${headerHeight}px`),document.documentElement.style.setProperty("--header-initial-height",`${headerInitialHeight}px`),document.documentElement.style.setProperty("--footer-height",`${footerHeight}px`),document.documentElement.style.setProperty("--content-full",`${windowHeight-headerHeight}px`),document.documentElement.style.setProperty("--content-min",`${windowHeight-headerHeight-footerHeight}px`),document.documentElement.style.setProperty("--scrollbar-width",`${getScrollbarWidth()}px`)}function resizeVars(){const{windowHeight,announcementHeight,headerHeight,footerHeight}=readHeights();document.documentElement.style.setProperty("--announcement-height",`${announcementHeight}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}px`),document.documentElement.style.setProperty("--content-min",`${windowHeight-headerHeight-footerHeight}px`)}function getHeight(selector){const el=document.querySelector(selector);return el?el.clientHeight:0}function getScrollbarWidth(){const outer=document.createElement("div");outer.style.visibility="hidden",outer.style.overflow="scroll",outer.style.msOverflowStyle="scrollbar",document.body.appendChild(outer);const inner=document.createElement("div");outer.appendChild(inner);const scrollbarWidth=outer.offsetWidth-inner.offsetWidth;return outer.parentNode.removeChild(outer),scrollbarWidth}const outerHeight=el=>{const style=getComputedStyle(el);let height=el.offsetHeight;return height+=parseInt(style.marginTop)+parseInt(style.marginBottom),height},selectors={bannerContainer:"[data-banner-container]",bannerContent:"[data-banner-content]"};function preventOverflow(container){const banners=container.querySelectorAll(selectors.bannerContainer);banners&&banners.forEach(banner=>{const content=banner.querySelector(selectors.bannerContent);content&&(banner.style.minHeight=`${outerHeight(content)}px`,document.addEventListener("theme:resize",()=>{banner.style.minHeight=`${outerHeight(content)}px`}))})}function debounce(fn,time){let timeout;return function(){if(fn){const functionCall=()=>fn.apply(this,arguments);clearTimeout(timeout),timeout=setTimeout(functionCall,time)}
12}}function dispatch(){document.dispatchEvent(new CustomEvent("theme:resize",{bubbles:!0}))}function resizeListener(){window.addEventListener("resize",debounce(function(){dispatch()},50))}let prev=window.pageYOffset,up=null,down=null,wasUp=null,wasDown=null,scrollLockTimeout=0;function dispatch$1(){const position=window.pageYOffset;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){bodyScrollLock.disableBodyScroll(e.detail,{allowTouchMove:el=>el.tagName==="TEXTAREA"}),document.documentElement.setAttribute("data-scroll-locked","")}function unlock(){if(scrollLockTimeout=setTimeout(()=>{document.body.removeAttribute("data-drawer-closing")},20),document.body.hasAttribute("data-drawer-closing")){document.body.removeAttribute("data-drawer-closing"),scrollLockTimeout&&clearTimeout(scrollLockTimeout);return}else document.body.setAttribute("data-drawer-closing","");document.documentElement.removeAttribute("data-scroll-locked"),bodyScrollLock.clearAllBodyScrollLocks()}function scrollListener(){let timeout;window.addEventListener("scroll",function(){timeout&&window.cancelAnimationFrame(timeout),timeout=window.requestAnimationFrame(function(){dispatch$1()})},{passive:!0}),window.addEventListener("theme:scroll:lock",lock),window.addEventListener("theme:scroll:unlock",unlock)}function wasTouched(){window.theme.touched=!0,document.removeEventListener("touchstart",wasTouched,{passive:!0}),document.documentElement.className=document.documentElement.className.replace("no-touch","touch"),document.dispatchEvent(new CustomEvent("theme:touch",{bubbles:!0}))}document.addEventListener("touchstart",wasTouched,{passive:!0});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={};window.isYoutubeAPILoaded=!1;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()}const selectors$1={popupContainer:".pswp",popupCloseBtn:".pswp__custom-close",popupIframe:"iframe",popupCustomIframe:".pswp__custom-iframe",popupThumbs:".pswp__thumbs",dataOptionClasses:"data-pswp-option-classes",dataVideoType:"data-video-type",dataDisableSound:"data-disable-sound",dataVideoId:"data-video-id"},classes={classCurrent:"is-current",classCustomLoader:"pswp--custom-loader",classCustomOpen:"pswp--custom-opening",classLoader:"pswp__loader",loaded:"loaded"},loaderHTML=`<div class="${classes.classLoader}"><div class="loader pswp__loader-line"><div class="loader-indeterminate"></div></div></div>`,players=[],loadVideoYT=(playerId,videoId,disableSound)=>{const currentYoutubeOptions=Object.assign({},{height:"720",width:"1280",events:{onReady:function(event){event.target.getIframe().setAttribute("tabindex","-1"),disableSound?event.target.mute():event.target.unMute(),event.target.playVideo()},onStateChange:function(event){event.data==0&&event.target.playVideo(),event.data==1&&event.target.getIframe().parentElement&&event.target.getIframe().parentElement.classList.add(classes.loaded)}}});currentYoutubeOptions.videoId=videoId,videoId.length&&(players[playerId]=new YT.Player(playerId,currentYoutubeOptions))},loadVideoVimeo=(videoId,state,disableSound)=>{const oembed_url="https://vimeo.com/api/oembed.json",vimeo_url="https://vimeo.com/"+videoId;let paramsString="";const params={url:vimeo_url,background:!1,muted:disableSound,autoplay:!0};for(let key in params)paramsString+=encodeURIComponent(key)+"="+encodeURIComponent(params[key])+"&";fetch(`${oembed_url}?${paramsString}`).then(response=>response.json()).then(function(data){state.innerHTML=data.html,setTimeout(function(){state.parentElement.classList.add(classes.loaded)},1e3)}).catch(function(error){console.log("error: ",error)})},openPhotoSwipe=(items,options="")=>{const pswpElement=document.querySelectorAll(selectors$1.popupContainer)[0];if(pswpElement.classList.add(classes.classCustomOpen),pswpElement.classList.contains(classe
12s.classCustomLoader)&&options!==""&&options.mainClass){pswpElement.setAttribute(selectors$1.dataOptionClasses,options.mainClass);let loaderElem=document.createElement("div");loaderElem.innerHTML=loaderHTML,loaderElem=loaderElem.firstChild,pswpElement.appendChild(loaderElem)}else pswpElement.setAttribute(selectors$1.dataOptionClasses,"");return loadScript({url:window.theme.assets.photoswipe}).then(()=>{const PhotoSwipe=window.themePhotoswipe.PhotoSwipe.default,PhotoSwipeUI=window.themePhotoswipe.PhotoSwipeUI.default,popupThumbsContainer=pswpElement.querySelector(selectors$1.popupThumbs);pswpElement.classList.contains(classes.classCustomLoader)&&pswpElement.classList.remove(classes.classCustomLoader),pswpElement.classList.remove(classes.classCustomOpen);let newOptions={history:!1,focus:!1,mainClass:""};options!==""&&(newOptions=options);const popup=new PhotoSwipe(pswpElement,PhotoSwipeUI,items,newOptions);popup.init();const videoContainer=pswpElement.querySelector(selectors$1.popupCustomIframe);if(videoContainer){const videoType=videoContainer.getAttribute(selectors$1.dataVideoType),videoId=videoContainer.getAttribute(selectors$1.dataVideoId),videoDisableSound=videoContainer.getAttribute(selectors$1.dataDisableSound)==="true",videoContainerId=videoContainer.id;videoType=="youtube"?window.isYoutubeAPILoaded?loadVideoYT(videoContainerId,videoId,videoDisableSound):(window.loadYoutubeAPI(),document.body.addEventListener("youtubeAPIReady",()=>loadVideoYT(videoContainerId,videoId,videoDisableSound))):videoType=="vimeo"&&loadVideoVimeo(videoId,videoContainer,videoDisableSound)}const closeBtn=pswpElement.querySelector(selectors$1.popupCloseBtn);if(closeBtn&&closeBtn.addEventListener("click",function(){popup.close()}),popup.listen("close",function(){const popupIframe=pswpElement.querySelector(selectors$1.popupIframe);if(popupIframe&&(popupIframe.setAttribute("src",""),popupIframe.parentNode.removeChild(popupIframe)),popupThumbsContainer&&popupThumbsContainer.firstChild)for(;popupThumbsContainer.firstChild;)popupThumbsContainer.removeChild(popupThumbsContainer.firstChild);pswpElement.setAttribute(selectors$1.dataOptionClasses,"");const loaderElem=pswpElement.querySelector(`.${classes.classLoader}`);loaderElem&&pswpElement.removeChild(loaderElem)}),popupThumbsContainer&&popupThumbsContainer.firstChild){const stopDisabledScroll=e=>{e.stopPropagation()};popupThumbsContainer.addEventListener("wheel",stopDisabledScroll),popupThumbsContainer.addEventListener("mousewheel",stopDisabledScroll),popupThumbsContainer.addEventListener("DOMMouseScroll",stopDisabledScroll);const popupThumbs=pswpElement.querySelectorAll(`${selectors$1.popupThumbs} > *`);popupThumbs.forEach((element,i)=>{element.addEventListener("click",function(e){e.preventDefault(),this.parentElement.querySelector(`.${classes.classCurrent}`).classList.remove(classes.classCurrent),this.classList.add(classes.classCurrent),popup.goTo(i)})});const setCurrentThumb=()=>{const lastCurrentThumb=pswpElement.querySelector(`${selectors$1.popupThumbs} > .${classes.classCurrent}`);lastCurrentThumb&&lastCurrentThumb.classList.remove(classes.classCurrent);const currentThumb=popupThumbs[popup.getCurrentIndex()],thumbsContainerLeft=popupThumbsContainer.scrollLeft,thumbsContainerWidth=popupThumbsContainer.offsetWidth,thumbsContainerPos=thumbsContainerLeft+thumbsContainerWidth,currentThumbLeft=currentThumb.offsetLeft,currentThumbWidth=currentThumb.offsetWidth,currentThumbPos=currentThumbLeft+currentThumbWidth;if(currentThumb.classList.add(classes.classCurrent),thumbsContainerPos<=currentThumbPos||thumbsContainerPos>currentThumbLeft){const currentThumbMarginLeft=parseInt(window.getComputedStyle(currentThumb).marginLeft);popupThumbsContainer.scrollTo({top:0,left:currentThumbLeft-currentThumbMarginLeft,behavior:"smooth"})}};popup.listen("imageLoadComplete",setCurrentThumb),popup.listen("beforeChange",setCurrentThumb)}}).catch(e=>console.error(e))};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");document.querySelector(`#${toggleID}`).classList.toggle("expanding"),setTimeout(function(){document.querySelector(`#${toggleID}`).classList.toggle("expanded")},40)})})}function videoPopups(container){const videoPopups2=container.querySelectorAll("[data-vi
12deo-popup]");videoPopups2.length&&videoPopups2.forEach(element=>{element.addEventListener("click",function(e){const videoPopupHtml=element.getAttribute("data-video-popup");videoPopupHtml.trim()!==""&&(e.preventDefault(),openPhotoSwipe([{html:videoPopupHtml}]))})})}function lazyImageBackgrounds(){document.addEventListener("lazyloaded",function(e){const lazyImage=e.target.parentNode;lazyImage.classList.contains("lazy-image")&&(lazyImage.style.backgroundImage="none")})}resizeListener(),scrollListener(),lazyImageBackgrounds(),setVars(),window.addEventListener("load",()=>{setVarsOnResize(),floatLabels(document),preventOverflow(document),videoPopups(document),ariaToggle(document)}),document.addEventListener("shopify:section:load",e=>{const container=e.target;floatLabels(container),preventOverflow(container),videoPopups(container),ariaToggle(document),document.dispatchEvent(new CustomEvent("theme:header:update",{bubbles:!0}))}),document.addEventListener("shopify:section:reorder",()=>{document.dispatchEvent(new CustomEvent("theme:header:update",{bubbles:!0}))}),document.addEventListener("shopify:section:unload",()=>{setTimeout(()=>{document.dispatchEvent(new CustomEvent("theme:header:update",{bubbles:!0}))},200)}),(function(){function n(n2){var i2=window.innerWidth||document.documentElement.clientWidth,r2=window.innerHeight||document.documentElement.clientHeight,t2=n2.getBoundingClientRect();return t2.top>=0&&t2.bottom<=r2&&t2.left>=0&&t2.right<=i2}function t(n2){var i2=window.innerWidth||document.documentElement.clientWidth,r2=window.innerHeight||document.documentElement.clientHeight,t2=n2.getBoundingClientRect(),u=t2.left>=0&&t2.left<=i2||t2.right>=0&&t2.right<=i2,f=t2.top>=0&&t2.top<=r2||t2.bottom>=0&&t2.bottom<=r2;return u&&f}function i(n2,i2){function r2(){var r3=t(n2);r3!=u&&(u=r3,typeof i2=="function"&&i2(r3,n2))}var u=t(n2);window.addEventListener("load",r2),window.addEventListener("resize",r2),window.addEventListener("scroll",r2)}function r(t2,i2){function r2(){var r3=n(t2);r3!=u&&(u=r3,typeof i2=="function"&&i2(r3,t2))}var u=n(t2);window.addEventListener("load",r2),window.addEventListener("resize",r2),window.addEventListener("scroll",r2)}window.visibilityHelper={isElementTotallyVisible:n,isElementPartiallyVisible:t,inViewportPartially:i,inViewportTotally:r}})();const showElement=(elem,removeProp=!1,prop="block")=>{elem&&(removeProp?elem.style.removeProperty("display"):elem.style.display=prop)},selectors$2={saleClass:" is-sale",soldClass:" is-sold-out",badgeClass:" product-status-flag--",customBadgeClass:" product-status-flag--custom",apiContent:"[data-api-content]",productTemplate:"[data-product-template]"};Shopify.Products=(function(){const config={howManyToShow:4,howManyToStoreInMemory:10,wrapperId:"RecentlyViewed",onComplete:null};let productHandleQueue=[],wrapper=null,howManyToShowItems=null;const cookie={configuration:{expires:90,path:"/",domain:window.location.hostname},name:"shopify_recently_viewed",write:function(recentlyViewed){const recentlyViewedString=recentlyViewed.join(" ");document.cookie=`${this.name}=${recentlyViewedString}; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`},read:function(){let recentlyViewed=[],cookieValue=null;const templateProduct=document.querySelector(selectors$2.productTemplate);if(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=cookieValue.split(" ")),templateProduct){const currentProduct=templateProduct.getAttribute("data-product-handle");if(recentlyViewed.indexOf(currentProduct)!=-1){const currentProductIndex=recentlyViewed.indexOf(currentProduct);recentlyViewed.splice(currentProductIndex,1)}}return 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=()=>{showElement(wrapper,!0);const cookieItemsLength=cookie.read().length;if(Shopify.recentlyViewed&&howManyToShowItems&&cookieItemsLength&&cookieItemsLength<howManyToShowItems&&wrapper.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<wrapper.children.length;i++){const element=wrapper.children[i];allClassesArr.length&&element.classList.remove(...allClassesArr),addClassesArr.length&&element.classList.add(...addClassesArr)}}if(config.onComplete)try{config.onComplete()}catch(error){console.log("error: ",error)}},moveAlong=shown=>{productHandleQueue.length&&shown<config.howManyToShow?fetch("/products/"+productHandleQueue[0]+"?section_id=api-product-grid-item").then(response=>response.text()).then(product=>{const fresh=document.createElement("div");fresh.innerHTML=product,wrapper.innerHTML+=fresh.querySelector(selectors$2.apiContent).innerHTML,productHandleQueue.shift(),shown++,moveAlong(shown)}).catch(()=>{cookie.remove(productHandleQueue[0]),productHandleQueue.shift(),moveAlong(shown)}):finalize()};return{showRecentlyViewed:function(params){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)},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){const 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],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}})();function 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)}}function 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&&forceFocus(element,options)}function 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(function(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",function(){forceFocus(element,options)}),!0):!1})}function 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(function(element){return!!(element.offsetWidth||element.offsetHeight||element.getClientRects().length)})}var trapFocusHandlers={};function trapFocus(container,options){options=options||{};var elements=focusable(container),elementToFocus=options.elementToFocus||container,first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=function(event){container!==event.target&&!container.contains(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.keyCode===9&&(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),forceFocus(elementToFocus,options)}function removeTrapFocus(){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown)}function accessibleLinks(elements,options){if(typeof elements!="str
12ing")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(function(html,key){return 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(function(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)}var a11y=Object.freeze({__proto__:null,forceFocus,focusHash,bindInPageLinks,focusable,trapFocus,removeTrapFocus,accessibleLinks});const slideUp=(target,duration=500)=>{target.style.transitionProperty="all",target.style.transitionDuration=duration+"ms",target.style.boxSizing="border-box",target.style.height=target.offsetHeight+"px",target.offsetHeight,target.style.overflow="hidden",target.style.height=0,target.style.paddingTop=0,target.style.paddingBottom=0,target.style.marginTop=0,target.style.marginBottom=0,window.setTimeout(()=>{target.style.display="none",target.style.removeProperty("height"),target.style.removeProperty("padding-top"),target.style.removeProperty("padding-bottom"),target.style.removeProperty("margin-top"),target.style.removeProperty("margin-bottom"),target.style.removeProperty("overflow"),target.style.removeProperty("transition-duration"),target.style.removeProperty("transition-property")},duration)},slideDown=(target,duration=500,checkHidden=!0)=>{let display=window.getComputedStyle(target).display;if(checkHidden&&display!=="none")return;target.style.removeProperty("display"),display==="none"&&(display="block"),target.style.display=display;let height=target.offsetHeight;target.style.overflow="hidden",target.style.height=0,target.style.paddingTop=0,target.style.paddingBottom=0,target.style.marginTop=0,target.style.marginBottom=0,target.offsetHeight,target.style.boxSizing="border-box",target.style.transitionProperty="all",target.style.transitionDuration=duration+"ms",target.style.height=height+"px",target.style.removeProperty("padding-top"),target.style.removeProperty("padding-bottom"),target.style.removeProperty("margin-top"),target.style.removeProperty("margin-bottom"),window.setTimeout(()=>{target.style.removeProperty("height"),target.style.removeProperty("overflow"),target.style.removeProperty("transition-duration"),target.style.removeProperty("transition-property")},duration)};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 bgset=(image,imageAspectRatio)=>{let bgset2="";return image.indexOf("blank.gif")!=-1?image:(bgset2+=image.replace("_1x1.","_180x.")+" 180w "+Math.round(180/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_240x.")+" 240w "+Math.round(240/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_360x.")+" 360w "+Math.round(360/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_540x.")+" 540w "+Math.round(540/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_720x.")+" 720w "+Math.round(720/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_900x.")+" 900w "+Math.round(900/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_1080x.")+" 1080w "+Math.round(1080/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_1296x.")+" 1296w "+Math.round(1296/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_1512x.")+" 1512w "+Math.round(1512/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_1728x.")+" 1728w "+Math.round(1728/imageAspectRatio)+"h,",bgset2+=image.replace("_1x1.","_1950x.")+" 1950w "+Math.round(1950/imageAspectRatio)+"h,",bgset2+=image+" 2048w "+Math.round(2048/imageAspectRatio)+"h",bgset2)},selectors$3={quantityHolder:"[data-quantity-holder]",quantityField:"[data-quantity-field]",quantityButton:"[data-quantity-button]",quantityMinusButton:"[data-quantity-minus]",quantityPlus
12Button:"[data-quantity-plus]",quantityReadOnly:"read-only",isDisabled:"is-disabled"};class QuantityCounter{constructor(holder,inCart=!1){this.holder=holder,this.quantityUpdateCart=inCart}init(){this.settings=selectors$3,this.quantity=this.holder.querySelector(this.settings.quantityHolder),this.field=this.quantity.querySelector(this.settings.quantityField),this.buttons=this.quantity.querySelectorAll(this.settings.quantityButton),this.increaseButton=this.quantity.querySelector(this.settings.quantityPlusButton),this.quantityValue=Number(this.field.value||0),this.cartItemID=this.field.getAttribute("data-id"),this.maxValue=Number(this.field.getAttribute("max"))>0?Number(this.field.getAttribute("max")):null,this.minValue=Number(this.field.getAttribute("min"))>0?Number(this.field.getAttribute("min")):0,this.disableIncrease=this.disableIncrease.bind(this),this.emptyField=!1,this.updateQuantity=this.updateQuantity.bind(this),this.decrease=this.decrease.bind(this),this.increase=this.increase.bind(this),this.disableIncrease(),this.quantity.classList.contains(this.settings.quantityReadOnly)||(this.changeValueOnClick(),this.changeValueOnInput())}changeValueOnClick(){const that=this;this.buttons.forEach(element=>{element.addEventListener("click",event=>{event.preventDefault();const clickedElement=event.target,isDescrease=clickedElement.matches(that.settings.quantityMinusButton)||clickedElement.closest(that.settings.quantityMinusButton),isIncrease=clickedElement.matches(that.settings.quantityPlusButton)||clickedElement.closest(that.settings.quantityPlusButton);isDescrease&&that.decrease(),isIncrease&&that.increase(),that.updateQuantity()})})}changeValueOnInput(){const that=this;this.field.addEventListener("input",function(){that.quantityValue=this.value,this.value===""&&(that.emptyField=!0),that.updateQuantity()},this)}updateQuantity(){this.maxValue<this.quantityValue&&this.maxValue!==null&&(this.quantityValue=this.maxValue),this.minValue>this.quantityValue&&(this.quantityValue=this.minValue),this.field.value=this.quantityValue,this.disableIncrease(),document.dispatchEvent(new CustomEvent("popout:updateValue")),this.quantityUpdateCart&&this.updateCart()}decrease(){if(this.quantityValue>this.minValue){this.quantityValue--;return}this.quantityValue=0}increase(){this.quantityValue++}disableIncrease(){this.increaseButton.classList.toggle(this.settings.isDisabled,this.quantityValue>=this.maxValue&&this.maxValue!==null)}updateCart(){const event=new CustomEvent("cart:update",{bubbles:!0,detail:{id:this.cartItemID,quantity:this.quantityValue,valueIsEmpty:this.emptyField}});this.holder.dispatchEvent(event)}}const settings={dimensions:{maxSize:100},times:{timeoutAddProduct:1e3,closeDropdownAfter:5e3},classes:{template:"template-cart",hidden:"is-hidden",cartVisible:"cart--is-visible",open:"is-open",focused:"is-focused",visible:"is-visible",loading:"is-loading",disabled:"is-disabled",success:"product__form-submit--success",defaultSuccess:"is-success",cartEmpty:"cartToggle--empty",isAdded:"is-added"},attributes:{expanded:"aria-expanded",disabled:"disabled",dataId:"data-id"},elements:{apiContent:"[data-api-content]",html:"html",button:"button",buttonAddToCart:"[data-add-to-cart]",buttonAddToCartText:"[data-add-to-cart-text]",buttonHolder:"[data-foot-holder]",buttonUpdateCart:"[data-update-cart]",cart:"[data-cart]",cartContainer:"[data-cart-container]",cartTemplate:"[data-cart-template]",cartToggleElement:"[data-cart-toggle]",cartClose:"[data-cart-close]",cartItemRemove:"[data-item-remove]",cartItemsCount:"[data-cart-items-count]",cartTotal:"[data-cart-total]",cartErrors:"[data-cart-errors]",cartCloseError:"[data-cart-error-close]",cartOriginalTotal:"[data-cart-original-total]",cartOriginaTotalPrice:"[data-cart-original-total-price]",cartDiscountsHolder:"[data-cart-discounts-holder]",cartAcceptanceCheckbox:"[data-cart-acceptance-checkbox]",cartButtons:"[data-cart-buttons]",cartButtonsFieldset:"[data-cart-buttons-fieldset]",cartFormError:"[data-cart-error]",cartMessage:"data-cart-message",continueBtn:"[data-continue]",emptyMessage:"[data-empty-message]",errorMessage:"[data-error-message]",freeMessageLimit:"data-limit",input:"input",item:"[data-item]",itemsHolder:"[data-items-holder]",leftToSpend:"[data-left-to-spend]",popover:"[data-popover]",popoverTemplate:"[data-popover-template]",progressBar:"[data-cart-bar-progress]",qty:"[data-quantity-field]",quickAddHolder:"[data-quick-add-h
12older]"},formatMoney:moneyFormat,cartTotalDiscountsTemplate:"[data-cart-total-discount]"};class CartDrawer{constructor(){window.location.pathname!=="/password"&&this.init()}init(){this.html=document.querySelector(settings.elements.html),this.body=document.body,this.defineSelectors(),this.accessibility=a11y,this.ajaxEnabled=theme.settings.enableAjaxCart,this.popoverTimer="",this.scrollLockTimeout=0,this.cartFocusTimeout=0,this.form=null,this.cartItemsCount=document.querySelector(settings.elements.cartItemsCount),this.cartDrawerIsOpen=!1,this.cartDiscounts=0,this.cartLimitErrorIsHidden=!0,this.openCartDrawer=this.openCartDrawer.bind(this),this.closeCartDrawer=this.closeCartDrawer.bind(this),this.toggleCartDrawer=this.toggleCartDrawer.bind(this),this.cartKeyUpEvent=this.cartKeyUpEvent.bind(this),this.ajaxEnabled&&this.eventToggleCart(),this.initDefaultCartEvents(),this.addProductEvent(),addEventListener("refresh:cart",()=>{const callback=()=>{const event=new Event("refresh:done",{bubbles:!0});document.dispatchEvent(event)};this.getCart(callback)})}renderCart(){this.cartContainer.innerHTML=document.querySelector(settings.elements.cartTemplate).innerHTML,this.totalItems=this.items.length,this.defineSelectors(),this.initDefaultCartEvents(),this.getCart()}defineSelectors(){this.cartContainer=document.querySelector(settings.elements.cartContainer),this.cartTemplate=document.querySelector(settings.elements.cartTemplate),this.popover=document.querySelector(settings.elements.popover),this.popoverTemplate=document.querySelector(settings.elements.popoverTemplate).innerHTML,this.cart=document.querySelector(settings.elements.cart),this.emptyMessage=document.querySelector(settings.elements.emptyMessage),this.buttonHolder=document.querySelector(settings.elements.buttonHolder),this.itemsHolder=document.querySelector(settings.elements.itemsHolder),this.items=document.querySelectorAll(settings.elements.item),this.cartToggle=document.querySelector(settings.elements.cartToggleElement),this.continueBtns=document.querySelectorAll(settings.elements.continueBtn),this.cartTotal=document.querySelector(settings.elements.cartTotal),this.cartOriginalTotal=document.querySelector(settings.elements.cartOriginalTotal),this.cartOriginaTotalPrice=document.querySelector(settings.elements.cartOriginaTotalPrice),this.cartDiscountHolder=document.querySelector(settings.elements.cartDiscountsHolder),this.cartTotalDiscountTemplate=document.querySelector(settings.cartTotalDiscountsTemplate).innerHTML,this.cartErrorHolder=document.querySelector(settings.elements.cartErrors),this.cartClose=document.querySelector(settings.elements.cartClose),this.cartCloseErrorMessage=document.querySelector(settings.elements.cartCloseError),this.cartAcceptanceCheckbox=document.querySelector(settings.elements.cartAcceptanceCheckbox),this.cartMessage=document.querySelector(`[${settings.elements.cartMessage}]`),this.progressBar=document.querySelector(settings.elements.progressBar),this.leftToSpend=document.querySelector(settings.elements.leftToSpend)}initDefaultCartEvents(){this.ajaxEnabled?(this.cartEvents(),this.customEventAddProduct()):this.items.length&&this.noAjaxUpdate(),this.initQuantity(this.ajaxEnabled),this.cartMessage&&(this.cartFreeLimitShipping=Number(this.cartMessage.getAttribute(settings.elements.freeMessageLimit)),this.cartBarProgress())}initQuantity(ajax){this.items=document.querySelectorAll(settings.elements.item),this.items.forEach(item=>{new QuantityCounter(item,!0).init(),ajax&&this.customEventsHandle(item)})}noAjaxUpdate(){this.buttonHolder.querySelector(settings.elements.buttonUpdateCart).addEventListener("click",e=>{e.preventDefault(),this.items.forEach(item=>{const qty=item.querySelector(`input[${settings.attributes.dataId}]`);this.updateCart({id:qty.getAttribute(settings.attributes.dataId),quantity:qty.value})})})}customEventsHandle(holder){holder.addEventListener("cart:update",debounce(event=>{this.updateCart({id:event.detail.id,quantity:event.detail.quantity},holder,event.detail.valueIsEmpty)},500))}customEventAddProduct(){document.addEventListener("cart:add-item",debounce(event=>{this.cartToggle.classList.add(settings.classes.isAdded),setTimeout(()=>{this.cartToggle.classList.remove(settings.classes.isAdded)},800)},500))}cartEvents(){const cartItemRemove=document.querySelectorAll(sett
12ings.elements.cartItemRemove);cartItemRemove&&cartItemRemove.forEach(item=>{item.addEventListener("click",event=>{event.preventDefault(),event.target.closest(settings.elements.item).classList.add(settings.classes.loading),this.updateCart({id:item.getAttribute(settings.attributes.dataId),quantity:0})})}),this.cartCloseErrorMessage&&this.cartCloseErrorMessage.addEventListener("click",event=>{event.preventDefault(),slideUp(this.cartErrorHolder,400)}),this.continueBtns&&this.continueBtns.forEach(continueBtn=>{continueBtn.addEventListener("click",e=>{const referrer=document.referrer,origin=window.location.origin+"/",notMobile=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>theme.sizes.small;e.preventDefault(),notMobile&&!(window.location.href.indexOf("/cart")>-1)?this.closeCartDrawer():referrer===origin?window.location.href=theme.routes.root_url:history.back(1)})}),this.cartClose&&this.cartClose.addEventListener("click",this.closeCartDrawer),this.cartContainer&&this.cartContainer.addEventListener("keyup",this.cartKeyUpEvent),this.cartAcceptanceCheckbox&&(this.cart.addEventListener("click",event=>{const clickedElement=event.target;(clickedElement.matches(settings.elements.cartButtons)||clickedElement.closest(settings.elements.cartButtons))&&this.termsAcceptance(event)}),this.cartAcceptanceCheckbox.addEventListener("change",event=>this.termsAcceptance(event)),this.cartAcceptanceCheckbox.checked===!1&&this.cart.querySelector(settings.elements.cartButtonsFieldset).setAttribute(settings.attributes.disabled,!0))}cartKeyUpEvent(e){(e.which||e.keyCode)===theme.keyboardKeys.ESCAPE&&this.cartDrawerIsOpen&&(this.closeCartDrawer(),this.popoverHide())}termsAcceptance(event){const termsNotAccepted=this.cartAcceptanceCheckbox.checked===!1,cartFormError=this.cart.querySelector(settings.elements.cartFormError),cartButtonsFieldset=this.cart.querySelector(settings.elements.cartButtonsFieldset);termsNotAccepted?(event.preventDefault(),cartButtonsFieldset.setAttribute(settings.attributes.disabled,!0),slideDown(cartFormError)):(cartButtonsFieldset.removeAttribute(settings.attributes.disabled),slideUp(cartFormError))}renderPopover(product,qty){let item={},prodImg=theme.assets.no_image,unitPrice="";const price=themeCurrency.formatMoney(product.final_price,settings.formatMoney),sellingPlanName=product.selling_plan_allocation?product.selling_plan_allocation.selling_plan.name:null;let properties="";if(product.unit_price_measurement&&(unitPrice=`${themeCurrency.formatMoney(product.unit_price,settings.formatMoney)} `,product.unit_price_measurement.reference_value!=1&&(unitPrice+=product.unit_price_measurement.reference_value),unitPrice+=product.unit_price_measurement.reference_unit),product.image!=null&&(prodImg=bgset(product.image.replace(/(\.[^.]*)$/,"_1x1$1").replace("http:",""),product.featured_image.aspect_ratio)),product.properties)for(const property in product.properties)({}).hasOwnProperty.call(product.properties,property)&&(properties+="<p>"+property+": "+product.properties[property]+"</p>");return item={item_count:qty,img:prodImg,product_title:product.product_title,variation:product.product_has_only_default_variant?!1:product.variant_title,selling_plan_name:sellingPlanName,properties,price:product.price,price_formatted:price,unit_price:unitPrice},Sqrl.render(this.popoverTemplate,item)}popoverShow(product,quantity2){this.popover.innerHTML=this.renderPopover(product,quantity2),this.popover.classList.add(settings.classes.visible),clearTimeout(this.popoverTimer),this.popoverTimer=setTimeout(()=>{this.popoverHide()},settings.times.closeDropdownAfter)}popoverHide(){this.popover.classList.remove(settings.classes.visible),setTimeout(()=>{this.popover.innerHtml=""},300)}addProductEvent(){document.addEventListener("click",event=>{if(event.target.matches(settings.elements.buttonAddToCart)){event.preventDefault();const button=event.target;if(button.hasAttribute(settings.attributes.disabled))return;button.setAttribute(settings.attributes.disabled,!0),this.form=button.closest("form");const quantity2=this.form.querySelector(settings.elements.qty).value;let formData=new FormData(this.form);if(formData=new URLSearchParams(formData).toString(),this.form.querySelector('[type="file"]'))return;this.addToCart(formData,null,button,quantity2),document.dispatchEvent(new CustomEvent("cart:add-item",{bubbles:!0,detail:{selector:button}}))}})}getCart(cb){fetch("/cart.js").then(this.handleErrors).then(response=>response.json()).then(response=>(this.updateCounter(response.item_count),this.cart!==null&&(this.newTotalItems=response.items.length,this.buildTotalPrice(response),this.subtotal=response.total_price),fetch("/cart?section_id=api-cart-items"))).then(response=>response.text()).then(response=>{this.build(response),this.cartMessage&&this.cartBarProgress(),typeof cb=="function"&&cb()}).catch(error=>console.log(error))}addToCart(data,quickAddHolder=null,button=null,quantity2=1){fetch("/cart/add.js",{method:"POST",headers:{"X-Requested-With":"XMLHttpRequest","Content-Type":"application/x-www-form-urlencoded"},body:data}).then(response=>response.json()).then(response=>{if(response.status){quickAddHolder!==null?this.addToCartError(response,quickAddHolder.element,button):this.addToCartError(response,null,button);return}this.ajaxEnabled?(this.cart!==null?this.getCart():this.renderCart(),button&&(button.classList.remove(settings.classes.loading),button.classList.add(settings.classes.success)),setTimeout(()=>{button!==null&&(button.removeAttribute(settings.attributes.disabled),button.classList.remove(settings.classes.success)),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>=theme.sizes.mobile&&this.popoverShow(response,quantity2)},settings.times.timeoutAddProduct)):window.location.href=theme.routes.cart_url}).catch(error=>console.log(error))}updateCart(updateData={},holder=null,valueIsEmpty=!1){let newCount=null,oldCount=null,newItem=null,settedQuantity=updateData.quantity;holder!==null&&holder.closest(settings.elements.item).classList.add(settings.classes.loading),this.items.forEac
12h(item=>{item.classList.add(settings.classes.disabled),item.querySelector(settings.elements.input).setAttribute(settings.attributes.disabled,!0),item.querySelector(settings.elements.input).blur(),item.querySelectorAll(settings.elements.button).forEach(button=>{button.setAttribute(settings.attributes.disabled,!0)})}),fetch("/cart.js").then(this.handleErrors).then(response=>response.json()).then(response=>{const matchKeys=item=>item.key===updateData.id,index=response.items.findIndex(matchKeys);oldCount=response.item_count,newItem=response.items[index].title;const data={line:`${index+1}`,quantity:settedQuantity};return fetch("/cart/change.js",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify(data)})}).then(this.handleErrors).then(response=>response.json()).then(response=>{if(newCount=response.item_count,valueIsEmpty&&(settedQuantity=1),this.ajaxEnabled)settedQuantity!==0&&(this.cartLimitErrorIsHidden=newCount!==oldCount,this.toggleLimitError(newItem)),this.updateCounter(newCount),this.buildTotalPrice(response),this.cartDiscounts=response.total_discount,this.subtotal=response.total_price,this.cartMessage&&this.cartBarProgress(),this.getCart();else{const form=this.buttonHolder.closest("form");response.items.forEach(item=>{item.key===updateData.id&&(form.querySelector(`[${settings.attributes.dataId}="${item.key}"]`).value=item.quantity)}),form.submit()}}).catch(error=>console.log(error))}toggleLimitError(itemTitle){this.cartErrorHolder.querySelector(settings.elements.errorMessage).innerText=itemTitle,this.cartLimitErrorIsHidden?slideUp(this.cartErrorHolder,400):slideDown(this.cartErrorHolder,400)}handleErrors(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}addToCartError(data,quickAddHolder,button){if(!this.ajaxEnabled)return;let errorContainer=this.popover;if(button!==null){const addToCartText=button.querySelector(settings.elements.buttonAddToCartText);addToCartText.textContent=theme.translations.form_submit_error,button.setAttribute(settings.attributes.disabled,settings.attributes.disabled),setTimeout(()=>{button.removeAttribute(settings.attributes.disabled),addToCartText.textContent=theme.translations.form_submit},1e3)}clearTimeout(this.popoverTimer),errorContainer&&(errorContainer.innerHTML=`<div class="popover-error">${data.message}: ${data.description}</div>`,errorContainer.classList.add(settings.classes.visible)),quickAddHolder&&this.html.dispatchEvent(new CustomEvent("cart:add-to-error",{bubbles:!0,detail:{message:data.message,description:data.description,holder:quickAddHolder}})),this.popoverTimer=setTimeout(()=>{errorContainer.classList.remove(settings.classes.visible)},settings.times.closeDropdownAfter)}openCartDrawer(){this.popoverHide(),this.cart===null&&this.renderCart(),document.dispatchEvent(new CustomEvent("theme:drawer:close",{bubbles:!1})),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0,detail:this.cart})),this.setCartClosePosition(),this.body.classList.add(settings.classes.cartVisible),this.cart.classList.add(settings.classes.open),this.cartToggle.setAttribute(settings.attributes.expanded,!0),this.accessibility.removeTrapFocus(),this.cartDrawerIsOpen=!0,this.cartFocusTimeout&&clearTimeout(this.cartFocusTimeout),this.cartFocusTimeout=setTimeout(()=>{this.accessibility.trapFocus(this.cart,{elementToFocus:this.cart.querySelector("a, button, input")})},500)}closeCartDrawer(){if(this.cartDrawerIsOpen=!1,document.dispatchEvent(new CustomEvent("theme:cart-close",{bubbles:!0})),this.accessibility.removeTrapFocus(),slideUp(this.cartErrorHolder,400),this.body.classList.contains(settings.classes.focused)){const button=document.querySelector(`${settings.elements.cartToggleElement}`);setTimeout(()=>{button.focus()},200)}this.body.classList.remove(settings.classes.cartVisible),this.cart.classList.remove(settings.classes.open),this.cartToggle.setAttribute(settings.attributes.expanded,!1),this.popoverHide(),this.scrollLockTimeout&&clearTimeout(this.scrollLockTimeout),this.scrollLockTimeout=setTimeout(()=>{document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))},500)}toggleCartDrawer(){this.body.classList.contains(settings.classes.template)||(this.cartDrawerIsOpen?this.closeCartDrawer():this.openCartDrawer())}eventToggleCart(){document.addEventListener("click",event=>{const clickedElement=event.target,windowWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,isCartToggle=clickedElement.matches(settings.elements.cartToggleElement)||clickedElement.closest(settings.elements.cartToggleElement),isPopover=clickedElement.matches(settings.elements.popover)||clickedElement.closest(settings.elements.popover);windowWidth>theme.sizes.small&&(isCartToggle||isPopover)&&(this.toggleCartDrawer(),event.preventDefault())})}toggleClassesOnContainers(){this.emptyMessage.classList.toggle(settings.classes.hidden,this.hasItemsInCart()),this.buttonHolder.classList.toggle(settings.classes.hidden,!this.hasItemsInCart()),this.itemsHolder.classList.toggle(settings.classes.hidden,!this.hasItemsInCart())}build(data){if(this.cart===null){this.renderCart();return}this.totalItems!==this.newTotalItems&&(this.totalItems=this.newTotalItems,this.toggleClassesOnContainers());const fresh=document.createElement("div");fresh.innerHTML=data,this.itemsHolder.innerHTML=fresh.querySelector(settings.elements.apiContent).innerHTML,this.cartEvents(),this.initQuantity(this.ajaxEnabled)}updateCounter(countItems){countItems>0?this.cartToggle.classList.remove(settings.classes.cartEmpty):this.cartToggle.classList.add(settings.classes.cartEmpty),this.cartItemsCount&&(this.cartItemsCount.innerText=countItems<10?countItems:"9+")}hasItemsInCart(){return this.totalItems>0}buildTotalPrice(data){if(this.cart!==null)if(data.original_total_price>data.total_price&&data.cart_level_discount_applications.length>0?(this.cartOriginalTotal.classList.remove(settings.classes.hidden),this.cartOriginaTotalPrice.innerHTML=themeCurrency.formatMoney(data.original_total_price,settings.formatMoney)):this.cartOriginalTotal.classList.add(settings.classes.hidden),this.cartTotal.innerHTML=themeCurrency.formatMoney(data.total_price,settings.formatMoney),data.cart_level_discount_applications.length>0){const discountsMarkup=this.buildCartTotalDiscounts(data.cart_level_discount_applications);this.cartDiscountHolder.classList.remove(settings.classes.hidden),this.cartDiscountHolder.innerHTML=discountsMarkup}else this.cartDiscountHolder.classList.add(settings.classes.hidden)}buildCartTotalDiscounts(discounts){let discountMarkup="";
12return discounts.forEach(discount=>{discountMarkup+=Sqrl.render(this.cartTotalDiscountTemplate,{discount_title:discount.title,discount_total_allocated_amount:themeCurrency.formatMoney(discount.total_allocated_amount,settings.formatMoney)})}),discountMarkup}setCartClosePosition(){if(this.cartToggle){const cartToggleTop=this.cartToggle.getBoundingClientRect().top,containerPadding=40;this.cartClose.style.top=`${cartToggleTop-containerPadding}px`}}cartBarProgress(){if(this.subtotal===void 0)return;let percent=this.subtotal,leftToSpend=themeCurrency.formatMoney(this.cartFreeLimitShipping-this.subtotal,settings.formatMoney);this.subtotal>0&&(percent=settings.dimensions.maxSize-(this.cartFreeLimitShipping-this.subtotal)*settings.dimensions.maxSize/this.cartFreeLimitShipping),percent>settings.dimensions.maxSize&&(percent=settings.dimensions.maxSize,leftToSpend="0"),this.progressBar.style.width=`${percent}%`,this.leftToSpend&&(this.leftToSpend.innerHTML=leftToSpend.replace(".00","")),this.checkForFreeDelivery()}checkForFreeDelivery(){const cartMessageClass=this.cartMessage.hasAttribute(settings.elements.cartMessageValue)&&this.cartMessage.getAttribute(settings.elements.cartMessageValue)==="true"&&this.subtotal!==0?"":settings.classes.defaultSuccess;this.cartMessage.classList.toggle(cartMessageClass,this.subtotal>=this.cartFreeLimitShipping||this.subtotal===0)}}window.cart=new CartDrawer;const settings$1={elements:{html:"html",body:"body",inPageLink:"[data-skip-content]",linkesWithOnlyHash:'a[href="#"]',triggerFocusElement:"[data-focus-element]",viewAll:"[data-view-all]"},classes:{focus:"is-focused"}};class Accessibility{constructor(){this.init()}init(){this.settings=settings$1,this.window=window,this.document=document,this.a11y=a11y,this.inPageLink=this.document.querySelector(this.settings.elements.inPageLink),this.linkesWithOnlyHash=this.document.querySelectorAll(`${this.settings.elements.linkesWithOnlyHash}:not(${this.settings.elements.viewAll})`),this.html=this.document.querySelector(this.settings.elements.html),this.body=this.document.querySelector(this.settings.elements.body),this.lastFocused=null,this.isFocused=!1,this.a11y.focusHash(),this.a11y.bindInPageLinks(),this.clickEvents(),this.focusEvents(),this.focusEventsOff(),this.closeExpandedElements()}clickEvents(){this.inPageLink&&this.inPageLink.addEventListener("click",event=>{event.preventDefault()}),this.linkesWithOnlyHash&&this.linkesWithOnlyHash.forEach(item=>{item.addEventListener("click",event=>{event.preventDefault()})})}focusEvents(){this.document.addEventListener("keyup",event=>{event.keyCode===theme.keyboardKeys.TAB&&(this.body.classList.add(this.settings.classes.focus),this.isFocused=!0)}),this.document.addEventListener("keyup",event=>{if(!this.isFocused)return;const target=event.target,pressEnterOrSpace=event.keyCode===theme.keyboardKeys.ENTER||event.keyCode===theme.keyboardKeys.SPACE,targetElement=target.matches(this.settings.elements.triggerFocusElement)||target.closest(this.settings.elements.triggerFocusElement);pressEnterOrSpace&&targetElement&&this.lastFocused===null&&(this.lastFocused=target)}),this.html.addEventListener("cart:add-item",event=>{this.lastFocused=event.detail.selector})}focusEventsOff(){this.document.addEventListener("mousedown",()=>{this.body.classList.remove(this.settings.classes.focus),this.isFocused=!1})}closeExpandedElements(){document.addEventListener("keyup",event=>{event.keyCode===theme.keyboardKeys.ESCAPE&&(this.a11y.removeTrapFocus(),this.lastFocused!==null&&setTimeout(()=>{this.lastFocused.focus(),this.lastFocused=null},600))})}}window.accessibility=new Accessibility,Sqrl.filters.define("handle",function(str){str=str.toLowerCase();for(var toReplace=['"',"'","\\","(",")","[","]"],i=0;i<toReplace.length;++i)str=str.replace(toReplace[i],"");return str=str.replace(/\W+/g,"-"),str.charAt(str.length-1)=="-"&&(str=str.replace(/-+\z/,"")),str.charAt(0)=="-"&&(str=str.replace(/\A-+/,"")),str}),Sqrl.filters.define("last",function(str){const words=str.split("-");return words[words.length-1]}),Sqrl.filters.define("asset_url",function(str){let asset=theme.assets.image;return asset=asset.replace("image",str),asset}),window.isYoutubeAPILoaded=!1;function loadYoutubeAPI(){if(!window.isYoutubeAPILoaded){var tag=document.createElement("script");tag.src="https://www.youtube.com/iframe_api";var firstScriptTag=document.getElementsByTagName("script")[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag)}}function onYouTubeIframeAPIReady(){window.isYoutubeAPILoaded=!0,document.body.dispatchEvent(new CustomEvent("youtubeAPIReady"))}window.onYouTubeIframeAPIReady=onYouTubeIframeAPIReady,window.loadYoutubeAPI=loadYoutubeAPI,theme.ProductModel=(function(){let modelJsonSections={},models={},xrButtons={};const selectors2={productMediaWrapper:"[data-product-single-media-wrapper]",productXr:"[data-shopify-xr]",dataMediaId:"data-media-id",dataModelId:"data-model-id",dataModel3d:"data-shopify-model3d-id",modelViewer:"model-viewer",modelJson:"#ModelJson-",classMediaHidden:"media--hidden",deferredMedia:"[data-deferred-media]",deferredMediaButton:"[data-deferred-media-button]"},classes2={isLoading:"is-loading"};function init(mediaContainer,sectionId){modelJsonSections[sectionId]={loaded:!1};const deferredMediaButton=mediaContainer.querySelector(selectors2.deferredMediaButton);deferredMediaButton&&deferredMediaButton.addEventListener("click",loadContent.bind(this,mediaContainer,sectionId))}function loadContent(mediaContainer,sectionId){if(mediaContainer.querySelector(selectors2.deferredMedia).getAttribute("loaded"))return;mediaContainer.classList.add(classes2.isLoading);const content=document.createElement("div");content.appendChild(mediaContainer.querySelector("template").content.firstElementChild.cloneNode(!0));const modelViewerElement=content.querySelector("model-viewer"),deferredMedia=mediaContainer.querySelector(selectors2.deferredMedia);deferredMedia.appendChild(modelViewerElement).focus(),deferredMedia.setAttribute("loaded",!0);const mediaId=mediaContainer.dataset.mediaId,modelId=modelViewerElement.dataset.modelId,xrButton=mediaContainer.closest(selectors2.productMediaWrapper).querySelector(selectors2.productXr);xrButtons[sectionId]={element:xrButton,defaultId:modelId},models[mediaId]={modelId,mediaId,sectionId,container:mediaContainer,element:modelViewerElement},window.Shopify.loadFeatures([{name:"shopify-xr",version:"1.0",onLoad:setupShopifyXr}
12,{name:"model-viewer-ui",version:"1.0",onLoad:setupModelViewerUi}])}function setupShopifyXr(errors){if(errors){console.warn(errors);return}if(!window.ShopifyXR){document.addEventListener("shopify_xr_initialized",function(){setupShopifyXr()});return}for(const sectionId in modelJsonSections)if(modelJsonSections.hasOwnProperty(sectionId)){const modelSection=modelJsonSections[sectionId];if(modelSection.loaded)continue;const modelJson=document.querySelector(`${selectors2.modelJson}${sectionId}`);modelJson&&(window.ShopifyXR.addModels(JSON.parse(modelJson.innerHTML)),modelSection.loaded=!0)}window.ShopifyXR.setupXRElements()}function setupModelViewerUi(errors){if(errors){console.warn(errors);return}for(const key in models)if(models.hasOwnProperty(key)){const model=models[key];model.modelViewerUi||(model.modelViewerUi=new Shopify.ModelViewerUI(model.element)),setupModelViewerListeners(model)}}function setupModelViewerListeners(model){const xrButton=xrButtons[model.sectionId];model.container.addEventListener("mediaVisible",function(){xrButton.element.setAttribute(selectors2.dataModel3d,model.modelId),pauseOtherMedia(model.mediaId),!window.theme.touched&&model.modelViewerUi.play()}),model.container.addEventListener("mediaHidden",function(){model.modelViewerUi.pause()}),model.container.addEventListener("xrLaunch",function(){model.modelViewerUi.pause()}),model.element.addEventListener("load",()=>{model.container.classList.remove(classes2.isLoading)}),model.element.addEventListener("shopify_model_viewer_ui_toggle_play",function(){pauseOtherMedia(model.mediaId)})}function pauseOtherMedia(mediaId){const mediaIdString=`[${selectors2.dataMediaId}="${mediaId}"]`,currentMedia=document.querySelector(`${selectors2.productMediaWrapper}${mediaIdString}`),otherMedia=document.querySelectorAll(`${selectors2.productMediaWrapper}:not(${mediaIdString})`);currentMedia.classList.remove(selectors2.classMediaHidden),otherMedia.length&&otherMedia.forEach(element=>{element.dispatchEvent(new CustomEvent("mediaHidden")),element.classList.add(selectors2.classMediaHidden)})}function removeSectionModels(sectionId){for(const key in models)models.hasOwnProperty(key)&&models[key].sectionId===sectionId&&delete models[key];delete modelJsonSections[sectionId],delete theme.mediaInstances[sectionId]}return{init,loadContent,removeSectionModels}})();const selectors$4={templateAddresses:".template-customers-addresses",accountForm:"[data-form]",addressNewForm:"[data-form-new]",btnNew:"[data-button-new]",btnEdit:"[data-button-edit]",btnDelete:"[data-button-delete]",btnCancel:"[data-button-cancel]",dataFormId:"data-form-id",defaultConfirmMessage:"Are you sure you wish to delete this address?",editAddress:"data-form-edit",addressCountryNew:"AddressCountryNew",addressProvinceNew:"AddressProvinceNew",addressProvinceContainerNew:"AddressProvinceContainerNew",addressCountryOption:"[data-country-option]",addressCountry:"AddressCountry",addressProvince:"AddressProvince",addressProvinceContainer:"AddressProvinceContainer",notOptionalInputs:'input[type="text"]:not(.optional)'},classes$1={hidden:"is-hidden",validation:"validation--showup"};class Addresses{constructor(section){this.section=section,this.addressNewForm=this.section.querySelector(selectors$4.addressNewForm),this.accountForms=this.section.querySelectorAll(selectors$4.accountForm),this.init(),this.validate()}init(){if(this.addressNewForm){const section=this.section,newAddressForm=this.addressNewForm;this.customerAddresses();const newButtons=section.querySelectorAll(selectors$4.btnNew);newButtons.length&&newButtons.forEach(button=>{button.addEventListener("click",function(e){e.preventDefault(),button.classList.add(classes$1.hidden),newAddressForm.classList.remove(classes$1.hidden)})});const editButtons=section.querySelectorAll(selectors$4.btnEdit);editButtons.length&&editButtons.forEach(button=>{button.addEventListener("click",function(e){e.preventDefault();const formId=this.getAttribute(selectors$4.dataFormId);section.querySelector(`[${selectors$4.editAddress}="${formId}"]`).classList.toggle(classes$1.hidden)})});const deleteButtons=section.querySelectorAll(selectors$4.btnDelete);deleteButtons.length&&deleteButtons.forEach(button=>{button.addEventListener("click",function(e){e.preventDefault();const formId=this.getAttribute(selectors$4.dataFormId);confirm(selectors$4.defaultConfirmMessage)&&Shopify.postLink("/account/addresses/"+formId,{parameters:{_method:"delete"}})})});const cancelButtons=section.querySelectorAll(selectors$4.btnCancel);cancelButtons.length&&cancelButtons.forEach(button=>{button.addEventListener("click",function(e){e.preventDefault(),this.closest(selectors$4.accountForm).classList.add(classes$1.hidden),document.querySelector(selectors$4.btnNew).classList.remove(classes$1.hidden)})})}}customerAddresses(){Shopify.CountryProvinceSelector&&new Shopify.CountryProvinceSelector(selectors$4.addressCountryNew,selectors$4.addressProvinceNew,{hideElement:selectors$4.addressProvinceContainerNew}),this.section.querySelectorAll(selectors$4.addressCountryOption).forEac
12h(element=>{const formId=element.getAttribute(selectors$4.dataFormId),countrySelector=`${selectors$4.addressCountry}_${formId}`,provinceSelector=`${selectors$4.addressProvince}_${formId}`,containerSelector=`${selectors$4.addressProvinceContainer}_${formId}`;Shopify.CountryProvinceSelector&&new Shopify.CountryProvinceSelector(countrySelector,provinceSelector,{hideElement:containerSelector})})}validate(){this.accountForms.forEach(accountForm=>{const form=accountForm.querySelector("form"),inputs=form.querySelectorAll(selectors$4.notOptionalInputs);form.addEventListener("submit",event=>{let isEmpty=!1;inputs.forEach(input=>{input.value?input.nextElementSibling.classList.remove(classes$1.validation):(input.nextElementSibling.classList.add(classes$1.validation),isEmpty=!0)}),isEmpty&&event.preventDefault()})})}}const template=document.querySelector(selectors$4.templateAddresses);template&&new Addresses(template);const selectors$5={form:"[data-account-form]",showReset:"[data-show-reset]",hideReset:"[data-hide-reset]",recover:"[data-recover-password]",login:"[data-login-form]",recoverHash:"#recover"},classes$2={hidden:"is-hidden"};class Login{constructor(form){this.form=form,this.showButton=form.querySelector(selectors$5.showReset),this.hideButton=form.querySelector(selectors$5.hideReset),this.recover=form.querySelector(selectors$5.recover),this.login=form.querySelector(selectors$5.login),this.init()}init(){window.location.hash==selectors$5.recoverHash?this.showRecoverPasswordForm():this.hideRecoverPasswordForm(),this.showButton.addEventListener("click",function(e){e.preventDefault(),this.showRecoverPasswordForm()}.bind(this),!1),this.hideButton.addEventListener("click",function(e){e.preventDefault(),this.hideRecoverPasswordForm()}.bind(this),!1)}showRecoverPasswordForm(){return this.recover.classList.remove(classes$2.hidden),this.login.classList.add(classes$2.hidden),window.location.hash=selectors$5.recoverHash,!1}hideRecoverPasswordForm(){return this.login.classList.remove(classes$2.hidden),this.recover.classList.add(classes$2.hidden),window.location.hash="",!1}}const loginForm=document.querySelector(selectors$5.form);loginForm&&new Login(loginForm),window.Shopify=window.Shopify||{},window.Shopify.theme=window.Shopify.theme||{},window.Shopify.theme.sections=window.Shopify.theme.sections||{},window.Shopify.theme.sections.registered=window.Shopify.theme.sections.registered||{},window.Shopify.theme.sections.instances=window.Shopify.theme.sections.instances||[];const registered=window.Shopify.theme.sections.registered,instances=window.Shopify.theme.sections.instances,selectors$6={id:"data-section-id",type:"data-section-type"};class Registration{constructor(type=null,components=[]){this.type=type,this.components=validateComponentsArray(components),this.callStack={onLoad:[],onUnload:[],onSelect:[],onDeselect:[],onBlockSelect:[],onBlockDeselect:[],onReorder:[]},components.forEach(comp=>{for(const[key,value]of Object.entries(comp)){const arr=this.callStack[key];Array.isArray(arr)&&typeof value=="function"?arr.push(value):(console.warn(`Unregisted function: '${key}' in component: '${this.type}'`),console.warn(value))}})}getStack(){return this.callStack}}class Section{constructor(container,registration){this.container=validateContainerElement(container),this.id=container.getAttribute(selectors$6.id),this.type=registration.type,this.callStack=registration.getStack();try{this.onLoad()}catch(e){console.warn(`Error in section: ${this.id}`),console.warn(this),console.warn(e)}}callFunctions(key,e=null){this.callStack[key].forEach(func=>
12{const props={id:this.id,type:this.type,container:this.container};e?func.call(props,e):func.call(props)})}onLoad(){this.callFunctions("onLoad")}onUnload(){this.callFunctions("onUnload")}onSelect(e){this.callFunctions("onSelect",e)}onDeselect(e){this.callFunctions("onDeselect",e)}onBlockSelect(e){this.callFunctions("onBlockSelect",e)}onBlockDeselect(e){this.callFunctions("onBlockDeselect",e)}onReorder(e){this.callFunctions("onReorder",e)}}function validateContainerElement(container){if(!(container instanceof Element))throw new TypeError("Theme Sections: Attempted to load section. The section container provided is not a DOM element.");if(container.getAttribute(selectors$6.id)===null)throw new Error("Theme Sections: The section container provided does not have an id assigned to the "+selectors$6.id+" attribute.");return container}function validateComponentsArray(value){if(typeof value<"u"&&typeof value!="object"||value===null)throw new TypeError("Theme Sections: The components object provided is not a valid");return value}function register(type,components){if(typeof type!="string")throw new TypeError("Theme Sections: The first argument for .register must be a string that specifies the type of the section being registered");if(typeof registered[type]<"u")throw new Error('Theme Sections: A section of type "'+type+'" has already been registered. You cannot register the same section type twice');Array.isArray(components)||(components=[components]);const section=new Registration(type,components);return registered[type]=section,registered}function load(types,containers){types=normalizeType(types),typeof containers>"u"&&(containers=document.querySelectorAll("["+selectors$6.type+"]")),containers=normalizeContainers(containers),types.forEach(function(type){const registration=registered[type];typeof registration>"u"||(containers=containers.filter(function(container){return isInstance(container)||container.getAttribute(selectors$6.type)===null?!1:container.getAttribute(selectors$6.type)!==type?!0:(instances.push(new Section(container,registration)),!1)}))})}function reorder(selector){var instancesToReorder=getInstances(selector);instancesToReorder.forEach(function(instance){instance.onReorder()})}function unload(selector){var instancesToUnload=getInstances(selector);instancesToUnload.forEach(function(instance){var index=instances.map(function(e){return e.id}).indexOf(instance.id);instances.splice(index,1),instance.onUnload()})}function getInstances(selector){var filteredInstances=[];if(NodeList.prototype.isPrototypeOf(selector)||Array.isArray(selector))var firstElement=selector[0];if(selector instanceof Element||firstElement instanceof Element){var containers=normalizeContainers(selector);containers.forEach(function(container){filteredInstances=filteredInstances.concat(instances.filter(function(instance){return instance.container===container}))})}else if(typeof selector=="string"||typeof firstElement=="string"){var types=normalizeType(selector);types.forEach(function(type){filteredInstances=filteredInstances.concat(instances.filter(function(instance){return instance.type===type}))})}return filteredInstances}function getInstanceById(id){for(var instance,i=0;i<instances.length;i++)if(instances[i].id===id){instance=instances[i];break}return instance}function isInstance(selector){return getInstances(selector).length>0}function normalizeType(types){return types==="*"?types=Object.keys(registered):typeof types=="string"?types=[types]:types.constructor===Section?types=[types.prototype.type]:Array.isArray(types)&&types[0].constructor===Section&&(types=types.map(function(Section2){return Section2.type})),types=types.map(function(type){return type.toLowerCase()}),types}function normalizeContainers(containers){return NodeList.prototype.isPrototypeOf(containers)&&containers.length>
120?containers=Array.prototype.slice.call(containers):NodeList.prototype.isPrototypeOf(containers)&&containers.length===0?containers=[]:containers===null?containers=[]:!Array.isArray(containers)&&containers instanceof Element&&(containers=[containers]),containers}window.Shopify.designMode&&(document.addEventListener("shopify:section:load",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$6.id+'="'+id+'"]');container!==null&&load(container.getAttribute(selectors$6.type),container)}),document.addEventListener("shopify:section:reorder",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$6.id+'="'+id+'"]'),instance=getInstances(container)[0];typeof instance=="object"&&reorder(container)}),document.addEventListener("shopify:section:unload",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$6.id+'="'+id+'"]'),instance=getInstances(container)[0];typeof instance=="object"&&unload(container)}),document.addEventListener("shopify:section:select",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onSelect(event)}),document.addEventListener("shopify:section:deselect",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onDeselect(event)}),document.addEventListener("shopify:block:select",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onBlockSelect(event)}),document.addEventListener("shopify:block:deselect",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onBlockDeselect(event)}));const selectors$7={aos:"data-aos"},removeAnimations=container=>{container.querySelectorAll(`[${selectors$7.aos}]`).forEach(element=>{element.removeAttribute(selectors$7.aos)})},selectors$8={flag:"[data-badge]",aspectRatio:"data-aspectratio"},setBadgePosition=images=>{images.forEach(image=>{const saleBadge=image.querySelector(selectors$8.flag);if(saleBadge===null)return;const imageAspectRatio=parseFloat(image.getAttribute(selectors$8.aspectRatio)),imageWidth=image.offsetWidth,imageHeight=image.offsetHeight,containerAspectRatio=imageWidth/imageHeight;let posTop=0,posLeft=0;imageAspectRatio<containerAspectRatio?posLeft=(imageWidth-imageHeight*imageAspectRatio)/2:posTop=(imageHeight-imageWidth/imageAspectRatio)/2,saleBadge.style.cssText=`top: ${posTop}px; left: ${posLeft}px`})};function fetchProduct(handle){const requestRoute=`${theme.routes.root_url}products/${handle}.js`;return window.fetch(requestRoute).then(response=>response.json()).catch(e=>{console.error(e)})}const defaults={color:"ash"},selectors$9={swatch:"data-swatch",swatchColor:"[data-swatch-color]",wrapper:"[data-grid-swatches]",template:"[data-swatch-template]",handle:"data-swatch-handle",label:"data-swatch-label"};class ColorMatch{constructor(options={}){this.settings={...defaults,...options},this.match=this.init()}getColor(){return this.match}init(){return loadScript({json:theme.assets.swatches}).then(colors=>this.matchColors(colors,this.settings.color)).catch(e=>{console.log("failed to load swatch colors script"),console.log(e)})}matchColors(colors,name){let bg="#E5E5E5",img=null;const path=theme.assets.base||"/",comparisonName=name.toLowerCase().replace(/\s/g,""),array=colors.colors;if(array){let indexArray=null;if(array.filter((colorObj,index)=>{if(Object.keys(colorObj).toString().toLowerCase().replace(/\s/g,"")===comparisonName)return indexArray=index,colorObj}).length&&indexArray!==null){const value=Object.values(array[indexArray])[0];bg=value,(value.includes(".jpg")||value.includes(".jpeg")||value.includes(".png")||value.includes(".svg"))&&(img=`${path}${value}`,bg="#888888")}}return{color:this.settings.color,path:img,hex:bg}}}class Swatch{constructor(element){this.element=element,this.swatchColor=this.element.querySelector(selectors$9.swatchColor),this.colorString=element.getAttribute(selectors$9.swatch),new ColorMatch({color:this.colorString}).getColor().then(result=>{this.colorMatch=result,this.init()})}init(){this.colorMatch&&this.colorMatch.hex&&this.swatchColor.style.setProperty("--swatch",`${this.colorMatch.hex}`),this.colorMatch&&this.colorMatch.path&&this.swatchColor.style.setProperty("background-image",`url(${this.colorMatch.path})`)}}class GridSwatch{constructor(wrap2,container){this.template=document.querySelector(selectors$9.template).innerHTML,this.wrap=wrap2,this.container=container,this.handle=wrap2.getAttribute(selectors$9.handle);const label=wrap2.getAttribute(selectors$9.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.swatches=this.colorOption.values,this.init())})}
12init(){this.wrap.innerHTML="",this.swatches.forEach(swatch=>{let variant=this.product.variants.find(variant2=>variant2.options.includes(swatch));variant&&(this.wrap.innerHTML+=Sqrl.render(this.template,{color:swatch,uniq:`${this.product.id}-${variant.id}`,variant:variant.id,variantUrl:`${this.product.url}?variant=${variant.id}`}))}),this.swatchElements=this.wrap.querySelectorAll(`[${selectors$9.swatch}]`),this.swatchElements.forEach(el=>{new Swatch(el)})}}const makeGridSwatches=container=>{container.querySelectorAll(selectors$9.wrapper).forEach(wrap2=>{new GridSwatch(wrap2,void 0)})},swatchSection={onLoad(){this.swatches=[],this.container.querySelectorAll(`[${selectors$9.swatch}]`).forEach(el=>{this.swatches.push(new Swatch(el))})}},swatchGridSection={onLoad(){makeGridSwatches(this.container)}},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))}},selectors$a={itemsParent:"[data-custom-scrollbar-items]",scrollbar:"[data-custom-scrollbar]",scrollbarTrack:"[data-custom-scrollbar-track]"};class CustomScrollbar{constructor(container){this.itemsParent=container.querySelector(selectors$a.itemsParent),this.scrollbar=container.querySelector(selectors$a.scrollbar),this.scrollbarTrack=container.querySelector(selectors$a.scrollbarTrack),this.trackWidth=0,this.scrollEvent=throttle(()=>this.calculatePosition(),50),this.resizeEvent=debounce(()=>this.calculateTrackWidth(),250),this.scrollbar&&this.itemsParent&&(this.events(),this.calculateTrackWidth())}events(){this.itemsParent.addEventListener("scroll",this.scrollEvent),document.addEventListener("theme:resize",this.resizeEvent)}calculateTrackWidth(){this.trackWidth=100/this.itemsParent.children.length,this.trackWidth=this.trackWidth<5?5:this.trackWidth,this.scrollbar.style.setProperty("--track-width",`${this.trackWidth}%`)}calculatePosition(){const reducedScrollbarWidth=this.scrollbar.clientWidth*((100-this.trackWidth)/100);let position=this.itemsParent.scrollLeft/(this.itemsParent.scrollWidth-this.itemsParent.clientWidth);position*=reducedScrollbarWidth,this.scrollbar.style.setProperty("--position",`${Math.round(position)}px`)}destroy(){this.itemsParent.removeEventListener("scroll",this.scrollEvent),document.removeEventListener("theme:resize",this.resizeEvent)}}const selectors$b={productContainer:"[data-product-container]",productSlideshow:"[data-product-slideshow]",productImage:"[data-product-single-media-wrapper]",productThumbs:"[data-product-single-media-thumbs]",productThumb:"[data-thumbnail]",productThumbLink:"[data-thumbnail-id]",deferredMediaButton:"[data-deferred-media-button]",mediaType:"data-type",id:"data-id",tabIndex:"tabindex",arrows:"data-arrows",dots:"data-dots"},classes$3={active:"active",sliderEnabled:"flickity-enabled",scrollable:"product--layout-scrollable",mediaHidden:"media--hidden",focusEnabled:"is-focused",thumbsArrows:"product__images__slider-nav--arrows",isMoving:"is-moving"};class InitSlider{constructor(section){this.container=section.container,this.productContainer=this.container.querySelector(selectors$b.productContainer),this.scrollable=this.productContainer.classList.contains(classes$3.scrollable),this.slideshow=this.container.querySelector(selectors$b.productSlideshow),this.productImages=this.container.querySelectorAll(selectors$b.productImage),this.thumbs=this.container.querySelector(selectors$b.productThumbs),this.flkty=null,this.flktyNav=null,this.sliderResizeEvent=debounce(()=>this.flickityResizeEvent(),250),this.thumbsResizeEvent=debounce(()=>this.checkThumbsWidth(),250),this.scrollableResizeEvent=debounce(()=>this.toggleCustomScrollbar(),250),this.productImages.length>1&&this.init()}init(){this.createSlider(),this.createSliderNav(),this.createScrollable()}createSlider(){if(!this.slideshow)return;const instance=this,firstSlide=this.slideshow.querySelectorAll(`[${selectors$b.mediaType}]`)[0],arrows=this.slideshow.getAttribute(selectors$b.arrows)==="true",dots=this.slideshow.getAttribute(selectors$b.dots)==="true",flickityOptions={autoPlay:!1,arrowShape:theme.icons.arrowNavSlider,prevNextButtons:arrows,contain:!0,pageDots:dots,adaptiveHeight:!0,wrapAround:!0,resize:!1};if(this.flkty=new FlickityAsNavFor(this.slideshow,flickityOptions),firstSlide){const firstType=firstSlide.getAttribute(selectors$b.mediaType);(firstType==="model"||firstType==="video"||firstType==="external_video")&&(this.flkty.options.draggable=!1,this.flkty.updateDraggable())}this.flkty.on("dragStart",function(){instance.slideshow.classList.add(classes$3.isMoving),document.ontouchmove=e=>e.preventDefault()}),this.flkty.on("dragEnd",()=>document.ontouchmove=()=>!0),this.flkty.on("change",function(index){const currentMedia=this.cells[index].element,newMedia=this.selectedElement;currentMedia.dispatchEvent(new CustomEvent("mediaHidden")),newMedia.classList.remove(classes$3.mediaHidden)}),this.flkty.on("settle",function(){const currentMedia=this.selectedElement,mediaType=currentMedia.getAttribute(selectors$b.mediaType);mediaType==="model"||mediaType==="video"||mediaType==="external_video"?(instance.flkty.options.draggable=!1,instance.flkty.updateDraggable()):(instance.flkty.options.draggable=!0,instance.flkty.updateDraggable()),instance.switchMedia(currentMedia),instance.slideshow.classList.remove(classes$3.isMoving),instance.flkty.resizeQueued&&(instance.flkty.resizeQueued=!1,instance.flkty.onresize())}),window.addEventListener("resize",this.sliderResizeEvent)}createSliderNav(){if(!this.thumbs||!this.slideshow)return;const flickityOptionsNav={asNavFor:this.slideshow,pageDots:!1,prevNextButtons:!0,arrowShape:theme.icons.arrowNavSlider,groupCells:!0,contain:!0,resize:!1};this.flktyNav=new FlickityAsNavFor(this.thumbs,flickityOptionsNav),this.flktyNav.on("dragStart",()=>document.ontouchmove=e=>e.preventDefault()),this.flktyNav.on("dragEnd",()=>document.ontouchmove=()=>!0),this.flktyNav.on("settle",()=>{this.flktyNav.resizeQueued&&(this.flktyNav.resizeQueued=!1,this.flktyNav.onresize())}),this.checkThumbsWidth(),window.addEventListener("resize",this.thumbsResizeEvent),this.thumbs.querySelectorAll(selectors$b.productThumbLink).forEac
12h(thumbLink=>{thumbLink.addEventListener("click",e=>{e.preventDefault()})})}checkThumbsWidth(){const thumbs=this.thumbs.querySelectorAll(selectors$b.productThumb),thumbsContainerPadding=parseInt(window.getComputedStyle(this.thumbs).paddingLeft.replace("px",""))*2,thumbsContainerWidth=this.thumbs.offsetWidth-thumbsContainerPadding;let thumbsWidth=0;thumbs.forEach(thumb=>{thumbsWidth+=thumb.offsetWidth}),thumbsContainerWidth<thumbsWidth?this.thumbs.classList.add(classes$3.thumbsArrows):this.thumbs.classList.remove(classes$3.thumbsArrows)}flickityResizeEvent(){this.flkty&&(this.flkty.isAnimating?this.flkty.resizeQueued=!0:this.flkty.onresize()),this.flktyNav&&(this.flktyNav.isAnimating?this.flktyNav.resizeQueued=!0:this.flktyNav.onresize())}createScrollable(){this.scrollable&&(this.toggleCustomScrollbar(),window.addEventListener("resize",this.scrollableResizeEvent))}toggleCustomScrollbar(){window.innerWidth<window.theme.sizes.small?this.customScrollbar=new CustomScrollbar(this.container):this.customScrollbar&&this.customScrollbar.destroy()}switchMedia(currentMedia){const otherMedia=Array.prototype.filter.call(currentMedia.parentNode.children,function(child){return child!==currentMedia});document.body.classList.contains(classes$3.focusEnabled)&¤tMedia.dispatchEvent(new Event("focus")),otherMedia.length&&otherMedia.forEach(element=>{element.classList.add(classes$3.mediaHidden),element.dispatchEvent(new CustomEvent("mediaHidden"))}),currentMedia.classList.remove(classes$3.mediaHidden),currentMedia.dispatchEvent(new CustomEvent("mediaVisible"));const deferredMedia=currentMedia.querySelector("deferred-media");deferredMedia&&deferredMedia.getAttribute("loaded")!==!0&¤tMedia.querySelector(selectors$b.deferredMediaButton).dispatchEvent(new Event("click",{bubbles:!1}))}}const selectors$c={productContainer:"[data-product-container]",productSlideshow:"[data-product-slideshow]",zoomWrapper:"[data-zoom-wrapper]",dataImageSrc:"data-image-src",dataImageWidth:"data-image-width",dataImageHeight:"data-image-height",dataImageZoomEnable:"data-lightbox"},classes$4={popupClass:"pswp-zoom-gallery",popupClassNoThumbs:"pswp-zoom-gallery--single",isMoving:"is-moving"};class Zoom{constructor(section){this.container=section.container,this.productContainer=this.container.querySelector(selectors$c.productContainer),this.slideshow=this.container.querySelector(selectors$c.productSlideshow),this.zoomWrappers=this.container.querySelectorAll(selectors$c.zoomWrapper),this.zoomEnable=this.productContainer.getAttribute(selectors$c.dataImageZoomEnable)==="true",this.zoomEnable&&this.init()}init(){this.zoomWrappers.length&&this.zoomWrappers.forEach((element,i)=>{element.addEventListener("click",e=>{e.preventDefault(),this.slideshow&&this.slideshow.classList.contains(classes$4.isMoving)||this.createZoom(i)}),element.addEventListener("keyup",e=>{e.keyCode===theme.keyboardKeys.ENTER&&(e.preventDefault(),this.createZoom(i))})})}createZoom(indexImage){const instance=this;let items=[],counter=0;this.zoomWrappers.forEach(elementImage=>{const imgSrc=elementImage.getAttribute("href"),imgWidth=parseInt(elementImage.getAttribute(selectors$c.dataImageWidth)),imgHeight=parseInt(elementImage.getAttribute(selectors$c.dataImageHeight));if(items.push({src:imgSrc,w:imgWidth,h:imgHeight,msrc:imgSrc}),counter+=1,instance.zoomWrappers.length===counter){let popupClass=`${classes$4.popupClass}`;counter===1&&(popupClass=`${classes$4.popupClass} ${classes$4.popupClassNoThumbs}`),openPhotoSwipe(items,{barsSize:{top:0,bottom:"auto"},history:!1,focus:!1,index:indexImage,mainClass:popupClass,showHideOpacity:!0,showAnimationDuration:250,hideAnimationDuration:250,closeOnScroll:!1,closeOnVerticalDrag:!1,captionEl:!1,closeEl:!0,closeElClasses:["caption-close"],tapToClose:!1,clickToCloseNonZoomable:!1,maxSpreadZoom:2,loop:!0,spacing:0,allowPanToNext:!0,pinchToClose:!1})}})}}const hosts={html5:"html5",youtube:"youtube"},selectors$d={deferredMedia:"[data-deferred-media]",deferredMediaButton:"[data-deferred-media-button]",productMediaWrapper:"[data-product-single-media-wrapper]",productMediaSlider:"[data-product-single-media-slider]",mediaContainer:"[data-vi
12deo]",mediaId:"data-media-id"},classes$5={mediaHidden:"media--hidden"};theme.mediaInstances={};class Video{constructor(section){this.section=section,this.container=section.container,this.id=section.id,this.players={},this.init()}init(){this.container.querySelectorAll(selectors$d.mediaContainer).forEach(mediaContainer=>{const deferredMediaButton=mediaContainer.querySelector(selectors$d.deferredMediaButton);deferredMediaButton&&deferredMediaButton.addEventListener("click",this.loadContent.bind(this,mediaContainer))})}loadContent(mediaContainer){if(mediaContainer.querySelector(selectors$d.deferredMedia).getAttribute("loaded"))return;const content=document.createElement("div");content.appendChild(mediaContainer.querySelector("template").content.firstElementChild.cloneNode(!0));const mediaId=mediaContainer.dataset.mediaId,element=content.querySelector("video, iframe"),host=this.hostFromVideoElement(element),deferredMedia=mediaContainer.querySelector(selectors$d.deferredMedia);deferredMedia.appendChild(element).focus(),deferredMedia.setAttribute("loaded",!0),this.players[mediaId]={mediaId,sectionId:this.id,c
12ontainer:mediaContainer,element,host,ready:()=>{this.createPlayer(mediaId)}};const video=this.players[mediaId];switch(video.host){case hosts.html5:this.loadVideo(video,hosts.html5);break;case hosts.youtube:window.isYoutubeAPILoaded?this.loadVideo(video,hosts.youtube):loadScript({url:"https://www.youtube.com/iframe_api"}).then(()=>this.loadVideo(video,hosts.youtube));break}}hostFromVideoElement(video){return video.tagName==="VIDEO"?hosts.html5:video.tagName==="IFRAME"&&/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(video.src)?hosts.youtube:null}loadVideo(video,host){video.host===host&&video.ready()}createPlayer(mediaId){const video=this.players[mediaId],enableLooping=video.container.dataset.enableVideoLooping;switch(video.host){case hosts.html5:video.element.play(),video.element.addEventListener("play",()=>{this.pauseOtherMedia(mediaId)}),video.container.addEventListener("mediaHidden",event=>this.onHidden(event)),video.container.addEventListener("xrLaunch",event=>this.onHidden(event)),video.container.addEventListener("mediaVisible",event=>this.onVisible(event)),this.observeVideo(video);break;case hosts.youtube:if(video.host==hosts.youtube&&video.player)return;YT.ready(()=>{const videoId=video.container.dataset.videoId;this.players[mediaId].player=new YT.Player(video.element,{videoId,events:{onReady:event=>{event.target.playVideo()},onStateChange:event=>{event.data===0&&enableLooping&&event.target.seekTo(0),event.data===1&&this.pauseOtherMedia(mediaId),event.data}}}),window.isYoutubeAPILoaded=!0,video.container.addEventListener("mediaHidden",event=>this.onHidden(event)),video.container.addEventListener("xrLaunch",event=>this.onHidden(event)),video.container.addEventListener("mediaVisible",event=>this.onVisible(event)),this.observeVideo(video)});break}}observeVideo(video){new IntersectionObserver((entries,observer2)=>{entries.forEach(entry=>{entry.intersectionRatio!=1?this.pauseVideo(video):this.playVideo(video)})},{threshold:1}).observe(video.element)}playVideo(video){video.player&&video.player.playVideo?video.player.playVideo():video.element&&video.element.play&&video.element.play()}pauseVideo(video){video.player&&video.player.pauseVideo?video.player.pauseVideo():video.element&&video.element.pause&&video.element.pause()}onHidden(event){if(typeof event.target.dataset.mediaId<"u"){const mediaId=event.target.dataset.mediaId,video=this.players[mediaId];this.pauseVideo(video)}}onVisible(event){if(typeof event.target.dataset.mediaId<"u"){const mediaId=event.target.dataset.mediaId,video=this.players[mediaId];this.playVideo(video)}}pauseOtherMedia(mediaId){const mediaIdString=`[${selectors$d.mediaId}="${mediaId}"]`,currentMedia=document.querySelector(`${selectors$d.productMediaWrapper}${mediaIdString}`),otherMedia=document.querySelectorAll(`${selectors$d.productMediaWrapper}:not(${mediaIdString})`);currentMedia.classList.remove(classes$5.mediaHidden),otherMedia.length&&otherMedia.forEach(element=>{element.dispatchEvent(new CustomEvent("mediaHidden")),element.classList.add(classes$5.mediaHidden)})}}theme.mediaInstances={};const selectors$e={videoPlayer:"[data-video]",modelViewer:"[data-model]",sliderEnabled:"flickity-enabled",classMediaHidden:"media--hidden"};class Media{constructor(section){this.section=section,this.id=section.id,this.container=section.container}init(){this.detect3d(),this.launch3d(),new Video(this.section),new Zoom(this.section),new InitSlider(this.section)}detect3d(){const modelViewerElements=this.container.querySelectorAll(selectors$e.modelViewer);modelViewerElements.length&&modelViewerElements.forEach(element=>{theme.ProductModel.init(element,this.id)})}launch3d(){const instance=this;document.addEventListener("shopify_xr_launch",function(){instance.container.querySelector(`${selectors$e.modelViewer}:not(.${selectors$e.classMediaHidden})`).dispatchEvent(new CustomEvent("xrLaunch"))})}}const hideElement=elem=>{elem&&(elem.style.display="none")},selectors$f={list:"[data-store-availability-list]"},defaults$1={close:".js-modal-close",open:".js-modal-open-store-availability-modal",openClass:"modal--is-active",openBodyClass:"modal--is-visible",closeModalOnClick:!1};class Modals{constructor(id,options){if(this.modal=document.getElementById(id),this.accessibility=a11y,!this.modal)return!1;this.nodes={parents:[document.querySelector("html"),document.body]},this.config=Object.assign(defaults$1,options),this.modalIsOpen=!1,this.focusOnOpen=this.config.focusOnOpen?document.getElementById(this.config.focusOnOpen):this.modal,this.openElement=document.querySelector(this.config.open),this.init()}init(){this.openElement.addEventListener("click",this.open.bind(this)),this.modal.querySelector(this.config.close).addEventListener("click",this.closeModal.bind(this))}open(evt){var self=this,externalCall=!1;this.modalIsOpen||(evt?evt.preventDefault():externalCall=!0,evt&&evt.stopPropagation&&evt.stopPropagation(),this.modalIsOpen&&!externalCall&&this.closeModal(),this.modal.classList.add(this.config.openClass),this.nodes.parents.forEac
12h(function(node){node.classList.add(self.config.openBodyClass)}),this.modalIsOpen=!0,this.scrollableElement=document.querySelector(selectors$f.list),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0,detail:this.scrollableElement})),this.accessibility.trapFocus(this.modal),this.bindEvents())}closeModal(){if(this.modalIsOpen){document.activeElement.blur(),this.modal.classList.remove(this.config.openClass);var self=this;document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),this.nodes.parents.forEach(function(node){node.classList.remove(self.config.openBodyClass)}),this.modalIsOpen=!1,this.accessibility.removeTrapFocus(),this.openElement.focus(),this.unbindEvents()}}bindEvents(){this.keyupHandler=this.keyupHandler.bind(this),this.clickHandler=this.clickHandler.bind(this),document.body.addEventListener("keyup",this.keyupHandler),document.body.addEventListener("click",this.clickHandler)}unbindEvents(){document.body.removeEventListener("keyup",this.keyupHandler),document.body.removeEventListener("click",this.clickHandler)}keyupHandler(event){event.keyCode===27&&this.closeModal()}clickHandler(event){this.config.closeModalOnClick&&!this.modal.contains(event.target)&&this.closeModal()}}const selectors$g={body:"body",storeAvailabilityModal:"[data-store-availability-modal]",storeAvailabilityModalOpen:"[data-store-availability-modal-open]",storeAvailabilityModalClose:"[data-store-availability-modal-close]",storeAvailabilityModalProductTitle:"[data-store-availability-modal-product-title]"},classes$6={openClass:"store-availabilities-modal--active",hidden:"visually-hidden"};class StoreAvailability{constructor(container){this.container=container}updateContent(variantId,productTitle){this._fetchStoreAvailabilities(variantId,productTitle)}clearContent(){this.container.innerHTML=""}_initModal(){return new Modals("StoreAvailabilityModal",{close:selectors$g.storeAvailabilityModalClose,open:selectors$g.storeAvailabilityModalOpen,closeModalOnClick:!0,openClass:classes$6.openClass})}_fetchStoreAvailabilities(variantId,productTitle){const variantSectionUrl=`/variants/${variantId}/?section_id=store-availability`;this.clearContent();const self=this;fetch(variantSectionUrl).then(function(response){return response.text()}).then(function(storeAvailabilityHTML){if(storeAvailabilityHTML.trim()==="")return;const body=document.querySelector(selectors$g.body);let storeAvailabilityModal=body.querySelector(selectors$g.storeAvailabilityModal);storeAvailabilityModal&&storeAvailabilityModal.remove(),self.container.innerHTML=storeAvailabilityHTML,self.container.innerHTML=self.container.firstElementChild.innerHTML,self.container.querySelector(selectors$g.storeAvailabilityModalOpen)&&(self.modal=self._initModal(),self._updateProductTitle(productTitle),storeAvailabilityModal=self.container.querySelector(selectors$g.storeAvailabilityModal),storeAvailabilityModal&&body.appendChild(storeAvailabilityModal))})}_updateProductTitle(productTitle){var storeAvailabilityModalProductTitle=this.container.querySelector(selectors$g.storeAvailabilityModalProductTitle);storeAvailabilityModalProductTitle.textContent=productTitle}}function Listeners(){this.entries=[]}Listeners.prototype.add=function(element,event,fn){this.entries.push({element,event,fn}),element.addEventListener(event,fn)},Listeners.prototype.removeAll=function(){this.entries=this.entries.filter(function(listener){return listener.element.removeEventListener(listener.event,listener.fn),!1})};function getVariantFromSerializedArray(product,collection){_validateProductStructure(product);var optionArray=_createOptionArrayFromOptionCollection(product,collection);return getVariantFromOptionArray(product,optionArray)}function getVariantFromOptionArray(product,options){_validateProductStructure(product),_validateOptionsArray(options);var result=product.variants.filter(function(variant){return options.every(function(option,index){return variant.options[index]===option})});return result[0]||null}function _createOptionArrayFromOptionCollection(product,collection){_validateProductStructure(product),_val
12idateSerializedArray(collection);var optionArray=[];return collection.forEach(function(option){for(var i=0;i<product.options.length;i++){var name=product.options[i].name||product.options[i];if(name.toLowerCase()===option.name.toLowerCase()){optionArray[i]=option.value;break}}}),optionArray}function _validateProductStructure(product){if(typeof product!="object")throw new TypeError(product+" is not an object.");if(Object.keys(product).length===0&&product.constructor===Object)throw new Error(product+" is empty.")}function _validateSerializedArray(collection){if(!Array.isArray(collection))throw new TypeError(collection+" is not an array.");if(collection.length===0)throw new Error(collection+" is empty.");if(collection[0].hasOwnProperty("name")){if(typeof collection[0].name!="string")throw new TypeError("Invalid value type passed for name of option "+collection[0].name+". Value should be string.")}else throw new Error(collection[0]+"does not contain name key.")}function _validateOptionsArray(options){if(Array.isArray(options)&&typeof options[0]=="object")throw new Error(options+"is not a valid array of options.")}var selectors$h={idInput:'[name="id"]',optionInput:'[name^="options"]',quantityInput:'[name="quantity"]',propertyInput:'[name^="properties"]'};function ProductForm(element,product,options){this.element=element,this.product=_validateProductObject(product),options=options||{},this._listeners=new Listeners,this._listeners.add(this.element,"submit",this._onSubmit.bind(this,options)),this.optionInputs=this._initInputs(selectors$h.optionInput,options.onOptionChange),this.propertyInputs=this._initInputs(selectors$h.propertyInput,options.onPropertyChange)}ProductForm.prototype.destroy=function(){this._listeners.removeAll()},ProductForm.prototype.options=function(){return _serializeInputValues(this.optionInputs,function(item){var regex=/(?:^(options\[))(.*?)(?:\])/;return item.name=regex.exec(item.name)[2],item})},ProductForm.prototype.variant=function(){return getVariantFromSerializedArray(this.product,this.options())},ProductForm.prototype.properties=function(){return _serializeInputValues(this.propertyInputs,function(item){var regex=/(?:^(properties\[))(.*?)(?:\])/;return item.name=regex.exec(item.name)[2],item})},ProductForm.prototype.quantity=function(){return this.quantityInputs[0]?Number.parseInt(this.quantityInputs[0].value,10):1},ProductForm.prototype._setIdInputValue=function(value){var idInputElement=this.element.querySelector(selectors$h.idInput);idInputElement||(idInputElement=document.createElement("input"),idInputElement.type="hidden",idInputElement.name="id",this.element.appendChild(idInputElement)),idInputElement.value=value.toString()},ProductForm.prototype._onSubmit=function(options,event){event.dataset=this._getProductFormEventData(),this._setIdInputValue(event.dataset.variant.id),options.onFormSubmit&&options.onFormSubmit(event)},ProductForm.prototype._onFormEvent=function(cb){return typeof cb>"u"?Function.prototype:function(event){event.dataset=this._getProductFormEventData(),cb(event)}.bind(this)},ProductForm.prototype._initInputs=function(selector,cb){var elements=Array.prototype.slice.call(this.element.querySelectorAll(selector));return elements.map(function(element){return this._listeners.add(element,"change",this._onFormEvent(cb)),element}.bind(this))},ProductForm.prototype._getProductFormEventData=function(){return{options:this.options(),variant:this.variant(),properties:this.properties()}};function _serializeInputValues(inputs,transform){return inputs.reduce(function(options,input){return(input.checked||input.type!=="radio"&&input.type!=="checkbox")&&options.push(transform({name:input.name,value:input.value})),options},[])}function _validateProductObject(product){if(typeof product!="object")throw new TypeError(product+" is not an object.");if(typeof product.variants[0].options>"u")throw new TypeError("Product object is invalid. Make sure you use the product object that is output from {{ product | json }} or from the http://[your-product-url].js route");return product}const selectors$i={product:"[data-product-container]",productForm:"[data-product-form-container]",addToCart:"[data-add-to-cart]",addToCartText:"[data-add-to-cart-text]",comparePrice:"[data-compare-price]",originalSelectorId:"[data-product-select]",priceWrapper:"[data-price-wrapper]",productSlideshow:"[data-product-slideshow]",productImagesScroller:"[data-custom-scrollbar-items]",productImage:"[data-product-single-media-wrapper]",productJson:"[data-product-json]",productPrice:"[data-product-price]",unitPrice:"[data-product-unit-price]",unitBase:"[data-product-base]",unitWrapper:"[data-product-unit]",storeAvailabilityContainer:"[data-store-availability-container]",preOrderTag:"_preorder",dataImageId:"data-id",idInput:'[name="id"]',notificationForm:"[data-notification-form]",colorLabel:"[data-color-label]",dataOption:"[data-option]",showQuantity:"[data-show-quantity]",shopBarImageActive:"[data-shop-bar-image-active]",shopBarImageActiveAttr:"data-shop-bar-image-active",variantId:"[data-variant-id]",variantIdAttr:"data-variant-id"},classes$7={hiddenPrice:"product__price--hidden",visuallyHidden:"visually-hidden",hidden:"hidden",productPriceSale:"product__price--sale",scrollable:"product--layout-scrollable",sliderEnabled:"flickity-enabled",onboarding:"onboarding-product",shopBarImageShown:"shop-bar__image--shown"};class ProductAddForm{constructor(section){this.section=section,this.container=section.container,this.product=this.container.querySelector(selectors$i.product),this.onboarding=this.product.classList.contains(classe
12s$7.onboarding),this.scrollable=this.product.classList.contains(classes$7.scrollable),this.storeAvailabilityContainer=this.container.querySelector(selectors$i.storeAvailabilityContainer),!(!this.product||this.onboarding)&&(this.productForm=this.container.querySelector(selectors$i.productForm),this.product.querySelector(selectors$i.showQuantity)&&new QuantityCounter(this.container).init(),this.init(),this.hasUnitPricing=this.container.querySelector(selectors$i.unitWrapper))}init(){let productJSON=null;const productElemJSON=this.container.querySelector(selectors$i.productJson);if(productElemJSON&&(productJSON=productElemJSON.innerHTML),productJSON?(this.productJSON=JSON.parse(productJSON),this.linkForm()):console.error("Missing product JSON"),this.storeAvailabilityContainer){this.storeAvailability=new StoreAvailability(this.storeAvailabilityContainer);let variantId=this.productForm.product.variants[0].id;this.productForm.product.variants.length>1&&(variantId=this.productForm.variant().id),this.storeAvailability.updateContent(variantId,this.productForm.product.title)}}destroy(){this.productForm.destroy()}linkForm(){this.productForm=new ProductForm(this.productForm,this.productJSON,{onOptionChange:this.onOptionChange.bind(this)})}onOptionChange(evt){this.updateAddToCartState(evt),this.updateProductImage(evt),this.updateProductPrices(evt),this.updateColorName(evt),this.updateHiddenSelect(evt),this.updateShopBarImage(evt),this.storeAvailability&&this.updateStoreAvailability(evt)}updateHiddenSelect(evt){const variant=evt.dataset.variant;if(variant){let idInputElement=this.container.querySelector(selectors$i.idInput);idInputElement||(idInputElement=document.createElement("input"),idInputElement.type="hidden",idInputElement.name="id",this.element.appendChild(idInputElement)),idInputElement.value=variant.id.toString(),idInputElement.dispatchEvent(new Event("change",{bubbles:!0}))}}updateAddToCartState(evt){const variant=evt.dataset.variant,notificationForm=this.container.querySelectorAll(selectors$i.notificationForm),addToCart=this.container.querySelectorAll(selectors$i.addToCart),addToCartText=this.container.querySelectorAll(selectors$i.addToCartText),formSelects=this.container.querySelectorAll(selectors$i.originalSelectorId);let addText=theme.translations.add_to_cart;this.productJSON.tags.includes(selectors$i.preOrderTag)&&(addText=theme.translations.pre_order),notificationForm.length&¬ificationForm.forEach(element=>{variant&&variant.available?element.classList.add(classes$7.hidden):element.classList.remove(classes$7.hidden)}),addToCart.length&&addToCart.forEach(element=>{variant&&variant.available?element.disabled=!1:element.disabled=!0}),addToCartText.length&&addToCartText.forEach(element=>{variant?variant.available?element.innerHTML=addText:element.innerHTML=theme.translations.sold_out:element.innerHTML=theme.translations.unavailable}),formSelects&&variant&&formSelects.forEach(formSelect=>{formSelect.value=variant.id})}updateStoreAvailability(evt){evt.dataset.variant?this.storeAvailability.updateContent(evt.dataset.variant.id,evt.dataset.variant.title):this.storeAvailability.clearContent()}getBaseUnit(variant){return variant.unit_price_measurement.reference_value===1?variant.unit_price_measurement.reference_unit:variant.unit_price_measurement.reference_value+variant.unit_price_measurement.reference_unit}updateProductPrices(evt){const variant=evt.dataset.variant;this.container.querySelectorAll(selectors$i.priceWrapper).forEach(wrap2=>{const comparePrice=wrap2.querySelector(selectors$i.comparePrice),productPrice=wrap2.querySelector(selectors$i.productPrice);variant?(wrap2.classList.remove(classes$7.hiddenPrice),productPrice.innerHTML=themeCurrency.formatMoney(variant.price,moneyFormat)):wrap2.classList.add(classes$7.hiddenPrice),variant&&variant.compare_at_price>variant.price?(comparePrice.innerHTML=themeCurrency.formatMoney(variant.compare_at_price,moneyFormat),comparePrice.classList.remove(classes$7.visuallyHidden),productPrice.classList.add(classes$7.productPriceSale)):comparePrice&&(comparePrice.innerHTML="",comparePrice.classList.add(classes$7.visuallyHidden),productPrice.classList.remove(classes$7.productPriceSale))}),this.hasUnitPricing&&this.updateProductUnits(evt)}updateProductUnits(evt){const variant=evt.dataset.variant;if(typeof variant.unit_price<"u"){const price=themeCurrency.formatMoney(variant.unit_price,moneyFormat),base=this.getBaseUnit(variant);this.container.querySelector(selectors$i.unitPrice).innerHTML=price,this.container.querySelector(selectors$i.unitBase).innerHTML=base,showElement(this.container.querySelector(selectors$i.unitWrapper))}else hideElement(this.container.querySelector(selectors$i.unitWrapper))}updateColorName(evt){const target=evt.target,optionLabel=target.closest(selectors$i.dataOption).querySelector(selectors$i.colorLabel);
12target.tagName==="INPUT"&&optionLabel!==null&&(optionLabel.innerText=target.value)}updateProductImage(evt){const variant=evt.dataset.variant;if(variant&&variant.featured_media){const newImg=this.container.querySelector(`${selectors$i.productImage}[${selectors$i.dataImageId}*="${variant.featured_media.id}"]`);if(newImg){const slider=this.container.querySelector(selectors$i.productSlideshow);if(slider&&slider.classList.contains(classes$7.sliderEnabled)){const newImagePos=Array.from(newImg.parentElement.children).indexOf(newImg),flkty=FlickityAsNavFor.data(slider).select(newImagePos)}if(this.scrollable)if(window.innerWidth>window.theme.sizes.small)window.scrollTo({top:newImg.getBoundingClientRect().top+window.scrollY-60,left:0,behavior:"smooth"});else{const scroller=this.container.querySelector(selectors$i.productImagesScroller);scroller.scrollTo({top:0,left:newImg.getBoundingClientRect().left+scroller.scrollLeft,behavior:"smooth"})}}}}updateShopBarImage(evt){const variant=evt.dataset.variant,shopBarImages=this.container.querySelectorAll(selectors$i.variantId),activeImage=this.container.querySelector(selectors$i.shopBarImageActive);variant.featured_image!==null&&(activeImage&&(activeImage.classList.remove(classes$7.shopBarImageShown),activeImage.removeAttribute(selectors$i.shopBarImageActiveAttr)),shopBarImages.forEach(element=>{Number(variant.id)===Number(element.getAttribute(selectors$i.variantIdAttr))&&(element.classList.add(classes$7.shopBarImageShown),element.setAttribute(selectors$i.shopBarImageActiveAttr,""))}))}}const productFormSection={onLoad(){this.section=new ProductAddForm(this)}},selectors$j={id:"id",apiContent:"[data-api-content]",quickviewWrap:"[data-quickview-wrap]",quickviewClose:"[data-quickview-close]",featuredBlock:"[data-collection-featured-block]",productBlock:"[data-product-block]",productContainer:"[data-product-container]",productImage:"[data-product-single-media-wrapper]",addToCart:"[data-add-to-cart]",handle:"data-trigger-quickview",productSlider:"[data-product-slideshow]",swatch:"[data-swatch]",videoLoop:"data-video-looping",quickviewId:"data-quickview-id"},classes$8={isLoading:"is-loading",isVisible:"is-visible",isActive:"is-active",isLoaded:"is-loaded",focusEnabled:"is-focused",sliderEnabled:"flickity-enabled",mediaHidden:"media--hidden",buttonAlt:"button--alt",blockQuickView:"product-block--quickview"};class QuickviewButton{constructor(button,id){this.button=button,this.id=id,this.handle=this.button.getAttribute(selectors$j.handle),this.productBlock=this.button.closest(selectors$j.productBlock),this.quickviewWrap=null,this.quickviewClose=null,this.quickviewWrapHeight=0,this.isQuickViewLoading=!1,this.accessibility=a11y,this.swatches=[],this.form={},this.init()}init(){this.initButton(),this.initFetch()}initFetch(){this.productBlock.addEventListener("quickview",()=>{this.renderProduct()},!1)}renderProduct(){const instance=this;fetch(`${theme.routes.root_url}products/${instance.handle}?section_id=api-quickview`).then(function(response){return response.text()}).then(function(data){const fresh=document.createElement("div");fresh.innerHTML=data.replaceAll("||collection-index||",instance.handle),instance.productBlock.insertAdjacentHTML("beforeend",fresh.querySelector(selectors$j.apiContent).innerHTML),instance.productBlock.classList.add(classes$8.isLoaded),instance.quickviewWrap=instance.productBlock.querySelector(selectors$j.quickviewWrap),instance.quickviewClose=instance.quickviewWrap.querySelector(selectors$j.quickviewClose),instance.quickviewWrapHeight=instance.quickviewWrap.querySelector(selectors$j.productC
12ontainer).offsetHeight,instance.onLoaded(),instance.show()}).catch(function(error){console.log("error: ",error)})}initButton(){const instance=this,initButtons=this.productBlock.querySelectorAll(`[${selectors$j.handle}='${this.handle}']`);initButtons.length&&initButtons.forEach(element=>{element.addEventListener("click",e=>{const productBlockLoaded=this.productBlock.classList.contains(classes$8.isLoaded),productBlockVisible=this.productBlock.classList.contains(classes$8.isVisible),siblingsOpen=this.productBlock.parentNode.querySelector(`.${classes$8.isVisible}`)!==null,eventQuickview=new CustomEvent("quickview",{handle:this.handle});this.isQuickViewLoading||(this.isQuickViewLoading=!0,this.productBlock.classList.add(classes$8.isLoading),productBlockLoaded&&productBlockVisible?instance.hide():productBlockLoaded&&!productBlockVisible&&!siblingsOpen?instance.show():productBlockLoaded&&!productBlockVisible&&siblingsOpen?(instance.hide(),setTimeout(()=>{instance.show()},200)):siblingsOpen?(instance.hide(),setTimeout(()=>{instance.productBlock.dispatchEvent(eventQuickview)},200)):instance.productBlock.dispatchEvent(eventQuickview)),e.preventDefault()})})}show(){const sub=(window.innerHeight-this.quickviewWrapHeight)/2,scrollPosition=this.quickviewWrap.getBoundingClientRect().top+window.scrollY-sub-theme.dimensions.headerScrolled,featuredBlockHeight=getHeight(selectors$j.featuredBlock),isFocusEnabled=document.body.classList.contains(classes$8.focusEnabled),quickViewPattern="api-quickview",quickViewIds=this.productBlock.querySelectorAll(`[id*="${quickViewPattern}"]`),quickViewFors=this.productBlock.querySelectorAll(`[for*="${quickViewPattern}"]`);document.documentElement.style.setProperty("--collection-featured-block-height",`${featuredBlockHeight}px`),quickViewIds.forEach(element=>
12{const uniqueId=element.id.replace(quickViewPattern,this.id);element.id=uniqueId}),quickViewFors.forEach(element=>{const uniqueFor=element.getAttribute("for").replace(quickViewPattern,this.id);element.setAttribute("for",uniqueFor)}),this.productBlock.classList.add(classes$8.isActive),this.productBlock.classList.remove(classes$8.isLoading),window.scrollTo({top:scrollPosition,left:0,behavior:"smooth"}),this.productBlock.classList.add(classes$8.isVisible),this.isQuickViewLoading=!1,isFocusEnabled&&this.accessibility.trapFocus(this.quickviewWrap,{elementToFocus:this.quickviewClose})}hide(){const productBlocks=this.productBlock.parentNode.querySelectorAll(selectors$j.productBlock),classesToRemove=[classes$8.isLoading,classes$8.isVisible,classes$8.isActive,classes$8.blockQuickView],isFocusEnabled=document.body.classList.contains(classes$8.focusEnabled);if(productBlocks.forEach(productBlock=>{if(productBlock.classList.contains(classes$8.isVisible)){const visibleImage=productBlock.querySelector(`${selectors$j.productImage}.is-selected`);visibleImage!==null&&(visibleImage.dispatchEvent(new CustomEvent("mediaHidden")),visibleImage.classList.remove(classes$8.mediaHidden)),productBlock.classList.remove(...classesToRemove)}}),this.isQuickViewLoading=!1,this.accessibility.removeTrapFocus(),isFocusEnabled){const button=document.querySelector(`[${selectors$j.handle}="${this.handle}"]`);setTimeout(()=>{document.documentElement.style.setProperty("--collection-featured-block-height","none"),button.focus()},300)}}onLoaded(){const sectionId=`${this.id}-${this.quickviewWrap.getAttribute(selectors$j.quickviewId)}`,hasSlider=this.quickviewWrap.querySelector(selectors$j.productSlider).classList.contains(classes$8.sliderEnabled),section={id:sectionId,container:this.quickviewWrap,type:"quickview"};theme.settings.enableVideoLooping&&this.quickviewWrap.setAttribute(selectors$j.videoLoop,!0),hasSlider?window.dispatchEvent(new Event("resize")):typeof theme.mediaInstances[this.id]>"u"?(theme.mediaInstances[sectionId]=new Media(section),theme.mediaInstances[sectionId].init()):theme.mediaInstances[sectionId].initSlider(),this.form=new ProductAddForm(section),theme.settings.showQuantity&&new QuantityCounter(section.container).init(),section.container.querySelectorAll(selectors$j.swatch).forEach(swatch=>{this.swatches.push(new Swatch(swatch))}),this.quickviewClose.addEventListener("click",e=>{e.preventDefault(),this.hide()}),document.addEventListener("keyup",event2=>{event2.keyCode===theme.keyboardKeys.ESCAPE&&document.querySelectorAll(`${selectors$j.productBlock}.${classes$8.isVisible}`).length&&this.hide()});const event=new CustomEvent("quickview-is-loaded",{bubbles:!0});this.productBlock.dispatchEvent(event),this.initPaymentButton()}initPaymentButton(){const enablePaymentButton=theme.settings.enablePaymentButton,enableAcceptTerms=theme.settings.enableAcceptTerms,addToCart=this.quickviewWrap.querySelector(selectors$j.addToCart);enablePaymentButton&&!enableAcceptTerms?(typeof addToCart<"u"&&addToCart!=null&&addToCart.classList.add(classes$8.buttonAlt),typeof Shopify<"u"&&typeof Shopify.PaymentButton<"u"&&typeof Shopify.PaymentButton.init<"u"&&Shopify.PaymentButton.init()):typeof addToCart<"u"&&addToCart!=null&&addToCart.classList.remove(classes$8.buttonAlt)}}const selectors$k={trigger:"[data-trigger-quickview]",dataSectionId:"data-section-id"},classes$9={init:"is-init"};let sections={};class Quickview{constructor(container){this.container=container,this.id=this.container.dataset.sectionId,theme.settings.showQuickView&&this.init()}init(){sections[this.id]=[];const buttons=this.container.querySelectorAll(selectors$k.trigger);buttons.length&&buttons.forEach(element=>{element.classList.contains(classes$9.init)||(sections[this.id].push(new QuickviewButton(element,this.id)),element.classList.add(classes$9.init))})}}const quickviewSection={onLoad(){this.section=new Quickview(this.container)}},selectors$l={infinityContainer:"[data-infinity]",pagination:"[data-pagination]",collectionBlockImage:"[data-product-image]",dataId:"data-section-id"};let sections$1={};class Ajaxify{constructor(container){this.container=container,this.infinityContainer=this.container.querySelector(selectors$l.infinityContainer),this.endlessScroll=null,this.infinityContainer&&this.init()}init(){const instance=this,id=this.container.getAttribute(selectors$l.dataId);
12this.fix(),this.endlessScroll=new Ajaxinate({container:`section[${selectors$l.dataId}="${id}"] ${selectors$l.infinityContainer}`,pagination:`section[${selectors$l.dataId}="${id}"] ${selectors$l.pagination}`,callback:function(){instance.setBadge(),makeGridSwatches(instance.container),new Quickview(instance.container)}})}fix(){Ajaxinate.prototype.loadMore=function(){this.request=new XMLHttpRequest,this.request.onreadystatechange=function(){if(!this.request.responseXML||!this.request.readyState===4||!this.request.status===200)return;const newContainer=this.request.responseXML.querySelector(this.settings.container),newPagination=this.request.responseXML.querySelector(this.settings.pagination);this.containerElement.insertAdjacentHTML("beforeend",newContainer.innerHTML),typeof newPagination>"u"||newPagination===null?this.removePaginationElement():(this.paginationElement.innerHTML=newPagination.innerHTML,this.settings.callback&&typeof this.settings.callback=="function"&&this.settings.callback(this.request.responseXML),this.initialize())}.bind(this),this.request.open("GET",this.nextPageUrl,!0),this.request.responseType="document",this.request.send()}}setBadge(){const images=this.infinityContainer.querySelectorAll(selectors$l.collectionBlockImage),resizeEvent=debounce(()=>setBadgePosition(images),50);theme.settings.imageBackgroundSize==="contain"&&images&&(setBadgePosition(images),window.removeEventListener("resize",resizeEvent),window.addEventListener("resize",resizeEvent))}unload(){this.endlessScroll&&this.endlessScroll.destroy()}}const ajaxify={onLoad(){sections$1=new Ajaxify(this.container)},onUnload:function(){typeof sections$1.unload=="function"&§ions$1.unload()}},sections$2={};class Blog{constructor(section){this.container=section.container,this.resizeEvent=debounce(()=>this.checkWindowWidth(),200),this.init()}init(){this.checkWindowWidth(),window.addEventListener("resize",this.resizeEvent)}checkWindowWidth(){(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=theme.sizes.small&&removeAnimations(this.container)}onUnload(){window.removeEventListener("resize",this.resizeEvent)}}const BlogSection={onLoad(){sections$2[this.id]=new Blog(this)},onUnload(e){sections$2[this.id].onUnload(e)}};register("blog",[BlogSection,ajaxify]),register("featured-blog",BlogSection);const selectors$m={popoutWrapper:"[data-popout]",popoutList:"[data-popout-list]",popoutToggle:"[data-popout-toggle]",popoutInput:"[data-popout-input]",popoutOptions:"[data-popout-option]",popoutPrevent:"data-popout-prevent",popoutQuantity:"data-quantity-field",dataValue:"data-value",dataName:"data-name",ariaExpanded:"aria-expanded",ariaCurrent:"aria-current"},classes$a={listVisible:"popout-list--visible",currentSuffix:"--current",classPopoutAlternative:"popout-container--alt"};let sections$3={};class Popout{constructor(popout){this.container=popout,this.popoutList=this.container.querySelector(selectors$m.popoutList),this.popoutToggle=this.container.querySelector(selectors$m.popoutToggle),this.popoutInput=this.container.querySelector(selectors$m.popoutInput),this.popoutOptions=this.container.querySelectorAll(selectors$m.popoutOptions),this.popoutPrevent=this.container.getAttribute(selectors$m.popoutPrevent)==="true",this._connectOptions(),this._connectToggle(),this._onFocusOut(),this.popoutInput&&this.popoutInput.hasAttribute(selectors$m.popoutQuantity)&&document.addEventListener("popout:updateValue",this.updatePopout.bind(this))}unload(){this.popoutOptions.length&&this.popoutOptions.forEach(element=>
12{element.removeEventListener("clickDetails",this.popupOptionsClick.bind(this)),element.removeEventListener("click",this._connectOptionsDispatch.bind(this))}),this.popoutToggle.removeEventListener("click",this.popupToggleClick.bind(this)),this.popoutToggle.removeEventListener("focusout",this.popupToggleFocusout.bind(this)),this.popoutList.removeEventListener("focusout",this.popupListFocusout.bind(this)),this.container.removeEventListener("keyup",this.containerKeyup.bind(this))}popupToggleClick(evt){const ariaExpanded=evt.currentTarget.getAttribute(selectors$m.ariaExpanded)==="true";evt.currentTarget.setAttribute(selectors$m.ariaExpanded,!ariaExpanded),this.popoutList.classList.toggle(classes$a.listVisible)}popupToggleFocusout(evt){this.container.contains(evt.relatedTarget)||this._hideList()}popupListFocusout(evt){const childInFocus=evt.currentTarget.contains(evt.relatedTarget);this.popoutList.classList.contains(classes$a.listVisible)&&!childInFocus&&this._hideList()}popupOptionsClick(evt){evt.preventDefault();let attrValue="";if(evt.currentTarget.getAttribute(selectors$m.dataValue)&&(attrValue=evt.currentTarget.getAttribute(selectors$m.dataValue)),this.popoutInput.value=attrValue,this.popoutPrevent){attrValue=evt.currentTarget.getAttribute(selectors$m.dataName),this.popoutInput.dispatchEvent(new Event("change")),!evt.detail.preventTrigger&&this.popoutInput.hasAttribute(selectors$m.popoutQuantity)&&this.popoutInput.dispatchEvent(new Event("input"));
12const currentElement=this.popoutList.querySelector(`[class*="${classes$a.currentSuffix}"]`);let targetClass=classes$a.currentSuffix;if(currentElement&¤tElement.classList.length){for(const currentElementClass of currentElement.classList)if(currentElementClass.includes(classes$a.currentSuffix)){targetClass=currentElementClass;break}}const listTargetElement=this.popoutList.querySelector(`.${targetClass}`);listTargetElement&&(listTargetElement.classList.remove(`${targetClass}`),evt.currentTarget.parentElement.classList.add(`${targetClass}`));const targetAttribute=this.popoutList.querySelector(`[${selectors$m.ariaCurrent}]`);targetAttribute&&targetAttribute.hasAttribute(`${selectors$m.ariaCurrent}`)&&(targetAttribute.removeAttribute(`${selectors$m.ariaCurrent}`),evt.currentTarget.setAttribute(`${selectors$m.ariaCurrent}`,"true")),attrValue!==""&&(this.popoutToggle.textContent=attrValue),this.popupToggleFocusout(evt),this.popupListFocusout(evt)}else this._submitForm(attrValue)}updatePopout(evt){const targetElement=this.popout
12List.querySelector(`[${selectors$m.dataValue}="${this.popoutInput.value}"]`);targetElement?(targetElement.dispatchEvent(new CustomEvent("clickDetails",{cancelable:!0,bubbles:!0,detail:{preventTrigger:!0}})),targetElement.parentElement.nextSibling||this.container.classList.add(classes$a.classPopoutAlternative)):this.container.classList.add(classes$a.classPopoutAlternative)}containerKeyup(evt){evt.which===theme.keyboardKeys.ESCAPE&&(this._hideList(),this.popoutToggle.focus())}bodyClick(evt){const isOption=this.container.contains(evt.target);this.popoutList.classList.contains(classes$a.listVisible)&&!isOption&&this._hideList()}_connectToggle(){this.popoutToggle.addEventListener("click",this.popupToggleClick.bind(this))}_connectOptions(){this.popoutOptions.length&&this.popoutOptions.forEach(element=>{element.addEventListener("clickDetails",this.popupOptionsClick.bind(this)),element.addEventListener("click",this._connectOptionsDispatch.bind(this))})}_connectOptionsDispatch(evt){const event=new CustomEvent("clickDetails",{cancelable:!0,bubbles:!0,detail:{preventTrigger:!1}});evt.target.dispatchEvent(event)||evt.preventDefault()}_onFocusOut(){this.popoutToggle.addEventListener("focusout",this.popupToggleFocusout.bind(this)),this.popoutList.addEventListener("focusout",this.popupListFocusout.bind(this)),this.container.addEventListener("keyup",this.containerKeyup.bind(this)),document.body.addEventListener("click",this.bodyClick.bind(this))}_submitForm(value){const form=this.container.closest("form");form&&form.submit()}_hideList(){this.popoutList.classList.remove(classes$a.listVisible),this.popoutToggle.setAttribute(selectors$m.ariaExpanded,!1)}}const popoutSection={onLoad(){sections$3[this.id]=[],this.container.querySelectorAll(selectors$m.popoutWrapper).forEach(wrapper=>{sections$3[this.id].push(new Popout(wrapper))})},onUnload(){sections$3[this.id].forEach(popout=>{typeof popout.unload=="function"&&popout.unload()})}},selectors$n={newsletterForm:"[data-newsletter-form]"},classes$b={success:"sign-up-posted"},sections$4={};class NewsletterCheckForResult{constructor(newsletter){this.sessionStorage=window.sessionStorage,this.newsletter=newsletter,this.stopSubmit=!0,this.isChallengePage=!1,this.formID=null,this.checkForChallengePage(),this.newsletterSubmit=e=>this.newsletterSubmitEvent(e),this.isChallengePage||this.init()}init(){this.newsletter.addEventListener("submit",this.newsletterSubmit),this.showMessage()}newsletterSubmitEvent(e){this.stopSubmit&&(e.preventDefault(),this.removeStorage(),this.writeStorage(),this.stopSubmit=!1,this.newsletter.submit())}checkForChallengePage(){this.isChallengePage=window.location.pathname==="/challenge"}writeStorage(){this.sessionStorage!==void 0&&this.sessionStorage.setItem("newsletter_form_id",this.newsletter.id)}readStorage(){this.formID=this.sessionStorage.getItem("newsletter_form_id")}removeStorage(){this.sessionStorage.removeItem("newsletter_form_id")}showMessage(){if(this.readStorage(),this.newsletter.id===this.formID){const newsletter=document.getElementById(this.formID);window.location.search.indexOf("?customer_posted=true")!==-1?(document.body.classList.add(classes$b.success),this.scrollToForm(newsletter)):window.location.search.indexOf("accepts_marketing")!==-1&&document.body.classList.remove(classes$b.success)}}scrollToForm(newsletter){const rect=newsletter.getBoundingClientRect();rect.top>=0&&rect.left>=0&&rect.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&rect.right<=(window.innerWidth||document.documentElement.clientWidth)||setTimeout(()=>{window.scroll({top:rect.top,left:0,behavior:"smooth"})},400)}unload(){this.newsletter.removeEventListener("submit",this.newsletterSubmit)}}register("footer",[popoutSection,{onLoad(){var shopifyLink=document.querySelector("[data-powered-link] a");shopifyLink&&shopifyLink.relList.add("noopener")}},{onLoad(){sections$4[this.id]=[],this.container.querySelectorAll(selectors$n.newsletterForm).forEach(form=>{sections$4[this.id].push(new NewsletterCheckForResult(form))})},onUnload(){sections$4[this.id].forEach(form=>{typeof form.unload=="function"&&form.unload()})}}]);const getSiblings=el=>Array.prototype.filter.call(el.parentNode.children,function(child){return child!==el}),selectors$o={collapsibleTrigger:"[data-collapsible-trigger]",collapsibleContent:"[data-collapsible-content]",navHamburger:"[data-hamburger-scrollable]",header:"data-header"},attributes={expanded:"aria-expanded",controls:"aria-controls",hidden:"aria-hidden"},classes$c={isExpanded:"is-expanded"},sections$5={};class Collapsible{constructor(el){this.section=el,this.triggers=this.section.querySelectorAll(selectors$o.collapsibleTrigger),this.resetHeight=0,this._listeners=new Listeners,this.init()}init(){const navHamburger=document.querySelector(selectors$o.navHamburger);this.section.hasAttribute(selectors$o.header)&&(this.triggers=[...this.triggers,...n
12avHamburger.querySelectorAll(selectors$o.collapsibleTrigger)]),this.triggers.forEach(trigger=>{this._listeners.add(trigger,"click",event=>this.collapsibleToggleEvent(event,trigger)),this._listeners.add(trigger,"keyup",event=>this.collapsibleToggleEvent(event,trigger))})}collapsibleToggleEvent(e,trigger){e.preventDefault();const dropdownId=trigger.getAttribute(attributes.controls),dropdown=document.getElementById(dropdownId),parent=trigger.parentNode,isExpanded=parent.classList.contains(classes$c.isExpanded),isSpace=e.keyCode===theme.keyboardKeys.SPACE,isEscape=e.keyCode===theme.keyboardKeys.ESCAPE;let dropdownHeight=dropdown.querySelector(selectors$o.collapsibleContent).offsetHeight;e.keyCode&&!isSpace&&!isEscape||!isExpanded&&isEscape||(isExpanded&&setTimeout(()=>{dropdownHeight=0,this.setDropdownHeight(dropdown,dropdownHeight,isExpanded)},0),trigger.setAttribute(attributes.expanded,!isExpanded),parent.classList.toggle(classes$c.isExpanded,!isExpanded),this.setDropdownHeight(dropdown,dropdownHeight,isExpanded))}setDropdownHeight(dropdown,dropdownHeight,isExpanded){dropdown.style.maxHeight=`${dropdownHeight}px`,dropdown.setAttribute(attributes.hidden,isExpanded);let maxHeight="none";this.resetHeight&&clearTimeout(this.resetHeight),dropdownHeight===0&&(maxHeight=null),this.resetHeight=setTimeout(()=>{dropdown.style.maxHeight=maxHeight},500)}onUnload(){this._listeners.removeAll()}}const collapsible={onLoad(){sections$5[this.id]=new Collapsible(this.container)},onUnload(e){sections$5[this.id].onUnload(e)}},selectors$p={rangeSlider:"[data-range-slider]",rangeDotLeft:"[data-range-left]",rangeDotRight:"[data-range-right]",rangeLine:"[data-range-line]",rangeHolder:"[data-range-holder]",dataMin:"data-se-min",dataMax:"data-se-max",dataMinValue:"data-se-min-value",dataMaxValue:"data-se-max-value",dataStep:"data-se-step",dataFilterUpdate:"data-range-filter-update",priceMin:"[data-field-price-min]",priceMax:"[data-field-price-max]"},classes$d={classInitialized:"is-initialized"};class RangeSlider{constructor(section){this.container=section.container,this.slider=section.querySelector(selectors$p.rangeSlider),this.resizeFilters=debounce(()=>this.reset(),50),this.slider&&(this.onMoveEvent=event=>this.onMove(event),this.onStopEvent=event=>this.onStop(event),this.onStartEvent=event=>this.onStart(event),this.startX=0,this.x=0,this.touchLeft=this.slider.querySelector(selectors$p.rangeDotLeft),this.touchRight=this.slider.querySelector(selectors$p.rangeDotRight),this.lineSpan=this.slider.querySelector(selectors$p.rangeLine),this.min=parseFloat(this.slider.getAttribute(selectors$p.dataMin)),this.max=parseFloat(this.slider.getAttribute(selectors$p.dataMax)),this.step=0,this.normalizeFact=26,this.init())}init(){let defaultMinValue=this.min;this.slider.hasAttribute(selectors$p.dataMinValue)&&(defaultMinValue=parseFloat(this.slider.getAttribute(selectors$p.dataMinValue)));let defaultMaxValue=this.max;this.slider.hasAttribute(selectors$p.dataMaxValue)&&(defaultMaxValue=parseFloat(this.slider.getAttribute(selectors$p.dataMaxValue))),defaultMinValue<this.min&&(defaultMinValue=this.min),defaultMaxValue>this.max&&(defaultMaxValue=this.max),defaultMinValue>defaultMaxValue&&(defaultMinValue=defaultMaxValue),this.slider.getAttribute(selectors$p.dataStep)&&(this.step=Math.abs(parseFloat(this.slider.getAttribute(selectors$p.dataStep)))),this.reset(),window.addEventListener("resize",this.resizeFilters),this.maxX=this.slider.offsetWidth-this.touchRight.offsetWidth,this.selectedTouch=null,this.initialValue=this.lineSpan.offsetWidth-this.normalizeFact,this.setMinValue(defaultMinValue),this.setMaxValue(defaultMaxValue),this.touchLeft.addEventListener("mousedown",this.onStartEvent),this.touchRight.addEventListener("mousedown",this.onStartEvent),this.touchLeft.addEventListener("touchstart",this.onStartEvent),this.touchRight.addEventListener("touchstart",this.onStartEvent),this.slider.classList.add(classes$d.classInitialized)}reset(){this.touchLeft.style.left="0px",this.touchRight.style.left=this.slider.offsetWidth-this.touchLeft.offsetWidth+"px",this.lineSpan.style.marginLeft="0px",this.lineSpan.style.width=this.slider.offsetWidth-this.touchLeft.offsetWidth+"px",this.startX=0,this.x=0}setMinValue(minValue){const ratio=(minValue-this.min)/(this.max-this.min);this.touchLeft.style.left=Math.ceil(ratio*(this.slider.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact)))+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.slider.setAttribute(selectors$p.dataMinValue,minValue)}setMaxValue(maxValue){const ratio=(maxValue-this.min)/(this.max-this.min);this.touchRight.style.left=Math.ceil(ratio*(this.slider.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact))+this.normalizeFact)+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.slider.setAttribute(selectors$p.dataMaxValue,maxValue)}onStart(event){event.preventDefault();let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),event.currentTarget===this.touchLeft?this.x=this.touchLeft.offsetLeft:this.x=this.touchRight.offsetLeft,this.startX=eventTouch.pageX-this.x,this.selectedTouch=event.currentTarget,this.slider.addEventListener("mousemove",this.onMoveEvent),this.slider.addEventListener("mouseup",this.onStopEvent),this.slider.addEventListener("touchmove",this.onMoveEvent),this.slider.addEventListener("touchend",this.onStopEvent)}onMove(event){let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),this.x=eventTouch.pageX-this.startX,this.selectedTouch===this.touchLeft?(this.x>this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10?this.x=this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10:this.x<0&&(this.x=0),this.selectedTouch.style.left=this.x+"px"):this.selectedTouch===this.touchRight&&(this.x<this.touchLeft.offsetLeft+this.touchLeft.offsetWidth-10?this.x=this.touchLeft.offsetLeft+this.touchLeft.offsetWidth-10:this.x>this.maxX&&(this.x=this.maxX),this.selectedTouch.style.left=this.x+"px"),this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.calculateValue(),this.slider.getAttribute("on-change")&&new Function("min, max",this.slider.getAttribute("on-change"))(this.slider.getAttribute(selectors$p.dataMinValue),this.slider.getAttribute(selectors$p.dataMaxValue)),this.onChange(this.slider.getAttribute(selectors$p.dataMinValue),this.slider.getAttribute(selectors$p.dataMaxValue))}onStop(event){this.slider.removeEventListener("mousemove",this.onMoveEvent),this.slider.removeEventListener("mouseup",this.onStopEvent),this.slider.removeEventListener("touchmove",this.onMoveEvent),this.slider.removeEventListener("touchend",this.onStopEvent),this.selectedTouch=null,this.calculateValue(),this.onChanged(this.slider.getAttribute(selectors$p.dataMinValue),this.slider.getAttribute(selectors$p.dataMaxValue))}onChange(min,max){const rangeHolder=this.slider.closest(selectors$p.rangeHolder);if(rangeHolder){const priceMin=rangeHolder.querySelector(selectors$p.priceMin),priceMax=rangeHolder.querySelector(selectors$p.priceMax);priceMin&&priceMax&&(priceMin.value=min,priceMax.value=max)}}onChanged(min,max){this.slider.hasAttribute(selectors$p.dataFilterUpdate)&&this.slider.dispatchEvent(new CustomEvent("range:filter:update",{bubbles:!0}))}calculateValue(){const newValue=(this.lineSpan.offsetWidth-this.normalizeFact)/this.initialValue;let minValue=this.lineSpan.offsetLeft/this.initialValue,maxValue=minValue+newValue;if(minValue=minValue*(this.max-this.min)+this.min,maxValue=maxValue*(this.max-this.min)+this.min,this.step!==0){let multi=Math.floor(minValue/this.step);minValue=this.step*multi,multi=Math.floor(maxValue/this.step),maxValue=this.step*multi}this.selectedTouch===this.touchLeft&&this.slider.setAttribute(selectors$p.dataMinValue,minValue),this.selectedTouch===this.touchRight&&this.slider.setAttribute(selectors$p.dataMaxValue,maxValue)}onUnload(){this.resizeFilters&&window.removeEventListener("resize",this.resizeFilters)}}const sections$6={},selectors$q={ariaExpanded:"aria-expanded",ariaHidden:"aria-hidden",collectionBlockImage:"[data-product-image]",collectionGridWrapper:"[data-collection-grid-wrapper]",collectionProducts:"[data-collection-
12products]",collectionSort:"[data-collection-sort]",collectionWrapper:"[data-collection-wrapper]",dataCollection:"data-collection",dataCount:"data-count",dataFilterMode:"data-filter-mode",dataSort:"data-sort",dataTag:"data-tag",dataTags:"data-tags",filter:"[data-filter]",filterContainer:"[data-filter-container]",filterCount:"[data-filter-count]",filterTag:"[data-filter-tag]",filterTagButton:"[data-filter-tag-button]",filterTitle:"[data-collapsible-trigger]",filters:"[data-filters]",filtersResets:"[data-filters-reset]",filtersResetButton:"[data-filters-reset-button]",filtersEnable:"data-filters-enable",filtersForm:"[data-filters-form]",filtersResetButtons:"[data-filter-reset-button]",inputs:"input, select, label, textarea",pagination:"[data-pagination]",priceMin:"[data-field-price-min]",priceMax:"[data-field-price-max]",priceMinValue:"data-field-price-min",priceMaxValue:"data-field-price-max",rangeMin:"[data-se-min-value]",rangeMax:"[data-se-max-value]",rangeMinValue:"data-se-min-value",rangeMaxValue:"data-se-max-value",swatch:"data-swatch"},classes$e={filtersTop:"collection__filters--top",filtersHasTagsSelected:"collection__filters--has-tags-selected",hasTagsExpanded:"has-tags-expanded",isActive:"is-active",isExpanded:"is-expanded",isLoading:"is-loading"};class Collection{constructor(section){this.container=section.container,this.collectionGridWrapper=this.container.querySelector(selectors$q.collectionGridWrapper),this.collectionSort=this.container.querySelector(selectors$q.collectionSort),this.collectionProducts=this.container.querySelector(selectors$q.collectionProducts),this.collectionWrapper=this.container.querySelector(selectors$q.collectionWrapper),this.pagination=this.container.querySelector(selectors$q.pagination),this.filterMode=this.container.getAttribute(selectors$q.dataFilterMode),this.filters=this.container.querySelector(selectors$q.filters),this.filtersEnable=this.container.getAttribute(selectors$q.filtersEnable)==="true",this.filtersForm=this.container.querySelector(selectors$q.filtersForm),this.filtersResets=this.container.querySelector(selectors$q.filtersResets),this.filtersInputs=[],this.sort=null,this.tags=null,this.collection=null,this.reset=null,this.badgesResizeEvent=null,this.resizeFiltersEvent=debounce(()=>this.checkFiltersPosition(),250),this.documentClick=e=>this.closeOnOutsideClick(e),this.init()}init(){if(this.collectionSort&&this.initSort(),this.collectionProducts){this.collection=this.collectionProducts.getAttribute(selectors$q.dataCollection);const images=this.collectionProducts.querySelectorAll(selectors$q.collectionBlockImage);this.badgesResizeEvent=debounce(()=>setBadgePosition(images),250),theme.settings.imageBackgroundSize==="contain"&&images&&(setBadgePosition(images),window.addEventListener("resize",this.badgesResizeEvent))}this.filtersEnable&&((this.filterMode==="tag"||this.filterMode==="group")&&(this.tags=JSON.parse(this.collectionProducts.getAttribute(selectors$q.dataTags)),this.initFilters()),this.filterMode==="default"&&this.initFacetedFilters()),this.initFilterToggleButtons(),this.checkFiltersPosition(),window.addEventListener("resize",this.resizeFiltersEvent)}initSort(){this.collectionSort.addEventListener("change",evt=>{const url=new window.URL(window.location.href),value=evt.currentTarget.value,params=url.searchParams;params.set("sort_by",value),url.search=params.toString(),this.collectionProducts.setAttribute(selectors$q.dataSort,value),this.requestFilteredProducts(url.toString())})}initFilterToggleButtons(){if(!this.filters)return;this.filters.querySelectorAll(selectors$q.filterTitle).forEach(title=>{title.addEventListener("click",()=>{this.toggleTitle(title)}),this.isTopPosition()&&(title.setAttribute(selectors$q.ariaExpanded,!1),title.parentNode.classList.remove(classes$e.isExpanded),title.parentNode.querySelector(selectors$q.filterContainer).setAttribute(selectors$q.ariaHidden,!0))}),document.addEventListener("click",this.documentClick)}initFacetedFilters(){new RangeSlider(this.filtersForm),this.filtersInputs=this.filtersForm.querySelectorAll(selectors$q.inputs),this.filtersInputs.length&&this.filtersInputs.forEac
12h(el=>{el.addEventListener("input",debounce(()=>{this.filtersForm&&typeof this.filtersForm.submit=="function"&&this.submitForm()},500))}),this.filtersForm.addEventListener("range:filter:update",()=>this.updateRange()),this.initResets()}submitForm(){const formData=new FormData(this.filtersForm),search=new URLSearchParams(formData);this.requestFilteredProducts(`${this.collection}${search.toString()}`)}initFilters(){this.filters.querySelectorAll(selectors$q.filterTagButton).forEach(button=>{button.addEventListener("click",e=>{this.toggleFilter(button),e.preventDefault()})}),this.initResets()}initResets(){const resets=this.container.querySelectorAll(selectors$q.filtersResetButtons);this.resetAlt=this.collectionProducts.querySelector(selectors$q.filtersResetButton),resets.length&&resets.forEach(button=>{button.addEventListener("click",e=>this.bindResetButton(e))}),this.resetAlt&&this.resetAlt.addEventListener("click",e=>this.bindResetButton(e))}toggleTitle(title){const filter=title.parentNode,filters=getSiblings(filter),isAriaExpanded=title.getAttribute("aria-expanded")==="true";this.filters.classList.toggle(classes$e.hasTagsExpanded,!isAriaExpanded),this.isTopPosition()&&filters.forEach(filter2=>{filter2.classList.remove(classes$e.isExpanded),filter2.querySelector(selectors$q.filterContainer)&&filter2.querySelector(selectors$q.filterContainer).setAttribute(selectors$q.ariaHidden,!0),filter2.querySelector(selectors$q.filterTitle)&&filter2.querySelector(selectors$q.filterTitle).setAttribute(selectors$q.ariaExpanded,!1)})}toggleFilter(button){const filterTag=button.parentNode,selectedTag=button.getAttribute(selectors$q.dataTag),isTagActive=filterTag.classList.contains(classes$e.isActive),title=filterTag.parentNode.parentNode.previousElementSibling;this.sort=this.collectionProducts.getAttribute(selectors$q.dataSort);let sortParam="";if(isTagActive){const tagIndex=this.tags.indexOf(selectedTag);filterTag.classList.remove(classes$e.isActive),tagIndex>-1&&this.tags.splice(tagIndex,1)}else filterTag.classList.add(classes$e.isActive),this.tags.push(selectedTag);this.collectionProducts.setAttribute(selectors$q.dataTags,this.tags);const groupFiltersCount=filterTag.parentNode.querySelectorAll(`.${classes$e.isActive}`).length;title.querySelector(selectors$q.filterCount).setAttribute(selectors$q.dataCount,groupFiltersCount),(this.isTopPosition()||isTagActive)&&title.dispatchEvent(new Event("click")),this.sort&&(sortParam=`?sort_by=${this.sort}`);const requestedURL=`${this.collection}/${this.tags.join("+")}${sortParam}`;this.requestFilteredProducts(requestedURL)}updateRange(){if(this.filtersForm&&typeof this.filtersForm.submit=="function"){const rangeMin=this.filtersForm.querySelector(selectors$q.rangeMin),rangeMax=this.filtersForm.querySelector(selectors$q.rangeMax),priceMin=this.filtersForm.querySelector(selectors$q.priceMin),priceMax=this.filtersForm.querySelector(selectors$q.priceMax);if(rangeMin&&rangeMax&&priceMin&&priceMax&&rangeMin.hasAttribute(selectors$q.rangeMinValue)&&rangeMax.hasAttribute(selectors$q.rangeMaxValue)){const priceMinValue=parseInt(priceMin.placeholder),priceMaxValue=parseInt(priceMax.placeholder),rangeMinValue=parseInt(rangeMin.getAttribute(selectors$q.rangeMinValue)),rangeMaxValue=parseInt(rangeMax.getAttribute(selectors$q.rangeMaxValue));(priceMinValue!==rangeMinValue||priceMaxValue!==rangeMaxValue)&&(priceMin.value=rangeMinValue,priceMax.value=rangeMaxValue,this.submitForm())}}}closeOnOutsideClick(e){const isFiltersContainer=this.filters.contains(e.target),isFilterExpanded=this.filters.classList.contains(classes$e.hasTagsExpanded);!isFiltersContainer&&isFilterExpanded&&this.isTopPosition()&&this.filters.querySelector(`${selectors$q.filter}.${classes$e.isExpanded}`).querySelector(selectors$q.filterTitle).dispatchEvent(new Event("click"))}requestFilteredProducts(url){const collectionWrapperTop=parseInt(Math.ceil(this.collectionWrapper.offsetTop)-theme.dimensions.headerScrolled);this.collectionWrapper.classList.add(classes$e.isLoading),window.scrollTo({top:collectionWrapperTop,left:0,behavior:"smooth"}),history.replaceState&&window.history.pushState({path:url},"",url),fetch(url).then(response=>response.text()).then(data=>{const createdElement=document.createElement("div");createdElement.innerHTML=data;const collectionProducts=createdElement.querySelector(selectors$q.collectionProducts).innerHTML,pagination=createdElement.querySelector(selectors$q.pagination),filters=createdElement.querySelector(selectors$q.filters);if(this.collectionProducts.innerHTML=collectionProducts,this.pagination&&(this.pagination.innerHTML=pagination!==null?pagination.innerHTML:""),!this.pagination&&pagination!==null&&(this.collectionGridWrapper.appendChild(pagination),this.pagination=this.collectionGridWrapper.querySelector(selectors$q.pagination)),filters){const filtersHTML=filters.innerHTML;this.filters.innerHTML=filtersHTML,this.filtersForm=this.filters.querySelector(selectors$q.filtersForm),(this.filterMode==="tag"||this.filterMode==="group")&&(this.initFilters(),this.tags.length>0?this.filters.classList.add(classes$e.filtersHasTagsSelected):this.filters.classList.remove(classes$e.filtersHasTagsSelected)),this.filterMode==="default"&&this.initFacetedFilters(),this.checkFiltersPosition(),this.initFilterToggleButtons(),this.bindSwatchFilters(),new Collapsible(this.container)}ajaxify.onUnload(),new Ajaxify(this.container),makeGridSwatches(this.container),new Quickview(this.container);const images=this.collectionProducts.querySelectorAll(selectors$q.collectionBlockImage);
12theme.settings.imageBackgroundSize==="contain"&&images&&setBadgePosition(images)}).catch(e=>{this.collectionWrapper.classList.remove(classes$e.isLoading)}).finally(()=>{setTimeout(()=>{this.collectionWrapper.classList.remove(classes$e.isLoading)},450)})}checkFiltersPosition(){if(!this.filters)return;const filters=this.filters.querySelectorAll(selectors$q.filter);this.isTopPosition()&&(this.filters.classList.remove(classes$e.hasTagsExpanded),filters.forEach(filter=>{filter.classList.contains(classes$e.isExpanded)&&(filter.classList.remove(classes$e.isExpanded),filter.querySelector(selectors$q.filterContainer)&&(filter.querySelector(selectors$q.filterContainer).setAttribute(selectors$q.ariaHidden,!0),filter.querySelector(selectors$q.filterContainer).style.maxHeight=0),filter.querySelector(selectors$q.filterTitle)&&filter.querySelector(selectors$q.filterTitle).setAttribute(selectors$q.ariaExpanded,!1))}))}isTopPosition(){return(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=theme.sizes.widescreen||this.filters.classList.contains(classes$e.filtersTop)}bindSwatchFilters(){this.swatches=[],this.container.querySelectorAll(`[${selectors$q.swatch}]`).forEach(el=>{this.swatches.push(new Swatch(el))})}bindResetButton(e){if(e.preventDefault(),this.filterMode==="tag"||this.filterMode==="group"){const button=e.currentTarget;if(button.getAttribute(selectors$q.dataTag)){const selectedTag=button.dataset.tag,tagIndex=this.tags.indexOf(selectedTag);tagIndex>-1&&this.tags.splice(tagIndex,1)}else this.tags=[];this.collectionProducts.setAttribute(selectors$q.dataTags,this.tags)}this.requestFilteredProducts(e.currentTarget.href)}onUnload(){document.removeEventListener("click",this.documentClick),window.removeEventListener("resize",this.resizeFiltersEvent),this.badgesResizeEvent&&window.removeEventListener("resize",this.badgesResizeEvent)}}const CollectionSection={onLoad(){sections$6[this.id]=new Collection(this)},onUnload(e){sections$6[this.id].onUnload(e)}};register("collection",[CollectionSection,collapsible,quickviewSection,ajaxify,swatchGridSection,swatchSection,popoutSection]),register("search-template",[CollectionSection,collapsible,quickviewSection,ajaxify,swatchGridSection,swatchSection,popoutSection]);const sections$7={},selectors$r={slider:"[data-collection-slider]",prevArrow:"[data-prev-arrow]",nextArrow:"[data-next-arrow]",productBlock:"[data-product-block]",productImage:"[data-product-image]",quickViewWrap:"[data-quickview-wrap]",quickViewButton:"[data-trigger-quickview]"},classes$f={blockQuickView:"product-block--quickview",isVisible:"is-visible",flickityEnabled:"flickity-enabled"};class CollectionSlider{constructor(section){this.container=section.container,this.slideshow=this.container.querySelector(selectors$r.slider),this.productBlocks=this.container.querySelectorAll(selectors$r.productBlock),this.productImages=this.container.querySelectorAll(selectors$r.productImage),this.slideshowPrev=this.container.querySelector(selectors$r.prevArrow),this.slideshowNext=this.container.querySelector(selectors$r.nextArrow),this.resizeEvent=debounce(()=>{this.sliderInit(),this.setArrowPosition(),this.setQuickViewPosition()},200),this.resizeBadge=null,this.flkty=null,this.slideshow&&this.init(),this.productImages&&theme.settings.imageBackgroundSize==="contain"&&(this.resizeBadge=debounce(()=>setBadgePosition(this.productImages),50),setBadgePosition(this.productImages),window.addEventListener("resize",this.resizeBadge))}init(){this.slideshowPrev.addEventListener("click",this.goToPrevSlide.bind(this)),this.slideshowNext.addEventListener("click",this.goToNextSlide.bind(this)),removeAnimations(this.container),this.sliderInit(),this.productBlocks.forEach(productBlock=>{productBlock.addEventListener("quickview-is-loaded",()=>{productBlock.classList.add(classes$f.blockQuickView),this.setQuickViewPosition()})}),window.addEventListener("resize",this.resizeEvent)}sliderInit(){const windowWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,sliderInitialized=this.slideshow.classList.contains(classe
12s$f.flickityEnabled);windowWidth>theme.sizes.small?sliderInitialized||(this.flkty=new Flickity(this.slideshow,{groupCells:"100%",setGallerySize:!1,autoPlay:!1,prevNextButtons:!1,pageDots:!1,wrapAround:!1,cellAlign:"left",contain:!0,on:{ready:()=>{this.setArrowPosition()},change:function(){const visibleQuickView=this.element.querySelector(`${selectors$r.productBlock}.${classes$f.isVisible}`);visibleQuickView!==null&&visibleQuickView.querySelector(selectors$r.quickViewButton).dispatchEvent(new Event("click"))}}})):sliderInitialized&&this.flkty.destroy()}goToPrevSlide(e){e.preventDefault(),this.flkty.previous(!0)}goToNextSlide(e){e.preventDefault(),this.flkty.next(!0)}setArrowPosition(){let arrowTop=this.slideshow.querySelector(selectors$r.productImage).offsetHeight/2;const arrowHeight=this.slideshowPrev.offsetHeight/2;arrowTop-=arrowHeight,this.slideshowPrev.style.top=`${arrowTop}px`,this.slideshowNext.style.top=`${arrowTop}px`}setQuickViewPosition(){const productBlock=this.slideshow.querySelector(`.${classes$f.blockQuickView}`);if(productBlock===null)return;const quickViewWrap=productBlock.querySelector(selectors$r.quickViewWrap),sliderPadding=parseInt(window.getComputedStyle(this.slideshow).paddingLeft.replace("px","")),sliderInnerWidth=this.slideshow.offsetWidth-sliderPadding*2;let offsetLeft=productBlock.offsetLeft;offsetLeft>=sliderInnerWidth&&(offsetLeft%=sliderInnerWidth),quickViewWrap.style.left=`calc(${productBlock.style.left} - ${offsetLeft}px)`,quickViewWrap.style.width="100%"}onUnload(){this.slideshow&&this.slideshow.classList.contains(classes$f.flickityEnabled)&&this.flkty.destroy(),this.resizeBadge&&window.removeEventListener("resize",this.resizeBadge),window.removeEventListener("resize",this.resizeEvent)}}register("featured-collection",[{onLoad(){sections$7[this.id]=new CollectionSlider(this)},onUnload(e){sections$7[this.id].onUnload(e)}},quickviewSection,swatchGridSection]);const outerWidth=el=>{const style=getComputedStyle(el);let width=el.offsetWidth;return width+=parseInt(style.marginLeft)+parseInt(style.marginRight),width},selectors$s={saleClass:" is-sale",soldClass:" is-sold-out",badgeClass:" product-status-flag--",customBadgeClass:" product-status-flag--custom"};function formatPrices(product){const badgeStyle=theme.settings.productBadgeStyle,onSale=product.price<=product.compare_at_price_min,soldOut=!product.available;let badgeText,badgeClasses=`${selectors$s.badgeClass}${badgeStyle}`,customBadge=!1,preorder=!1;for(let i=0;i<product.tags.length;i++){if(product.tags[i].includes("_badge_")){customBadge=!0,badgeText=product.tags[i].replace("_badge_","").split("_").join(" "),badgeClasses+=selectors$s.customBadgeClass;break}if(product.tags[i].includes("_preorder")){preorder=!0;break}}if(customBadge||(soldOut?(badgeText=theme.translations.sold_out,badgeClasses+=selectors$s.soldClass):preorder?(badgeText=theme.translations.pre_order,badgeClasses+=selectors$s.customBadgeClass):onSale&&(badgeText=theme.translations.on_sale,badgeClasses+=selectors$s.saleClass)),badgeStyle=="circle"&&badgeText&&(badgeText=badgeText.replace(" ","<br>")),product.price=themeCurrency.formatMoney(product.price,moneyFormat),product.price_with_from=product.price,product.price_varies){let min=themeCurrency.formatMoney(product.price_min,moneyFormat);product.price_with_from=`${theme.translations.from} ${min}`}return product.compare_at_price&&(product.compare_at_price=themeCurrency.formatMoney(product.compare_at_price,moneyFormat)),{...product,badgeClasses,badgeText}}const selectors$t={input:"data-search-input",productTemplate:"[product-grid-item-template]",pageTemplate:"[page-item-template]",noresultTemplate:"[noresult-item-template]",productsWrapper:"[data-products-wrap]",articlesWrapper:"[data-articles-wrap]",pagesWrapper:"[data-pages-wrap]",productWrapperOuter:"[data-product-wrap-outer]",viewAll:"[data-view-all]",productImage:"[data-product-image]",productBadge:"[data-badge]",searchPopdown:"nav-search"},classes$g={loadingClass:"is-searching",resultsVisibleClass:"results--visible",hiddenClass:"is-hidden",focusEnabled:"is-focused"};class SearchPredictive{constructor(input){this.input=input,this.key=this.input.getAttribute(selectors$t.input);const appendSelector=`[id="${this.key}"]`;this.append=document.querySelector(appendSelector),this.productTemplate=document.querySelector(selectors$t.productTemplate).innerHTML,this.pageTemplate=document.querySelector(selectors$t.pageTemplate).innerHTML,this.noresultTemplate=document.querySelector(selectors$t.noresultTemplate).innerHTML,this.productsWra
12pper=this.append.querySelector(selectors$t.productsWrapper),this.pagesWrapper=this.append.querySelector(selectors$t.pagesWrapper),this.articlesWrapper=this.append.querySelector(selectors$t.articlesWrapper),this.focusedContainer=this.productsWrapper,this.viewAll=this.append.querySelector(selectors$t.viewAll),this.popdown=document.getElementById(selectors$t.searchPopdown),this.productWrapperOuter=this.popdown.querySelector(selectors$t.productWrapperOuter),this.result=null,this.accessibility=a11y,this.initSearch()}initSearch(){this.input.addEventListener("input",debounce(function(event){const val=event.target.value;val&&val.length>1?(this.productWrapperOuter.classList.add(classes$g.loadingClass),this.render(val)):this.reset()}.bind(this),300)),this.input.addEventListener("clear",this.reset.bind(this))}render(terms){const searchType=theme.settings.searchType;fetch(`/search/suggest.json?q=${encodeURIComponent(terms)}&resources[type]=${searchType}&resources[limit]=10&resources[options][unavailable_products]=last`).then(this.handleErrors).then(response=>response.json()).then(response=>{this.result=response.resources.results;const products=this.result.products.filter(product=>product.type!=="Service Charge");return this.fetchProducts(products)}).then(response=>{this.popdown.classList.add(classes$g.resultsVisibleClass),this.reset(!1),this.result.articles!==void 0&&(this.result.articles.length===0?this.injectHTML(this.articlesWrapper,this.renderNoResult()):(this.injectHTML(this.articlesWrapper,this.fetchPages(this.result.articles)),this.focusedContainer=this.articlesWrapper)),this.result.pages!==void 0&&(this.result.pages.length===0?this.injectHTML(this.pagesWrapper,this.renderNoResult()):(this.injectHTML(this.pagesWrapper,this.fetchPages(this.result.pages)),this.focusedContainer=this.pagesWrapper)),response===""?(this.viewAll.classList.add(classes$g.hiddenClass),this.injectHTML(this.productsWrapper,this.renderNoResult())):(this.viewAll.classList.remove(classes$g.hiddenClass),this.viewAll.setAttribute("href",`${theme.routes.search_url}?type=product&q=${terms}&options[prefix]=last`),this.injectHTML(this.productsWrapper,response)),this.productWrapperOuter.classList.remove(classes$g.loadingClass);const images=this.productWrapperOuter.querySelectorAll(selectors$t.productImage);theme.settings.imageBackgroundSize==="contain"&&images&&setBadgePosition(images),document.body.classList.contains(classes$g.focusEnabled)&&this.accessibility.trapFocus(this.popdown,{elementToFocus:this.focusedContainer})}).catch(e=>{console.error(e)})}reset(clearTerms=!0){this.productsWrapper.innerHTML="",this.pagesWrapper!==null&&(this.pagesWrapper.innerHTML=""),this.articlesWrapper!==null&&(this.articlesWrapper.innerHTML=""),this.input.val="",this.accessibility.removeTrapFocus(),clearTerms&&this.popdown.classList.remove(classes$g.resultsVisibleClass)}injectHTML(target,pageHTML){target.innerHTML+=pageHTML}fetchProducts(products){const promises=[];return products.slice(0,4).forEach(product=>{promises.push(fetchProduct(product.handle).then(productJSON=>{const formatted=formatPrices(productJSON);return this.renderProduct(formatted)}))}),Promise.all(promises).then(result=>{let str="";return result.forEach(render=>{str+=render}),str})}fetchPages(pages){let html="";return pages.forEach(page=>{html+=this.renderPage(page)}),html}renderProduct(product){const stripHtmlRegex=/(<([^>]+)>)/gi,title=product.title.replace(stripHtmlRegex,"");let media=null,image="",blankImage=theme.assets.blank;product.media!==void 0&&(media=product.media[0]),media?image={thumb:themeImages.getSizedImageUrl(media.preview_image.src,"800x800"),alt:media.preview_image.alt,aspectRatio:media.preview_image.aspect_ratio,src:blankImage}:image={thumb:theme.assets.no_image,alt:"",aspectRatio:1,src:blankImage};const updateValues={...product,title,image};return Sqrl.render(this.productTemplate,{product:updateValues})}renderPage(page){const stripHtmlRegex=/(<([^>]+)>)/gi,title=page.title.replace(stripHtmlRegex,""),updateValues={...page,title};return Sqrl.render(this.pageTemplate,{page:updateValues})}
12renderNoResult(){const updateValues={text:theme.translations.no_results};return Sqrl.render(this.noresultTemplate,{item:updateValues})}handleErrors(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}}const selectors$u={bodyWrap:"[data-body-wrap]",menuToggle:"[data-menu-toggle]",hamburgerIcon:"[data-hamburger-icon]",hamburgerMenuScrollable:"[data-hamburger-scrollable]",headerIcons:"[data-header-icons]",navMain:"[data-nav-main]",searchWrapper:"[data-nav-search]",searchToggle:"[data-search-toggle]",searchInput:"[data-search-input]",searchSubmit:"[data-search-submit]",searchScroller:"[data-nav-search-scroller]",viewAll:"[data-view-all]",siteAlert:"[data-site-alert]",shopBar:"[data-shop-bar]",menuDropdownParent:"[data-dropdown-parent]",dropdownTrigger:"data-collapsible-trigger",menuItemLink:"data-menu-item-link",visibleLink:"data-visible-link",ariaExpanded:"aria-expanded",href:"href",tabIndex:"tabindex"},classes$h={navVisible:"nav--is-visible",navHiding:"nav--is-hiding",searchVisible:"header--search-visible",searchHiding:"header--search-hiding",megamenuVisible:"header--megamenu-visible",headerHamburger:"header--is-hamburger",menuItemDropdown:"menu-item--dropdown",isExpanded:"is-expanded",isActive:"is-active",open:"open"};let sections$8={};class Navigation{constructor(el){this.header=el,this.body=document.body,this.bodyWrap=document.querySelector(selectors$u.bodyWrap),this.siteAlert=document.querySelector(selectors$u.siteAlert),this.shopBar=document.querySelector(selectors$u.shopBar),this.transformedElements=[this.header,this.siteAlert,this.bodyWrap,this.shopBar],this.menuToggles=document.querySelectorAll(selectors$u.menuToggle),this.headerIcons=this.header.querySelector(selectors$u.headerIcons),this.navStandard=this.header.querySelector(selectors$u.navMain),this.hamburger=this.header.querySelector(selectors$u.hamburgerIcon),this.search=this.header.querySelector(selectors$u.searchWrapper),this.searchScroller=this.header.querySelector(selectors$u.searchScroller),this.scrollableElement=document.querySelector(selectors$u.hamburgerMenuScrollable),this.hamburgerNavLinks=this.scrollableElement.parentNode.querySelectorAll("button, a"),this.resizeTransform=debounce(()=>this.transformHeaderElements(),100),this.documentClick=e=>this.hideOnOutsideClick(e),this.documentKeyup=e=>this.hideOnKeyUp(e),this.searchPredictive=null,this.scrollLockTimeout=0,this.resetHeight=0,this.accessibility=a11y,this.search!==null&&(this.searchToggles=this.header.querySelectorAll(selectors$u.searchToggle),this.searchOpen=this.headerIcons.querySelector(selectors$u.searchToggle),this.searchInput=this.search.querySelector(selectors$u.searchInput)),this.init()}init(){this.hide(),this.bindings(),this.activeLinks(),this.search!==null&&this.bindingsSearch()}bindings(){const dropdownParents=this.navStandard.querySelectorAll(selectors$u.menuDropdownParent),emptyLinks=document.querySelectorAll(`${selectors$u.navMain} a[href^="#"]:not(${selectors$u.viewAll})`),triggers=[...document.querySelectorAll(`${selectors$u.navMain} [${selectors$u.dropdownTrigger}]`),...emptyLinks];this.menuToggles.forEach(menuToggle=>{menuToggle.addEventListener("click",e=>{e.preventDefault(),this.body.classList.contains(classes$h.navVisible)?this.hide():this.show()})}),dropdownParents.forEach(dropdownParent=>{const visibleNavLinks=dropdownParent.querySelectorAll(`[${selectors$u.visibleLink}]`);dropdownParent.addEventListener("mouseenter",()=>{theme.touched||(dropdownParent.classList.contains(classes$h.menuItemDropdown)||this.header.classList.add(classes$h.megamenuVisible),dropdownParent.classList.add(classes$h.isExpanded),visibleNavLinks.forEach(link=>{link.removeAttribute(selectors$u.tabIndex),link.hasAttribute(selectors$u.ariaExpanded)&&link.setAttribute(selectors$u.ariaExpanded,!0)}))}),dropdownParent.addEventListener("mouseleave",()=>{dropdownParent.classList.contains(classes$h.menuItemDropdown)||this.header.classList.remove(classes$h.megamenuVisible),dropdownParent.classList.remove(classes$h.isExpanded),visibleNavLinks.forEach(link=>{link.setAttribute(selectors$u.tabIndex,"-1"),link.hasAttribute(selectors$u.ariaExpanded)&&link.setAttribute(selectors$u.ariaExpanded,!1)})})}
12),triggers.forEach(trigger=>{trigger.addEventListener("click",()=>{trigger.parentNode.classList.contains(classes$h.isExpanded)?this.submenuClose(trigger.parentNode):this.submenuOpen(trigger.parentNode)}),trigger.addEventListener("keyup",e=>{e.keyCode===theme.keyboardKeys.SPACE?trigger.parentNode.classList.contains(classes$h.isExpanded)?this.submenuClose(trigger.parentNode):this.submenuOpen(trigger.parentNode):e.keyCode===theme.keyboardKeys.ESCAPE&&this.submenuClose(trigger.parentNode)})}),document.addEventListener("click",this.documentClick),document.addEventListener("keyup",this.documentKeyup)}bindingsSearch(){this.searchPredictive=new SearchPredictive(this.searchInput),this.searchToggles.forEach(searchToggle=>{searchToggle.addEventListener("click",e=>{e.preventDefault(),this.searchToggle()})})}hideOnOutsideClick(e){const menuToggle=this.headerIcons.querySelector(selectors$u.menuToggle),isSearchVisible=this.header.classList.contains(classes$h.searchVisible),isMenuToggle=menuToggle.contains(e.target),isMenuContainer=document.querySelector(selectors$u.hamburgerMenuScrollable).parentNode.contains(e.target),isHeaderHamburger=this.header.classList.contains(classes$h.headerHamburger);if(this.search!==null){const isSearchToggle=this.searchOpen.contains(e.target);!this.search.contains(e.target)&&!isSearchToggle&&isSearchVisible&&this.searchToggle()}!isMenuToggle&&!isMenuContainer&&isHeaderHamburger&&this.hide()}hideOnKeyUp(e){const key=e.which||e.keyCode,focusedElement=e.target,hamburgerMenu=document.querySelectorAll(selectors$u.navMain)[1],isSearchVisible=this.header.classList.contains(classes$h.searchVisible),isHamburgerOpen=this.hamburger.classList.contains(classes$h.open),expandedItem=document.querySelector(`${selectors$u.menuDropdownParent}.${classes$h.isExpanded}`);key!==theme.keyboardKeys.TAB&&key!==theme.keyboardKeys.ESCAPE||(key===theme.keyboardKeys.TAB?(focusedElement.hasAttribute(selectors$u.menuItemLink)&&expandedItem!==null&&expandedItem.querySelector(`[${selectors$u.dropdownTrigger}]`).dispatchEvent(new Event("click")),!hamburgerMenu.contains(focusedElement)&&isHamburgerOpen&&this.hide(),this.search!==null&&!this.search.contains(focusedElement)&&isSearchVisible&&this.searchToggle()):key===theme.keyboardKeys.ESCAPE&&(expandedItem!==null&&expandedItem.querySelector(`[${selectors$u.dropdownTrigger}]`).dispatchEvent(new Event("click")),isSearchVisible&&this.searchToggle(),isHamburgerOpen&&this.hide()))}show(){const headerIconsLinks=this.headerIcons.querySelectorAll(`a:not(${selectors$u.menuToggle})`);document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0,detail:this.scrollableElement})),this.hamburger.classList.add(classes$h.open),this.body.classList.add(classes$h.navVisible),headerIconsLinks.forEach(iconLink=>iconLink.setAttribute(selectors$u.tabIndex,"-1")),this.hamburgerNavLinks.forEach(hamburgerNavLink=>hamburgerNavLink.removeAttribute(selectors$u.tabIndex)),this.menuToggles.forEach(menuToggle=>menuToggle.setAttribute(selectors$u.ariaExpanded,!0)),this.transformHeaderElements(),window.addEventListener("resize",this.resizeTransform)}transformHeaderElements(){this.header.classList.contains(classes$h.headerHamburger)&&this.transformedElements.forEach(element=>{element!==null&&(element.style.transform=`translateX(${this.scrollableElement.parentNode.offsetWidth}px)`)})}hide(){const headerIconsLinks=this.headerIcons.querySelectorAll("a");this.body.classList.contains(classes$h.navVisible)&&(this.hamburger.classList.remove(classes$h.open),this.body.classList.add(classes$h.navHiding),this.body.classList.remove(classes$h.navVisible),this.transformedElements.forEach(element=>{element!==null&&(element.style.transform="none")}),this.scrollLockTimeout&&clearTimeout(this.scrollLockTimeout),this.scrollLockTimeout=setTimeout(()=>{document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),this.body.classList.remove(classes$h.navHiding)},500),window.removeEventListener("resize",this.resizeTransform),headerIconsLinks.forEach(iconLink=>iconLink.removeAttribute(selectors$u.tabIndex)),this.hamburgerNavLinks.forEach(hamburgerNavLink=>hamburgerNavLink.setAttribute(selectors$u.tabIndex,"-1")),this.menuToggles.forEac
12h(menuToggle=>menuToggle.setAttribute(selectors$u.ariaExpanded,!1)))}activeLinks(){const menuItemLinks=this.navStandard.querySelectorAll(`[${selectors$u.menuItemLink}]`),visibleNavLinks=this.navStandard.querySelectorAll(`[${selectors$u.visibleLink}]`);let isTopLevel=!1;menuItemLinks.forEach(link=>{link.getAttribute(selectors$u.href)===window.location.pathname&&(link.parentNode.classList.add(classes$h.isActive),isTopLevel=!0)}),isTopLevel||visibleNavLinks.forEach(link=>{link.getAttribute(selectors$u.href)===window.location.pathname&&(link.parentNode.classList.add(classes$h.isActive),link.closest(selectors$u.menuDropdownParent).classList.add(classes$h.isActive))})}submenuClose(el){el.querySelectorAll(`[${selectors$u.visibleLink}]`).forEach(link=>{link.setAttribute(selectors$u.tabIndex,"-1"),link.hasAttribute(selectors$u.ariaExpanded)&&link.setAttribute(selectors$u.ariaExpanded,!1)}),el.classList.contains(classes$h.menuItemDropdown)||this.header.classList.remove(classes$h.megamenuVisible)}submenuOpen(el){el.querySelectorAll(`[${selectors$u.visibleLink}]`).forEach(link=>{link.removeAttribute(selectors$u.tabIndex),link.hasAttribute(selectors$u.ariaExpanded)&&link.setAttribute(selectors$u.ariaExpanded,!0)}),el.classList.contains(classes$h.menuItemDropdown)||this.header.classList.add(classes$h.megamenuVisible)}searchToggle(){const searchClose=this.search.querySelector(selectors$u.searchToggle),searchSubmit=this.search.querySelector(selectors$u.searchSubmit),clickableElements=[this.searchInput,searchSubmit,searchClose];this.header.classList.contains(classes$h.searchVisible)?(this.searchToggles.forEach(toggle=>toggle.setAttribute(selectors$u.ariaExpanded,!1)),clickableElements.forEach(element=>element.setAttribute(selectors$u.tabIndex,"-1")),this.header.classList.add(classes$h.searchHiding),this.header.classList.remove(classes$h.searchVisible),this.accessibility.removeTrapFocus(),this.scrollLockTimeout&&clearTimeout(this.scrollLockTimeout),this.scrollLockTimeout=setTimeout(()=>{this.header.classList.remove(classes$h.searchHiding),!this.body.classList.contains("cart--is-visible")&&!this.header.classList.contains(classes$h.searchVisible)&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))},250)):(this.scrollLockTimeout&&clearTimeout(this.scrollLockTimeout),this.header.classList.add(classes$h.searchVisible),this.searchToggles.forEach(toggle=>toggle.setAttribute(selectors$u.ariaExpanded,!0)),clickableElements.forEach(element=>element.removeAttribute(selectors$u.tabIndex)),this.accessibility.removeTrapFocus(),this.accessibility.trapFocus(this.search,{elementToFocus:this.searchInput}),this.searchInput.select(),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0,detail:this.searchScroller})))}unload(){window.removeEventListener("resize",this.resizeTransform),document.removeEventListener("click",this.documentClick),document.removeEventListener("keyup",this.documentKeyup)}}const navigation={onLoad(){sections$8=new Navigation(this.container)},onUnload:function(){typeof sections$8.unload=="function"&§ions$8.unload()},onSelect(){typeof sections$8.hide=="function"&§ions$8.hide()},onDeselect(){typeof sections$8.hide=="function"&§ions$8.hide()}},selectors$v={body:"body",bodyWrap:"[data-body-wrap]",mainContent:".main-content",navMain:"[data-nav-main]",navItem:".menu > .menu-item",headerRow:".container > .row",headerIcons:"[data-header-icons]",dataHeaderStyle:'[data-header-style="transparent"]',logoImage:"[data-logo-image]",logoImageWidth:"data-width",logoText:"[data-logo-text]",hamburgerIcon:"[data-hamburger-icon]",hamburgerMenuScrollable:"[data-hamburger-scrollable]",siteAlert:"[data-site-alert]",shopBar:"[data-shop-bar]",cartClose:"[data-cart-close]",dataTransparent:"data-transparent"},classes$i={shopifyHeaderFixed:"shopify-section-header--fixed",headerFull:"header--full",headerScrolled:"header--has-scrolled",headerStandard:"header--is-standard",headerHamburger:"header--is-hamburger",headerSearch:"header--search-visible",headerTransparent:"header--transparent",headerLogoCenterCenter:"header--logo_center_links_center",headerLogoLeftCenter:"header--logo_left_links_center",headerLogoCenterLeft:"header--logo_center_links_left",headerLogoLeftLeft:"header--logo_left_links_left",hasTransparentHeader:"has-transparent-header",navVisible:"nav--is-visible",cartVisible:"cart--is-visible",open:"open"};let sections$9={};class Header{constructor(el){this.header=el,this.headerContainer=this.header.parentNode,this.body=document.querySelector(selectors$v.body),this.bodyWrap=document.querySelector(selectors$v.bodyWrap),this.scrollEvent=throttle(()=>this.stickyHeaderState(),50),this.resizeEvent=debounce(()=>this.checkNavigationOverlapping(),250),this.checkTransparentHeaderEvent=e=>this.checkTransparentHeader(e),this.checkNavigationOverlappingEvent=this.checkNavigationOverlapping(),this.init()}init(){this.resetHeader(),this.checkTransparentHeader(),this.checkNavigationOverlapping(),this.stickyHeaderState(),window.addEventListener("load",this.checkNavigationOverlappingEvent),window.addEventListener("scroll",this.scrollEvent),window.addEventListener("resize",this.resizeEvent),document.addEventListener("theme:header:update",this.checkTransparentHeaderEvent)}stickyHeaderState(){const scrolled=window.scrollY;let contentTop=0;this.bodyWrap!==null&&(contentTop=this.bodyWrap.offsetTop),scrolled>contentTop?(this.headerContainer.classList.add(classes$i.shopifyHeaderFixed),this.header.classList.add(classes$i.headerScrolled),this.header.classList.remove(classes$i.headerTransparent)):(this.headerContainer.classList.remove(classes$i.shopifyHeaderFixed),this.header.classList.remove(classes$i.headerScrolled),this.isHeaderTransparent
12()&&this.header.classList.add(classes$i.headerTransparent))}checkNavigationOverlapping(){const isDesktop=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>theme.sizes.large,classesToRemove=[classes$i.headerStandard,classes$i.headerSearch];this.header.classList.remove(classes$i.headerHamburger),this.header.classList.add(classes$i.headerStandard),(this.getNavigationOverlapping()||!isDesktop)&&(this.header.classList.remove(...classesToRemove),this.header.classList.add(classes$i.headerHamburger))}checkTransparentHeader(){this.isHeaderTransparent()?(this.body.classList.add(classes$i.hasTransparentHeader),this.header.classList.add(classes$i.headerTransparent)):(this.body.classList.remove(classes$i.hasTransparentHeader),this.header.classList.remove(classes$i.headerTransparent))}getNavigationOverlapping(){const headerRowWidth=this.header.querySelector(selectors$v.headerRow).offsetWidth,navMenuWidth=this.getMenuItemsWidth(),headerClasses=this.header.classList,isNavCentered=headerClasses.contains(classes$i.headerLogoCenterCenter)||headerClasses.contains(classes$i.headerLogoLeftCenter),isNavLeftLogoCentered=headerClasses.contains(classes$i.headerLogoCenterLeft)||headerClasses.contains(classes$i.headerLogoLeftLeft),additionalSpace=40;let isNavigationOverlapping=!1,headerIconsWidth=this.header.querySelector(selectors$v.headerIcons).offsetWidth,logoWidth=this.getLogoWidth();return isNavCentered&&(logoWidth=logoWidth<headerIconsWidth?headerIconsWidth:logoWidth,logoWidth*=2,headerIconsWidth=0),isNavigationOverlapping=parseInt(headerRowWidth)<parseInt(navMenuWidth+logoWidth+headerIconsWidth+additionalSpace),isNavLeftLogoCentered&&logoWidth&&(isNavigationOverlapping=parseInt((headerRowWidth-logoWidth)/2)<parseInt(navMenuWidth)),isNavigationOverlapping}getLogoWidth(){const logoImage=this.header.querySelector(selectors$v.logoImage),logoText=this.header.querySelector(selectors$v.logoText);let logoWidth=0;return logoImage!==null&&(logoWidth=parseInt(logoImage.getAttribute(selectors$v.logoImageWidth))),logoText!==null&&(logoWidth+=logoText.offsetWidth),logoWidth}getMenuItemsWidth(){let itemsWidth=0;return this.header.querySelector(selectors$v.navMain).querySelectorAll(selectors$v.navItem).forEach(menuItem=>{itemsWidth+=outerWidth(menuItem)}),itemsWidth}
12isHeaderTransparent(){const firstSection=document.querySelector(selectors$v.mainContent).firstElementChild,firstSectionClass=firstSection.classList.contains(classes$i.headerFull),firstSectionStyle=firstSection.querySelector(selectors$v.dataHeaderStyle)!==null;return this.header.getAttribute(selectors$v.dataTransparent)==="true"&&(firstSectionClass||firstSectionStyle)}resetHeader(){const siteAlert=document.querySelector(selectors$v.siteAlert),shopBar=document.querySelector(selectors$v.shopBar),hamburger=this.header.querySelector(selectors$v.hamburgerIcon),transformElements=[this.header,siteAlert,this.bodyWrap,shopBar],body=document.body;body.classList.remove(classes$i.navVisible),this.bodyWrap.removeAttribute("style"),transformElements.forEach(element=>{element!==null&&(element.style.transform="none")}),hamburger.classList.remove(classes$i.open),body.classList.contains(classes$i.cartVisible)&&document.querySelector(selectors$v.cartClose).click(),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}unload(){window.removeEventListener("load",this.checkNavigationOverlappingEvent),window.removeEventListener("scroll",this.scrollEvent),window.removeEventListener("resize",this.resizeEvent),document.removeEventListener("theme:header:update",this.checkTransparentHeaderEvent)}onselect(){this.resetHeader(),this.init()}}register("header",[{onLoad(){sections$9=new Header(this.container)},onUnload(){typeof sections$9.unload=="function"&§ions$9.unload()},onSelect(){typeof sections$9.onselect=="function"&§ions$9.onselect()}},navigation,collapsible]);const selectors$w={quantityAdjust:"[data-qty-adjust]",quantityAdjustPlus:"data-qty-adjust-plus",quantityAdjustMinus:"data-qty-adjust-minus",quantityNum:"[data-qty]"},quantity=(e,element)=>{if(e.type==="keyup"&&e.keyCode!==13)return;const el=element,qtySelector=el.parentElement.querySelector(selectors$w.quantityNum);let qty=parseInt(qtySelector.value.replace(/\D/g,""));parseFloat(qty)==parseInt(qty)&&!isNaN(qty)||(qty=1),el.hasAttribute(selectors$w.quantityAdjustPlus)?qty+=1:(qty-=1,qty<=1&&(qty=1)),qtySelector.value=qty,qtySelector.dispatchEvent(new Event("click"))};function quantitySelectors(){document.querySelectorAll(selectors$w.quantityAdjust).forEach(element=>{element.addEventListener("click",function(e){quantity(e,element)}),element.addEventListener("keyup",function(e){quantity(e,element)})}),document.querySelectorAll(selectors$w.quantityNum).forEach(element=>{element.addEventListener("keyup",function(e){e.keyCode==38,e.keyCode==40})})}const selectors$x={productContainer:"[data-product-container]",addToCart:"[data-add-to-cart]",shopBar:"[data-shop-bar]",productJson:"[data-product-json]",form:"[data-product-form-container]",dropdown:"[data-single-option-selector]",footer:"[data-footer]",colorLabel:"[data-color-label]",colorSwatch:"[data-color-swatch]",dataOption:"[data-option]",dataSectionId:"data-section-id",selectTag:"select",dataPosition:"data-position",dataIndex:"data-index"},classes$j={onboarding:"onboarding-product",shopBarVisible:"shop-bar--is-visible",footerPush:"site-footer--push"};let sections$a={};class Product{constructor(section){if(this.section=section,this.container=section.container,this.id=this.container.getAttribute(selectors$x.dataSectionId),this.productContainer=this.container.querySelector(selectors$x.productContainer),this.footer=document.querySelector(selectors$x.footer),this.onboarding=this.productContainer.classList.contains(classes$j.onboarding),this.shopBar=document.querySelector(selectors$x.shopBar),this.scrollEvent=throttle(()=>this.shopBarShow(),100),this.onboarding)quantitySelectors(),this.productContainer.querySelectorAll(selectors$x.colorSwatch).forEach(swatch=>{swatch.addEventListener("change",e=>{this.updateColorName(e)})});else{const productJson=this.container.querySelector(selectors$x.productJson);if(productJson&&!productJson.innerHTML||!productJson)return;Shopify.Products.recordRecentlyViewed(),this.form=this.container.querySelector(selectors$x.form),this.init(),this.shopBar&&this.initShopBar()}}init(){theme.mediaInstances[this.id]=new Media(this.section),theme.mediaInstances[this.id].init()}initShopBar(){const cartBarSelectors=this.shopBar.querySelectorAll(selectors$x.selectTag),formSelectors=this.form.querySelectorAll(selectors$x.dropdown),submit=this.shopBar.querySelector(selectors$x.addToCart);typeof submit<"u"&&submit!=null&&submit.addEventListener("click",e=>{e.preventDefault()}
12),cartBarSelectors.length&&cartBarSelectors.forEach(element=>{element.addEventListener("change",()=>{const index=element.getAttribute(selectors$x.dataIndex),optionSelected=element.value,targets=this.form.querySelectorAll(`${selectors$x.dropdown}[${selectors$x.dataIndex}="${index}"]`);if(targets[0].tagName==="INPUT")for(const target of targets){const targetIndex=target.getAttribute(selectors$x.dataIndex),targetValue=target.value;if(targetIndex===index&&targetValue===optionSelected){target.checked=!0,target.dispatchEvent(new Event("change"));break}}else{const select=targets[0];select.value=optionSelected,select.dispatchEvent(new Event("change"))}})}),formSelectors.length&&formSelectors.forEach(element=>{element.addEventListener("change",()=>{const index=element.getAttribute(selectors$x.dataIndex),optionSelected=element.value;this.shopBar.querySelector(`[${selectors$x.dataIndex}="${index}"]`).value=optionSelected})}),this.shopBarShow(),window.addEventListener("scroll",this.scrollEvent)}shopBarShow(){const scrolled=window.scrollY,productContainerTop=this.productContainer.getBoundingClientRect().top+scrolled;scrolled>productContainerTop?(this.shopBar.classList.add(classes$j.shopBarVisible),this.footer.classList.add(classes$j.footerPush)):scrolled<productContainerTop-theme.dimensions.headerScrolled&&(this.shopBar.classList.remove(classes$j.shopBarVisible),this.footer.classList.remove(classes$j.footerPush))}updateColorName(evt){const target=evt.target,optionLabel=target.closest(selectors$x.dataOption).querySelector(selectors$x.colorLabel);target.tagName==="INPUT"&&optionLabel!==null&&(optionLabel.innerText=target.value)}unload(){window.removeEventListener("scroll",this.scrollEvent)}}register("product",[productFormSection,{onLoad(){sections$a=new Product(this)},onUnload:function(){typeof sections$a.unload=="function"&§ions$a.unload()}},swatchSection]),register("collection-grid",[ajaxify]);const sections$b={},selectors$y={section:'[data-section-type="related-products"]',product:"[data-product-block]",productImage:"[data-product-image]",sectionId:"data-section-id",productId:"data-product-id",limit:"data-limit"};class RelatedProducts{constructor(section){this.container=section.container,this.resizeEvent=null,this.init()}init(){const self=this,relatedSection=this.container,sectionId=relatedSection.getAttribute(selectors$y.sectionId),productId=relatedSection.getAttribute(selectors$y.productId),limit=relatedSection.getAttribute(selectors$y.limit),requestUrl=`${theme.routes.product_recommendations_url}?section_id=${sectionId}&limit=${limit}&product_id=${productId}`;fetch(requestUrl).then(function(response){return response.text()}).then(function(data){const createdElement=document.createElement("div");createdElement.innerHTML=data;const inner=createdElement.querySelector(selectors$y.section);if(inner.querySelector(selectors$y.product)){relatedSection.innerHTML=inner.innerHTML,makeGridSwatches(relatedSection),new Quickview(relatedSection);const images=relatedSection.querySelectorAll(selectors$y.productImage);self.resizeEvent=debounce(()=>setBadgePosition(images),50),theme.settings.imageBackgroundSize==="contain"&&images&&(setBadgePosition(images),window.addEventListener("resize",self.resizeEvent))}})}onUnload(){this.resizeEvent&&window.removeEventListener("resize",this.resizeEvent)}}register("related-products",{onLoad(){sections$b[this.id]=new RelatedProducts(this)},onUnload(e){sections$b[this.id].onUnload(e)}});const sections$c={},selectors$z={recentlyViewed:"#RecentlyViewed",dataLimit:"data-limit",productBlock:"[data-product-block]",productImage:"[data-product-image]",productBadge:"[data-badge]"};class RecentlyViewedProducts{constructor(section){this.section=section,this.container=section.container,this.limit=parseInt(this.container.getAttribute(selectors$z.dataLimit)),this.recentlyViewed=this.container.querySelector(selectors$z.recentlyViewed),this.resizeEvent=null,this.recentlyViewed&&this.init()}init(){Shopify.Products.showRecentlyViewed({howManyToShow:this.limit,onComplete:()=>{if(this.container.querySelectorAll(selectors$z.productBlock).length>0){makeGridSwatches(this.container),new Quickview(this.container);const images=this.container.querySelectorAll(selectors$z.productImage);this.resizeEvent=debounce(()=>
12setBadgePosition(images),50),theme.settings.imageBackgroundSize==="contain"&&images&&(setBadgePosition(images),window.addEventListener("resize",this.resizeEvent)),images.forEach(image=>{lazySizes.loader.unveil(image)}),theme.settings.productBadgeStyle==="circle"&&this.container.querySelectorAll(selectors$z.productBadge).forEach(badge=>{let badgeText=badge.innerText;badgeText=badgeText.replace(" ","<br>"),badge.innerHTML=badgeText})}}})}onUnload(){this.resizeEvent&&window.removeEventListener("resize",this.resizeEvent)}}register("recently-viewed-products",{onLoad(){sections$c[this.id]=new RecentlyViewedProducts(this)},onUnload(e){sections$c[this.id].onUnload(e)}});const sections$d={},selectors$A={logoListSlider:"[data-logo-list-slider]",logoListSlide:"[data-logo-list-slide]",logoListSlideData:"data-logo-list-slide",logoListSlideIndex:"data-slide-index"},classes$k={flickityEnabled:"flickity-enabled"};class LogoList{constructor(section){this.container=section.container,this.slideshow=this.container.querySelector(selectors$A.logoListSlider),this.sliderInitEvent=debounce(()=>this.sliderInit(),250),this.sliderResizeEvent=debounce(()=>this.flickityResizeEvent(),250),this.flkty=null,this.init()}init(){this.sliderInit(),window.addEventListener("resize",this.sliderInitEvent)}sliderInit(){const slidesCount=this.slideshow.querySelectorAll(selectors$A.logoListSlide).length,slideWidth=220,windowWidth=document.documentElement.clientWidth||document.body.clientWidth,slidesWidth=slidesCount*slideWidth,sliderInitialized=this.slideshow.classList.contains(classes$k.flickityEnabled);windowWidth<slidesWidth?sliderInitialized||(this.flkty=new Flickity(this.slideshow,{autoPlay:4e3,prevNextButtons:!1,pageDots:!1,wrapAround:!0,resize:!1}),this.flkty.on("dragStart",()=>document.ontouchmove=e=>e.preventDefault()),this.flkty.on("dragEnd",()=>document.ontouchmove=()=>!0),window.addEventListener("resize",this.sliderResizeEvent)):sliderInitialized&&(this.flkty.destroy(),window.removeEventListener("resize",this.sliderResizeEvent))}flickityResizeEvent(){this.flkty&&(this.flkty.isAnimating?this.flkty.resizeQueued=!0:this.flkty.onresize())}onUnload(){this.slideshow.classList.contains(classes$k.flickityEnabled)&&this.flkty.destroy(),window.removeEventListener("resize",this.sliderInitEvent),window.removeEventListener("resize",this.sliderResizeEvent)}onBlockSelect(evt){const slide=this.slideshow.querySelector(`[${selectors$A.logoListSlideData}="${evt.detail.blockId}"]`),slideIndex=parseInt(slide.getAttribute(selectors$A.logoListSlideIndex));this.slideshow.classList.contains(classes$k.flickityEnabled)&&(this.flkty.select(slideIndex),this.flkty.pausePlayer())}onBlockDeselect(){this.slideshow.classList.contains(classes$k.flickityEnabled)&&this.flkty.unpausePlayer()}}register("logo-list",{onLoad(){sections$d[this.id]=new LogoList(this)},onUnload(e){sections$d[this.id].onUnload(e)},onBlockSelect(e){sections$d[this.id].onBlockSelect(e)},onBlockDeselect(){sections$d[this.id].onBlockDeselect()}});const sections$e={},selectors$B={collapsibleTrigger:"[data-collapsible-trigger]"},classes$l={isExpanded:"is-expanded"};class FaqList{triggerClick(evt){evt.target.querySelector(selectors$B.collapsibleTrigger).dispatchEvent(new Event("click"))}}register("faq",[{onLoad(){sections$e[this.id]=new FaqList(this)},onBlockSelect(e){e.target.classList.contains(classes$l.isExpanded)||sections$e[this.id].triggerClick(e)},onBlockDeselect(e){e.target.classList.contains(classes$l.isExpanded)&§ions$e[this.id].triggerClick(e)}},collapsible]);const sections$f={},selectors$C={shopifySection:".shopify-section",slideshowPrev:"[data-prev-arrow]",slideshowNext:"[data-next-arrow]",header:"[data-header]",dataOptions:"data-options",dataColor:"data-style",dataCurrentColor:"data-current-style",dataSlide:"data-slide",dataSlideIndex:"data-slide-index",scrollBtn:"[data-button-scroll]"},classes$m={slideshowLoading:"hero--is-loading",classIsSelected:"is-selected",flickityEnabled:"flickity-enabled"};class Slideshow{constructor(section){this.container=section.container,this.options=this.container.getAttribute(selectors$C.dataOptions),this.parentContainer=this.container.closest(selectors$C.shopifySection),this.slideshowPrev=this.parentContainer.querySelector(selectors$C.slideshowPrev),this.slideshowNext=this.parentContainer.querySelector(selectors$C.slideshowNext),this.scrollBtn=this.parentContainer.querySelector(selectors$C.scrollBtn),this.scrollEvent=throttle(()=>this.checkSliderVisibility(),150),this.resizeEvent=debounce(()=>this.flickityResizeEvent(),250),this.flkty=null,this.init()}init(){let options=JSON.parse(this.options.replace(/'/g,'"'));options={...options,resize:!1,on:{ready:()=>{this.container.classList.remove(classes$m.slideshowLoading),this.slideActions()}}},this.flkty=new FlickityFade(this.container,options),this.flkty.on("dragStart",()=>document.ontouchmove=e=>e.preventDefault()),this.flkty.on("dragEnd",()=>document.ontouchmove=()=>!0),this.flkty.on("change",()=>{this.slideActions()}),this.flkty.on("settle",()=>{this.flkty.resizeQueued&&(this.flkty.resizeQueued=!1,this.flkty.onresize())}),this.slideshowPrev&&this.slideshowPrev.addEventListener("click",()=>this.flkty.previous(!0)),this.slideshowNext&&this.slideshowNext.addEventListener("click",()=>this.flkty.next(!0)),this.scrollBtn&&this.scrollBtn.addEventListener("click",e=>{e.preventDefault();const headerHeight=59,containerTop=this.parentContainer.offsetTop,containerHeight=this.parentContainer.offsetHeight,scrollPosition=containerTop+containerHeight-headerHeight;scroll({top:scrollPosition,behavior:"smooth"})}),window.addEventListener("scroll",this.scrollEvent),window.addEventListener("resize",this.resizeEvent)}flickityResizeEvent(){this.flkty&&(this.flkty.isAnimating?this.flkty.resizeQueued=!0:this.flkty.onresize())}isAutoplay(){return this.flkty.options.autoPlay!==!1}checkSliderVisibility(){const isInitialized=this.container.classList.contains(classe
12s$m.flickityEnabled);(visibilityHelper.isElementPartiallyVisible(this.container)||visibilityHelper.isElementTotallyVisible(this.container))&&isInitialized&&this.isAutoplay()?this.flkty.playPlayer():this.flkty.stopPlayer()}slideActions(){const currentSlideColor=this.container.querySelector(`.${classes$m.classIsSelected}`).getAttribute(selectors$C.dataColor);this.container.setAttribute(selectors$C.dataCurrentColor,currentSlideColor)}onUnload(){this.flkty.destroy(),window.removeEventListener("scroll",this.scrollEvent),window.removeEventListener("resize",this.resizeEvent)}onBlockSelect(evt){const slide=this.container.querySelector(`[${selectors$C.dataSlide}="${evt.detail.blockId}"]`),slideIndex=parseInt(slide.getAttribute(selectors$C.dataSlideIndex));this.flkty.select(slideIndex),this.flkty.stopPlayer()}onBlockDeselect(){this.isAutoplay()&&this.flkty.playPlayer()}}register("slideshow",{onLoad(){sections$f[this.id]=new Slideshow(this)},onUnload(e){sections$f[this.id].onUnload(e)},onBlockSelect(e){sections$f[this.id].onBlockSelect(e)},onBlockDeselect(e){sections$f[this.id].onBlockDeselect(e)}});const sections$g={},selectors$D={slider:"[data-gallery-slider]",slideshow:"[data-slider]",slideshowPrev:"[data-prev-arrow]",slideshowNext:"[data-next-arrow]",dataOptions:"data-options",dataSlide:"data-slide",dataSlideIndex:"data-slide-index"},classes$n={slideshowLoading:"gallery-slider--is-loading",classIsSelected:"is-selected",flickityEnabled:"flickity-enabled"};class Gallery{constructor(section){this.container=section.container,this.slider=this.container.querySelector(selectors$D.slider),this.slideshow=this.container.querySelector(selectors$D.slideshow),this.options=this.slideshow.getAttribute(selectors$D.dataOptions),this.slideshowPrev=this.container.querySelector(selectors$D.slideshowPrev),this.slideshowNext=this.container.querySelector(selectors$D.slideshowNext),this.scrollEvent=throttle(()=>this.checkSliderVisibility(),150),this.sliderResizeEvent=debounce(()=>this.flickityResizeEvent(),150),this.flkty=null,this.init()}init(){let options=JSON.parse(this.options.replace(/'/g,'"'));options={...options,resize:!1,on:{ready:()=>this.slider.classList.remove(classes$n.slideshowLoading)}},this.flkty=new FlickityFade(this.slideshow,options),this.flkty.on("dragStart",()=>document.ontouchmove=e=>e.preventDefault()),this.flkty.on("dragEnd",()=>document.ontouchmove=()=>!0),this.flkty.on("settle",()=>{this.flkty.resizeQueued&&(this.flkty.resizeQueued=!1,this.flkty.onresize())}),this.slideshowPrev&&this.slideshowPrev.addEventListener("click",()=>this.flkty.previous(!0)),this.slideshowNext&&this.slideshowNext.addEventListener("click",()=>this.flkty.next(!0)),window.addEventListener("scroll",this.scrollEvent),window.addEventListener("resize",this.sliderResizeEvent)}isAutoplay(){return this.flkty.options.autoPlay!==!1}checkSliderVisibility(){const isInitialized=this.slideshow.classList.contains(classes$n.flickityEnabled);(visibilityHelper.isElementPartiallyVisible(this.slideshow)||visibilityHelper.isElementTotallyVisible(this.slideshow))&&isInitialized&&this.isAutoplay()?this.flkty.playPlayer():this.flkty.stopPlayer()}flickityResizeEvent(){this.flkty&&(this.flkty.isAnimating?this.flkty.resizeQueued=!0:this.flkty.onresize())}onUnload(){this.flkty.destroy(),window.removeEventListener("scroll",this.scrollEvent),window.removeEventListener("resize",this.sliderResizeEvent)}onBlockSelect(evt){const slide=this.slideshow.querySelector(`[${selectors$D.dataSlide}="${evt.detail.blockId}"]`),slideIndex=parseInt(slide.getAttribute(selectors$D.dataSlideIndex));this.flkty.select(slideIndex),this.flkty.stopPlayer()}onBlockDeselect(){this.isAutoplay()&&this.flkty.playPlayer()}}register("gallery",{onLoad(){sections$g[this.id]=new Gallery(this)},onUnload(e){sections$g[this.id].onUnload(e)},onBlockSelect(e){sections$g[this.id].onBlockSelect(e)},onBlockDeselect(e){sections$g[this.id].onBlockDeselect(e)}});const sections$h={},selectors$E={slideshow:"[data-mosaic-blocks]",slideshowPrev:"[data-prev-arrow]",slideshowNext:"[data-next-arrow]",dataSlide:"data-slide",dataSlideIndex:"data-sli
12de-index"},classes$o={flickityEnabled:"flickity-enabled"};class Mosaic{constructor(section){this.container=section.container,this.slideshow=this.container.querySelector(selectors$E.slideshow),this.slideshowPrev=this.container.querySelector(selectors$E.slideshowPrev),this.slideshowNext=this.container.querySelector(selectors$E.slideshowNext),this.flkty=null,this.sliderInitEvent=debounce(()=>this.initMobileSlider(),250),this.sliderResizeEvent=debounce(()=>this.flickityResizeEvent(),250),this._listeners=new Listeners,this.init()}init(){this.initMobileSlider(),window.addEventListener("resize",this.sliderInitEvent)}initMobileSlider(){const isMobile=document.documentElement.clientWidth<=theme.sizes.small,options={wrapAround:!0,prevNextButtons:!1,pageDots:!1,resize:!1};isMobile&&!this.isInit()?(this.flkty=new Flickity(this.slideshow,options),this.flkty.on("dragStart",()=>document.ontouchmove=e=>e.preventDefault()),this.flkty.on("dragEnd",()=>document.ontouchmove=()=>!0),this.flkty.on("settle",()=>{this.flkty.resizeQueued&&(this.flkty.resizeQueued=!1,this.flkty.onresize())}),this._listeners.add(this.slideshowPrev,"click",()=>this.flkty.previous(!0)),this._listeners.add(this.slideshowNext,"click",()=>this.flkty.next(!0)),window.addEventListener("resize",this.sliderResizeEvent)):!isMobile&&this.isInit()&&(this.flkty.destroy(),window.removeEventListener("resize",this.sliderResizeEvent),this._listeners.removeAll())}flickityResizeEvent(){this.flkty&&(this.flkty.isAnimating?this.flkty.resizeQueued=!0:this.flkty.onresize())}isInit(){return this.slideshow.classList.contains(classes$o.flickityEnabled)}onUnload(){this.isInit()&&this.flkty.destroy(),window.removeEventListener("resize",this.sliderInitEvent),window.removeEventListener("resize",this.sliderResizeEvent)}onBlockSelect(evt){const slide=this.container.querySelector(`[${selectors$E.dataSlide}="${evt.detail.blockId}"]`);this.isInit()&&slide!==null&&this.flkty.select(parseInt(slide.getAttribute(selectors$E.dataSlideIndex)))}}register("mosaic",{onLoad(){sections$h[this.id]=new Mosaic(this)},onUnload(e){sections$h[this.id].onUnload(e)},onBlockSelect(e){sections$h[this.id].onBlockSelect(e)}});const selectors$F={popup:"[data-popup]",close:"[data-popup-close]",reappearTime:"data-reappear_time",delay:"data-delay",testmode:"data-testmode",checkTrueString:"true"},classes$p={popupVisible:"popup--visible"};let sections$i={};class PopupCookie{constructor(name,value,expires){this.configuration={expires,path:"/",domain:window.location.hostname},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.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`)}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.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`)}}class Popup{constructor(el){this.popup=el,this.close=this.popup.querySelector(selectors$F.close),this.timeout=0,this.testmode=this.popup.getAttribute(selectors$F.testmode)===selectors$F.checkTrueString,this.delay=parseInt(this.popup.getAttribute(selectors$F.delay))*1e3,this.cookie=new PopupCookie("newsletter","user_has_closed",this.expireDate()),this.init()}expireDate(){const todayDate=new Date,expireDate=new Date;let date=parseInt(this.popup.getAttribute(selectors$F.reappearTime));return date!==0?expireDate.setTime(todayDate.getTime()+36e5*24*date):expireDate.setTime(todayDate.getTime()+36e5*24*365*100),date=expireDate.toGMTString(),date}init(){(!(this.cookie.read()!==!1)||this.testmode)&&(this.timeout=setTimeout(()=>{this.popup.classList.add(classes$p.popupVisible),this.initClosers(),this.close.focus()},this.delay))}initClosers(){this.close.addEventListener("click",this.closeModal.bind(this))}closeModal(e){e.preventDefault(),this.popup.classList.remove(classes$p.popupVisible),clearTimeout(this.timeout),this.testmode||this.cookie.write()}}register("popup",{onLoad(){const popup=this.container.querySelector(selectors$F.popup);popup!==null&&(sections$i[this.id]=new Popup(popup))}});const selectors$G={inputGroups:".input-group--error",inputs:"input.password, input.email"};class Password{constructor(section){this.container=section.container,this.inputGroups=this.container.querySelectorAll(selectors$G.inputGroups),this.init()}init(){this.inputGroups.forEach(inputGroup=>
12{inputGroup.querySelector(selectors$G.inputs).focus()})}}register("password",{onLoad(){new Password(this)}});const selectors$H={tabs:"[data-tabs]",tabsNav:"[data-tabs-nav]",tabsContents:"[data-tabs-contents]",tabTitle:"[data-tab-title]",tabContent:"[data-tab-content]"},classes$q={active:"is-active"},sections$j={};class Tabs{constructor(container){this.container=container,this.tabs=this.container.querySelector(selectors$H.tabs),this.resizeEvent=debounce(()=>this.prepareTabs(),250),this._listeners=new Listeners,this.tabs&&(this.tabsNav=this.tabs.querySelector(selectors$H.tabsNav),this.tabsContents=this.tabs.querySelector(selectors$H.tabsContents),this.tabTitles=this.tabs.querySelectorAll(selectors$H.tabTitle),this.tabContents=this.tabs.querySelectorAll(selectors$H.tabContent),this.init())}init(){this.prepareTabs(),window.addEventListener("resize",this.resizeEvent),this.tabTitles.forEach((tabTitle,index)=>{this._listeners.add(tabTitle,"click",()=>this.tabTitleClick(tabTitle,index))})}prepareTabs(){(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)<=theme.sizes.small?this.tabTitles.forEac
12h((tabTitle,index)=>{this.tabs.appendChild(tabTitle),this.tabs.appendChild(this.tabContents[index])}):this.tabTitles.forEach((tabTitle,index)=>{this.tabsNav.appendChild(tabTitle),this.tabsContents.appendChild(this.tabContents[index])})}tabTitleClick(tabTitle,index){const windowWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,isActive=tabTitle.classList.contains(classes$q.active),tabsCount=this.tabTitles.length;let tabIndex=index;if(tabsCount===1&&windowWidth>theme.sizes.small)return!1;isActive&&(tabIndex+=1,this.tabTitles[tabIndex]===void 0&&(tabIndex=0)),this.tabTitles.forEach((tabTitle2,i)=>{tabTitle2.classList.remove(classes$q.active),this.tabContents[i].classList.remove(classes$q.active)}),this.tabTitles[tabIndex].classList.add(classes$q.active),this.tabContents[tabIndex].classList.add(classes$q.active),windowWidth<=theme.sizes.small&&setTimeout(()=>{const titleTop=this.tabTitles[tabIndex].getBoundingClientRect().top-document.body.getBoundingClientRect().top-theme.dimensions.headerScrolled;window.scrollTo({top:titleTop,left:0,behavior:"smooth"})},300)}triggerClick(evt){evt.target.classList.contains(classes$q.active)||evt.target.dispatchEvent(new Event("click"))}onUnload(){window.removeEventListener("resize",this.resizeEvent),this._listeners.removeAll()}}register("tabs",[{onLoad(){sections$j[this.id]=new Tabs(this.container)},onBlockSelect(e){sections$j[this.id].triggerClick(e)},onUnload(e){sections$j[this.id].onUnload(e)}}]);const wrap=(toWrap,wrapperClass="",wrapper)=>(wrapper=wrapper||document.createElement("div"),wrapper.classList.add(wrapperClass),toWrap.parentNode.insertBefore(wrapper,toWrap),wrapper.appendChild(toWrap));document.addEventListener("DOMContentLoaded",function(){load("*"),document.body.classList.remove("is-page-loading"),document.body.getAttribute("data-animations")==="true"&&AOS.init({offset:50,duration:1e3,once:!0}),document.querySelectorAll("[data-anchor-link]").forEach(anchorLink=>{anchorLink.addEventListener("click",e=>{e.preventDefault();const position=document.getElementById(anchorLink.getAttribute("href").split("#")[1]).getBoundingClientRect().top+window.scrollY-theme.dimensions.headerScrolled;window.scrollTo({top:position,left:0,behavior:"smooth"})})}),document.querySelectorAll(".rte table").forEach(table=>{wrap(table,"rte__table-wrapper")}),document.querySelectorAll('.rte iframe[src*="youtube.com/embed"], .rte iframe[src*="player.vimeo"], .rte iframe#admin_bar_iframe').forEach(frame=>{wrap(frame,"rte__video-wrapper")}),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.BodyScrollLock,themeVendor.themeCurrency,themeVendor.Sqrl,themeVendor.ajaxinate,themeVendor.FlickityAsNavFor,themeVendor.Flickity,themeVendor.themeImages,themeVendor.FlickityFade,themeVendor.AOS); 13//# sourceMappingURL=/cdn/shop/t/25/assets/theme.dev.js.map?v=24937022183992094001688535922
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.