PageSourceSearch

https://tlc-omega.vercel.app/_astro/Layout.astro_astro_type_script_index_1_lang.kW6QqKFW.js

js tlc-omega.vercel.app collected 2026-10-03 07:53:16 UTC 15,162 bytes, 1 lines download raw bytes

1function V(){if(typeof window.Alpine>"u"){console.error("Alpine is not defined");return}const c=window.Alpine,E=10,g=()=>({conditions:0,treatments:0,diagnostics:0,experts:0}),m=async()=>{if(typeof window.initPagefind=="function"){await window.initPagefind();return}if(!window.pagefind){const e=await import("/pagefind/pagefind.js");window.pagefind=e,window.pagefind.init()}},F=async t=>{t.trim()&&(await m(),window.pagefind.preload(t))},w=t=>!t||t==="/"?t:t.endsWith("/")?t.slice(0,-1):t,C=t=>{const e=g();return t.forEach(r=>{const s=r.filters?.post_type?.[0];s&&s in e&&e[s]++}),e},L=t=>{setTimeout(()=>{const e=document.querySelector('[x-ref="searchInput"]');e&&(e.focus(),e.value=t,e.setSelectionRange(e.value.length,e.value.length))},100)};c.store("searchModal",{isOpen:!1,searchQuery:"",searchFilters:{},searchResults:[],originalResults:null,filteredResults:null,isSearching:!1,hasSearched:!1,filterCounts:g(),totalResults:0,resultsPerPage:E,currentPage:1,open(t="",e={}){this.searchQuery=t,this.searchFilters={...e},this.isOpen=!0,m();const r=t.trim(),s=e.category;r?this.performSearch(t,!1).then(()=>{s&&this.filterByCategory(e.category)}):s&&this.filterByCategory(e.category),L(this.searchQuery)},close(){this.isOpen=!1,this.searchQuery="",this.searchFilters={},this.searchResults=[],this.originalResults=null,this.filteredResults=null,this.isSearching=!1,this.hasSearched=!1,this.filterCounts=g(),this.totalResults=0,this.currentPage=1},async preloadSearch(t){await F(t)},async performSearch(t,e=!0){if(!t.trim()){this.clearSearch();return}e&&(this.searchFilters={}),this.isSearching=!0,this.hasSearched=!1,this.searchQuery=t;try{await m();const r=await window.pagefind.debouncedSearch(t,{},150);if(r===null)return;const s=await Promise.all(r.results.map(n=>n.data()));s.forEach(n=>{n.url&&(n.url=w(n.url))}),this.filterCounts=C(s),this.totalResults=s.length,this.originalResults=s,this.currentPage=1,this.searchResults=s.slice(0,this.resultsPerPage),this.isSearching=!1,this.hasSearched=!0}catch(r){console.error("Search error:",r),this.searchResults=[],this.isSearching=!1,this.hasSearched=!0}},clearSearch(){this.searchQuery="",this.searchResults=[],this.searchFilters={},this.originalResults=null,this.filteredResults=null,this.filterCounts=g(),this.totalResults=0,this.hasSearched=!1,this.currentPage=1},async filterByCategory(t){if(this.searchFilters={category:t},this.originalResults){const e=this.originalResults.filter(r=>r.filters?.post_type?.includes(t));this.filteredResults=e,this.currentPage=1,this.searchResults=e.slice(0,this.resultsPerPage);return}this.isSearching=!0,this.hasSearched=!1;try{await m();const e=this.searchQuery.trim()||"",r=await window.pagefind.debouncedSearch(e,{filters:{post_type:t}},150);if(r===null)return;const s=await Promise.all(r.results.map(i=>i.data()));s.forEach(i=>{i.url&&(i.url=w(i.url))});const n=g();n[t]=s.length,this.filterCounts=n,this.searchResults=s.slice(0,this.resultsPerPage),this.totalResults=s.length,this.isSearching=!1,this.hasSearched=!0}catch(e){console.error("Filter error:",e),this.searchResults=[],this.isSearching=!1,this.hasSearched=!0}},showAllResults(){this.originalResults&&(this.searchFilters={},this.filteredResults=null,this.currentPage=1,this.searchResults=this.originalResults.slice(0,this.resultsPerPage))},loadMoreResults(){const t=this.filteredResults||this.originalResults;t&&(this.currentPage++,this.searchResults=t.slice(0,this.currentPage*this.resultsPerPage))},hasMoreResults(){const t=this.filteredResults||this.originalResults;return t?this.searchResults.length<t.length:!1}}),c.store("navigation",{activeSubmenu:null,megaMenuOpen:!1,openSubmenu(t){const e=!this.megaMenuOpen;this.megaMenuOpen=!0,this.activeSubmenu=t,e&&this.focusFirstLink(t)},focusFirstLink(t){setTimeout(()=>{document.querySelector(`[data-submenu-key="${t}"]`)?.querySelector("a[href]")?.focus()},100)},closeAllSubmenus(){this.activeSubmenu=null,this.megaMenuOpen=!1},toggleSubmenu(t){this.activeSubmenu===t?this.closeAllSubmenus():this.openSubmenu(t)}}),c.store("mobileNavigation",{isOpen:!1,activeSubmenu:null,activeNestedSubmenu:null,open(){this.isOpen=!0},close(){this.isOpen=!1,this.activeSubmenu=null,this.activeNestedSubmenu=null},toggleSubmenu(t){this.activeSubmenu===t?(this.activeSubmenu=null,this.activeNestedSubmenu=null):(this.activeSubmenu=t,this.activeNestedSubmenu=null)},toggleNestedSubmenu(t){this.activeNestedSubmenu=this.activeNestedSubmenu===t?null:t}}),c.data("navigationMenu",()=>({init(){const t=c.store("navigation");document.addEventListener("keydown",e=>
1{e.key==="Escape"&&t.megaMenuOpen&&(e.preventDefault(),t.closeAllSubmenus())}),this.$el.addEventListener("keydown",e=>{if(!t.megaMenuOpen)return;if(e.key==="Tab"){setTimeout(()=>{this.$el.contains(document.activeElement)||t.closeAllSubmenus()},0);return}const r=document.querySelector(".main-mega-menu"),s=document.activeElement;if(!r?.contains(s))return;const n=Array.from(r.querySelectorAll("a[href]")),i=n.indexOf(s);e.key==="ArrowDown"&&i<n.length-1?(e.preventDefault(),n[i+1].focus()):e.key==="ArrowUp"&&i>0&&(e.preventDefault(),n[i-1].focus())})}})),c.data("mobileNavigationMenu",()=>({init(){document.addEventListener("keydown",t=>{t.key==="Escape"&&c.store("mobileNavigation").isOpen&&c.store("mobileNavigation").close()})}})),c.data("servicesSearch",t=>({blockId:t.blockId,postType:t.postType,initialServices:[],services:[],allResults:[],loading:!1,error:null,resultsPerPage:12,currentPage:1,hasAutoSwitchedToRelevance:!1,filters:{search:"",expert:"",condition:"","sort-by":""},getDefaultSort(){return this.postType==="news"?"date-desc":"alphabetical-asc"},stripHtml(e){if(!e)return"";const r=document.createElement("div");return r.innerHTML=e,r.textContent||r.innerText||""},init(){this.filters["sort-by"]=this.getDefaultSort();const e=this.postType.slice(0,-1)+"sPostType";if(this.initialServices=t.initialServices.map(s=>{const n={...s,searchWeight:s.searchWeight||10};return n[e]?.introduction&&(n[e].introduction=this.stripHtml(n[e].introduction)),n}),this.loadFiltersFromURL(),this.filters.search?.trim()||this.hasActiveFilters())this.performSearch();else{const s=this.applySorting([...this.initialServices]);this.allResults=s,this.services=s.slice(0,this.resultsPerPage)}window["searchBlock_"+this.blockId]=this,this.$el.addEventListener("search-input-change",s=>{this.updateFilter("search",s.detail.query)}),this.$el.addEventListener("filter-change",s=>{this.updateFilter(s.detail.key,s.detail.value)}),this.$el.addEventListener("sort-change",s=>{this.updateFilter("sort-by",s.detail.value)})},async performSearch(){this.loading=!0,this.error=null;
1try{const e=this.filters.search?.trim(),r=this.filters.expert?.trim(),s=this.filters.condition?.trim();if(this.currentPage=1,e&&!this.hasAutoSwitchedToRelevance&&(this.hasAutoSwitchedToRelevance=!0,this.filters["sort-by"]!=="relevance"&&(this.filters["sort-by"]="relevance",this.updateURL(),document.dispatchEvent(new CustomEvent("sort-auto-changed",{detail:{value:"relevance"}})))),!e&&!r&&!s&&(this.hasAutoSwitchedToRelevance=!1,this.filters["sort-by"]==="relevance")){const n=this.getDefaultSort();this.filters["sort-by"]=n,this.updateURL(),document.dispatchEvent(new CustomEvent("sort-auto-changed",{detail:{value:n}}))}if(!e&&!r&&!s){const n=this.applySorting([...this.initialServices]);this.allResults=n,this.services=n.slice(0,this.resultsPerPage),this.loading=!1;return}if(e&&!r&&!s){const n=await this.performPagefindSearch();if(n===null)return;if(n.length>0){const i=this.applySorting(n);this.allResults=i,this.services=i.slice(0,this.resultsPerPage)}else{const i=this.applySorting([...this.initialServices]);this.allResults=i,this.services=i.slice(0,this.resultsPerPage)}}else{const n=this.filterInitialServices();this.allResults=n,this.services=n.slice(0,this.resultsPerPage)}this.loading=!1}catch(e){console.error("Search error:",e),this.error="Search error occurred. Showing initial results.",this.services=this.applySorting([...this.initialServices]),this.loading=!1}},async performPagefindSearch(){try{await m();const r=this.filters.search?.trim()?this.filters.search.trim():"",s={post_type:this.postType},i=(await window.pagefind.search(r||"*",{filters:s})).results.slice(0,50),l=await Promise.all(i.map(o=>o.data())),a=[];for(let o=0;o<l.length;o++){const u=l[o],y=i[o];let S;if(this.postType==="experts"?S="/experts/":this.postType==="news"?S="/news-articles/":this.postType==="specialities"?S="/specialities/":S="/services/"+this.postType+"/",u.url&&!u.url.endsWith("/index.html")&&u.url.includes(S)){const P=u.url.split("/").filter(h=>h.length>0),T=P[P.length-1]||"unknown";let v=u.meta?.title||u.meta?.h1||"Untitled";if(this.postType==="experts"){const h=u.meta?.name||u.meta?.title;if(h&&h!=="Untitled")v=h;else{const b=u.meta?.firstName||"",O=u.meta?.surname||"",R=(b+" "+O).trim();R&&R!==" "&&(v=R)}}const A=u.meta?.introduction||u.excerpt||"",k=this.stripHtml(A),d=this.postType.slice(0,-1)+"sPostType",f={id:y.id,slug:T,uri:w(u.url),title:v,searchWeight:y.score?Math.round(y.score*100):10};f[d]={title:v,introduction:k};const x=w(u.url),p=this.initialServices.find(h=>h.uri===x||h.slug===T||h.id===y.id);if(p&&(f.featuredImage=p.featuredImage,Object.keys(p).forEach(h=>{!Object.prototype.hasOwnProperty.call(f,h)&&h!==d&&(f[h]=p[h])}),p[d]&&(f[d]={...p[d],...f[d]})),this.postType==="experts"){const h=u.meta?.clinicalTitle||"",b=p?.[d]?.clinicalTitle||"";f[d].clinicalTitle=h||b}a.push(f)}}return a}catch(e){return console.error("Pagefind search error:",e),[]}},filterInitialServices(){let e=[...this.initialServices];const r=this.postType.slice(0,-1)+"sPostType";if(this.filters.search?.trim()){const s=this.filters.search.toLowerCase();e=e.filter(n=>{const i=(n.title||"").toLowerCase(),a=((n[r]||{}).introduction||"").toLowerCase();return i.includes(s)||a.includes(s)})}return this.filters.expert?.trim()&&(e=e.filter(s=>(s.relatedExperts?.edges||s[r]?.relatedExperts?.edges||[]).some(i=>i.node?.slug===this.filters.expert))),this.filters.condition?.trim()&&(e=e.filter(s=>(s.relatedConditions?.edges||s[r]?.relatedConditions?.edges||[]).some(i=>i.node?.slug===this.filters.condition))),this.applySorting(e)},applySorting(e){if(!e.length)return e;const r=[...e],s=i=>this.postType==="experts"?(i.expertsPostType?.surname||"").trim()||i.title||"":i.title||"",n=i=>{const l=i.date||i.newsPostType?.publishDate||i.newsPostType?.date||"";if(!l)return 0;const a=new Date(l);return isNaN(a.getTime())?0:a.getTime()};switch(this.filters["sort-by"]){case"alphabetical-asc":case"alphabetical":return r.sort((i,l)=>s(i).localeCompare(s(l)));case"alphabetical-desc":case"reverse-alphabetical":return r.sort((i,l)=>
1s(l).localeCompare(s(i)));case"date-desc":return r.sort((i,l)=>{const a=n(i),o=n(l);return a!==o?o-a:s(i).localeCompare(s(l))});case"date-asc":return r.sort((i,l)=>{const a=n(i),o=n(l);return a!==o?a-o:s(i).localeCompare(s(l))});case"relevance":return r.sort((i,l)=>{const a=i.searchWeight||10,o=l.searchWeight||10;return a!==o?o-a:s(i).localeCompare(s(l))});default:return this.postType==="news"?r.sort((i,l)=>{const a=n(i),o=n(l);return a!==o?o-a:s(i).localeCompare(s(l))}):r.sort((i,l)=>s(i).localeCompare(s(l)))}},updateFilter(e,r){this.filters[e]=r,this.updateURL(),this.performSearch(),window.updateResetButtonVisibility&&setTimeout(window.updateResetButtonVisibility,150)},resetFilters(){this.filters={search:"",expert:"",condition:"","sort-by":this.getDefaultSort()},this.currentPage=1,this.hasAutoSwitchedToRelevance=!1,this.updateURL();const e=this.applySorting([...this.initialServices]);this.allResults=e,this.services=e.slice(0,this.resultsPerPage),document.dispatchEvent(new CustomEvent("filters-reset"))},resetFilterDropdowns(){this.filters.expert="",this.filters.condition="",this.currentPage=1,this.updateURL(),this.performSearch(),document.dispatchEvent(new CustomEvent("filters-reset"))},hasActiveFilters(){return Object.entries(this.filters).some(([e,r])=>e==="sort-by"||e==="search"?!1:r&&r.trim()!=="")},loadFiltersFromURL(){const e=new URLSearchParams(window.location.search);Object.keys(this.filters).forEach(r=>{const s=r==="search"?"keyword":r,n=e.get(s);n&&(this.filters[r]=n)})},updateURL(){const e=new URLSearchParams,r=this.getDefaultSort();Object.entries(this.filters).forEach(([n,i])=>{const l=n==="search"?"keyword":n;n==="sort-by"&&i===r||i&&i.trim()&&e.set(l,i)});const s=window.location.pathname+(e.toString()?"?"+e.toString():"");window.history.replaceState({},"",s)},loadMoreResults(){!this.allResults||!this.hasMoreResults()||(this.currentPage++,this.services=this.allResults.slice(0,this.currentPage*this.resultsPerPage))},hasMoreResults(){return this.allResults?this.services.length<this.allResults.length:!1}})),c.store("stickyHeader",{isVisible:!0,lastScrollY:0,scrollThreshold:15,hideAfterScroll:350,ticking:!1,init(){this.lastScrollY=window.scrollY,window.addEventListener("scroll",()=>this.onScroll(),{passive:!0}),window.addEventListener("touchmove",()=>this.onScroll(),{passive:!0}),document.addEventListener("astro:page-load",()=>{this.isVisible=!0,this.lastScrollY=window.scrollY})},onScroll(){this.ticking||(window.requestAnimationFrame(()=>{this.updateVisibility(),this.ticking=!1}),this.ticking=!0)},updateVisibility(){const t=window.scrollY,e=t-this.lastScrollY;
1if(t<=0){this.isVisible=!0,this.lastScrollY=t;return}if(c.store("mobileNavigation").isOpen){this.isVisible=!0,this.lastScrollY=t;return}if(c.store("navigation").megaMenuOpen){this.isVisible=!0,this.lastScrollY=t;return}Math.abs(e)<this.scrollThreshold||(e>0&&t>this.hideAfterScroll?this.isVisible=!1:e<0&&(this.isVisible=!0),this.lastScrollY=t)},show(){this.isVisible=!0},hide(){this.isVisible=!1}}),c.store("stickyHeader").init(),c.data("scrollToTop",()=>({isVisible:!1,nearFooter:!1,footerThreshold:300,ticking:!1,init(){this.updateVisibility(),window.addEventListener("scroll",()=>this.onScroll(),{passive:!0}),document.addEventListener("astro:page-load",()=>{this.isVisible=!1,this.updateVisibility()})},onScroll(){this.ticking||(window.requestAnimationFrame(()=>{this.updateVisibility(),this.ticking=!1}),this.ticking=!0)},updateVisibility(){const t=window.scrollY,e=document.documentElement.scrollHeight-window.innerHeight,r=document.documentElement.scrollHeight-(window.scrollY+window.innerHeight);this.nearFooter=r<this.footerThreshold;const s=t/e*100;this.isVisible=s>=50&&!this.nearFooter},scrollToTop(){window.scrollTo({top:0,behavior:"smooth"})}})),c.data("stickyCTA",()=>({shouldHide:!1,nearFooter:!1,footerThreshold:300,ticking:!1,init(){this.updateVisibility(),window.addEventListener("scroll",()=>this.onScroll(),{passive:!0}),this.$watch("$store.mobileNavigation.isOpen",()=>{this.updateVisibility()}),window.addEventListener("resize",()=>this.updateVisibility(),{passive:!0})},onScroll(){this.ticking||(window.requestAnimationFrame(()=>{this.updateVisibility(),this.ticking=!1}),this.ticking=!0)},updateVisibility(){const t=c.store("mobileNavigation").isOpen,e=window.scrollY+window.innerHeight,s=document.documentElement.scrollHeight-e;this.nearFooter=s<this.footerThreshold,this.shouldHide=t||this.nearFooter}}))}typeof document<"u"&&document.addEventListener("alpine:init",V);

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.