1import{d as u,ai as m,v as _,k as p,l as t,c as o,b as n,t as a,e as i,F as h,r as g,y as v,w as y,g as k,n as f,J as w,K as b,p as C}from"./main-BUdmlzcu.js";const L={class:"view active"},B={class:"view-header"},D={key:0,class:"loading-spinner-wrap"},x={key:1,class:"card",style:{padding:"2rem","text-align":"center"}},A={style:{color:"var(--text-3)"}},N={key:2,class:"announcements-list"},P={class:"announcement-meta"},S={key:0,class:"announcement-badge"},$={class:"announcement-date"},F={class:"announcement-title"},R={class:"announcement-preview"},V=u({__name:"AnnouncementsPage",setup(z){const c=m();_(()=>{c.load()});function r(s){return s?new Date(s.replace(" ","T")+"Z").toLocaleDateString(w[b()],{day:"2-digit",month:"2-digit",year:"numeric"}):""}return(s,d)=>{const l=p("RouterLink");return t(),o("section",L,[n("div",B,[n("h2",null,a(s.$t("announcements.title")),1)]),i(c).isLoading&&i(c).items.length===0?(t(),o("div",D,[...d[0]||(d[0]=[n("div",{class:"loading-spinner"},null,-1)])])):i(c).sorted.length===0?(t(),o("div",x,[n("p",A,a(s.$t("announcements.empty")),1)])):(t(),o("div",N,[(t(!0),o(h,null,g(i(c).sorted,e=>(t(),v(l,{key:e.id,to:{name:"announcement-detail",params:{id:e.id}},class:f(["announcement-card",{"is-unread":!e.is_read}])},{default:y(()=>[n("div",P,[e.is_read?k("",!0):(t(),o("span",S,a(s.$t("announcements.badgeNew")),1)),n("span",$,a(r(e.published_at)),1)]),n("h3",F,a(e.title),1),n("p",R,a(e.body.length>160?e.body.slice(0,160)+"â¦":e.body),1)]),_:2},1032,["to","class"]))),128))]))])}}}),I=C(V,[["__scopeId","data-v-59c29897"]]);export{I 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.