PageSourceSearch

https://eyeondesign.pl/cdn/shop/t/175/assets/global.js?v=105546126226122249911769195714

js eyeondesign.pl collected 2026-10-10 01:17:46 UTC 44,717 bytes, 44 lines download raw bytes

1"use-strict";console.log("%cCharm theme (2.1.0)%c by Sweetcode | Learn more at https://thesweetcode.io","color: #a893c4; font-weight: bold; font-size: 14px;","color: #888; font-size: 13px;"),window.theme=window.theme||{},theme.config={queryExtraSmall:!1,querySmall:!1,queryMedium:!1,queryLarge:!1,queryExtraLarge:!1,mediaQueryExtraSmall:"screen and (max-width: 575px)",mediaQuerySmall:"screen and (max-width: 767px)",mediaQueryMedium:"screen and (max-width: 1024px)",mediaQueryLarge:"screen and (min-width: 1025px)",mediaQueryExtraLarge:"screen and (min-width: 1400px)",motionReduced:window.matchMedia("(prefers-reduced-motion: reduce)").matches,isTouch:"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0,rtl:document.documentElement.getAttribute("dir")==="rtl"},theme.helpers={throttle:callback=>{let requestId=null,lastArgs,context;const later=()=>{requestId=null,lastArgs&&(callback.apply(context,lastArgs),lastArgs=null)},throttled=function(...args){context=this,lastArgs=args,requestId===null&&(requestId=requestAnimationFrame(later))};return throttled.cancel=()=>{requestId!==null&&(cancelAnimationFrame(requestId),requestId=null)},throttled},debounce:(fn,wait)=>{let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}},capitalize:str=>str.toLowerCase().split(" ").map(word=>word.charAt(0).toUpperCase()+word.slice(1)).join(" "),safelyParseJson:string=>{if(typeof string!="string"||!string instanceof String)return null;try{JSON.parse(string)}catch{return console.error({error:"Failed to parse JSON",string}),string}return JSON.parse(string)},isTouchDevice:()=>"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0,fetchConfig:(type="json")=>({method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}),cookiesEnabled:()=>{let cookieEnabled=navigator.cookieEnabled;return cookieEnabled||(document.cookie="testcookie",cookieEnabled=document.cookie.indexOf("testcookie")!==-1),cookieEnabled},getCookie:cname=>{let name=cname+"=",ca=decodeURIComponent(document.cookie).split(";");for(let i=0;i<ca.length;i++){let c=ca[i];for(;c.charAt(0)===" ";)c=c.substring(1);if(c.indexOf(name)===0)return c.substring(name.length,c.length)}return""},deleteCookie:cname=>{document.cookie=`${cname}=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;`},setCookie:(cname,cvalue,exdays)=>{const date=new Date;date.setTime(date.getTime()+exdays*24*60*60*1e3);let expires="expires="+date.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"},loadAsset:options=>new Promise((resolve,reject)=>{const{name,type,src,attributes}=options,component=theme.assets[name];if(component&&component[type].loaded)resolve();else if(component&&component[type].loading)document.addEventListener("plugin:loaded",e=>{name===e.detail.name&&resolve()});else{component&&(component[type].loading=!0);let asset=null;switch(type){case"css":asset=document.createElement("link"),asset.rel="stylesheet",asset.href=src;break;case"js":asset=document.createElement("script"),asset.type="text/javascript",asset.defer=!0,asset.src=src;break}if(asset||(component&&(component[type].loading=!1),reject()),typeof attributes=="object")for(const[name2,value]of Object.entries(attributes))typeof name2=="string"&&typeof value=="string"&&asset.setAttribute(name2,value);asset.addEventListener("load",()=>{const intervals={};switch(name){case"slick":intervals[name]=setInterval(()=>{window.jQuery&&$().slick&&(ready(),clearInterval(intervals[name]))},50);break;case"jquery":intervals[name]=setInterval(()=>{window.jQuery&&(ready(),clearInterval(intervals[name]))},50);break;case"enquire":intervals[name]=setInterval(()=>{window.enquire&&(ready(),clearInterval(intervals[name]))},50);break;default:ready()}function ready(){component&&(component[type].loading=!1,component[type].loaded=!0),document.dispatchEvent(new CustomEvent("plugin:loaded",{detail:{name}})),resolve()}}),asset.addEventListener("error",()=>{component&&(component[type].loading=!1),reject()}),document.head.insertAdjacentElement("beforeend",asset)}}),pauseAllMedia:()=>{document.querySelectorAll("video-media").forEach(video=>{video.pause()}),document.querySelectorAll("product-model").forEach(model=>{const modelButton=model.querySelector(".shopify-model-viewer-ui__button");modelButton&&modelButton.removeAttribute("hidden"),model.modelViewerUI&&model.modelViewerUI.pause()})}},theme.accessibility={trapFocusHandlers:{},getFocusableElements:container=>Array.from(container.querySelectorAll('summary, a[href], button:enabled, [tabindex]:not
1([tabindex^="-"]), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe')),trapFocus:(container,elementToFocus=container)=>{const elements=theme.accessibility.getFocusableElements(container),first=elements[0],last=elements[elements.length-1];theme.accessibility.removeTrapFocus(),theme.accessibility.trapFocusHandlers.focusin=event=>{(event.target===container||event.target===last||event.target===first)&&document.addEventListener("keydown",theme.accessibility.trapFocusHandlers.keydown)},theme.accessibility.trapFocusHandlers.focusout=()=>{document.removeEventListener("keydown",theme.accessibility.trapFocusHandlers.keydown)},theme.accessibility.trapFocusHandlers.keydown=event=>{event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey?(event.preventDefault(),first.focus()):(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",theme.accessibility.trapFocusHandlers.focusout),document.addEventListener("focusin",theme.accessibility.trapFocusHandlers.focusin),elementToFocus.focus(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)},removeTrapFocus:(elementToFocus=null)=>{const{trapFocusHandlers}=theme.accessibility;document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown),elementToFocus?.focus instanceof Function&&elementToFocus.focus()}},theme.assetsList=[],theme.assets={};for(const asset of theme.assetsList){const assetFiles={};asset.files.forEach(assetFile=>{assetFiles[assetFile]={loading:!1,loaded:!1}}),theme.assets[asset.name]={...assetFiles}}(function(){document.documentElement.classList.add(theme.config.isTouch?"touch":"no-touch");const queryExtraSmall=window.matchMedia(theme.config.mediaQueryExtraSmall),querySmall=window.matchMedia(theme.config.mediaQuerySmall),queryMedium=window.matchMedia(theme.config.mediaQueryMedium),queryLarge=window.matchMedia(theme.config.mediaQueryLarge),queryExtraLarge=window.matchMedia(theme.config.mediaQueryExtraLarge);theme.config.queryExtraSmall=queryExtraSmall.matches,theme.config.querySmall=querySmall.matches,theme.config.queryMedium=queryMedium.matches,theme.config.queryLarge=queryLarge.matches,theme.config.queryExtraLarge=queryExtraLarge.matches,queryExtraSmall.onchange=evt=>{theme.config.queryExtraSmall=evt.matches,document.dispatchEvent(new CustomEvent(theme.config.queryExtraSmall?"matchExtraSmall":"unmatchExtraSmall"))},querySmall.onchange=evt=>{theme.config.querySmall=evt.matches,document.dispatchEvent(new CustomEvent(theme.config.querySmall?"matchSmall":"unmatchSmall"))},queryMedium.onchange=evt=>{theme.config.queryMedium=evt.matches,document.dispatchEvent(new CustomEvent(theme.config.queryMedium?"matchMedium":"unmatchMedium"))},queryLarge.onchange=evt=>{theme.config.queryLarge=evt.matches,document.dispatchEvent(new CustomEvent(theme.config.queryLarge?"matchLarge":"unmatchLarge"))},queryExtraLarge.onchange=evt=>{theme.config.queryExtraLarge=evt.matches,document.dispatchEvent(new CustomEvent(theme.config.queryExtraLarge?"matchExtraLarge":"unmatchExtraLarge"))}})();function showToast(message,duration=3e3,customClass=""){let toastContainer=document.getElementById("toast-container");toastContainer||(toastContainer=document.createElement("div"),toastContainer.id="toast-container",document.body.appendChild(toastContainer));const toast=document.createElement("div");toast.className=`toast show ${customClass}`,toast.innerHTML=message,toastContainer.appendChild(toast),setTimeout(()=>{closeToast(toast)},duration)}function closeToast(toast){toast.classList.remove("show"),setTimeout(()=>{toast.remove(),document.querySelector("#toast-container .toast")||document.getElementById("toast-container").remove()},500)}class DeferredMedia extends HTMLElement{constructor(){super(),this.intersectionObserver=null,this.playPauseButton&&this.playPauseButton.addEventListener("click",this.handlePlayPauseButtonEvent.bind(this)),this.muteUnmuteButton&&this.muteUnmuteButton.addEventListener("click",this.handleMuteUnmuteButtonEvent.bind(this)),this.initIntersectionObserver()}get playPauseButton(){return this.querySelector('[id^="DeferredPlayPause-"]')}get muteUnmuteButton(){return this.querySelector('[id^="DeferredMuteUnmute-"]')}get autoplay(){return this.hasAttribute("autoplay")}get playing(){return this.hasAttribute("playing")}get player(){return this.playerProxy=this.playerProxy||new Proxy(this.playerTarget(),{get:(target,prop)=>async()=>{target=await target,this.playerHandler(target,prop)}})}disconnectedCallback(){this.intersectionObserver&&this.intersectionObserver.disconnect()}initIntersectionObserver(){this.intersectionObserver=new IntersectionObserver(entries=>
1{entries.forEach(entry=>{entry.isIntersecting?(this.autoplay||this.hasAttribute("play-clicked"))&&this.play():this.pause()})},{threshold:.1}),this.intersectionObserver.observe(this)}handlePlayPauseButtonEvent(event){event.preventDefault(),event.stopPropagation(),this.autoplay||this.setAttribute("play-clicked",""),this.playing?(this.paused=!0,this.pause()):(this.paused=!1,this.play())}handleMuteUnmuteButtonEvent(event){event.preventDefault(),event.stopPropagation(),this.muted?(this.muted=!1,this.unmute()):(this.muted=!0,this.mute())}play(){this.playing||(this.player.play(),this.dispatchEvent(new CustomEvent("playing")))}pause(){this.playing&&(this.player.pause(),this.dispatchEvent(new CustomEvent("paused")))}mute(){this.player.mute(),this.setAttribute("muted","")}unmute(){this.player.unmute(),this.removeAttribute("muted")}}class VideoMedia extends DeferredMedia{constructor(){super()}playerTarget(){if(this.hasAttribute("host"))return this.setAttribute("loaded",""),this.closest(".media")?.classList.remove("loading"),new Promise(async resolve=>{const iframe=this.querySelector("iframe"),iframeSrc=iframe?.getAttribute("data-src");iframeSrc&&(iframe.setAttribute("src",iframeSrc),iframe.removeAttribute("data-src"));const isAutoplay=this.hasAttribute("autoplay"),muteVideo=isAutoplay||window.matchMedia("screen and (max-width: 1024.98px)").matches;this.muted=muteVideo;const script=document.createElement("script");if(script.type="text/javascript",this.getAttribute("host")==="youtube"){(!window.YT||!window.YT.Player)&&(script.src="https://www.youtube.com/iframe_api",document.head.appendChild(script),await new Promise(resolve2=>{script.onload=resolve2}));let player;window.YT&&window.YT.Player&&(player=new YT.Player(this.querySelector("iframe"),{events:{onReady:()=>{muteVideo&&(player.mute(),this.setAttribute("muted","")),isAutoplay&&this.setAttribute("playing",""),resolve(player)},onStateChange:event=>{event.data===YT.PlayerState.PLAYING?this.setAttribute("playing",""):(event.data===YT.PlayerState.ENDED||event.data===YT.PlayerState.PAUSED)&&this.removeAttribute("playing")}}})),await new Promise(resolve2=>{window.onYouTubeIframeAPIReady=()=>resolve2()}),player=new YT.Player(this.querySelector("iframe"),{events:{onReady:()=>{muteVideo&&(player.mute(),this.setAttribute("muted","")),isAutoplay&&this.setAttribute("playing",""),resolve(player)},onStateChange:event=>{event.data===YT.PlayerState.PLAYING?this.setAttribute("playing",""):(event.data===YT.PlayerState.ENDED||event.data===YT.PlayerState.PAUSED)&&this.removeAttribute("playing")}}})}if(this.getAttribute("host")==="vimeo"){(!window.Vimeo||!window.Vimeo.Player)&&(script.src="https://player.vimeo.com/api/player.js",document.head.appendChild(script),await new Promise(resolve2=>{script.onload=resolve2}));const player=new Vimeo.Player(this.querySelector("iframe"));muteVideo&&(player.setMuted(!0),this.setAttribute("muted","")),player.on("play",()=>this.setAttribute("playing","")),player.on("pause",()=>this.removeAttribute("playing")),player.on("ended",()=>this.removeAttribute("playing")),resolve(player)}});{const video=this.querySelector("video"),videoSrc=video?.getAttribute("data-src"),isAutoplay=this.hasAttribute("autoplay");return videoSrc&&(video.setAttribute("src",videoSrc),video.removeAttribute("data-src")),this.muted=isAutoplay,isAutoplay&&(video.muted=!0,this.setAttribute("muted","")),this.setAttribute("loaded",""),this.closest(".media")?.classList.remove("loading"),video.addEventListener("play",()=>{this.setAttribute("playing",""),this.removeAttribute("suspended")}),video.addEventListener("pause",()=>{!video.seeking&&video.paused&&this.removeAttribute("playing")}),video}}playerHandler(target,prop){const host=this.getAttribute("host");if(host==="youtube")switch(prop){case"play":target.playVideo();break;case"pause":target.pauseVideo();break;case"mute":target.mute();break;case"unmute":target.unMute();break}else if(host==="vimeo")switch(prop){case"mute":target.setMuted(!0);break;case"unmute":target.setMuted(!1);break;default:target[prop]();break}else prop==="play"?target.play().catch(error=>{if(error.name==="NotAllowedError"){this.setAttribute("suspended",""),target.controls=!0;const replacementImageSrc=target.previousElementSibling?.currentSrc;replacementImageSrc&&(target.poster=replacementImageSrc)}}):prop==="mute"?target.muted=!0:prop==="unmute"?target.muted=!1:target.pause()}}window.customElements.get("video-media")||customElements.define("video-media",VideoMedia);class ModalBase extends HTMLElement{constructor(){super(),this.isBusy=!1}get closeIcon(){return`
2      <span class="button__flair"></span>
3
4      <span class="button__inner">
5        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 12.82 12.28">
6          <path d="M12.82 12.16 8.34 7.91M0 0l4.56 4.32" stroke="currentColor" style="stroke-dashoffset: 0; stroke-dasharray: 6.2283px, 6.3283px;"></path>
7          <path d="M.34 12.28 12.54.22" stroke="currentColor" style="stroke-dashoffset: 0; stroke-dasharray: none;"></path>
8        </svg>
9      </span>
10    `}get isOpen(){return this.modal?.classList.contains("modal--visible")}get hasOpenDrawerAfterModal(){let nextElement=this.modal.nextElementSibling;for(;nextElement;){if(nextElement.querySelector(".drawer.open"))return!0;nextElement=nextElement.nextElementSibling}return!1}get hasOpenModalAfterThis(){return Array.from(document.querySelectorAll(".modal.modal--visible")).filter(modal=>this.modal!==modal&&this.compareDocumentPosition(modal)&Node.DOCUMENT_POSITION_FOLLOWING).length>0}get focusElement(){return this.modal.querySelector("button")}init(options){this.modal||(this.defaults={id:"",customClass:"",headerTitle:"",content:"",closeLabel:"Close",closeMethods:["overlay","button","escape"],transitionDuration:100},this.opts=Object.assign({},this.defaults,options),this.build(),this.bindEvents(),document.body.insertAdjacentElement("beforeend",this.modal),document.dispatchEvent(new CustomEvent("hover-button:apply")))}destroy(){this.modal!==null&&(this.isOpen&&this.close(),this.unbindEvents(),this.modal.remove(),this.modal=null)}open(activeElement=null){if(this.isBusy)return;this.isBusy=!0,this.activeElement=activeElement,this.modal.style.removeProperty?this.modal.style.removeProperty("display"):this.modal.style.removeAttribute("display"),document.getSelection().removeAllRanges(),setTimeout(()=>{this.modal.classList.add("modal--visible")},10),setTimeout(()=>{theme.accessibility.trapFocus(this.modal,this.focusElement)},this.opts.transitionDuration),window.bodyScrollLock.disableBodyScroll(this.modal.querySelector(".modal__content")||this.modal),document.documentElement.classList.add("page-no-scroll"),document.querySelector(".drawer.open")&&this.modal.classList.add("modal--drawer-visible"),this.isBusy=!1}close(){if(this.isBusy)return;this.isBusy=!0,this.modal.classList.add("modal--is-hiding"),this.modal.classList.remove("modal--visible"),document.querySelector(".modal.modal--visible, .drawer.open")||(window.bodyScrollLock.clearAllBodyScrollLocks(),document.documentElement.classList.remove("page-no-scroll")),this.isOpen&&this.close(),this.unbindEvents(),setTimeout(()=>{this.modal.classList.remove("modal--is-hiding"),this.modal?.remove(),this.modal=null,theme.accessibility.removeTrapFocus(this.activeElement)},600),setTimeout(()=>{theme.accessibility.removeTrapFocus(this.activeElement)},50),this.isBusy=!1}insertModalHeader(){return`
11      ${this.opts.closeMethods.includes("button")&&!this.opts.headerTitle?`
12        <button type="button" class="modal__close button button-reset hover:scale[1.15]">
13          ${this.closeIcon}
14          
15          <span class="visually-hidden">${this.opts.closeLabel}</span>
16        </button>
17      `:""}
18
19      <div class="modal__header bg-gradient">
20        ${this.opts.headerTitle?`
21          <h4 class="h5 m-0 flex-1 uppercase">${this.opts.headerTitle}</h4>
22        `:""}
23        
24        ${this.opts.closeMethods.includes("button")?`
25          <button type="button" class="modal__close button button-reset hover:scale[1.15]">
26            ${this.closeIcon}
27            
28            <span class="visually-hidden">${this.opts.closeLabel}</span>
29          </button>
30        `:""}
31      </div>
32    `}insertModalContent(){return`
33      <div class="modal__content ${(typeof this.opts.content!="string"?this.opts.content.dataset.customClass:"")||""}">
34        ${this.opts.content?typeof this.opts.content=="string"?this.opts.content:this.opts.content.innerHTML:""}
35      </div>
36    `}build(){this.modal=document.createElement("div"),this.modal.classList.add("modal"),this.modal.setAttribute("role","dialog"),this.modal.setAttribute("aria-modal","true"),this.opts.headerTitle&&this.modal.setAttribute("aria-label",this.opts.headerTitle),this.opts.id&&(this.modal.id=this.opts.id),this.opts.customClass&&(this.modal.className+=` ${this.opts.customClass}`),this.modal.style.display="none";const markup=`
37      <div class="modal__box">
38        ${this.insertModalHeader()}
39        ${this.insertModalContent()}
40      </div>
41      
42      <overlay-component class="overlay overlay--modal"></overlay-component>
43    `,fragment=this.createFragmentFromMarkup(markup);this.modal.appendChild(fragment),this.modalCloseBtn=this.modal.querySelector(".modal__close"),this.overlay=this.modal.querySelector("overlay-component"),this.modal.querySelectorAll(".fade-in-image").forEach(image=>{image.classList.remove("fade-in-image")})}createFragmentFromMarkup(markup){const fragment=document.createDocumentFragment(),tempContainer=document.createElement("div");for(tempContainer.innerHTML=markup;tempContainer.firstChild;)fragment.appendChild(tempContainer.firstChild);return fragment}bindEvents(){this.events={clickCloseBtn:this.close.bind(this),clickOverlay:this.handleClickOutside.bind(this),escClick:this.handleEscClick.bind(this)},this.opts.closeMethods.includes("button")&&(this.modalCloseBtn?.addEventListener("click",this.events.clickCloseBtn),this.overlay.addEventListener("click",this.events.clickCloseBtn)),this.modal.addEventListener("mousedown",this.events.clickOverlay),document.addEventListener("keydown",this.events.escClick)}handleEscClick(evt){this.opts.closeMethods.includes("escape")&&(evt.key==="Escape"||evt.key==="Esc")&&this.isOpen&&!this.hasOpenDrawerAfterModal&&!this.hasOpenModalAfterThis&&this.close()}handleClickOutside(event){const scrollbarWidth=this.modal.offsetWidth-this.modal.clientWidth,clickedOnScrollbar=event.clientX>
43=this.modal.offsetWidth-15,isScrollable=this.modal.scrollHeight!==this.modal.offsetHeight;navigator.platform==="MacIntel"&&scrollbarWidth===0&&clickedOnScrollbar&&isScrollable||this.opts.closeMethods.includes("overlay")&&!this.findAncestor(event.target,"modal")&&event.clientX<this.modal.clientWidth&&this.close()}findAncestor(el,cls){for(;el&&(el=el.parentElement);)if(el.classList.contains(cls))return el;return null}unbindEvents(){this.opts.closeMethods.includes("button")&&(this.modalCloseBtn?.removeEventListener("click",this.events.clickCloseBtn),this.overlay.removeEventListener("click",this.events.clickCloseBtn)),this.modal.removeEventListener("mousedown",this.events.clickOverlay)}}class Drawer extends HTMLElement{constructor(){super(),this.closeButtons=this.querySelectorAll("[data-close]:not(.drawer--inner :is([data-close]))"),this.position=this.classList.contains("drawer--right")?"right":"left",this.closeButtons.forEach(button=>{button.addEventListener("click",this.close.bind(this))}),document.addEventListener("drawer:update-close-buttons",()=>{this.closeButtons=this.querySelectorAll("[data-close]:not(.drawer--inner :is([data-close]))"),this.closeButtons.forEach(button=>{button.removeEventListener("click",this.close.bind(this)),button.addEventListener("click",this.close.bind(this))})}),this.onOpenTransitionEnd=this.handleOpenTransitionEnd.bind(this),this.onCloseTransitionEnd=this.handleCloseTransitionEnd.bind(this),this.onEscClick=this.handleEscClick.bind(this),this.onOverlayClick=this.handleOverlayClick.bind(this),document.addEventListener("shopify:section:select",this.openDrawerInCustomizer.bind(this)),document.addEventListener("shopify:section:deselect",this.closeDrawerInCustomizer.bind(this)),document.addEventListener("shopify:section:load",this.openDrawerInCustomizer.bind(this))}get overlay(){return this.nextElementSibling?.classList.contains("overlay")?this.nextElementSibling:null}get focusElement(){return this.querySelector("button")}get hasOpenModalAfterDrawer(){const visibleModal=document.querySelector(".modal.modal--visible, .modal.modal--is-hiding");return visibleModal?visibleModal.compareDocumentPosition(this)&Node.DOCUMENT_POSITION_PRECEDING:!1}openDrawerInCustomizer(e){if(!["CartDrawer","SearchDrawer"].includes(this.id))return;const sectionId=e.detail.sectionId,drawer=document.getElementById(`shopify-section-${sectionId}`)?.querySelector(`#${this.id}`);drawer&&(e.type==="shopify:section:select"?this.open():(drawer.classList.add("open"),drawer.classList.remove("closed")))}closeDrawerInCustomizer(e){const sectionId=e.detail.sectionId,drawerId=this.id||this.dataset.id;if(!drawerId)return;document.getElementById(`shopify-section-${sectionId}`)?.querySelector(`#${drawerId}`)&&this.close()}handleOpenTransitionEnd(event){event.target.id===this.id&&theme.accessibility.trapFocus(this,this.focusElement)}handleCloseTransitionEnd(event){event.target.id===this.id&&(this.classList.add("!hidden"),theme.accessibility.removeTrapFocus(this.activeElement))}open(activeElement=null){this.triggerButtons=document.querySelectorAll(`[is="drawer-trigger"][aria-controls='${this.id||""}']`),this.activeElement=activeElement;const openedDrawer=document.querySelector(".drawer:not(.drawer--inner).open");openedDrawer&&!this.classList.contains("drawer--inner")&&openedDrawer.close(),this.classList.remove("!hidden"),requestAnimationFrame(()=>{this.overlay.style.opacity="",this.classList.add("open"),window.bodyScrollLock.disableBodyScroll(this,{reserveScrollBarGap:!0,allowTouchMove:element=>{const scrollingContainer=element.closest(".allow-scrolling");return scrollingContainer&&scrollingContainer.scrollHeight>scrollingContainer.clientHeight}}),this.classList.contains("drawer--inner")||document.documentElement.classList.add("page-no-scroll",`drawer-${this.position}-opened`),this.removeEventListener("transitionend",this.onCloseTransitionEnd,!1),this.addEventListener("transitionend",this.onOpenTransitionEnd,!1),this.overlay?.addEventListener("click",this.onOverlayClick),document.addEventListener("keydown",this.onEscClick),this.triggerButtons.forEach(button=>{button.setAttribute("aria-expanded","true")}),this.dispatchEvent(new CustomEvent("drawer:open"))})}
43close(){this.getAnimations().forEach(anim=>anim.cancel()),this.overlay.getAnimations().forEach(anim=>anim.cancel()),this.triggerButtons=document.querySelectorAll(`[is="drawer-trigger"][aria-controls='${this.id||""}']`),this.querySelectorAll(".drawer--inner.open").forEach(innerDrawer=>{innerDrawer.close()}),requestAnimationFrame(()=>{this.classList.remove("open");const hasOpenedModal=document.querySelector(".modal.modal--visible"),hasOpenedDrawer=document.querySelector(".drawer.open");!hasOpenedModal&&!hasOpenedDrawer&&(window.bodyScrollLock.clearAllBodyScrollLocks(),document.documentElement.classList.remove("page-no-scroll")),!hasOpenedDrawer&&!this.classList.contains("drawer--inner")&&document.documentElement.classList.remove("drawer-left-opened","drawer-right-opened")}),this.removeEventListener("transitionend",this.onOpenTransitionEnd,!1),this.addEventListener("transitionend",this.onCloseTransitionEnd,!1),this.overlay?.removeEventListener("click",this.onOverlayClick),document.removeEventListener("keydown",this.onEscClick),this.triggerButtons.forEach(button=>{button.setAttribute("aria-expanded","false")}),this.dispatchEvent(new CustomEvent("drawer:close"))}handleEscClick(evt){const openedInnerDrawer=this.querySelector("drawer-inner.open");!this.hasOpenModalAfterDrawer&&(evt.key==="Escape"||evt.key==="Esc")&&(openedInnerDrawer?openedInnerDrawer.close():this.close())}handleOverlayClick(){this.close()}}class DrawerInner extends Drawer{constructor(){super(),this.closeButtons=this.querySelectorAll("[data-close]"),this.closeButtons.forEach(button=>{button.addEventListener("click",this.close.bind(this))}),document.addEventListener("drawer:update-close-buttons",()=>{this.closeButtons=this.querySelectorAll("[data-close]"),this.closeButtons.forEach(button=>{button.removeEventListener("click",this.close.bind(this)),button.addEventListener("click",this.close.bind(this))})})}}window.customElements.get("drawer-inner")||customElements.define("drawer-inner",DrawerInner);class SlideshowSection extends HTMLElement{constructor(){super(),this.globalSlide=null,this.thumbnailSlide=null,this.handleScrollListener=theme.helpers.throttle(this.handleScroll.bind(this)),this.handleResizeListener=theme.helpers.throttle(this.handleResize.bind(this)),this.handleBlockSelectListener=this.handleBlockSelect.bind(this),this.handleBlockDeselectListener=this.handleBlockDeselect.bind(this),this.init()}connectedCallback(){window.addEventListener("scroll",this.handleScrollListener,{passive:!0}),window.addEventListener("resize",this.handleResizeListener,{passive:!0}),Shopify.designMode&&(this.addEventListener("shopify:block:select",this.handleBlockSelectListener),this.addEventListener("shopify:block:deselect",this.handleBlockDeselectListener))}disconnectedCallback(){window.removeEventListener("scroll",this.handleScrollListener),window.removeEventListener("resize",this.handleResizeListener),Shopify.designMode&&(this.removeEventListener("shopify:block:select",this.handleBlockSelectListener),this.removeEventListener("shopify:block:deselect",this.handleBlockDeselectListener))}handleScroll(){this.resizeSlider()}handleResize(){this.resizeSlider(!0)}init(){document.body.classList.contains("index")?window.pageYOffset>0||document.body.classList.contains("swiper-lazy")?this.initSlide():this.classList.contains("lazy-loading-swiper-before")?this.initSlide():this.classList.add("lazy-loading-swiper-after"):this.initSlide(),this.resizeSlider()}initSlide(){const settings=theme.helpers.safelyParseJson(this.getAttribute("settings"))||{},defaultSettings={autoplay:!1,loop:!1,itemDesktop:4,itemTablet:1,itemMobile:1,directionOnMobile:"horizontal",directionOnTablet:"horizontal",directionOnDesktop:"horizontal",autoplaySpeed:3e3,speed:400,effect:"slide",crossFade:!1,row:1,spacingOnMobile:0,spacingOnDesktop:0,paginationProgressbar:!1,autoItem:!1,arrowCenterImage:0,pauseOnMouseEnter:!1,setMaxHeight:!0,centeredSlides:!1,grabCursor:!1,autoHeight:!1,roundLengths:!1,loopAdditionalSlides:0,loopAddBlankSlides:!0,slidesPerGroup:1,allowTouchMove:!0};this.settings={...defaultSettings,...settings},this.settings.autoplay&&(this.settings.autoplay={delay:this.settings.autoplaySpeed,pauseOnMouseEnter:this.settings.pauseOnMouseEnter}),this.settings.itemTablet||(this.settings.itemDesktop<2?this.settings.itemTablet=1:this.settings.itemDesktop<3?this.settings.itemTablet=2:this.settings.itemTablet=3),this.settings.direction==="vertical"&&this.setMaxHeight&&(this.style.maxHeight=this.offsetHeight+"px"),this.globalSlide=new Swiper(this,{observeParents:!0,slidesPerView:this.settings.autoItem?"auto":this.settings.itemMobile,spaceBetween:this.settings.spacingOnMobile,autoplay:this.settings.autoplay,direction:this.settings.directionOnMobile,loop:this.settings.loop,effect:this.settings.effect,fadeEffect:{crossFade:this.settings.crossFade},speed:this.settings.speed,centeredSlides:this.settings.centeredSlides,roun
43dLengths:this.settings.roundLengths,watchSlidesProgress:!0,watchSlidesVisibility:!0,autoHeight:this.settings.autoHeight,touchStartPreventDefault:!1,slidesPerGroup:this.settings.slidesPerGroup,passiveListeners:!0,loopAdditionalSlides:this.settings.loopAdditionalSlides,loopAddBlankSlides:this.settings.loopAddBlankSlides,allowTouchMove:this.settings.allowTouchMove,grid:{rows:this.settings.row,fill:"row"},navigation:{nextEl:this.querySelector(".swiper-button-next"),prevEl:this.querySelector(".swiper-button-prev")},pagination:{clickable:!0,el:this.querySelector(".swiper-pagination"),type:this.settings.paginationProgressbar?"progressbar":"bullets"},breakpoints:{768:{direction:this.settings.directionOnTablet,slidesPerView:this.settings.itemTablet,spaceBetween:this.settings.spacingOnDesktop},1025:{direction:this.settings.directionOnDesktop,slidesPerView:this.settings.itemDesktop,spaceBetween:this.settings.spacingOnDesktop}},thumbs:{swiper:this.thumbnailSlide?this.thumbnailSlide:null},on:{init:e=>{if(this.settings.arrowCenterImage){const slides=this.querySelectorAll(".product-item__media--ratio");if(slides.length>0){const heights=[];
43slides.forEach(slide=>{heights.push(slide.offsetHeight/2)});const arrowsOffset=`--arrows-offset-top: ${Math.max(...heights)}px`;this.querySelectorAll(".swiper-arrow").forEach(arrow=>{arrow.setAttribute("style",arrowsOffset)})}}if(this.querySelector("video.slideshow")){const handleIntersection=(entries,observer)=>{if(!entries[0].isIntersecting)return;observer.unobserve(this);const videos=this.querySelectorAll("video"),updateVideoPoster=()=>{videos.forEach(video2=>{const posterDesktop=video2.dataset.posterDesktop,posterMobile=video2.dataset.postermobile;posterDesktop&&posterMobile&&(theme.config.querySmall?video2.poster=`${posterMobile}`:video2.poster=`${posterDesktop}`)})};document.addEventListener("matchSmall",updateVideoPoster),document.addEventListener("unmatchSmall",updateVideoPoster),videos.forEach(video2=>{const src=video2.dataset.src,posterDesktop=video2.dataset.posterDesktop,posterMobile=video2.dataset.posterMobile;src&&(video2.src=src,posterDesktop&&posterMobile&&(theme.config.querySmall?video2.poster=`${posterMobile}`:video2.poster=`${posterDesktop}`),video2.removeAttribute("data-src"))})};new IntersectionObserver(handleIntersection.bind(this),{rootMargin:"0px 0px 200px 0px"}).observe(this),this.dispatchEvent(new CustomEvent("carousel:init",{detail:{event:e}}))}},beforeTransitionStart:e=>{const animatedLists=this.querySelectorAll(".swiper-slide:not(.swiper-slide-active) animated-list"),accentTexts=this.querySelectorAll(".swiper-slide:not(.swiper-slide-active) .accent-text");animatedLists.forEach(list=>{list.classList.remove("visible")}
43),accentTexts.forEach(text=>{text.classList.remove("animate")}),this.dispatchEvent(new CustomEvent("carousel:beforeTransitionStart",{detail:{event:e}}))},slideChangeTransitionEnd:e=>{this.resizeSlider(),this.querySelectorAll(".swiper-slide.swiper-slide-active .accent-text").forEach(text=>{Motion.inView(text,()=>{text.classList.add("animate")})}),this.dispatchEvent(new CustomEvent("carousel:transitionEtart",{detail:{event:e}}))}}})}resizeSlider(updateSlide){const currentSlide=this.querySelector(".swiper-slide-active .slideshow-slide");if(!currentSlide)return;const newHeight=currentSlide.offsetHeight;this.style.maxHeight!==`${newHeight}px`&&(this.style.maxHeight=`${newHeight}px`),updateSlide&&this.globalSlide.update()}handleBlockSelect(e){const index=Array.from(e.target.parentNode.children).indexOf(e.target),slideshow=e.target.closest("slideshow-section");slideshow?.globalSlide.slideTo(index),slideshow?.globalSlide.autoplay?.pause()}handleBlockDeselect(e){e.target.closest("slideshow-section")?.globalSlide.autoplay?.resume()}}window.customElements.get("slideshow-section")||customElements.define("slideshow-section",SlideshowSection);class ProductRecommendations extends SlideshowSection{constructor(){super(),this.type=this.getAttribute("type")||"auto"}init(){this.connectedCallback()}connectedCallback(){if(this.type){if(this.type==="manual"){this.initSlide();return}this.settings=theme.helpers.safelyParseJson(this.getAttribute("settings"))||{},this.recommendationsUrl=this.settings?.recommendationsUrl||"",this.location=this.settings?.location||"product",this.wrapper=this.closest(".cart-recommendations"),this.location==="cart"?this.parseProducts():Motion.inView(this.closest(".section, .quickview"),()=>{this.parseProducts()})}}parseProducts(){this.recommendationsUrl&&fetch(this.recommendationsUrl).then(response=>response.text()).then(text=>{const recommendations=new DOMParser().parseFromString(text,"text/html").querySelector("product-recommendations"),parsedProductWrapper=recommendations?.querySelector(".swiper-wrapper, .recommended-blocks"),parsedProducts=parsedProductWrapper?.querySelectorAll(".swiper-slide, .grid-custom-item"),currentProductWrapper=this.querySelector(".swiper-wrapper"),currentArrows=this.querySelector(".cart-recommendations__arrows, .product-recommendations__arrows");if(parsedProducts&&parsedProducts.length<=1?currentArrows?.classList.add("hidden"):currentArrows?.classList.remove("hidden"),!parsedProductWrapper||!parsedProducts||!parsedProducts.length)if(this.location==="product"){const sectionWrapper=this.closest(".product-recommendations-section");sectionWrapper?sectionWrapper.remove():this.remove(),document.dispatchEvent(new CustomEvent("theme:main-roundness:update"))}else this.location==="cart"&&this.wrapper.classList.add("!hidden");else recommendations&&(this.location==="product"?(this.innerHTML=recommendations.innerHTML,this.classList.remove("!hidden")):this.location==="cart"&&(currentProductWrapper.innerHTML=parsedProductWrapper.innerHTML,this.wrapper.classList.remove("!hidden")),document.dispatchEvent(new CustomEvent("hover-button:apply")))}).finally(()=>{this.location==="cart"&&this.querySelector(".swiper-slide")&&this.initSlide()}).catch(e=>{console.error(e)})}}window.customElements.get("product-recommendations")||customElements.define("product-recommendations",ProductRecommendations);class ParallaxComponent extends HTMLDivElement{constructor(){super(),this.load(),document.addEventListener("matchSmall",this.unload.bind(this)),document.addEventListener("unmatchSmall",this.load.bind(this))}get mobileEnabled(){return!0}load(){theme.config.motionReduced||!this.mobileEnabled&&(theme.config.isTouch||theme.config.querySmall)||this.startMotion()}startMotion(){const start=this.getAttribute("data-start")||"0px",stop=this.getAttribute("data-stop")||"0px";this.animation=Motion.scroll(Motion.animate(this,{transform:[`translateY(${start})`,`translateY(${stop})`]}),{target:this,offset:[[1,0],[0,1]]})}unload(){this.animation&&(this.animation(),this.style.transform="",this.animation=null)}}window.customElements.get("parallax-component")||customElements.define("parallax-component",ParallaxComponent,{extends:"div"});class AnimatedMedia extends HTMLElement{constructor(){super(),this.initialDelay=0,this.delayIncrement=.1,this.blocks=this.querySelectorAll(".animated-block"),this.handleSectionLoadListener=this.init.bind(this)}connectedCallback(){this.init(),Shopify.designMode&&document.addEventListener("shopify:section:load",this.handleSectionLoadListener)}disconnectedCallback(){Shopify.designMode&&document.removeEventListener("shopify:section:load",this.handleSectionLoadListener)}init(){const settings=theme.helpers.safelyParseJson(this.getAttribute("settings"));if(settings){const validKeys=["initialDelay","delayIncrement","animateO
43nce"];for(const[key,value]of Object.entries(settings))validKeys.includes(key)&&(this[key]=value)}let delay=this.initialDelay;this.blocks.forEach(block=>{block.style.transitionDelay=`${delay}s`,delay+=this.delayIncrement});const handleIntersection=(entries,observer2)=>{entries.forEach(entry=>{entry.isIntersecting&&this.classList.add("visible")})};new IntersectionObserver(handleIntersection,{root:null,rootMargin:"0px",threshold:.1}).observe(this)}}window.customElements.get("animated-media")||customElements.define("animated-media",AnimatedMedia);class ImageParallax extends AnimatedMedia{constructor(){super(),this.image=this.querySelector("img, .placeholder-svg"),this.parallax=Number(this.dataset.parallax)||.3,this.direction=this.dataset.direction||"vertical"}connectedCallback(){super.connectedCallback(),this.applyParallax()}applyParallax(){if(!this.image)return;const scale=1+this.parallax,translate=this.parallax*100/(1+this.parallax),animationOptions={easing:"linear"},scrollOptions={target:this,offset:["start end","end start"]};let animation;this.direction==="vertical"?animation=Motion.animate(this.image,{transform:[`scale(${scale}) translateY(0)`,`scale(${scale}) translateY(${translate}%)`],transformOrigin:["bottom","bottom"]},animationOptions):this.direction==="horizontal"?animation=Motion.animate(this.image,{transform:[`scale(${scale}) translateX(0)`,`scale(${scale}) translateX(${translate}%)`],transformOrigin:["right","right"]},animationOptions):animation=Motion.animate(this.image,{transform:["scale(1)",`scale(${scale})`],transformOrigin:["center","center"]},animationOptions),Motion.scroll(animation,scrollOptions)}}window.customElements.get("image-parallax")||customElements.define("image-parallax",ImageParallax);class CustomCursor extends HTMLElement{constructor(){super(),this.mouseX=0,this.mouseY=0,this.cursorX=0,this.cursorY=0,this.mouseMoveListener=theme.helpers.throttle(this.handleMouseMove.bind(this))}connectedCallback(){theme.helpers.isTouchDevice()||document.addEventListener("mousemove",this.mouseMoveListener,{passive:!0})}disconnectedCallback(){theme.helpers.isTouchDevice()||document.removeEventListener("mousemove",this.mouseMoveListener)}handleMouseMove(evt){this.mouseX=evt.clientX,this.mouseY=evt.clientY,requestAnimationFrame(()=>{this.cursorX+=(this.mouseX-this.cursorX)/4,this.cursorY+=(this.mouseY-this.cursorY)/4,this.style.setProperty("--x",`${this.cursorX}px`),this.style.setProperty("--y",`${this.cursorY}px`)})}}window.customElements.get("custom-cursor")||customElements.define("custom-cursor",CustomCursor);class CustomCursorArea extends HTMLElement{constructor(){super(),this.cursorName=this.dataset.cursorName,this.cursorCustomClass=this.dataset.cursorCustomClass,this.customCursor=document.querySelector(`.custom-cursor--${this.cursorName}`),this.handleMouseEnterListener=theme.helpers.throttle(this.handleMouseEnter.bind(this)),this.handleMouseLeaveListener=theme.helpers.throttle(this.handleMouseLeave.bind(this))}connectedCallback(){this.customCursor&&!theme.helpers.isTouchDevice()&&(this.addEventListener("mouseenter",this.handleMouseEnterListener,{passive:!0}),this.addEventListener("mouseleave",this.handleMouseLeaveListener,{passive:!0}))}disconnectedCallback(){this.customCursor&&!theme.helpers.isTouchDevice()&&(this.removeEventListener("mouseenter",this.handleMouseEnterListener),this.removeEventListener("mouseleave",this.handleMouseLeaveListener))}handleMouseEnter(){this.customCursor.classList.add("active"),this.cursorCustomClass&&this.customCursor.classList.add(this.cursorCustomClass)}handleMouseLeave(){this.customCursor.classList.remove("active"),this.cursorCustomClass&&this.customCursor.classList.remove(this.cursorCustomClass)}}window.customElements.get("custom-cursor-area")||customElements.define("custom-cursor-area",CustomCursorArea);class OverlayComponent extends CustomCursorArea{constructor(){super(),this.customCursor=document.querySelector(".custom-cursor--close")}}window.customElements.get("overlay-component")||customElements.define("overlay-component",OverlayComponent);class CircleText extends HTMLElement{constructor(){super(),this.canTrig=CSS.supports("(top: calc(sin(1) * 1px))"),this.text=this.dataset.text||"Featured \u2022 product \u2022 ",this.originalText=this.dataset.originalText||"Featured product",this.init()}init(){this.style.setProperty("--char-count",this.children.length),this.style.setProperty("--inner-angle",`calc((360 / var(--char-count, ${this.children.length})) * 1deg)`),this.style.setProperty("--radius",`calc((1 / ${this.canTrig?"sin(var(--inner-angle))":Math.sin(360/this.children.length/(180/Math.PI))}) * -1ch)`);const chars=this.text.split("");this.innerHTML="",this.style.setProperty("--char-count",chars.length);for(let c=0;c<chars.length;c++)this.innerHTML+=`<span aria-hidden="true" class="circle-text__char" style="--char-index: ${c};">${chars[c]}</span>`;this.innerHTML+=`<span class="visually-hidden">${this.originalText}</span>`,this.style.setProperty("--radius",this.canTrig?"calc((var(--character-width) / sin(var(--inner-angle))) * -1ch":`calc(1 / ${Math.sin(360/this.children.length/(180/Math.PI))}) * -1ch)`)}}window.customElements.get("circle-text")||customElements.define("circle-text",CircleText);class AccentText extends HTMLElement{constructor(){super(),Motion.inView(this,()=>{this.classList.add("animate")})}}window.customElements.get("accent-text")||customElements.define("accent-text",AccentText,{extends:"em"});class HoverButton{constructor(buttonElement){this.button=buttonElement,this.flair=this.button.querySelector(".button__flair"),this.flair&&this.initEvents()}getXY(e){const rect=this.button.getBoundingClientRect();return{x:(e.clientX-rect.left)/rect.width*100,y:(e.clientY-rect.top)/rect.height*100}}initEvents(){this.button.addEventListener("mouseenter",e=>{const{x,y}=this.getXY(e);this.flair.style.transform=`translate(${x}%, ${y}%) scale(1)`}),this.button.addEventListener("mousemove",e=>{const{x,y}=this.getXY(e);this.flair.style.transform=`translate(${x}%, ${y}%) scale(1)`}),this.button.addEventListener("mouseleave",e=>{const{x,y}=this.getXY(e);this.flair.style.transform=`translate(${x}%, ${y}%) scale(0)`})}}document.addEventListener("DOMContentLoaded",()=>{function applyButtonHover(){document.querySelectorAll(".button-primary, .button-outline, .shopify-payment-button__button--unbranded").forEach(button=>{new HoverButton(button)})}applyButtonHover(),document.addEventListener("hover-button:apply",applyButtonHover),document.addEventListener("shopify:section:load",applyButtonHover)});class RecentlyViewedProducts extends HTMLElement{constructor(){super(),this.isLoaded=!1}connectedCallback(){this.loadProducts()}getSearchQueryString(){const stored=localStorage.getItem("theme:recently-viewed-products"),productIds=new Set(JSON.parse(stored||"[]")),excludeId=this.getAttribute("exclude-id");excludeId&&productIds.delete(parseInt(excludeId));const limit=parseInt(this.getAttribute("products-count"));return Array.from(productIds).slice(0,limit).map(id=>`id:${id}`).join(" OR ")}async loadProducts(){if(this.isLoaded)return;this.isLoaded=!0;const section=this.closest(".shopify-section"),sectionId=this.extractSectionId(section),query=this.getSearchQueryString(),url=`${Shopify.routes.root}search?type=product&q=${query}&section_id=${sectionId}`;try{const html=await(await fetch(url,{priority:"low"})).text(),replacement=new DOMParser().parseFromString(html,"text/html").querySelector("recently-viewed-products");replacement&&replacement.childElementCount>0?this.replaceChildren(...replacement.childNodes):section?.remove()}catch(error){console.error("Failed to load recently viewed products:",error)}}extractSectionId(e){return(e=e.classList.contains("shopify-section")?e:e.closest(".shopify-section")).id.replace("shopify-section-","")}}window.customElements.get("recently-viewed-products")||window.customElements.define("recently-viewed-products",RecentlyViewedProducts);
44//# sourceMappingURL=/cdn/shop/t/175/assets/global.js.map?v=105546126226122249911769195714

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.