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

2 lines
5.2 KiB
JavaScript

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