2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{d as F,k as L,o as s,c as t,x as B,a,m as N,t as i,b as l,h as p,i as E,e as y,p as P,q as A,r as K,A as T,j as Z,F as f,y as C,s as v,l as I,B as O}from"./index-D5YFSKUV.js";import{_ as W}from"./PageHead.vue_vue_type_script_setup_true_lang-CmzkJbRP.js";import{_ as G}from"./LoadState.vue_vue_type_script_setup_true_lang-CkJKaMnT.js";import{_ as H}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-DoecCJhC.js";import{a as D,F as J,t as Q,f as M,m as R,b as V,c as U,h as X,g as Y}from"./format-bcE-cYHJ.js";const ee={class:"time"},se={class:"name"},te={class:"meta"},ne={key:0},ae={key:1,class:"badge online"},oe={key:2,class:"badge onsite"},le={key:3,class:"mono"},ie={key:0,class:"note"},re=F({__name:"SessionCard",props:{session:{},showDay:{}},setup(o){return(u,h)=>{const z=L("router-link");return s(),t("article",{class:B(["session",{online:o.session.is_online}])},[a("div",ee,[N(i(l(D)(o.session.starts_at))+" ",1),a("span",null,i(l(D)(o.session.ends_at)),1)]),a("div",null,[a("div",se,[p(z,{to:`/przedmioty/${o.session.course_id}`,style:{color:"inherit","text-decoration":"none"}},{default:E(()=>[N(i(o.session.course.name),1)]),_:1},8,["to"])]),a("div",te,[a("span",null,i(l(J)[o.session.course.form]),1),o.session.kind?(s(),t("span",ne,"· "+i(o.session.kind),1)):y("",!0),o.session.is_online?(s(),t("span",ae,"online")):o.session.room?(s(),t("span",oe,"sala "+i(o.session.room),1)):y("",!0),o.showDay?(s(),t("span",le,i(o.showDay),1)):y("",!0)]),o.session.notes?(s(),t("div",ie,i(o.session.notes),1)):y("",!0)])],2)}}}),ue={"aria-label":"Wybór zjazdu"},ce={class:"chips"},de=["aria-pressed","aria-current","title","onClick"],me=["aria-label"],ve={class:"meeting-bar","aria-live":"polite"},ye={key:1,class:"badge solid"},_e={key:2,class:"badge alert"},be={key:0,class:"notice",style:{"margin-bottom":"16px"}},he=["aria-label"],ke={class:"day-head"},fe={key:2,class:"empty"},pe={class:"btn-row",style:{"margin-top":"18px","justify-content":"space-between"}},ze=["disabled"],ge=["disabled"],je={key:1,class:"empty"},Ne=F({__name:"ScheduleView",setup(o){const u=P(),h=Z(),z=I();A(()=>{Promise.all([u.loadMeetings(),u.loadSchedule(),u.loadCourses()])});const m=v(()=>u.meetings??[]),g=Q(),S=v(()=>m.value.find(n=>n.starts_on<=g&&g<=n.ends_on)??null),q=v(()=>m.value.find(n=>n.starts_on>g)??null),k=K(Number(h.query.zjazd)||null),j=v(()=>k.value??S.value?.number??q.value?.number??m.value.at(-1)?.number??null),c=v(()=>m.value.find(n=>n.number===j.value)??null),_=v(()=>m.value.findIndex(n=>n.number===j.value));function $(n){k.value=n,z.replace({query:{...h.query,zjazd:String(n)}})}T(()=>h.query.zjazd,n=>{const r=Number(n);r&&r!==k.value&&(k.value=r)});const w=v(()=>{const n=c.value;if(!n)return[];const r=new Map;for(const e of u.schedule){if(e.meeting_id!==n.id)continue;const d=X(e.starts_at);r.set(d,[...r.get(d)??[],e])}return[...r].sort(([e],[d])=>e.localeCompare(d)).map(([e,d])=>({key:e,sessions:d}))}),x=v(()=>Y(c.value?.notes)),b=n=>S.value?.number===n?"current":q.value?.number===n?"next":"";return(n,r)=>(s(),t("div",null,[p(W,{eyebrow:"Zjazdy",title:"Plan zajęć"}),p(G,{ready:l(u).loaded.meetings&&l(u).loaded.schedule&&l(u).loaded.courses,error:l(u).error,onRetry:r[2]||(r[2]=e=>l(u).retry())},{default:E(()=>[p(H),a("nav",ue,[a("div",ce,[(s(!0),t(f,null,C(m.value,e=>(s(),t("button",{key:e.id,class:"chip",type:"button","aria-pressed":e.number===j.value,"aria-current":b(e.number)==="current"?"date":void 0,title:l(M)(e.starts_on,e.ends_on),onClick:d=>$(e.number)},[N(i(e.number),1),b(e.number)?(s(),t("span",{key:0,class:"dot","aria-label":b(e.number)==="current"?"trwa":"najbliższy"},null,8,me)):y("",!0)],8,de))),128))])]),c.value?(s(),t(f,{key:0},[a("section",ve,[a("h2",null,"Zjazd "+i(c.value.number),1),a("span",null,i(l(M)(c.value.starts_on,c.value.ends_on)),1),x.value?(s(),t("span",{key:0,class:B(["badge",x.value==="online"?"online":"onsite"])},i(x.value),3)):y("",!0),b(c.value.number)==="current"?(s(),t("span",ye,"trwa teraz")):b(c.value.number)==="next"?(s(),t("span",_e,"najbliższy")):y("",!0)]),l(R)(c.value.notes)?(s(),t("p",be,i(l(R)(c.value.notes)),1)):y("",!0),w.value.length?(s(),t("div",{key:1,class:B(["days",{two:w.value.length===2}])},[(s(!0),t(f,null,C(w.value,e=>(s(),t("section",{key:e.key,"aria-label":l(V)(e.sessions[0].starts_at)},[a("div",ke,[a("span",null,i(l(V)(e.sessions[0].starts_at)),1),a("span",null,i(l(U)(e.sessions.length,"zajęcia","zajęcia","zajęć")),1)]),(s(!0),t(f,null,C(e.sessions,d=>(s(),O(re,{key:d.id,session:d},null,8,["session"]))),128))],8,he))),128))],2)):(s(),t("p",fe,"Brak zajęć w tym zjeździe (może należą do ukrytych alternatyw).")),a("div",pe,[a("button",{class:"btn small",type:"button",disabled:_.value<=0,onClick:r[0]||(r[0]=e=>$(m.value[_.value-1].number))},"← Poprzedni zjazd",8,ze),a("button",{class:"btn small",type:"button",disabled:_.value<0||_.value>=m.value.length-1,onClick:r[1]||(r[1]=e=>$(m.value[_.value+1].number))},"Następny zjazd →",8,ge)])],64)):(s(),t("p",je,"Brak zjazdów."))]),_:1},8,["ready","error"])]))}});export{Ne as default};
|