PageSourceSearch

https://nuunlife.com/cdn/shop/t/637/assets/app-component-search-re…?v=76080387892648361211790684182

js nuunlife.com collected 2026-10-02 03:56:28 UTC 12,028 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-chunk-sliders-p3cICadv.js","assets/app-chunk-dom-DBDXU1O3.js","assets/app-chunk-utils-DLBHZyEg.js","assets/app-chunk-splide-BimATRNx.js"])))=>i.map(i=>d[i]);
2import{g as S,h as y}from"./app-chunk-tracking-DbBIgO1y.js";import{n as v}from"./app-chunk-utils-CR3GBTiZ.js";var A="modulepreload",q=function(l){return"/"+l},b={},C=function(w,e,t){let s=Promise.resolve();if(e&&e.length>0){let c=function(o){return Promise.all(o.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const r=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),n=a?.nonce||a?.getAttribute("nonce");s=c(e.map(o=>{if(o=q(o,t),o in b)return;b[o]=!0;const u=o.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(t)for(let p=r.length-1;p>=0;p--){const m=r[p];if(m.href===o&&(!u||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${d}`))return;const h=document.createElement("link");if(h.rel=u?"stylesheet":A,u||(h.as="script"),h.crossOrigin="",h.href=o,n&&h.setAttribute("nonce",n),document.head.appendChild(h),u)return new Promise((p,m)=>{h.addEventListener("load",p),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${o}`)))})}))}function i(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return s.then(r=>{for(const a of r||[])a.status==="rejected"&&i(a.reason);return w().catch(i)})},f="product,article",g=l=>!!l&&!l.startsWith("Translation missing");if(!customElements.get("search-results-live")){class l extends HTMLElement{constructor(){super(),this.input=this.querySelector("[data-search-input]"),this.mount=this.querySelector("[data-search-results-mount]"),this.clearButton=this.querySelector("[data-search-clear]"),this.announcer=this.querySelector("[data-search-announcer]"),this.sectionId=this.getAttribute("section-id")||"search",this.baseUrl=this.getAttribute("base-url")||"/search",this.historyMode=this.getAttribute("history")||"replace",this.historyParams=(this.getAttribute("history-params")||"q,type,page,sort_by").split(","),this.cacheTtl=Number(this.getAttribute("cache-ttl-ms")||3e4),this.controller=null,this.carouselController=null,this.cache=new Map,this.inflight=new Map,this.state={q:"",type:"",page:1,sort_by:""},this.articleSlider=null,this.carouselGeneration=0,this.carouselLimit=Number(this.getAttribute("carousel-articles-limit")||12),this.titleTemplateOne=this.getAttribute("title-template-one")||"",this.titleTemplateOther=this.getAttribute("title-template-other")||"",this.titleSuffix=this.getAttribute("title-suffix")||"",this.titleEmpty=this.getAttribute("title-empty")||"",this.initialTitle=document.title,this.announceTimer=void 0,this.onInput=v(this.handleInput.bind(this),300),this.onInputImmediate=this.updateClearVisibility.bind(this),this.onClick=this.handleClick.bind(this),this.onPopState=this.handlePopState.bind(this)}connectedCallback(){this.hydrateStateFromUrl(),this.updateActiveTab(),this.updateClearVisibility(),this.setupArticleCarousel(),this.correctAllTabCount(),this.input.addEventListener("input",this.onInput),this.input.addEventListener("input",this.onInputImmediate),this.addEventListener("click",this.onClick),window.addEventListener("popstate",this.onPopState)}disconnectedCallback(){this.input.removeEventListener("input",this.onInput),this.input.removeEventListener("input",this.onInputImmediate),this.removeEventListener("click",this.onClick),window.removeEventListener("popstate",this.onPopState),this.controller?.abort(),this.carouselController?.abort(),window.clearTimeout(this.announceTimer)}hydrateStateFromUrl(){const e=new URLSearchParams(window.location.search),t=e.get("type")||"";this.state={q:e.get("q")||"",type:t===f?"":t,page:Number(e.get("page")||1),sort_by:e.get("sort_by")||""}}buildUrl(e=!0){const t=new URLSearchParams;return t.set("q",this.state.q),t.set("type",this.state.type||f),this.state.sort_by&&t.set("sort_by",this.state.sort_by),this.state.page>1&&t.set("page",String(this.state.page)),t.set("options[prefix]","last"),e&&t.set("section_id",this.sectionId),`${this.baseUrl}?${t}`}handleInput(){const e=this.input.value.trim();e!==this.state.q&&(this.state.q!==""&&e===""?(this.state={q:"",type:"",page:1,sort_by:""},y("",0)):(this.state.q=e,this.state.page=1),this.refresh())}updateClearVisibility(){this.clearButton?.classList.toggle("is-visible",this.input.value.trim()!=="")}updateDocumentTitle(e){const t=g(this.titleEmpty)?this.titleEmpty:"",s=this.state.q===""?t:this.resultsSentence(e);if(!s){this.state.q===""&&(document.title=this.initialTitle);return}document.title=this.titleSuffix?`${s} – ${this.titleSuffix}`:s}resultsSentence(e){const t=e===1?this.titleTemplateOne:this.titleTemplateOther;return g(t)?t.replace("{count}",String(e)).replace("{terms}",this.state.q):""}announceResults(e){if(!this.announcer)return;const t=this.state.q===""?"":this.resultsSentence(e);window.clearTimeout(this.announceTimer),this.announcer.textContent="",t&&(this.announceTimer=window.setTimeout(()=>{this.announcer&&(this.announcer.textContent=t)},250))}typeUrl(e){const t=new URLSearchParams;return t.set("q",this.state.q),t.set("type",e),t.set("options[prefix]","last"),t.set("section_id",this.sectionId),`${this.baseUrl}?${t}`}async fetchSectionHtml(e,t){const s=this.cache.get(e);if(s&&Date.now()-s.at<this.cacheTtl)return s.html;const i=this.inflight.get(e);if(i)return i;const r=(async()=>{try{const a=await fetch(e,t?{signal:t}:void 0);if(!a.ok)return null;const n=await a.text();return this.cache.set(e,{html:n,at:Date.now()}),n}finally{this.inflight.delete(e)}})();return this.inflight.set(e,r),r}static readCount(e){const t=new DOMParser().parseFromString(e,"text/html").querySelector("[data-results-count]");return t?Number(t.getAttribute("data-results-count")||0):0}async correctAllTabCount(){if(this.state.type!==""||this.state.q==="")return;const e=this.mount.querySelector("[data-results-count]");if(e)try{const[t,s]=await Promise.all([this.fetchSectionHtml(this.t
2ypeUrl("product")),this.fetchSectionHtml(this.typeUrl("article"))]);if(!e.isConnected||this.state.type!==""||t===null||s===null)return;const i=l.readCount(t)+l.readCount(s),r=i===1?e.getAttribute("data-results-template-one"):e.getAttribute("data-results-template-other");if(!r)return;e.setAttribute("data-results-count",String(i)),e.innerHTML=r.replace("{count}",String(i)),this.updateDocumentTitle(i),this.announceResults(i)}catch(t){if(t instanceof DOMException&&t.name==="AbortError")return;console.error("[search-results-live] all-tab count",t)}}async setupArticleCarousel(){const e=++this.carouselGeneration;await this.loadCarouselArticles(e),e===this.carouselGeneration&&await this.mountArticleCarousel(e)}async loadCarouselArticles(e){const t=this.mount.querySelector("[data-articles-slides]");if(t){this.carouselController?.abort(),this.carouselController=new AbortController;try{const s=await this.fetchSectionHtml(this.typeUrl("article"),this.carouselController.signal);if(s===null||!t.isConnected||e!==this.carouselGeneration)return;const i=new DOMParser().parseFromString(s,"text/html").querySelectorAll("[data-search-results-mount] .search-results__article-item");if(!i.length)return;const r=document.createDocumentFragment();Array.from(i).slice(0,this.carouselLimit).forEach(a=>{const n=document.createElement("div");n.className="splide__slide",n.appendChild(a),r.appendChild(n)}),t.replaceChildren(r)}catch(s){if(s instanceof DOMException&&s.name==="AbortError")return;console.error("[search-results-live] carousel articles",s)}}}async mountArticleCarousel(e){if(this.articleSlider){try{this.articleSlider.root?.classList.remove("is-carousel-ready"),this.articleSlider.destroy(!0)}catch(s){console.error("[search-results-live] carousel teardown",s)}this.articleSlider=null}const t=this.mount.querySelector("[data-articles-carousel]");if(t)try{const{initSliderManually:s}=await C(async()=>{const{initSliderManually:i}=await import("./app-chunk-sliders-p3cICadv.js").then(r=>r.r);return{initSliderManually:i}},__vite__mapDeps([0,1,2,3]));if(!t.isConnected||e!==this.carouselGeneration)return;this.articleSlider=s(t,{perPage:3,gap:"1.5rem",pagination:!0,arrows:!1,breakpoints:{1024:{perPage:2},768:{perPage:1}}}),t.classList.add("is-carousel-ready")}catch(s){console.error("[search-results-live] carousel mount",s)}}handleClick(e){const t=e.target;if(t.closest("[data-search-clear]")){e.preventDefault();const r=this.state.q!=="";this.input.value="",this.input.focus(),this.state={q:"",type:"",page:1,sort_by:""},this.updateClearVisibility(),r&&y("",0),this.refresh({writeHistory:!0,pushHistory:!0});return}this.state.q=this.input.value.trim();const s=t.closest("[data-search-type]");if(s){e.preventDefault(),this.state.type=s.getAttribute("data-search-type")||"",this.state.page=1,this.refresh({writeHistory:!0,pushHistory:!0,scrollToResults:s.hasAttribute("data-search-scroll")});return}const i=t.closest(".pager a[href]");if(i){e.preventDefault();const r=new URL(i.href,window.location.origin);this.state.page=Number(r.searchParams.get("page")||1),this.refresh({writeHistory:!0,pushHistory:!0,scrollToTop:!0})}}handlePopState(){this.hydrateStateFromUrl(),this.input.value=this.state.q,this.updateClearVisibility(),this.refresh({writeHistory:!1})}async refresh(e={}){const{writeHistory:t=!0,pushHistory:s=this.historyMode==="push",scrollToTop:i=!1,scrollToResults:r=!1}=e;this.controller?.abort(),this.controller=new AbortController;const a=this.buildUrl(!0),n=this.cache.get(a);if(n&&Date.now()-n.at<this.cacheTtl){this.render(n.html,{writeHistory:t,pushHistory:s,scrollToTop:i,scrollToResults:r,track:!1});return}this.setAttribute("data-state","loading"),this.mount.setAttribute("aria-busy","true");try{const c=await fetch(a,{signal:this.controller.signal});if(!c.ok)throw new Error(`Search section fetch failed: ${c.status}`);const o=await c.text();this.cache.set(a,{html:o,at:Date.now()}),this.render(o,{writeHistory:t,pushHistory:s,scrollToTop:i,scrollToResults:r,track:!0})}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;console.error("[search-results-live]",c),this.setAttribute("data-state","error"),this.mount.setAttribute("aria-busy","false")}}render(e,t){const s=new DOMParser().parseFromString(e,"text/html").querySelector("[data-search-results-mount]");
2if(!s){console.error("[search-results-live] no results mount in section response"),this.mount.setAttribute("aria-busy","false");return}const i=this.mount.offsetHeight;this.mount.style.minHeight=`${i}px`,this.mount.innerHTML=s.innerHTML,requestAnimationFrame(()=>{this.mount.style.minHeight=""}),this.setAttribute("data-state","ready"),this.mount.setAttribute("aria-busy","false"),this.updateActiveTab(),this.setupArticleCarousel(),this.correctAllTabCount(),t.writeHistory&&this.syncHistory(t.pushHistory),t.scrollToResults?(this.mount.querySelector(".search-page__tabs")||this).scrollIntoView({behavior:"smooth",block:"start"}):t.scrollToTop&&this.scrollIntoView({behavior:"smooth",block:"start"});const r=Number(this.mount.querySelector("[data-results-count]")?.getAttribute("data-results-count")||0);t.track&&S(this.state.q,r),this.updateDocumentTitle(r),this.announceResults(r),window.ShopifySearch={q:this.state.q,count:r}}updateActiveTab(){this.mount.querySelectorAll('[role="tab"][data-search-type]').forEach(e=>{const t=(e.getAttribute("data-search-type")||"")===this.state.type;e.classList.toggle("is-active",t),e.setAttribute("aria-selected",String(t))})}syncHistory(e){const t=new URLSearchParams(window.location.search);for(const a of this.historyParams){const n=this.state.q===""?"":a==="type"?this.state.type||f:this.state[a];n===""||n===0||n===1||n==null?t.delete(a):t.set(a,String(n))}const s=t.toString(),i=s?`${window.location.pathname}?${s}`:window.location.pathname,r=e?"pushState":"replaceState";window.history[r]({search:this.state},"",i)}}customElements.define("search-results-live",l)}

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.