Files
sm-bm-plugin/public/assets/ScheduleView-bL2PUDX5.js

2 lines
5.1 KiB
JavaScript

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