From 9677e58288ac78894016dddd5af10a6f5879cdf3 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Fri, 30 Oct 2026 13:36:09 +0100 Subject: [PATCH] fix: answer an empty checklist with an empty items list --- checklists_postgres_test.go | 3 +++ controllers/api/checklists.go | 9 +++++---- ...ecklistView-DKXicmT_.js => ChecklistView-BaObGek0.js} | 2 +- ...klistsView-Dp-c7CQV.js => ChecklistsView-C6uVihIb.js} | 2 +- .../{ConnectView-BhDLIdXT.js => ConnectView-DXTDXtb8.js} | 2 +- .../{CourseView-BnCC_Rx0.js => CourseView-DInOCNo3.js} | 2 +- .../{CoursesView-BNWw3Bxu.js => CoursesView-CInolXzZ.js} | 2 +- ...shboardView-DY3Afxmw.js => DashboardView-BL8ALiYs.js} | 2 +- ...adlinesView-Ca_SJNYR.js => DeadlinesView-BBWlRaTw.js} | 2 +- ...ckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js} | 6 +++--- ...eBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js} | 2 +- .../{ForgotView-B03msoeP.js => ForgotView-DBuEDps7.js} | 2 +- ...tate.vue_vue_type_script_setup_true_lang-QxHbC4UT.js} | 2 +- .../{LoginView-PuXzdmEY.js => LoginView-4kLADW98.js} | 2 +- ...MaterialView-DaN3Mhrq.js => MaterialView-BQihcwI-.js} | 2 +- ...terialsView-DpX8hmjT.js => MaterialsView-Cd7ekBUq.js} | 2 +- .../{MoreView-CDnNzqNs.js => MoreView-BOP30Fre.js} | 2 +- ...sView-sfZYImKG.js => MyPresentationsView-AURGskMI.js} | 2 +- ...NotFoundView-QVtbVJBJ.js => NotFoundView-BO0GMfPQ.js} | 2 +- ...ackView-Csl3jfGN.js => OAuthCallbackView-C9qJ7LV6.js} | 2 +- ...terView-duZxFWAp.js => OAuthRegisterView-CP2fNoWb.js} | 2 +- ...Head.vue_vue_type_script_setup_true_lang-CViv37Dt.js} | 2 +- ...ew-RtRTp6z0.js => PresentationPublicView-BxkUqRJW.js} | 2 +- ...ew-nYIsdRGZ.js => PresentationRemoteView-D4LTAFiH.js} | 2 +- ...w-CJRi1NtO.js => PresentationSpeakerView-4ASJ9Fw7.js} | 4 ++-- .../{ProfileView-B9o_fiMt.js => ProfileView-Cw1IkbJQ.js} | 2 +- .../{QuizView-6nKAWJcm.js => QuizView-V5rbG-HP.js} | 2 +- .../{QuizzesView-CS_US9WK.js => QuizzesView-BiZkQOtX.js} | 2 +- ...Item.vue_vue_type_script_setup_true_lang-rhNqWgeU.js} | 2 +- ...ReadingsView-Be4jxK3O.js => ReadingsView-BeAMdWZP.js} | 2 +- ...RegisterView-DtL0JXFF.js => RegisterView-DqKmtqer.js} | 2 +- .../{ResetView-DOA68WgQ.js => ResetView-D8GUOuU2.js} | 2 +- ...ScheduleView-BxzKXc4R.js => ScheduleView-DVYsjbSm.js} | 2 +- ...SpeakerTools-BwNWkwwQ.js => SpeakerTools-CNPhDdGp.js} | 2 +- .../{SyllabiView-COvVJGcR.js => SyllabiView-BTYt0LrL.js} | 2 +- public/assets/{forms-BEpVKSou.js => forms-L06yLYMm.js} | 2 +- public/assets/{index-DwX0tlPb.js => index-C7U0oIvN.js} | 4 ++-- ...esentations-AE-pigbL.js => presentations-CObEuepN.js} | 2 +- .../assets/{quizzes-BlBom-oJ.js => quizzes-ClZx_Cui.js} | 2 +- ...scrollToHash-CWWIxePp.js => scrollToHash-PZXPXyf9.js} | 2 +- public/index.html | 2 +- public/sw.js | 2 +- 42 files changed, 52 insertions(+), 48 deletions(-) rename public/assets/{ChecklistView-DKXicmT_.js => ChecklistView-BaObGek0.js} (97%) rename public/assets/{ChecklistsView-Dp-c7CQV.js => ChecklistsView-C6uVihIb.js} (92%) rename public/assets/{ConnectView-BhDLIdXT.js => ConnectView-DXTDXtb8.js} (98%) rename public/assets/{CourseView-BnCC_Rx0.js => CourseView-DInOCNo3.js} (95%) rename public/assets/{CoursesView-BNWw3Bxu.js => CoursesView-CInolXzZ.js} (89%) rename public/assets/{DashboardView-DY3Afxmw.js => DashboardView-BL8ALiYs.js} (99%) rename public/assets/{DeadlinesView-Ca_SJNYR.js => DeadlinesView-BBWlRaTw.js} (90%) rename public/assets/{DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js => DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js} (98%) rename public/assets/{ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js => ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js} (95%) rename public/assets/{ForgotView-B03msoeP.js => ForgotView-DBuEDps7.js} (92%) rename public/assets/{LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js => LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js} (90%) rename public/assets/{LoginView-PuXzdmEY.js => LoginView-4kLADW98.js} (95%) rename public/assets/{MaterialView-DaN3Mhrq.js => MaterialView-BQihcwI-.js} (91%) rename public/assets/{MaterialsView-DpX8hmjT.js => MaterialsView-Cd7ekBUq.js} (97%) rename public/assets/{MoreView-CDnNzqNs.js => MoreView-BOP30Fre.js} (93%) rename public/assets/{MyPresentationsView-sfZYImKG.js => MyPresentationsView-AURGskMI.js} (91%) rename public/assets/{NotFoundView-QVtbVJBJ.js => NotFoundView-BO0GMfPQ.js} (87%) rename public/assets/{OAuthCallbackView-Csl3jfGN.js => OAuthCallbackView-C9qJ7LV6.js} (92%) rename public/assets/{OAuthRegisterView-duZxFWAp.js => OAuthRegisterView-CP2fNoWb.js} (96%) rename public/assets/{PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js => PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js} (84%) rename public/assets/{PresentationPublicView-RtRTp6z0.js => PresentationPublicView-BxkUqRJW.js} (89%) rename public/assets/{PresentationRemoteView-nYIsdRGZ.js => PresentationRemoteView-D4LTAFiH.js} (99%) rename public/assets/{PresentationSpeakerView-CJRi1NtO.js => PresentationSpeakerView-4ASJ9Fw7.js} (97%) rename public/assets/{ProfileView-B9o_fiMt.js => ProfileView-Cw1IkbJQ.js} (98%) rename public/assets/{QuizView-6nKAWJcm.js => QuizView-V5rbG-HP.js} (97%) rename public/assets/{QuizzesView-CS_US9WK.js => QuizzesView-BiZkQOtX.js} (86%) rename public/assets/{ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js => ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js} (94%) rename public/assets/{ReadingsView-Be4jxK3O.js => ReadingsView-BeAMdWZP.js} (90%) rename public/assets/{RegisterView-DtL0JXFF.js => RegisterView-DqKmtqer.js} (98%) rename public/assets/{ResetView-DOA68WgQ.js => ResetView-D8GUOuU2.js} (97%) rename public/assets/{ScheduleView-BxzKXc4R.js => ScheduleView-DVYsjbSm.js} (93%) rename public/assets/{SpeakerTools-BwNWkwwQ.js => SpeakerTools-CNPhDdGp.js} (98%) rename public/assets/{SyllabiView-COvVJGcR.js => SyllabiView-BTYt0LrL.js} (94%) rename public/assets/{forms-BEpVKSou.js => forms-L06yLYMm.js} (85%) rename public/assets/{index-DwX0tlPb.js => index-C7U0oIvN.js} (89%) rename public/assets/{presentations-AE-pigbL.js => presentations-CObEuepN.js} (92%) rename public/assets/{quizzes-BlBom-oJ.js => quizzes-ClZx_Cui.js} (96%) rename public/assets/{scrollToHash-CWWIxePp.js => scrollToHash-PZXPXyf9.js} (89%) diff --git a/checklists_postgres_test.go b/checklists_postgres_test.go index a67145e..eb72f61 100644 --- a/checklists_postgres_test.go +++ b/checklists_postgres_test.go @@ -43,6 +43,9 @@ func TestChecklistsAgainstDatabase(t *testing.T) { created := obj(alice.want(http.StatusCreated, "POST", base+"/checklists", `{"title":"Zjazd 1","meeting_id":`+jsonID(meeting.ID)+`}`)["data"]) cid := id(created["id"]) + if items, ok := created["items"].([]any); !ok || len(items) != 0 { + t.Errorf("new checklist items = %v, want []", created["items"]) + } if obj(created["meeting"])["number"] != float64(meeting.Number) { t.Errorf("meeting = %v", created["meeting"]) } diff --git a/controllers/api/checklists.go b/controllers/api/checklists.go index bf69057..c5c15e8 100644 --- a/controllers/api/checklists.go +++ b/controllers/api/checklists.go @@ -72,7 +72,7 @@ type checklistJSON struct { Description *string `json:"description"` SortOrder int `json:"sort_order"` Progress checklistProgress `json:"progress"` - Items []checklistItemJSON `json:"items,omitempty"` + Items *[]checklistItemJSON `json:"items,omitempty"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` } @@ -319,10 +319,11 @@ func checklistsJSON(db *gorm.DB, userID uint, lists []models.Checklist, withItem item.Progress.add(it) } if withItems { - item.Items = items[c.ID] - if item.Items == nil { - item.Items = []checklistItemJSON{} + list := items[c.ID] + if list == nil { + list = []checklistItemJSON{} } + item.Items = &list } out = append(out, item) } diff --git a/public/assets/ChecklistView-DKXicmT_.js b/public/assets/ChecklistView-BaObGek0.js similarity index 97% rename from public/assets/ChecklistView-DKXicmT_.js rename to public/assets/ChecklistView-BaObGek0.js index 2ce16e8..c02ed51 100644 --- a/public/assets/ChecklistView-DKXicmT_.js +++ b/public/assets/ChecklistView-BaObGek0.js @@ -1 +1 @@ -import{d as J,ae as Y,o as ee,r as v,au as te,U as Z,n as a,c as o,h as se,b as t,w as h,as as S,F as C,E as U,t as r,e as p,av as Q,aw as le,ah as ae,v as P,f as d,ar as X,x as E,ax as ne,af as oe,i as N,j,D as ie,p as I,G as ue,ay as q,H as re,_ as A,s as T,C as de,a8 as ve,q as H,ap as K,l as me,m as pe,az as ce}from"./index-DwX0tlPb.js";import{_ as ye}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as ke}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{p as _e}from"./presentations-AE-pigbL.js";import{f as fe}from"./forms-BEpVKSou.js";const be={class:"form-grid"},ge={class:"field"},$e=["value"],he={class:"field"},ze=["value"],Ce={class:"field"},we={key:0,class:"error-text"},xe={class:"field"},je=["value"],Ie={class:"form-grid"},Ue={class:"field"},De=["value"],Ve={class:"field"},Ne=["value"],Te={class:"form-grid"},Ee={class:"field"},Le={class:"field"},Me={class:"field"},Re={class:"field"},Be={key:0,class:"notice error",role:"alert"},Se={class:"btn-row"},Pe=["disabled"],G=J({__name:"ChecklistItemForm",props:{item:{},meetingId:{},save:{type:Function}},emits:["done","cancel"],setup(F,{emit:W}){const c=F,O=W,f=Y(),i=v([]);ee(()=>{Promise.all([f.loadCourses(),f.loadReadings(),f.loadDeadlines()]),_e.mine().then(k=>i.value=k).catch(()=>{})});const _=c.item,b=v(_?.kind??"lektura"),y=v(_?.title??""),g=v(_?.course_id??""),$=v(_?.reading_id??""),w=v(_?.deadline_id??""),D=v(_?.presentation_slug??""),L=v(_?.estimate_minutes??""),M=v(te(_?.due_at??null)),R=v(_?.url??""),B=v(_?.notes??""),V=v(""),u=v({}),n=v(!1),x=E(()=>[...f.allReadings.filter(e=>g.value===""||e.course_id===g.value)].sort((e,s)=>+(s.meeting_id===c.meetingId)-+(e.meeting_id===c.meetingId))),m=E(()=>f.deadlines.filter(k=>g.value===""||k.course_id===g.value||k.course_id===null));Z($,k=>{const e=f.allReadings.find(s=>s.id===k);e&&(y.value.trim()||(y.value=e.author?`${e.author}, ${e.title}`:e.title),g.value===""&&(g.value=e.course_id))}),Z(D,k=>{const e=i.value.find(s=>s.slug===k);e&&!y.value.trim()&&(y.value=`Prezentacja: ${e.title}`),e&&(b.value="prezentacja")});const l=k=>k===""?null:k;async function z(){n.value=!0,V.value="",u.value={};try{await c.save({kind:b.value,title:y.value.trim(),course_id:l(g.value),reading_id:l($.value),deadline_id:l(w.value),presentation_slug:D.value||null,estimate_minutes:l(L.value),due_at:ne(M.value),url:R.value.trim()||null,notes:B.value.trim()||null}),O("done")}catch(k){const e=fe(k);u.value=e.fields,V.value=e.message||Object.values(e.fields)[0]||""}finally{n.value=!1}}return(k,e)=>(a(),o("form",{class:"card item-form",onSubmit:se(z,["prevent"])},[t("div",be,[t("div",ge,[e[11]||(e[11]=t("label",{for:"it-kind"},"Rodzaj",-1)),h(t("select",{id:"it-kind","onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s)},[(a(!0),o(C,null,U(p(le),s=>(a(),o("option",{key:s,value:s},r(p(Q)[s]),9,$e))),128))],512),[[S,b.value]])]),t("div",he,[e[13]||(e[13]=t("label",{for:"it-course"},"Przedmiot",-1)),h(t("select",{id:"it-course","onUpdate:modelValue":e[1]||(e[1]=s=>g.value=s)},[e[12]||(e[12]=t("option",{value:""},"ogólne",-1)),(a(!0),o(C,null,U(p(f).visibleCourses,s=>(a(),o("option",{key:s.id,value:s.id},r(s.name)+" ("+r(p(ae)[s.form])+")",9,ze))),128))],512),[[S,g.value]])])]),t("div",Ce,[e[14]||(e[14]=t("label",{for:"it-title"},"Co",-1)),h(t("input",{id:"it-title","onUpdate:modelValue":e[2]||(e[2]=s=>y.value=s),type:"text",required:"",maxlength:"500"},null,512),[[P,y.value]]),u.value.title?(a(),o("small",we,r(u.value.title),1)):d("",!0)]),t("div",xe,[e[16]||(e[16]=t("label",{for:"it-reading"},"Lektura z listy (odhaczenie = przeczytana)",-1)),h(t("select",{id:"it-reading","onUpdate:modelValue":e[3]||(e[3]=s=>$.value=s)},[e[15]||(e[15]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(x.value,s=>(a(),o("option",{key:s.id,value:s.id},r(s.author?s.author+", ":"")+r(s.title),9,je))),128))],512),[[S,$.value]])]),t("div",Ie,[t("div",Ue,[e[18]||(e[18]=t("label",{for:"it-deadline"},"Termin",-1)),h(t("select",{id:"it-deadline","onUpdate:modelValue":e[4]||(e[4]=s=>w.value=s)},[e[17]||(e[17]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(m.value,s=>(a(),o("option",{key:s.id,value:s.id},r(p(X)(s.due_at))+" · "+r(s.title),9,De))),128))],512),[[S,w.value]])]),t("div",Ve,[e[20]||(e[20]=t("label",{for:"it-deck"},"Moja prezentacja",-1)),h(t("select",{id:"it-deck","onUpdate:modelValue":e[5]||(e[5]=s=>D.value=s)},[e[19]||(e[19]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(i.value,s=>(a(),o("option",{key:s.slug,value:s.slug},r(s.title),9,Ne))),128))],512),[[S,D.value]])])]),t("div",Te,[t("div",Ee,[e[21]||(e[21]=t("label",{for:"it-est"},"Szacowany czas (min)",-1)),h(t("input",{id:"it-est","onUpdate:modelValue":e[6]||(e[6]=s=>L.value=s),type:"number",min:"0",max:"10000",step:"5",inputmode:"numeric"},null,512),[[P,L.value,void 0,{number:!0}]])]),t("div",Le,[e[22]||(e[22]=t("label",{for:"it-due"},"Zrobić do",-1)),h(t("input",{id:"it-due","onUpdate:modelValue":e[7]||(e[7]=s=>M.value=s),type:"datetime-local"},null,512),[[P,M.value]])])]),t("div",Me,[e[23]||(e[23]=t("label",{for:"it-url"},"Link",-1)),h(t("input",{id:"it-url","onUpdate:modelValue":e[8]||(e[8]=s=>R.value=s),type:"text",inputmode:"url",maxlength:"2048"},null,512),[[P,R.value]])]),t("div",Re,[e[24]||(e[24]=t("label",{for:"it-notes"},"Notatki",-1)),h(t("textarea",{id:"it-notes","onUpdate:modelValue":e[9]||(e[9]=s=>B.value=s),rows:"3",maxlength:"10000"},null,512),[[P,B.value]])]),V.value?(a(),o("p",Be,r(V.value),1)):d("",!0),t("div",Se,[t("button",{class:"btn primary",type:"submit",disabled:n.value||!y.value.trim()},r(F.item?"Zapisz":"Dodaj"),9,Pe),t("button",{class:"btn ghost",type:"button",onClick:e[10]||(e[10]=s=>O("cancel"))},"Anuluj")])],32))}}),Fe={class:"card","aria-label":"Postęp"},Oe={style:{margin:"0 0 8px"}},We={class:"big-num nums"},Ae={class:"muted"},Ze={key:0,class:"muted small"},qe=["aria-valuenow"],He={key:0,class:"muted small",style:{margin:"10px 0 0","white-space":"pre-line"}},Ke={class:"chips wrap",style:{"margin-top":"12px"}},Ge=["aria-pressed"],Je=["aria-pressed"],Qe=["aria-label"],Xe={key:0,class:"section-head"},Ye={class:"muted small nums"},et={class:"rows"},tt=["checked","onChange"],st={class:"text"},lt={class:"badge"},at={key:0,class:"muted nums"},nt={key:2,class:"muted mono"},ot={key:3,class:"item-notes muted small"},it={class:"item-links small"},ut=["href"],rt={class:"item-actions"},dt=["aria-label","onClick"],vt=["aria-label","onClick"],mt=["aria-label","onClick"],pt=["aria-label","onClick"],ct={key:1,class:"empty",style:{"margin-top":"16px"}},yt={key:2,class:"empty",style:{"margin-top":"16px"}},$t=J({__name:"ChecklistView",props:{id:{}},setup(F){const W=F,c=oe(),O=pe(),f=E(()=>Number(W.id));Z(f,u=>{c.loadOne(u)},{immediate:!0});const i=E(()=>c.details[f.value]??null),_=E(()=>i.value?.items??[]),b=v(!1),y=v(!0),g=E(()=>{const u=_.value.filter(n=>!b.value||!n.done);return y.value?ce(u):[{key:"all",label:"",items:u}]}),$=v(!1),w=v(null),D=u=>c.addItem(f.value,u),L=u=>n=>c.updateItem(u,n);async function M(u){if(window.confirm(`Usunąć „${u.title}”?`))try{await c.removeItem(u)}catch(n){H().show(`Nie udało się usunąć. ${K(n)}`)}}async function R(){if(!(!i.value||!window.confirm(`Usunąć checklistę „${i.value.title}” ze wszystkimi pozycjami?`)))try{await c.remove(i.value.id),await O.push("/checklisty")}catch(u){H().show(`Nie udało się usunąć. ${K(u)}`)}}const B=u=>`/moje-prezentacje/${encodeURIComponent(u)}`,V=u=>!u.done&&u.due_at!==null&&Date.parse(u.due_at){const x=me("router-link");return a(),o("div",null,[N(ye,{eyebrow:i.value?.meeting?`Zjazd ${i.value.meeting.number} · ${p(ie)(i.value.meeting.starts_on,i.value.meeting.ends_on)}`:"Checklista",title:i.value?.title??"Checklista"},{default:j(()=>[N(x,{class:"btn ghost small",to:"/checklisty"},{default:j(()=>[...n[8]||(n[8]=[I("Wszystkie",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),N(ke,{ready:!!i.value,error:p(c).detailError,onRetry:n[7]||(n[7]=m=>p(c).loadOne(f.value))},{default:j(()=>[i.value?(a(),o(C,{key:0},[t("section",Fe,[t("p",Oe,[t("span",We,r(i.value.progress.percent)+"%",1),t("span",Ae," · "+r(p(ue)(i.value.progress)),1),i.value.progress.minutes_total?(a(),o("span",Ze," · razem "+r(p(q)(i.value.progress.minutes_total)),1)):d("",!0)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":i.value.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Zrobione pozycje"},[t("span",{style:re({width:i.value.progress.percent+"%"})},null,4)],8,qe),i.value.description?(a(),o("p",He,r(i.value.description),1)):d("",!0)]),t("div",Ke,[t("button",{class:"chip",type:"button","aria-pressed":b.value,onClick:n[0]||(n[0]=m=>b.value=!b.value)},"Tylko do zrobienia",8,Ge),t("button",{class:"chip",type:"button","aria-pressed":y.value,onClick:n[1]||(n[1]=m=>y.value=!y.value)},"Wg przedmiotów",8,Je),$.value?d("",!0):(a(),o("button",{key:0,class:"chip",type:"button",onClick:n[2]||(n[2]=m=>$.value=!0)},[N(A,{name:"plus",class:"chip-icon"}),n[9]||(n[9]=I(" Dodaj pozycję",-1))]))]),$.value?(a(),T(G,{key:0,style:{"margin-top":"12px"},"meeting-id":i.value.meeting_id,save:D,onDone:n[3]||(n[3]=m=>$.value=!1),onCancel:n[4]||(n[4]=m=>$.value=!1)},null,8,["meeting-id"])):d("",!0),(a(!0),o(C,null,U(g.value,m=>(a(),o("section",{key:m.key,class:"section","aria-label":m.label||"Pozycje"},[m.label?(a(),o("div",Xe,[t("h2",null,r(m.label),1),t("span",Ye,r(m.items.filter(l=>l.done).length)+"/"+r(m.items.length),1)])):d("",!0),t("ul",et,[(a(!0),o(C,null,U(m.items,l=>(a(),o("li",{key:l.id,class:"reading checklist-item"},[w.value===l.id?(a(),T(G,{key:0,class:"grow",item:l,"meeting-id":i.value.meeting_id,save:L(l),onDone:n[5]||(n[5]=z=>w.value=null),onCancel:n[6]||(n[6]=z=>w.value=null)},null,8,["item","meeting-id","save"])):(a(),o(C,{key:1},[t("label",null,[t("input",{type:"checkbox",checked:l.done,onChange:z=>p(c).toggle(l,z.target.checked)},null,40,tt),t("span",st,[t("span",lt,r(p(Q)[l.kind]),1),I(" "+r(l.title)+" ",1),l.estimate_minutes?(a(),o("small",at," · "+r(p(q)(l.estimate_minutes)),1)):d("",!0),l.due_at?(a(),o("small",{key:1,class:de(["mono",V(l)?"error-text":"muted"])}," · do "+r(p(ve)(l.due_at)),3)):d("",!0),l.done_at?(a(),o("small",nt," · zrobione "+r(p(X)(l.done_at)),1)):d("",!0),l.notes?(a(),o("span",ot,r(l.notes),1)):d("",!0)])]),t("span",it,[l.reading?(a(),T(x,{key:0,to:`/lektury#lektura-${l.reading.id}`},{default:j(()=>[...n[10]||(n[10]=[I("lektura",-1)])]),_:1},8,["to"])):d("",!0),l.deadline?(a(),T(x,{key:1,to:"/terminarz",title:l.deadline.title},{default:j(()=>[...n[11]||(n[11]=[I("termin",-1)])]),_:1},8,["title"])):d("",!0),l.material?(a(),T(x,{key:2,to:`/materialy/${l.material.id}`},{default:j(()=>[...n[12]||(n[12]=[I("materiał",-1)])]),_:1},8,["to"])):d("",!0),l.presentation?(a(),T(x,{key:3,to:B(l.presentation.slug)},{default:j(()=>[...n[13]||(n[13]=[I("talia",-1)])]),_:1},8,["to"])):d("",!0),l.url?(a(),o("a",{key:4,href:l.url,target:"_blank",rel:"noopener noreferrer"},"link",8,ut)):d("",!0)]),t("span",rt,[!y.value&&!b.value?(a(),o("button",{key:0,class:"icon-btn",type:"button","aria-label":`W górę: ${l.title}`,onClick:z=>p(c).move(l,-1)},"↑",8,dt)):d("",!0),!y.value&&!b.value?(a(),o("button",{key:1,class:"icon-btn",type:"button","aria-label":`W dół: ${l.title}`,onClick:z=>p(c).move(l,1)},"↓",8,vt)):d("",!0),t("button",{class:"icon-btn",type:"button","aria-label":`Edytuj: ${l.title}`,onClick:z=>w.value=l.id},[N(A,{name:"pencil"})],8,mt),t("button",{class:"icon-btn",type:"button","aria-label":`Usuń: ${l.title}`,onClick:z=>M(l)},[N(A,{name:"trash"})],8,pt)])],64))]))),128))])],8,Qe))),128)),_.value.length?b.value&&!g.value.some(m=>m.items.length)?(a(),o("p",yt,"Wszystko zrobione.")):d("",!0):(a(),o("p",ct,"Pusto. Dodaj lektury, artykuły, prezentacje i zadania na ten zjazd.")),t("div",{class:"btn-row",style:{"margin-top":"24px"}},[t("button",{class:"btn miss small",type:"button",onClick:R},"Usuń checklistę")])],64)):d("",!0)]),_:1},8,["ready","error"])])}}});export{$t as default}; +import{d as J,ae as Y,o as ee,r as v,au as te,U as Z,n as a,c as o,h as se,b as t,w as h,as as S,F as C,E as U,t as r,e as p,av as Q,aw as le,ah as ae,v as P,f as d,ar as X,x as E,ax as ne,af as oe,i as N,j,D as ie,p as I,G as ue,ay as q,H as re,_ as A,s as T,C as de,a8 as ve,q as H,ap as K,l as me,m as pe,az as ce}from"./index-C7U0oIvN.js";import{_ as ye}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as ke}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{p as _e}from"./presentations-CObEuepN.js";import{f as fe}from"./forms-L06yLYMm.js";const be={class:"form-grid"},ge={class:"field"},$e=["value"],he={class:"field"},ze=["value"],Ce={class:"field"},we={key:0,class:"error-text"},xe={class:"field"},je=["value"],Ie={class:"form-grid"},Ue={class:"field"},De=["value"],Ve={class:"field"},Ne=["value"],Te={class:"form-grid"},Ee={class:"field"},Le={class:"field"},Me={class:"field"},Re={class:"field"},Be={key:0,class:"notice error",role:"alert"},Se={class:"btn-row"},Pe=["disabled"],G=J({__name:"ChecklistItemForm",props:{item:{},meetingId:{},save:{type:Function}},emits:["done","cancel"],setup(F,{emit:W}){const c=F,O=W,f=Y(),i=v([]);ee(()=>{Promise.all([f.loadCourses(),f.loadReadings(),f.loadDeadlines()]),_e.mine().then(k=>i.value=k).catch(()=>{})});const _=c.item,b=v(_?.kind??"lektura"),y=v(_?.title??""),g=v(_?.course_id??""),$=v(_?.reading_id??""),w=v(_?.deadline_id??""),D=v(_?.presentation_slug??""),L=v(_?.estimate_minutes??""),M=v(te(_?.due_at??null)),R=v(_?.url??""),B=v(_?.notes??""),V=v(""),u=v({}),n=v(!1),x=E(()=>[...f.allReadings.filter(e=>g.value===""||e.course_id===g.value)].sort((e,s)=>+(s.meeting_id===c.meetingId)-+(e.meeting_id===c.meetingId))),m=E(()=>f.deadlines.filter(k=>g.value===""||k.course_id===g.value||k.course_id===null));Z($,k=>{const e=f.allReadings.find(s=>s.id===k);e&&(y.value.trim()||(y.value=e.author?`${e.author}, ${e.title}`:e.title),g.value===""&&(g.value=e.course_id))}),Z(D,k=>{const e=i.value.find(s=>s.slug===k);e&&!y.value.trim()&&(y.value=`Prezentacja: ${e.title}`),e&&(b.value="prezentacja")});const l=k=>k===""?null:k;async function z(){n.value=!0,V.value="",u.value={};try{await c.save({kind:b.value,title:y.value.trim(),course_id:l(g.value),reading_id:l($.value),deadline_id:l(w.value),presentation_slug:D.value||null,estimate_minutes:l(L.value),due_at:ne(M.value),url:R.value.trim()||null,notes:B.value.trim()||null}),O("done")}catch(k){const e=fe(k);u.value=e.fields,V.value=e.message||Object.values(e.fields)[0]||""}finally{n.value=!1}}return(k,e)=>(a(),o("form",{class:"card item-form",onSubmit:se(z,["prevent"])},[t("div",be,[t("div",ge,[e[11]||(e[11]=t("label",{for:"it-kind"},"Rodzaj",-1)),h(t("select",{id:"it-kind","onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s)},[(a(!0),o(C,null,U(p(le),s=>(a(),o("option",{key:s,value:s},r(p(Q)[s]),9,$e))),128))],512),[[S,b.value]])]),t("div",he,[e[13]||(e[13]=t("label",{for:"it-course"},"Przedmiot",-1)),h(t("select",{id:"it-course","onUpdate:modelValue":e[1]||(e[1]=s=>g.value=s)},[e[12]||(e[12]=t("option",{value:""},"ogólne",-1)),(a(!0),o(C,null,U(p(f).visibleCourses,s=>(a(),o("option",{key:s.id,value:s.id},r(s.name)+" ("+r(p(ae)[s.form])+")",9,ze))),128))],512),[[S,g.value]])])]),t("div",Ce,[e[14]||(e[14]=t("label",{for:"it-title"},"Co",-1)),h(t("input",{id:"it-title","onUpdate:modelValue":e[2]||(e[2]=s=>y.value=s),type:"text",required:"",maxlength:"500"},null,512),[[P,y.value]]),u.value.title?(a(),o("small",we,r(u.value.title),1)):d("",!0)]),t("div",xe,[e[16]||(e[16]=t("label",{for:"it-reading"},"Lektura z listy (odhaczenie = przeczytana)",-1)),h(t("select",{id:"it-reading","onUpdate:modelValue":e[3]||(e[3]=s=>$.value=s)},[e[15]||(e[15]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(x.value,s=>(a(),o("option",{key:s.id,value:s.id},r(s.author?s.author+", ":"")+r(s.title),9,je))),128))],512),[[S,$.value]])]),t("div",Ie,[t("div",Ue,[e[18]||(e[18]=t("label",{for:"it-deadline"},"Termin",-1)),h(t("select",{id:"it-deadline","onUpdate:modelValue":e[4]||(e[4]=s=>w.value=s)},[e[17]||(e[17]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(m.value,s=>(a(),o("option",{key:s.id,value:s.id},r(p(X)(s.due_at))+" · "+r(s.title),9,De))),128))],512),[[S,w.value]])]),t("div",Ve,[e[20]||(e[20]=t("label",{for:"it-deck"},"Moja prezentacja",-1)),h(t("select",{id:"it-deck","onUpdate:modelValue":e[5]||(e[5]=s=>D.value=s)},[e[19]||(e[19]=t("option",{value:""},"brak",-1)),(a(!0),o(C,null,U(i.value,s=>(a(),o("option",{key:s.slug,value:s.slug},r(s.title),9,Ne))),128))],512),[[S,D.value]])])]),t("div",Te,[t("div",Ee,[e[21]||(e[21]=t("label",{for:"it-est"},"Szacowany czas (min)",-1)),h(t("input",{id:"it-est","onUpdate:modelValue":e[6]||(e[6]=s=>L.value=s),type:"number",min:"0",max:"10000",step:"5",inputmode:"numeric"},null,512),[[P,L.value,void 0,{number:!0}]])]),t("div",Le,[e[22]||(e[22]=t("label",{for:"it-due"},"Zrobić do",-1)),h(t("input",{id:"it-due","onUpdate:modelValue":e[7]||(e[7]=s=>M.value=s),type:"datetime-local"},null,512),[[P,M.value]])])]),t("div",Me,[e[23]||(e[23]=t("label",{for:"it-url"},"Link",-1)),h(t("input",{id:"it-url","onUpdate:modelValue":e[8]||(e[8]=s=>R.value=s),type:"text",inputmode:"url",maxlength:"2048"},null,512),[[P,R.value]])]),t("div",Re,[e[24]||(e[24]=t("label",{for:"it-notes"},"Notatki",-1)),h(t("textarea",{id:"it-notes","onUpdate:modelValue":e[9]||(e[9]=s=>B.value=s),rows:"3",maxlength:"10000"},null,512),[[P,B.value]])]),V.value?(a(),o("p",Be,r(V.value),1)):d("",!0),t("div",Se,[t("button",{class:"btn primary",type:"submit",disabled:n.value||!y.value.trim()},r(F.item?"Zapisz":"Dodaj"),9,Pe),t("button",{class:"btn ghost",type:"button",onClick:e[10]||(e[10]=s=>O("cancel"))},"Anuluj")])],32))}}),Fe={class:"card","aria-label":"Postęp"},Oe={style:{margin:"0 0 8px"}},We={class:"big-num nums"},Ae={class:"muted"},Ze={key:0,class:"muted small"},qe=["aria-valuenow"],He={key:0,class:"muted small",style:{margin:"10px 0 0","white-space":"pre-line"}},Ke={class:"chips wrap",style:{"margin-top":"12px"}},Ge=["aria-pressed"],Je=["aria-pressed"],Qe=["aria-label"],Xe={key:0,class:"section-head"},Ye={class:"muted small nums"},et={class:"rows"},tt=["checked","onChange"],st={class:"text"},lt={class:"badge"},at={key:0,class:"muted nums"},nt={key:2,class:"muted mono"},ot={key:3,class:"item-notes muted small"},it={class:"item-links small"},ut=["href"],rt={class:"item-actions"},dt=["aria-label","onClick"],vt=["aria-label","onClick"],mt=["aria-label","onClick"],pt=["aria-label","onClick"],ct={key:1,class:"empty",style:{"margin-top":"16px"}},yt={key:2,class:"empty",style:{"margin-top":"16px"}},$t=J({__name:"ChecklistView",props:{id:{}},setup(F){const W=F,c=oe(),O=pe(),f=E(()=>Number(W.id));Z(f,u=>{c.loadOne(u)},{immediate:!0});const i=E(()=>c.details[f.value]??null),_=E(()=>i.value?.items??[]),b=v(!1),y=v(!0),g=E(()=>{const u=_.value.filter(n=>!b.value||!n.done);return y.value?ce(u):[{key:"all",label:"",items:u}]}),$=v(!1),w=v(null),D=u=>c.addItem(f.value,u),L=u=>n=>c.updateItem(u,n);async function M(u){if(window.confirm(`Usunąć „${u.title}”?`))try{await c.removeItem(u)}catch(n){H().show(`Nie udało się usunąć. ${K(n)}`)}}async function R(){if(!(!i.value||!window.confirm(`Usunąć checklistę „${i.value.title}” ze wszystkimi pozycjami?`)))try{await c.remove(i.value.id),await O.push("/checklisty")}catch(u){H().show(`Nie udało się usunąć. ${K(u)}`)}}const B=u=>`/moje-prezentacje/${encodeURIComponent(u)}`,V=u=>!u.done&&u.due_at!==null&&Date.parse(u.due_at){const x=me("router-link");return a(),o("div",null,[N(ye,{eyebrow:i.value?.meeting?`Zjazd ${i.value.meeting.number} · ${p(ie)(i.value.meeting.starts_on,i.value.meeting.ends_on)}`:"Checklista",title:i.value?.title??"Checklista"},{default:j(()=>[N(x,{class:"btn ghost small",to:"/checklisty"},{default:j(()=>[...n[8]||(n[8]=[I("Wszystkie",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),N(ke,{ready:!!i.value,error:p(c).detailError,onRetry:n[7]||(n[7]=m=>p(c).loadOne(f.value))},{default:j(()=>[i.value?(a(),o(C,{key:0},[t("section",Fe,[t("p",Oe,[t("span",We,r(i.value.progress.percent)+"%",1),t("span",Ae," · "+r(p(ue)(i.value.progress)),1),i.value.progress.minutes_total?(a(),o("span",Ze," · razem "+r(p(q)(i.value.progress.minutes_total)),1)):d("",!0)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":i.value.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Zrobione pozycje"},[t("span",{style:re({width:i.value.progress.percent+"%"})},null,4)],8,qe),i.value.description?(a(),o("p",He,r(i.value.description),1)):d("",!0)]),t("div",Ke,[t("button",{class:"chip",type:"button","aria-pressed":b.value,onClick:n[0]||(n[0]=m=>b.value=!b.value)},"Tylko do zrobienia",8,Ge),t("button",{class:"chip",type:"button","aria-pressed":y.value,onClick:n[1]||(n[1]=m=>y.value=!y.value)},"Wg przedmiotów",8,Je),$.value?d("",!0):(a(),o("button",{key:0,class:"chip",type:"button",onClick:n[2]||(n[2]=m=>$.value=!0)},[N(A,{name:"plus",class:"chip-icon"}),n[9]||(n[9]=I(" Dodaj pozycję",-1))]))]),$.value?(a(),T(G,{key:0,style:{"margin-top":"12px"},"meeting-id":i.value.meeting_id,save:D,onDone:n[3]||(n[3]=m=>$.value=!1),onCancel:n[4]||(n[4]=m=>$.value=!1)},null,8,["meeting-id"])):d("",!0),(a(!0),o(C,null,U(g.value,m=>(a(),o("section",{key:m.key,class:"section","aria-label":m.label||"Pozycje"},[m.label?(a(),o("div",Xe,[t("h2",null,r(m.label),1),t("span",Ye,r(m.items.filter(l=>l.done).length)+"/"+r(m.items.length),1)])):d("",!0),t("ul",et,[(a(!0),o(C,null,U(m.items,l=>(a(),o("li",{key:l.id,class:"reading checklist-item"},[w.value===l.id?(a(),T(G,{key:0,class:"grow",item:l,"meeting-id":i.value.meeting_id,save:L(l),onDone:n[5]||(n[5]=z=>w.value=null),onCancel:n[6]||(n[6]=z=>w.value=null)},null,8,["item","meeting-id","save"])):(a(),o(C,{key:1},[t("label",null,[t("input",{type:"checkbox",checked:l.done,onChange:z=>p(c).toggle(l,z.target.checked)},null,40,tt),t("span",st,[t("span",lt,r(p(Q)[l.kind]),1),I(" "+r(l.title)+" ",1),l.estimate_minutes?(a(),o("small",at," · "+r(p(q)(l.estimate_minutes)),1)):d("",!0),l.due_at?(a(),o("small",{key:1,class:de(["mono",V(l)?"error-text":"muted"])}," · do "+r(p(ve)(l.due_at)),3)):d("",!0),l.done_at?(a(),o("small",nt," · zrobione "+r(p(X)(l.done_at)),1)):d("",!0),l.notes?(a(),o("span",ot,r(l.notes),1)):d("",!0)])]),t("span",it,[l.reading?(a(),T(x,{key:0,to:`/lektury#lektura-${l.reading.id}`},{default:j(()=>[...n[10]||(n[10]=[I("lektura",-1)])]),_:1},8,["to"])):d("",!0),l.deadline?(a(),T(x,{key:1,to:"/terminarz",title:l.deadline.title},{default:j(()=>[...n[11]||(n[11]=[I("termin",-1)])]),_:1},8,["title"])):d("",!0),l.material?(a(),T(x,{key:2,to:`/materialy/${l.material.id}`},{default:j(()=>[...n[12]||(n[12]=[I("materiał",-1)])]),_:1},8,["to"])):d("",!0),l.presentation?(a(),T(x,{key:3,to:B(l.presentation.slug)},{default:j(()=>[...n[13]||(n[13]=[I("talia",-1)])]),_:1},8,["to"])):d("",!0),l.url?(a(),o("a",{key:4,href:l.url,target:"_blank",rel:"noopener noreferrer"},"link",8,ut)):d("",!0)]),t("span",rt,[!y.value&&!b.value?(a(),o("button",{key:0,class:"icon-btn",type:"button","aria-label":`W górę: ${l.title}`,onClick:z=>p(c).move(l,-1)},"↑",8,dt)):d("",!0),!y.value&&!b.value?(a(),o("button",{key:1,class:"icon-btn",type:"button","aria-label":`W dół: ${l.title}`,onClick:z=>p(c).move(l,1)},"↓",8,vt)):d("",!0),t("button",{class:"icon-btn",type:"button","aria-label":`Edytuj: ${l.title}`,onClick:z=>w.value=l.id},[N(A,{name:"pencil"})],8,mt),t("button",{class:"icon-btn",type:"button","aria-label":`Usuń: ${l.title}`,onClick:z=>M(l)},[N(A,{name:"trash"})],8,pt)])],64))]))),128))])],8,Qe))),128)),_.value.length?b.value&&!g.value.some(m=>m.items.length)?(a(),o("p",yt,"Wszystko zrobione.")):d("",!0):(a(),o("p",ct,"Pusto. Dodaj lektury, artykuły, prezentacje i zadania na ten zjazd.")),t("div",{class:"btn-row",style:{"margin-top":"24px"}},[t("button",{class:"btn miss small",type:"button",onClick:R},"Usuń checklistę")])],64)):d("",!0)]),_:1},8,["ready","error"])])}}});export{$t as default}; diff --git a/public/assets/ChecklistsView-Dp-c7CQV.js b/public/assets/ChecklistsView-C6uVihIb.js similarity index 92% rename from public/assets/ChecklistsView-Dp-c7CQV.js rename to public/assets/ChecklistsView-C6uVihIb.js index a000b7e..8db2e04 100644 --- a/public/assets/ChecklistsView-Dp-c7CQV.js +++ b/public/assets/ChecklistsView-C6uVihIb.js @@ -1 +1 @@ -import{d as B,ae as N,af as Z,o as E,c as o,i as b,j as g,h as S,b as s,w as k,as as U,F as z,E as w,e as d,v as D,t as r,f as c,x as h,r as v,n as l,D as j,s as L,H as P,G as R,l as T,m as F}from"./index-DwX0tlPb.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{f as G}from"./forms-BEpVKSou.js";const H={class:"field"},I=["value"],J={class:"field"},K={key:0,class:"notice error",role:"alert"},O={class:"btn-row"},Q=["disabled"],W={class:"stack"},X={class:"row-main"},Y={key:0,class:"muted small"},ee={class:"big-num nums"},te=["aria-valuenow","aria-label"],se={class:"muted small nums"},ae={key:0,class:"empty"},ue=B({__name:"ChecklistsView",setup(le){const _=N(),i=Z(),x=F();E(()=>{Promise.all([i.loadList(),_.loadMeetings()])});const C=h(()=>i.list!==null),y=h(()=>[...i.list??[]].sort((a,t)=>a.sort_order-t.sort_order||a.id-t.id)),m=v(!1),n=v(""),u=v(""),f=v(!1),p=v("");function $(){const a=_.meetings?.find(t=>t.id===u.value);a&&(!n.value||/^Zjazd \d+$/.test(n.value))&&(n.value=`Zjazd ${a.number}`)}async function M(){f.value=!0,p.value="";try{const a=await i.create({title:n.value,meeting_id:u.value===""?null:u.value});m.value=!1,n.value="",u.value="",await x.push(`/checklisty/${a.id}`)}catch(a){p.value=G(a).message}finally{f.value=!1}}return(a,t)=>{const V=T("router-link");return l(),o("div",null,[b(q,{eyebrow:"Przygotowanie do zjazdów",title:"Checklisty"},{default:g(()=>[m.value?c("",!0):(l(),o("button",{key:0,class:"btn primary small",type:"button",onClick:t[0]||(t[0]=e=>m.value=!0)},"Nowa"))]),_:1}),m.value?(l(),o("form",{key:0,class:"card",style:{"margin-bottom":"16px"},onSubmit:S(M,["prevent"])},[s("div",H,[t[6]||(t[6]=s("label",{for:"cl-meeting"},"Zjazd",-1)),k(s("select",{id:"cl-meeting","onUpdate:modelValue":t[1]||(t[1]=e=>u.value=e),onChange:$},[t[5]||(t[5]=s("option",{value:""},"bez zjazdu",-1)),(l(!0),o(z,null,w(d(_).meetings??[],e=>(l(),o("option",{key:e.id,value:e.id},"Zjazd "+r(e.number)+" · "+r(d(j)(e.starts_on,e.ends_on)),9,I))),128))],544),[[U,u.value]])]),s("div",J,[t[7]||(t[7]=s("label",{for:"cl-title"},"Tytuł",-1)),k(s("input",{id:"cl-title","onUpdate:modelValue":t[2]||(t[2]=e=>n.value=e),type:"text",required:"",maxlength:"255"},null,512),[[D,n.value]])]),p.value?(l(),o("p",K,r(p.value),1)):c("",!0),s("div",O,[s("button",{class:"btn primary",type:"submit",disabled:f.value||!n.value.trim()},"Utwórz",8,Q),s("button",{class:"btn ghost",type:"button",onClick:t[3]||(t[3]=e=>m.value=!1)},"Anuluj")])],32)):c("",!0),b(A,{ready:C.value,error:d(i).listError,onRetry:t[4]||(t[4]=e=>d(i).loadList())},{default:g(()=>[s("div",W,[(l(!0),o(z,null,w(y.value,e=>(l(),L(V,{key:e.id,to:`/checklisty/${e.id}`,class:"card link checklist-card"},{default:g(()=>[s("div",X,[s("div",null,[s("h3",null,r(e.title),1),e.meeting?(l(),o("span",Y,"Zjazd "+r(e.meeting.number)+" · "+r(d(j)(e.meeting.starts_on,e.meeting.ends_on)),1)):c("",!0)]),s("span",ee,r(e.progress.percent)+"%",1)]),s("div",{class:"progress-bar",role:"progressbar","aria-valuenow":e.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":`Postęp: ${e.title}`},[s("span",{style:P({width:e.progress.percent+"%"})},null,4)],8,te),s("span",se,r(d(R)(e.progress)),1)]),_:2},1032,["to"]))),128))]),y.value.length?c("",!0):(l(),o("p",ae,"Nie masz jeszcze checklist. Utwórz pierwszą, np. na najbliższy zjazd."))]),_:1},8,["ready","error"])])}}});export{ue as default}; +import{d as B,ae as N,af as Z,o as E,c as o,i as b,j as g,h as S,b as s,w as k,as as U,F as z,E as w,e as d,v as D,t as r,f as c,x as h,r as v,n as l,D as j,s as L,H as P,G as R,l as T,m as F}from"./index-C7U0oIvN.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{f as G}from"./forms-L06yLYMm.js";const H={class:"field"},I=["value"],J={class:"field"},K={key:0,class:"notice error",role:"alert"},O={class:"btn-row"},Q=["disabled"],W={class:"stack"},X={class:"row-main"},Y={key:0,class:"muted small"},ee={class:"big-num nums"},te=["aria-valuenow","aria-label"],se={class:"muted small nums"},ae={key:0,class:"empty"},ue=B({__name:"ChecklistsView",setup(le){const _=N(),i=Z(),x=F();E(()=>{Promise.all([i.loadList(),_.loadMeetings()])});const C=h(()=>i.list!==null),y=h(()=>[...i.list??[]].sort((a,t)=>a.sort_order-t.sort_order||a.id-t.id)),m=v(!1),n=v(""),u=v(""),f=v(!1),p=v("");function $(){const a=_.meetings?.find(t=>t.id===u.value);a&&(!n.value||/^Zjazd \d+$/.test(n.value))&&(n.value=`Zjazd ${a.number}`)}async function M(){f.value=!0,p.value="";try{const a=await i.create({title:n.value,meeting_id:u.value===""?null:u.value});m.value=!1,n.value="",u.value="",await x.push(`/checklisty/${a.id}`)}catch(a){p.value=G(a).message}finally{f.value=!1}}return(a,t)=>{const V=T("router-link");return l(),o("div",null,[b(q,{eyebrow:"Przygotowanie do zjazdów",title:"Checklisty"},{default:g(()=>[m.value?c("",!0):(l(),o("button",{key:0,class:"btn primary small",type:"button",onClick:t[0]||(t[0]=e=>m.value=!0)},"Nowa"))]),_:1}),m.value?(l(),o("form",{key:0,class:"card",style:{"margin-bottom":"16px"},onSubmit:S(M,["prevent"])},[s("div",H,[t[6]||(t[6]=s("label",{for:"cl-meeting"},"Zjazd",-1)),k(s("select",{id:"cl-meeting","onUpdate:modelValue":t[1]||(t[1]=e=>u.value=e),onChange:$},[t[5]||(t[5]=s("option",{value:""},"bez zjazdu",-1)),(l(!0),o(z,null,w(d(_).meetings??[],e=>(l(),o("option",{key:e.id,value:e.id},"Zjazd "+r(e.number)+" · "+r(d(j)(e.starts_on,e.ends_on)),9,I))),128))],544),[[U,u.value]])]),s("div",J,[t[7]||(t[7]=s("label",{for:"cl-title"},"Tytuł",-1)),k(s("input",{id:"cl-title","onUpdate:modelValue":t[2]||(t[2]=e=>n.value=e),type:"text",required:"",maxlength:"255"},null,512),[[D,n.value]])]),p.value?(l(),o("p",K,r(p.value),1)):c("",!0),s("div",O,[s("button",{class:"btn primary",type:"submit",disabled:f.value||!n.value.trim()},"Utwórz",8,Q),s("button",{class:"btn ghost",type:"button",onClick:t[3]||(t[3]=e=>m.value=!1)},"Anuluj")])],32)):c("",!0),b(A,{ready:C.value,error:d(i).listError,onRetry:t[4]||(t[4]=e=>d(i).loadList())},{default:g(()=>[s("div",W,[(l(!0),o(z,null,w(y.value,e=>(l(),L(V,{key:e.id,to:`/checklisty/${e.id}`,class:"card link checklist-card"},{default:g(()=>[s("div",X,[s("div",null,[s("h3",null,r(e.title),1),e.meeting?(l(),o("span",Y,"Zjazd "+r(e.meeting.number)+" · "+r(d(j)(e.meeting.starts_on,e.meeting.ends_on)),1)):c("",!0)]),s("span",ee,r(e.progress.percent)+"%",1)]),s("div",{class:"progress-bar",role:"progressbar","aria-valuenow":e.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":`Postęp: ${e.title}`},[s("span",{style:P({width:e.progress.percent+"%"})},null,4)],8,te),s("span",se,r(d(R)(e.progress)),1)]),_:2},1032,["to"]))),128))]),y.value.length?c("",!0):(l(),o("p",ae,"Nie masz jeszcze checklist. Utwórz pierwszą, np. na najbliższy zjazd."))]),_:1},8,["ready","error"])])}}});export{ue as default}; diff --git a/public/assets/ConnectView-BhDLIdXT.js b/public/assets/ConnectView-DXTDXtb8.js similarity index 98% rename from public/assets/ConnectView-BhDLIdXT.js rename to public/assets/ConnectView-DXTDXtb8.js index cf08051..b7dc777 100644 --- a/public/assets/ConnectView-BhDLIdXT.js +++ b/public/assets/ConnectView-DXTDXtb8.js @@ -1 +1 @@ -import{aA as g,d as x,o as A,c as n,b as t,t as u,p as z,F as j,E as B,f as y,i as N,j as T,r as _,l as I,k as E,m as P,x as R,A as S,n as s}from"./index-DwX0tlPb.js";const C=a=>"/oauth/mcp/requests/"+encodeURIComponent(a),q={consentRequest:a=>g.request(C(a)),decide:(a,i)=>g.request(C(a),{method:"POST",body:i})};function V(a,i){if(i!=="allow")return{decision:i};const k={decision:i,scopes:[...a.scopes]};return a.backend_admin&&(k.backend_admin=a.backend_admin.login),k}const D=409,M={class:"auth"},W={key:0,class:"muted",role:"status"},O={key:1,class:"notice",role:"status"},F={key:2,class:"notice error",role:"alert"},K={key:3,class:"stack"},L={class:"muted"},U={key:0,class:"notice",role:"status"},$={key:1,class:"notice error",role:"alert"},G={class:"btn-row"},H=["disabled"],Z=["disabled"],J={class:"auth-links"},X=x({__name:"ConnectView",setup(a){const i=E(),k=P(),v=R(()=>typeof i.query.request=="string"?i.query.request:""),o=_(null),r=_("loading"),m=_(!1),c=_(""),w={read:"odczyt Twoich danych w BM: pulpit, plan, przedmioty, lektury i materiały",write:"zmiany w Twoim imieniu, np. oznaczanie lektur, a dla właściciela także zarządzanie danymi i prezentacjami",ai:"funkcje AI aplikacji",offline_access:"dostęp bez ponownego logowania (token odświeżania)",backend:"działanie jako powiązane konto administratora"};function b(l){return l instanceof S?l.status:0}async function f(){if(!v.value){r.value="expired";return}try{o.value=await q.consentRequest(v.value),r.value="ready"}catch(l){const e=b(l);if(e===401){await k.replace({name:"login",query:{redirect:i.fullPath}});return}r.value=e===404||e===410?"expired":"error"}}async function h(l){if(o.value){m.value=!0,c.value="";try{const e=await q.decide(v.value,V(o.value,l));window.location.assign(e.redirect_uri)}catch(e){const d=b(e);d===404||d===410?r.value="expired":d===D?(await f(),c.value="Powiązane konto administratora zmieniło się. Sprawdź prośbę jeszcze raz."):d===422?c.value="Żadnego z tych zakresów nie można przyznać.":c.value="Coś poszło nie tak. Spróbuj ponownie."}finally{m.value=!1}}}return A(f),(l,e)=>{const d=I("router-link");return s(),n("div",M,[e[4]||(e[4]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Połącz aplikację")],-1)),r.value==="loading"?(s(),n("p",W,"Wczytywanie prośby…")):r.value==="expired"?(s(),n("p",O,"Ta prośba wygasła lub nie istnieje. Wróć do aplikacji i połącz ją jeszcze raz.")):r.value==="error"?(s(),n("p",F,"Coś poszło nie tak. Spróbuj ponownie.")):o.value?(s(),n("div",K,[t("p",null,[t("strong",null,u(o.value.client.name),1),e[2]||(e[2]=z(" prosi o dostęp do Twojego konta BM. ",-1))]),t("p",L,"Po zgodzie wrócisz do: "+u(o.value.client.redirect_host),1),t("ul",null,[(s(!0),n(j,null,B(o.value.scopes,p=>(s(),n("li",{key:p},[t("strong",null,u(p),1),w[p]?(s(),n(j,{key:0},[z(": "+u(w[p]),1)],64)):y("",!0)]))),128))]),o.value.backend_admin?(s(),n("p",U," Aplikacja będzie działać także jako administrator "+u(o.value.backend_admin.name)+" ("+u(o.value.backend_admin.login)+"). ",1)):y("",!0),c.value?(s(),n("div",$,u(c.value),1)):y("",!0),t("div",G,[t("button",{type:"button",class:"btn primary",disabled:m.value,onClick:e[0]||(e[0]=p=>h("allow"))},"Zezwól",8,H),t("button",{type:"button",class:"btn",disabled:m.value,onClick:e[1]||(e[1]=p=>h("deny"))},"Odmów",8,Z)])])):y("",!0),t("div",J,[N(d,{to:"/"},{default:T(()=>[...e[3]||(e[3]=[z("Wróć do pulpitu",-1)])]),_:1})])])}}});export{X as default}; +import{aA as g,d as x,o as A,c as n,b as t,t as u,p as z,F as j,E as B,f as y,i as N,j as T,r as _,l as I,k as E,m as P,x as R,A as S,n as s}from"./index-C7U0oIvN.js";const C=a=>"/oauth/mcp/requests/"+encodeURIComponent(a),q={consentRequest:a=>g.request(C(a)),decide:(a,i)=>g.request(C(a),{method:"POST",body:i})};function V(a,i){if(i!=="allow")return{decision:i};const k={decision:i,scopes:[...a.scopes]};return a.backend_admin&&(k.backend_admin=a.backend_admin.login),k}const D=409,M={class:"auth"},W={key:0,class:"muted",role:"status"},O={key:1,class:"notice",role:"status"},F={key:2,class:"notice error",role:"alert"},K={key:3,class:"stack"},L={class:"muted"},U={key:0,class:"notice",role:"status"},$={key:1,class:"notice error",role:"alert"},G={class:"btn-row"},H=["disabled"],Z=["disabled"],J={class:"auth-links"},X=x({__name:"ConnectView",setup(a){const i=E(),k=P(),v=R(()=>typeof i.query.request=="string"?i.query.request:""),o=_(null),r=_("loading"),m=_(!1),c=_(""),w={read:"odczyt Twoich danych w BM: pulpit, plan, przedmioty, lektury i materiały",write:"zmiany w Twoim imieniu, np. oznaczanie lektur, a dla właściciela także zarządzanie danymi i prezentacjami",ai:"funkcje AI aplikacji",offline_access:"dostęp bez ponownego logowania (token odświeżania)",backend:"działanie jako powiązane konto administratora"};function b(l){return l instanceof S?l.status:0}async function f(){if(!v.value){r.value="expired";return}try{o.value=await q.consentRequest(v.value),r.value="ready"}catch(l){const e=b(l);if(e===401){await k.replace({name:"login",query:{redirect:i.fullPath}});return}r.value=e===404||e===410?"expired":"error"}}async function h(l){if(o.value){m.value=!0,c.value="";try{const e=await q.decide(v.value,V(o.value,l));window.location.assign(e.redirect_uri)}catch(e){const d=b(e);d===404||d===410?r.value="expired":d===D?(await f(),c.value="Powiązane konto administratora zmieniło się. Sprawdź prośbę jeszcze raz."):d===422?c.value="Żadnego z tych zakresów nie można przyznać.":c.value="Coś poszło nie tak. Spróbuj ponownie."}finally{m.value=!1}}}return A(f),(l,e)=>{const d=I("router-link");return s(),n("div",M,[e[4]||(e[4]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Połącz aplikację")],-1)),r.value==="loading"?(s(),n("p",W,"Wczytywanie prośby…")):r.value==="expired"?(s(),n("p",O,"Ta prośba wygasła lub nie istnieje. Wróć do aplikacji i połącz ją jeszcze raz.")):r.value==="error"?(s(),n("p",F,"Coś poszło nie tak. Spróbuj ponownie.")):o.value?(s(),n("div",K,[t("p",null,[t("strong",null,u(o.value.client.name),1),e[2]||(e[2]=z(" prosi o dostęp do Twojego konta BM. ",-1))]),t("p",L,"Po zgodzie wrócisz do: "+u(o.value.client.redirect_host),1),t("ul",null,[(s(!0),n(j,null,B(o.value.scopes,p=>(s(),n("li",{key:p},[t("strong",null,u(p),1),w[p]?(s(),n(j,{key:0},[z(": "+u(w[p]),1)],64)):y("",!0)]))),128))]),o.value.backend_admin?(s(),n("p",U," Aplikacja będzie działać także jako administrator "+u(o.value.backend_admin.name)+" ("+u(o.value.backend_admin.login)+"). ",1)):y("",!0),c.value?(s(),n("div",$,u(c.value),1)):y("",!0),t("div",G,[t("button",{type:"button",class:"btn primary",disabled:m.value,onClick:e[0]||(e[0]=p=>h("allow"))},"Zezwól",8,H),t("button",{type:"button",class:"btn",disabled:m.value,onClick:e[1]||(e[1]=p=>h("deny"))},"Odmów",8,Z)])])):y("",!0),t("div",J,[N(d,{to:"/"},{default:T(()=>[...e[3]||(e[3]=[z("Wróć do pulpitu",-1)])]),_:1})])])}}});export{X as default}; diff --git a/public/assets/CourseView-BnCC_Rx0.js b/public/assets/CourseView-DInOCNo3.js similarity index 95% rename from public/assets/CourseView-BnCC_Rx0.js rename to public/assets/CourseView-DInOCNo3.js index bf550c3..f446995 100644 --- a/public/assets/CourseView-BnCC_Rx0.js +++ b/public/assets/CourseView-DInOCNo3.js @@ -1 +1 @@ -import{_ as L}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as N}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as B}from"./ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js";import{d as R,ae as D,o as S,U as V,c as a,i as p,j as y,r as T,al as j,ap as M,n as t,F as r,e as d,ah as q,p as z,b as e,t as n,f as i,E as g,C as A,K as F,a6 as C,s as O,T as P,ag as K,x as f,l as Z}from"./index-DwX0tlPb.js";const U={class:"card"},W={style:{margin:"0",display:"grid","grid-template-columns":"auto 1fr",gap:"4px 16px"}},Y={style:{margin:"0"}},G={style:{margin:"0"},class:"mono small"},H={style:{margin:"0"}},I={style:{margin:"0"}},J={key:0,style:{margin:"10px 0 0","white-space":"pre-line"}},Q={key:1,style:{margin:"10px 0 0"}},X=["href"],ee={class:"section","aria-labelledby":"sess-h"},se={class:"section-head"},te={class:"muted small"},ae={key:0,class:"rows"},le={class:"row-main"},oe={class:"title"},ne={class:"when"},ie={class:"muted small"},re={key:0},de={key:1,class:"badge online",style:{"margin-left":"6px"}},ue={key:2,class:"badge onsite",style:{"margin-left":"6px"}},ce={key:3},_e={key:4},me={key:1,class:"empty"},pe={class:"section","aria-labelledby":"read-h"},ye={class:"section-head"},ge={class:"muted small"},ve={class:"rows"},he={class:"rows"},ke={key:1,class:"empty"},fe={class:"section","aria-labelledby":"mat-h"},be={class:"section-head"},we={class:"muted small"},xe={key:0,class:"rows"},Be={class:"muted small"},Te={class:"badge"},ze={key:0},Ce={key:1,class:"empty"},Ne=R({__name:"CourseView",props:{id:{}},setup($){const v=$,_=D(),l=T(null),h=T("");async function k(){l.value=null,h.value="";try{l.value=await j.course(Number(v.id))}catch(u){h.value=M(u)}}S(()=>{k(),_.loadReadings()}),V(()=>v.id,()=>{k()});const m=f(()=>_.allReadings.filter(u=>u.course_id===Number(v.id))),b=f(()=>m.value.filter(u=>u.is_required)),w=f(()=>m.value.filter(u=>!u.is_required)),E=Date.now();return(u,o)=>{const x=Z("router-link");return t(),a("div",null,[p(N,{ready:!!l.value,error:h.value,onRetry:o[0]||(o[0]=s=>k())},{default:y(()=>[l.value?(t(),a(r,{key:0},[p(L,{eyebrow:`${d(q)[l.value.form]} · semestr ${l.value.semester}`,title:l.value.name},{default:y(()=>[p(x,{class:"btn small ghost",to:"/przedmioty"},{default:y(()=>[...o[1]||(o[1]=[z("← Przedmioty",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),e("section",U,[e("dl",W,[l.value.lecturer?(t(),a(r,{key:0},[o[2]||(o[2]=e("dt",{class:"muted"},"Prowadzący",-1)),e("dd",Y,n(l.value.lecturer),1)],64)):i("",!0),l.value.code?(t(),a(r,{key:1},[o[3]||(o[3]=e("dt",{class:"muted"},"Kod",-1)),e("dd",G,n(l.value.code),1)],64)):i("",!0),l.value.ects?(t(),a(r,{key:2},[o[4]||(o[4]=e("dt",{class:"muted"},"ECTS",-1)),e("dd",H,n(l.value.ects),1)],64)):i("",!0),l.value.assessment?(t(),a(r,{key:3},[o[5]||(o[5]=e("dt",{class:"muted"},"Zaliczenie",-1)),e("dd",I,n(l.value.assessment),1)],64)):i("",!0),l.value.elective_group?(t(),a(r,{key:4},[o[6]||(o[6]=e("dt",{class:"muted"},"Wybór",-1)),o[7]||(o[7]=e("dd",{style:{margin:"0"}},[e("span",{class:"badge alert"},"do wyboru")],-1))],64)):i("",!0)]),l.value.description?(t(),a("p",J,n(l.value.description),1)):i("",!0),l.value.syllabus_url?(t(),a("p",Q,[e("a",{href:l.value.syllabus_url,target:"_blank",rel:"noopener noreferrer"},"Sylabus",8,X)])):i("",!0)]),e("section",ee,[e("div",se,[o[8]||(o[8]=e("h2",{id:"sess-h"},"Zajęcia",-1)),e("span",te,n(l.value.sessions.length),1)]),l.value.sessions.length?(t(),a("ul",ae,[(t(!0),a(r,null,g(l.value.sessions,s=>(t(),a("li",{key:s.id,class:A({past:Date.parse(s.ends_at)s.read_at).length)+"/"+n(m.value.length),1)]),m.value.length?(t(),a(r,{key:0},[b.value.length?(t(),a(r,{key:0},[o[10]||(o[10]=e("h3",{class:"subhead"},"Obowiązkowe",-1)),e("ul",ve,[(t(!0),a(r,null,g(b.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:c=>d(_).toggleReading(s.id,c),onOwn:c=>d(_).toggleOwned(s.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0),w.value.length?(t(),a(r,{key:1},[o[11]||(o[11]=e("h3",{class:"subhead"},"Dodatkowe",-1)),e("ul",he,[(t(!0),a(r,null,g(w.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:c=>d(_).toggleReading(s.id,c),onOwn:c=>d(_).toggleOwned(s.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0)],64)):(t(),a("p",ke,"Brak lektur."))]),e("section",fe,[e("div",be,[o[12]||(o[12]=e("h2",{id:"mat-h"},"Materiały",-1)),e("span",we,n(l.value.materials.length),1)]),l.value.materials.length?(t(),a("ul",xe,[(t(!0),a(r,null,g(l.value.materials,s=>(t(),a("li",{key:s.id},[p(x,{to:`/materialy/${s.id}`,class:"title"},{default:y(()=>[z(n(s.title),1)]),_:2},1032,["to"]),e("div",Be,[e("span",Te,n(d(P)[s.type]),1),s.files_count?(t(),a("span",ze," · "+n(d(K)(s.files_count,"plik","pliki","plików")),1)):i("",!0)])]))),128))])):(t(),a("p",Ce,"Brak materiałów."))])],64)):i("",!0)]),_:1},8,["ready","error"])])}}});export{Ne as default}; +import{_ as L}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as N}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as B}from"./ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js";import{d as R,ae as D,o as S,U as V,c as a,i as p,j as y,r as T,al as j,ap as M,n as t,F as r,e as d,ah as q,p as z,b as e,t as n,f as i,E as g,C as A,K as F,a6 as C,s as O,T as P,ag as K,x as f,l as Z}from"./index-C7U0oIvN.js";const U={class:"card"},W={style:{margin:"0",display:"grid","grid-template-columns":"auto 1fr",gap:"4px 16px"}},Y={style:{margin:"0"}},G={style:{margin:"0"},class:"mono small"},H={style:{margin:"0"}},I={style:{margin:"0"}},J={key:0,style:{margin:"10px 0 0","white-space":"pre-line"}},Q={key:1,style:{margin:"10px 0 0"}},X=["href"],ee={class:"section","aria-labelledby":"sess-h"},se={class:"section-head"},te={class:"muted small"},ae={key:0,class:"rows"},le={class:"row-main"},oe={class:"title"},ne={class:"when"},ie={class:"muted small"},re={key:0},de={key:1,class:"badge online",style:{"margin-left":"6px"}},ue={key:2,class:"badge onsite",style:{"margin-left":"6px"}},ce={key:3},_e={key:4},me={key:1,class:"empty"},pe={class:"section","aria-labelledby":"read-h"},ye={class:"section-head"},ge={class:"muted small"},ve={class:"rows"},he={class:"rows"},ke={key:1,class:"empty"},fe={class:"section","aria-labelledby":"mat-h"},be={class:"section-head"},we={class:"muted small"},xe={key:0,class:"rows"},Be={class:"muted small"},Te={class:"badge"},ze={key:0},Ce={key:1,class:"empty"},Ne=R({__name:"CourseView",props:{id:{}},setup($){const v=$,_=D(),l=T(null),h=T("");async function k(){l.value=null,h.value="";try{l.value=await j.course(Number(v.id))}catch(u){h.value=M(u)}}S(()=>{k(),_.loadReadings()}),V(()=>v.id,()=>{k()});const m=f(()=>_.allReadings.filter(u=>u.course_id===Number(v.id))),b=f(()=>m.value.filter(u=>u.is_required)),w=f(()=>m.value.filter(u=>!u.is_required)),E=Date.now();return(u,o)=>{const x=Z("router-link");return t(),a("div",null,[p(N,{ready:!!l.value,error:h.value,onRetry:o[0]||(o[0]=s=>k())},{default:y(()=>[l.value?(t(),a(r,{key:0},[p(L,{eyebrow:`${d(q)[l.value.form]} · semestr ${l.value.semester}`,title:l.value.name},{default:y(()=>[p(x,{class:"btn small ghost",to:"/przedmioty"},{default:y(()=>[...o[1]||(o[1]=[z("← Przedmioty",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),e("section",U,[e("dl",W,[l.value.lecturer?(t(),a(r,{key:0},[o[2]||(o[2]=e("dt",{class:"muted"},"Prowadzący",-1)),e("dd",Y,n(l.value.lecturer),1)],64)):i("",!0),l.value.code?(t(),a(r,{key:1},[o[3]||(o[3]=e("dt",{class:"muted"},"Kod",-1)),e("dd",G,n(l.value.code),1)],64)):i("",!0),l.value.ects?(t(),a(r,{key:2},[o[4]||(o[4]=e("dt",{class:"muted"},"ECTS",-1)),e("dd",H,n(l.value.ects),1)],64)):i("",!0),l.value.assessment?(t(),a(r,{key:3},[o[5]||(o[5]=e("dt",{class:"muted"},"Zaliczenie",-1)),e("dd",I,n(l.value.assessment),1)],64)):i("",!0),l.value.elective_group?(t(),a(r,{key:4},[o[6]||(o[6]=e("dt",{class:"muted"},"Wybór",-1)),o[7]||(o[7]=e("dd",{style:{margin:"0"}},[e("span",{class:"badge alert"},"do wyboru")],-1))],64)):i("",!0)]),l.value.description?(t(),a("p",J,n(l.value.description),1)):i("",!0),l.value.syllabus_url?(t(),a("p",Q,[e("a",{href:l.value.syllabus_url,target:"_blank",rel:"noopener noreferrer"},"Sylabus",8,X)])):i("",!0)]),e("section",ee,[e("div",se,[o[8]||(o[8]=e("h2",{id:"sess-h"},"Zajęcia",-1)),e("span",te,n(l.value.sessions.length),1)]),l.value.sessions.length?(t(),a("ul",ae,[(t(!0),a(r,null,g(l.value.sessions,s=>(t(),a("li",{key:s.id,class:A({past:Date.parse(s.ends_at)s.read_at).length)+"/"+n(m.value.length),1)]),m.value.length?(t(),a(r,{key:0},[b.value.length?(t(),a(r,{key:0},[o[10]||(o[10]=e("h3",{class:"subhead"},"Obowiązkowe",-1)),e("ul",ve,[(t(!0),a(r,null,g(b.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:c=>d(_).toggleReading(s.id,c),onOwn:c=>d(_).toggleOwned(s.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0),w.value.length?(t(),a(r,{key:1},[o[11]||(o[11]=e("h3",{class:"subhead"},"Dodatkowe",-1)),e("ul",he,[(t(!0),a(r,null,g(w.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:c=>d(_).toggleReading(s.id,c),onOwn:c=>d(_).toggleOwned(s.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0)],64)):(t(),a("p",ke,"Brak lektur."))]),e("section",fe,[e("div",be,[o[12]||(o[12]=e("h2",{id:"mat-h"},"Materiały",-1)),e("span",we,n(l.value.materials.length),1)]),l.value.materials.length?(t(),a("ul",xe,[(t(!0),a(r,null,g(l.value.materials,s=>(t(),a("li",{key:s.id},[p(x,{to:`/materialy/${s.id}`,class:"title"},{default:y(()=>[z(n(s.title),1)]),_:2},1032,["to"]),e("div",Be,[e("span",Te,n(d(P)[s.type]),1),s.files_count?(t(),a("span",ze," · "+n(d(K)(s.files_count,"plik","pliki","plików")),1)):i("",!0)])]))),128))])):(t(),a("p",Ce,"Brak materiałów."))])],64)):i("",!0)]),_:1},8,["ready","error"])])}}});export{Ne as default}; diff --git a/public/assets/CoursesView-BNWw3Bxu.js b/public/assets/CoursesView-CInolXzZ.js similarity index 89% rename from public/assets/CoursesView-BNWw3Bxu.js rename to public/assets/CoursesView-CInolXzZ.js index 32ff358..aca6d9e 100644 --- a/public/assets/CoursesView-BNWw3Bxu.js +++ b/public/assets/CoursesView-CInolXzZ.js @@ -1 +1 @@ -import{_ as C}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js";import{d as z,ae as B,an as $,o as S,c as t,i as m,j as k,e as o,n as s,b as r,F as c,E as v,t as a,f as n,s as E,ah as V,ao as j,p as _,ag as h,r as N,x as f,l as F}from"./index-DwX0tlPb.js";const L={key:0,class:"chips",role:"group","aria-label":"Semestr"},M=["aria-pressed"],P=["aria-pressed","onClick"],R={key:1,class:"stack",style:{"margin-top":"10px"}},T={class:"row-main"},A={class:"badge"},D={class:"muted small",style:{margin:"0 0 6px"}},O={key:0},U={key:1},W={key:2},q={class:"small",style:{margin:"0"}},G={key:0,class:"badge alert"},H={class:"muted"},I={key:2,class:"empty"},ee=z({__name:"CoursesView",setup(J){const l=B(),g=$(),i=N(null);S(()=>{l.loadCourses()});const p=f(()=>[...new Set((l.courses??[]).map(u=>u.semester))].sort((u,d)=>u-d)),y=f(()=>l.visibleCourses.filter(u=>i.value===null||u.semester===i.value));return(u,d)=>{const b=F("router-link");return s(),t("div",null,[m(C,{eyebrow:"Program studiów",title:"Przedmioty"}),m(w,{ready:o(l).loaded.courses,error:o(l).error,onRetry:d[1]||(d[1]=e=>o(l).retry())},{default:k(()=>[m(x),p.value.length>1?(s(),t("div",L,[r("button",{class:"chip",type:"button","aria-pressed":i.value===null,onClick:d[0]||(d[0]=e=>i.value=null)},"Wszystkie",8,M),(s(!0),t(c,null,v(p.value,e=>(s(),t("button",{key:e,class:"chip",type:"button","aria-pressed":i.value===e,onClick:K=>i.value=e},"Semestr "+a(e),9,P))),128))])):n("",!0),y.value.length?(s(),t("div",R,[(s(!0),t(c,null,v(y.value,e=>(s(),E(b,{key:e.id,to:`/przedmioty/${e.id}`,class:"card link"},{default:k(()=>[r("div",T,[r("h3",null,a(e.name),1),r("span",A,a(o(V)[e.form]),1)]),r("p",D,[e.lecturer?(s(),t("span",O,a(e.lecturer),1)):n("",!0),e.ects?(s(),t("span",U," · "+a(e.ects)+" ECTS",1)):n("",!0),e.assessment?(s(),t("span",W," · "+a(e.assessment),1)):n("",!0)]),r("p",q,[o(j)(e,o(g).choices)?(s(),t("span",G,"do wyboru")):n("",!0),r("span",H,[_(a(o(h)(e.counts.sessions,"zajęcia","zajęcia","zajęć")),1),e.counts.readings?(s(),t(c,{key:0},[_(" · lektury "+a(e.counts.readings_read)+"/"+a(e.counts.readings),1)],64)):n("",!0),e.counts.materials?(s(),t(c,{key:1},[_(" · "+a(o(h)(e.counts.materials,"materiał","materiały","materiałów")),1)],64)):n("",!0)])])]),_:2},1032,["to"]))),128))])):(s(),t("p",I,"Brak przedmiotów."))]),_:1},8,["ready","error"])])}}});export{ee as default}; +import{_ as C}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js";import{d as z,ae as B,an as $,o as S,c as t,i as m,j as k,e as o,n as s,b as r,F as c,E as v,t as a,f as n,s as E,ah as V,ao as j,p as _,ag as h,r as N,x as f,l as F}from"./index-C7U0oIvN.js";const L={key:0,class:"chips",role:"group","aria-label":"Semestr"},M=["aria-pressed"],P=["aria-pressed","onClick"],R={key:1,class:"stack",style:{"margin-top":"10px"}},T={class:"row-main"},A={class:"badge"},D={class:"muted small",style:{margin:"0 0 6px"}},O={key:0},U={key:1},W={key:2},q={class:"small",style:{margin:"0"}},G={key:0,class:"badge alert"},H={class:"muted"},I={key:2,class:"empty"},ee=z({__name:"CoursesView",setup(J){const l=B(),g=$(),i=N(null);S(()=>{l.loadCourses()});const p=f(()=>[...new Set((l.courses??[]).map(u=>u.semester))].sort((u,d)=>u-d)),y=f(()=>l.visibleCourses.filter(u=>i.value===null||u.semester===i.value));return(u,d)=>{const b=F("router-link");return s(),t("div",null,[m(C,{eyebrow:"Program studiów",title:"Przedmioty"}),m(w,{ready:o(l).loaded.courses,error:o(l).error,onRetry:d[1]||(d[1]=e=>o(l).retry())},{default:k(()=>[m(x),p.value.length>1?(s(),t("div",L,[r("button",{class:"chip",type:"button","aria-pressed":i.value===null,onClick:d[0]||(d[0]=e=>i.value=null)},"Wszystkie",8,M),(s(!0),t(c,null,v(p.value,e=>(s(),t("button",{key:e,class:"chip",type:"button","aria-pressed":i.value===e,onClick:K=>i.value=e},"Semestr "+a(e),9,P))),128))])):n("",!0),y.value.length?(s(),t("div",R,[(s(!0),t(c,null,v(y.value,e=>(s(),E(b,{key:e.id,to:`/przedmioty/${e.id}`,class:"card link"},{default:k(()=>[r("div",T,[r("h3",null,a(e.name),1),r("span",A,a(o(V)[e.form]),1)]),r("p",D,[e.lecturer?(s(),t("span",O,a(e.lecturer),1)):n("",!0),e.ects?(s(),t("span",U," · "+a(e.ects)+" ECTS",1)):n("",!0),e.assessment?(s(),t("span",W," · "+a(e.assessment),1)):n("",!0)]),r("p",q,[o(j)(e,o(g).choices)?(s(),t("span",G,"do wyboru")):n("",!0),r("span",H,[_(a(o(h)(e.counts.sessions,"zajęcia","zajęcia","zajęć")),1),e.counts.readings?(s(),t(c,{key:0},[_(" · lektury "+a(e.counts.readings_read)+"/"+a(e.counts.readings),1)],64)):n("",!0),e.counts.materials?(s(),t(c,{key:1},[_(" · "+a(o(h)(e.counts.materials,"materiał","materiały","materiałów")),1)],64)):n("",!0)])])]),_:2},1032,["to"]))),128))])):(s(),t("p",I,"Brak przedmiotów."))]),_:1},8,["ready","error"])])}}});export{ee as default}; diff --git a/public/assets/DashboardView-DY3Afxmw.js b/public/assets/DashboardView-BL8ALiYs.js similarity index 99% rename from public/assets/DashboardView-DY3Afxmw.js rename to public/assets/DashboardView-BL8ALiYs.js index 12ae226..0186a25 100644 --- a/public/assets/DashboardView-DY3Afxmw.js +++ b/public/assets/DashboardView-BL8ALiYs.js @@ -1,2 +1,2 @@ -import{y as ze,z as Re,B as Oe,T as _t,d as ie,n,c as s,C as ce,b as t,t as m,p as J,e as p,D as kt,f as I,F as K,E as ee,s as ve,j as me,G as gt,H as qe,i as B,x as v,l as lt,I as $t,J as wt,K as Be,r as $,L as zt,M as xt,R as It,N as it,O as rt,P as jt,Q as Ct,S as Et,U as le,V as Ce,_ as ne,w as Ae,v as We,W as Tt,h as Pe,X as Ee,Y as ut,Z as Y,$ as Ie,a0 as ye,a1 as Fe,o as Xe,a2 as Dt,a3 as St,a4 as je,a5 as Ye,a6 as Le,a7 as Mt,q as Bt,a8 as Ze,a9 as Lt,aa as Nt,ab as Rt,ac as qt,ad as At,u as Wt,ae as Pt,af as Ut,ag as Ot,k as Ht,m as Kt,ah as Ft,ai as Zt,aj as Vt,ak as Qt,al as Xt}from"./index-DwX0tlPb.js";import{_ as Yt}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as Gt}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as Je}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js";import{e as we,s as et,f as tt}from"./markdown-CbtkjRI4.js";const Jt=5,Ve=a=>`${a}T12:00:00Z`;function at(a,r){return Re(Ve(r),new Date(Ve(a)))}function ea(a,r,e,o=new Date){let l;if(r){const d=at(a.starts_on,a.ends_on)+1;l={value:`${Math.min(Math.max(at(a.starts_on,ze(o))+1,1),d)}/${d}`,caption:"dzień zjazdu"}}else{const d=Math.max(Re(Ve(a.starts_on),o),0);l={value:String(d),caption:Oe(d,"dzień do zjazdu","dni do zjazdu","dni do zjazdu")}}const i=a.sessions_count,c=o.getTime(),y=e.filter(d=>Date.parse(d.due_at)>=c&&ze(d.due_at)<=a.ends_on).length;return[l,{value:String(i),caption:Oe(i,"zajęcia","zajęcia","zajęć")},{value:String(y),caption:Oe(y,"termin do końca zjazdu","terminy do końca zjazdu","terminów do końca zjazdu")}]}function ta(a,r){return r.filter(e=>{if(e.meeting_id!==null)return e.meeting_id===a.id;const o=ze(e.starts_at);return o>=a.starts_on&&o<=a.ends_on})}const aa=/^https?:\/\//i;function nt(a){const r=[a.is_required?"obowiązkowa":"",a.author??"",a.course?.name??""].filter(o=>o!=="").join(" · "),e=a.url&&aa.test(a.url)?a.url:null;return{key:`r${a.id}`,title:a.title,meta:r,href:e,to:`/lektury#lektura-${a.id}`}}function na(a){const r=[_t[a.type]??"",a.course?.name??""].filter(e=>e!=="").join(" · ");return{key:`m${a.id}`,title:a.title,meta:r,href:null,to:`/materialy/${a.id}`}}function sa(a){return[...a.filter(r=>r.is_required),...a.filter(r=>!r.is_required)]}function oa(a,r,e,o,l=Jt){const i=e.filter(u=>u.meeting_id===a.id),c=o.filter(u=>u.meeting_id===a.id);let y,d;if(i.length||c.length)d=[...sa(i.filter(u=>u.read_at===null)).map(nt),...c.map(na)],y=d.length?"meeting":"done";else{const u=new Set(ta(a,r).map(h=>h.course_id));d=e.filter(h=>h.is_required&&h.read_at===null&&u.has(h.course_id)).map(nt),y=d.length?"courses":"none"}const k=d.slice(l),f=k.length&&k.every(u=>u.key.startsWith("m"))?"/materialy":"/lektury";return{source:y,items:d.slice(0,l),more:k.length,moreTo:f}}const la={class:"hero-main"},ia={class:"eyebrow hero-eyebrow"},ra={id:"hero-h",class:"hero-title"},ua={class:"hero-dates"},ca={key:0,class:"hero-extra muted"},da={class:"hero-stats"},ma={class:"hero-num"},va={class:"hero-cap"},pa={class:"hero-cap"},fa=["aria-valuenow"],ya={class:"hero-timeline"},ha={class:"eyebrow"},ba={key:0,class:"hero-rows"},_a=["href"],ka={key:2,class:"hero-read-meta"},ga={key:0,class:"hero-more"},$a={key:1,class:"muted"},wa={key:1,class:"card hero hero-empty","aria-labelledby":"hero-h"},za={class:"hero-main"},xa=ie({__name:"ZjazdHero",props:{meeting:{},isCurrent:{type:Boolean},schedule:{},deadlines:{},readings:{},materials:{},now:{},checklist:{}},setup(a){const r=a,e=v(()=>$t(r.meeting?.notes)),o=v(()=>wt(r.meeting?.notes)),l=v(()=>r.meeting?ea(r.meeting,r.isCurrent,r.deadlines,r.now):[]),i=v(()=>r.meeting&&r.materials?oa(r.meeting,r.schedule,r.readings,r.materials):null),c=v(()=>({name:"schedule",query:{zjazd:r.meeting?.number}}));return(y,d)=>{const k=lt("router-link");return a.meeting?(n(),s("section",{key:0,class:ce(["card hero",{hl:a.isCurrent}]),"aria-labelledby":"hero-h"},[t("div",la,[t("span",ia,m(a.isCurrent?"Trwa zjazd":"Najbliższy zjazd"),1),t("h2",ra,"Zjazd "+m(a.meeting.number),1),t("p",ua,[J(m(p(kt)(a.meeting.starts_on,a.meeting.ends_on))+" ",1),e.value?(n(),s("span",{key:0,class:ce(["badge",e.value==="online"?"online":"onsite"])},m(e.value),3)):I("",!0)]),o.value?(n(),s("p",ca,m(o.value),1)):I("",!0),t("ul",da,[(n(!0),s(K,null,ee(l.value,f=>(n(),s("li",{key:f.caption},[t("span",ma,m(f.value),1),t("span",va,m(f.caption),1)]))),128))]),a.checklist?(n(),ve(k,{key:1,class:"hero-prep",to:`/checklisty/${a.checklist.id}`,"aria-label":"Przygotowanie do zjazdu"},{default:me(()=>[t("span",pa,"Przygotowanie · "+m(p(gt)(a.checklist.progress)),1),t("span",{class:"progress-bar",role:"progressbar","aria-valuenow":a.checklist.progress.percent,"aria-valuemin":"0","aria-valuemax":"100"},[t("span",{style:qe({width:a.checklist.progress.percent+"%"})},null,4)],8,fa)]),_:1},8,["to"])):I("",!0),B(k,{class:"btn hero-btn",to:c.value},{default:me(()=>[...d[0]||(d[0]=[J("Zobacz plan zjazdu",-1)])]),_:1},8,["to"])]),t("div",ya,[t("span",ha,m(i.value?.source==="courses"?"Czytaj teraz":"Do przeczytania na zjazd"),1),i.value?(n(),s(K,{key:0},[i.value.items.length?(n(),s("ul",ba,[(n(!0),s(K,null,ee(i.value.items,f=>(n(),s("li",{key:f.key},[f.href?(n(),s("a",{key:0,class:"hero-read-title",href:f.href,target:"_blank",rel:"noopener"},m(f.title),9,_a)):(n(),ve(k,{key:1,class:"hero-read-title",to:f.to},{default:me(()=>[J(m(f.title),1)]),_:2},1032,["to"])),f.meta?(n(),s("span",ka,m(f.meta),1)):I("",!0)]))),128)),i.value.more>0?(n(),s("li",ga,[B(k,{to:i.value.moreTo},{default:me(()=>[J("+ "+m(i.value.more)+" więcej",1)]),_:1},8,["to"])])):I("",!0)])):(n(),s("p",$a,m(i.value.source==="done"?"Wszystko na ten zjazd przeczytane.":"Nic do przeczytania na ten zjazd."),1))],64)):I("",!0)])],2)):(n(),s("section",wa,[t("div",za,[d[2]||(d[2]=t("h2",{id:"hero-h",class:"hero-empty-h"},"Brak zaplanowanych zjazdów",-1)),d[3]||(d[3]=t("p",{class:"muted"},"Plan kolejnych zjazdów pojawi się tutaj, gdy zostanie opublikowany.",-1)),B(k,{class:"btn hero-btn",to:"/plan"},{default:me(()=>[...d[1]||(d[1]=[J("Cały plan",-1)])]),_:1})])]))}}});function ct(a){const r=a.indexOf("@");return r>0?a.slice(0,r):a}function $e(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";if(e&&a?.is_bot)return e;if(e&&o)return`${e} ${o[0]}.`;if(e)return e;if(a?.handle)return`@${a.handle}`;const l=r.trim();return l?ct(l):"Nieznana osoba"}function Ne(a,r=""){return[a?.name?.trim(),a?.surname?.trim()].filter(Boolean).join(" ")||$e(a,r)}function dt(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";let l="";return e||o?l=e.slice(0,1)+o.slice(0,1):a?.handle?l=a.handle.slice(0,2):l=ct(r.trim()).slice(0,2),(l||"?").toLocaleUpperCase("pl-PL")}function Ia(a){return Math.abs(Math.trunc(a))%8+1}function ja(a,r=new Date){const e=Re(a,r);if(e===0)return"DZIŚ";if(e===-1)return"WCZORAJ";const o=ze(a).slice(0,4);return(o===ze(r).slice(0,4)?Be(a):`${Be(a)} ${o}`).toLocaleUpperCase("pl-PL")}const Ca=300*1e3;function Ea(a,r=new Date){const e=[];let o=null,l="";for(const i of a){const c=ze(i.created_at),y=c!==l;y&&e.push({kind:"day",key:`day-${c}`,label:ja(i.created_at,r)});const d=!y&&o!==null&&o.sender_id===i.sender_id&&Date.parse(i.created_at)-Date.parse(o.created_at)<=Ca;e.push({kind:"message",key:`m-${i.id}`,message:i,followUp:d}),o=i,l=c}return e}function He(a){return a.toLocaleLowerCase("pl-PL").replace(/ł/g,"l").normalize("NFD").replace(/\p{Diacritic}/gu,"")}function Qe(a,r,e){const o=He(r.trim()),l=[];for(const i of a){if(i.id===e)continue;const c=He(i.name??""),y=He(i.surname??"");(!o||c.startsWith(o)||y.startsWith(o)||`${c} ${y}`.startsWith(o))&&l.push(i)}return l.sort((i,c)=>Ne(i).localeCompare(Ne(c),"pl"))}const Ta=10;function Da(a,r){const e=a.slice(0,Ta).map(l=>$e(r.get(l))),o=a.length-e.length;return o>0?`${e.join(", ")} i ${o} innych`:e.join(", ")}const st=' target="_blank" rel="noopener noreferrer nofollow"',mt=/(?"'`]+/gi;function pt(a,r){if(r(a))return{handle:a,rest:""};const e=a.replace(/[.-]+$/,"");return e.length>=2&&e!==a&&r(e)?{handle:e,rest:a.slice(e.length)}:null}function Ba(a){let r=a;for(;;){const e=r.at(-1);if(!e)break;if(`.,;:!?'"]}`.includes(e)){r=r.slice(0,-1);continue}if(e===")"&&(r.match(/\(/g)?.length??0)<(r.match(/\)/g)?.length??0)){r=r.slice(0,-1);continue}break}return{url:r,rest:a.slice(r.length)}}function La(a,r=new Map){if(!a)return"";const e=[],o=c=>c.replace(/\u0000(\d+)\u0000/g,(y,d)=>e[Number(d)]??""),l=c=>`\0${e.push(o(c))-1}\0`;let i=a.replace(/\r\n?/g,` +import{y as ze,z as Re,B as Oe,T as _t,d as ie,n,c as s,C as ce,b as t,t as m,p as J,e as p,D as kt,f as I,F as K,E as ee,s as ve,j as me,G as gt,H as qe,i as B,x as v,l as lt,I as $t,J as wt,K as Be,r as $,L as zt,M as xt,R as It,N as it,O as rt,P as jt,Q as Ct,S as Et,U as le,V as Ce,_ as ne,w as Ae,v as We,W as Tt,h as Pe,X as Ee,Y as ut,Z as Y,$ as Ie,a0 as ye,a1 as Fe,o as Xe,a2 as Dt,a3 as St,a4 as je,a5 as Ye,a6 as Le,a7 as Mt,q as Bt,a8 as Ze,a9 as Lt,aa as Nt,ab as Rt,ac as qt,ad as At,u as Wt,ae as Pt,af as Ut,ag as Ot,k as Ht,m as Kt,ah as Ft,ai as Zt,aj as Vt,ak as Qt,al as Xt}from"./index-C7U0oIvN.js";import{_ as Yt}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as Gt}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as Je}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js";import{e as we,s as et,f as tt}from"./markdown-CbtkjRI4.js";const Jt=5,Ve=a=>`${a}T12:00:00Z`;function at(a,r){return Re(Ve(r),new Date(Ve(a)))}function ea(a,r,e,o=new Date){let l;if(r){const d=at(a.starts_on,a.ends_on)+1;l={value:`${Math.min(Math.max(at(a.starts_on,ze(o))+1,1),d)}/${d}`,caption:"dzień zjazdu"}}else{const d=Math.max(Re(Ve(a.starts_on),o),0);l={value:String(d),caption:Oe(d,"dzień do zjazdu","dni do zjazdu","dni do zjazdu")}}const i=a.sessions_count,c=o.getTime(),y=e.filter(d=>Date.parse(d.due_at)>=c&&ze(d.due_at)<=a.ends_on).length;return[l,{value:String(i),caption:Oe(i,"zajęcia","zajęcia","zajęć")},{value:String(y),caption:Oe(y,"termin do końca zjazdu","terminy do końca zjazdu","terminów do końca zjazdu")}]}function ta(a,r){return r.filter(e=>{if(e.meeting_id!==null)return e.meeting_id===a.id;const o=ze(e.starts_at);return o>=a.starts_on&&o<=a.ends_on})}const aa=/^https?:\/\//i;function nt(a){const r=[a.is_required?"obowiązkowa":"",a.author??"",a.course?.name??""].filter(o=>o!=="").join(" · "),e=a.url&&aa.test(a.url)?a.url:null;return{key:`r${a.id}`,title:a.title,meta:r,href:e,to:`/lektury#lektura-${a.id}`}}function na(a){const r=[_t[a.type]??"",a.course?.name??""].filter(e=>e!=="").join(" · ");return{key:`m${a.id}`,title:a.title,meta:r,href:null,to:`/materialy/${a.id}`}}function sa(a){return[...a.filter(r=>r.is_required),...a.filter(r=>!r.is_required)]}function oa(a,r,e,o,l=Jt){const i=e.filter(u=>u.meeting_id===a.id),c=o.filter(u=>u.meeting_id===a.id);let y,d;if(i.length||c.length)d=[...sa(i.filter(u=>u.read_at===null)).map(nt),...c.map(na)],y=d.length?"meeting":"done";else{const u=new Set(ta(a,r).map(h=>h.course_id));d=e.filter(h=>h.is_required&&h.read_at===null&&u.has(h.course_id)).map(nt),y=d.length?"courses":"none"}const k=d.slice(l),f=k.length&&k.every(u=>u.key.startsWith("m"))?"/materialy":"/lektury";return{source:y,items:d.slice(0,l),more:k.length,moreTo:f}}const la={class:"hero-main"},ia={class:"eyebrow hero-eyebrow"},ra={id:"hero-h",class:"hero-title"},ua={class:"hero-dates"},ca={key:0,class:"hero-extra muted"},da={class:"hero-stats"},ma={class:"hero-num"},va={class:"hero-cap"},pa={class:"hero-cap"},fa=["aria-valuenow"],ya={class:"hero-timeline"},ha={class:"eyebrow"},ba={key:0,class:"hero-rows"},_a=["href"],ka={key:2,class:"hero-read-meta"},ga={key:0,class:"hero-more"},$a={key:1,class:"muted"},wa={key:1,class:"card hero hero-empty","aria-labelledby":"hero-h"},za={class:"hero-main"},xa=ie({__name:"ZjazdHero",props:{meeting:{},isCurrent:{type:Boolean},schedule:{},deadlines:{},readings:{},materials:{},now:{},checklist:{}},setup(a){const r=a,e=v(()=>$t(r.meeting?.notes)),o=v(()=>wt(r.meeting?.notes)),l=v(()=>r.meeting?ea(r.meeting,r.isCurrent,r.deadlines,r.now):[]),i=v(()=>r.meeting&&r.materials?oa(r.meeting,r.schedule,r.readings,r.materials):null),c=v(()=>({name:"schedule",query:{zjazd:r.meeting?.number}}));return(y,d)=>{const k=lt("router-link");return a.meeting?(n(),s("section",{key:0,class:ce(["card hero",{hl:a.isCurrent}]),"aria-labelledby":"hero-h"},[t("div",la,[t("span",ia,m(a.isCurrent?"Trwa zjazd":"Najbliższy zjazd"),1),t("h2",ra,"Zjazd "+m(a.meeting.number),1),t("p",ua,[J(m(p(kt)(a.meeting.starts_on,a.meeting.ends_on))+" ",1),e.value?(n(),s("span",{key:0,class:ce(["badge",e.value==="online"?"online":"onsite"])},m(e.value),3)):I("",!0)]),o.value?(n(),s("p",ca,m(o.value),1)):I("",!0),t("ul",da,[(n(!0),s(K,null,ee(l.value,f=>(n(),s("li",{key:f.caption},[t("span",ma,m(f.value),1),t("span",va,m(f.caption),1)]))),128))]),a.checklist?(n(),ve(k,{key:1,class:"hero-prep",to:`/checklisty/${a.checklist.id}`,"aria-label":"Przygotowanie do zjazdu"},{default:me(()=>[t("span",pa,"Przygotowanie · "+m(p(gt)(a.checklist.progress)),1),t("span",{class:"progress-bar",role:"progressbar","aria-valuenow":a.checklist.progress.percent,"aria-valuemin":"0","aria-valuemax":"100"},[t("span",{style:qe({width:a.checklist.progress.percent+"%"})},null,4)],8,fa)]),_:1},8,["to"])):I("",!0),B(k,{class:"btn hero-btn",to:c.value},{default:me(()=>[...d[0]||(d[0]=[J("Zobacz plan zjazdu",-1)])]),_:1},8,["to"])]),t("div",ya,[t("span",ha,m(i.value?.source==="courses"?"Czytaj teraz":"Do przeczytania na zjazd"),1),i.value?(n(),s(K,{key:0},[i.value.items.length?(n(),s("ul",ba,[(n(!0),s(K,null,ee(i.value.items,f=>(n(),s("li",{key:f.key},[f.href?(n(),s("a",{key:0,class:"hero-read-title",href:f.href,target:"_blank",rel:"noopener"},m(f.title),9,_a)):(n(),ve(k,{key:1,class:"hero-read-title",to:f.to},{default:me(()=>[J(m(f.title),1)]),_:2},1032,["to"])),f.meta?(n(),s("span",ka,m(f.meta),1)):I("",!0)]))),128)),i.value.more>0?(n(),s("li",ga,[B(k,{to:i.value.moreTo},{default:me(()=>[J("+ "+m(i.value.more)+" więcej",1)]),_:1},8,["to"])])):I("",!0)])):(n(),s("p",$a,m(i.value.source==="done"?"Wszystko na ten zjazd przeczytane.":"Nic do przeczytania na ten zjazd."),1))],64)):I("",!0)])],2)):(n(),s("section",wa,[t("div",za,[d[2]||(d[2]=t("h2",{id:"hero-h",class:"hero-empty-h"},"Brak zaplanowanych zjazdów",-1)),d[3]||(d[3]=t("p",{class:"muted"},"Plan kolejnych zjazdów pojawi się tutaj, gdy zostanie opublikowany.",-1)),B(k,{class:"btn hero-btn",to:"/plan"},{default:me(()=>[...d[1]||(d[1]=[J("Cały plan",-1)])]),_:1})])]))}}});function ct(a){const r=a.indexOf("@");return r>0?a.slice(0,r):a}function $e(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";if(e&&a?.is_bot)return e;if(e&&o)return`${e} ${o[0]}.`;if(e)return e;if(a?.handle)return`@${a.handle}`;const l=r.trim();return l?ct(l):"Nieznana osoba"}function Ne(a,r=""){return[a?.name?.trim(),a?.surname?.trim()].filter(Boolean).join(" ")||$e(a,r)}function dt(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";let l="";return e||o?l=e.slice(0,1)+o.slice(0,1):a?.handle?l=a.handle.slice(0,2):l=ct(r.trim()).slice(0,2),(l||"?").toLocaleUpperCase("pl-PL")}function Ia(a){return Math.abs(Math.trunc(a))%8+1}function ja(a,r=new Date){const e=Re(a,r);if(e===0)return"DZIŚ";if(e===-1)return"WCZORAJ";const o=ze(a).slice(0,4);return(o===ze(r).slice(0,4)?Be(a):`${Be(a)} ${o}`).toLocaleUpperCase("pl-PL")}const Ca=300*1e3;function Ea(a,r=new Date){const e=[];let o=null,l="";for(const i of a){const c=ze(i.created_at),y=c!==l;y&&e.push({kind:"day",key:`day-${c}`,label:ja(i.created_at,r)});const d=!y&&o!==null&&o.sender_id===i.sender_id&&Date.parse(i.created_at)-Date.parse(o.created_at)<=Ca;e.push({kind:"message",key:`m-${i.id}`,message:i,followUp:d}),o=i,l=c}return e}function He(a){return a.toLocaleLowerCase("pl-PL").replace(/ł/g,"l").normalize("NFD").replace(/\p{Diacritic}/gu,"")}function Qe(a,r,e){const o=He(r.trim()),l=[];for(const i of a){if(i.id===e)continue;const c=He(i.name??""),y=He(i.surname??"");(!o||c.startsWith(o)||y.startsWith(o)||`${c} ${y}`.startsWith(o))&&l.push(i)}return l.sort((i,c)=>Ne(i).localeCompare(Ne(c),"pl"))}const Ta=10;function Da(a,r){const e=a.slice(0,Ta).map(l=>$e(r.get(l))),o=a.length-e.length;return o>0?`${e.join(", ")} i ${o} innych`:e.join(", ")}const st=' target="_blank" rel="noopener noreferrer nofollow"',mt=/(?"'`]+/gi;function pt(a,r){if(r(a))return{handle:a,rest:""};const e=a.replace(/[.-]+$/,"");return e.length>=2&&e!==a&&r(e)?{handle:e,rest:a.slice(e.length)}:null}function Ba(a){let r=a;for(;;){const e=r.at(-1);if(!e)break;if(`.,;:!?'"]}`.includes(e)){r=r.slice(0,-1);continue}if(e===")"&&(r.match(/\(/g)?.length??0)<(r.match(/\)/g)?.length??0)){r=r.slice(0,-1);continue}break}return{url:r,rest:a.slice(r.length)}}function La(a,r=new Map){if(!a)return"";const e=[],o=c=>c.replace(/\u0000(\d+)\u0000/g,(y,d)=>e[Number(d)]??""),l=c=>`\0${e.push(o(c))-1}\0`;let i=a.replace(/\r\n?/g,` `).replace(/\u0000/g,"");return i=i.replace(vt,(c,y)=>l(`${we(y)}`)),i=i.replace(Sa,(c,y,d)=>{if(d.includes("\0"))return c;const k=et(d),f=tt(we(y));if(!k)return l(f);const u=/^https?:/i.test(k)?st:"";return l(`${f}`)}),i=i.replace(Ma,c=>{if(c.includes("\0"))return c;const{url:y,rest:d}=Ba(c),k=et(y);return k?l(`${we(y)}`)+d:c}),i=i.replace(mt,(c,y)=>{const d=pt(y,u=>r.has(u));if(!d)return c;const k=r.get(d.handle),f=`@${$e(k)}`;return l(`${we(f)}`)+d.rest}),i=tt(we(i)).replace(/\n/g,"
"),o(i)}function Na(a,r){if(!a||!r)return!1;const e=a.replace(vt," ");for(const o of e.matchAll(mt))if(pt(o[1],l=>l===r))return!0;return!1}function Ra(a,r){const e=a.slice(0,Math.max(0,r)),o=/(^|\s)@([^\s@]*)$/u.exec(e);return o?{start:e.length-o[2].length-1,query:o[2]}:null}function qa(a,r,e){const o=a.slice(0,r.start),l=a.slice(r.end),i=`@${e}`;return l.startsWith(" ")?{text:o+i+l,caret:o.length+i.length+1}:{text:`${o}${i} ${l}`,caret:o.length+i.length+1}}function Ge(a){const r=$(!1);if(typeof window>"u"||typeof window.matchMedia!="function")return r;const e=window.matchMedia(a);r.value=e.matches;const o=l=>{r.value=l.matches};return e.addEventListener("change",o),zt()&&xt(()=>e.removeEventListener("change",o)),r}function Aa(a){return Ge(`(min-width: ${a}px)`)}const Wa={class:"embed-main"},Pa={class:"embed-type"},Ua={class:"embed-title"},Oa={key:0,class:"embed-meta"},Ha={key:1,class:"embed-card static"},Ka={class:"embed-main"},Fa={class:"embed-type"},Za={class:"embed-title"},Va={key:0,class:"embed-meta"},Qa={key:2,class:"embed-card unavailable"},Xa={class:"embed-main"},Ya={class:"embed-type"},Ga={key:3,class:"embed-card loading","aria-busy":"true"},Ja={class:"embed-main"},en={class:"embed-type"},ft=ie({__name:"EmbedCard",props:{embedRef:{},item:{},static:{type:Boolean}},setup(a){const r=a,e=v(()=>it[r.embedRef.type]),o=v(()=>r.item===void 0),l=v(()=>r.item??null),i=v(()=>l.value?rt(l.value):""),c=v(()=>l.value?jt(l.value):""),y=v(()=>l.value?Ct(l.value):null),d=v(()=>l.value?Et(l.value):"");return(k,f)=>l.value&&!a.static?(n(),ve(p(It),{key:0,class:"embed-card",to:d.value},{default:me(()=>[t("span",Wa,[t("span",Pa,m(e.value),1),t("span",Ua,m(i.value),1),c.value?(n(),s("span",Oa,m(c.value),1)):I("",!0)]),y.value?(n(),s("span",{key:0,class:ce(["badge",{warn:y.value.warn}])},m(y.value.text),3)):I("",!0)]),_:1},8,["to"])):l.value?(n(),s("span",Ha,[t("span",Ka,[t("span",Fa,m(e.value),1),t("span",Za,m(i.value),1),c.value?(n(),s("span",Va,m(c.value),1)):I("",!0)]),y.value?(n(),s("span",{key:0,class:ce(["badge",{warn:y.value.warn}])},m(y.value.text),3)):I("",!0)])):o.value?(n(),s("span",Ga,[t("span",Ja,[t("span",en,m(e.value),1),f[2]||(f[2]=t("span",{class:"embed-title"},[t("span",{class:"skeleton embed-skeleton","aria-label":"Wczytywanie"})],-1)),f[3]||(f[3]=t("span",{class:"embed-meta"}," ",-1))])])):(n(),s("div",Qa,[t("span",Xa,[t("span",Ya,m(e.value),1),f[0]||(f[0]=t("span",{class:"embed-title"},"Element niedostępny",-1)),f[1]||(f[1]=t("span",{class:"embed-meta"},"Ten element usunięto albo nie masz do niego dostępu.",-1))])]))}}),tn=["aria-labelledby"],an={class:"chat-dialog-head"},nn=["id"],sn={class:"embed-tabs",role:"tablist","aria-label":"Rodzaj elementu"},on=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ln=["id","aria-labelledby"],rn={class:"field"},un=["for"],cn=["id","placeholder"],dn={class:"picker-results"},mn={key:0,class:"embed-searching",role:"status"},vn={key:1,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Szukam…"},pn={key:2,class:"notice error",role:"alert"},fn={key:3,class:"empty"},yn={key:4,class:"empty"},hn={key:5,class:"picker-rows"},bn=["aria-disabled","onClick"],_n={key:0,class:"embed-staged"},kn=250,gn=ie({__name:"EmbedPicker",props:{staged:{}},emits:["pick"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=[{type:"deadline",label:"Terminy",placeholder:"Szukaj terminu…"},{type:"class",label:"Zajęcia",placeholder:"Szukaj zajęć…"},{type:"reading",label:"Lektury",placeholder:"Szukaj lektury…"}],c=Ee(),y=$(null),d=$(null),k=$([]),f=$("deadline"),u=$(""),h=$(null),j=$("idle"),O=$("");let F=0,E=null,M=null,C=!1;const R=v(()=>i.find(D=>D.type===f.value)??i[0]),A=v(()=>new Set(o.staged));async function q(){E&&clearTimeout(E),E=null;const D=++F,U=f.value,_=u.value.trim();j.value="loading";try{const x=await ut.embeds(U,_);if(D!==F)return;h.value=Array.isArray(x)?x.filter(W=>W&&W.type===U):[],O.value=_,j.value="ready"}catch{if(D!==F)return;j.value="error"}}function se(){E&&clearTimeout(E),E=setTimeout(()=>{q()},kn)}le(u,se);function Q(D,U=!1){f.value!==D&&(f.value=D,h.value=null,q()),U&&Y(()=>k.value[i.findIndex(_=>_.type===D)]?.focus())}function te(D,U){let _=-1;D.key==="ArrowRight"?_=(U+1)%i.length:D.key==="ArrowLeft"?_=(U-1+i.length)%i.length:D.key==="Home"?_=0:D.key==="End"&&(_=i.length-1),!(_<0)&&(D.preventDefault(),Q(i[_].type,!0))}function V(){M=document.activeElement instanceof HTMLElement?document.activeElement:null,C=!1,u.value="",h.value=null,y.value?.showModal(),q(),Y(()=>d.value?.focus())}function ae(){y.value?.close()}function de(){E&&clearTimeout(E),E=null,F++,C||M?.focus(),M=null}function L(D){D.target===y.value&&ae()}function S(D){return A.value.has(Ie(D))}function N(D){S(D)||(C=!0,ae(),l("pick",D))}return Ce(()=>{E&&clearTimeout(E)}),r({open:V}),(D,U)=>(n(),s("dialog",{ref_key:"dialog",ref:y,class:"chat-dialog embed-picker","aria-labelledby":`embed-h-${p(c)}`,onClose:de,onClick:L},[t("div",an,[t("h2",{id:`embed-h-${p(c)}`,class:"chat-dialog-title"},"Podepnij do wiadomości",8,nn),t("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:ae},[B(ne,{name:"close"})])]),t("div",sn,[(n(),s(K,null,ee(i,(_,x)=>t("button",{id:`embed-tab-${p(c)}-${_.type}`,key:_.type,ref_for:!0,ref_key:"tabEls",ref:k,class:"embed-tab",type:"button",role:"tab","aria-selected":f.value===_.type?"true":"false","aria-controls":`embed-panel-${p(c)}`,tabindex:f.value===_.type?0:-1,onClick:W=>Q(_.type),onKeydown:W=>te(W,x)},m(_.label),41,on)),64))]),t("div",{id:`embed-panel-${p(c)}`,class:"embed-panel",role:"tabpanel","aria-labelledby":`embed-tab-${p(c)}-${f.value}`},[t("div",rn,[t("label",{for:`embed-q-${p(c)}`},"Szukaj",8,un),Ae(t("input",{id:`embed-q-${p(c)}`,ref_key:"search",ref:d,"onUpdate:modelValue":U[0]||(U[0]=_=>u.value=_),type:"text",autocomplete:"off",placeholder:R.value.placeholder,onKeydown:U[1]||(U[1]=Tt(Pe(()=>{},["prevent"]),["enter"]))},null,40,cn),[[We,u.value]])]),t("div",dn,[j.value==="loading"&&h.value?(n(),s("p",mn,"Szukam…")):I("",!0),j.value==="loading"&&!h.value?(n(),s("div",vn,[...U[2]||(U[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):j.value==="error"?(n(),s("div",pn,[U[3]||(U[3]=J(" Nie udało się wczytać wyników. ",-1)),t("button",{class:"linkish",type:"button",onClick:q},"Spróbuj ponownie")])):h.value&&!h.value.length&&O.value?(n(),s("p",fn,"Nic nie znaleziono dla „"+m(O.value)+"”.",1)):h.value&&!h.value.length?(n(),s("p",yn,"Nic tu jeszcze nie ma.")):h.value?(n(),s("ul",hn,[(n(!0),s(K,null,ee(h.value,_=>(n(),s("li",{key:`${_.type}:${_.id}`},[t("button",{class:"picker-row embed-pick",type:"button","aria-disabled":S(_)?"true":void 0,onClick:x=>N(_)},[B(ft,{"embed-ref":_,item:_,static:""},null,8,["embed-ref","item"]),S(_)?(n(),s("span",_n,"podpięte")):I("",!0)],8,bn)]))),128))])):I("",!0)])],8,ln)],40,tn))}}),Me=ie({__name:"Avatar",props:{userId:{},member:{default:null},fallback:{default:""},size:{default:32},me:{type:Boolean,default:!1}},setup(a){const r=a,e=v(()=>dt(r.member,r.fallback)),o=v(()=>r.me?void 0:{background:`var(--av-${Ia(r.userId)})`});return(l,i)=>(n(),s("span",{class:ce(["avatar",[`s${a.size}`,{me:a.me}]]),style:qe(o.value),"aria-hidden":"true"},m(e.value),7))}}),$n=["id"],wn={key:0,class:"mention-empty",role:"option","aria-disabled":"true","aria-selected":"false"},zn=["id","aria-selected","onMousedown","onMousemove"],xn={class:"mention-name"},In={class:"mention-handle"},jn=ie({__name:"MentionPopup",props:{id:{},options:{},active:{},query:{}},emits:["pick","hover"],setup(a,{emit:r}){const e=r;function o(l,i){return`${l}-opt-${i}`}return(l,i)=>(n(),s("ul",{id:a.id,class:"mention-pop",role:"listbox","aria-label":"Wspomnij osobę"},[a.options.length?I("",!0):(n(),s("li",wn,"Brak osób pasujących do „"+m(a.query)+"”.",1)),(n(!0),s(K,null,ee(a.options,(c,y)=>(n(),s("li",{id:o(a.id,y),key:c.id,class:ce(["mention-option",{active:y===a.active}]),role:"option","aria-selected":y===a.active?"true":"false",onMousedown:Pe(d=>e("pick",c),["prevent"]),onMousemove:d=>y!==a.active&&e("hover",y)},[B(Me,{"user-id":c.id,member:c,size:24},null,8,["user-id","member"]),t("span",xn,m(p(Ne)(c)),1),t("span",In,"@"+m(c.handle),1)],42,zn))),128))],8,$n))}}),Cn={key:0,class:"staging","aria-label":"Załączniki i podpięcia"},En=["title"],Tn={key:0,class:"staging-size"},Dn=["onClick"],Sn={key:2,class:"staging-size"},Mn=["aria-label","disabled","onClick"],Bn={class:"staging-type"},Ln=["title"],Nn=["aria-label","disabled","onClick"],ot=ie({__name:"StagingChips",props:{conversationId:{}},emits:["removed"],setup(a,{emit:r}){const e=a,o=r,l=ye(),i=v(()=>l.draft(e.conversationId));function c(k){const f=l.embedItem(k);return f===void 0?"Wczytywanie…":f===null?"Element niedostępny":rt(f)}function y(k){l.unstageEmbed(e.conversationId,k),o("removed")}function d(k){l.removeFile(e.conversationId,k.localId),o("removed")}return(k,f)=>i.value.files.length||i.value.embeds.length?(n(),s("ul",Cn,[(n(!0),s(K,null,ee(i.value.files,u=>(n(),s("li",{key:`file-${u.localId}`,class:ce(["staging-chip file",u.state])},[t("span",{class:"staging-name file-name",title:u.name},m(u.name),9,En),u.state==="uploading"?(n(),s("span",Tn,"Wysyłanie… "+m(u.progress)+"%",1)):u.state==="failed"?(n(),s(K,{key:1},[f[0]||(f[0]=t("span",{class:"staging-failed"},"Nie wysłano",-1)),t("button",{class:"linkish",type:"button",onClick:h=>p(l).retryUpload(a.conversationId,u.localId)},"Spróbuj ponownie",8,Dn)],64)):(n(),s("span",Sn,m(p(Fe)(u.size)),1)),t("button",{class:"staging-remove",type:"button","aria-label":`Usuń załącznik ${u.name}`,disabled:i.value.sending,onClick:h=>d(u)},[B(ne,{name:"close"})],8,Mn),u.state==="uploading"?(n(),s("span",{key:3,class:"staging-progress",style:qe({width:`${u.progress}%`}),"aria-hidden":"true"},null,4)):I("",!0)],2))),128)),(n(!0),s(K,null,ee(i.value.embeds,u=>(n(),s("li",{key:p(Ie)(u),class:"staging-chip embed"},[t("span",Bn,m(p(it)[u.type]),1),t("span",{class:"staging-name embed-name",title:c(u)},m(c(u)),9,Ln),t("button",{class:"staging-remove",type:"button","aria-label":`Usuń podpięcie ${c(u)}`,disabled:i.value.sending,onClick:h=>y(u)},[B(ne,{name:"close"})],8,Nn)]))),128))])):I("",!0)}}),Rn={key:0,class:"error-text",role:"alert"},qn={class:"composer-row"},An={key:0,class:"composer-add"},Wn=["aria-expanded","disabled"],Pn=["disabled","title","onClick"],Un={class:"composer-field"},On=["rows","placeholder","readonly","aria-expanded","aria-activedescendant"],Hn={key:2,class:"composer-tools"},Kn=["disabled"],Fn=["title","disabled"],Zn=["disabled"],Vn=["aria-busy","disabled"],Qn=["aria-busy","disabled"],Ke="Możesz podpiąć najwyżej 3 elementy do jednej wiadomości.",Xn=24,Yn=6,Gn=ie({__name:"ChatComposer",props:{conversationId:{},label:{},placeholder:{}},emits:["sent"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=ye(),c=Ee(),y=`composer-${c}`,d=`composer-hint-${c}`,k=`mentions-${c}`,f=$(null),u=Ge("(min-width: 1100px) and (pointer: fine)"),h=v(()=>i.draft(o.conversationId)),j=$(""),O=v(()=>h.value.error||j.value),F=v({get:()=>h.value.text,set:b=>{j.value="",i.setDraftText(o.conversationId,b),b.trim()&&i.emitTyping(o.conversationId,b)}}),E=v(()=>i.canSend(o.conversationId)),M=$(null);function C(){h.value.sending||M.value?.click()}function R(){const b=M.value;b?.files?.length&&(j.value="",i.uploadFiles(o.conversationId,[...b.files]),b.value="",Y(Te))}const A=`composer-menu-${c}`,q=$(!1),se=$(null),Q=$([]);function te(){q.value=!0,Y(()=>Q.value[0]?.focus())}function V(b=!0){q.value&&(q.value=!1,b&&Y(()=>se.value?.focus()))}function ae(b){const z=Q.value.filter(oe=>!oe.disabled),H=z.indexOf(document.activeElement);if(b.key==="Escape")b.preventDefault(),b.stopPropagation(),V();else if(b.key==="ArrowDown"||b.key==="ArrowUp"){if(b.preventDefault(),!z.length)return;const oe=b.key==="ArrowDown"?(H+1)%z.length:(H-1+z.length)%z.length;z[oe]?.focus()}else b.key==="Home"||b.key==="End"?(b.preventDefault(),z[b.key==="Home"?0:z.length-1]?.focus()):b.key==="Tab"&&V(!1)}function de(){V(!1),C()}function L(){V(!1),se.value?.focus(),W()}const S=v(()=>[{label:"Dołącz plik",icon:"paperclip",disabled:!1,title:void 0,run:de},{label:"Podepnij termin, zajęcia lub lekturę",icon:"calendar",disabled:_.value,title:_.value?Ke:void 0,run:L}]);function N(b){const z=b.target;z instanceof Node&&(se.value?.contains(z)||Q.value.some(H=>H.contains(z)))||V(!1)}le(q,b=>{b?document.addEventListener("pointerdown",N,!0):document.removeEventListener("pointerdown",N,!0)}),le(u,()=>V(!1)),Ce(()=>document.removeEventListener("pointerdown",N,!0));const D=$(null),U=v(()=>h.value.embeds.map(Ie)),_=v(()=>h.value.embeds.length>=i.maxEmbeds),x=v(()=>_.value?Ke:"Podepnij termin, zajęcia lub lekturę");function W(){_.value||h.value.sending||D.value?.open()}function P(b){j.value="",i.stageEmbed(o.conversationId,{type:b.type,id:b.id},b),Y(Te)}function re(b){if(h.value.sending)return;const z=b.clipboardData?.getData("text/plain")??"";if(!z)return;const H=Dt(z,window.location.origin);if(!H.refs.length)return;const oe=new Set(U.value);let De=0,xe=0;for(const Ue of H.refs)oe.has(Ie(Ue))||(i.stageEmbed(o.conversationId,Ue)?(oe.add(Ie(Ue)),De++):xe++);H.insertText===""&&(De>0||xe===0)&&b.preventDefault(),xe>0&&setTimeout(()=>j.value=Ke)}function he(){const b=f.value;if(!b)return;b.style.height="auto";const z=getComputedStyle(b),H=parseFloat(z.paddingTop)+parseFloat(z.paddingBottom),oe=Xn*(u.value?8:4)+H;b.style.height=`${Math.min(b.scrollHeight,oe)}px`,b.style.overflowY=b.scrollHeight>oe?"auto":"hidden"}le([F,u],()=>{Y(he)}),Xe(he);const X=$(null),ue=$(0);let pe=null;const be=v(()=>X.value?Qe(i.members.values(),X.value.query,i.userId).slice(0,Yn):[]),g=v(()=>X.value!==null&&i.membersState==="ready"),w=v(()=>g.value&&be.value.length?`${k}-opt-${ue.value}`:void 0);function Z(){const b=f.value;if(!b)return;const z=b.selectionStart===b.selectionEnd?Ra(b.value,b.selectionStart??0):null;if(!z){pe=null,X.value=null;return}z.start!==pe&&((!X.value||X.value.start!==z.start||X.value.query!==z.query)&&(ue.value=0),X.value=z)}function _e(){X.value&&(pe=X.value.start),X.value=null}function T(b){const z=f.value,H=X.value;if(!z||!H||!b.handle)return;const oe=qa(z.value,{start:H.start,end:z.selectionStart??H.start+H.query.length+1},b.handle);F.value=oe.text,X.value=null,pe=null,Y(()=>{z.focus(),z.setSelectionRange(oe.caret,oe.caret)})}function fe(){const b=f.value;if(!b)return;const z=b.selectionStart??b.value.length,H=b.selectionEnd??z,oe=b.value.slice(0,z),De=oe===""||/\s$/.test(oe)?"@":" @";F.value=oe+De+b.value.slice(H),i.loadMembers(),Y(()=>{const xe=z+De.length;b.focus(),b.setSelectionRange(xe,xe),pe=null,Z()})}function G(b){if(!g.value)return!1;const z=be.value.length;switch(b.key){case"ArrowDown":return z&&(ue.value=(ue.value+1)%z),!0;case"ArrowUp":return z&&(ue.value=(ue.value-1+z)%z),!0;case"Enter":return b.shiftKey&&!z?!1:(z?T(be.value[ue.value]):_e(),!0);case"Tab":return z?(T(be.value[ue.value]),!0):(_e(),!1);case"Escape":return b.stopPropagation(),_e(),!0;default:return!1}}le(()=>o.conversationId,()=>{X.value=null,pe=null});async function ke(){E.value&&await i.send(o.conversationId)&&l("sent")}function ht(b){if(!b.isComposing){if(G(b)){b.preventDefault();return}b.key!=="Enter"||b.shiftKey||(b.preventDefault(),ke())}}function bt(b){(["ArrowLeft","ArrowRight","Home","End"].includes(b.key)||!g.value&&["ArrowUp","ArrowDown"].includes(b.key))&&Z()}function Te(){f.value?.focus()}return r({focus:Te}),(b,z)=>(n(),s("form",{class:ce(["composer",{compact:!p(u)}]),onSubmit:Pe(ke,["prevent"])},[t("label",{class:ce(p(u)?"composer-label":"sr-only"),for:y},m(a.label),3),O.value?(n(),s("p",Rn,m(O.value),1)):I("",!0),p(u)?I("",!0):(n(),ve(ot,{key:1,"conversation-id":a.conversationId,onRemoved:Te},null,8,["conversation-id"])),t("div",qn,[p(u)?I("",!0):(n(),s("div",An,[t("button",{ref_key:"menuButton",ref:se,class:"composer-plus",type:"button","aria-label":"Dodaj do wiadomości","aria-haspopup":"menu","aria-expanded":q.value?"true":"false","aria-controls":A,disabled:h.value.sending,onClick:z[0]||(z[0]=H=>q.value?V():te())},[B(ne,{name:"plus"})],8,Wn),q.value?(n(),s("div",{key:0,id:A,class:"composer-menu",role:"menu","aria-label":"Dodaj do wiadomości",onKeydown:ae},[(n(!0),s(K,null,ee(S.value,H=>(n(),s("button",{key:H.label,ref_for:!0,ref_key:"menuItems",ref:Q,class:"composer-menu-item",type:"button",role:"menuitem",tabindex:"-1",disabled:H.disabled,title:H.title,onClick:H.run},[B(ne,{name:H.icon},null,8,["name"]),J(m(H.label),1)],8,Pn))),128))],32)):I("",!0)])),t("div",Un,[p(u)?(n(),ve(ot,{key:0,"conversation-id":a.conversationId,onRemoved:Te},null,8,["conversation-id"])):I("",!0),g.value&&X.value?(n(),ve(jn,{key:1,id:k,options:be.value,active:ue.value,query:X.value.query,onPick:T,onHover:z[1]||(z[1]=H=>ue.value=H)},null,8,["options","active","query"])):I("",!0),Ae(t("textarea",{id:y,ref_key:"input",ref:f,"onUpdate:modelValue":z[2]||(z[2]=H=>F.value=H),rows:p(u)?3:1,placeholder:p(u)?"Napisz wiadomość…":a.placeholder,enterkeyhint:"send",readonly:h.value.sending,"aria-describedby":d,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":k,"aria-expanded":g.value?"true":"false","aria-activedescendant":w.value,onKeydown:ht,onKeyup:bt,onInput:Z,onClick:Z,onPaste:re,onBlur:z[3]||(z[3]=H=>X.value=null)},null,40,On),[[We,F.value]]),p(u)?(n(),s("div",Hn,[t("button",{class:"composer-tool",type:"button","aria-label":"Dołącz plik",title:"Dołącz plik",disabled:h.value.sending,onClick:C},[B(ne,{name:"paperclip"})],8,Kn),t("button",{class:"composer-tool",type:"button","aria-label":"Podepnij termin, zajęcia lub lekturę",title:x.value,disabled:h.value.sending||_.value,onClick:W},[B(ne,{name:"calendar"})],8,Fn),t("button",{class:"composer-tool",type:"button","aria-label":"Wspomnij osobę",title:"Wspomnij osobę",disabled:h.value.sending,onClick:fe},[B(ne,{name:"at"})],8,Zn),z[5]||(z[5]=t("span",{class:"composer-tools-gap"},null,-1)),t("button",{class:"btn primary small composer-send",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":h.value.sending?"true":void 0,disabled:!E.value},[z[4]||(z[4]=J(" Wyślij",-1)),B(ne,{name:"arrow-right"})],8,Vn)])):I("",!0)]),p(u)?I("",!0):(n(),s("button",{key:1,class:"composer-send round",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":h.value.sending?"true":void 0,disabled:!E.value},[B(ne,{name:"arrow-up"})],8,Qn))]),t("span",{id:d,class:"sr-only"},"Enter wysyła, Shift+Enter dodaje nową linię."),t("input",{ref_key:"fileInput",ref:M,class:"sr-only",type:"file",multiple:"",tabindex:"-1","aria-hidden":"true",onChange:R},null,544),B(gn,{ref_key:"picker",ref:D,staged:U.value,onPick:P},null,8,["staged"])],34))}});function yt(a,r,e){if(e<=0)return null;switch(a){case"ArrowRight":return(r+1)%e;case"ArrowLeft":return(r-1+e)%e;case"Home":return 0;case"End":return e-1;default:return null}}const Jn={class:"chat-head"},es={class:"chat-head-row"},ts={class:"chat-head-name"},as={class:"eyebrow"},ns={class:"chat-title"},ss={class:"chat-presence","aria-hidden":"true"},os={key:0,class:"presence-stack"},ls={key:1,class:"presence-text"},is={class:"presence-text"},rs={class:"chat-tabs",role:"tablist","aria-label":"Rozmowy"},us=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],cs={key:0,class:"mention-badge"},ds={class:"sr-only"},ms={key:1,class:"unread-badge"},vs={"aria-hidden":"true"},ps={class:"sr-only"},fs={key:0,class:"chat-strip"},ys=ie({__name:"ChatHeader",props:{view:{},dmName:{},dmUserId:{},idBase:{}},emits:["select","back"],setup(a,{emit:r}){const e=a,o=r,l=[{key:"general",label:"# ogólny"},{key:"dms",label:"Wiadomości"}],i=E=>`${e.idBase}-tab-${E}`,c=ye(),y=v(()=>{switch(c.connection){case"connecting":return"Łączenie z czatem…";case"reconnecting":return"Ponowne łączenie…";case"unavailable":return"Czat bez aktualizacji na żywo — odświeżam co 15 s.";default:return""}}),d=v(()=>({general:{unread:c.generalId===null?0:c.unreadOf(c.generalId),mentions:c.totalMentions},dms:{unread:c.dmUnread,mentions:0}})),k=v(()=>c.othersOnline.slice(0,3)),f=v(()=>Math.max(0,c.othersOnline.length-3)),u=v(()=>e.view==="dm"&&e.dmUserId!=null&&c.isOnline(e.dmUserId)),h=v(()=>e.view==="general"?"general":"dms"),j=v(()=>e.view==="general"?"Czat roku":e.view==="dms"?"Wiadomości":"Wiadomość prywatna"),O=v(()=>e.view==="general"?"# ogólny":e.view==="dms"?"Wiadomości":e.dmName??"");function F(E,M){const C=yt(E.key,M,l.length);C!==null&&(E.preventDefault(),o("select",l[C].key),Y(()=>document.getElementById(i(l[C].key))?.focus()))}return(E,M)=>(n(),s(K,null,[t("header",Jn,[t("div",es,[a.view==="dm"?(n(),s("button",{key:0,class:"icon-btn chat-back",type:"button","aria-label":"Wróć do listy wiadomości",onClick:M[0]||(M[0]=C=>o("back"))},[B(ne,{name:"arrow-left"})])):I("",!0),t("div",ts,[t("span",as,m(j.value),1),t("h2",ns,m(O.value),1)]),t("div",ss,[a.view==="general"&&p(c).presenceAvailable?(n(),s(K,{key:0},[k.value.length?(n(),s("span",os,[(n(!0),s(K,null,ee(k.value,C=>(n(),ve(Me,{key:C,"user-id":C,member:p(c).members.get(C),size:24},null,8,["user-id","member"]))),128))])):I("",!0),f.value?(n(),s("span",ls,"+"+m(f.value),1)):I("",!0),M[1]||(M[1]=t("span",{class:"presence-dot"},null,-1)),t("span",is,m(p(c).onlineCount>1?`${p(c).onlineCount} online`:"tylko Ty"),1)],64)):u.value?(n(),s(K,{key:1},[M[2]||(M[2]=t("span",{class:"presence-dot"},null,-1)),M[3]||(M[3]=t("span",{class:"presence-text"},"online",-1))],64)):I("",!0)])]),t("div",rs,[(n(),s(K,null,ee(l,(C,R)=>t("button",{id:i(C.key),key:C.key,class:"chat-tab",type:"button",role:"tab","aria-selected":h.value===C.key,"aria-controls":`${a.idBase}-body`,tabindex:h.value===C.key?0:-1,onClick:A=>o("select",C.key),onKeydown:A=>F(A,R)},[J(m(C.label)+" ",1),d.value[C.key].mentions>0?(n(),s("span",cs,[M[4]||(M[4]=t("span",{"aria-hidden":"true"},"@",-1)),t("span",ds,", "+m(p(St)(d.value[C.key].mentions)),1)])):I("",!0),p(je)(d.value[C.key].unread)?(n(),s("span",ms,[t("span",vs,m(p(je)(d.value[C.key].unread)),1),t("span",ps,", "+m(p(Ye)(d.value[C.key].unread)),1)])):I("",!0)],40,us)),64))])]),y.value?(n(),s("p",fs,m(y.value),1)):I("",!0)],64))}}),hs={class:"dm-list"},bs={class:"dm-new"},_s={key:0,class:"chat-skeletons dm-skeletons","aria-busy":"true","aria-label":"Wczytywanie rozmów"},ks={key:1,class:"notice error dm-notice",role:"alert"},gs={key:2,class:"empty chat-empty dm-empty"},$s={key:3,class:"dm-rows"},ws=["onClick"],zs={class:"dm-text"},xs={class:"dm-name"},Is={class:"dm-preview"},js={class:"dm-meta"},Cs=["datetime"],Es={key:1,class:"unread-badge"},Ts={"aria-hidden":"true"},Ds={class:"sr-only"},Ss=ie({__name:"DmList",emits:["compose"],setup(a,{emit:r}){const e=r,o=ye(),l=v(()=>o.dmRows),i=v(()=>!l.value.length&&(o.bootstrapState==="loading"||o.bootstrapState==="idle")),c=v(()=>!l.value.length&&o.bootstrapState==="error");function y(f){return $e(o.members.get(f.other_user_id))}function d(f){const u=f.last_message;return u?u.sender_id===o.userId?`Ty: ${u.content}`:u.content:""}function k(f){const u=f.last_message?.created_at;return u?ze(u)===ze(new Date)?Le(u):Mt(u):""}return(f,u)=>(n(),s("div",hs,[t("div",bs,[t("button",{class:"btn small",type:"button",onClick:u[0]||(u[0]=h=>e("compose"))},[B(ne,{name:"plus"}),u[2]||(u[2]=J("Nowa wiadomość",-1))])]),i.value?(n(),s("div",_s,[...u[3]||(u[3]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):c.value?(n(),s("div",ks,[u[4]||(u[4]=J(" Nie udało się wczytać rozmów. ",-1)),t("button",{class:"linkish",type:"button",onClick:u[1]||(u[1]=h=>p(o).bootstrap())},"Spróbuj ponownie")])):l.value.length?(n(),s("ul",$s,[(n(!0),s(K,null,ee(l.value,h=>(n(),s("li",{key:h.id},[t("button",{class:ce(["dm-row",{unread:h.unread>0}]),type:"button",onClick:j=>p(o).openDm(h.id)},[B(Me,{"user-id":h.other_user_id,member:p(o).members.get(h.other_user_id)},null,8,["user-id","member"]),t("span",zs,[t("span",xs,m(y(h)),1),t("span",Is,m(d(h)),1)]),t("span",js,[h.last_message?(n(),s("time",{key:0,datetime:h.last_message.created_at},m(k(h)),9,Cs)):I("",!0),p(je)(h.unread)?(n(),s("span",Es,[t("span",Ts,m(p(je)(h.unread)),1),t("span",Ds,", "+m(p(Ye)(h.unread)),1)])):I("",!0)])],10,ws)]))),128))])):(n(),s("div",gs,[...u[5]||(u[5]=[t("p",{class:"chat-empty-h"},"Nie masz jeszcze wiadomości prywatnych",-1),t("p",null,"Kliknij „Nowa wiadomość”, wybierz osobę i napisz do niej.",-1)])]))]))}}),Ms=["aria-labelledby"],Bs={class:"chat-dialog-head"},Ls=["id"],Ns={class:"field"},Rs=["for"],qs=["id"],As={key:0,class:"error-text",role:"alert"},Ws={class:"picker-results"},Ps={key:0,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Wczytywanie osób"},Us={key:1,class:"notice error",role:"alert"},Os={key:2,class:"empty"},Hs={key:3,class:"empty"},Ks={key:4,class:"picker-rows"},Fs=["disabled","onClick"],Zs={class:"picker-name"},Vs=ie({__name:"MemberPicker",emits:["started"],setup(a,{expose:r,emit:e}){const o=e,l=ye(),i=Ee(),c=$(null),y=$(null),d=$(""),k=$(!1);let f=null,u=!1;const h=v(()=>Qe(l.members.values(),"",l.userId)),j=v(()=>Qe(l.members.values(),d.value,l.userId));function O(){f=document.activeElement instanceof HTMLElement?document.activeElement:null,u=!1,d.value="",l.dmError="",l.loadMembers(),c.value?.showModal(),Y(()=>y.value?.focus())}function F(){c.value?.close()}function E(){u||f?.focus(),f=null}function M(R){R.target===c.value&&F()}async function C(R){if(!k.value){k.value=!0;try{const A=await l.startDm(R);if(A===null)return;u=!0,F(),o("started",A)}finally{k.value=!1}}}return r({open:O}),(R,A)=>(n(),s("dialog",{ref_key:"dialog",ref:c,class:"chat-dialog","aria-labelledby":`picker-h-${p(i)}`,onClose:E,onClick:M},[t("div",Bs,[t("h2",{id:`picker-h-${p(i)}`,class:"chat-dialog-title"},"Nowa wiadomość",8,Ls),t("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:F},[B(ne,{name:"close"})])]),t("div",Ns,[t("label",{for:`picker-q-${p(i)}`},"Do kogo?",8,Rs),Ae(t("input",{id:`picker-q-${p(i)}`,ref_key:"search",ref:y,"onUpdate:modelValue":A[0]||(A[0]=q=>d.value=q),type:"text",autocomplete:"off",placeholder:"Wpisz imię lub nazwisko…"},null,8,qs),[[We,d.value]])]),p(l).dmError?(n(),s("p",As,m(p(l).dmError),1)):I("",!0),t("div",Ws,[p(l).membersState==="loading"&&!p(l).members.size?(n(),s("div",Ps,[...A[2]||(A[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):p(l).membersState==="error"&&!p(l).members.size?(n(),s("div",Us,[A[3]||(A[3]=J(" Nie udało się wczytać listy osób. ",-1)),t("button",{class:"linkish",type:"button",onClick:A[1]||(A[1]=q=>p(l).loadMembers(!0))},"Spróbuj ponownie")])):h.value.length?j.value.length?(n(),s("ul",Ks,[(n(!0),s(K,null,ee(j.value,q=>(n(),s("li",{key:q.id},[t("button",{class:"picker-row",type:"button",disabled:k.value,onClick:se=>C(q.id)},[B(Me,{"user-id":q.id,member:q,size:24},null,8,["user-id","member"]),t("span",Zs,m(p(Ne)(q)),1)],8,Fs)]))),128))])):(n(),s("p",Hs,"Nikt nie pasuje do „"+m(d.value.trim())+"”.",1)):(n(),s("p",Os,"Na czacie nie ma jeszcze innych osób."))])],40,Ms))}}),Qs=["aria-pressed","aria-label","title","onClick"],Xs={class:"reaction-emoji","aria-hidden":"true"},Ys={class:"reaction-count","aria-hidden":"true"},Gs={class:"reaction-add-wrap"},Js=["aria-expanded","aria-controls","disabled"],eo=["aria-label","tabindex","onClick","onFocus"],ge=6,to=ie({__name:"ReactionBar",props:{message:{}},emits:["closed"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=ye(),y=`reactions-${Ee()}`,d=$(null),k=$(null),f=$(null),u=$(!1),h=$(!1),j=$(0);let O=null;const F=v(()=>(o.message.reactions??[]).filter(L=>L.count>0).map(L=>{const S=i.userId!==null&&L.user_ids.includes(i.userId);return{key:L.key,count:L.count,mine:S,label:`${L.key} ${L.count}. ${S?"Cofnij swoją reakcję":"Dodaj swoją reakcję"}`,title:Da(L.user_ids,i.members)}})),E=v(()=>i.allowedReactions??[]),M=v(()=>E.value.length>0);function C(L){i.toggleReaction(o.message,L)}function R(){const L=d.value,S=L?.closest(".chat-list");if(!L||!S){h.value=!1;return}const N=Math.ceil(E.value.length/ge),D=N*36+(N-1)*4+16+2+8;h.value=L.getBoundingClientRect().top-S.getBoundingClientRect().topA()[j.value]?.focus())}function se(L){if(!M.value){i.loadReactions();return}O=L??k.value,j.value=0,R(),u.value=!0,document.addEventListener("pointerdown",te,!0),q()}function Q(L=!0){if(!u.value)return;u.value=!1,document.removeEventListener("pointerdown",te,!0);const S=O;O=null,L&&S?.focus(),l("closed")}function te(L){const S=L.target;if(S&&(f.value?.contains(S)||k.value?.contains(S)))return;const N=O;Q(!1),setTimeout(()=>{const D=document.activeElement;(!D||D===document.body||f.value?.contains(D))&&N?.focus()})}function V(L){C(L),Q()}function ae(){u.value?Q():se(k.value)}function de(L){const S=E.value.length;if(!S)return;let N=j.value;switch(L.key){case"Escape":L.preventDefault(),L.stopPropagation(),Q();return;case"ArrowRight":N=(j.value+1)%S;break;case"ArrowLeft":N=(j.value-1+S)%S;break;case"ArrowDown":N=j.value+ge=0?j.value-ge:Math.min(S-1,j.value%ge+Math.floor((S-1)/ge)*ge);break;case"Home":N=0;break;case"End":N=S-1;break;case"Tab":Q(!1);return;default:return}L.preventDefault(),j.value=N,q()}return Ce(()=>document.removeEventListener("pointerdown",te,!0)),r({openPicker:se}),(L,S)=>(n(),s("div",{ref_key:"root",ref:d,class:"reactions"},[(n(!0),s(K,null,ee(F.value,N=>(n(),s("button",{key:N.key,class:"reaction-chip",type:"button","aria-pressed":N.mine?"true":"false","aria-label":N.label,title:N.title,onClick:D=>C(N.key)},[t("span",Xs,m(N.key),1),t("span",Ys,m(N.count),1)],8,Qs))),128)),t("span",Gs,[t("button",{ref_key:"addBtn",ref:k,class:"reaction-add",type:"button","aria-label":"Dodaj reakcję","aria-haspopup":"true","aria-expanded":u.value?"true":"false","aria-controls":u.value?y:void 0,disabled:!M.value,onClick:ae},[B(ne,{name:"smile"})],8,Js),u.value?(n(),s("div",{key:0,id:y,ref_key:"pop",ref:f,class:ce(["reaction-pop",{below:h.value}]),role:"group","aria-label":"Dodaj reakcję",onKeydown:de},[(n(!0),s(K,null,ee(E.value,(N,D)=>(n(),s("button",{key:N,class:"reaction-pick",type:"button","aria-label":N,tabindex:D===j.value?0:-1,onClick:U=>V(N),onFocus:U=>j.value=D},m(N),41,eo))),128))],34)):I("",!0)])],512))}}),ao=["data-message-id"],no={class:"msg-gutter"},so=["datetime","title"],oo={class:"msg-content"},lo={key:0,class:"msg-head"},io={class:"msg-name"},ro={key:0,class:"msg-tag"},uo={key:1,class:"msg-tag me"},co=["datetime","title"],mo=["title"],vo={key:1,class:"sr-only"},po={key:2,class:"msg-deleted"},fo={class:"composer-field"},yo=["readonly"],ho={key:0,class:"error-text",role:"alert"},bo={class:"btn-row"},_o=["aria-busy"],ko=["disabled"],go=["innerHTML"],$o=["title"],wo={key:5,class:"msg-files"},zo=["aria-label","aria-busy","onClick"],xo={class:"msg-file-name"},Io={class:"msg-file-size"},jo={key:6,class:"msg-embeds"},Co={key:0,class:"msg-actions",role:"toolbar","aria-label":"Działania wiadomości"},Eo=["disabled"],Se=$(null),To=ie({__name:"ChatMessage",props:{message:{},followUp:{type:Boolean},author:{},meId:{}},emits:["delete"],setup(a,{emit:r}){const e=a,o=r,l=ye(),i=Ge("(hover: none)"),c=$(null),y=$(null),d=$(null),k=$(null),f=$(null),u=$(null),h=v(()=>e.meId!==null&&e.message.sender_id===e.meId),j=v(()=>$e(e.author,e.message.sender_name)),O=v(()=>Le(e.message.created_at)),F=v(()=>Ze(e.message.created_at)),E=v(()=>!!e.author?.is_bot),M=v(()=>!h.value&&Na(e.message.content,l.myHandle)),C=v(()=>e.message.edited_at?`Edytowano ${Ze(e.message.edited_at)}`:""),R=v(()=>(e.message.reactions??[]).some(T=>T.count>0)),A=$(!1),q=v(()=>Se.value===e.message.id),se=v(()=>!!l.allowedReactions?.length),Q=v(()=>!!e.message.deleted_at),te=v(()=>l.canEdit(e.message)),V=v(()=>l.canDelete(e.message)),ae=v(()=>Lt(e.message,l.maxEmbeds)),de=v(()=>!e.message.content||Nt(e.message.content,ae.value)),L=v(()=>e.message.attachments??[]),S=$(null),N=Bt();async function D(T){if(S.value===null){S.value=T.id;try{await ut.download(e.message.id,T.id,T.filename)}catch{N.show("Nie udało się pobrać pliku. Spróbuj ponownie.")}finally{S.value=null}}}const U=$(!1),_=$(""),x=$(!1),W=$(""),P=24;function re(){const T=u.value;if(!T)return;T.style.height="auto";const fe=getComputedStyle(T),G=P*8+parseFloat(fe.paddingTop)+parseFloat(fe.paddingBottom);T.style.height=`${Math.min(T.scrollHeight,G)}px`,T.style.overflowY=T.scrollHeight>G?"auto":"hidden"}async function he(){if(!te.value)return;_.value=e.message.content??"",W.value="",U.value=!0,Se.value=null,await Y();const T=u.value;T&&(re(),T.focus(),T.setSelectionRange(T.value.length,T.value.length))}function X(){U.value=!1,W.value="",Y(()=>k.value?.focus())}async function ue(){if(x.value)return;x.value=!0,W.value="";const T=await l.edit(e.message,_.value);if(x.value=!1,T){W.value=T;return}X()}function pe(T){if(!T.isComposing){if(T.key==="Escape"){T.preventDefault(),T.stopPropagation(),x.value||X();return}T.key==="Enter"&&!T.shiftKey&&(T.preventDefault(),ue())}}le(_,()=>{Y(re)}),le(Q,T=>{T&&(U.value=!1)});function be(){V.value&&o("delete",e.message,f.value)}async function g(){se.value&&(A.value=!0,await Y(),y.value?.openPicker(d.value))}function w(){A.value=!1}function Z(T){!i.value||T.target?.closest("a, button, textarea, input, .msg-actions")||(Se.value=q.value?null:e.message.id)}function _e(T){c.value&&T.target instanceof Node&&c.value.contains(T.target)||q.value&&(Se.value=null)}return le(q,T=>{T?document.addEventListener("pointerdown",_e,!0):document.removeEventListener("pointerdown",_e,!0)}),Ce(()=>{document.removeEventListener("pointerdown",_e,!0),q.value&&(Se.value=null)}),(T,fe)=>(n(),s("article",{ref_key:"root",ref:c,class:ce(["msg",{follow:a.followUp,"actions-open":q.value,"mentions-me":M.value}]),"data-message-id":a.message.id,onClick:Z},[t("div",no,[a.followUp?(n(),s("time",{key:1,class:"msg-time",datetime:a.message.created_at,title:F.value},m(O.value),9,so)):(n(),ve(Me,{key:0,"user-id":a.message.sender_id,member:a.author,fallback:a.message.sender_name,me:h.value},null,8,["user-id","member","fallback","me"]))]),t("div",oo,[a.followUp?(n(),s("span",vo,m(j.value)+", "+m(O.value)+":",1)):(n(),s("div",lo,[t("span",io,m(j.value),1),E.value?(n(),s("span",ro,"Bot")):h.value?(n(),s("span",uo,"Ty")):I("",!0),t("time",{class:"msg-time",datetime:a.message.created_at,title:F.value},m(O.value),9,co),a.message.edited_at?(n(),s("span",{key:2,class:"msg-edited",title:C.value},"(edytowano)",8,mo)):I("",!0)])),Q.value?(n(),s("p",po,"Wiadomość usunięta.")):U.value?(n(),s("form",{key:3,class:"msg-edit",onSubmit:Pe(ue,["prevent"])},[t("div",fo,[Ae(t("textarea",{ref_key:"editInput",ref:u,"onUpdate:modelValue":fe[0]||(fe[0]=G=>_.value=G),rows:"1","aria-label":"Edytuj wiadomość",readonly:x.value,onKeydown:pe},null,40,yo),[[We,_.value]])]),W.value?(n(),s("p",ho,m(W.value),1)):I("",!0),t("div",bo,[t("button",{class:"btn primary small",type:"submit","aria-busy":x.value?"true":void 0},"Zapisz zmiany",8,_o),t("button",{class:"btn ghost small",type:"button",disabled:x.value,onClick:X},"Anuluj edycję",8,ko)])],32)):(n(),s(K,{key:4},[de.value?I("",!0):(n(),s("div",{key:0,class:"msg-body prose",innerHTML:p(La)(a.message.content,p(l).membersByHandle)},null,8,go)),a.followUp&&a.message.edited_at?(n(),s("span",{key:1,class:"msg-edited",title:C.value},"(edytowano)",8,$o)):I("",!0)],64)),!Q.value&&L.value.length?(n(),s("ul",wo,[(n(!0),s(K,null,ee(L.value,G=>(n(),s("li",{key:G.id},[t("button",{class:"msg-file",type:"button","aria-label":`Pobierz ${G.filename} (${p(Fe)(G.size)})`,"aria-busy":S.value===G.id?"true":void 0,onClick:ke=>D(G)},[B(ne,{name:"file"}),t("span",xo,m(G.filename),1),t("span",Io,m(p(Fe)(G.size)),1)],8,zo)]))),128))])):I("",!0),!Q.value&&ae.value.length?(n(),s("div",jo,[(n(!0),s(K,null,ee(ae.value,G=>(n(),ve(ft,{key:p(Ie)(G),"embed-ref":G,item:p(l).embedItem(G)},null,8,["embed-ref","item"]))),128))])):I("",!0),!Q.value&&(R.value||A.value)?(n(),ve(to,{key:7,ref_key:"bar",ref:y,message:a.message,onClosed:w},null,8,["message"])):I("",!0)]),!Q.value&&!U.value?(n(),s("div",Co,[t("button",{ref_key:"reactBtn",ref:d,class:"msg-action",type:"button","aria-label":"Dodaj reakcję",title:"Dodaj reakcję",disabled:!se.value,onClick:g},[B(ne,{name:"smile"})],8,Eo),te.value?(n(),s("button",{key:0,ref_key:"editBtn",ref:k,class:"msg-action",type:"button","aria-label":"Edytuj",title:"Edytuj",onClick:he},[B(ne,{name:"pencil"})],512)):I("",!0),V.value?(n(),s("button",{key:1,ref_key:"deleteBtn",ref:f,class:"msg-action miss",type:"button","aria-label":"Usuń",title:"Usuń",onClick:be},[B(ne,{name:"trash"})],512)):I("",!0)])):I("",!0)],10,ao))}}),Do=["aria-labelledby","aria-describedby"],So=["id"],Mo=["id"],Bo={key:0,class:"error-text",role:"alert"},Lo={class:"btn-row chat-confirm-buttons"},No=["aria-busy","disabled"],Ro=["disabled"],qo=ie({__name:"DeleteDialog",setup(a,{expose:r}){const e=ye(),o=Ee(),l=$(null),i=$(null),c=$(null),y=$(!1),d=$("");let k=null,f=null;const u=v(()=>!!c.value&&c.value.sender_id===e.userId),h=v(()=>{const R=c.value;return!R||u.value?"Wiadomość zniknie z rozmowy u wszystkich. Tego nie można cofnąć.":`Usuniesz wiadomość od ${$e(e.members.get(R.sender_id),R.sender_name)} u wszystkich. Tego nie można cofnąć.`});function j(R,A){c.value=R,d.value="",y.value=!1,k=A??(document.activeElement instanceof HTMLElement?document.activeElement:null),f=k?.closest(".chat-list")??null,l.value?.showModal(),Y(()=>i.value?.focus())}function O(){l.value?.close()}function F(R){y.value&&R.preventDefault()}function E(){k?.isConnected?k.focus():f?.focus(),k=null,f=null,c.value=null}function M(R){R.target===l.value&&!y.value&&O()}async function C(){const R=c.value;if(!R||y.value)return;y.value=!0,d.value="";const A=await e.remove(R);if(y.value=!1,A){d.value=A;return}O()}return r({open:j}),(R,A)=>(n(),s("dialog",{ref_key:"dialog",ref:l,class:"chat-dialog chat-confirm","aria-labelledby":`delete-h-${p(o)}`,"aria-describedby":`delete-b-${p(o)}`,onCancel:F,onClose:E,onClick:M},[t("h2",{id:`delete-h-${p(o)}`,class:"chat-dialog-title"},"Usunąć wiadomość?",8,So),t("p",{id:`delete-b-${p(o)}`,class:"chat-confirm-body"},m(h.value),9,Mo),d.value?(n(),s("p",Bo,m(d.value),1)):I("",!0),t("div",Lo,[t("button",{class:"btn danger",type:"button","aria-busy":y.value?"true":void 0,disabled:y.value,onClick:C},"Usuń wiadomość",8,No),t("button",{ref_key:"keepBtn",ref:i,class:"btn ghost",type:"button",disabled:y.value,onClick:O},"Zostaw wiadomość",8,Ro)])],40,Do))}}),Ao={class:"chat-list-wrap"},Wo=["aria-label"],Po={key:0,class:"notice error",role:"alert"},Uo={key:1,class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie wiadomości"},Oo={key:2,class:"chat-start"},Ho={key:3,class:"empty chat-empty"},Ko={key:0,class:"error-text"},Fo={key:1,class:"chat-start"},Zo={key:2,class:"chat-start"},Vo=["aria-label"],Qo={"aria-hidden":"true"},Xo={key:0,class:"chat-new",role:"separator","aria-label":"Nowe wiadomości"},Yo={class:"sr-only","aria-live":"polite"},Go=ie({__name:"MessageList",props:{conversationId:{},name:{},kind:{default:"general"},otherName:{default:""},visible:{type:Boolean,default:!0}},setup(a,{expose:r}){const e=a,o=ye(),l=$(null),i=$(null),c=$(null);function y(g,w){c.value?.open(g,w)}const d=v(()=>o.messages[e.conversationId]),k=v(()=>o.errors[e.conversationId]??""),f=v(()=>Ea(d.value??[],new Date)),u=v(()=>d.value?.at(-1)?.id??null),h=v(()=>!!o.olderLoading[e.conversationId]),j=v(()=>o.olderError[e.conversationId]??""),O=v(()=>!!o.reachedStart[e.conversationId]),F=v(()=>e.kind==="dm"?"To początek Waszej rozmowy.":"To początek kanału # ogólny.");let E=!1;le(d,g=>{g&&(o.resolveFor(g,!E),E=!0)},{immediate:!0,deep:1});const M=o.unreadOf(e.conversationId),C=$(null);let R=!1;function A(){R||!d.value||(R=!0,C.value=Rt(d.value,M,o.userId))}const q=$(0),se=$(""),Q=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;function te(){return!!l.value&&l.value.clientHeight>0}function V(){const g=l.value;return!g||g.scrollHeight-g.scrollTop-g.clientHeight<=48}function ae(){return!l.value||!te()||!d.value?null:V()?{atBottom:!0,messageId:null,offset:0}:de()??{atBottom:!0,messageId:null,offset:0}}function de(){const g=l.value;if(!g)return null;for(const w of g.querySelectorAll("[data-message-id]"))if(w.offsetTop+w.offsetHeight>g.scrollTop)return{atBottom:!1,messageId:Number(w.dataset.messageId),offset:w.offsetTop-g.scrollTop};return null}function L(){const g=ae();g&&o.saveAnchor(e.conversationId,g)}let S=!0;const N=$(!1);function D(){if(!d.value||!te())return;qt({active:o.activeId===e.conversationId,visible:e.visible,focused:typeof document>"u"||document.hasFocus(),atBottom:V()})&&o.markRead(e.conversationId)}function U(g=!1){Y(()=>{const w=l.value;w&&(g&&!Q&&typeof w.scrollTo=="function"?w.scrollTo({top:w.scrollHeight,behavior:"smooth"}):w.scrollTop=w.scrollHeight,S=!0,q.value=0,te()&&o.saveAnchor(e.conversationId,{atBottom:!0,messageId:null,offset:0}),D())})}function _(g){if(C.value===null)return!1;const w=g.querySelector(".chat-new");if(!w)return!1;const Z=g.scrollHeight-g.clientHeight;return w.offsetTop>=Z?!1:(g.scrollTop=w.offsetTop-48,!0)}function x(){Y(()=>{const g=l.value;!g||!te()||!d.value||(A(),Y(()=>{const w=o.anchorFor(e.conversationId),Z=w&&!w.atBottom&&w.messageId!==null?g.querySelector(`[data-message-id="${w.messageId}"]`):null;Z?g.scrollTop=Z.offsetTop-(w?.offset??0):C.value!==null&&!N.value&&_(g)||(g.scrollTop=g.scrollHeight),S=V(),S&&(q.value=0),N.value=!0,D(),X()}))})}let W=0;function P(){S=V(),S&&(q.value=0),!W&&(W=requestAnimationFrame(()=>{W=0,L(),D()}))}le(()=>d.value===void 0,(g,w)=>{!g&&w&&x()}),le(u,(g,w)=>{if(g===null||g===w||w===null)return;const Z=d.value??[],_e=Z.filter(ke=>ke.id>w),T=Z.at(-1),fe=_e.filter(ke=>ke.sender_id!==o.userId),G=fe.at(-1);if(G&&e.visible){const ke=(G.content??"").replace(/\s+/g," ").trim().slice(0,80);se.value=`${$e(o.members.get(G.sender_id),G.sender_name)}: ${ke}`}S||T&&T.sender_id===o.userId?U():q.value+=fe.length}),le(()=>e.visible,(g,w)=>{w&&!g&&L(),g&&!w&&x()});let re=null;async function he(){const g=l.value;if(!g||!N.value||h.value||j.value||O.value)return;const w=de();if(await o.loadOlder(e.conversationId),await Y(),w?.messageId!=null){const Z=g.querySelector(`[data-message-id="${w.messageId}"]`);Z&&(g.scrollTop=Z.offsetTop-w.offset)}X()}function X(){const g=i.value;!re||!g||(re.unobserve(g),re.observe(g))}function ue(){o.olderError[e.conversationId]="",Y(()=>{he()})}le(i,(g,w)=>{w&&re?.unobserve(w),g&&re?.observe(g)});function pe(){D()}function be(){document.visibilityState==="visible"&&D()}return Xe(()=>{typeof IntersectionObserver<"u"&&l.value&&(re=new IntersectionObserver(g=>{g.some(w=>w.isIntersecting)&&he()},{root:l.value,rootMargin:"200px 0px 0px 0px"}),i.value&&re.observe(i.value)),window.addEventListener("focus",pe),document.addEventListener("visibilitychange",be),x()}),Ce(()=>{W&&cancelAnimationFrame(W),re?.disconnect(),window.removeEventListener("focus",pe),document.removeEventListener("visibilitychange",be),L()}),r({scrollToBottom:U}),(g,w)=>(n(),s("div",Ao,[t("div",{ref_key:"el",ref:l,class:"chat-list",role:"region","aria-label":`Wiadomości w ${a.name}`,tabindex:"0",onScrollPassive:P},[!d.value&&k.value?(n(),s("div",Po,[J(m(k.value)+" ",1),t("button",{class:"linkish",type:"button",onClick:w[0]||(w[0]=Z=>p(o).loadLatest(a.conversationId))},"Spróbuj ponownie")])):d.value?!d.value.length&&a.kind==="dm"?(n(),s("p",Oo,"To początek Waszej rozmowy z "+m(a.otherName)+".",1)):d.value.length?(n(),s(K,{key:4},[t("div",{ref_key:"sentinel",ref:i,class:"chat-older"},[j.value?(n(),s("p",Ko,[J(m(j.value)+" ",1),t("button",{class:"linkish",type:"button",onClick:ue},"Spróbuj ponownie")])):h.value?(n(),s("p",Fo,"Wczytywanie starszych wiadomości…")):O.value?(n(),s("p",Zo,m(F.value),1)):I("",!0)],512),(n(!0),s(K,null,ee(f.value,Z=>(n(),s(K,{key:Z.key},[Z.kind==="day"?(n(),s("div",{key:0,class:"chat-day",role:"separator","aria-label":Z.label},[t("span",Qo,m(Z.label),1)],8,Vo)):(n(),s(K,{key:1},[Z.message.id===C.value?(n(),s("div",Xo,[...w[4]||(w[4]=[t("span",{"aria-hidden":"true"},"Nowe wiadomości",-1)])])):I("",!0),B(To,{message:Z.message,"follow-up":Z.followUp&&Z.message.id!==C.value,author:p(o).members.get(Z.message.sender_id),"me-id":p(o).userId,onDelete:y},null,8,["message","follow-up","author","me-id"])],64))],64))),128))],64)):(n(),s("div",Ho,[...w[3]||(w[3]=[t("p",{class:"chat-empty-h"},"Na # ogólny jeszcze cisza",-1),t("p",null,"Napisz pierwszą wiadomość do całego roku. Przyciskiem kalendarza podepniesz termin, zajęcia albo lekturę.",-1)])])):(n(),s("div",Uo,[...w[2]||(w[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])]))],40,Wo),q.value>0?(n(),s("button",{key:0,class:"btn small chat-jump",type:"button",onClick:w[1]||(w[1]=Z=>U(!0))},[B(ne,{name:"arrow-down"}),J("Nowe wiadomości: "+m(q.value),1)])):I("",!0),t("div",Yo,m(se.value),1),B(qo,{ref_key:"deleteDialog",ref:c},null,512)]))}}),Jo=["role","aria-label","aria-labelledby"],el=["id","aria-labelledby"],tl={class:"chat-typing","aria-hidden":"true"},al={key:2,class:"chat-list"},nl=ie({__name:"ChatPanel",props:{wide:{type:Boolean,default:!0},visible:{type:Boolean,default:!0},labelledBy:{default:void 0}},setup(a){const r=a,e=ye(),o=`chat-${Ee()}`,l=$(null),i=$(null),c=$(null),y=v(()=>r.wide?void 0:"tabpanel"),d=v(()=>e.view==="dms"?null:e.activeId),k=v(()=>e.view==="dm"?e.conversations.find(E=>E.id===e.activeId):void 0),f=v(()=>k.value?$e(e.members.get(k.value.other_user_id)):""),u=v(()=>e.view==="dm"?f.value:"# ogólny"),h=v(()=>d.value===null?"":At(e.typingIn(d.value).map(E=>$e(e.members.get(E),"Ktoś")))),j=v(()=>`${o}-tab-${e.view==="general"?"general":"dms"}`);le(()=>r.visible,E=>e.panelVisible=E,{immediate:!0}),Ce(()=>e.panelVisible=!1);function O(E){E==="general"?e.showGeneral():e.showDms()}function F(){Y(()=>i.value?.focus())}return(E,M)=>(n(),s("aside",{class:"chat",role:y.value,"aria-label":a.wide?"Czat":void 0,"aria-labelledby":a.wide?void 0:a.labelledBy},[B(ys,{view:p(e).view,"dm-name":f.value,"dm-user-id":k.value?.other_user_id??null,"id-base":o,onSelect:O,onBack:M[0]||(M[0]=C=>p(e).showDms())},null,8,["view","dm-name","dm-user-id"]),t("div",{id:`${o}-body`,class:"chat-body",role:"tabpanel","aria-labelledby":j.value},[p(e).view==="dms"?(n(),ve(Ss,{key:0,onCompose:M[1]||(M[1]=C=>c.value?.open())})):d.value!==null?(n(),s(K,{key:1},[(n(),ve(Go,{ref_key:"list",ref:l,key:d.value,"conversation-id":d.value,name:u.value,kind:p(e).view==="dm"?"dm":"general","other-name":f.value,visible:a.visible},null,8,["conversation-id","name","kind","other-name","visible"])),t("div",tl,m(h.value),1),B(Gn,{ref_key:"composer",ref:i,"conversation-id":d.value,label:`Wiadomość do ${u.value}`,placeholder:p(e).view==="dm"?`Napisz do ${f.value}…`:"Napisz na # ogólny…",onSent:M[2]||(M[2]=C=>l.value?.scrollToBottom())},null,8,["conversation-id","label","placeholder"])],64)):(n(),s("div",al,[...M[3]||(M[3]=[t("div",{class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie czatu"},[t("div",{class:"skeleton"}),t("div",{class:"skeleton"}),t("div",{class:"skeleton"})],-1)])]))],8,el),B(Vs,{ref_key:"picker",ref:c,onStarted:F},null,512)],8,Jo))}}),sl={key:0,class:"pulpit-tabs",role:"tablist","aria-label":"Widok"},ol=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ll={key:0,class:"unread-badge"},il={"aria-hidden":"true"},rl={class:"sr-only"},ul=["role","aria-labelledby"],cl={class:"pulpit-lists"},dl={"aria-labelledby":"next-h"},ml={class:"section-head"},vl={key:0,class:"rows"},pl={class:"row-main"},fl={class:"title"},yl={class:"when"},hl={class:"muted small"},bl={key:0,class:"badge online"},_l={key:1,class:"badge onsite"},kl={key:1,class:"empty"},gl={"aria-labelledby":"dl-h"},$l={class:"section-head"},wl={key:0,class:"rows"},zl={class:"row-main"},xl={class:"title"},Il={class:"muted small"},jl={key:0},Cl={key:1,class:"empty"},El={class:"pulpit-cards"},Tl={class:"card","aria-labelledby":"read-h"},Dl={style:{margin:"0 0 8px"}},Sl={class:"big-num"},Ml={class:"muted"},Bl=["aria-valuenow"],Ll={class:"muted small",style:{margin:"8px 0 10px"}},Nl={class:"card","aria-labelledby":"quiz-h"},Ul=ie({__name:"DashboardView",setup(a){const r=Wt(),e=Pt(),o=Ut(),l=ye(),i=Ht(),c=Kt(),y=$(new Date);Xe(()=>{y.value=new Date,Promise.all([e.loadDashboard(),e.loadCourses(),e.loadSchedule(),e.loadDeadlines(),e.loadReadings()]),o.loadList()});const d=v(()=>e.loaded.schedule&&e.loaded.courses&&e.loaded.readings&&e.loaded.deadlines&&e.loaded.dashboard),k=v(()=>e.dashboard?.current_meeting??e.dashboard?.next_meeting??null),f=v(()=>!!e.dashboard?.current_meeting),u=v(()=>o.list?.find(_=>_.meeting_id===k.value?.id)??null),h=$(null);let j=0;async function O(_){const x=++j;if(_===void 0){h.value=[];return}h.value=null;try{const W=await Xt.materials({meeting:_,per_page:100});x===j&&(h.value=W.data)}catch{x===j&&(h.value=[])}}le(()=>k.value?.id,_=>{O(_)},{immediate:!0});const F=v(()=>h.value===null?null:Qt(h.value,e.hidden)),E=v(()=>e.schedule.filter(_=>Date.parse(_.ends_at)>y.value.getTime()).slice(0,5)),M=v(()=>e.deadlines.filter(_=>Date.parse(_.due_at)>=y.value.getTime()).slice(0,5)),C=_=>{const x=Re(_,y.value);return x>=0&&x<=14},R=v(()=>e.readingStats),A=v(()=>R.value.requiredTotal?Math.round(R.value.requiredRead/R.value.requiredTotal*100):0),q=v(()=>r.user?.name?`Cześć, ${r.user.name}`:"Pulpit"),se=v(()=>`Pulpit · ${Be(y.value.toISOString())}`),Q=v(()=>{const _=r.user;return dt({name:_?.name??"",surname:_?.surname??"",handle:""},_?.email??"")}),te=Aa(1100),V=v(()=>l.member===!0),ae=v(()=>i.query.tab==="czat"?"czat":"pulpit"),de=v(()=>V.value&&!te.value),L=v(()=>V.value&&(te.value||ae.value==="czat")),S=[{key:"pulpit",label:"Pulpit",id:"tab-pulpit",panel:"panel-pulpit"},{key:"czat",label:"Czat",id:"tab-czat",panel:"panel-czat"}];function N(_){if(_==="czat")return{...i.query,tab:"czat"};const{tab:x,...W}=i.query;return W}function D(_){_!==ae.value&&c.push({query:N(_)})}function U(_,x){const W=yt(_.key,x,S.length);W!==null&&(_.preventDefault(),D(S[W].key),Y(()=>document.getElementById(S[W].id)?.focus()))}return le([()=>l.member,()=>i.query.tab],([_,x])=>{_===!1&&x==="czat"&&c.replace({query:N("pulpit")})},{immediate:!0}),(_,x)=>{const W=lt("router-link");return n(),s("div",{class:ce(["pulpit",{"with-chat":V.value,czat:V.value&&ae.value==="czat"}])},[B(Yt,{class:"pulpit-head",eyebrow:se.value,title:q.value},{default:me(()=>[B(Je,{part:"chip"}),B(W,{class:"profile-link",to:"/profil","aria-label":"Profil"},{default:me(()=>[J(m(Q.value),1)]),_:1})]),_:1},8,["eyebrow","title"]),V.value?(n(),s("div",sl,[(n(),s(K,null,ee(S,(P,re)=>t("button",{id:P.id,key:P.key,class:"pulpit-tab",type:"button",role:"tab","aria-selected":ae.value===P.key,"aria-controls":P.panel,tabindex:ae.value===P.key?0:-1,onClick:he=>D(P.key),onKeydown:he=>U(he,re)},[J(m(P.label)+" ",1),P.key==="czat"&&p(je)(p(l).totalUnread)?(n(),s("span",ll,[t("span",il,m(p(je)(p(l).totalUnread)),1),t("span",rl,", "+m(p(Ye)(p(l).totalUnread)),1)])):I("",!0)],40,ol)),64))])):I("",!0),t("div",{id:"panel-pulpit",class:"pulpit-main",role:de.value?"tabpanel":void 0,"aria-labelledby":de.value?"tab-pulpit":void 0},[B(Je,{part:"notice"}),B(Gt,{ready:d.value,error:p(e).error,onRetry:x[0]||(x[0]=P=>p(e).retry())},{default:me(()=>[B(xa,{meeting:k.value,"is-current":f.value,schedule:p(e).schedule,deadlines:p(e).deadlines,readings:p(e).readings,materials:F.value,now:y.value,checklist:u.value},null,8,["meeting","is-current","schedule","deadlines","readings","materials","now","checklist"]),t("div",cl,[t("section",dl,[t("div",ml,[x[2]||(x[2]=t("h2",{id:"next-h"},"Najbliższe zajęcia",-1)),B(W,{to:"/plan",class:"small"},{default:me(()=>[...x[1]||(x[1]=[J("Cały plan",-1)])]),_:1})]),E.value.length?(n(),s("ul",vl,[(n(!0),s(K,null,ee(E.value,P=>(n(),s("li",{key:P.id},[t("div",pl,[t("span",fl,m(P.course.name),1),t("span",yl,m(p(Le)(P.starts_at))+"–"+m(p(Le)(P.ends_at)),1)]),t("div",hl,[J(m(p(Be)(P.starts_at))+" · "+m(p(Ft)[P.course.form])+" ",1),P.is_online?(n(),s("span",bl,"online")):P.room?(n(),s("span",_l,"sala "+m(P.room),1)):I("",!0)])]))),128))])):(n(),s("p",kl,"Nie ma już zaplanowanych zajęć."))]),t("section",gl,[t("div",$l,[x[4]||(x[4]=t("h2",{id:"dl-h"},"Terminy",-1)),B(W,{to:"/terminarz",class:"small"},{default:me(()=>[...x[3]||(x[3]=[J("Terminarz",-1)])]),_:1})]),M.value.length?(n(),s("ul",wl,[(n(!0),s(K,null,ee(M.value,P=>(n(),s("li",{key:P.id},[t("div",zl,[t("span",xl,m(P.title),1),t("span",{class:ce(["badge",{warn:C(P.due_at)}])},m(p(Zt)(P.due_at,y.value)),3)]),t("div",Il,[J(m(p(Ze)(P.due_at))+" · "+m(p(Vt)[P.kind]),1),P.course?(n(),s("span",jl," · "+m(P.course.name),1)):I("",!0)])]))),128))])):(n(),s("p",Cl,"Brak nadchodzących terminów."))])]),t("div",El,[t("section",Tl,[x[6]||(x[6]=t("span",{class:"eyebrow"},"Lektury",-1)),x[7]||(x[7]=t("h2",{id:"read-h",style:{margin:"4px 0 8px"}},"Postęp czytania",-1)),t("p",Dl,[t("span",Sl,m(R.value.requiredRead),1),t("span",Ml," z "+m(R.value.requiredTotal)+" obowiązkowych",1)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":A.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[t("span",{style:qe({width:A.value+"%"})},null,4)],8,Bl),t("p",Ll,"Łącznie przeczytano "+m(R.value.read)+" z "+m(p(Ot)(R.value.total,"lektury","lektur","lektur"))+".",1),B(W,{class:"btn small",to:"/lektury"},{default:me(()=>[...x[5]||(x[5]=[J("Lista lektur",-1)])]),_:1})]),t("section",Nl,[x[9]||(x[9]=t("span",{class:"eyebrow"},"Quizy",-1)),x[10]||(x[10]=t("h2",{id:"quiz-h",style:{margin:"4px 0 8px"}},"Sprawdź się",-1)),x[11]||(x[11]=t("p",{class:"muted",style:{margin:"0 0 12px"}},"Fiszki z powtórki: losuj po 5 pytań, oznaczaj Wiem / Nie wiem i wracaj do tych, których nie znasz.",-1)),B(W,{class:"btn primary small",to:"/quizy"},{default:me(()=>[...x[8]||(x[8]=[J("Zacznij quiz",-1)])]),_:1})])])]),_:1},8,["ready","error"])],8,ul),V.value?(n(),ve(nl,{key:1,id:"panel-czat",wide:p(te),visible:L.value,"labelled-by":"tab-czat"},null,8,["wide","visible"])):I("",!0)],2)}}});export{Ul as default}; diff --git a/public/assets/DeadlinesView-Ca_SJNYR.js b/public/assets/DeadlinesView-BBWlRaTw.js similarity index 90% rename from public/assets/DeadlinesView-Ca_SJNYR.js rename to public/assets/DeadlinesView-BBWlRaTw.js index b85e3d3..46378a9 100644 --- a/public/assets/DeadlinesView-Ca_SJNYR.js +++ b/public/assets/DeadlinesView-BBWlRaTw.js @@ -1 +1 @@ -import{d as C,ae as B,o as N,U as T,c as t,i as m,j as g,e as a,r as w,x as y,n as o,F as h,E as D,b as i,t as s,C as V,z as b,ai as j,p as f,K as z,a6 as E,aj as $,f as p,ag as L,l as M,k as S}from"./index-DwX0tlPb.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js";import{u as R}from"./scrollToHash-CWWIxePp.js";const U={key:0,class:"rows card"},A=["id"],H={class:"row-main"},I={class:"title"},Z={class:"muted small"},q={class:"badge"},G={key:0,class:"small",style:{margin:"6px 0 0"}},J={key:1,class:"empty"},O={key:2,class:"section"},Q=["aria-pressed"],W={key:0,class:"rows card past",style:{"margin-top":"10px"}},X=["id"],Y={class:"row-main"},ee={class:"title"},se={class:"when"},te={class:"muted small"},de=C({__name:"DeadlinesView",setup(ae){const n=B(),l=w(new Date),u=w(!1);N(()=>{l.value=new Date,Promise.all([n.loadDeadlines(),n.loadCourses()])});const k=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)>=l.value.getTime())),c=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)n.loaded.deadlines&&n.loaded.courses),x=S();return T([v,()=>x.hash],([d,r])=>{const _=Number(/^#termin-(\d+)$/.exec(r)?.[1]);d&&_&&c.value.some(e=>e.id===_)&&(u.value=!0)},{immediate:!0}),R(v),(d,r)=>{const _=M("router-link");return o(),t("div",null,[m(F,{eyebrow:"Zaliczenia, egzaminy, sprawy organizacyjne",title:"Terminarz"}),m(K,{ready:v.value,error:a(n).error,onRetry:r[1]||(r[1]=e=>a(n).retry())},{default:g(()=>[m(P),k.value.length?(o(),t("ul",U,[(o(!0),t(h,null,D(k.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",H,[i("span",I,s(e.title),1),i("span",{class:V(["badge",{alert:a(b)(e.due_at,l.value)<=3}])},s(a(j)(e.due_at,l.value)),3)]),i("div",Z,[f(s(a(z)(e.due_at))+", "+s(a(E)(e.due_at))+" · ",1),i("span",q,s(a($)[e.kind]),1),e.course?(o(),t(h,{key:0},[r[2]||(r[2]=f(" · ",-1)),m(_,{to:`/przedmioty/${e.course.id}`},{default:g(()=>[f(s(e.course.name),1)]),_:2},1032,["to"])],64)):p("",!0)]),e.description?(o(),t("p",G,s(e.description),1)):p("",!0)],8,A))),128))])):(o(),t("p",J,"Brak nadchodzących terminów.")),c.value.length?(o(),t("div",O,[i("button",{class:"chip",type:"button","aria-pressed":u.value,onClick:r[0]||(r[0]=e=>u.value=!u.value)},"Minione ("+s(c.value.length)+")",9,Q),u.value?(o(),t("ul",W,[(o(!0),t(h,null,D(c.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",Y,[i("span",ee,s(e.title),1),i("span",se,s(a(L)(Math.abs(a(b)(e.due_at,l.value)),"dzień","dni","dni"))+" temu",1)]),i("div",te,s(a(z)(e.due_at))+" · "+s(a($)[e.kind]),1)],8,X))),128))])):p("",!0)])):p("",!0)]),_:1},8,["ready","error"])])}}});export{de as default}; +import{d as C,ae as B,o as N,U as T,c as t,i as m,j as g,e as a,r as w,x as y,n as o,F as h,E as D,b as i,t as s,C as V,z as b,ai as j,p as f,K as z,a6 as E,aj as $,f as p,ag as L,l as M,k as S}from"./index-C7U0oIvN.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js";import{u as R}from"./scrollToHash-PZXPXyf9.js";const U={key:0,class:"rows card"},A=["id"],H={class:"row-main"},I={class:"title"},Z={class:"muted small"},q={class:"badge"},G={key:0,class:"small",style:{margin:"6px 0 0"}},J={key:1,class:"empty"},O={key:2,class:"section"},Q=["aria-pressed"],W={key:0,class:"rows card past",style:{"margin-top":"10px"}},X=["id"],Y={class:"row-main"},ee={class:"title"},se={class:"when"},te={class:"muted small"},de=C({__name:"DeadlinesView",setup(ae){const n=B(),l=w(new Date),u=w(!1);N(()=>{l.value=new Date,Promise.all([n.loadDeadlines(),n.loadCourses()])});const k=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)>=l.value.getTime())),c=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)n.loaded.deadlines&&n.loaded.courses),x=S();return T([v,()=>x.hash],([d,r])=>{const _=Number(/^#termin-(\d+)$/.exec(r)?.[1]);d&&_&&c.value.some(e=>e.id===_)&&(u.value=!0)},{immediate:!0}),R(v),(d,r)=>{const _=M("router-link");return o(),t("div",null,[m(F,{eyebrow:"Zaliczenia, egzaminy, sprawy organizacyjne",title:"Terminarz"}),m(K,{ready:v.value,error:a(n).error,onRetry:r[1]||(r[1]=e=>a(n).retry())},{default:g(()=>[m(P),k.value.length?(o(),t("ul",U,[(o(!0),t(h,null,D(k.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",H,[i("span",I,s(e.title),1),i("span",{class:V(["badge",{alert:a(b)(e.due_at,l.value)<=3}])},s(a(j)(e.due_at,l.value)),3)]),i("div",Z,[f(s(a(z)(e.due_at))+", "+s(a(E)(e.due_at))+" · ",1),i("span",q,s(a($)[e.kind]),1),e.course?(o(),t(h,{key:0},[r[2]||(r[2]=f(" · ",-1)),m(_,{to:`/przedmioty/${e.course.id}`},{default:g(()=>[f(s(e.course.name),1)]),_:2},1032,["to"])],64)):p("",!0)]),e.description?(o(),t("p",G,s(e.description),1)):p("",!0)],8,A))),128))])):(o(),t("p",J,"Brak nadchodzących terminów.")),c.value.length?(o(),t("div",O,[i("button",{class:"chip",type:"button","aria-pressed":u.value,onClick:r[0]||(r[0]=e=>u.value=!u.value)},"Minione ("+s(c.value.length)+")",9,Q),u.value?(o(),t("ul",W,[(o(!0),t(h,null,D(c.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",Y,[i("span",ee,s(e.title),1),i("span",se,s(a(L)(Math.abs(a(b)(e.due_at,l.value)),"dzień","dni","dni"))+" temu",1)]),i("div",te,s(a(z)(e.due_at))+" · "+s(a($)[e.kind]),1)],8,X))),128))])):p("",!0)])):p("",!0)]),_:1},8,["ready","error"])])}}});export{de as default}; diff --git a/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js b/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js similarity index 98% rename from public/assets/DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js rename to public/assets/DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js index 17bbbcf..232491c 100644 --- a/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js +++ b/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js @@ -1,9 +1,9 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/opsz-DD7j1RRT.css","assets/opsz-italic-l9KtpeZ8.css","assets/index-DwX0tlPb.js","assets/index-BM6lpb_3.css","assets/summer-DcZGwnDj.css"])))=>i.map(i=>d[i]); -/* empty css */import{aL as S,d as at,U as O,o as lt,Z as ae,aH as ct,c as v,s as dt,aN as pt,aG as Te,f as E,F as $e,b as k,t as F,p as K,C as Ae,E as ut,H as ft,r as H,x as N,n as x,e as mt}from"./index-DwX0tlPb.js";const kt=':host{color-scheme:light dark;--deck-paper: #e9ebe3;--deck-paper-2: #dfe2d8;--deck-ink: #16201f;--deck-ink-2: #4b5551;--deck-rule: #b9beb3;--deck-empire: #b5302c;--deck-khaki: #7f7047;--deck-display: "Libre Caslon Display", "Times New Roman", Georgia, serif;--deck-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Courier Prime", "Courier New", Courier, monospace}@media(prefers-color-scheme:dark){:host:not([data-theme=light]){--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}}:host[data-theme=dark]{--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}*{box-sizing:border-box}:host,.deck{height:100%;margin:0}.deck{position:relative;background:var(--deck-paper);color:var(--deck-ink);font-family:var(--deck-body);font-size:24px;line-height:1.4;overflow:hidden}h1,h2,h3{font-family:var(--deck-display);font-weight:400;margin:0;text-wrap:balance;line-height:1.08}p{margin:0}ul{margin:0;padding-left:1.1em}li{margin-block:.25em}li::marker{color:var(--deck-empire)}em{font-style:italic}strong{font-weight:600}a{color:inherit}.k{font-family:var(--deck-mono);font-size:.72em;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.red{color:var(--deck-empire)}.muted{color:var(--deck-ink-2)}.small{font-size:.78em;line-height:1.35}.bib{font-size:17px;line-height:1.3;gap:36px}.bib li{margin-block:.2em}.bib .k{font-size:13px;margin-bottom:6px}#stage{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:0 0}.slide{position:absolute;inset:0;display:none;padding:64px 88px 72px;background:var(--deck-paper);grid-template-rows:auto 1fr;gap:28px;overflow:hidden}[hidden]{display:none!important}.slide.on{display:grid}.slide.special{border-top:6px solid var(--deck-khaki)}.sp-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:1px solid var(--deck-rule);background:transparent;color:var(--deck-ink-2);font-size:28px;line-height:1;cursor:pointer}.sp-link{border-bottom:2px dotted var(--deck-empire);cursor:pointer}.slide>header{display:grid;gap:10px}.slide>header h2{font-size:50px}.slide .body{min-height:0;display:grid;gap:22px;align-content:start}.cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.cols>*{min-width:0}.cols.w{grid-template-columns:1.3fr 1fr}.rule-top{border-top:1px solid var(--deck-rule);padding-top:16px}.note{font-size:20px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);padding-left:14px}.quote{font-family:var(--deck-display);font-size:34px;line-height:1.25}.quote+.k{margin-top:6px}.slide.sec{grid-template-rows:1fr;align-content:center;background:var(--deck-paper-2)}.slide.sec .k{font-size:20px}.slide.sec h2{font-size:72px;max-width:18ch;margin-top:12px}.slide.sec p{font-size:26px;color:var(--deck-ink-2);max-width:44ch;margin-top:22px}.slide.title{grid-template-rows:1fr auto;background:var(--deck-paper-2)}.slide.title h1{font-size:86px;max-width:14ch}.slide.title .sub{font-size:30px;color:var(--deck-ink-2);margin-top:20px;font-family:var(--deck-display)}.slide.title footer{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--deck-rule);padding-top:18px;font-size:20px}.tl{display:grid;grid-template-columns:max-content 1fr;column-gap:26px;row-gap:8px;font-size:22px;align-content:start}.tl .y{font-family:var(--deck-mono);color:var(--deck-empire);font-variant-numeric:tabular-nums}.tl.compact{font-size:20px;row-gap:6px}table{border-collapse:collapse;width:100%;font-size:21px}th,td{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--deck-rule)}th{font-family:var(--deck-mono);font-weight:400;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.p{border-top:2px solid var(--deck-empire);padding-top:10px;font-size:20px;line-height:1.35;min-width:0}.p b{display:block;font-family:var(--deck-display);font-weight:400;font-size:26px;margin-bottom:4px}.theses{display:grid;gap:18px;counter-reset:t}.theses>div{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}.theses>div:before{counter-increment:t;content:counter(t);font-family:var(--deck-display);font-size:48px;line-height:1;color:var(--deck-empire)}.theses b{font-weight:600}.body.v2{grid-template-rows:1fr;align-content:stretch;gap:20px}.body.v2>:first-child{align-self:start}.body.v2>.people+.cols{align-self:start}.pts{font-size:28px;line-height:1.3}.pts li{margin-block:.4em}.tl.big{font-size:26px;row-gap:10px}table.big{font-size:24px}.sum{font-family:var(--deck-display);font-size:30px;line-height:1.25;border-top:2px solid var(--deck-empire);padding-top:14px;align-self:end;text-wrap:balance}.body.v2 .p{font-size:22px}.body.v2 .theses{font-size:30px;gap:26px}.body.v2 .theses>div{align-items:center}.notes .full{opacity:.9}@media(max-width:900px)and (orientation:portrait){.pts{font-size:17px}.tl.big{font-size:16px}table.big{font-size:15px}.sum{font-size:20px}.body.v2 .p{font-size:16px}}#bar{position:fixed;left:0;right:0;bottom:0;height:4px;background:var(--deck-rule)}#bar i{display:block;height:100%;width:0;background:var(--deck-empire);transition:width .25s}#meta{position:fixed;right:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.06em}#meta b{font-weight:400;color:var(--deck-ink)}#sect{position:fixed;left:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.08em;text-transform:uppercase}.notes,.srcs{display:none}.deck.notes-on .notes,.deck.srcs-on .srcs{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:19px;line-height:1.45}.notes:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.notes:before{content:"Komentarz · N"}.srcs:before{content:"Źródła · Z"}.srcs ul{margin:0;padding-left:1.1em}.srcs li+li{margin-top:.35em}.deck.notes-on .notes p+p{margin-top:.5em}.deck.notes-on #nav,.deck.srcs-on #nav{bottom:50%}#nav{position:fixed;inset:0;display:grid;grid-template-columns:1fr 2fr 1fr;overflow:hidden}#nav button{background:transparent;border:0;cursor:pointer;opacity:0;font-size:0;outline:none}#nav button:focus,#nav button:focus-visible{outline:none}#nav button:focus-visible{opacity:1;box-shadow:inset 4px 0 0 var(--deck-empire)}#nav button:last-of-type:focus-visible{box-shadow:inset -4px 0 0 var(--deck-empire)}#nav .mid{pointer-events:none}.status-retry{margin-top:28px;font:16px var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-rule);min-height:44px;padding:8px 16px;cursor:pointer}.status-retry:focus-visible{outline:3px solid var(--deck-empire)}@media(max-width:900px)and (orientation:portrait){.deck{overflow:auto;font-size:17px}#stage{position:static;width:auto;height:auto;transform:none!important;padding:0 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.slide{position:static;display:grid!important;padding:28px 0;border-bottom:1px solid var(--deck-rule);gap:16px}.slide>header h2{font-size:30px}.slide.sec h2{font-size:36px}.slide.sec p{font-size:18px}.slide.title h1{font-size:40px}.slide.title .sub{font-size:20px}.slide.title footer{flex-direction:column;align-items:start;gap:6px;font-size:15px}.cols,.cols.w{grid-template-columns:1fr;gap:16px}.people{grid-template-columns:1fr}.tl,.tl.compact{font-size:16px}table{font-size:15px}.quote{font-size:22px}.note,.p{font-size:16px}.p b{font-size:20px}.theses>div{grid-template-columns:36px 1fr}.theses>div:before{font-size:30px}.notes,.srcs{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-khaki);position:static;max-height:none}.notes p+p{margin-top:.5em}.notes.is-empty,.srcs.is-empty{display:none}.slide.title :is(.notes,.srcs),.slide.sec :is(.notes,.srcs){background:var(--deck-paper)}.slide{overflow:visible}#bar,#meta,#sect,#nav,.sp-close,.tools,.tools-show{display:none}}@media print{.deck{overflow:visible;background:#fff;color:#000}.deck,.slide,.slide *{color:#000}.deck,.slide{background:#fff}#stage{position:static;width:auto;height:auto;transform:none!important}.slide{position:static;display:grid!important;page-break-after:always;break-after:page;height:100vh;overflow:visible}#bar,#meta,#sect,#nav,.notes,.srcs,.sp-close,.tools,.tools-show{display:none!important}}@media(prefers-reduced-motion:reduce){#bar i,.tools-show{transition:none}}.tools{position:fixed;z-index:6;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:56px;padding:8px 16px;background:var(--deck-paper-2);border-bottom:1px solid var(--deck-rule)}.tools-group{display:flex;align-items:center;gap:8px}.tools-end{margin-left:auto}.tools-pos{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink-2);font-variant-numeric:tabular-nums;min-width:7ch}.tools button,.tools-show{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);border-radius:0;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.tools kbd,.tools-show kbd{font:inherit;color:var(--deck-empire)}.tools button:hover{border-color:var(--deck-empire)}.tools button:focus-visible,.tools-show:focus-visible,.sp-close:focus-visible{outline:3px solid var(--deck-empire);outline-offset:2px}.tools button[aria-pressed=true]{background:var(--deck-ink);border-color:var(--deck-ink);color:var(--deck-paper)}.tools button[aria-pressed=true] kbd{color:inherit}.tools button:disabled{opacity:.4;cursor:default}.tool-s.unavailable{visibility:hidden}.tools-show{position:fixed;z-index:6;top:8px;left:50%;transform:translate(-50%);min-height:32px;padding:0 8px;background:var(--deck-paper-2);border:1px solid var(--deck-rule);opacity:.55;transition:opacity .15s}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.deck.notes-on .notes.is-empty:after{content:"Brak komentarza do tego slajdu.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}@media(max-height:480px){.tools{flex-wrap:nowrap;overflow-x:auto;min-height:40px;padding:4px 16px}.tools-group{flex-wrap:nowrap}.tools button{min-height:32px;padding:0 8px;white-space:nowrap}}',ht=/^[a-z][a-z0-9-]*$/;function gt(e){return`${e.special?'':""}${e.body_html}`}function bt(e,t={}){const n=["slide"];for(const i of e.split(/\s+/))ht.test(i)&&n.push(i);return t.special&&n.push("special"),t.on&&n.push("on"),n.join(" ")}const xt=["@import","expression(","url(","javascript:","vbscript:","data:","http:","https:","ftp:","file:"],vt=new Set(["@font-face","@page","@counter-style","@font-palette-values","@property","@color-profile","@font-feature-values"]);function je(e){return e===" "||e===" "||e===` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/opsz-DD7j1RRT.css","assets/opsz-italic-l9KtpeZ8.css","assets/index-C7U0oIvN.js","assets/index-BM6lpb_3.css","assets/summer-DcZGwnDj.css"])))=>i.map(i=>d[i]); +/* empty css */import{aL as S,d as at,U as O,o as lt,Z as ae,aH as ct,c as v,s as dt,aN as pt,aG as Te,f as E,F as $e,b as k,t as F,p as K,C as Ae,E as ut,H as ft,r as H,x as N,n as x,e as mt}from"./index-C7U0oIvN.js";const kt=':host{color-scheme:light dark;--deck-paper: #e9ebe3;--deck-paper-2: #dfe2d8;--deck-ink: #16201f;--deck-ink-2: #4b5551;--deck-rule: #b9beb3;--deck-empire: #b5302c;--deck-khaki: #7f7047;--deck-display: "Libre Caslon Display", "Times New Roman", Georgia, serif;--deck-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Courier Prime", "Courier New", Courier, monospace}@media(prefers-color-scheme:dark){:host:not([data-theme=light]){--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}}:host[data-theme=dark]{--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}*{box-sizing:border-box}:host,.deck{height:100%;margin:0}.deck{position:relative;background:var(--deck-paper);color:var(--deck-ink);font-family:var(--deck-body);font-size:24px;line-height:1.4;overflow:hidden}h1,h2,h3{font-family:var(--deck-display);font-weight:400;margin:0;text-wrap:balance;line-height:1.08}p{margin:0}ul{margin:0;padding-left:1.1em}li{margin-block:.25em}li::marker{color:var(--deck-empire)}em{font-style:italic}strong{font-weight:600}a{color:inherit}.k{font-family:var(--deck-mono);font-size:.72em;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.red{color:var(--deck-empire)}.muted{color:var(--deck-ink-2)}.small{font-size:.78em;line-height:1.35}.bib{font-size:17px;line-height:1.3;gap:36px}.bib li{margin-block:.2em}.bib .k{font-size:13px;margin-bottom:6px}#stage{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:0 0}.slide{position:absolute;inset:0;display:none;padding:64px 88px 72px;background:var(--deck-paper);grid-template-rows:auto 1fr;gap:28px;overflow:hidden}[hidden]{display:none!important}.slide.on{display:grid}.slide.special{border-top:6px solid var(--deck-khaki)}.sp-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:1px solid var(--deck-rule);background:transparent;color:var(--deck-ink-2);font-size:28px;line-height:1;cursor:pointer}.sp-link{border-bottom:2px dotted var(--deck-empire);cursor:pointer}.slide>header{display:grid;gap:10px}.slide>header h2{font-size:50px}.slide .body{min-height:0;display:grid;gap:22px;align-content:start}.cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.cols>*{min-width:0}.cols.w{grid-template-columns:1.3fr 1fr}.rule-top{border-top:1px solid var(--deck-rule);padding-top:16px}.note{font-size:20px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);padding-left:14px}.quote{font-family:var(--deck-display);font-size:34px;line-height:1.25}.quote+.k{margin-top:6px}.slide.sec{grid-template-rows:1fr;align-content:center;background:var(--deck-paper-2)}.slide.sec .k{font-size:20px}.slide.sec h2{font-size:72px;max-width:18ch;margin-top:12px}.slide.sec p{font-size:26px;color:var(--deck-ink-2);max-width:44ch;margin-top:22px}.slide.title{grid-template-rows:1fr auto;background:var(--deck-paper-2)}.slide.title h1{font-size:86px;max-width:14ch}.slide.title .sub{font-size:30px;color:var(--deck-ink-2);margin-top:20px;font-family:var(--deck-display)}.slide.title footer{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--deck-rule);padding-top:18px;font-size:20px}.tl{display:grid;grid-template-columns:max-content 1fr;column-gap:26px;row-gap:8px;font-size:22px;align-content:start}.tl .y{font-family:var(--deck-mono);color:var(--deck-empire);font-variant-numeric:tabular-nums}.tl.compact{font-size:20px;row-gap:6px}table{border-collapse:collapse;width:100%;font-size:21px}th,td{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--deck-rule)}th{font-family:var(--deck-mono);font-weight:400;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.p{border-top:2px solid var(--deck-empire);padding-top:10px;font-size:20px;line-height:1.35;min-width:0}.p b{display:block;font-family:var(--deck-display);font-weight:400;font-size:26px;margin-bottom:4px}.theses{display:grid;gap:18px;counter-reset:t}.theses>div{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}.theses>div:before{counter-increment:t;content:counter(t);font-family:var(--deck-display);font-size:48px;line-height:1;color:var(--deck-empire)}.theses b{font-weight:600}.body.v2{grid-template-rows:1fr;align-content:stretch;gap:20px}.body.v2>:first-child{align-self:start}.body.v2>.people+.cols{align-self:start}.pts{font-size:28px;line-height:1.3}.pts li{margin-block:.4em}.tl.big{font-size:26px;row-gap:10px}table.big{font-size:24px}.sum{font-family:var(--deck-display);font-size:30px;line-height:1.25;border-top:2px solid var(--deck-empire);padding-top:14px;align-self:end;text-wrap:balance}.body.v2 .p{font-size:22px}.body.v2 .theses{font-size:30px;gap:26px}.body.v2 .theses>div{align-items:center}.notes .full{opacity:.9}@media(max-width:900px)and (orientation:portrait){.pts{font-size:17px}.tl.big{font-size:16px}table.big{font-size:15px}.sum{font-size:20px}.body.v2 .p{font-size:16px}}#bar{position:fixed;left:0;right:0;bottom:0;height:4px;background:var(--deck-rule)}#bar i{display:block;height:100%;width:0;background:var(--deck-empire);transition:width .25s}#meta{position:fixed;right:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.06em}#meta b{font-weight:400;color:var(--deck-ink)}#sect{position:fixed;left:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.08em;text-transform:uppercase}.notes,.srcs{display:none}.deck.notes-on .notes,.deck.srcs-on .srcs{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:19px;line-height:1.45}.notes:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.notes:before{content:"Komentarz · N"}.srcs:before{content:"Źródła · Z"}.srcs ul{margin:0;padding-left:1.1em}.srcs li+li{margin-top:.35em}.deck.notes-on .notes p+p{margin-top:.5em}.deck.notes-on #nav,.deck.srcs-on #nav{bottom:50%}#nav{position:fixed;inset:0;display:grid;grid-template-columns:1fr 2fr 1fr;overflow:hidden}#nav button{background:transparent;border:0;cursor:pointer;opacity:0;font-size:0;outline:none}#nav button:focus,#nav button:focus-visible{outline:none}#nav button:focus-visible{opacity:1;box-shadow:inset 4px 0 0 var(--deck-empire)}#nav button:last-of-type:focus-visible{box-shadow:inset -4px 0 0 var(--deck-empire)}#nav .mid{pointer-events:none}.status-retry{margin-top:28px;font:16px var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-rule);min-height:44px;padding:8px 16px;cursor:pointer}.status-retry:focus-visible{outline:3px solid var(--deck-empire)}@media(max-width:900px)and (orientation:portrait){.deck{overflow:auto;font-size:17px}#stage{position:static;width:auto;height:auto;transform:none!important;padding:0 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.slide{position:static;display:grid!important;padding:28px 0;border-bottom:1px solid var(--deck-rule);gap:16px}.slide>header h2{font-size:30px}.slide.sec h2{font-size:36px}.slide.sec p{font-size:18px}.slide.title h1{font-size:40px}.slide.title .sub{font-size:20px}.slide.title footer{flex-direction:column;align-items:start;gap:6px;font-size:15px}.cols,.cols.w{grid-template-columns:1fr;gap:16px}.people{grid-template-columns:1fr}.tl,.tl.compact{font-size:16px}table{font-size:15px}.quote{font-size:22px}.note,.p{font-size:16px}.p b{font-size:20px}.theses>div{grid-template-columns:36px 1fr}.theses>div:before{font-size:30px}.notes,.srcs{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-khaki);position:static;max-height:none}.notes p+p{margin-top:.5em}.notes.is-empty,.srcs.is-empty{display:none}.slide.title :is(.notes,.srcs),.slide.sec :is(.notes,.srcs){background:var(--deck-paper)}.slide{overflow:visible}#bar,#meta,#sect,#nav,.sp-close,.tools,.tools-show{display:none}}@media print{.deck{overflow:visible;background:#fff;color:#000}.deck,.slide,.slide *{color:#000}.deck,.slide{background:#fff}#stage{position:static;width:auto;height:auto;transform:none!important}.slide{position:static;display:grid!important;page-break-after:always;break-after:page;height:100vh;overflow:visible}#bar,#meta,#sect,#nav,.notes,.srcs,.sp-close,.tools,.tools-show{display:none!important}}@media(prefers-reduced-motion:reduce){#bar i,.tools-show{transition:none}}.tools{position:fixed;z-index:6;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:56px;padding:8px 16px;background:var(--deck-paper-2);border-bottom:1px solid var(--deck-rule)}.tools-group{display:flex;align-items:center;gap:8px}.tools-end{margin-left:auto}.tools-pos{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink-2);font-variant-numeric:tabular-nums;min-width:7ch}.tools button,.tools-show{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);border-radius:0;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.tools kbd,.tools-show kbd{font:inherit;color:var(--deck-empire)}.tools button:hover{border-color:var(--deck-empire)}.tools button:focus-visible,.tools-show:focus-visible,.sp-close:focus-visible{outline:3px solid var(--deck-empire);outline-offset:2px}.tools button[aria-pressed=true]{background:var(--deck-ink);border-color:var(--deck-ink);color:var(--deck-paper)}.tools button[aria-pressed=true] kbd{color:inherit}.tools button:disabled{opacity:.4;cursor:default}.tool-s.unavailable{visibility:hidden}.tools-show{position:fixed;z-index:6;top:8px;left:50%;transform:translate(-50%);min-height:32px;padding:0 8px;background:var(--deck-paper-2);border:1px solid var(--deck-rule);opacity:.55;transition:opacity .15s}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.deck.notes-on .notes.is-empty:after{content:"Brak komentarza do tego slajdu.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}@media(max-height:480px){.tools{flex-wrap:nowrap;overflow-x:auto;min-height:40px;padding:4px 16px}.tools-group{flex-wrap:nowrap}.tools button{min-height:32px;padding:0 8px;white-space:nowrap}}',ht=/^[a-z][a-z0-9-]*$/;function gt(e){return`${e.special?'':""}${e.body_html}`}function bt(e,t={}){const n=["slide"];for(const i of e.split(/\s+/))ht.test(i)&&n.push(i);return t.special&&n.push("special"),t.on&&n.push("on"),n.join(" ")}const xt=["@import","expression(","url(","javascript:","vbscript:","data:","http:","https:","ftp:","file:"],vt=new Set(["@font-face","@page","@counter-style","@font-palette-values","@property","@color-profile","@font-feature-values"]);function je(e){return e===" "||e===" "||e===` `||e==="\r"||e==="\f"}function yt(e){return e?e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F":!1}function le(e){return e?e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e==="_"||e==="-"||e.charCodeAt(0)>=128:!1}function q(e,t){return e[t]==="/"&&e[t+1]==="*"}function B(e,t){for(t+=2;t+1e.length)break;n=i;continue}t+=e[n],n++}return t}function wt(e){let t="";for(let n=0;n=e.length)break;const s=e[n+1];if(s===` `){n++;continue}if(s==="\r"){n++,e[n+1]===` `&&n++;continue}let l=n+1,c=0;for(;l0){t+=String.fromCodePoint(Number.parseInt(e.slice(n+1,l),16)),je(e[l])&&(e[l]==="\r"&&e[l+1]===` `?l+=2:l++),n=l-1;continue}t+=s,n++}return t}function fe(e){const t=wt(de(e)).toLowerCase();let n="";for(const i of t)i<=" "||i.charCodeAt(0)<32||(n+=i);return n}function Q(e){const t=fe(e);if(!t)return!1;for(const n of xt)if(t.includes(n))return!0;return t.includes("//")}function Me(e){let t="",n=0,i=0;for(;ie.length)return!0;i=l;continue}const s=e[i];if(t){if(s==="\\"&&i+1="a"&&t[n]<="z"||t[n]>="0"&&t[n]<="9");)n++;return t.slice(0,n)}function me(e){return vt.has(W(e))}function zt(e,t){const n=t;let i="",s=1;for(;te.length)return null;continue}const l=e[t];if(i){if(l==="\\"&&t+1e.length)return null;continue}const l=e[t];if(i){if(l==="\\"&&t+10){s--,t++;continue}if(s===0&&l==="{"){const c=zt(e,t+1);return c?{item:{prelude:e.slice(n,t),block:c.block,braced:!0},next:c.end}:null}if(s===0&&l===";")return{item:{prelude:e.slice(n,t),block:"",braced:!1},next:t+1};t++}return null}function Y(e){const t=[];let n=0;for(;n=e.length)break;const i=St(e,n);if(!i)break;t.push(i.item),n=i.next}return t}function Re(e){const t=[];let n="",i="",s=0,l=0;for(;le.length){n+=e.slice(l);break}n+=e.slice(l,g),l=g;continue}const c=e[l];if(i){if(n+=c,c==="\\"&&l+10){s--,n+=c,l++;continue}if(c===";"&&s===0){t.push(n),n="",l++;continue}n+=c,l++}return n&&t.push(n),t}function Pe(e){const t=[];for(const n of Re(e)){const i=n.trim();i&&(Me(n)||Q(n)||t.push(i))}return t.length===0?"":`${t.join("; ")};`}function Et(e){const t=e.prelude.trim();if(!t&&!e.braced||Q(t)||W(t)==="@import")return"";if(!e.braced)return Q(e.prelude)?"":`${t};`;if(Me(e.block)&&Q(e.block))return"";let n="";return me(t)?n=Pe(e.block):W(t).startsWith("@")?n=Oe(e.block):n=Pe(e.block),n.trim()?`${t} { ${n.trim()} }`:""}function Oe(e){const t=[];for(const n of Y(e)){const i=Et(n);i&&t.push(i)}return t.join(` `)}function Ke(e,t){const n=e[t];let i=n;for(t++;te.length){t+=e.slice(n);break}t+=e.slice(n,s),n=s;continue}const i=e[n];if(i==='"'||i==="'"){const s=Ke(e,n);t+=s.text,n=s.next;continue}if(i==="["){const s=_t(e,n);t+=s.text,n=s.next;continue}if(e.slice(n,n+5).toLowerCase()===":root"&&!le(e[n+5])){t+=":host",n+=5;continue}if(e.slice(n,n+4).toLowerCase()==="body"&&!le(e[n+4])){const s=n===0?"":e[n-1];if(!le(s)&&s!=="."&&s!=="#"&&s!==":"&&s!=="@"){t+=".deck",n+=4;continue}}t+=i,n++}return t}function Ct(e){const t=e.prelude.trim();if(!e.braced)return t?`${t};`:"";const n=W(t);let i=t,s=e.block;return n.startsWith("@")?me(t)||(s=Ne(e.block)):i=Lt(t),`${i} { ${s.trim()} }`}function Ne(e){const t=[];for(const n of Y(e)){const i=Ct(n);i&&t.push(i)}return t.join(` `)}function Tt(e){const t=fe(e);if(!t.startsWith("@media"))return null;const n=t.includes("prefers-color-scheme:dark"),i=t.includes("prefers-color-scheme:light");return n&&!i?"dark":i&&!n?"light":null}function pe(e,t){const n=[];for(const i of Y(e)){const s=i.prelude.trim(),l=Tt(s);if(l){if(l===t&&i.braced){const g=pe(i.block,t).trim();g&&n.push(g)}continue}if(!i.braced){s&&n.push(`${s};`);continue}if(W(s).startsWith("@")&&!me(s)){const g=pe(i.block,t).trim();g&&n.push(`${s} { ${g} }`);continue}n.push(`${s} { ${i.block.trim()} }`)}return n.join(` -`)}function Z(e,t){return!e.trim()||t==="auto"?e.trim():pe(e,t).trim()}const ue=["paper","paper-2","ink","ink-2","rule","empire","khaki"],J={paper:"#141a18","paper-2":"#1c2421",ink:"#e4e4da","ink-2":"#a7ada4",rule:"#3a443f",empire:"#e0675f",khaki:"#c2ad72"},qe={paper:"#e9ebe3","paper-2":"#dfe2d8",ink:"#16201f","ink-2":"#4b5551",rule:"#b9beb3",empire:"#b5302c",khaki:"#7f7047"};function Be(e){return e==="light"?qe:J}function Ve(e,t=Be(e)){const n=t;return[":host {",`--paper: ${n.paper}; --paper-2: ${n["paper-2"]}; --ink: ${n.ink}; --ink-2: ${n["ink-2"]};`,`--rule: ${n.rule}; --empire: ${n.empire}; --khaki: ${n.khaki};`,`--deck-paper: ${n.paper}; --deck-paper-2: ${n["paper-2"]}; --deck-ink: ${n.ink}; --deck-ink-2: ${n["ink-2"]};`,`--deck-rule: ${n.rule}; --deck-empire: ${n.empire}; --deck-khaki: ${n.khaki};`,`color-scheme: ${e};`,"}",".deck { background: var(--paper); color: var(--ink); }","#nav button:focus, #nav button:focus-visible { outline: none; }","#nav button:focus-visible { box-shadow: inset 4px 0 0 var(--empire, var(--deck-empire)); }","#nav button:last-of-type:focus-visible { box-shadow: inset -4px 0 0 var(--empire, var(--deck-empire)); }"].join(" ")}function Ue(e=J){return Ve("dark",e)}Ue();function $t(e=J){const t={};for(const n of ue)t[`--${n}`]=e[n];for(const n of ue)t[`--deck-${n}`]=e[n];return t}const At=/^[#a-z0-9(),.%\s/-]+$/i;function Pt(e){return ue.includes(e)}function Fe(e,t){const n={...Be(t)};for(const i of Y(Z(e,t)))if(!(!i.braced||de(i.prelude).trim()!==":host"))for(const s of Re(i.block)){const l=de(s),c=l.indexOf(":");if(c<0)continue;const g=l.slice(0,c).trim(),T=l.slice(c+1).trim();if(!g.startsWith("--deck-"))continue;const _=g.slice(7);Pt(_)&&At.test(T)&&(n[_]=T)}return n}function Dt(e){return Fe(e,"dark")}function It(e){if(!e.trim())return"";const t=Oe(e).trim();return t?Ne(t).trim():""}const Ht=':host{--deck-paper: #e5eef0;--deck-paper-2: #d0e1e3;--deck-ink: #12303a;--deck-ink-2: #48646c;--deck-rule: #a8c1c5;--deck-empire: #b84e12;--deck-khaki: #17705f;--deck-contour: rgba(18, 48, 58, .13);--deck-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #0d2b2a;--deck-paper-2: #092120;--deck-ink: #e2eeec;--deck-ink-2: #9bb8b4;--deck-rule: #2a4d4a;--deck-empire: #f09a5a;--deck-khaki: #7fd1bd;--deck-contour: rgba(226, 238, 236, .1)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:500;letter-spacing:-.012em}.slide.title>div>.sub{font-style:italic}.slide.sec>div>.k{color:var(--deck-khaki)}.slide .tl{column-gap:0;row-gap:0}.slide .tl .y{position:relative;padding:8px 30px 8px 0;text-align:right;color:var(--deck-ink);border-right:2px solid var(--deck-empire)}.slide .tl .y:after{content:"";position:absolute;right:-8px;top:50%;width:10px;height:10px;margin-top:-7px;border-radius:50%;background:var(--deck-paper);border:2px solid var(--deck-empire)}.slide .tl>span:not(.y){padding:8px 0 8px 28px}.slide .sum{border-top:0;background:var(--deck-paper-2);padding:16px 22px}.slide .quote{font-style:italic}@media not all and (max-width:900px)and (orientation:portrait){.slide:before{content:"";position:absolute;z-index:-1;right:-200px;top:-200px;width:560px;height:560px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 22px,var(--deck-contour) 22px 23.5px)}.slide:is(.sec,.title):before{right:-160px;top:auto;bottom:-320px;width:960px;height:960px}.slide>header h2{font-size:52px}.slide.sec{align-items:center}.slide.title>div>h1{margin-top:22px}.slide .sum{font-size:28px}.slide .quote{font-size:38px}}@media print{.slide:before{content:none}.slide .sum{background:none}.slide .tl .y{border-right-color:#000}.slide .tl .y:after{background:#fff;border-color:#000}}',jt=':host{--deck-paper: #f8f8f5;--deck-paper-2: #efeee8;--deck-ink: #1b1d22;--deck-ink-2: #5b5f69;--deck-rule: #d3d2ca;--deck-empire: #7a1f2b;--deck-khaki: #5b5f69;--deck-display: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #17181d;--deck-paper-2: #1e2027;--deck-ink: #ebe9e1;--deck-ink-2: #a4a7af;--deck-rule: #363944;--deck-empire: #e39aa3;--deck-khaki: #a4a7af}}.slide h1,.slide h2{font-weight:600;letter-spacing:-.015em}.slide .k{font-family:var(--deck-body);font-weight:500;letter-spacing:.16em}.slide>header{padding-bottom:22px;border-bottom:1px solid var(--deck-rule)}.slide.title>div>.sub{font-style:italic}.slide.sec>div>h2{font-style:italic;font-weight:400}.slide.sec>div>p:not(.k){font-family:var(--deck-display)}.slide li::marker{content:"– "}.slide :is(.notes,.srcs,.speak) li::marker{content:normal}.slide .tl .y{font-family:var(--deck-display);font-style:italic}.slide .sum{font-style:italic;border-top:0;border-left:2px solid var(--deck-empire);padding:2px 0 2px 22px}.slide .quote{font-style:italic}@media not all and (max-width:900px)and (orientation:portrait){.slide{padding:72px 120px 80px}.slide .k{font-size:.64em}.slide .bib .k{font-size:13px}.slide>header{gap:12px}.slide>header h2{font-size:48px}.slide.title,.slide.sec{text-align:center;justify-items:center}.slide.sec{align-items:center}.slide :is(.notes,.srcs,.speak){text-align:left}.slide.title>div{align-self:center}.slide.title>div>h1{max-width:16ch;font-size:84px;margin-top:22px;margin-inline:auto}.slide.title>footer{width:100%;justify-content:center;gap:48px}.slide.sec>div>h2{font-size:88px;max-width:none;margin-top:0}.slide.sec>div>.k:after{content:"";display:block;width:64px;height:2px;background:var(--deck-empire);margin:20px auto 26px}.slide.sec>div>p:not(.k){margin-inline:auto}.slide .tl .y{font-size:1.06em}.slide .quote{font-size:40px}}',Mt=':host{--deck-paper: #f6f7fa;--deck-paper-2: #eceff4;--deck-ink: #1d2940;--deck-ink-2: #4c586d;--deck-rule: #c9d0dc;--deck-empire: #9a6200;--deck-khaki: #7c5100;--deck-card: #ffffff;--deck-line: rgba(29, 41, 64, .12);--deck-pill: rgba(154, 98, 0, .08);--deck-pill-line: rgba(154, 98, 0, .35);--deck-ray: rgba(29, 41, 64, .05);--deck-glow: rgba(245, 197, 90, .4);--deck-shadow: 0 24px 60px -30px rgba(29, 41, 64, .35);--deck-display: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-body: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #233148;--deck-paper-2: #1d2940;--deck-ink: #e9edf3;--deck-ink-2: #b3bccb;--deck-rule: #3e4a5f;--deck-empire: #f5c55a;--deck-khaki: #fbd77e;--deck-card: #29344a;--deck-line: rgba(255, 255, 255, .1);--deck-pill: rgba(245, 197, 90, .08);--deck-pill-line: rgba(245, 197, 90, .35);--deck-ray: rgba(255, 255, 255, .035);--deck-glow: rgba(245, 197, 90, .16);--deck-shadow: 0 40px 100px -40px rgba(0, 0, 0, .6)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:700;letter-spacing:-.02em}.slide h3,.slide strong,.slide b{font-weight:600}.slide .k{font-weight:500;letter-spacing:.06em}.slide>header>.k,.slide:is(.sec,.title)>div:not(.notes,.srcs,.speak)>.k{font-family:var(--deck-body);letter-spacing:.16em;color:var(--deck-empire)}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body);font-weight:300}.slide.title>footer .k{color:var(--deck-khaki)}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-weight:300}.slide .tl .y{justify-self:stretch;align-self:baseline;text-align:center;white-space:nowrap;line-height:1.3;font-family:var(--deck-body);font-variant-numeric:tabular-nums;font-weight:500;color:var(--deck-empire);background:var(--deck-pill);border:1px solid var(--deck-pill-line);border-radius:999px;padding:0 .6em}.slide .tl>span:not(.y){align-self:baseline}.slide .sum{font-family:var(--deck-body);font-weight:500;border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:14px 24px}.slide .p{border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:18px 24px}.slide .p b{font-family:var(--deck-display);font-weight:700;letter-spacing:-.01em;line-height:1.15}.slide .note{border-left-color:var(--deck-empire)}.slide .theses>div:before{font-weight:700;color:var(--deck-empire)}.slide th{font-weight:500}.slide figure img{border-radius:12px;box-shadow:var(--deck-shadow)}.slide figcaption{margin-top:8px}.slide .quote{font-weight:300}@media not all and (max-width:900px)and (orientation:portrait){.slide:is(.sec,.title):before{content:"";position:absolute;z-index:-1;inset:-40% -20%;background:radial-gradient(circle at 80% 50%,var(--deck-glow),transparent 30%),repeating-conic-gradient(from 0deg at 80% 50%,var(--deck-ray) 0deg 7deg,transparent 7deg 15deg);-webkit-mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%);mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%)}.slide.title:after{content:"";position:absolute;z-index:-1;left:80%;top:44%;width:168px;height:168px;margin:-84px 0 0 -84px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fde9b4,#f5c55a 62%,#e9a93a);box-shadow:0 0 0 18px #f5c55a1a,0 0 120px 20px #f5c55a4d}.slide>header{gap:12px}.slide>header .k{font-size:17px}.slide>header h2{font-size:50px;line-height:1.1}.slide.sec>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:76px;max-width:15ch;margin-top:16px;line-height:1.04}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-size:28px;max-width:34ch}.slide.title>div:not(.notes,.srcs,.speak){align-self:center}.slide.title>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;line-height:1;margin-top:18px;letter-spacing:-.03em}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:32px;max-width:32ch;line-height:1.3;margin-top:24px}.slide.title>footer{font-size:20px}.slide .tl{column-gap:22px}.slide .tl .y{font-size:.8em}.slide .sum{font-size:27px;line-height:1.3}.slide .quote{font-size:38px}}@media print{.slide:before,.slide:after{content:none}.slide .sum,.slide .p,.slide .tl .y{background:none;border-color:#000}.slide figure img{box-shadow:none}}',Rt=':host{--deck-paper: #eef1f2;--deck-paper-2: #dde4e7;--deck-ink: #131c2b;--deck-ink-2: #4a586b;--deck-rule: #b4c0c9;--deck-empire: #a85f00;--deck-khaki: #1d6a78;--deck-grid: rgba(19, 28, 43, .06);--deck-display: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #131c2b;--deck-paper-2: #0d1420;--deck-ink: #e7ecf0;--deck-ink-2: #94a3b5;--deck-rule: #2b3a50;--deck-empire: #f2b23e;--deck-khaki: #72c6cf;--deck-grid: rgba(231, 236, 240, .05)}}.slide{background-image:linear-gradient(var(--deck-grid) 1px,transparent 1px),linear-gradient(90deg,var(--deck-grid) 1px,transparent 1px);background-size:40px 40px}.slide h1,.slide h2{font-weight:700;line-height:1;letter-spacing:-.005em}.slide>header{border-left:6px solid var(--deck-empire);padding-left:20px}.slide.title>div:not(.notes,.srcs,.speak)>h1,.slide.sec>div:not(.notes,.srcs,.speak)>h2{text-transform:uppercase}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body)}.slide.sec>div:not(.notes,.srcs,.speak)>.k{color:var(--deck-empire)}.slide ul{list-style:square}.slide .tl{column-gap:0;row-gap:0}.slide .tl>span{padding:9px 0;border-bottom:1px solid var(--deck-rule)}.slide .tl .y{padding-right:26px;font-weight:500}.slide .sum{font-family:var(--deck-body);font-weight:500;border:1px solid var(--deck-empire);padding:14px 18px;background:var(--deck-paper-2)}.slide .sum:before{content:"Wniosek";display:block;font:500 14px var(--deck-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--deck-empire);margin-bottom:6px}.slide .quote{font-family:var(--deck-body);font-weight:500}@media not all and (max-width:900px)and (orientation:portrait){.slide>header h2{font-size:58px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;max-width:15ch}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:112px;max-width:14ch}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:28px}.slide .sum{font-size:25px}.slide .quote{font-size:33px}}@media print{.slide{background-image:none}.slide .sum{background:none;border-color:#000}.slide .sum:before{color:#000}}',We="(max-width: 900px) and (orientation: portrait)";function Ot(e){return e(We).matches}function De(e,t,n){if(e==="reading")return t;for(const i of n)if(i.bottom>0)return i.id;return t}function Kt(e){return e.complete?Promise.resolve():new Promise(t=>{const n=()=>t();e.addEventListener("load",n,{once:!0}),e.addEventListener("error",n,{once:!0})})}async function Ie(e,t){t.scrollTo(e),await Promise.all(t.imagesBefore(e).map(Kt)),t.scrollTo(e)}function X(e,t,n){return{key:e,sheet:Z(t,"dark"),dark:Dt(t),lightSheet:Z(t,"light"),light:Fe(t,"light"),loadFonts:n}}const Nt=new Map([["atlas",X("atlas",Ht,()=>Promise.all([S(()=>Promise.resolve({}),__vite__mapDeps([0])),S(()=>Promise.resolve({}),__vite__mapDeps([1])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))],["monografia",X("monografia",jt,()=>Promise.all([S(()=>import("./index-DwX0tlPb.js").then(e=>e.aS),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aT),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))],["summer",X("summer",Mt,()=>S(()=>Promise.resolve({}),__vite__mapDeps([4])))],["sztab",X("sztab",Rt,()=>Promise.all([S(()=>import("./index-DwX0tlPb.js").then(e=>e.aQ),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aR),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-DwX0tlPb.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))]]);function qt(e){return typeof e!="string"||e===""?null:Nt.get(e)??null}function Bt(e,t,n,i="dark"){const s=i==="light";return[Z(e,i),t?s?t.lightSheet:t.sheet:"",...n,s?Ve("light",t?t.light:void 0):Ue(t?t.dark:void 0)].filter(l=>!!l)}function Vt(e,t){return t==="light"?e?e.light:qe:e?e.dark:J}const Ut=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function ce(e){const t=/^#(\d+)(s)?$/.exec(e);return t?{number:Number(t[1]),special:t[2]==="s"}:{number:null,special:!1}}function Ft(e){const t=e.slides,n=t.length,i=e.mode==="speaker";let s=0,l=!1,c=null,g=!1;function T(d){return n===0?0:Math.max(0,Math.min(n-1,d))}function _(d){const p=t.findIndex(m=>m.number===d);return p>=0?p:d>=1&&d<=n?d-1:0}function j(){const d=t[s];d&&e.history.replaceState(e.history.state,"","#"+d.number)}function L(){e.onChange?.()}function y(d){n!==0&&(s=T(d),l=!1,j(),e.onNavigate?.(s),L())}function f(d){l=!!t[s]?.hasSpecial&&d,L()}const D=ce(e.hash??"");D.number!=null&&n>0&&(s=_(D.number),l=D.special&&!!t[s]?.hasSpecial),n>0&&j();function V(){const d=t[s],p=d?.number??0,m=!!d?.hasSpecial,w=l&&m,C=w?`${p} S`:String(p),G=m&&!w?" · S":"",R=d?String(p):"";return{index:s,number:p,total:n,special:w,hasSpecial:m,on:R?[w?`${R}s`:R]:[],metaText:n===0?"":`${C} / ${n}${G}`,metaHTML:n===0?"":`${C} / ${n}${G}`,panel:c,hash:R?`#${p}`:"",toolbarHidden:g,progress:n===0?0:(s+1)/n*100}}function $(d){c=c===d?null:d,L()}function U(d){if(d.ctrlKey||d.metaKey||d.altKey||d.reading)return"ignored";const p=d.key;if(d.targetIsButton&&(p===" "||p==="Enter")||d.targetIsPanel&&Ut.has(p)||n===0)return"ignored";if(p==="ArrowRight"||p==="ArrowDown"||p==="PageDown"||p===" ")return y(s+1),"handled";if(p==="ArrowLeft"||p==="ArrowUp"||p==="PageUp")return l?f(!1):y(s-1),"handled";if(p==="Home")return y(0),"handled";if(p==="End")return y(n-1),"handled";if(p==="Escape")return l?(f(!1),"handled"):"ignored";const m=p.length===1?p.toLowerCase():"";return m==="n"?($("notes"),"handled"):m==="z"?($("srcs"),"handled"):m==="s"?(f(!l),"handled"):m==="h"?(g=!g,L(),"handled"):m==="f"?"fullscreen":i&&m==="p"?($("say"),"handled"):i&&m==="t"?"pause":i&&m==="c"?"clock":i&&m==="r"?"reset":i&&m==="j"?"scheme":"ignored"}return{snapshot:V,applyKey:U,go:y,next:()=>y(s+1),previous:()=>{l?f(!1):y(s-1)},togglePanel:$,toggleSpecial:()=>f(!l),closeSpecial:()=>f(!1),openSpecial:()=>f(!0),toggleToolbar:()=>{g=!g,L()},onScroll:()=>{},swipe:(d,p)=>p||n===0||Math.abs(d)<=50?!1:(y(s+(d<0?1:-1)),!0),followHash:d=>{const p=ce(d);if(p.number==null||n===0)return;const m=_(p.number),w=p.special&&!!t[m]?.hasSpecial;m===s&&w===l||(s=m,l=w,L())},showId:d=>{const p=ce("#"+d);if(p.number==null||n===0)return;const m=_(p.number),w=p.special&&!!t[m]?.hasSpecial;m===s&&w===l||(s=m,l=w,j(),L())}}}function He(e,t){return e.applyKey(t)}const Wt=["data-theme","aria-busy"],Zt={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},Gt={class:"tools-group"},Xt={class:"tools-pos","aria-hidden":"true"},Qt=["aria-pressed"],Yt=["aria-pressed"],Jt=["aria-pressed"],en={class:"tools-group tools-end"},tn=["aria-pressed"],nn={id:"stage"},on={key:1,class:"slide sec on","aria-busy":"true"},rn={key:2,class:"slide sec on"},sn={key:3,class:"slide sec on"},an={key:4,class:"slide sec on"},ln=["id","innerHTML"],cn={key:2,id:"bar"},dn=["innerHTML"],pn={key:4,id:"sect"},un={key:5,id:"nav"},fn={key:6,class:"sr-only","aria-live":"polite"},hn=at({__name:"DeckViewer",props:{phase:{},deck:{},error:{},mode:{},compose:{type:Function},labels:{},announce:{type:Function},extraCss:{},theme:{},images:{}},emits:["retry","position","navigate","clock","snapshot","scheme"],setup(e,{expose:t,emit:n}){const i=e,s=n,l=H(null),c=H(null),g=H(null),T=H(0),_=H(""),j=H(!1),L=H(!1),y=H(!0);let f=null,D=null,V=null,$=null,U=null,d=null,p=[],m="";const w=N(()=>qt(i.theme)),C=N(()=>y.value?"dark":"light"),G=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function R(o){return{body_html:o.body_html,sources_html:o.sources_html,comment_html:"comment_html"in o?o.comment_html:"",say_html:"say_html"in o?o.say_html:"",notes_html:"notes_html"in o?o.notes_html:""}}function Ze(o,r){const a=R(o);return i.compose?i.compose(a,r):gt({body_html:a.body_html,comment_html:a.comment_html??"",sources_html:a.sources_html,special:r})}function A(){return Ot(o=>window.matchMedia(o))}O(()=>[i.phase,i.deck],()=>{if(m="",p=[],i.phase!=="ready"||!i.deck||i.deck.slides.length===0){f=null,T.value++;return}f=Ft({slides:i.deck.slides.map(o=>({number:o.number,hasSpecial:o.special!=null})),history:window.history,hash:window.location.hash,mode:i.mode==="speaker"?"speaker":"public",onChange:()=>{T.value++},onNavigate:o=>{s("navigate",o)}}),s("position",f.snapshot().index),T.value++},{immediate:!0});const b=N(()=>(T.value,f?.snapshot()??null)),ke=N(()=>{const o=i.deck?.slides??[],r=new Set(b.value?.on??[]),a=[];for(const u of o){const h=String(u.number);if(a.push({id:h,slide:u,special:!1,on:r.has(h)}),u.special){const z=`${u.number}s`;a.push({id:z,slide:u.special,special:!0,on:r.has(z)})}}return a}),Ge=N(()=>{const o=b.value,r=i.deck?.slides.length??0;return!o||!r?"":`${o.index+1} / ${r}`}),Xe=N(()=>{const o=b.value,r=i.deck?.slides;if(!o||!r)return"";const a=r[o.index];return a?o.special&&a.special?a.special.section_label:a.section_label:""});function Qe(){const o=i.extraCss,r=Array.isArray(o)?o:o?[o]:[],a=[];for(const u of r){if(!u)continue;const h=Z(It(u),C.value);h&&a.push(h)}return a}function ee(o){const r=Bt(kt,w.value,Qe(),C.value);try{o.adoptedStyleSheets=r.map(a=>{const u=new CSSStyleSheet;return u.replaceSync(a),u})}catch{o.querySelectorAll("style[data-deck-style]").forEach(a=>a.remove());for(const a of r){const u=document.createElement("style");u.dataset.deckStyle="1",u.textContent=a,o.appendChild(u)}}}function te(){const o=l.value;if(o){for(const[r,a]of Object.entries($t(Vt(w.value,C.value))))o.style.setProperty(r,a);o.style.colorScheme=C.value,o.dataset.theme=C.value,document.documentElement.dataset.theme=C.value,document.documentElement.style.colorScheme=C.value}}function ne(){i.mode==="speaker"&&(y.value=!y.value,te(),c.value&&ee(c.value),s("scheme",!y.value))}function P(){const o=c.value?.getElementById("stage"),r=l.value;if(!o||!r)return;const a=c.value?.getElementById("nav");if(A()){o.style.transform="",a&&(a.style.top="");return}const u=c.value?.querySelector(".tools"),h=u instanceof HTMLElement?u.getBoundingClientRect().height:0,z=Math.max(0,window.innerHeight-h),I=Math.min(window.innerWidth/1280,z/720),st=h/2;o.style.transform=`translate(${-640*I}px, ${-360*I+st}px) scale(${I})`,a&&(a.style.top=`${h}px`)}function oe(){$?.disconnect();const o=c.value?.querySelector(".tools");o&&$?.observe(o)}function Ye(){const o=c.value;if(!o)return;const r=i.images;o.querySelectorAll("img[data-deck-image]").forEach(a=>{if(!(a instanceof HTMLImageElement))return;const u=a.getAttribute("data-deck-image")??"",h=u&&r?r[u]:void 0;if(!h){a.removeAttribute("src");return}a.getAttribute("src")!==h&&a.setAttribute("src",h)})}function he(){const o=c.value,r=g.value;if(!o||!r)return;const a=f?.snapshot().panel??null;if(r.classList.toggle("speaker",i.mode==="speaker"),r.classList.toggle("notes-on",a==="notes"),r.classList.toggle("srcs-on",a==="srcs"),r.classList.toggle("speak-on",a==="say"),o.querySelectorAll("aside.notes, aside.srcs, aside.speak").forEach(h=>{const z=(h.textContent??"").replace(/\u00a0/g," ").trim()==="";h.classList.toggle("is-empty",z),h.removeAttribute("tabindex"),h.removeAttribute("role"),h.removeAttribute("aria-label")}),a){const h=a==="notes"?"notes":a==="srcs"?"srcs":"speak",z=a==="notes"?i.labels?.notes??"Komentarz":a==="srcs"?i.labels?.sources??"Źródła":i.labels?.say??"",I=o.querySelector(`.slide.on aside.${h}`);I&&(I.setAttribute("tabindex","0"),I.setAttribute("role","region"),I.setAttribute("aria-label",z))}const u=i.labels?.specialLink??"Slajd dodatkowy (S)";o.querySelectorAll(".sp-link").forEach(h=>{h.setAttribute("title",u)})}function ge(){return c.value?.activeElement??document.activeElement}function Je(){const r=ge()?.closest?.(".notes, .srcs, .speak");return r instanceof HTMLElement?r:null}function et(o,r){const u=o.clientHeight;r==="ArrowDown"?o.scrollTop+=40:r==="ArrowUp"?o.scrollTop-=40:r==="PageDown"||r===" "?o.scrollTop+=u:r==="PageUp"?o.scrollTop-=u:r==="Home"?o.scrollTop=0:r==="End"&&(o.scrollTop=o.scrollHeight)}function ie(){document.fullscreenEnabled&&(document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()?.catch(()=>{}))}function be(o){return o!=="pause"&&o!=="clock"&&o!=="reset"?!1:(s("clock",o),!0)}function xe(o){if(!f||i.phase!=="ready")return;const a=!!ge()?.closest("button"),u=Je(),h=He(f,{key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,altKey:o.altKey,targetIsButton:a,targetIsPanel:!!u,reading:A()});if(h==="fullscreen"){o.preventDefault(),ie();return}if(h==="scheme"){o.preventDefault(),ne();return}if(be(h)){o.preventDefault();return}if(h==="ignored"){if(a&&(o.key===" "||o.key==="Enter"))return;u&&G.has(o.key)&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!A()&&(o.preventDefault(),et(u,o.key));return}o.preventDefault()}function tt(o){if(!f||i.phase!=="ready"||i.mode!=="speaker"||o.toLowerCase()==="f")return"ignored";const r=He(f,{key:o,reading:A()});return r==="fullscreen"?"ignored":(be(r),r==="scheme"&&ne(),r)}function nt(o){if(!f||i.phase!=="ready"||i.mode!=="speaker"||!i.deck||A())return!1;const r=i.deck.slides.findIndex(a=>a.number===o);return r<0?!1:(f.go(r),!0)}t({runKey:tt,goToNumber:nt});function ve(){f&&window.location.hash!==f.snapshot().hash&&f.followHash(window.location.hash)}function ye(){L.value=document.fullscreenElement!=null,P()}function ot(o){if(!(o instanceof MouseEvent)||!f||A())return;const r=o.target instanceof Element?o.target:null;if(o.detail>0){const u=r?.closest("#nav button");u instanceof HTMLElement&&u.blur()}if(r?.closest(".tools, .tools-show, #speaker-clock"))return;const a=c.value;if(a){for(const u of a.elementsFromPoint(o.clientX,o.clientY))if(u instanceof Element){if(u.classList.contains("sp-link")){o.preventDefault(),o.stopPropagation(),f.openSpecial();return}if(u.classList.contains("sp-close")){o.preventDefault(),o.stopPropagation(),f.closeSpecial();return}}}}function we(o){D=o.touches[0]?.clientX??null}function ze(o){if(D==null||!f)return;const r=D;D=null;const a=o.changedTouches[0]?.clientX;a!=null&&f.swipe(a-r,A())}function re(o){f?.togglePanel(o)}function Se(){f?.toggleSpecial()}function se(){f?.toggleToolbar()}function it(){f?.previous()}function rt(){f?.next()}function Ee(){const o=c.value;return o?[...o.querySelectorAll("section.slide")].flatMap(r=>!(r instanceof HTMLElement)||!r.id?[]:[{id:r.id,bottom:r.getBoundingClientRect().bottom}]):[]}function M(){if(!A())return;const o=Ee();o.length&&(p=o)}const _e={scrollTo(o){c.value?.getElementById(o)?.scrollIntoView({block:"start"})},imagesBefore(o){const r=c.value;if(!r)return[];const a=[...r.querySelectorAll("section.slide")],u=a.findIndex(z=>z.id===o);if(u<=0)return[];const h=[];for(let z=0;zM()))}function Ce(){if(!f||i.phase!=="ready"||!d)return;const o=f.snapshot().on[0]??"";if(!o)return;if(d.matches){const a=De("reading",o,p);m="",ae(()=>{M(),m=a,Ie(a,_e).then(()=>M())});return}const r=De("slide",o,p.length?p:Ee());m="",f.showId(r),P()}return lt(()=>{const o=l.value;if(!o)return;j.value=document.fullscreenEnabled;const r=o.attachShadow({mode:"open"});c.value=r,te(),ee(r);const a=document.createElement("div");a.className="deck",r.appendChild(a),g.value=a,r.addEventListener("click",ot,!0),window.addEventListener("hashchange",ve),window.addEventListener("keydown",xe),window.addEventListener("resize",P),window.addEventListener("scroll",M,!0),window.addEventListener("touchstart",we,{passive:!0}),window.addEventListener("touchend",ze,{passive:!0}),document.addEventListener("fullscreenchange",ye),d=window.matchMedia(We),d.addEventListener("change",Ce),V=new ResizeObserver(()=>P()),V.observe(o),$=new ResizeObserver(()=>P()),U=new MutationObserver(()=>{oe(),P()}),U.observe(a,{childList:!0,subtree:!0}),ae(()=>{he(),oe(),P(),M(),Le()})}),ct(()=>{window.removeEventListener("hashchange",ve),window.removeEventListener("keydown",xe),window.removeEventListener("resize",P),window.removeEventListener("scroll",M,!0),window.removeEventListener("touchstart",we),window.removeEventListener("touchend",ze),document.removeEventListener("fullscreenchange",ye),d?.removeEventListener("change",Ce),V?.disconnect(),$?.disconnect(),U?.disconnect();const o=document.documentElement;delete o.dataset.theme,o.style.removeProperty("color-scheme")}),O([()=>i.extraCss,()=>i.theme],()=>{te(),c.value&&ee(c.value)}),O(w,o=>{o?.loadFonts().catch(()=>{})},{immediate:!0}),O(b,o=>{o&&s("snapshot",o)}),O(b,(o,r)=>{if(!o){_.value="";return}if(!r||o.number!==r.number||o.special!==r.special){if(i.announce){_.value=i.announce({number:o.number,total:o.total,special:o.special});return}o.special&&!r?.special?_.value=`Slajd dodatkowy do slajdu ${o.number}`:_.value=`Slajd ${o.number} z ${o.total}`}},{immediate:!0}),O([()=>i.phase,ke,b,()=>i.images],()=>{ae(()=>{he(),Ye(),oe(),P();const o=f?.snapshot().on[0]??"";o&&o!==m?Le():M()})}),(o,r)=>(x(),v("div",{ref_key:"host",ref:l,class:"deck-host","data-theme":y.value?"dark":"light","aria-busy":e.phase==="loading"?"true":void 0},[g.value?(x(),dt(pt,{key:0,to:g.value},[e.phase==="ready"&&b.value&&e.mode==="speaker"?Te(o.$slots,"tools",{panel:b.value.panel,special:b.value.special,hasSpecial:b.value.hasSpecial,fullscreenEnabled:j.value,fullscreenOn:L.value,toolbarHidden:b.value.toolbarHidden,togglePanel:re,toggleSpecial:Se,toggleToolbar:se,toggleFullscreen:ie,light:!y.value,toggleScheme:ne},void 0,void 0,0):E("",!0),e.phase==="ready"&&b.value&&e.mode!=="speaker"?(x(),v($e,{key:1},[b.value.toolbarHidden?E("",!0):(x(),v("div",Zt,[k("div",Gt,[k("span",Xt,F(Ge.value),1),k("button",{type:"button","aria-pressed":b.value.panel==="notes","aria-keyshortcuts":"N",onClick:r[0]||(r[0]=a=>re("notes"))},[...r[3]||(r[3]=[K(" Komentarz ",-1),k("kbd",null,"N",-1)])],8,Qt),k("button",{type:"button","aria-pressed":b.value.panel==="srcs","aria-keyshortcuts":"Z",onClick:r[1]||(r[1]=a=>re("srcs"))},[...r[4]||(r[4]=[K(" Źródła ",-1),k("kbd",null,"Z",-1)])],8,Yt),k("button",{type:"button",class:Ae(["tool-s",{unavailable:!b.value.hasSpecial}]),"aria-pressed":b.value.special,"aria-keyshortcuts":"S",onClick:Se},[...r[5]||(r[5]=[K(" Slajd dodatkowy ",-1),k("kbd",null,"S",-1)])],10,Jt)]),k("div",en,[j.value?(x(),v("button",{key:0,type:"button","aria-pressed":L.value,"aria-keyshortcuts":"F",onClick:ie},[...r[6]||(r[6]=[K(" Pełny ekran ",-1),k("kbd",null,"F",-1)])],8,tn)):E("",!0),k("button",{type:"button","aria-keyshortcuts":"H",onClick:se},[...r[7]||(r[7]=[K(" Ukryj pasek ",-1),k("kbd",null,"H",-1)])])])])),b.value.toolbarHidden?(x(),v("button",{key:1,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:se},[...r[8]||(r[8]=[K(" Pokaż pasek ",-1),k("kbd",null,"H",-1)])])):E("",!0)],64)):E("",!0),k("div",nn,[e.mode==="speaker"&&e.phase==="ready"?Te(o.$slots,"reading-close",{},void 0,void 0,0):E("",!0),e.phase==="loading"?(x(),v("section",on,[...r[9]||(r[9]=[k("div",null,[k("p",{class:"k"},"Wczytywanie prezentacji…")],-1)])])):e.phase==="notfound"?(x(),v("section",rn,[...r[10]||(r[10]=[k("div",null,[k("p",{class:"k"},"404"),k("h2",null,"Nie ma takiej prezentacji"),k("p",null,"Link jest nieaktualny albo prezentacja nie jest już udostępniona.")],-1)])])):e.phase==="error"?(x(),v("section",sn,[k("div",null,[r[11]||(r[11]=k("p",{class:"k"},"Błąd",-1)),r[12]||(r[12]=k("h2",null,"Nie udało się wczytać prezentacji",-1)),k("p",null,F(e.error),1),k("button",{type:"button",class:"status-retry",onClick:r[2]||(r[2]=a=>s("retry"))},"Spróbuj ponownie")])])):e.phase==="empty"?(x(),v("section",an,[k("div",null,[k("h2",null,F(e.deck?.title),1),r[13]||(r[13]=k("p",null,"Ta prezentacja nie ma jeszcze slajdów.",-1))])])):e.phase==="ready"?(x(!0),v($e,{key:5},ut(ke.value,a=>(x(),v("section",{id:a.id,key:a.id,class:Ae(mt(bt)(a.slide.css_class,{special:a.special,on:a.on})),innerHTML:Ze(a.slide,a.special)},null,10,ln))),128)):E("",!0)]),e.phase==="ready"&&b.value?(x(),v("div",cn,[k("i",{style:ft({width:b.value.progress+"%"})},null,4)])):E("",!0),e.phase==="ready"&&b.value?(x(),v("div",{key:3,id:"meta",innerHTML:b.value.metaHTML},null,8,dn)):E("",!0),e.phase==="ready"&&b.value?(x(),v("div",pn,F(Xe.value),1)):E("",!0),e.phase==="ready"?(x(),v("div",un,[k("button",{type:"button","aria-label":"Poprzedni slajd",onClick:it}),r[14]||(r[14]=k("div",{class:"mid"},null,-1)),k("button",{type:"button","aria-label":"Następny slajd",onClick:rt})])):E("",!0),e.phase==="ready"?(x(),v("div",fn,F(_.value),1)):E("",!0)],8,["to"])):E("",!0)],8,Wt))}});export{hn as _,Ot as r}; +`)}function Z(e,t){return!e.trim()||t==="auto"?e.trim():pe(e,t).trim()}const ue=["paper","paper-2","ink","ink-2","rule","empire","khaki"],J={paper:"#141a18","paper-2":"#1c2421",ink:"#e4e4da","ink-2":"#a7ada4",rule:"#3a443f",empire:"#e0675f",khaki:"#c2ad72"},qe={paper:"#e9ebe3","paper-2":"#dfe2d8",ink:"#16201f","ink-2":"#4b5551",rule:"#b9beb3",empire:"#b5302c",khaki:"#7f7047"};function Be(e){return e==="light"?qe:J}function Ve(e,t=Be(e)){const n=t;return[":host {",`--paper: ${n.paper}; --paper-2: ${n["paper-2"]}; --ink: ${n.ink}; --ink-2: ${n["ink-2"]};`,`--rule: ${n.rule}; --empire: ${n.empire}; --khaki: ${n.khaki};`,`--deck-paper: ${n.paper}; --deck-paper-2: ${n["paper-2"]}; --deck-ink: ${n.ink}; --deck-ink-2: ${n["ink-2"]};`,`--deck-rule: ${n.rule}; --deck-empire: ${n.empire}; --deck-khaki: ${n.khaki};`,`color-scheme: ${e};`,"}",".deck { background: var(--paper); color: var(--ink); }","#nav button:focus, #nav button:focus-visible { outline: none; }","#nav button:focus-visible { box-shadow: inset 4px 0 0 var(--empire, var(--deck-empire)); }","#nav button:last-of-type:focus-visible { box-shadow: inset -4px 0 0 var(--empire, var(--deck-empire)); }"].join(" ")}function Ue(e=J){return Ve("dark",e)}Ue();function $t(e=J){const t={};for(const n of ue)t[`--${n}`]=e[n];for(const n of ue)t[`--deck-${n}`]=e[n];return t}const At=/^[#a-z0-9(),.%\s/-]+$/i;function Pt(e){return ue.includes(e)}function Fe(e,t){const n={...Be(t)};for(const i of Y(Z(e,t)))if(!(!i.braced||de(i.prelude).trim()!==":host"))for(const s of Re(i.block)){const l=de(s),c=l.indexOf(":");if(c<0)continue;const g=l.slice(0,c).trim(),T=l.slice(c+1).trim();if(!g.startsWith("--deck-"))continue;const _=g.slice(7);Pt(_)&&At.test(T)&&(n[_]=T)}return n}function Dt(e){return Fe(e,"dark")}function It(e){if(!e.trim())return"";const t=Oe(e).trim();return t?Ne(t).trim():""}const Ht=':host{--deck-paper: #e5eef0;--deck-paper-2: #d0e1e3;--deck-ink: #12303a;--deck-ink-2: #48646c;--deck-rule: #a8c1c5;--deck-empire: #b84e12;--deck-khaki: #17705f;--deck-contour: rgba(18, 48, 58, .13);--deck-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #0d2b2a;--deck-paper-2: #092120;--deck-ink: #e2eeec;--deck-ink-2: #9bb8b4;--deck-rule: #2a4d4a;--deck-empire: #f09a5a;--deck-khaki: #7fd1bd;--deck-contour: rgba(226, 238, 236, .1)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:500;letter-spacing:-.012em}.slide.title>div>.sub{font-style:italic}.slide.sec>div>.k{color:var(--deck-khaki)}.slide .tl{column-gap:0;row-gap:0}.slide .tl .y{position:relative;padding:8px 30px 8px 0;text-align:right;color:var(--deck-ink);border-right:2px solid var(--deck-empire)}.slide .tl .y:after{content:"";position:absolute;right:-8px;top:50%;width:10px;height:10px;margin-top:-7px;border-radius:50%;background:var(--deck-paper);border:2px solid var(--deck-empire)}.slide .tl>span:not(.y){padding:8px 0 8px 28px}.slide .sum{border-top:0;background:var(--deck-paper-2);padding:16px 22px}.slide .quote{font-style:italic}@media not all and (max-width:900px)and (orientation:portrait){.slide:before{content:"";position:absolute;z-index:-1;right:-200px;top:-200px;width:560px;height:560px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 22px,var(--deck-contour) 22px 23.5px)}.slide:is(.sec,.title):before{right:-160px;top:auto;bottom:-320px;width:960px;height:960px}.slide>header h2{font-size:52px}.slide.sec{align-items:center}.slide.title>div>h1{margin-top:22px}.slide .sum{font-size:28px}.slide .quote{font-size:38px}}@media print{.slide:before{content:none}.slide .sum{background:none}.slide .tl .y{border-right-color:#000}.slide .tl .y:after{background:#fff;border-color:#000}}',jt=':host{--deck-paper: #f8f8f5;--deck-paper-2: #efeee8;--deck-ink: #1b1d22;--deck-ink-2: #5b5f69;--deck-rule: #d3d2ca;--deck-empire: #7a1f2b;--deck-khaki: #5b5f69;--deck-display: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #17181d;--deck-paper-2: #1e2027;--deck-ink: #ebe9e1;--deck-ink-2: #a4a7af;--deck-rule: #363944;--deck-empire: #e39aa3;--deck-khaki: #a4a7af}}.slide h1,.slide h2{font-weight:600;letter-spacing:-.015em}.slide .k{font-family:var(--deck-body);font-weight:500;letter-spacing:.16em}.slide>header{padding-bottom:22px;border-bottom:1px solid var(--deck-rule)}.slide.title>div>.sub{font-style:italic}.slide.sec>div>h2{font-style:italic;font-weight:400}.slide.sec>div>p:not(.k){font-family:var(--deck-display)}.slide li::marker{content:"– "}.slide :is(.notes,.srcs,.speak) li::marker{content:normal}.slide .tl .y{font-family:var(--deck-display);font-style:italic}.slide .sum{font-style:italic;border-top:0;border-left:2px solid var(--deck-empire);padding:2px 0 2px 22px}.slide .quote{font-style:italic}@media not all and (max-width:900px)and (orientation:portrait){.slide{padding:72px 120px 80px}.slide .k{font-size:.64em}.slide .bib .k{font-size:13px}.slide>header{gap:12px}.slide>header h2{font-size:48px}.slide.title,.slide.sec{text-align:center;justify-items:center}.slide.sec{align-items:center}.slide :is(.notes,.srcs,.speak){text-align:left}.slide.title>div{align-self:center}.slide.title>div>h1{max-width:16ch;font-size:84px;margin-top:22px;margin-inline:auto}.slide.title>footer{width:100%;justify-content:center;gap:48px}.slide.sec>div>h2{font-size:88px;max-width:none;margin-top:0}.slide.sec>div>.k:after{content:"";display:block;width:64px;height:2px;background:var(--deck-empire);margin:20px auto 26px}.slide.sec>div>p:not(.k){margin-inline:auto}.slide .tl .y{font-size:1.06em}.slide .quote{font-size:40px}}',Mt=':host{--deck-paper: #f6f7fa;--deck-paper-2: #eceff4;--deck-ink: #1d2940;--deck-ink-2: #4c586d;--deck-rule: #c9d0dc;--deck-empire: #9a6200;--deck-khaki: #7c5100;--deck-card: #ffffff;--deck-line: rgba(29, 41, 64, .12);--deck-pill: rgba(154, 98, 0, .08);--deck-pill-line: rgba(154, 98, 0, .35);--deck-ray: rgba(29, 41, 64, .05);--deck-glow: rgba(245, 197, 90, .4);--deck-shadow: 0 24px 60px -30px rgba(29, 41, 64, .35);--deck-display: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-body: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #233148;--deck-paper-2: #1d2940;--deck-ink: #e9edf3;--deck-ink-2: #b3bccb;--deck-rule: #3e4a5f;--deck-empire: #f5c55a;--deck-khaki: #fbd77e;--deck-card: #29344a;--deck-line: rgba(255, 255, 255, .1);--deck-pill: rgba(245, 197, 90, .08);--deck-pill-line: rgba(245, 197, 90, .35);--deck-ray: rgba(255, 255, 255, .035);--deck-glow: rgba(245, 197, 90, .16);--deck-shadow: 0 40px 100px -40px rgba(0, 0, 0, .6)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:700;letter-spacing:-.02em}.slide h3,.slide strong,.slide b{font-weight:600}.slide .k{font-weight:500;letter-spacing:.06em}.slide>header>.k,.slide:is(.sec,.title)>div:not(.notes,.srcs,.speak)>.k{font-family:var(--deck-body);letter-spacing:.16em;color:var(--deck-empire)}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body);font-weight:300}.slide.title>footer .k{color:var(--deck-khaki)}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-weight:300}.slide .tl .y{justify-self:stretch;align-self:baseline;text-align:center;white-space:nowrap;line-height:1.3;font-family:var(--deck-body);font-variant-numeric:tabular-nums;font-weight:500;color:var(--deck-empire);background:var(--deck-pill);border:1px solid var(--deck-pill-line);border-radius:999px;padding:0 .6em}.slide .tl>span:not(.y){align-self:baseline}.slide .sum{font-family:var(--deck-body);font-weight:500;border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:14px 24px}.slide .p{border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:18px 24px}.slide .p b{font-family:var(--deck-display);font-weight:700;letter-spacing:-.01em;line-height:1.15}.slide .note{border-left-color:var(--deck-empire)}.slide .theses>div:before{font-weight:700;color:var(--deck-empire)}.slide th{font-weight:500}.slide figure img{border-radius:12px;box-shadow:var(--deck-shadow)}.slide figcaption{margin-top:8px}.slide .quote{font-weight:300}@media not all and (max-width:900px)and (orientation:portrait){.slide:is(.sec,.title):before{content:"";position:absolute;z-index:-1;inset:-40% -20%;background:radial-gradient(circle at 80% 50%,var(--deck-glow),transparent 30%),repeating-conic-gradient(from 0deg at 80% 50%,var(--deck-ray) 0deg 7deg,transparent 7deg 15deg);-webkit-mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%);mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%)}.slide.title:after{content:"";position:absolute;z-index:-1;left:80%;top:44%;width:168px;height:168px;margin:-84px 0 0 -84px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fde9b4,#f5c55a 62%,#e9a93a);box-shadow:0 0 0 18px #f5c55a1a,0 0 120px 20px #f5c55a4d}.slide>header{gap:12px}.slide>header .k{font-size:17px}.slide>header h2{font-size:50px;line-height:1.1}.slide.sec>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:76px;max-width:15ch;margin-top:16px;line-height:1.04}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-size:28px;max-width:34ch}.slide.title>div:not(.notes,.srcs,.speak){align-self:center}.slide.title>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;line-height:1;margin-top:18px;letter-spacing:-.03em}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:32px;max-width:32ch;line-height:1.3;margin-top:24px}.slide.title>footer{font-size:20px}.slide .tl{column-gap:22px}.slide .tl .y{font-size:.8em}.slide .sum{font-size:27px;line-height:1.3}.slide .quote{font-size:38px}}@media print{.slide:before,.slide:after{content:none}.slide .sum,.slide .p,.slide .tl .y{background:none;border-color:#000}.slide figure img{box-shadow:none}}',Rt=':host{--deck-paper: #eef1f2;--deck-paper-2: #dde4e7;--deck-ink: #131c2b;--deck-ink-2: #4a586b;--deck-rule: #b4c0c9;--deck-empire: #a85f00;--deck-khaki: #1d6a78;--deck-grid: rgba(19, 28, 43, .06);--deck-display: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #131c2b;--deck-paper-2: #0d1420;--deck-ink: #e7ecf0;--deck-ink-2: #94a3b5;--deck-rule: #2b3a50;--deck-empire: #f2b23e;--deck-khaki: #72c6cf;--deck-grid: rgba(231, 236, 240, .05)}}.slide{background-image:linear-gradient(var(--deck-grid) 1px,transparent 1px),linear-gradient(90deg,var(--deck-grid) 1px,transparent 1px);background-size:40px 40px}.slide h1,.slide h2{font-weight:700;line-height:1;letter-spacing:-.005em}.slide>header{border-left:6px solid var(--deck-empire);padding-left:20px}.slide.title>div:not(.notes,.srcs,.speak)>h1,.slide.sec>div:not(.notes,.srcs,.speak)>h2{text-transform:uppercase}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body)}.slide.sec>div:not(.notes,.srcs,.speak)>.k{color:var(--deck-empire)}.slide ul{list-style:square}.slide .tl{column-gap:0;row-gap:0}.slide .tl>span{padding:9px 0;border-bottom:1px solid var(--deck-rule)}.slide .tl .y{padding-right:26px;font-weight:500}.slide .sum{font-family:var(--deck-body);font-weight:500;border:1px solid var(--deck-empire);padding:14px 18px;background:var(--deck-paper-2)}.slide .sum:before{content:"Wniosek";display:block;font:500 14px var(--deck-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--deck-empire);margin-bottom:6px}.slide .quote{font-family:var(--deck-body);font-weight:500}@media not all and (max-width:900px)and (orientation:portrait){.slide>header h2{font-size:58px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;max-width:15ch}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:112px;max-width:14ch}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:28px}.slide .sum{font-size:25px}.slide .quote{font-size:33px}}@media print{.slide{background-image:none}.slide .sum{background:none;border-color:#000}.slide .sum:before{color:#000}}',We="(max-width: 900px) and (orientation: portrait)";function Ot(e){return e(We).matches}function De(e,t,n){if(e==="reading")return t;for(const i of n)if(i.bottom>0)return i.id;return t}function Kt(e){return e.complete?Promise.resolve():new Promise(t=>{const n=()=>t();e.addEventListener("load",n,{once:!0}),e.addEventListener("error",n,{once:!0})})}async function Ie(e,t){t.scrollTo(e),await Promise.all(t.imagesBefore(e).map(Kt)),t.scrollTo(e)}function X(e,t,n){return{key:e,sheet:Z(t,"dark"),dark:Dt(t),lightSheet:Z(t,"light"),light:Fe(t,"light"),loadFonts:n}}const Nt=new Map([["atlas",X("atlas",Ht,()=>Promise.all([S(()=>Promise.resolve({}),__vite__mapDeps([0])),S(()=>Promise.resolve({}),__vite__mapDeps([1])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))],["monografia",X("monografia",jt,()=>Promise.all([S(()=>import("./index-C7U0oIvN.js").then(e=>e.aS),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aT),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))],["summer",X("summer",Mt,()=>S(()=>Promise.resolve({}),__vite__mapDeps([4])))],["sztab",X("sztab",Rt,()=>Promise.all([S(()=>import("./index-C7U0oIvN.js").then(e=>e.aQ),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aR),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aU),__vite__mapDeps([2,3])),S(()=>import("./index-C7U0oIvN.js").then(e=>e.aV),__vite__mapDeps([2,3]))]))]]);function qt(e){return typeof e!="string"||e===""?null:Nt.get(e)??null}function Bt(e,t,n,i="dark"){const s=i==="light";return[Z(e,i),t?s?t.lightSheet:t.sheet:"",...n,s?Ve("light",t?t.light:void 0):Ue(t?t.dark:void 0)].filter(l=>!!l)}function Vt(e,t){return t==="light"?e?e.light:qe:e?e.dark:J}const Ut=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function ce(e){const t=/^#(\d+)(s)?$/.exec(e);return t?{number:Number(t[1]),special:t[2]==="s"}:{number:null,special:!1}}function Ft(e){const t=e.slides,n=t.length,i=e.mode==="speaker";let s=0,l=!1,c=null,g=!1;function T(d){return n===0?0:Math.max(0,Math.min(n-1,d))}function _(d){const p=t.findIndex(m=>m.number===d);return p>=0?p:d>=1&&d<=n?d-1:0}function j(){const d=t[s];d&&e.history.replaceState(e.history.state,"","#"+d.number)}function L(){e.onChange?.()}function y(d){n!==0&&(s=T(d),l=!1,j(),e.onNavigate?.(s),L())}function f(d){l=!!t[s]?.hasSpecial&&d,L()}const D=ce(e.hash??"");D.number!=null&&n>0&&(s=_(D.number),l=D.special&&!!t[s]?.hasSpecial),n>0&&j();function V(){const d=t[s],p=d?.number??0,m=!!d?.hasSpecial,w=l&&m,C=w?`${p} S`:String(p),G=m&&!w?" · S":"",R=d?String(p):"";return{index:s,number:p,total:n,special:w,hasSpecial:m,on:R?[w?`${R}s`:R]:[],metaText:n===0?"":`${C} / ${n}${G}`,metaHTML:n===0?"":`${C} / ${n}${G}`,panel:c,hash:R?`#${p}`:"",toolbarHidden:g,progress:n===0?0:(s+1)/n*100}}function $(d){c=c===d?null:d,L()}function U(d){if(d.ctrlKey||d.metaKey||d.altKey||d.reading)return"ignored";const p=d.key;if(d.targetIsButton&&(p===" "||p==="Enter")||d.targetIsPanel&&Ut.has(p)||n===0)return"ignored";if(p==="ArrowRight"||p==="ArrowDown"||p==="PageDown"||p===" ")return y(s+1),"handled";if(p==="ArrowLeft"||p==="ArrowUp"||p==="PageUp")return l?f(!1):y(s-1),"handled";if(p==="Home")return y(0),"handled";if(p==="End")return y(n-1),"handled";if(p==="Escape")return l?(f(!1),"handled"):"ignored";const m=p.length===1?p.toLowerCase():"";return m==="n"?($("notes"),"handled"):m==="z"?($("srcs"),"handled"):m==="s"?(f(!l),"handled"):m==="h"?(g=!g,L(),"handled"):m==="f"?"fullscreen":i&&m==="p"?($("say"),"handled"):i&&m==="t"?"pause":i&&m==="c"?"clock":i&&m==="r"?"reset":i&&m==="j"?"scheme":"ignored"}return{snapshot:V,applyKey:U,go:y,next:()=>y(s+1),previous:()=>{l?f(!1):y(s-1)},togglePanel:$,toggleSpecial:()=>f(!l),closeSpecial:()=>f(!1),openSpecial:()=>f(!0),toggleToolbar:()=>{g=!g,L()},onScroll:()=>{},swipe:(d,p)=>p||n===0||Math.abs(d)<=50?!1:(y(s+(d<0?1:-1)),!0),followHash:d=>{const p=ce(d);if(p.number==null||n===0)return;const m=_(p.number),w=p.special&&!!t[m]?.hasSpecial;m===s&&w===l||(s=m,l=w,L())},showId:d=>{const p=ce("#"+d);if(p.number==null||n===0)return;const m=_(p.number),w=p.special&&!!t[m]?.hasSpecial;m===s&&w===l||(s=m,l=w,j(),L())}}}function He(e,t){return e.applyKey(t)}const Wt=["data-theme","aria-busy"],Zt={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},Gt={class:"tools-group"},Xt={class:"tools-pos","aria-hidden":"true"},Qt=["aria-pressed"],Yt=["aria-pressed"],Jt=["aria-pressed"],en={class:"tools-group tools-end"},tn=["aria-pressed"],nn={id:"stage"},on={key:1,class:"slide sec on","aria-busy":"true"},rn={key:2,class:"slide sec on"},sn={key:3,class:"slide sec on"},an={key:4,class:"slide sec on"},ln=["id","innerHTML"],cn={key:2,id:"bar"},dn=["innerHTML"],pn={key:4,id:"sect"},un={key:5,id:"nav"},fn={key:6,class:"sr-only","aria-live":"polite"},hn=at({__name:"DeckViewer",props:{phase:{},deck:{},error:{},mode:{},compose:{type:Function},labels:{},announce:{type:Function},extraCss:{},theme:{},images:{}},emits:["retry","position","navigate","clock","snapshot","scheme"],setup(e,{expose:t,emit:n}){const i=e,s=n,l=H(null),c=H(null),g=H(null),T=H(0),_=H(""),j=H(!1),L=H(!1),y=H(!0);let f=null,D=null,V=null,$=null,U=null,d=null,p=[],m="";const w=N(()=>qt(i.theme)),C=N(()=>y.value?"dark":"light"),G=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function R(o){return{body_html:o.body_html,sources_html:o.sources_html,comment_html:"comment_html"in o?o.comment_html:"",say_html:"say_html"in o?o.say_html:"",notes_html:"notes_html"in o?o.notes_html:""}}function Ze(o,r){const a=R(o);return i.compose?i.compose(a,r):gt({body_html:a.body_html,comment_html:a.comment_html??"",sources_html:a.sources_html,special:r})}function A(){return Ot(o=>window.matchMedia(o))}O(()=>[i.phase,i.deck],()=>{if(m="",p=[],i.phase!=="ready"||!i.deck||i.deck.slides.length===0){f=null,T.value++;return}f=Ft({slides:i.deck.slides.map(o=>({number:o.number,hasSpecial:o.special!=null})),history:window.history,hash:window.location.hash,mode:i.mode==="speaker"?"speaker":"public",onChange:()=>{T.value++},onNavigate:o=>{s("navigate",o)}}),s("position",f.snapshot().index),T.value++},{immediate:!0});const b=N(()=>(T.value,f?.snapshot()??null)),ke=N(()=>{const o=i.deck?.slides??[],r=new Set(b.value?.on??[]),a=[];for(const u of o){const h=String(u.number);if(a.push({id:h,slide:u,special:!1,on:r.has(h)}),u.special){const z=`${u.number}s`;a.push({id:z,slide:u.special,special:!0,on:r.has(z)})}}return a}),Ge=N(()=>{const o=b.value,r=i.deck?.slides.length??0;return!o||!r?"":`${o.index+1} / ${r}`}),Xe=N(()=>{const o=b.value,r=i.deck?.slides;if(!o||!r)return"";const a=r[o.index];return a?o.special&&a.special?a.special.section_label:a.section_label:""});function Qe(){const o=i.extraCss,r=Array.isArray(o)?o:o?[o]:[],a=[];for(const u of r){if(!u)continue;const h=Z(It(u),C.value);h&&a.push(h)}return a}function ee(o){const r=Bt(kt,w.value,Qe(),C.value);try{o.adoptedStyleSheets=r.map(a=>{const u=new CSSStyleSheet;return u.replaceSync(a),u})}catch{o.querySelectorAll("style[data-deck-style]").forEach(a=>a.remove());for(const a of r){const u=document.createElement("style");u.dataset.deckStyle="1",u.textContent=a,o.appendChild(u)}}}function te(){const o=l.value;if(o){for(const[r,a]of Object.entries($t(Vt(w.value,C.value))))o.style.setProperty(r,a);o.style.colorScheme=C.value,o.dataset.theme=C.value,document.documentElement.dataset.theme=C.value,document.documentElement.style.colorScheme=C.value}}function ne(){i.mode==="speaker"&&(y.value=!y.value,te(),c.value&&ee(c.value),s("scheme",!y.value))}function P(){const o=c.value?.getElementById("stage"),r=l.value;if(!o||!r)return;const a=c.value?.getElementById("nav");if(A()){o.style.transform="",a&&(a.style.top="");return}const u=c.value?.querySelector(".tools"),h=u instanceof HTMLElement?u.getBoundingClientRect().height:0,z=Math.max(0,window.innerHeight-h),I=Math.min(window.innerWidth/1280,z/720),st=h/2;o.style.transform=`translate(${-640*I}px, ${-360*I+st}px) scale(${I})`,a&&(a.style.top=`${h}px`)}function oe(){$?.disconnect();const o=c.value?.querySelector(".tools");o&&$?.observe(o)}function Ye(){const o=c.value;if(!o)return;const r=i.images;o.querySelectorAll("img[data-deck-image]").forEach(a=>{if(!(a instanceof HTMLImageElement))return;const u=a.getAttribute("data-deck-image")??"",h=u&&r?r[u]:void 0;if(!h){a.removeAttribute("src");return}a.getAttribute("src")!==h&&a.setAttribute("src",h)})}function he(){const o=c.value,r=g.value;if(!o||!r)return;const a=f?.snapshot().panel??null;if(r.classList.toggle("speaker",i.mode==="speaker"),r.classList.toggle("notes-on",a==="notes"),r.classList.toggle("srcs-on",a==="srcs"),r.classList.toggle("speak-on",a==="say"),o.querySelectorAll("aside.notes, aside.srcs, aside.speak").forEach(h=>{const z=(h.textContent??"").replace(/\u00a0/g," ").trim()==="";h.classList.toggle("is-empty",z),h.removeAttribute("tabindex"),h.removeAttribute("role"),h.removeAttribute("aria-label")}),a){const h=a==="notes"?"notes":a==="srcs"?"srcs":"speak",z=a==="notes"?i.labels?.notes??"Komentarz":a==="srcs"?i.labels?.sources??"Źródła":i.labels?.say??"",I=o.querySelector(`.slide.on aside.${h}`);I&&(I.setAttribute("tabindex","0"),I.setAttribute("role","region"),I.setAttribute("aria-label",z))}const u=i.labels?.specialLink??"Slajd dodatkowy (S)";o.querySelectorAll(".sp-link").forEach(h=>{h.setAttribute("title",u)})}function ge(){return c.value?.activeElement??document.activeElement}function Je(){const r=ge()?.closest?.(".notes, .srcs, .speak");return r instanceof HTMLElement?r:null}function et(o,r){const u=o.clientHeight;r==="ArrowDown"?o.scrollTop+=40:r==="ArrowUp"?o.scrollTop-=40:r==="PageDown"||r===" "?o.scrollTop+=u:r==="PageUp"?o.scrollTop-=u:r==="Home"?o.scrollTop=0:r==="End"&&(o.scrollTop=o.scrollHeight)}function ie(){document.fullscreenEnabled&&(document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()?.catch(()=>{}))}function be(o){return o!=="pause"&&o!=="clock"&&o!=="reset"?!1:(s("clock",o),!0)}function xe(o){if(!f||i.phase!=="ready")return;const a=!!ge()?.closest("button"),u=Je(),h=He(f,{key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,altKey:o.altKey,targetIsButton:a,targetIsPanel:!!u,reading:A()});if(h==="fullscreen"){o.preventDefault(),ie();return}if(h==="scheme"){o.preventDefault(),ne();return}if(be(h)){o.preventDefault();return}if(h==="ignored"){if(a&&(o.key===" "||o.key==="Enter"))return;u&&G.has(o.key)&&!o.ctrlKey&&!o.metaKey&&!o.altKey&&!A()&&(o.preventDefault(),et(u,o.key));return}o.preventDefault()}function tt(o){if(!f||i.phase!=="ready"||i.mode!=="speaker"||o.toLowerCase()==="f")return"ignored";const r=He(f,{key:o,reading:A()});return r==="fullscreen"?"ignored":(be(r),r==="scheme"&&ne(),r)}function nt(o){if(!f||i.phase!=="ready"||i.mode!=="speaker"||!i.deck||A())return!1;const r=i.deck.slides.findIndex(a=>a.number===o);return r<0?!1:(f.go(r),!0)}t({runKey:tt,goToNumber:nt});function ve(){f&&window.location.hash!==f.snapshot().hash&&f.followHash(window.location.hash)}function ye(){L.value=document.fullscreenElement!=null,P()}function ot(o){if(!(o instanceof MouseEvent)||!f||A())return;const r=o.target instanceof Element?o.target:null;if(o.detail>0){const u=r?.closest("#nav button");u instanceof HTMLElement&&u.blur()}if(r?.closest(".tools, .tools-show, #speaker-clock"))return;const a=c.value;if(a){for(const u of a.elementsFromPoint(o.clientX,o.clientY))if(u instanceof Element){if(u.classList.contains("sp-link")){o.preventDefault(),o.stopPropagation(),f.openSpecial();return}if(u.classList.contains("sp-close")){o.preventDefault(),o.stopPropagation(),f.closeSpecial();return}}}}function we(o){D=o.touches[0]?.clientX??null}function ze(o){if(D==null||!f)return;const r=D;D=null;const a=o.changedTouches[0]?.clientX;a!=null&&f.swipe(a-r,A())}function re(o){f?.togglePanel(o)}function Se(){f?.toggleSpecial()}function se(){f?.toggleToolbar()}function it(){f?.previous()}function rt(){f?.next()}function Ee(){const o=c.value;return o?[...o.querySelectorAll("section.slide")].flatMap(r=>!(r instanceof HTMLElement)||!r.id?[]:[{id:r.id,bottom:r.getBoundingClientRect().bottom}]):[]}function M(){if(!A())return;const o=Ee();o.length&&(p=o)}const _e={scrollTo(o){c.value?.getElementById(o)?.scrollIntoView({block:"start"})},imagesBefore(o){const r=c.value;if(!r)return[];const a=[...r.querySelectorAll("section.slide")],u=a.findIndex(z=>z.id===o);if(u<=0)return[];const h=[];for(let z=0;zM()))}function Ce(){if(!f||i.phase!=="ready"||!d)return;const o=f.snapshot().on[0]??"";if(!o)return;if(d.matches){const a=De("reading",o,p);m="",ae(()=>{M(),m=a,Ie(a,_e).then(()=>M())});return}const r=De("slide",o,p.length?p:Ee());m="",f.showId(r),P()}return lt(()=>{const o=l.value;if(!o)return;j.value=document.fullscreenEnabled;const r=o.attachShadow({mode:"open"});c.value=r,te(),ee(r);const a=document.createElement("div");a.className="deck",r.appendChild(a),g.value=a,r.addEventListener("click",ot,!0),window.addEventListener("hashchange",ve),window.addEventListener("keydown",xe),window.addEventListener("resize",P),window.addEventListener("scroll",M,!0),window.addEventListener("touchstart",we,{passive:!0}),window.addEventListener("touchend",ze,{passive:!0}),document.addEventListener("fullscreenchange",ye),d=window.matchMedia(We),d.addEventListener("change",Ce),V=new ResizeObserver(()=>P()),V.observe(o),$=new ResizeObserver(()=>P()),U=new MutationObserver(()=>{oe(),P()}),U.observe(a,{childList:!0,subtree:!0}),ae(()=>{he(),oe(),P(),M(),Le()})}),ct(()=>{window.removeEventListener("hashchange",ve),window.removeEventListener("keydown",xe),window.removeEventListener("resize",P),window.removeEventListener("scroll",M,!0),window.removeEventListener("touchstart",we),window.removeEventListener("touchend",ze),document.removeEventListener("fullscreenchange",ye),d?.removeEventListener("change",Ce),V?.disconnect(),$?.disconnect(),U?.disconnect();const o=document.documentElement;delete o.dataset.theme,o.style.removeProperty("color-scheme")}),O([()=>i.extraCss,()=>i.theme],()=>{te(),c.value&&ee(c.value)}),O(w,o=>{o?.loadFonts().catch(()=>{})},{immediate:!0}),O(b,o=>{o&&s("snapshot",o)}),O(b,(o,r)=>{if(!o){_.value="";return}if(!r||o.number!==r.number||o.special!==r.special){if(i.announce){_.value=i.announce({number:o.number,total:o.total,special:o.special});return}o.special&&!r?.special?_.value=`Slajd dodatkowy do slajdu ${o.number}`:_.value=`Slajd ${o.number} z ${o.total}`}},{immediate:!0}),O([()=>i.phase,ke,b,()=>i.images],()=>{ae(()=>{he(),Ye(),oe(),P();const o=f?.snapshot().on[0]??"";o&&o!==m?Le():M()})}),(o,r)=>(x(),v("div",{ref_key:"host",ref:l,class:"deck-host","data-theme":y.value?"dark":"light","aria-busy":e.phase==="loading"?"true":void 0},[g.value?(x(),dt(pt,{key:0,to:g.value},[e.phase==="ready"&&b.value&&e.mode==="speaker"?Te(o.$slots,"tools",{panel:b.value.panel,special:b.value.special,hasSpecial:b.value.hasSpecial,fullscreenEnabled:j.value,fullscreenOn:L.value,toolbarHidden:b.value.toolbarHidden,togglePanel:re,toggleSpecial:Se,toggleToolbar:se,toggleFullscreen:ie,light:!y.value,toggleScheme:ne},void 0,void 0,0):E("",!0),e.phase==="ready"&&b.value&&e.mode!=="speaker"?(x(),v($e,{key:1},[b.value.toolbarHidden?E("",!0):(x(),v("div",Zt,[k("div",Gt,[k("span",Xt,F(Ge.value),1),k("button",{type:"button","aria-pressed":b.value.panel==="notes","aria-keyshortcuts":"N",onClick:r[0]||(r[0]=a=>re("notes"))},[...r[3]||(r[3]=[K(" Komentarz ",-1),k("kbd",null,"N",-1)])],8,Qt),k("button",{type:"button","aria-pressed":b.value.panel==="srcs","aria-keyshortcuts":"Z",onClick:r[1]||(r[1]=a=>re("srcs"))},[...r[4]||(r[4]=[K(" Źródła ",-1),k("kbd",null,"Z",-1)])],8,Yt),k("button",{type:"button",class:Ae(["tool-s",{unavailable:!b.value.hasSpecial}]),"aria-pressed":b.value.special,"aria-keyshortcuts":"S",onClick:Se},[...r[5]||(r[5]=[K(" Slajd dodatkowy ",-1),k("kbd",null,"S",-1)])],10,Jt)]),k("div",en,[j.value?(x(),v("button",{key:0,type:"button","aria-pressed":L.value,"aria-keyshortcuts":"F",onClick:ie},[...r[6]||(r[6]=[K(" Pełny ekran ",-1),k("kbd",null,"F",-1)])],8,tn)):E("",!0),k("button",{type:"button","aria-keyshortcuts":"H",onClick:se},[...r[7]||(r[7]=[K(" Ukryj pasek ",-1),k("kbd",null,"H",-1)])])])])),b.value.toolbarHidden?(x(),v("button",{key:1,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:se},[...r[8]||(r[8]=[K(" Pokaż pasek ",-1),k("kbd",null,"H",-1)])])):E("",!0)],64)):E("",!0),k("div",nn,[e.mode==="speaker"&&e.phase==="ready"?Te(o.$slots,"reading-close",{},void 0,void 0,0):E("",!0),e.phase==="loading"?(x(),v("section",on,[...r[9]||(r[9]=[k("div",null,[k("p",{class:"k"},"Wczytywanie prezentacji…")],-1)])])):e.phase==="notfound"?(x(),v("section",rn,[...r[10]||(r[10]=[k("div",null,[k("p",{class:"k"},"404"),k("h2",null,"Nie ma takiej prezentacji"),k("p",null,"Link jest nieaktualny albo prezentacja nie jest już udostępniona.")],-1)])])):e.phase==="error"?(x(),v("section",sn,[k("div",null,[r[11]||(r[11]=k("p",{class:"k"},"Błąd",-1)),r[12]||(r[12]=k("h2",null,"Nie udało się wczytać prezentacji",-1)),k("p",null,F(e.error),1),k("button",{type:"button",class:"status-retry",onClick:r[2]||(r[2]=a=>s("retry"))},"Spróbuj ponownie")])])):e.phase==="empty"?(x(),v("section",an,[k("div",null,[k("h2",null,F(e.deck?.title),1),r[13]||(r[13]=k("p",null,"Ta prezentacja nie ma jeszcze slajdów.",-1))])])):e.phase==="ready"?(x(!0),v($e,{key:5},ut(ke.value,a=>(x(),v("section",{id:a.id,key:a.id,class:Ae(mt(bt)(a.slide.css_class,{special:a.special,on:a.on})),innerHTML:Ze(a.slide,a.special)},null,10,ln))),128)):E("",!0)]),e.phase==="ready"&&b.value?(x(),v("div",cn,[k("i",{style:ft({width:b.value.progress+"%"})},null,4)])):E("",!0),e.phase==="ready"&&b.value?(x(),v("div",{key:3,id:"meta",innerHTML:b.value.metaHTML},null,8,dn)):E("",!0),e.phase==="ready"&&b.value?(x(),v("div",pn,F(Xe.value),1)):E("",!0),e.phase==="ready"?(x(),v("div",un,[k("button",{type:"button","aria-label":"Poprzedni slajd",onClick:it}),r[14]||(r[14]=k("div",{class:"mid"},null,-1)),k("button",{type:"button","aria-label":"Następny slajd",onClick:rt})])):E("",!0),e.phase==="ready"?(x(),v("div",fn,F(_.value),1)):E("",!0)],8,["to"])):E("",!0)],8,Wt))}});export{hn as _,Ot as r}; diff --git a/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js b/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js similarity index 95% rename from public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js rename to public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js index e7b4427..d975d69 100644 --- a/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js +++ b/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js @@ -1 +1 @@ -import{d as v,an as z,ae as g,n as s,c as a,e as o,p as n,t as h,i as m,j as b,f as p,b as f,x as u,l as _,ag as C}from"./index-DwX0tlPb.js";const x=["aria-pressed"],A={key:1,class:"notice"},B={key:2,class:"stack",style:{"margin-bottom":"16px"}},E={key:0,class:"notice"},N={key:1,class:"chips wrap"},V=["aria-pressed"],M=v({__name:"ElectiveBar",props:{part:{default:"both"}},setup(r){const c=r,t=z(),d=g(),y=u(()=>C(d.pendingElectives.length,"grupa przedmiotów do wyboru","grupy przedmiotów do wyboru","grup przedmiotów do wyboru")),i=u(()=>c.part!=="chip"&&d.pendingElectives.length>0),l=u(()=>c.part!=="notice"&&t.hasChoices);return(D,e)=>{const w=_("router-link");return r.part==="chip"&&l.value?(s(),a("button",{key:0,class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[0]||(e[0]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,x)):r.part==="notice"&&i.value?(s(),a("p",A,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[2]||(e[2]=[n("Wybierz",-1)])]),_:1})])):r.part==="both"&&(i.value||l.value)?(s(),a("div",B,[i.value?(s(),a("p",E,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[3]||(e[3]=[n("Wybierz",-1)])]),_:1})])):p("",!0),l.value?(s(),a("div",N,[f("button",{class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[1]||(e[1]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,V)])):p("",!0)])):p("",!0)}}});export{M as _}; +import{d as v,an as z,ae as g,n as s,c as a,e as o,p as n,t as h,i as m,j as b,f as p,b as f,x as u,l as _,ag as C}from"./index-C7U0oIvN.js";const x=["aria-pressed"],A={key:1,class:"notice"},B={key:2,class:"stack",style:{"margin-bottom":"16px"}},E={key:0,class:"notice"},N={key:1,class:"chips wrap"},V=["aria-pressed"],M=v({__name:"ElectiveBar",props:{part:{default:"both"}},setup(r){const c=r,t=z(),d=g(),y=u(()=>C(d.pendingElectives.length,"grupa przedmiotów do wyboru","grupy przedmiotów do wyboru","grup przedmiotów do wyboru")),i=u(()=>c.part!=="chip"&&d.pendingElectives.length>0),l=u(()=>c.part!=="notice"&&t.hasChoices);return(D,e)=>{const w=_("router-link");return r.part==="chip"&&l.value?(s(),a("button",{key:0,class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[0]||(e[0]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,x)):r.part==="notice"&&i.value?(s(),a("p",A,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[2]||(e[2]=[n("Wybierz",-1)])]),_:1})])):r.part==="both"&&(i.value||l.value)?(s(),a("div",B,[i.value?(s(),a("p",E,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[3]||(e[3]=[n("Wybierz",-1)])]),_:1})])):p("",!0),l.value?(s(),a("div",N,[f("button",{class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[1]||(e[1]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,V)])):p("",!0)])):p("",!0)}}});export{M as _}; diff --git a/public/assets/ForgotView-B03msoeP.js b/public/assets/ForgotView-DBuEDps7.js similarity index 92% rename from public/assets/ForgotView-B03msoeP.js rename to public/assets/ForgotView-DBuEDps7.js index 2f15c1b..b82a3da 100644 --- a/public/assets/ForgotView-B03msoeP.js +++ b/public/assets/ForgotView-DBuEDps7.js @@ -1 +1 @@ -import{d as f,c as t,b as a,h as y,t as n,f as m,w as _,v as w,i as b,j as k,r,l as h,n as o,p as g,a as x}from"./index-DwX0tlPb.js";import{f as V}from"./forms-BEpVKSou.js";const j={class:"auth"},B={key:0,class:"notice",role:"status"},C={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},N={class:"field"},W={key:0,class:"error-text"},M=["disabled"],z={class:"auth-links"},I=f({__name:"ForgotView",setup(A){const l=r(""),i=r(!1),u=r(!1),s=r(null);async function c(){i.value=!0,s.value=null;try{await x.forgotPassword(l.value.trim()),u.value=!0}catch(d){s.value=V(d)}finally{i.value=!1}}return(d,e)=>{const p=h("router-link");return o(),t("div",j,[e[3]||(e[3]=a("header",{class:"page-head"},[a("span",{class:"eyebrow"},"BM II° · UWr"),a("h1",null,"Przypomnij hasło")],-1)),u.value?(o(),t("p",B,"Jeśli konto o tym adresie istnieje, wysłaliśmy na nie wiadomość z linkiem do ustawienia nowego hasła.")):(o(),t("form",{key:1,onSubmit:y(c,["prevent"]),novalidate:""},[s.value?.message?(o(),t("div",C,n(s.value.message),1)):m("",!0),a("div",N,[e[1]||(e[1]=a("label",{for:"email"},"Adres e-mail",-1)),_(a("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=v=>l.value=v),type:"email",autocomplete:"email",inputmode:"email",required:"",autofocus:""},null,512),[[w,l.value]]),s.value?.fields.email?(o(),t("p",W,n(s.value.fields.email),1)):m("",!0)]),a("button",{class:"btn primary block",type:"submit",disabled:i.value||!l.value},n(i.value?"Wysyłanie…":"Wyślij link"),9,M)],32)),a("div",z,[b(p,{to:"/logowanie"},{default:k(()=>[...e[2]||(e[2]=[g("Wróć do logowania",-1)])]),_:1})])])}}});export{I as default}; +import{d as f,c as t,b as a,h as y,t as n,f as m,w as _,v as w,i as b,j as k,r,l as h,n as o,p as g,a as x}from"./index-C7U0oIvN.js";import{f as V}from"./forms-L06yLYMm.js";const j={class:"auth"},B={key:0,class:"notice",role:"status"},C={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},N={class:"field"},W={key:0,class:"error-text"},M=["disabled"],z={class:"auth-links"},I=f({__name:"ForgotView",setup(A){const l=r(""),i=r(!1),u=r(!1),s=r(null);async function c(){i.value=!0,s.value=null;try{await x.forgotPassword(l.value.trim()),u.value=!0}catch(d){s.value=V(d)}finally{i.value=!1}}return(d,e)=>{const p=h("router-link");return o(),t("div",j,[e[3]||(e[3]=a("header",{class:"page-head"},[a("span",{class:"eyebrow"},"BM II° · UWr"),a("h1",null,"Przypomnij hasło")],-1)),u.value?(o(),t("p",B,"Jeśli konto o tym adresie istnieje, wysłaliśmy na nie wiadomość z linkiem do ustawienia nowego hasła.")):(o(),t("form",{key:1,onSubmit:y(c,["prevent"]),novalidate:""},[s.value?.message?(o(),t("div",C,n(s.value.message),1)):m("",!0),a("div",N,[e[1]||(e[1]=a("label",{for:"email"},"Adres e-mail",-1)),_(a("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=v=>l.value=v),type:"email",autocomplete:"email",inputmode:"email",required:"",autofocus:""},null,512),[[w,l.value]]),s.value?.fields.email?(o(),t("p",W,n(s.value.fields.email),1)):m("",!0)]),a("button",{class:"btn primary block",type:"submit",disabled:i.value||!l.value},n(i.value?"Wysyłanie…":"Wyślij link"),9,M)],32)),a("div",z,[b(p,{to:"/logowanie"},{default:k(()=>[...e[2]||(e[2]=[g("Wróć do logowania",-1)])]),_:1})])])}}});export{I as default}; diff --git a/public/assets/LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js b/public/assets/LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js similarity index 90% rename from public/assets/LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js rename to public/assets/LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js index f39e925..cabcd17 100644 --- a/public/assets/LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js +++ b/public/assets/LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js @@ -1 +1 @@ -import{d as n,c as r,p as l,t as i,b as o,aG as d,n as s}from"./index-DwX0tlPb.js";const y={key:0,class:"notice error",role:"alert"},c={key:1,class:"stack","aria-busy":"true","aria-label":"Wczytywanie"},m=n({__name:"LoadState",props:{loading:{type:Boolean},error:{},ready:{type:Boolean}},emits:["retry"],setup(e){return(a,t)=>e.error&&!e.ready?(s(),r("div",y,[l(i(e.error)+" ",1),o("button",{class:"linkish",type:"button",onClick:t[0]||(t[0]=u=>a.$emit("retry"))},"Spróbuj ponownie")])):e.ready?d(a.$slots,"default",{},void 0,void 0,2):(s(),r("div",c,[...t[1]||(t[1]=[o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1)])]))}});export{m as _}; +import{d as n,c as r,p as l,t as i,b as o,aG as d,n as s}from"./index-C7U0oIvN.js";const y={key:0,class:"notice error",role:"alert"},c={key:1,class:"stack","aria-busy":"true","aria-label":"Wczytywanie"},m=n({__name:"LoadState",props:{loading:{type:Boolean},error:{},ready:{type:Boolean}},emits:["retry"],setup(e){return(a,t)=>e.error&&!e.ready?(s(),r("div",y,[l(i(e.error)+" ",1),o("button",{class:"linkish",type:"button",onClick:t[0]||(t[0]=u=>a.$emit("retry"))},"Spróbuj ponownie")])):e.ready?d(a.$slots,"default",{},void 0,void 0,2):(s(),r("div",c,[...t[1]||(t[1]=[o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1)])]))}});export{m as _}; diff --git a/public/assets/LoginView-PuXzdmEY.js b/public/assets/LoginView-4kLADW98.js similarity index 95% rename from public/assets/LoginView-PuXzdmEY.js rename to public/assets/LoginView-4kLADW98.js index 81b0012..1b8b254 100644 --- a/public/assets/LoginView-PuXzdmEY.js +++ b/public/assets/LoginView-4kLADW98.js @@ -1 +1 @@ -import{d as C,u as q,o as z,a as N,c as o,b as s,e as U,f as i,t as p,w as y,v as w,g as Z,h as B,i as g,j as k,k as S,r as a,l as A,m as I,n as l,p as _}from"./index-DwX0tlPb.js";import{s as h,f as R}from"./forms-BEpVKSou.js";import{o as T}from"./oauth-zzthF4BZ.js";const D={class:"auth"},E={key:0,class:"notice",role:"status"},L={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},P={class:"field"},W={key:0,class:"error-text"},H={class:"field"},F={key:0,class:"error-text"},G={class:"check",style:{"margin-bottom":"16px"}},J=["disabled"],K={class:"auth-links"},$=C({__name:"LoginView",setup(O){const x=q(),c=S(),j=I(),n=a(""),u=a(""),v=a(!0),d=a(!1),t=a(null),f=a(!1);z(async()=>{try{const m=await N.oauthProviders();f.value=m.providers.some(e=>e.name==="microsoft")}catch{f.value=!1}});function V(){window.location.assign(T("microsoft",{action:"login",returnTo:h(c.query.redirect)}))}async function M(){d.value=!0,t.value=null;try{await x.login(n.value.trim(),u.value,v.value),await j.replace(h(c.query.redirect))}catch(m){t.value=R(m)}finally{d.value=!1}}return(m,e)=>{const b=A("router-link");return l(),o("div",D,[e[8]||(e[8]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Zaloguj się")],-1)),U(c).query.expired?(l(),o("p",E,"Sesja wygasła. Zaloguj się ponownie.")):i("",!0),s("form",{onSubmit:B(M,["prevent"]),novalidate:""},[t.value?.message?(l(),o("div",L,p(t.value.message),1)):i("",!0),s("div",P,[e[3]||(e[3]=s("label",{for:"email"},"Adres e-mail",-1)),y(s("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=r=>n.value=r),type:"email",autocomplete:"username",inputmode:"email",required:"",autofocus:""},null,512),[[w,n.value]]),t.value?.fields.email?(l(),o("p",W,p(t.value.fields.email),1)):i("",!0)]),s("div",H,[e[4]||(e[4]=s("label",{for:"password"},"Hasło",-1)),y(s("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>u.value=r),type:"password",autocomplete:"current-password",required:""},null,512),[[w,u.value]]),t.value?.fields.password?(l(),o("p",F,p(t.value.fields.password),1)):i("",!0)]),s("label",G,[y(s("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>v.value=r),type:"checkbox"},null,512),[[Z,v.value]]),e[5]||(e[5]=s("span",null,"Pamiętaj mnie na tym urządzeniu",-1))]),s("button",{class:"btn primary block",type:"submit",disabled:d.value||!n.value||!u.value},p(d.value?"Logowanie…":"Zaloguj się"),9,J)],32),f.value?(l(),o("button",{key:1,class:"btn block",type:"button",style:{"margin-top":"12px"},onClick:V},"Zaloguj przez Microsoft 365")):i("",!0),s("div",K,[g(b,{to:"/przypomnij-haslo"},{default:k(()=>[...e[6]||(e[6]=[_("Nie pamiętam hasła",-1)])]),_:1}),g(b,{to:"/rejestracja"},{default:k(()=>[...e[7]||(e[7]=[_("Załóż konto",-1)])]),_:1})])])}}});export{$ as default}; +import{d as C,u as q,o as z,a as N,c as o,b as s,e as U,f as i,t as p,w as y,v as w,g as Z,h as B,i as g,j as k,k as S,r as a,l as A,m as I,n as l,p as _}from"./index-C7U0oIvN.js";import{s as h,f as R}from"./forms-L06yLYMm.js";import{o as T}from"./oauth-zzthF4BZ.js";const D={class:"auth"},E={key:0,class:"notice",role:"status"},L={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},P={class:"field"},W={key:0,class:"error-text"},H={class:"field"},F={key:0,class:"error-text"},G={class:"check",style:{"margin-bottom":"16px"}},J=["disabled"],K={class:"auth-links"},$=C({__name:"LoginView",setup(O){const x=q(),c=S(),j=I(),n=a(""),u=a(""),v=a(!0),d=a(!1),t=a(null),f=a(!1);z(async()=>{try{const m=await N.oauthProviders();f.value=m.providers.some(e=>e.name==="microsoft")}catch{f.value=!1}});function V(){window.location.assign(T("microsoft",{action:"login",returnTo:h(c.query.redirect)}))}async function M(){d.value=!0,t.value=null;try{await x.login(n.value.trim(),u.value,v.value),await j.replace(h(c.query.redirect))}catch(m){t.value=R(m)}finally{d.value=!1}}return(m,e)=>{const b=A("router-link");return l(),o("div",D,[e[8]||(e[8]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Zaloguj się")],-1)),U(c).query.expired?(l(),o("p",E,"Sesja wygasła. Zaloguj się ponownie.")):i("",!0),s("form",{onSubmit:B(M,["prevent"]),novalidate:""},[t.value?.message?(l(),o("div",L,p(t.value.message),1)):i("",!0),s("div",P,[e[3]||(e[3]=s("label",{for:"email"},"Adres e-mail",-1)),y(s("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=r=>n.value=r),type:"email",autocomplete:"username",inputmode:"email",required:"",autofocus:""},null,512),[[w,n.value]]),t.value?.fields.email?(l(),o("p",W,p(t.value.fields.email),1)):i("",!0)]),s("div",H,[e[4]||(e[4]=s("label",{for:"password"},"Hasło",-1)),y(s("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>u.value=r),type:"password",autocomplete:"current-password",required:""},null,512),[[w,u.value]]),t.value?.fields.password?(l(),o("p",F,p(t.value.fields.password),1)):i("",!0)]),s("label",G,[y(s("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>v.value=r),type:"checkbox"},null,512),[[Z,v.value]]),e[5]||(e[5]=s("span",null,"Pamiętaj mnie na tym urządzeniu",-1))]),s("button",{class:"btn primary block",type:"submit",disabled:d.value||!n.value||!u.value},p(d.value?"Logowanie…":"Zaloguj się"),9,J)],32),f.value?(l(),o("button",{key:1,class:"btn block",type:"button",style:{"margin-top":"12px"},onClick:V},"Zaloguj przez Microsoft 365")):i("",!0),s("div",K,[g(b,{to:"/przypomnij-haslo"},{default:k(()=>[...e[6]||(e[6]=[_("Nie pamiętam hasła",-1)])]),_:1}),g(b,{to:"/rejestracja"},{default:k(()=>[...e[7]||(e[7]=[_("Załóż konto",-1)])]),_:1})])])}}});export{$ as default}; diff --git a/public/assets/MaterialView-DaN3Mhrq.js b/public/assets/MaterialView-BQihcwI-.js similarity index 91% rename from public/assets/MaterialView-DaN3Mhrq.js rename to public/assets/MaterialView-BQihcwI-.js index 907dc7c..062034c 100644 --- a/public/assets/MaterialView-DaN3Mhrq.js +++ b/public/assets/MaterialView-BQihcwI-.js @@ -1 +1 @@ -import{_ as M}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as T}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{d as $,o as B,U as L,c as t,i as c,j as u,r as k,al as N,ap as V,n as a,F as m,e as _,T as z,ar as C,p as b,b as l,s as E,t as n,f as r,E as w,a1 as S,x as g,l as A}from"./index-DwX0tlPb.js";import{r as D,s as F}from"./markdown-CbtkjRI4.js";const H={class:"muted small"},P={key:1},U={key:0},j={key:1},O=["href"],R=["innerHTML"],Y={key:3,class:"section","aria-labelledby":"files-h"},q={class:"rows"},G=["href","download"],I={class:"when"},X=$({__name:"MaterialView",props:{id:{}},setup(x){const p=x,e=k(null),i=k("");async function d(){e.value=null,i.value="";try{e.value=await N.material(Number(p.id))}catch(h){i.value=V(h)}}B(d),L(()=>p.id,d);const v=g(()=>D(e.value?.body)),f=g(()=>e.value?.url?F(e.value.url):null);return(h,o)=>{const y=A("router-link");return a(),t("div",null,[c(T,{ready:!!e.value,error:i.value,onRetry:o[0]||(o[0]=s=>d())},{default:u(()=>[e.value?(a(),t(m,{key:0},[c(M,{eyebrow:`${_(z)[e.value.type]}${e.value.published_at?" · "+_(C)(e.value.published_at):""}`,title:e.value.title},{default:u(()=>[c(y,{class:"btn small ghost",to:"/materialy"},{default:u(()=>[...o[1]||(o[1]=[b("← Materiały",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),l("p",H,[e.value.course?(a(),E(y,{key:0,to:`/przedmioty/${e.value.course.id}`},{default:u(()=>[b(n(e.value.course.name),1)]),_:1},8,["to"])):r("",!0),e.value.source?(a(),t("span",P," · "+n(e.value.source),1)):r("",!0)]),e.value.tags.length?(a(),t("p",U,[(a(!0),t(m,null,w(e.value.tags,s=>(a(),t("span",{key:s.id,class:"badge",style:{"margin-right":"4px"}},n(s.name),1))),128))])):r("",!0),f.value?(a(),t("p",j,[l("a",{class:"btn small",href:f.value,target:"_blank",rel:"noopener noreferrer"},"Otwórz link",8,O)])):r("",!0),v.value?(a(),t("div",{key:2,class:"prose card",innerHTML:v.value},null,8,R)):r("",!0),e.value.files.length?(a(),t("section",Y,[o[2]||(o[2]=l("div",{class:"section-head"},[l("h2",{id:"files-h"},"Pliki")],-1)),l("ul",q,[(a(!0),t(m,null,w(e.value.files,s=>(a(),t("li",{key:s.id,class:"row-main"},[l("a",{href:s.url,download:s.name},n(s.name),9,G),l("span",I,n(_(S)(s.size)),1)]))),128))])])):r("",!0)],64)):r("",!0)]),_:1},8,["ready","error"])])}}});export{X as default}; +import{_ as M}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as T}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{d as $,o as B,U as L,c as t,i as c,j as u,r as k,al as N,ap as V,n as a,F as m,e as _,T as z,ar as C,p as b,b as l,s as E,t as n,f as r,E as w,a1 as S,x as g,l as A}from"./index-C7U0oIvN.js";import{r as D,s as F}from"./markdown-CbtkjRI4.js";const H={class:"muted small"},P={key:1},U={key:0},j={key:1},O=["href"],R=["innerHTML"],Y={key:3,class:"section","aria-labelledby":"files-h"},q={class:"rows"},G=["href","download"],I={class:"when"},X=$({__name:"MaterialView",props:{id:{}},setup(x){const p=x,e=k(null),i=k("");async function d(){e.value=null,i.value="";try{e.value=await N.material(Number(p.id))}catch(h){i.value=V(h)}}B(d),L(()=>p.id,d);const v=g(()=>D(e.value?.body)),f=g(()=>e.value?.url?F(e.value.url):null);return(h,o)=>{const y=A("router-link");return a(),t("div",null,[c(T,{ready:!!e.value,error:i.value,onRetry:o[0]||(o[0]=s=>d())},{default:u(()=>[e.value?(a(),t(m,{key:0},[c(M,{eyebrow:`${_(z)[e.value.type]}${e.value.published_at?" · "+_(C)(e.value.published_at):""}`,title:e.value.title},{default:u(()=>[c(y,{class:"btn small ghost",to:"/materialy"},{default:u(()=>[...o[1]||(o[1]=[b("← Materiały",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),l("p",H,[e.value.course?(a(),E(y,{key:0,to:`/przedmioty/${e.value.course.id}`},{default:u(()=>[b(n(e.value.course.name),1)]),_:1},8,["to"])):r("",!0),e.value.source?(a(),t("span",P," · "+n(e.value.source),1)):r("",!0)]),e.value.tags.length?(a(),t("p",U,[(a(!0),t(m,null,w(e.value.tags,s=>(a(),t("span",{key:s.id,class:"badge",style:{"margin-right":"4px"}},n(s.name),1))),128))])):r("",!0),f.value?(a(),t("p",j,[l("a",{class:"btn small",href:f.value,target:"_blank",rel:"noopener noreferrer"},"Otwórz link",8,O)])):r("",!0),v.value?(a(),t("div",{key:2,class:"prose card",innerHTML:v.value},null,8,R)):r("",!0),e.value.files.length?(a(),t("section",Y,[o[2]||(o[2]=l("div",{class:"section-head"},[l("h2",{id:"files-h"},"Pliki")],-1)),l("ul",q,[(a(!0),t(m,null,w(e.value.files,s=>(a(),t("li",{key:s.id,class:"row-main"},[l("a",{href:s.url,download:s.name},n(s.name),9,G),l("span",I,n(_(S)(s.size)),1)]))),128))])])):r("",!0)],64)):r("",!0)]),_:1},8,["ready","error"])])}}});export{X as default}; diff --git a/public/assets/MaterialsView-DpX8hmjT.js b/public/assets/MaterialsView-Cd7ekBUq.js similarity index 97% rename from public/assets/MaterialsView-DpX8hmjT.js rename to public/assets/MaterialsView-Cd7ekBUq.js index c52cf25..7e83eed 100644 --- a/public/assets/MaterialsView-DpX8hmjT.js +++ b/public/assets/MaterialsView-Cd7ekBUq.js @@ -1 +1 @@ -import{d as V,ae as B,o as $,al as D,ap as E,U as P,c as a,i as F,b as l,w as N,as as j,F as c,E as v,e as y,T as M,h as L,f as d,p as U,t as n,at as W,r as m,x as S,n as s,s as A,j as q,ar as O,ag as R,l as Y}from"./index-DwX0tlPb.js";import{_ as G}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";const H={class:"field"},I=["value"],J={class:"field"},K=["value"],Q={key:0,class:"chips wrap",role:"group","aria-label":"Tagi",style:{"margin-bottom":"12px"}},X=["aria-pressed","onClick"],Z={key:2,class:"notice error",role:"alert"},ee={key:3,class:"stack","aria-busy":"true"},te=["aria-busy"],se={class:"row-main"},ae={class:"badge"},le={class:"muted small",style:{margin:"0"}},oe={key:0},ne={key:1},ie={key:2},re={key:0,style:{margin:"6px 0 0"}},ue={key:1,class:"empty",style:{"margin-top":"12px"}},de={key:2,class:"btn-row",style:{"margin-top":"16px","justify-content":"space-between","align-items":"center"},"aria-label":"Strony"},pe=["disabled"],ce={class:"muted small nums"},ve=["disabled"],fe=V({__name:"MaterialsView",setup(ye){const h=B(),o=W({course:"",type:"",tag:""}),i=m(1),u=m(null),b=m(!1),g=m(""),f=m(new Map);$(()=>{h.loadCourses(),_()});let k=0;async function _(){const r=++k;b.value=!0,g.value="";try{const t=await D.materials({course:o.course?Number(o.course):null,type:o.type||null,tag:o.tag||null,page:i.value});if(r!==k)return;u.value=t;for(const w of t.data)for(const e of w.tags)f.value.set(e.slug,e);f.value=new Map(f.value)}catch(t){r===k&&(g.value=E(t))}finally{r===k&&(b.value=!1)}}P(o,()=>{i.value=1,_()});function x(r){i.value=r,_(),window.scrollTo({top:0})}const C=S(()=>[...f.value.values()].sort((r,t)=>r.name.localeCompare(t.name,"pl"))),z=S(()=>!!(o.course||o.type||o.tag)),T=()=>Object.assign(o,{course:"",type:"",tag:""});return(r,t)=>{const w=Y("router-link");return s(),a("div",null,[F(G,{eyebrow:"Notatki, PDF-y, linki",title:"Materiały"}),l("form",{class:"grid-2",style:{"margin-bottom":"8px"},onSubmit:t[2]||(t[2]=L(()=>{},["prevent"]))},[l("div",H,[t[7]||(t[7]=l("label",{for:"f-course"},"Przedmiot",-1)),N(l("select",{id:"f-course","onUpdate:modelValue":t[0]||(t[0]=e=>o.course=e)},[t[6]||(t[6]=l("option",{value:""},"Wszystkie",-1)),(s(!0),a(c,null,v(y(h).visibleCourses,e=>(s(),a("option",{key:e.id,value:String(e.id)},n(e.name)+" ("+n(e.form==="wyklad"?"wykład":e.form==="cwiczenia"?"ćwiczenia":e.form)+")",9,I))),128))],512),[[j,o.course]])]),l("div",J,[t[9]||(t[9]=l("label",{for:"f-type"},"Rodzaj",-1)),N(l("select",{id:"f-type","onUpdate:modelValue":t[1]||(t[1]=e=>o.type=e)},[t[8]||(t[8]=l("option",{value:""},"Wszystkie",-1)),(s(!0),a(c,null,v(y(M),(e,p)=>(s(),a("option",{key:p,value:p},n(e),9,K))),128))],512),[[j,o.type]])])],32),C.value.length?(s(),a("div",Q,[(s(!0),a(c,null,v(C.value,e=>(s(),a("button",{key:e.slug,class:"chip",type:"button","aria-pressed":o.tag===e.slug,onClick:p=>o.tag=o.tag===e.slug?"":e.slug},n(e.name),9,X))),128))])):d("",!0),z.value?(s(),a("button",{key:1,class:"linkish small",type:"button",onClick:T},"Wyczyść filtry")):d("",!0),g.value?(s(),a("div",Z,[U(n(g.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:t[3]||(t[3]=e=>_())},"Spróbuj ponownie")])):u.value?(s(),a(c,{key:4},[u.value.data.length?(s(),a("div",{key:0,class:"stack",style:{"margin-top":"12px"},"aria-busy":b.value},[(s(!0),a(c,null,v(u.value.data,e=>(s(),A(w,{key:e.id,to:`/materialy/${e.id}`,class:"card link"},{default:q(()=>[l("div",se,[l("h3",null,n(e.title),1),l("span",ae,n(y(M)[e.type]),1)]),l("p",le,[e.course?(s(),a("span",oe,n(e.course.name),1)):d("",!0),e.published_at?(s(),a("span",ne," · "+n(y(O)(e.published_at)),1)):d("",!0),e.files_count?(s(),a("span",ie," · "+n(y(R)(e.files_count,"plik","pliki","plików")),1)):d("",!0)]),e.tags.length?(s(),a("p",re,[(s(!0),a(c,null,v(e.tags,p=>(s(),a("span",{key:p.id,class:"badge",style:{"margin-right":"4px"}},n(p.name),1))),128))])):d("",!0)]),_:2},1032,["to"]))),128))],8,te)):(s(),a("p",ue,n(z.value?"Nic nie pasuje do filtrów.":"Nie ma jeszcze żadnych materiałów."),1)),u.value.meta.last_page>1?(s(),a("nav",de,[l("button",{class:"btn small",type:"button",disabled:i.value<=1,onClick:t[4]||(t[4]=e=>x(i.value-1))},"← Poprzednia",8,pe),l("span",ce,n(i.value)+" / "+n(u.value.meta.last_page),1),l("button",{class:"btn small",type:"button",disabled:i.value>=u.value.meta.last_page,onClick:t[5]||(t[5]=e=>x(i.value+1))},"Następna →",8,ve)])):d("",!0)],64)):(s(),a("div",ee,[...t[10]||(t[10]=[l("div",{class:"skeleton"},null,-1),l("div",{class:"skeleton"},null,-1)])]))])}}});export{fe as default}; +import{d as V,ae as B,o as $,al as D,ap as E,U as P,c as a,i as F,b as l,w as N,as as j,F as c,E as v,e as y,T as M,h as L,f as d,p as U,t as n,at as W,r as m,x as S,n as s,s as A,j as q,ar as O,ag as R,l as Y}from"./index-C7U0oIvN.js";import{_ as G}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";const H={class:"field"},I=["value"],J={class:"field"},K=["value"],Q={key:0,class:"chips wrap",role:"group","aria-label":"Tagi",style:{"margin-bottom":"12px"}},X=["aria-pressed","onClick"],Z={key:2,class:"notice error",role:"alert"},ee={key:3,class:"stack","aria-busy":"true"},te=["aria-busy"],se={class:"row-main"},ae={class:"badge"},le={class:"muted small",style:{margin:"0"}},oe={key:0},ne={key:1},ie={key:2},re={key:0,style:{margin:"6px 0 0"}},ue={key:1,class:"empty",style:{"margin-top":"12px"}},de={key:2,class:"btn-row",style:{"margin-top":"16px","justify-content":"space-between","align-items":"center"},"aria-label":"Strony"},pe=["disabled"],ce={class:"muted small nums"},ve=["disabled"],fe=V({__name:"MaterialsView",setup(ye){const h=B(),o=W({course:"",type:"",tag:""}),i=m(1),u=m(null),b=m(!1),g=m(""),f=m(new Map);$(()=>{h.loadCourses(),_()});let k=0;async function _(){const r=++k;b.value=!0,g.value="";try{const t=await D.materials({course:o.course?Number(o.course):null,type:o.type||null,tag:o.tag||null,page:i.value});if(r!==k)return;u.value=t;for(const w of t.data)for(const e of w.tags)f.value.set(e.slug,e);f.value=new Map(f.value)}catch(t){r===k&&(g.value=E(t))}finally{r===k&&(b.value=!1)}}P(o,()=>{i.value=1,_()});function x(r){i.value=r,_(),window.scrollTo({top:0})}const C=S(()=>[...f.value.values()].sort((r,t)=>r.name.localeCompare(t.name,"pl"))),z=S(()=>!!(o.course||o.type||o.tag)),T=()=>Object.assign(o,{course:"",type:"",tag:""});return(r,t)=>{const w=Y("router-link");return s(),a("div",null,[F(G,{eyebrow:"Notatki, PDF-y, linki",title:"Materiały"}),l("form",{class:"grid-2",style:{"margin-bottom":"8px"},onSubmit:t[2]||(t[2]=L(()=>{},["prevent"]))},[l("div",H,[t[7]||(t[7]=l("label",{for:"f-course"},"Przedmiot",-1)),N(l("select",{id:"f-course","onUpdate:modelValue":t[0]||(t[0]=e=>o.course=e)},[t[6]||(t[6]=l("option",{value:""},"Wszystkie",-1)),(s(!0),a(c,null,v(y(h).visibleCourses,e=>(s(),a("option",{key:e.id,value:String(e.id)},n(e.name)+" ("+n(e.form==="wyklad"?"wykład":e.form==="cwiczenia"?"ćwiczenia":e.form)+")",9,I))),128))],512),[[j,o.course]])]),l("div",J,[t[9]||(t[9]=l("label",{for:"f-type"},"Rodzaj",-1)),N(l("select",{id:"f-type","onUpdate:modelValue":t[1]||(t[1]=e=>o.type=e)},[t[8]||(t[8]=l("option",{value:""},"Wszystkie",-1)),(s(!0),a(c,null,v(y(M),(e,p)=>(s(),a("option",{key:p,value:p},n(e),9,K))),128))],512),[[j,o.type]])])],32),C.value.length?(s(),a("div",Q,[(s(!0),a(c,null,v(C.value,e=>(s(),a("button",{key:e.slug,class:"chip",type:"button","aria-pressed":o.tag===e.slug,onClick:p=>o.tag=o.tag===e.slug?"":e.slug},n(e.name),9,X))),128))])):d("",!0),z.value?(s(),a("button",{key:1,class:"linkish small",type:"button",onClick:T},"Wyczyść filtry")):d("",!0),g.value?(s(),a("div",Z,[U(n(g.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:t[3]||(t[3]=e=>_())},"Spróbuj ponownie")])):u.value?(s(),a(c,{key:4},[u.value.data.length?(s(),a("div",{key:0,class:"stack",style:{"margin-top":"12px"},"aria-busy":b.value},[(s(!0),a(c,null,v(u.value.data,e=>(s(),A(w,{key:e.id,to:`/materialy/${e.id}`,class:"card link"},{default:q(()=>[l("div",se,[l("h3",null,n(e.title),1),l("span",ae,n(y(M)[e.type]),1)]),l("p",le,[e.course?(s(),a("span",oe,n(e.course.name),1)):d("",!0),e.published_at?(s(),a("span",ne," · "+n(y(O)(e.published_at)),1)):d("",!0),e.files_count?(s(),a("span",ie," · "+n(y(R)(e.files_count,"plik","pliki","plików")),1)):d("",!0)]),e.tags.length?(s(),a("p",re,[(s(!0),a(c,null,v(e.tags,p=>(s(),a("span",{key:p.id,class:"badge",style:{"margin-right":"4px"}},n(p.name),1))),128))])):d("",!0)]),_:2},1032,["to"]))),128))],8,te)):(s(),a("p",ue,n(z.value?"Nic nie pasuje do filtrów.":"Nie ma jeszcze żadnych materiałów."),1)),u.value.meta.last_page>1?(s(),a("nav",de,[l("button",{class:"btn small",type:"button",disabled:i.value<=1,onClick:t[4]||(t[4]=e=>x(i.value-1))},"← Poprzednia",8,pe),l("span",ce,n(i.value)+" / "+n(u.value.meta.last_page),1),l("button",{class:"btn small",type:"button",disabled:i.value>=u.value.meta.last_page,onClick:t[5]||(t[5]=e=>x(i.value+1))},"Następna →",8,ve)])):d("",!0)],64)):(s(),a("div",ee,[...t[10]||(t[10]=[l("div",{class:"skeleton"},null,-1),l("div",{class:"skeleton"},null,-1)])]))])}}});export{fe as default}; diff --git a/public/assets/MoreView-CDnNzqNs.js b/public/assets/MoreView-BOP30Fre.js similarity index 93% rename from public/assets/MoreView-CDnNzqNs.js rename to public/assets/MoreView-BOP30Fre.js index e81afb9..0534aa6 100644 --- a/public/assets/MoreView-CDnNzqNs.js +++ b/public/assets/MoreView-BOP30Fre.js @@ -1 +1 @@ -import{_ as h}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{d as b,u as k,aB as z,aC as _,c as i,i as s,b as t,F as w,E as g,e as n,f,t as l,x as j,n as o,s as v,j as P,l as x,_ as d}from"./index-DwX0tlPb.js";const C={class:"stack"},B={class:"row-main",style:{"align-items":"center"}},N={class:"muted small"},D={class:"row-main",style:{"align-items":"center"}},W=b({__name:"MoreView",setup(F){const r=k(),c=z(),p=_(),m=[{to:"/terminarz",label:"Terminarz",hint:"Zaliczenia, egzaminy, sprawy organizacyjne",icon:"flag"},{to:"/przedmioty",label:"Przedmioty",hint:"Program studiów, prowadzący, materiały",icon:"grad"},{to:"/materialy",label:"Materiały",hint:"Notatki, PDF-y, linki",icon:"file"},{to:"/checklisty",label:"Checklisty",hint:"Przygotowanie do zjazdów i postęp",icon:"checklist"},{to:"/sylabusy",label:"Sylabusy",hint:"Karty przedmiotów do pobrania (PDF)",icon:"file"},{to:"/moje-prezentacje",label:"Moje prezentacje",hint:"Wersje prelegenta i linki publiczne",icon:"slides"},{to:"/profil",label:"Profil",hint:"Dane, hasło, wybór przedmiotów",icon:"user"}],u=j(()=>p?[{to:"/pilot",label:"Pilot",hint:"Ostatnia prezentacja otwierana na tym urządzeniu",icon:"slides"},...m]:m);return(V,e)=>{const y=x("router-link");return o(),i("div",null,[s(h,{eyebrow:"Pozostałe",title:"Więcej"}),t("div",C,[(o(!0),i(w,null,g(u.value,a=>(o(),v(y,{key:a.to,to:a.to,class:"card link"},{default:P(()=>[t("div",B,[t("div",null,[t("h3",null,l(a.label),1),t("span",N,l(a.hint),1)]),s(d,{name:"chevron",style:{width:"20px",height:"20px"}})])]),_:2},1032,["to"]))),128)),n(c).canInstall?(o(),i("button",{key:0,type:"button",class:"card link",onClick:e[0]||(e[0]=a=>n(c).install())},[t("div",D,[e[2]||(e[2]=t("div",null,[t("h3",null,"Zainstaluj aplikację"),t("span",{class:"muted small"},"Ikona na ekranie głównym i szybki dostęp do pilota")],-1)),s(d,{name:"chevron",style:{width:"20px",height:"20px"}})])])):f("",!0),t("button",{class:"btn miss",type:"button",onClick:e[1]||(e[1]=a=>n(r).logout())},"Wyloguj ("+l(n(r).displayName)+")",1)])])}}});export{W as default}; +import{_ as h}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{d as b,u as k,aB as z,aC as _,c as i,i as s,b as t,F as w,E as g,e as n,f,t as l,x as j,n as o,s as v,j as P,l as x,_ as d}from"./index-C7U0oIvN.js";const C={class:"stack"},B={class:"row-main",style:{"align-items":"center"}},N={class:"muted small"},D={class:"row-main",style:{"align-items":"center"}},W=b({__name:"MoreView",setup(F){const r=k(),c=z(),p=_(),m=[{to:"/terminarz",label:"Terminarz",hint:"Zaliczenia, egzaminy, sprawy organizacyjne",icon:"flag"},{to:"/przedmioty",label:"Przedmioty",hint:"Program studiów, prowadzący, materiały",icon:"grad"},{to:"/materialy",label:"Materiały",hint:"Notatki, PDF-y, linki",icon:"file"},{to:"/checklisty",label:"Checklisty",hint:"Przygotowanie do zjazdów i postęp",icon:"checklist"},{to:"/sylabusy",label:"Sylabusy",hint:"Karty przedmiotów do pobrania (PDF)",icon:"file"},{to:"/moje-prezentacje",label:"Moje prezentacje",hint:"Wersje prelegenta i linki publiczne",icon:"slides"},{to:"/profil",label:"Profil",hint:"Dane, hasło, wybór przedmiotów",icon:"user"}],u=j(()=>p?[{to:"/pilot",label:"Pilot",hint:"Ostatnia prezentacja otwierana na tym urządzeniu",icon:"slides"},...m]:m);return(V,e)=>{const y=x("router-link");return o(),i("div",null,[s(h,{eyebrow:"Pozostałe",title:"Więcej"}),t("div",C,[(o(!0),i(w,null,g(u.value,a=>(o(),v(y,{key:a.to,to:a.to,class:"card link"},{default:P(()=>[t("div",B,[t("div",null,[t("h3",null,l(a.label),1),t("span",N,l(a.hint),1)]),s(d,{name:"chevron",style:{width:"20px",height:"20px"}})])]),_:2},1032,["to"]))),128)),n(c).canInstall?(o(),i("button",{key:0,type:"button",class:"card link",onClick:e[0]||(e[0]=a=>n(c).install())},[t("div",D,[e[2]||(e[2]=t("div",null,[t("h3",null,"Zainstaluj aplikację"),t("span",{class:"muted small"},"Ikona na ekranie głównym i szybki dostęp do pilota")],-1)),s(d,{name:"chevron",style:{width:"20px",height:"20px"}})])])):f("",!0),t("button",{class:"btn miss",type:"button",onClick:e[1]||(e[1]=a=>n(r).logout())},"Wyloguj ("+l(n(r).displayName)+")",1)])])}}});export{W as default}; diff --git a/public/assets/MyPresentationsView-sfZYImKG.js b/public/assets/MyPresentationsView-AURGskMI.js similarity index 91% rename from public/assets/MyPresentationsView-sfZYImKG.js rename to public/assets/MyPresentationsView-AURGskMI.js index 7872641..ee374ec 100644 --- a/public/assets/MyPresentationsView-sfZYImKG.js +++ b/public/assets/MyPresentationsView-AURGskMI.js @@ -1 +1 @@ -import{d as z,o as b,c as a,i as p,f as _,j as y,k as v,m as h,r as u,ap as x,n,F as N,E as $,b as o,t as f,p as l,ag as C,l as V}from"./index-DwX0tlPb.js";import{_ as M}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as P}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{p as R}from"./presentations-AE-pigbL.js";const T={key:0,class:"notice error",role:"alert"},q={key:0,class:"stack"},B={class:"small muted",style:{display:"flex","flex-wrap":"wrap","align-items":"center",gap:"8px",margin:"4px 0 0"}},O={key:0,class:"badge online"},D={key:1,class:"badge"},E={style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"14px"}},F=["href"],L=["href"],A={key:1,class:"muted small",style:{margin:"0"}},H={key:1,class:"empty"},K=z({__name:"MyPresentationsView",setup(I){const c=v(),k=h(),r=u(null),i=u(""),d=u(!1);function j(t){const e=C(t.slide_count,"slajd","slajdy","slajdów");return t.total_seconds===0?e:`${e} · ${Math.round(t.total_seconds/60)} min`}function w(t){return`/moje-prezentacje/${encodeURIComponent(t)}`}async function m(){i.value="";try{r.value=await R.mine()}catch(t){r.value=null,i.value=x(t)}}return b(()=>{if(c.query.denied==="1"){d.value=!0;const t={...c.query};delete t.denied,k.replace({name:"my-presentations",query:t})}m()}),(t,e)=>{const g=V("router-link");return n(),a("div",null,[p(M,{eyebrow:"Dla prelegenta",title:"Moje prezentacje"}),d.value?(n(),a("p",T," Nie masz dostępu do tej prezentacji albo taka prezentacja nie istnieje. Poniżej są prezentacje przypisane do Twojego konta. ")):_("",!0),p(P,{ready:r.value!==null,error:i.value,onRetry:e[0]||(e[0]=s=>m())},{default:y(()=>[r.value?.length?(n(),a("div",q,[(n(!0),a(N,null,$(r.value,s=>(n(),a("article",{key:s.slug,class:"card accent"},[o("h3",null,f(s.title),1),o("p",B,[o("span",null,f(j(s)),1),s.is_published?(n(),a("span",O,"Opublikowana")):(n(),a("span",D,"Nieopublikowana"))]),o("div",E,[o("a",{class:"btn primary",href:w(s.slug),target:"_blank",rel:"opener"},[...e[1]||(e[1]=[l(" Otwórz wersję prelegenta ",-1),o("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,F),s.is_published&&s.public_path?(n(),a("a",{key:0,class:"btn",href:s.public_path,target:"_blank",rel:"noopener noreferrer"},[...e[2]||(e[2]=[l(" Otwórz wersję publiczną ",-1),o("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,L)):s.is_published?_("",!0):(n(),a("p",A,"Link publiczny zacznie działać po opublikowaniu prezentacji.")),p(g,{class:"btn",to:{name:"presentation-remote",params:{slug:s.slug}}},{default:y(()=>[...e[3]||(e[3]=[l(" Pilot ",-1),o("span",{class:"sr-only"},"(otwórz na telefonie)",-1)])]),_:1},8,["to"])])]))),128))])):(n(),a("p",H,[...e[4]||(e[4]=[o("span",{class:"title",style:{display:"block",color:"var(--ink)"}},"Nie masz jeszcze żadnych prezentacji.",-1),l(" Pojawią się tutaj, gdy administrator przypisze prezentację do Twojego konta. ",-1)])]))]),_:1},8,["ready","error"])])}}});export{K as default}; +import{d as z,o as b,c as a,i as p,f as _,j as y,k as v,m as h,r as u,ap as x,n,F as N,E as $,b as o,t as f,p as l,ag as C,l as V}from"./index-C7U0oIvN.js";import{_ as M}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as P}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{p as R}from"./presentations-CObEuepN.js";const T={key:0,class:"notice error",role:"alert"},q={key:0,class:"stack"},B={class:"small muted",style:{display:"flex","flex-wrap":"wrap","align-items":"center",gap:"8px",margin:"4px 0 0"}},O={key:0,class:"badge online"},D={key:1,class:"badge"},E={style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"14px"}},F=["href"],L=["href"],A={key:1,class:"muted small",style:{margin:"0"}},H={key:1,class:"empty"},K=z({__name:"MyPresentationsView",setup(I){const c=v(),k=h(),r=u(null),i=u(""),d=u(!1);function j(t){const e=C(t.slide_count,"slajd","slajdy","slajdów");return t.total_seconds===0?e:`${e} · ${Math.round(t.total_seconds/60)} min`}function w(t){return`/moje-prezentacje/${encodeURIComponent(t)}`}async function m(){i.value="";try{r.value=await R.mine()}catch(t){r.value=null,i.value=x(t)}}return b(()=>{if(c.query.denied==="1"){d.value=!0;const t={...c.query};delete t.denied,k.replace({name:"my-presentations",query:t})}m()}),(t,e)=>{const g=V("router-link");return n(),a("div",null,[p(M,{eyebrow:"Dla prelegenta",title:"Moje prezentacje"}),d.value?(n(),a("p",T," Nie masz dostępu do tej prezentacji albo taka prezentacja nie istnieje. Poniżej są prezentacje przypisane do Twojego konta. ")):_("",!0),p(P,{ready:r.value!==null,error:i.value,onRetry:e[0]||(e[0]=s=>m())},{default:y(()=>[r.value?.length?(n(),a("div",q,[(n(!0),a(N,null,$(r.value,s=>(n(),a("article",{key:s.slug,class:"card accent"},[o("h3",null,f(s.title),1),o("p",B,[o("span",null,f(j(s)),1),s.is_published?(n(),a("span",O,"Opublikowana")):(n(),a("span",D,"Nieopublikowana"))]),o("div",E,[o("a",{class:"btn primary",href:w(s.slug),target:"_blank",rel:"opener"},[...e[1]||(e[1]=[l(" Otwórz wersję prelegenta ",-1),o("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,F),s.is_published&&s.public_path?(n(),a("a",{key:0,class:"btn",href:s.public_path,target:"_blank",rel:"noopener noreferrer"},[...e[2]||(e[2]=[l(" Otwórz wersję publiczną ",-1),o("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,L)):s.is_published?_("",!0):(n(),a("p",A,"Link publiczny zacznie działać po opublikowaniu prezentacji.")),p(g,{class:"btn",to:{name:"presentation-remote",params:{slug:s.slug}}},{default:y(()=>[...e[3]||(e[3]=[l(" Pilot ",-1),o("span",{class:"sr-only"},"(otwórz na telefonie)",-1)])]),_:1},8,["to"])])]))),128))])):(n(),a("p",H,[...e[4]||(e[4]=[o("span",{class:"title",style:{display:"block",color:"var(--ink)"}},"Nie masz jeszcze żadnych prezentacji.",-1),l(" Pojawią się tutaj, gdy administrator przypisze prezentację do Twojego konta. ",-1)])]))]),_:1},8,["ready","error"])])}}});export{K as default}; diff --git a/public/assets/NotFoundView-QVtbVJBJ.js b/public/assets/NotFoundView-BO0GMfPQ.js similarity index 87% rename from public/assets/NotFoundView-QVtbVJBJ.js rename to public/assets/NotFoundView-BO0GMfPQ.js index 85c105b..3bb1317 100644 --- a/public/assets/NotFoundView-QVtbVJBJ.js +++ b/public/assets/NotFoundView-BO0GMfPQ.js @@ -1 +1 @@ -import{_ as s}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{n as a,c as n,b as t,i as r,j as l,p as c,l as i}from"./index-DwX0tlPb.js";const p={},d={class:"stack"};function _(u,e){const o=i("router-link");return a(),n("div",d,[e[1]||(e[1]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"404"),t("h1",null,"Nie ma takiej strony")],-1)),t("p",null,[r(o,{to:"/"},{default:l(()=>[...e[0]||(e[0]=[c("Wróć na pulpit",-1)])]),_:1})])])}const k=s(p,[["render",_]]);export{k as default}; +import{_ as s}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{n as a,c as n,b as t,i as r,j as l,p as c,l as i}from"./index-C7U0oIvN.js";const p={},d={class:"stack"};function _(u,e){const o=i("router-link");return a(),n("div",d,[e[1]||(e[1]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"404"),t("h1",null,"Nie ma takiej strony")],-1)),t("p",null,[r(o,{to:"/"},{default:l(()=>[...e[0]||(e[0]=[c("Wróć na pulpit",-1)])]),_:1})])])}const k=s(p,[["render",_]]);export{k as default}; diff --git a/public/assets/OAuthCallbackView-Csl3jfGN.js b/public/assets/OAuthCallbackView-C9qJ7LV6.js similarity index 92% rename from public/assets/OAuthCallbackView-Csl3jfGN.js rename to public/assets/OAuthCallbackView-C9qJ7LV6.js index 5a3fa41..d1332c2 100644 --- a/public/assets/OAuthCallbackView-Csl3jfGN.js +++ b/public/assets/OAuthCallbackView-C9qJ7LV6.js @@ -1 +1 @@ -import{d as g,u as y,q as h,o as _,A as v,c as i,b as n,t as b,e as A,s as p,j as d,k as B,m as C,r as f,l as j,n as a,p as m}from"./index-DwX0tlPb.js";import{s as x,f as z}from"./forms-BEpVKSou.js";import{p as q}from"./oauth-zzthF4BZ.js";const E={class:"auth"},I={key:0,class:"notice",role:"status"},L={key:1,class:"stack"},M={class:"notice error",role:"alert"},k=new Set,V=g({__name:"OAuthCallbackView",setup(O){const l=y(),u=B(),s=C(),w=h(),c=f(!0),t=f("");return _(async()=>{const o=q(u.query);if(o.kind==="pending"){const e={pending:o.pending,provider:o.provider};o.reason&&(e.reason=o.reason),o.email&&(e.email=o.email),await s.replace({name:"oauth-register",query:e});return}if(await s.replace({path:u.path}),o.kind==="error")t.value=o.message;else if(o.kind==="none")t.value="Brak danych logowania. Spróbuj zalogować się ponownie.";else{if(k.has(o.code))return;k.add(o.code);try{const{action:e,returnTo:r}=await l.completeOAuth(o.code);e==="link"?(w.show("Połączono konto Microsoft."),await s.replace("/profil")):await s.replace(x(r));return}catch(e){t.value=e instanceof v&&(e.status===410||e.status===422)?"Link logowania wygasł lub został już użyty.":z(e).message}}c.value=!1}),(o,e)=>{const r=j("router-link");return a(),i("div",E,[e[2]||(e[2]=n("header",{class:"page-head"},[n("span",{class:"eyebrow"},"BM II° · UWr"),n("h1",null,"Logowanie")],-1)),c.value?(a(),i("p",I,"Logowanie…")):(a(),i("div",L,[n("p",M,b(t.value),1),A(l).loggedIn?(a(),p(r,{key:0,class:"btn primary",to:"/profil"},{default:d(()=>[...e[0]||(e[0]=[m("Wróć do profilu",-1)])]),_:1})):(a(),p(r,{key:1,class:"btn primary",to:"/logowanie"},{default:d(()=>[...e[1]||(e[1]=[m("Przejdź do logowania",-1)])]),_:1}))]))])}}});export{V as default}; +import{d as g,u as y,q as h,o as _,A as v,c as i,b as n,t as b,e as A,s as p,j as d,k as B,m as C,r as f,l as j,n as a,p as m}from"./index-C7U0oIvN.js";import{s as x,f as z}from"./forms-L06yLYMm.js";import{p as q}from"./oauth-zzthF4BZ.js";const E={class:"auth"},I={key:0,class:"notice",role:"status"},L={key:1,class:"stack"},M={class:"notice error",role:"alert"},k=new Set,V=g({__name:"OAuthCallbackView",setup(O){const l=y(),u=B(),s=C(),w=h(),c=f(!0),t=f("");return _(async()=>{const o=q(u.query);if(o.kind==="pending"){const e={pending:o.pending,provider:o.provider};o.reason&&(e.reason=o.reason),o.email&&(e.email=o.email),await s.replace({name:"oauth-register",query:e});return}if(await s.replace({path:u.path}),o.kind==="error")t.value=o.message;else if(o.kind==="none")t.value="Brak danych logowania. Spróbuj zalogować się ponownie.";else{if(k.has(o.code))return;k.add(o.code);try{const{action:e,returnTo:r}=await l.completeOAuth(o.code);e==="link"?(w.show("Połączono konto Microsoft."),await s.replace("/profil")):await s.replace(x(r));return}catch(e){t.value=e instanceof v&&(e.status===410||e.status===422)?"Link logowania wygasł lub został już użyty.":z(e).message}}c.value=!1}),(o,e)=>{const r=j("router-link");return a(),i("div",E,[e[2]||(e[2]=n("header",{class:"page-head"},[n("span",{class:"eyebrow"},"BM II° · UWr"),n("h1",null,"Logowanie")],-1)),c.value?(a(),i("p",I,"Logowanie…")):(a(),i("div",L,[n("p",M,b(t.value),1),A(l).loggedIn?(a(),p(r,{key:0,class:"btn primary",to:"/profil"},{default:d(()=>[...e[0]||(e[0]=[m("Wróć do profilu",-1)])]),_:1})):(a(),p(r,{key:1,class:"btn primary",to:"/logowanie"},{default:d(()=>[...e[1]||(e[1]=[m("Przejdź do logowania",-1)])]),_:1}))]))])}}});export{V as default}; diff --git a/public/assets/OAuthRegisterView-duZxFWAp.js b/public/assets/OAuthRegisterView-CP2fNoWb.js similarity index 96% rename from public/assets/OAuthRegisterView-duZxFWAp.js rename to public/assets/OAuthRegisterView-CP2fNoWb.js index b8bbfbe..a4fe0bc 100644 --- a/public/assets/OAuthRegisterView-duZxFWAp.js +++ b/public/assets/OAuthRegisterView-CP2fNoWb.js @@ -1 +1 @@ -import{d as U,u as q,c as o,b as t,i as w,j as _,e as c,p as n,t as l,F as V,h as B,f as k,w as j,g as h,x as N,r as i,l as E,k as P,n as a,A as S,m as D}from"./index-DwX0tlPb.js";import{s as F,f as I}from"./forms-BEpVKSou.js";const O={class:"auth"},T={key:0,class:"stack"},K={key:1,class:"stack"},L={class:"notice",role:"status"},W={key:0},G={class:"muted",style:{"margin-bottom":"14px"}},H={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},J={class:"check"},Q={key:1,class:"error-text"},X={class:"check"},Y={key:2,class:"error-text"},$={class:"check",style:{"margin-bottom":"16px"}},ee=["disabled"],te={class:"auth-links"},ne=U({__name:"OAuthRegisterView",setup(se){const A=q(),C=P(),Z=D();function d(s){const e=C.query[s];return typeof e=="string"?e:""}const x=d("pending"),p=d("email"),M=d("reason"),f=N(()=>{const s=d("provider");return s==="microsoft"||s===""?"Microsoft 365":s.charAt(0).toUpperCase()+s.slice(1)}),m=i(!1),v=i(!1),g=i(!1),y=i(!1),r=i(null),z=i(!x);async function R(){y.value=!0,r.value=null;try{const{returnTo:s}=await A.completeOAuthRegistration({pending_code:x,terms_accepted:m.value,privacy_accepted:v.value,marketing_consent:g.value});await Z.replace(F(s))}catch(s){s instanceof S&&s.status===410?z.value=!0:r.value=I(s)}finally{y.value=!1}}return(s,e)=>{const b=E("router-link");return a(),o("div",O,[e[13]||(e[13]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Rejestracja")],-1)),z.value?(a(),o("div",T,[e[4]||(e[4]=t("p",{class:"notice error",role:"alert"},"Sesja rejestracji wygasła. Zaloguj się ponownie.",-1)),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[3]||(e[3]=[n("Przejdź do logowania",-1)])]),_:1})])):c(M)==="unverified_match"?(a(),o("div",K,[t("p",L,[e[5]||(e[5]=n(" Konto z adresem ",-1)),c(p)?(a(),o("b",W,l(c(p)),1)):(a(),o(V,{key:1},[n("e-mail z konta "+l(f.value),1)],64)),n(" już istnieje. Zaloguj się hasłem, a potem połącz konto "+l(f.value)+" w profilu („Połącz konto Microsoft”). ",1)]),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[6]||(e[6]=[n("Zaloguj się hasłem",-1)])]),_:1})])):(a(),o("form",{key:2,onSubmit:B(R,["prevent"]),novalidate:""},[t("p",G,[n(" Pierwsze logowanie przez "+l(f.value),1),c(p)?(a(),o(V,{key:0},[e[7]||(e[7]=n(" jako ",-1)),t("b",null,l(c(p)),1)],64)):k("",!0),e[8]||(e[8]=n(". Zaakceptuj warunki, aby założyć konto. ",-1))]),r.value?.message?(a(),o("div",H,l(r.value.message),1)):k("",!0),t("label",J,[j(t("input",{"onUpdate:modelValue":e[0]||(e[0]=u=>m.value=u),type:"checkbox",required:""},null,512),[[h,m.value]]),e[9]||(e[9]=t("span",null,"Akceptuję regulamin serwisu (wymagane)",-1))]),r.value?.fields.terms_accepted?(a(),o("p",Q,l(r.value.fields.terms_accepted),1)):k("",!0),t("label",X,[j(t("input",{"onUpdate:modelValue":e[1]||(e[1]=u=>v.value=u),type:"checkbox",required:""},null,512),[[h,v.value]]),e[10]||(e[10]=t("span",null,"Zgadzam się na przetwarzanie moich danych zgodnie z polityką prywatności (wymagane)",-1))]),r.value?.fields.privacy_accepted?(a(),o("p",Y,l(r.value.fields.privacy_accepted),1)):k("",!0),t("label",$,[j(t("input",{"onUpdate:modelValue":e[2]||(e[2]=u=>g.value=u),type:"checkbox"},null,512),[[h,g.value]]),e[11]||(e[11]=t("span",null,"Chcę otrzymywać wiadomości o nowościach (opcjonalnie)",-1))]),t("button",{class:"btn primary block",type:"submit",disabled:y.value||!m.value||!v.value},l(y.value?"Zakładanie…":"Załóż konto"),9,ee)],32)),t("div",te,[w(b,{to:"/logowanie"},{default:_(()=>[...e[12]||(e[12]=[n("Mam już konto",-1)])]),_:1})])])}}});export{ne as default}; +import{d as U,u as q,c as o,b as t,i as w,j as _,e as c,p as n,t as l,F as V,h as B,f as k,w as j,g as h,x as N,r as i,l as E,k as P,n as a,A as S,m as D}from"./index-C7U0oIvN.js";import{s as F,f as I}from"./forms-L06yLYMm.js";const O={class:"auth"},T={key:0,class:"stack"},K={key:1,class:"stack"},L={class:"notice",role:"status"},W={key:0},G={class:"muted",style:{"margin-bottom":"14px"}},H={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},J={class:"check"},Q={key:1,class:"error-text"},X={class:"check"},Y={key:2,class:"error-text"},$={class:"check",style:{"margin-bottom":"16px"}},ee=["disabled"],te={class:"auth-links"},ne=U({__name:"OAuthRegisterView",setup(se){const A=q(),C=P(),Z=D();function d(s){const e=C.query[s];return typeof e=="string"?e:""}const x=d("pending"),p=d("email"),M=d("reason"),f=N(()=>{const s=d("provider");return s==="microsoft"||s===""?"Microsoft 365":s.charAt(0).toUpperCase()+s.slice(1)}),m=i(!1),v=i(!1),g=i(!1),y=i(!1),r=i(null),z=i(!x);async function R(){y.value=!0,r.value=null;try{const{returnTo:s}=await A.completeOAuthRegistration({pending_code:x,terms_accepted:m.value,privacy_accepted:v.value,marketing_consent:g.value});await Z.replace(F(s))}catch(s){s instanceof S&&s.status===410?z.value=!0:r.value=I(s)}finally{y.value=!1}}return(s,e)=>{const b=E("router-link");return a(),o("div",O,[e[13]||(e[13]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Rejestracja")],-1)),z.value?(a(),o("div",T,[e[4]||(e[4]=t("p",{class:"notice error",role:"alert"},"Sesja rejestracji wygasła. Zaloguj się ponownie.",-1)),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[3]||(e[3]=[n("Przejdź do logowania",-1)])]),_:1})])):c(M)==="unverified_match"?(a(),o("div",K,[t("p",L,[e[5]||(e[5]=n(" Konto z adresem ",-1)),c(p)?(a(),o("b",W,l(c(p)),1)):(a(),o(V,{key:1},[n("e-mail z konta "+l(f.value),1)],64)),n(" już istnieje. Zaloguj się hasłem, a potem połącz konto "+l(f.value)+" w profilu („Połącz konto Microsoft”). ",1)]),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[6]||(e[6]=[n("Zaloguj się hasłem",-1)])]),_:1})])):(a(),o("form",{key:2,onSubmit:B(R,["prevent"]),novalidate:""},[t("p",G,[n(" Pierwsze logowanie przez "+l(f.value),1),c(p)?(a(),o(V,{key:0},[e[7]||(e[7]=n(" jako ",-1)),t("b",null,l(c(p)),1)],64)):k("",!0),e[8]||(e[8]=n(". Zaakceptuj warunki, aby założyć konto. ",-1))]),r.value?.message?(a(),o("div",H,l(r.value.message),1)):k("",!0),t("label",J,[j(t("input",{"onUpdate:modelValue":e[0]||(e[0]=u=>m.value=u),type:"checkbox",required:""},null,512),[[h,m.value]]),e[9]||(e[9]=t("span",null,"Akceptuję regulamin serwisu (wymagane)",-1))]),r.value?.fields.terms_accepted?(a(),o("p",Q,l(r.value.fields.terms_accepted),1)):k("",!0),t("label",X,[j(t("input",{"onUpdate:modelValue":e[1]||(e[1]=u=>v.value=u),type:"checkbox",required:""},null,512),[[h,v.value]]),e[10]||(e[10]=t("span",null,"Zgadzam się na przetwarzanie moich danych zgodnie z polityką prywatności (wymagane)",-1))]),r.value?.fields.privacy_accepted?(a(),o("p",Y,l(r.value.fields.privacy_accepted),1)):k("",!0),t("label",$,[j(t("input",{"onUpdate:modelValue":e[2]||(e[2]=u=>g.value=u),type:"checkbox"},null,512),[[h,g.value]]),e[11]||(e[11]=t("span",null,"Chcę otrzymywać wiadomości o nowościach (opcjonalnie)",-1))]),t("button",{class:"btn primary block",type:"submit",disabled:y.value||!m.value||!v.value},l(y.value?"Zakładanie…":"Załóż konto"),9,ee)],32)),t("div",te,[w(b,{to:"/logowanie"},{default:_(()=>[...e[12]||(e[12]=[n("Mam już konto",-1)])]),_:1})])])}}});export{ne as default}; diff --git a/public/assets/PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js b/public/assets/PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js similarity index 84% rename from public/assets/PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js rename to public/assets/PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js index 2c28525..30dee5b 100644 --- a/public/assets/PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js +++ b/public/assets/PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js @@ -1 +1 @@ -import{d as r,c as s,t as a,f as c,b as t,aG as d,n as o}from"./index-DwX0tlPb.js";const l={class:"page-head"},i={key:0,class:"eyebrow"},_={class:"row"},h={class:"btn-row"},p=r({__name:"PageHead",props:{eyebrow:{},title:{}},setup(e){return(n,m)=>(o(),s("header",l,[e.eyebrow?(o(),s("span",i,a(e.eyebrow),1)):c("",!0),t("div",_,[t("h1",null,a(e.title),1),t("div",h,[d(n.$slots,"default")])])]))}});export{p as _}; +import{d as r,c as s,t as a,f as c,b as t,aG as d,n as o}from"./index-C7U0oIvN.js";const l={class:"page-head"},i={key:0,class:"eyebrow"},_={class:"row"},h={class:"btn-row"},p=r({__name:"PageHead",props:{eyebrow:{},title:{}},setup(e){return(n,m)=>(o(),s("header",l,[e.eyebrow?(o(),s("span",i,a(e.eyebrow),1)):c("",!0),t("div",_,[t("h1",null,a(e.title),1),t("div",h,[d(n.$slots,"default")])])]))}});export{p as _}; diff --git a/public/assets/PresentationPublicView-RtRTp6z0.js b/public/assets/PresentationPublicView-BxkUqRJW.js similarity index 89% rename from public/assets/PresentationPublicView-RtRTp6z0.js rename to public/assets/PresentationPublicView-BxkUqRJW.js index afd65e7..bd39e75 100644 --- a/public/assets/PresentationPublicView-RtRTp6z0.js +++ b/public/assets/PresentationPublicView-BxkUqRJW.js @@ -1 +1 @@ -import{d as h,U as k,o as b,aH as g,s as w,r as u,n as _,A as l}from"./index-DwX0tlPb.js";import{p as y}from"./presentations-AE-pigbL.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js";/* empty css */const x="Sprawdź połączenie z internetem i spróbuj ponownie.",z="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",j="Prezentacja · BM II°",A=h({__name:"PresentationPublicView",props:{slugHash:{}},setup(f){const d=f,n=u("pending"),a=u(null),o=u("");let s=0,r=0;function c(){s&&window.clearTimeout(s),s=0}async function m(t){const i=++r;c(),document.title=j,n.value="pending",a.value=null,o.value="",s=window.setTimeout(()=>{i===r&&n.value==="pending"&&(n.value="loading")},200);try{const e=await y.publicDeck(t);if(i!==r)return;c();const p=e.slides??[];a.value={...e,slides:p},e.title&&(document.title=e.title),n.value=p.length===0?"empty":"ready"}catch(e){if(i!==r)return;if(c(),e instanceof l&&e.status===404){n.value="notfound";return}e instanceof l&&e.status===429?o.value=z:e instanceof l&&e.message?o.value=e.message:o.value=x,n.value="error"}}function v(){m(d.slugHash)}return k(()=>d.slugHash,t=>{m(t)},{immediate:!0}),b(()=>{if(document.documentElement.classList.add("deck-public"),!document.querySelector('meta[data-deck-public="1"]')){const t=document.createElement("meta");t.name="robots",t.content="noindex",t.dataset.deckPublic="1",document.head.appendChild(t)}}),g(()=>{r+=1,c(),document.documentElement.classList.remove("deck-public"),document.querySelector('meta[data-deck-public="1"]')?.remove()}),(t,i)=>(_(),w(E,{phase:n.value,deck:a.value,error:o.value,"extra-css":a.value?.css,theme:a.value?.theme,onRetry:v},null,8,["phase","deck","error","extra-css","theme"]))}});export{A as default}; +import{d as h,U as k,o as b,aH as g,s as w,r as u,n as _,A as l}from"./index-C7U0oIvN.js";import{p as y}from"./presentations-CObEuepN.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js";/* empty css */const x="Sprawdź połączenie z internetem i spróbuj ponownie.",z="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",j="Prezentacja · BM II°",A=h({__name:"PresentationPublicView",props:{slugHash:{}},setup(f){const d=f,n=u("pending"),a=u(null),o=u("");let s=0,r=0;function c(){s&&window.clearTimeout(s),s=0}async function m(t){const i=++r;c(),document.title=j,n.value="pending",a.value=null,o.value="",s=window.setTimeout(()=>{i===r&&n.value==="pending"&&(n.value="loading")},200);try{const e=await y.publicDeck(t);if(i!==r)return;c();const p=e.slides??[];a.value={...e,slides:p},e.title&&(document.title=e.title),n.value=p.length===0?"empty":"ready"}catch(e){if(i!==r)return;if(c(),e instanceof l&&e.status===404){n.value="notfound";return}e instanceof l&&e.status===429?o.value=z:e instanceof l&&e.message?o.value=e.message:o.value=x,n.value="error"}}function v(){m(d.slugHash)}return k(()=>d.slugHash,t=>{m(t)},{immediate:!0}),b(()=>{if(document.documentElement.classList.add("deck-public"),!document.querySelector('meta[data-deck-public="1"]')){const t=document.createElement("meta");t.name="robots",t.content="noindex",t.dataset.deckPublic="1",document.head.appendChild(t)}}),g(()=>{r+=1,c(),document.documentElement.classList.remove("deck-public"),document.querySelector('meta[data-deck-public="1"]')?.remove()}),(t,i)=>(_(),w(E,{phase:n.value,deck:a.value,error:o.value,"extra-css":a.value?.css,theme:a.value?.theme,onRetry:v},null,8,["phase","deck","error","extra-css","theme"]))}});export{A as default}; diff --git a/public/assets/PresentationRemoteView-nYIsdRGZ.js b/public/assets/PresentationRemoteView-D4LTAFiH.js similarity index 99% rename from public/assets/PresentationRemoteView-nYIsdRGZ.js rename to public/assets/PresentationRemoteView-D4LTAFiH.js index 58dd661..38fe4d3 100644 --- a/public/assets/PresentationRemoteView-nYIsdRGZ.js +++ b/public/assets/PresentationRemoteView-D4LTAFiH.js @@ -1 +1 @@ -/* empty css */import{d as oe,U as G,c as n,b as a,f as k,t as p,F as T,E as J,i as se,j as Ue,C,x as u,r as m,l as Fe,n as t,p as xe,Z as Re,s as fe,_ as Te,o as Ge,aH as Je,A as ne,aI as Xe,aJ as Qe,m as et,aM as tt}from"./index-DwX0tlPb.js";import{p as me}from"./presentations-AE-pigbL.js";import{s as pe,f as je,g as ke,h as at,i as nt,j as st,k as ot,l as Ce,m as lt,o as it,q as rt,u as ct,D as ut,d as dt,R as vt}from"./remote-BmhCoAgl.js";import{_ as le}from"./_plugin-vue_export-helper-DlAUqK2U.js";const mt={class:"drawer"},ft=["id","aria-label"],pt={class:"sheet-head"},kt=["disabled"],yt={class:"sheet-title"},bt={class:"title"},wt={key:0,class:"subtitle"},ht=["disabled"],gt=["innerHTML"],zt={key:1,class:"empty"},_t=["innerHTML"],$t={key:1,class:"empty"},Tt=["data-current","aria-current","onClick"],jt={class:"num"},Ct={class:"row-title"},St={key:0,class:"tag"},xt={key:1,class:"now"},Rt={class:"list-foot"},Et={key:0,class:"hint"},Bt={class:"bar","aria-label":"Szuflady na telefonie"},Lt=["disabled","aria-expanded","aria-controls","onClick"],Mt=oe({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(l,{emit:S}){const s=l,r=S,i=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],_=u(()=>s.deck.slides.length),j=u(()=>at(s.deck,s.state,s.live,s.cursor)),$=u(()=>s.live&&s.state?s.state.number:s.deck.slides[pe(s.deck.slides,s.cursor)]?.number??0),z=u(()=>pe(s.deck.slides,s.cursor)),w=u(()=>s.live&&s.state?s.state.number:s.deck.slides[z.value]?.number??s.cursor),L=u(()=>{const f=s.live&&s.state?.special?"s":"";return`${w.value}${f}`});function d(f){return f?/]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const N=u(()=>d(j.value?.say_html)?je(j.value?.say_html??""):""),I=u(()=>d(j.value?.notes_html)?je(j.value?.notes_html??""):""),M=u(()=>s.open==="say"?`Powiedz · slajd ${w.value}`:s.open==="notes"?`Notatki · slajd ${w.value}`:"Slajdy"),x=u(()=>s.open==="slides"?"":s.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${z.value+1} z ${_.value}`),b=u(()=>!s.live&&(s.open==="say"||s.open==="notes")),V=u(()=>z.value>0),A=u(()=>z.value<_.value-1),h=u(()=>s.deck.slides.map(f=>({number:f.number,title:ke(f),special:!!f.special})));function H(f){s.disabled||(s.open===f?r("close"):r("open",f))}function q(f){const y=s.deck.slides[z.value+f];y&&r("cursor",y.number)}const R=m(null),B=m(null);return G([L,()=>s.open],()=>{R.value&&(R.value.scrollTop=0)}),G(()=>s.open,async f=>{if(f!=="slides")return;await Re(),B.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(f,y)=>{const X=Fe("router-link");return t(),n("div",mt,[l.open?(t(),n("section",{key:0,id:`remote-drawer-${l.open}`,class:"sheet","aria-label":M.value},[a("header",pt,[b.value?(t(),n("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!V.value,onClick:y[0]||(y[0]=v=>q(-1))}," ‹ ",8,kt)):k("",!0),a("div",yt,[a("p",bt,p(M.value),1),x.value?(t(),n("p",wt,p(x.value),1)):k("",!0)]),b.value?(t(),n("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!A.value,onClick:y[1]||(y[1]=v=>q(1))}," › ",8,ht)):k("",!0),a("button",{type:"button",class:"close-btn",onClick:y[2]||(y[2]=v=>r("close"))},"Zamknij")]),a("div",{ref_key:"body",ref:R,class:C(["sheet-body",{reading:l.open!=="slides"}])},[l.open==="say"?(t(),n(T,{key:0},[N.value?(t(),n("div",{key:0,class:"text",innerHTML:N.value},null,8,gt)):(t(),n("p",zt,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):l.open==="notes"?(t(),n(T,{key:1},[I.value?(t(),n("div",{key:0,class:"text",innerHTML:I.value},null,8,_t)):(t(),n("p",$t,"Brak notatek do tego slajdu."))],64)):(t(),n(T,{key:2},[a("ol",{ref_key:"list",ref:B,class:"list"},[(t(!0),n(T,null,J(h.value,v=>(t(),n("li",{key:v.number},[a("button",{type:"button",class:"row","data-current":v.number===$.value?"true":void 0,"aria-current":v.number===$.value?"true":void 0,onClick:ie=>r("goto",v.number)},[a("span",jt,p(v.number),1),a("span",Ct,p(v.title),1),v.special?(t(),n("span",St,"+ specjalny")):k("",!0),v.number===$.value?(t(),n("span",xt,"teraz")):k("",!0)],8,Tt)]))),128))],512),a("footer",Rt,[se(X,{class:"back-link",to:{name:"my-presentations"}},{default:Ue(()=>[...y[3]||(y[3]=[xe("Wróć do moich prezentacji",-1)])]),_:1}),l.wakeLockMissing?(t(),n("p",Et,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):k("",!0)])],64))],2)],8,ft)):k("",!0),a("nav",Bt,[(t(),n(T,null,J(i,v=>a("button",{key:v.kind,type:"button",class:C(["tab",{open:l.open===v.kind}]),disabled:l.disabled,"aria-expanded":l.open===v.kind?"true":"false","aria-controls":`remote-drawer-${v.kind}`,onClick:ie=>H(v.kind)},p(v.label),11,Lt)),64))])])}}}),Pt=le(Mt,[["__scopeId","data-v-9f920f42"]]),Dt={key:0,class:"eyebrow"},Nt={class:"grid nav"},It=["disabled","aria-busy","onClick"],qt={key:1,class:"grid fn"},Vt=["disabled","aria-pressed","aria-busy","onClick"],At={class:"label"},Ht=oe({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean}},emits:["press","reset"],setup(l,{emit:S}){const s=l,r=S,i=u(()=>nt(s.state,s.live)),_=u(()=>i.value.slice(0,2)),j=u(()=>i.value.slice(2));function $(w){return(s.busy[w.action]??0)>0}function z(w){w.enabled&&(w.action==="clock-reset"?r("reset"):r("press",w.action))}return(w,L)=>(t(),n("section",{class:C(["keys",{compact:l.compact}]),"aria-label":"Klawisze na komputerze"},[l.compact?k("",!0):(t(),n("p",Dt,"Klawisze na komputerze")),a("div",Nt,[(t(!0),n(T,null,J(_.value,d=>(t(),n("button",{key:d.action,type:"button",class:C(["key nav-key",d.action]),disabled:!d.enabled,"aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[d.action==="prev"?(t(),fe(Te,{key:0,class:"arrow",name:"arrow-left"})):k("",!0),a("span",null,p(d.label),1),d.action==="next"?(t(),fe(Te,{key:1,class:"arrow",name:"arrow-right"})):k("",!0)],10,It))),128))]),l.compact?k("",!0):(t(),n("div",qt,[(t(!0),n(T,null,J(j.value,d=>(t(),n("button",{key:d.action,type:"button",class:"key fn-key",disabled:!d.enabled,"aria-pressed":d.pressed===null?void 0:d.pressed?"true":"false","aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[a("span",At,p(d.label),1),a("kbd",null,p(d.kbd),1)],8,Vt))),128))]))],2))}}),Se=le(Ht,[["__scopeId","data-v-1934c940"]]),Kt={class:"top"},Ot={class:"row row-title"},Wt={class:"deck-title"},Zt={class:"row row-slide","aria-live":"polite"},Yt={class:"counter"},Ut={key:0,class:"slide-title"},Ft={key:1,class:"slide-title waiting"},Gt={class:"row row-chips","aria-label":"Na komputerze"},Jt={class:"row row-clock"},Xt={key:0,class:"idle"},Qt={key:0,class:"chip"},ea={key:2,class:"clock"},ta=oe({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(l){const S=l,s=u(()=>st(S.status));return(r,i)=>(t(),n("header",Kt,[a("div",Ot,[a("p",Wt,p(l.deckTitle),1),a("p",{class:C(["conn",{on:l.status==="live"}])},[i[0]||(i[0]=a("span",{class:"dot","aria-hidden":"true"},null,-1)),xe(p(s.value),1)],2)]),a("div",Zt,[a("p",Yt,p(l.counter),1),l.live?(t(),n("p",Ut,p(l.slideTitle),1)):(t(),n("p",Ft,"Czekam na wersję mówcy"))]),a("ul",Gt,[l.live?(t(!0),n(T,{key:0},J(l.chips,_=>(t(),n("li",{key:_,class:C(["chip",{khaki:_==="Specjalny"}])},p(_),3))),128)):k("",!0)]),a("div",Jt,[l.live&&l.clock&&l.clock.idle?(t(),n("p",Xt,"Zegar ruszy przy pierwszej zmianie slajdu")):l.live&&l.clock?(t(),n(T,{key:1},[a("p",{class:C(["clock",{paused:l.clock.paused}])},[i[2]||(i[2]=a("span",{class:"lbl"},"Slajd",-1)),a("b",{class:C({over:l.clock.slideOver})},p(l.clock.slide),3),i[3]||(i[3]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),i[4]||(i[4]=a("span",{class:"lbl"},"Całość",-1)),a("b",{class:C({over:l.clock.totalOver})},p(l.clock.total),3),l.clock.pace?(t(),n(T,{key:0},[i[1]||(i[1]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),a("span",{class:C(["pace",{late:l.clock.late}])},p(l.clock.pace),3)],64)):k("",!0)],2),l.clock.paused?(t(),n("span",Qt,"Pauza")):k("",!0)],64)):(t(),n("p",ea,[...i[5]||(i[5]=[a("b",null,"—",-1)])]))])]))}}),aa=le(ta,[["__scopeId","data-v-382e11de"]]),na={key:0,class:"remote-status remote-label"},sa={key:1,class:"remote-status"},oa={key:0,class:"remote-alert",role:"alert"},la={class:"remote-middle"},ia={key:0,class:"remote-notice"},ra={key:0,class:"remote-notice"},ca={class:"remote-dialog-body"},ua="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",da="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",F="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",va=oe({__name:"PresentationRemoteView",props:{slug:{}},setup(l){const S=l,s=et(),r=m("pending"),i=m(null),_=m("");let j=0,$=0,z=null,w="",L=0,d=0,N=0,I=!1,M=0,x=Ce();const b=m(null),V=m(0),A=m(Date.now()),h=m(!1),H=m("connecting"),q=m(!1),R=m(!1),B=m(!1),f=u(()=>B.value?"unavailable":h.value?"live":H.value==="connected"&&R.value?"waiting":q.value?"reconnecting":"connecting"),y=u(()=>i.value?.slides.length??0),X=u(()=>{const e=b.value;return!i.value||!e?0:pe(i.value.slides,e.number)}),v=u(()=>{const e=b.value;return h.value&&e?`${e.number} / ${e.total}`:`— / ${y.value}`}),ie=u(()=>{const e=b.value,o=i.value?.slides[X.value];return!e||!o?"":e.special&&o.special?ke(o.special):ke(o)}),Ee=u(()=>b.value?it(b.value):[]),Be=u(()=>{const e=b.value;return!i.value||!e?null:rt(ct(e,i.value.slides.map(o=>o.seconds),i.value.target_seconds,X.value,V.value,A.value))}),P=m(null),K=m(1);G(b,e=>{e&&!e.bye&&e.number>0&&(K.value=e.number)});function Le(e){y.value!==0&&(P.value=e)}function Me(){P.value=null}function Pe(e){K.value=e}function De(e){if(h.value){ue(),ce("goto",e),P.value=null;return}K.value=e,P.value="say"}function re(){A.value=Date.now(),h.value=x.live(A.value)}function Ne(e){const o=dt(e);!o||o.event!==vt||x.observe(o.payload,Date.now())&&(b.value=x.current(),V.value=x.receivedAt(),re(),o.payload.bye&&ee())}function Q(){j&&window.clearTimeout(j),j=0}const E=m("");let D=0;function ye(e,o=4e3){E.value=e,D&&window.clearTimeout(D),D=0,o>0&&(D=window.setTimeout(()=>{E.value="",D=0},o))}function O(){D&&window.clearTimeout(D),D=0,E.value=""}const W=m({});function be(e,o){const c=Math.max(0,(W.value[e]??0)+o);W.value={...W.value,[e]:c}}async function ce(e,o){const c={action:e,tab:x.actionTab()};o!==void 0&&(c.number=o),be(e,1);try{await me.remote(S.slug,c),E.value&&E.value!==F&&O()}catch(g){ye(lt(g instanceof ne?g.status:-1))}finally{be(e,-1)}}function ee(){R.value&&me.remote(S.slug,{action:"sync",tab:""}).catch(()=>{})}function Ie(){R.value=!0,B.value=!1,E.value===F&&O(),x.release(),ee()}function qe(e){H.value=e,e==="connected"?q.value=!0:R.value=!1}function Ve(e){if(R.value=!1,B.value=!0,e!==403||I){E.value===F&&O();return}I=!0,ye(F,0),M=window.setTimeout(()=>{M=0,z?.resubscribe()},ut)}function ue(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function we(e){h.value&&(ue(),ce(e))}const Z=m(null),he=m(null);function Ae(){if(!h.value)return;ue();const e=Z.value;e&&(e.open||e.showModal(),Re(()=>he.value?.focus()))}function te(){Z.value?.open&&Z.value.close()}function He(){te(),h.value&&ce("clock-reset")}function Ke(e){e.target===Z.value&&te()}let Y=null,de=!1;const ae=m(!1);async function ge(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ae.value=!0;return}if(!(Y&&!Y.released))try{const o=await e.request("screen");if(!de){o.release().catch(()=>{});return}Y=o,ae.value=!1}catch{ae.value=!0}}function Oe(){const e=Y;Y=null,e&&!e.released&&e.release().catch(()=>{})}function ze(){document.visibilityState==="visible"&&(ge(),ee())}function ve(){L+=1,z?.close(),z=null,w="",R.value=!1,H.value="connecting",q.value=!1,B.value=!1,I=!1,M&&window.clearTimeout(M),M=0,E.value===F&&O(),x=Ce(),b.value=null,V.value=0,re()}async function We(e){ve();const o=L;w=e;try{const c=()=>o===L,g=await tt(e,{onPublication:U=>{c()&&Ne(U)},onSubscribed:()=>{c()&&Ie()},onConnection:U=>{c()&&qe(U)},onDenied:U=>{c()&&Ve(U)},onUnavailable:()=>{c()&&(B.value=!0)}});if(o!==L){g.close();return}z=g}catch{o===L&&(B.value=!0)}}function Ze(){const e=r.value==="ready"?i.value?.remote_channel??"":"";if(e!==w){if(!e){ve();return}We(e)}}async function _e(e){const o=++$;Q(),r.value="pending",i.value=null,_.value="",j=window.setTimeout(()=>{o===$&&r.value==="pending"&&(r.value="loading")},200);try{const c=await me.speaker(e);if(o!==$)return;Q();const g=c.slides??[];i.value={...c,slides:g},Xe(e),K.value=g[0]?.number??1,P.value=null,document.title=c.title?`Pilot · ${c.title}`:"Pilot · BM II°",r.value=g.length===0?"empty":"ready"}catch(c){if(o!==$)return;if(Q(),c instanceof ne&&c.status===404){Qe(e),await s.replace({name:"my-presentations",query:{denied:"1"}});return}if(c instanceof ne&&c.status===401)return;_.value=c instanceof ne&&c.status===429?da:ua,r.value="error"}}function Ye(){_e(S.slug)}function $e(e,o,c){if(document.querySelector(`meta[data-deck-remote="${c}"]`))return;const g=document.createElement("meta");g.name=e,g.content=o,g.dataset.deckRemote=c,document.head.appendChild(g)}return G(()=>S.slug,e=>{_e(e)},{immediate:!0}),G([i,r],()=>{Ze()}),Ge(()=>{de=!0,document.documentElement.classList.add("deck-remote"),$e("robots","noindex","robots"),$e("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",ze),d=window.setInterval(()=>{document.visibilityState==="visible"&&ee()},ot),N=window.setInterval(re,1e3),ge()}),Je(()=>{de=!1,$+=1,Q(),O(),ve(),te(),Oe(),window.clearInterval(d),window.clearInterval(N),document.removeEventListener("visibilitychange",ze),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,o)=>(t(),n("main",{class:C(["remote",{"remote-page":r.value==="ready"||r.value==="empty","remote-drawer-open":r.value==="ready"&&P.value}])},[r.value==="loading"?(t(),n("p",na,"Wczytywanie pilota…")):r.value==="error"?(t(),n("div",sa,[a("p",null,p(_.value),1),a("button",{type:"button",class:"remote-retry",onClick:Ye},"Spróbuj ponownie")])):(r.value==="ready"||r.value==="empty")&&i.value?(t(),n(T,{key:2},[se(aa,{class:"remote-top","deck-title":i.value.title,status:r.value==="empty"?"waiting":f.value,live:r.value==="ready"&&h.value,counter:v.value,"slide-title":ie.value,chips:Ee.value,clock:Be.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),E.value?(t(),n("p",oa,p(E.value),1)):k("",!0),a("div",la,[r.value==="empty"?(t(),n("div",ia,[...o[0]||(o[0]=[a("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),a("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):P.value?(t(),fe(Se,{key:1,compact:"",state:b.value,live:h.value,busy:W.value,onPress:we},null,8,["state","live","busy"])):(t(),n(T,{key:2},[h.value?k("",!0):(t(),n("div",ra,[...o[1]||(o[1]=[a("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),a("p",{class:"remote-muted"}," Klawisze zadziałają, gdy wersja mówcy tej prezentacji będzie otwarta na komputerze. Powiedz i notatki możesz czytać już teraz. ",-1)])])),se(Se,{state:b.value,live:h.value,busy:W.value,onPress:we,onReset:Ae},null,8,["state","live","busy"])],64))]),se(Pt,{deck:i.value,state:b.value,live:r.value==="ready"&&h.value,cursor:K.value,open:P.value,disabled:y.value===0,"wake-lock-missing":ae.value,onOpen:Le,onClose:Me,onCursor:Pe,onGoto:De},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):k("",!0),a("dialog",{ref_key:"resetDialog",ref:Z,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Ke},[a("div",ca,[o[2]||(o[2]=a("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),o[3]||(o[3]=a("p",{id:"remote-reset-body",class:"remote-muted"}," Czas całości i wszystkich slajdów wróci do zera, a zegar ruszy przy następnej zmianie slajdu. ",-1)),a("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:He},"Zeruj zegar"),a("button",{ref_key:"resetCancel",ref:he,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:te},"Anuluj",512)])],512)],2))}}),ba=le(va,[["__scopeId","data-v-534bc4ac"]]);export{ba as default}; +/* empty css */import{d as oe,U as G,c as n,b as a,f as k,t as p,F as T,E as J,i as se,j as Ue,C,x as u,r as m,l as Fe,n as t,p as xe,Z as Re,s as fe,_ as Te,o as Ge,aH as Je,A as ne,aI as Xe,aJ as Qe,m as et,aM as tt}from"./index-C7U0oIvN.js";import{p as me}from"./presentations-CObEuepN.js";import{s as pe,f as je,g as ke,h as at,i as nt,j as st,k as ot,l as Ce,m as lt,o as it,q as rt,u as ct,D as ut,d as dt,R as vt}from"./remote-BmhCoAgl.js";import{_ as le}from"./_plugin-vue_export-helper-DlAUqK2U.js";const mt={class:"drawer"},ft=["id","aria-label"],pt={class:"sheet-head"},kt=["disabled"],yt={class:"sheet-title"},bt={class:"title"},wt={key:0,class:"subtitle"},ht=["disabled"],gt=["innerHTML"],zt={key:1,class:"empty"},_t=["innerHTML"],$t={key:1,class:"empty"},Tt=["data-current","aria-current","onClick"],jt={class:"num"},Ct={class:"row-title"},St={key:0,class:"tag"},xt={key:1,class:"now"},Rt={class:"list-foot"},Et={key:0,class:"hint"},Bt={class:"bar","aria-label":"Szuflady na telefonie"},Lt=["disabled","aria-expanded","aria-controls","onClick"],Mt=oe({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(l,{emit:S}){const s=l,r=S,i=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],_=u(()=>s.deck.slides.length),j=u(()=>at(s.deck,s.state,s.live,s.cursor)),$=u(()=>s.live&&s.state?s.state.number:s.deck.slides[pe(s.deck.slides,s.cursor)]?.number??0),z=u(()=>pe(s.deck.slides,s.cursor)),w=u(()=>s.live&&s.state?s.state.number:s.deck.slides[z.value]?.number??s.cursor),L=u(()=>{const f=s.live&&s.state?.special?"s":"";return`${w.value}${f}`});function d(f){return f?/]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const N=u(()=>d(j.value?.say_html)?je(j.value?.say_html??""):""),I=u(()=>d(j.value?.notes_html)?je(j.value?.notes_html??""):""),M=u(()=>s.open==="say"?`Powiedz · slajd ${w.value}`:s.open==="notes"?`Notatki · slajd ${w.value}`:"Slajdy"),x=u(()=>s.open==="slides"?"":s.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${z.value+1} z ${_.value}`),b=u(()=>!s.live&&(s.open==="say"||s.open==="notes")),V=u(()=>z.value>0),A=u(()=>z.value<_.value-1),h=u(()=>s.deck.slides.map(f=>({number:f.number,title:ke(f),special:!!f.special})));function H(f){s.disabled||(s.open===f?r("close"):r("open",f))}function q(f){const y=s.deck.slides[z.value+f];y&&r("cursor",y.number)}const R=m(null),B=m(null);return G([L,()=>s.open],()=>{R.value&&(R.value.scrollTop=0)}),G(()=>s.open,async f=>{if(f!=="slides")return;await Re(),B.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(f,y)=>{const X=Fe("router-link");return t(),n("div",mt,[l.open?(t(),n("section",{key:0,id:`remote-drawer-${l.open}`,class:"sheet","aria-label":M.value},[a("header",pt,[b.value?(t(),n("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!V.value,onClick:y[0]||(y[0]=v=>q(-1))}," ‹ ",8,kt)):k("",!0),a("div",yt,[a("p",bt,p(M.value),1),x.value?(t(),n("p",wt,p(x.value),1)):k("",!0)]),b.value?(t(),n("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!A.value,onClick:y[1]||(y[1]=v=>q(1))}," › ",8,ht)):k("",!0),a("button",{type:"button",class:"close-btn",onClick:y[2]||(y[2]=v=>r("close"))},"Zamknij")]),a("div",{ref_key:"body",ref:R,class:C(["sheet-body",{reading:l.open!=="slides"}])},[l.open==="say"?(t(),n(T,{key:0},[N.value?(t(),n("div",{key:0,class:"text",innerHTML:N.value},null,8,gt)):(t(),n("p",zt,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):l.open==="notes"?(t(),n(T,{key:1},[I.value?(t(),n("div",{key:0,class:"text",innerHTML:I.value},null,8,_t)):(t(),n("p",$t,"Brak notatek do tego slajdu."))],64)):(t(),n(T,{key:2},[a("ol",{ref_key:"list",ref:B,class:"list"},[(t(!0),n(T,null,J(h.value,v=>(t(),n("li",{key:v.number},[a("button",{type:"button",class:"row","data-current":v.number===$.value?"true":void 0,"aria-current":v.number===$.value?"true":void 0,onClick:ie=>r("goto",v.number)},[a("span",jt,p(v.number),1),a("span",Ct,p(v.title),1),v.special?(t(),n("span",St,"+ specjalny")):k("",!0),v.number===$.value?(t(),n("span",xt,"teraz")):k("",!0)],8,Tt)]))),128))],512),a("footer",Rt,[se(X,{class:"back-link",to:{name:"my-presentations"}},{default:Ue(()=>[...y[3]||(y[3]=[xe("Wróć do moich prezentacji",-1)])]),_:1}),l.wakeLockMissing?(t(),n("p",Et,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):k("",!0)])],64))],2)],8,ft)):k("",!0),a("nav",Bt,[(t(),n(T,null,J(i,v=>a("button",{key:v.kind,type:"button",class:C(["tab",{open:l.open===v.kind}]),disabled:l.disabled,"aria-expanded":l.open===v.kind?"true":"false","aria-controls":`remote-drawer-${v.kind}`,onClick:ie=>H(v.kind)},p(v.label),11,Lt)),64))])])}}}),Pt=le(Mt,[["__scopeId","data-v-9f920f42"]]),Dt={key:0,class:"eyebrow"},Nt={class:"grid nav"},It=["disabled","aria-busy","onClick"],qt={key:1,class:"grid fn"},Vt=["disabled","aria-pressed","aria-busy","onClick"],At={class:"label"},Ht=oe({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean}},emits:["press","reset"],setup(l,{emit:S}){const s=l,r=S,i=u(()=>nt(s.state,s.live)),_=u(()=>i.value.slice(0,2)),j=u(()=>i.value.slice(2));function $(w){return(s.busy[w.action]??0)>0}function z(w){w.enabled&&(w.action==="clock-reset"?r("reset"):r("press",w.action))}return(w,L)=>(t(),n("section",{class:C(["keys",{compact:l.compact}]),"aria-label":"Klawisze na komputerze"},[l.compact?k("",!0):(t(),n("p",Dt,"Klawisze na komputerze")),a("div",Nt,[(t(!0),n(T,null,J(_.value,d=>(t(),n("button",{key:d.action,type:"button",class:C(["key nav-key",d.action]),disabled:!d.enabled,"aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[d.action==="prev"?(t(),fe(Te,{key:0,class:"arrow",name:"arrow-left"})):k("",!0),a("span",null,p(d.label),1),d.action==="next"?(t(),fe(Te,{key:1,class:"arrow",name:"arrow-right"})):k("",!0)],10,It))),128))]),l.compact?k("",!0):(t(),n("div",qt,[(t(!0),n(T,null,J(j.value,d=>(t(),n("button",{key:d.action,type:"button",class:"key fn-key",disabled:!d.enabled,"aria-pressed":d.pressed===null?void 0:d.pressed?"true":"false","aria-busy":$(d)?"true":void 0,onClick:N=>z(d)},[a("span",At,p(d.label),1),a("kbd",null,p(d.kbd),1)],8,Vt))),128))]))],2))}}),Se=le(Ht,[["__scopeId","data-v-1934c940"]]),Kt={class:"top"},Ot={class:"row row-title"},Wt={class:"deck-title"},Zt={class:"row row-slide","aria-live":"polite"},Yt={class:"counter"},Ut={key:0,class:"slide-title"},Ft={key:1,class:"slide-title waiting"},Gt={class:"row row-chips","aria-label":"Na komputerze"},Jt={class:"row row-clock"},Xt={key:0,class:"idle"},Qt={key:0,class:"chip"},ea={key:2,class:"clock"},ta=oe({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(l){const S=l,s=u(()=>st(S.status));return(r,i)=>(t(),n("header",Kt,[a("div",Ot,[a("p",Wt,p(l.deckTitle),1),a("p",{class:C(["conn",{on:l.status==="live"}])},[i[0]||(i[0]=a("span",{class:"dot","aria-hidden":"true"},null,-1)),xe(p(s.value),1)],2)]),a("div",Zt,[a("p",Yt,p(l.counter),1),l.live?(t(),n("p",Ut,p(l.slideTitle),1)):(t(),n("p",Ft,"Czekam na wersję mówcy"))]),a("ul",Gt,[l.live?(t(!0),n(T,{key:0},J(l.chips,_=>(t(),n("li",{key:_,class:C(["chip",{khaki:_==="Specjalny"}])},p(_),3))),128)):k("",!0)]),a("div",Jt,[l.live&&l.clock&&l.clock.idle?(t(),n("p",Xt,"Zegar ruszy przy pierwszej zmianie slajdu")):l.live&&l.clock?(t(),n(T,{key:1},[a("p",{class:C(["clock",{paused:l.clock.paused}])},[i[2]||(i[2]=a("span",{class:"lbl"},"Slajd",-1)),a("b",{class:C({over:l.clock.slideOver})},p(l.clock.slide),3),i[3]||(i[3]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),i[4]||(i[4]=a("span",{class:"lbl"},"Całość",-1)),a("b",{class:C({over:l.clock.totalOver})},p(l.clock.total),3),l.clock.pace?(t(),n(T,{key:0},[i[1]||(i[1]=a("span",{class:"sep","aria-hidden":"true"},"·",-1)),a("span",{class:C(["pace",{late:l.clock.late}])},p(l.clock.pace),3)],64)):k("",!0)],2),l.clock.paused?(t(),n("span",Qt,"Pauza")):k("",!0)],64)):(t(),n("p",ea,[...i[5]||(i[5]=[a("b",null,"—",-1)])]))])]))}}),aa=le(ta,[["__scopeId","data-v-382e11de"]]),na={key:0,class:"remote-status remote-label"},sa={key:1,class:"remote-status"},oa={key:0,class:"remote-alert",role:"alert"},la={class:"remote-middle"},ia={key:0,class:"remote-notice"},ra={key:0,class:"remote-notice"},ca={class:"remote-dialog-body"},ua="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",da="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",F="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",va=oe({__name:"PresentationRemoteView",props:{slug:{}},setup(l){const S=l,s=et(),r=m("pending"),i=m(null),_=m("");let j=0,$=0,z=null,w="",L=0,d=0,N=0,I=!1,M=0,x=Ce();const b=m(null),V=m(0),A=m(Date.now()),h=m(!1),H=m("connecting"),q=m(!1),R=m(!1),B=m(!1),f=u(()=>B.value?"unavailable":h.value?"live":H.value==="connected"&&R.value?"waiting":q.value?"reconnecting":"connecting"),y=u(()=>i.value?.slides.length??0),X=u(()=>{const e=b.value;return!i.value||!e?0:pe(i.value.slides,e.number)}),v=u(()=>{const e=b.value;return h.value&&e?`${e.number} / ${e.total}`:`— / ${y.value}`}),ie=u(()=>{const e=b.value,o=i.value?.slides[X.value];return!e||!o?"":e.special&&o.special?ke(o.special):ke(o)}),Ee=u(()=>b.value?it(b.value):[]),Be=u(()=>{const e=b.value;return!i.value||!e?null:rt(ct(e,i.value.slides.map(o=>o.seconds),i.value.target_seconds,X.value,V.value,A.value))}),P=m(null),K=m(1);G(b,e=>{e&&!e.bye&&e.number>0&&(K.value=e.number)});function Le(e){y.value!==0&&(P.value=e)}function Me(){P.value=null}function Pe(e){K.value=e}function De(e){if(h.value){ue(),ce("goto",e),P.value=null;return}K.value=e,P.value="say"}function re(){A.value=Date.now(),h.value=x.live(A.value)}function Ne(e){const o=dt(e);!o||o.event!==vt||x.observe(o.payload,Date.now())&&(b.value=x.current(),V.value=x.receivedAt(),re(),o.payload.bye&&ee())}function Q(){j&&window.clearTimeout(j),j=0}const E=m("");let D=0;function ye(e,o=4e3){E.value=e,D&&window.clearTimeout(D),D=0,o>0&&(D=window.setTimeout(()=>{E.value="",D=0},o))}function O(){D&&window.clearTimeout(D),D=0,E.value=""}const W=m({});function be(e,o){const c=Math.max(0,(W.value[e]??0)+o);W.value={...W.value,[e]:c}}async function ce(e,o){const c={action:e,tab:x.actionTab()};o!==void 0&&(c.number=o),be(e,1);try{await me.remote(S.slug,c),E.value&&E.value!==F&&O()}catch(g){ye(lt(g instanceof ne?g.status:-1))}finally{be(e,-1)}}function ee(){R.value&&me.remote(S.slug,{action:"sync",tab:""}).catch(()=>{})}function Ie(){R.value=!0,B.value=!1,E.value===F&&O(),x.release(),ee()}function qe(e){H.value=e,e==="connected"?q.value=!0:R.value=!1}function Ve(e){if(R.value=!1,B.value=!0,e!==403||I){E.value===F&&O();return}I=!0,ye(F,0),M=window.setTimeout(()=>{M=0,z?.resubscribe()},ut)}function ue(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function we(e){h.value&&(ue(),ce(e))}const Z=m(null),he=m(null);function Ae(){if(!h.value)return;ue();const e=Z.value;e&&(e.open||e.showModal(),Re(()=>he.value?.focus()))}function te(){Z.value?.open&&Z.value.close()}function He(){te(),h.value&&ce("clock-reset")}function Ke(e){e.target===Z.value&&te()}let Y=null,de=!1;const ae=m(!1);async function ge(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ae.value=!0;return}if(!(Y&&!Y.released))try{const o=await e.request("screen");if(!de){o.release().catch(()=>{});return}Y=o,ae.value=!1}catch{ae.value=!0}}function Oe(){const e=Y;Y=null,e&&!e.released&&e.release().catch(()=>{})}function ze(){document.visibilityState==="visible"&&(ge(),ee())}function ve(){L+=1,z?.close(),z=null,w="",R.value=!1,H.value="connecting",q.value=!1,B.value=!1,I=!1,M&&window.clearTimeout(M),M=0,E.value===F&&O(),x=Ce(),b.value=null,V.value=0,re()}async function We(e){ve();const o=L;w=e;try{const c=()=>o===L,g=await tt(e,{onPublication:U=>{c()&&Ne(U)},onSubscribed:()=>{c()&&Ie()},onConnection:U=>{c()&&qe(U)},onDenied:U=>{c()&&Ve(U)},onUnavailable:()=>{c()&&(B.value=!0)}});if(o!==L){g.close();return}z=g}catch{o===L&&(B.value=!0)}}function Ze(){const e=r.value==="ready"?i.value?.remote_channel??"":"";if(e!==w){if(!e){ve();return}We(e)}}async function _e(e){const o=++$;Q(),r.value="pending",i.value=null,_.value="",j=window.setTimeout(()=>{o===$&&r.value==="pending"&&(r.value="loading")},200);try{const c=await me.speaker(e);if(o!==$)return;Q();const g=c.slides??[];i.value={...c,slides:g},Xe(e),K.value=g[0]?.number??1,P.value=null,document.title=c.title?`Pilot · ${c.title}`:"Pilot · BM II°",r.value=g.length===0?"empty":"ready"}catch(c){if(o!==$)return;if(Q(),c instanceof ne&&c.status===404){Qe(e),await s.replace({name:"my-presentations",query:{denied:"1"}});return}if(c instanceof ne&&c.status===401)return;_.value=c instanceof ne&&c.status===429?da:ua,r.value="error"}}function Ye(){_e(S.slug)}function $e(e,o,c){if(document.querySelector(`meta[data-deck-remote="${c}"]`))return;const g=document.createElement("meta");g.name=e,g.content=o,g.dataset.deckRemote=c,document.head.appendChild(g)}return G(()=>S.slug,e=>{_e(e)},{immediate:!0}),G([i,r],()=>{Ze()}),Ge(()=>{de=!0,document.documentElement.classList.add("deck-remote"),$e("robots","noindex","robots"),$e("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",ze),d=window.setInterval(()=>{document.visibilityState==="visible"&&ee()},ot),N=window.setInterval(re,1e3),ge()}),Je(()=>{de=!1,$+=1,Q(),O(),ve(),te(),Oe(),window.clearInterval(d),window.clearInterval(N),document.removeEventListener("visibilitychange",ze),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,o)=>(t(),n("main",{class:C(["remote",{"remote-page":r.value==="ready"||r.value==="empty","remote-drawer-open":r.value==="ready"&&P.value}])},[r.value==="loading"?(t(),n("p",na,"Wczytywanie pilota…")):r.value==="error"?(t(),n("div",sa,[a("p",null,p(_.value),1),a("button",{type:"button",class:"remote-retry",onClick:Ye},"Spróbuj ponownie")])):(r.value==="ready"||r.value==="empty")&&i.value?(t(),n(T,{key:2},[se(aa,{class:"remote-top","deck-title":i.value.title,status:r.value==="empty"?"waiting":f.value,live:r.value==="ready"&&h.value,counter:v.value,"slide-title":ie.value,chips:Ee.value,clock:Be.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),E.value?(t(),n("p",oa,p(E.value),1)):k("",!0),a("div",la,[r.value==="empty"?(t(),n("div",ia,[...o[0]||(o[0]=[a("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),a("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):P.value?(t(),fe(Se,{key:1,compact:"",state:b.value,live:h.value,busy:W.value,onPress:we},null,8,["state","live","busy"])):(t(),n(T,{key:2},[h.value?k("",!0):(t(),n("div",ra,[...o[1]||(o[1]=[a("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),a("p",{class:"remote-muted"}," Klawisze zadziałają, gdy wersja mówcy tej prezentacji będzie otwarta na komputerze. Powiedz i notatki możesz czytać już teraz. ",-1)])])),se(Se,{state:b.value,live:h.value,busy:W.value,onPress:we,onReset:Ae},null,8,["state","live","busy"])],64))]),se(Pt,{deck:i.value,state:b.value,live:r.value==="ready"&&h.value,cursor:K.value,open:P.value,disabled:y.value===0,"wake-lock-missing":ae.value,onOpen:Le,onClose:Me,onCursor:Pe,onGoto:De},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):k("",!0),a("dialog",{ref_key:"resetDialog",ref:Z,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Ke},[a("div",ca,[o[2]||(o[2]=a("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),o[3]||(o[3]=a("p",{id:"remote-reset-body",class:"remote-muted"}," Czas całości i wszystkich slajdów wróci do zera, a zegar ruszy przy następnej zmianie slajdu. ",-1)),a("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:He},"Zeruj zegar"),a("button",{ref_key:"resetCancel",ref:he,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:te},"Anuluj",512)])],512)],2))}}),ba=le(va,[["__scopeId","data-v-534bc4ac"]]);export{ba as default}; diff --git a/public/assets/PresentationSpeakerView-CJRi1NtO.js b/public/assets/PresentationSpeakerView-4ASJ9Fw7.js similarity index 97% rename from public/assets/PresentationSpeakerView-CJRi1NtO.js rename to public/assets/PresentationSpeakerView-4ASJ9Fw7.js index ed71395..a3c240b 100644 --- a/public/assets/PresentationSpeakerView-CJRi1NtO.js +++ b/public/assets/PresentationSpeakerView-4ASJ9Fw7.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SpeakerTools-BwNWkwwQ.js","assets/index-DwX0tlPb.js","assets/index-BM6lpb_3.css"])))=>i.map(i=>d[i]); -import{d as Be,U as ce,o as Ie,aH as Pe,s as de,j as ue,r as p,x as Ue,aI as Oe,A as N,aJ as He,n as pe,b as fe,e as Ve,f as qe,aK as Ze,m as Ke,aL as Ye,aM as Fe}from"./index-DwX0tlPb.js";import{p as _}from"./presentations-AE-pigbL.js";import{_ as Ge,r as Je}from"./DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js";import{n as Qe,C as We,c as Q,a as Xe,p as W,S as et,b as tt,D as nt,H as me,d as ot,R as at,t as it,r as rt,e as st}from"./remote-BmhCoAgl.js";/* empty css */const lt='.speak{display:none}.deck.speak-on .speak{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:22px;line-height:1.45}.notes:before{content:"Notatki · N"}.speak:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.speak:before{content:"Powiedz · P"}.srcs:before{content:"Źródła · Z"}.deck.speak-on #nav{bottom:50%}.deck.notes-on .notes.is-empty:after{content:"Brak notatek do tego slajdu.";opacity:.7}.deck.speak-on .speak.is-empty:after{content:"Brak tekstu do powiedzenia na tym slajdzie.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}#speaker-clock{position:static;display:inline-flex;gap:8px;align-items:center;font-family:var(--deck-mono);font-size:12px;line-height:1;color:var(--deck-ink-2);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:var(--deck-paper-2);border:1px solid var(--deck-rule);padding:4px 12px;cursor:pointer;user-select:none}.tools #speaker-clock{min-height:40px;padding:0 14px;background:var(--deck-paper);border-color:var(--deck-ink-2)}.tools-pilot{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;color:var(--deck-ink);white-space:nowrap}.tools-pilot.elsewhere{color:var(--deck-ink-2)}.tools-pilot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--deck-khaki)}#speaker-clock.floating{position:fixed;top:8px;left:14px;z-index:5}#speaker-clock b{display:inline-block;font-weight:700;font-size:20px;color:var(--deck-ink);font-variant-numeric:tabular-nums;letter-spacing:0;margin-right:6px;text-align:right}#speaker-clock .clk-slide,#speaker-clock .clk-total{min-width:6ch}#speaker-clock b.over{color:var(--deck-empire)}#speaker-clock .clk-pace{display:inline-block;min-width:18ch;text-transform:none;letter-spacing:0}#speaker-clock .clk-pace.late{color:var(--deck-empire)}#speaker-clock.paused b{opacity:.5}@media(hover:hover){.tools-show{opacity:0}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}}@media(hover:none){.tools-show{opacity:.55}}@media(max-width:900px)and (orientation:portrait){.speak{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);position:static;max-height:none}.speak.is-empty{display:none}.slide.title .speak,.slide.sec .speak{background:var(--deck-paper)}#speaker-clock{display:none}}.reading-close{display:none}@media(max-width:900px)and (orientation:portrait){.reading-close{display:flex;justify-content:flex-end;padding:16px 0}.reading-close button{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);min-height:44px;padding:0 16px;cursor:pointer}}@media print{#speaker-clock,.speak,.reading-close{display:none!important}}',ct="Sprawdź połączenie z internetem i spróbuj ponownie.",dt="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",gt=Be({__name:"PresentationSpeakerView",props:{slug:{}},setup(ke){const ge=Ze(()=>Ye(()=>import("./SpeakerTools-BwNWkwwQ.js"),__vite__mapDeps([0,1,2]))),f=ke,X=Ke(),l=p("pending"),c=p(null),b=p(""),ee=p(null);let j=0,m=0;const ve=Ue(()=>[c.value?.css??"",lt]),be={notes:"Notatki",say:"Powiedz",sources:"Źródła",specialLink:"Slajd specjalny (S)"},E=p(null),R=p({});let s=null,te=0,L=0;const B=[];function h(){E.value=s?.view()??null}function he(e,n){if(!e||!n){s=null,E.value=null;return}s=tt({budgets:e.slides.map(t=>t.seconds),targetSeconds:e.target_seconds,now:()=>Date.now()}),h()}function we(e){s?.seek(e),h()}function ye(e){s?.go(e),h()}function A(e){s&&(e==="pause"?s.pause():e==="clock"?s.toggleHidden():s.reset(),h(),Z())}const w=Qe(),I=p(null);let C=null,P="",U=0,i=Q(w),r=!1,O=!1,z=!1,ne=0,y=0,H=!1,x=0,T=0,k=0,S=!1,V=null,oe=!1;const u=Xe(xe,et);function g(){return Je(e=>window.matchMedia(e))}function q(e){return V?st(V,s?.view()??null,w,{...e,light:oe}):null}function ae(e){_.remoteState(f.slug,e).catch(()=>{})}function xe(){if(!r||!i.isActive()||g())return;const e=q();e&&ae(e)}function Z(){r&&i.isActive()&&u.call()}function D(){if(!r||g())return;const e=q({claim:!0});if(!e){z=!0;return}z=!1,ne=Date.now(),u.cancel(),ae(e)}function d(){const e=r?i.activeTab():null;let n=null;e===w?n=W(y,Date.now())?"active":null:e&&(n="elsewhere"),I.value!==n&&(I.value=n)}function K(){k&&window.clearTimeout(k),k=0}function Te(){k||!r||i.activeTab()!==null||g()||(k=window.setTimeout(()=>{k=0,!(!r||i.activeTab()!==null||g())&&D()},it(Math.random(),S)))}function Se(e){V=e,z?D():Z()}function _e(e){oe=e,Z()}function je(e){const n=ee.value;if(!n)return;if(e.action==="goto"){e.number!=null&&n.goToNumber(e.number);return}const t=rt(e.action);t&&n.runKey(t)}function Ee(e){const n=ot(e);if(n){if(n.event===at){i.observe(n.payload)&&u.flush(),i.activeTab()!==null&&(K(),S=!1),d();return}if(y=Date.now(),d(),n.payload.action==="sync"&&i.activeTab()===null){Te();return}if(!(g()||!i.shouldApply(n.payload))){if(n.payload.action==="sync"){u.flush();return}je(n.payload)}}}function Re(){r=!0,O?S&&W(y,Date.now())&&_.remote(f.slug,{action:"sync",tab:""}).catch(()=>{}):(O=!0,D()),d()}function Le(){r=!1,i.isActive()&&(S=!0),i=Q(w),K(),u.cancel(),d()}function $(){!r||i.isActive()||g()||Date.now()-nen===U;try{const a=await Fe(e,{onPublication:o=>{t()&&Ee(o)},onSubscribed:()=>{t()&&Re()},onConnection:o=>{!t()||o==="connected"||Le()},onDenied:o=>{t()&&(r=!1,d(),!(o!==403||H)&&(H=!0,x=window.setTimeout(()=>{x=0,t()&&C?.resubscribe()},nt)))},onUnavailable:()=>{t()&&(r=!1,d())}});if(!t()){a.close();return}C=a,T=window.setTimeout(ie,me)}catch{}}function Ce(){const e=l.value==="ready"?c.value?.remote_channel??"":"";if(e!==P){if(!e){F();return}Ae(e)}}function re(){window.close(),X.replace("/moje-prezentacje")}function M(){j&&window.clearTimeout(j),j=0}function se(){for(const e of B)URL.revokeObjectURL(e);B.length=0,R.value={}}function ze(e){const n=new Set,t=o=>{const v=/data-deck-image="([^"]+)"/g;for(let J=v.exec(o);J;J=v.exec(o))n.add(J[1])},a=o=>{t(o.body_html),t(o.say_html),t(o.notes_html),t(o.sources_html),o.special&&a(o.special)};for(const o of e.slides)a(o);return[...n]}async function De(e,n,t){await Promise.all(ze(e).map(async a=>{try{const o=await _.speakerImage(n,a);if(t!==L)return;const v=URL.createObjectURL(o);if(t!==L){URL.revokeObjectURL(v);return}B.push(v),R.value={...R.value,[a]:v}}catch{}}))}function $e(e,n){const t=e;return`${n?'':""}${t.body_html}`}function Me(e){return e.special?`Slajd specjalny do slajdu ${e.number}`:`Slajd ${e.number} z ${e.total}`}async function G(e){const n=++m;L=n,se(),M(),l.value="pending",c.value=null,b.value="",j=window.setTimeout(()=>{n===m&&l.value==="pending"&&(l.value="loading")},200);try{const t=await _.speaker(e);if(n!==m)return;M();const a=t.slides??[],o={...t,slides:a};c.value=o,Oe(e),document.title=t.title?`${t.title} · wersja prelegenta`:"Prezentacja · BM II°",l.value=a.length===0?"empty":"ready",a.length>0&&De(o,e,n)}catch(t){if(n!==m)return;if(M(),t instanceof N&&t.status===404){He(e),await X.replace({name:"my-presentations",query:{denied:"1"}});return}if(t instanceof N&&t.status===401)return;t instanceof N&&t.status===429?b.value=dt:t instanceof N&&t.message?b.value=t.message:b.value=ct,l.value="error"}}function Ne(){G(f.slug)}function le(e){e.persisted&&G(f.slug)}return ce(()=>f.slug,e=>{G(e)},{immediate:!0}),ce([c,l],()=>{he(c.value,l.value==="ready"),Ce()}),Ie(()=>{if(document.documentElement.classList.add("deck-speaker"),!document.querySelector('meta[data-deck-speaker="1"]')){const e=document.createElement("meta");e.name="robots",e.content="noindex",e.dataset.deckSpeaker="1",document.head.appendChild(e)}window.addEventListener("pageshow",le),window.addEventListener("pagehide",Y),window.addEventListener("keydown",$,!0),window.addEventListener("pointerdown",$,!0),te=window.setInterval(()=>{s?.tick(),h(),d()},250)}),Pe(()=>{m+=1,L=m,se(),M(),Y(),F(),window.clearInterval(te),window.removeEventListener("pageshow",le),window.removeEventListener("pagehide",Y),window.removeEventListener("keydown",$,!0),window.removeEventListener("pointerdown",$,!0),document.documentElement.classList.remove("deck-speaker"),document.querySelector('meta[data-deck-speaker="1"]')?.remove()}),(e,n)=>(pe(),de(Ge,{ref_key:"viewer",ref:ee,mode:"speaker",phase:l.value,deck:c.value,error:b.value,compose:$e,labels:be,announce:Me,"extra-css":ve.value,theme:c.value?.theme,images:R.value,onRetry:Ne,onPosition:we,onNavigate:ye,onClock:A,onSnapshot:Se,onScheme:_e},{tools:ue(t=>[E.value?(pe(),de(Ve(ge),{key:0,clock:E.value,panel:t.panel,special:t.special,"has-special":t.hasSpecial,"fullscreen-enabled":t.fullscreenEnabled,"fullscreen-on":t.fullscreenOn,"toolbar-hidden":t.toolbarHidden,"toggle-panel":t.togglePanel,"toggle-special":t.toggleSpecial,"toggle-toolbar":t.toggleToolbar,"toggle-fullscreen":t.toggleFullscreen,light:t.light,"toggle-scheme":t.toggleScheme,pilot:I.value,onPause:n[0]||(n[0]=a=>A("pause")),onReset:n[1]||(n[1]=a=>A("reset")),onToggleHidden:n[2]||(n[2]=a=>A("clock")),onClose:re},null,8,["clock","panel","special","has-special","fullscreen-enabled","fullscreen-on","toolbar-hidden","toggle-panel","toggle-special","toggle-toolbar","toggle-fullscreen","light","toggle-scheme","pilot"])):qe("",!0)]),"reading-close":ue(()=>[fe("div",{class:"reading-close"},[fe("button",{type:"button",onClick:re},"Zamknij")])]),_:1},8,["phase","deck","error","extra-css","theme","images"]))}});export{gt as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SpeakerTools-CNPhDdGp.js","assets/index-C7U0oIvN.js","assets/index-BM6lpb_3.css"])))=>i.map(i=>d[i]); +import{d as Be,U as ce,o as Ie,aH as Pe,s as de,j as ue,r as p,x as Ue,aI as Oe,A as N,aJ as He,n as pe,b as fe,e as Ve,f as qe,aK as Ze,m as Ke,aL as Ye,aM as Fe}from"./index-C7U0oIvN.js";import{p as _}from"./presentations-CObEuepN.js";import{_ as Ge,r as Je}from"./DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js";import{n as Qe,C as We,c as Q,a as Xe,p as W,S as et,b as tt,D as nt,H as me,d as ot,R as at,t as it,r as rt,e as st}from"./remote-BmhCoAgl.js";/* empty css */const lt='.speak{display:none}.deck.speak-on .speak{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:22px;line-height:1.45}.notes:before{content:"Notatki · N"}.speak:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.speak:before{content:"Powiedz · P"}.srcs:before{content:"Źródła · Z"}.deck.speak-on #nav{bottom:50%}.deck.notes-on .notes.is-empty:after{content:"Brak notatek do tego slajdu.";opacity:.7}.deck.speak-on .speak.is-empty:after{content:"Brak tekstu do powiedzenia na tym slajdzie.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}#speaker-clock{position:static;display:inline-flex;gap:8px;align-items:center;font-family:var(--deck-mono);font-size:12px;line-height:1;color:var(--deck-ink-2);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:var(--deck-paper-2);border:1px solid var(--deck-rule);padding:4px 12px;cursor:pointer;user-select:none}.tools #speaker-clock{min-height:40px;padding:0 14px;background:var(--deck-paper);border-color:var(--deck-ink-2)}.tools-pilot{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;color:var(--deck-ink);white-space:nowrap}.tools-pilot.elsewhere{color:var(--deck-ink-2)}.tools-pilot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--deck-khaki)}#speaker-clock.floating{position:fixed;top:8px;left:14px;z-index:5}#speaker-clock b{display:inline-block;font-weight:700;font-size:20px;color:var(--deck-ink);font-variant-numeric:tabular-nums;letter-spacing:0;margin-right:6px;text-align:right}#speaker-clock .clk-slide,#speaker-clock .clk-total{min-width:6ch}#speaker-clock b.over{color:var(--deck-empire)}#speaker-clock .clk-pace{display:inline-block;min-width:18ch;text-transform:none;letter-spacing:0}#speaker-clock .clk-pace.late{color:var(--deck-empire)}#speaker-clock.paused b{opacity:.5}@media(hover:hover){.tools-show{opacity:0}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}}@media(hover:none){.tools-show{opacity:.55}}@media(max-width:900px)and (orientation:portrait){.speak{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);position:static;max-height:none}.speak.is-empty{display:none}.slide.title .speak,.slide.sec .speak{background:var(--deck-paper)}#speaker-clock{display:none}}.reading-close{display:none}@media(max-width:900px)and (orientation:portrait){.reading-close{display:flex;justify-content:flex-end;padding:16px 0}.reading-close button{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);min-height:44px;padding:0 16px;cursor:pointer}}@media print{#speaker-clock,.speak,.reading-close{display:none!important}}',ct="Sprawdź połączenie z internetem i spróbuj ponownie.",dt="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",gt=Be({__name:"PresentationSpeakerView",props:{slug:{}},setup(ke){const ge=Ze(()=>Ye(()=>import("./SpeakerTools-CNPhDdGp.js"),__vite__mapDeps([0,1,2]))),f=ke,X=Ke(),l=p("pending"),c=p(null),b=p(""),ee=p(null);let j=0,m=0;const ve=Ue(()=>[c.value?.css??"",lt]),be={notes:"Notatki",say:"Powiedz",sources:"Źródła",specialLink:"Slajd specjalny (S)"},E=p(null),R=p({});let s=null,te=0,L=0;const B=[];function h(){E.value=s?.view()??null}function he(e,n){if(!e||!n){s=null,E.value=null;return}s=tt({budgets:e.slides.map(t=>t.seconds),targetSeconds:e.target_seconds,now:()=>Date.now()}),h()}function we(e){s?.seek(e),h()}function ye(e){s?.go(e),h()}function A(e){s&&(e==="pause"?s.pause():e==="clock"?s.toggleHidden():s.reset(),h(),Z())}const w=Qe(),I=p(null);let C=null,P="",U=0,i=Q(w),r=!1,O=!1,z=!1,ne=0,y=0,H=!1,x=0,T=0,k=0,S=!1,V=null,oe=!1;const u=Xe(xe,et);function g(){return Je(e=>window.matchMedia(e))}function q(e){return V?st(V,s?.view()??null,w,{...e,light:oe}):null}function ae(e){_.remoteState(f.slug,e).catch(()=>{})}function xe(){if(!r||!i.isActive()||g())return;const e=q();e&&ae(e)}function Z(){r&&i.isActive()&&u.call()}function D(){if(!r||g())return;const e=q({claim:!0});if(!e){z=!0;return}z=!1,ne=Date.now(),u.cancel(),ae(e)}function d(){const e=r?i.activeTab():null;let n=null;e===w?n=W(y,Date.now())?"active":null:e&&(n="elsewhere"),I.value!==n&&(I.value=n)}function K(){k&&window.clearTimeout(k),k=0}function Te(){k||!r||i.activeTab()!==null||g()||(k=window.setTimeout(()=>{k=0,!(!r||i.activeTab()!==null||g())&&D()},it(Math.random(),S)))}function Se(e){V=e,z?D():Z()}function _e(e){oe=e,Z()}function je(e){const n=ee.value;if(!n)return;if(e.action==="goto"){e.number!=null&&n.goToNumber(e.number);return}const t=rt(e.action);t&&n.runKey(t)}function Ee(e){const n=ot(e);if(n){if(n.event===at){i.observe(n.payload)&&u.flush(),i.activeTab()!==null&&(K(),S=!1),d();return}if(y=Date.now(),d(),n.payload.action==="sync"&&i.activeTab()===null){Te();return}if(!(g()||!i.shouldApply(n.payload))){if(n.payload.action==="sync"){u.flush();return}je(n.payload)}}}function Re(){r=!0,O?S&&W(y,Date.now())&&_.remote(f.slug,{action:"sync",tab:""}).catch(()=>{}):(O=!0,D()),d()}function Le(){r=!1,i.isActive()&&(S=!0),i=Q(w),K(),u.cancel(),d()}function $(){!r||i.isActive()||g()||Date.now()-nen===U;try{const a=await Fe(e,{onPublication:o=>{t()&&Ee(o)},onSubscribed:()=>{t()&&Re()},onConnection:o=>{!t()||o==="connected"||Le()},onDenied:o=>{t()&&(r=!1,d(),!(o!==403||H)&&(H=!0,x=window.setTimeout(()=>{x=0,t()&&C?.resubscribe()},nt)))},onUnavailable:()=>{t()&&(r=!1,d())}});if(!t()){a.close();return}C=a,T=window.setTimeout(ie,me)}catch{}}function Ce(){const e=l.value==="ready"?c.value?.remote_channel??"":"";if(e!==P){if(!e){F();return}Ae(e)}}function re(){window.close(),X.replace("/moje-prezentacje")}function M(){j&&window.clearTimeout(j),j=0}function se(){for(const e of B)URL.revokeObjectURL(e);B.length=0,R.value={}}function ze(e){const n=new Set,t=o=>{const v=/data-deck-image="([^"]+)"/g;for(let J=v.exec(o);J;J=v.exec(o))n.add(J[1])},a=o=>{t(o.body_html),t(o.say_html),t(o.notes_html),t(o.sources_html),o.special&&a(o.special)};for(const o of e.slides)a(o);return[...n]}async function De(e,n,t){await Promise.all(ze(e).map(async a=>{try{const o=await _.speakerImage(n,a);if(t!==L)return;const v=URL.createObjectURL(o);if(t!==L){URL.revokeObjectURL(v);return}B.push(v),R.value={...R.value,[a]:v}}catch{}}))}function $e(e,n){const t=e;return`${n?'':""}${t.body_html}`}function Me(e){return e.special?`Slajd specjalny do slajdu ${e.number}`:`Slajd ${e.number} z ${e.total}`}async function G(e){const n=++m;L=n,se(),M(),l.value="pending",c.value=null,b.value="",j=window.setTimeout(()=>{n===m&&l.value==="pending"&&(l.value="loading")},200);try{const t=await _.speaker(e);if(n!==m)return;M();const a=t.slides??[],o={...t,slides:a};c.value=o,Oe(e),document.title=t.title?`${t.title} · wersja prelegenta`:"Prezentacja · BM II°",l.value=a.length===0?"empty":"ready",a.length>0&&De(o,e,n)}catch(t){if(n!==m)return;if(M(),t instanceof N&&t.status===404){He(e),await X.replace({name:"my-presentations",query:{denied:"1"}});return}if(t instanceof N&&t.status===401)return;t instanceof N&&t.status===429?b.value=dt:t instanceof N&&t.message?b.value=t.message:b.value=ct,l.value="error"}}function Ne(){G(f.slug)}function le(e){e.persisted&&G(f.slug)}return ce(()=>f.slug,e=>{G(e)},{immediate:!0}),ce([c,l],()=>{he(c.value,l.value==="ready"),Ce()}),Ie(()=>{if(document.documentElement.classList.add("deck-speaker"),!document.querySelector('meta[data-deck-speaker="1"]')){const e=document.createElement("meta");e.name="robots",e.content="noindex",e.dataset.deckSpeaker="1",document.head.appendChild(e)}window.addEventListener("pageshow",le),window.addEventListener("pagehide",Y),window.addEventListener("keydown",$,!0),window.addEventListener("pointerdown",$,!0),te=window.setInterval(()=>{s?.tick(),h(),d()},250)}),Pe(()=>{m+=1,L=m,se(),M(),Y(),F(),window.clearInterval(te),window.removeEventListener("pageshow",le),window.removeEventListener("pagehide",Y),window.removeEventListener("keydown",$,!0),window.removeEventListener("pointerdown",$,!0),document.documentElement.classList.remove("deck-speaker"),document.querySelector('meta[data-deck-speaker="1"]')?.remove()}),(e,n)=>(pe(),de(Ge,{ref_key:"viewer",ref:ee,mode:"speaker",phase:l.value,deck:c.value,error:b.value,compose:$e,labels:be,announce:Me,"extra-css":ve.value,theme:c.value?.theme,images:R.value,onRetry:Ne,onPosition:we,onNavigate:ye,onClock:A,onSnapshot:Se,onScheme:_e},{tools:ue(t=>[E.value?(pe(),de(Ve(ge),{key:0,clock:E.value,panel:t.panel,special:t.special,"has-special":t.hasSpecial,"fullscreen-enabled":t.fullscreenEnabled,"fullscreen-on":t.fullscreenOn,"toolbar-hidden":t.toolbarHidden,"toggle-panel":t.togglePanel,"toggle-special":t.toggleSpecial,"toggle-toolbar":t.toggleToolbar,"toggle-fullscreen":t.toggleFullscreen,light:t.light,"toggle-scheme":t.toggleScheme,pilot:I.value,onPause:n[0]||(n[0]=a=>A("pause")),onReset:n[1]||(n[1]=a=>A("reset")),onToggleHidden:n[2]||(n[2]=a=>A("clock")),onClose:re},null,8,["clock","panel","special","has-special","fullscreen-enabled","fullscreen-on","toolbar-hidden","toggle-panel","toggle-special","toggle-toolbar","toggle-fullscreen","light","toggle-scheme","pilot"])):qe("",!0)]),"reading-close":ue(()=>[fe("div",{class:"reading-close"},[fe("button",{type:"button",onClick:re},"Zamknij")])]),_:1},8,["phase","deck","error","extra-css","theme","images"]))}});export{gt as default}; diff --git a/public/assets/ProfileView-B9o_fiMt.js b/public/assets/ProfileView-Cw1IkbJQ.js similarity index 98% rename from public/assets/ProfileView-B9o_fiMt.js rename to public/assets/ProfileView-Cw1IkbJQ.js index ebc9b2f..a513be6 100644 --- a/public/assets/ProfileView-B9o_fiMt.js +++ b/public/assets/ProfileView-Cw1IkbJQ.js @@ -1 +1 @@ -import{d as I,u as O,ae as W,an as A,aD as J,q,o as H,a as U,at as N,c as l,i as R,b as o,h as Z,t as r,f as d,w as k,v as w,e as s,F as T,E as F,p as K,r as c,aE as Q,n,aF as X}from"./index-DwX0tlPb.js";import{_ as Y}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{f as V}from"./forms-BEpVKSou.js";import{o as ee}from"./oauth-zzthF4BZ.js";const oe={class:"card","aria-labelledby":"dane-h"},se={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},te={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},ae={class:"grid-2"},le={class:"field"},ne={key:0,class:"error-text"},ie={class:"field"},re={key:0,class:"error-text"},de={class:"field"},ue={key:0,class:"error-text"},pe=["disabled"],me={id:"wybor",class:"card section","aria-labelledby":"wybor-h"},ce={key:0,class:"skeleton"},ye={key:1,class:"muted"},be={class:"eyebrow",style:{padding:"0","margin-bottom":"6px"}},ke=["name","value","checked","onChange"],we={key:0,class:"muted small",style:{margin:"4px 0 0"}},fe=["onClick"],ze={id:"kalendarz",class:"card section","aria-labelledby":"kalendarz-h"},ve={key:0,class:"notice error",role:"alert",style:{margin:"12px 0"}},ge={key:1,class:"skeleton",style:{"margin-top":"12px"}},_e={key:2,style:{"margin-top":"12px"}},he=["disabled"],xe={class:"field",style:{"margin-top":"12px"}},je={style:{display:"flex",gap:"8px"}},Pe=["value"],Ce={key:0,class:"muted small",style:{margin:"0"}},Ue={class:"check"},Te=["checked","disabled"],Ve={class:"check"},De=["checked","disabled"],Ne={class:"btn-row",style:{"margin-top":"12px"}},Ze=["disabled"],Fe=["disabled"],Ke={key:0,class:"card section","aria-labelledby":"microsoft-h"},Me=["disabled"],Be={class:"card section","aria-labelledby":"haslo-h"},Ee={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},Ge={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},Le={class:"field"},Se={key:0,class:"error-text"},$e={class:"field"},Ie={key:0,class:"error-text"},Oe={class:"field"},We=["disabled"],Ae={class:"section"},Ye=I({__name:"ProfileView",setup(Je){const f=O(),z=W(),v=A(),a=J(),x=q(),j=c(!1),g=c(!1);H(()=>{z.loadCourses(),a.load(),U.oauthProviders().then(i=>j.value=i.providers.some(e=>e.name==="microsoft")).catch(()=>j.value=!1)});async function M(){g.value=!0;try{const{link_ticket:i}=await U.oauthLinkTicket();window.location.assign(ee("microsoft",{action:"link",linkTicket:i,returnTo:"/profil"}))}catch(i){x.show(V(i).message||"Nie udało się połączyć konta Microsoft."),g.value=!1}}const D=c(null);async function B(){const i=a.feed?.url;i&&(await Q(i)?x.show("Skopiowano link do schowka."):(D.value?.select(),x.show("Nie udało się skopiować. Link jest zaznaczony: skopiuj go ręcznie.")))}function E(){window.confirm("Wygenerować nowy link? Stary przestanie działać i kalendarze, które go subskrybują, trzeba będzie dodać od nowa.")&&a.rotate()}function G(){window.confirm("Usunąć link do kalendarza? Kalendarze, które go subskrybują, przestaną się aktualizować.")&&a.remove()}function L(i){return new Date(i).toLocaleString("pl-PL",{day:"numeric",month:"long",hour:"2-digit",minute:"2-digit"})}const m=N({name:f.user?.name??"",surname:f.user?.surname??"",email:f.user?.email??""}),_=c(!1),u=c(null),P=c(!1);async function S(){_.value=!0,u.value=null,P.value=!1;try{await f.updateProfile({name:m.name.trim(),surname:m.surname.trim(),email:m.email.trim()}),P.value=!0}catch(i){u.value=V(i)}finally{_.value=!1}}const p=N({current_password:"",password:"",password_confirmation:""}),h=c(!1),y=c(null),C=c(!1);async function $(){h.value=!0,y.value=null,C.value=!1;try{await U.changePassword({...p}),C.value=!0,Object.assign(p,{current_password:"",password:"",password_confirmation:""})}catch(i){y.value=V(i)}finally{h.value=!1}}return(i,e)=>(n(),l("div",null,[R(Y,{eyebrow:"Konto",title:"Profil"}),o("section",oe,[e[14]||(e[14]=o("h2",{id:"dane-h",style:{"margin-bottom":"12px"}},"Dane",-1)),o("form",{onSubmit:Z(S,["prevent"]),novalidate:""},[u.value?.message?(n(),l("p",se,r(u.value.message),1)):d("",!0),P.value?(n(),l("p",te,"Zapisano.")):d("",!0),o("div",ae,[o("div",le,[e[11]||(e[11]=o("label",{for:"p-name"},"Imię",-1)),k(o("input",{id:"p-name","onUpdate:modelValue":e[0]||(e[0]=t=>m.name=t),type:"text",autocomplete:"given-name"},null,512),[[w,m.name]]),u.value?.fields.name?(n(),l("p",ne,r(u.value.fields.name),1)):d("",!0)]),o("div",ie,[e[12]||(e[12]=o("label",{for:"p-surname"},"Nazwisko",-1)),k(o("input",{id:"p-surname","onUpdate:modelValue":e[1]||(e[1]=t=>m.surname=t),type:"text",autocomplete:"family-name"},null,512),[[w,m.surname]]),u.value?.fields.surname?(n(),l("p",re,r(u.value.fields.surname),1)):d("",!0)])]),o("div",de,[e[13]||(e[13]=o("label",{for:"p-email"},"Adres e-mail",-1)),k(o("input",{id:"p-email","onUpdate:modelValue":e[2]||(e[2]=t=>m.email=t),type:"email",autocomplete:"email",inputmode:"email"},null,512),[[w,m.email]]),u.value?.fields.email?(n(),l("p",ue,r(u.value.fields.email),1)):d("",!0)]),o("button",{class:"btn primary",type:"submit",disabled:_.value},r(_.value?"Zapisywanie…":"Zapisz dane"),9,pe)],32)]),o("section",me,[e[15]||(e[15]=o("h2",{id:"wybor-h",style:{"margin-bottom":"6px"}},"Przedmioty do wyboru",-1)),e[16]||(e[16]=o("p",{class:"muted small"},"Z każdej grupy wybierasz jeden przedmiot. Pozostałe znikną z planu, pulpitu i list (można je pokazać przełącznikiem „Pokaż wszystkie”). Wybór zapamiętuje to urządzenie.",-1)),s(z).loaded.courses?s(z).electiveGroups.length?d("",!0):(n(),l("p",ye,"Nie ma teraz przedmiotów do wyboru.")):(n(),l("div",ce)),(n(!0),l(T,null,F(s(z).electiveGroups,t=>(n(),l("fieldset",{key:t.code,style:{border:"0",padding:"0",margin:"14px 0 0"}},[o("legend",be,r(s(X)(t.code)),1),(n(!0),l(T,null,F(t.options,b=>(n(),l("label",{key:b,class:"check"},[o("input",{type:"radio",name:`g-${t.code}`,value:b,checked:s(v).choices[t.code]===b,onChange:qe=>s(v).choose(t.code,b)},null,40,ke),o("span",null,r(b),1)]))),128)),s(v).choices[t.code]?(n(),l("button",{key:1,class:"linkish small",type:"button",onClick:b=>s(v).choose(t.code,null)},"Wyczyść wybór",8,fe)):(n(),l("p",we,"Jeszcze nie wybrano. Do tego czasu widać wszystkie alternatywy."))]))),128))]),o("section",ze,[e[23]||(e[23]=o("h2",{id:"kalendarz-h",style:{"margin-bottom":"6px"}},"Kalendarz Google / telefon",-1)),e[24]||(e[24]=o("p",{class:"muted small"}," Prywatny link do planu zajęć w formacie iCalendar. Dodaj go w Kalendarzu Google albo w telefonie, a zajęcia pojawią się obok Twoich wydarzeń. Plan uwzględnia przedmioty do wyboru wybrane wyżej. ",-1)),s(a).error?(n(),l("p",ve,r(s(a).error),1)):d("",!0),s(a).feed===void 0&&(s(a).loading||!s(a).error)?(n(),l("div",ge)):s(a).feed?(n(),l(T,{key:3},[o("div",xe,[e[17]||(e[17]=o("label",{for:"cal-url"},"Twój link (nie udostępniaj go)",-1)),o("div",je,[o("input",{id:"cal-url",ref_key:"urlInput",ref:D,class:"mono",type:"text",readonly:"",value:s(a).feed.url,style:{"font-size":"14px","min-width":"0"},onFocus:e[4]||(e[4]=t=>t.target.select())},null,40,Pe),o("button",{class:"btn",type:"button",onClick:B},"Kopiuj")]),s(a).feed.last_fetched_at?(n(),l("p",Ce,"Ostatnio pobrany przez kalendarz: "+r(L(s(a).feed.last_fetched_at))+".",1)):d("",!0)]),o("label",Ue,[o("input",{type:"checkbox",checked:s(a).feed.include_meetings,disabled:s(a).busy,onChange:e[5]||(e[5]=t=>s(a).save({include_meetings:t.target.checked}))},null,40,Te),e[18]||(e[18]=o("span",null,"Zjazdy jako wydarzenia całodniowe",-1))]),o("label",Ve,[o("input",{type:"checkbox",checked:s(a).feed.include_deadlines,disabled:s(a).busy,onChange:e[6]||(e[6]=t=>s(a).save({include_deadlines:t.target.checked}))},null,40,De),e[19]||(e[19]=o("span",null,"Terminy z terminarza",-1))]),o("div",Ne,[o("button",{class:"btn small ghost",type:"button",disabled:s(a).busy,onClick:E},"Wygeneruj nowy link",8,Ze),o("button",{class:"btn small miss",type:"button",disabled:s(a).busy,onClick:G},"Usuń link",8,Fe)]),e[20]||(e[20]=o("h3",{class:"eyebrow",style:{margin:"18px 0 6px"}},"Jak dodać",-1)),e[21]||(e[21]=o("ol",{class:"small",style:{margin:"0","padding-left":"20px",display:"grid",gap:"6px"}},[o("li",null,[o("b",null,"Kalendarz Google"),K(" (na komputerze, calendar.google.com): po lewej przy „Inne kalendarze” kliknij „+”, wybierz „Z adresu URL”, wklej link i kliknij „Dodaj kalendarz”. Na telefonie z Androidem kalendarz pojawi się sam po synchronizacji konta Google. ")]),o("li",null,[o("b",null,"iPhone / iPad"),K(": Ustawienia → Kalendarz → Konta → Dodaj konto → Inne → Dodaj subskrybowany kalendarz, wklej link i zapisz. ")])],-1)),e[22]||(e[22]=o("p",{class:"muted small",style:{margin:"10px 0 0"}}," Google odświeża subskrybowane kalendarze co kilka godzin, nie od razu: zmiana planu albo wyboru przedmiotów pojawi się w kalendarzu z opóźnieniem. ",-1))],64)):(n(),l("div",_e,[o("button",{class:"btn primary",type:"button",disabled:s(a).busy,onClick:e[3]||(e[3]=t=>s(a).create())},r(s(a).busy?"Tworzenie…":"Utwórz link do kalendarza"),9,he)]))]),j.value?(n(),l("section",Ke,[e[25]||(e[25]=o("h2",{id:"microsoft-h",style:{"margin-bottom":"6px"}},"Konto Microsoft 365",-1)),e[26]||(e[26]=o("p",{class:"muted small"}," Połącz konto uczelniane Microsoft 365, aby logować się przyciskiem „Zaloguj przez Microsoft 365”. ",-1)),o("button",{class:"btn",type:"button",style:{"margin-top":"12px"},disabled:g.value,onClick:M},r(g.value?"Przekierowanie…":"Połącz konto Microsoft"),9,Me)])):d("",!0),o("section",Be,[e[30]||(e[30]=o("h2",{id:"haslo-h",style:{"margin-bottom":"12px"}},"Zmiana hasła",-1)),o("form",{onSubmit:Z($,["prevent"]),novalidate:""},[y.value?.message?(n(),l("p",Ee,r(y.value.message),1)):d("",!0),C.value?(n(),l("p",Ge,"Hasło zostało zmienione.")):d("",!0),o("div",Le,[e[27]||(e[27]=o("label",{for:"pw-current"},"Obecne hasło",-1)),k(o("input",{id:"pw-current","onUpdate:modelValue":e[7]||(e[7]=t=>p.current_password=t),type:"password",autocomplete:"current-password"},null,512),[[w,p.current_password]]),y.value?.fields.current_password?(n(),l("p",Se,r(y.value.fields.current_password),1)):d("",!0)]),o("div",$e,[e[28]||(e[28]=o("label",{for:"pw-new"},"Nowe hasło (min. 8 znaków)",-1)),k(o("input",{id:"pw-new","onUpdate:modelValue":e[8]||(e[8]=t=>p.password=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password]]),y.value?.fields.password?(n(),l("p",Ie,r(y.value.fields.password),1)):d("",!0)]),o("div",Oe,[e[29]||(e[29]=o("label",{for:"pw-confirm"},"Powtórz nowe hasło",-1)),k(o("input",{id:"pw-confirm","onUpdate:modelValue":e[9]||(e[9]=t=>p.password_confirmation=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password_confirmation]])]),o("button",{class:"btn primary",type:"submit",disabled:h.value||!p.current_password||!p.password},r(h.value?"Zapisywanie…":"Zmień hasło"),9,We)],32)]),o("section",Ae,[o("button",{class:"btn miss",type:"button",onClick:e[10]||(e[10]=t=>s(f).logout())},"Wyloguj się")])]))}});export{Ye as default}; +import{d as I,u as O,ae as W,an as A,aD as J,q,o as H,a as U,at as N,c as l,i as R,b as o,h as Z,t as r,f as d,w as k,v as w,e as s,F as T,E as F,p as K,r as c,aE as Q,n,aF as X}from"./index-C7U0oIvN.js";import{_ as Y}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{f as V}from"./forms-L06yLYMm.js";import{o as ee}from"./oauth-zzthF4BZ.js";const oe={class:"card","aria-labelledby":"dane-h"},se={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},te={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},ae={class:"grid-2"},le={class:"field"},ne={key:0,class:"error-text"},ie={class:"field"},re={key:0,class:"error-text"},de={class:"field"},ue={key:0,class:"error-text"},pe=["disabled"],me={id:"wybor",class:"card section","aria-labelledby":"wybor-h"},ce={key:0,class:"skeleton"},ye={key:1,class:"muted"},be={class:"eyebrow",style:{padding:"0","margin-bottom":"6px"}},ke=["name","value","checked","onChange"],we={key:0,class:"muted small",style:{margin:"4px 0 0"}},fe=["onClick"],ze={id:"kalendarz",class:"card section","aria-labelledby":"kalendarz-h"},ve={key:0,class:"notice error",role:"alert",style:{margin:"12px 0"}},ge={key:1,class:"skeleton",style:{"margin-top":"12px"}},_e={key:2,style:{"margin-top":"12px"}},he=["disabled"],xe={class:"field",style:{"margin-top":"12px"}},je={style:{display:"flex",gap:"8px"}},Pe=["value"],Ce={key:0,class:"muted small",style:{margin:"0"}},Ue={class:"check"},Te=["checked","disabled"],Ve={class:"check"},De=["checked","disabled"],Ne={class:"btn-row",style:{"margin-top":"12px"}},Ze=["disabled"],Fe=["disabled"],Ke={key:0,class:"card section","aria-labelledby":"microsoft-h"},Me=["disabled"],Be={class:"card section","aria-labelledby":"haslo-h"},Ee={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},Ge={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},Le={class:"field"},Se={key:0,class:"error-text"},$e={class:"field"},Ie={key:0,class:"error-text"},Oe={class:"field"},We=["disabled"],Ae={class:"section"},Ye=I({__name:"ProfileView",setup(Je){const f=O(),z=W(),v=A(),a=J(),x=q(),j=c(!1),g=c(!1);H(()=>{z.loadCourses(),a.load(),U.oauthProviders().then(i=>j.value=i.providers.some(e=>e.name==="microsoft")).catch(()=>j.value=!1)});async function M(){g.value=!0;try{const{link_ticket:i}=await U.oauthLinkTicket();window.location.assign(ee("microsoft",{action:"link",linkTicket:i,returnTo:"/profil"}))}catch(i){x.show(V(i).message||"Nie udało się połączyć konta Microsoft."),g.value=!1}}const D=c(null);async function B(){const i=a.feed?.url;i&&(await Q(i)?x.show("Skopiowano link do schowka."):(D.value?.select(),x.show("Nie udało się skopiować. Link jest zaznaczony: skopiuj go ręcznie.")))}function E(){window.confirm("Wygenerować nowy link? Stary przestanie działać i kalendarze, które go subskrybują, trzeba będzie dodać od nowa.")&&a.rotate()}function G(){window.confirm("Usunąć link do kalendarza? Kalendarze, które go subskrybują, przestaną się aktualizować.")&&a.remove()}function L(i){return new Date(i).toLocaleString("pl-PL",{day:"numeric",month:"long",hour:"2-digit",minute:"2-digit"})}const m=N({name:f.user?.name??"",surname:f.user?.surname??"",email:f.user?.email??""}),_=c(!1),u=c(null),P=c(!1);async function S(){_.value=!0,u.value=null,P.value=!1;try{await f.updateProfile({name:m.name.trim(),surname:m.surname.trim(),email:m.email.trim()}),P.value=!0}catch(i){u.value=V(i)}finally{_.value=!1}}const p=N({current_password:"",password:"",password_confirmation:""}),h=c(!1),y=c(null),C=c(!1);async function $(){h.value=!0,y.value=null,C.value=!1;try{await U.changePassword({...p}),C.value=!0,Object.assign(p,{current_password:"",password:"",password_confirmation:""})}catch(i){y.value=V(i)}finally{h.value=!1}}return(i,e)=>(n(),l("div",null,[R(Y,{eyebrow:"Konto",title:"Profil"}),o("section",oe,[e[14]||(e[14]=o("h2",{id:"dane-h",style:{"margin-bottom":"12px"}},"Dane",-1)),o("form",{onSubmit:Z(S,["prevent"]),novalidate:""},[u.value?.message?(n(),l("p",se,r(u.value.message),1)):d("",!0),P.value?(n(),l("p",te,"Zapisano.")):d("",!0),o("div",ae,[o("div",le,[e[11]||(e[11]=o("label",{for:"p-name"},"Imię",-1)),k(o("input",{id:"p-name","onUpdate:modelValue":e[0]||(e[0]=t=>m.name=t),type:"text",autocomplete:"given-name"},null,512),[[w,m.name]]),u.value?.fields.name?(n(),l("p",ne,r(u.value.fields.name),1)):d("",!0)]),o("div",ie,[e[12]||(e[12]=o("label",{for:"p-surname"},"Nazwisko",-1)),k(o("input",{id:"p-surname","onUpdate:modelValue":e[1]||(e[1]=t=>m.surname=t),type:"text",autocomplete:"family-name"},null,512),[[w,m.surname]]),u.value?.fields.surname?(n(),l("p",re,r(u.value.fields.surname),1)):d("",!0)])]),o("div",de,[e[13]||(e[13]=o("label",{for:"p-email"},"Adres e-mail",-1)),k(o("input",{id:"p-email","onUpdate:modelValue":e[2]||(e[2]=t=>m.email=t),type:"email",autocomplete:"email",inputmode:"email"},null,512),[[w,m.email]]),u.value?.fields.email?(n(),l("p",ue,r(u.value.fields.email),1)):d("",!0)]),o("button",{class:"btn primary",type:"submit",disabled:_.value},r(_.value?"Zapisywanie…":"Zapisz dane"),9,pe)],32)]),o("section",me,[e[15]||(e[15]=o("h2",{id:"wybor-h",style:{"margin-bottom":"6px"}},"Przedmioty do wyboru",-1)),e[16]||(e[16]=o("p",{class:"muted small"},"Z każdej grupy wybierasz jeden przedmiot. Pozostałe znikną z planu, pulpitu i list (można je pokazać przełącznikiem „Pokaż wszystkie”). Wybór zapamiętuje to urządzenie.",-1)),s(z).loaded.courses?s(z).electiveGroups.length?d("",!0):(n(),l("p",ye,"Nie ma teraz przedmiotów do wyboru.")):(n(),l("div",ce)),(n(!0),l(T,null,F(s(z).electiveGroups,t=>(n(),l("fieldset",{key:t.code,style:{border:"0",padding:"0",margin:"14px 0 0"}},[o("legend",be,r(s(X)(t.code)),1),(n(!0),l(T,null,F(t.options,b=>(n(),l("label",{key:b,class:"check"},[o("input",{type:"radio",name:`g-${t.code}`,value:b,checked:s(v).choices[t.code]===b,onChange:qe=>s(v).choose(t.code,b)},null,40,ke),o("span",null,r(b),1)]))),128)),s(v).choices[t.code]?(n(),l("button",{key:1,class:"linkish small",type:"button",onClick:b=>s(v).choose(t.code,null)},"Wyczyść wybór",8,fe)):(n(),l("p",we,"Jeszcze nie wybrano. Do tego czasu widać wszystkie alternatywy."))]))),128))]),o("section",ze,[e[23]||(e[23]=o("h2",{id:"kalendarz-h",style:{"margin-bottom":"6px"}},"Kalendarz Google / telefon",-1)),e[24]||(e[24]=o("p",{class:"muted small"}," Prywatny link do planu zajęć w formacie iCalendar. Dodaj go w Kalendarzu Google albo w telefonie, a zajęcia pojawią się obok Twoich wydarzeń. Plan uwzględnia przedmioty do wyboru wybrane wyżej. ",-1)),s(a).error?(n(),l("p",ve,r(s(a).error),1)):d("",!0),s(a).feed===void 0&&(s(a).loading||!s(a).error)?(n(),l("div",ge)):s(a).feed?(n(),l(T,{key:3},[o("div",xe,[e[17]||(e[17]=o("label",{for:"cal-url"},"Twój link (nie udostępniaj go)",-1)),o("div",je,[o("input",{id:"cal-url",ref_key:"urlInput",ref:D,class:"mono",type:"text",readonly:"",value:s(a).feed.url,style:{"font-size":"14px","min-width":"0"},onFocus:e[4]||(e[4]=t=>t.target.select())},null,40,Pe),o("button",{class:"btn",type:"button",onClick:B},"Kopiuj")]),s(a).feed.last_fetched_at?(n(),l("p",Ce,"Ostatnio pobrany przez kalendarz: "+r(L(s(a).feed.last_fetched_at))+".",1)):d("",!0)]),o("label",Ue,[o("input",{type:"checkbox",checked:s(a).feed.include_meetings,disabled:s(a).busy,onChange:e[5]||(e[5]=t=>s(a).save({include_meetings:t.target.checked}))},null,40,Te),e[18]||(e[18]=o("span",null,"Zjazdy jako wydarzenia całodniowe",-1))]),o("label",Ve,[o("input",{type:"checkbox",checked:s(a).feed.include_deadlines,disabled:s(a).busy,onChange:e[6]||(e[6]=t=>s(a).save({include_deadlines:t.target.checked}))},null,40,De),e[19]||(e[19]=o("span",null,"Terminy z terminarza",-1))]),o("div",Ne,[o("button",{class:"btn small ghost",type:"button",disabled:s(a).busy,onClick:E},"Wygeneruj nowy link",8,Ze),o("button",{class:"btn small miss",type:"button",disabled:s(a).busy,onClick:G},"Usuń link",8,Fe)]),e[20]||(e[20]=o("h3",{class:"eyebrow",style:{margin:"18px 0 6px"}},"Jak dodać",-1)),e[21]||(e[21]=o("ol",{class:"small",style:{margin:"0","padding-left":"20px",display:"grid",gap:"6px"}},[o("li",null,[o("b",null,"Kalendarz Google"),K(" (na komputerze, calendar.google.com): po lewej przy „Inne kalendarze” kliknij „+”, wybierz „Z adresu URL”, wklej link i kliknij „Dodaj kalendarz”. Na telefonie z Androidem kalendarz pojawi się sam po synchronizacji konta Google. ")]),o("li",null,[o("b",null,"iPhone / iPad"),K(": Ustawienia → Kalendarz → Konta → Dodaj konto → Inne → Dodaj subskrybowany kalendarz, wklej link i zapisz. ")])],-1)),e[22]||(e[22]=o("p",{class:"muted small",style:{margin:"10px 0 0"}}," Google odświeża subskrybowane kalendarze co kilka godzin, nie od razu: zmiana planu albo wyboru przedmiotów pojawi się w kalendarzu z opóźnieniem. ",-1))],64)):(n(),l("div",_e,[o("button",{class:"btn primary",type:"button",disabled:s(a).busy,onClick:e[3]||(e[3]=t=>s(a).create())},r(s(a).busy?"Tworzenie…":"Utwórz link do kalendarza"),9,he)]))]),j.value?(n(),l("section",Ke,[e[25]||(e[25]=o("h2",{id:"microsoft-h",style:{"margin-bottom":"6px"}},"Konto Microsoft 365",-1)),e[26]||(e[26]=o("p",{class:"muted small"}," Połącz konto uczelniane Microsoft 365, aby logować się przyciskiem „Zaloguj przez Microsoft 365”. ",-1)),o("button",{class:"btn",type:"button",style:{"margin-top":"12px"},disabled:g.value,onClick:M},r(g.value?"Przekierowanie…":"Połącz konto Microsoft"),9,Me)])):d("",!0),o("section",Be,[e[30]||(e[30]=o("h2",{id:"haslo-h",style:{"margin-bottom":"12px"}},"Zmiana hasła",-1)),o("form",{onSubmit:Z($,["prevent"]),novalidate:""},[y.value?.message?(n(),l("p",Ee,r(y.value.message),1)):d("",!0),C.value?(n(),l("p",Ge,"Hasło zostało zmienione.")):d("",!0),o("div",Le,[e[27]||(e[27]=o("label",{for:"pw-current"},"Obecne hasło",-1)),k(o("input",{id:"pw-current","onUpdate:modelValue":e[7]||(e[7]=t=>p.current_password=t),type:"password",autocomplete:"current-password"},null,512),[[w,p.current_password]]),y.value?.fields.current_password?(n(),l("p",Se,r(y.value.fields.current_password),1)):d("",!0)]),o("div",$e,[e[28]||(e[28]=o("label",{for:"pw-new"},"Nowe hasło (min. 8 znaków)",-1)),k(o("input",{id:"pw-new","onUpdate:modelValue":e[8]||(e[8]=t=>p.password=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password]]),y.value?.fields.password?(n(),l("p",Ie,r(y.value.fields.password),1)):d("",!0)]),o("div",Oe,[e[29]||(e[29]=o("label",{for:"pw-confirm"},"Powtórz nowe hasło",-1)),k(o("input",{id:"pw-confirm","onUpdate:modelValue":e[9]||(e[9]=t=>p.password_confirmation=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password_confirmation]])]),o("button",{class:"btn primary",type:"submit",disabled:h.value||!p.current_password||!p.password},r(h.value?"Zapisywanie…":"Zmień hasło"),9,We)],32)]),o("section",Ae,[o("button",{class:"btn miss",type:"button",onClick:e[10]||(e[10]=t=>s(f).logout())},"Wyloguj się")])]))}});export{Ye as default}; diff --git a/public/assets/QuizView-6nKAWJcm.js b/public/assets/QuizView-V5rbG-HP.js similarity index 97% rename from public/assets/QuizView-6nKAWJcm.js rename to public/assets/QuizView-V5rbG-HP.js index c8863c5..bf1d13a 100644 --- a/public/assets/QuizView-6nKAWJcm.js +++ b/public/assets/QuizView-V5rbG-HP.js @@ -1 +1 @@ -var ne=Object.defineProperty;var le=(m,o,n)=>o in m?ne(m,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):m[o]=n;var c=(m,o,n)=>le(m,typeof o!="symbol"?o+"":o,n);import{_ as oe}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as ie}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{q,_ as re}from"./quizzes-BlBom-oJ.js";import{d as ue,o as de,V as ce,c as i,i as S,j as B,r as v,ap as I,n as r,F as k,p as _,t as l,f as h,b as e,E as R,H as ve,C as P,x,Z as he,ag as pe,l as ye}from"./index-DwX0tlPb.js";function me(m,o=Math.random){const n=m.slice();for(let p=n.length-1;p>0;p--){const f=Math.floor(o()*(p+1));[n[p],n[f]]=[n[f],n[p]]}return n}class fe{constructor(o,n=5,p=Math.random){c(this,"cards");c(this,"roundSize");c(this,"rng");c(this,"pool",[]);c(this,"round",[]);c(this,"cur",0);c(this,"roundMarks",[]);c(this,"marks",{});c(this,"order",[]);c(this,"review",!1);c(this,"phase","card");this.cards=new Map(o.map(f=>[f.id,f])),this.roundSize=Math.max(1,n),this.rng=p,this.reset()}reset(){this.marks={},this.order=[],this.pool=[...this.cards.keys()],this.draw()}draw(){if(this.review=!1,this.pool.length===0){this.round=[],this.roundMarks=[],this.cur=0,this.phase="final";return}const o=[];for(;o.lengthnull),this.cur=0,this.phase="card"}get current(){const o=this.round[this.cur];return o===void 0?null:this.cards.get(o)??null}get isLastInRound(){return this.cur===this.round.length-1}get answeredCount(){return this.order.length}get remaining(){return this.pool.length}get total(){return this.cards.size}mark(o){const n=this.round[this.cur];n===void 0||this.phase!=="card"||(this.roundMarks[this.cur]=o,n in this.marks||this.order.push(n),this.marks[n]=o)}next(){this.phase==="card"&&(this.cur++,this.cur>=this.round.length&&(this.phase=this.review||this.pool.length===0?"final":"round"))}finish(){this.phase="final"}ids(o){return this.order.filter(n=>this.marks[n]===o)}get missed(){return this.ids("n")}get known(){return this.ids("y")}get tally(){return{y:this.known.length,n:this.missed.length}}startReview(){const o=this.missed;o.length!==0&&(this.review=!0,this.startRound(me(o,this.rng)))}}const ge={key:0,class:"muted"},ke={class:"card accent","aria-labelledby":"start-h"},_e={class:"small muted"},we={key:0,class:"chips wrap",role:"group","aria-label":"Kategoria"},be=["aria-pressed"],ze=["aria-pressed","onClick"],xe={class:"btn-row",style:{"margin-top":"12px"}},Ce=["disabled"],Me={key:1,class:"section","aria-labelledby":"hist-h"},je={class:"card"},qe={class:"quiz-bar"},Ne={class:"score"},$e={class:"y"},We={class:"n"},Re={class:"count"},Se={class:"btn-row"},Le=["disabled"],Ze=["disabled"],Be={class:"step","aria-live":"polite"},Pe={key:0},Ve={key:1,class:"qcard"},Te={class:"q"},De={key:1,class:"answer","aria-live":"polite"},Ee={class:"qactions"},Ke=["aria-pressed","disabled"],Qe=["aria-pressed","disabled"],He=["disabled"],Ae={key:2,class:"error-text",role:"alert"},Fe={key:2,class:"qcard sum"},Ie={class:"tag"},Oe={class:"qactions"},Ue={key:3,class:"qcard sum"},Ge={class:"qactions",style:{margin:"0 0 18px"}},Je={key:0,class:"grp miss"},Xe={class:"tag"},Ye={key:1,class:"grp ok"},et={class:"tag"},tt={key:2,class:"muted small mono",style:{margin:"14px 0 0"}},rt=ue({__name:"QuizView",props:{slug:{}},setup(m){const o=m,n=v(null),p=v(""),f=v([]),y=v(null),d=v(null),g=v(null),w=v(!1),N=v({}),C=v(!1),$=v(""),b=v(null),V=v(null);async function T(){p.value="";try{n.value=await q.quiz(o.slug),D()}catch(t){p.value=I(t)}}async function D(){try{f.value=(await q.attempts(o.slug)).data}catch{}}de(T),ce(()=>{g.value&&!w.value&&d.value?.answeredCount&&q.finish(g.value.id).catch(()=>{})});const E=x(()=>{const t=new Map;for(const a of n.value?.questions??[])a.category&&t.set(a.category,(t.get(a.category)??0)+1);return[...t].sort(([a],[M])=>a.localeCompare(M,"pl"))}),K=x(()=>(n.value?.questions??[]).filter(t=>!y.value||t.category===y.value).length);function O(){const t=(n.value?.questions??[]).filter(a=>a.type==="self_check"&&(!y.value||a.category===y.value)).map(a=>({id:a.id,text:a.text,category:a.category,answer:a.answer_text??""}));d.value=new fe(t,n.value?.round_size??5),g.value=null,w.value=!1,N.value={},$.value="",b.value=null}async function U(){return g.value||(g.value=await q.start(o.slug,y.value),w.value=!1),g.value}async function Q(t){const a=d.value,M=a?.current;if(!(!a||!M||C.value)){C.value=!0,$.value="";try{const u=await U();await q.answer(u.id,{question_id:M.id,known:t==="y"}),a.mark(t),await he(),V.value?.focus()}catch(u){$.value=`Nie udało się zapisać odpowiedzi. ${I(u)}`}finally{C.value=!1}}}function G(){const t=d.value?.current?.id;t!==void 0&&(N.value={...N.value,[t]:!0})}function J(){const t=d.value;t&&(t.next(),t.phase==="final"&&W())}function H(){d.value?.draw(),d.value?.phase==="final"&&W()}function A(){d.value?.finish(),W()}async function W(){const t=g.value;if(!(!t||w.value)){w.value=!0;try{b.value=await q.finish(t.id)}catch{}D()}}function X(){const t=d.value;t&&(t.startReview(),g.value=null,w.value=!1,b.value=null)}function Y(){d.value?.reset(),g.value=null,w.value=!1,N.value={},b.value=null,d.value?.phase==="final"&&W()}function ee(){W(),d.value=null}const s=x(()=>d.value),z=x(()=>s.value?.current??null),L=x(()=>z.value?s.value?.roundMarks[s.value.cur]??null:null),F=t=>s.value?.cards.get(t)?.answer??"",te=t=>s.value?.roundMarks[t]??(t===s.value?.cur?"cur":""),se=x(()=>{const t=s.value;return t?t.isLastInRound?t.review?"Wynik powtórki":t.remaining?"Koniec rundy":"Podsumowanie":"Dalej":""}),Z=t=>pe(t,"pytanie","pytania","pytań"),ae=x(()=>{const t=s.value;return t?t.phase==="round"?"Koniec rundy":t.phase==="final"?t.review?"Wynik po powtórce":t.remaining?"Podsumowanie sesji":"Cała pula za Tobą":`${t.review?"Powtórka · ":""}Pytanie ${t.cur+1} z ${t.round.length}`:""});return(t,a)=>{const M=ye("router-link");return r(),i("div",null,[S(ie,{ready:!!n.value,error:p.value,onRetry:a[3]||(a[3]=u=>T())},{default:B(()=>[n.value?(r(),i(k,{key:0},[S(oe,{eyebrow:"Quiz",title:n.value.title},{default:B(()=>[S(M,{class:"btn small ghost",to:"/quizy"},{default:B(()=>[...a[4]||(a[4]=[_("← Quizy",-1)])]),_:1})]),_:1},8,["title"]),s.value?(r(),i(k,{key:1},[e("div",qe,[e("div",null,[e("div",Ne,[e("span",$e,[a[7]||(a[7]=_("Wiem ",-1)),e("b",null,l(s.value.tally.y),1)]),e("span",We,[a[8]||(a[8]=_("Nie wiem ",-1)),e("b",null,l(s.value.tally.n),1)])]),e("span",Re,[_(l(Z(s.value.total))+" w puli · "+l(s.value.remaining)+" jeszcze nie padło",1),y.value?(r(),i(k,{key:0},[_(" · "+l(y.value),1)],64)):h("",!0)])]),e("div",Se,[e("button",{class:"btn small",type:"button",disabled:s.value.phase==="final",onClick:H},"Losuj "+l(n.value.round_size??5)+" nowych",9,Le),e("button",{class:"btn small primary",type:"button",disabled:s.value.answeredCount===0||s.value.phase==="final",onClick:A},"Zakończ",8,Ze)])]),s.value.phase!=="final"?(r(),i("div",{key:0,class:"round-progress",style:ve({gridTemplateColumns:`repeat(${s.value.round.length}, 1fr)`}),"aria-hidden":"true"},[(r(!0),i(k,null,R(s.value.round,(u,j)=>(r(),i("span",{key:j,class:P(te(j))},null,2))),128))],4)):h("",!0),e("div",Be,[e("span",null,l(ae.value),1),s.value.phase==="card"&&z.value?.category?(r(),i("span",Pe,l(z.value.category),1)):h("",!0)]),s.value.phase==="card"&&z.value?(r(),i("div",Ve,[e("p",Te,l(z.value.text),1),N.value[z.value.id]?(r(),i("div",De,[a[9]||(a[9]=e("span",{class:"tag"},"Odpowiedź",-1)),_(" "+l(z.value.answer),1)])):(r(),i("button",{key:0,class:"reveal",type:"button",onClick:G},"odpowiedź")),e("div",Ee,[e("button",{class:"btn yes",type:"button","aria-pressed":L.value==="y",disabled:C.value,onClick:a[1]||(a[1]=u=>Q("y"))},"Wiem!",8,Ke),e("button",{class:"btn no",type:"button","aria-pressed":L.value==="n",disabled:C.value,onClick:a[2]||(a[2]=u=>Q("n"))},"Nie wiem",8,Qe),e("button",{ref_key:"nextBtn",ref:V,class:"btn primary next",type:"button",disabled:!L.value||C.value,onClick:J},l(se.value),9,He)]),$.value?(r(),i("p",Ae,l($.value),1)):h("",!0)])):s.value.phase==="round"?(r(),i("div",Fe,[e("h2",null,"Wiem "+l(s.value.roundMarks.filter(u=>u==="y").length)+" z "+l(s.value.round.length),1),a[10]||(a[10]=e("p",null,"Pytania „Nie wiem” trafiają do powtórki. Zbierzesz je przyciskiem „Zakończ”.",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.round,(u,j)=>(r(),i("li",{key:u,class:P(s.value.roundMarks[j])},[e("span",Ie,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text)+" ",1),e("small",null,l(F(u)),1)],2))),128))]),e("div",Oe,[e("button",{class:"btn primary",type:"button",onClick:H},"Losuj "+l(n.value.round_size??5)+" nowych",1),e("button",{class:"btn",type:"button",onClick:A},"Zakończ")])])):(r(),i("div",Ue,[e("h2",null,"Wiem "+l(s.value.known.length)+" z "+l(s.value.answeredCount),1),e("p",null,l(s.value.missed.length?`Do powtórki: ${s.value.missed.length}.`:s.value.answeredCount?"Wszystko umiesz. Nie ma nic do powtórki.":"Nie udzielono żadnej odpowiedzi."),1),e("div",Ge,[s.value.missed.length?(r(),i("button",{key:0,class:"btn primary",type:"button",onClick:X},"Powtórz "+l(Z(s.value.missed.length)),1)):h("",!0),e("button",{class:P(["btn",{primary:!s.value.missed.length}]),type:"button",onClick:Y},"Nowa sesja",2),e("button",{class:"btn ghost",type:"button",onClick:ee},"Wróć do quizu")]),s.value.missed.length?(r(),i("div",Je,[a[11]||(a[11]=e("h3",null,"Nie wiem",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.missed,u=>(r(),i("li",{key:u,class:"n"},[e("span",Xe,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text)+" ",1),e("small",null,l(F(u)),1)]))),128))])])):h("",!0),s.value.known.length?(r(),i("div",Ye,[a[12]||(a[12]=e("h3",null,"Wiem",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.known,u=>(r(),i("li",{key:u,class:"y"},[e("span",et,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text),1)]))),128))])])):h("",!0),b.value?(r(),i("p",tt,"Zapisano w historii: "+l(Math.round(b.value.score_points))+"/"+l(Math.round(b.value.max_points)),1)):h("",!0)]))],64)):(r(),i(k,{key:0},[n.value.description?(r(),i("p",ge,l(n.value.description),1)):h("",!0),e("section",ke,[a[5]||(a[5]=e("h2",{id:"start-h",style:{"margin-bottom":"8px"}},"Nowa sesja",-1)),e("p",_e,"Rundy po "+l(n.value.round_size??5)+" losowych pytań, które jeszcze nie padły. Każdą odpowiedź zapisujemy na koncie.",1),E.value.length?(r(),i("div",we,[e("button",{class:"chip",type:"button","aria-pressed":y.value===null,onClick:a[0]||(a[0]=u=>y.value=null)},"Wszystkie",8,be),(r(!0),i(k,null,R(E.value,([u,j])=>(r(),i("button",{key:u,class:"chip",type:"button","aria-pressed":y.value===u,onClick:st=>y.value=u},l(u)+" · "+l(j),9,ze))),128))])):h("",!0),e("div",xe,[e("button",{class:"btn primary",type:"button",disabled:K.value===0,onClick:O},"Zacznij · "+l(Z(K.value)),9,Ce)])]),f.value.length?(r(),i("section",Me,[a[6]||(a[6]=e("div",{class:"section-head"},[e("h2",{id:"hist-h"},"Historia podejść")],-1)),e("div",je,[S(re,{attempts:f.value},null,8,["attempts"])])])):h("",!0)],64))],64)):h("",!0)]),_:1},8,["ready","error"])])}}});export{rt as default}; +var ne=Object.defineProperty;var le=(m,o,n)=>o in m?ne(m,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):m[o]=n;var c=(m,o,n)=>le(m,typeof o!="symbol"?o+"":o,n);import{_ as oe}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as ie}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{q,_ as re}from"./quizzes-ClZx_Cui.js";import{d as ue,o as de,V as ce,c as i,i as S,j as B,r as v,ap as I,n as r,F as k,p as _,t as l,f as h,b as e,E as R,H as ve,C as P,x,Z as he,ag as pe,l as ye}from"./index-C7U0oIvN.js";function me(m,o=Math.random){const n=m.slice();for(let p=n.length-1;p>0;p--){const f=Math.floor(o()*(p+1));[n[p],n[f]]=[n[f],n[p]]}return n}class fe{constructor(o,n=5,p=Math.random){c(this,"cards");c(this,"roundSize");c(this,"rng");c(this,"pool",[]);c(this,"round",[]);c(this,"cur",0);c(this,"roundMarks",[]);c(this,"marks",{});c(this,"order",[]);c(this,"review",!1);c(this,"phase","card");this.cards=new Map(o.map(f=>[f.id,f])),this.roundSize=Math.max(1,n),this.rng=p,this.reset()}reset(){this.marks={},this.order=[],this.pool=[...this.cards.keys()],this.draw()}draw(){if(this.review=!1,this.pool.length===0){this.round=[],this.roundMarks=[],this.cur=0,this.phase="final";return}const o=[];for(;o.lengthnull),this.cur=0,this.phase="card"}get current(){const o=this.round[this.cur];return o===void 0?null:this.cards.get(o)??null}get isLastInRound(){return this.cur===this.round.length-1}get answeredCount(){return this.order.length}get remaining(){return this.pool.length}get total(){return this.cards.size}mark(o){const n=this.round[this.cur];n===void 0||this.phase!=="card"||(this.roundMarks[this.cur]=o,n in this.marks||this.order.push(n),this.marks[n]=o)}next(){this.phase==="card"&&(this.cur++,this.cur>=this.round.length&&(this.phase=this.review||this.pool.length===0?"final":"round"))}finish(){this.phase="final"}ids(o){return this.order.filter(n=>this.marks[n]===o)}get missed(){return this.ids("n")}get known(){return this.ids("y")}get tally(){return{y:this.known.length,n:this.missed.length}}startReview(){const o=this.missed;o.length!==0&&(this.review=!0,this.startRound(me(o,this.rng)))}}const ge={key:0,class:"muted"},ke={class:"card accent","aria-labelledby":"start-h"},_e={class:"small muted"},we={key:0,class:"chips wrap",role:"group","aria-label":"Kategoria"},be=["aria-pressed"],ze=["aria-pressed","onClick"],xe={class:"btn-row",style:{"margin-top":"12px"}},Ce=["disabled"],Me={key:1,class:"section","aria-labelledby":"hist-h"},je={class:"card"},qe={class:"quiz-bar"},Ne={class:"score"},$e={class:"y"},We={class:"n"},Re={class:"count"},Se={class:"btn-row"},Le=["disabled"],Ze=["disabled"],Be={class:"step","aria-live":"polite"},Pe={key:0},Ve={key:1,class:"qcard"},Te={class:"q"},De={key:1,class:"answer","aria-live":"polite"},Ee={class:"qactions"},Ke=["aria-pressed","disabled"],Qe=["aria-pressed","disabled"],He=["disabled"],Ae={key:2,class:"error-text",role:"alert"},Fe={key:2,class:"qcard sum"},Ie={class:"tag"},Oe={class:"qactions"},Ue={key:3,class:"qcard sum"},Ge={class:"qactions",style:{margin:"0 0 18px"}},Je={key:0,class:"grp miss"},Xe={class:"tag"},Ye={key:1,class:"grp ok"},et={class:"tag"},tt={key:2,class:"muted small mono",style:{margin:"14px 0 0"}},rt=ue({__name:"QuizView",props:{slug:{}},setup(m){const o=m,n=v(null),p=v(""),f=v([]),y=v(null),d=v(null),g=v(null),w=v(!1),N=v({}),C=v(!1),$=v(""),b=v(null),V=v(null);async function T(){p.value="";try{n.value=await q.quiz(o.slug),D()}catch(t){p.value=I(t)}}async function D(){try{f.value=(await q.attempts(o.slug)).data}catch{}}de(T),ce(()=>{g.value&&!w.value&&d.value?.answeredCount&&q.finish(g.value.id).catch(()=>{})});const E=x(()=>{const t=new Map;for(const a of n.value?.questions??[])a.category&&t.set(a.category,(t.get(a.category)??0)+1);return[...t].sort(([a],[M])=>a.localeCompare(M,"pl"))}),K=x(()=>(n.value?.questions??[]).filter(t=>!y.value||t.category===y.value).length);function O(){const t=(n.value?.questions??[]).filter(a=>a.type==="self_check"&&(!y.value||a.category===y.value)).map(a=>({id:a.id,text:a.text,category:a.category,answer:a.answer_text??""}));d.value=new fe(t,n.value?.round_size??5),g.value=null,w.value=!1,N.value={},$.value="",b.value=null}async function U(){return g.value||(g.value=await q.start(o.slug,y.value),w.value=!1),g.value}async function Q(t){const a=d.value,M=a?.current;if(!(!a||!M||C.value)){C.value=!0,$.value="";try{const u=await U();await q.answer(u.id,{question_id:M.id,known:t==="y"}),a.mark(t),await he(),V.value?.focus()}catch(u){$.value=`Nie udało się zapisać odpowiedzi. ${I(u)}`}finally{C.value=!1}}}function G(){const t=d.value?.current?.id;t!==void 0&&(N.value={...N.value,[t]:!0})}function J(){const t=d.value;t&&(t.next(),t.phase==="final"&&W())}function H(){d.value?.draw(),d.value?.phase==="final"&&W()}function A(){d.value?.finish(),W()}async function W(){const t=g.value;if(!(!t||w.value)){w.value=!0;try{b.value=await q.finish(t.id)}catch{}D()}}function X(){const t=d.value;t&&(t.startReview(),g.value=null,w.value=!1,b.value=null)}function Y(){d.value?.reset(),g.value=null,w.value=!1,N.value={},b.value=null,d.value?.phase==="final"&&W()}function ee(){W(),d.value=null}const s=x(()=>d.value),z=x(()=>s.value?.current??null),L=x(()=>z.value?s.value?.roundMarks[s.value.cur]??null:null),F=t=>s.value?.cards.get(t)?.answer??"",te=t=>s.value?.roundMarks[t]??(t===s.value?.cur?"cur":""),se=x(()=>{const t=s.value;return t?t.isLastInRound?t.review?"Wynik powtórki":t.remaining?"Koniec rundy":"Podsumowanie":"Dalej":""}),Z=t=>pe(t,"pytanie","pytania","pytań"),ae=x(()=>{const t=s.value;return t?t.phase==="round"?"Koniec rundy":t.phase==="final"?t.review?"Wynik po powtórce":t.remaining?"Podsumowanie sesji":"Cała pula za Tobą":`${t.review?"Powtórka · ":""}Pytanie ${t.cur+1} z ${t.round.length}`:""});return(t,a)=>{const M=ye("router-link");return r(),i("div",null,[S(ie,{ready:!!n.value,error:p.value,onRetry:a[3]||(a[3]=u=>T())},{default:B(()=>[n.value?(r(),i(k,{key:0},[S(oe,{eyebrow:"Quiz",title:n.value.title},{default:B(()=>[S(M,{class:"btn small ghost",to:"/quizy"},{default:B(()=>[...a[4]||(a[4]=[_("← Quizy",-1)])]),_:1})]),_:1},8,["title"]),s.value?(r(),i(k,{key:1},[e("div",qe,[e("div",null,[e("div",Ne,[e("span",$e,[a[7]||(a[7]=_("Wiem ",-1)),e("b",null,l(s.value.tally.y),1)]),e("span",We,[a[8]||(a[8]=_("Nie wiem ",-1)),e("b",null,l(s.value.tally.n),1)])]),e("span",Re,[_(l(Z(s.value.total))+" w puli · "+l(s.value.remaining)+" jeszcze nie padło",1),y.value?(r(),i(k,{key:0},[_(" · "+l(y.value),1)],64)):h("",!0)])]),e("div",Se,[e("button",{class:"btn small",type:"button",disabled:s.value.phase==="final",onClick:H},"Losuj "+l(n.value.round_size??5)+" nowych",9,Le),e("button",{class:"btn small primary",type:"button",disabled:s.value.answeredCount===0||s.value.phase==="final",onClick:A},"Zakończ",8,Ze)])]),s.value.phase!=="final"?(r(),i("div",{key:0,class:"round-progress",style:ve({gridTemplateColumns:`repeat(${s.value.round.length}, 1fr)`}),"aria-hidden":"true"},[(r(!0),i(k,null,R(s.value.round,(u,j)=>(r(),i("span",{key:j,class:P(te(j))},null,2))),128))],4)):h("",!0),e("div",Be,[e("span",null,l(ae.value),1),s.value.phase==="card"&&z.value?.category?(r(),i("span",Pe,l(z.value.category),1)):h("",!0)]),s.value.phase==="card"&&z.value?(r(),i("div",Ve,[e("p",Te,l(z.value.text),1),N.value[z.value.id]?(r(),i("div",De,[a[9]||(a[9]=e("span",{class:"tag"},"Odpowiedź",-1)),_(" "+l(z.value.answer),1)])):(r(),i("button",{key:0,class:"reveal",type:"button",onClick:G},"odpowiedź")),e("div",Ee,[e("button",{class:"btn yes",type:"button","aria-pressed":L.value==="y",disabled:C.value,onClick:a[1]||(a[1]=u=>Q("y"))},"Wiem!",8,Ke),e("button",{class:"btn no",type:"button","aria-pressed":L.value==="n",disabled:C.value,onClick:a[2]||(a[2]=u=>Q("n"))},"Nie wiem",8,Qe),e("button",{ref_key:"nextBtn",ref:V,class:"btn primary next",type:"button",disabled:!L.value||C.value,onClick:J},l(se.value),9,He)]),$.value?(r(),i("p",Ae,l($.value),1)):h("",!0)])):s.value.phase==="round"?(r(),i("div",Fe,[e("h2",null,"Wiem "+l(s.value.roundMarks.filter(u=>u==="y").length)+" z "+l(s.value.round.length),1),a[10]||(a[10]=e("p",null,"Pytania „Nie wiem” trafiają do powtórki. Zbierzesz je przyciskiem „Zakończ”.",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.round,(u,j)=>(r(),i("li",{key:u,class:P(s.value.roundMarks[j])},[e("span",Ie,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text)+" ",1),e("small",null,l(F(u)),1)],2))),128))]),e("div",Oe,[e("button",{class:"btn primary",type:"button",onClick:H},"Losuj "+l(n.value.round_size??5)+" nowych",1),e("button",{class:"btn",type:"button",onClick:A},"Zakończ")])])):(r(),i("div",Ue,[e("h2",null,"Wiem "+l(s.value.known.length)+" z "+l(s.value.answeredCount),1),e("p",null,l(s.value.missed.length?`Do powtórki: ${s.value.missed.length}.`:s.value.answeredCount?"Wszystko umiesz. Nie ma nic do powtórki.":"Nie udzielono żadnej odpowiedzi."),1),e("div",Ge,[s.value.missed.length?(r(),i("button",{key:0,class:"btn primary",type:"button",onClick:X},"Powtórz "+l(Z(s.value.missed.length)),1)):h("",!0),e("button",{class:P(["btn",{primary:!s.value.missed.length}]),type:"button",onClick:Y},"Nowa sesja",2),e("button",{class:"btn ghost",type:"button",onClick:ee},"Wróć do quizu")]),s.value.missed.length?(r(),i("div",Je,[a[11]||(a[11]=e("h3",null,"Nie wiem",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.missed,u=>(r(),i("li",{key:u,class:"n"},[e("span",Xe,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text)+" ",1),e("small",null,l(F(u)),1)]))),128))])])):h("",!0),s.value.known.length?(r(),i("div",Ye,[a[12]||(a[12]=e("h3",null,"Wiem",-1)),e("ol",null,[(r(!0),i(k,null,R(s.value.known,u=>(r(),i("li",{key:u,class:"y"},[e("span",et,l(s.value.cards.get(u)?.category),1),_(" "+l(s.value.cards.get(u)?.text),1)]))),128))])])):h("",!0),b.value?(r(),i("p",tt,"Zapisano w historii: "+l(Math.round(b.value.score_points))+"/"+l(Math.round(b.value.max_points)),1)):h("",!0)]))],64)):(r(),i(k,{key:0},[n.value.description?(r(),i("p",ge,l(n.value.description),1)):h("",!0),e("section",ke,[a[5]||(a[5]=e("h2",{id:"start-h",style:{"margin-bottom":"8px"}},"Nowa sesja",-1)),e("p",_e,"Rundy po "+l(n.value.round_size??5)+" losowych pytań, które jeszcze nie padły. Każdą odpowiedź zapisujemy na koncie.",1),E.value.length?(r(),i("div",we,[e("button",{class:"chip",type:"button","aria-pressed":y.value===null,onClick:a[0]||(a[0]=u=>y.value=null)},"Wszystkie",8,be),(r(!0),i(k,null,R(E.value,([u,j])=>(r(),i("button",{key:u,class:"chip",type:"button","aria-pressed":y.value===u,onClick:st=>y.value=u},l(u)+" · "+l(j),9,ze))),128))])):h("",!0),e("div",xe,[e("button",{class:"btn primary",type:"button",disabled:K.value===0,onClick:O},"Zacznij · "+l(Z(K.value)),9,Ce)])]),f.value.length?(r(),i("section",Me,[a[6]||(a[6]=e("div",{class:"section-head"},[e("h2",{id:"hist-h"},"Historia podejść")],-1)),e("div",je,[S(re,{attempts:f.value},null,8,["attempts"])])])):h("",!0)],64))],64)):h("",!0)]),_:1},8,["ready","error"])])}}});export{rt as default}; diff --git a/public/assets/QuizzesView-CS_US9WK.js b/public/assets/QuizzesView-BiZkQOtX.js similarity index 86% rename from public/assets/QuizzesView-CS_US9WK.js rename to public/assets/QuizzesView-BiZkQOtX.js index 20f9ace..95ee6c6 100644 --- a/public/assets/QuizzesView-CS_US9WK.js +++ b/public/assets/QuizzesView-BiZkQOtX.js @@ -1 +1 @@ -import{_ as g}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as j}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{q as z,_ as w}from"./quizzes-BlBom-oJ.js";import{d as x,o as N,c as s,i as d,j as k,r as p,ap as V,n as t,F as _,E as $,s as b,b as o,t as n,f as l,p as m,e as h,ag as f,l as B}from"./index-DwX0tlPb.js";const C={key:0,class:"stack"},F={key:0,class:"muted small",style:{margin:"0 0 8px"}},E={class:"small",style:{margin:"0"}},Q={key:1,class:"empty"},T={key:2,class:"section","aria-labelledby":"hist-h"},A={class:"card"},R=x({__name:"QuizzesView",setup(D){const i=p(null),c=p([]),u=p("");async function y(){u.value="";try{const[r,a]=await Promise.all([z.list(),z.attempts()]);i.value=r,c.value=a.data}catch(r){u.value=V(r)}}return N(y),(r,a)=>{const v=B("router-link");return t(),s("div",null,[d(g,{eyebrow:"Fiszki i testy",title:"Quizy"}),d(j,{ready:i.value!==null,error:u.value,onRetry:a[0]||(a[0]=e=>y())},{default:k(()=>[i.value?.length?(t(),s("div",C,[(t(!0),s(_,null,$(i.value,e=>(t(),b(v,{key:e.id,to:`/quizy/${e.slug}`,class:"card link accent"},{default:k(()=>[o("h3",null,n(e.title),1),e.description?(t(),s("p",F,n(e.description),1)):l("",!0),o("p",E,[m(n(h(f)(e.question_count,"pytanie","pytania","pytań")),1),e.round_size?(t(),s(_,{key:0},[m(" · rundy po "+n(e.round_size),1)],64)):l("",!0),e.attempts_count?(t(),s(_,{key:1},[m(" · "+n(h(f)(e.attempts_count,"zakończone podejście","zakończone podejścia","zakończonych podejść")),1)],64)):l("",!0)])]),_:2},1032,["to"]))),128))])):(t(),s("p",Q,"Nie ma jeszcze żadnych quizów.")),c.value.length?(t(),s("section",T,[a[1]||(a[1]=o("div",{class:"section-head"},[o("h2",{id:"hist-h"},"Historia podejść")],-1)),o("div",A,[d(w,{attempts:c.value,"show-quiz":""},null,8,["attempts"])])])):l("",!0)]),_:1},8,["ready","error"])])}}});export{R as default}; +import{_ as g}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as j}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{q as z,_ as w}from"./quizzes-ClZx_Cui.js";import{d as x,o as N,c as s,i as d,j as k,r as p,ap as V,n as t,F as _,E as $,s as b,b as o,t as n,f as l,p as m,e as h,ag as f,l as B}from"./index-C7U0oIvN.js";const C={key:0,class:"stack"},F={key:0,class:"muted small",style:{margin:"0 0 8px"}},E={class:"small",style:{margin:"0"}},Q={key:1,class:"empty"},T={key:2,class:"section","aria-labelledby":"hist-h"},A={class:"card"},R=x({__name:"QuizzesView",setup(D){const i=p(null),c=p([]),u=p("");async function y(){u.value="";try{const[r,a]=await Promise.all([z.list(),z.attempts()]);i.value=r,c.value=a.data}catch(r){u.value=V(r)}}return N(y),(r,a)=>{const v=B("router-link");return t(),s("div",null,[d(g,{eyebrow:"Fiszki i testy",title:"Quizy"}),d(j,{ready:i.value!==null,error:u.value,onRetry:a[0]||(a[0]=e=>y())},{default:k(()=>[i.value?.length?(t(),s("div",C,[(t(!0),s(_,null,$(i.value,e=>(t(),b(v,{key:e.id,to:`/quizy/${e.slug}`,class:"card link accent"},{default:k(()=>[o("h3",null,n(e.title),1),e.description?(t(),s("p",F,n(e.description),1)):l("",!0),o("p",E,[m(n(h(f)(e.question_count,"pytanie","pytania","pytań")),1),e.round_size?(t(),s(_,{key:0},[m(" · rundy po "+n(e.round_size),1)],64)):l("",!0),e.attempts_count?(t(),s(_,{key:1},[m(" · "+n(h(f)(e.attempts_count,"zakończone podejście","zakończone podejścia","zakończonych podejść")),1)],64)):l("",!0)])]),_:2},1032,["to"]))),128))])):(t(),s("p",Q,"Nie ma jeszcze żadnych quizów.")),c.value.length?(t(),s("section",T,[a[1]||(a[1]=o("div",{class:"section-head"},[o("h2",{id:"hist-h"},"Historia podejść")],-1)),o("div",A,[d(w,{attempts:c.value,"show-quiz":""},null,8,["attempts"])])])):l("",!0)]),_:1},8,["ready","error"])])}}});export{R as default}; diff --git a/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js b/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js similarity index 94% rename from public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js rename to public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js index 2029180..a5bccc0 100644 --- a/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js +++ b/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js @@ -1 +1 @@ -import{d as s,n,c as l,b as t,p as c,t as r,f as d,e as g,ar as m}from"./index-DwX0tlPb.js";const u=["id"],h=["checked"],k={class:"text"},b={key:0,class:"muted"},f={key:1,class:"muted mono"},y={class:"owned"},w=["checked","aria-label"],$=["href","aria-label"],B=s({__name:"ReadingItem",props:{reading:{}},emits:["toggle","own"],setup(e){return(o,a)=>(n(),l("li",{id:`lektura-${e.reading.id}`,class:"reading"},[t("label",null,[t("input",{type:"checkbox",checked:!!e.reading.read_at,onChange:a[0]||(a[0]=i=>o.$emit("toggle",i.target.checked))},null,40,h),t("span",k,[c(r(e.reading.title)+" ",1),e.reading.author||e.reading.source?(n(),l("small",b," · "+r([e.reading.author,e.reading.source].filter(Boolean).join(", ")),1)):d("",!0),e.reading.read_at?(n(),l("small",f," · przeczytano "+r(g(m)(e.reading.read_at)),1)):d("",!0)])]),t("label",y,[t("input",{type:"checkbox",checked:!!e.reading.owned_at,"aria-label":`Mam: ${e.reading.title}`,onChange:a[1]||(a[1]=i=>o.$emit("own",i.target.checked))},null,40,w),a[2]||(a[2]=t("span",null,"mam",-1))]),e.reading.url?(n(),l("a",{key:0,href:e.reading.url,target:"_blank",rel:"noopener noreferrer",class:"small","aria-label":`Otwórz: ${e.reading.title}`},"link",8,$)):d("",!0)],8,u))}});export{B as _}; +import{d as s,n,c as l,b as t,p as c,t as r,f as d,e as g,ar as m}from"./index-C7U0oIvN.js";const u=["id"],h=["checked"],k={class:"text"},b={key:0,class:"muted"},f={key:1,class:"muted mono"},y={class:"owned"},w=["checked","aria-label"],$=["href","aria-label"],B=s({__name:"ReadingItem",props:{reading:{}},emits:["toggle","own"],setup(e){return(o,a)=>(n(),l("li",{id:`lektura-${e.reading.id}`,class:"reading"},[t("label",null,[t("input",{type:"checkbox",checked:!!e.reading.read_at,onChange:a[0]||(a[0]=i=>o.$emit("toggle",i.target.checked))},null,40,h),t("span",k,[c(r(e.reading.title)+" ",1),e.reading.author||e.reading.source?(n(),l("small",b," · "+r([e.reading.author,e.reading.source].filter(Boolean).join(", ")),1)):d("",!0),e.reading.read_at?(n(),l("small",f," · przeczytano "+r(g(m)(e.reading.read_at)),1)):d("",!0)])]),t("label",y,[t("input",{type:"checkbox",checked:!!e.reading.owned_at,"aria-label":`Mam: ${e.reading.title}`,onChange:a[1]||(a[1]=i=>o.$emit("own",i.target.checked))},null,40,w),a[2]||(a[2]=t("span",null,"mam",-1))]),e.reading.url?(n(),l("a",{key:0,href:e.reading.url,target:"_blank",rel:"noopener noreferrer",class:"small","aria-label":`Otwórz: ${e.reading.title}`},"link",8,$)):d("",!0)],8,u))}});export{B as _}; diff --git a/public/assets/ReadingsView-Be4jxK3O.js b/public/assets/ReadingsView-BeAMdWZP.js similarity index 90% rename from public/assets/ReadingsView-Be4jxK3O.js rename to public/assets/ReadingsView-BeAMdWZP.js index 76d7536..7ef0306 100644 --- a/public/assets/ReadingsView-Be4jxK3O.js +++ b/public/assets/ReadingsView-BeAMdWZP.js @@ -1 +1 @@ -import{_ as $}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js";import{d as R,ae as B,o as N,c as i,i as h,j as q,e as d,x as g,n,b as o,t as r,H as S,F as m,E as v,p as V,ah as j,s as x,f,ag as L,r as T,l as M}from"./index-DwX0tlPb.js";import{u as D}from"./scrollToHash-CWWIxePp.js";const E={class:"card","aria-label":"Postęp czytania"},F={style:{margin:"0 0 8px"}},P={class:"big-num nums"},H={class:"muted"},W={class:"muted small"},A=["aria-valuenow"],G={class:"chips wrap",style:{"margin-top":"12px"}},I=["aria-pressed"],U=["aria-pressed"],J=["aria-labelledby"],K={class:"section-head"},Q=["id"],X={class:"badge",style:{"margin-left":"8px"}},Y={class:"muted small nums"},Z={class:"subhead"},ee={class:"rows"},ae={class:"subhead"},oe={class:"rows"},te={key:0,class:"empty",style:{"margin-top":"16px"}},ce=R({__name:"ReadingsView",setup(se){const s=B(),_=T(!1),p=T(!1);N(()=>{Promise.all([s.loadReadings(),s.loadCourses()])});const k=g(()=>{const y=new Map;for(const t of s.readings)y.set(t.course_id,[...y.get(t.course_id)??[],t]);const l=t=>s.courseById.get(t)?.sort_order??0;return[...y].sort(([t],[e])=>l(t)-l(e)).map(([,t])=>{const e=t.filter(a=>(!_.value||!a.read_at)&&(!p.value||a.owned_at));return{course:t[0].course,required:e.filter(a=>a.is_required),optional:e.filter(a=>!a.is_required),read:t.filter(a=>a.read_at).length,total:t.length}}).filter(t=>t.required.length+t.optional.length>0)}),w=g(()=>s.loaded.readings&&s.loaded.courses);D(w);const u=g(()=>s.readingStats),z=g(()=>u.value.requiredTotal?Math.round(u.value.requiredRead/u.value.requiredTotal*100):0);return(y,l)=>{const t=M("router-link");return n(),i("div",null,[h($,{eyebrow:"Do przeczytania",title:"Lektury"}),h(O,{ready:w.value,error:d(s).error,onRetry:l[2]||(l[2]=e=>d(s).retry())},{default:q(()=>[h(C),o("section",E,[o("p",F,[o("span",P,r(u.value.requiredRead),1),o("span",H," z "+r(u.value.requiredTotal)+" obowiązkowych",1),o("span",W," · łącznie "+r(u.value.read)+" z "+r(u.value.total),1)]),o("div",{class:"progress-bar",role:"progressbar","aria-valuenow":z.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[o("span",{style:S({width:z.value+"%"})},null,4)],8,A)]),o("div",G,[o("button",{class:"chip",type:"button","aria-pressed":_.value,onClick:l[0]||(l[0]=e=>_.value=!_.value)},"Tylko nieprzeczytane",8,I),o("button",{class:"chip",type:"button","aria-pressed":p.value,onClick:l[1]||(l[1]=e=>p.value=!p.value)},"Tylko posiadane",8,U)]),(n(!0),i(m,null,v(k.value,e=>(n(),i("section",{key:e.course.id,class:"section","aria-labelledby":`c${e.course.id}`},[o("div",K,[o("h2",{id:`c${e.course.id}`},[h(t,{to:`/przedmioty/${e.course.id}`,style:{color:"inherit","text-decoration":"none"}},{default:q(()=>[V(r(e.course.name),1)]),_:2},1032,["to"]),o("span",X,r(d(j)[e.course.form]),1)],8,Q),o("span",Y,r(e.read)+"/"+r(e.total),1)]),e.required.length?(n(),i(m,{key:0},[o("h3",Z,"Obowiązkowe · "+r(e.required.length),1),o("ul",ee,[(n(!0),i(m,null,v(e.required,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0),e.optional.length?(n(),i(m,{key:1},[o("h3",ae,"Dodatkowe · "+r(e.optional.length),1),o("ul",oe,[(n(!0),i(m,null,v(e.optional,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0)],8,J))),128)),k.value.length?f("",!0):(n(),i("p",te,r(p.value?_.value?"Wszystkie posiadane lektury przeczytane.":"Nie masz jeszcze żadnej lektury.":_.value?"Wszystko przeczytane. Gratulacje!":d(L)(0,"lektura","lektury","lektur")+" do wyświetlenia."),1))]),_:1},8,["ready","error"])])}}});export{ce as default}; +import{_ as $}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js";import{d as R,ae as B,o as N,c as i,i as h,j as q,e as d,x as g,n,b as o,t as r,H as S,F as m,E as v,p as V,ah as j,s as x,f,ag as L,r as T,l as M}from"./index-C7U0oIvN.js";import{u as D}from"./scrollToHash-PZXPXyf9.js";const E={class:"card","aria-label":"Postęp czytania"},F={style:{margin:"0 0 8px"}},P={class:"big-num nums"},H={class:"muted"},W={class:"muted small"},A=["aria-valuenow"],G={class:"chips wrap",style:{"margin-top":"12px"}},I=["aria-pressed"],U=["aria-pressed"],J=["aria-labelledby"],K={class:"section-head"},Q=["id"],X={class:"badge",style:{"margin-left":"8px"}},Y={class:"muted small nums"},Z={class:"subhead"},ee={class:"rows"},ae={class:"subhead"},oe={class:"rows"},te={key:0,class:"empty",style:{"margin-top":"16px"}},ce=R({__name:"ReadingsView",setup(se){const s=B(),_=T(!1),p=T(!1);N(()=>{Promise.all([s.loadReadings(),s.loadCourses()])});const k=g(()=>{const y=new Map;for(const t of s.readings)y.set(t.course_id,[...y.get(t.course_id)??[],t]);const l=t=>s.courseById.get(t)?.sort_order??0;return[...y].sort(([t],[e])=>l(t)-l(e)).map(([,t])=>{const e=t.filter(a=>(!_.value||!a.read_at)&&(!p.value||a.owned_at));return{course:t[0].course,required:e.filter(a=>a.is_required),optional:e.filter(a=>!a.is_required),read:t.filter(a=>a.read_at).length,total:t.length}}).filter(t=>t.required.length+t.optional.length>0)}),w=g(()=>s.loaded.readings&&s.loaded.courses);D(w);const u=g(()=>s.readingStats),z=g(()=>u.value.requiredTotal?Math.round(u.value.requiredRead/u.value.requiredTotal*100):0);return(y,l)=>{const t=M("router-link");return n(),i("div",null,[h($,{eyebrow:"Do przeczytania",title:"Lektury"}),h(O,{ready:w.value,error:d(s).error,onRetry:l[2]||(l[2]=e=>d(s).retry())},{default:q(()=>[h(C),o("section",E,[o("p",F,[o("span",P,r(u.value.requiredRead),1),o("span",H," z "+r(u.value.requiredTotal)+" obowiązkowych",1),o("span",W," · łącznie "+r(u.value.read)+" z "+r(u.value.total),1)]),o("div",{class:"progress-bar",role:"progressbar","aria-valuenow":z.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[o("span",{style:S({width:z.value+"%"})},null,4)],8,A)]),o("div",G,[o("button",{class:"chip",type:"button","aria-pressed":_.value,onClick:l[0]||(l[0]=e=>_.value=!_.value)},"Tylko nieprzeczytane",8,I),o("button",{class:"chip",type:"button","aria-pressed":p.value,onClick:l[1]||(l[1]=e=>p.value=!p.value)},"Tylko posiadane",8,U)]),(n(!0),i(m,null,v(k.value,e=>(n(),i("section",{key:e.course.id,class:"section","aria-labelledby":`c${e.course.id}`},[o("div",K,[o("h2",{id:`c${e.course.id}`},[h(t,{to:`/przedmioty/${e.course.id}`,style:{color:"inherit","text-decoration":"none"}},{default:q(()=>[V(r(e.course.name),1)]),_:2},1032,["to"]),o("span",X,r(d(j)[e.course.form]),1)],8,Q),o("span",Y,r(e.read)+"/"+r(e.total),1)]),e.required.length?(n(),i(m,{key:0},[o("h3",Z,"Obowiązkowe · "+r(e.required.length),1),o("ul",ee,[(n(!0),i(m,null,v(e.required,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0),e.optional.length?(n(),i(m,{key:1},[o("h3",ae,"Dodatkowe · "+r(e.optional.length),1),o("ul",oe,[(n(!0),i(m,null,v(e.optional,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0)],8,J))),128)),k.value.length?f("",!0):(n(),i("p",te,r(p.value?_.value?"Wszystkie posiadane lektury przeczytane.":"Nie masz jeszcze żadnej lektury.":_.value?"Wszystko przeczytane. Gratulacje!":d(L)(0,"lektura","lektury","lektur")+" do wyświetlenia."),1))]),_:1},8,["ready","error"])])}}});export{ce as default}; diff --git a/public/assets/RegisterView-DtL0JXFF.js b/public/assets/RegisterView-DqKmtqer.js similarity index 98% rename from public/assets/RegisterView-DtL0JXFF.js rename to public/assets/RegisterView-DqKmtqer.js index bd11172..5aa0769 100644 --- a/public/assets/RegisterView-DtL0JXFF.js +++ b/public/assets/RegisterView-DqKmtqer.js @@ -1 +1 @@ -import{d as q,u as N,c as o,b as s,t as n,i as _,j as g,h as j,f as u,w as d,v as m,r as l,l as B,n as i,p as x,m as C}from"./index-DwX0tlPb.js";import{f as I}from"./forms-BEpVKSou.js";const M={class:"auth"},h={key:0,class:"stack"},S={class:"notice",role:"status"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},A={class:"field"},D={key:0,class:"error-text"},E={class:"field"},P={key:0,class:"error-text"},R={class:"field"},T={key:0,class:"error-text"},H={class:"field"},K={key:0,class:"error-text"},W={class:"field"},F=["disabled"],G={class:"auth-links"},Q=q({__name:"RegisterView",setup(J){const V=N(),z=C(),v=l(""),f=l(""),w=l(""),c=l(""),y=l(""),p=l(!1),t=l(null),k=l("");async function U(){p.value=!0,t.value=null;try{const r=await V.register({name:v.value.trim(),surname:f.value.trim(),email:w.value.trim(),password:c.value,password_confirmation:y.value},!0);r.signedIn?await z.replace("/"):k.value=r.message||"Konto zostało utworzone. Sprawdź pocztę, aby je aktywować."}catch(r){t.value=I(r)}finally{p.value=!1}}return(r,e)=>{const b=B("router-link");return i(),o("div",M,[e[12]||(e[12]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Załóż konto")],-1)),k.value?(i(),o("div",h,[s("p",S,n(k.value),1),_(b,{class:"btn",to:"/logowanie"},{default:g(()=>[...e[5]||(e[5]=[x("Przejdź do logowania",-1)])]),_:1})])):(i(),o("form",{key:1,onSubmit:j(U,["prevent"]),novalidate:""},[t.value?.message?(i(),o("div",Z,n(t.value.message),1)):u("",!0),s("div",A,[e[6]||(e[6]=s("label",{for:"name"},"Imię",-1)),d(s("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=a=>v.value=a),type:"text",autocomplete:"given-name",required:""},null,512),[[m,v.value]]),t.value?.fields.name?(i(),o("p",D,n(t.value.fields.name),1)):u("",!0)]),s("div",E,[e[7]||(e[7]=s("label",{for:"surname"},"Nazwisko",-1)),d(s("input",{id:"surname","onUpdate:modelValue":e[1]||(e[1]=a=>f.value=a),type:"text",autocomplete:"family-name",required:""},null,512),[[m,f.value]]),t.value?.fields.surname?(i(),o("p",P,n(t.value.fields.surname),1)):u("",!0)]),s("div",R,[e[8]||(e[8]=s("label",{for:"email"},"Adres e-mail",-1)),d(s("input",{id:"email","onUpdate:modelValue":e[2]||(e[2]=a=>w.value=a),type:"email",autocomplete:"email",inputmode:"email",required:""},null,512),[[m,w.value]]),t.value?.fields.email?(i(),o("p",T,n(t.value.fields.email),1)):u("",!0)]),s("div",H,[e[9]||(e[9]=s("label",{for:"password"},"Hasło (min. 8 znaków)",-1)),d(s("input",{id:"password","onUpdate:modelValue":e[3]||(e[3]=a=>c.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,c.value]]),t.value?.fields.password?(i(),o("p",K,n(t.value.fields.password),1)):u("",!0)]),s("div",W,[e[10]||(e[10]=s("label",{for:"confirmation"},"Powtórz hasło",-1)),d(s("input",{id:"confirmation","onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,y.value]])]),s("button",{class:"btn primary block",type:"submit",disabled:p.value},n(p.value?"Zakładanie…":"Załóż konto"),9,F)],32)),s("div",G,[_(b,{to:"/logowanie"},{default:g(()=>[...e[11]||(e[11]=[x("Mam już konto",-1)])]),_:1})])])}}});export{Q as default}; +import{d as q,u as N,c as o,b as s,t as n,i as _,j as g,h as j,f as u,w as d,v as m,r as l,l as B,n as i,p as x,m as C}from"./index-C7U0oIvN.js";import{f as I}from"./forms-L06yLYMm.js";const M={class:"auth"},h={key:0,class:"stack"},S={class:"notice",role:"status"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},A={class:"field"},D={key:0,class:"error-text"},E={class:"field"},P={key:0,class:"error-text"},R={class:"field"},T={key:0,class:"error-text"},H={class:"field"},K={key:0,class:"error-text"},W={class:"field"},F=["disabled"],G={class:"auth-links"},Q=q({__name:"RegisterView",setup(J){const V=N(),z=C(),v=l(""),f=l(""),w=l(""),c=l(""),y=l(""),p=l(!1),t=l(null),k=l("");async function U(){p.value=!0,t.value=null;try{const r=await V.register({name:v.value.trim(),surname:f.value.trim(),email:w.value.trim(),password:c.value,password_confirmation:y.value},!0);r.signedIn?await z.replace("/"):k.value=r.message||"Konto zostało utworzone. Sprawdź pocztę, aby je aktywować."}catch(r){t.value=I(r)}finally{p.value=!1}}return(r,e)=>{const b=B("router-link");return i(),o("div",M,[e[12]||(e[12]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Załóż konto")],-1)),k.value?(i(),o("div",h,[s("p",S,n(k.value),1),_(b,{class:"btn",to:"/logowanie"},{default:g(()=>[...e[5]||(e[5]=[x("Przejdź do logowania",-1)])]),_:1})])):(i(),o("form",{key:1,onSubmit:j(U,["prevent"]),novalidate:""},[t.value?.message?(i(),o("div",Z,n(t.value.message),1)):u("",!0),s("div",A,[e[6]||(e[6]=s("label",{for:"name"},"Imię",-1)),d(s("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=a=>v.value=a),type:"text",autocomplete:"given-name",required:""},null,512),[[m,v.value]]),t.value?.fields.name?(i(),o("p",D,n(t.value.fields.name),1)):u("",!0)]),s("div",E,[e[7]||(e[7]=s("label",{for:"surname"},"Nazwisko",-1)),d(s("input",{id:"surname","onUpdate:modelValue":e[1]||(e[1]=a=>f.value=a),type:"text",autocomplete:"family-name",required:""},null,512),[[m,f.value]]),t.value?.fields.surname?(i(),o("p",P,n(t.value.fields.surname),1)):u("",!0)]),s("div",R,[e[8]||(e[8]=s("label",{for:"email"},"Adres e-mail",-1)),d(s("input",{id:"email","onUpdate:modelValue":e[2]||(e[2]=a=>w.value=a),type:"email",autocomplete:"email",inputmode:"email",required:""},null,512),[[m,w.value]]),t.value?.fields.email?(i(),o("p",T,n(t.value.fields.email),1)):u("",!0)]),s("div",H,[e[9]||(e[9]=s("label",{for:"password"},"Hasło (min. 8 znaków)",-1)),d(s("input",{id:"password","onUpdate:modelValue":e[3]||(e[3]=a=>c.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,c.value]]),t.value?.fields.password?(i(),o("p",K,n(t.value.fields.password),1)):u("",!0)]),s("div",W,[e[10]||(e[10]=s("label",{for:"confirmation"},"Powtórz hasło",-1)),d(s("input",{id:"confirmation","onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,y.value]])]),s("button",{class:"btn primary block",type:"submit",disabled:p.value},n(p.value?"Zakładanie…":"Załóż konto"),9,F)],32)),s("div",G,[_(b,{to:"/logowanie"},{default:g(()=>[...e[11]||(e[11]=[x("Mam już konto",-1)])]),_:1})])])}}});export{Q as default}; diff --git a/public/assets/ResetView-DOA68WgQ.js b/public/assets/ResetView-D8GUOuU2.js similarity index 97% rename from public/assets/ResetView-DOA68WgQ.js rename to public/assets/ResetView-D8GUOuU2.js index bc024f7..9abe377 100644 --- a/public/assets/ResetView-DOA68WgQ.js +++ b/public/assets/ResetView-D8GUOuU2.js @@ -1 +1 @@ -import{d as _,r as t,c as a,b as o,i as g,j as x,h as V,t as m,f as v,e as q,w as c,v as f,k as z,l as N,n as l,p as h,a as B}from"./index-DwX0tlPb.js";import{f as C}from"./forms-BEpVKSou.js";const U={class:"auth"},M={key:0,class:"stack"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},j={key:1,class:"field"},D={class:"field"},E={key:0,class:"error-text"},I={class:"field"},P=["disabled"],A=_({__name:"ResetView",setup(R){const u=z(),i=t(typeof u.query.code=="string"?u.query.code:""),n=t(""),p=t(""),d=t(!1),w=t(!1),s=t(null);async function b(){d.value=!0,s.value=null;try{await B.resetPassword({code:i.value.trim(),password:n.value,password_confirmation:p.value}),w.value=!0}catch(y){s.value=C(y)}finally{d.value=!1}}return(y,e)=>{const k=N("router-link");return l(),a("div",U,[e[8]||(e[8]=o("header",{class:"page-head"},[o("span",{class:"eyebrow"},"BM II° · UWr"),o("h1",null,"Nowe hasło")],-1)),w.value?(l(),a("div",M,[e[4]||(e[4]=o("p",{class:"notice",role:"status"},"Hasło zostało zmienione.",-1)),g(k,{class:"btn primary",to:"/logowanie"},{default:x(()=>[...e[3]||(e[3]=[h("Zaloguj się",-1)])]),_:1})])):(l(),a("form",{key:1,onSubmit:V(b,["prevent"]),novalidate:""},[s.value?.message?(l(),a("div",Z,m(s.value.message),1)):v("",!0),q(u).query.code?v("",!0):(l(),a("div",j,[e[5]||(e[5]=o("label",{for:"code"},"Kod z wiadomości",-1)),c(o("input",{id:"code","onUpdate:modelValue":e[0]||(e[0]=r=>i.value=r),type:"text",autocomplete:"one-time-code",required:""},null,512),[[f,i.value]])])),o("div",D,[e[6]||(e[6]=o("label",{for:"password"},"Nowe hasło (min. 8 znaków)",-1)),c(o("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>n.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,n.value]]),s.value?.fields.password?(l(),a("p",E,m(s.value.fields.password),1)):v("",!0)]),o("div",I,[e[7]||(e[7]=o("label",{for:"confirmation"},"Powtórz hasło",-1)),c(o("input",{id:"confirmation","onUpdate:modelValue":e[2]||(e[2]=r=>p.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,p.value]])]),o("button",{class:"btn primary block",type:"submit",disabled:d.value||!i.value||!n.value},m(d.value?"Zapisywanie…":"Zapisz hasło"),9,P)],32))])}}});export{A as default}; +import{d as _,r as t,c as a,b as o,i as g,j as x,h as V,t as m,f as v,e as q,w as c,v as f,k as z,l as N,n as l,p as h,a as B}from"./index-C7U0oIvN.js";import{f as C}from"./forms-L06yLYMm.js";const U={class:"auth"},M={key:0,class:"stack"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},j={key:1,class:"field"},D={class:"field"},E={key:0,class:"error-text"},I={class:"field"},P=["disabled"],A=_({__name:"ResetView",setup(R){const u=z(),i=t(typeof u.query.code=="string"?u.query.code:""),n=t(""),p=t(""),d=t(!1),w=t(!1),s=t(null);async function b(){d.value=!0,s.value=null;try{await B.resetPassword({code:i.value.trim(),password:n.value,password_confirmation:p.value}),w.value=!0}catch(y){s.value=C(y)}finally{d.value=!1}}return(y,e)=>{const k=N("router-link");return l(),a("div",U,[e[8]||(e[8]=o("header",{class:"page-head"},[o("span",{class:"eyebrow"},"BM II° · UWr"),o("h1",null,"Nowe hasło")],-1)),w.value?(l(),a("div",M,[e[4]||(e[4]=o("p",{class:"notice",role:"status"},"Hasło zostało zmienione.",-1)),g(k,{class:"btn primary",to:"/logowanie"},{default:x(()=>[...e[3]||(e[3]=[h("Zaloguj się",-1)])]),_:1})])):(l(),a("form",{key:1,onSubmit:V(b,["prevent"]),novalidate:""},[s.value?.message?(l(),a("div",Z,m(s.value.message),1)):v("",!0),q(u).query.code?v("",!0):(l(),a("div",j,[e[5]||(e[5]=o("label",{for:"code"},"Kod z wiadomości",-1)),c(o("input",{id:"code","onUpdate:modelValue":e[0]||(e[0]=r=>i.value=r),type:"text",autocomplete:"one-time-code",required:""},null,512),[[f,i.value]])])),o("div",D,[e[6]||(e[6]=o("label",{for:"password"},"Nowe hasło (min. 8 znaków)",-1)),c(o("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>n.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,n.value]]),s.value?.fields.password?(l(),a("p",E,m(s.value.fields.password),1)):v("",!0)]),o("div",I,[e[7]||(e[7]=o("label",{for:"confirmation"},"Powtórz hasło",-1)),c(o("input",{id:"confirmation","onUpdate:modelValue":e[2]||(e[2]=r=>p.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,p.value]])]),o("button",{class:"btn primary block",type:"submit",disabled:d.value||!i.value||!n.value},m(d.value?"Zapisywanie…":"Zapisz hasło"),9,P)],32))])}}});export{A as default}; diff --git a/public/assets/ScheduleView-BxzKXc4R.js b/public/assets/ScheduleView-DVYsjbSm.js similarity index 93% rename from public/assets/ScheduleView-BxzKXc4R.js rename to public/assets/ScheduleView-DVYsjbSm.js index 4b72196..29af717 100644 --- a/public/assets/ScheduleView-BxzKXc4R.js +++ b/public/assets/ScheduleView-DVYsjbSm.js @@ -1 +1 @@ -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,a6 as R,i as z,j as K,ah as L,f as y,l as P,ae as T,o as I,am as Z,r as A,U as H,k as J,x as v,F as f,E as C,D as V,J as q,K as E,ag as O,s as U,m as W,y as G,I as Q}from"./index-DwX0tlPb.js";import{_ as X}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{_ as Y}from"./LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js";import{_ as ee}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js";import{u as se}from"./scrollToHash-CWWIxePp.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=P("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:K(()=>[N(l(n.session.course.name),1)]),_:1},8,["to"])]),o("div",oe,[o("span",null,l(r(L)[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=T(),h=J(),g=W();I(()=>{Promise.all([u.loadMeetings(),u.loadSchedule(),u.loadCourses()])});const m=v(()=>u.meetings??[]),p=Z(),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=A(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)}})}H(()=>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=G(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(()=>Q(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:K(()=>[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(),U(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}; +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,a6 as R,i as z,j as K,ah as L,f as y,l as P,ae as T,o as I,am as Z,r as A,U as H,k as J,x as v,F as f,E as C,D as V,J as q,K as E,ag as O,s as U,m as W,y as G,I as Q}from"./index-C7U0oIvN.js";import{_ as X}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{_ as Y}from"./LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js";import{_ as ee}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js";import{u as se}from"./scrollToHash-PZXPXyf9.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=P("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:K(()=>[N(l(n.session.course.name),1)]),_:1},8,["to"])]),o("div",oe,[o("span",null,l(r(L)[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=T(),h=J(),g=W();I(()=>{Promise.all([u.loadMeetings(),u.loadSchedule(),u.loadCourses()])});const m=v(()=>u.meetings??[]),p=Z(),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=A(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)}})}H(()=>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=G(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(()=>Q(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:K(()=>[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(),U(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}; diff --git a/public/assets/SpeakerTools-BwNWkwwQ.js b/public/assets/SpeakerTools-CNPhDdGp.js similarity index 98% rename from public/assets/SpeakerTools-BwNWkwwQ.js rename to public/assets/SpeakerTools-CNPhDdGp.js index 05c8b6d..6206e69 100644 --- a/public/assets/SpeakerTools-BwNWkwwQ.js +++ b/public/assets/SpeakerTools-CNPhDdGp.js @@ -1 +1 @@ -import{d as y,n as i,c as u,b as l,w as g,aP as c,C as s,t as a,p as n,f as k,F as v}from"./index-DwX0tlPb.js";const p={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},C={class:"tools-group"},j=["disabled","title"],m={class:"tools-group"},z=["aria-pressed"],P=["aria-pressed"],$=["aria-pressed"],S=["aria-pressed"],w={class:"tools-group tools-end"},f={key:0,class:"tools-pilot",role:"status",title:"Telefon steruje tą kartą"},F={key:1,class:"tools-pilot elsewhere",role:"status",title:"Kliknij tę kartę albo naciśnij klawisz, aby przejąć pilota"},T=["aria-pressed"],H=["aria-pressed"],B="Zegar ruszy przy pierwszej zmianie slajdu",r="Klik lub T: pauza · R: zeruj · C: schowaj",O=y({__name:"SpeakerTools",props:{clock:{},panel:{},special:{type:Boolean},hasSpecial:{type:Boolean},fullscreenEnabled:{type:Boolean},fullscreenOn:{type:Boolean},toolbarHidden:{type:Boolean},togglePanel:{type:Function},toggleSpecial:{type:Function},toggleToolbar:{type:Function},toggleFullscreen:{type:Function},light:{type:Boolean},toggleScheme:{type:Function},pilot:{}},emits:["pause","reset","toggleHidden","close"],setup(e,{emit:b}){const d=b;return(Z,t)=>(i(),u(v,null,[e.toolbarHidden?k("",!0):(i(),u("div",p,[l("div",C,[g(l("button",{id:"speaker-clock",type:"button",class:s(["docked",{paused:e.clock.paused}]),title:r,"aria-label":"Zegar prelegenta",onClick:t[0]||(t[0]=o=>d("pause"))},[t[14]||(t[14]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[15]||(t[15]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2),[[c,!e.clock.hidden]]),l("button",{type:"button","aria-keyshortcuts":"T",disabled:e.clock.idle,title:e.clock.idle?B:void 0,onClick:t[1]||(t[1]=o=>d("pause"))},[n(a(e.clock.paused?"Wznów":"Pauza")+" ",1),t[16]||(t[16]=l("kbd",null,"T",-1))],8,j),l("button",{type:"button","aria-keyshortcuts":"R",onClick:t[2]||(t[2]=o=>d("reset"))},[...t[17]||(t[17]=[n(" Zeruj ",-1),l("kbd",null,"R",-1)])]),l("button",{type:"button","aria-keyshortcuts":"C",onClick:t[3]||(t[3]=o=>d("toggleHidden"))},[n(a(e.clock.hidden?"Pokaż zegar":"Ukryj zegar")+" ",1),t[18]||(t[18]=l("kbd",null,"C",-1))])]),l("div",m,[l("button",{type:"button","aria-pressed":e.panel==="say","aria-keyshortcuts":"P",onClick:t[4]||(t[4]=o=>e.togglePanel("say"))},[...t[19]||(t[19]=[n(" Powiedz ",-1),l("kbd",null,"P",-1)])],8,z),l("button",{type:"button","aria-pressed":e.panel==="notes","aria-keyshortcuts":"N",onClick:t[5]||(t[5]=o=>e.togglePanel("notes"))},[...t[20]||(t[20]=[n(" Notatki ",-1),l("kbd",null,"N",-1)])],8,P),l("button",{type:"button","aria-pressed":e.panel==="srcs","aria-keyshortcuts":"Z",onClick:t[6]||(t[6]=o=>e.togglePanel("srcs"))},[...t[21]||(t[21]=[n(" Źródła ",-1),l("kbd",null,"Z",-1)])],8,$),l("button",{type:"button",class:s(["tool-s",{unavailable:!e.hasSpecial}]),"aria-pressed":e.special,"aria-keyshortcuts":"S",onClick:t[7]||(t[7]=o=>e.toggleSpecial())},[...t[22]||(t[22]=[n(" Slajd specjalny ",-1),l("kbd",null,"S",-1)])],10,S)]),l("div",w,[e.pilot==="active"?(i(),u("span",f,[...t[23]||(t[23]=[l("i",{class:"tools-pilot-dot","aria-hidden":"true"},null,-1),n("Pilot",-1)])])):e.pilot==="elsewhere"?(i(),u("span",F,"Pilot steruje inną kartą")):k("",!0),l("button",{type:"button","aria-pressed":e.light,"aria-keyshortcuts":"J",onClick:t[8]||(t[8]=o=>e.toggleScheme())},[...t[24]||(t[24]=[n(" Jasny ",-1),l("kbd",null,"J",-1)])],8,T),e.fullscreenEnabled?(i(),u("button",{key:2,type:"button","aria-pressed":e.fullscreenOn,"aria-keyshortcuts":"F",onClick:t[9]||(t[9]=o=>e.toggleFullscreen())},[...t[25]||(t[25]=[n(" Pełny ekran ",-1),l("kbd",null,"F",-1)])],8,H)):k("",!0),l("button",{type:"button","aria-keyshortcuts":"H",onClick:t[10]||(t[10]=o=>e.toggleToolbar())},[...t[26]||(t[26]=[n(" Ukryj pasek ",-1),l("kbd",null,"H",-1)])]),l("button",{type:"button",onClick:t[11]||(t[11]=o=>d("close"))},"Zamknij")])])),e.toolbarHidden&&!e.clock.hidden?(i(),u("button",{key:1,id:"speaker-clock",type:"button",class:s(["floating",{paused:e.clock.paused}]),title:r,"aria-label":"Zegar prelegenta",onClick:t[12]||(t[12]=o=>d("pause"))},[t[27]||(t[27]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[28]||(t[28]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2)):k("",!0),e.toolbarHidden?(i(),u("button",{key:2,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:t[13]||(t[13]=o=>e.toggleToolbar())},[...t[29]||(t[29]=[n(" Pokaż pasek ",-1),l("kbd",null,"H",-1)])])):k("",!0)],64))}});export{O as default}; +import{d as y,n as i,c as u,b as l,w as g,aP as c,C as s,t as a,p as n,f as k,F as v}from"./index-C7U0oIvN.js";const p={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},C={class:"tools-group"},j=["disabled","title"],m={class:"tools-group"},z=["aria-pressed"],P=["aria-pressed"],$=["aria-pressed"],S=["aria-pressed"],w={class:"tools-group tools-end"},f={key:0,class:"tools-pilot",role:"status",title:"Telefon steruje tą kartą"},F={key:1,class:"tools-pilot elsewhere",role:"status",title:"Kliknij tę kartę albo naciśnij klawisz, aby przejąć pilota"},T=["aria-pressed"],H=["aria-pressed"],B="Zegar ruszy przy pierwszej zmianie slajdu",r="Klik lub T: pauza · R: zeruj · C: schowaj",O=y({__name:"SpeakerTools",props:{clock:{},panel:{},special:{type:Boolean},hasSpecial:{type:Boolean},fullscreenEnabled:{type:Boolean},fullscreenOn:{type:Boolean},toolbarHidden:{type:Boolean},togglePanel:{type:Function},toggleSpecial:{type:Function},toggleToolbar:{type:Function},toggleFullscreen:{type:Function},light:{type:Boolean},toggleScheme:{type:Function},pilot:{}},emits:["pause","reset","toggleHidden","close"],setup(e,{emit:b}){const d=b;return(Z,t)=>(i(),u(v,null,[e.toolbarHidden?k("",!0):(i(),u("div",p,[l("div",C,[g(l("button",{id:"speaker-clock",type:"button",class:s(["docked",{paused:e.clock.paused}]),title:r,"aria-label":"Zegar prelegenta",onClick:t[0]||(t[0]=o=>d("pause"))},[t[14]||(t[14]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[15]||(t[15]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2),[[c,!e.clock.hidden]]),l("button",{type:"button","aria-keyshortcuts":"T",disabled:e.clock.idle,title:e.clock.idle?B:void 0,onClick:t[1]||(t[1]=o=>d("pause"))},[n(a(e.clock.paused?"Wznów":"Pauza")+" ",1),t[16]||(t[16]=l("kbd",null,"T",-1))],8,j),l("button",{type:"button","aria-keyshortcuts":"R",onClick:t[2]||(t[2]=o=>d("reset"))},[...t[17]||(t[17]=[n(" Zeruj ",-1),l("kbd",null,"R",-1)])]),l("button",{type:"button","aria-keyshortcuts":"C",onClick:t[3]||(t[3]=o=>d("toggleHidden"))},[n(a(e.clock.hidden?"Pokaż zegar":"Ukryj zegar")+" ",1),t[18]||(t[18]=l("kbd",null,"C",-1))])]),l("div",m,[l("button",{type:"button","aria-pressed":e.panel==="say","aria-keyshortcuts":"P",onClick:t[4]||(t[4]=o=>e.togglePanel("say"))},[...t[19]||(t[19]=[n(" Powiedz ",-1),l("kbd",null,"P",-1)])],8,z),l("button",{type:"button","aria-pressed":e.panel==="notes","aria-keyshortcuts":"N",onClick:t[5]||(t[5]=o=>e.togglePanel("notes"))},[...t[20]||(t[20]=[n(" Notatki ",-1),l("kbd",null,"N",-1)])],8,P),l("button",{type:"button","aria-pressed":e.panel==="srcs","aria-keyshortcuts":"Z",onClick:t[6]||(t[6]=o=>e.togglePanel("srcs"))},[...t[21]||(t[21]=[n(" Źródła ",-1),l("kbd",null,"Z",-1)])],8,$),l("button",{type:"button",class:s(["tool-s",{unavailable:!e.hasSpecial}]),"aria-pressed":e.special,"aria-keyshortcuts":"S",onClick:t[7]||(t[7]=o=>e.toggleSpecial())},[...t[22]||(t[22]=[n(" Slajd specjalny ",-1),l("kbd",null,"S",-1)])],10,S)]),l("div",w,[e.pilot==="active"?(i(),u("span",f,[...t[23]||(t[23]=[l("i",{class:"tools-pilot-dot","aria-hidden":"true"},null,-1),n("Pilot",-1)])])):e.pilot==="elsewhere"?(i(),u("span",F,"Pilot steruje inną kartą")):k("",!0),l("button",{type:"button","aria-pressed":e.light,"aria-keyshortcuts":"J",onClick:t[8]||(t[8]=o=>e.toggleScheme())},[...t[24]||(t[24]=[n(" Jasny ",-1),l("kbd",null,"J",-1)])],8,T),e.fullscreenEnabled?(i(),u("button",{key:2,type:"button","aria-pressed":e.fullscreenOn,"aria-keyshortcuts":"F",onClick:t[9]||(t[9]=o=>e.toggleFullscreen())},[...t[25]||(t[25]=[n(" Pełny ekran ",-1),l("kbd",null,"F",-1)])],8,H)):k("",!0),l("button",{type:"button","aria-keyshortcuts":"H",onClick:t[10]||(t[10]=o=>e.toggleToolbar())},[...t[26]||(t[26]=[n(" Ukryj pasek ",-1),l("kbd",null,"H",-1)])]),l("button",{type:"button",onClick:t[11]||(t[11]=o=>d("close"))},"Zamknij")])])),e.toolbarHidden&&!e.clock.hidden?(i(),u("button",{key:1,id:"speaker-clock",type:"button",class:s(["floating",{paused:e.clock.paused}]),title:r,"aria-label":"Zegar prelegenta",onClick:t[12]||(t[12]=o=>d("pause"))},[t[27]||(t[27]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[28]||(t[28]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2)):k("",!0),e.toolbarHidden?(i(),u("button",{key:2,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:t[13]||(t[13]=o=>e.toggleToolbar())},[...t[29]||(t[29]=[n(" Pokaż pasek ",-1),l("kbd",null,"H",-1)])])):k("",!0)],64))}});export{O as default}; diff --git a/public/assets/SyllabiView-COvVJGcR.js b/public/assets/SyllabiView-BTYt0LrL.js similarity index 94% rename from public/assets/SyllabiView-COvVJGcR.js rename to public/assets/SyllabiView-BTYt0LrL.js index 3101a91..95a33c4 100644 --- a/public/assets/SyllabiView-COvVJGcR.js +++ b/public/assets/SyllabiView-BTYt0LrL.js @@ -1 +1 @@ -import{_ as c}from"./PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js";import{d as y,ae as p,o as f,c as a,i as b,F as m,E as Z,x as M,n as l,b as t,t as i,f as n}from"./index-DwX0tlPb.js";const B=[{file:"sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",size:50255},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",size:57715},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",size:51902},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",size:58646},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",size:75386},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",size:64288},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",size:55064}],P={key:0,class:"stack"},E=["href","download"],L={class:"row-main"},h={class:"muted small",style:{margin:"0"}},z={key:0},k={key:1},w={key:1,class:"empty"},v=y({__name:"SyllabiView",setup(W){const u=p();f(()=>{u.loadCourses()});const r=/^sylabus_(\d{4})_(\d{2})-([ZL])_(.+?)-([A-Z]{2})\.pdf$/i,d=M(()=>{const o=new Map;for(const e of u.courses??[])e.code&&!o.has(e.code)&&o.set(e.code,e.name);return B.map(e=>{const s=r.exec(e.file),_=s?.[4]??null;return{...e,code:_,title:_&&o.get(_)||_||e.file,term:s?`${s[1]}/${s[2]} · ${s[3].toUpperCase()==="Z"?"zima":"lato"}`:"",kb:Math.max(1,Math.round(e.size/1024))}}).sort((e,s)=>e.title.localeCompare(s.title,"pl"))});return(o,e)=>(l(),a("div",null,[b(c,{eyebrow:"Karty przedmiotów z USOS",title:"Sylabusy"}),d.value.length?(l(),a("div",P,[(l(!0),a(m,null,Z(d.value,s=>(l(),a("a",{key:s.file,href:s.url,download:s.file,class:"card link"},[t("div",L,[t("h3",null,i(s.title),1),e[0]||(e[0]=t("span",{class:"badge"},"PDF",-1))]),t("p",h,[s.code?(l(),a("span",z,i(s.code),1)):n("",!0),s.term?(l(),a("span",k," · "+i(s.term),1)):n("",!0),t("span",null," · "+i(s.kb)+" KB",1)])],8,E))),128))])):(l(),a("p",w,"Nie ma jeszcze żadnych sylabusów."))]))}});export{v as default}; +import{_ as c}from"./PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js";import{d as y,ae as p,o as f,c as a,i as b,F as m,E as Z,x as M,n as l,b as t,t as i,f as n}from"./index-C7U0oIvN.js";const B=[{file:"sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",size:50255},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",size:57715},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",size:51902},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",size:58646},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",size:75386},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",size:64288},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",size:55064}],P={key:0,class:"stack"},E=["href","download"],L={class:"row-main"},h={class:"muted small",style:{margin:"0"}},z={key:0},k={key:1},w={key:1,class:"empty"},v=y({__name:"SyllabiView",setup(W){const u=p();f(()=>{u.loadCourses()});const r=/^sylabus_(\d{4})_(\d{2})-([ZL])_(.+?)-([A-Z]{2})\.pdf$/i,d=M(()=>{const o=new Map;for(const e of u.courses??[])e.code&&!o.has(e.code)&&o.set(e.code,e.name);return B.map(e=>{const s=r.exec(e.file),_=s?.[4]??null;return{...e,code:_,title:_&&o.get(_)||_||e.file,term:s?`${s[1]}/${s[2]} · ${s[3].toUpperCase()==="Z"?"zima":"lato"}`:"",kb:Math.max(1,Math.round(e.size/1024))}}).sort((e,s)=>e.title.localeCompare(s.title,"pl"))});return(o,e)=>(l(),a("div",null,[b(c,{eyebrow:"Karty przedmiotów z USOS",title:"Sylabusy"}),d.value.length?(l(),a("div",P,[(l(!0),a(m,null,Z(d.value,s=>(l(),a("a",{key:s.file,href:s.url,download:s.file,class:"card link"},[t("div",L,[t("h3",null,i(s.title),1),e[0]||(e[0]=t("span",{class:"badge"},"PDF",-1))]),t("p",h,[s.code?(l(),a("span",z,i(s.code),1)):n("",!0),s.term?(l(),a("span",k," · "+i(s.term),1)):n("",!0),t("span",null," · "+i(s.kb)+" KB",1)])],8,E))),128))])):(l(),a("p",w,"Nie ma jeszcze żadnych sylabusów."))]))}});export{v as default}; diff --git a/public/assets/forms-BEpVKSou.js b/public/assets/forms-L06yLYMm.js similarity index 85% rename from public/assets/forms-BEpVKSou.js rename to public/assets/forms-L06yLYMm.js index 521a61c..84b484e 100644 --- a/public/assets/forms-BEpVKSou.js +++ b/public/assets/forms-L06yLYMm.js @@ -1 +1 @@ -import{A as o}from"./index-DwX0tlPb.js";function a(s){if(s instanceof o){const e={};for(const[r,t]of Object.entries(s.errors))t.length&&(e[r]=t[0]);return{message:Object.keys(e).length&&Object.values(e).includes(s.message)?"":s.message,fields:e}}return{message:"Coś poszło nie tak. Spróbuj ponownie.",fields:{}}}function f(s){return typeof s=="string"&&s.startsWith("/")&&!s.startsWith("//")&&!s.startsWith("/\\")?s:"/"}export{a as f,f as s}; +import{A as o}from"./index-C7U0oIvN.js";function a(s){if(s instanceof o){const e={};for(const[r,t]of Object.entries(s.errors))t.length&&(e[r]=t[0]);return{message:Object.keys(e).length&&Object.values(e).includes(s.message)?"":s.message,fields:e}}return{message:"Coś poszło nie tak. Spróbuj ponownie.",fields:{}}}function f(s){return typeof s=="string"&&s.startsWith("/")&&!s.startsWith("//")&&!s.startsWith("/\\")?s:"/"}export{a as f,f as s}; diff --git a/public/assets/index-DwX0tlPb.js b/public/assets/index-C7U0oIvN.js similarity index 89% rename from public/assets/index-DwX0tlPb.js rename to public/assets/index-C7U0oIvN.js index 78e5095..180efdb 100644 --- a/public/assets/index-DwX0tlPb.js +++ b/public/assets/index-C7U0oIvN.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-PuXzdmEY.js","assets/forms-BEpVKSou.js","assets/oauth-zzthF4BZ.js","assets/RegisterView-DtL0JXFF.js","assets/ForgotView-B03msoeP.js","assets/OAuthCallbackView-Csl3jfGN.js","assets/OAuthRegisterView-duZxFWAp.js","assets/ResetView-DOA68WgQ.js","assets/DashboardView-DY3Afxmw.js","assets/PageHead.vue_vue_type_script_setup_true_lang-B1pClpfu.js","assets/LoadState.vue_vue_type_script_setup_true_lang-B1Roy1az.js","assets/ElectiveBar.vue_vue_type_script_setup_true_lang-CXLLUAOw.js","assets/markdown-CbtkjRI4.js","assets/ScheduleView-BxzKXc4R.js","assets/scrollToHash-CWWIxePp.js","assets/DeadlinesView-Ca_SJNYR.js","assets/CoursesView-BNWw3Bxu.js","assets/CourseView-BnCC_Rx0.js","assets/ReadingItem.vue_vue_type_script_setup_true_lang-W9OQ5xQn.js","assets/ReadingsView-Be4jxK3O.js","assets/MaterialsView-DpX8hmjT.js","assets/MaterialView-DaN3Mhrq.js","assets/ChecklistsView-Dp-c7CQV.js","assets/ChecklistView-DKXicmT_.js","assets/presentations-AE-pigbL.js","assets/SyllabiView-COvVJGcR.js","assets/QuizzesView-CS_US9WK.js","assets/quizzes-BlBom-oJ.js","assets/QuizView-6nKAWJcm.js","assets/MoreView-CDnNzqNs.js","assets/ProfileView-B9o_fiMt.js","assets/MyPresentationsView-sfZYImKG.js","assets/PresentationSpeakerView-CJRi1NtO.js","assets/DeckViewer.vue_vue_type_style_index_0_lang-HQUI_0C3.js","assets/DeckViewer-CkU9_t5d.css","assets/700-D54I7Duj.css","assets/remote-BmhCoAgl.js","assets/PresentationSpeakerView-BSvpqjSO.css","assets/PresentationRemoteView-nYIsdRGZ.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/PresentationRemoteView-DVUglyxS.css","assets/PresentationPublicView-RtRTp6z0.js","assets/PresentationPublicView-BfVrlmS5.css","assets/NotFoundView-QVtbVJBJ.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-4kLADW98.js","assets/forms-L06yLYMm.js","assets/oauth-zzthF4BZ.js","assets/RegisterView-DqKmtqer.js","assets/ForgotView-DBuEDps7.js","assets/OAuthCallbackView-C9qJ7LV6.js","assets/OAuthRegisterView-CP2fNoWb.js","assets/ResetView-D8GUOuU2.js","assets/DashboardView-BL8ALiYs.js","assets/PageHead.vue_vue_type_script_setup_true_lang-CViv37Dt.js","assets/LoadState.vue_vue_type_script_setup_true_lang-QxHbC4UT.js","assets/ElectiveBar.vue_vue_type_script_setup_true_lang-C5IL-Omj.js","assets/markdown-CbtkjRI4.js","assets/ScheduleView-DVYsjbSm.js","assets/scrollToHash-PZXPXyf9.js","assets/DeadlinesView-BBWlRaTw.js","assets/CoursesView-CInolXzZ.js","assets/CourseView-DInOCNo3.js","assets/ReadingItem.vue_vue_type_script_setup_true_lang-rhNqWgeU.js","assets/ReadingsView-BeAMdWZP.js","assets/MaterialsView-Cd7ekBUq.js","assets/MaterialView-BQihcwI-.js","assets/ChecklistsView-C6uVihIb.js","assets/ChecklistView-BaObGek0.js","assets/presentations-CObEuepN.js","assets/SyllabiView-BTYt0LrL.js","assets/QuizzesView-BiZkQOtX.js","assets/quizzes-ClZx_Cui.js","assets/QuizView-V5rbG-HP.js","assets/MoreView-BOP30Fre.js","assets/ProfileView-Cw1IkbJQ.js","assets/MyPresentationsView-AURGskMI.js","assets/PresentationSpeakerView-4ASJ9Fw7.js","assets/DeckViewer.vue_vue_type_style_index_0_lang-DeS8_mVQ.js","assets/DeckViewer-CkU9_t5d.css","assets/700-D54I7Duj.css","assets/remote-BmhCoAgl.js","assets/PresentationSpeakerView-BSvpqjSO.css","assets/PresentationRemoteView-D4LTAFiH.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/PresentationRemoteView-DVUglyxS.css","assets/PresentationPublicView-BxkUqRJW.js","assets/PresentationPublicView-BfVrlmS5.css","assets/NotFoundView-BO0GMfPQ.js"])))=>i.map(i=>d[i]); var Jc=Object.defineProperty;var Yc=(e,t,n)=>t in e?Jc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Rn=(e,t,n)=>Yc(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function bi(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const we={},pn=[],Ct=()=>{},_l=()=>!1,Xs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),er=e=>e.startsWith("onUpdate:"),Fe=Object.assign,wi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Qc=Object.prototype.hasOwnProperty,ye=(e,t)=>Qc.call(e,t),Q=Array.isArray,nn=e=>ys(e)==="[object Map]",Bt=e=>ys(e)==="[object Set]",no=e=>ys(e)==="[object Date]",se=e=>typeof e=="function",Pe=e=>typeof e=="string",lt=e=>typeof e=="symbol",ve=e=>e!==null&&typeof e=="object",bl=e=>(ve(e)||se(e))&&se(e.then)&&se(e.catch),wl=Object.prototype.toString,ys=e=>wl.call(e),Zc=e=>ys(e).slice(8,-1),El=e=>ys(e)==="[object Object]",tr=e=>Pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zn=bi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),nr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Xc=/-\w/g,et=nr(e=>e.replace(Xc,t=>t.slice(1).toUpperCase())),eu=/\B([A-Z])/g,on=nr(e=>e.replace(eu,"-$1").toLowerCase()),sr=nr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Pr=nr(e=>e?`on${sr(e)}`:""),At=(e,t)=>!Object.is(e,t),js=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},rr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let so;const ir=()=>so||(so=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ei(e){if(Q(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(tu).forEach(n=>{if(n){const s=n.split(nu);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Mn(e){let t="";if(Pe(e))t=e;else if(Q(e))for(let n=0;nqt(n,t))}const Al=e=>!!(e&&e.__v_isRef===!0),Wt=e=>Pe(e)?e:e==null?"":Q(e)||ve(e)&&(e.toString===wl||!se(e.toString))?Al(e)?Wt(e.value):JSON.stringify(e,Tl,2):String(e),Tl=(e,t)=>Al(t)?Tl(e,t.value):nn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Or(s,i)+" =>"]=r,n),{})}:Bt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:lt(t)?Or(t):ve(t)&&!Q(t)&&!El(t)?String(t):t,Or=(e,t="")=>{var n;return lt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let ze;class xl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ze&&(ze.active?(this.parent=ze,this.index=(ze.scopes||(ze.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(ze===this)ze=this.prevScope;else{let t=ze;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(es){let t=es;for(es=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Xn;){let t=Xn;for(Xn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Il(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ll(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),Ti(s),uu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Qr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Dl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Dl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ls)||(e.globalVersion=ls,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Qr(e))))return;e.flags|=2;const t=e.dep,n=Re,s=pt;Re=e,pt=!0;try{Il(e);const r=e.fn(e._value);(t.version===0||At(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Re=n,pt=s,Ll(e),e.flags&=-3}}function Ti(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ti(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function uu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let pt=!0;const Nl=[];function Ut(){Nl.push(pt),pt=!1}function Ht(){const e=Nl.pop();pt=e===void 0?!0:e}function oo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Re;Re=void 0;try{t()}finally{Re=n}}}let ls=0;class fu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class xi{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Re||!pt||Re===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Re)n=this.activeLink=new fu(Re,this),Re.deps?(n.prevDep=Re.depsTail,Re.depsTail.nextDep=n,Re.depsTail=n):Re.deps=Re.depsTail=n,jl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Re.depsTail,n.nextDep=void 0,Re.depsTail.nextDep=n,Re.depsTail=n,Re.deps===n&&(Re.deps=s)}return n}trigger(t){this.version++,ls++,this.notify(t)}notify(t){Ri();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ai()}}}function jl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)jl(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Bs=new WeakMap,yn=Symbol(""),Zr=Symbol(""),as=Symbol("");function Ge(e,t,n){if(pt&&Re){let s=Bs.get(e);s||Bs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new xi),r.map=s,r.key=n),r.track()}}function $t(e,t,n,s,r,i){const o=Bs.get(e);if(!o){ls++;return}const l=a=>{a&&a.trigger()};if(Ri(),t==="clear")o.forEach(l);else{const a=Q(e),c=a&&tr(n);if(a&&n==="length"){const u=Number(s);o.forEach((f,p)=>{(p==="length"||p===as||!lt(p)&&p>=u)&&l(f)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),c&&l(o.get(as)),t){case"add":a?c&&l(o.get("length")):(l(o.get(yn)),nn(e)&&l(o.get(Zr)));break;case"delete":a||(l(o.get(yn)),nn(e)&&l(o.get(Zr)));break;case"set":nn(e)&&l(o.get(yn));break}}Ai()}function du(e,t){const n=Bs.get(e);return n&&n.get(t)}function An(e){const t=de(e);return t===e||(Ge(t,"iterate",as),ot(e))?t:Ot(e)?Pt(e)?t.map(n=>rn(dt(n))):t.map(rn):t.map(dt)}function or(e){return Ge(e=de(e),"iterate",as),e}function St(e,t){return Ot(e)?rn(Pt(e)?dt(t):t):dt(t)}const hu={__proto__:null,[Symbol.iterator](){return kr(this,Symbol.iterator,e=>St(this,e))},concat(...e){return An(this).concat(...e.map(t=>Q(t)?An(t):t))},entries(){return kr(this,"entries",e=>(e[1]=St(this,e[1]),e))},every(e,t){return kt(this,"every",e,t,void 0,arguments)},filter(e,t){return kt(this,"filter",e,t,n=>n.map(s=>St(this,s)),arguments)},find(e,t){return kt(this,"find",e,t,n=>St(this,n),arguments)},findIndex(e,t){return kt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return kt(this,"findLast",e,t,n=>St(this,n),arguments)},findLastIndex(e,t){return kt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return kt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ir(this,"includes",e)},indexOf(...e){return Ir(this,"indexOf",e)},join(e){return An(this).join(e)},lastIndexOf(...e){return Ir(this,"lastIndexOf",e)},map(e,t){return kt(this,"map",e,t,void 0,arguments)},pop(){return qn(this,"pop")},push(...e){return qn(this,"push",e)},reduce(e,...t){return lo(this,"reduce",e,t)},reduceRight(e,...t){return lo(this,"reduceRight",e,t)},shift(){return qn(this,"shift")},some(e,t){return kt(this,"some",e,t,void 0,arguments)},splice(...e){return qn(this,"splice",e)},toReversed(){return An(this).toReversed()},toSorted(e){return An(this).toSorted(e)},toSpliced(...e){return An(this).toSpliced(...e)},unshift(...e){return qn(this,"unshift",e)},values(){return kr(this,"values",e=>St(this,e))}};function kr(e,t,n){const s=or(e),r=s[t]();return s!==e&&!ot(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const pu=Array.prototype;function kt(e,t,n,s,r,i){const o=or(e),l=o!==e&&!ot(e),a=o[t];if(a!==pu[t]){const f=a.apply(e,i);return l?dt(f):f}let c=n;o!==e&&(l?c=function(f,p){return n.call(this,St(e,f),p,e)}:n.length>2&&(c=function(f,p){return n.call(this,f,p,e)}));const u=a.call(o,c,s);return l&&r?r(u):u}function lo(e,t,n,s){const r=or(e),i=r!==e&&!ot(e);let o=n,l=!1;r!==e&&(i?(l=s.length===0,o=function(c,u,f){return l&&(l=!1,c=St(e,c)),n.call(this,c,St(e,u),f,e)}):n.length>3&&(o=function(c,u,f){return n.call(this,c,u,f,e)}));const a=r[t](o,...s);return l?St(e,a):a}function Ir(e,t,n){const s=de(e);Ge(s,"iterate",as);const r=s[t](...n);return(r===-1||r===!1)&&lr(n[0])?(n[0]=de(n[0]),s[t](...n)):r}function qn(e,t,n=[]){Ut(),Ri();const s=de(e)[t].apply(e,n);return Ai(),Ht(),s}const mu=bi("__proto__,__v_isRef,__isVue"),$l=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(lt));function gu(e){lt(e)||(e=String(e));const t=de(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class zl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Tu:ql:i?Bl:Fl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=Q(t);if(!r){let a;if(o&&(a=hu[n]))return a;if(n==="hasOwnProperty")return gu}const l=Reflect.get(t,n,Ie(t)?t:s);if((lt(n)?$l.has(n):mu(n))||(r||Ge(t,"get",n),i))return l;if(Ie(l)){const a=o&&tr(n)?l:l.value;return r&&ve(a)?ei(a):a}return ve(l)?r?ei(l):vs(l):l}}class Vl extends zl{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=Q(t)&&tr(n);if(!this._isShallow){const c=Ot(i);if(!ot(s)&&!Ot(s)&&(i=de(i),s=de(s)),!o&&Ie(i)&&!Ie(s))return c||(i.value=s),!0}const l=o?Number(n)e,xs=e=>Reflect.getPrototypeOf(e);function wu(e,t,n){return function(...s){const r=this.__v_raw,i=de(r),o=nn(i),l=e==="entries"||e===Symbol.iterator&&o,a=e==="keys"&&o,c=r[e](...s),u=n?Xr:t?rn:dt;return!t&&Ge(i,"iterate",a?Zr:yn),Fe(Object.create(c),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:l?[u(f[0]),u(f[1])]:u(f),done:p}}})}}function Cs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Eu(e,t){const n={get(r){const i=this.__v_raw,o=de(i),l=de(r);e||(At(r,l)&&Ge(o,"get",r),Ge(o,"get",l));const{has:a}=xs(o),c=t?Xr:e?rn:dt;if(a.call(o,r))return c(i.get(r));if(a.call(o,l))return c(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Ge(de(r),"iterate",yn),r.size},has(r){const i=this.__v_raw,o=de(i),l=de(r);return e||(At(r,l)&&Ge(o,"has",r),Ge(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,a=de(l),c=t?Xr:e?rn:dt;return!e&&Ge(a,"iterate",yn),l.forEach((u,f)=>r.call(i,c(u),c(f),o))}};return Fe(n,e?{add:Cs("add"),set:Cs("set"),delete:Cs("delete"),clear:Cs("clear")}:{add(r){const i=de(this),o=xs(i),l=de(r),a=!t&&!ot(r)&&!Ot(r)?l:r;return o.has.call(i,a)||At(r,a)&&o.has.call(i,r)||At(l,a)&&o.has.call(i,l)||(i.add(a),$t(i,"add",a,a)),this},set(r,i){!t&&!ot(i)&&!Ot(i)&&(i=de(i));const o=de(this),{has:l,get:a}=xs(o);let c=l.call(o,r);c||(r=de(r),c=l.call(o,r));const u=a.call(o,r);return o.set(r,i),c?At(i,u)&&$t(o,"set",r,i):$t(o,"add",r,i),this},delete(r){const i=de(this),{has:o,get:l}=xs(i);let a=o.call(i,r);a||(r=de(r),a=o.call(i,r)),l&&l.call(i,r);const c=i.delete(r);return a&&$t(i,"delete",r,void 0),c},clear(){const r=de(this),i=r.size!==0,o=r.clear();return i&&$t(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=wu(r,e,t)}),n}function Ci(e,t){const n=Eu(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(ye(n,r)&&r in s?n:s,r,i)}const Su={get:Ci(!1,!1)},Ru={get:Ci(!1,!0)},Au={get:Ci(!0,!1)};const Fl=new WeakMap,Bl=new WeakMap,ql=new WeakMap,Tu=new WeakMap;function xu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vs(e){return Ot(e)?e:Pi(e,!1,vu,Su,Fl)}function Ul(e){return Pi(e,!1,bu,Ru,Bl)}function ei(e){return Pi(e,!0,_u,Au,ql)}function Pi(e,t,n,s,r){if(!ve(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=xu(Zc(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function Pt(e){return Ot(e)?Pt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ot(e){return!!(e&&e.__v_isReadonly)}function ot(e){return!!(e&&e.__v_isShallow)}function lr(e){return e?!!e.__v_raw:!1}function de(e){const t=e&&e.__v_raw;return t?de(t):e}function Oi(e){return!ye(e,"__v_skip")&&Object.isExtensible(e)&&Sl(e,"__v_skip",!0),e}const dt=e=>ve(e)?vs(e):e,rn=e=>ve(e)?ei(e):e;function Ie(e){return e?e.__v_isRef===!0:!1}function te(e){return Hl(e,!1)}function Ln(e){return Hl(e,!0)}function Hl(e,t){return Ie(e)?e:new Cu(e,t)}class Cu{constructor(t,n){this.dep=new xi,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:de(t),this._value=n?t:dt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||ot(t)||Ot(t);t=s?t:de(t),At(t,n)&&(this._rawValue=t,this._value=s?t:dt(t),this.dep.trigger())}}function Le(e){return Ie(e)?e.value:e}function Pm(e){return se(e)?e():Le(e)}const Pu={get:(e,t,n)=>t==="__v_raw"?e:Le(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Ie(r)&&!Ie(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Kl(e){return Pt(e)?e:new Proxy(e,Pu)}function Ou(e){const t=Q(e)?new Array(e.length):{};for(const n in e)t[n]=ku(e,n);return t}class Mu{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=lt(n)?n:String(n),this._raw=de(t);let r=!0,i=t;if(!Q(t)||lt(this._key)||!tr(this._key))do r=!lr(i)||ot(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Le(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ie(this._raw[this._key])){const n=this._object[this._key];if(Ie(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return du(this._raw,this._key)}}function ku(e,t,n){return new Mu(e,t,n)}class Iu{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new xi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ls-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Re!==this)return kl(this,!0),!0}get value(){const t=this.dep.track();return Dl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Lu(e,t,n=!1){let s,r;return se(e)?s=e:(s=e.get,r=e.set),new Iu(s,r,n)}const Ps={},qs=new WeakMap;let dn;function Du(e,t=!1,n=dn){if(n){let s=qs.get(n);s||qs.set(n,s=[]),s.push(e)}}function Nu(e,t,n=we){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:a}=n,c=O=>r?O:ot(O)||r===!1||r===0?zt(O,1):zt(O);let u,f,p,g,b=!1,w=!1;if(Ie(e)?(f=()=>e.value,b=ot(e)):Pt(e)?(f=()=>c(e),b=!0):Q(e)?(w=!0,b=e.some(O=>Pt(O)||ot(O)),f=()=>e.map(O=>{if(Ie(O))return O.value;if(Pt(O))return c(O);if(se(O))return a?a(O,2):O()})):se(e)?t?f=a?()=>a(e,2):e:f=()=>{if(p){Ut();try{p()}finally{Ht()}}const O=dn;dn=u;try{return a?a(e,3,[g]):e(g)}finally{dn=O}}:f=Ct,t&&r){const O=f,N=r===!0?1/0:r;f=()=>zt(O(),N)}const S=Pl(),E=()=>{u.stop(),S&&S.active&&wi(S.effects,u)};if(i&&t){const O=t;t=(...N)=>{const Z=O(...N);return E(),Z}}let y=w?new Array(e.length).fill(Ps):Ps;const P=O=>{if(!(!(u.flags&1)||!u.dirty&&!O))if(t){const N=u.run();if(O||r||b||(w?N.some((Z,j)=>At(Z,y[j])):At(N,y))){p&&p();const Z=dn;dn=u;try{const j=[N,y===Ps?void 0:w&&y[0]===Ps?[]:y,g];y=N,a?a(t,3,j):t(...j)}finally{dn=Z}}}else u.run()};return l&&l(P),u=new Ol(f),u.scheduler=o?()=>o(P,!1):P,g=O=>Du(O,!1,u),p=u.onStop=()=>{const O=qs.get(u);if(O){if(a)a(O,4);else for(const N of O)N();qs.delete(u)}},t?s?P(!0):y=u.run():o?o(P.bind(null,!0),!0):u.run(),E.pause=u.pause.bind(u),E.resume=u.resume.bind(u),E.stop=E,E}function zt(e,t=1/0,n){if(t<=0||!ve(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ie(e))zt(e.value,t,n);else if(Q(e))for(let s=0;s{zt(s,t,n)});else if(El(e)){for(const s in e)zt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&zt(e[s],t,n)}return e}function _s(e,t,n,s){try{return s?e(...s):e()}catch(r){bs(r,t,n)}}function mt(e,t,n,s){if(se(e)){const r=_s(e,t,n,s);return r&&bl(r)&&r.catch(i=>{bs(i,t,n)}),r}if(Q(e)){const r=[];for(let i=0;i>>1,r=Ze[s],i=cs(r);i=cs(n)?Ze.push(e):Ze.splice($u(t),0,e),e.flags|=1,Wl()}}function Wl(){Us||(Us=Gl.then(Yl))}function zu(e){if(!Q(e))Zt&&e.id===-1?Zt.splice(Cn+1,0,e):e.flags&1||(kn.push(e),e.flags|=1);else for(let t=0;tcs(n)-cs(s));if(kn.length=0,Zt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function Yl(e){try{for(Et=0;Et{s._d&&Ws(-1);const i=Hs(t),o=Ft.length;let l;try{l=e(...r)}finally{for(let a=Ft.length;a>o;a--)$i();Hs(i),s._d&&Ws(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Vu(e,t){if(qe===null)return e;const n=pr(qe),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&se(t)?t.call(s&&s.proxy):t}}function Fu(){return!!(zi()||_n)}const Bu=Symbol.for("v-scx"),qu=()=>ft(Bu);function vn(e,t,n){return Zl(e,t,n)}function Zl(e,t,n=we){const{immediate:s,deep:r,flush:i,once:o}=n,l=Fe({},n),a=t&&s||!t&&i!=="post";let c;if(Nn){if(i==="sync"){const g=qu();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!a){const g=()=>{};return g.stop=Ct,g.resume=Ct,g.pause=Ct,g}}const u=Be;l.call=(g,b,w)=>mt(g,u,b,w);let f=!1;i==="post"?l.scheduler=g=>{Ye(g,u&&u.suspense)}:i!=="sync"&&(f=!0,l.scheduler=(g,b)=>{b?g():Mi(g)}),l.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const p=Nu(e,t,l);return Nn&&(c?c.push(p):a&&p()),p}function Uu(e,t,n){const s=this.proxy,r=Pe(e)?e.includes(".")?Xl(s,e):()=>s[e]:e.bind(s,s);let i;se(t)?i=t:(i=t.handler,n=t);const o=ws(this),l=Zl(r,i.bind(s),n);return o(),l}function Xl(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,hn=e=>e&&(e.disabled||e.disabled===""),Hu=e=>e&&(e.defer||e.defer===""),co=e=>typeof SVGElement<"u"&&e instanceof SVGElement,uo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ti=(e,t)=>{const n=e&&e.to;return Pe(n)?t?t(n):null:n},Ku={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,i,o,l,a,c){const{mc:u,pc:f,pbc:p,o:{insert:g,querySelector:b,createText:w,createComment:S,parentNode:E}}=c,y=hn(t.props);let{dynamicChildren:P}=t;const O=(j,F,B)=>{j.shapeFlag&16&&u(j.children,F,B,r,i,o,l,a)},N=(j=t)=>{const F=hn(j.props),B=j.target=ti(j.props,b),oe=ni(B,j,w,g);B&&(o!=="svg"&&co(B)?o="svg":o!=="mathml"&&uo(B)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(B),F||(O(j,B,oe),Jn(j,!1)))},Z=j=>{const F=()=>{if(Jt.get(j)===F){if(Jt.delete(j),hn(j.props)){const B=E(j.el)||n;O(j,B,j.anchor),Jn(j,!0)}N(j)}};Jt.set(j,F),Ye(F,i)};if(e==null){const j=t.el=w(""),F=t.anchor=w("");if(g(j,n,s),g(F,n,s),Hu(t.props)||i&&i.pendingBranch){Z(t);return}y&&(O(t,n,F),Jn(t,!0)),N()}else{t.el=e.el;const j=t.anchor=e.anchor,F=Jt.get(e);if(F){F.flags|=8,Jt.delete(e),Z(t);return}t.targetStart=e.targetStart;const B=t.target=e.target,oe=t.targetAnchor=e.targetAnchor,L=hn(e.props),Te=L?n:B,xe=L?j:oe;if(o==="svg"||co(B)?o="svg":(o==="mathml"||uo(B))&&(o="mathml"),P?(p(e.dynamicChildren,P,Te,r,i,o,l),ji(e,t,!0)):a||f(e,t,Te,xe,r,i,o,l,!1),y)L?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Os(t,n,j,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const U=ti(t.props,b);U&&(t.target=U,Os(t,U,null,c,0))}else L&&Os(t,B,oe,c,1);Jn(t,y)}},remove(e,t,n,{um:s,o:{remove:r}},i){const{shapeFlag:o,children:l,anchor:a,targetStart:c,targetAnchor:u,target:f,props:p}=e,g=hn(p),b=i||!g,w=Jt.get(e);if(w&&(w.flags|=8,Jt.delete(e)),f&&(r(c),r(u)),i&&r(a),!w&&(g||f)&&o&16)for(let S=0;S1){for(const n of e)if(n.type!==Mt){t=n;break}}return t}function ta(e){if(!ur(e))return cr(e.type)&&e.children?Wu(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function ki(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;ki(cr(n.type)&&ta(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Vn(e,t){return se(e)?Fe({name:e.name},t,{setup:e}):e}function Mm(){const e=zi();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""}function Ii(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function fo(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Ks=new WeakMap;function ns(e,t,n,s,r=!1){if(Q(e)){e.forEach((w,S)=>ns(w,t&&(Q(t)?t[S]:t),n,s,r));return}if(In(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&ns(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?pr(s.component):s.el,o=r?null:i,{i:l,r:a}=e,c=t&&t.r,u=l.refs===we?l.refs={}:l.refs,f=l.setupState,p=de(f),g=f===we?_l:w=>fo(u,w)?!1:ye(p,w),b=(w,S)=>!(S&&fo(u,S));if(c!=null&&c!==a){if(ho(t),Pe(c))u[c]=null,g(c)&&(f[c]=null);else if(Ie(c)){const w=t;b(c,w.k)&&(c.value=null),w.k&&(u[w.k]=null)}}if(se(a))_s(a,l,12,[o,u]);else{const w=Pe(a),S=Ie(a);if(w||S){const E=()=>{if(e.f){const y=w?g(a)?f[a]:u[a]:b()||!e.k?a.value:u[e.k];if(r)Q(y)&&wi(y,i);else if(Q(y))y.includes(i)||y.push(i);else if(w)u[a]=[i],g(a)&&(f[a]=u[a]);else{const P=[i];b(a,e.k)&&(a.value=P),e.k&&(u[e.k]=P)}}else w?(u[a]=o,g(a)&&(f[a]=o)):S&&(b(a,e.k)&&(a.value=o),e.k&&(u[e.k]=o))};if(o){const y=()=>{E(),Ks.delete(e)};y.id=-1,Ks.set(e,y),Ye(y,n)}else ho(e),E()}}}function ho(e){const t=Ks.get(e);t&&(t.flags|=8,Ks.delete(e))}const po=e=>e.nodeType===8;ir().requestIdleCallback;ir().cancelIdleCallback;function Ju(e,t){if(po(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(po(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const In=e=>!!e.type.__asyncLoader;function km(e){se(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:i,timeout:o,suspensible:l=!0,onError:a}=e;let c=null,u,f=0;const p=()=>(f++,c=null,g()),g=()=>{let b;return c||(b=c=t().catch(w=>{if(w=w instanceof Error?w:new Error(String(w)),a)return new Promise((S,E)=>{a(w,()=>S(p()),()=>E(w),f+1)});throw w}).then(w=>b!==c&&c?c:(w&&(w.__esModule||w[Symbol.toStringTag]==="Module")&&(w=w.default),u=w,w)))};return Vn({name:"AsyncComponentWrapper",__asyncLoader:g,__asyncHydrate(b,w,S){const E=b.isConnected;let y=!1;(w.bu||(w.bu=[])).push(()=>y=!0);const P=()=>{y||!b.parentNode||E&&!b.isConnected||S()},O=i?()=>{const N=i(P,Z=>Ju(b,Z));N&&(w.bum||(w.bum=[])).push(N)}:P;u?O():g().then(()=>!w.isUnmounted&&O())},get __asyncResolved(){return u},setup(){const b=Be;if(Ii(b),u)return()=>Ms(u,b);const w=N=>{c=null,bs(N,b,13,!s)};if(l&&b.suspense||Nn)return g().then(N=>()=>Ms(N,b)).catch(N=>(w(N),()=>s?Ce(s,{error:N}):null));const S=te(!1),E=te(),y=te(!!r);let P,O;return Li(()=>{P!=null&&clearTimeout(P),O!=null&&clearTimeout(O)}),r&&(O=setTimeout(()=>{b.isUnmounted||(y.value=!1)},r)),o!=null&&(P=setTimeout(()=>{if(!b.isUnmounted&&!S.value&&!E.value){const N=new Error(`Async component timed out after ${o}ms.`);w(N),E.value=N}},o)),g().then(()=>{b.isUnmounted||(S.value=!0,b.parent&&ur(b.parent.vnode)&&b.parent.update())}).catch(N=>{if(b.isUnmounted){c=null;return}w(N),E.value=N}),()=>{if(S.value&&u)return Ms(u,b);if(E.value&&s)return Ce(s,{error:E.value});if(n&&!y.value)return Ms(n,b)}}})}function Ms(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=Ce(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const ur=e=>e.type.__isKeepAlive;function Yu(e,t){na(e,"a",t)}function Qu(e,t){na(e,"da",t)}function na(e,t,n=Be){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(fr(t,s,n),n){let r=n.parent;for(;r&&r.parent;)ur(r.parent.vnode)&&Zu(s,t,n,r),r=r.parent}}function Zu(e,t,n,s){const r=fr(t,e,s,!0);Li(()=>{wi(s[t],r)},n)}function fr(e,t,n=Be,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Ut();const l=ws(n),a=mt(t,n,e,o);return l(),Ht(),a});return s?r.unshift(i):r.push(i),i}}const Kt=e=>(t,n=Be)=>{(!Nn||e==="sp")&&fr(e,(...s)=>t(...s),n)},Xu=Kt("bm"),ef=Kt("m"),tf=Kt("bu"),nf=Kt("u"),sf=Kt("bum"),Li=Kt("um"),rf=Kt("sp"),of=Kt("rtg"),lf=Kt("rtc");function af(e,t=Be){fr("ec",e,t)}const cf="components";function sa(e,t){return ff(cf,e,!0,t)||e}const uf=Symbol.for("v-ndc");function ff(e,t,n=!0,s=!1){const r=qe||Be;if(r){const i=r.type;{const l=Jf(i,!1);if(l&&(l===t||l===et(t)||l===sr(et(t))))return i}const o=mo(r[e]||i[e],t)||mo(r.appContext[e],t);return!o&&s?i:o}}function mo(e,t){return e&&(e[t]||e[et(t)]||e[sr(et(t))])}function go(e,t,n,s){let r;const i=n,o=Q(e);if(o||Pe(e)){const l=o&&Pt(e);let a=!1,c=!1;l&&(a=!ot(e),c=Ot(e),e=or(e)),r=new Array(e.length);for(let u=0,f=e.length;ut(l,a,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let a=0,c=l.length;a0;return t!=="default"&&(c.name=t),tt(),fs(nt,null,[Ce("slot",c,s)],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const l=Ft.length;tt();let a;try{const c=o&&ra(o(n)),u=n.key||i||c&&c.key;a=fs(nt,{key:(u&&!lt(u)?u:`_${t}`)+(!c&&s?"_fb":"")},c||(s?s():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ft.length;u>l;u--)$i();throw c}finally{o&&o._c&&(o._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function ra(e){return e.some(t=>ds(t)?!(t.type===Mt||t.type===nt&&!ra(t.children)):!0)?e:null}const si=e=>e?Sa(e)?pr(e):si(e.parent):null,ss=Fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>si(e.parent),$root:e=>si(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>oa(e),$forceUpdate:e=>e.f||(e.f=()=>{Mi(e.update)}),$nextTick:e=>e.n||(e.n=ar.bind(e.proxy)),$watch:e=>Uu.bind(e)}),Dr=(e,t)=>e!==we&&!e.__isScriptSetup&&ye(e,t),hf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:a}=e;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Dr(s,t))return o[t]=1,s[t];if(r!==we&&ye(r,t))return o[t]=2,r[t];if(ye(i,t))return o[t]=3,i[t];if(n!==we&&ye(n,t))return o[t]=4,n[t];ri&&(o[t]=0)}}const c=ss[t];let u,f;if(c)return t==="$attrs"&&Ge(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==we&&ye(n,t))return o[t]=4,n[t];if(f=a.config.globalProperties,ye(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Dr(r,t)?(r[t]=n,!0):s!==we&&ye(s,t)?(s[t]=n,!0):ye(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},l){let a;return!!(n[l]||e!==we&&l[0]!=="$"&&ye(e,l)||Dr(t,l)||ye(i,l)||ye(s,l)||ye(ss,l)||ye(r.config.globalProperties,l)||(a=o.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ye(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function yo(e){return Q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ri=!0;function pf(e){const t=oa(e),n=e.proxy,s=e.ctx;ri=!1,t.beforeCreate&&vo(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:a,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:g,updated:b,activated:w,deactivated:S,beforeDestroy:E,beforeUnmount:y,destroyed:P,unmounted:O,render:N,renderTracked:Z,renderTriggered:j,errorCaptured:F,serverPrefetch:B,expose:oe,inheritAttrs:L,components:Te,directives:xe,filters:U}=t;if(c&&mf(c,s,null),o)for(const G in o){const re=o[G];se(re)&&(s[G]=re.bind(n))}if(r){const G=r.call(n,n);ve(G)&&(e.data=vs(G))}if(ri=!0,i)for(const G in i){const re=i[G],De=se(re)?re.bind(n,n):se(re.get)?re.get.bind(n,n):Ct,pe=!se(re)&&se(re.set)?re.set.bind(n):Ct,Se=ne({get:De,set:pe});Object.defineProperty(s,G,{enumerable:!0,configurable:!0,get:()=>Se.value,set:Oe=>Se.value=Oe})}if(l)for(const G in l)ia(l[G],s,n,G);if(a){const G=se(a)?a.call(n):a;Reflect.ownKeys(G).forEach(re=>{$s(re,G[re])})}u&&vo(u,e,"c");function X(G,re){Q(re)?re.forEach(De=>G(De.bind(n))):re&&G(re.bind(n))}if(X(Xu,f),X(ef,p),X(tf,g),X(nf,b),X(Yu,w),X(Qu,S),X(af,F),X(lf,Z),X(of,j),X(sf,y),X(Li,O),X(rf,B),Q(oe))if(oe.length){const G=e.exposed||(e.exposed={});oe.forEach(re=>{Object.defineProperty(G,re,{get:()=>n[re],set:De=>n[re]=De,enumerable:!0})})}else e.exposed||(e.exposed={});N&&e.render===Ct&&(e.render=N),L!=null&&(e.inheritAttrs=L),Te&&(e.components=Te),xe&&(e.directives=xe),B&&Ii(e)}function mf(e,t,n=Ct){Q(e)&&(e=ii(e));for(const s in e){const r=e[s];let i;ve(r)?"default"in r?i=ft(r.from||s,r.default,!0):i=ft(r.from||s):i=ft(r),Ie(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function vo(e,t,n){mt(Q(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function ia(e,t,n,s){let r=s.includes(".")?Xl(n,s):()=>n[s];if(Pe(e)){const i=t[e];se(i)&&vn(r,i)}else if(se(e))vn(r,e.bind(n));else if(ve(e))if(Q(e))e.forEach(i=>ia(i,t,n,s));else{const i=se(e.handler)?e.handler.bind(n):t[e.handler];se(i)&&vn(r,i,e)}}function oa(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let a;return l?a=l:!r.length&&!n&&!s?a=t:(a={},r.length&&r.forEach(c=>Gs(a,c,o,!0)),Gs(a,t,o)),ve(t)&&i.set(t,a),a}function Gs(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Gs(e,i,n,!0),r&&r.forEach(o=>Gs(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=gf[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const gf={data:_o,props:bo,emits:bo,methods:Yn,computed:Yn,beforeCreate:Je,created:Je,beforeMount:Je,mounted:Je,beforeUpdate:Je,updated:Je,beforeDestroy:Je,beforeUnmount:Je,destroyed:Je,unmounted:Je,activated:Je,deactivated:Je,errorCaptured:Je,serverPrefetch:Je,components:Yn,directives:Yn,watch:vf,provide:_o,inject:yf};function _o(e,t){return t?e?function(){return Fe(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function yf(e,t){return Yn(ii(e),ii(t))}function ii(e){if(Q(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${et(t)}Modifiers`]||e[`${on(t)}Modifiers`];function Ef(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||we;let r=n;const i=t.startsWith("update:"),o=i&&wf(s,t.slice(7));o&&(o.trim&&(r=n.map(u=>Pe(u)?u.trim():u)),o.number&&(r=r.map(rr)));let l,a=s[l=Pr(t)]||s[l=Pr(et(t))];!a&&i&&(a=s[l=Pr(on(t))]),a&&mt(a,e,6,r);const c=s[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,mt(c,e,6,r)}}const Sf=new WeakMap;function aa(e,t,n=!1){const s=n?Sf:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!se(e)){const a=c=>{const u=aa(c,t,!0);u&&(l=!0,Fe(o,u))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!l?(ve(e)&&s.set(e,null),null):(Q(i)?i.forEach(a=>o[a]=null):Fe(o,i),ve(e)&&s.set(e,o),o)}function dr(e,t){return!e||!Xs(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),ye(e,t[0].toLowerCase()+t.slice(1))||ye(e,on(t))||ye(e,t))}function wo(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:a,render:c,renderCache:u,props:f,data:p,setupState:g,ctx:b,inheritAttrs:w}=e,S=Hs(e);let E,y;try{if(n.shapeFlag&4){const O=r||s,N=O;E=Rt(c.call(N,O,u,f,g,p,b)),y=l}else{const O=t;E=Rt(O.length>1?O(f,{attrs:l,slots:o,emit:a}):O(f,null)),y=t.props?l:Rf(l)}}catch(O){Ft.length=0,bs(O,e,1),E=Ce(Mt)}let P=E;if(y&&w!==!1){const O=Object.keys(y),{shapeFlag:N}=P;O.length&&N&7&&(i&&O.some(er)&&(y=Af(y,i)),P=Dn(P,y,!1,!0))}if(n.dirs&&(P=Dn(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition){const O=cr(P.type)&&ta(P)||P;ki(O,n.transition)}return E=P,Hs(S),E}const Rf=e=>{let t;for(const n in e)(n==="class"||n==="style"||Xs(n))&&((t||(t={}))[n]=e[n]);return t},Af=(e,t)=>{const n={};for(const s in e)(!er(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Tf(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:a}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return s?Eo(s,o,c):!!o;if(a&8){const u=t.dynamicProps;for(let f=0;fObject.create(ua),da=e=>Object.getPrototypeOf(e)===ua;function Cf(e,t,n,s=!1){const r={},i=fa();e.propsDefaults=Object.create(null),ha(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ul(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Pf(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=de(r),[a]=e.propsOptions;let c=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let f=0;f{a=!0;const[p,g]=pa(f,t,!0);Fe(o,p),g&&l.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!a)return ve(e)&&s.set(e,pn),pn;if(Q(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ni=e=>Q(e)?e.map(Rt):[Rt(e)],Mf=(e,t,n)=>{if(t._n)return t;const s=ts((...r)=>Ni(t(...r)),n);return s._c=!1,s},ma=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Di(r))continue;const i=e[r];if(se(i))t[r]=Mf(r,i,s);else if(i!=null){const o=Ni(i);t[r]=()=>o}}},ga=(e,t)=>{const n=Ni(t);e.slots.default=()=>n},ya=(e,t,n)=>{for(const s in t)(n||!Di(s))&&(e[s]=t[s])},kf=(e,t,n)=>{const s=e.slots=fa();if(e.vnode.shapeFlag&32){const r=t._;r?(ya(s,t,n),n&&Sl(s,"_",r,!0)):ma(t,s)}else t&&ga(e,t)},If=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=we;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:ya(r,t,n):(i=!t.$stable,ma(t,r)),o=t}else t&&(ga(e,t),o={default:1});if(i)for(const l in r)!Di(l)&&o[l]==null&&delete r[l]},Ye=$f;function Lf(e){return Df(e)}function Df(e,t){const n=ir();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:a,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:g=Ct,insertStaticContent:b}=e,w=(h,m,v,T=null,x=null,R=null,$=void 0,I=null,D=!!m.dynamicChildren)=>{if(h===m)return;h&&!Un(h,m)&&(T=C(h),Oe(h,x,R,!0),h=null),m.patchFlag===-2&&(D=!1,m.dynamicChildren=null),m.dynamicChildren&&h&&h.dynamicChildren&&h.dynamicChildren.hasOnce&&(m.dynamicChildren===pn&&(m.dynamicChildren=[]),m.dynamicChildren.hasOnce=!0);const{type:M,ref:Y,shapeFlag:V}=m;switch(M){case hr:S(h,m,v,T);break;case Mt:E(h,m,v,T);break;case jr:h==null&&y(m,v,T,$);break;case nt:Te(h,m,v,T,x,R,$,I,D);break;default:V&1?N(h,m,v,T,x,R,$,I,D):V&6?xe(h,m,v,T,x,R,$,I,D):(V&64||V&128)&&M.process(h,m,v,T,x,R,$,I,D,H)}Y!=null&&x?ns(Y,h&&h.ref,R,m||h,!m):Y==null&&h&&h.ref!=null&&ns(h.ref,null,R,h,!0)},S=(h,m,v,T)=>{if(h==null)s(m.el=l(m.children),v,T);else{const x=m.el=h.el;m.children!==h.children&&c(x,m.children)}},E=(h,m,v,T)=>{h==null?s(m.el=a(m.children||""),v,T):m.el=h.el},y=(h,m,v,T)=>{[h.el,h.anchor]=b(h.children,m,v,T,h.el,h.anchor)},P=({el:h,anchor:m},v,T)=>{let x;for(;h&&h!==m;)x=p(h),s(h,v,T),h=x;s(m,v,T)},O=({el:h,anchor:m})=>{let v;for(;h&&h!==m;)v=p(h),r(h),h=v;r(m)},N=(h,m,v,T,x,R,$,I,D)=>{if(m.type==="svg"?$="svg":m.type==="math"&&($="mathml"),h==null)Z(m,v,T,x,R,$,I,D);else{const M=h.el&&h.el._isVueCE?h.el:null;try{M&&M._beginPatch(),B(h,m,x,R,$,I,D)}finally{M&&M._endPatch()}}},Z=(h,m,v,T,x,R,$,I)=>{let D,M;const{props:Y,shapeFlag:V,transition:W,dirs:ee}=h;if(D=h.el=o(h.type,R,Y&&Y.is,Y),V&8?u(D,h.children):V&16&&F(h.children,D,null,T,x,Nr(h,R),$,I),ee&&cn(h,null,T,"created"),j(D,h,h.scopeId,$,T),Y){for(const he in Y)he!=="value"&&!Zn(he)&&i(D,he,null,Y[he],R,T);"value"in Y&&i(D,"value",null,Y.value,R),(M=Y.onVnodeBeforeMount)&&wt(M,T,h)}ee&&cn(h,null,T,"beforeMount");const ae=Nf(x,W);ae&&W.beforeEnter(D),s(D,m,v),((M=Y&&Y.onVnodeMounted)||ae||ee)&&Ye(()=>{M&&wt(M,T,h),ae&&W.enter(D),ee&&cn(h,null,T,"mounted")},x)},j=(h,m,v,T,x)=>{if(v&&g(h,v),T)for(let R=0;R{for(let M=D;M{const I=m.el=h.el;let{patchFlag:D,dynamicChildren:M,dirs:Y}=m;D|=h.patchFlag&16;const V=h.props||we,W=m.props||we;let ee;if(v&&un(v,!1),(ee=W.onVnodeBeforeUpdate)&&wt(ee,v,m,h),Y&&cn(m,h,v,"beforeUpdate"),v&&un(v,!0),M&&(!h.dynamicChildren||h.dynamicChildren.length!==M.length)&&(D=0,$=!1,M=null),(V.innerHTML&&W.innerHTML==null||V.textContent&&W.textContent==null)&&u(I,""),M?oe(h.dynamicChildren,M,I,v,T,Nr(m,x),R):$||re(h,m,I,null,v,T,Nr(m,x),R,!1),D>0){if(D&16)L(I,V,W,v,x);else if(D&2&&V.class!==W.class&&i(I,"class",null,W.class,x),D&4&&i(I,"style",V.style,W.style,x),D&8){const ae=m.dynamicProps;for(let he=0;he{ee&&wt(ee,v,m,h),Y&&cn(m,h,v,"updated")},T)},oe=(h,m,v,T,x,R,$)=>{for(let I=0;I{if(m!==v){if(m!==we)for(const R in m)!Zn(R)&&!(R in v)&&i(h,R,m[R],null,x,T);for(const R in v){if(Zn(R))continue;const $=v[R],I=m[R];$!==I&&R!=="value"&&i(h,R,I,$,x,T)}"value"in v&&i(h,"value",m.value,v.value,x)}},Te=(h,m,v,T,x,R,$,I,D)=>{const M=m.el=h?h.el:l(""),Y=m.anchor=h?h.anchor:l("");let{patchFlag:V,dynamicChildren:W,slotScopeIds:ee}=m;ee&&(I=I?I.concat(ee):ee),h==null?(s(M,v,T),s(Y,v,T),F(m.children||[],v,Y,x,R,$,I,D)):V>0&&V&64&&W&&h.dynamicChildren&&h.dynamicChildren.length===W.length?(oe(h.dynamicChildren,W,v,x,R,$,I),(m.key!=null||x&&m===x.subTree)&&ji(h,m,!0)):re(h,m,v,Y,x,R,$,I,D)},xe=(h,m,v,T,x,R,$,I,D)=>{m.slotScopeIds=I,h==null?m.shapeFlag&512?x.ctx.activate(m,v,T,$,D):U(m,v,T,x,R,$,D):Ee(h,m,D)},U=(h,m,v,T,x,R,$)=>{const I=h.component=Uf(h,T,x);if(ur(h)&&(I.ctx.renderer=H),Hf(I,!1,$),I.asyncDep){if(x&&x.registerDep(I,X,$),!h.el){const D=I.subTree=Ce(Mt);E(null,D,m,v),h.placeholder=D.el}}else X(I,h,m,v,x,R,$)},Ee=(h,m,v)=>{const T=m.component=h.component;if(Tf(h,m,v))if(T.asyncDep&&!T.asyncResolved){m.el=h.el,G(T,m,v);return}else T.next=m,T.update();else m.el=h.el,T.vnode=m},X=(h,m,v,T,x,R,$)=>{const I=()=>{if(h.isMounted){let{next:V,bu:W,u:ee,parent:ae,vnode:he}=h;{const ct=va(h);if(ct){V&&(V.el=he.el,G(h,V,$)),ct.asyncDep.then(()=>{Ye(()=>{h.isUnmounted||M()},x)});return}}let me=V,Me;un(h,!1),V?(V.el=he.el,G(h,V,$)):V=he,W&&js(W),(Me=V.props&&V.props.onVnodeBeforeUpdate)&&wt(Me,ae,V,he),un(h,!0);const Ne=wo(h),at=h.subTree;h.subTree=Ne,w(at,Ne,f(at.el),C(at),h,x,R),V.el=Ne.el,me===null&&xf(h,Ne.el),ee&&Ye(ee,x),(Me=V.props&&V.props.onVnodeUpdated)&&Ye(()=>wt(Me,ae,V,he),x)}else{let V;const{el:W,props:ee}=m,{bm:ae,m:he,parent:me,root:Me,type:Ne}=h,at=In(m);un(h,!1),ae&&js(ae),!at&&(V=ee&&ee.onVnodeBeforeMount)&&wt(V,me,m),un(h,!0);{Me.ce&&Me.ce._hasShadowRoot()&&Me.ce._injectChildStyle(Ne,h.parent?h.parent.type:void 0);const ct=h.subTree=wo(h);w(null,ct,v,T,h,x,R),m.el=ct.el}if(he&&Ye(he,x),!at&&(V=ee&&ee.onVnodeMounted)){const ct=m;Ye(()=>wt(V,me,ct),x)}(m.shapeFlag&256||me&&In(me.vnode)&&me.vnode.shapeFlag&256)&&h.a&&Ye(h.a,x),h.isMounted=!0,m=v=T=null}};h.scope.on();const D=h.effect=new Ol(I);h.scope.off();const M=h.update=D.run.bind(D),Y=h.job=D.runIfDirty.bind(D);Y.i=h,Y.id=h.uid,D.scheduler=()=>Mi(Y),un(h,!0),M()},G=(h,m,v)=>{m.component=h;const T=h.vnode.props;h.vnode=m,h.next=null,Pf(h,m.props,T,v),If(h,m.children,v),Ut(),ao(h),Ht()},re=(h,m,v,T,x,R,$,I,D=!1)=>{const M=h&&h.children,Y=h?h.shapeFlag:0,V=m.children,{patchFlag:W,shapeFlag:ee}=m;if(W>0){if(W&128){pe(M,V,v,T,x,R,$,I,D);return}else if(W&256){De(M,V,v,T,x,R,$,I,D);return}}ee&8?(Y&16&&Ue(M,x,R),V!==M&&u(v,V)):Y&16?ee&16?pe(M,V,v,T,x,R,$,I,D):Ue(M,x,R,!0):(Y&8&&u(v,""),ee&16&&F(V,v,T,x,R,$,I,D))},De=(h,m,v,T,x,R,$,I,D)=>{h=h||pn,m=m||pn;const M=h.length,Y=m.length,V=Math.min(M,Y);let W;for(W=0;WY?Ue(h,x,R,!0,!1,V):F(m,v,T,x,R,$,I,D,V)},pe=(h,m,v,T,x,R,$,I,D)=>{let M=0;const Y=m.length;let V=h.length-1,W=Y-1;for(;M<=V&&M<=W;){const ee=h[M],ae=m[M]=D?jt(m[M]):Rt(m[M]);if(Un(ee,ae))w(ee,ae,v,null,x,R,$,I,D);else break;M++}for(;M<=V&&M<=W;){const ee=h[V],ae=m[W]=D?jt(m[W]):Rt(m[W]);if(Un(ee,ae))w(ee,ae,v,null,x,R,$,I,D);else break;V--,W--}if(M>V){if(M<=W){const ee=W+1,ae=eeW)for(;M<=V;)Oe(h[M],x,R,!0),M++;else{const ee=M,ae=M,he=new Map;for(M=ae;M<=W;M++){const He=m[M]=D?jt(m[M]):Rt(m[M]);He.key!=null&&he.set(He.key,M)}let me,Me=0;const Ne=W-ae+1;let at=!1,ct=0;const _t=new Array(Ne);for(M=0;M=Ne){Oe(He,x,R,!0);continue}let We;if(He.key!=null)We=he.get(He.key);else for(me=ae;me<=W;me++)if(_t[me-ae]===0&&Un(He,m[me])){We=me;break}We===void 0?Oe(He,x,R,!0):(_t[We-ae]=M+1,We>=ct?ct=We:at=!0,w(He,m[We],v,null,x,R,$,I,D),Me++)}const Es=at?jf(_t):pn;for(me=Es.length-1,M=Ne-1;M>=0;M--){const He=ae+M,We=m[He],En=m[He+1],Ss=He+1{const{el:R,type:$,transition:I,children:D,shapeFlag:M}=h;if(M&6){Se(h.component.subTree,m,v,T);return}if(M&128){h.suspense.move(m,v,T);return}if(M&64){$.move(h,m,v,H);return}if($===nt){s(R,m,v);for(let V=0;VI.enter(R),x));else{const{leave:V,delayLeave:W,afterLeave:ee}=I,ae=()=>{h.ctx.isUnmounted?r(R):s(R,m,v)},he=()=>{const me=R._isLeaving||!!R[Lr];R._isLeaving&&R[Lr](!0),I.persisted&&!me?ae():V(R,()=>{ae(),ee&&ee()})};W?W(R,ae,he):he()}else s(R,m,v)},Oe=(h,m,v,T=!1,x=!1)=>{const{type:R,props:$,ref:I,children:D,dynamicChildren:M,shapeFlag:Y,patchFlag:V,dirs:W,cacheIndex:ee,memo:ae}=h;if((V===-2||M&&M.hasOnce)&&(x=!1),I!=null&&(Ut(),ns(I,null,v,h,!0),Ht()),ee!=null&&(!h.ctx||h.ctx===m)&&(m.renderCache[ee]=void 0),Y&256){m.ctx.deactivate(h);return}const he=Y&1&&W,me=!In(h);let Me;if(me&&(Me=$&&$.onVnodeBeforeUnmount)&&wt(Me,m,h),Y&6)st(h.component,v,T);else{if(Y&128){h.suspense.unmount(v,T);return}he&&cn(h,null,m,"beforeUnmount"),Y&64?h.type.remove(h,m,v,H,T):M&&!M.hasOnce&&(R!==nt||V>0&&V&64)?Ue(M,m,v,!1,!0):(R===nt&&V&384||!x&&Y&16)&&Ue(D,m,v),T&&yt(h)}const Ne=ae!=null&&ee==null;(me&&(Me=$&&$.onVnodeUnmounted)||he||Ne)&&Ye(()=>{Me&&wt(Me,m,h),he&&cn(h,null,m,"unmounted"),Ne&&(h.el=null)},v)},yt=h=>{const{type:m,el:v,anchor:T,transition:x}=h;if(m===nt){vt(v,T);return}if(m===jr){O(h),x&&!x.persisted&&x.afterLeave&&x.afterLeave();return}const R=()=>{r(v),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(h.shapeFlag&1&&x&&!x.persisted){const{leave:$,delayLeave:I}=x,D=()=>$(v,R);I?I(h.el,R,D):D()}else R()},vt=(h,m)=>{let v;for(;h!==m;)v=p(h),r(h),h=v;r(m)},st=(h,m,v)=>{const{bum:T,scope:x,job:R,subTree:$,um:I,m:D,a:M}=h;Ro(D),Ro(M),T&&js(T),x.stop(),R?(R.flags|=8,Oe($,h,m,v)):h.vnode.el&&$&&($.transition=h.vnode.transition,Oe($,h,m,v)),I&&Ye(I,m),Ye(()=>{h.isUnmounted=!0},m)},Ue=(h,m,v,T=!1,x=!1,R=0)=>{for(let $=R;${if(h.shapeFlag&6)return C(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const m=p(h.anchor||h.el),v=m&&m[ea];return v?p(v):m};let q=!1;const z=(h,m,v)=>{let T;h==null?m._vnode&&(Oe(m._vnode,null,null,!0),T=m._vnode.component):w(m._vnode||null,h,m,null,null,null,v),m._vnode=h,q||(q=!0,ao(T),Jl(),q=!1)},H={p:w,um:Oe,m:Se,r:yt,mt:U,mc:F,pc:re,pbc:oe,n:C,o:e};return{render:z,hydrate:void 0,createApp:bf(z)}}function Nr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function un({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Nf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ji(e,t,n=!1){const s=e.children,r=t.children;if(Q(s)&&Q(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function va(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:va(t)}function Ro(e){if(e)for(let t=0;te.__isSuspense;function $f(e,t){t&&t.pendingBranch?Q(e)?t.effects.push(...e):t.effects.push(e):zu(e)}const nt=Symbol.for("v-fgt"),hr=Symbol.for("v-txt"),Mt=Symbol.for("v-cmt"),jr=Symbol.for("v-stc"),Ft=[];let it=null;function tt(e=!1){Ft.push(it=e?null:[])}function $i(){Ft.pop(),it=Ft[Ft.length-1]||null}let us=1;function Ws(e,t=!1){us+=e,e<0&&it&&t&&(it.hasOnce=!0)}function wa(e){return e.dynamicChildren=us>0?it||pn:null,$i(),us>0&&it&&it.push(e),e}function Lt(e,t,n,s,r,i){return wa($e(e,t,n,s,r,i,!0))}function fs(e,t,n,s,r){return wa(Ce(e,t,n,s,r,!0))}function ds(e){return e?e.__v_isVNode===!0:!1}function Un(e,t){return e.type===t.type&&e.key===t.key}const Ea=({key:e})=>e??null,zs=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Pe(e)||Ie(e)||se(e)?{i:qe,r:e,k:t,f:!!n}:e:null);function $e(e,t=null,n=null,s=0,r=null,i=e===nt?0:1,o=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ea(t),ref:t&&zs(t),scopeId:Ql,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:qe};return l?(Js(a,n),i&128&&e.normalize(a)):n&&(a.shapeFlag|=Pe(n)?8:16),us>0&&!o&&it&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&it.push(a),a}const Ce=zf;function zf(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===uf)&&(e=Mt),ds(e)){const l=Dn(e,t,!0);return n&&Js(l,n),us>0&&!i&&it&&(l.shapeFlag&6?it[it.indexOf(e)]=l:it.push(l)),l.patchFlag=-2,l}if(Yf(e)&&(e=e.__vccOpts),t){t=Vf(t);let{class:l,style:a}=t;l&&!Pe(l)&&(t.class=Mn(l)),ve(a)&&(lr(a)&&!Q(a)&&(a=Fe({},a)),t.style=Ei(a))}const o=Pe(e)?1:ba(e)?128:cr(e)?64:ve(e)?4:se(e)?2:0;return $e(e,t,n,s,r,o,i,!0)}function Vf(e){return e?lr(e)||da(e)?Fe({},e):e:null}function Dn(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:a}=e,c=t?Ff(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ea(c),ref:t&&t.ref?n&&i?Q(i)?i.concat(zs(t)):[i,zs(t)]:zs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==nt?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Dn(e.ssContent),ssFallback:e.ssFallback&&Dn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&s&&ki(u,a.clone(u)),u}function li(e=" ",t=0){return Ce(hr,null,e,t)}function Hn(e="",t=!1){return t?(tt(),fs(Mt,null,e)):Ce(Mt,null,e)}function Rt(e){return e==null||typeof e=="boolean"?Ce(Mt):Q(e)?Ce(nt,null,e.slice()):ds(e)?jt(e):Ce(hr,null,String(e))}function jt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Dn(e)}function Js(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(Q(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Js(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!da(t)?t._ctx=qe:r===3&&qe&&(qe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(se(t)){if(s&65){Js(e,{default:t});return}t={default:t,_ctx:qe},n=32}else t=String(t),s&64?(n=16,t=[li(t)]):n=8;e.children=t,e.shapeFlag|=n}function Ff(...e){const t={};for(let n=0;nBe||qe;let Ys,hs;{const e=ir(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Ys=t("__VUE_INSTANCE_SETTERS__",n=>Be=n),hs=t("__VUE_SSR_SETTERS__",n=>Nn=n)}const ws=e=>{const t=Be;return Ys(e),e.scope.on(),()=>{e.scope.off(),Ys(t)}},Ao=()=>{Be&&Be.scope.off(),Ys(null)};function Sa(e){return e.vnode.shapeFlag&4}let Nn=!1;function Hf(e,t=!1,n=!1){t&&hs(t);const{props:s,children:r}=e.vnode,i=Sa(e);Cf(e,s,i,t),kf(e,r,n||t);const o=i?Kf(e,t):void 0;return t&&hs(!1),o}function Kf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,hf);const{setup:s}=n;if(s){Ut();const r=e.setupContext=s.length>1?Wf(e):null,i=ws(e),o=_s(s,e,0,[e.props,r]),l=bl(o);if(Ht(),i(),(l||e.sp)&&!In(e)&&Ii(e),l){if(o.then(Ao,Ao),t)return o.then(a=>{hs(!0);try{To(e,a,t)}finally{hs(!1)}}).catch(a=>{bs(a,e,0)});e.asyncDep=o}else To(e,o)}else Ra(e)}function To(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ve(t)&&(e.setupState=Kl(t)),Ra(e)}function Ra(e,t,n){const s=e.type;e.render||(e.render=s.render||Ct);{const r=ws(e);Ut();try{pf(e)}finally{Ht(),r()}}}const Gf={get(e,t){return Ge(e,"get",""),e[t]}};function Wf(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Gf),slots:e.slots,emit:e.emit,expose:t}}function pr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Kl(Oi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ss)return ss[n](e)},has(t,n){return n in t||n in ss}})):e.proxy}function Jf(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function Yf(e){return se(e)&&"__vccOpts"in e}const ne=(e,t)=>Lu(e,t,Nn);function Aa(e,t,n){try{Ws(-1);const s=arguments.length;return s===2?ve(t)&&!Q(t)?ds(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&ds(n)&&(n=[n]),Ce(e,t,n))}finally{Ws(1)}}const Qf="3.5.43";let ai;const xo=typeof window<"u"&&window.trustedTypes;if(xo)try{ai=xo.createPolicy("vue",{createHTML:e=>e})}catch{}const Ta=ai?e=>ai.createHTML(e):e=>e,Zf="http://www.w3.org/2000/svg",Xf="http://www.w3.org/1998/Math/MathML",Nt=typeof document<"u"?document:null,Co=Nt&&Nt.createElement("template"),ed={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Nt.createElementNS(Zf,e):t==="mathml"?Nt.createElementNS(Xf,e):n?Nt.createElement(e,{is:n}):Nt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Nt.createTextNode(e),createComment:e=>Nt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Nt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Co.innerHTML=Ta(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Co.content;if(s==="svg"||s==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},td=Symbol("_vtc");function nd(e,t,n){const s=e[td];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Qs=Symbol("_vod"),xa=Symbol("_vsh"),sd={name:"show",beforeMount(e,{value:t},{transition:n}){e[Qs]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Kn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Kn(e,!0),s.enter(e)):s.leave(e,()=>{Kn(e,!1)}):Kn(e,t))},beforeUnmount(e,{value:t}){Kn(e,t)}};function Kn(e,t){e.style.display=t?e[Qs]:"none",e[xa]=!t}const rd=Symbol(""),id=/(?:^|;)\s*display\s*:/;function od(e,t,n){const s=e.style,r=Pe(n);let i=!1;if(n&&!r){if(t)if(Pe(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Qn(s,l,"")}else for(const o in t)n[o]==null&&Qn(s,o,"");for(const o in n){o==="display"&&(i=!0);const l=n[o];l!=null?ad(e,o,!Pe(t)&&t?t[o]:void 0,l)||Qn(s,o,l):Qn(s,o,"")}}else if(r){if(t!==n){const o=s[rd];o&&(n+=";"+o),s.cssText=n,i=id.test(n)}}else t&&e.removeAttribute("style");Qs in e&&(e[Qs]=i?s.display:"",e[xa]&&(s.display="none"))}const ks=/\s*!important$/;function Qn(e,t,n){if(Q(n))n.forEach(s=>Qn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))ks.test(n)?e.setProperty(t,n.replace(ks,""),"important"):e.setProperty(t,n);else{const s=ld(e,t);ks.test(n)?e.setProperty(on(s),n.replace(ks,""),"important"):e[s]=n}}const Po=["Webkit","Moz","ms"],$r={};function ld(e,t){const n=$r[t];if(n)return n;let s=et(t);if(s!=="filter"&&s in e)return $r[t]=s;s=sr(s);for(let r=0;rzr||(pd.then(()=>zr=0),zr=Date.now());function gd(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(Q(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),l=[s];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,yd=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?nd(e,s,o):t==="style"?od(e,n,s):Xs(t)?er(t)||ud(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):vd(e,t,s,o))?(ko(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Mo(e,t,s,o,i,t!=="value")):e._isVueCE&&(_d(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Pe(s)))?ko(e,et(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Mo(e,t,s,o))};function vd(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Lo(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Lo(t)&&Pe(n)?!1:t in e}function _d(e,t){const n=e._def.props;if(!n)return!1;const s=et(t);return Array.isArray(n)?n.some(r=>et(r)===s):Object.keys(n).some(r=>et(r)===s)}const jn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Q(t)?n=>js(t,n):t};function bd(e){e.target.composing=!0}function Do(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Tt=Symbol("_assign"),Is=Symbol("_initialValue");function Vr(e,t,n){return t&&(e=e.trim()),n&&(e=rr(e)),e}const Im={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Is]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Is]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Tt]=jn(r);const i=s||r.props&&r.props.type==="number";tn(e,t?"change":"input",o=>{o.target.composing||e[Tt](Vr(e.value,n,i))}),(n||i)&&tn(e,"change",()=>{e.value=Vr(e.value,n,i)}),t||(tn(e,"compositionstart",bd),tn(e,"compositionend",Do),tn(e,"change",Do))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Is];delete e[Is],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Tt](Vr(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[Tt]=jn(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?rr(e.value):e.value,a=t??"";if(l===a)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===a)||(e.value=a)}},Lm={deep:!0,created(e,t,n){e[Tt]=jn(n),tn(e,"change",()=>{const s=e._modelValue,r=ps(e),i=e.checked,o=e[Tt];if(Q(s)){const l=Si(s,r),a=l!==-1;if(i&&!a)o(s.concat(r));else if(!i&&a){const c=[...s];c.splice(l,1),o(c)}}else if(Bt(s)){const l=new Set(s);i?l.add(r):l.delete(r),o(l)}else o(Ca(e,i))})},mounted:No,beforeUpdate(e,t,n){e[Tt]=jn(n),No(e,t,n)}};function No(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(Q(t))r=Si(t,s.props.value)>-1;else if(Bt(t))r=t.has(s.props.value);else{if(t===n)return;r=qt(t,Ca(e,!0))}e.checked!==r&&(e.checked=r)}const Dm={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,tn(e,"change",()=>{const r=Array.prototype.filter.call(e.options,a=>a.selected).map(a=>n?rr(ps(a)):ps(a)),i=e.multiple,o=i?Bt(e._modelValue)?new Set(r):r:r[0],l=e._pendingValue=[i,i?Q(o)?r.slice():r:o];try{e[Tt](o)}finally{ar(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[Tt]=jn(s)},mounted(e,{value:t}){jo(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Tt]=jn(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!wd(t,n[1],n[0]))&&jo(e,t)}};function wd(e,t,n){if(!n||Q(e))return qt(e,t);if(Bt(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function jo(e,t){const n=e.multiple,s=Q(t);if(!(n&&!s&&!Bt(t))){for(let r=0,i=e.options.length;rString(c)===String(l)):o.selected=Si(t,l)>-1}else o.selected=t.has(l);else if(qt(ps(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ps(e){return"_value"in e?e._value:e.value}function Ca(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ed=["ctrl","shift","alt","meta"],Sd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ed.some(n=>e[`${n}Key`]&&!t.includes(n))},Nm=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=on(r.key);if(t.some(o=>o===i||Rd[o]===i))return e(r)}))},Ad=Fe({patchProp:yd},ed);let $o;function Td(){return $o||($o=Lf(Ad))}const xd=((...e)=>{const t=Td().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Pd(s);if(!r)return;const i=t._component;!se(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Cd(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Cd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Pd(e){return Pe(e)?document.querySelector(e):e}let Pa;const mr=e=>Pa=e,Oa=Symbol();function ci(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var rs;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(rs||(rs={}));function Od(){const e=Cl(!0),t=e.run(()=>te({}));let n=[],s=[];const r=Oi({install(i){mr(r),r._a=i,i.provide(Oa,r),i.config.globalProperties.$pinia=r,s.forEach(o=>n.push(o)),s=[]},use(i){return this._a?n.push(i):s.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const Ma=()=>{};function zo(e,t,n,s=Ma){e.add(t);const r=()=>{e.delete(t)&&s()};return!n&&Pl()&&cu(r),r}function Tn(e,...t){e.forEach(n=>{n(...t)})}const Md=e=>e(),Vo=Symbol(),Fr=Symbol();function ui(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];ci(r)&&ci(s)&&e.hasOwnProperty(n)&&!Ie(s)&&!Pt(s)?e[n]=ui(r,s):e[n]=s}return e}const kd=Symbol();function Id(e){return!ci(e)||!Object.prototype.hasOwnProperty.call(e,kd)}const{assign:Yt}=Object;function Ld(e){return!!(Ie(e)&&e.effect)}function Dd(e,t,n,s){const{state:r,actions:i,getters:o}=t,l=n.state.value[e];let a;function c(){l||(n.state.value[e]=r?r():{});const u=Ou(n.state.value[e]);return Yt(u,i,Object.keys(o||{}).reduce((f,p)=>(f[p]=Oi(ne(()=>{mr(n);const g=n._s.get(e);return o[p].call(g,g)})),f),{}))}return a=ka(e,c,t,n,s,!0),a}function ka(e,t,n={},s,r,i){let o;const l=Yt({actions:{}},n),a={deep:!0};let c,u,f=new Set,p=new Set,g;const b=s.state.value[e];!i&&!b&&(s.state.value[e]={});let w;function S(F){let B;c=u=!1,typeof F=="function"?(F(s.state.value[e]),B={type:rs.patchFunction,storeId:e,events:g}):(ui(s.state.value[e],F),B={type:rs.patchObject,payload:F,storeId:e,events:g});const oe=w=Symbol();ar().then(()=>{w===oe&&(c=!0)}),u=!0,Tn(f,B,s.state.value[e])}const E=i?function(){const{state:B}=n,oe=B?B():{};this.$patch(L=>{Yt(L,oe)})}:Ma;function y(){o.stop(),f.clear(),p.clear(),s._s.delete(e)}const P=(F,B="")=>{if(Vo in F)return F[Fr]=B,F;const oe=function(){mr(s);const L=Array.from(arguments),Te=new Set,xe=new Set;function U(G){Te.add(G)}function Ee(G){xe.add(G)}Tn(p,{args:L,name:oe[Fr],store:N,after:U,onError:Ee});let X;try{X=F.apply(this&&this.$id===e?this:N,L)}catch(G){throw Tn(xe,G),G}return X instanceof Promise?X.then(G=>(Tn(Te,G),G)).catch(G=>(Tn(xe,G),Promise.reject(G))):(Tn(Te,X),X)};return oe[Vo]=!0,oe[Fr]=B,oe},O={_p:s,$id:e,$onAction:zo.bind(null,p),$patch:S,$reset:E,$subscribe(F,B={}){const oe=zo(f,F,B.detached,()=>L()),L=o.run(()=>vn(()=>s.state.value[e],Te=>{(B.flush==="sync"?u:c)&&F({storeId:e,type:rs.direct,events:g},Te)},Yt({},a,B)));return oe},$dispose:y},N=vs(O);s._s.set(e,N);const j=(s._a&&s._a.runWithContext||Md)(()=>s._e.run(()=>(o=Cl()).run(()=>t({action:P}))));for(const F in j){const B=j[F];if(Ie(B)&&!Ld(B)||Pt(B))i||(b&&Id(B)&&(Ie(B)?B.value=b[F]:ui(B,b[F])),s.state.value[e][F]=B);else if(typeof B=="function"){const oe=P(B,F);j[F]=oe,l.actions[F]=B}}return Yt(N,j),Yt(de(N),j),Object.defineProperty(N,"$state",{get:()=>s.state.value[e],set:F=>{S(B=>{Yt(B,F)})}}),s._p.forEach(F=>{Yt(N,o.run(()=>F({store:N,app:s._a,pinia:s,options:l})))}),b&&i&&n.hydrate&&n.hydrate(N.$state,b),c=!0,u=!0,N}function ln(e,t,n){let s;const r=typeof t=="function";s=r?n:t;function i(o,l){const a=Fu();return o=o||(a?ft(Oa,null):null),o&&mr(o),o=Pa,o._s.has(e)||(r?ka(e,t,s,o):Dd(e,s,o)),o._s.get(e)}return i.$id=e,i}const $m=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),zm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Vm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Fm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Bm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),qm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));const Pn=typeof document<"u";function Ia(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Nd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Ia(e.default)}const ge=Object.assign;function Br(e,t){const n={};for(const s in t){const r=t[s];n[s]=gt(r)?r.map(e):e(r)}return n}const is=()=>{},gt=Array.isArray;function Fo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const La=/#/g,jd=/&/g,$d=/\//g,zd=/=/g,Vd=/\?/g,Da=/\+/g,Fd=/%5B/g,Bd=/%5D/g,Na=/%5E/g,qd=/%60/g,ja=/%7B/g,Ud=/%7C/g,$a=/%7D/g,Hd=/%20/g;function Vi(e){return e==null?"":encodeURI(""+e).replace(Ud,"|").replace(Fd,"[").replace(Bd,"]")}function Kd(e){return Vi(e).replace(ja,"{").replace($a,"}").replace(Na,"^")}function fi(e){return Vi(e).replace(Da,"%2B").replace(Hd,"+").replace(La,"%23").replace(jd,"%26").replace(qd,"`").replace(ja,"{").replace($a,"}").replace(Na,"^")}function Gd(e){return fi(e).replace(zd,"%3D")}function Wd(e){return Vi(e).replace(La,"%23").replace(Vd,"%3F")}function Jd(e){return Wd(e).replace($d,"%2F")}function ms(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Yd=/\/$/,Qd=e=>e.replace(Yd,"");function qr(e,t,n="/"){let s,r={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(s=t.slice(0,a),i=t.slice(a,l>0?l:t.length),r=e(i.slice(1))),l>=0&&(s=s||t.slice(0,l),o=t.slice(l,t.length)),s=th(s??t,n),{fullPath:s+i+o,path:s,query:r,hash:ms(o)}}function Zd(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Bo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Xd(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&$n(t.matched[s],n.matched[r])&&za(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function $n(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function za(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!eh(e[n],t[n]))return!1;return!0}function eh(e,t){return gt(e)?qo(e,t):gt(t)?qo(t,e):e?.valueOf()===t?.valueOf()}function qo(e,t){return gt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function th(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let di=(function(e){return e.pop="pop",e.push="push",e})({}),Ur=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function nh(e){if(!e)if(Pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Qd(e)}const sh=/^[^#]+#/;function rh(e,t){return e.replace(sh,"#")+t}function ih(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const gr=()=>({left:window.scrollX,top:window.scrollY});function oh(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=ih(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Uo(e,t){return(history.state?history.state.position-t:-1)+e}const hi=new Map;function lh(e,t){hi.set(e,t)}function ah(e){const t=hi.get(e);return hi.delete(e),t}function ch(e){return typeof e=="string"||e&&typeof e=="object"}function Va(e){return typeof e=="string"||typeof e=="symbol"}let ke=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Fa=Symbol("");ke.MATCHER_NOT_FOUND+"",ke.NAVIGATION_GUARD_REDIRECT+"",ke.NAVIGATION_ABORTED+"",ke.NAVIGATION_CANCELLED+"",ke.NAVIGATION_DUPLICATED+"";function zn(e,t){return ge(new Error,{type:e,[Fa]:!0},t)}function It(e,t){return e instanceof Error&&Fa in e&&(t==null||!!(e.type&t))}const uh=["params","query","hash"];function fh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of uh)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function dh(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&fi(r)):[s&&fi(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function hh(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=gt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const ph=Symbol(""),Ko=Symbol(""),yr=Symbol(""),Fi=Symbol(""),pi=Symbol("");function Gn(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Xt(e,t,n,s,r,i=o=>o()){const o=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const c=p=>{p===!1?a(zn(ke.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?a(p):ch(p)?a(zn(ke.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(o&&s.enterCallbacks[r]===o&&typeof p=="function"&&o.push(p),l())},u=i(()=>e.call(s&&s.instances[r],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(p=>a(p))})}function Hr(e,t,n,s,r=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(Ia(a)){const c=(a.__vccOpts||a)[t];c&&i.push(Xt(c,n,s,o,l,r))}else{let c=a();i.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Nd(u)?u.default:u;o.mods[l]=u,o.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Xt(p,n,s,o,l,r)()}))}}return i}function mh(e,t){const n=[],s=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;o$n(c,l))?s.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(c=>$n(c,a))||r.push(a))}return[n,s,r]}let gh=()=>location.protocol+"//"+location.host;function Ba(e,t){const{pathname:n,search:s,hash:r}=t,i=e.indexOf("#");if(i>-1){let o=r.includes(e.slice(i))?e.slice(i).length:1,l=r.slice(o);return l[0]!=="/"&&(l="/"+l),Bo(l,"")}return Bo(n,e)+s+r}function yh(e,t,n,s){let r=[],i=[],o=null;const l=({state:p})=>{const g=Ba(e,location),b=n.value,w=t.value;let S=0;if(p){if(n.value=g,t.value=p,o&&o===b){o=null;return}S=w?p.position-w.position:0}else s(g);r.forEach(E=>{E(n.value,b,{delta:S,type:di.pop,direction:S?S>0?Ur.forward:Ur.back:Ur.unknown})})};function a(){o=n.value}function c(p){r.push(p);const g=()=>{const b=r.indexOf(p);b>-1&&r.splice(b,1)};return i.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ge({},p.state,{scroll:gr()}),"")}}function f(){for(const p of i)p();i=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Go(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?gr():null}}function vh(e){const{history:t,location:n}=window,s={value:Ba(e,n)},r={value:t.state};r.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:gh()+e+a;try{t[u?"replaceState":"pushState"](c,"",p),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](p)}}function o(a,c){i(a,ge({},t.state,Go(r.value.back,a,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=a}function l(a,c){const u=ge({},r.value,t.state,{forward:a,scroll:gr()});i(u.current,u,!0),i(a,ge({},Go(s.value,a,null),{position:u.position+1},c),!1),s.value=a}return{location:s,state:r,push:l,replace:o}}function _h(e){e=nh(e);const t=vh(e),n=yh(e,t.state,t.location,t.replace);function s(i,o=!0){o||n.pauseListeners(),history.go(i)}const r=ge({location:"",base:e,go:s,createHref:rh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let mn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var je=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(je||{});const bh={type:mn.Static,value:""},wh=/[a-zA-Z0-9_]/;function Eh(e){if(!e)return[[]];if(e==="/")return[[bh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=je.Static,s=n;const r=[];let i;function o(){i&&r.push(i),i=[]}let l=0,a,c="",u="";function f(){c&&(n===je.Static?i.push({type:mn.Static,value:c}):n===je.Param||n===je.ParamRegExp||n===je.ParamRegExpEnd?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:mn.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=a}for(;lt.length?t.length===1&&t[0]===Qe.Static+Qe.Segment?1:-1:0}function qa(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const xh={strict:!1,end:!0,sensitive:!1};function Ch(e,t,n){const s=Ah(Eh(e.path),n),r=ge(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ph(e,t){const n=[],s=new Map;t=Fo(xh,t);function r(f){return s.get(f)}function i(f,p,g){const b=!g,w=Qo(f);w.aliasOf=g&&g.record;const S=Fo(t,f),E=[w];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const N of O)E.push(Qo(ge({},w,{components:g?g.record.components:w.components,path:N,aliasOf:g?g.record:w})))}let y,P;for(const O of E){const{path:N}=O;if(p&&N[0]!=="/"){const Z=p.record.path,j=Z[Z.length-1]==="/"?"":"/";O.path=p.record.path+(N&&j+N)}if(y=Ch(O,p,S),g?g.alias.push(y):(P=P||y,P!==y&&P.alias.push(y),b&&f.name&&!Zo(y)&&o(f.name)),Ua(y)&&a(y),w.children){const Z=w.children;for(let j=0;j{o(P)}:is}function o(f){if(Va(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const p=kh(f,n);n.splice(p,0,f),f.record.name&&!Zo(f)&&s.set(f.record.name,f)}function c(f,p){let g,b={},w,S;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw zn(ke.MATCHER_NOT_FOUND,{location:f});S=g.record.name,b=ge(Yo(p.params,g.keys.filter(P=>!P.optional).concat(g.parent?g.parent.keys.filter(P=>P.optional):[]).map(P=>P.name)),f.params&&Yo(f.params,g.keys.map(P=>P.name))),w=g.stringify(b)}else if(f.path!=null)w=f.path,g=n.find(P=>P.re.test(w)),g&&(b=g.parse(w),S=g.record.name);else{if(g=p.name?s.get(p.name):n.find(P=>P.re.test(p.path)),!g)throw zn(ke.MATCHER_NOT_FOUND,{location:f,currentLocation:p});S=g.record.name,b=ge({},p.params,f.params),w=g.stringify(b)}const E=[];let y=g;for(;y;)E.unshift(y.record),y=y.parent;return{name:S,path:w,params:b,matched:E,meta:Mh(E)}}e.forEach(f=>i(f));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:c,removeRoute:o,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function Yo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Qo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Oh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Zo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mh(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function kh(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;qa(e,t[i])<0?s=i:n=i+1}const r=Ih(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Ih(e){let t=e;for(;t=t.parent;)if(Ua(t)&&qa(e,t)===0)return t}function Ua({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Xo(e){const t=ft(yr),n=ft(Fi),s=ne(()=>{const a=Le(e.to);return t.resolve(a)}),r=ne(()=>{const{matched:a}=s.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex($n.bind(null,u));if(p>-1)return p;const g=el(a[c-2]);return c>1&&el(u)===g&&f[f.length-1].path!==g?f.findIndex($n.bind(null,a[c-2])):p}),i=ne(()=>r.value>-1&&$h(n.params,s.value.params)),o=ne(()=>r.value>-1&&r.value===n.matched.length-1&&za(n.params,s.value.params));function l(a={}){if(jh(a)){const c=t[Le(e.replace)?"replace":"push"](Le(e.to)).catch(is);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:ne(()=>s.value.href),isActive:i,isExactActive:o,navigate:l}}function Lh(e){return e.length===1?e[0]:e}const Dh=Vn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Xo,setup(e,{slots:t}){const n=vs(Xo(e)),{options:s}=ft(yr),r=ne(()=>({[tl(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[tl(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Lh(t.default(n));return e.custom?i:Aa("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),Nh=Dh;function jh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $h(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!gt(r)||r.length!==s.length||s.some((i,o)=>i.valueOf()!==r[o].valueOf()))return!1}return!0}function el(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const tl=(e,t,n)=>e??t??n,zh=Vn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=ft(pi),r=ne(()=>e.route||s.value),i=ft(Ko,0),o=ne(()=>{let c=Le(i);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=ne(()=>r.value.matched[o.value]);$s(Ko,ne(()=>o.value+1)),$s(ph,l),$s(pi,r);const a=te();return vn(()=>[a.value,l.value,e.name],([c,u,f],[p,g,b])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!$n(u,g)||!p)&&(u.enterCallbacks[f]||[]).forEach(w=>w(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=l.value,p=f&&f.components[u];if(!p)return nl(n.default,{Component:p,route:c});const g=f.props[u],b=g?g===!0?c.params:typeof g=="function"?g(c):g:null,S=Aa(p,ge({},b,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return nl(n.default,{Component:S,route:c})||S}}});function nl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Vh=zh;function Fh(e){const t=Ph(e.routes,e),n=e.parseQuery||dh,s=e.stringifyQuery||Ho,r=e.history,i=Gn(),o=Gn(),l=Gn(),a=Ln(Gt);let c=Gt;Pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Br.bind(null,C=>""+C),f=Br.bind(null,Jd),p=Br.bind(null,ms);function g(C,q){let z,H;return Va(C)?(z=t.getRecordMatcher(C),H=q):H=C,t.addRoute(H,z)}function b(C){const q=t.getRecordMatcher(C);q&&t.removeRoute(q)}function w(){return t.getRoutes().map(C=>C.record)}function S(C){return!!t.getRecordMatcher(C)}function E(C,q){if(q=ge({},q||a.value),typeof C=="string"){const v=qr(n,C,q.path),T=t.resolve({path:v.path},q),x=r.createHref(v.fullPath);return ge(v,T,{params:p(T.params),hash:ms(v.hash),redirectedFrom:void 0,href:x})}let z;if(C.path!=null)z=ge({},C,{path:qr(n,C.path,q.path).path});else{const v=ge({},C.params);for(const T in v)v[T]==null&&delete v[T];z=ge({},C,{params:f(v)}),q.params=f(q.params)}const H=t.resolve(z,q),ie=C.hash||"";H.params=u(p(H.params));const h=Zd(s,ge({},C,{hash:Kd(ie),path:H.path})),m=r.createHref(h);return ge({fullPath:h,hash:ie,query:s===Ho?hh(C.query):C.query||{}},H,{redirectedFrom:void 0,href:m})}function y(C){return typeof C=="string"?qr(n,C,a.value.path):ge({},C)}function P(C,q){if(c!==C)return zn(ke.NAVIGATION_CANCELLED,{from:q,to:C})}function O(C){return j(C)}function N(C){return O(ge(y(C),{replace:!0}))}function Z(C,q){const z=C.matched[C.matched.length-1];if(z&&z.redirect){const{redirect:H}=z;let ie=typeof H=="function"?H(C,q):H;return typeof ie=="string"&&(ie=ie.includes("?")||ie.includes("#")?ie=y(ie):{path:ie},ie.params={}),ge({query:C.query,hash:C.hash,params:ie.path!=null?{}:C.params},ie)}}function j(C,q){const z=c=E(C),H=a.value,ie=C.state,h=C.force,m=C.replace===!0,v=Z(z,H);if(v)return j(ge(y(v),{state:typeof v=="object"?ge({},ie,v.state):ie,force:h,replace:m}),q||z);const T=z;T.redirectedFrom=q;let x;return!h&&Xd(s,H,z)&&(x=zn(ke.NAVIGATION_DUPLICATED,{to:T,from:H}),Se(H,H,!0,!1)),(x?Promise.resolve(x):oe(T,H)).catch(R=>It(R)?It(R,ke.NAVIGATION_GUARD_REDIRECT)?R:pe(R):re(R,T,H)).then(R=>{if(R){if(It(R,ke.NAVIGATION_GUARD_REDIRECT))return j(ge({replace:m},y(R.to),{state:typeof R.to=="object"?ge({},ie,R.to.state):ie,force:h}),q||T)}else R=Te(T,H,!0,m,ie);return L(T,H,R),R})}function F(C,q){const z=P(C,q);return z?Promise.reject(z):Promise.resolve()}function B(C){const q=vt.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(C):C()}function oe(C,q){let z;const[H,ie,h]=mh(C,q);z=Hr(H.reverse(),"beforeRouteLeave",C,q);for(const v of H)v.leaveGuards.forEach(T=>{z.push(Xt(T,C,q))});const m=F.bind(null,C,q);return z.push(m),Ue(z).then(()=>{z=[];for(const v of i.list())z.push(Xt(v,C,q));return z.push(m),Ue(z)}).then(()=>{z=Hr(ie,"beforeRouteUpdate",C,q);for(const v of ie)v.updateGuards.forEach(T=>{z.push(Xt(T,C,q))});return z.push(m),Ue(z)}).then(()=>{z=[];for(const v of h)if(v.beforeEnter)if(gt(v.beforeEnter))for(const T of v.beforeEnter)z.push(Xt(T,C,q));else z.push(Xt(v.beforeEnter,C,q));return z.push(m),Ue(z)}).then(()=>(C.matched.forEach(v=>v.enterCallbacks={}),z=Hr(h,"beforeRouteEnter",C,q,B),z.push(m),Ue(z))).then(()=>{z=[];for(const v of o.list())z.push(Xt(v,C,q));return z.push(m),Ue(z)}).catch(v=>It(v,ke.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function L(C,q,z){l.list().forEach(H=>B(()=>H(C,q,z)))}function Te(C,q,z,H,ie){const h=P(C,q);if(h)return h;const m=q===Gt,v=Pn?history.state:{};z&&(H||m?r.replace(C.fullPath,ge({scroll:m&&v&&v.scroll},ie)):r.push(C.fullPath,ie)),a.value=C,Se(C,q,z,m),pe()}let xe;function U(){xe||(xe=r.listen((C,q,z)=>{if(!st.listening)return;const H=E(C),ie=Z(H,st.currentRoute.value);if(ie){j(ge(ie,{replace:!0,force:!0}),H).catch(is);return}c=H;const h=a.value;Pn&&lh(Uo(h.fullPath,z.delta),gr()),oe(H,h).catch(m=>It(m,ke.NAVIGATION_ABORTED|ke.NAVIGATION_CANCELLED)?m:It(m,ke.NAVIGATION_GUARD_REDIRECT)?(j(ge(y(m.to),{force:!0}),H).then(v=>{It(v,ke.NAVIGATION_ABORTED|ke.NAVIGATION_DUPLICATED)&&!z.delta&&z.type===di.pop&&r.go(-1,!1)}).catch(is),Promise.reject()):(z.delta&&r.go(-z.delta,!1),re(m,H,h))).then(m=>{m=m||Te(H,h,!1),m&&(z.delta&&!It(m,ke.NAVIGATION_CANCELLED)?r.go(-z.delta,!1):z.type===di.pop&&It(m,ke.NAVIGATION_ABORTED|ke.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),L(H,h,m)}).catch(is)}))}let Ee=Gn(),X=Gn(),G;function re(C,q,z){pe(C);const H=X.list();return H.length?H.forEach(ie=>ie(C,q,z)):console.error(C),Promise.reject(C)}function De(){return G&&a.value!==Gt?Promise.resolve():new Promise((C,q)=>{Ee.add([C,q])})}function pe(C){return G||(G=!C,U(),Ee.list().forEach(([q,z])=>C?z(C):q()),Ee.reset()),C}function Se(C,q,z,H){const{scrollBehavior:ie}=e;if(!Pn||!ie)return Promise.resolve();const h=!z&&ah(Uo(C.fullPath,0))||(H||!z)&&history.state&&history.state.scroll||null;return ar().then(()=>ie(C,q,h)).then(m=>m&&oh(m)).catch(m=>re(m,C,q))}const Oe=C=>r.go(C);let yt;const vt=new Set,st={currentRoute:a,listening:!0,addRoute:g,removeRoute:b,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:w,resolve:E,options:e,push:O,replace:N,go:Oe,back:()=>Oe(-1),forward:()=>Oe(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:X.add,isReady:De,install(C){C.component("RouterLink",Nh),C.component("RouterView",Vh),C.config.globalProperties.$router=st,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>Le(a)}),Pn&&!yt&&a.value===Gt&&(yt=!0,O(r.location).catch(H=>{}));const q={};for(const H in Gt)Object.defineProperty(q,H,{get:()=>a.value[H],enumerable:!0});C.provide(yr,st),C.provide(Fi,Ul(q)),C.provide(pi,a);const z=C.unmount;vt.add(C),C.unmount=function(){vt.delete(C),vt.size<1&&(c=Gt,xe&&xe(),xe=null,a.value=Gt,yt=!1,G=!1),z()}}};function Ue(C){return C.reduce((q,z)=>q.then(()=>B(z)),Promise.resolve())}return st}function Um(){return ft(yr)}function Ha(e){return ft(Fi)}const Bh={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},qh=["d"],sl=Vn({__name:"Icon",props:{name:{}},setup(e){const t=e,n={home:"M3 11l9-8 9 8M5 10v10h5v-6h4v6h5V10",calendar:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",book:"M5 4h10a3 3 0 013 3v13H8a3 3 0 01-3-3zM5 17a3 3 0 013-3h10",quiz:"M12 21a9 9 0 100-18 9 9 0 000 18zM9.5 9.5a2.5 2.5 0 114 2c-.9.6-1.5 1-1.5 2M12 17h.01",more:"M5 12h.01M12 12h.01M19 12h.01",flag:"M5 21V4M5 4h11l-2 4 2 4H5",grad:"M2 9l10-5 10 5-10 5zM6 11.5V16c0 1.5 3 3 6 3s6-1.5 6-3v-4.5",file:"M7 3h7l5 5v13H7zM14 3v5h5M10 13h6M10 17h6",slides:"M3 4h18v12H3zM12 16v4M8 20h8",user:"M12 12a4 4 0 100-8 4 4 0 000 8zM4 21c0-4 4-6 8-6s8 2 8 6",out:"M10 4H5v16h5M15 8l4 4-4 4M19 12H9",chevron:"M9 6l6 6-6 6","arrow-left":"M19 12H5M11 6l-6 6 6 6","arrow-right":"M5 12h14M13 6l6 6-6 6",paperclip:"M20 11.5l-8.5 8.5a5 5 0 01-7-7L13 4.5a3.5 3.5 0 015 5L9.5 18a2 2 0 01-3-3L14 7.5",at:"M12 16a4 4 0 100-8 4 4 0 000 8zM16 12v1.5a2.5 2.5 0 005 0V12a9 9 0 10-3.5 7.1","arrow-up":"M12 19V5M5 12l7-7 7 7","arrow-down":"M12 5v14M5 12l7 7 7-7",smile:"M12 21a9 9 0 100-18 9 9 0 000 18zM8.5 14.5c1 1.2 2.2 1.8 3.5 1.8s2.5-.6 3.5-1.8M9 9.5h.01M15 9.5h.01",pencil:"M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4",trash:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",close:"M6 6l12 12M18 6L6 18",plus:"M12 5v14M5 12h14",checklist:"M4 6l2 2 3-3M4 13l2 2 3-3M12 7h8M12 14h8M4 19h.01M12 19h8"};return(s,r)=>(tt(),Lt("svg",Bh,[$e("path",{d:n[t.name]??""},null,8,qh)]))}});class Xe extends Error{constructor(n,s,r={}){super(s);Rn(this,"status");Rn(this,"errors");this.name="ApiError",this.status=n,this.errors=r}}const Kr="bm.token";class Uh{constructor(t,n){Rn(this,"local");Rn(this,"session");Rn(this,"memory",null);this.local=t,this.session=n}read(t){try{return t?.getItem(Kr)??null}catch{return null}}get(){return this.read(this.local)??this.read(this.session)??this.memory}get remembered(){return this.read(this.local)!==null}set(t,n){this.clear();try{(n?this.local:this.session)?.setItem(Kr,t)}catch{}this.get()===null&&(this.memory=t)}replace(t){this.set(t,this.remembered)}clear(){this.memory=null;for(const t of[this.local,this.session])try{t?.removeItem(Kr)}catch{}}}function Hh(e){const t=e.fetch??((...g)=>fetch(...g)),{tokens:n}=e;let s=null;function r(g,b){if(!b)return g;const w=new URLSearchParams;for(const[E,y]of Object.entries(b))y!=null&&y!==""&&w.set(E,String(y));const S=w.toString();return S?`${g}?${S}`:g}async function i(g,b){const w={Accept:"application/json"},S=n.get();b.auth!==!1&&S&&(w.Authorization=`Bearer ${S}`);let E;return b.body!==void 0&&(w["Content-Type"]="application/json",E=JSON.stringify(b.body)),t(r(g,b.query),{method:b.method??"GET",headers:w,body:E})}function o(){return s||(s=(async()=>{try{const g=await i("/_user/api/v1/refresh",{method:"POST"});if(!g.ok)return!1;const b=await g.json(),w=b.token??b.data?.token;return w?(n.replace(w),!0):!1}catch{return!1}finally{queueMicrotask(()=>{s=null})}})()),s}async function l(g){const b=await g.text();if(!b)return null;try{return JSON.parse(b)}catch{return null}}function a(g,b){const w=b??{},S=typeof w.error=="string"&&w.error||typeof w.message=="string"&&w.message||(g.status>=500?"Błąd serwera. Spróbuj ponownie za chwilę.":`Błąd ${g.status}`);return new Xe(g.status,S,w.errors??{})}async function c(g,b){let w;const S=n.get();try{w=await i(g,b)}catch{throw new Xe(0,"Brak połączenia z serwerem.")}if(w.status===401&&b.auth!==!1&&S){const E=n.get();if(E!==null&&E!==S?!0:await o())try{w=await i(g,b)}catch{throw new Xe(0,"Brak połączenia z serwerem.")}w.status===401&&(n.clear(),e.onUnauthorized?.())}return w}async function u(g,b={}){const w=await c(g,b),S=await l(w);if(!w.ok)throw a(w,S);return S}async function f(g,b={}){const w=await c(g,b);if(!w.ok){const S=await l(w);throw a(w,S)}return w.blob()}async function p(g,b={}){const w=await u(g,b);return w&&typeof w=="object"&&"data"in w?w.data:w}return{request:p,raw:u,blob:f}}function rl(e){try{return e()}catch{return null}}const ht=new Uh(rl(()=>window.localStorage),rl(()=>window.sessionStorage));let Ka=()=>{};function Kh(e){Ka=e}const K=Hh({tokens:ht,onUnauthorized:()=>Ka()}),ut="/_user/api/v1",fn={login:e=>K.request(`${ut}/login`,{method:"POST",body:e,auth:!1}),register:e=>K.request(`${ut}/register`,{method:"POST",body:e,auth:!1}),fetch:()=>K.request(`${ut}/fetch`),logout:()=>K.request(`${ut}/logout`,{method:"POST"}),forgotPassword:e=>K.request(`${ut}/forgot-password`,{method:"POST",body:{email:e},auth:!1}),resetPassword:e=>K.request(`${ut}/reset-password`,{method:"POST",body:e,auth:!1}),update:e=>K.request(`${ut}/update`,{method:"POST",body:e}),changePassword:e=>K.request(`${ut}/change-password`,{method:"POST",body:e}),oauthProviders:()=>K.request(`${ut}/oauth-providers`,{auth:!1}),oauthComplete:e=>K.request(`${ut}/oauth-complete?code=${encodeURIComponent(e)}`,{auth:!1}),oauthRegisterComplete:e=>K.request(`${ut}/oauth-register-complete`,{method:"POST",body:e,auth:!1}),oauthLinkTicket:()=>K.request(`${ut}/oauth-link-ticket`,{method:"POST"})},Gh="modulepreload",Wh=function(e){return"/"+e},il={},_e=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");r=a(n.map(c=>{if(c=Wh(c),c in il)return;il[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const p=document.createElement("link");if(p.rel=u?"stylesheet":Gh,u||(p.as="script"),p.crossOrigin="",p.href=c,l&&p.setAttribute("nonce",l),document.head.appendChild(p),u)return new Promise((g,b)=>{p.addEventListener("load",g),p.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Zs="bm.lastPilot";function vr(){try{return window.localStorage}catch{return null}}function Ga(e){return typeof e=="string"&&e.trim()!==""&&e.length<=255&&!e.includes("/")}function Hm(e,t=vr()){if(!(!t||!Ga(e)))try{t.setItem(Zs,e)}catch{}}function Jh(e=vr()){if(!e)return null;try{const t=e.getItem(Zs);return Ga(t)?t:null}catch{return null}}function Km(e,t=vr()){if(t)try{t.getItem(Zs)===e&&t.removeItem(Zs)}catch{}}function Yh(e=vr()){const t=Jh(e);return t?{name:"presentation-remote",params:{slug:t}}:{name:"my-presentations"}}const gn=Fh({history:_h("/"),scrollBehavior:(e,t,n)=>e.meta.bare?!1:n??(e.hash?{el:e.hash,top:12}:e.path===t.path?void 0:{top:0}),routes:[{path:"/logowanie",name:"login",component:()=>_e(()=>import("./LoginView-PuXzdmEY.js"),__vite__mapDeps([0,1,2])),meta:{public:!0,guest:!0,title:"Logowanie"}},{path:"/rejestracja",name:"register",component:()=>_e(()=>import("./RegisterView-DtL0JXFF.js"),__vite__mapDeps([3,1])),meta:{public:!0,guest:!0,title:"Rejestracja"}},{path:"/przypomnij-haslo",name:"forgot",component:()=>_e(()=>import("./ForgotView-B03msoeP.js"),__vite__mapDeps([4,1])),meta:{public:!0,title:"Przypomnienie hasła"}},{path:"/auth/oauth/callback",name:"oauth-callback",component:()=>_e(()=>import("./OAuthCallbackView-Csl3jfGN.js"),__vite__mapDeps([5,1,2])),meta:{public:!0,title:"Logowanie"}},{path:"/auth/oauth/rejestracja",name:"oauth-register",component:()=>_e(()=>import("./OAuthRegisterView-duZxFWAp.js"),__vite__mapDeps([6,1])),meta:{public:!0,title:"Rejestracja"}},{path:"/reset-password",alias:"/reset-hasla",name:"reset",component:()=>_e(()=>import("./ResetView-DOA68WgQ.js"),__vite__mapDeps([7,1])),meta:{public:!0,title:"Nowe hasło"}},{path:"/",name:"dashboard",component:()=>_e(()=>import("./DashboardView-DY3Afxmw.js"),__vite__mapDeps([8,9,10,11,12])),meta:{title:"Pulpit",wide:!0}},{path:"/plan",name:"schedule",component:()=>_e(()=>import("./ScheduleView-BxzKXc4R.js"),__vite__mapDeps([13,9,10,11,14])),meta:{title:"Plan zajęć"}},{path:"/terminarz",name:"deadlines",component:()=>_e(()=>import("./DeadlinesView-Ca_SJNYR.js"),__vite__mapDeps([15,9,10,11,14])),meta:{title:"Terminarz"}},{path:"/przedmioty",name:"courses",component:()=>_e(()=>import("./CoursesView-BNWw3Bxu.js"),__vite__mapDeps([16,9,10,11])),meta:{title:"Przedmioty"}},{path:"/przedmioty/:id(\\d+)",name:"course",component:()=>_e(()=>import("./CourseView-BnCC_Rx0.js"),__vite__mapDeps([17,9,10,18])),props:!0,meta:{title:"Przedmiot"}},{path:"/lektury",name:"readings",component:()=>_e(()=>import("./ReadingsView-Be4jxK3O.js"),__vite__mapDeps([19,9,10,11,18,14])),meta:{title:"Lektury"}},{path:"/materialy",name:"materials",component:()=>_e(()=>import("./MaterialsView-DpX8hmjT.js"),__vite__mapDeps([20,9])),meta:{title:"Materiały"}},{path:"/materialy/:id(\\d+)",name:"material",component:()=>_e(()=>import("./MaterialView-DaN3Mhrq.js"),__vite__mapDeps([21,9,10,12])),props:!0,meta:{title:"Materiał"}},{path:"/checklisty",name:"checklists",component:()=>_e(()=>import("./ChecklistsView-Dp-c7CQV.js"),__vite__mapDeps([22,9,10,1])),meta:{title:"Checklisty"}},{path:"/checklisty/:id(\\d+)",name:"checklist",component:()=>_e(()=>import("./ChecklistView-DKXicmT_.js"),__vite__mapDeps([23,9,10,24,1])),props:!0,meta:{title:"Checklista"}},{path:"/sylabusy",name:"syllabi",component:()=>_e(()=>import("./SyllabiView-COvVJGcR.js"),__vite__mapDeps([25,9])),meta:{title:"Sylabusy"}},{path:"/quiz",redirect:"/quizy/powtorka-1-zjazd"},{path:"/quizy",name:"quizzes",component:()=>_e(()=>import("./QuizzesView-CS_US9WK.js"),__vite__mapDeps([26,9,10,27])),meta:{title:"Quizy"}},{path:"/quizy/:slug",name:"quiz",component:()=>_e(()=>import("./QuizView-6nKAWJcm.js"),__vite__mapDeps([28,9,10,27])),props:!0,meta:{title:"Quiz"}},{path:"/wiecej",name:"more",component:()=>_e(()=>import("./MoreView-CDnNzqNs.js"),__vite__mapDeps([29,9])),meta:{title:"Więcej"}},{path:"/profil",name:"profile",component:()=>_e(()=>import("./ProfileView-B9o_fiMt.js"),__vite__mapDeps([30,9,1,2])),meta:{title:"Profil"}},{path:"/moje-prezentacje",name:"my-presentations",component:()=>_e(()=>import("./MyPresentationsView-sfZYImKG.js"),__vite__mapDeps([31,9,10,24])),meta:{title:"Moje prezentacje"}},{path:"/moje-prezentacje/:slug",name:"presentation-speaker",component:()=>_e(()=>import("./PresentationSpeakerView-CJRi1NtO.js"),__vite__mapDeps([32,24,33,34,35,36,37])),props:!0,meta:{bare:!0,title:"Prezentacja"}},{path:"/moje-prezentacje/:slug/pilot",name:"presentation-remote",component:()=>_e(()=>import("./PresentationRemoteView-nYIsdRGZ.js"),__vite__mapDeps([38,24,36,39,40,35])),props:!0,meta:{bare:!0,title:"Pilot"}},{path:"/pilot",name:"pilot",redirect:()=>Yh()},{path:"/prezentacje/:slugHash",name:"presentation-public",component:()=>_e(()=>import("./PresentationPublicView-RtRTp6z0.js"),__vite__mapDeps([41,24,33,34,35,42])),props:!0,meta:{public:!0,bare:!0,title:"Prezentacja"}},{path:"/connect",name:"connect",component:()=>_e(()=>import("./ConnectView-BhDLIdXT.js"),[]),meta:{title:"Połącz aplikację"}},{path:"/:rest(.*)*",name:"notfound",component:()=>_e(()=>import("./NotFoundView-QVtbVJBJ.js"),__vite__mapDeps([43,39])),meta:{title:"Nie znaleziono"}}]});gn.beforeEach(async e=>{const t=fc();return t.ready||await t.restore(e),!e.meta.public&&!t.loggedIn?{name:"login",query:e.fullPath==="/"?{}:{redirect:e.fullPath}}:e.meta.guest&&t.loggedIn?{name:"dashboard"}:!0});gn.afterEach(e=>{const t=e.meta.title;document.title=t?`${t} · BM II°`:"BM II°"});const be="/_bm/api/v1",Ae={dashboard:()=>K.request(`${be}/dashboard`),courses:e=>K.request(`${be}/courses`,{query:{semester:e}}),course:e=>K.request(`${be}/courses/${e}`),schedule:(e,t)=>K.request(`${be}/schedule`,{query:{from:e,to:t}}),meetings:()=>K.request(`${be}/meetings`),deadlines:(e,t)=>K.request(`${be}/deadlines`,{query:{from:e,to:t}}),readings:e=>K.request(`${be}/readings`,{query:{course:e}}),markRead:e=>K.request(`${be}/readings/${e}/progress`,{method:"PUT"}),unmarkRead:e=>K.request(`${be}/readings/${e}/progress`,{method:"DELETE"}),markOwned:e=>K.request(`${be}/readings/${e}/owned`,{method:"PUT"}),unmarkOwned:e=>K.request(`${be}/readings/${e}/owned`,{method:"DELETE"}),materials:(e={})=>K.raw(`${be}/materials`,{query:{...e}}),material:e=>K.request(`${be}/materials/${e}`),calendarFeed:()=>K.request(`${be}/calendar-feed`),saveCalendarFeed:e=>K.request(`${be}/calendar-feed`,{method:"PUT",body:e}),rotateCalendarFeed:()=>K.request(`${be}/calendar-feed/rotate`,{method:"POST"}),deleteCalendarFeed:()=>K.request(`${be}/calendar-feed`,{method:"DELETE"}),checklists:e=>K.request(`${be}/checklists`,{query:{meeting:e}}),checklist:e=>K.request(`${be}/checklists/${e}`),createChecklist:e=>K.request(`${be}/checklists`,{method:"POST",body:e}),updateChecklist:(e,t)=>K.request(`${be}/checklists/${e}`,{method:"PATCH",body:t}),deleteChecklist:e=>K.request(`${be}/checklists/${e}`,{method:"DELETE"}),addChecklistItem:(e,t)=>K.request(`${be}/checklists/${e}/items`,{method:"POST",body:t}),updateChecklistItem:(e,t)=>K.request(`${be}/checklist-items/${e}`,{method:"PATCH",body:t}),deleteChecklistItem:e=>K.request(`${be}/checklist-items/${e}`,{method:"DELETE"}),markChecklistItem:e=>K.request(`${be}/checklist-items/${e}/done`,{method:"PUT"}),unmarkChecklistItem:e=>K.request(`${be}/checklist-items/${e}/done`,{method:"DELETE"})},Qh={"historia-koncepcje":"Historia / koncepcje wojny i pokoju",specjalnosc:"Specjalność"};function Gm(e){return Qh[e]??e}function Bi(e){const t=new Map;for(const n of e){if(!n.elective_group)continue;const s=t.get(n.elective_group)??[];s.includes(n.name)||s.push(n.name),t.set(n.elective_group,s)}return[...t].map(([n,s])=>({code:n,options:s}))}function Zh(e,t){const n={};for(const s of Bi(e)){const r=t[s.code];r&&s.options.includes(r)&&(n[s.code]=r)}return n}function Xh(e,t){if(!e.elective_group)return!1;const n=t[e.elective_group];return n!==void 0&&n!==e.name}function Wa(e,t,n=!1){const s=new Set;if(n)return s;for(const r of e)Xh(r,t)&&s.add(r.id);return s}function Gr(e,t){return t.size===0?e:e.filter(n=>n.course_id===null||!t.has(n.course_id))}function ep(e,t){return Bi(e).filter(n=>n.options.length>1&&!t[n.code])}function Wm(e,t){return!!e.elective_group&&!t[e.elective_group]}const ol="bm.showAllElectives";function ll(e){try{return localStorage.getItem(e)}catch{return null}}function al(e,t){try{localStorage.setItem(e,t)}catch{}}const os=ln("electives",()=>{const e=te({}),t=te(ll(ol)==="1"),n=te(null),s=()=>n.value===null?null:`bm.electives.${n.value}`,r=()=>{const f=s();f&&al(f,JSON.stringify(e.value))};function i(f){n.value=f;try{const p=JSON.parse(ll(`bm.electives.${f}`)??"{}");e.value=p&&typeof p=="object"?p:{}}catch{e.value={}}}const o=ne(()=>Object.keys(e.value).length>0);function l(f,p){const g={...e.value};p===null?delete g[f]:g[f]=p,e.value=g,r()}function a(f){t.value=f,al(ol,f?"1":"0")}function c(f){const p=Zh(f,e.value);Object.keys(p).length!==Object.keys(e.value).length&&(e.value=p,r())}function u(){e.value={},n.value=null}return{choices:e,showAll:t,userId:n,hasChoices:o,load:i,choose:l,setShowAll:a,prune:c,reset:u}}),wn=ln("toast",()=>{const e=te("");let t;function n(r,i=4e3){e.value=r,clearTimeout(t),t=setTimeout(()=>e.value="",i)}function s(){e.value=""}return{message:e,show:n,clear:s}});function xt(e){return e instanceof Xe?e.message:"Nie udało się wczytać danych."}function xn(e){const t=Ln(null),n=te(!1),s=te("");let r=null;function i(l=!1){return r||(t.value!==null&&!l?Promise.resolve():(n.value=!0,s.value="",r=e().then(a=>{t.value=a}).catch(a=>{s.value=xt(a)}).finally(()=>{n.value=!1,r=null}),r))}function o(){t.value=null,s.value="",n.value=!1,r=null}return{data:t,loading:n,error:s,load:i,reset:o}}const cl="2000-01-01",qi=ln("bm",()=>{const e=xn(()=>Ae.courses()),t=xn(()=>Ae.meetings()),n=xn(()=>Ae.schedule(cl)),s=xn(()=>Ae.deadlines(cl)),r=xn(()=>Ae.readings()),i=xn(()=>Ae.dashboard()),o=ne(()=>e.data.value),l=ne(()=>t.data.value),a=ne(()=>i.data.value),c=os(),u=ne(()=>Bi(o.value??[])),f=ne(()=>ep(o.value??[],c.choices)),p=ne(()=>Wa(o.value??[],c.choices,c.showAll)),g=ne(()=>Gr(n.data.value??[],p.value)),b=ne(()=>Gr(s.data.value??[],p.value)),w=ne(()=>Gr(r.data.value??[],p.value)),S=ne(()=>r.data.value??[]),E=ne(()=>(o.value??[]).filter(U=>!p.value.has(U.id))),y=ne(()=>{const U=w.value,Ee=U.filter(X=>X.is_required);return{total:U.length,read:U.filter(X=>X.read_at).length,requiredTotal:Ee.length,requiredRead:Ee.filter(X=>X.read_at).length}}),P=ne(()=>new Map((o.value??[]).map(U=>[U.id,U])));async function O(U=!1){await e.load(U),e.data.value&&c.prune(e.data.value)}async function N(U,Ee){const X=r.data.value,G=X?.find(pe=>pe.id===U);if(!X||!G)return;const re=G.read_at,De=pe=>{r.data.value=X.map(Se=>Se.id===U?{...Se,read_at:pe}:Se)};De(Ee?new Date().toISOString():null);try{const pe=Ee?await Ae.markRead(U):await Ae.unmarkRead(U);De(pe.read_at)}catch(pe){De(re),wn().show(`Nie udało się zapisać zmiany. ${xt(pe)}`)}}function Z(U,Ee){const X=r.data.value;X&&(r.data.value=X.map(G=>G.id===U?{...G,read_at:Ee}:G))}async function j(U,Ee){const X=r.data.value,G=X?.find(pe=>pe.id===U);if(!X||!G)return;const re=G.owned_at,De=pe=>{r.data.value=X.map(Se=>Se.id===U?{...Se,owned_at:pe}:Se)};De(Ee?new Date().toISOString():null);try{const pe=Ee?await Ae.markOwned(U):await Ae.unmarkOwned(U);De(pe.owned_at)}catch(pe){De(re),wn().show(`Nie udało się zapisać zmiany. ${xt(pe)}`)}}const F=[e,t,n,s,r,i],B=ne(()=>F.some(U=>U.loading.value)),oe=ne(()=>F.find(U=>U.error.value)?.error.value??""),L=ne(()=>({courses:e.data.value!==null,meetings:t.data.value!==null,schedule:n.data.value!==null,deadlines:s.data.value!==null,readings:r.data.value!==null,dashboard:i.data.value!==null}));function Te(){for(const U of F)U.error.value&&U.load(!0)}function xe(){for(const U of F)U.reset()}return{courses:o,electiveGroups:u,pendingElectives:f,hidden:p,meetings:l,dashboard:a,schedule:g,deadlines:b,readings:w,allReadings:S,visibleCourses:E,readingStats:y,courseById:P,loading:B,error:oe,loaded:L,retry:Te,loadCourses:O,loadMeetings:(U=!1)=>t.load(U),loadSchedule:(U=!1)=>n.load(U),loadDeadlines:(U=!1)=>s.load(U),loadReadings:(U=!1)=>r.load(U),loadDashboard:(U=!1)=>i.load(U),toggleReading:N,toggleOwned:j,setReadAt:Z,reset:xe}}),tp={lektura:"Lektura",artykul:"Artykuł",ksiazka:"Książka",prezentacja:"Prezentacja",zadanie:"Zadanie",inne:"Inne"},Jm=Object.keys(tp);function np(e){const t=Math.floor(e/60),n=e%60;return t?n?`${t} h ${n} min`:`${t} h`:`${n} min`}function sp(e){const t={total:0,done:0,percent:0,minutes_total:0,minutes_done:0,minutes_left:0};for(const n of e){const s=n.estimate_minutes??0;t.total++,t.minutes_total+=s,n.done?(t.done++,t.minutes_done+=s):t.minutes_left+=s}return t.percent=t.total?Math.floor(t.done*100/t.total):0,t}function Ym(e){const t=`${e.done} z ${e.total}`;return e.minutes_left?`${t} · zostało ${np(e.minutes_left)}`:t}function Qm(e){const t=new Map;for(const s of e){const r=s.course?`c${s.course.id}`:"none";let i=t.get(r);i||(i={key:r,label:s.course?.name??"Ogólne",items:[]},t.set(r,i)),i.items.push(s)}const n=t.get("none");return t.delete("none"),n?[...t.values(),n]:[...t.values()]}function Zm(e){if(!e)return"";const t=new Date(e),n=s=>String(s).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function Xm(e){return e?e.replace("T"," "):null}const rp=ln("checklists",()=>{const e=te(null),t=te(""),n=te({}),s=te("");async function r(){t.value="";try{e.value=await Ae.checklists()}catch(y){t.value=xt(y)}}async function i(y){s.value="";try{o(await Ae.checklist(y))}catch(P){s.value=xt(P)}}function o(y){n.value={...n.value,[y.id]:y};const P={...y,items:void 0};e.value&&(e.value=e.value.some(O=>O.id===y.id)?e.value.map(O=>O.id===y.id?P:O):[...e.value,P])}function l(y,P){const O=n.value[y];O&&o({...O,items:P,progress:sp(P)})}async function a(y){const P=await Ae.createChecklist(y);return o(P),P}async function c(y,P){o(await Ae.updateChecklist(y,P))}async function u(y){await Ae.deleteChecklist(y);const{[y]:P,...O}=n.value;n.value=O,e.value&&(e.value=e.value.filter(N=>N.id!==y))}function f(y,P){for(const O of Object.values(n.value))O.items?.some(N=>N.reading_id===y)&&l(O.id,O.items.map(N=>N.reading_id===y?{...N,done:P!==null,done_at:P}:N))}async function p(y,P){const O=n.value[y.checklist_id];if(!O?.items)return;const N=O.items,Z=j=>{if(y.reading_id!==null)f(y.reading_id,j);else{const F=n.value[y.checklist_id]?.items??N;l(y.checklist_id,F.map(B=>B.id===y.id?{...B,done:j!==null,done_at:j}:B))}};Z(P?new Date().toISOString():null);try{const j=P?await Ae.markChecklistItem(y.id):await Ae.unmarkChecklistItem(y.id);Z(j.done_at),y.reading_id!==null&&qi().setReadAt(y.reading_id,j.done_at)}catch(j){l(y.checklist_id,N),wn().show(`Nie udało się zapisać zmiany. ${xt(j)}`)}}async function g(y,P){const O=await Ae.addChecklistItem(y,P),N=n.value[y];return N?.items&&l(y,[...N.items,O]),O}async function b(y,P){const O=await Ae.updateChecklistItem(y.id,P);if(O.checklist_id!==y.checklist_id){const Z=n.value[y.checklist_id];return Z?.items&&l(y.checklist_id,Z.items.filter(j=>j.id!==y.id)),i(O.checklist_id),r(),O}const N=n.value[y.checklist_id];if(N?.items){const Z=N.items.map(j=>j.id===y.id?O:j);l(y.checklist_id,Z.sort((j,F)=>j.sort_order-F.sort_order||j.id-F.id))}return O}async function w(y){await Ae.deleteChecklistItem(y.id);const P=n.value[y.checklist_id];P?.items&&l(y.checklist_id,P.items.filter(O=>O.id!==y.id))}async function S(y,P){const O=n.value[y.checklist_id]?.items;if(!O)return;const N=O.findIndex(B=>B.id===y.id),Z=O[N+P];if(!Z)return;const j=Z.sort_order===y.sort_order?N+P:Z.sort_order,F=Z.sort_order===y.sort_order?N:y.sort_order;try{await Promise.all([b(y,{sort_order:j}),b(Z,{sort_order:F})])}catch(B){wn().show(`Nie udało się zmienić kolejności. ${xt(B)}`),i(y.checklist_id)}}function E(){e.value=null,n.value={},t.value="",s.value=""}return{list:e,listError:t,details:n,detailError:s,loadList:r,loadOne:i,create:a,update:c,remove:u,toggle:p,syncReading:f,addItem:g,updateItem:b,removeItem:w,move:S,reset:E}});function ip(e,t){return[...Wa(e,t,!1)].sort((n,s)=>n-s)}function op(e,t){if(e.length!==t.length)return!1;const n=[...e].sort((r,i)=>r-i),s=[...t].sort((r,i)=>r-i);return n.every((r,i)=>r===s[i])}async function eg(e){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0}catch{}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch{return!1}}const Ja=ln("calendarFeed",()=>{const e=te(void 0),t=te(!1),n=te(!1),s=te(""),r=qi(),i=os();let o=Promise.resolve();function l(E){const y=o.then(E,E);return o=y.catch(()=>{}),y}async function a(E=!1){if(!(e.value!==void 0&&!E)){t.value=!0,s.value="";try{e.value=await Ae.calendarFeed()}catch(y){s.value=xt(y)}finally{t.value=!1}}}async function c(){await r.loadCourses();const E=r.courses;return E?ip(E,i.choices):null}async function u(E){n.value=!0,s.value="";try{await l(E)}catch(y){s.value=xt(y)}finally{n.value=!1}}function f(){return u(async()=>{const E=await c();e.value=await Ae.saveCalendarFeed(E?{excluded_course_ids:E}:{})})}function p(E){return u(async()=>{e.value=await Ae.saveCalendarFeed(E)})}function g(){return u(async()=>{e.value=await Ae.rotateCalendarFeed()})}function b(){return u(async()=>{await Ae.deleteCalendarFeed(),e.value=null})}function w(){return l(async()=>{e.value===void 0&&await a();const E=e.value;if(!E)return;const y=await c();if(!(!y||op(y,E.excluded_course_ids)))try{e.value=await Ae.saveCalendarFeed({excluded_course_ids:y})}catch(P){wn().show(`Nie udało się zaktualizować kalendarza. ${xt(P)}`)}})}vn(()=>i.choices,()=>{i.userId!==null&&w()});function S(){e.value=void 0,s.value="",t.value=!1,n.value=!1}return{feed:e,loading:t,busy:n,error:s,load:a,create:f,save:p,rotate:g,remove:b,sync:w,reset:S}}),Ls="/_bm/api/v1",rt="/_chat/api/v1";function ul(e,t,n){return new Promise((s,r)=>{const i=new XMLHttpRequest;i.open("POST",`${rt}/attachments`),i.setRequestHeader("Accept","application/json");const o=ht.get();if(o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.upload.onprogress=a=>{a.lengthComputable&&a.total>0&&t?.(Math.min(100,Math.round(a.loaded/a.total*100)))},i.onload=()=>{let a=null;try{a=i.responseText?JSON.parse(i.responseText):null}catch{a=null}const c=a&&typeof a=="object"&&"data"in a?a.data:a;if(i.status>=200&&i.status<300&&c&&typeof c.id=="number"){s({id:c.id,filename:String(c.filename??e.name),size:Number(c.size??e.size)});return}const u=a??{};r(new Xe(i.status,typeof u.error=="string"?u.error:`Błąd ${i.status}`,u.errors??{}))},i.onerror=()=>r(new Xe(0,"Brak połączenia z serwerem.")),i.onabort=()=>r(new Xe(0,"Przerwano wysyłanie.")),n){if(n.aborted){r(new Xe(0,"Przerwano wysyłanie."));return}n.addEventListener("abort",()=>i.abort(),{once:!0})}const l=new FormData;l.append("file",e,e.name),i.send(l)})}async function lp(e,t,n){const s=ht.get();try{return await ul(e,t,n)}catch(r){if(!(r instanceof Xe)||r.status!==401||!s||n?.aborted)throw r;await K.request("/_user/api/v1/fetch").catch(()=>null);const i=ht.get();if(!i||i===s)throw r;return t?.(0),ul(e,t,n)}}async function ap(e,t,n){const s=await K.blob(`${rt}/attachments/${e}/${t}`),r=URL.createObjectURL(new Blob([s],{type:"application/octet-stream"})),i=document.createElement("a");i.href=r,i.download=n||"plik",i.rel="noopener",i.style.display="none",document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}const Ve={bootstrap:()=>K.request(`${Ls}/chat`),members:()=>K.request(`${Ls}/chat/members`),messages:(e,{limit:t=50,before:n}={})=>K.request(`${rt}/conversations/${e}/messages`,{query:{limit:t,before:n}}),send:(e,t)=>K.request(`${rt}/conversations/${e}/messages`,{method:"POST",body:t}),message:e=>K.request(`${rt}/messages/${e}`),markRead:e=>K.request(`${rt}/conversations/${e}/read`,{method:"POST"}),typing:e=>K.request(`${rt}/conversations/${e}/typing`,{method:"POST"}),edit:(e,t)=>K.request(`${rt}/messages/${e}`,{method:"PUT",body:{content:t}}),remove:e=>K.request(`${rt}/messages/${e}`,{method:"DELETE"}),reactions:()=>K.request(`${rt}/reactions`),addReaction:(e,t)=>K.request(`${rt}/messages/${e}/reactions`,{method:"POST",body:{key:t}}),removeReaction:(e,t)=>K.request(`${rt}/messages/${e}/reactions/${encodeURIComponent(t)}`,{method:"DELETE"}),embeds:(e,t="")=>K.request(`${Ls}/chat/embeds`,{query:{type:e,q:t.trim()}}),resolveEmbeds:e=>K.request(`${Ls}/chat/embeds/resolve`,{method:"POST",body:{refs:e}}),upload:lp,download:ap,startDm:e=>K.request(`${rt}/contexts/bm/1/dm`,{method:"POST",body:{user_id:e}})};function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}function cp(e){return Dt(e)?Ke(e.id)!==null&&Ke(e.conversation_id)!==null&&Ke(e.sender_id)!==null&&typeof e.created_at=="string"&&(e.content===null||typeof e.content=="string")&&Array.isArray(e.attachments):!1}function up(e){if(!Dt(e)||typeof e.event!="string")return null;const t=e.payload;switch(e.event){case"created.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id),r=Ke(t.sender_id);return n===null||s===null||r===null?null:{kind:"created",id:n,conversationId:s,senderId:r}}case"chat:message":{if(!Dt(t)||!cp(t.message))return null;const n=Ke(t.conversation_id);return n===null||n!==t.message.conversation_id?null:{kind:"chatMessage",conversationId:n,message:t.message}}case"typing.chat.message":{if(!Dt(t)||t.action!=="typing-start")return null;const n=Ke(t.conversation_id),s=Ke(t.user_id);return n===null||s===null?null:{kind:"typing",conversationId:n,userId:s}}case"chat:read":{if(!Dt(t))return null;const n=Ke(t.conversation_id),s=Ke(t.user_id);return n===null||s===null?null:{kind:"read",conversationId:n,userId:s}}case"chat:unread":return!Dt(t)||typeof t.count!="number"||!Number.isInteger(t.count)||t.count<0?null:{kind:"unread",count:t.count};case"mentions.changed":return{kind:"mentions"};case"reacted.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id),r=Ke(t.user_id);return n===null||s===null||r===null||typeof t.key!="string"||t.key===""||t.action!=="added"&&t.action!=="removed"?null:{kind:"reacted",id:n,conversationId:s,userId:r,key:t.key,added:t.action==="added"}}case"updated.chat.message":case"deleted.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id);return n===null||s===null?null:{kind:e.event==="updated.chat.message"?"updated":"deleted",id:n,conversationId:s}}default:return null}}function fp(e,t){if(e.kind!=="created")return!1;const n=t[e.conversationId];return!!n&&!n.some(s=>s.id===e.id)}function dp(e,t,{seen:n}){const s={id:t.id,sender_id:t.sender_id,content:t.content??"",created_at:t.created_at},r=e.findIndex(a=>a.id===t.conversation_id);if(r===-1)return[{id:t.conversation_id,type:"dm",other_user_id:t.sender_id,unread:n?0:1,last_message:s},...e];const i=e[r];if(i.last_message&&i.last_message.id===t.id)return e;const o=!i.last_message||Date.parse(t.created_at)>=Date.parse(i.last_message.created_at),l={...i,unread:n?i.unread:i.unread+1,last_message:o?s:i.last_message};return e.map((a,c)=>c===r?l:a)}function Wr(e,t,n,s,r=[]){const i=e?[...e]:[],o=i.findIndex(c=>c.key===t),l=o>=0&&i[o].user_ids.includes(n);if(s===l)return e||i;if(s){if(o>=0)return i[o]={...i[o],count:i[o].count+1,user_ids:[...i[o].user_ids,n]},i;const c={key:t,count:1,user_ids:[n]},u=p=>{const g=r.indexOf(p);return g<0?r.length:g};let f=i.length;return r.includes(t)&&(f=i.findIndex(p=>u(p.key)>u(t)),f<0&&(f=i.length)),i.splice(f,0,c),i}const a=i[o].user_ids.filter(c=>c!==n);return a.length===0?i.splice(o,1):i[o]={...i[o],count:Math.max(0,i[o].count-1),user_ids:a},i}const hp=["svg","svgz","html","htm","xhtml","xml"],pp=["image/svg+xml","text/html","application/xhtml+xml","text/xml","application/xml"];function fl(e){const t=e/1048576;return Number.isInteger(t)?String(t):(Math.floor(t*10)/10).toFixed(1).replace(".",",")}function mp(e){const t=e.name.lastIndexOf("."),n=(t>=0?e.name.slice(t+1):e.name).toLowerCase();if(hp.includes(n))return!0;const s=(e.type||"").split(";")[0].trim().toLowerCase();return pp.includes(s)}function gp(e,t,n,s=0){const r=[],i=[];let o=!1,l=!1,a=!1,c=s;for(const u of e){if(mp(u)){o=!0;continue}if(t.max_bytes>0&&u.size>t.max_bytes){i.push(`Plik „${u.name}” jest za duży. Limit to ${fl(t.max_bytes)} MB.`);continue}if(n+r.length>=t.max_files){l=!0;continue}if(t.max_bytes>0&&c+u.size>t.max_bytes){a=!0;continue}c+=u.size,r.push(u)}return a&&i.unshift(`Załączniki jednej wiadomości mogą mieć razem najwyżej ${fl(t.max_bytes)} MB.`),o&&i.unshift("Plików SVG, HTML i XML nie można wysyłać na czacie."),l&&i.unshift(`Możesz dołączyć najwyżej ${t.max_files} plików do jednej wiadomości.`),{accepted:r,errors:i}}const Ya="Europe/Warsaw",yp="pl-PL";function Qa(e,t,n,s){const r=Math.abs(e);if(r===1)return t;const i=r%10,o=r%100;return i>=2&&i<=4&&!(o>=12&&o<=14)?n:s}function mi(e,t,n,s){return`${e} ${Qa(e,t,n,s)}`}const Fn=(e,t=Ya)=>new Intl.DateTimeFormat(yp,{timeZone:t,...e}),vp=Fn({hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),_p=Fn({weekday:"long",day:"numeric",month:"long"}),bp=Fn({day:"numeric",month:"long",year:"numeric"}),wp=Fn({day:"numeric",month:"short"});Fn({weekday:"long"});const Ep=new Intl.DateTimeFormat("sv-SE",{timeZone:Ya,year:"numeric",month:"2-digit",day:"2-digit"});function Ds(e){return new Date(`${e}T12:00:00Z`)}const Ns=e=>Fn(e,"UTC"),gi=e=>vp.format(new Date(e)),Sp=e=>_p.format(new Date(e)),Rp=e=>bp.format(new Date(e)),tg=e=>wp.format(new Date(e)),Ap=e=>`${Rp(e)}, ${gi(e)}`,Za=e=>Ep.format(typeof e=="string"?new Date(e):e),Tp=(e=new Date)=>Za(e);function Xa(e,t=new Date){const n=Date.parse(`${Tp(t)}T00:00:00Z`),s=Date.parse(`${Za(e)}T00:00:00Z`);return Math.round((s-n)/864e5)}function xp(e,t=new Date){const n=Xa(e,t);return n===0?"dzisiaj":n===1?"jutro":n===-1?"wczoraj":n>1?`za ${mi(n,"dzień","dni","dni")}`:`${mi(-n,"dzień","dni","dni")} temu`}function ng(e,t){if(e===t)return Ns({day:"numeric",month:"long",year:"numeric"}).format(Ds(e));const[n,s]=e.split("-"),[r,i]=t.split("-"),o=c=>Ns({day:"numeric"}).format(Ds(c)),l=c=>Ns({day:"numeric",month:"long"}).format(Ds(c)),a=c=>Ns({year:"numeric"}).format(Ds(c));return n===r&&s===i?`${o(e)}–${l(t)} ${a(t)}`:n===r?`${l(e)} – ${l(t)} ${a(t)}`:`${l(e)} ${a(e)} – ${l(t)} ${a(t)}`}function sg(e){return e?/online/i.test(e)?"online":/stacjonarn/i.test(e)?"stacjonarny":null:null}function rg(e){return e?e.trim().toLowerCase()==="online"?"":e.trim():""}const Cp={wyklad:"wykład",cwiczenia:"ćwiczenia",konwersatorium:"konwersatorium",seminarium:"seminarium",inne:"zajęcia"},Pp={zaliczenie:"zaliczenie",egzamin:"egzamin",praca:"praca",organizacyjne:"organizacyjne",inne:"inne"},ig={pdf:"PDF",notatka:"notatka",link:"link",inne:"inne"};function og(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(0)} KB`:`${(e/1024/1024).toFixed(1).replace(".",",")} MB`}const Op=["deadline","class","reading"],yi=3,lg={deadline:"Termin",class:"Zajęcia",reading:"Lektura"};function en(e){return`${e.type}:${e.id}`}function Mp(e){return typeof e=="string"&&Op.includes(e)}function ec(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function kp(e){if(!e||typeof e!="object")return!1;const t=e;return Mp(t.type)&&ec(t.id)}function Ip(e,t=yi){const n=e?.metadata?.embeds;if(!Array.isArray(n))return[];const s=[],r=new Set;for(const i of n){if(s.length>=t)break;if(!kp(i))continue;const o={type:i.type,id:i.id},l=en(o);r.has(l)||(r.add(l),s.push(o))}return s}function tc(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":return`/plan#zajecia-${e.id}`;case"reading":return`/lektury#lektura-${e.id}`}}function Lp(e,t=""){return e.map(n=>t+tc(n)).join(` +`))),e[Tt]=jn(r);const i=s||r.props&&r.props.type==="number";tn(e,t?"change":"input",o=>{o.target.composing||e[Tt](Vr(e.value,n,i))}),(n||i)&&tn(e,"change",()=>{e.value=Vr(e.value,n,i)}),t||(tn(e,"compositionstart",bd),tn(e,"compositionend",Do),tn(e,"change",Do))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Is];delete e[Is],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Tt](Vr(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[Tt]=jn(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?rr(e.value):e.value,a=t??"";if(l===a)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===a)||(e.value=a)}},Lm={deep:!0,created(e,t,n){e[Tt]=jn(n),tn(e,"change",()=>{const s=e._modelValue,r=ps(e),i=e.checked,o=e[Tt];if(Q(s)){const l=Si(s,r),a=l!==-1;if(i&&!a)o(s.concat(r));else if(!i&&a){const c=[...s];c.splice(l,1),o(c)}}else if(Bt(s)){const l=new Set(s);i?l.add(r):l.delete(r),o(l)}else o(Ca(e,i))})},mounted:No,beforeUpdate(e,t,n){e[Tt]=jn(n),No(e,t,n)}};function No(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(Q(t))r=Si(t,s.props.value)>-1;else if(Bt(t))r=t.has(s.props.value);else{if(t===n)return;r=qt(t,Ca(e,!0))}e.checked!==r&&(e.checked=r)}const Dm={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,tn(e,"change",()=>{const r=Array.prototype.filter.call(e.options,a=>a.selected).map(a=>n?rr(ps(a)):ps(a)),i=e.multiple,o=i?Bt(e._modelValue)?new Set(r):r:r[0],l=e._pendingValue=[i,i?Q(o)?r.slice():r:o];try{e[Tt](o)}finally{ar(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[Tt]=jn(s)},mounted(e,{value:t}){jo(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Tt]=jn(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!wd(t,n[1],n[0]))&&jo(e,t)}};function wd(e,t,n){if(!n||Q(e))return qt(e,t);if(Bt(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function jo(e,t){const n=e.multiple,s=Q(t);if(!(n&&!s&&!Bt(t))){for(let r=0,i=e.options.length;rString(c)===String(l)):o.selected=Si(t,l)>-1}else o.selected=t.has(l);else if(qt(ps(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ps(e){return"_value"in e?e._value:e.value}function Ca(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ed=["ctrl","shift","alt","meta"],Sd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ed.some(n=>e[`${n}Key`]&&!t.includes(n))},Nm=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=on(r.key);if(t.some(o=>o===i||Rd[o]===i))return e(r)}))},Ad=Fe({patchProp:yd},ed);let $o;function Td(){return $o||($o=Lf(Ad))}const xd=((...e)=>{const t=Td().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Pd(s);if(!r)return;const i=t._component;!se(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Cd(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Cd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Pd(e){return Pe(e)?document.querySelector(e):e}let Pa;const mr=e=>Pa=e,Oa=Symbol();function ci(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var rs;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(rs||(rs={}));function Od(){const e=Cl(!0),t=e.run(()=>te({}));let n=[],s=[];const r=Oi({install(i){mr(r),r._a=i,i.provide(Oa,r),i.config.globalProperties.$pinia=r,s.forEach(o=>n.push(o)),s=[]},use(i){return this._a?n.push(i):s.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const Ma=()=>{};function zo(e,t,n,s=Ma){e.add(t);const r=()=>{e.delete(t)&&s()};return!n&&Pl()&&cu(r),r}function Tn(e,...t){e.forEach(n=>{n(...t)})}const Md=e=>e(),Vo=Symbol(),Fr=Symbol();function ui(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];ci(r)&&ci(s)&&e.hasOwnProperty(n)&&!Ie(s)&&!Pt(s)?e[n]=ui(r,s):e[n]=s}return e}const kd=Symbol();function Id(e){return!ci(e)||!Object.prototype.hasOwnProperty.call(e,kd)}const{assign:Yt}=Object;function Ld(e){return!!(Ie(e)&&e.effect)}function Dd(e,t,n,s){const{state:r,actions:i,getters:o}=t,l=n.state.value[e];let a;function c(){l||(n.state.value[e]=r?r():{});const u=Ou(n.state.value[e]);return Yt(u,i,Object.keys(o||{}).reduce((f,p)=>(f[p]=Oi(ne(()=>{mr(n);const g=n._s.get(e);return o[p].call(g,g)})),f),{}))}return a=ka(e,c,t,n,s,!0),a}function ka(e,t,n={},s,r,i){let o;const l=Yt({actions:{}},n),a={deep:!0};let c,u,f=new Set,p=new Set,g;const b=s.state.value[e];!i&&!b&&(s.state.value[e]={});let w;function S(F){let B;c=u=!1,typeof F=="function"?(F(s.state.value[e]),B={type:rs.patchFunction,storeId:e,events:g}):(ui(s.state.value[e],F),B={type:rs.patchObject,payload:F,storeId:e,events:g});const oe=w=Symbol();ar().then(()=>{w===oe&&(c=!0)}),u=!0,Tn(f,B,s.state.value[e])}const E=i?function(){const{state:B}=n,oe=B?B():{};this.$patch(L=>{Yt(L,oe)})}:Ma;function y(){o.stop(),f.clear(),p.clear(),s._s.delete(e)}const P=(F,B="")=>{if(Vo in F)return F[Fr]=B,F;const oe=function(){mr(s);const L=Array.from(arguments),Te=new Set,xe=new Set;function U(G){Te.add(G)}function Ee(G){xe.add(G)}Tn(p,{args:L,name:oe[Fr],store:N,after:U,onError:Ee});let X;try{X=F.apply(this&&this.$id===e?this:N,L)}catch(G){throw Tn(xe,G),G}return X instanceof Promise?X.then(G=>(Tn(Te,G),G)).catch(G=>(Tn(xe,G),Promise.reject(G))):(Tn(Te,X),X)};return oe[Vo]=!0,oe[Fr]=B,oe},O={_p:s,$id:e,$onAction:zo.bind(null,p),$patch:S,$reset:E,$subscribe(F,B={}){const oe=zo(f,F,B.detached,()=>L()),L=o.run(()=>vn(()=>s.state.value[e],Te=>{(B.flush==="sync"?u:c)&&F({storeId:e,type:rs.direct,events:g},Te)},Yt({},a,B)));return oe},$dispose:y},N=vs(O);s._s.set(e,N);const j=(s._a&&s._a.runWithContext||Md)(()=>s._e.run(()=>(o=Cl()).run(()=>t({action:P}))));for(const F in j){const B=j[F];if(Ie(B)&&!Ld(B)||Pt(B))i||(b&&Id(B)&&(Ie(B)?B.value=b[F]:ui(B,b[F])),s.state.value[e][F]=B);else if(typeof B=="function"){const oe=P(B,F);j[F]=oe,l.actions[F]=B}}return Yt(N,j),Yt(de(N),j),Object.defineProperty(N,"$state",{get:()=>s.state.value[e],set:F=>{S(B=>{Yt(B,F)})}}),s._p.forEach(F=>{Yt(N,o.run(()=>F({store:N,app:s._a,pinia:s,options:l})))}),b&&i&&n.hydrate&&n.hydrate(N.$state,b),c=!0,u=!0,N}function ln(e,t,n){let s;const r=typeof t=="function";s=r?n:t;function i(o,l){const a=Fu();return o=o||(a?ft(Oa,null):null),o&&mr(o),o=Pa,o._s.has(e)||(r?ka(e,t,s,o):Dd(e,s,o)),o._s.get(e)}return i.$id=e,i}const $m=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),zm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Vm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Fm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Bm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),qm=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));const Pn=typeof document<"u";function Ia(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Nd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Ia(e.default)}const ge=Object.assign;function Br(e,t){const n={};for(const s in t){const r=t[s];n[s]=gt(r)?r.map(e):e(r)}return n}const is=()=>{},gt=Array.isArray;function Fo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const La=/#/g,jd=/&/g,$d=/\//g,zd=/=/g,Vd=/\?/g,Da=/\+/g,Fd=/%5B/g,Bd=/%5D/g,Na=/%5E/g,qd=/%60/g,ja=/%7B/g,Ud=/%7C/g,$a=/%7D/g,Hd=/%20/g;function Vi(e){return e==null?"":encodeURI(""+e).replace(Ud,"|").replace(Fd,"[").replace(Bd,"]")}function Kd(e){return Vi(e).replace(ja,"{").replace($a,"}").replace(Na,"^")}function fi(e){return Vi(e).replace(Da,"%2B").replace(Hd,"+").replace(La,"%23").replace(jd,"%26").replace(qd,"`").replace(ja,"{").replace($a,"}").replace(Na,"^")}function Gd(e){return fi(e).replace(zd,"%3D")}function Wd(e){return Vi(e).replace(La,"%23").replace(Vd,"%3F")}function Jd(e){return Wd(e).replace($d,"%2F")}function ms(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Yd=/\/$/,Qd=e=>e.replace(Yd,"");function qr(e,t,n="/"){let s,r={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(s=t.slice(0,a),i=t.slice(a,l>0?l:t.length),r=e(i.slice(1))),l>=0&&(s=s||t.slice(0,l),o=t.slice(l,t.length)),s=th(s??t,n),{fullPath:s+i+o,path:s,query:r,hash:ms(o)}}function Zd(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Bo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Xd(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&$n(t.matched[s],n.matched[r])&&za(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function $n(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function za(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!eh(e[n],t[n]))return!1;return!0}function eh(e,t){return gt(e)?qo(e,t):gt(t)?qo(t,e):e?.valueOf()===t?.valueOf()}function qo(e,t){return gt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function th(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let di=(function(e){return e.pop="pop",e.push="push",e})({}),Ur=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function nh(e){if(!e)if(Pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Qd(e)}const sh=/^[^#]+#/;function rh(e,t){return e.replace(sh,"#")+t}function ih(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const gr=()=>({left:window.scrollX,top:window.scrollY});function oh(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=ih(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Uo(e,t){return(history.state?history.state.position-t:-1)+e}const hi=new Map;function lh(e,t){hi.set(e,t)}function ah(e){const t=hi.get(e);return hi.delete(e),t}function ch(e){return typeof e=="string"||e&&typeof e=="object"}function Va(e){return typeof e=="string"||typeof e=="symbol"}let ke=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Fa=Symbol("");ke.MATCHER_NOT_FOUND+"",ke.NAVIGATION_GUARD_REDIRECT+"",ke.NAVIGATION_ABORTED+"",ke.NAVIGATION_CANCELLED+"",ke.NAVIGATION_DUPLICATED+"";function zn(e,t){return ge(new Error,{type:e,[Fa]:!0},t)}function It(e,t){return e instanceof Error&&Fa in e&&(t==null||!!(e.type&t))}const uh=["params","query","hash"];function fh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of uh)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function dh(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&fi(r)):[s&&fi(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function hh(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=gt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const ph=Symbol(""),Ko=Symbol(""),yr=Symbol(""),Fi=Symbol(""),pi=Symbol("");function Gn(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Xt(e,t,n,s,r,i=o=>o()){const o=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const c=p=>{p===!1?a(zn(ke.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?a(p):ch(p)?a(zn(ke.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(o&&s.enterCallbacks[r]===o&&typeof p=="function"&&o.push(p),l())},u=i(()=>e.call(s&&s.instances[r],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(p=>a(p))})}function Hr(e,t,n,s,r=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(Ia(a)){const c=(a.__vccOpts||a)[t];c&&i.push(Xt(c,n,s,o,l,r))}else{let c=a();i.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Nd(u)?u.default:u;o.mods[l]=u,o.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&Xt(p,n,s,o,l,r)()}))}}return i}function mh(e,t){const n=[],s=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;o$n(c,l))?s.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(c=>$n(c,a))||r.push(a))}return[n,s,r]}let gh=()=>location.protocol+"//"+location.host;function Ba(e,t){const{pathname:n,search:s,hash:r}=t,i=e.indexOf("#");if(i>-1){let o=r.includes(e.slice(i))?e.slice(i).length:1,l=r.slice(o);return l[0]!=="/"&&(l="/"+l),Bo(l,"")}return Bo(n,e)+s+r}function yh(e,t,n,s){let r=[],i=[],o=null;const l=({state:p})=>{const g=Ba(e,location),b=n.value,w=t.value;let S=0;if(p){if(n.value=g,t.value=p,o&&o===b){o=null;return}S=w?p.position-w.position:0}else s(g);r.forEach(E=>{E(n.value,b,{delta:S,type:di.pop,direction:S?S>0?Ur.forward:Ur.back:Ur.unknown})})};function a(){o=n.value}function c(p){r.push(p);const g=()=>{const b=r.indexOf(p);b>-1&&r.splice(b,1)};return i.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ge({},p.state,{scroll:gr()}),"")}}function f(){for(const p of i)p();i=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:a,listen:c,destroy:f}}function Go(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?gr():null}}function vh(e){const{history:t,location:n}=window,s={value:Ba(e,n)},r={value:t.state};r.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:gh()+e+a;try{t[u?"replaceState":"pushState"](c,"",p),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](p)}}function o(a,c){i(a,ge({},t.state,Go(r.value.back,a,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=a}function l(a,c){const u=ge({},r.value,t.state,{forward:a,scroll:gr()});i(u.current,u,!0),i(a,ge({},Go(s.value,a,null),{position:u.position+1},c),!1),s.value=a}return{location:s,state:r,push:l,replace:o}}function _h(e){e=nh(e);const t=vh(e),n=yh(e,t.state,t.location,t.replace);function s(i,o=!0){o||n.pauseListeners(),history.go(i)}const r=ge({location:"",base:e,go:s,createHref:rh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let mn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var je=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(je||{});const bh={type:mn.Static,value:""},wh=/[a-zA-Z0-9_]/;function Eh(e){if(!e)return[[]];if(e==="/")return[[bh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=je.Static,s=n;const r=[];let i;function o(){i&&r.push(i),i=[]}let l=0,a,c="",u="";function f(){c&&(n===je.Static?i.push({type:mn.Static,value:c}):n===je.Param||n===je.ParamRegExp||n===je.ParamRegExpEnd?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:mn.Param,value:c,regexp:u,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=a}for(;lt.length?t.length===1&&t[0]===Qe.Static+Qe.Segment?1:-1:0}function qa(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const xh={strict:!1,end:!0,sensitive:!1};function Ch(e,t,n){const s=Ah(Eh(e.path),n),r=ge(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ph(e,t){const n=[],s=new Map;t=Fo(xh,t);function r(f){return s.get(f)}function i(f,p,g){const b=!g,w=Qo(f);w.aliasOf=g&&g.record;const S=Fo(t,f),E=[w];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const N of O)E.push(Qo(ge({},w,{components:g?g.record.components:w.components,path:N,aliasOf:g?g.record:w})))}let y,P;for(const O of E){const{path:N}=O;if(p&&N[0]!=="/"){const Z=p.record.path,j=Z[Z.length-1]==="/"?"":"/";O.path=p.record.path+(N&&j+N)}if(y=Ch(O,p,S),g?g.alias.push(y):(P=P||y,P!==y&&P.alias.push(y),b&&f.name&&!Zo(y)&&o(f.name)),Ua(y)&&a(y),w.children){const Z=w.children;for(let j=0;j{o(P)}:is}function o(f){if(Va(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const p=kh(f,n);n.splice(p,0,f),f.record.name&&!Zo(f)&&s.set(f.record.name,f)}function c(f,p){let g,b={},w,S;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw zn(ke.MATCHER_NOT_FOUND,{location:f});S=g.record.name,b=ge(Yo(p.params,g.keys.filter(P=>!P.optional).concat(g.parent?g.parent.keys.filter(P=>P.optional):[]).map(P=>P.name)),f.params&&Yo(f.params,g.keys.map(P=>P.name))),w=g.stringify(b)}else if(f.path!=null)w=f.path,g=n.find(P=>P.re.test(w)),g&&(b=g.parse(w),S=g.record.name);else{if(g=p.name?s.get(p.name):n.find(P=>P.re.test(p.path)),!g)throw zn(ke.MATCHER_NOT_FOUND,{location:f,currentLocation:p});S=g.record.name,b=ge({},p.params,f.params),w=g.stringify(b)}const E=[];let y=g;for(;y;)E.unshift(y.record),y=y.parent;return{name:S,path:w,params:b,matched:E,meta:Mh(E)}}e.forEach(f=>i(f));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:c,removeRoute:o,clearRoutes:u,getRoutes:l,getRecordMatcher:r}}function Yo(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function Qo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Oh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Zo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Mh(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function kh(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;qa(e,t[i])<0?s=i:n=i+1}const r=Ih(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Ih(e){let t=e;for(;t=t.parent;)if(Ua(t)&&qa(e,t)===0)return t}function Ua({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Xo(e){const t=ft(yr),n=ft(Fi),s=ne(()=>{const a=Le(e.to);return t.resolve(a)}),r=ne(()=>{const{matched:a}=s.value,{length:c}=a,u=a[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex($n.bind(null,u));if(p>-1)return p;const g=el(a[c-2]);return c>1&&el(u)===g&&f[f.length-1].path!==g?f.findIndex($n.bind(null,a[c-2])):p}),i=ne(()=>r.value>-1&&$h(n.params,s.value.params)),o=ne(()=>r.value>-1&&r.value===n.matched.length-1&&za(n.params,s.value.params));function l(a={}){if(jh(a)){const c=t[Le(e.replace)?"replace":"push"](Le(e.to)).catch(is);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:ne(()=>s.value.href),isActive:i,isExactActive:o,navigate:l}}function Lh(e){return e.length===1?e[0]:e}const Dh=Vn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Xo,setup(e,{slots:t}){const n=vs(Xo(e)),{options:s}=ft(yr),r=ne(()=>({[tl(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[tl(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Lh(t.default(n));return e.custom?i:Aa("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),Nh=Dh;function jh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function $h(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!gt(r)||r.length!==s.length||s.some((i,o)=>i.valueOf()!==r[o].valueOf()))return!1}return!0}function el(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const tl=(e,t,n)=>e??t??n,zh=Vn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=ft(pi),r=ne(()=>e.route||s.value),i=ft(Ko,0),o=ne(()=>{let c=Le(i);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),l=ne(()=>r.value.matched[o.value]);$s(Ko,ne(()=>o.value+1)),$s(ph,l),$s(pi,r);const a=te();return vn(()=>[a.value,l.value,e.name],([c,u,f],[p,g,b])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!$n(u,g)||!p)&&(u.enterCallbacks[f]||[]).forEach(w=>w(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=l.value,p=f&&f.components[u];if(!p)return nl(n.default,{Component:p,route:c});const g=f.props[u],b=g?g===!0?c.params:typeof g=="function"?g(c):g:null,S=Aa(p,ge({},b,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(f.instances[u]=null)},ref:a}));return nl(n.default,{Component:S,route:c})||S}}});function nl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Vh=zh;function Fh(e){const t=Ph(e.routes,e),n=e.parseQuery||dh,s=e.stringifyQuery||Ho,r=e.history,i=Gn(),o=Gn(),l=Gn(),a=Ln(Gt);let c=Gt;Pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Br.bind(null,C=>""+C),f=Br.bind(null,Jd),p=Br.bind(null,ms);function g(C,q){let z,H;return Va(C)?(z=t.getRecordMatcher(C),H=q):H=C,t.addRoute(H,z)}function b(C){const q=t.getRecordMatcher(C);q&&t.removeRoute(q)}function w(){return t.getRoutes().map(C=>C.record)}function S(C){return!!t.getRecordMatcher(C)}function E(C,q){if(q=ge({},q||a.value),typeof C=="string"){const v=qr(n,C,q.path),T=t.resolve({path:v.path},q),x=r.createHref(v.fullPath);return ge(v,T,{params:p(T.params),hash:ms(v.hash),redirectedFrom:void 0,href:x})}let z;if(C.path!=null)z=ge({},C,{path:qr(n,C.path,q.path).path});else{const v=ge({},C.params);for(const T in v)v[T]==null&&delete v[T];z=ge({},C,{params:f(v)}),q.params=f(q.params)}const H=t.resolve(z,q),ie=C.hash||"";H.params=u(p(H.params));const h=Zd(s,ge({},C,{hash:Kd(ie),path:H.path})),m=r.createHref(h);return ge({fullPath:h,hash:ie,query:s===Ho?hh(C.query):C.query||{}},H,{redirectedFrom:void 0,href:m})}function y(C){return typeof C=="string"?qr(n,C,a.value.path):ge({},C)}function P(C,q){if(c!==C)return zn(ke.NAVIGATION_CANCELLED,{from:q,to:C})}function O(C){return j(C)}function N(C){return O(ge(y(C),{replace:!0}))}function Z(C,q){const z=C.matched[C.matched.length-1];if(z&&z.redirect){const{redirect:H}=z;let ie=typeof H=="function"?H(C,q):H;return typeof ie=="string"&&(ie=ie.includes("?")||ie.includes("#")?ie=y(ie):{path:ie},ie.params={}),ge({query:C.query,hash:C.hash,params:ie.path!=null?{}:C.params},ie)}}function j(C,q){const z=c=E(C),H=a.value,ie=C.state,h=C.force,m=C.replace===!0,v=Z(z,H);if(v)return j(ge(y(v),{state:typeof v=="object"?ge({},ie,v.state):ie,force:h,replace:m}),q||z);const T=z;T.redirectedFrom=q;let x;return!h&&Xd(s,H,z)&&(x=zn(ke.NAVIGATION_DUPLICATED,{to:T,from:H}),Se(H,H,!0,!1)),(x?Promise.resolve(x):oe(T,H)).catch(R=>It(R)?It(R,ke.NAVIGATION_GUARD_REDIRECT)?R:pe(R):re(R,T,H)).then(R=>{if(R){if(It(R,ke.NAVIGATION_GUARD_REDIRECT))return j(ge({replace:m},y(R.to),{state:typeof R.to=="object"?ge({},ie,R.to.state):ie,force:h}),q||T)}else R=Te(T,H,!0,m,ie);return L(T,H,R),R})}function F(C,q){const z=P(C,q);return z?Promise.reject(z):Promise.resolve()}function B(C){const q=vt.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(C):C()}function oe(C,q){let z;const[H,ie,h]=mh(C,q);z=Hr(H.reverse(),"beforeRouteLeave",C,q);for(const v of H)v.leaveGuards.forEach(T=>{z.push(Xt(T,C,q))});const m=F.bind(null,C,q);return z.push(m),Ue(z).then(()=>{z=[];for(const v of i.list())z.push(Xt(v,C,q));return z.push(m),Ue(z)}).then(()=>{z=Hr(ie,"beforeRouteUpdate",C,q);for(const v of ie)v.updateGuards.forEach(T=>{z.push(Xt(T,C,q))});return z.push(m),Ue(z)}).then(()=>{z=[];for(const v of h)if(v.beforeEnter)if(gt(v.beforeEnter))for(const T of v.beforeEnter)z.push(Xt(T,C,q));else z.push(Xt(v.beforeEnter,C,q));return z.push(m),Ue(z)}).then(()=>(C.matched.forEach(v=>v.enterCallbacks={}),z=Hr(h,"beforeRouteEnter",C,q,B),z.push(m),Ue(z))).then(()=>{z=[];for(const v of o.list())z.push(Xt(v,C,q));return z.push(m),Ue(z)}).catch(v=>It(v,ke.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function L(C,q,z){l.list().forEach(H=>B(()=>H(C,q,z)))}function Te(C,q,z,H,ie){const h=P(C,q);if(h)return h;const m=q===Gt,v=Pn?history.state:{};z&&(H||m?r.replace(C.fullPath,ge({scroll:m&&v&&v.scroll},ie)):r.push(C.fullPath,ie)),a.value=C,Se(C,q,z,m),pe()}let xe;function U(){xe||(xe=r.listen((C,q,z)=>{if(!st.listening)return;const H=E(C),ie=Z(H,st.currentRoute.value);if(ie){j(ge(ie,{replace:!0,force:!0}),H).catch(is);return}c=H;const h=a.value;Pn&&lh(Uo(h.fullPath,z.delta),gr()),oe(H,h).catch(m=>It(m,ke.NAVIGATION_ABORTED|ke.NAVIGATION_CANCELLED)?m:It(m,ke.NAVIGATION_GUARD_REDIRECT)?(j(ge(y(m.to),{force:!0}),H).then(v=>{It(v,ke.NAVIGATION_ABORTED|ke.NAVIGATION_DUPLICATED)&&!z.delta&&z.type===di.pop&&r.go(-1,!1)}).catch(is),Promise.reject()):(z.delta&&r.go(-z.delta,!1),re(m,H,h))).then(m=>{m=m||Te(H,h,!1),m&&(z.delta&&!It(m,ke.NAVIGATION_CANCELLED)?r.go(-z.delta,!1):z.type===di.pop&&It(m,ke.NAVIGATION_ABORTED|ke.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),L(H,h,m)}).catch(is)}))}let Ee=Gn(),X=Gn(),G;function re(C,q,z){pe(C);const H=X.list();return H.length?H.forEach(ie=>ie(C,q,z)):console.error(C),Promise.reject(C)}function De(){return G&&a.value!==Gt?Promise.resolve():new Promise((C,q)=>{Ee.add([C,q])})}function pe(C){return G||(G=!C,U(),Ee.list().forEach(([q,z])=>C?z(C):q()),Ee.reset()),C}function Se(C,q,z,H){const{scrollBehavior:ie}=e;if(!Pn||!ie)return Promise.resolve();const h=!z&&ah(Uo(C.fullPath,0))||(H||!z)&&history.state&&history.state.scroll||null;return ar().then(()=>ie(C,q,h)).then(m=>m&&oh(m)).catch(m=>re(m,C,q))}const Oe=C=>r.go(C);let yt;const vt=new Set,st={currentRoute:a,listening:!0,addRoute:g,removeRoute:b,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:w,resolve:E,options:e,push:O,replace:N,go:Oe,back:()=>Oe(-1),forward:()=>Oe(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:X.add,isReady:De,install(C){C.component("RouterLink",Nh),C.component("RouterView",Vh),C.config.globalProperties.$router=st,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>Le(a)}),Pn&&!yt&&a.value===Gt&&(yt=!0,O(r.location).catch(H=>{}));const q={};for(const H in Gt)Object.defineProperty(q,H,{get:()=>a.value[H],enumerable:!0});C.provide(yr,st),C.provide(Fi,Ul(q)),C.provide(pi,a);const z=C.unmount;vt.add(C),C.unmount=function(){vt.delete(C),vt.size<1&&(c=Gt,xe&&xe(),xe=null,a.value=Gt,yt=!1,G=!1),z()}}};function Ue(C){return C.reduce((q,z)=>q.then(()=>B(z)),Promise.resolve())}return st}function Um(){return ft(yr)}function Ha(e){return ft(Fi)}const Bh={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},qh=["d"],sl=Vn({__name:"Icon",props:{name:{}},setup(e){const t=e,n={home:"M3 11l9-8 9 8M5 10v10h5v-6h4v6h5V10",calendar:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",book:"M5 4h10a3 3 0 013 3v13H8a3 3 0 01-3-3zM5 17a3 3 0 013-3h10",quiz:"M12 21a9 9 0 100-18 9 9 0 000 18zM9.5 9.5a2.5 2.5 0 114 2c-.9.6-1.5 1-1.5 2M12 17h.01",more:"M5 12h.01M12 12h.01M19 12h.01",flag:"M5 21V4M5 4h11l-2 4 2 4H5",grad:"M2 9l10-5 10 5-10 5zM6 11.5V16c0 1.5 3 3 6 3s6-1.5 6-3v-4.5",file:"M7 3h7l5 5v13H7zM14 3v5h5M10 13h6M10 17h6",slides:"M3 4h18v12H3zM12 16v4M8 20h8",user:"M12 12a4 4 0 100-8 4 4 0 000 8zM4 21c0-4 4-6 8-6s8 2 8 6",out:"M10 4H5v16h5M15 8l4 4-4 4M19 12H9",chevron:"M9 6l6 6-6 6","arrow-left":"M19 12H5M11 6l-6 6 6 6","arrow-right":"M5 12h14M13 6l6 6-6 6",paperclip:"M20 11.5l-8.5 8.5a5 5 0 01-7-7L13 4.5a3.5 3.5 0 015 5L9.5 18a2 2 0 01-3-3L14 7.5",at:"M12 16a4 4 0 100-8 4 4 0 000 8zM16 12v1.5a2.5 2.5 0 005 0V12a9 9 0 10-3.5 7.1","arrow-up":"M12 19V5M5 12l7-7 7 7","arrow-down":"M12 5v14M5 12l7 7 7-7",smile:"M12 21a9 9 0 100-18 9 9 0 000 18zM8.5 14.5c1 1.2 2.2 1.8 3.5 1.8s2.5-.6 3.5-1.8M9 9.5h.01M15 9.5h.01",pencil:"M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4",trash:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",close:"M6 6l12 12M18 6L6 18",plus:"M12 5v14M5 12h14",checklist:"M4 6l2 2 3-3M4 13l2 2 3-3M12 7h8M12 14h8M4 19h.01M12 19h8"};return(s,r)=>(tt(),Lt("svg",Bh,[$e("path",{d:n[t.name]??""},null,8,qh)]))}});class Xe extends Error{constructor(n,s,r={}){super(s);Rn(this,"status");Rn(this,"errors");this.name="ApiError",this.status=n,this.errors=r}}const Kr="bm.token";class Uh{constructor(t,n){Rn(this,"local");Rn(this,"session");Rn(this,"memory",null);this.local=t,this.session=n}read(t){try{return t?.getItem(Kr)??null}catch{return null}}get(){return this.read(this.local)??this.read(this.session)??this.memory}get remembered(){return this.read(this.local)!==null}set(t,n){this.clear();try{(n?this.local:this.session)?.setItem(Kr,t)}catch{}this.get()===null&&(this.memory=t)}replace(t){this.set(t,this.remembered)}clear(){this.memory=null;for(const t of[this.local,this.session])try{t?.removeItem(Kr)}catch{}}}function Hh(e){const t=e.fetch??((...g)=>fetch(...g)),{tokens:n}=e;let s=null;function r(g,b){if(!b)return g;const w=new URLSearchParams;for(const[E,y]of Object.entries(b))y!=null&&y!==""&&w.set(E,String(y));const S=w.toString();return S?`${g}?${S}`:g}async function i(g,b){const w={Accept:"application/json"},S=n.get();b.auth!==!1&&S&&(w.Authorization=`Bearer ${S}`);let E;return b.body!==void 0&&(w["Content-Type"]="application/json",E=JSON.stringify(b.body)),t(r(g,b.query),{method:b.method??"GET",headers:w,body:E})}function o(){return s||(s=(async()=>{try{const g=await i("/_user/api/v1/refresh",{method:"POST"});if(!g.ok)return!1;const b=await g.json(),w=b.token??b.data?.token;return w?(n.replace(w),!0):!1}catch{return!1}finally{queueMicrotask(()=>{s=null})}})()),s}async function l(g){const b=await g.text();if(!b)return null;try{return JSON.parse(b)}catch{return null}}function a(g,b){const w=b??{},S=typeof w.error=="string"&&w.error||typeof w.message=="string"&&w.message||(g.status>=500?"Błąd serwera. Spróbuj ponownie za chwilę.":`Błąd ${g.status}`);return new Xe(g.status,S,w.errors??{})}async function c(g,b){let w;const S=n.get();try{w=await i(g,b)}catch{throw new Xe(0,"Brak połączenia z serwerem.")}if(w.status===401&&b.auth!==!1&&S){const E=n.get();if(E!==null&&E!==S?!0:await o())try{w=await i(g,b)}catch{throw new Xe(0,"Brak połączenia z serwerem.")}w.status===401&&(n.clear(),e.onUnauthorized?.())}return w}async function u(g,b={}){const w=await c(g,b),S=await l(w);if(!w.ok)throw a(w,S);return S}async function f(g,b={}){const w=await c(g,b);if(!w.ok){const S=await l(w);throw a(w,S)}return w.blob()}async function p(g,b={}){const w=await u(g,b);return w&&typeof w=="object"&&"data"in w?w.data:w}return{request:p,raw:u,blob:f}}function rl(e){try{return e()}catch{return null}}const ht=new Uh(rl(()=>window.localStorage),rl(()=>window.sessionStorage));let Ka=()=>{};function Kh(e){Ka=e}const K=Hh({tokens:ht,onUnauthorized:()=>Ka()}),ut="/_user/api/v1",fn={login:e=>K.request(`${ut}/login`,{method:"POST",body:e,auth:!1}),register:e=>K.request(`${ut}/register`,{method:"POST",body:e,auth:!1}),fetch:()=>K.request(`${ut}/fetch`),logout:()=>K.request(`${ut}/logout`,{method:"POST"}),forgotPassword:e=>K.request(`${ut}/forgot-password`,{method:"POST",body:{email:e},auth:!1}),resetPassword:e=>K.request(`${ut}/reset-password`,{method:"POST",body:e,auth:!1}),update:e=>K.request(`${ut}/update`,{method:"POST",body:e}),changePassword:e=>K.request(`${ut}/change-password`,{method:"POST",body:e}),oauthProviders:()=>K.request(`${ut}/oauth-providers`,{auth:!1}),oauthComplete:e=>K.request(`${ut}/oauth-complete?code=${encodeURIComponent(e)}`,{auth:!1}),oauthRegisterComplete:e=>K.request(`${ut}/oauth-register-complete`,{method:"POST",body:e,auth:!1}),oauthLinkTicket:()=>K.request(`${ut}/oauth-link-ticket`,{method:"POST"})},Gh="modulepreload",Wh=function(e){return"/"+e},il={},_e=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){let a=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");r=a(n.map(c=>{if(c=Wh(c),c in il)return;il[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const p=document.createElement("link");if(p.rel=u?"stylesheet":Gh,u||(p.as="script"),p.crossOrigin="",p.href=c,l&&p.setAttribute("nonce",l),document.head.appendChild(p),u)return new Promise((g,b)=>{p.addEventListener("load",g),p.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},Zs="bm.lastPilot";function vr(){try{return window.localStorage}catch{return null}}function Ga(e){return typeof e=="string"&&e.trim()!==""&&e.length<=255&&!e.includes("/")}function Hm(e,t=vr()){if(!(!t||!Ga(e)))try{t.setItem(Zs,e)}catch{}}function Jh(e=vr()){if(!e)return null;try{const t=e.getItem(Zs);return Ga(t)?t:null}catch{return null}}function Km(e,t=vr()){if(t)try{t.getItem(Zs)===e&&t.removeItem(Zs)}catch{}}function Yh(e=vr()){const t=Jh(e);return t?{name:"presentation-remote",params:{slug:t}}:{name:"my-presentations"}}const gn=Fh({history:_h("/"),scrollBehavior:(e,t,n)=>e.meta.bare?!1:n??(e.hash?{el:e.hash,top:12}:e.path===t.path?void 0:{top:0}),routes:[{path:"/logowanie",name:"login",component:()=>_e(()=>import("./LoginView-4kLADW98.js"),__vite__mapDeps([0,1,2])),meta:{public:!0,guest:!0,title:"Logowanie"}},{path:"/rejestracja",name:"register",component:()=>_e(()=>import("./RegisterView-DqKmtqer.js"),__vite__mapDeps([3,1])),meta:{public:!0,guest:!0,title:"Rejestracja"}},{path:"/przypomnij-haslo",name:"forgot",component:()=>_e(()=>import("./ForgotView-DBuEDps7.js"),__vite__mapDeps([4,1])),meta:{public:!0,title:"Przypomnienie hasła"}},{path:"/auth/oauth/callback",name:"oauth-callback",component:()=>_e(()=>import("./OAuthCallbackView-C9qJ7LV6.js"),__vite__mapDeps([5,1,2])),meta:{public:!0,title:"Logowanie"}},{path:"/auth/oauth/rejestracja",name:"oauth-register",component:()=>_e(()=>import("./OAuthRegisterView-CP2fNoWb.js"),__vite__mapDeps([6,1])),meta:{public:!0,title:"Rejestracja"}},{path:"/reset-password",alias:"/reset-hasla",name:"reset",component:()=>_e(()=>import("./ResetView-D8GUOuU2.js"),__vite__mapDeps([7,1])),meta:{public:!0,title:"Nowe hasło"}},{path:"/",name:"dashboard",component:()=>_e(()=>import("./DashboardView-BL8ALiYs.js"),__vite__mapDeps([8,9,10,11,12])),meta:{title:"Pulpit",wide:!0}},{path:"/plan",name:"schedule",component:()=>_e(()=>import("./ScheduleView-DVYsjbSm.js"),__vite__mapDeps([13,9,10,11,14])),meta:{title:"Plan zajęć"}},{path:"/terminarz",name:"deadlines",component:()=>_e(()=>import("./DeadlinesView-BBWlRaTw.js"),__vite__mapDeps([15,9,10,11,14])),meta:{title:"Terminarz"}},{path:"/przedmioty",name:"courses",component:()=>_e(()=>import("./CoursesView-CInolXzZ.js"),__vite__mapDeps([16,9,10,11])),meta:{title:"Przedmioty"}},{path:"/przedmioty/:id(\\d+)",name:"course",component:()=>_e(()=>import("./CourseView-DInOCNo3.js"),__vite__mapDeps([17,9,10,18])),props:!0,meta:{title:"Przedmiot"}},{path:"/lektury",name:"readings",component:()=>_e(()=>import("./ReadingsView-BeAMdWZP.js"),__vite__mapDeps([19,9,10,11,18,14])),meta:{title:"Lektury"}},{path:"/materialy",name:"materials",component:()=>_e(()=>import("./MaterialsView-Cd7ekBUq.js"),__vite__mapDeps([20,9])),meta:{title:"Materiały"}},{path:"/materialy/:id(\\d+)",name:"material",component:()=>_e(()=>import("./MaterialView-BQihcwI-.js"),__vite__mapDeps([21,9,10,12])),props:!0,meta:{title:"Materiał"}},{path:"/checklisty",name:"checklists",component:()=>_e(()=>import("./ChecklistsView-C6uVihIb.js"),__vite__mapDeps([22,9,10,1])),meta:{title:"Checklisty"}},{path:"/checklisty/:id(\\d+)",name:"checklist",component:()=>_e(()=>import("./ChecklistView-BaObGek0.js"),__vite__mapDeps([23,9,10,24,1])),props:!0,meta:{title:"Checklista"}},{path:"/sylabusy",name:"syllabi",component:()=>_e(()=>import("./SyllabiView-BTYt0LrL.js"),__vite__mapDeps([25,9])),meta:{title:"Sylabusy"}},{path:"/quiz",redirect:"/quizy/powtorka-1-zjazd"},{path:"/quizy",name:"quizzes",component:()=>_e(()=>import("./QuizzesView-BiZkQOtX.js"),__vite__mapDeps([26,9,10,27])),meta:{title:"Quizy"}},{path:"/quizy/:slug",name:"quiz",component:()=>_e(()=>import("./QuizView-V5rbG-HP.js"),__vite__mapDeps([28,9,10,27])),props:!0,meta:{title:"Quiz"}},{path:"/wiecej",name:"more",component:()=>_e(()=>import("./MoreView-BOP30Fre.js"),__vite__mapDeps([29,9])),meta:{title:"Więcej"}},{path:"/profil",name:"profile",component:()=>_e(()=>import("./ProfileView-Cw1IkbJQ.js"),__vite__mapDeps([30,9,1,2])),meta:{title:"Profil"}},{path:"/moje-prezentacje",name:"my-presentations",component:()=>_e(()=>import("./MyPresentationsView-AURGskMI.js"),__vite__mapDeps([31,9,10,24])),meta:{title:"Moje prezentacje"}},{path:"/moje-prezentacje/:slug",name:"presentation-speaker",component:()=>_e(()=>import("./PresentationSpeakerView-4ASJ9Fw7.js"),__vite__mapDeps([32,24,33,34,35,36,37])),props:!0,meta:{bare:!0,title:"Prezentacja"}},{path:"/moje-prezentacje/:slug/pilot",name:"presentation-remote",component:()=>_e(()=>import("./PresentationRemoteView-D4LTAFiH.js"),__vite__mapDeps([38,24,36,39,40,35])),props:!0,meta:{bare:!0,title:"Pilot"}},{path:"/pilot",name:"pilot",redirect:()=>Yh()},{path:"/prezentacje/:slugHash",name:"presentation-public",component:()=>_e(()=>import("./PresentationPublicView-BxkUqRJW.js"),__vite__mapDeps([41,24,33,34,35,42])),props:!0,meta:{public:!0,bare:!0,title:"Prezentacja"}},{path:"/connect",name:"connect",component:()=>_e(()=>import("./ConnectView-DXTDXtb8.js"),[]),meta:{title:"Połącz aplikację"}},{path:"/:rest(.*)*",name:"notfound",component:()=>_e(()=>import("./NotFoundView-BO0GMfPQ.js"),__vite__mapDeps([43,39])),meta:{title:"Nie znaleziono"}}]});gn.beforeEach(async e=>{const t=fc();return t.ready||await t.restore(e),!e.meta.public&&!t.loggedIn?{name:"login",query:e.fullPath==="/"?{}:{redirect:e.fullPath}}:e.meta.guest&&t.loggedIn?{name:"dashboard"}:!0});gn.afterEach(e=>{const t=e.meta.title;document.title=t?`${t} · BM II°`:"BM II°"});const be="/_bm/api/v1",Ae={dashboard:()=>K.request(`${be}/dashboard`),courses:e=>K.request(`${be}/courses`,{query:{semester:e}}),course:e=>K.request(`${be}/courses/${e}`),schedule:(e,t)=>K.request(`${be}/schedule`,{query:{from:e,to:t}}),meetings:()=>K.request(`${be}/meetings`),deadlines:(e,t)=>K.request(`${be}/deadlines`,{query:{from:e,to:t}}),readings:e=>K.request(`${be}/readings`,{query:{course:e}}),markRead:e=>K.request(`${be}/readings/${e}/progress`,{method:"PUT"}),unmarkRead:e=>K.request(`${be}/readings/${e}/progress`,{method:"DELETE"}),markOwned:e=>K.request(`${be}/readings/${e}/owned`,{method:"PUT"}),unmarkOwned:e=>K.request(`${be}/readings/${e}/owned`,{method:"DELETE"}),materials:(e={})=>K.raw(`${be}/materials`,{query:{...e}}),material:e=>K.request(`${be}/materials/${e}`),calendarFeed:()=>K.request(`${be}/calendar-feed`),saveCalendarFeed:e=>K.request(`${be}/calendar-feed`,{method:"PUT",body:e}),rotateCalendarFeed:()=>K.request(`${be}/calendar-feed/rotate`,{method:"POST"}),deleteCalendarFeed:()=>K.request(`${be}/calendar-feed`,{method:"DELETE"}),checklists:e=>K.request(`${be}/checklists`,{query:{meeting:e}}),checklist:e=>K.request(`${be}/checklists/${e}`),createChecklist:e=>K.request(`${be}/checklists`,{method:"POST",body:e}),updateChecklist:(e,t)=>K.request(`${be}/checklists/${e}`,{method:"PATCH",body:t}),deleteChecklist:e=>K.request(`${be}/checklists/${e}`,{method:"DELETE"}),addChecklistItem:(e,t)=>K.request(`${be}/checklists/${e}/items`,{method:"POST",body:t}),updateChecklistItem:(e,t)=>K.request(`${be}/checklist-items/${e}`,{method:"PATCH",body:t}),deleteChecklistItem:e=>K.request(`${be}/checklist-items/${e}`,{method:"DELETE"}),markChecklistItem:e=>K.request(`${be}/checklist-items/${e}/done`,{method:"PUT"}),unmarkChecklistItem:e=>K.request(`${be}/checklist-items/${e}/done`,{method:"DELETE"})},Qh={"historia-koncepcje":"Historia / koncepcje wojny i pokoju",specjalnosc:"Specjalność"};function Gm(e){return Qh[e]??e}function Bi(e){const t=new Map;for(const n of e){if(!n.elective_group)continue;const s=t.get(n.elective_group)??[];s.includes(n.name)||s.push(n.name),t.set(n.elective_group,s)}return[...t].map(([n,s])=>({code:n,options:s}))}function Zh(e,t){const n={};for(const s of Bi(e)){const r=t[s.code];r&&s.options.includes(r)&&(n[s.code]=r)}return n}function Xh(e,t){if(!e.elective_group)return!1;const n=t[e.elective_group];return n!==void 0&&n!==e.name}function Wa(e,t,n=!1){const s=new Set;if(n)return s;for(const r of e)Xh(r,t)&&s.add(r.id);return s}function Gr(e,t){return t.size===0?e:e.filter(n=>n.course_id===null||!t.has(n.course_id))}function ep(e,t){return Bi(e).filter(n=>n.options.length>1&&!t[n.code])}function Wm(e,t){return!!e.elective_group&&!t[e.elective_group]}const ol="bm.showAllElectives";function ll(e){try{return localStorage.getItem(e)}catch{return null}}function al(e,t){try{localStorage.setItem(e,t)}catch{}}const os=ln("electives",()=>{const e=te({}),t=te(ll(ol)==="1"),n=te(null),s=()=>n.value===null?null:`bm.electives.${n.value}`,r=()=>{const f=s();f&&al(f,JSON.stringify(e.value))};function i(f){n.value=f;try{const p=JSON.parse(ll(`bm.electives.${f}`)??"{}");e.value=p&&typeof p=="object"?p:{}}catch{e.value={}}}const o=ne(()=>Object.keys(e.value).length>0);function l(f,p){const g={...e.value};p===null?delete g[f]:g[f]=p,e.value=g,r()}function a(f){t.value=f,al(ol,f?"1":"0")}function c(f){const p=Zh(f,e.value);Object.keys(p).length!==Object.keys(e.value).length&&(e.value=p,r())}function u(){e.value={},n.value=null}return{choices:e,showAll:t,userId:n,hasChoices:o,load:i,choose:l,setShowAll:a,prune:c,reset:u}}),wn=ln("toast",()=>{const e=te("");let t;function n(r,i=4e3){e.value=r,clearTimeout(t),t=setTimeout(()=>e.value="",i)}function s(){e.value=""}return{message:e,show:n,clear:s}});function xt(e){return e instanceof Xe?e.message:"Nie udało się wczytać danych."}function xn(e){const t=Ln(null),n=te(!1),s=te("");let r=null;function i(l=!1){return r||(t.value!==null&&!l?Promise.resolve():(n.value=!0,s.value="",r=e().then(a=>{t.value=a}).catch(a=>{s.value=xt(a)}).finally(()=>{n.value=!1,r=null}),r))}function o(){t.value=null,s.value="",n.value=!1,r=null}return{data:t,loading:n,error:s,load:i,reset:o}}const cl="2000-01-01",qi=ln("bm",()=>{const e=xn(()=>Ae.courses()),t=xn(()=>Ae.meetings()),n=xn(()=>Ae.schedule(cl)),s=xn(()=>Ae.deadlines(cl)),r=xn(()=>Ae.readings()),i=xn(()=>Ae.dashboard()),o=ne(()=>e.data.value),l=ne(()=>t.data.value),a=ne(()=>i.data.value),c=os(),u=ne(()=>Bi(o.value??[])),f=ne(()=>ep(o.value??[],c.choices)),p=ne(()=>Wa(o.value??[],c.choices,c.showAll)),g=ne(()=>Gr(n.data.value??[],p.value)),b=ne(()=>Gr(s.data.value??[],p.value)),w=ne(()=>Gr(r.data.value??[],p.value)),S=ne(()=>r.data.value??[]),E=ne(()=>(o.value??[]).filter(U=>!p.value.has(U.id))),y=ne(()=>{const U=w.value,Ee=U.filter(X=>X.is_required);return{total:U.length,read:U.filter(X=>X.read_at).length,requiredTotal:Ee.length,requiredRead:Ee.filter(X=>X.read_at).length}}),P=ne(()=>new Map((o.value??[]).map(U=>[U.id,U])));async function O(U=!1){await e.load(U),e.data.value&&c.prune(e.data.value)}async function N(U,Ee){const X=r.data.value,G=X?.find(pe=>pe.id===U);if(!X||!G)return;const re=G.read_at,De=pe=>{r.data.value=X.map(Se=>Se.id===U?{...Se,read_at:pe}:Se)};De(Ee?new Date().toISOString():null);try{const pe=Ee?await Ae.markRead(U):await Ae.unmarkRead(U);De(pe.read_at)}catch(pe){De(re),wn().show(`Nie udało się zapisać zmiany. ${xt(pe)}`)}}function Z(U,Ee){const X=r.data.value;X&&(r.data.value=X.map(G=>G.id===U?{...G,read_at:Ee}:G))}async function j(U,Ee){const X=r.data.value,G=X?.find(pe=>pe.id===U);if(!X||!G)return;const re=G.owned_at,De=pe=>{r.data.value=X.map(Se=>Se.id===U?{...Se,owned_at:pe}:Se)};De(Ee?new Date().toISOString():null);try{const pe=Ee?await Ae.markOwned(U):await Ae.unmarkOwned(U);De(pe.owned_at)}catch(pe){De(re),wn().show(`Nie udało się zapisać zmiany. ${xt(pe)}`)}}const F=[e,t,n,s,r,i],B=ne(()=>F.some(U=>U.loading.value)),oe=ne(()=>F.find(U=>U.error.value)?.error.value??""),L=ne(()=>({courses:e.data.value!==null,meetings:t.data.value!==null,schedule:n.data.value!==null,deadlines:s.data.value!==null,readings:r.data.value!==null,dashboard:i.data.value!==null}));function Te(){for(const U of F)U.error.value&&U.load(!0)}function xe(){for(const U of F)U.reset()}return{courses:o,electiveGroups:u,pendingElectives:f,hidden:p,meetings:l,dashboard:a,schedule:g,deadlines:b,readings:w,allReadings:S,visibleCourses:E,readingStats:y,courseById:P,loading:B,error:oe,loaded:L,retry:Te,loadCourses:O,loadMeetings:(U=!1)=>t.load(U),loadSchedule:(U=!1)=>n.load(U),loadDeadlines:(U=!1)=>s.load(U),loadReadings:(U=!1)=>r.load(U),loadDashboard:(U=!1)=>i.load(U),toggleReading:N,toggleOwned:j,setReadAt:Z,reset:xe}}),tp={lektura:"Lektura",artykul:"Artykuł",ksiazka:"Książka",prezentacja:"Prezentacja",zadanie:"Zadanie",inne:"Inne"},Jm=Object.keys(tp);function np(e){const t=Math.floor(e/60),n=e%60;return t?n?`${t} h ${n} min`:`${t} h`:`${n} min`}function sp(e){const t={total:0,done:0,percent:0,minutes_total:0,minutes_done:0,minutes_left:0};for(const n of e){const s=n.estimate_minutes??0;t.total++,t.minutes_total+=s,n.done?(t.done++,t.minutes_done+=s):t.minutes_left+=s}return t.percent=t.total?Math.floor(t.done*100/t.total):0,t}function Ym(e){const t=`${e.done} z ${e.total}`;return e.minutes_left?`${t} · zostało ${np(e.minutes_left)}`:t}function Qm(e){const t=new Map;for(const s of e){const r=s.course?`c${s.course.id}`:"none";let i=t.get(r);i||(i={key:r,label:s.course?.name??"Ogólne",items:[]},t.set(r,i)),i.items.push(s)}const n=t.get("none");return t.delete("none"),n?[...t.values(),n]:[...t.values()]}function Zm(e){if(!e)return"";const t=new Date(e),n=s=>String(s).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function Xm(e){return e?e.replace("T"," "):null}const rp=ln("checklists",()=>{const e=te(null),t=te(""),n=te({}),s=te("");async function r(){t.value="";try{e.value=await Ae.checklists()}catch(y){t.value=xt(y)}}async function i(y){s.value="";try{o(await Ae.checklist(y))}catch(P){s.value=xt(P)}}function o(y){y.items||(y={...y,items:n.value[y.id]?.items??[]}),n.value={...n.value,[y.id]:y};const P={...y,items:void 0};e.value&&(e.value=e.value.some(O=>O.id===y.id)?e.value.map(O=>O.id===y.id?P:O):[...e.value,P])}function l(y,P){const O=n.value[y];O&&o({...O,items:P,progress:sp(P)})}async function a(y){const P=await Ae.createChecklist(y);return o(P),P}async function c(y,P){o(await Ae.updateChecklist(y,P))}async function u(y){await Ae.deleteChecklist(y);const{[y]:P,...O}=n.value;n.value=O,e.value&&(e.value=e.value.filter(N=>N.id!==y))}function f(y,P){for(const O of Object.values(n.value))O.items?.some(N=>N.reading_id===y)&&l(O.id,O.items.map(N=>N.reading_id===y?{...N,done:P!==null,done_at:P}:N))}async function p(y,P){const O=n.value[y.checklist_id];if(!O?.items)return;const N=O.items,Z=j=>{if(y.reading_id!==null)f(y.reading_id,j);else{const F=n.value[y.checklist_id]?.items??N;l(y.checklist_id,F.map(B=>B.id===y.id?{...B,done:j!==null,done_at:j}:B))}};Z(P?new Date().toISOString():null);try{const j=P?await Ae.markChecklistItem(y.id):await Ae.unmarkChecklistItem(y.id);Z(j.done_at),y.reading_id!==null&&qi().setReadAt(y.reading_id,j.done_at)}catch(j){l(y.checklist_id,N),wn().show(`Nie udało się zapisać zmiany. ${xt(j)}`)}}async function g(y,P){const O=await Ae.addChecklistItem(y,P),N=n.value[y];return N?.items&&l(y,[...N.items,O]),O}async function b(y,P){const O=await Ae.updateChecklistItem(y.id,P);if(O.checklist_id!==y.checklist_id){const Z=n.value[y.checklist_id];return Z?.items&&l(y.checklist_id,Z.items.filter(j=>j.id!==y.id)),i(O.checklist_id),r(),O}const N=n.value[y.checklist_id];if(N?.items){const Z=N.items.map(j=>j.id===y.id?O:j);l(y.checklist_id,Z.sort((j,F)=>j.sort_order-F.sort_order||j.id-F.id))}return O}async function w(y){await Ae.deleteChecklistItem(y.id);const P=n.value[y.checklist_id];P?.items&&l(y.checklist_id,P.items.filter(O=>O.id!==y.id))}async function S(y,P){const O=n.value[y.checklist_id]?.items;if(!O)return;const N=O.findIndex(B=>B.id===y.id),Z=O[N+P];if(!Z)return;const j=Z.sort_order===y.sort_order?N+P:Z.sort_order,F=Z.sort_order===y.sort_order?N:y.sort_order;try{await Promise.all([b(y,{sort_order:j}),b(Z,{sort_order:F})])}catch(B){wn().show(`Nie udało się zmienić kolejności. ${xt(B)}`),i(y.checklist_id)}}function E(){e.value=null,n.value={},t.value="",s.value=""}return{list:e,listError:t,details:n,detailError:s,loadList:r,loadOne:i,create:a,update:c,remove:u,toggle:p,syncReading:f,addItem:g,updateItem:b,removeItem:w,move:S,reset:E}});function ip(e,t){return[...Wa(e,t,!1)].sort((n,s)=>n-s)}function op(e,t){if(e.length!==t.length)return!1;const n=[...e].sort((r,i)=>r-i),s=[...t].sort((r,i)=>r-i);return n.every((r,i)=>r===s[i])}async function eg(e){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0}catch{}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch{return!1}}const Ja=ln("calendarFeed",()=>{const e=te(void 0),t=te(!1),n=te(!1),s=te(""),r=qi(),i=os();let o=Promise.resolve();function l(E){const y=o.then(E,E);return o=y.catch(()=>{}),y}async function a(E=!1){if(!(e.value!==void 0&&!E)){t.value=!0,s.value="";try{e.value=await Ae.calendarFeed()}catch(y){s.value=xt(y)}finally{t.value=!1}}}async function c(){await r.loadCourses();const E=r.courses;return E?ip(E,i.choices):null}async function u(E){n.value=!0,s.value="";try{await l(E)}catch(y){s.value=xt(y)}finally{n.value=!1}}function f(){return u(async()=>{const E=await c();e.value=await Ae.saveCalendarFeed(E?{excluded_course_ids:E}:{})})}function p(E){return u(async()=>{e.value=await Ae.saveCalendarFeed(E)})}function g(){return u(async()=>{e.value=await Ae.rotateCalendarFeed()})}function b(){return u(async()=>{await Ae.deleteCalendarFeed(),e.value=null})}function w(){return l(async()=>{e.value===void 0&&await a();const E=e.value;if(!E)return;const y=await c();if(!(!y||op(y,E.excluded_course_ids)))try{e.value=await Ae.saveCalendarFeed({excluded_course_ids:y})}catch(P){wn().show(`Nie udało się zaktualizować kalendarza. ${xt(P)}`)}})}vn(()=>i.choices,()=>{i.userId!==null&&w()});function S(){e.value=void 0,s.value="",t.value=!1,n.value=!1}return{feed:e,loading:t,busy:n,error:s,load:a,create:f,save:p,rotate:g,remove:b,sync:w,reset:S}}),Ls="/_bm/api/v1",rt="/_chat/api/v1";function ul(e,t,n){return new Promise((s,r)=>{const i=new XMLHttpRequest;i.open("POST",`${rt}/attachments`),i.setRequestHeader("Accept","application/json");const o=ht.get();if(o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.upload.onprogress=a=>{a.lengthComputable&&a.total>0&&t?.(Math.min(100,Math.round(a.loaded/a.total*100)))},i.onload=()=>{let a=null;try{a=i.responseText?JSON.parse(i.responseText):null}catch{a=null}const c=a&&typeof a=="object"&&"data"in a?a.data:a;if(i.status>=200&&i.status<300&&c&&typeof c.id=="number"){s({id:c.id,filename:String(c.filename??e.name),size:Number(c.size??e.size)});return}const u=a??{};r(new Xe(i.status,typeof u.error=="string"?u.error:`Błąd ${i.status}`,u.errors??{}))},i.onerror=()=>r(new Xe(0,"Brak połączenia z serwerem.")),i.onabort=()=>r(new Xe(0,"Przerwano wysyłanie.")),n){if(n.aborted){r(new Xe(0,"Przerwano wysyłanie."));return}n.addEventListener("abort",()=>i.abort(),{once:!0})}const l=new FormData;l.append("file",e,e.name),i.send(l)})}async function lp(e,t,n){const s=ht.get();try{return await ul(e,t,n)}catch(r){if(!(r instanceof Xe)||r.status!==401||!s||n?.aborted)throw r;await K.request("/_user/api/v1/fetch").catch(()=>null);const i=ht.get();if(!i||i===s)throw r;return t?.(0),ul(e,t,n)}}async function ap(e,t,n){const s=await K.blob(`${rt}/attachments/${e}/${t}`),r=URL.createObjectURL(new Blob([s],{type:"application/octet-stream"})),i=document.createElement("a");i.href=r,i.download=n||"plik",i.rel="noopener",i.style.display="none",document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}const Ve={bootstrap:()=>K.request(`${Ls}/chat`),members:()=>K.request(`${Ls}/chat/members`),messages:(e,{limit:t=50,before:n}={})=>K.request(`${rt}/conversations/${e}/messages`,{query:{limit:t,before:n}}),send:(e,t)=>K.request(`${rt}/conversations/${e}/messages`,{method:"POST",body:t}),message:e=>K.request(`${rt}/messages/${e}`),markRead:e=>K.request(`${rt}/conversations/${e}/read`,{method:"POST"}),typing:e=>K.request(`${rt}/conversations/${e}/typing`,{method:"POST"}),edit:(e,t)=>K.request(`${rt}/messages/${e}`,{method:"PUT",body:{content:t}}),remove:e=>K.request(`${rt}/messages/${e}`,{method:"DELETE"}),reactions:()=>K.request(`${rt}/reactions`),addReaction:(e,t)=>K.request(`${rt}/messages/${e}/reactions`,{method:"POST",body:{key:t}}),removeReaction:(e,t)=>K.request(`${rt}/messages/${e}/reactions/${encodeURIComponent(t)}`,{method:"DELETE"}),embeds:(e,t="")=>K.request(`${Ls}/chat/embeds`,{query:{type:e,q:t.trim()}}),resolveEmbeds:e=>K.request(`${Ls}/chat/embeds/resolve`,{method:"POST",body:{refs:e}}),upload:lp,download:ap,startDm:e=>K.request(`${rt}/contexts/bm/1/dm`,{method:"POST",body:{user_id:e}})};function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ke(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}function cp(e){return Dt(e)?Ke(e.id)!==null&&Ke(e.conversation_id)!==null&&Ke(e.sender_id)!==null&&typeof e.created_at=="string"&&(e.content===null||typeof e.content=="string")&&Array.isArray(e.attachments):!1}function up(e){if(!Dt(e)||typeof e.event!="string")return null;const t=e.payload;switch(e.event){case"created.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id),r=Ke(t.sender_id);return n===null||s===null||r===null?null:{kind:"created",id:n,conversationId:s,senderId:r}}case"chat:message":{if(!Dt(t)||!cp(t.message))return null;const n=Ke(t.conversation_id);return n===null||n!==t.message.conversation_id?null:{kind:"chatMessage",conversationId:n,message:t.message}}case"typing.chat.message":{if(!Dt(t)||t.action!=="typing-start")return null;const n=Ke(t.conversation_id),s=Ke(t.user_id);return n===null||s===null?null:{kind:"typing",conversationId:n,userId:s}}case"chat:read":{if(!Dt(t))return null;const n=Ke(t.conversation_id),s=Ke(t.user_id);return n===null||s===null?null:{kind:"read",conversationId:n,userId:s}}case"chat:unread":return!Dt(t)||typeof t.count!="number"||!Number.isInteger(t.count)||t.count<0?null:{kind:"unread",count:t.count};case"mentions.changed":return{kind:"mentions"};case"reacted.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id),r=Ke(t.user_id);return n===null||s===null||r===null||typeof t.key!="string"||t.key===""||t.action!=="added"&&t.action!=="removed"?null:{kind:"reacted",id:n,conversationId:s,userId:r,key:t.key,added:t.action==="added"}}case"updated.chat.message":case"deleted.chat.message":{if(!Dt(t))return null;const n=Ke(t.id),s=Ke(t.conversation_id);return n===null||s===null?null:{kind:e.event==="updated.chat.message"?"updated":"deleted",id:n,conversationId:s}}default:return null}}function fp(e,t){if(e.kind!=="created")return!1;const n=t[e.conversationId];return!!n&&!n.some(s=>s.id===e.id)}function dp(e,t,{seen:n}){const s={id:t.id,sender_id:t.sender_id,content:t.content??"",created_at:t.created_at},r=e.findIndex(a=>a.id===t.conversation_id);if(r===-1)return[{id:t.conversation_id,type:"dm",other_user_id:t.sender_id,unread:n?0:1,last_message:s},...e];const i=e[r];if(i.last_message&&i.last_message.id===t.id)return e;const o=!i.last_message||Date.parse(t.created_at)>=Date.parse(i.last_message.created_at),l={...i,unread:n?i.unread:i.unread+1,last_message:o?s:i.last_message};return e.map((a,c)=>c===r?l:a)}function Wr(e,t,n,s,r=[]){const i=e?[...e]:[],o=i.findIndex(c=>c.key===t),l=o>=0&&i[o].user_ids.includes(n);if(s===l)return e||i;if(s){if(o>=0)return i[o]={...i[o],count:i[o].count+1,user_ids:[...i[o].user_ids,n]},i;const c={key:t,count:1,user_ids:[n]},u=p=>{const g=r.indexOf(p);return g<0?r.length:g};let f=i.length;return r.includes(t)&&(f=i.findIndex(p=>u(p.key)>u(t)),f<0&&(f=i.length)),i.splice(f,0,c),i}const a=i[o].user_ids.filter(c=>c!==n);return a.length===0?i.splice(o,1):i[o]={...i[o],count:Math.max(0,i[o].count-1),user_ids:a},i}const hp=["svg","svgz","html","htm","xhtml","xml"],pp=["image/svg+xml","text/html","application/xhtml+xml","text/xml","application/xml"];function fl(e){const t=e/1048576;return Number.isInteger(t)?String(t):(Math.floor(t*10)/10).toFixed(1).replace(".",",")}function mp(e){const t=e.name.lastIndexOf("."),n=(t>=0?e.name.slice(t+1):e.name).toLowerCase();if(hp.includes(n))return!0;const s=(e.type||"").split(";")[0].trim().toLowerCase();return pp.includes(s)}function gp(e,t,n,s=0){const r=[],i=[];let o=!1,l=!1,a=!1,c=s;for(const u of e){if(mp(u)){o=!0;continue}if(t.max_bytes>0&&u.size>t.max_bytes){i.push(`Plik „${u.name}” jest za duży. Limit to ${fl(t.max_bytes)} MB.`);continue}if(n+r.length>=t.max_files){l=!0;continue}if(t.max_bytes>0&&c+u.size>t.max_bytes){a=!0;continue}c+=u.size,r.push(u)}return a&&i.unshift(`Załączniki jednej wiadomości mogą mieć razem najwyżej ${fl(t.max_bytes)} MB.`),o&&i.unshift("Plików SVG, HTML i XML nie można wysyłać na czacie."),l&&i.unshift(`Możesz dołączyć najwyżej ${t.max_files} plików do jednej wiadomości.`),{accepted:r,errors:i}}const Ya="Europe/Warsaw",yp="pl-PL";function Qa(e,t,n,s){const r=Math.abs(e);if(r===1)return t;const i=r%10,o=r%100;return i>=2&&i<=4&&!(o>=12&&o<=14)?n:s}function mi(e,t,n,s){return`${e} ${Qa(e,t,n,s)}`}const Fn=(e,t=Ya)=>new Intl.DateTimeFormat(yp,{timeZone:t,...e}),vp=Fn({hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),_p=Fn({weekday:"long",day:"numeric",month:"long"}),bp=Fn({day:"numeric",month:"long",year:"numeric"}),wp=Fn({day:"numeric",month:"short"});Fn({weekday:"long"});const Ep=new Intl.DateTimeFormat("sv-SE",{timeZone:Ya,year:"numeric",month:"2-digit",day:"2-digit"});function Ds(e){return new Date(`${e}T12:00:00Z`)}const Ns=e=>Fn(e,"UTC"),gi=e=>vp.format(new Date(e)),Sp=e=>_p.format(new Date(e)),Rp=e=>bp.format(new Date(e)),tg=e=>wp.format(new Date(e)),Ap=e=>`${Rp(e)}, ${gi(e)}`,Za=e=>Ep.format(typeof e=="string"?new Date(e):e),Tp=(e=new Date)=>Za(e);function Xa(e,t=new Date){const n=Date.parse(`${Tp(t)}T00:00:00Z`),s=Date.parse(`${Za(e)}T00:00:00Z`);return Math.round((s-n)/864e5)}function xp(e,t=new Date){const n=Xa(e,t);return n===0?"dzisiaj":n===1?"jutro":n===-1?"wczoraj":n>1?`za ${mi(n,"dzień","dni","dni")}`:`${mi(-n,"dzień","dni","dni")} temu`}function ng(e,t){if(e===t)return Ns({day:"numeric",month:"long",year:"numeric"}).format(Ds(e));const[n,s]=e.split("-"),[r,i]=t.split("-"),o=c=>Ns({day:"numeric"}).format(Ds(c)),l=c=>Ns({day:"numeric",month:"long"}).format(Ds(c)),a=c=>Ns({year:"numeric"}).format(Ds(c));return n===r&&s===i?`${o(e)}–${l(t)} ${a(t)}`:n===r?`${l(e)} – ${l(t)} ${a(t)}`:`${l(e)} ${a(e)} – ${l(t)} ${a(t)}`}function sg(e){return e?/online/i.test(e)?"online":/stacjonarn/i.test(e)?"stacjonarny":null:null}function rg(e){return e?e.trim().toLowerCase()==="online"?"":e.trim():""}const Cp={wyklad:"wykład",cwiczenia:"ćwiczenia",konwersatorium:"konwersatorium",seminarium:"seminarium",inne:"zajęcia"},Pp={zaliczenie:"zaliczenie",egzamin:"egzamin",praca:"praca",organizacyjne:"organizacyjne",inne:"inne"},ig={pdf:"PDF",notatka:"notatka",link:"link",inne:"inne"};function og(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(0)} KB`:`${(e/1024/1024).toFixed(1).replace(".",",")} MB`}const Op=["deadline","class","reading"],yi=3,lg={deadline:"Termin",class:"Zajęcia",reading:"Lektura"};function en(e){return`${e.type}:${e.id}`}function Mp(e){return typeof e=="string"&&Op.includes(e)}function ec(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function kp(e){if(!e||typeof e!="object")return!1;const t=e;return Mp(t.type)&&ec(t.id)}function Ip(e,t=yi){const n=e?.metadata?.embeds;if(!Array.isArray(n))return[];const s=[],r=new Set;for(const i of n){if(s.length>=t)break;if(!kp(i))continue;const o={type:i.type,id:i.id},l=en(o);r.has(l)||(r.add(l),s.push(o))}return s}function tc(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":return`/plan#zajecia-${e.id}`;case"reading":return`/lektury#lektura-${e.id}`}}function Lp(e,t=""){return e.map(n=>t+tc(n)).join(` `)}function ag(e,t){if(!e||!t.length)return!1;const n=e.trim().split(` `);return n.length!==t.length?!1:n.every((s,r)=>{const i=tc(t[r]);return s===i?!0:s.endsWith(i)?/^https?:\/\/[^/\s]+$/i.test(s.slice(0,s.length-i.length)):!1})}function cg(e){switch(e.type){case"deadline":return e.deadline.title;case"class":return e.session.course?.name??"";case"reading":return e.reading.title}}function ug(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":{const t=e.session;return t.meeting_number?`/plan?zjazd=${t.meeting_number}#zajecia-${e.id}`:`/przedmioty/${t.course_id}`}case"reading":return`/lektury#lektura-${e.id}`}}function fg(e){switch(e.type){case"deadline":{const t=e.deadline,n=[Ap(t.due_at),Pp[t.kind]??t.kind];return t.course?.name&&n.push(t.course.name),n.join(" · ")}case"class":{const t=e.session,n=[`${Sp(t.starts_at)}, ${gi(t.starts_at)}–${gi(t.ends_at)}`];return t.course?.form&&n.push(Cp[t.course.form]??t.course.form),t.is_online?n.push("online"):t.room&&n.push(`sala ${t.room}`),n.join(" · ")}case"reading":{const t=e.reading;return[t.author,t.course?.name].filter(n=>!!n).join(" · ")}}}function dl(e,t){const n=Xa(e,t);return{text:xp(e,t),warn:n>=0&&n<=14}}function dg(e,t=new Date){switch(e.type){case"deadline":return dl(e.deadline.due_at,t);case"class":return dl(e.session.starts_at,t);case"reading":return e.reading.is_required?{text:"obowiązkowa",warn:!1}:null}}const Dp=[{path:"/terminarz",hash:/^#termin-([1-9]\d{0,15})$/,type:"deadline"},{path:"/plan",hash:/^#zajecia-([1-9]\d{0,15})$/,type:"class"},{path:"/lektury",hash:/^#lektura-([1-9]\d{0,15})$/,type:"reading"}];function nc(e,t){const n=e.trim();if(!n||!/^https?:\/\//i.test(n)&&(!n.startsWith("/")||n.startsWith("//")))return null;let r;try{r=new URL(n,t)}catch{return null}if(r.origin!==t)return null;for(const i of Dp){if(r.pathname!==i.path)continue;const o=i.hash.exec(r.hash);if(!o)return null;const l=Number(o[1]);return ec(l)?{type:i.type,id:l}:null}return null}const Np=/https?:\/\/[^\s<>"'`]+|(?"'`]+/gi;function jp(e,t){const n=[],s=new Set;for(const r of e.matchAll(Np)){const i=r[0].replace(/[.,;:!?)\]}"'”»]+$/,""),o=nc(i,t);if(!o)continue;const l=en(o);s.has(l)||(s.add(l),n.push(o))}return n}function hg(e,t){const n=jp(e,t);return n.length?{insertText:e.trim().split(/\s+/).every(i=>nc(i,t)!==null)?"":e,refs:n}:{insertText:e,refs:n}}const $p="/ws",zp="/api/realtime/token",Vp=new Set([401,403,404]);function Fp(e){return Vp.has(e)}function Bp(e=window.location){return`${e.protocol==="https:"?"wss":"ws"}://${e.host}${$p}`}function qp(e){const t=String(e);return t==="connected"||t==="connecting"?t:"disconnected"}function vi(e){if(!e||typeof e.client!="string")return null;const t=Number(e.user);return!Number.isInteger(t)||t<=0?null:{client:e.client,user:t}}let Vt=null,On=null,gs="disconnected",_r=!1,bn=0;const sn=new Map,_i=new Set,Vs=new Set;function sc(e){gs=e;for(const t of[..._i])t(e)}function Up(){_r=!0;for(const e of[...Vs])e()}function rc(e){return _i.add(e),()=>{_i.delete(e)}}function ic(e){return Vs.add(e),_r&&queueMicrotask(()=>Vs.has(e)&&e()),()=>{Vs.delete(e)}}function Hp(){if(Vt)return gs==="disconnected"&&!_r&&Vt.connect(),Promise.resolve(Vt);if(On)return On;const e=bn;return On=(async()=>{try{const{Centrifuge:t,UnauthorizedError:n}=await _e(async()=>{const{Centrifuge:r,UnauthorizedError:i}=await import("./index-B53bcf0x.js");return{Centrifuge:r,UnauthorizedError:i}},[]);if(e!==bn)throw new Error("realtime: disconnected while loading");const s=new t(Bp(),{minReconnectDelay:500,maxReconnectDelay:1e4,getToken:async()=>{try{const r=await K.request(zp);if(!r||typeof r.token!="string"||r.token==="")throw new Error("realtime: empty token");return r.token}catch(r){throw r instanceof Xe&&Fp(r.status)?(Up(),new n("realtime unavailable")):r}}});return s.on("state",r=>{Vt===s&&sc(qp(r.newState))}),Vt=s,s.connect(),s}finally{e===bn&&(On=null)}})(),On}function Wn(e,t){for(const n of[...e.hooks])t(n)}function Kp(e,t,n){let s=sn.get(t);if(s)String(s.sub.state)==="subscribed"&&queueMicrotask(()=>s?.hooks.has(n)&&n.onSubscribed?.());else{const r=e.getSubscription(t)??e.newSubscription(t),i={sub:r,hooks:new Set};r.on("publication",o=>Wn(i,l=>l.onPublication?.(o.data))),r.on("subscribed",()=>Wn(i,o=>o.onSubscribed?.())),r.on("unsubscribed",o=>{o.code>=400&&Wn(i,l=>l.onDenied?.(o.code))}),r.on("join",o=>{const l=vi(o.info);l&&Wn(i,a=>a.onJoin?.(l))}),r.on("leave",o=>{const l=vi(o.info);l&&Wn(i,a=>a.onLeave?.(l))}),sn.set(t,i),r.subscribe(),s=i}return s.hooks.add(n),s}function oc(e,t){t.sub.removeAllListeners(),t.sub.unsubscribe(),Vt?.removeSubscription(t.sub),sn.delete(e)}async function Fs(e,t){const n=await Hp(),s={...t},r=bn;Kp(n,e,s);let i=!1;return{close(){if(i)return;i=!0;const o=sn.get(e);r!==bn||!o||!o.hooks.delete(s)||o.hooks.size>0||(oc(e,o),sn.size===0&&Vt===n&&n.disconnect())},resubscribe(){i||r!==bn||sn.get(e)?.sub.subscribe()}}}async function Gp(e){const t=sn.get(e);if(!t)return null;try{const n=await t.sub.presence();return Object.values(n.clients??{}).map(s=>vi(s)).filter(s=>s!==null)}catch{return null}}function Wp(){bn++,On=null;for(const[t,n]of[...sn])oc(t,n);const e=Vt;Vt=null,_r=!1,e&&(e.disconnect(),e.removeAllListeners()),gs!=="disconnected"&&sc("disconnected")}async function pg(e,t){const n=rc(o=>t.onConnection?.(o)),s=ic(()=>t.onUnavailable?.());let r;try{r=await Fs(e,{onPublication:o=>t.onPublication(o),onSubscribed:()=>t.onSubscribed?.(),onDenied:o=>t.onDenied?.(o)})}catch(o){throw n(),s(),o}gs==="connected"&&t.onConnection?.(gs);let i=!1;return{close(){i||(i=!0,n(),s(),r.close())},resubscribe(){i||r.resubscribe()}}}const Jp={max_files:5,max_bytes:62914560};function Yp(e){return`Nie udało się wysłać pliku „${e}”.`}const Qp=Object.freeze({text:"",error:"",sending:!1,embeds:Object.freeze([]),files:Object.freeze([])}),hl=50;function Zp(){return typeof window<"u"&&window.location?window.location.origin:""}function Xp(e){const t=e instanceof Xe?e.status:-1;return t===0?"Nie wysłano: brak połączenia z internetem. Spróbuj ponownie.":t===429?"Za dużo wiadomości w krótkim czasie. Odczekaj chwilę i wyślij ponownie.":t===403||t===404?"Nie masz już dostępu do tej rozmowy.":t===400||t===422?"Tej wiadomości nie da się wysłać. Sprawdź treść i załączniki.":"Nie wysłano wiadomości. Spróbuj ponownie."}function em(e){return e instanceof Xe&&e.status===429?"Za dużo nowych rozmów w krótkim czasie. Odczekaj minutę i spróbuj ponownie.":e instanceof Xe&&e.status===0?"Brak połączenia z internetem. Spróbuj ponownie.":"Nie udało się rozpocząć rozmowy. Spróbuj ponownie."}const tm=15e3,nm=6e4,sm=500,Qt=50,rm="Nie udało się wczytać starszych wiadomości.",im=3e3,om=6e3,pl={add:"Nie udało się dodać reakcji.",remove:"Nie udało się cofnąć reakcji."},ml="Nie udało się zapisać zmian. Spróbuj ponownie.",lm="Nie udało się usunąć wiadomości. Spróbuj ponownie.";function lc(e){e.deleted_at=e.deleted_at??new Date().toISOString(),e.content=null,e.reactions=[],e.attachments=[],e.metadata=void 0}function am(e,t,n){const s=new Set(t.map(i=>i.id)),r=t.lengthn||lc(i)}const gl=e=>`chat:conversation:${e}`;function cm(){return typeof document>"u"||typeof document.hasFocus!="function"||document.hasFocus()}function yl(e,t){if(e.some(s=>s.id===t.id))return!1;let n=e.length;for(;n>0&&e[n-1].id>t.id;)n--;return e.splice(n,0,t),!0}const ac=e=>`bm.chat.member.${e}`;function cc(){try{return globalThis.localStorage??null}catch{return null}}function um(e){try{const t=cc()?.getItem(ac(e));return t==="1"?!0:t==="0"?!1:void 0}catch{return}}function fm(e,t){try{cc()?.setItem(ac(e),t?"1":"0")}catch{}}const uc=ln("chat",()=>{const e=te(null),t=te(void 0),n=te(!1),s=te(null),r=te([]),i=te(null),o=te(null),l=te("general"),a=te(""),c=te({}),u=te({}),f=te({}),p=te({}),g=te({}),b=Ln(new Map),w=te("idle"),S=te("idle"),E=te("idle"),y=te(!1),P=te({}),O=te({}),N=te({}),Z=Ln(new Map),j=te(!1),F=te({}),B=te(null),oe=te({});let L=0,Te=null,xe=null,U=null;const Ee=new Map,X=new Map,G=new Set;let re=null,De=0;const pe=new Map,Se=new Map;let Oe=!1,yt=null,vt=null,st=null,Ue=null,C=0,q=[],z=null,H=null;const ie=new Set,h=new Map,m=new Map,v=new Map,T=new Set;let x=null;const R=new Map,$=new Map,I=ne(()=>s.value?.conversation_id??null);function D(d){return d===I.value?s.value?.unread??0:r.value.find(_=>_.id===d)?.unread??0}function M(d){return d===I.value?s.value?.mentions??0:0}const Y=ne(()=>r.value.reduce((d,_)=>d+(_.unread>0?_.unread:0),0)),V=ne(()=>t.value?Math.max(0,s.value?.unread??0)+Y.value:0),W=ne(()=>t.value?Math.max(0,s.value?.mentions??0):0),ee=ne(()=>{const d=new Map;for(const _ of b.value.values())_.handle&&d.set(_.handle,_);return d}),ae=ne(()=>e.value!==null?b.value.get(e.value)?.handle??null:null),he=ne(()=>[...new Set(Z.value.values())].filter(d=>d!==e.value).sort((d,_)=>d-_)),me=ne(()=>he.value.length+1);function Me(d){return j.value&&he.value.includes(d)}function Ne(d){return E.value==="unavailable"?[]:F.value[d]??[]}const at=ne(()=>[...r.value].sort((d,_)=>{const A=d.last_message?Date.parse(d.last_message.created_at):-1/0;return(_.last_message?Date.parse(_.last_message.created_at):-1/0)-A||_.id-d.id}));function ct(d){if(!d.member){eo(),t.value=!1,n.value=!1,s.value=null,r.value=[],i.value=null,o.value=null,l.value="general",c.value={};return}t.value=!0,n.value=d.moderator,s.value=d.general,r.value=(d.conversations??[]).map(A=>({...A})),i.value=d.limits;for(const A of[...v.keys(),...T])Ui(A);o.value!==null&&(o.value===d.general.conversation_id||r.value.some(A=>A.id===o.value))||(o.value=d.general.conversation_id,l.value==="dm"&&(l.value="general"))}function _t(){if(Te)return Te;const d=L,_=S.value==="ready";return _||(S.value="loading"),Te=(async()=>{try{const A=await Ve.bootstrap();if(d!==L)return;ct(A),e.value!==null&&fm(e.value,A.member),S.value="ready"}catch{d===L&&!_&&(S.value="error")}finally{d===L&&(Te=null)}})(),Te}async function Es(d){e.value!==d&&(to(),e.value=d),t.value===void 0&&(t.value=um(d));const _=L;await _t(),!(_!==L||!t.value)&&(Ji(),Yi(),mc(),Wc(),o.value!==null&&l.value!=="dms"&&await We(o.value))}async function He(d){const _=L;u.value[d]=!0,f.value[d]="";try{const A=await Ve.messages(d,{limit:Qt});if(_!==L)return;c.value[d]=A,P.value[d]=A.length{try{const J=c.value[d]?.at(-1)?.id??0,ce=await Ve.messages(d,{limit:Qt});if(A!==L)return;const fe=c.value[d],le=fe?.at(-1)?.id??0;if(!fe||ce.length>=Qt&&ce[0].id>le){c.value[d]=ce,f.value[d]="",P.value[d]=ce.length[bt.id,bt]));for(const bt of ce)ue.set(bt.id,bt);c.value[d]=[...ue.values()].sort((bt,an)=>bt.id-an.id)}catch{}finally{A===L&&h.delete(d)}})();return h.set(d,k),k}async function Ss(d){const _=c.value[d];if(!_?.length||O.value[d]||P.value[d])return;const A=L;O.value[d]=!0,N.value[d]="";try{const k=await Ve.messages(d,{limit:Qt,before:_[0].id});if(A!==L)return;const J=c.value[d]??[],ce=new Set(J.map(fe=>fe.id));c.value[d]=[...k.filter(fe=>!ce.has(fe.id)),...J],P.value[d]=k.lengthA.id===d);_&&(_.unread=0)}function pc(d){const _=c.value[d]?.at(-1)?.id??0;if(!(D(d)>0||M(d)>0||_>(m.get(d)??0))||(Ui(d),m.set(d,_),v.has(d)))return;const k=L;v.set(d,setTimeout(()=>{v.delete(d),k===L&&(T.add(d),Ve.markRead(d).catch(()=>{}).finally(()=>{k===L&&T.delete(d)}))},sm))}function mc(){x||typeof document>"u"||(x=()=>{document.visibilityState==="visible"&&t.value&&Bn()},document.addEventListener("visibilitychange",x))}function Hi(){return l.value==="dms"?null:o.value}function gc(d){return o.value===d&&l.value!=="dms"&&y.value&&cm()}function Ki(d){const _=c.value[d.conversation_id];_&&yl(_,d);const A=r.value.find(k=>k.id===d.conversation_id);A&&(!A.last_message||Date.parse(d.created_at)>=Date.parse(A.last_message.created_at))&&(A.last_message={id:d.id,sender_id:d.sender_id,content:d.content??"",created_at:d.created_at})}async function yc(){l.value="general",I.value!==null&&await We(I.value)}function vc(){l.value="dms",a.value="",Cr()}async function br(d){l.value="dm",await We(d)}function Gi(d){return r.value.find(_=>_.other_user_id===d)}async function _c(d){a.value="";const _=Gi(d);if(_)return await br(_.id),_.id;const A=L;try{const k=await Ve.startDm(d);return A!==L?null:(r.value.some(J=>J.id===k.id)||r.value.unshift({id:k.id,type:k.type||"dm",other_user_id:d,unread:0,last_message:null}),await br(k.id),k.id)}catch(k){return A===L&&(a.value=em(k)),null}}function wr(d){return d!==null&&p.value[d]||Qp}function Rs(d){return p.value[d]||(p.value[d]={text:"",error:"",sending:!1,embeds:[],files:[]}),p.value[d]}function Er(d){return wr(d).files.some(_=>_.state==="uploading")}function bc(d){const _=wr(d);return _.sending||Er(d)?!1:_.text.trim()!==""||_.embeds.length>0||_.files.some(A=>A.state==="done")}function Wi(d,_){const A=pe.get(_),k=p.value[d]?.files.find(le=>le.localId===_);if(!A||!k)return;k.state="uploading",k.progress=0,k.id=null;const J=new AbortController;Se.set(_,J);const ce=L,fe=()=>p.value[d]?.files.find(le=>le.localId===_);Ve.upload(A,le=>{const ue=fe();ce===L&&ue&&ue.state==="uploading"&&(ue.progress=le)},J.signal).then(le=>{const ue=fe();ce!==L||!ue||J.signal.aborted||(ue.state="done",ue.progress=100,ue.id=le.id)}).catch(()=>{const le=fe();if(ce!==L||!le||J.signal.aborted)return;le.state="failed";const ue=p.value[d];ue&&(ue.error=Yp(le.name))}).finally(()=>{Se.get(_)===J&&Se.delete(_)})}function wc(d,_){const A=Rs(d),k=A.files.reduce((fe,le)=>fe+le.size,0),{accepted:J,errors:ce}=gp(_,i.value??Jp,A.files.length,k);A.error=ce.join(" ");for(const fe of J){const le=++De;pe.set(le,fe),A.files.push({localId:le,name:fe.name,size:fe.size,progress:0,state:"uploading",id:null}),Wi(d,le)}return ce}function Ec(d,_){const A=p.value[d]?.files.find(J=>J.localId===_);if(!A||A.state!=="failed")return;const k=p.value[d];k&&(k.error=""),Wi(d,_)}function Sc(d,_){Se.get(_)?.abort(),Se.delete(_),pe.delete(_);const A=p.value[d];A&&(A.files=A.files.filter(k=>k.localId!==_))}const As=ne(()=>Math.min(i.value?.max_embeds||yi,yi));function Rc(d,_,A){const k=Rs(d),J=en(_);return k.embeds.some(ce=>en(ce)===J)||k.embeds.length>=As.value?!1:(k.embeds.push({type:_.type,id:_.id}),k.error="",A?oe.value[J]=A:Sr([_]),!0)}function Ac(d,_){const A=p.value[d];if(!A)return;const k=en(_);A.embeds=A.embeds.filter(J=>en(J)!==k)}function Tc(d){return oe.value[en(d)]}function Sr(d,_=!1){for(const A of d){const k=en(A);G.has(k)||X.has(k)||!_&&k in oe.value||X.set(k,{type:A.type,id:A.id})}if(!X.size)return re??Promise.resolve();if(!re){const A=L;re=Promise.resolve().then(async()=>{const k=[...X.entries()];X.clear(),re=null;for(const[J]of k)G.add(J);for(let J=0;Jle));if(A!==L)return;for(const[le]of ce){const ue=fe&&typeof fe=="object"?fe[le]:void 0;oe.value[le]=ue??null}}catch{}finally{if(A===L)for(const[fe]of ce)G.delete(fe)}}})}return re}function xc(d,_=!1){const A=[];for(const k of d??[])k.deleted_at||A.push(...Ip(k,As.value));return Sr(A,_)}function Cc(d,_){const A=Rs(d);A.text=_,A.error=""}async function Pc(d=o.value){if(d===null)return!1;const _=Rs(d),A=_.embeds.slice(0,As.value),k=_.files.filter(ue=>ue.state==="done"&&ue.id!==null),J=k.map(ue=>ue.id);let ce=_.text.trim();if(!ce&&!A.length&&!J.length||_.sending||Er(d))return!1;!ce&&!J.length&&(ce=Lp(A,Zp()));const fe={content:ce};J.length&&(fe.attachment_ids=J),A.length&&(fe.metadata={embeds:A.map(ue=>({type:ue.type,id:ue.id}))}),_.sending=!0,_.error="";const le=L;try{const ue=await Ve.send(d,fe);if(le!==L)return!1;Ki(ue),_.text="",_.embeds=[];const bt=new Set(k.map(an=>an.localId));for(const an of bt)pe.delete(an);return _.files=_.files.filter(an=>!bt.has(an.localId)),!0}catch(ue){return le!==L||(_.error=Xp(ue),ue instanceof Xe&&(ue.status===403||ue.status===404)&&_t()),!1}finally{_.sending=!1}}function Oc(d,_){g.value[d]={..._}}function Mc(d){return g.value[d]??null}function Ji(d=!1){if(xe)return xe;if(w.value==="ready"&&!d)return Promise.resolve();const _=L;return w.value="loading",xe=(async()=>{try{const A=await Ve.members();if(_!==L)return;b.value=new Map(A.map(k=>[k.id,k])),w.value="ready"}catch{_===L&&(w.value="error")}finally{_===L&&(xe=null)}})(),xe}function Yi(){if(B.value!==null)return Promise.resolve();if(U)return U;const d=L;return U=(async()=>{try{const _=await Ve.reactions();d===L&&(B.value=Array.isArray(_)?_.filter(A=>typeof A=="string"&&A!==""):[])}catch{}finally{d===L&&(U=null)}})(),U}function Sn(d,_){return c.value[d]?.find(A=>A.id===_)}async function kc(d,_){const A=e.value,k=Sn(d.conversation_id,d.id);if(A===null||!k||k.deleted_at)return;const J=!(k.reactions??[]).some(le=>le.key===_&&le.user_ids.includes(A));k.reactions=Wr(k.reactions,_,A,J,B.value??[]);const ce=(Ee.get(k.id)??0)+1;Ee.set(k.id,ce);const fe=L;try{const le=J?await Ve.addReaction(k.id,_):await Ve.removeReaction(k.id,_);if(fe!==L||Ee.get(k.id)!==ce)return;const ue=Sn(d.conversation_id,d.id);ue&&!ue.deleted_at&&(ue.reactions=le.reactions??[])}catch{if(fe!==L)return;const le=Sn(d.conversation_id,d.id);le&&(le.reactions=Wr(le.reactions,_,A,!J,B.value??[])),wn().show(J?pl.add:pl.remove)}finally{fe===L&&Ee.get(k.id)===ce&&Ee.delete(k.id)}}function Ic(d){return e.value!==null&&d.sender_id===e.value&&!d.deleted_at&&d.type==="text"}function Lc(d){return e.value===null||d.deleted_at?!1:d.sender_id===e.value?!0:n.value&&I.value!==null&&d.conversation_id===I.value}function Qi(d){const _=c.value[d.conversation_id],A=_?_.findIndex(J=>J.id===d.id):-1;_&&A>=0&&(_[A]=d);const k=r.value.find(J=>J.id===d.conversation_id);k?.last_message?.id===d.id&&(k.last_message={...k.last_message,content:d.content??""})}function Ts(d,_){const A=Sn(d,_);A&&lc(A);const k=r.value.find(J=>J.id===d);k?.last_message?.id===_&&(k.last_message={...k.last_message,content:""})}async function Dc(d,_){const A=_.trim();if(A===(d.content??"").trim())return null;if(!A)return ml;const k=L;try{const J=await Ve.edit(d.id,A);return k===L&&Qi(J),null}catch{return ml}}async function Nc(d){const _=L;try{return await Ve.remove(d.id),_===L&&Ts(d.conversation_id,d.id),null}catch(A){return A instanceof Xe&&A.status===404?(_===L&&Ts(d.conversation_id,d.id),null):lm}}async function jc(d,_){if(!Sn(d,_))return;const A=L;try{const k=await Ve.message(_);if(A!==L)return;k.deleted_at?Ts(d,_):Qi(k)}catch{}}function Bn(){return _t()}async function $c(d){if(ie.has(d))return;ie.add(d);const _=L;try{const A=await Ve.message(d);_===L&&Ki(A)}catch{}finally{_===L&&ie.delete(d)}}function zc(d){const _=d.conversation_id;Tr(_,d.sender_id);const A=gc(_),k=c.value[_];if(k&&yl(k,d),_===I.value){s.value&&!A&&(s.value.unread+=1);return}r.value=dp(r.value,d,{seen:A})}function Vc(d){switch(d.kind){case"created":Tr(d.conversationId,d.senderId),fp(d,c.value)&&$c(d.id);return;case"typing":qc(d.conversationId,d.userId);return;case"chatMessage":zc(d.message);return;case"mentions":Bn();return;case"updated":jc(d.conversationId,d.id);return;case"deleted":Ts(d.conversationId,d.id);return;case"reacted":{const _=Sn(d.conversationId,d.id);_&&!_.deleted_at&&(_.reactions=Wr(_.reactions,d.key,d.userId,d.added,B.value??[]));return}default:return}}function Rr(d){const _=up(d);_&&Vc(_)}function Ar(){const d=Hi();d!==null&&c.value[d]!==void 0&&En(d),Bn()}function Fc(d){if(!(E.value==="idle"||E.value==="unavailable")){if(d==="connected"){E.value="connected";return}j.value=!1,xr(),E.value=E.value==="connected"||E.value==="reconnecting"?"reconnecting":"connecting"}}function Bc(){Zi(),z=setInterval(()=>{const d=Hi();d!==null&&En(d)},tm),H=setInterval(()=>{Bn()},nm)}function Zi(){z&&clearInterval(z),H&&clearInterval(H),z=null,H=null}function Xi(){!Oe||E.value==="unavailable"||(E.value="unavailable",j.value=!1,xr(),Bc())}function qc(d,_){if(_===e.value||E.value==="unavailable")return;const A=F.value[d]??[];A.includes(_)||(F.value[d]=[...A,_]);const k=`${d}:${_}`,J=R.get(k);J&&clearTimeout(J),R.set(k,setTimeout(()=>Tr(d,_),om))}function Tr(d,_){const A=`${d}:${_}`,k=R.get(A);k&&clearTimeout(k),R.delete(A);const J=F.value[d];J?.includes(_)&&(F.value[d]=J.filter(ce=>ce!==_))}function xr(){for(const d of R.values())clearTimeout(d);R.clear(),F.value={}}function Uc(d,_){if(!_.trim()||E.value==="idle"||E.value==="unavailable")return;const A=Date.now(),k=$.get(d);k!==void 0&&A-k{}))}async function Hc(d){const _=L,A=await Gp(d);if(!(_!==L||E.value==="unavailable")){if(A===null){j.value=!1;return}Z.value=new Map(A.map(k=>[k.client,k.user])),j.value=!0}}function Kc(d){const _=new Map(Z.value);_.set(d.client,d.user),Z.value=_}function Gc(d){if(!Z.value.has(d.client))return;const _=new Map(Z.value);_.delete(d.client),Z.value=_}async function Wc(){if(Oe||e.value===null||I.value===null)return;Oe=!0;const d=L,_=e.value,A=I.value;E.value="connecting",q.push(rc(Fc),ic(Xi));try{const k=await Fs(`user:${_}`,{onPublication:Rr,onSubscribed:Ar});if(d!==L)return k.close();yt=k;const J=gl(A),ce=await Fs(J,{onPublication:Rr,onSubscribed:()=>{Ar(),Hc(J)},onJoin:Kc,onLeave:Gc});if(d!==L)return ce.close();vt=ce,await Cr()}catch{d===L&&Xi()}}async function Cr(){if(!Oe)return;const d=l.value==="dm"?o.value:null;if(d===Ue)return;const _=++C;if(st?.close(),st=null,Ue=d,d===null)return;const A=L;try{const k=await Fs(gl(d),{onPublication:Rr,onSubscribed:Ar});if(A!==L||_!==C)return k.close();st=k}catch{}}function eo(){for(const _ of q)_();q=[],yt?.close(),vt?.close(),st?.close(),yt=vt=st=null,Ue=null,C++,Zi();const d=Oe;return Oe=!1,E.value="idle",j.value=!1,Z.value=new Map,xr(),$.clear(),d}function to(){(eo()||e.value!==null)&&Wp(),ie.clear(),h.clear();for(const d of v.values())clearTimeout(d);v.clear(),T.clear(),m.clear(),x&&typeof document<"u"&&document.removeEventListener("visibilitychange",x),x=null,L++,Te=null,xe=null,U=null,Ee.clear(),B.value=null;for(const d of Se.values())d.abort();Se.clear(),pe.clear(),X.clear(),G.clear(),re=null,oe.value={},e.value=null,t.value=void 0,n.value=!1,s.value=null,r.value=[],i.value=null,o.value=null,l.value="general",a.value="",c.value={},u.value={},f.value={},p.value={},g.value={},P.value={},O.value={},N.value={},b.value=new Map,w.value="idle",S.value="idle"}return{userId:e,member:t,moderator:n,general:s,generalId:I,conversations:r,limits:i,activeId:o,view:l,dmError:a,dmRows:at,messages:c,loading:u,errors:f,drafts:p,anchors:g,members:b,membersByHandle:ee,myHandle:ae,membersState:w,bootstrapState:S,connection:E,panelVisible:y,reachedStart:P,olderLoading:O,olderError:N,dmUnread:Y,totalUnread:V,totalMentions:W,unreadOf:D,mentionsOf:M,markRead:pc,loadOlder:Ss,presenceAvailable:j,othersOnline:he,onlineCount:me,isOnline:Me,typing:F,typingIn:Ne,emitTyping:Uc,init:Es,bootstrap:_t,open:We,showGeneral:yc,showDms:vc,openDm:br,dmWith:Gi,startDm:_c,loadLatest:He,refreshLatest:En,refetchCounts:Bn,draft:wr,setDraftText:Cc,send:Pc,maxEmbeds:As,uploading:Er,canSend:bc,uploadFiles:wc,retryUpload:Ec,removeFile:Sc,stageEmbed:Rc,unstageEmbed:Ac,embedItems:oe,embedItem:Tc,resolveRefs:Sr,resolveFor:xc,saveAnchor:Oc,anchorFor:Mc,loadMembers:Ji,allowedReactions:B,loadReactions:Yi,toggleReaction:kc,canEdit:Ic,canDelete:Lc,edit:Dc,remove:Nc,reset:to}});let Jr=null;const fc=ln("auth",()=>{const e=te(null),t=te(ht.get()),n=te(!1),s=ne(()=>t.value!==null),r=ne(()=>{const S=e.value;return S?[S.name,S.surname].filter(Boolean).join(" ")||S.email:""});function i(S,E,y){ht.set(S,y),t.value=ht.get(),E&&(e.value=E,os().load(E.id))}function o(){ht.clear(),t.value=null,e.value=null,qi().reset(),rp().reset(),os().reset(),Ja().reset(),uc().reset()}async function l(S){S&&(Jr={public:S.meta.public===!0,fullPath:S.fullPath});try{if(ht.get())try{const E=await fn.fetch();e.value=E.user,t.value=ht.get(),os().load(E.user.id)}catch{ht.get()||o()}n.value=!0}finally{Jr=null}}async function a(S,E,y){const P=await fn.login({email:S,password:E});i(P.token,P.user,y)}async function c(S,E){const y=await fn.register(S);return y.token?(i(y.token,y.user,E),{signedIn:!0,message:""}):{signedIn:!1,message:y.message??""}}function u(S){return i(S.token,S.user,!0),{action:S.action,returnTo:S.return_to}}async function f(S){return u(await fn.oauthComplete(S))}async function p(S){return u(await fn.oauthRegisterComplete(S))}async function g(){try{await fn.logout()}catch{}o(),await gn.push({name:"login"})}async function b(S){const E=await fn.update(S);e.value=E.user}function w(){const S=Jr??{public:gn.currentRoute.value.meta.public===!0,fullPath:gn.currentRoute.value.fullPath},E=s.value||e.value!==null;o(),E&&!S.public&&gn.push({name:"login",query:{redirect:S.fullPath,expired:"1"}})}return Kh(w),{user:e,token:t,ready:n,loggedIn:s,displayName:r,restore:l,login:a,register:c,completeOAuth:f,completeOAuthRegistration:p,logout:g,updateProfile:b}});function mg({active:e,visible:t,focused:n,atBottom:s}){return e&&t&&n&&s}function dm(e){return e>0?e>99?"99+":String(e):""}function vl(e){return mi(e,"nieprzeczytana wiadomość","nieprzeczytane wiadomości","nieprzeczytanych wiadomości")}function gg(e){return e===1?"wzmianka o Tobie":`${e} ${Qa(e,"wzmianka","wzmianki","wzmianek")} o Tobie`}function yg(e,t,n){if(!(t>0))return null;let s=t,r=null;for(let i=e.length-1;i>=0&&s>0;i--){const o=e[i];o.sender_id!==n&&(r=o.id,s--)}return r}function vg(e){return e.length===0?"":e.length===1?`${e[0]} pisze…`:e.length===2?`${e[0]} i ${e[1]} piszą…`:"Kilka osób pisze…"}let Yr=!1;const dc=ln("pwa",()=>{const e=te(!1),t=Ln(null),n=Ln(null);let s=!1;const r=ne(()=>!e.value&&t.value!==null),i=ne(()=>n.value!==null);function o(){s||typeof window>"u"||(s=!0,e.value=window.matchMedia?.("(display-mode: standalone)").matches===!0||navigator.standalone===!0,window.addEventListener("beforeinstallprompt",f=>{f.preventDefault(),t.value=f}),window.addEventListener("appinstalled",()=>{e.value=!0,t.value=null}),"serviceWorker"in navigator&&(document.readyState==="complete"?l():window.addEventListener("load",l,{once:!0})))}async function l(){const f=navigator.serviceWorker;f.addEventListener("controllerchange",()=>{Yr&&(Yr=!1,window.location.reload())});try{const p=await f.register("/sw.js",{scope:"/",updateViaCache:"none"});p.waiting&&f.controller&&(n.value=p.waiting),p.addEventListener("updatefound",()=>{const g=p.installing;g&&g.addEventListener("statechange",()=>{g.state==="installed"&&f.controller&&(n.value=g)})}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&p.update().catch(()=>{})})}catch{}}async function a(){const f=t.value;if(f){t.value=null;try{await f.prompt(),(await f.userChoice).outcome==="accepted"&&(e.value=!0)}catch{}}}function c(){const f=n.value;f&&(Yr=!0,f.postMessage({type:"SKIP_WAITING"}))}function u(){n.value=null}return{installed:e,deferred:t,waiting:n,canInstall:r,updateReady:i,start:o,install:a,applyUpdate:c,dismissUpdate:u}}),hm={class:"shell"},pm={class:"sidebar"},mm={"aria-label":"Główna nawigacja"},gm={key:0,class:"unread-badge nav-badge"},ym={"aria-hidden":"true"},vm={class:"sr-only"},_m={class:"who"},bm={class:"muted"},wm={class:"tabbar","aria-label":"Nawigacja"},Em={class:"nav-icon"},Sm={key:0,class:"nav-dot","aria-hidden":"true"},Rm={key:0,class:"sr-only"},Am={key:0,class:"update-bar",role:"status","aria-live":"polite"},Tm=Vn({__name:"AppShell",setup(e){const t=fc(),n=wn(),s=dc(),r=Ha();Ja();const i=uc();vn(()=>t.user?.id,f=>{f?i.init(f):i.reset()},{immediate:!0});const o=[{to:"/",label:"Pulpit",icon:"home",match:["dashboard"]},{to:"/plan",label:"Plan zajęć",icon:"calendar",match:["schedule"]},{to:"/terminarz",label:"Terminarz",icon:"flag",match:["deadlines"]},{to:"/przedmioty",label:"Przedmioty",icon:"grad",match:["courses","course"]},{to:"/lektury",label:"Lektury",icon:"book",match:["readings"]},{to:"/materialy",label:"Materiały",icon:"file",match:["materials","material"]},{to:"/checklisty",label:"Checklisty",icon:"checklist",match:["checklists","checklist"]},{to:"/sylabusy",label:"Sylabusy",icon:"file",match:["syllabi"]},{to:"/quizy",label:"Quizy",icon:"quiz",match:["quizzes","quiz"]},{to:"/moje-prezentacje",label:"Moje prezentacje",icon:"slides",match:["my-presentations"]},{to:"/profil",label:"Profil",icon:"user",match:["profile"]}],l=[{to:"/",label:"Pulpit",icon:"home",match:["dashboard"]},{to:"/plan",label:"Plan",icon:"calendar",match:["schedule"]},{to:"/lektury",label:"Lektury",icon:"book",match:["readings"]},{to:"/quizy",label:"Quizy",icon:"quiz",match:["quizzes","quiz"]},{to:"/wiecej",label:"Więcej",icon:"more",match:["more","deadlines","courses","course","materials","material","checklists","checklist","syllabi","my-presentations","profile"]}],a=ne(()=>String(r.name??"")),c=ne(()=>a.value!=="dashboard"&&i.totalUnread>0?i.totalUnread:0),u=f=>f.includes(a.value);return(f,p)=>{const g=sa("router-link");return tt(),Lt("div",hm,[$e("aside",pm,[Ce(g,{to:"/",class:"brand"},{default:ts(()=>[...p[4]||(p[4]=[$e("span",{class:"eyebrow"},"UWr · ISMiB",-1),$e("b",null,"BM II°",-1)])]),_:1}),$e("nav",mm,[(tt(),Lt(nt,null,go(o,b=>Ce(g,{key:b.to,to:b.to,class:Mn({active:u(b.match)}),"aria-current":u(b.match)?"page":void 0},{default:ts(()=>[Ce(sl,{name:b.icon},null,8,["name"]),li(Wt(b.label)+" ",1),b.to==="/"&&c.value?(tt(),Lt("span",gm,[$e("span",ym,Wt(Le(dm)(c.value)),1),$e("span",vm,", "+Wt(Le(vl)(c.value)),1)])):Hn("",!0)]),_:2},1032,["to","class","aria-current"])),64))]),$e("div",_m,[$e("span",bm,Wt(Le(t).displayName),1),Le(s).canInstall?(tt(),Lt("button",{key:0,class:"btn small",type:"button",onClick:p[0]||(p[0]=b=>Le(s).install())},"Zainstaluj aplikację")):Hn("",!0),$e("button",{class:"btn small ghost",type:"button",onClick:p[1]||(p[1]=b=>Le(t).logout())},"Wyloguj")])]),$e("main",{class:Mn(["main",{wide:Le(r).meta.wide===!0}]),id:"main"},[df(f.$slots,"default")],2),$e("nav",wm,[(tt(),Lt(nt,null,go(l,b=>Ce(g,{key:b.to,to:b.to,class:Mn({active:u(b.match)}),"aria-current":u(b.match)?"page":void 0},{default:ts(()=>[$e("span",Em,[Ce(sl,{name:b.icon},null,8,["name"]),b.to==="/"&&c.value?(tt(),Lt("span",Sm)):Hn("",!0)]),li(Wt(b.label)+" ",1),b.to==="/"&&c.value?(tt(),Lt("span",Rm,", "+Wt(Le(vl)(c.value)),1)):Hn("",!0)]),_:2},1032,["to","class","aria-current"])),64))]),Vu($e("div",{class:"toast",role:"status","aria-live":"polite"},Wt(Le(n).message),513),[[sd,Le(n).message]]),Le(s).updateReady?(tt(),Lt("div",Am,[p[5]||(p[5]=$e("span",null,"Dostępna jest nowa wersja aplikacji.",-1)),$e("button",{class:"btn small",type:"button",onClick:p[2]||(p[2]=b=>Le(s).applyUpdate())},"Odśwież"),$e("button",{class:"btn small ghost",type:"button",onClick:p[3]||(p[3]=b=>Le(s).dismissUpdate())},"Później")])):Hn("",!0)])}}}),xm=Vn({__name:"App",setup(e){const t=Ha(),n=ne(()=>t.meta.public===!0||t.meta.bare===!0);return(s,r)=>{const i=sa("router-view");return n.value?(tt(),fs(i,{key:0})):(tt(),fs(Tm,{key:1},{default:ts(()=>[Ce(i)]),_:1}))}}}),hc=Od();xd(xm).use(hc).use(gn).mount("#app");dc(hc).start();export{en as $,Xe as A,Qa as B,Mn as C,ng as D,go as E,nt as F,Ym as G,Ei as H,sg as I,rg as J,Sp as K,Pl as L,cu as M,lg as N,cg as O,fg as P,dg as Q,Nh as R,ug as S,ig as T,vn as U,sf as V,jm as W,Mm as X,Ve as Y,ar as Z,sl as _,fn as a,uc as a0,og as a1,hg as a2,gg as a3,dm as a4,vl as a5,gi as a6,tg as a7,Ap as a8,Ip as a9,K as aA,dc as aB,Jh as aC,Ja as aD,eg as aE,Gm as aF,df as aG,Li as aH,Hm as aI,Km as aJ,km as aK,_e as aL,pg as aM,Om as aN,ht as aO,sd as aP,$m as aQ,zm as aR,Vm as aS,Fm as aT,Bm as aU,qm as aV,ag as aa,yg as ab,mg as ac,vg as ad,qi as ae,rp as af,mi as ag,Cp as ah,xp as ai,Pp as aj,Gr as ak,Ae as al,Tp as am,os as an,Wm as ao,xt as ap,Pm as aq,Rp as ar,Dm as as,vs as at,Zm as au,tp as av,Jm as aw,Xm as ax,np as ay,Qm as az,$e as b,Lt as c,Vn as d,Le as e,Hn as f,Lm as g,Nm as h,Ce as i,ts as j,Ha as k,sa as l,Um as m,tt as n,ef as o,li as p,wn as q,te as r,fs as s,Wt as t,fc as u,Im as v,Vu as w,ne as x,Za as y,Xa as z}; diff --git a/public/assets/presentations-AE-pigbL.js b/public/assets/presentations-CObEuepN.js similarity index 92% rename from public/assets/presentations-AE-pigbL.js rename to public/assets/presentations-CObEuepN.js index e091dda..9586142 100644 --- a/public/assets/presentations-AE-pigbL.js +++ b/public/assets/presentations-CObEuepN.js @@ -1 +1 @@ -import{aO as m,aA as n}from"./index-DwX0tlPb.js";const o="/_presentations/api/v1",c={publicDeck:e=>n.request(`${o}/public/${encodeURIComponent(e)}`,{auth:!1}),mine:()=>n.request(`${o}/mine`),speaker:e=>n.request(`${o}/mine/${encodeURIComponent(e)}`),speakerImage:(e,t)=>n.blob(`${o}/mine/${encodeURIComponent(e)}/images/${encodeURIComponent(t)}`),remote:(e,t)=>n.request(`${o}/mine/${encodeURIComponent(e)}/remote`,{method:"POST",body:t}),remoteState:(e,t)=>n.request(`${o}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",body:t}),remoteStateBeacon(e,t){const a={Accept:"application/json","Content-Type":"application/json"},i=m.get();i&&(a.Authorization=`Bearer ${i}`);try{fetch(`${o}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",headers:a,body:JSON.stringify(t),keepalive:!0}).catch(()=>{})}catch{}}};export{c as p}; +import{aO as m,aA as n}from"./index-C7U0oIvN.js";const o="/_presentations/api/v1",c={publicDeck:e=>n.request(`${o}/public/${encodeURIComponent(e)}`,{auth:!1}),mine:()=>n.request(`${o}/mine`),speaker:e=>n.request(`${o}/mine/${encodeURIComponent(e)}`),speakerImage:(e,t)=>n.blob(`${o}/mine/${encodeURIComponent(e)}/images/${encodeURIComponent(t)}`),remote:(e,t)=>n.request(`${o}/mine/${encodeURIComponent(e)}/remote`,{method:"POST",body:t}),remoteState:(e,t)=>n.request(`${o}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",body:t}),remoteStateBeacon(e,t){const a={Accept:"application/json","Content-Type":"application/json"},i=m.get();i&&(a.Authorization=`Bearer ${i}`);try{fetch(`${o}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",headers:a,body:JSON.stringify(t),keepalive:!0}).catch(()=>{})}catch{}}};export{c as p}; diff --git a/public/assets/quizzes-BlBom-oJ.js b/public/assets/quizzes-ClZx_Cui.js similarity index 96% rename from public/assets/quizzes-BlBom-oJ.js rename to public/assets/quizzes-ClZx_Cui.js index 5577a10..b6240ba 100644 --- a/public/assets/quizzes-BlBom-oJ.js +++ b/public/assets/quizzes-ClZx_Cui.js @@ -1 +1 @@ -import{d as z,n as a,c as o,F as c,E as h,b as l,p as u,t as n,e as p,a8 as _,C as q,f as m,aA as r}from"./index-DwX0tlPb.js";const y={class:"rows"},$={class:"row-main"},k={class:"title"},w=["aria-label"],f={key:1,class:"badge"},b={class:"muted small"},S=z({__name:"AttemptList",props:{attempts:{},showQuiz:{type:Boolean}},setup(e){const s=d=>`${Math.round(d.score_points)}/${Math.round(d.max_points)}`;return(d,g)=>(a(),o("ul",y,[(a(!0),o(c,null,h(e.attempts,t=>(a(),o("li",{key:t.id},[l("div",$,[l("span",k,[e.showQuiz?(a(),o(c,{key:0},[u(n(t.quiz_title),1)],64)):(a(),o(c,{key:1},[u(n(p(_)(t.started_at)),1)],64))]),t.completed_at?(a(),o("span",{key:0,class:q(["badge",t.passed?"online":""]),"aria-label":`Wynik ${s(t)}`},n(s(t)),11,w)):(a(),o("span",f,"niezakończona"))]),l("div",b,[e.showQuiz?(a(),o(c,{key:0},[u(n(p(_)(t.started_at))+" · ",1)],64)):m("",!0),t.category?(a(),o(c,{key:1},[u(n(t.category)+" · ",1)],64)):m("",!0),u(" odpowiedzi: "+n(t.answered_count),1),t.completed_at&&t.score_percent!==null?(a(),o(c,{key:2},[u(" · "+n(String(t.score_percent).replace(".",","))+"% puli",1)],64)):m("",!0)])]))),128))]))}}),i="/_quizzes/api/v1",T={list:e=>r.request(`${i}/quizzes`,{query:{context:e}}),quiz:(e,s)=>r.request(`${i}/quizzes/${encodeURIComponent(e)}`,{query:{category:s}}),start:(e,s)=>r.request(`${i}/quizzes/${encodeURIComponent(e)}/attempts`,{method:"POST",body:s?{category:s}:{}}),answer:(e,s)=>r.request(`${i}/attempts/${e}/answers`,{method:"POST",body:s}),finish:e=>r.request(`${i}/attempts/${e}/finish`,{method:"POST"}),attempt:e=>r.request(`${i}/attempts/${e}`),attempts:(e,s)=>r.raw(`${i}/attempts`,{query:{quiz:e,page:s}})};export{S as _,T as q}; +import{d as z,n as a,c as o,F as c,E as h,b as l,p as u,t as n,e as p,a8 as _,C as q,f as m,aA as r}from"./index-C7U0oIvN.js";const y={class:"rows"},$={class:"row-main"},k={class:"title"},w=["aria-label"],f={key:1,class:"badge"},b={class:"muted small"},S=z({__name:"AttemptList",props:{attempts:{},showQuiz:{type:Boolean}},setup(e){const s=d=>`${Math.round(d.score_points)}/${Math.round(d.max_points)}`;return(d,g)=>(a(),o("ul",y,[(a(!0),o(c,null,h(e.attempts,t=>(a(),o("li",{key:t.id},[l("div",$,[l("span",k,[e.showQuiz?(a(),o(c,{key:0},[u(n(t.quiz_title),1)],64)):(a(),o(c,{key:1},[u(n(p(_)(t.started_at)),1)],64))]),t.completed_at?(a(),o("span",{key:0,class:q(["badge",t.passed?"online":""]),"aria-label":`Wynik ${s(t)}`},n(s(t)),11,w)):(a(),o("span",f,"niezakończona"))]),l("div",b,[e.showQuiz?(a(),o(c,{key:0},[u(n(p(_)(t.started_at))+" · ",1)],64)):m("",!0),t.category?(a(),o(c,{key:1},[u(n(t.category)+" · ",1)],64)):m("",!0),u(" odpowiedzi: "+n(t.answered_count),1),t.completed_at&&t.score_percent!==null?(a(),o(c,{key:2},[u(" · "+n(String(t.score_percent).replace(".",","))+"% puli",1)],64)):m("",!0)])]))),128))]))}}),i="/_quizzes/api/v1",T={list:e=>r.request(`${i}/quizzes`,{query:{context:e}}),quiz:(e,s)=>r.request(`${i}/quizzes/${encodeURIComponent(e)}`,{query:{category:s}}),start:(e,s)=>r.request(`${i}/quizzes/${encodeURIComponent(e)}/attempts`,{method:"POST",body:s?{category:s}:{}}),answer:(e,s)=>r.request(`${i}/attempts/${e}/answers`,{method:"POST",body:s}),finish:e=>r.request(`${i}/attempts/${e}/finish`,{method:"POST"}),attempt:e=>r.request(`${i}/attempts/${e}`),attempts:(e,s)=>r.raw(`${i}/attempts`,{query:{quiz:e,page:s}})};export{S as _,T as q}; diff --git a/public/assets/scrollToHash-CWWIxePp.js b/public/assets/scrollToHash-PZXPXyf9.js similarity index 89% rename from public/assets/scrollToHash-CWWIxePp.js rename to public/assets/scrollToHash-PZXPXyf9.js index e8d39ac..2d3e210 100644 --- a/public/assets/scrollToHash-CWWIxePp.js +++ b/public/assets/scrollToHash-PZXPXyf9.js @@ -1 +1 @@ -import{U as i,k as d,Z as u,aq as m}from"./index-DwX0tlPb.js";const l=2500;function h(s){const a=d();let c="";i([()=>m(s),()=>a.hash],([n,e])=>{!n||!e||e===c||(c=e,u(()=>{if(typeof document>"u")return;let o=e.slice(1);try{o=decodeURIComponent(o)}catch{}const t=document.getElementById(o);if(!t)return;const r=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.scrollIntoView({behavior:r?"auto":"smooth",block:"start"}),t.classList.add("hash-target"),setTimeout(()=>t.classList.remove("hash-target"),l)}))},{immediate:!0})}export{h as u}; +import{U as i,k as d,Z as u,aq as m}from"./index-C7U0oIvN.js";const l=2500;function h(s){const a=d();let c="";i([()=>m(s),()=>a.hash],([n,e])=>{!n||!e||e===c||(c=e,u(()=>{if(typeof document>"u")return;let o=e.slice(1);try{o=decodeURIComponent(o)}catch{}const t=document.getElementById(o);if(!t)return;const r=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.scrollIntoView({behavior:r?"auto":"smooth",block:"start"}),t.classList.add("hash-target"),setTimeout(()=>t.classList.remove("hash-target"),l)}))},{immediate:!0})}export{h as u}; diff --git a/public/index.html b/public/index.html index 1d738a6..356109b 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@ - + diff --git a/public/sw.js b/public/sw.js index 6343948..b58c042 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,4 +1,4 @@ -const BUILD = '7b95beacd7cf' +const BUILD = 'ce1e60bdb7a3' // The service worker of the BM student app. The Vite plugin bm-service-worker // (vite.config.ts) emits this file as /sw.js and replaces the build id above, // so every build that changes an asset gets a fresh cache and an update prompt.