build: rebuild the student app (pins, save stays, page titles)

This commit is contained in:
Jakub Zych
2026-11-09 13:25:33 +01:00
parent bff92cca78
commit a4b564b2f8
52 changed files with 61 additions and 60 deletions

File diff suppressed because one or more lines are too long

View File

@@ -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-07rBQy2o.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{f as G}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-CcI9Zfly.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{f as G}from"./forms-BnMfKac0.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};

View File

@@ -1 +1 @@
import{b0 as g,d as x,o as B,c as n,b as t,t as u,p as z,F as j,E as A,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-07rBQy2o.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=_(""),b={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 w(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=w(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=w(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 B(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,A(o.value.scopes,p=>(s(),n("li",{key:p},[t("strong",null,u(p),1),b[p]?(s(),n(j,{key:0},[z(": "+u(b[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{b0 as g,d as x,o as B,c as n,b as t,t as u,p as z,F as j,E as A,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-BQ0OOvD0.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=_(""),b={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 w(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=w(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=w(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 B(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,A(o.value.scopes,p=>(s(),n("li",{key:p},[t("strong",null,u(p),1),b[p]?(s(),n(j,{key:0},[z(": "+u(b[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};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as C}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CrwnSuEl.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-07rBQy2o.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-CcI9Zfly.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-oZbSwP81.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-BQ0OOvD0.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};

File diff suppressed because one or more lines are too long

View File

@@ -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-07rBQy2o.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CrwnSuEl.js";import{u as R}from"./scrollToHash-Jv7tcotj.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)<l.value.getTime()).reverse()),v=y(()=>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-BQ0OOvD0.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-CcI9Zfly.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-oZbSwP81.js";import{u as R}from"./scrollToHash-CNgVaDEG.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)<l.value.getTime()).reverse()),v=y(()=>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};

View File

@@ -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-07rBQy2o.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-BQ0OOvD0.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 _};

View File

@@ -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-07rBQy2o.js";import{f as V}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{f as V}from"./forms-BnMfKac0.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};

View File

@@ -1 +1 @@
import{d as n,c as r,p as l,t as i,b as o,aV as d,n as s}from"./index-07rBQy2o.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,aV as d,n as s}from"./index-BQ0OOvD0.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 _};

View File

@@ -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-07rBQy2o.js";import{s as h,f as R}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{s as h,f as R}from"./forms-BnMfKac0.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};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as b}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{d as z,u as h,b1 as k,b2 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 x,l as P,_ as p}from"./index-07rBQy2o.js";const C={class:"stack"},B={class:"row-main",style:{"align-items":"center"}},N={class:"muted small"},V={class:"row-main",style:{"align-items":"center"}},S=z({__name:"MoreView",setup($){const r=h(),c=k(),m=_(),u=[{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:"/lektury",label:"Lektury",hint:"Lista lektur i postęp czytania",icon:"book"},{to:"/quizy",label:"Quizy",hint:"Sprawdź się przed zajęciami",icon:"quiz"},{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"}],d=j(()=>m?[{to:"/pilot",label:"Pilot",hint:"Ostatnia prezentacja otwierana na tym urządzeniu",icon:"slides"},...u]:u);return(D,e)=>{const y=P("router-link");return o(),i("div",null,[s(b,{eyebrow:"Pozostałe",title:"Więcej"}),t("div",C,[(o(!0),i(w,null,g(d.value,a=>(o(),v(y,{key:a.to,to:a.to,class:"card link"},{default:x(()=>[t("div",B,[t("div",null,[t("h3",null,l(a.label),1),t("span",N,l(a.hint),1)]),s(p,{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",V,[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(p,{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{S as default};
import{_ as b}from"./PageHead.vue_vue_type_script_setup_true_lang-CcI9Zfly.js";import{d as z,u as h,b1 as k,b2 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 x,l as P,_ as p}from"./index-BQ0OOvD0.js";const C={class:"stack"},B={class:"row-main",style:{"align-items":"center"}},N={class:"muted small"},V={class:"row-main",style:{"align-items":"center"}},S=z({__name:"MoreView",setup($){const r=h(),c=k(),m=_(),u=[{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:"/lektury",label:"Lektury",hint:"Lista lektur i postęp czytania",icon:"book"},{to:"/quizy",label:"Quizy",hint:"Sprawdź się przed zajęciami",icon:"quiz"},{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"}],d=j(()=>m?[{to:"/pilot",label:"Pilot",hint:"Ostatnia prezentacja otwierana na tym urządzeniu",icon:"slides"},...u]:u);return(D,e)=>{const y=P("router-link");return o(),i("div",null,[s(b,{eyebrow:"Pozostałe",title:"Więcej"}),t("div",C,[(o(!0),i(w,null,g(d.value,a=>(o(),v(y,{key:a.to,to:a.to,class:"card link"},{default:x(()=>[t("div",B,[t("div",null,[t("h3",null,l(a.label),1),t("span",N,l(a.hint),1)]),s(p,{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",V,[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(p,{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{S as default};

View File

@@ -1 +1 @@
import{d as q,o as L,c as n,i as b,f as y,t as c,j as w,b as s,p as i,F as x,k as O,m as F,r,ap as C,n as l,E as H,ag as Z,Z as A,l as I}from"./index-07rBQy2o.js";import{_ as S}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as G}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{p as T}from"./presentations-DAFjpO5L.js";const J={key:0,class:"notice error",role:"alert"},K={key:1,class:"notice",role:"status"},Q={key:0,class:"stack"},W={class:"small muted",style:{display:"flex","flex-wrap":"wrap","align-items":"center",gap:"8px",margin:"4px 0 0"}},X={key:0,class:"badge online"},Y={key:1,class:"badge"},ee={style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"14px"}},te=["href"],se=["href"],ae={key:1,class:"muted small",style:{margin:"0"}},ne=["onClick"],le={class:"sr-only"},oe={key:1,class:"empty"},re={id:"deck-delete-b",class:"chat-confirm-body"},ie={key:0,class:"error-text",role:"alert"},ue={class:"btn-row chat-confirm-buttons"},ce=["aria-busy","disabled"],de=["disabled"],_e=q({__name:"MyPresentationsView",setup(pe){const g=O(),M=F(),u=r(null),k=r(""),z=r(!1),_=r(""),m=r(null),j=r(null),d=r(null),o=r(!1),p=r("");let f=null;function N(t){const e=Z(t.slide_count,"slajd","slajdy","slajdów");return t.total_seconds===0?e:`${e} · ${Math.round(t.total_seconds/60)} min`}function $(t){return`/moje-prezentacje/${encodeURIComponent(t)}`}async function h(){k.value="";try{u.value=await T.mine()}catch(t){u.value=null,k.value=C(t)}}function B(t,e){d.value=t,p.value="",o.value=!1,f=e.currentTarget instanceof HTMLElement?e.currentTarget:null,m.value?.showModal(),A(()=>j.value?.focus())}function v(){m.value?.close()}function D(t){o.value&&t.preventDefault()}function U(){f?.isConnected&&f.focus(),f=null,d.value=null}function V(t){t.target===m.value&&!o.value&&v()}async function E(){const t=d.value;if(!(!t||o.value)){o.value=!0,p.value="";try{await T.deleteMine(t.slug)}catch(e){o.value=!1,p.value=C(e);return}o.value=!1,u.value=u.value?.filter(e=>e.slug!==t.slug)??null,_.value=`Usunięto prezentację „${t.title}”.`,f=null,v()}}return L(()=>{if(g.query.denied==="1"){z.value=!0;const t={...g.query};delete t.denied,M.replace({name:"my-presentations",query:t})}h()}),(t,e)=>{const P=I("router-link");return l(),n("div",null,[b(S,{eyebrow:"Dla prelegenta",title:"Moje prezentacje"}),z.value?(l(),n("p",J," Nie masz dostępu do tej prezentacji albo taka prezentacja nie istnieje. Poniżej są prezentacje przypisane do Twojego konta. ")):y("",!0),_.value?(l(),n("p",K,c(_.value),1)):y("",!0),b(G,{ready:u.value!==null,error:k.value,onRetry:e[0]||(e[0]=a=>h())},{default:w(()=>[u.value?.length?(l(),n("div",Q,[(l(!0),n(x,null,H(u.value,a=>(l(),n("article",{key:a.slug,class:"card accent"},[s("h3",null,c(a.title),1),s("p",W,[s("span",null,c(N(a)),1),a.is_published?(l(),n("span",X,"Opublikowana")):(l(),n("span",Y,"Nieopublikowana"))]),s("div",ee,[b(P,{class:"btn",to:{name:"presentation-remote",params:{slug:a.slug}}},{default:w(()=>[...e[1]||(e[1]=[i(" Pilot ",-1),s("span",{class:"sr-only"},"(otwórz na telefonie)",-1)])]),_:1},8,["to"]),s("a",{class:"btn primary",href:$(a.slug),target:"_blank",rel:"opener"},[...e[2]||(e[2]=[i(" Otwórz wersję prelegenta ",-1),s("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,te),a.is_published&&a.public_path?(l(),n("a",{key:0,class:"btn",href:a.public_path,target:"_blank",rel:"noopener noreferrer"},[...e[3]||(e[3]=[i(" Otwórz wersję publiczną ",-1),s("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,se)):a.is_published?y("",!0):(l(),n("p",ae,"Link publiczny zacznie działać po opublikowaniu prezentacji.")),s("button",{class:"btn ghost",type:"button",style:{"margin-left":"auto"},onClick:R=>B(a,R)},[e[4]||(e[4]=i(" Usuń ",-1)),s("span",le,"prezentację "+c(a.title),1)],8,ne)])]))),128))])):(l(),n("p",oe,[...e[5]||(e[5]=[s("span",{class:"title",style:{display:"block",color:"var(--ink)"}},"Nie masz jeszcze żadnych prezentacji.",-1),i(" Pojawią się tutaj, gdy administrator przypisze prezentację do Twojego konta. ",-1)])]))]),_:1},8,["ready","error"]),s("dialog",{ref_key:"dialog",ref:m,class:"chat-dialog chat-confirm","aria-labelledby":"deck-delete-h","aria-describedby":"deck-delete-b",onCancel:D,onClose:U,onClick:V},[e[7]||(e[7]=s("h2",{id:"deck-delete-h",class:"chat-dialog-title"},"Usunąć prezentację?",-1)),s("p",re,[i(" „"+c(d.value?.title)+"” zniknie razem ze wszystkimi slajdami i obrazkami",1),d.value?.is_published?(l(),n(x,{key:0},[i(", a link publiczny przestanie działać")],64)):y("",!0),e[6]||(e[6]=i(". Tego nie można cofnąć z aplikacji. ",-1))]),p.value?(l(),n("p",ie,c(p.value),1)):y("",!0),s("div",ue,[s("button",{class:"btn danger",type:"button","aria-busy":o.value?"true":void 0,disabled:o.value,onClick:E},"Usuń prezentację",8,ce),s("button",{ref_key:"keepBtn",ref:j,class:"btn ghost",type:"button",disabled:o.value,onClick:v},"Zostaw",8,de)])],544)])}}});export{_e as default};
import{d as q,o as L,c as n,i as b,f as y,t as c,j as w,b as s,p as i,F as x,k as O,m as F,r,ap as C,n as l,E as H,ag as Z,Z as A,l as I}from"./index-BQ0OOvD0.js";import{_ as S}from"./PageHead.vue_vue_type_script_setup_true_lang-CcI9Zfly.js";import{_ as G}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{p as T}from"./presentations-BnfNxai4.js";const J={key:0,class:"notice error",role:"alert"},K={key:1,class:"notice",role:"status"},Q={key:0,class:"stack"},W={class:"small muted",style:{display:"flex","flex-wrap":"wrap","align-items":"center",gap:"8px",margin:"4px 0 0"}},X={key:0,class:"badge online"},Y={key:1,class:"badge"},ee={style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"14px"}},te=["href"],se=["href"],ae={key:1,class:"muted small",style:{margin:"0"}},ne=["onClick"],le={class:"sr-only"},oe={key:1,class:"empty"},re={id:"deck-delete-b",class:"chat-confirm-body"},ie={key:0,class:"error-text",role:"alert"},ue={class:"btn-row chat-confirm-buttons"},ce=["aria-busy","disabled"],de=["disabled"],_e=q({__name:"MyPresentationsView",setup(pe){const g=O(),M=F(),u=r(null),k=r(""),z=r(!1),_=r(""),m=r(null),j=r(null),d=r(null),o=r(!1),p=r("");let f=null;function N(t){const e=Z(t.slide_count,"slajd","slajdy","slajdów");return t.total_seconds===0?e:`${e} · ${Math.round(t.total_seconds/60)} min`}function $(t){return`/moje-prezentacje/${encodeURIComponent(t)}`}async function h(){k.value="";try{u.value=await T.mine()}catch(t){u.value=null,k.value=C(t)}}function B(t,e){d.value=t,p.value="",o.value=!1,f=e.currentTarget instanceof HTMLElement?e.currentTarget:null,m.value?.showModal(),A(()=>j.value?.focus())}function v(){m.value?.close()}function D(t){o.value&&t.preventDefault()}function U(){f?.isConnected&&f.focus(),f=null,d.value=null}function V(t){t.target===m.value&&!o.value&&v()}async function E(){const t=d.value;if(!(!t||o.value)){o.value=!0,p.value="";try{await T.deleteMine(t.slug)}catch(e){o.value=!1,p.value=C(e);return}o.value=!1,u.value=u.value?.filter(e=>e.slug!==t.slug)??null,_.value=`Usunięto prezentację „${t.title}”.`,f=null,v()}}return L(()=>{if(g.query.denied==="1"){z.value=!0;const t={...g.query};delete t.denied,M.replace({name:"my-presentations",query:t})}h()}),(t,e)=>{const P=I("router-link");return l(),n("div",null,[b(S,{eyebrow:"Dla prelegenta",title:"Moje prezentacje"}),z.value?(l(),n("p",J," Nie masz dostępu do tej prezentacji albo taka prezentacja nie istnieje. Poniżej są prezentacje przypisane do Twojego konta. ")):y("",!0),_.value?(l(),n("p",K,c(_.value),1)):y("",!0),b(G,{ready:u.value!==null,error:k.value,onRetry:e[0]||(e[0]=a=>h())},{default:w(()=>[u.value?.length?(l(),n("div",Q,[(l(!0),n(x,null,H(u.value,a=>(l(),n("article",{key:a.slug,class:"card accent"},[s("h3",null,c(a.title),1),s("p",W,[s("span",null,c(N(a)),1),a.is_published?(l(),n("span",X,"Opublikowana")):(l(),n("span",Y,"Nieopublikowana"))]),s("div",ee,[b(P,{class:"btn",to:{name:"presentation-remote",params:{slug:a.slug}}},{default:w(()=>[...e[1]||(e[1]=[i(" Pilot ",-1),s("span",{class:"sr-only"},"(otwórz na telefonie)",-1)])]),_:1},8,["to"]),s("a",{class:"btn primary",href:$(a.slug),target:"_blank",rel:"opener"},[...e[2]||(e[2]=[i(" Otwórz wersję prelegenta ",-1),s("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,te),a.is_published&&a.public_path?(l(),n("a",{key:0,class:"btn",href:a.public_path,target:"_blank",rel:"noopener noreferrer"},[...e[3]||(e[3]=[i(" Otwórz wersję publiczną ",-1),s("span",{class:"sr-only"},"(otwiera się w nowej karcie)",-1)])],8,se)):a.is_published?y("",!0):(l(),n("p",ae,"Link publiczny zacznie działać po opublikowaniu prezentacji.")),s("button",{class:"btn ghost",type:"button",style:{"margin-left":"auto"},onClick:R=>B(a,R)},[e[4]||(e[4]=i(" Usuń ",-1)),s("span",le,"prezentację "+c(a.title),1)],8,ne)])]))),128))])):(l(),n("p",oe,[...e[5]||(e[5]=[s("span",{class:"title",style:{display:"block",color:"var(--ink)"}},"Nie masz jeszcze żadnych prezentacji.",-1),i(" Pojawią się tutaj, gdy administrator przypisze prezentację do Twojego konta. ",-1)])]))]),_:1},8,["ready","error"]),s("dialog",{ref_key:"dialog",ref:m,class:"chat-dialog chat-confirm","aria-labelledby":"deck-delete-h","aria-describedby":"deck-delete-b",onCancel:D,onClose:U,onClick:V},[e[7]||(e[7]=s("h2",{id:"deck-delete-h",class:"chat-dialog-title"},"Usunąć prezentację?",-1)),s("p",re,[i(" „"+c(d.value?.title)+"” zniknie razem ze wszystkimi slajdami i obrazkami",1),d.value?.is_published?(l(),n(x,{key:0},[i(", a link publiczny przestanie działać")],64)):y("",!0),e[6]||(e[6]=i(". Tego nie można cofnąć z aplikacji. ",-1))]),p.value?(l(),n("p",ie,c(p.value),1)):y("",!0),s("div",ue,[s("button",{class:"btn danger",type:"button","aria-busy":o.value?"true":void 0,disabled:o.value,onClick:E},"Usuń prezentację",8,ce),s("button",{ref_key:"keepBtn",ref:j,class:"btn ghost",type:"button",disabled:o.value,onClick:v},"Zostaw",8,de)])],544)])}}});export{_e as default};

View File

@@ -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-07rBQy2o.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-BQ0OOvD0.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};

View File

@@ -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-07rBQy2o.js";import{s as x,f as z}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{s as x,f as z}from"./forms-BnMfKac0.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};

View File

@@ -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-07rBQy2o.js";import{s as F,f as I}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{s as F,f as I}from"./forms-BnMfKac0.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};

View File

@@ -1 +1 @@
import{d as r,c as s,t as a,f as c,b as t,aV as d,n as o}from"./index-07rBQy2o.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,aV as d,n as o}from"./index-BQ0OOvD0.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 _};

View File

@@ -1 +1 @@
import{d as h,U as k,o as b,b7 as g,s as w,r as u,n as _,A as l}from"./index-07rBQy2o.js";import{p as y}from"./presentations-DAFjpO5L.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-mptuvXN5.js";import"./engine-DDeQk6Ow.js";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°",B=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{B as default};
import{d as h,U as k,o as b,b7 as g,s as w,r as u,n as _,A as l}from"./index-BQ0OOvD0.js";import{p as y}from"./presentations-BnfNxai4.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-B48gtrEe.js";import"./engine-DDeQk6Ow.js";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°",B=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{B as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as g}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as j}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{q as z,_ as w}from"./quizzes-2SLstx_U.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-07rBQy2o.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-CcI9Zfly.js";import{_ as j}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{q as z,_ as w}from"./quizzes-eHOa_cTO.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-BQ0OOvD0.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};

View File

@@ -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-07rBQy2o.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-BQ0OOvD0.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 _};

View File

@@ -1 +1 @@
import{_ as $}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-RALZBY22.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CrwnSuEl.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-D0MqMS02.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-07rBQy2o.js";import{u as D}from"./scrollToHash-Jv7tcotj.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-CcI9Zfly.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-B8PNtAA0.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-oZbSwP81.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-DpRxESUk.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-BQ0OOvD0.js";import{u as D}from"./scrollToHash-CNgVaDEG.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};

View File

@@ -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-07rBQy2o.js";import{f as I}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{f as I}from"./forms-BnMfKac0.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};

View File

@@ -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-07rBQy2o.js";import{f as C}from"./forms-Cij5X_hb.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-BQ0OOvD0.js";import{f as C}from"./forms-BnMfKac0.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};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as c}from"./PageHead.vue_vue_type_script_setup_true_lang-CyicA48G.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-07rBQy2o.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-CcI9Zfly.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-BQ0OOvD0.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};

View File

@@ -1 +1 @@
import{A as o}from"./index-07rBQy2o.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-BQ0OOvD0.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};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{T as o}from"./index-07rBQy2o.js";const u=/^[a-z0-9-]{1,100}$/,g=/^[1-9]\d*$/,l=/^\d+$/;function p(e){const t=e.trim(),n=[...t].length;return n>=2&&n<=100?t:""}function a(e){const t=Array.isArray(e)?e[0]:e;return typeof t=="string"?t:""}function i(e){if(!g.test(e))return null;const t=Number(e);return Number.isSafeInteger(t)?t:null}function h(e){const t=a(e.type),n=a(e.tag),r=a(e.page),s=l.test(r)?Number(r):0;return{q:p(a(e.q)),course:i(a(e.course)),type:Object.hasOwn(o,t)?t:"",meeting:i(a(e.meeting)),tag:u.test(n)?n:"",page:Number.isSafeInteger(s)&&s>=1?s:1}}function c(e){const t={};return e.q&&(t.q=e.q),e.course!==null&&(t.course=String(e.course)),e.type&&(t.type=e.type),e.meeting!==null&&(t.meeting=String(e.meeting)),e.tag&&(t.tag=e.tag),e.page>1&&(t.page=String(e.page)),t}function S(e,t){return e.q===t.q&&e.course===t.course&&e.type===t.type&&e.meeting===t.meeting&&e.tag===t.tag&&e.page===t.page}function d(e){const t=c(e);return new URLSearchParams(Object.keys(t).sort().map(n=>[n,t[n]])).toString()}function w(e,t){const n=c(t),r=Object.keys(e);return r.length!==Object.keys(n).length?!1:r.every(s=>typeof e[s]=="string"&&e[s]===n[s])}function M(e,t){if(typeof e!="string"||!e)return!1;try{return t(e)==="materials"}catch{return!1}}function m(e){const t=new Map;return{get:n=>t.get(n),set(n,r){for(t.delete(n),t.set(n,r);t.size>e;)t.delete(t.keys().next().value)},clear(){t.clear()},get size(){return t.size}}}const f=m(20);function z(){f.clear()}export{d as a,M as b,z as c,w as i,f as m,p as n,h as r,S as s,c as w};
import{T as o}from"./index-BQ0OOvD0.js";const u=/^[a-z0-9-]{1,100}$/,g=/^[1-9]\d*$/,l=/^\d+$/;function p(e){const t=e.trim(),n=[...t].length;return n>=2&&n<=100?t:""}function a(e){const t=Array.isArray(e)?e[0]:e;return typeof t=="string"?t:""}function i(e){if(!g.test(e))return null;const t=Number(e);return Number.isSafeInteger(t)?t:null}function h(e){const t=a(e.type),n=a(e.tag),r=a(e.page),s=l.test(r)?Number(r):0;return{q:p(a(e.q)),course:i(a(e.course)),type:Object.hasOwn(o,t)?t:"",meeting:i(a(e.meeting)),tag:u.test(n)?n:"",page:Number.isSafeInteger(s)&&s>=1?s:1}}function c(e){const t={};return e.q&&(t.q=e.q),e.course!==null&&(t.course=String(e.course)),e.type&&(t.type=e.type),e.meeting!==null&&(t.meeting=String(e.meeting)),e.tag&&(t.tag=e.tag),e.page>1&&(t.page=String(e.page)),t}function S(e,t){return e.q===t.q&&e.course===t.course&&e.type===t.type&&e.meeting===t.meeting&&e.tag===t.tag&&e.page===t.page}function d(e){const t=c(e);return new URLSearchParams(Object.keys(t).sort().map(n=>[n,t[n]])).toString()}function w(e,t){const n=c(t),r=Object.keys(e);return r.length!==Object.keys(n).length?!1:r.every(s=>typeof e[s]=="string"&&e[s]===n[s])}function M(e,t){if(typeof e!="string"||!e)return!1;try{return t(e)==="materials"}catch{return!1}}function m(e){const t=new Map;return{get:n=>t.get(n),set(n,r){for(t.delete(n),t.set(n,r);t.size>e;)t.delete(t.keys().next().value)},clear(){t.clear()},get size(){return t.size}}}const f=m(20);function z(){f.clear()}export{d as a,M as b,z as c,w as i,f as m,p as n,h as r,S as s,c as w};

View File

@@ -0,0 +1 @@
function o(i){return i?"Odepnij":"Przypnij"}function c(i){const e=new Set;async function r(n){if(e.has(n.id))return;const t=!n.pinned;n.pinned=t,e.add(n.id);try{await(t?i.pin(n.id):i.unpin(n.id)),i.onSaved()}catch(a){n.pinned=!t,i.onError(a)}finally{e.delete(n.id)}}return{toggle:r}}export{c,o as p};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{bh as i,b0 as o}from"./index-07rBQy2o.js";const m="X-Cast-Ticket",t="/_presentations/api/v1",p={publicDeck:e=>o.request(`${t}/public/${encodeURIComponent(e)}`,{auth:!1}),mine:()=>o.request(`${t}/mine`),speaker:e=>o.request(`${t}/mine/${encodeURIComponent(e)}`),deleteMine:e=>o.request(`${t}/mine/${encodeURIComponent(e)}`,{method:"DELETE"}),speakerImage:(e,n)=>o.blob(`${t}/mine/${encodeURIComponent(e)}/images/${encodeURIComponent(n)}`),remote:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/remote`,{method:"POST",body:n}),castMint:e=>o.request(`${t}/mine/${encodeURIComponent(e)}/cast`,{method:"POST"}),castRevoke:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/cast`,{method:"DELETE",headers:{[m]:n}}),remoteState:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",body:n}),remoteStateBeacon(e,n){const a={Accept:"application/json","Content-Type":"application/json"},c=i.get();c&&(a.Authorization=`Bearer ${c}`);try{fetch(`${t}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",headers:a,body:JSON.stringify(n),keepalive:!0}).catch(()=>{})}catch{}}};function s(e){return{auth:!1,headers:{[m]:e}}}const d={deck:e=>o.request(`${t}/cast/deck`,s(e)),image:(e,n)=>o.blob(`${t}/cast/images/${encodeURIComponent(n)}`,s(e)),realtime:e=>o.request(`${t}/cast/realtime`,s(e))};export{d as c,p};
import{bh as i,b0 as o}from"./index-BQ0OOvD0.js";const m="X-Cast-Ticket",t="/_presentations/api/v1",p={publicDeck:e=>o.request(`${t}/public/${encodeURIComponent(e)}`,{auth:!1}),mine:()=>o.request(`${t}/mine`),speaker:e=>o.request(`${t}/mine/${encodeURIComponent(e)}`),deleteMine:e=>o.request(`${t}/mine/${encodeURIComponent(e)}`,{method:"DELETE"}),speakerImage:(e,n)=>o.blob(`${t}/mine/${encodeURIComponent(e)}/images/${encodeURIComponent(n)}`),remote:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/remote`,{method:"POST",body:n}),castMint:e=>o.request(`${t}/mine/${encodeURIComponent(e)}/cast`,{method:"POST"}),castRevoke:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/cast`,{method:"DELETE",headers:{[m]:n}}),remoteState:(e,n)=>o.request(`${t}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",body:n}),remoteStateBeacon(e,n){const a={Accept:"application/json","Content-Type":"application/json"},c=i.get();c&&(a.Authorization=`Bearer ${c}`);try{fetch(`${t}/mine/${encodeURIComponent(e)}/remote/state`,{method:"POST",headers:a,body:JSON.stringify(n),keepalive:!0}).catch(()=>{})}catch{}}};function s(e){return{auth:!1,headers:{[m]:e}}}const d={deck:e=>o.request(`${t}/cast/deck`,s(e)),image:(e,n)=>o.blob(`${t}/cast/images/${encodeURIComponent(n)}`,s(e)),realtime:e=>o.request(`${t}/cast/realtime`,s(e))};export{d as c,p};

View File

@@ -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,b0 as r}from"./index-07rBQy2o.js";const y={class:"rows"},$={class:"row-main"},k={class:"title"},w=["aria-label"],b={key:1,class:"badge"},f={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",b,"niezakończona"))]),l("div",f,[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,b0 as r}from"./index-BQ0OOvD0.js";const y={class:"rows"},$={class:"row-main"},k={class:"title"},w=["aria-label"],b={key:1,class:"badge"},f={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",b,"niezakończona"))]),l("div",f,[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};

View File

@@ -1 +1 @@
import{U as i,k as d,Z as u,aq as m}from"./index-07rBQy2o.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-BQ0OOvD0.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};

View File

@@ -35,8 +35,8 @@
document.write('<script id="bm-caf" src="https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"><\/script>')
}
</script>
<script type="module" crossorigin src="/assets/index-07rBQy2o.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C302nIKf.css">
<script type="module" crossorigin src="/assets/index-BQ0OOvD0.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-CnupAFvb.css">
</head>
<body>
<div id="app"></div>

View File

@@ -1,4 +1,4 @@
const BUILD = '97ac1807e5c1'
const BUILD = '8f33f05712ab'
// 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.