export function selectEvents(events, now = new Date()) { const valid=events.filter(e=>e.slug && Number.isFinite(Date.parse(e.start)) && Number.isFinite(Date.parse(e.end))); const open=valid.filter(e=>e.status==='open' && Date.parse(e.end)>=now.getTime()).sort((a,b)=>Date.parse(a.start)-Date.parse(b.start)); const rest=valid.filter(e=>!open.includes(e)).sort((a,b)=>Date.parse(b.start)-Date.parse(a.start)); return [...open,...rest].slice(0,2); } export function eventStatus(e, now = new Date()) { if(Date.parse(e.end){if(!r.ok)throw Error();return r.json()}).then(events=>{ const valid=events.filter(e=>e.slug && Number.isFinite(Date.parse(e.start)) && Number.isFinite(Date.parse(e.end))); const now=new Date(); const current=valid.filter(e=>Date.parse(e.end)>=now.getTime()).sort((a,b)=>Date.parse(a.start)-Date.parse(b.start)); const past=valid.filter(e=>Date.parse(e.end)Date.parse(b.start)-Date.parse(a.start)); const makeCard=e=>{ if(!/^[a-z0-9-]+$/.test(e.slug))throw Error(); const article=document.createElement('article');article.className='course event-card'; const content=document.createElement('div'),actions=document.createElement('div');actions.className='course-actions'; const [state,note]=eventStatus(e); const date=new Intl.DateTimeFormat('lt-LT',{timeZone:'Europe/Vilnius',year:'numeric',month:'long',day:'numeric'}); for(const [tag,text,cls] of [['span',state,'tag'],['p',`${date.format(new Date(e.start))} – ${date.format(new Date(e.end))}`,'event-date'],['h3',e.title,''],['p',`${e.sessions ?? e.dates.length} susitikimai · ${e.format} · ${e.schedule}`,''],['p',note,'muted']]){ const el=document.createElement(tag);el.textContent=text;el.className=cls;content.append(el); } const link=document.createElement('a');link.className='button';link.href=e.slug+'.html';link.textContent='Detaliau ↗';actions.append(link);article.append(content,actions);return article; }; const visible=current.slice(0,2); if(visible.length)list.replaceChildren(...visible.map(makeCard)); else list.innerHTML='

Šiuo metu nėra vykstančių ar artėjančių mokymų.

'; if(pastList)pastList.replaceChildren(...past.map(makeCard)); }).catch(()=>{/* Preserve the server-generated course card if data cannot load. */}); }