PageSourceSearch

https://www.myprotein.dk/ssr-assets/MobileSearch.astro_astro_type_script_index_0_lang.CXIskdUZ.js

js myprotein.dk collected 2026-10-04 20:57:19 UTC 3,734 bytes, 1 lines download raw bytes

1import{f as h,h as c}from"./index.DaaxQYDI.js";import"./jsonParse.DmCFq1Ah.js";class o extends HTMLElement{searchBtn;searchOverlay;searchForm;searchCloseBtn;searchInput;debounceTimeout;instantSearchWrapper;constructor(){super(),this.searchBtn=this.querySelector("#search-icon"),this.searchOverlay=this.querySelector("#mobile-search-overlay"),this.searchForm=this.querySelector("#mobile-search-form"),this.searchCloseBtn=this.querySelector("#close-mobile-search"),this.searchInput=this.querySelector("#mobile-search-input"),this.openSearch=this.openSearch.bind(this),this.closeSearch=this.closeSearch.bind(this),this.searchTabTrap=this.searchTabTrap.bind(this),this.showSearchComponent=this.showSearchComponent.bind(this),this.debounce=this.debounce.bind(this),this.debouncedSearch=this.debouncedSearch.bind(this),this.performSearch=this.performSearch.bind(this),this.searchBtn?.addEventListener("click",this.openSearch);const e=this.querySelector(".chatbot-entry-badge-text")?.textContent?.trim()||"Get started",t=this.getAttribute("data-badge-continue")||"Continue",r=()=>{try{const s=sessionStorage.getItem("thg_chatbot_conversation"),i=s&&JSON.parse(s).some(n=>n.type==="question");this.querySelectorAll(".chatbot-entry-badge-text").forEach(n=>{n.textContent=i?t:e})}catch{}};r();const a=document.getElementById("mobile-main-nav");a&&new MutationObserver(()=>{a.classList.contains("m-nav-active")&&r()}).observe(a,{attributes:!0,attributeFilter:["class"]}),this.querySelector(".search-assistant-entry")?.addEventListener("click",()=>{this.searchOverlay?this.closeSearch():document.getElementById("nav-overlay")?.click();const s=document.querySelector("thg-chatbot");s&&s.open()}),this.debounceTimeout=null,this.instantSearchWrapper=this.querySelector("#mobile-instant-search"),this.searchInput?.addEventListener("input",s=>this.debouncedSearch(s)),window.tenantConfig?.features?.trendingSearch&&this.searchInput?.addEventListener("focus",()=>this.showSearchComponent())}openSearch(){this.searchOverlay?.addEventListener("keydown",this.searchTabTrap),this.searchOverlay?.show(),this.searchInput?.focus(),this.searchOverlay?.addEventListener("click",e=>e.stopPropagation()),this.searchForm?.addEventListener("click",e=>e.stopPropagation()),this.searchOverlay?.addEventListener("click",this.closeSearch),this.searchCloseBtn?.addEventListener("click",this.closeSearch)}closeSearch(){this.searchOverlay?.removeEventListener("keydown",this.searchTabTrap),this.searchOverlay?.close(),this.searchInput&&(this.searchInput.value=""),this.searchOverlay?.removeEventListener("click",e=>e.stopPropagation()),this.searchForm?.removeEventListener("click",e=>e.stopPropagation()),this.searchOverlay?.removeEventListener("click",this.closeSearch),this.searchCloseBtn?.removeEventListener("click",this.closeSearch)}searchTabTrap(e){e.key==="Escape"&&this.closeSearch()}async showSearchComponent(){await h("/fragments/TrendingSearchFragment",this.instantSearchWrapper),this.instantSearchWrapper?.classList.remove("hidden")}debounce(e,t){return(...r)=>{clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout(()=>e.apply(this,r),t)}}debouncedSearch=this.debounce(async e=>{const t=e?.target?.value?.trim();if(!t&&window.tenantConfig?.features?.trendingSearch){this.instantSearchWrapper&&(this.instantSearchWrapper.innerHTML=""),await this.showSearchComponent();return}t.length>=3&&await this.performSearch(t)},500);async performSearch(e){const t=encodeURIComponent(e);await h(`/fragments/InstantSearchFragment/?query=${t}`,this.instantSearchWrapper).then(()=>c(this.instantSearchWrapper,this.searchInput)),this.instantSearchWrapper?.classList.remove("hidden")}}customElements.get("mobile-search")||customElements.define("mobile-search",o);

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.