1import{d as B,u as F,f as G,o as u,l,h as b,v as te,i as p,S as ae,g as C,n as Q,t as X,U as oe,V as ne,W as j,a as Y,X as re,r as i,y as Z,A as ie,I as le,E as U,G as ce,F as ue,m as de,e as z,Y as H,w as me,s as J,L as pe,q as K,_ as ge,c as we,Q as ve,R as fe}from"./B--18EcS.js";const _e={class:"GoodNewsItem"},he={class:"GoodNewsItem-header"},ye=["innerHTML"],Te={key:0,class:"page-tech"},ke={class:"GoodNewsItem-wrapper grid-article"},Ne=["innerHTML"],$e=["innerHTML"],Ie=B({__name:"item",props:{card:{}},setup(D){const{locale:T}=F();return(a,S)=>{const k=oe,_=ne;return u(),G("div",_e,[l("div",he,[l("h3",{class:"card-small-header",innerHTML:a.card.title},null,8,ye),a.card.dateTime?(u(),G("span",Te,te(("useDateTime"in a?a.useDateTime:p(ae))(a.card.dateTime,p(T)).formattedDate),1)):b("",!0)]),l("div",ke,[l("div",{class:Q(["GoodNewsItem-content",{hasImages:a.card.image||a.card.image2}])},[l("div",{class:Q(["GoodNewsItem-contentText card-text",{"GoodNewsItem-contentText--withoutRedLine":a.card.isWithoutRedLine}]),innerHTML:a.card.text},null,10,Ne),a.card.linkValue?(u(),C(k,{key:0,to:a.card.linkValue,class:"GoodNewsItem-contentLinkPanel common-button"},{default:X(()=>[l("span",{innerHTML:a.card.linkLabel||a.card.linkValue},null,8,$e)]),_:1},8,["to"])):b("",!0)],2),a.card.image?(u(),C(_,{key:0,"image-data":a.card.image,sizes:"(max-width: 767px) 50vw, (min-width: 768px) and (max-width: 1023px) 21vw, 15vw",alt:""},null,8,["image-data"])):b("",!0),a.card.image2?(u(),C(_,{key:1,"image-data":a.card.image2,sizes:"(max-width: 767px) 50vw, (min-width: 768px) and (max-width: 1023px) 21vw, 15vw",alt:""},null,8,["image-data"])):b("",!0)])])}}}),Le={class:"GoodNewsList grid-listing"},be={class:"GoodNewsList-wrapper"},xe=B({__name:"list",props:{initialCards:{},resultsPerPage:{},endpoint:{},mode:{},targetSlug:{},previewTokens:{}},setup(D,{expose:T}){const{locale:a,t:S}=F(),{setSeo:k}=j(),_=Y(),x=re(),g=D,h=i(1),d=i([...g.initialCards.results]),P=i(!1),N=i(!1),$=i(g.initialCards.count),w=i(g.endpoint),I=i(g.mode),A=Z(()=>d.value.length<$.value);let m=null,y=null,t=null;const o=i(null),v=i([]),L=i(!1);let R=i(0);const O=(e,s)=>{e&&e.$el&&(v.value[s]=e.$el)},E=()=>{const s=new URLSearchParams(g.previewTokens).toString();return s?`?${s}`:""},M=e=>({language:a.value,page:e,page_size:g.resultsPerPage,...g.previewTokens}),ee=async()=>{if(!(P.value||!A.value)){P.value=!0,m=new AbortController;try{const e=h.value+1,s=await $fetch(w.value,{...z(),query:M(e),signal:m.signal});let c,r;"metadata"in s?(c=s.cards.results,r=s.cards.count):(c=s.results,r=s.count),d.value.push(...c),$.value=r,h.value=e,await U(),V()}catch(e){e instanceof Error&&!(m!=null&&m.signal.aborted)&&console.error("Error loading more news:",e)}finally{P.value=!1}}},W=()=>{y&&y.disconnect(),o.value&&(y=new IntersectionObserver(e=>{e.forEach(s=>{s.isIntersecting&&ee()})},{rootMargin:"0px 0px 500px 0px"}),y.observe(o.value))},V=()=>{t&&t.disconnect(),t=new IntersectionObserver(e=>{let s=-1;v.value.forEach((c,r)=>{if(c){const n=c.getBoundingClientRect();n.top<100&&n.bottom>0&&(s=r)}}),s!==-1&&s!==R.value&&(R.value=s,se(s))},{threshold:[0,.1,.5,1]}),v.value.forEach(e=>{e&&t.observe(e)})},se=e=>{const s=d.value[e];if(!s)return;const c=E();let r;e===0&&I.value==="list"?r="/good-news":r=`/good-news/${s.slug}`;const n=r+c,f=window.location.pathname+window.location.search;n!==f&&(L.value=!0,window.history.replaceState(history.state,"",n),U(()=>{L.value=!1}))};return ie(()=>_.params.slug,async e=>{if(L.value)return;const s=Array.isArray(e)?e[0]||"":e||"",c=s?"slug":"list",r=s?`/news/${s}.json`:"/news.json";N.value=!0,w.value=r,h.value=1;try{const n=await $fetch(r,{...z(),query:M(1)});if("metadata"in n)d.value=n.cards.results,$.value=n.cards.count,x.runWithContext(()=>k(n.metadata,S("common.goodNews"),{ogType:"article"}));else if(d.value=n.results,$.value=n.count,n.results.length>0){const f=n.results[0],q=f.seoTitle||H(f.title);x.runWithContext(()=>k({ogTitle:f.ogTitle||q,seoTitle:q,seoDescription:H(f.text).slice(0,200),seoImage:f.image?{w1200Url:f.image.w460Url}:null},q,{ogType:"article"}))}I.value=c,window.scrollTo({top:0,behavior:"smooth"}),await U(),V(),W()}catch(n){console.error("Error loading news:",n)}finally{N.value=!1}}),le(async()=>{await U(),V(),W()}),ce(()=>{m==null||m.abort(),y&&y.disconnect(),t&&t.disconnect()}),T({currentMode:I,isNavigating:N}),(e,s)=>{const c=Ie;return u(),G("div",Le,[l("div",be,[(u(!0),G(ue,null,de(p(d),(r,n)=>(u(),C(c,{key:r.id,ref_for:!0,ref:f=>{O(f,n)},card:r},null,8,["card"]))),128)),p(A)?(u(),G("div",{key:0,ref_key:"loadTriggerRef",ref:o,class:"GoodNewsList-sentinel"},null,512)):b("",!0)])])}}}),Ge={class:"App"},Ce={class:"PagesGoodNews"}
1,Pe={class:"PagesGoodNews-header grid-listing"},Ae=["innerHTML"],Me={class:"PagesGoodNews-cards"},Re=B({__name:"[...slug]",async setup(D){var A,m,y;let T,a;const{t:S,locale:k}=F(),_=Y(),x=i(null),g=Array.isArray(_.params.slug)?_.params.slug[0]:_.params.slug,h=i(g?"slug":"list"),d=i(g||""),P=["preview_token","preview_token_published","preview_token_all","preview_token_unpublished"],N={};P.forEach(t=>{const o=_.query[t];o&&(N[t]=Array.isArray(o)?o[0]||"":o||"")});const $=Z(()=>h.value==="slug"&&d.value?`/news/${d.value}.json`:"/news.json"),{data:w,error:I}=([T,a]=me(async()=>we(`good-news-${h.value}-${d.value}-${k.value}`,async()=>{const t={language:k.value,page:1,page_size:50,...N},o=await $fetch($.value,{...z(),query:t});return"metadata"in o?o:{metadata:{ogTitle:"",seoTitle:"",seoDescription:"",seoImage:null},cards:o}})),T=await T,a(),T);if(I.value||!w.value)throw J({statusCode:((A=I.value)==null?void 0:A.statusCode)||404,message:((m=I.value)==null?void 0:m.message)||"Not found",fatal:!0});if(h.value==="slug"&&(!w.value.cards.results||w.value.cards.results.length===0))throw J({statusCode:404,message:"News item not found",fatal:!0});if(h.value==="list"){const{setSeo:t}=j();t(w.value.metadata,S("common.goodNews"),{ogType:"article"})}else{const t=w.value.cards.results[0];if(t){const o=H(t.text).slice(0,200),v=t.seoTitle||H(t.title),{setSeo:L}=j();L({ogTitle:t.ogTitle||v,seoTitle:v,seoDescription:o,seoImage:t.image?{w1200Url:t.image.w460Url}:null},v,{ogType:"article"}),pe({script:[{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"NewsArticle",headline:v,description:o,datePublished:t.dateTime,image:((y=t.image)==null?void 0:y.w460Url)||void 0})}]})}}return(t,o)=>{var E,M;const v=ve,L=xe,R=ge,O=fe;return u(),G("div",Ge,[K(v),l("main",Ce,[l("div",Pe,[l("h1",{class:"page-h1",innerHTML:t.$t("common.goodNews")},null,8,Ae)]),l("div",Me,[p(w)?(u(),C(L,{key:0,ref_key:"listRef",ref:x,"initial-cards":p(w).cards,"results-per-page":50,endpoint:p($),mode:p(h),"target-slug":p(d),"preview-tokens":N},null,8,["initial-cards","endpoint","mode","target-slug"])):b("",!0)]),((E=p(x))==null?void 0:E.currentMode)==="slug"||(M=p(x))!=null&&M.isNavigating?(u(),C(R,{key:0,to:"/good-news",class:"PagesGoodNews-backToTop always-active"},{default:X(()=>o[0]||(o[0]=[l("span",{class:"PagesGoodNews-backToTop-text page-tech"},"ÐÐÐÐРХ",-1),l("span",{class:"PagesGoodNews-backToTop-arrow"},null,-1)])),_:1})):b("",!0)]),K(O,{"is-wide":!0})])}}});export{Re as default};
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.