1(function(){"use strict";var STORAGE_KEY="ymi_collection_state",MAX_AGE_MS=72e5,SAVE_SCROLL_MS=200,restoring=!1,pagesLoaded=1,scrollTimer=null,lastPathKey="";function isCollectionPage(){return document.body&&document.body.classList.contains("template-collection")}function isProductPage(){return document.body&&document.body.classList.contains("template-product")}function qs(sel,root){return(root||document).querySelector(sel)}function qsa(sel,root){return Array.prototype.slice.call((root||document).querySelectorAll(sel))}function pathKey(url){try{var u=typeof url=="string"?new URL(url,window.location.origin):new URL(window.location.href);return u.pathname+u.search}catch(e){return window.location.pathname+window.location.search}}function getPageFromHref(href){if(!href)return null;try{var u=new URL(href,window.location.origin),p=u.searchParams.get("page");return p?parseInt(p,10):1}catch(e){var m=String(href).match(/[?&]page=(\d+)/);return m?parseInt(m[1],10):1}}function inferPagesLoaded(){var btn=qs("[data-load-more]");if(!btn)return pagesLoaded;var href=btn.getAttribute("href");if(!href||btn.classList.contains("is-hidden"))return pagesLoaded;var next=getPageFromHref(href);return next&&next>1?Math.max(pagesLoaded,next-1):pagesLoaded}function readState(){try{var raw=sessionStorage.getItem(STORAGE_KEY);if(!raw)return null;var data=JSON.parse(raw);return!data||!data.path?null:data.ts&&Date.now()-data.ts>MAX_AGE_MS?(sessionStorage.removeItem(STORAGE_KEY),null):data}catch(e){return null}}function writeState(partial){try{var prev=readState()||{},next={path:partial.path!=null?partial.path:prev.path||pathKey(),scrollY:partial.scrollY!=null?partial.scrollY:prev.scrollY||0,pagesLoaded:partial.pagesLoaded!=null?partial.pagesLoaded:prev.pagesLoaded||pagesLoaded||1,productHandle:partial.productHandle!=null?partial.productHandle:prev.productHandle||"",productId:partial.productId!=null?partial.productId:prev.productId||"",nextHref:partial.nextHref!=null?partial.nextHref:prev.nextHref||"",ts:Date.now()};return sessionStorage.setItem(STORAGE_KEY,JSON.stringify(next)),next}catch(e){return null}}function saveSnapshot(extra){if(!(!isCollectionPage()||restoring)){var btn=qs("[data-load-more]"),nextHref=btn&&!btn.classList.contains("is-hidden")&&btn.getAttribute("href")||"";pagesLoaded=Math.max(pagesLoaded,inferPagesLoaded()),writeState(Object.assign({path:pathKey(),scrollY:window.scrollY||window.pageYOffset||0,pagesLoaded:pagesLoaded,nextHref:nextHref},extra||{}))}}function resetPagesCounter(){pagesLoaded=1,lastPathKey=pathKey()}function getGrid(){return qs(".js-infinite-wrapper[data-load-more--grid]")||qs(".js-infinite-wrapper")}function fetchPageHtml(url){return fetch(url,{credentials:"same-origin"}).then(function(r){if(!r.ok)throw new Error("load failed");return r.text()})}function appendPageFromHtml(html){var grid=getGrid();if(!grid)return!1;var doc=new DOMParser().parseFromString(html,"text/html"),items=doc.querySelectorAll("[data-load-more--grid-item]"),nextBtn=doc.querySelector("[data-load-more]"),loadMoreWrap=qs(".js-load-more",grid)||qs(".js-load-more"),loadMoreIcon=qs(".load-more__icon");items.forEach(function(el){grid.appendChild(document.importNode(el,!0))});var liveBtn=qs("[data-load-more]");return nextBtn&&nextBtn.getAttribute("href")?liveBtn&&(liveBtn.setAttribute("href",nextBtn.getAttribute("href")),liveBtn.classList.remove("is-hidden")):liveBtn&&(liveBtn.removeAttribute("href"),liveBtn.classList.add("is-hidden")),loadMoreWrap&&loadMoreWrap.parentNode===grid&&grid.appendChild(loadMoreWrap),loadMoreIcon&&loadMoreIcon.parentNode===grid&&grid.appendChild(loadMoreIcon),window.theme&&typeof theme.reinitProductGridItem1=="function"?theme.reinitProductGridItem1():window.theme&&typeof theme.reinitProductGridItem=="function"&&theme.reinitProductGridItem(),document.dispatchEvent(new CustomEvent("collection:reloaded")),items.length>0}function loadPagesUntil(targetPages){if(targetPages=Math.max(1,parseInt(targetPages,10)||1),targetPages<=1)return Promise.resolve();var chain=Promise.resolve(),loaded=1;function step(){if(loaded>=targetPages)return Promise.resolve();var btn=qs("[data-load-more]"),href=btn&&!btn.classList.contains("is-hidden")?btn.getAttribute("href"):null;return href?fetchPageHtml(href).then(function(html){return appendPageFromHtml(html),loaded+=1,pagesLoaded=Math.max(pagesLoaded,loaded),step()}):Promise.resolve()}return chain.then(step)}function scrollToSaved(state){var y=state&&typeof state.scrollY=="number"?state.scrollY:0,handle=state&&state.productHandle;function apply(){if(handle){var card=null;if(qsa(".grid-product[data-product-handle]").forEach(function(el){!card&&el.getAttribute("data-product-handle")===handle&&(card=el)}),card){window.scrollTo(0,y);var rect=card.getBoundingClientRect();if(rect.top<0||rect.bottom>window.innerHeight){var top=rect.top+(window.scrollY||0)-Math.min(120,window.innerHeight*.15);window.scrollTo(0,Math.max(0,top))}card.classList.add("ymi-restore-highlight"),setTimeout(function(){card.classList.remove("ymi-restore-highlight")},1600);return}}window.scrollTo(0,y)}requestAnimationFrame(function(){apply(),setTimeout(apply,50),setTimeout(apply,250)})}function sameCollectionState(state){if(!state||!state.path)return!1;try{var norm=function(search){var params=new URLSearchParams(search);params.delete("page");var keys=[];
1return params.forEach(function(_v,k){keys.push(k)}),keys.sort(),keys.map(function(k){return k+"="+params.getAll(k).slice().sort().join(",")}).join("&")},a=new URL(state.path,window.location.origin),b=new URL(window.location.href);return a.pathname!==b.pathname?!1:norm(a.search)===norm(b.search)}catch(e){return state.path.split("?")[0]===window.location.pathname}}function isBackForwardNavigation(){try{var nav=performance.getEntriesByType&&performance.getEntriesByType("navigation");if(nav&&nav[0]&&nav[0].type==="back_forward")return!0}catch(e){}try{if(performance.navigation&&performance.navigation.type===2)return!0}catch(e2){}return!1}function restoreFromState(state,fromBfcache){if(!state||!isCollectionPage()||!sameCollectionState(state))return Promise.resolve(!1);restoring=!0,pagesLoaded=Math.max(1,parseInt(state.pagesLoaded,10)||1);var done=Promise.resolve();return!fromBfcache&&pagesLoaded>1&&(document.documentElement.classList.add("ymi-collection-restoring"),done=loadPagesUntil(pagesLoaded)),done.catch(function(){}).then(function(){return scrollToSaved(state),document.documentElement.classList.remove("ymi-collection-restoring"),restoring=!1,saveSnapshot({productHandle:state.productHandle||"",productId:state.productId||"",pagesLoaded:pagesLoaded}),!0})}function onProductLinkClick(e){if(isCollectionPage()){var link=e.target.closest&&e.target.closest("a.grid-product__link");if(link){if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button===1){saveSnapshot();return}var card=link.closest(".grid-product");saveSnapshot({productHandle:card&&card.getAttribute("data-product-handle")||"",productId:card&&card.getAttribute("data-product-id")||"",pagesLoaded:Math.max(pagesLoaded,inferPagesLoaded()),scrollY:window.scrollY||window.pageYOffset||0})}}}function stripBlankTargets(){isCollectionPage()&&qsa('a.grid-product__link[target="_blank"]').forEach(function(a){a.removeAttribute("target");var rel=(a.getAttribute("rel")||"").replace(/\bnoopener\b/g,"").replace(/\bnoreferrer\b/g,"").trim();rel?a.setAttribute("rel",rel):a.removeAttribute("rel")})}function bindCollection(){if(isCollectionPage()){try{"scrollRestoration"in history&&(history.scrollRestoration="manual")}catch(e){}lastPathKey=pathKey(),pagesLoaded=Math.max(1,inferPagesLoaded()),document.addEventListener("click",onProductLinkClick,!0),window.addEventListener("scroll",function(){restoring||(clearTimeout(scrollTimer),scrollTimer=setTimeout(function(){saveSnapshot()},SAVE_SCROLL_MS))},{passive:!0}),window.addEventListener("pagehide",function(){saveSnapshot()}),document.addEventListener("visibilitychange",function(){document.visibilityState==="hidden"&&saveSnapshot()}),document.addEventListener("collection:page-loaded",function(evt){var p=evt&&evt.detail&&evt.detail.pagesLoaded;p?pagesLoaded=Math.max(pagesLoaded,parseInt(p,10)||pagesLoaded):pagesLoaded=Math.max(pagesLoaded,inferPagesLoaded(),pagesLoaded+1),saveSnapshot({pagesLoaded:pagesLoaded})}),document.addEventListener("collection:reloaded",function(){if(!restoring){var now=pathKey();now!==lastPathKey?(resetPagesCounter(),lastPathKey=now):pagesLoaded=Math.max(pagesLoaded,inferPagesLoaded()),stripBlankTargets(),saveSnapshot({pagesLoaded:pagesLoaded})}});var _push=history.pushState,_replace=history.replaceState;_push&&(history.pushState=function(){var ret=_push.apply(this,arguments);if(isCollectionPage()){var now=pathKey();now!==lastPathKey&&(resetPagesCounter(),lastPathKey=now),saveSnapshot({path:now,pagesLoaded:pagesLoaded,scrollY:window.scrollY||0})}return ret}),_replace&&(history.replaceState=function(){var ret=_replace.apply(this,arguments);return isCollectionPage()&&(lastPathKey=pathKey(),saveSnapshot({path:lastPathKey})),ret}),stripBlankTargets();var state=readState();state&&sameCollectionState(state)&&isBackForwardNavigation()&&(state.pagesLoaded>1||state.scrollY>0||state.productHandle)?setTimeout(function(){restoreFromState(state,!1)},50):saveSnapshot({pagesLoaded:Math.max(1,inferPagesLoaded())})}}function bindPageshow(){window.addEventListener("pageshow",function(evt){if(isCollectionPage()){var state=readState();if(state&&evt.persisted){restoring=!0,scrollToSaved(state),restoring=!1;return}}})}function bindBackToResults(){if(isProductPage()){var state=readState();if(!(!state||!state.path)){var links=qsa(".js-back-to-results, a.return-link");if(!links.length){var host=qs(".product-section")||qs("main")||document.body;if(!host)return;var wrap=document.createElement("div");wrap.className="ymi-back-to-results-wrap ymi-back-to-results-wrap--top page-width",wrap.innerHTML='<a class="ymi-back-to-results-link js-back-to-results" href="'+state.path.replace(/"/g,"")+'"><span aria-hidden="true">\u2190</span> <span class="ymi-back-to-results__label">Back to results</span></a>',host.insertBefore(wrap,host.firstChild),links=qsa(".js-back-to-results",wrap)}links.forEach(function(a){a.setAttribute("href",state.path),a.classList.add("ymi-back-to-results");var label=a.querySelector(".ymi-back-to-results__label");label&&(label.textContent="Back to results"),a.addEventListener("click",function(){state.ts=Date.now();try{sessionStorage.setItem(STORAGE_KEY,JSON.stringify(state))}catch(e){}})})}}}function bindQuickView(){document.addEventListener("click",function(e){var btn=e.target.closest&&e.target.closest("[data-ymi-quick-view]");if(btn){e.preventDefault(),e.stopPropagation();var productId=btn.getAttribute("data-product-id"),handle=btn.getAttribute("data-product-handle"),variantId=btn.getAttribute("data-variant-id")||"";!productId||!handle||typeof window.openGlobalQuickView=="function"&&window.openGlobalQuickView(productId,handle,variantId)}},!0)}
1function init(){window.__ymiCollectionStateBound||(window.__ymiCollectionStateBound=!0,bindPageshow(),bindQuickView(),isCollectionPage()&&bindCollection(),isProductPage()&&bindBackToResults())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",init):init()})(); 2//# sourceMappingURL=/cdn/shop/t/131/assets/collection-state.js.map?v=84854697614759738821789670070
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.