1import{g as c}from"./index-xgxdCp6f.js";import{c as g,b as o,f as p,d as u,m as f,a as v}from"./distinctUntilChanged-D-bJFftd.js";import"./main-bEkJpQz2.js";class k{constructor(e,s,t){this.searchService=s,this.dictionary=t,this.element=e,this.domainId=e.getAttribute("data-domain"),this.search=e.querySelector("#searchInput"),this.searchCategories=e.querySelector("#searchCategories"),this.viewNews=e.querySelector(".view-news"),this.sliders=e.querySelectorAll("[data-slider]"),this.searchNews=e.querySelector(".search-news"),this.searchContainer=e.querySelector(".search-container"),this.prevActions=e.querySelectorAll(".search-prev-action"),this.nextActions=e.querySelectorAll(".search-next-action");const a=new URL(window.location.href),r=a.searchParams.get("q"),n=a.searchParams.get("category"),l=a.searchParams.get("keyword");this.search&&r?.length>0&&(this.search.value=r),this.searchCategories&&n?.length>0&&(this.searchCategories.value=n),this.getResults({domainId:this.domainId,query:r,areas:[],categories:n,keywords:l}),this.prevActions.forEach(i=>i.addEventListener("click",()=>{this.pagingLink(this.prevLink)})),this.nextActions.forEach(i=>i.addEventListener("click",()=>{this.pagingLink(this.nextLink)})),this.search&&this.searchCategories&&g(o(this.search,"input").pipe(p(()=>this.search.value.length===0||this.search.value.length>2)),o(this.searchCategories,"change")).pipe(u(400)).pipe(f(()=>({domainId:this.domainId,query:this.search.value,categories:this.searchCategories.value}))).pipe(v()).subscribe(i=>{const h=new URL(window.location.href);h.searchParams.forEach(d=>h.searchParams.delete(d)),window.history.pushState({},"",h),this.getResults(i)})}getResults(e){this.searchService.query(e,"news").then(s=>{this.viewNews?.classList?.add("d-none"),Array.from(this.sliders)?.forEach(t=>{t.classList.add("d-none")}),this.searchNews?.classList?.remove("d-none"),this.updatePaging(s),this.showArticles(s)})}pagingLink(e){e?.length>1&&fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}}).then(s=>s.json()).then(s=>{this.updatePaging(s),this.showArticles(s)})}updatePaging(e){this.prevLink=e.pagination.previousPageLink,this.nextLink=e.pagination.nextPageLink,!this.prevLink?.length&&!this.nextLink?.length?(this.prevActions.forEach(s=>s.classList.add("d-none")),this.nextActions.forEach(s=>s.classList.add("d-none"))):(this.prevActions.forEach(s=>s.classList.remove("d-none")),this.nextActions.forEach(s=>s.classList.remove("d-none")),this.prevActions.forEach(s=>s.disabled=!this.prevLink?.length),this.nextActions.forEach(s=>s.disabled=!this.nextLink?.length))}showArticles(e){if(this.searchContainer.innerHTML="",e.items.length>0){const s=e.items.map(t=>this.itemsHtml(t));this.hideAll(s),this.searchContainer.append(...s),this.staggerIn(s)}else this.searchContainer.innerHTML=`<h3>${this.dictionary.get("No results")}</h3>`}itemsHtml(e){const s=e.teaserTitle||e.title,t=document.createElement("div");return t.classList.add("col-12","col-sm-6","col-md-4","col-lg-3"),t.innerHTML=`<figure class="card-figure h-100"> 2 ${this.imageMarkup(e)} 3 <figcaption class="card-caption p-3"> 4 ${this.headerMarkup(e)} 5 <h5 class="card-title">${s}</h5> 6 </figcaption> 7 <a href="${e.url}" class="card-link-overlay" title="${s}"></a> 8 </figure>`,t}imageMarkup(e){return e.imageUrl?.length>0?`<img src="${e.imageUrl}" alt="${e.title}"/>`:""}headerMarkup(e){const s=e.areas?e.areas.map(a=>`<span class="badge ${a.toLowerCase()}">${this.dictionary.get("Areas."+a)}</span>`).join(""):"",t=e.date?`<span class="article-small">${this.dictionary.get(e.type)?.toUpperCase()} ${e.date}</span>`:`<span class="article-small">${this.dictionary.get(e.type)?.toUpperCase()}</span>`;return`<div class="areas">${s} ${t}</div>`}hideAll(e){c.set(e,{translateY:"150px",opacity:0})}staggerIn(e){c.to(e,{translateY:"0",opacity:1,ease:"expo.out",duration:.5,stagger:.025,onComplete:()=>{e.forEach(s=>s.style.opacity="")}})}}export{k as NewsFilter};
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.