diff --git a/public/assets/CastReceiverView-oqPPp8eq.js b/public/assets/CastReceiverView-CkfJy-8z.js similarity index 98% rename from public/assets/CastReceiverView-oqPPp8eq.js rename to public/assets/CastReceiverView-CkfJy-8z.js index f5a6737..b4ab07e 100644 --- a/public/assets/CastReceiverView-oqPPp8eq.js +++ b/public/assets/CastReceiverView-CkfJy-8z.js @@ -1 +1 @@ -import"./engine-DDeQk6Ow.js";import{c as Ee}from"./presentations-BgohxBTm.js";import{_ as Se}from"./DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js";import{A as Q,d as Me,o as Re,b7 as _e,bb as ie,c as W,s as Ce,f as ne,b as Y,F as Te,r as J,bc as se,n as P,ba as Ae,bd as Le,Z as Ne}from"./index-CZVUqkdk.js";import{C as re,f as ue,a as Pe,c as De,r as Ie,b as Fe}from"./log-Xlt5jeld.js";import{b as Oe,R as je}from"./remote-aOKX75Mt.js";const Be=/^U\+(0-FF|100-2BA)\b/i;function We(e){return e.status==="unloaded"&&Be.test(e.unicodeRange.trim())}async function ze(e){const o=[...e].filter(We);return await Promise.allSettled(o.map(r=>r.load())),o.length}async function Ue(e,o){const r=e.filter(l=>l.classList.contains("on"));try{for(const l of e){for(const c of e)c.classList.toggle("on",c===l);l.offsetHeight,await o()}}finally{for(const l of e)l.classList.toggle("on",r.includes(l))}return e.length}async function $e(e,o,r=50){const l=Date.now()+o;for(;;){if(e())return!0;if(Date.now()>=l)return!1;await new Promise(c=>setTimeout(c,r))}}function fe(){return{raf:e=>requestAnimationFrame(()=>e()),cancelRaf:e=>cancelAnimationFrame(e),setTimeout:(e,o)=>window.setTimeout(e,o),clearTimeout:e=>window.clearTimeout(e),now:()=>performance.now()}}async function qe(e,o=fe()){return(await de(Number.POSITIVE_INFINITY,e,o)).frames}function de(e,o,r=fe()){return new Promise(l=>{const c=r.now();let h=0,g=0,f=0,y=!1;const d=s=>{y||(y=!0,r.cancelRaf(g),r.clearTimeout(f),l({frames:h,ms:Math.round(r.now()-c),ok:s}))},v=()=>{y||(h++,h>=e?d(!0):g=r.raf(v))};f=r.setTimeout(()=>d(!1),o),g=r.raf(v)})}const Ge="https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js",ce="bm-caf",me=["READY","SENDER_CONNECTED","SENDER_DISCONNECTED","SHUTDOWN","VISIBILITY_CHANGED","STANDBY_CHANGED","ERROR"],Ke=540*1e3,Ve="/icons/icon-96.png";function z(){const o=globalThis.cast?.framework;return o&&typeof o.CastReceiverContext?.getInstance=="function"?o:null}function He(){return z()!==null}function xe(e=1e4){return z()?Promise.resolve(!0):new Promise(o=>{let r=document.getElementById(ce);r||(r=document.createElement("script"),r.id=ce,r.src=Ge,document.head.appendChild(r));const l=r;let c=!1;const h=v=>{c||(c=!0,window.clearInterval(y),window.clearTimeout(d),l.removeEventListener("load",g),l.removeEventListener("error",f),o(v))},g=()=>h(z()!==null),f=()=>h(!1);l.addEventListener("load",g),l.addEventListener("error",f);const y=window.setInterval(()=>{z()&&h(!0)},50),d=window.setTimeout(()=>h(z()!==null),e)})}function Ye(e,o,r){const l=e.messages,c=o.getPlayerManager?.();if(!l||!c)return()=>r("keep-awake-failed",{error:"no player manager"});const h=document.createElement("cast-media-player");h.style.display="none",document.body.append(h);const g=()=>{for(const v of document.body.querySelectorAll("touch-controls"))v.style.display!=="none"&&(v.style.display="none")};new MutationObserver(g).observe(document.body,{childList:!0,subtree:!0});const f=e.events?.EventType?.ERROR;f!==void 0&&c.addEventListener&&c.addEventListener(f,v=>{const s=v.error;r("keep-awake-error",{detailedErrorCode:v.detailedErrorCode??null,reason:v.reason??null,error:s?.message??(s?String(s):null)})});let y=0;const d=()=>{try{const v=new l.LoadRequestData;v.autoplay=!0;const s=new l.MediaInformation;s.contentId=new URL(Ve,location.origin).href,s.contentType="image/png",s.streamType=l.StreamType.NONE;const E=new l.GenericMediaMetadata;E.title="BM · prezentacja",s.metadata=E,v.media=s,v.requestId=0,y++,Promise.resolve(c.load(v)).then(()=>r("keep-awake",{count:y}),b=>{const k=b;r("keep-awake-failed",{count:y,error:String(k?.type??b),reason:k?.reason??null,detailedErrorCode:k?.detailedErrorCode??null})})}catch(v){r("keep-awake-failed",{count:y,error:v instanceof Error?v.message:String(v)})}};return()=>{d(),window.setInterval(d,Ke)}}function Je(e){const o=z();if(!o)throw new Error("cast: the receiver SDK is not loaded");const r=o.CastReceiverContext.getInstance(),l=()=>{try{return r.getSenders().length}catch{return 0}},c=new o.CastReceiverOptions;c.customNamespaces={[re]:o.system.MessageType.JSON},c.disableIdleTimeout=!0,c.maxInactivity=3600,c.statusText=e.statusText;for(const f of me){const y=o.system.EventType[f];y!==void 0&&r.addEventListener(y,d=>{e.onEvent(f,{reason:d?.reason,senderId:d?.senderId,isVisible:d?.isVisible,isStandby:d?.isStandby,senders:l()})})}r.addCustomMessageListener(re,f=>e.onMessage(f?.data,f?.senderId));const h=Ye(o,r,e.onEvent),g=o.system.EventType.READY;if(g!==void 0){let f=!1;r.addEventListener(g,()=>{f||(f=!0,h())})}return r.start(c),{send(f,y){if(!ue(f))return e.onEvent("send-dropped",{type:f.type}),!1;try{return r.sendCustomMessage(re,y,f),!0}catch(d){return e.onEvent("send-failed",{type:f.type,error:d instanceof Error?d.message:String(d)}),!1}},senders:l,setStatusText(f){try{r.setApplicationState(f)}catch{}},deviceCapabilities(){try{return r.getDeviceCapabilities?.()??null}catch{return null}}}}const Ze=2e3,Qe=5e3,Xe=/data-deck-image="([^"]+)"/g;function et(e){const o=new Set,r=c=>{if(c)for(const h of c.matchAll(Xe))o.add(h[1])},l=c=>{r(c.body_html),r(c.comment_html),r(c.sources_html),c.special&&l(c.special)};for(const c of e.slides??[])l(c);return[...o]}function K(e){return e instanceof Q?e.status:0}function Z(e){return e instanceof Q?`${e.status} ${e.message}`:e instanceof Error?e.message:String(e)}function tt(e){const o=e.now??(()=>Date.now());let r=null,l=null,c=null,h=null,g="waiting",f="off",y="",d=0,v=-1/0,s=!1,E,b,k=-1/0,S=null,U=!1,T=[],D="",$=0,V=0,H=0;function A(){const t=e.view.current();return{type:"status",phase:g,ws:f,number:t?.number??0,special:t?.special??!1,title:y}}function I(){return E??b}function x(){const t=I();t!==void 0&&e.send(A(),t)}function F(){const t=A();e.onStatus?.(t);const n=I();n!==void 0&&e.send(t,n)}function q(t){g!==t&&(g=t,e.log("phase",t),F())}function O(t){if(f===t)return;const n=f;n==="connected"&&t==="connecting"&&H++,f=t,e.log("ws",`${n} -> ${t}`),F()}function j(t){const n=o();n-v(await G("connection")).token,subscription:async t=>{const n=await G("subscription");if(n.channel!==t)throw e.log("token","subscription channel mismatch"),new Q(403,"cast: channel mismatch");return n.channel_token}})}function i(t=T){for(const n of t)e.revokeURL(n);t===T&&(T=[])}async function u(t,n,a){const m={};return await Promise.all(et(t).map(async w=>{try{const N=await B("image",R=>e.api.image(R,w),n);if(a!==d||s)return;const C=e.objectURL(N);T.push(C),m[w]=C}catch(N){e.log("image","image skipped",{name:w,status:K(N)})}})),m}function p(){h?.close(),h=null}function M(t){const n=()=>t===d&&!s;return{onPublication(a){if(!n())return;const m=Oe(a);if(!m||m.event!==je)return;const w=m.payload;if(w.tab!==l){V++,e.log("foreign","state from another tab",{tab:w.tab});return}$++,e.view.show(w.number,w.special,w.panel==="notes"||w.panel==="srcs"?w.panel:null),e.log("state","applied",{number:w.number,special:w.special})},onSubscribed(){n()&&(e.log("ws","subscribed"),g==="ready"&&F())},onConnection(a){n()&&O(a)},onDenied(a){n()&&(e.log("ws","subscription denied",{code:a}),a===401&&j("subscription denied"))},onUnavailable(){n()&&(O("off"),j("realtime unavailable"))}}}async function _(t,n){const a=await e.realtime.openChannel(n,M(t));if(t!==d||s){a.close();return}h=a}async function L(t,n){const a=++d,m=r,w=o();p(),e.realtime.disconnect(),c=null,D="",q("loading");const N=T;T=[];let C;try{if(C=n??await B("deck",e.api.deck,m),a!==d||s)return;y=C.title??"";const R=o(),oe=await u(C,m??"",a);if(a!==d||s)return;const ae=o();if(await e.view.load(C,oe),a!==d||s)return;D=JSON.stringify(C),e.log("perf","deck up",{fetchMs:Math.round(R-w),imagesMs:Math.round(ae-R),images:Object.keys(oe).length,loadMs:Math.round(o()-ae),totalMs:Math.round(o()-w),slides:C.slides?.length??0})}catch(R){if(a!==d||s)return;e.log("error","deck load failed",{error:Z(R)}),q("error");return}finally{i(N)}try{X();const R=t??await B("realtime",e.api.realtime,m);if(a!==d||s)return;c=R.channel,await _(a,R.channel)}catch(R){if(a!==d||s)return;e.log("error","channel join failed",{error:Z(R)}),O("off")}a!==d||s||q("ready")}async function ee(){if(!c)return;const t=d;p(),e.realtime.disconnect();try{await _(t,c)}catch(n){e.log("error","channel reopen failed",{error:Z(n)})}}async function te(t,n,a){if(!r){r=t,l=n,b=a,e.log("ticket","first hello",{tab:n}),await L(),r===t&&g==="ready"&&(E=a);return}if(t===r){if(l!==n&&e.log("tab","casting tab switched",{tab:n}),l=n,E=a,g==="error"||g==="ready"&&!h){await L();return}e.send(A(),a);return}let m;try{m=await e.api.realtime(t)}catch(w){e.log("ticket","refused",{status:K(w)}),e.send({...A(),title:""},a);return}if(!s){if(r=t,l=n,E=a,b=a,v=-1/0,c&&m.channel===c&&g==="ready"){let w=null;try{w=await e.api.deck(t)}catch(N){e.log("ticket","deck check failed",{status:K(N)})}if(s)return;if(w&&JSON.stringify(w)!==D){e.log("ticket","deck changed",{tab:n}),await L(m,w);return}if(e.log("ticket","swapped",{tab:n}),await ee(),s)return;e.send(A(),a);return}e.log("ticket","new deck",{tab:n}),await L(m)}}function we(t){const n=e.report?.()??{summary:null,device:null,events:[],previousRun:[]},a=De(JSON.stringify(Ie(n)));e.log("log","sending",{parts:a.length,senderId:t});for(const m of a){if(!ue(m)){e.log("log","part dropped",{part:m.part});continue}e.send(m,t)}}function ge(t){const n=e.view.current();e.send({type:"position",number:n?.number??0,special:n?.special??!1},t)}async function pe(t,n){if(s)return;const a=Pe(t);if(!a){e.log("foreign","unknown message",{senderId:n});return}if(e.log("rx",a.type,{senderId:n}),a.type==="where"){ge(n);return}if(a.type==="log"){if(n===void 0||n!==I()){e.log("foreign","log request refused",{senderId:n});return}we(n);return}const m=E!==void 0&&n===E||a.ticket===r;if(!m&&E!==void 0){if(o(){if(S){if(S.trusted&&!m){e.log("foreign","hello dropped behind a trusted one",{senderId:a}),w();return}e.log("rx","hello superseded",{senderId:S.senderId}),S.settle()}S={ticket:t,tab:n,senderId:a,trusted:m,settle:w},U||he()})}async function he(){U=!0;try{for(;S&&!s;){const t=S;S=null;try{await te(t.ticket,t.tab,t.senderId)}catch(n){e.log("error","hello failed",{error:Z(n)})}finally{t.settle()}}}finally{U=!1,S?.settle(),S=null}}function ye(t){t!==void 0&&t===b&&(b=void 0),!(t===void 0||t!==E)&&(E=void 0,e.log("rx","pinned sender left",{senderId:t}))}function ke(){s=!0,d++,p(),e.realtime.setTokenSource(null),i()}function be(){return{ws:f,applied:$,foreign:V,reconnects:H}}return{handle:pe,senderLeft:ye,status:A,announce:x,stats:be,close:ke}}const nt={key:1,class:"cast-screen cast-cover",role:"status"},rt={key:2,class:"cast-screen"},ot={key:0,class:"cast-hint"},at={key:3,class:"cast-screen"},it={key:4,class:"cast-screen"},st=6e4,le=1e3,wt=Me({__name:"CastReceiverView",setup(e){const o=J("boot"),r=se(null),l=se({}),c=J("pending"),h=J(null),g=J(!1);let f=null,y=null,d=0;const v=new Set(me),s=Fe("bm.cast.log"),E=Date.now();let b={};function k(i,u,p){s.note(i,u,p),i==="error"&&s.persist()}function S(){const i=performance.memory;return i?Math.round(i.usedJSHeapSize/1048576):null}function U(){const i=navigator;return{ua:navigator.userAgent,screen:`${window.screen.width}x${window.screen.height}`,viewport:`${window.innerWidth}x${window.innerHeight}`,dpr:window.devicePixelRatio,cores:navigator.hardwareConcurrency,memoryGB:i.deviceMemory??null}}function T(i,u){if(!v.has(i)){k(i.startsWith("keep-awake")?"awake":"send",i,u),i.startsWith("keep-awake-")&&s.persist();return}i==="READY"&&f?(b={...b,capabilities:f.deviceCapabilities()},k("caf",i,{...u,capabilities:b.capabilities})):k("caf",i,u),i==="SENDER_DISCONNECTED"&&typeof u?.senderId=="string"&&y?.senderLeft(u.senderId),s.persist()}function D(){return"serviceWorker"in navigator&&navigator.serviceWorker.controller!==null}function $(){return{screen:o.value,covered:g.value,coverInDom:document.querySelector(".cast-cover")!==null,visibility:document.visibilityState,focus:document.hasFocus(),sw:D()}}async function V(){const i=await qe(le),u=y?.stats();k("beat","heartbeat",{uptimeMin:+((Date.now()-E)/6e4).toFixed(1),ws:u?.ws??"off",applied:u?.applied??0,foreign:u?.foreign??0,reconnects:u?.reconnects??0,heapMB:S(),frames:i,frameSampleMs:le,...$()}),s.persist(),y?.announce()}async function H(){const i=await de(3,3e3);k("paint",i.ok?"frames after the cover":"no frames after the cover",{...i,...$()}),s.persist()}async function A(){if(!("serviceWorker"in navigator))return;const i=navigator.serviceWorker;try{const u=await i.getRegistrations(),p=i.controller!==null;if(u.length===0&&!p)return;const M=await Promise.all(u.map(_=>_.unregister().catch(()=>!1)));k("boot","service worker unregistered",{controlled:p,scopes:u.map(_=>_.scope),unregistered:M.filter(Boolean).length})}catch(u){k("boot","service worker check failed",String(u))}s.persist()}function I(i){k("error","window error",{message:String(i.message),source:i.filename,line:i.lineno})}function x(i){const u=i.reason instanceof Error?i.reason.message:String(i.reason);k("error","unhandled rejection",{reason:u})}function F(){k("boot","pagehide"),s.persist()}function q(i){return new Promise(u=>window.setTimeout(u,i))}function O(){return new Promise(i=>requestAnimationFrame(()=>i()))}function j(){return h.value?.sections()??[]}async function B(i,u){g.value=!0;const p=performance.now();try{r.value=i,l.value=u,c.value="ready",o.value="deck",await Ne(),await $e(()=>j().some(te=>te.classList.contains("on")),2e4)||k("error","the first slide did not show in 20 s"),await document.fonts.ready,await q(50);const M=performance.now(),_=await ze(document.fonts),L=performance.now(),ee=await Ue(j(),O);await O(),k("perf","warm-up",{stageMs:Math.round(M-p),faces:_,warmMs:Math.round(L-M),sections:ee,prerenderMs:Math.round(performance.now()-L),totalMs:Math.round(performance.now()-p)})}finally{g.value=!1,H()}}let G=null;function X(i){i.phase!==G&&(G=i.phase,i.phase==="loading"?g.value=!0:i.phase==="error"?(g.value=!1,o.value="error"):i.phase==="ready"&&r.value&&(g.value=!1,o.value="deck"))}return Re(async()=>{b=U();const i=s.previous[s.previous.length-1];if(k("boot","receiver loaded",{...b,cafAtBoot:He(),sw:D(),previousRunEvents:s.previous.length,lastPrevious:i??null}),s.persist(),A(),window.addEventListener("error",I),window.addEventListener("unhandledrejection",x),window.addEventListener("pagehide",F),d=window.setInterval(()=>{V()},st),document.documentElement.classList.add("deck-public"),!document.querySelector('meta[data-deck-public="1"]')){const p=document.createElement("meta");p.name="robots",p.content="noindex",p.dataset.deckPublic="1",document.head.appendChild(p)}if(!await xe()){o.value="unsupported",k("boot","no CAF SDK");return}o.value="waiting",y=tt({api:Ee,realtime:{setTokenSource:Le,openChannel:Ae,disconnect:ie},view:{load:B,show:(p,M,_)=>{h.value?.showSlide(p,M,_)},current:()=>h.value?.current()??null},send:(p,M)=>{f?.send(p,M)},log:k,objectURL:p=>URL.createObjectURL(p),revokeURL:p=>URL.revokeObjectURL(p),onStatus:X,report:()=>({summary:s.summary(),device:b,events:s.events,previousRun:s.previous})});const u=y;try{f=Je({statusText:"BM · prezentacja",onMessage:(p,M)=>{u.handle(p,M)},onEvent:T}),k("caf","started")}catch(p){k("error","receiver start failed",String(p)),o.value="unsupported"}}),_e(()=>{window.clearInterval(d),window.removeEventListener("error",I),window.removeEventListener("unhandledrejection",x),window.removeEventListener("pagehide",F),s.persist(),y?.close(),ie(),document.documentElement.classList.remove("deck-public"),document.querySelector('meta[data-deck-public="1"]')?.remove()}),(i,u)=>(P(),W(Te,null,[r.value?(P(),Ce(Se,{key:0,ref_key:"viewer",ref:h,phase:c.value,deck:r.value,error:"",mode:"public","no-toolbar":"","extra-css":r.value.css,theme:r.value.theme,images:l.value},null,8,["phase","deck","extra-css","theme","images"])):ne("",!0),g.value?(P(),W("div",nt,[...u[0]||(u[0]=[Y("p",null,"Przygotowuję slajdy…",-1)])])):o.value==="boot"||o.value==="waiting"?(P(),W("div",rt,[u[1]||(u[1]=Y("p",null,"BM · czekam na pilota…",-1)),o.value==="waiting"?(P(),W("p",ot,"Na telefonie otwórz pilota prezentacji i wybierz Wyświetl na TV.")):ne("",!0)])):o.value==="unsupported"?(P(),W("div",at,[...u[2]||(u[2]=[Y("p",null,"Ta strona działa tylko na urządzeniu Google Cast.",-1)])])):o.value==="error"?(P(),W("div",it,[...u[3]||(u[3]=[Y("p",null,"Nie mogę wczytać prezentacji. Połącz ponownie z telefonu.",-1)])])):ne("",!0)],64))}});export{wt as default}; +import"./engine-DDeQk6Ow.js";import{c as Ee}from"./presentations-CZ3vmyJx.js";import{_ as Se}from"./DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js";import{A as Q,d as Me,o as Re,b7 as _e,bb as ie,c as W,s as Ce,f as ne,b as Y,F as Te,r as J,bc as se,n as P,ba as Ae,bd as Le,Z as Ne}from"./index-DyD9x5ZD.js";import{C as re,f as ue,a as Pe,c as De,r as Ie,b as Fe}from"./log-Xlt5jeld.js";import{b as Oe,R as je}from"./remote-aOKX75Mt.js";const Be=/^U\+(0-FF|100-2BA)\b/i;function We(e){return e.status==="unloaded"&&Be.test(e.unicodeRange.trim())}async function ze(e){const o=[...e].filter(We);return await Promise.allSettled(o.map(r=>r.load())),o.length}async function Ue(e,o){const r=e.filter(l=>l.classList.contains("on"));try{for(const l of e){for(const c of e)c.classList.toggle("on",c===l);l.offsetHeight,await o()}}finally{for(const l of e)l.classList.toggle("on",r.includes(l))}return e.length}async function $e(e,o,r=50){const l=Date.now()+o;for(;;){if(e())return!0;if(Date.now()>=l)return!1;await new Promise(c=>setTimeout(c,r))}}function fe(){return{raf:e=>requestAnimationFrame(()=>e()),cancelRaf:e=>cancelAnimationFrame(e),setTimeout:(e,o)=>window.setTimeout(e,o),clearTimeout:e=>window.clearTimeout(e),now:()=>performance.now()}}async function qe(e,o=fe()){return(await de(Number.POSITIVE_INFINITY,e,o)).frames}function de(e,o,r=fe()){return new Promise(l=>{const c=r.now();let h=0,g=0,f=0,y=!1;const d=s=>{y||(y=!0,r.cancelRaf(g),r.clearTimeout(f),l({frames:h,ms:Math.round(r.now()-c),ok:s}))},v=()=>{y||(h++,h>=e?d(!0):g=r.raf(v))};f=r.setTimeout(()=>d(!1),o),g=r.raf(v)})}const Ge="https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js",ce="bm-caf",me=["READY","SENDER_CONNECTED","SENDER_DISCONNECTED","SHUTDOWN","VISIBILITY_CHANGED","STANDBY_CHANGED","ERROR"],Ke=540*1e3,Ve="/icons/icon-96.png";function z(){const o=globalThis.cast?.framework;return o&&typeof o.CastReceiverContext?.getInstance=="function"?o:null}function He(){return z()!==null}function xe(e=1e4){return z()?Promise.resolve(!0):new Promise(o=>{let r=document.getElementById(ce);r||(r=document.createElement("script"),r.id=ce,r.src=Ge,document.head.appendChild(r));const l=r;let c=!1;const h=v=>{c||(c=!0,window.clearInterval(y),window.clearTimeout(d),l.removeEventListener("load",g),l.removeEventListener("error",f),o(v))},g=()=>h(z()!==null),f=()=>h(!1);l.addEventListener("load",g),l.addEventListener("error",f);const y=window.setInterval(()=>{z()&&h(!0)},50),d=window.setTimeout(()=>h(z()!==null),e)})}function Ye(e,o,r){const l=e.messages,c=o.getPlayerManager?.();if(!l||!c)return()=>r("keep-awake-failed",{error:"no player manager"});const h=document.createElement("cast-media-player");h.style.display="none",document.body.append(h);const g=()=>{for(const v of document.body.querySelectorAll("touch-controls"))v.style.display!=="none"&&(v.style.display="none")};new MutationObserver(g).observe(document.body,{childList:!0,subtree:!0});const f=e.events?.EventType?.ERROR;f!==void 0&&c.addEventListener&&c.addEventListener(f,v=>{const s=v.error;r("keep-awake-error",{detailedErrorCode:v.detailedErrorCode??null,reason:v.reason??null,error:s?.message??(s?String(s):null)})});let y=0;const d=()=>{try{const v=new l.LoadRequestData;v.autoplay=!0;const s=new l.MediaInformation;s.contentId=new URL(Ve,location.origin).href,s.contentType="image/png",s.streamType=l.StreamType.NONE;const E=new l.GenericMediaMetadata;E.title="BM · prezentacja",s.metadata=E,v.media=s,v.requestId=0,y++,Promise.resolve(c.load(v)).then(()=>r("keep-awake",{count:y}),b=>{const k=b;r("keep-awake-failed",{count:y,error:String(k?.type??b),reason:k?.reason??null,detailedErrorCode:k?.detailedErrorCode??null})})}catch(v){r("keep-awake-failed",{count:y,error:v instanceof Error?v.message:String(v)})}};return()=>{d(),window.setInterval(d,Ke)}}function Je(e){const o=z();if(!o)throw new Error("cast: the receiver SDK is not loaded");const r=o.CastReceiverContext.getInstance(),l=()=>{try{return r.getSenders().length}catch{return 0}},c=new o.CastReceiverOptions;c.customNamespaces={[re]:o.system.MessageType.JSON},c.disableIdleTimeout=!0,c.maxInactivity=3600,c.statusText=e.statusText;for(const f of me){const y=o.system.EventType[f];y!==void 0&&r.addEventListener(y,d=>{e.onEvent(f,{reason:d?.reason,senderId:d?.senderId,isVisible:d?.isVisible,isStandby:d?.isStandby,senders:l()})})}r.addCustomMessageListener(re,f=>e.onMessage(f?.data,f?.senderId));const h=Ye(o,r,e.onEvent),g=o.system.EventType.READY;if(g!==void 0){let f=!1;r.addEventListener(g,()=>{f||(f=!0,h())})}return r.start(c),{send(f,y){if(!ue(f))return e.onEvent("send-dropped",{type:f.type}),!1;try{return r.sendCustomMessage(re,y,f),!0}catch(d){return e.onEvent("send-failed",{type:f.type,error:d instanceof Error?d.message:String(d)}),!1}},senders:l,setStatusText(f){try{r.setApplicationState(f)}catch{}},deviceCapabilities(){try{return r.getDeviceCapabilities?.()??null}catch{return null}}}}const Ze=2e3,Qe=5e3,Xe=/data-deck-image="([^"]+)"/g;function et(e){const o=new Set,r=c=>{if(c)for(const h of c.matchAll(Xe))o.add(h[1])},l=c=>{r(c.body_html),r(c.comment_html),r(c.sources_html),c.special&&l(c.special)};for(const c of e.slides??[])l(c);return[...o]}function K(e){return e instanceof Q?e.status:0}function Z(e){return e instanceof Q?`${e.status} ${e.message}`:e instanceof Error?e.message:String(e)}function tt(e){const o=e.now??(()=>Date.now());let r=null,l=null,c=null,h=null,g="waiting",f="off",y="",d=0,v=-1/0,s=!1,E,b,k=-1/0,S=null,U=!1,T=[],D="",$=0,V=0,H=0;function A(){const t=e.view.current();return{type:"status",phase:g,ws:f,number:t?.number??0,special:t?.special??!1,title:y}}function I(){return E??b}function x(){const t=I();t!==void 0&&e.send(A(),t)}function F(){const t=A();e.onStatus?.(t);const n=I();n!==void 0&&e.send(t,n)}function q(t){g!==t&&(g=t,e.log("phase",t),F())}function O(t){if(f===t)return;const n=f;n==="connected"&&t==="connecting"&&H++,f=t,e.log("ws",`${n} -> ${t}`),F()}function j(t){const n=o();n-v(await G("connection")).token,subscription:async t=>{const n=await G("subscription");if(n.channel!==t)throw e.log("token","subscription channel mismatch"),new Q(403,"cast: channel mismatch");return n.channel_token}})}function i(t=T){for(const n of t)e.revokeURL(n);t===T&&(T=[])}async function u(t,n,a){const m={};return await Promise.all(et(t).map(async w=>{try{const N=await B("image",R=>e.api.image(R,w),n);if(a!==d||s)return;const C=e.objectURL(N);T.push(C),m[w]=C}catch(N){e.log("image","image skipped",{name:w,status:K(N)})}})),m}function p(){h?.close(),h=null}function M(t){const n=()=>t===d&&!s;return{onPublication(a){if(!n())return;const m=Oe(a);if(!m||m.event!==je)return;const w=m.payload;if(w.tab!==l){V++,e.log("foreign","state from another tab",{tab:w.tab});return}$++,e.view.show(w.number,w.special,w.panel==="notes"||w.panel==="srcs"?w.panel:null),e.log("state","applied",{number:w.number,special:w.special})},onSubscribed(){n()&&(e.log("ws","subscribed"),g==="ready"&&F())},onConnection(a){n()&&O(a)},onDenied(a){n()&&(e.log("ws","subscription denied",{code:a}),a===401&&j("subscription denied"))},onUnavailable(){n()&&(O("off"),j("realtime unavailable"))}}}async function _(t,n){const a=await e.realtime.openChannel(n,M(t));if(t!==d||s){a.close();return}h=a}async function L(t,n){const a=++d,m=r,w=o();p(),e.realtime.disconnect(),c=null,D="",q("loading");const N=T;T=[];let C;try{if(C=n??await B("deck",e.api.deck,m),a!==d||s)return;y=C.title??"";const R=o(),oe=await u(C,m??"",a);if(a!==d||s)return;const ae=o();if(await e.view.load(C,oe),a!==d||s)return;D=JSON.stringify(C),e.log("perf","deck up",{fetchMs:Math.round(R-w),imagesMs:Math.round(ae-R),images:Object.keys(oe).length,loadMs:Math.round(o()-ae),totalMs:Math.round(o()-w),slides:C.slides?.length??0})}catch(R){if(a!==d||s)return;e.log("error","deck load failed",{error:Z(R)}),q("error");return}finally{i(N)}try{X();const R=t??await B("realtime",e.api.realtime,m);if(a!==d||s)return;c=R.channel,await _(a,R.channel)}catch(R){if(a!==d||s)return;e.log("error","channel join failed",{error:Z(R)}),O("off")}a!==d||s||q("ready")}async function ee(){if(!c)return;const t=d;p(),e.realtime.disconnect();try{await _(t,c)}catch(n){e.log("error","channel reopen failed",{error:Z(n)})}}async function te(t,n,a){if(!r){r=t,l=n,b=a,e.log("ticket","first hello",{tab:n}),await L(),r===t&&g==="ready"&&(E=a);return}if(t===r){if(l!==n&&e.log("tab","casting tab switched",{tab:n}),l=n,E=a,g==="error"||g==="ready"&&!h){await L();return}e.send(A(),a);return}let m;try{m=await e.api.realtime(t)}catch(w){e.log("ticket","refused",{status:K(w)}),e.send({...A(),title:""},a);return}if(!s){if(r=t,l=n,E=a,b=a,v=-1/0,c&&m.channel===c&&g==="ready"){let w=null;try{w=await e.api.deck(t)}catch(N){e.log("ticket","deck check failed",{status:K(N)})}if(s)return;if(w&&JSON.stringify(w)!==D){e.log("ticket","deck changed",{tab:n}),await L(m,w);return}if(e.log("ticket","swapped",{tab:n}),await ee(),s)return;e.send(A(),a);return}e.log("ticket","new deck",{tab:n}),await L(m)}}function we(t){const n=e.report?.()??{summary:null,device:null,events:[],previousRun:[]},a=De(JSON.stringify(Ie(n)));e.log("log","sending",{parts:a.length,senderId:t});for(const m of a){if(!ue(m)){e.log("log","part dropped",{part:m.part});continue}e.send(m,t)}}function ge(t){const n=e.view.current();e.send({type:"position",number:n?.number??0,special:n?.special??!1},t)}async function pe(t,n){if(s)return;const a=Pe(t);if(!a){e.log("foreign","unknown message",{senderId:n});return}if(e.log("rx",a.type,{senderId:n}),a.type==="where"){ge(n);return}if(a.type==="log"){if(n===void 0||n!==I()){e.log("foreign","log request refused",{senderId:n});return}we(n);return}const m=E!==void 0&&n===E||a.ticket===r;if(!m&&E!==void 0){if(o(){if(S){if(S.trusted&&!m){e.log("foreign","hello dropped behind a trusted one",{senderId:a}),w();return}e.log("rx","hello superseded",{senderId:S.senderId}),S.settle()}S={ticket:t,tab:n,senderId:a,trusted:m,settle:w},U||he()})}async function he(){U=!0;try{for(;S&&!s;){const t=S;S=null;try{await te(t.ticket,t.tab,t.senderId)}catch(n){e.log("error","hello failed",{error:Z(n)})}finally{t.settle()}}}finally{U=!1,S?.settle(),S=null}}function ye(t){t!==void 0&&t===b&&(b=void 0),!(t===void 0||t!==E)&&(E=void 0,e.log("rx","pinned sender left",{senderId:t}))}function ke(){s=!0,d++,p(),e.realtime.setTokenSource(null),i()}function be(){return{ws:f,applied:$,foreign:V,reconnects:H}}return{handle:pe,senderLeft:ye,status:A,announce:x,stats:be,close:ke}}const nt={key:1,class:"cast-screen cast-cover",role:"status"},rt={key:2,class:"cast-screen"},ot={key:0,class:"cast-hint"},at={key:3,class:"cast-screen"},it={key:4,class:"cast-screen"},st=6e4,le=1e3,wt=Me({__name:"CastReceiverView",setup(e){const o=J("boot"),r=se(null),l=se({}),c=J("pending"),h=J(null),g=J(!1);let f=null,y=null,d=0;const v=new Set(me),s=Fe("bm.cast.log"),E=Date.now();let b={};function k(i,u,p){s.note(i,u,p),i==="error"&&s.persist()}function S(){const i=performance.memory;return i?Math.round(i.usedJSHeapSize/1048576):null}function U(){const i=navigator;return{ua:navigator.userAgent,screen:`${window.screen.width}x${window.screen.height}`,viewport:`${window.innerWidth}x${window.innerHeight}`,dpr:window.devicePixelRatio,cores:navigator.hardwareConcurrency,memoryGB:i.deviceMemory??null}}function T(i,u){if(!v.has(i)){k(i.startsWith("keep-awake")?"awake":"send",i,u),i.startsWith("keep-awake-")&&s.persist();return}i==="READY"&&f?(b={...b,capabilities:f.deviceCapabilities()},k("caf",i,{...u,capabilities:b.capabilities})):k("caf",i,u),i==="SENDER_DISCONNECTED"&&typeof u?.senderId=="string"&&y?.senderLeft(u.senderId),s.persist()}function D(){return"serviceWorker"in navigator&&navigator.serviceWorker.controller!==null}function $(){return{screen:o.value,covered:g.value,coverInDom:document.querySelector(".cast-cover")!==null,visibility:document.visibilityState,focus:document.hasFocus(),sw:D()}}async function V(){const i=await qe(le),u=y?.stats();k("beat","heartbeat",{uptimeMin:+((Date.now()-E)/6e4).toFixed(1),ws:u?.ws??"off",applied:u?.applied??0,foreign:u?.foreign??0,reconnects:u?.reconnects??0,heapMB:S(),frames:i,frameSampleMs:le,...$()}),s.persist(),y?.announce()}async function H(){const i=await de(3,3e3);k("paint",i.ok?"frames after the cover":"no frames after the cover",{...i,...$()}),s.persist()}async function A(){if(!("serviceWorker"in navigator))return;const i=navigator.serviceWorker;try{const u=await i.getRegistrations(),p=i.controller!==null;if(u.length===0&&!p)return;const M=await Promise.all(u.map(_=>_.unregister().catch(()=>!1)));k("boot","service worker unregistered",{controlled:p,scopes:u.map(_=>_.scope),unregistered:M.filter(Boolean).length})}catch(u){k("boot","service worker check failed",String(u))}s.persist()}function I(i){k("error","window error",{message:String(i.message),source:i.filename,line:i.lineno})}function x(i){const u=i.reason instanceof Error?i.reason.message:String(i.reason);k("error","unhandled rejection",{reason:u})}function F(){k("boot","pagehide"),s.persist()}function q(i){return new Promise(u=>window.setTimeout(u,i))}function O(){return new Promise(i=>requestAnimationFrame(()=>i()))}function j(){return h.value?.sections()??[]}async function B(i,u){g.value=!0;const p=performance.now();try{r.value=i,l.value=u,c.value="ready",o.value="deck",await Ne(),await $e(()=>j().some(te=>te.classList.contains("on")),2e4)||k("error","the first slide did not show in 20 s"),await document.fonts.ready,await q(50);const M=performance.now(),_=await ze(document.fonts),L=performance.now(),ee=await Ue(j(),O);await O(),k("perf","warm-up",{stageMs:Math.round(M-p),faces:_,warmMs:Math.round(L-M),sections:ee,prerenderMs:Math.round(performance.now()-L),totalMs:Math.round(performance.now()-p)})}finally{g.value=!1,H()}}let G=null;function X(i){i.phase!==G&&(G=i.phase,i.phase==="loading"?g.value=!0:i.phase==="error"?(g.value=!1,o.value="error"):i.phase==="ready"&&r.value&&(g.value=!1,o.value="deck"))}return Re(async()=>{b=U();const i=s.previous[s.previous.length-1];if(k("boot","receiver loaded",{...b,cafAtBoot:He(),sw:D(),previousRunEvents:s.previous.length,lastPrevious:i??null}),s.persist(),A(),window.addEventListener("error",I),window.addEventListener("unhandledrejection",x),window.addEventListener("pagehide",F),d=window.setInterval(()=>{V()},st),document.documentElement.classList.add("deck-public"),!document.querySelector('meta[data-deck-public="1"]')){const p=document.createElement("meta");p.name="robots",p.content="noindex",p.dataset.deckPublic="1",document.head.appendChild(p)}if(!await xe()){o.value="unsupported",k("boot","no CAF SDK");return}o.value="waiting",y=tt({api:Ee,realtime:{setTokenSource:Le,openChannel:Ae,disconnect:ie},view:{load:B,show:(p,M,_)=>{h.value?.showSlide(p,M,_)},current:()=>h.value?.current()??null},send:(p,M)=>{f?.send(p,M)},log:k,objectURL:p=>URL.createObjectURL(p),revokeURL:p=>URL.revokeObjectURL(p),onStatus:X,report:()=>({summary:s.summary(),device:b,events:s.events,previousRun:s.previous})});const u=y;try{f=Je({statusText:"BM · prezentacja",onMessage:(p,M)=>{u.handle(p,M)},onEvent:T}),k("caf","started")}catch(p){k("error","receiver start failed",String(p)),o.value="unsupported"}}),_e(()=>{window.clearInterval(d),window.removeEventListener("error",I),window.removeEventListener("unhandledrejection",x),window.removeEventListener("pagehide",F),s.persist(),y?.close(),ie(),document.documentElement.classList.remove("deck-public"),document.querySelector('meta[data-deck-public="1"]')?.remove()}),(i,u)=>(P(),W(Te,null,[r.value?(P(),Ce(Se,{key:0,ref_key:"viewer",ref:h,phase:c.value,deck:r.value,error:"",mode:"public","no-toolbar":"","extra-css":r.value.css,theme:r.value.theme,images:l.value},null,8,["phase","deck","extra-css","theme","images"])):ne("",!0),g.value?(P(),W("div",nt,[...u[0]||(u[0]=[Y("p",null,"Przygotowuję slajdy…",-1)])])):o.value==="boot"||o.value==="waiting"?(P(),W("div",rt,[u[1]||(u[1]=Y("p",null,"BM · czekam na pilota…",-1)),o.value==="waiting"?(P(),W("p",ot,"Na telefonie otwórz pilota prezentacji i wybierz Wyświetl na TV.")):ne("",!0)])):o.value==="unsupported"?(P(),W("div",at,[...u[2]||(u[2]=[Y("p",null,"Ta strona działa tylko na urządzeniu Google Cast.",-1)])])):o.value==="error"?(P(),W("div",it,[...u[3]||(u[3]=[Y("p",null,"Nie mogę wczytać prezentacji. Połącz ponownie z telefonu.",-1)])])):ne("",!0)],64))}});export{wt as default}; diff --git a/public/assets/ChecklistView-BTFCZ9eO.js b/public/assets/ChecklistView-BXIfnhpC.js similarity index 97% rename from public/assets/ChecklistView-BTFCZ9eO.js rename to public/assets/ChecklistView-BXIfnhpC.js index e448ab4..85fdd8f 100644 --- a/public/assets/ChecklistView-BTFCZ9eO.js +++ b/public/assets/ChecklistView-BXIfnhpC.js @@ -1 +1 @@ -import{d as X,ae as Q,o as ee,r as v,aV as te,U as Z,n as a,c as n,h as se,b as t,w as z,as as S,F as h,E as U,t as r,e as p,aW as Y,aX as le,ah as ae,v as P,f as d,ar as J,x as E,aY as oe,af as ne,i as N,j as I,D as ie,p as j,G as ue,aZ as q,H as re,_ as A,s as T,C as de,a8 as ve,q as H,ap as K,l as me,m as pe,a_ as ce}from"./index-CZVUqkdk.js";import{_ as ke}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as ye}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{p as _e}from"./presentations-BgohxBTm.js";import{f as fe}from"./forms-DwSNDsNK.js";const be={class:"form-grid"},ge={class:"field"},$e=["value"],ze={class:"field"},we=["value"],he={class:"field"},Ce={key:0,class:"error-text"},xe={class:"field"},Ie=["value"],je={class:"form-grid"},Ue={class:"field"},Ve=["value"],De={class:"field"},Ne=["value"],Te={class:"form-grid"},Ee={class:"field"},Le={class:"field"},Me={class:"field"},Re={class:"field"},Be={key:0,class:"notice error",role:"alert"},Se={class:"btn-row"},Pe=["disabled"],G=X({__name:"ChecklistItemForm",props:{item:{},meetingId:{},save:{type:Function}},emits:["done","cancel"],setup(W,{emit:O}){const c=W,F=O,f=Q(),i=v([]);ee(()=>{Promise.all([f.loadCourses(),f.loadReadings(),f.loadDeadlines()]),_e.mine().then(y=>i.value=y).catch(()=>{})});const _=c.item,b=v(_?.kind??"lektura"),k=v(_?.title??""),g=v(_?.course_id??""),$=v(_?.reading_id??""),C=v(_?.deadline_id??""),V=v(_?.presentation_slug??""),L=v(_?.estimate_minutes??""),M=v(te(_?.due_at??null)),R=v(_?.url??""),B=v(_?.notes??""),D=v(""),u=v({}),o=v(!1),x=E(()=>[...f.allReadings.filter(e=>g.value===""||e.course_id===g.value)].sort((e,s)=>+(s.meeting_id===c.meetingId)-+(e.meeting_id===c.meetingId))),m=E(()=>f.deadlines.filter(y=>g.value===""||y.course_id===g.value||y.course_id===null));Z($,y=>{const e=f.allReadings.find(s=>s.id===y);e&&(k.value.trim()||(k.value=e.author?`${e.author}, ${e.title}`:e.title),g.value===""&&(g.value=e.course_id))}),Z(V,y=>{const e=i.value.find(s=>s.slug===y);e&&!k.value.trim()&&(k.value=`Prezentacja: ${e.title}`),e&&(b.value="prezentacja")});const l=y=>y===""?null:y;async function w(){o.value=!0,D.value="",u.value={};try{await c.save({kind:b.value,title:k.value.trim(),course_id:l(g.value),reading_id:l($.value),deadline_id:l(C.value),presentation_slug:V.value||null,estimate_minutes:l(L.value),due_at:oe(M.value),url:R.value.trim()||null,notes:B.value.trim()||null}),F("done")}catch(y){const e=fe(y);u.value=e.fields,D.value=e.message||Object.values(e.fields)[0]||""}finally{o.value=!1}}return(y,e)=>(a(),n("form",{class:"card item-form",onSubmit:se(w,["prevent"])},[t("div",be,[t("div",ge,[e[11]||(e[11]=t("label",{for:"it-kind"},"Rodzaj",-1)),z(t("select",{id:"it-kind","onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s)},[(a(!0),n(h,null,U(p(le),s=>(a(),n("option",{key:s,value:s},r(p(Y)[s]),9,$e))),128))],512),[[S,b.value]])]),t("div",ze,[e[13]||(e[13]=t("label",{for:"it-course"},"Przedmiot",-1)),z(t("select",{id:"it-course","onUpdate:modelValue":e[1]||(e[1]=s=>g.value=s)},[e[12]||(e[12]=t("option",{value:""},"ogólne",-1)),(a(!0),n(h,null,U(p(f).visibleCourses,s=>(a(),n("option",{key:s.id,value:s.id},r(s.name)+" ("+r(p(ae)[s.form])+")",9,we))),128))],512),[[S,g.value]])])]),t("div",he,[e[14]||(e[14]=t("label",{for:"it-title"},"Co",-1)),z(t("input",{id:"it-title","onUpdate:modelValue":e[2]||(e[2]=s=>k.value=s),type:"text",required:"",maxlength:"500"},null,512),[[P,k.value]]),u.value.title?(a(),n("small",Ce,r(u.value.title),1)):d("",!0)]),t("div",xe,[e[16]||(e[16]=t("label",{for:"it-reading"},"Lektura z listy (odhaczenie = przeczytana)",-1)),z(t("select",{id:"it-reading","onUpdate:modelValue":e[3]||(e[3]=s=>$.value=s)},[e[15]||(e[15]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(x.value,s=>(a(),n("option",{key:s.id,value:s.id},r(s.author?s.author+", ":"")+r(s.title),9,Ie))),128))],512),[[S,$.value]])]),t("div",je,[t("div",Ue,[e[18]||(e[18]=t("label",{for:"it-deadline"},"Termin",-1)),z(t("select",{id:"it-deadline","onUpdate:modelValue":e[4]||(e[4]=s=>C.value=s)},[e[17]||(e[17]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(m.value,s=>(a(),n("option",{key:s.id,value:s.id},r(p(J)(s.due_at))+" · "+r(s.title),9,Ve))),128))],512),[[S,C.value]])]),t("div",De,[e[20]||(e[20]=t("label",{for:"it-deck"},"Moja prezentacja",-1)),z(t("select",{id:"it-deck","onUpdate:modelValue":e[5]||(e[5]=s=>V.value=s)},[e[19]||(e[19]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(i.value,s=>(a(),n("option",{key:s.slug,value:s.slug},r(s.title),9,Ne))),128))],512),[[S,V.value]])])]),t("div",Te,[t("div",Ee,[e[21]||(e[21]=t("label",{for:"it-est"},"Szacowany czas (min)",-1)),z(t("input",{id:"it-est","onUpdate:modelValue":e[6]||(e[6]=s=>L.value=s),type:"number",min:"0",max:"10000",step:"5",inputmode:"numeric"},null,512),[[P,L.value,void 0,{number:!0}]])]),t("div",Le,[e[22]||(e[22]=t("label",{for:"it-due"},"Zrobić do",-1)),z(t("input",{id:"it-due","onUpdate:modelValue":e[7]||(e[7]=s=>M.value=s),type:"datetime-local"},null,512),[[P,M.value]])])]),t("div",Me,[e[23]||(e[23]=t("label",{for:"it-url"},"Link",-1)),z(t("input",{id:"it-url","onUpdate:modelValue":e[8]||(e[8]=s=>R.value=s),type:"text",inputmode:"url",maxlength:"2048"},null,512),[[P,R.value]])]),t("div",Re,[e[24]||(e[24]=t("label",{for:"it-notes"},"Notatki",-1)),z(t("textarea",{id:"it-notes","onUpdate:modelValue":e[9]||(e[9]=s=>B.value=s),rows:"3",maxlength:"10000"},null,512),[[P,B.value]])]),D.value?(a(),n("p",Be,r(D.value),1)):d("",!0),t("div",Se,[t("button",{class:"btn primary",type:"submit",disabled:o.value||!k.value.trim()},r(W.item?"Zapisz":"Dodaj"),9,Pe),t("button",{class:"btn ghost",type:"button",onClick:e[10]||(e[10]=s=>F("cancel"))},"Anuluj")])],32))}}),We={class:"card","aria-label":"Postęp"},Fe={style:{margin:"0 0 8px"}},Oe={class:"big-num nums",title:"Wg szacowanego czasu"},Ae={class:"muted"},Ze={key:0,class:"muted small"},qe=["aria-valuenow"],He={key:0,class:"muted small",style:{margin:"10px 0 0","white-space":"pre-line"}},Ke={class:"chips wrap",style:{"margin-top":"12px"}},Ge=["aria-pressed"],Xe=["aria-pressed"],Ye=["aria-label"],Je={key:0,class:"section-head"},Qe={class:"muted small nums"},et={class:"rows"},tt=["checked","onChange"],st={class:"text"},lt={class:"badge"},at={key:0,class:"muted nums"},ot={key:2,class:"muted mono"},nt={key:3,class:"item-notes muted small"},it={class:"item-links small"},ut=["href"],rt={class:"item-actions"},dt=["aria-label","onClick"],vt=["aria-label","onClick"],mt=["aria-label","onClick"],pt=["aria-label","onClick"],ct={key:1,class:"empty",style:{"margin-top":"16px"}},kt={key:2,class:"empty",style:{"margin-top":"16px"}},$t=X({__name:"ChecklistView",props:{id:{}},setup(W){const O=W,c=ne(),F=pe(),f=E(()=>Number(O.id));Z(f,u=>{c.loadOne(u)},{immediate:!0});const i=E(()=>c.details[f.value]??null),_=E(()=>i.value?.items??[]),b=v(!1),k=v(!0),g=E(()=>{const u=_.value.filter(o=>!b.value||!o.done);return k.value?ce(u):[{key:"all",label:"",items:u}]}),$=v(!1),C=v(null),V=u=>c.addItem(f.value,u),L=u=>o=>c.updateItem(u,o);async function M(u){if(window.confirm(`Usunąć „${u.title}”?`))try{await c.removeItem(u)}catch(o){H().show(`Nie udało się usunąć. ${K(o)}`)}}async function R(){if(!(!i.value||!window.confirm(`Usunąć checklistę „${i.value.title}” ze wszystkimi pozycjami?`)))try{await c.remove(i.value.id),await F.push("/checklisty")}catch(u){H().show(`Nie udało się usunąć. ${K(u)}`)}}const B=u=>`/moje-prezentacje/${encodeURIComponent(u)}`,D=u=>!u.done&&u.due_at!==null&&Date.parse(u.due_at){const x=me("router-link");return a(),n("div",null,[N(ke,{eyebrow:i.value?.meeting?`Zjazd ${i.value.meeting.number} · ${p(ie)(i.value.meeting.starts_on,i.value.meeting.ends_on)}`:"Checklista",title:i.value?.title??"Checklista"},{default:I(()=>[N(x,{class:"btn ghost small",to:"/checklisty"},{default:I(()=>[...o[8]||(o[8]=[j("Wszystkie",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),N(ye,{ready:!!i.value,error:p(c).detailError,onRetry:o[7]||(o[7]=m=>p(c).loadOne(f.value))},{default:I(()=>[i.value?(a(),n(h,{key:0},[t("section",We,[t("p",Fe,[t("span",Oe,r(i.value.progress.percent)+"%",1),t("span",Ae," · "+r(p(ue)(i.value.progress)),1),i.value.progress.minutes_total?(a(),n("span",Ze," · razem "+r(p(q)(i.value.progress.minutes_total)),1)):d("",!0)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":i.value.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Postęp (wg szacowanego czasu)"},[t("span",{style:re({width:i.value.progress.percent+"%"})},null,4)],8,qe),i.value.description?(a(),n("p",He,r(i.value.description),1)):d("",!0)]),t("div",Ke,[t("button",{class:"chip",type:"button","aria-pressed":b.value,onClick:o[0]||(o[0]=m=>b.value=!b.value)},"Tylko do zrobienia",8,Ge),t("button",{class:"chip",type:"button","aria-pressed":k.value,onClick:o[1]||(o[1]=m=>k.value=!k.value)},"Wg przedmiotów",8,Xe),$.value?d("",!0):(a(),n("button",{key:0,class:"chip",type:"button",onClick:o[2]||(o[2]=m=>$.value=!0)},[N(A,{name:"plus",class:"chip-icon"}),o[9]||(o[9]=j(" Dodaj pozycję",-1))]))]),$.value?(a(),T(G,{key:0,style:{"margin-top":"12px"},"meeting-id":i.value.meeting_id,save:V,onDone:o[3]||(o[3]=m=>$.value=!1),onCancel:o[4]||(o[4]=m=>$.value=!1)},null,8,["meeting-id"])):d("",!0),(a(!0),n(h,null,U(g.value,m=>(a(),n("section",{key:m.key,class:"section","aria-label":m.label||"Pozycje"},[m.label?(a(),n("div",Je,[t("h2",null,r(m.label),1),t("span",Qe,r(m.items.filter(l=>l.done).length)+"/"+r(m.items.length),1)])):d("",!0),t("ul",et,[(a(!0),n(h,null,U(m.items,l=>(a(),n("li",{key:l.id,class:"reading checklist-item"},[C.value===l.id?(a(),T(G,{key:0,class:"grow",item:l,"meeting-id":i.value.meeting_id,save:L(l),onDone:o[5]||(o[5]=w=>C.value=null),onCancel:o[6]||(o[6]=w=>C.value=null)},null,8,["item","meeting-id","save"])):(a(),n(h,{key:1},[t("label",null,[t("input",{type:"checkbox",checked:l.done,onChange:w=>p(c).toggle(l,w.target.checked)},null,40,tt),t("span",st,[t("span",lt,r(p(Y)[l.kind]),1),j(" "+r(l.title)+" ",1),l.estimate_minutes?(a(),n("small",at," · "+r(p(q)(l.estimate_minutes)),1)):d("",!0),l.due_at?(a(),n("small",{key:1,class:de(["mono",D(l)?"error-text":"muted"])}," · do "+r(p(ve)(l.due_at)),3)):d("",!0),l.done_at?(a(),n("small",ot," · zrobione "+r(p(J)(l.done_at)),1)):d("",!0),l.notes?(a(),n("span",nt,r(l.notes),1)):d("",!0)])]),t("span",it,[l.reading?(a(),T(x,{key:0,to:`/lektury#lektura-${l.reading.id}`},{default:I(()=>[...o[10]||(o[10]=[j("lektura",-1)])]),_:1},8,["to"])):d("",!0),l.deadline?(a(),T(x,{key:1,to:"/terminarz",title:l.deadline.title},{default:I(()=>[...o[11]||(o[11]=[j("termin",-1)])]),_:1},8,["title"])):d("",!0),l.material?(a(),T(x,{key:2,to:`/materialy/${l.material.id}`},{default:I(()=>[...o[12]||(o[12]=[j("materiał",-1)])]),_:1},8,["to"])):d("",!0),l.presentation?(a(),T(x,{key:3,to:B(l.presentation.slug)},{default:I(()=>[...o[13]||(o[13]=[j("talia",-1)])]),_:1},8,["to"])):d("",!0),l.url?(a(),n("a",{key:4,href:l.url,target:"_blank",rel:"noopener noreferrer"},"link",8,ut)):d("",!0)]),t("span",rt,[!k.value&&!b.value?(a(),n("button",{key:0,class:"icon-btn",type:"button","aria-label":`W górę: ${l.title}`,onClick:w=>p(c).move(l,-1)},"↑",8,dt)):d("",!0),!k.value&&!b.value?(a(),n("button",{key:1,class:"icon-btn",type:"button","aria-label":`W dół: ${l.title}`,onClick:w=>p(c).move(l,1)},"↓",8,vt)):d("",!0),t("button",{class:"icon-btn",type:"button","aria-label":`Edytuj: ${l.title}`,onClick:w=>C.value=l.id},[N(A,{name:"pencil"})],8,mt),t("button",{class:"icon-btn",type:"button","aria-label":`Usuń: ${l.title}`,onClick:w=>M(l)},[N(A,{name:"trash"})],8,pt)])],64))]))),128))])],8,Ye))),128)),_.value.length?b.value&&!g.value.some(m=>m.items.length)?(a(),n("p",kt,"Wszystko zrobione.")):d("",!0):(a(),n("p",ct,"Pusto. Dodaj lektury, artykuły, prezentacje i zadania na ten zjazd.")),t("div",{class:"btn-row",style:{"margin-top":"24px"}},[t("button",{class:"btn miss small",type:"button",onClick:R},"Usuń checklistę")])],64)):d("",!0)]),_:1},8,["ready","error"])])}}});export{$t as default}; +import{d as X,ae as Q,o as ee,r as v,aV as te,U as Z,n as a,c as n,h as se,b as t,w as z,as as S,F as h,E as U,t as r,e as p,aW as Y,aX as le,ah as ae,v as P,f as d,ar as J,x as E,aY as oe,af as ne,i as N,j as I,D as ie,p as j,G as ue,aZ as q,H as re,_ as A,s as T,C as de,a8 as ve,q as H,ap as K,l as me,m as pe,a_ as ce}from"./index-DyD9x5ZD.js";import{_ as ke}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as ye}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{p as _e}from"./presentations-CZ3vmyJx.js";import{f as fe}from"./forms-rkjiDhhH.js";const be={class:"form-grid"},ge={class:"field"},$e=["value"],ze={class:"field"},we=["value"],he={class:"field"},Ce={key:0,class:"error-text"},xe={class:"field"},Ie=["value"],je={class:"form-grid"},Ue={class:"field"},Ve=["value"],De={class:"field"},Ne=["value"],Te={class:"form-grid"},Ee={class:"field"},Le={class:"field"},Me={class:"field"},Re={class:"field"},Be={key:0,class:"notice error",role:"alert"},Se={class:"btn-row"},Pe=["disabled"],G=X({__name:"ChecklistItemForm",props:{item:{},meetingId:{},save:{type:Function}},emits:["done","cancel"],setup(W,{emit:O}){const c=W,F=O,f=Q(),i=v([]);ee(()=>{Promise.all([f.loadCourses(),f.loadReadings(),f.loadDeadlines()]),_e.mine().then(y=>i.value=y).catch(()=>{})});const _=c.item,b=v(_?.kind??"lektura"),k=v(_?.title??""),g=v(_?.course_id??""),$=v(_?.reading_id??""),C=v(_?.deadline_id??""),V=v(_?.presentation_slug??""),L=v(_?.estimate_minutes??""),M=v(te(_?.due_at??null)),R=v(_?.url??""),B=v(_?.notes??""),D=v(""),u=v({}),o=v(!1),x=E(()=>[...f.allReadings.filter(e=>g.value===""||e.course_id===g.value)].sort((e,s)=>+(s.meeting_id===c.meetingId)-+(e.meeting_id===c.meetingId))),m=E(()=>f.deadlines.filter(y=>g.value===""||y.course_id===g.value||y.course_id===null));Z($,y=>{const e=f.allReadings.find(s=>s.id===y);e&&(k.value.trim()||(k.value=e.author?`${e.author}, ${e.title}`:e.title),g.value===""&&(g.value=e.course_id))}),Z(V,y=>{const e=i.value.find(s=>s.slug===y);e&&!k.value.trim()&&(k.value=`Prezentacja: ${e.title}`),e&&(b.value="prezentacja")});const l=y=>y===""?null:y;async function w(){o.value=!0,D.value="",u.value={};try{await c.save({kind:b.value,title:k.value.trim(),course_id:l(g.value),reading_id:l($.value),deadline_id:l(C.value),presentation_slug:V.value||null,estimate_minutes:l(L.value),due_at:oe(M.value),url:R.value.trim()||null,notes:B.value.trim()||null}),F("done")}catch(y){const e=fe(y);u.value=e.fields,D.value=e.message||Object.values(e.fields)[0]||""}finally{o.value=!1}}return(y,e)=>(a(),n("form",{class:"card item-form",onSubmit:se(w,["prevent"])},[t("div",be,[t("div",ge,[e[11]||(e[11]=t("label",{for:"it-kind"},"Rodzaj",-1)),z(t("select",{id:"it-kind","onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s)},[(a(!0),n(h,null,U(p(le),s=>(a(),n("option",{key:s,value:s},r(p(Y)[s]),9,$e))),128))],512),[[S,b.value]])]),t("div",ze,[e[13]||(e[13]=t("label",{for:"it-course"},"Przedmiot",-1)),z(t("select",{id:"it-course","onUpdate:modelValue":e[1]||(e[1]=s=>g.value=s)},[e[12]||(e[12]=t("option",{value:""},"ogólne",-1)),(a(!0),n(h,null,U(p(f).visibleCourses,s=>(a(),n("option",{key:s.id,value:s.id},r(s.name)+" ("+r(p(ae)[s.form])+")",9,we))),128))],512),[[S,g.value]])])]),t("div",he,[e[14]||(e[14]=t("label",{for:"it-title"},"Co",-1)),z(t("input",{id:"it-title","onUpdate:modelValue":e[2]||(e[2]=s=>k.value=s),type:"text",required:"",maxlength:"500"},null,512),[[P,k.value]]),u.value.title?(a(),n("small",Ce,r(u.value.title),1)):d("",!0)]),t("div",xe,[e[16]||(e[16]=t("label",{for:"it-reading"},"Lektura z listy (odhaczenie = przeczytana)",-1)),z(t("select",{id:"it-reading","onUpdate:modelValue":e[3]||(e[3]=s=>$.value=s)},[e[15]||(e[15]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(x.value,s=>(a(),n("option",{key:s.id,value:s.id},r(s.author?s.author+", ":"")+r(s.title),9,Ie))),128))],512),[[S,$.value]])]),t("div",je,[t("div",Ue,[e[18]||(e[18]=t("label",{for:"it-deadline"},"Termin",-1)),z(t("select",{id:"it-deadline","onUpdate:modelValue":e[4]||(e[4]=s=>C.value=s)},[e[17]||(e[17]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(m.value,s=>(a(),n("option",{key:s.id,value:s.id},r(p(J)(s.due_at))+" · "+r(s.title),9,Ve))),128))],512),[[S,C.value]])]),t("div",De,[e[20]||(e[20]=t("label",{for:"it-deck"},"Moja prezentacja",-1)),z(t("select",{id:"it-deck","onUpdate:modelValue":e[5]||(e[5]=s=>V.value=s)},[e[19]||(e[19]=t("option",{value:""},"brak",-1)),(a(!0),n(h,null,U(i.value,s=>(a(),n("option",{key:s.slug,value:s.slug},r(s.title),9,Ne))),128))],512),[[S,V.value]])])]),t("div",Te,[t("div",Ee,[e[21]||(e[21]=t("label",{for:"it-est"},"Szacowany czas (min)",-1)),z(t("input",{id:"it-est","onUpdate:modelValue":e[6]||(e[6]=s=>L.value=s),type:"number",min:"0",max:"10000",step:"5",inputmode:"numeric"},null,512),[[P,L.value,void 0,{number:!0}]])]),t("div",Le,[e[22]||(e[22]=t("label",{for:"it-due"},"Zrobić do",-1)),z(t("input",{id:"it-due","onUpdate:modelValue":e[7]||(e[7]=s=>M.value=s),type:"datetime-local"},null,512),[[P,M.value]])])]),t("div",Me,[e[23]||(e[23]=t("label",{for:"it-url"},"Link",-1)),z(t("input",{id:"it-url","onUpdate:modelValue":e[8]||(e[8]=s=>R.value=s),type:"text",inputmode:"url",maxlength:"2048"},null,512),[[P,R.value]])]),t("div",Re,[e[24]||(e[24]=t("label",{for:"it-notes"},"Notatki",-1)),z(t("textarea",{id:"it-notes","onUpdate:modelValue":e[9]||(e[9]=s=>B.value=s),rows:"3",maxlength:"10000"},null,512),[[P,B.value]])]),D.value?(a(),n("p",Be,r(D.value),1)):d("",!0),t("div",Se,[t("button",{class:"btn primary",type:"submit",disabled:o.value||!k.value.trim()},r(W.item?"Zapisz":"Dodaj"),9,Pe),t("button",{class:"btn ghost",type:"button",onClick:e[10]||(e[10]=s=>F("cancel"))},"Anuluj")])],32))}}),We={class:"card","aria-label":"Postęp"},Fe={style:{margin:"0 0 8px"}},Oe={class:"big-num nums",title:"Wg szacowanego czasu"},Ae={class:"muted"},Ze={key:0,class:"muted small"},qe=["aria-valuenow"],He={key:0,class:"muted small",style:{margin:"10px 0 0","white-space":"pre-line"}},Ke={class:"chips wrap",style:{"margin-top":"12px"}},Ge=["aria-pressed"],Xe=["aria-pressed"],Ye=["aria-label"],Je={key:0,class:"section-head"},Qe={class:"muted small nums"},et={class:"rows"},tt=["checked","onChange"],st={class:"text"},lt={class:"badge"},at={key:0,class:"muted nums"},ot={key:2,class:"muted mono"},nt={key:3,class:"item-notes muted small"},it={class:"item-links small"},ut=["href"],rt={class:"item-actions"},dt=["aria-label","onClick"],vt=["aria-label","onClick"],mt=["aria-label","onClick"],pt=["aria-label","onClick"],ct={key:1,class:"empty",style:{"margin-top":"16px"}},kt={key:2,class:"empty",style:{"margin-top":"16px"}},$t=X({__name:"ChecklistView",props:{id:{}},setup(W){const O=W,c=ne(),F=pe(),f=E(()=>Number(O.id));Z(f,u=>{c.loadOne(u)},{immediate:!0});const i=E(()=>c.details[f.value]??null),_=E(()=>i.value?.items??[]),b=v(!1),k=v(!0),g=E(()=>{const u=_.value.filter(o=>!b.value||!o.done);return k.value?ce(u):[{key:"all",label:"",items:u}]}),$=v(!1),C=v(null),V=u=>c.addItem(f.value,u),L=u=>o=>c.updateItem(u,o);async function M(u){if(window.confirm(`Usunąć „${u.title}”?`))try{await c.removeItem(u)}catch(o){H().show(`Nie udało się usunąć. ${K(o)}`)}}async function R(){if(!(!i.value||!window.confirm(`Usunąć checklistę „${i.value.title}” ze wszystkimi pozycjami?`)))try{await c.remove(i.value.id),await F.push("/checklisty")}catch(u){H().show(`Nie udało się usunąć. ${K(u)}`)}}const B=u=>`/moje-prezentacje/${encodeURIComponent(u)}`,D=u=>!u.done&&u.due_at!==null&&Date.parse(u.due_at){const x=me("router-link");return a(),n("div",null,[N(ke,{eyebrow:i.value?.meeting?`Zjazd ${i.value.meeting.number} · ${p(ie)(i.value.meeting.starts_on,i.value.meeting.ends_on)}`:"Checklista",title:i.value?.title??"Checklista"},{default:I(()=>[N(x,{class:"btn ghost small",to:"/checklisty"},{default:I(()=>[...o[8]||(o[8]=[j("Wszystkie",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),N(ye,{ready:!!i.value,error:p(c).detailError,onRetry:o[7]||(o[7]=m=>p(c).loadOne(f.value))},{default:I(()=>[i.value?(a(),n(h,{key:0},[t("section",We,[t("p",Fe,[t("span",Oe,r(i.value.progress.percent)+"%",1),t("span",Ae," · "+r(p(ue)(i.value.progress)),1),i.value.progress.minutes_total?(a(),n("span",Ze," · razem "+r(p(q)(i.value.progress.minutes_total)),1)):d("",!0)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":i.value.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Postęp (wg szacowanego czasu)"},[t("span",{style:re({width:i.value.progress.percent+"%"})},null,4)],8,qe),i.value.description?(a(),n("p",He,r(i.value.description),1)):d("",!0)]),t("div",Ke,[t("button",{class:"chip",type:"button","aria-pressed":b.value,onClick:o[0]||(o[0]=m=>b.value=!b.value)},"Tylko do zrobienia",8,Ge),t("button",{class:"chip",type:"button","aria-pressed":k.value,onClick:o[1]||(o[1]=m=>k.value=!k.value)},"Wg przedmiotów",8,Xe),$.value?d("",!0):(a(),n("button",{key:0,class:"chip",type:"button",onClick:o[2]||(o[2]=m=>$.value=!0)},[N(A,{name:"plus",class:"chip-icon"}),o[9]||(o[9]=j(" Dodaj pozycję",-1))]))]),$.value?(a(),T(G,{key:0,style:{"margin-top":"12px"},"meeting-id":i.value.meeting_id,save:V,onDone:o[3]||(o[3]=m=>$.value=!1),onCancel:o[4]||(o[4]=m=>$.value=!1)},null,8,["meeting-id"])):d("",!0),(a(!0),n(h,null,U(g.value,m=>(a(),n("section",{key:m.key,class:"section","aria-label":m.label||"Pozycje"},[m.label?(a(),n("div",Je,[t("h2",null,r(m.label),1),t("span",Qe,r(m.items.filter(l=>l.done).length)+"/"+r(m.items.length),1)])):d("",!0),t("ul",et,[(a(!0),n(h,null,U(m.items,l=>(a(),n("li",{key:l.id,class:"reading checklist-item"},[C.value===l.id?(a(),T(G,{key:0,class:"grow",item:l,"meeting-id":i.value.meeting_id,save:L(l),onDone:o[5]||(o[5]=w=>C.value=null),onCancel:o[6]||(o[6]=w=>C.value=null)},null,8,["item","meeting-id","save"])):(a(),n(h,{key:1},[t("label",null,[t("input",{type:"checkbox",checked:l.done,onChange:w=>p(c).toggle(l,w.target.checked)},null,40,tt),t("span",st,[t("span",lt,r(p(Y)[l.kind]),1),j(" "+r(l.title)+" ",1),l.estimate_minutes?(a(),n("small",at," · "+r(p(q)(l.estimate_minutes)),1)):d("",!0),l.due_at?(a(),n("small",{key:1,class:de(["mono",D(l)?"error-text":"muted"])}," · do "+r(p(ve)(l.due_at)),3)):d("",!0),l.done_at?(a(),n("small",ot," · zrobione "+r(p(J)(l.done_at)),1)):d("",!0),l.notes?(a(),n("span",nt,r(l.notes),1)):d("",!0)])]),t("span",it,[l.reading?(a(),T(x,{key:0,to:`/lektury#lektura-${l.reading.id}`},{default:I(()=>[...o[10]||(o[10]=[j("lektura",-1)])]),_:1},8,["to"])):d("",!0),l.deadline?(a(),T(x,{key:1,to:"/terminarz",title:l.deadline.title},{default:I(()=>[...o[11]||(o[11]=[j("termin",-1)])]),_:1},8,["title"])):d("",!0),l.material?(a(),T(x,{key:2,to:`/materialy/${l.material.id}`},{default:I(()=>[...o[12]||(o[12]=[j("materiał",-1)])]),_:1},8,["to"])):d("",!0),l.presentation?(a(),T(x,{key:3,to:B(l.presentation.slug)},{default:I(()=>[...o[13]||(o[13]=[j("talia",-1)])]),_:1},8,["to"])):d("",!0),l.url?(a(),n("a",{key:4,href:l.url,target:"_blank",rel:"noopener noreferrer"},"link",8,ut)):d("",!0)]),t("span",rt,[!k.value&&!b.value?(a(),n("button",{key:0,class:"icon-btn",type:"button","aria-label":`W górę: ${l.title}`,onClick:w=>p(c).move(l,-1)},"↑",8,dt)):d("",!0),!k.value&&!b.value?(a(),n("button",{key:1,class:"icon-btn",type:"button","aria-label":`W dół: ${l.title}`,onClick:w=>p(c).move(l,1)},"↓",8,vt)):d("",!0),t("button",{class:"icon-btn",type:"button","aria-label":`Edytuj: ${l.title}`,onClick:w=>C.value=l.id},[N(A,{name:"pencil"})],8,mt),t("button",{class:"icon-btn",type:"button","aria-label":`Usuń: ${l.title}`,onClick:w=>M(l)},[N(A,{name:"trash"})],8,pt)])],64))]))),128))])],8,Ye))),128)),_.value.length?b.value&&!g.value.some(m=>m.items.length)?(a(),n("p",kt,"Wszystko zrobione.")):d("",!0):(a(),n("p",ct,"Pusto. Dodaj lektury, artykuły, prezentacje i zadania na ten zjazd.")),t("div",{class:"btn-row",style:{"margin-top":"24px"}},[t("button",{class:"btn miss small",type:"button",onClick:R},"Usuń checklistę")])],64)):d("",!0)]),_:1},8,["ready","error"])])}}});export{$t as default}; diff --git a/public/assets/ChecklistsView-BsRke9w6.js b/public/assets/ChecklistsView-DAQUw-rC.js similarity index 92% rename from public/assets/ChecklistsView-BsRke9w6.js rename to public/assets/ChecklistsView-DAQUw-rC.js index 60d42be..0c359c1 100644 --- a/public/assets/ChecklistsView-BsRke9w6.js +++ b/public/assets/ChecklistsView-DAQUw-rC.js @@ -1 +1 @@ -import{d as B,ae as N,af as Z,o as E,c as o,i as b,j as g,h as S,b as s,w as k,as as U,F as z,E as w,e as d,v as D,t as r,f as c,x as h,r as v,n as l,D as j,s as L,H as P,G as R,l as T,m as F}from"./index-CZVUqkdk.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{f as G}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{_ as q}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as A}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{f as G}from"./forms-rkjiDhhH.js";const H={class:"field"},I=["value"],J={class:"field"},K={key:0,class:"notice error",role:"alert"},O={class:"btn-row"},Q=["disabled"],W={class:"stack"},X={class:"row-main"},Y={key:0,class:"muted small"},ee={class:"big-num nums"},te=["aria-valuenow","aria-label"],se={class:"muted small nums"},ae={key:0,class:"empty"},ue=B({__name:"ChecklistsView",setup(le){const _=N(),i=Z(),x=F();E(()=>{Promise.all([i.loadList(),_.loadMeetings()])});const C=h(()=>i.list!==null),y=h(()=>[...i.list??[]].sort((a,t)=>a.sort_order-t.sort_order||a.id-t.id)),m=v(!1),n=v(""),u=v(""),f=v(!1),p=v("");function $(){const a=_.meetings?.find(t=>t.id===u.value);a&&(!n.value||/^Zjazd \d+$/.test(n.value))&&(n.value=`Zjazd ${a.number}`)}async function M(){f.value=!0,p.value="";try{const a=await i.create({title:n.value,meeting_id:u.value===""?null:u.value});m.value=!1,n.value="",u.value="",await x.push(`/checklisty/${a.id}`)}catch(a){p.value=G(a).message}finally{f.value=!1}}return(a,t)=>{const V=T("router-link");return l(),o("div",null,[b(q,{eyebrow:"Przygotowanie do zjazdów",title:"Checklisty"},{default:g(()=>[m.value?c("",!0):(l(),o("button",{key:0,class:"btn primary small",type:"button",onClick:t[0]||(t[0]=e=>m.value=!0)},"Nowa"))]),_:1}),m.value?(l(),o("form",{key:0,class:"card",style:{"margin-bottom":"16px"},onSubmit:S(M,["prevent"])},[s("div",H,[t[6]||(t[6]=s("label",{for:"cl-meeting"},"Zjazd",-1)),k(s("select",{id:"cl-meeting","onUpdate:modelValue":t[1]||(t[1]=e=>u.value=e),onChange:$},[t[5]||(t[5]=s("option",{value:""},"bez zjazdu",-1)),(l(!0),o(z,null,w(d(_).meetings??[],e=>(l(),o("option",{key:e.id,value:e.id},"Zjazd "+r(e.number)+" · "+r(d(j)(e.starts_on,e.ends_on)),9,I))),128))],544),[[U,u.value]])]),s("div",J,[t[7]||(t[7]=s("label",{for:"cl-title"},"Tytuł",-1)),k(s("input",{id:"cl-title","onUpdate:modelValue":t[2]||(t[2]=e=>n.value=e),type:"text",required:"",maxlength:"255"},null,512),[[D,n.value]])]),p.value?(l(),o("p",K,r(p.value),1)):c("",!0),s("div",O,[s("button",{class:"btn primary",type:"submit",disabled:f.value||!n.value.trim()},"Utwórz",8,Q),s("button",{class:"btn ghost",type:"button",onClick:t[3]||(t[3]=e=>m.value=!1)},"Anuluj")])],32)):c("",!0),b(A,{ready:C.value,error:d(i).listError,onRetry:t[4]||(t[4]=e=>d(i).loadList())},{default:g(()=>[s("div",W,[(l(!0),o(z,null,w(y.value,e=>(l(),L(V,{key:e.id,to:`/checklisty/${e.id}`,class:"card link checklist-card"},{default:g(()=>[s("div",X,[s("div",null,[s("h3",null,r(e.title),1),e.meeting?(l(),o("span",Y,"Zjazd "+r(e.meeting.number)+" · "+r(d(j)(e.meeting.starts_on,e.meeting.ends_on)),1)):c("",!0)]),s("span",ee,r(e.progress.percent)+"%",1)]),s("div",{class:"progress-bar",role:"progressbar","aria-valuenow":e.progress.percent,"aria-valuemin":"0","aria-valuemax":"100","aria-label":`Postęp: ${e.title}`},[s("span",{style:P({width:e.progress.percent+"%"})},null,4)],8,te),s("span",se,r(d(R)(e.progress)),1)]),_:2},1032,["to"]))),128))]),y.value.length?c("",!0):(l(),o("p",ae,"Nie masz jeszcze checklist. Utwórz pierwszą, np. na najbliższy zjazd."))]),_:1},8,["ready","error"])])}}});export{ue as default}; diff --git a/public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js b/public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js similarity index 97% rename from public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js rename to public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js index 0e0c73c..3796424 100644 --- a/public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js +++ b/public/assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js @@ -1 +1 @@ -import{d as D,n as p,c as y,e as b,b as r,t as n,a$ as N,p as S,f as C,C as _,X as T,r as v,Z as V}from"./index-CZVUqkdk.js";const M=["aria-labelledby","aria-describedby"],z=["id"],H=["id"],I={key:0,class:"error-text",role:"alert"},P={class:"btn-row chat-confirm-buttons"},X=["aria-busy","disabled"],Z=["disabled"],j=["disabled"],A=D({__name:"ConfirmDialog",props:{title:{},body:{default:""},confirmLabel:{},cancelLabel:{},extraLabel:{default:""},tone:{default:"neutral"},cancelClass:{default:"btn ghost"},extraClass:{default:"btn ghost"}},setup(g,{expose:k}){const t=g,i=T(),o=v(null),h=v(null),a=v(!1),s=v("");let u=null,d,m="cancel",f=null;function x(e={}){return f?.("cancel"),d=e.action,m="cancel",s.value="",a.value=!1,u=e.from??(document.activeElement instanceof HTMLElement?document.activeElement:null),o.value?.open||o.value?.showModal(),V(()=>h.value?.focus()),new Promise(l=>{f=l})}function c(e){m=e,o.value?.close()}function L(e){a.value&&e.preventDefault()}function $(){u?.isConnected&&u.focus(),u=null,d=void 0,a.value=!1;const e=f;f=null,e?.(m)}function B(e){e.target===o.value&&!a.value&&c("cancel")}async function E(){if(!a.value){if(!d){c("confirm");return}a.value=!0,s.value="";try{await d()}catch(e){a.value=!1,s.value=e instanceof Error?e.message:String(e);return}a.value=!1,c("confirm")}}return k({open:x}),(e,l)=>(p(),y("dialog",{ref_key:"dialog",ref:o,class:"chat-dialog chat-confirm confirm-dialog","aria-labelledby":`confirm-h-${b(i)}`,"aria-describedby":`confirm-b-${b(i)}`,onCancel:L,onClose:$,onClick:B},[r("h2",{id:`confirm-h-${b(i)}`,class:"chat-dialog-title"},n(t.title),9,z),r("p",{id:`confirm-b-${b(i)}`,class:"chat-confirm-body"},[N(e.$slots,"default",{},()=>[S(n(t.body),1)])],8,H),s.value?(p(),y("p",I,n(s.value),1)):C("",!0),r("div",P,[r("button",{class:_(["btn",{danger:t.tone==="danger"}]),type:"button","aria-busy":a.value?"true":void 0,disabled:a.value,onClick:E},n(t.confirmLabel),11,X),t.extraLabel?(p(),y("button",{key:0,class:_(t.extraClass),type:"button",disabled:a.value,onClick:l[0]||(l[0]=w=>c("extra"))},n(t.extraLabel),11,Z)):C("",!0),r("button",{ref_key:"cancelBtn",ref:h,class:_(t.cancelClass),type:"button",disabled:a.value,onClick:l[1]||(l[1]=w=>c("cancel"))},n(t.cancelLabel),11,j)])],40,M))}});export{A as _}; +import{d as D,n as p,c as y,e as b,b as r,t as n,a$ as N,p as S,f as C,C as _,X as T,r as v,Z as V}from"./index-DyD9x5ZD.js";const M=["aria-labelledby","aria-describedby"],z=["id"],H=["id"],I={key:0,class:"error-text",role:"alert"},P={class:"btn-row chat-confirm-buttons"},X=["aria-busy","disabled"],Z=["disabled"],j=["disabled"],A=D({__name:"ConfirmDialog",props:{title:{},body:{default:""},confirmLabel:{},cancelLabel:{},extraLabel:{default:""},tone:{default:"neutral"},cancelClass:{default:"btn ghost"},extraClass:{default:"btn ghost"}},setup(g,{expose:k}){const t=g,i=T(),o=v(null),h=v(null),a=v(!1),s=v("");let u=null,d,m="cancel",f=null;function x(e={}){return f?.("cancel"),d=e.action,m="cancel",s.value="",a.value=!1,u=e.from??(document.activeElement instanceof HTMLElement?document.activeElement:null),o.value?.open||o.value?.showModal(),V(()=>h.value?.focus()),new Promise(l=>{f=l})}function c(e){m=e,o.value?.close()}function L(e){a.value&&e.preventDefault()}function $(){u?.isConnected&&u.focus(),u=null,d=void 0,a.value=!1;const e=f;f=null,e?.(m)}function B(e){e.target===o.value&&!a.value&&c("cancel")}async function E(){if(!a.value){if(!d){c("confirm");return}a.value=!0,s.value="";try{await d()}catch(e){a.value=!1,s.value=e instanceof Error?e.message:String(e);return}a.value=!1,c("confirm")}}return k({open:x}),(e,l)=>(p(),y("dialog",{ref_key:"dialog",ref:o,class:"chat-dialog chat-confirm confirm-dialog","aria-labelledby":`confirm-h-${b(i)}`,"aria-describedby":`confirm-b-${b(i)}`,onCancel:L,onClose:$,onClick:B},[r("h2",{id:`confirm-h-${b(i)}`,class:"chat-dialog-title"},n(t.title),9,z),r("p",{id:`confirm-b-${b(i)}`,class:"chat-confirm-body"},[N(e.$slots,"default",{},()=>[S(n(t.body),1)])],8,H),s.value?(p(),y("p",I,n(s.value),1)):C("",!0),r("div",P,[r("button",{class:_(["btn",{danger:t.tone==="danger"}]),type:"button","aria-busy":a.value?"true":void 0,disabled:a.value,onClick:E},n(t.confirmLabel),11,X),t.extraLabel?(p(),y("button",{key:0,class:_(t.extraClass),type:"button",disabled:a.value,onClick:l[0]||(l[0]=w=>c("extra"))},n(t.extraLabel),11,Z)):C("",!0),r("button",{ref_key:"cancelBtn",ref:h,class:_(t.cancelClass),type:"button",disabled:a.value,onClick:l[1]||(l[1]=w=>c("cancel"))},n(t.cancelLabel),11,j)])],40,M))}});export{A as _}; diff --git a/public/assets/ConnectView-DVlfoZUg.js b/public/assets/ConnectView-B6wNmLO8.js similarity index 98% rename from public/assets/ConnectView-DVlfoZUg.js rename to public/assets/ConnectView-B6wNmLO8.js index d5bf020..a38a5d0 100644 --- a/public/assets/ConnectView-DVlfoZUg.js +++ b/public/assets/ConnectView-B6wNmLO8.js @@ -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-CZVUqkdk.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-DyD9x5ZD.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}; diff --git a/public/assets/CourseView-rxCXe-gk.js b/public/assets/CourseView-BfjIcRZN.js similarity index 95% rename from public/assets/CourseView-rxCXe-gk.js rename to public/assets/CourseView-BfjIcRZN.js index 03e7d1d..3cf6fdf 100644 --- a/public/assets/CourseView-rxCXe-gk.js +++ b/public/assets/CourseView-BfjIcRZN.js @@ -1 +1 @@ -import{_ as L}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as N}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as B}from"./ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.js";import{d as R,ae as D,o as S,U as V,c as a,i as p,j as y,r as T,al as j,ap as M,n as t,F as r,e as d,ah as q,p as z,b as e,t as n,f as i,E as g,C as A,K as F,a6 as C,s as O,T as P,ag as K,x as f,l as Z}from"./index-CZVUqkdk.js";const U={class:"card"},W={style:{margin:"0",display:"grid","grid-template-columns":"auto 1fr",gap:"4px 16px"}},Y={style:{margin:"0"}},G={style:{margin:"0"},class:"mono small"},H={style:{margin:"0"}},I={style:{margin:"0"}},J={key:0,style:{margin:"10px 0 0","white-space":"pre-line"}},Q={key:1,style:{margin:"10px 0 0"}},X=["href"],ee={class:"section","aria-labelledby":"sess-h"},se={class:"section-head"},te={class:"muted small"},ae={key:0,class:"rows"},le={class:"row-main"},oe={class:"title"},ne={class:"when"},ie={class:"muted small"},re={key:0},de={key:1,class:"badge online",style:{"margin-left":"6px"}},ue={key:2,class:"badge onsite",style:{"margin-left":"6px"}},_e={key:3},ce={key:4},me={key:1,class:"empty"},pe={class:"section","aria-labelledby":"read-h"},ye={class:"section-head"},ge={class:"muted small"},ve={class:"rows"},he={class:"rows"},ke={key:1,class:"empty"},fe={class:"section","aria-labelledby":"mat-h"},be={class:"section-head"},we={class:"muted small"},xe={key:0,class:"rows"},Be={class:"muted small"},Te={class:"badge"},ze={key:0},Ce={key:1},Oe={key:1,class:"empty"},Re=R({__name:"CourseView",props:{id:{}},setup($){const v=$,c=D(),o=T(null),h=T("");async function k(){o.value=null,h.value="";try{o.value=await j.course(Number(v.id))}catch(u){h.value=M(u)}}S(()=>{k(),c.loadReadings()}),V(()=>v.id,()=>{k()});const m=f(()=>c.allReadings.filter(u=>u.course_id===Number(v.id))),b=f(()=>m.value.filter(u=>u.is_required)),w=f(()=>m.value.filter(u=>!u.is_required)),E=Date.now();return(u,l)=>{const x=Z("router-link");return t(),a("div",null,[p(N,{ready:!!o.value,error:h.value,onRetry:l[0]||(l[0]=s=>k())},{default:y(()=>[o.value?(t(),a(r,{key:0},[p(L,{eyebrow:`${d(q)[o.value.form]} · semestr ${o.value.semester}`,title:o.value.name},{default:y(()=>[p(x,{class:"btn small ghost",to:"/przedmioty"},{default:y(()=>[...l[1]||(l[1]=[z("← Przedmioty",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),e("section",U,[e("dl",W,[o.value.lecturer?(t(),a(r,{key:0},[l[2]||(l[2]=e("dt",{class:"muted"},"Prowadzący",-1)),e("dd",Y,n(o.value.lecturer),1)],64)):i("",!0),o.value.code?(t(),a(r,{key:1},[l[3]||(l[3]=e("dt",{class:"muted"},"Kod",-1)),e("dd",G,n(o.value.code),1)],64)):i("",!0),o.value.ects?(t(),a(r,{key:2},[l[4]||(l[4]=e("dt",{class:"muted"},"ECTS",-1)),e("dd",H,n(o.value.ects),1)],64)):i("",!0),o.value.assessment?(t(),a(r,{key:3},[l[5]||(l[5]=e("dt",{class:"muted"},"Zaliczenie",-1)),e("dd",I,n(o.value.assessment),1)],64)):i("",!0),o.value.elective_group?(t(),a(r,{key:4},[l[6]||(l[6]=e("dt",{class:"muted"},"Wybór",-1)),l[7]||(l[7]=e("dd",{style:{margin:"0"}},[e("span",{class:"badge alert"},"do wyboru")],-1))],64)):i("",!0)]),o.value.description?(t(),a("p",J,n(o.value.description),1)):i("",!0),o.value.syllabus_url?(t(),a("p",Q,[e("a",{href:o.value.syllabus_url,target:"_blank",rel:"noopener noreferrer"},"Sylabus",8,X)])):i("",!0)]),e("section",ee,[e("div",se,[l[8]||(l[8]=e("h2",{id:"sess-h"},"Zajęcia",-1)),e("span",te,n(o.value.sessions.length),1)]),o.value.sessions.length?(t(),a("ul",ae,[(t(!0),a(r,null,g(o.value.sessions,s=>(t(),a("li",{key:s.id,class:A({past:Date.parse(s.ends_at)s.read_at).length)+"/"+n(m.value.length),1)]),m.value.length?(t(),a(r,{key:0},[b.value.length?(t(),a(r,{key:0},[l[10]||(l[10]=e("h3",{class:"subhead"},"Obowiązkowe",-1)),e("ul",ve,[(t(!0),a(r,null,g(b.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:_=>d(c).toggleReading(s.id,_),onOwn:_=>d(c).toggleOwned(s.id,_)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0),w.value.length?(t(),a(r,{key:1},[l[11]||(l[11]=e("h3",{class:"subhead"},"Dodatkowe",-1)),e("ul",he,[(t(!0),a(r,null,g(w.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:_=>d(c).toggleReading(s.id,_),onOwn:_=>d(c).toggleOwned(s.id,_)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0)],64)):(t(),a("p",ke,"Brak lektur."))]),e("section",fe,[e("div",be,[l[12]||(l[12]=e("h2",{id:"mat-h"},"Materiały",-1)),e("span",we,n(o.value.materials.length),1)]),o.value.materials.length?(t(),a("ul",xe,[(t(!0),a(r,null,g(o.value.materials,s=>(t(),a("li",{key:s.id},[p(x,{to:`/materialy/${s.id}`,class:"title"},{default:y(()=>[z(n(s.title),1)]),_:2},1032,["to"]),e("div",Be,[e("span",Te,n(d(P)[s.type]),1),s.is_private?(t(),a("span",ze,[...l[13]||(l[13]=[e("span",{class:"badge alert"},"prywatny",-1)])])):i("",!0),s.files_count?(t(),a("span",Ce," · "+n(d(K)(s.files_count,"plik","pliki","plików")),1)):i("",!0)])]))),128))])):(t(),a("p",Oe,"Brak materiałów."))])],64)):i("",!0)]),_:1},8,["ready","error"])])}}});export{Re as default}; +import{_ as L}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as N}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as B}from"./ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.js";import{d as R,ae as D,o as S,U as V,c as a,i as p,j as y,r as T,al as j,ap as M,n as t,F as r,e as d,ah as q,p as z,b as e,t as n,f as i,E as g,C as A,K as F,a6 as C,s as O,T as P,ag as K,x as f,l as Z}from"./index-DyD9x5ZD.js";const U={class:"card"},W={style:{margin:"0",display:"grid","grid-template-columns":"auto 1fr",gap:"4px 16px"}},Y={style:{margin:"0"}},G={style:{margin:"0"},class:"mono small"},H={style:{margin:"0"}},I={style:{margin:"0"}},J={key:0,style:{margin:"10px 0 0","white-space":"pre-line"}},Q={key:1,style:{margin:"10px 0 0"}},X=["href"],ee={class:"section","aria-labelledby":"sess-h"},se={class:"section-head"},te={class:"muted small"},ae={key:0,class:"rows"},le={class:"row-main"},oe={class:"title"},ne={class:"when"},ie={class:"muted small"},re={key:0},de={key:1,class:"badge online",style:{"margin-left":"6px"}},ue={key:2,class:"badge onsite",style:{"margin-left":"6px"}},_e={key:3},ce={key:4},me={key:1,class:"empty"},pe={class:"section","aria-labelledby":"read-h"},ye={class:"section-head"},ge={class:"muted small"},ve={class:"rows"},he={class:"rows"},ke={key:1,class:"empty"},fe={class:"section","aria-labelledby":"mat-h"},be={class:"section-head"},we={class:"muted small"},xe={key:0,class:"rows"},Be={class:"muted small"},Te={class:"badge"},ze={key:0},Ce={key:1},Oe={key:1,class:"empty"},Re=R({__name:"CourseView",props:{id:{}},setup($){const v=$,c=D(),o=T(null),h=T("");async function k(){o.value=null,h.value="";try{o.value=await j.course(Number(v.id))}catch(u){h.value=M(u)}}S(()=>{k(),c.loadReadings()}),V(()=>v.id,()=>{k()});const m=f(()=>c.allReadings.filter(u=>u.course_id===Number(v.id))),b=f(()=>m.value.filter(u=>u.is_required)),w=f(()=>m.value.filter(u=>!u.is_required)),E=Date.now();return(u,l)=>{const x=Z("router-link");return t(),a("div",null,[p(N,{ready:!!o.value,error:h.value,onRetry:l[0]||(l[0]=s=>k())},{default:y(()=>[o.value?(t(),a(r,{key:0},[p(L,{eyebrow:`${d(q)[o.value.form]} · semestr ${o.value.semester}`,title:o.value.name},{default:y(()=>[p(x,{class:"btn small ghost",to:"/przedmioty"},{default:y(()=>[...l[1]||(l[1]=[z("← Przedmioty",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),e("section",U,[e("dl",W,[o.value.lecturer?(t(),a(r,{key:0},[l[2]||(l[2]=e("dt",{class:"muted"},"Prowadzący",-1)),e("dd",Y,n(o.value.lecturer),1)],64)):i("",!0),o.value.code?(t(),a(r,{key:1},[l[3]||(l[3]=e("dt",{class:"muted"},"Kod",-1)),e("dd",G,n(o.value.code),1)],64)):i("",!0),o.value.ects?(t(),a(r,{key:2},[l[4]||(l[4]=e("dt",{class:"muted"},"ECTS",-1)),e("dd",H,n(o.value.ects),1)],64)):i("",!0),o.value.assessment?(t(),a(r,{key:3},[l[5]||(l[5]=e("dt",{class:"muted"},"Zaliczenie",-1)),e("dd",I,n(o.value.assessment),1)],64)):i("",!0),o.value.elective_group?(t(),a(r,{key:4},[l[6]||(l[6]=e("dt",{class:"muted"},"Wybór",-1)),l[7]||(l[7]=e("dd",{style:{margin:"0"}},[e("span",{class:"badge alert"},"do wyboru")],-1))],64)):i("",!0)]),o.value.description?(t(),a("p",J,n(o.value.description),1)):i("",!0),o.value.syllabus_url?(t(),a("p",Q,[e("a",{href:o.value.syllabus_url,target:"_blank",rel:"noopener noreferrer"},"Sylabus",8,X)])):i("",!0)]),e("section",ee,[e("div",se,[l[8]||(l[8]=e("h2",{id:"sess-h"},"Zajęcia",-1)),e("span",te,n(o.value.sessions.length),1)]),o.value.sessions.length?(t(),a("ul",ae,[(t(!0),a(r,null,g(o.value.sessions,s=>(t(),a("li",{key:s.id,class:A({past:Date.parse(s.ends_at)s.read_at).length)+"/"+n(m.value.length),1)]),m.value.length?(t(),a(r,{key:0},[b.value.length?(t(),a(r,{key:0},[l[10]||(l[10]=e("h3",{class:"subhead"},"Obowiązkowe",-1)),e("ul",ve,[(t(!0),a(r,null,g(b.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:_=>d(c).toggleReading(s.id,_),onOwn:_=>d(c).toggleOwned(s.id,_)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0),w.value.length?(t(),a(r,{key:1},[l[11]||(l[11]=e("h3",{class:"subhead"},"Dodatkowe",-1)),e("ul",he,[(t(!0),a(r,null,g(w.value,s=>(t(),O(B,{key:s.id,reading:s,onToggle:_=>d(c).toggleReading(s.id,_),onOwn:_=>d(c).toggleOwned(s.id,_)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):i("",!0)],64)):(t(),a("p",ke,"Brak lektur."))]),e("section",fe,[e("div",be,[l[12]||(l[12]=e("h2",{id:"mat-h"},"Materiały",-1)),e("span",we,n(o.value.materials.length),1)]),o.value.materials.length?(t(),a("ul",xe,[(t(!0),a(r,null,g(o.value.materials,s=>(t(),a("li",{key:s.id},[p(x,{to:`/materialy/${s.id}`,class:"title"},{default:y(()=>[z(n(s.title),1)]),_:2},1032,["to"]),e("div",Be,[e("span",Te,n(d(P)[s.type]),1),s.is_private?(t(),a("span",ze,[...l[13]||(l[13]=[e("span",{class:"badge alert"},"prywatny",-1)])])):i("",!0),s.files_count?(t(),a("span",Ce," · "+n(d(K)(s.files_count,"plik","pliki","plików")),1)):i("",!0)])]))),128))])):(t(),a("p",Oe,"Brak materiałów."))])],64)):i("",!0)]),_:1},8,["ready","error"])])}}});export{Re as default}; diff --git a/public/assets/CoursesView-BpOD1b5y.js b/public/assets/CoursesView-Xix5tx0p.js similarity index 89% rename from public/assets/CoursesView-BpOD1b5y.js rename to public/assets/CoursesView-Xix5tx0p.js index 172e367..111e8e5 100644 --- a/public/assets/CoursesView-BpOD1b5y.js +++ b/public/assets/CoursesView-Xix5tx0p.js @@ -1 +1 @@ -import{_ as C}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.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-CZVUqkdk.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-DTbBIdvR.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as x}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.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-DyD9x5ZD.js";const L={key:0,class:"chips",role:"group","aria-label":"Semestr"},M=["aria-pressed"],P=["aria-pressed","onClick"],R={key:1,class:"stack",style:{"margin-top":"10px"}},T={class:"row-main"},A={class:"badge"},D={class:"muted small",style:{margin:"0 0 6px"}},O={key:0},U={key:1},W={key:2},q={class:"small",style:{margin:"0"}},G={key:0,class:"badge alert"},H={class:"muted"},I={key:2,class:"empty"},ee=z({__name:"CoursesView",setup(J){const l=B(),g=$(),i=N(null);S(()=>{l.loadCourses()});const p=f(()=>[...new Set((l.courses??[]).map(u=>u.semester))].sort((u,d)=>u-d)),y=f(()=>l.visibleCourses.filter(u=>i.value===null||u.semester===i.value));return(u,d)=>{const b=F("router-link");return s(),t("div",null,[m(C,{eyebrow:"Program studiów",title:"Przedmioty"}),m(w,{ready:o(l).loaded.courses,error:o(l).error,onRetry:d[1]||(d[1]=e=>o(l).retry())},{default:k(()=>[m(x),p.value.length>1?(s(),t("div",L,[r("button",{class:"chip",type:"button","aria-pressed":i.value===null,onClick:d[0]||(d[0]=e=>i.value=null)},"Wszystkie",8,M),(s(!0),t(c,null,v(p.value,e=>(s(),t("button",{key:e,class:"chip",type:"button","aria-pressed":i.value===e,onClick:K=>i.value=e},"Semestr "+a(e),9,P))),128))])):n("",!0),y.value.length?(s(),t("div",R,[(s(!0),t(c,null,v(y.value,e=>(s(),E(b,{key:e.id,to:`/przedmioty/${e.id}`,class:"card link"},{default:k(()=>[r("div",T,[r("h3",null,a(e.name),1),r("span",A,a(o(V)[e.form]),1)]),r("p",D,[e.lecturer?(s(),t("span",O,a(e.lecturer),1)):n("",!0),e.ects?(s(),t("span",U," · "+a(e.ects)+" ECTS",1)):n("",!0),e.assessment?(s(),t("span",W," · "+a(e.assessment),1)):n("",!0)]),r("p",q,[o(j)(e,o(g).choices)?(s(),t("span",G,"do wyboru")):n("",!0),r("span",H,[_(a(o(h)(e.counts.sessions,"zajęcia","zajęcia","zajęć")),1),e.counts.readings?(s(),t(c,{key:0},[_(" · lektury "+a(e.counts.readings_read)+"/"+a(e.counts.readings),1)],64)):n("",!0),e.counts.materials?(s(),t(c,{key:1},[_(" · "+a(o(h)(e.counts.materials,"materiał","materiały","materiałów")),1)],64)):n("",!0)])])]),_:2},1032,["to"]))),128))])):(s(),t("p",I,"Brak przedmiotów."))]),_:1},8,["ready","error"])])}}});export{ee as default}; diff --git a/public/assets/DashboardView-BDdrGOAV.js b/public/assets/DashboardView-BDdrGOAV.js new file mode 100644 index 0000000..4bc7f7d --- /dev/null +++ b/public/assets/DashboardView-BDdrGOAV.js @@ -0,0 +1,2 @@ +import{y as ze,z as Ae,B as Fe,T as xt,d as ue,n as a,c as s,C as de,b as n,t as v,p as ee,e as p,D as It,f as x,F,E as ae,s as me,j as pe,G as Ct,H as Se,i as L,x as m,l as dt,I as Et,J as jt,K as Le,r as $,L as Tt,M as Dt,R as Mt,N as mt,O as vt,P as St,Q as Bt,S as Lt,U as ce,V as xe,_ as oe,w as Pe,v as qe,W as Nt,h as He,X as je,Y as pt,Z as Q,$ as Ce,a0 as ye,a1 as Ye,o as Ue,a2 as Rt,a3 as Wt,a4 as Ee,a5 as tt,a6 as Ne,a7 as At,q as Pt,a8 as Ge,a9 as qt,aa as Ht,ab as Ut,ac as Ot,ad as Kt,u as Ft,ae as Zt,af as Vt,ag as Xt,k as Yt,m as Gt,ah as Qt,ai as Jt,aj as en,ak as tn,al as nn}from"./index-DyD9x5ZD.js";import{_ as an}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as sn}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as st}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js";import{e as we,s as ot,f as lt}from"./safeText-O-oWGdGq.js";import{n as ft}from"./tabs-nNm7HGNT.js";const on=5,Qe=t=>`${t}T12:00:00Z`;function it(t,i){return Ae(Qe(i),new Date(Qe(t)))}function ln(t,i,e,o=new Date){let l;if(i){const u=it(t.starts_on,t.ends_on)+1;l={value:`${Math.min(Math.max(it(t.starts_on,ze(o))+1,1),u)}/${u}`,caption:"dzień zjazdu"}}else{const u=Math.max(Ae(Qe(t.starts_on),o),0);l={value:String(u),caption:Fe(u,"dzień do zjazdu","dni do zjazdu","dni do zjazdu")}}const r=t.sessions_count,c=o.getTime(),h=e.filter(u=>Date.parse(u.due_at)>=c&&ze(u.due_at)<=t.ends_on).length;return[l,{value:String(r),caption:Fe(r,"zajęcia","zajęcia","zajęć")},{value:String(h),caption:Fe(h,"termin do końca zjazdu","terminy do końca zjazdu","terminów do końca zjazdu")}]}function rn(t,i){return i.filter(e=>{if(e.meeting_id!==null)return e.meeting_id===t.id;const o=ze(e.starts_at);return o>=t.starts_on&&o<=t.ends_on})}const un=/^https?:\/\//i;function rt(t){const i=[t.is_required?"obowiązkowa":"",t.author??"",t.course?.name??""].filter(o=>o!=="").join(" · "),e=t.url&&un.test(t.url)?t.url:null;return{key:`r${t.id}`,title:t.title,meta:i,href:e,to:`/lektury#lektura-${t.id}`}}function cn(t){const i=[xt[t.type]??"",t.course?.name??""].filter(e=>e!=="").join(" · ");return{key:`m${t.id}`,title:t.title,meta:i,href:null,to:`/materialy/${t.id}`}}function dn(t){return[...t.filter(i=>i.is_required),...t.filter(i=>!i.is_required)]}function mn(t,i,e,o,l=on){const r=e.filter(d=>d.meeting_id===t.id),c=o.filter(d=>d.meeting_id===t.id);let h,u;if(r.length||c.length)u=[...dn(r.filter(d=>d.read_at===null)).map(rt),...c.map(cn)],h=u.length?"meeting":"done";else{const d=new Set(rn(t,i).map(y=>y.course_id));u=e.filter(y=>y.is_required&&y.read_at===null&&d.has(y.course_id)).map(rt),h=u.length?"courses":"none"}const _=u.slice(l),f=_.length&&_.every(d=>d.key.startsWith("m"))?"/materialy":"/lektury";return{source:h,items:u.slice(0,l),more:_.length,moreTo:f}}const vn={class:"hero-main"},pn={class:"eyebrow hero-eyebrow"},fn={id:"hero-h",class:"hero-title"},hn={class:"hero-dates"},yn={key:0,class:"hero-extra muted"},bn={class:"hero-stats"},_n={class:"hero-num"},kn={class:"hero-cap"},gn={class:"hero-cap"},$n=["aria-valuenow"],wn={class:"hero-timeline"},zn={class:"eyebrow"},xn={key:0,class:"hero-rows"},In=["href"],Cn={key:2,class:"hero-read-meta"},En={key:0,class:"hero-more"},jn={key:1,class:"muted"},Tn={key:1,class:"card hero hero-empty","aria-labelledby":"hero-h"},Dn={class:"hero-main"},Mn=ue({__name:"ZjazdHero",props:{meeting:{},isCurrent:{type:Boolean},schedule:{},deadlines:{},readings:{},materials:{},now:{},checklist:{}},setup(t){const i=t,e=m(()=>Et(i.meeting?.notes)),o=m(()=>jt(i.meeting?.notes)),l=m(()=>i.meeting?ln(i.meeting,i.isCurrent,i.deadlines,i.now):[]),r=m(()=>i.meeting&&i.materials?mn(i.meeting,i.schedule,i.readings,i.materials):null),c=m(()=>({name:"schedule",query:{zjazd:i.meeting?.number}}));return(h,u)=>{const _=dt("router-link");return t.meeting?(a(),s("section",{key:0,class:de(["card hero",{hl:t.isCurrent}]),"aria-labelledby":"hero-h"},[n("div",vn,[n("span",pn,v(t.isCurrent?"Trwa zjazd":"Najbliższy zjazd"),1),n("h2",fn,"Zjazd "+v(t.meeting.number),1),n("p",hn,[ee(v(p(It)(t.meeting.starts_on,t.meeting.ends_on))+" ",1),e.value?(a(),s("span",{key:0,class:de(["badge",e.value==="online"?"online":"onsite"])},v(e.value),3)):x("",!0)]),o.value?(a(),s("p",yn,v(o.value),1)):x("",!0),n("ul",bn,[(a(!0),s(F,null,ae(l.value,f=>(a(),s("li",{key:f.caption},[n("span",_n,v(f.value),1),n("span",kn,v(f.caption),1)]))),128))]),t.checklist?(a(),me(_,{key:1,class:"hero-prep",to:`/checklisty/${t.checklist.id}`,"aria-label":"Przygotowanie do zjazdu"},{default:pe(()=>[n("span",gn,"Przygotowanie · "+v(p(Ct)(t.checklist.progress)),1),n("span",{class:"progress-bar",role:"progressbar","aria-valuenow":t.checklist.progress.percent,"aria-valuemin":"0","aria-valuemax":"100"},[n("span",{style:Se({width:t.checklist.progress.percent+"%"})},null,4)],8,$n)]),_:1},8,["to"])):x("",!0),L(_,{class:"btn hero-btn",to:c.value},{default:pe(()=>[...u[0]||(u[0]=[ee("Zobacz plan zjazdu",-1)])]),_:1},8,["to"])]),n("div",wn,[n("span",zn,v(r.value?.source==="courses"?"Czytaj teraz":"Do przeczytania na zjazd"),1),r.value?(a(),s(F,{key:0},[r.value.items.length?(a(),s("ul",xn,[(a(!0),s(F,null,ae(r.value.items,f=>(a(),s("li",{key:f.key},[f.href?(a(),s("a",{key:0,class:"hero-read-title",href:f.href,target:"_blank",rel:"noopener"},v(f.title),9,In)):(a(),me(_,{key:1,class:"hero-read-title",to:f.to},{default:pe(()=>[ee(v(f.title),1)]),_:2},1032,["to"])),f.meta?(a(),s("span",Cn,v(f.meta),1)):x("",!0)]))),128)),r.value.more>0?(a(),s("li",En,[L(_,{to:r.value.moreTo},{default:pe(()=>[ee("+ "+v(r.value.more)+" więcej",1)]),_:1},8,["to"])])):x("",!0)])):(a(),s("p",jn,v(r.value.source==="done"?"Wszystko na ten zjazd przeczytane.":"Nic do przeczytania na ten zjazd."),1))],64)):x("",!0)])],2)):(a(),s("section",Tn,[n("div",Dn,[u[2]||(u[2]=n("h2",{id:"hero-h",class:"hero-empty-h"},"Brak zaplanowanych zjazdów",-1)),u[3]||(u[3]=n("p",{class:"muted"},"Plan kolejnych zjazdów pojawi się tutaj, gdy zostanie opublikowany.",-1)),L(_,{class:"btn hero-btn",to:"/plan"},{default:pe(()=>[...u[1]||(u[1]=[ee("Cały plan",-1)])]),_:1})])]))}}});function ht(t){const i=t.indexOf("@");return i>0?t.slice(0,i):t}function $e(t,i=""){const e=t?.name?.trim()??"",o=t?.surname?.trim()??"";if(e&&t?.is_bot)return e;if(e&&o)return`${e} ${o[0]}.`;if(e)return e;if(t?.handle)return`@${t.handle}`;const l=i.trim();return l?ht(l):"Nieznana osoba"}function Re(t,i=""){return[t?.name?.trim(),t?.surname?.trim()].filter(Boolean).join(" ")||$e(t,i)}function yt(t,i=""){const e=t?.name?.trim()??"",o=t?.surname?.trim()??"";let l="";return e||o?l=e.slice(0,1)+o.slice(0,1):t?.handle?l=t.handle.slice(0,2):l=ht(i.trim()).slice(0,2),(l||"?").toLocaleUpperCase("pl-PL")}function Sn(t){return Math.abs(Math.trunc(t))%8+1}function Bn(t,i=new Date){const e=Ae(t,i);if(e===0)return"DZIŚ";if(e===-1)return"WCZORAJ";const o=ze(t).slice(0,4);return(o===ze(i).slice(0,4)?Le(t):`${Le(t)} ${o}`).toLocaleUpperCase("pl-PL")}const Ln=300*1e3;function Nn(t,i=new Date){const e=[];let o=null,l="";for(const r of t){const c=ze(r.created_at),h=c!==l;h&&e.push({kind:"day",key:`day-${c}`,label:Bn(r.created_at,i)});const u=!h&&o!==null&&o.sender_id===r.sender_id&&Date.parse(r.created_at)-Date.parse(o.created_at)<=Ln;e.push({kind:"message",key:`m-${r.id}`,message:r,followUp:u}),o=r,l=c}return e}function Ze(t){return t.toLocaleLowerCase("pl-PL").replace(/ł/g,"l").normalize("NFD").replace(/\p{Diacritic}/gu,"")}function Je(t,i,e){const o=Ze(i.trim()),l=[];for(const r of t){if(r.id===e)continue;const c=Ze(r.name??""),h=Ze(r.surname??"");(!o||c.startsWith(o)||h.startsWith(o)||`${c} ${h}`.startsWith(o))&&l.push(r)}return l.sort((r,c)=>Re(r).localeCompare(Re(c),"pl"))}const Rn=10;function Wn(t,i){const e=t.slice(0,Rn).map(l=>$e(i.get(l))),o=t.length-e.length;return o>0?`${e.join(", ")} i ${o} innych`:e.join(", ")}const ut=' target="_blank" rel="noopener noreferrer nofollow"',bt=/(?"'`]+/gi;function kt(t,i){if(i(t))return{handle:t,rest:""};const e=t.replace(/[.-]+$/,"");return e.length>=2&&e!==t&&i(e)?{handle:e,rest:t.slice(e.length)}:null}function qn(t){let i=t;for(;;){const e=i.at(-1);if(!e)break;if(`.,;:!?'"]}`.includes(e)){i=i.slice(0,-1);continue}if(e===")"&&(i.match(/\(/g)?.length??0)<(i.match(/\)/g)?.length??0)){i=i.slice(0,-1);continue}break}return{url:i,rest:t.slice(i.length)}}function Hn(t,i=new Map){if(!t)return"";const e=[],o=c=>c.replace(/\u0000(\d+)\u0000/g,(h,u)=>e[Number(u)]??""),l=c=>`\0${e.push(o(c))-1}\0`;let r=t.replace(/\r\n?/g,` +`).replace(/\u0000/g,"");return r=r.replace(_t,(c,h)=>l(`${we(h)}`)),r=r.replace(An,(c,h,u)=>{if(u.includes("\0"))return c;const _=ot(u),f=lt(we(h));if(!_)return l(f);const d=/^https?:/i.test(_)?ut:"";return l(`${f}`)}),r=r.replace(Pn,c=>{if(c.includes("\0"))return c;const{url:h,rest:u}=qn(c),_=ot(h);return _?l(`${we(h)}`)+u:c}),r=r.replace(bt,(c,h)=>{const u=kt(h,d=>i.has(d));if(!u)return c;const _=i.get(u.handle),f=`@${$e(_)}`;return l(`${we(f)}`)+u.rest}),r=lt(we(r)).replace(/\n/g,"
"),o(r)}function Un(t,i){if(!t||!i)return!1;const e=t.replace(_t," ");for(const o of e.matchAll(bt))if(kt(o[1],l=>l===i))return!0;return!1}function On(t,i){const e=t.slice(0,Math.max(0,i)),o=/(^|\s)@([^\s@]*)$/u.exec(e);return o?{start:e.length-o[2].length-1,query:o[2]}:null}function Kn(t,i,e){const o=t.slice(0,i.start),l=t.slice(i.end),r=`@${e}`;return l.startsWith(" ")?{text:o+r+l,caret:o.length+r.length+1}:{text:`${o}${r} ${l}`,caret:o.length+r.length+1}}function nt(t){const i=$(!1);if(typeof window>"u"||typeof window.matchMedia!="function")return i;const e=window.matchMedia(t);i.value=e.matches;const o=l=>{i.value=l.matches};return e.addEventListener("change",o),Tt()&&Dt(()=>e.removeEventListener("change",o)),i}function Fn(t){return nt(`(min-width: ${t}px)`)}const Zn={class:"embed-main"},Vn={class:"embed-type"},Xn={class:"embed-title"},Yn={key:0,class:"embed-meta"},Gn={key:1,class:"embed-card static"},Qn={class:"embed-main"},Jn={class:"embed-type"},ea={class:"embed-title"},ta={key:0,class:"embed-meta"},na={key:2,class:"embed-card unavailable"},aa={class:"embed-main"},sa={class:"embed-type"},oa={key:3,class:"embed-card loading","aria-busy":"true"},la={class:"embed-main"},ia={class:"embed-type"},gt=ue({__name:"EmbedCard",props:{embedRef:{},item:{},static:{type:Boolean}},setup(t){const i=t,e=m(()=>mt[i.embedRef.type]),o=m(()=>i.item===void 0),l=m(()=>i.item??null),r=m(()=>l.value?vt(l.value):""),c=m(()=>l.value?St(l.value):""),h=m(()=>l.value?Bt(l.value):null),u=m(()=>l.value?Lt(l.value):"");return(_,f)=>l.value&&!t.static?(a(),me(p(Mt),{key:0,class:"embed-card",to:u.value},{default:pe(()=>[n("span",Zn,[n("span",Vn,v(e.value),1),n("span",Xn,v(r.value),1),c.value?(a(),s("span",Yn,v(c.value),1)):x("",!0)]),h.value?(a(),s("span",{key:0,class:de(["badge",{warn:h.value.warn}])},v(h.value.text),3)):x("",!0)]),_:1},8,["to"])):l.value?(a(),s("span",Gn,[n("span",Qn,[n("span",Jn,v(e.value),1),n("span",ea,v(r.value),1),c.value?(a(),s("span",ta,v(c.value),1)):x("",!0)]),h.value?(a(),s("span",{key:0,class:de(["badge",{warn:h.value.warn}])},v(h.value.text),3)):x("",!0)])):o.value?(a(),s("span",oa,[n("span",la,[n("span",ia,v(e.value),1),f[2]||(f[2]=n("span",{class:"embed-title"},[n("span",{class:"skeleton embed-skeleton","aria-label":"Wczytywanie"})],-1)),f[3]||(f[3]=n("span",{class:"embed-meta"}," ",-1))])])):(a(),s("div",na,[n("span",aa,[n("span",sa,v(e.value),1),f[0]||(f[0]=n("span",{class:"embed-title"},"Element niedostępny",-1)),f[1]||(f[1]=n("span",{class:"embed-meta"},"Ten element usunięto albo nie masz do niego dostępu.",-1))])]))}}),ra=["aria-labelledby"],ua={class:"chat-dialog-head"},ca=["id"],da={class:"embed-tabs",role:"tablist","aria-label":"Rodzaj elementu"},ma=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],va=["id","aria-labelledby"],pa={class:"field"},fa=["for"],ha=["id","placeholder"],ya={class:"picker-results"},ba={key:0,class:"embed-searching",role:"status"},_a={key:1,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Szukam…"},ka={key:2,class:"notice error",role:"alert"},ga={key:3,class:"empty"},$a={key:4,class:"empty"},wa={key:5,class:"picker-rows"},za=["aria-disabled","onClick"],xa={key:0,class:"embed-staged"},Ia=250,Ca=ue({__name:"EmbedPicker",props:{staged:{}},emits:["pick"],setup(t,{expose:i,emit:e}){const o=t,l=e,r=[{type:"deadline",label:"Terminy",placeholder:"Szukaj terminu…"},{type:"class",label:"Zajęcia",placeholder:"Szukaj zajęć…"},{type:"reading",label:"Lektury",placeholder:"Szukaj lektury…"}],c=je(),h=$(null),u=$(null),_=$([]),f=$("deadline"),d=$(""),y=$(null),C=$("idle"),U=$("");let O=0,k=null,I=null,E=!1;const R=m(()=>r.find(T=>T.type===f.value)??r[0]),q=m(()=>new Set(o.staged));async function W(){k&&clearTimeout(k),k=null;const T=++O,H=f.value,M=d.value.trim();C.value="loading";try{const te=await pt.embeds(H,M);if(T!==O)return;y.value=Array.isArray(te)?te.filter(j=>j&&j.type===H):[],U.value=M,C.value="ready"}catch{if(T!==O)return;C.value="error"}}function le(){k&&clearTimeout(k),k=setTimeout(()=>{W()},Ia)}ce(d,le);function G(T,H=!1){f.value!==T&&(f.value=T,y.value=null,W()),H&&Q(()=>_.value[r.findIndex(M=>M.type===T)]?.focus())}function ne(T,H){let M=-1;T.key==="ArrowRight"?M=(H+1)%r.length:T.key==="ArrowLeft"?M=(H-1+r.length)%r.length:T.key==="Home"?M=0:T.key==="End"&&(M=r.length-1),!(M<0)&&(T.preventDefault(),G(r[M].type,!0))}function V(){I=document.activeElement instanceof HTMLElement?document.activeElement:null,E=!1,d.value="",y.value=null,h.value?.showModal(),W(),Q(()=>u.value?.focus())}function se(){h.value?.close()}function ve(){k&&clearTimeout(k),k=null,O++,E||I?.focus(),I=null}function N(T){T.target===h.value&&se()}function S(T){return q.value.has(Ce(T))}function A(T){S(T)||(E=!0,se(),l("pick",T))}return xe(()=>{k&&clearTimeout(k)}),i({open:V}),(T,H)=>(a(),s("dialog",{ref_key:"dialog",ref:h,class:"chat-dialog embed-picker","aria-labelledby":`embed-h-${p(c)}`,onClose:ve,onClick:N},[n("div",ua,[n("h2",{id:`embed-h-${p(c)}`,class:"chat-dialog-title"},"Podepnij do wiadomości",8,ca),n("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:se},[L(oe,{name:"close"})])]),n("div",da,[(a(),s(F,null,ae(r,(M,te)=>n("button",{id:`embed-tab-${p(c)}-${M.type}`,key:M.type,ref_for:!0,ref_key:"tabEls",ref:_,class:"embed-tab",type:"button",role:"tab","aria-selected":f.value===M.type?"true":"false","aria-controls":`embed-panel-${p(c)}`,tabindex:f.value===M.type?0:-1,onClick:j=>G(M.type),onKeydown:j=>ne(j,te)},v(M.label),41,ma)),64))]),n("div",{id:`embed-panel-${p(c)}`,class:"embed-panel",role:"tabpanel","aria-labelledby":`embed-tab-${p(c)}-${f.value}`},[n("div",pa,[n("label",{for:`embed-q-${p(c)}`},"Szukaj",8,fa),Pe(n("input",{id:`embed-q-${p(c)}`,ref_key:"search",ref:u,"onUpdate:modelValue":H[0]||(H[0]=M=>d.value=M),type:"text",autocomplete:"off",placeholder:R.value.placeholder,onKeydown:H[1]||(H[1]=Nt(He(()=>{},["prevent"]),["enter"]))},null,40,ha),[[qe,d.value]])]),n("div",ya,[C.value==="loading"&&y.value?(a(),s("p",ba,"Szukam…")):x("",!0),C.value==="loading"&&!y.value?(a(),s("div",_a,[...H[2]||(H[2]=[n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1)])])):C.value==="error"?(a(),s("div",ka,[H[3]||(H[3]=ee(" Nie udało się wczytać wyników. ",-1)),n("button",{class:"linkish",type:"button",onClick:W},"Spróbuj ponownie")])):y.value&&!y.value.length&&U.value?(a(),s("p",ga,"Nic nie znaleziono dla „"+v(U.value)+"”.",1)):y.value&&!y.value.length?(a(),s("p",$a,"Nic tu jeszcze nie ma.")):y.value?(a(),s("ul",wa,[(a(!0),s(F,null,ae(y.value,M=>(a(),s("li",{key:`${M.type}:${M.id}`},[n("button",{class:"picker-row embed-pick",type:"button","aria-disabled":S(M)?"true":void 0,onClick:te=>A(M)},[L(gt,{"embed-ref":M,item:M,static:""},null,8,["embed-ref","item"]),S(M)?(a(),s("span",xa,"podpięte")):x("",!0)],8,za)]))),128))])):x("",!0)])],8,va)],40,ra))}}),Be=ue({__name:"Avatar",props:{userId:{},member:{default:null},fallback:{default:""},size:{default:32},me:{type:Boolean,default:!1}},setup(t){const i=t,e=m(()=>yt(i.member,i.fallback)),o=m(()=>i.me?void 0:{background:`var(--av-${Sn(i.userId)})`});return(l,r)=>(a(),s("span",{class:de(["avatar",[`s${t.size}`,{me:t.me}]]),style:Se(o.value),"aria-hidden":"true"},v(e.value),7))}}),Ea=["id"],ja={key:0,class:"mention-empty",role:"option","aria-disabled":"true","aria-selected":"false"},Ta=["id","aria-selected","onMousedown","onMousemove"],Da={class:"mention-name"},Ma={class:"mention-handle"},Sa=ue({__name:"MentionPopup",props:{id:{},options:{},active:{},query:{}},emits:["pick","hover"],setup(t,{emit:i}){const e=i;function o(l,r){return`${l}-opt-${r}`}return(l,r)=>(a(),s("ul",{id:t.id,class:"mention-pop",role:"listbox","aria-label":"Wspomnij osobę"},[t.options.length?x("",!0):(a(),s("li",ja,"Brak osób pasujących do „"+v(t.query)+"”.",1)),(a(!0),s(F,null,ae(t.options,(c,h)=>(a(),s("li",{id:o(t.id,h),key:c.id,class:de(["mention-option",{active:h===t.active}]),role:"option","aria-selected":h===t.active?"true":"false",onMousedown:He(u=>e("pick",c),["prevent"]),onMousemove:u=>h!==t.active&&e("hover",h)},[L(Be,{"user-id":c.id,member:c,size:24},null,8,["user-id","member"]),n("span",Da,v(p(Re)(c)),1),n("span",Ma,"@"+v(c.handle),1)],42,Ta))),128))],8,Ea))}}),Ba={key:0,class:"staging","aria-label":"Załączniki i podpięcia"},La=["title"],Na={key:0,class:"staging-size"},Ra=["onClick"],Wa={key:2,class:"staging-size"},Aa=["aria-label","disabled","onClick"],Pa={class:"staging-type"},qa=["title"],Ha=["aria-label","disabled","onClick"],ct=ue({__name:"StagingChips",props:{conversationId:{}},emits:["removed"],setup(t,{emit:i}){const e=t,o=i,l=ye(),r=m(()=>l.draft(e.conversationId));function c(_){const f=l.embedItem(_);return f===void 0?"Wczytywanie…":f===null?"Element niedostępny":vt(f)}function h(_){l.unstageEmbed(e.conversationId,_),o("removed")}function u(_){l.removeFile(e.conversationId,_.localId),o("removed")}return(_,f)=>r.value.files.length||r.value.embeds.length?(a(),s("ul",Ba,[(a(!0),s(F,null,ae(r.value.files,d=>(a(),s("li",{key:`file-${d.localId}`,class:de(["staging-chip file",d.state])},[n("span",{class:"staging-name file-name",title:d.name},v(d.name),9,La),d.state==="uploading"?(a(),s("span",Na,"Wysyłanie… "+v(d.progress)+"%",1)):d.state==="failed"?(a(),s(F,{key:1},[f[0]||(f[0]=n("span",{class:"staging-failed"},"Nie wysłano",-1)),n("button",{class:"linkish",type:"button",onClick:y=>p(l).retryUpload(t.conversationId,d.localId)},"Spróbuj ponownie",8,Ra)],64)):(a(),s("span",Wa,v(p(Ye)(d.size)),1)),n("button",{class:"staging-remove",type:"button","aria-label":`Usuń załącznik ${d.name}`,disabled:r.value.sending,onClick:y=>u(d)},[L(oe,{name:"close"})],8,Aa),d.state==="uploading"?(a(),s("span",{key:3,class:"staging-progress",style:Se({width:`${d.progress}%`}),"aria-hidden":"true"},null,4)):x("",!0)],2))),128)),(a(!0),s(F,null,ae(r.value.embeds,d=>(a(),s("li",{key:p(Ce)(d),class:"staging-chip embed"},[n("span",Pa,v(p(mt)[d.type]),1),n("span",{class:"staging-name embed-name",title:c(d)},v(c(d)),9,qa),n("button",{class:"staging-remove",type:"button","aria-label":`Usuń podpięcie ${c(d)}`,disabled:r.value.sending,onClick:y=>h(d)},[L(oe,{name:"close"})],8,Ha)]))),128))])):x("",!0)}}),Ua={key:0,class:"error-text",role:"alert"},Oa={class:"composer-row"},Ka={key:0,class:"composer-add"},Fa=["aria-expanded","disabled"],Za=["disabled","title","onClick"],Va={class:"composer-field"},Xa=["rows","placeholder","readonly","aria-expanded","aria-activedescendant"],Ya={key:2,class:"composer-tools"},Ga=["disabled"],Qa=["title","disabled"],Ja=["disabled"],es=["aria-busy","disabled"],ts=["aria-busy","disabled"],Ve="Możesz podpiąć najwyżej 3 elementy do jednej wiadomości.",ns=24,as=6,ss=ue({__name:"ChatComposer",props:{conversationId:{},label:{},placeholder:{}},emits:["sent"],setup(t,{expose:i,emit:e}){const o=t,l=e,r=ye(),c=je(),h=`composer-${c}`,u=`composer-hint-${c}`,_=`mentions-${c}`,f=$(null),d=nt("(min-width: 1100px) and (pointer: fine)"),y=m(()=>r.draft(o.conversationId)),C=$(""),U=m(()=>y.value.error||C.value),O=m({get:()=>y.value.text,set:b=>{C.value="",r.setDraftText(o.conversationId,b),b.trim()&&r.emitTyping(o.conversationId,b)}}),k=m(()=>r.canSend(o.conversationId)),I=$(null);function E(){y.value.sending||I.value?.click()}function R(){const b=I.value;b?.files?.length&&(C.value="",r.uploadFiles(o.conversationId,[...b.files]),b.value="",Q(Te))}const q=`composer-menu-${c}`,W=$(!1),le=$(null),G=$([]);function ne(){W.value=!0,Q(()=>G.value[0]?.focus())}function V(b=!0){W.value&&(W.value=!1,b&&Q(()=>le.value?.focus()))}function se(b){const z=G.value.filter(re=>!re.disabled),K=z.indexOf(document.activeElement);if(b.key==="Escape")b.preventDefault(),b.stopPropagation(),V();else if(b.key==="ArrowDown"||b.key==="ArrowUp"){if(b.preventDefault(),!z.length)return;const re=b.key==="ArrowDown"?(K+1)%z.length:(K-1+z.length)%z.length;z[re]?.focus()}else b.key==="Home"||b.key==="End"?(b.preventDefault(),z[b.key==="Home"?0:z.length-1]?.focus()):b.key==="Tab"&&V(!1)}function ve(){V(!1),E()}function N(){V(!1),le.value?.focus(),j()}const S=m(()=>[{label:"Dołącz plik",icon:"paperclip",disabled:!1,title:void 0,run:ve},{label:"Podepnij termin, zajęcia lub lekturę",icon:"calendar",disabled:M.value,title:M.value?Ve:void 0,run:N}]);function A(b){const z=b.target;z instanceof Node&&(le.value?.contains(z)||G.value.some(K=>K.contains(z)))||V(!1)}ce(W,b=>{b?document.addEventListener("pointerdown",A,!0):document.removeEventListener("pointerdown",A,!0)}),ce(d,()=>V(!1)),xe(()=>document.removeEventListener("pointerdown",A,!0));const T=$(null),H=m(()=>y.value.embeds.map(Ce)),M=m(()=>y.value.embeds.length>=r.maxEmbeds),te=m(()=>M.value?Ve:"Podepnij termin, zajęcia lub lekturę");function j(){M.value||y.value.sending||T.value?.open()}function B(b){C.value="",r.stageEmbed(o.conversationId,{type:b.type,id:b.id},b),Q(Te)}function X(b){if(y.value.sending)return;const z=b.clipboardData?.getData("text/plain")??"";if(!z)return;const K=Rt(z,window.location.origin);if(!K.refs.length)return;const re=new Set(H.value);let De=0,Ie=0;for(const Ke of K.refs)re.has(Ce(Ke))||(r.stageEmbed(o.conversationId,Ke)?(re.add(Ce(Ke)),De++):Ie++);K.insertText===""&&(De>0||Ie===0)&&b.preventDefault(),Ie>0&&setTimeout(()=>C.value=Ve)}function P(){const b=f.value;if(!b)return;b.style.height="auto";const z=getComputedStyle(b),K=parseFloat(z.paddingTop)+parseFloat(z.paddingBottom),re=ns*(d.value?8:4)+K;b.style.height=`${Math.min(b.scrollHeight,re)}px`,b.style.overflowY=b.scrollHeight>re?"auto":"hidden"}ce([O,d],()=>{Q(P)}),Ue(P);const Y=$(null),ie=$(0);let fe=null;const be=m(()=>Y.value?Je(r.members.values(),Y.value.query,r.userId).slice(0,as):[]),g=m(()=>Y.value!==null&&r.membersState==="ready"),w=m(()=>g.value&&be.value.length?`${_}-opt-${ie.value}`:void 0);function Z(){const b=f.value;if(!b)return;const z=b.selectionStart===b.selectionEnd?On(b.value,b.selectionStart??0):null;if(!z){fe=null,Y.value=null;return}z.start!==fe&&((!Y.value||Y.value.start!==z.start||Y.value.query!==z.query)&&(ie.value=0),Y.value=z)}function _e(){Y.value&&(fe=Y.value.start),Y.value=null}function D(b){const z=f.value,K=Y.value;if(!z||!K||!b.handle)return;const re=Kn(z.value,{start:K.start,end:z.selectionStart??K.start+K.query.length+1},b.handle);O.value=re.text,Y.value=null,fe=null,Q(()=>{z.focus(),z.setSelectionRange(re.caret,re.caret)})}function he(){const b=f.value;if(!b)return;const z=b.selectionStart??b.value.length,K=b.selectionEnd??z,re=b.value.slice(0,z),De=re===""||/\s$/.test(re)?"@":" @";O.value=re+De+b.value.slice(K),r.loadMembers(),Q(()=>{const Ie=z+De.length;b.focus(),b.setSelectionRange(Ie,Ie),fe=null,Z()})}function J(b){if(!g.value)return!1;const z=be.value.length;switch(b.key){case"ArrowDown":return z&&(ie.value=(ie.value+1)%z),!0;case"ArrowUp":return z&&(ie.value=(ie.value-1+z)%z),!0;case"Enter":return b.shiftKey&&!z?!1:(z?D(be.value[ie.value]):_e(),!0);case"Tab":return z?(D(be.value[ie.value]),!0):(_e(),!1);case"Escape":return b.stopPropagation(),_e(),!0;default:return!1}}ce(()=>o.conversationId,()=>{Y.value=null,fe=null});async function ke(){k.value&&await r.send(o.conversationId)&&l("sent")}function wt(b){if(!b.isComposing){if(J(b)){b.preventDefault();return}b.key!=="Enter"||b.shiftKey||(b.preventDefault(),ke())}}function zt(b){(["ArrowLeft","ArrowRight","Home","End"].includes(b.key)||!g.value&&["ArrowUp","ArrowDown"].includes(b.key))&&Z()}function Te(){f.value?.focus()}return i({focus:Te}),(b,z)=>(a(),s("form",{class:de(["composer",{compact:!p(d)}]),onSubmit:He(ke,["prevent"])},[n("label",{class:de(p(d)?"composer-label":"sr-only"),for:h},v(t.label),3),U.value?(a(),s("p",Ua,v(U.value),1)):x("",!0),p(d)?x("",!0):(a(),me(ct,{key:1,"conversation-id":t.conversationId,onRemoved:Te},null,8,["conversation-id"])),n("div",Oa,[p(d)?x("",!0):(a(),s("div",Ka,[n("button",{ref_key:"menuButton",ref:le,class:"composer-plus",type:"button","aria-label":"Dodaj do wiadomości","aria-haspopup":"menu","aria-expanded":W.value?"true":"false","aria-controls":q,disabled:y.value.sending,onClick:z[0]||(z[0]=K=>W.value?V():ne())},[L(oe,{name:"plus"})],8,Fa),W.value?(a(),s("div",{key:0,id:q,class:"composer-menu",role:"menu","aria-label":"Dodaj do wiadomości",onKeydown:se},[(a(!0),s(F,null,ae(S.value,K=>(a(),s("button",{key:K.label,ref_for:!0,ref_key:"menuItems",ref:G,class:"composer-menu-item",type:"button",role:"menuitem",tabindex:"-1",disabled:K.disabled,title:K.title,onClick:K.run},[L(oe,{name:K.icon},null,8,["name"]),ee(v(K.label),1)],8,Za))),128))],32)):x("",!0)])),n("div",Va,[p(d)?(a(),me(ct,{key:0,"conversation-id":t.conversationId,onRemoved:Te},null,8,["conversation-id"])):x("",!0),g.value&&Y.value?(a(),me(Sa,{key:1,id:_,options:be.value,active:ie.value,query:Y.value.query,onPick:D,onHover:z[1]||(z[1]=K=>ie.value=K)},null,8,["options","active","query"])):x("",!0),Pe(n("textarea",{id:h,ref_key:"input",ref:f,"onUpdate:modelValue":z[2]||(z[2]=K=>O.value=K),rows:p(d)?3:1,placeholder:p(d)?"Napisz wiadomość…":t.placeholder,enterkeyhint:"send",readonly:y.value.sending,"aria-describedby":u,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":_,"aria-expanded":g.value?"true":"false","aria-activedescendant":w.value,onKeydown:wt,onKeyup:zt,onInput:Z,onClick:Z,onPaste:X,onBlur:z[3]||(z[3]=K=>Y.value=null)},null,40,Xa),[[qe,O.value]]),p(d)?(a(),s("div",Ya,[n("button",{class:"composer-tool",type:"button","aria-label":"Dołącz plik",title:"Dołącz plik",disabled:y.value.sending,onClick:E},[L(oe,{name:"paperclip"})],8,Ga),n("button",{class:"composer-tool",type:"button","aria-label":"Podepnij termin, zajęcia lub lekturę",title:te.value,disabled:y.value.sending||M.value,onClick:j},[L(oe,{name:"calendar"})],8,Qa),n("button",{class:"composer-tool",type:"button","aria-label":"Wspomnij osobę",title:"Wspomnij osobę",disabled:y.value.sending,onClick:he},[L(oe,{name:"at"})],8,Ja),z[5]||(z[5]=n("span",{class:"composer-tools-gap"},null,-1)),n("button",{class:"btn primary small composer-send",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":y.value.sending?"true":void 0,disabled:!k.value},[z[4]||(z[4]=ee(" Wyślij",-1)),L(oe,{name:"arrow-right"})],8,es)])):x("",!0)]),p(d)?x("",!0):(a(),s("button",{key:1,class:"composer-send round",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":y.value.sending?"true":void 0,disabled:!k.value},[L(oe,{name:"arrow-up"})],8,ts))]),n("span",{id:u,class:"sr-only"},"Enter wysyła, Shift+Enter dodaje nową linię."),n("input",{ref_key:"fileInput",ref:I,class:"sr-only",type:"file",multiple:"",tabindex:"-1","aria-hidden":"true",onChange:R},null,544),L(Ca,{ref_key:"picker",ref:T,staged:H.value,onPick:B},null,8,["staged"])],34))}}),os={class:"chat-head"},ls={class:"chat-head-row"},is={class:"chat-head-name"},rs={class:"eyebrow"},us={class:"chat-title"},cs={class:"chat-presence","aria-hidden":"true"},ds={key:0,class:"presence-stack"},ms={key:1,class:"presence-text"},vs={class:"presence-text"},ps={class:"chat-tabs",role:"tablist","aria-label":"Rozmowy"},fs=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],hs={key:0,class:"mention-badge"},ys={class:"sr-only"},bs={key:1,class:"unread-badge"},_s={"aria-hidden":"true"},ks={class:"sr-only"},gs={key:0,class:"chat-strip"},$s=ue({__name:"ChatHeader",props:{view:{},dmName:{},dmUserId:{},idBase:{}},emits:["select","back"],setup(t,{emit:i}){const e=t,o=i,l=[{key:"general",label:"# ogólny"},{key:"dms",label:"Wiadomości"}],r=k=>`${e.idBase}-tab-${k}`,c=ye(),h=m(()=>{switch(c.connection){case"connecting":return"Łączenie z czatem…";case"reconnecting":return"Ponowne łączenie…";case"unavailable":return"Czat bez aktualizacji na żywo — odświeżam co 15 s.";default:return""}}),u=m(()=>({general:{unread:c.generalId===null?0:c.unreadOf(c.generalId),mentions:c.totalMentions},dms:{unread:c.dmUnread,mentions:0}})),_=m(()=>c.othersOnline.slice(0,3)),f=m(()=>Math.max(0,c.othersOnline.length-3)),d=m(()=>e.view==="dm"&&e.dmUserId!=null&&c.isOnline(e.dmUserId)),y=m(()=>e.view==="general"?"general":"dms"),C=m(()=>e.view==="general"?"Czat roku":e.view==="dms"?"Wiadomości":"Wiadomość prywatna"),U=m(()=>e.view==="general"?"# ogólny":e.view==="dms"?"Wiadomości":e.dmName??"");function O(k,I){const E=ft(k.key,I,l.length);E!==null&&(k.preventDefault(),o("select",l[E].key),Q(()=>document.getElementById(r(l[E].key))?.focus()))}return(k,I)=>(a(),s(F,null,[n("header",os,[n("div",ls,[t.view==="dm"?(a(),s("button",{key:0,class:"icon-btn chat-back",type:"button","aria-label":"Wróć do listy wiadomości",onClick:I[0]||(I[0]=E=>o("back"))},[L(oe,{name:"arrow-left"})])):x("",!0),n("div",is,[n("span",rs,v(C.value),1),n("h2",us,v(U.value),1)]),n("div",cs,[t.view==="general"&&p(c).presenceAvailable?(a(),s(F,{key:0},[_.value.length?(a(),s("span",ds,[(a(!0),s(F,null,ae(_.value,E=>(a(),me(Be,{key:E,"user-id":E,member:p(c).members.get(E),size:24},null,8,["user-id","member"]))),128))])):x("",!0),f.value?(a(),s("span",ms,"+"+v(f.value),1)):x("",!0),I[1]||(I[1]=n("span",{class:"presence-dot"},null,-1)),n("span",vs,v(p(c).onlineCount>1?`${p(c).onlineCount} online`:"tylko Ty"),1)],64)):d.value?(a(),s(F,{key:1},[I[2]||(I[2]=n("span",{class:"presence-dot"},null,-1)),I[3]||(I[3]=n("span",{class:"presence-text"},"online",-1))],64)):x("",!0)])]),n("div",ps,[(a(),s(F,null,ae(l,(E,R)=>n("button",{id:r(E.key),key:E.key,class:"chat-tab",type:"button",role:"tab","aria-selected":y.value===E.key,"aria-controls":`${t.idBase}-body`,tabindex:y.value===E.key?0:-1,onClick:q=>o("select",E.key),onKeydown:q=>O(q,R)},[ee(v(E.label)+" ",1),u.value[E.key].mentions>0?(a(),s("span",hs,[I[4]||(I[4]=n("span",{"aria-hidden":"true"},"@",-1)),n("span",ys,", "+v(p(Wt)(u.value[E.key].mentions)),1)])):x("",!0),p(Ee)(u.value[E.key].unread)?(a(),s("span",bs,[n("span",_s,v(p(Ee)(u.value[E.key].unread)),1),n("span",ks,", "+v(p(tt)(u.value[E.key].unread)),1)])):x("",!0)],40,fs)),64))])]),h.value?(a(),s("p",gs,v(h.value),1)):x("",!0)],64))}}),ws={class:"dm-list"},zs={class:"dm-new"},xs={key:0,class:"chat-skeletons dm-skeletons","aria-busy":"true","aria-label":"Wczytywanie rozmów"},Is={key:1,class:"notice error dm-notice",role:"alert"},Cs={key:2,class:"empty chat-empty dm-empty"},Es={key:3,class:"dm-rows"},js=["onClick"],Ts={class:"dm-text"},Ds={class:"dm-name"},Ms={class:"dm-preview"},Ss={class:"dm-meta"},Bs=["datetime"],Ls={key:1,class:"unread-badge"},Ns={"aria-hidden":"true"},Rs={class:"sr-only"},Ws=ue({__name:"DmList",emits:["compose"],setup(t,{emit:i}){const e=i,o=ye(),l=m(()=>o.dmRows),r=m(()=>!l.value.length&&(o.bootstrapState==="loading"||o.bootstrapState==="idle")),c=m(()=>!l.value.length&&o.bootstrapState==="error");function h(f){return $e(o.members.get(f.other_user_id))}function u(f){const d=f.last_message;return d?d.sender_id===o.userId?`Ty: ${d.content}`:d.content:""}function _(f){const d=f.last_message?.created_at;return d?ze(d)===ze(new Date)?Ne(d):At(d):""}return(f,d)=>(a(),s("div",ws,[n("div",zs,[n("button",{class:"btn small",type:"button",onClick:d[0]||(d[0]=y=>e("compose"))},[L(oe,{name:"plus"}),d[2]||(d[2]=ee("Nowa wiadomość",-1))])]),r.value?(a(),s("div",xs,[...d[3]||(d[3]=[n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1)])])):c.value?(a(),s("div",Is,[d[4]||(d[4]=ee(" Nie udało się wczytać rozmów. ",-1)),n("button",{class:"linkish",type:"button",onClick:d[1]||(d[1]=y=>p(o).bootstrap())},"Spróbuj ponownie")])):l.value.length?(a(),s("ul",Es,[(a(!0),s(F,null,ae(l.value,y=>(a(),s("li",{key:y.id},[n("button",{class:de(["dm-row",{unread:y.unread>0}]),type:"button",onClick:C=>p(o).openDm(y.id)},[L(Be,{"user-id":y.other_user_id,member:p(o).members.get(y.other_user_id)},null,8,["user-id","member"]),n("span",Ts,[n("span",Ds,v(h(y)),1),n("span",Ms,v(u(y)),1)]),n("span",Ss,[y.last_message?(a(),s("time",{key:0,datetime:y.last_message.created_at},v(_(y)),9,Bs)):x("",!0),p(Ee)(y.unread)?(a(),s("span",Ls,[n("span",Ns,v(p(Ee)(y.unread)),1),n("span",Rs,", "+v(p(tt)(y.unread)),1)])):x("",!0)])],10,js)]))),128))])):(a(),s("div",Cs,[...d[5]||(d[5]=[n("p",{class:"chat-empty-h"},"Nie masz jeszcze wiadomości prywatnych",-1),n("p",null,"Kliknij „Nowa wiadomość”, wybierz osobę i napisz do niej.",-1)])]))]))}}),As=["aria-labelledby"],Ps={class:"chat-dialog-head"},qs=["id"],Hs={class:"field"},Us=["for"],Os=["id"],Ks={key:0,class:"error-text",role:"alert"},Fs={class:"picker-results"},Zs={key:0,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Wczytywanie osób"},Vs={key:1,class:"notice error",role:"alert"},Xs={key:2,class:"empty"},Ys={key:3,class:"empty"},Gs={key:4,class:"picker-rows"},Qs=["disabled","onClick"],Js={class:"picker-name"},eo=ue({__name:"MemberPicker",emits:["started"],setup(t,{expose:i,emit:e}){const o=e,l=ye(),r=je(),c=$(null),h=$(null),u=$(""),_=$(!1);let f=null,d=!1;const y=m(()=>Je(l.members.values(),"",l.userId)),C=m(()=>Je(l.members.values(),u.value,l.userId));function U(){f=document.activeElement instanceof HTMLElement?document.activeElement:null,d=!1,u.value="",l.dmError="",l.loadMembers(),c.value?.showModal(),Q(()=>h.value?.focus())}function O(){c.value?.close()}function k(){d||f?.focus(),f=null}function I(R){R.target===c.value&&O()}async function E(R){if(!_.value){_.value=!0;try{const q=await l.startDm(R);if(q===null)return;d=!0,O(),o("started",q)}finally{_.value=!1}}}return i({open:U}),(R,q)=>(a(),s("dialog",{ref_key:"dialog",ref:c,class:"chat-dialog","aria-labelledby":`picker-h-${p(r)}`,onClose:k,onClick:I},[n("div",Ps,[n("h2",{id:`picker-h-${p(r)}`,class:"chat-dialog-title"},"Nowa wiadomość",8,qs),n("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:O},[L(oe,{name:"close"})])]),n("div",Hs,[n("label",{for:`picker-q-${p(r)}`},"Do kogo?",8,Us),Pe(n("input",{id:`picker-q-${p(r)}`,ref_key:"search",ref:h,"onUpdate:modelValue":q[0]||(q[0]=W=>u.value=W),type:"text",autocomplete:"off",placeholder:"Wpisz imię lub nazwisko…"},null,8,Os),[[qe,u.value]])]),p(l).dmError?(a(),s("p",Ks,v(p(l).dmError),1)):x("",!0),n("div",Fs,[p(l).membersState==="loading"&&!p(l).members.size?(a(),s("div",Zs,[...q[2]||(q[2]=[n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1)])])):p(l).membersState==="error"&&!p(l).members.size?(a(),s("div",Vs,[q[3]||(q[3]=ee(" Nie udało się wczytać listy osób. ",-1)),n("button",{class:"linkish",type:"button",onClick:q[1]||(q[1]=W=>p(l).loadMembers(!0))},"Spróbuj ponownie")])):y.value.length?C.value.length?(a(),s("ul",Gs,[(a(!0),s(F,null,ae(C.value,W=>(a(),s("li",{key:W.id},[n("button",{class:"picker-row",type:"button",disabled:_.value,onClick:le=>E(W.id)},[L(Be,{"user-id":W.id,member:W,size:24},null,8,["user-id","member"]),n("span",Js,v(p(Re)(W)),1)],8,Qs)]))),128))])):(a(),s("p",Ys,"Nikt nie pasuje do „"+v(u.value.trim())+"”.",1)):(a(),s("p",Xs,"Na czacie nie ma jeszcze innych osób."))])],40,As))}}),to=["aria-pressed","aria-label","title","onClick"],no={class:"reaction-emoji","aria-hidden":"true"},ao={class:"reaction-count","aria-hidden":"true"},so={class:"reaction-add-wrap"},oo=["aria-expanded","aria-controls","disabled"],lo=["aria-label","tabindex","onClick","onFocus"],ge=6,io=ue({__name:"ReactionBar",props:{message:{}},emits:["closed"],setup(t,{expose:i,emit:e}){const o=t,l=e,r=ye(),h=`reactions-${je()}`,u=$(null),_=$(null),f=$(null),d=$(!1),y=$(!1),C=$(0);let U=null;const O=m(()=>(o.message.reactions??[]).filter(N=>N.count>0).map(N=>{const S=r.userId!==null&&N.user_ids.includes(r.userId);return{key:N.key,count:N.count,mine:S,label:`${N.key} ${N.count}. ${S?"Cofnij swoją reakcję":"Dodaj swoją reakcję"}`,title:Wn(N.user_ids,r.members)}})),k=m(()=>r.allowedReactions??[]),I=m(()=>k.value.length>0);function E(N){r.toggleReaction(o.message,N)}function R(){const N=u.value,S=N?.closest(".chat-list");if(!N||!S){y.value=!1;return}const A=Math.ceil(k.value.length/ge),T=A*36+(A-1)*4+16+2+8;y.value=N.getBoundingClientRect().top-S.getBoundingClientRect().topq()[C.value]?.focus())}function le(N){if(!I.value){r.loadReactions();return}U=N??_.value,C.value=0,R(),d.value=!0,document.addEventListener("pointerdown",ne,!0),W()}function G(N=!0){if(!d.value)return;d.value=!1,document.removeEventListener("pointerdown",ne,!0);const S=U;U=null,N&&S?.focus(),l("closed")}function ne(N){const S=N.target;if(S&&(f.value?.contains(S)||_.value?.contains(S)))return;const A=U;G(!1),setTimeout(()=>{const T=document.activeElement;(!T||T===document.body||f.value?.contains(T))&&A?.focus()})}function V(N){E(N),G()}function se(){d.value?G():le(_.value)}function ve(N){const S=k.value.length;if(!S)return;let A=C.value;switch(N.key){case"Escape":N.preventDefault(),N.stopPropagation(),G();return;case"ArrowRight":A=(C.value+1)%S;break;case"ArrowLeft":A=(C.value-1+S)%S;break;case"ArrowDown":A=C.value+ge=0?C.value-ge:Math.min(S-1,C.value%ge+Math.floor((S-1)/ge)*ge);break;case"Home":A=0;break;case"End":A=S-1;break;case"Tab":G(!1);return;default:return}N.preventDefault(),C.value=A,W()}return xe(()=>document.removeEventListener("pointerdown",ne,!0)),i({openPicker:le}),(N,S)=>(a(),s("div",{ref_key:"root",ref:u,class:"reactions"},[(a(!0),s(F,null,ae(O.value,A=>(a(),s("button",{key:A.key,class:"reaction-chip",type:"button","aria-pressed":A.mine?"true":"false","aria-label":A.label,title:A.title,onClick:T=>E(A.key)},[n("span",no,v(A.key),1),n("span",ao,v(A.count),1)],8,to))),128)),n("span",so,[n("button",{ref_key:"addBtn",ref:_,class:"reaction-add",type:"button","aria-label":"Dodaj reakcję","aria-haspopup":"true","aria-expanded":d.value?"true":"false","aria-controls":d.value?h:void 0,disabled:!I.value,onClick:se},[L(oe,{name:"smile"})],8,oo),d.value?(a(),s("div",{key:0,id:h,ref_key:"pop",ref:f,class:de(["reaction-pop",{below:y.value}]),role:"group","aria-label":"Dodaj reakcję",onKeydown:ve},[(a(!0),s(F,null,ae(k.value,(A,T)=>(a(),s("button",{key:A,class:"reaction-pick",type:"button","aria-label":A,tabindex:T===C.value?0:-1,onClick:H=>V(A),onFocus:H=>C.value=T},v(A),41,lo))),128))],34)):x("",!0)])],512))}}),ro=["data-message-id"],uo={class:"msg-gutter"},co=["datetime","title"],mo={class:"msg-content"},vo={key:0,class:"msg-head"},po={class:"msg-name"},fo={key:0,class:"msg-tag"},ho={key:1,class:"msg-tag me"},yo=["datetime","title"],bo=["title"],_o={key:1,class:"sr-only"},ko={key:2,class:"msg-deleted"},go={class:"composer-field"},$o=["readonly"],wo={key:0,class:"error-text",role:"alert"},zo={class:"btn-row"},xo=["aria-busy"],Io=["disabled"],Co=["innerHTML"],Eo=["title"],jo={key:5,class:"msg-files"},To=["aria-label","aria-busy","onClick"],Do={class:"msg-file-name"},Mo={class:"msg-file-size"},So={key:6,class:"msg-embeds"},Bo={key:0,class:"msg-actions",role:"toolbar","aria-label":"Działania wiadomości"},Lo=["disabled"],Me=$(null),No=ue({__name:"ChatMessage",props:{message:{},followUp:{type:Boolean},author:{},meId:{}},emits:["delete"],setup(t,{emit:i}){const e=t,o=i,l=ye(),r=nt("(hover: none)"),c=$(null),h=$(null),u=$(null),_=$(null),f=$(null),d=$(null),y=m(()=>e.meId!==null&&e.message.sender_id===e.meId),C=m(()=>$e(e.author,e.message.sender_name)),U=m(()=>Ne(e.message.created_at)),O=m(()=>Ge(e.message.created_at)),k=m(()=>!!e.author?.is_bot),I=m(()=>!y.value&&Un(e.message.content,l.myHandle)),E=m(()=>e.message.edited_at?`Edytowano ${Ge(e.message.edited_at)}`:""),R=m(()=>(e.message.reactions??[]).some(D=>D.count>0)),q=$(!1),W=m(()=>Me.value===e.message.id),le=m(()=>!!l.allowedReactions?.length),G=m(()=>!!e.message.deleted_at),ne=m(()=>l.canEdit(e.message)),V=m(()=>l.canDelete(e.message)),se=m(()=>qt(e.message,l.maxEmbeds)),ve=m(()=>!e.message.content||Ht(e.message.content,se.value)),N=m(()=>e.message.attachments??[]),S=$(null),A=Pt();async function T(D){if(S.value===null){S.value=D.id;try{await pt.download(e.message.id,D.id,D.filename)}catch{A.show("Nie udało się pobrać pliku. Spróbuj ponownie.")}finally{S.value=null}}}const H=$(!1),M=$(""),te=$(!1),j=$(""),B=24;function X(){const D=d.value;if(!D)return;D.style.height="auto";const he=getComputedStyle(D),J=B*8+parseFloat(he.paddingTop)+parseFloat(he.paddingBottom);D.style.height=`${Math.min(D.scrollHeight,J)}px`,D.style.overflowY=D.scrollHeight>J?"auto":"hidden"}async function P(){if(!ne.value)return;M.value=e.message.content??"",j.value="",H.value=!0,Me.value=null,await Q();const D=d.value;D&&(X(),D.focus(),D.setSelectionRange(D.value.length,D.value.length))}function Y(){H.value=!1,j.value="",Q(()=>_.value?.focus())}async function ie(){if(te.value)return;te.value=!0,j.value="";const D=await l.edit(e.message,M.value);if(te.value=!1,D){j.value=D;return}Y()}function fe(D){if(!D.isComposing){if(D.key==="Escape"){D.preventDefault(),D.stopPropagation(),te.value||Y();return}D.key==="Enter"&&!D.shiftKey&&(D.preventDefault(),ie())}}ce(M,()=>{Q(X)}),ce(G,D=>{D&&(H.value=!1)});function be(){V.value&&o("delete",e.message,f.value)}async function g(){le.value&&(q.value=!0,await Q(),h.value?.openPicker(u.value))}function w(){q.value=!1}function Z(D){!r.value||D.target?.closest("a, button, textarea, input, .msg-actions")||(Me.value=W.value?null:e.message.id)}function _e(D){c.value&&D.target instanceof Node&&c.value.contains(D.target)||W.value&&(Me.value=null)}return ce(W,D=>{D?document.addEventListener("pointerdown",_e,!0):document.removeEventListener("pointerdown",_e,!0)}),xe(()=>{document.removeEventListener("pointerdown",_e,!0),W.value&&(Me.value=null)}),(D,he)=>(a(),s("article",{ref_key:"root",ref:c,class:de(["msg",{follow:t.followUp,"actions-open":W.value,"mentions-me":I.value}]),"data-message-id":t.message.id,onClick:Z},[n("div",uo,[t.followUp?(a(),s("time",{key:1,class:"msg-time",datetime:t.message.created_at,title:O.value},v(U.value),9,co)):(a(),me(Be,{key:0,"user-id":t.message.sender_id,member:t.author,fallback:t.message.sender_name,me:y.value},null,8,["user-id","member","fallback","me"]))]),n("div",mo,[t.followUp?(a(),s("span",_o,v(C.value)+", "+v(U.value)+":",1)):(a(),s("div",vo,[n("span",po,v(C.value),1),k.value?(a(),s("span",fo,"Bot")):y.value?(a(),s("span",ho,"Ty")):x("",!0),n("time",{class:"msg-time",datetime:t.message.created_at,title:O.value},v(U.value),9,yo),t.message.edited_at?(a(),s("span",{key:2,class:"msg-edited",title:E.value},"(edytowano)",8,bo)):x("",!0)])),G.value?(a(),s("p",ko,"Wiadomość usunięta.")):H.value?(a(),s("form",{key:3,class:"msg-edit",onSubmit:He(ie,["prevent"])},[n("div",go,[Pe(n("textarea",{ref_key:"editInput",ref:d,"onUpdate:modelValue":he[0]||(he[0]=J=>M.value=J),rows:"1","aria-label":"Edytuj wiadomość",readonly:te.value,onKeydown:fe},null,40,$o),[[qe,M.value]])]),j.value?(a(),s("p",wo,v(j.value),1)):x("",!0),n("div",zo,[n("button",{class:"btn primary small",type:"submit","aria-busy":te.value?"true":void 0},"Zapisz zmiany",8,xo),n("button",{class:"btn ghost small",type:"button",disabled:te.value,onClick:Y},"Anuluj edycję",8,Io)])],32)):(a(),s(F,{key:4},[ve.value?x("",!0):(a(),s("div",{key:0,class:"msg-body prose",innerHTML:p(Hn)(t.message.content,p(l).membersByHandle)},null,8,Co)),t.followUp&&t.message.edited_at?(a(),s("span",{key:1,class:"msg-edited",title:E.value},"(edytowano)",8,Eo)):x("",!0)],64)),!G.value&&N.value.length?(a(),s("ul",jo,[(a(!0),s(F,null,ae(N.value,J=>(a(),s("li",{key:J.id},[n("button",{class:"msg-file",type:"button","aria-label":`Pobierz ${J.filename} (${p(Ye)(J.size)})`,"aria-busy":S.value===J.id?"true":void 0,onClick:ke=>T(J)},[L(oe,{name:"file"}),n("span",Do,v(J.filename),1),n("span",Mo,v(p(Ye)(J.size)),1)],8,To)]))),128))])):x("",!0),!G.value&&se.value.length?(a(),s("div",So,[(a(!0),s(F,null,ae(se.value,J=>(a(),me(gt,{key:p(Ce)(J),"embed-ref":J,item:p(l).embedItem(J)},null,8,["embed-ref","item"]))),128))])):x("",!0),!G.value&&(R.value||q.value)?(a(),me(io,{key:7,ref_key:"bar",ref:h,message:t.message,onClosed:w},null,8,["message"])):x("",!0)]),!G.value&&!H.value?(a(),s("div",Bo,[n("button",{ref_key:"reactBtn",ref:u,class:"msg-action",type:"button","aria-label":"Dodaj reakcję",title:"Dodaj reakcję",disabled:!le.value,onClick:g},[L(oe,{name:"smile"})],8,Lo),ne.value?(a(),s("button",{key:0,ref_key:"editBtn",ref:_,class:"msg-action",type:"button","aria-label":"Edytuj",title:"Edytuj",onClick:P},[L(oe,{name:"pencil"})],512)):x("",!0),V.value?(a(),s("button",{key:1,ref_key:"deleteBtn",ref:f,class:"msg-action miss",type:"button","aria-label":"Usuń",title:"Usuń",onClick:be},[L(oe,{name:"trash"})],512)):x("",!0)])):x("",!0)],10,ro))}}),Ro=["aria-labelledby","aria-describedby"],Wo=["id"],Ao=["id"],Po={key:0,class:"error-text",role:"alert"},qo={class:"btn-row chat-confirm-buttons"},Ho=["aria-busy","disabled"],Uo=["disabled"],Oo=ue({__name:"DeleteDialog",setup(t,{expose:i}){const e=ye(),o=je(),l=$(null),r=$(null),c=$(null),h=$(!1),u=$("");let _=null,f=null;const d=m(()=>!!c.value&&c.value.sender_id===e.userId),y=m(()=>{const R=c.value;return!R||d.value?"Wiadomość zniknie z rozmowy u wszystkich. Tego nie można cofnąć.":`Usuniesz wiadomość od ${$e(e.members.get(R.sender_id),R.sender_name)} u wszystkich. Tego nie można cofnąć.`});function C(R,q){c.value=R,u.value="",h.value=!1,_=q??(document.activeElement instanceof HTMLElement?document.activeElement:null),f=_?.closest(".chat-list")??null,l.value?.showModal(),Q(()=>r.value?.focus())}function U(){l.value?.close()}function O(R){h.value&&R.preventDefault()}function k(){_?.isConnected?_.focus():f?.focus(),_=null,f=null,c.value=null}function I(R){R.target===l.value&&!h.value&&U()}async function E(){const R=c.value;if(!R||h.value)return;h.value=!0,u.value="";const q=await e.remove(R);if(h.value=!1,q){u.value=q;return}U()}return i({open:C}),(R,q)=>(a(),s("dialog",{ref_key:"dialog",ref:l,class:"chat-dialog chat-confirm","aria-labelledby":`delete-h-${p(o)}`,"aria-describedby":`delete-b-${p(o)}`,onCancel:O,onClose:k,onClick:I},[n("h2",{id:`delete-h-${p(o)}`,class:"chat-dialog-title"},"Usunąć wiadomość?",8,Wo),n("p",{id:`delete-b-${p(o)}`,class:"chat-confirm-body"},v(y.value),9,Ao),u.value?(a(),s("p",Po,v(u.value),1)):x("",!0),n("div",qo,[n("button",{class:"btn danger",type:"button","aria-busy":h.value?"true":void 0,disabled:h.value,onClick:E},"Usuń wiadomość",8,Ho),n("button",{ref_key:"keepBtn",ref:r,class:"btn ghost",type:"button",disabled:h.value,onClick:U},"Zostaw wiadomość",8,Uo)])],40,Ro))}}),Ko={class:"chat-list-wrap"},Fo=["aria-label"],Zo={key:0,class:"notice error",role:"alert"},Vo={key:1,class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie wiadomości"},Xo={key:2,class:"chat-start"},Yo={key:3,class:"empty chat-empty"},Go={key:0,class:"error-text"},Qo={key:1,class:"chat-start"},Jo={key:2,class:"chat-start"},el=["aria-label"],tl={"aria-hidden":"true"},nl={key:0,class:"chat-new",role:"separator","aria-label":"Nowe wiadomości"},al={class:"sr-only","aria-live":"polite"},sl=ue({__name:"MessageList",props:{conversationId:{},name:{},kind:{default:"general"},otherName:{default:""},visible:{type:Boolean,default:!0}},setup(t,{expose:i}){const e=t,o=ye(),l=$(null),r=$(null),c=$(null);function h(g,w){c.value?.open(g,w)}const u=m(()=>o.messages[e.conversationId]),_=m(()=>o.errors[e.conversationId]??""),f=m(()=>Nn(u.value??[],new Date)),d=m(()=>u.value?.at(-1)?.id??null),y=m(()=>!!o.olderLoading[e.conversationId]),C=m(()=>o.olderError[e.conversationId]??""),U=m(()=>!!o.reachedStart[e.conversationId]),O=m(()=>e.kind==="dm"?"To początek Waszej rozmowy.":"To początek kanału # ogólny.");let k=!1;ce(u,g=>{g&&(o.resolveFor(g,!k),k=!0)},{immediate:!0,deep:1});const I=o.unreadOf(e.conversationId),E=$(null);let R=!1;function q(){R||!u.value||(R=!0,E.value=Ut(u.value,I,o.userId))}const W=$(0),le=$(""),G=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;function ne(){return!!l.value&&l.value.clientHeight>0}function V(){const g=l.value;return!g||g.scrollHeight-g.scrollTop-g.clientHeight<=48}function se(){return!l.value||!ne()||!u.value?null:V()?{atBottom:!0,messageId:null,offset:0}:ve()??{atBottom:!0,messageId:null,offset:0}}function ve(){const g=l.value;if(!g)return null;for(const w of g.querySelectorAll("[data-message-id]"))if(w.offsetTop+w.offsetHeight>g.scrollTop)return{atBottom:!1,messageId:Number(w.dataset.messageId),offset:w.offsetTop-g.scrollTop};return null}function N(){const g=se();g&&o.saveAnchor(e.conversationId,g)}let S=!0;const A=$(!1);function T(){if(!u.value||!ne())return;Ot({active:o.activeId===e.conversationId,visible:e.visible,focused:typeof document>"u"||document.hasFocus(),atBottom:V()})&&o.markRead(e.conversationId)}function H(g=!1){Q(()=>{const w=l.value;w&&(g&&!G&&typeof w.scrollTo=="function"?w.scrollTo({top:w.scrollHeight,behavior:"smooth"}):w.scrollTop=w.scrollHeight,S=!0,W.value=0,ne()&&o.saveAnchor(e.conversationId,{atBottom:!0,messageId:null,offset:0}),T())})}function M(g){if(E.value===null)return!1;const w=g.querySelector(".chat-new");if(!w)return!1;const Z=g.scrollHeight-g.clientHeight;return w.offsetTop>=Z?!1:(g.scrollTop=w.offsetTop-48,!0)}function te(){Q(()=>{const g=l.value;!g||!ne()||!u.value||(q(),Q(()=>{const w=o.anchorFor(e.conversationId),Z=w&&!w.atBottom&&w.messageId!==null?g.querySelector(`[data-message-id="${w.messageId}"]`):null;Z?g.scrollTop=Z.offsetTop-(w?.offset??0):E.value!==null&&!A.value&&M(g)||(g.scrollTop=g.scrollHeight),S=V(),S&&(W.value=0),A.value=!0,T(),Y()}))})}let j=0;function B(){S=V(),S&&(W.value=0),!j&&(j=requestAnimationFrame(()=>{j=0,N(),T()}))}ce(()=>u.value===void 0,(g,w)=>{!g&&w&&te()}),ce(d,(g,w)=>{if(g===null||g===w||w===null)return;const Z=u.value??[],_e=Z.filter(ke=>ke.id>w),D=Z.at(-1),he=_e.filter(ke=>ke.sender_id!==o.userId),J=he.at(-1);if(J&&e.visible){const ke=(J.content??"").replace(/\s+/g," ").trim().slice(0,80);le.value=`${$e(o.members.get(J.sender_id),J.sender_name)}: ${ke}`}S||D&&D.sender_id===o.userId?H():W.value+=he.length}),ce(()=>e.visible,(g,w)=>{w&&!g&&N(),g&&!w&&te()});let X=null;async function P(){const g=l.value;if(!g||!A.value||y.value||C.value||U.value)return;const w=ve();if(await o.loadOlder(e.conversationId),await Q(),w?.messageId!=null){const Z=g.querySelector(`[data-message-id="${w.messageId}"]`);Z&&(g.scrollTop=Z.offsetTop-w.offset)}Y()}function Y(){const g=r.value;!X||!g||(X.unobserve(g),X.observe(g))}function ie(){o.olderError[e.conversationId]="",Q(()=>{P()})}ce(r,(g,w)=>{w&&X?.unobserve(w),g&&X?.observe(g)});function fe(){T()}function be(){document.visibilityState==="visible"&&T()}return Ue(()=>{typeof IntersectionObserver<"u"&&l.value&&(X=new IntersectionObserver(g=>{g.some(w=>w.isIntersecting)&&P()},{root:l.value,rootMargin:"200px 0px 0px 0px"}),r.value&&X.observe(r.value)),window.addEventListener("focus",fe),document.addEventListener("visibilitychange",be),te()}),xe(()=>{j&&cancelAnimationFrame(j),X?.disconnect(),window.removeEventListener("focus",fe),document.removeEventListener("visibilitychange",be),N()}),i({scrollToBottom:H}),(g,w)=>(a(),s("div",Ko,[n("div",{ref_key:"el",ref:l,class:"chat-list",role:"region","aria-label":`Wiadomości w ${t.name}`,tabindex:"0",onScrollPassive:B},[!u.value&&_.value?(a(),s("div",Zo,[ee(v(_.value)+" ",1),n("button",{class:"linkish",type:"button",onClick:w[0]||(w[0]=Z=>p(o).loadLatest(t.conversationId))},"Spróbuj ponownie")])):u.value?!u.value.length&&t.kind==="dm"?(a(),s("p",Xo,"To początek Waszej rozmowy z "+v(t.otherName)+".",1)):u.value.length?(a(),s(F,{key:4},[n("div",{ref_key:"sentinel",ref:r,class:"chat-older"},[C.value?(a(),s("p",Go,[ee(v(C.value)+" ",1),n("button",{class:"linkish",type:"button",onClick:ie},"Spróbuj ponownie")])):y.value?(a(),s("p",Qo,"Wczytywanie starszych wiadomości…")):U.value?(a(),s("p",Jo,v(O.value),1)):x("",!0)],512),(a(!0),s(F,null,ae(f.value,Z=>(a(),s(F,{key:Z.key},[Z.kind==="day"?(a(),s("div",{key:0,class:"chat-day",role:"separator","aria-label":Z.label},[n("span",tl,v(Z.label),1)],8,el)):(a(),s(F,{key:1},[Z.message.id===E.value?(a(),s("div",nl,[...w[4]||(w[4]=[n("span",{"aria-hidden":"true"},"Nowe wiadomości",-1)])])):x("",!0),L(No,{message:Z.message,"follow-up":Z.followUp&&Z.message.id!==E.value,author:p(o).members.get(Z.message.sender_id),"me-id":p(o).userId,onDelete:h},null,8,["message","follow-up","author","me-id"])],64))],64))),128))],64)):(a(),s("div",Yo,[...w[3]||(w[3]=[n("p",{class:"chat-empty-h"},"Na # ogólny jeszcze cisza",-1),n("p",null,"Napisz pierwszą wiadomość do całego roku. Przyciskiem kalendarza podepniesz termin, zajęcia albo lekturę.",-1)])])):(a(),s("div",Vo,[...w[2]||(w[2]=[n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1)])]))],40,Fo),W.value>0?(a(),s("button",{key:0,class:"btn small chat-jump",type:"button",onClick:w[1]||(w[1]=Z=>H(!0))},[L(oe,{name:"arrow-down"}),ee("Nowe wiadomości: "+v(W.value),1)])):x("",!0),n("div",al,v(le.value),1),L(Oo,{ref_key:"deleteDialog",ref:c},null,512)]))}}),ol=["role","aria-label","aria-labelledby"],ll=["id","aria-labelledby"],il={class:"chat-typing","aria-hidden":"true"},rl={key:2,class:"chat-list"},ul=ue({__name:"ChatPanel",props:{wide:{type:Boolean,default:!0},visible:{type:Boolean,default:!0},labelledBy:{default:void 0}},setup(t){const i=t,e=ye(),o=`chat-${je()}`,l=$(null),r=$(null),c=$(null),h=m(()=>i.wide?void 0:"tabpanel"),u=m(()=>e.view==="dms"?null:e.activeId),_=m(()=>e.view==="dm"?e.conversations.find(k=>k.id===e.activeId):void 0),f=m(()=>_.value?$e(e.members.get(_.value.other_user_id)):""),d=m(()=>e.view==="dm"?f.value:"# ogólny"),y=m(()=>u.value===null?"":Kt(e.typingIn(u.value).map(k=>$e(e.members.get(k),"Ktoś")))),C=m(()=>`${o}-tab-${e.view==="general"?"general":"dms"}`);ce(()=>i.visible,k=>e.panelVisible=k,{immediate:!0}),xe(()=>e.panelVisible=!1);function U(k){k==="general"?e.showGeneral():e.showDms()}function O(){Q(()=>r.value?.focus())}return(k,I)=>(a(),s("aside",{class:"chat",role:h.value,"aria-label":t.wide?"Czat":void 0,"aria-labelledby":t.wide?void 0:t.labelledBy},[L($s,{view:p(e).view,"dm-name":f.value,"dm-user-id":_.value?.other_user_id??null,"id-base":o,onSelect:U,onBack:I[0]||(I[0]=E=>p(e).showDms())},null,8,["view","dm-name","dm-user-id"]),n("div",{id:`${o}-body`,class:"chat-body",role:"tabpanel","aria-labelledby":C.value},[p(e).view==="dms"?(a(),me(Ws,{key:0,onCompose:I[1]||(I[1]=E=>c.value?.open())})):u.value!==null?(a(),s(F,{key:1},[(a(),me(sl,{ref_key:"list",ref:l,key:u.value,"conversation-id":u.value,name:d.value,kind:p(e).view==="dm"?"dm":"general","other-name":f.value,visible:t.visible},null,8,["conversation-id","name","kind","other-name","visible"])),n("div",il,v(y.value),1),L(ss,{ref_key:"composer",ref:r,"conversation-id":u.value,label:`Wiadomość do ${d.value}`,placeholder:p(e).view==="dm"?`Napisz do ${f.value}…`:"Napisz na # ogólny…",onSent:I[2]||(I[2]=E=>l.value?.scrollToBottom())},null,8,["conversation-id","label","placeholder"])],64)):(a(),s("div",rl,[...I[3]||(I[3]=[n("div",{class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie czatu"},[n("div",{class:"skeleton"}),n("div",{class:"skeleton"}),n("div",{class:"skeleton"})],-1)])]))],8,ll),L(eo,{ref_key:"picker",ref:c,onStarted:O},null,512)],8,ol))}}),et="bm.chatWidth",Oe=280,cl=16,dl=64;function $t(){try{return window.localStorage}catch{return null}}function at(t){return Math.max(Oe,Math.floor(t/2))}function We(t,i){return Math.min(at(i),Math.max(Oe,Math.round(t)))}function ml(t){return Math.min(420,Math.max(340,Math.round(t*.26)))}function vl(t,i,e,o){const l=i?dl:cl;switch(t){case"ArrowLeft":return We(e+l,o);case"ArrowRight":return We(e-l,o);case"Home":return Oe;case"End":return at(o);default:return null}}const pl=/^\d+(\.\d+)?$/;function fl(t=$t()){if(!t)return null;try{const i=t.getItem(et);if(i===null||!pl.test(i))return null;const e=Number(i);return Number.isFinite(e)&&e>0?Math.round(e):null}catch{return null}}function Xe(t,i=$t()){if(i)try{t===null?i.removeItem(et):i.setItem(et,String(Math.round(t)))}catch{}}const hl=["aria-controls","aria-valuenow","aria-valuemin","aria-valuemax","aria-valuetext"],yl=ue({__name:"ChatResizer",props:{width:{},controls:{}},emits:["update:width"],setup(t,{emit:i}){const e=t,o=i,l=$(typeof window>"u"?0:window.innerWidth);function r(){l.value=window.innerWidth}const c=m(()=>We(e.width??ml(l.value),l.value)),h=m(()=>at(l.value));let u=null;const _=$(!1);function f(k){if(!k.isPrimary||k.button!==0)return;k.preventDefault();const I=document.getElementById(e.controls),E=I?Math.round(I.getBoundingClientRect().width):c.value;k.currentTarget.setPointerCapture(k.pointerId),u={pointerId:k.pointerId,startX:k.clientX,startWidth:E,last:null},_.value=!0,document.documentElement.classList.add("chat-resizing")}function d(k){if(!u||k.pointerId!==u.pointerId)return;const I=We(u.startWidth+(u.startX-k.clientX),l.value);I!==u.last&&(u.last=I,o("update:width",I))}function y(){const k=u;u=null,_.value=!1,document.documentElement.classList.remove("chat-resizing"),k&&k.last!==null&&Xe(k.last)}function C(k){o("update:width",k),Xe(k)}function U(k){const I=vl(k.key,k.shiftKey,c.value,l.value);I!==null&&(k.preventDefault(),C(I))}function O(){o("update:width",null),Xe(null)}return Ue(()=>{r(),window.addEventListener("resize",r)}),xe(()=>{window.removeEventListener("resize",r),y()}),(k,I)=>(a(),s("div",{class:de(["chat-resizer",{dragging:_.value}]),role:"separator","aria-orientation":"vertical","aria-label":"Szerokość czatu","aria-controls":t.controls,"aria-valuenow":c.value,"aria-valuemin":p(Oe),"aria-valuemax":h.value,"aria-valuetext":`${c.value} px`,tabindex:"0",title:"Przeciągnij, aby zmienić szerokość czatu. Dwuklik przywraca domyślną.",onPointerdown:f,onPointermove:d,onPointerup:y,onPointercancel:y,onLostpointercapture:y,onKeydown:U,onDblclick:O},null,42,hl))}}),bl={key:0,class:"pulpit-tabs",role:"tablist","aria-label":"Widok"},_l=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],kl={key:0,class:"unread-badge"},gl={"aria-hidden":"true"},$l={class:"sr-only"},wl=["role","aria-labelledby"],zl={class:"pulpit-lists"},xl={"aria-labelledby":"next-h"},Il={class:"section-head"},Cl={key:0,class:"rows"},El={class:"row-main"},jl={class:"title"},Tl={class:"when"},Dl={class:"muted small"},Ml={key:0,class:"badge online"},Sl={key:1,class:"badge onsite"},Bl={key:1,class:"empty"},Ll={"aria-labelledby":"dl-h"},Nl={class:"section-head"},Rl={key:0,class:"rows"},Wl={class:"row-main"},Al={class:"title"},Pl={class:"muted small"},ql={key:0},Hl={key:1,class:"empty"},Ul={class:"pulpit-cards"},Ol={class:"card","aria-labelledby":"read-h"},Kl={style:{margin:"0 0 8px"}},Fl={class:"big-num"},Zl={class:"muted"},Vl=["aria-valuenow"],Xl={class:"muted small",style:{margin:"8px 0 10px"}},Yl={class:"card","aria-labelledby":"quiz-h"},ai=ue({__name:"DashboardView",setup(t){const i=Ft(),e=Zt(),o=Vt(),l=ye(),r=Yt(),c=Gt(),h=$(new Date);Ue(()=>{h.value=new Date,Promise.all([e.loadDashboard(),e.loadCourses(),e.loadSchedule(),e.loadDeadlines(),e.loadReadings()]),o.loadList()});const u=m(()=>e.loaded.schedule&&e.loaded.courses&&e.loaded.readings&&e.loaded.deadlines&&e.loaded.dashboard),_=m(()=>e.dashboard?.current_meeting??e.dashboard?.next_meeting??null),f=m(()=>!!e.dashboard?.current_meeting),d=m(()=>o.list?.find(j=>j.meeting_id===_.value?.id)??null),y=$(null);let C=0;async function U(j){const B=++C;if(j===void 0){y.value=[];return}y.value=null;try{const X=await nn.materials({meeting:j,per_page:100});B===C&&(y.value=X.data)}catch{B===C&&(y.value=[])}}ce(()=>_.value?.id,j=>{U(j)},{immediate:!0});const O=m(()=>y.value===null?null:tn(y.value,e.hidden)),k=m(()=>e.schedule.filter(j=>Date.parse(j.ends_at)>h.value.getTime()).slice(0,5)),I=m(()=>e.deadlines.filter(j=>Date.parse(j.due_at)>=h.value.getTime()).slice(0,5)),E=j=>{const B=Ae(j,h.value);return B>=0&&B<=14},R=m(()=>e.readingStats),q=m(()=>R.value.requiredTotal?Math.round(R.value.requiredRead/R.value.requiredTotal*100):0),W=m(()=>i.user?.name?`Cześć, ${i.user.name}`:"Pulpit"),le=m(()=>`Pulpit · ${Le(h.value.toISOString())}`),G=m(()=>{const j=i.user;return yt({name:j?.name??"",surname:j?.surname??"",handle:""},j?.email??"")}),ne=Fn(1100),V=m(()=>l.member===!0),se=m(()=>r.query.tab==="czat"?"czat":"pulpit"),ve=m(()=>V.value&&!ne.value),N=m(()=>V.value&&(ne.value||se.value==="czat")),S=$(fl()),A=m(()=>S.value===null?void 0:{"--chat-width":`${S.value}px`}),T=[{key:"pulpit",label:"Pulpit",id:"tab-pulpit",panel:"panel-pulpit"},{key:"czat",label:"Czat",id:"tab-czat",panel:"panel-czat"}];function H(j){if(j==="czat")return{...r.query,tab:"czat"};const{tab:B,...X}=r.query;return X}function M(j){j!==se.value&&c.push({query:H(j)})}function te(j,B){const X=ft(j.key,B,T.length);X!==null&&(j.preventDefault(),M(T[X].key),Q(()=>document.getElementById(T[X].id)?.focus()))}return ce([()=>l.member,()=>r.query.tab],([j,B])=>{j===!1&&B==="czat"&&c.replace({query:H("pulpit")})},{immediate:!0}),(j,B)=>{const X=dt("router-link");return a(),s("div",{class:de(["pulpit",{"with-chat":V.value,czat:V.value&&se.value==="czat"}]),style:Se(A.value)},[L(an,{class:"pulpit-head",eyebrow:le.value,title:W.value},{default:pe(()=>[L(st,{part:"chip"}),L(X,{class:"profile-link",to:"/profil","aria-label":"Profil"},{default:pe(()=>[ee(v(G.value),1)]),_:1})]),_:1},8,["eyebrow","title"]),V.value?(a(),s("div",bl,[(a(),s(F,null,ae(T,(P,Y)=>n("button",{id:P.id,key:P.key,class:"pulpit-tab",type:"button",role:"tab","aria-selected":se.value===P.key,"aria-controls":P.panel,tabindex:se.value===P.key?0:-1,onClick:ie=>M(P.key),onKeydown:ie=>te(ie,Y)},[ee(v(P.label)+" ",1),P.key==="czat"&&p(Ee)(p(l).totalUnread)?(a(),s("span",kl,[n("span",gl,v(p(Ee)(p(l).totalUnread)),1),n("span",$l,", "+v(p(tt)(p(l).totalUnread)),1)])):x("",!0)],40,_l)),64))])):x("",!0),n("div",{id:"panel-pulpit",class:"pulpit-main",role:ve.value?"tabpanel":void 0,"aria-labelledby":ve.value?"tab-pulpit":void 0},[L(st,{part:"notice"}),L(sn,{ready:u.value,error:p(e).error,onRetry:B[0]||(B[0]=P=>p(e).retry())},{default:pe(()=>[L(Mn,{meeting:_.value,"is-current":f.value,schedule:p(e).schedule,deadlines:p(e).deadlines,readings:p(e).readings,materials:O.value,now:h.value,checklist:d.value},null,8,["meeting","is-current","schedule","deadlines","readings","materials","now","checklist"]),n("div",zl,[n("section",xl,[n("div",Il,[B[3]||(B[3]=n("h2",{id:"next-h"},"Najbliższe zajęcia",-1)),L(X,{to:"/plan",class:"small"},{default:pe(()=>[...B[2]||(B[2]=[ee("Cały plan",-1)])]),_:1})]),k.value.length?(a(),s("ul",Cl,[(a(!0),s(F,null,ae(k.value,P=>(a(),s("li",{key:P.id},[n("div",El,[n("span",jl,v(P.course.name),1),n("span",Tl,v(p(Ne)(P.starts_at))+"–"+v(p(Ne)(P.ends_at)),1)]),n("div",Dl,[ee(v(p(Le)(P.starts_at))+" · "+v(p(Qt)[P.course.form])+" ",1),P.is_online?(a(),s("span",Ml,"online")):P.room?(a(),s("span",Sl,"sala "+v(P.room),1)):x("",!0)])]))),128))])):(a(),s("p",Bl,"Nie ma już zaplanowanych zajęć."))]),n("section",Ll,[n("div",Nl,[B[5]||(B[5]=n("h2",{id:"dl-h"},"Terminy",-1)),L(X,{to:"/terminarz",class:"small"},{default:pe(()=>[...B[4]||(B[4]=[ee("Terminarz",-1)])]),_:1})]),I.value.length?(a(),s("ul",Rl,[(a(!0),s(F,null,ae(I.value,P=>(a(),s("li",{key:P.id},[n("div",Wl,[n("span",Al,v(P.title),1),n("span",{class:de(["badge",{warn:E(P.due_at)}])},v(p(Jt)(P.due_at,h.value)),3)]),n("div",Pl,[ee(v(p(Ge)(P.due_at))+" · "+v(p(en)[P.kind]),1),P.course?(a(),s("span",ql," · "+v(P.course.name),1)):x("",!0)])]))),128))])):(a(),s("p",Hl,"Brak nadchodzących terminów."))])]),n("div",Ul,[n("section",Ol,[B[7]||(B[7]=n("span",{class:"eyebrow"},"Lektury",-1)),B[8]||(B[8]=n("h2",{id:"read-h",style:{margin:"4px 0 8px"}},"Postęp czytania",-1)),n("p",Kl,[n("span",Fl,v(R.value.requiredRead),1),n("span",Zl," z "+v(R.value.requiredTotal)+" obowiązkowych",1)]),n("div",{class:"progress-bar",role:"progressbar","aria-valuenow":q.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[n("span",{style:Se({width:q.value+"%"})},null,4)],8,Vl),n("p",Xl,"Łącznie przeczytano "+v(R.value.read)+" z "+v(p(Xt)(R.value.total,"lektury","lektur","lektur"))+".",1),L(X,{class:"btn small",to:"/lektury"},{default:pe(()=>[...B[6]||(B[6]=[ee("Lista lektur",-1)])]),_:1})]),n("section",Yl,[B[10]||(B[10]=n("span",{class:"eyebrow"},"Quizy",-1)),B[11]||(B[11]=n("h2",{id:"quiz-h",style:{margin:"4px 0 8px"}},"Sprawdź się",-1)),B[12]||(B[12]=n("p",{class:"muted",style:{margin:"0 0 12px"}},"Fiszki z powtórki: losuj po 5 pytań, oznaczaj Wiem / Nie wiem i wracaj do tych, których nie znasz.",-1)),L(X,{class:"btn primary small",to:"/quizy"},{default:pe(()=>[...B[9]||(B[9]=[ee("Zacznij quiz",-1)])]),_:1})])])]),_:1},8,["ready","error"])],8,wl),V.value&&p(ne)?(a(),me(yl,{key:1,width:S.value,"onUpdate:width":B[1]||(B[1]=P=>S.value=P),controls:"panel-czat"},null,8,["width"])):x("",!0),V.value?(a(),me(ul,{key:2,id:"panel-czat",wide:p(ne),visible:N.value,"labelled-by":"tab-czat"},null,8,["wide","visible"])):x("",!0)],6)}}});export{ai as default}; diff --git a/public/assets/DashboardView-C6q1Zjsy.js b/public/assets/DashboardView-C6q1Zjsy.js deleted file mode 100644 index fdd8182..0000000 --- a/public/assets/DashboardView-C6q1Zjsy.js +++ /dev/null @@ -1,2 +0,0 @@ -import{y as ze,z as Re,B as Oe,T as _t,d as ie,n,c as s,C as ce,b as t,t as m,p as J,e as p,D as kt,f as I,F as K,E as ee,s as ve,j as me,G as gt,H as qe,i as B,x as v,l as lt,I as $t,J as wt,K as Be,r as $,L as zt,M as xt,R as It,N as it,O as rt,P as jt,Q as Ct,S as Et,U as le,V as Ce,_ as ne,w as Ae,v as We,W as Tt,h as Pe,X as Ee,Y as ut,Z as Y,$ as Ie,a0 as ye,a1 as Fe,o as Xe,a2 as Dt,a3 as St,a4 as je,a5 as Ye,a6 as Le,a7 as Mt,q as Bt,a8 as Ze,a9 as Lt,aa as Nt,ab as Rt,ac as qt,ad as At,u as Wt,ae as Pt,af as Ut,ag as Ot,k as Ht,m as Kt,ah as Ft,ai as Zt,aj as Vt,ak as Qt,al as Xt}from"./index-CZVUqkdk.js";import{_ as Yt}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as Gt}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as Je}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js";import{e as we,s as et,f as tt}from"./safeText-O-oWGdGq.js";import{n as ct}from"./tabs-nNm7HGNT.js";const Jt=5,Ve=a=>`${a}T12:00:00Z`;function at(a,r){return Re(Ve(r),new Date(Ve(a)))}function ea(a,r,e,o=new Date){let l;if(r){const d=at(a.starts_on,a.ends_on)+1;l={value:`${Math.min(Math.max(at(a.starts_on,ze(o))+1,1),d)}/${d}`,caption:"dzień zjazdu"}}else{const d=Math.max(Re(Ve(a.starts_on),o),0);l={value:String(d),caption:Oe(d,"dzień do zjazdu","dni do zjazdu","dni do zjazdu")}}const i=a.sessions_count,c=o.getTime(),y=e.filter(d=>Date.parse(d.due_at)>=c&&ze(d.due_at)<=a.ends_on).length;return[l,{value:String(i),caption:Oe(i,"zajęcia","zajęcia","zajęć")},{value:String(y),caption:Oe(y,"termin do końca zjazdu","terminy do końca zjazdu","terminów do końca zjazdu")}]}function ta(a,r){return r.filter(e=>{if(e.meeting_id!==null)return e.meeting_id===a.id;const o=ze(e.starts_at);return o>=a.starts_on&&o<=a.ends_on})}const aa=/^https?:\/\//i;function nt(a){const r=[a.is_required?"obowiązkowa":"",a.author??"",a.course?.name??""].filter(o=>o!=="").join(" · "),e=a.url&&aa.test(a.url)?a.url:null;return{key:`r${a.id}`,title:a.title,meta:r,href:e,to:`/lektury#lektura-${a.id}`}}function na(a){const r=[_t[a.type]??"",a.course?.name??""].filter(e=>e!=="").join(" · ");return{key:`m${a.id}`,title:a.title,meta:r,href:null,to:`/materialy/${a.id}`}}function sa(a){return[...a.filter(r=>r.is_required),...a.filter(r=>!r.is_required)]}function oa(a,r,e,o,l=Jt){const i=e.filter(u=>u.meeting_id===a.id),c=o.filter(u=>u.meeting_id===a.id);let y,d;if(i.length||c.length)d=[...sa(i.filter(u=>u.read_at===null)).map(nt),...c.map(na)],y=d.length?"meeting":"done";else{const u=new Set(ta(a,r).map(b=>b.course_id));d=e.filter(b=>b.is_required&&b.read_at===null&&u.has(b.course_id)).map(nt),y=d.length?"courses":"none"}const k=d.slice(l),f=k.length&&k.every(u=>u.key.startsWith("m"))?"/materialy":"/lektury";return{source:y,items:d.slice(0,l),more:k.length,moreTo:f}}const la={class:"hero-main"},ia={class:"eyebrow hero-eyebrow"},ra={id:"hero-h",class:"hero-title"},ua={class:"hero-dates"},ca={key:0,class:"hero-extra muted"},da={class:"hero-stats"},ma={class:"hero-num"},va={class:"hero-cap"},pa={class:"hero-cap"},fa=["aria-valuenow"],ya={class:"hero-timeline"},ba={class:"eyebrow"},ha={key:0,class:"hero-rows"},_a=["href"],ka={key:2,class:"hero-read-meta"},ga={key:0,class:"hero-more"},$a={key:1,class:"muted"},wa={key:1,class:"card hero hero-empty","aria-labelledby":"hero-h"},za={class:"hero-main"},xa=ie({__name:"ZjazdHero",props:{meeting:{},isCurrent:{type:Boolean},schedule:{},deadlines:{},readings:{},materials:{},now:{},checklist:{}},setup(a){const r=a,e=v(()=>$t(r.meeting?.notes)),o=v(()=>wt(r.meeting?.notes)),l=v(()=>r.meeting?ea(r.meeting,r.isCurrent,r.deadlines,r.now):[]),i=v(()=>r.meeting&&r.materials?oa(r.meeting,r.schedule,r.readings,r.materials):null),c=v(()=>({name:"schedule",query:{zjazd:r.meeting?.number}}));return(y,d)=>{const k=lt("router-link");return a.meeting?(n(),s("section",{key:0,class:ce(["card hero",{hl:a.isCurrent}]),"aria-labelledby":"hero-h"},[t("div",la,[t("span",ia,m(a.isCurrent?"Trwa zjazd":"Najbliższy zjazd"),1),t("h2",ra,"Zjazd "+m(a.meeting.number),1),t("p",ua,[J(m(p(kt)(a.meeting.starts_on,a.meeting.ends_on))+" ",1),e.value?(n(),s("span",{key:0,class:ce(["badge",e.value==="online"?"online":"onsite"])},m(e.value),3)):I("",!0)]),o.value?(n(),s("p",ca,m(o.value),1)):I("",!0),t("ul",da,[(n(!0),s(K,null,ee(l.value,f=>(n(),s("li",{key:f.caption},[t("span",ma,m(f.value),1),t("span",va,m(f.caption),1)]))),128))]),a.checklist?(n(),ve(k,{key:1,class:"hero-prep",to:`/checklisty/${a.checklist.id}`,"aria-label":"Przygotowanie do zjazdu"},{default:me(()=>[t("span",pa,"Przygotowanie · "+m(p(gt)(a.checklist.progress)),1),t("span",{class:"progress-bar",role:"progressbar","aria-valuenow":a.checklist.progress.percent,"aria-valuemin":"0","aria-valuemax":"100"},[t("span",{style:qe({width:a.checklist.progress.percent+"%"})},null,4)],8,fa)]),_:1},8,["to"])):I("",!0),B(k,{class:"btn hero-btn",to:c.value},{default:me(()=>[...d[0]||(d[0]=[J("Zobacz plan zjazdu",-1)])]),_:1},8,["to"])]),t("div",ya,[t("span",ba,m(i.value?.source==="courses"?"Czytaj teraz":"Do przeczytania na zjazd"),1),i.value?(n(),s(K,{key:0},[i.value.items.length?(n(),s("ul",ha,[(n(!0),s(K,null,ee(i.value.items,f=>(n(),s("li",{key:f.key},[f.href?(n(),s("a",{key:0,class:"hero-read-title",href:f.href,target:"_blank",rel:"noopener"},m(f.title),9,_a)):(n(),ve(k,{key:1,class:"hero-read-title",to:f.to},{default:me(()=>[J(m(f.title),1)]),_:2},1032,["to"])),f.meta?(n(),s("span",ka,m(f.meta),1)):I("",!0)]))),128)),i.value.more>0?(n(),s("li",ga,[B(k,{to:i.value.moreTo},{default:me(()=>[J("+ "+m(i.value.more)+" więcej",1)]),_:1},8,["to"])])):I("",!0)])):(n(),s("p",$a,m(i.value.source==="done"?"Wszystko na ten zjazd przeczytane.":"Nic do przeczytania na ten zjazd."),1))],64)):I("",!0)])],2)):(n(),s("section",wa,[t("div",za,[d[2]||(d[2]=t("h2",{id:"hero-h",class:"hero-empty-h"},"Brak zaplanowanych zjazdów",-1)),d[3]||(d[3]=t("p",{class:"muted"},"Plan kolejnych zjazdów pojawi się tutaj, gdy zostanie opublikowany.",-1)),B(k,{class:"btn hero-btn",to:"/plan"},{default:me(()=>[...d[1]||(d[1]=[J("Cały plan",-1)])]),_:1})])]))}}});function dt(a){const r=a.indexOf("@");return r>0?a.slice(0,r):a}function $e(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";if(e&&a?.is_bot)return e;if(e&&o)return`${e} ${o[0]}.`;if(e)return e;if(a?.handle)return`@${a.handle}`;const l=r.trim();return l?dt(l):"Nieznana osoba"}function Ne(a,r=""){return[a?.name?.trim(),a?.surname?.trim()].filter(Boolean).join(" ")||$e(a,r)}function mt(a,r=""){const e=a?.name?.trim()??"",o=a?.surname?.trim()??"";let l="";return e||o?l=e.slice(0,1)+o.slice(0,1):a?.handle?l=a.handle.slice(0,2):l=dt(r.trim()).slice(0,2),(l||"?").toLocaleUpperCase("pl-PL")}function Ia(a){return Math.abs(Math.trunc(a))%8+1}function ja(a,r=new Date){const e=Re(a,r);if(e===0)return"DZIŚ";if(e===-1)return"WCZORAJ";const o=ze(a).slice(0,4);return(o===ze(r).slice(0,4)?Be(a):`${Be(a)} ${o}`).toLocaleUpperCase("pl-PL")}const Ca=300*1e3;function Ea(a,r=new Date){const e=[];let o=null,l="";for(const i of a){const c=ze(i.created_at),y=c!==l;y&&e.push({kind:"day",key:`day-${c}`,label:ja(i.created_at,r)});const d=!y&&o!==null&&o.sender_id===i.sender_id&&Date.parse(i.created_at)-Date.parse(o.created_at)<=Ca;e.push({kind:"message",key:`m-${i.id}`,message:i,followUp:d}),o=i,l=c}return e}function He(a){return a.toLocaleLowerCase("pl-PL").replace(/ł/g,"l").normalize("NFD").replace(/\p{Diacritic}/gu,"")}function Qe(a,r,e){const o=He(r.trim()),l=[];for(const i of a){if(i.id===e)continue;const c=He(i.name??""),y=He(i.surname??"");(!o||c.startsWith(o)||y.startsWith(o)||`${c} ${y}`.startsWith(o))&&l.push(i)}return l.sort((i,c)=>Ne(i).localeCompare(Ne(c),"pl"))}const Ta=10;function Da(a,r){const e=a.slice(0,Ta).map(l=>$e(r.get(l))),o=a.length-e.length;return o>0?`${e.join(", ")} i ${o} innych`:e.join(", ")}const st=' target="_blank" rel="noopener noreferrer nofollow"',vt=/(?"'`]+/gi;function ft(a,r){if(r(a))return{handle:a,rest:""};const e=a.replace(/[.-]+$/,"");return e.length>=2&&e!==a&&r(e)?{handle:e,rest:a.slice(e.length)}:null}function Ba(a){let r=a;for(;;){const e=r.at(-1);if(!e)break;if(`.,;:!?'"]}`.includes(e)){r=r.slice(0,-1);continue}if(e===")"&&(r.match(/\(/g)?.length??0)<(r.match(/\)/g)?.length??0)){r=r.slice(0,-1);continue}break}return{url:r,rest:a.slice(r.length)}}function La(a,r=new Map){if(!a)return"";const e=[],o=c=>c.replace(/\u0000(\d+)\u0000/g,(y,d)=>e[Number(d)]??""),l=c=>`\0${e.push(o(c))-1}\0`;let i=a.replace(/\r\n?/g,` -`).replace(/\u0000/g,"");return i=i.replace(pt,(c,y)=>l(`${we(y)}`)),i=i.replace(Sa,(c,y,d)=>{if(d.includes("\0"))return c;const k=et(d),f=tt(we(y));if(!k)return l(f);const u=/^https?:/i.test(k)?st:"";return l(`${f}`)}),i=i.replace(Ma,c=>{if(c.includes("\0"))return c;const{url:y,rest:d}=Ba(c),k=et(y);return k?l(`${we(y)}`)+d:c}),i=i.replace(vt,(c,y)=>{const d=ft(y,u=>r.has(u));if(!d)return c;const k=r.get(d.handle),f=`@${$e(k)}`;return l(`${we(f)}`)+d.rest}),i=tt(we(i)).replace(/\n/g,"
"),o(i)}function Na(a,r){if(!a||!r)return!1;const e=a.replace(pt," ");for(const o of e.matchAll(vt))if(ft(o[1],l=>l===r))return!0;return!1}function Ra(a,r){const e=a.slice(0,Math.max(0,r)),o=/(^|\s)@([^\s@]*)$/u.exec(e);return o?{start:e.length-o[2].length-1,query:o[2]}:null}function qa(a,r,e){const o=a.slice(0,r.start),l=a.slice(r.end),i=`@${e}`;return l.startsWith(" ")?{text:o+i+l,caret:o.length+i.length+1}:{text:`${o}${i} ${l}`,caret:o.length+i.length+1}}function Ge(a){const r=$(!1);if(typeof window>"u"||typeof window.matchMedia!="function")return r;const e=window.matchMedia(a);r.value=e.matches;const o=l=>{r.value=l.matches};return e.addEventListener("change",o),zt()&&xt(()=>e.removeEventListener("change",o)),r}function Aa(a){return Ge(`(min-width: ${a}px)`)}const Wa={class:"embed-main"},Pa={class:"embed-type"},Ua={class:"embed-title"},Oa={key:0,class:"embed-meta"},Ha={key:1,class:"embed-card static"},Ka={class:"embed-main"},Fa={class:"embed-type"},Za={class:"embed-title"},Va={key:0,class:"embed-meta"},Qa={key:2,class:"embed-card unavailable"},Xa={class:"embed-main"},Ya={class:"embed-type"},Ga={key:3,class:"embed-card loading","aria-busy":"true"},Ja={class:"embed-main"},en={class:"embed-type"},yt=ie({__name:"EmbedCard",props:{embedRef:{},item:{},static:{type:Boolean}},setup(a){const r=a,e=v(()=>it[r.embedRef.type]),o=v(()=>r.item===void 0),l=v(()=>r.item??null),i=v(()=>l.value?rt(l.value):""),c=v(()=>l.value?jt(l.value):""),y=v(()=>l.value?Ct(l.value):null),d=v(()=>l.value?Et(l.value):"");return(k,f)=>l.value&&!a.static?(n(),ve(p(It),{key:0,class:"embed-card",to:d.value},{default:me(()=>[t("span",Wa,[t("span",Pa,m(e.value),1),t("span",Ua,m(i.value),1),c.value?(n(),s("span",Oa,m(c.value),1)):I("",!0)]),y.value?(n(),s("span",{key:0,class:ce(["badge",{warn:y.value.warn}])},m(y.value.text),3)):I("",!0)]),_:1},8,["to"])):l.value?(n(),s("span",Ha,[t("span",Ka,[t("span",Fa,m(e.value),1),t("span",Za,m(i.value),1),c.value?(n(),s("span",Va,m(c.value),1)):I("",!0)]),y.value?(n(),s("span",{key:0,class:ce(["badge",{warn:y.value.warn}])},m(y.value.text),3)):I("",!0)])):o.value?(n(),s("span",Ga,[t("span",Ja,[t("span",en,m(e.value),1),f[2]||(f[2]=t("span",{class:"embed-title"},[t("span",{class:"skeleton embed-skeleton","aria-label":"Wczytywanie"})],-1)),f[3]||(f[3]=t("span",{class:"embed-meta"}," ",-1))])])):(n(),s("div",Qa,[t("span",Xa,[t("span",Ya,m(e.value),1),f[0]||(f[0]=t("span",{class:"embed-title"},"Element niedostępny",-1)),f[1]||(f[1]=t("span",{class:"embed-meta"},"Ten element usunięto albo nie masz do niego dostępu.",-1))])]))}}),tn=["aria-labelledby"],an={class:"chat-dialog-head"},nn=["id"],sn={class:"embed-tabs",role:"tablist","aria-label":"Rodzaj elementu"},on=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ln=["id","aria-labelledby"],rn={class:"field"},un=["for"],cn=["id","placeholder"],dn={class:"picker-results"},mn={key:0,class:"embed-searching",role:"status"},vn={key:1,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Szukam…"},pn={key:2,class:"notice error",role:"alert"},fn={key:3,class:"empty"},yn={key:4,class:"empty"},bn={key:5,class:"picker-rows"},hn=["aria-disabled","onClick"],_n={key:0,class:"embed-staged"},kn=250,gn=ie({__name:"EmbedPicker",props:{staged:{}},emits:["pick"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=[{type:"deadline",label:"Terminy",placeholder:"Szukaj terminu…"},{type:"class",label:"Zajęcia",placeholder:"Szukaj zajęć…"},{type:"reading",label:"Lektury",placeholder:"Szukaj lektury…"}],c=Ee(),y=$(null),d=$(null),k=$([]),f=$("deadline"),u=$(""),b=$(null),j=$("idle"),O=$("");let F=0,E=null,M=null,C=!1;const R=v(()=>i.find(D=>D.type===f.value)??i[0]),A=v(()=>new Set(o.staged));async function q(){E&&clearTimeout(E),E=null;const D=++F,U=f.value,_=u.value.trim();j.value="loading";try{const x=await ut.embeds(U,_);if(D!==F)return;b.value=Array.isArray(x)?x.filter(W=>W&&W.type===U):[],O.value=_,j.value="ready"}catch{if(D!==F)return;j.value="error"}}function se(){E&&clearTimeout(E),E=setTimeout(()=>{q()},kn)}le(u,se);function Q(D,U=!1){f.value!==D&&(f.value=D,b.value=null,q()),U&&Y(()=>k.value[i.findIndex(_=>_.type===D)]?.focus())}function te(D,U){let _=-1;D.key==="ArrowRight"?_=(U+1)%i.length:D.key==="ArrowLeft"?_=(U-1+i.length)%i.length:D.key==="Home"?_=0:D.key==="End"&&(_=i.length-1),!(_<0)&&(D.preventDefault(),Q(i[_].type,!0))}function V(){M=document.activeElement instanceof HTMLElement?document.activeElement:null,C=!1,u.value="",b.value=null,y.value?.showModal(),q(),Y(()=>d.value?.focus())}function ae(){y.value?.close()}function de(){E&&clearTimeout(E),E=null,F++,C||M?.focus(),M=null}function L(D){D.target===y.value&&ae()}function S(D){return A.value.has(Ie(D))}function N(D){S(D)||(C=!0,ae(),l("pick",D))}return Ce(()=>{E&&clearTimeout(E)}),r({open:V}),(D,U)=>(n(),s("dialog",{ref_key:"dialog",ref:y,class:"chat-dialog embed-picker","aria-labelledby":`embed-h-${p(c)}`,onClose:de,onClick:L},[t("div",an,[t("h2",{id:`embed-h-${p(c)}`,class:"chat-dialog-title"},"Podepnij do wiadomości",8,nn),t("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:ae},[B(ne,{name:"close"})])]),t("div",sn,[(n(),s(K,null,ee(i,(_,x)=>t("button",{id:`embed-tab-${p(c)}-${_.type}`,key:_.type,ref_for:!0,ref_key:"tabEls",ref:k,class:"embed-tab",type:"button",role:"tab","aria-selected":f.value===_.type?"true":"false","aria-controls":`embed-panel-${p(c)}`,tabindex:f.value===_.type?0:-1,onClick:W=>Q(_.type),onKeydown:W=>te(W,x)},m(_.label),41,on)),64))]),t("div",{id:`embed-panel-${p(c)}`,class:"embed-panel",role:"tabpanel","aria-labelledby":`embed-tab-${p(c)}-${f.value}`},[t("div",rn,[t("label",{for:`embed-q-${p(c)}`},"Szukaj",8,un),Ae(t("input",{id:`embed-q-${p(c)}`,ref_key:"search",ref:d,"onUpdate:modelValue":U[0]||(U[0]=_=>u.value=_),type:"text",autocomplete:"off",placeholder:R.value.placeholder,onKeydown:U[1]||(U[1]=Tt(Pe(()=>{},["prevent"]),["enter"]))},null,40,cn),[[We,u.value]])]),t("div",dn,[j.value==="loading"&&b.value?(n(),s("p",mn,"Szukam…")):I("",!0),j.value==="loading"&&!b.value?(n(),s("div",vn,[...U[2]||(U[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):j.value==="error"?(n(),s("div",pn,[U[3]||(U[3]=J(" Nie udało się wczytać wyników. ",-1)),t("button",{class:"linkish",type:"button",onClick:q},"Spróbuj ponownie")])):b.value&&!b.value.length&&O.value?(n(),s("p",fn,"Nic nie znaleziono dla „"+m(O.value)+"”.",1)):b.value&&!b.value.length?(n(),s("p",yn,"Nic tu jeszcze nie ma.")):b.value?(n(),s("ul",bn,[(n(!0),s(K,null,ee(b.value,_=>(n(),s("li",{key:`${_.type}:${_.id}`},[t("button",{class:"picker-row embed-pick",type:"button","aria-disabled":S(_)?"true":void 0,onClick:x=>N(_)},[B(yt,{"embed-ref":_,item:_,static:""},null,8,["embed-ref","item"]),S(_)?(n(),s("span",_n,"podpięte")):I("",!0)],8,hn)]))),128))])):I("",!0)])],8,ln)],40,tn))}}),Me=ie({__name:"Avatar",props:{userId:{},member:{default:null},fallback:{default:""},size:{default:32},me:{type:Boolean,default:!1}},setup(a){const r=a,e=v(()=>mt(r.member,r.fallback)),o=v(()=>r.me?void 0:{background:`var(--av-${Ia(r.userId)})`});return(l,i)=>(n(),s("span",{class:ce(["avatar",[`s${a.size}`,{me:a.me}]]),style:qe(o.value),"aria-hidden":"true"},m(e.value),7))}}),$n=["id"],wn={key:0,class:"mention-empty",role:"option","aria-disabled":"true","aria-selected":"false"},zn=["id","aria-selected","onMousedown","onMousemove"],xn={class:"mention-name"},In={class:"mention-handle"},jn=ie({__name:"MentionPopup",props:{id:{},options:{},active:{},query:{}},emits:["pick","hover"],setup(a,{emit:r}){const e=r;function o(l,i){return`${l}-opt-${i}`}return(l,i)=>(n(),s("ul",{id:a.id,class:"mention-pop",role:"listbox","aria-label":"Wspomnij osobę"},[a.options.length?I("",!0):(n(),s("li",wn,"Brak osób pasujących do „"+m(a.query)+"”.",1)),(n(!0),s(K,null,ee(a.options,(c,y)=>(n(),s("li",{id:o(a.id,y),key:c.id,class:ce(["mention-option",{active:y===a.active}]),role:"option","aria-selected":y===a.active?"true":"false",onMousedown:Pe(d=>e("pick",c),["prevent"]),onMousemove:d=>y!==a.active&&e("hover",y)},[B(Me,{"user-id":c.id,member:c,size:24},null,8,["user-id","member"]),t("span",xn,m(p(Ne)(c)),1),t("span",In,"@"+m(c.handle),1)],42,zn))),128))],8,$n))}}),Cn={key:0,class:"staging","aria-label":"Załączniki i podpięcia"},En=["title"],Tn={key:0,class:"staging-size"},Dn=["onClick"],Sn={key:2,class:"staging-size"},Mn=["aria-label","disabled","onClick"],Bn={class:"staging-type"},Ln=["title"],Nn=["aria-label","disabled","onClick"],ot=ie({__name:"StagingChips",props:{conversationId:{}},emits:["removed"],setup(a,{emit:r}){const e=a,o=r,l=ye(),i=v(()=>l.draft(e.conversationId));function c(k){const f=l.embedItem(k);return f===void 0?"Wczytywanie…":f===null?"Element niedostępny":rt(f)}function y(k){l.unstageEmbed(e.conversationId,k),o("removed")}function d(k){l.removeFile(e.conversationId,k.localId),o("removed")}return(k,f)=>i.value.files.length||i.value.embeds.length?(n(),s("ul",Cn,[(n(!0),s(K,null,ee(i.value.files,u=>(n(),s("li",{key:`file-${u.localId}`,class:ce(["staging-chip file",u.state])},[t("span",{class:"staging-name file-name",title:u.name},m(u.name),9,En),u.state==="uploading"?(n(),s("span",Tn,"Wysyłanie… "+m(u.progress)+"%",1)):u.state==="failed"?(n(),s(K,{key:1},[f[0]||(f[0]=t("span",{class:"staging-failed"},"Nie wysłano",-1)),t("button",{class:"linkish",type:"button",onClick:b=>p(l).retryUpload(a.conversationId,u.localId)},"Spróbuj ponownie",8,Dn)],64)):(n(),s("span",Sn,m(p(Fe)(u.size)),1)),t("button",{class:"staging-remove",type:"button","aria-label":`Usuń załącznik ${u.name}`,disabled:i.value.sending,onClick:b=>d(u)},[B(ne,{name:"close"})],8,Mn),u.state==="uploading"?(n(),s("span",{key:3,class:"staging-progress",style:qe({width:`${u.progress}%`}),"aria-hidden":"true"},null,4)):I("",!0)],2))),128)),(n(!0),s(K,null,ee(i.value.embeds,u=>(n(),s("li",{key:p(Ie)(u),class:"staging-chip embed"},[t("span",Bn,m(p(it)[u.type]),1),t("span",{class:"staging-name embed-name",title:c(u)},m(c(u)),9,Ln),t("button",{class:"staging-remove",type:"button","aria-label":`Usuń podpięcie ${c(u)}`,disabled:i.value.sending,onClick:b=>y(u)},[B(ne,{name:"close"})],8,Nn)]))),128))])):I("",!0)}}),Rn={key:0,class:"error-text",role:"alert"},qn={class:"composer-row"},An={key:0,class:"composer-add"},Wn=["aria-expanded","disabled"],Pn=["disabled","title","onClick"],Un={class:"composer-field"},On=["rows","placeholder","readonly","aria-expanded","aria-activedescendant"],Hn={key:2,class:"composer-tools"},Kn=["disabled"],Fn=["title","disabled"],Zn=["disabled"],Vn=["aria-busy","disabled"],Qn=["aria-busy","disabled"],Ke="Możesz podpiąć najwyżej 3 elementy do jednej wiadomości.",Xn=24,Yn=6,Gn=ie({__name:"ChatComposer",props:{conversationId:{},label:{},placeholder:{}},emits:["sent"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=ye(),c=Ee(),y=`composer-${c}`,d=`composer-hint-${c}`,k=`mentions-${c}`,f=$(null),u=Ge("(min-width: 1100px) and (pointer: fine)"),b=v(()=>i.draft(o.conversationId)),j=$(""),O=v(()=>b.value.error||j.value),F=v({get:()=>b.value.text,set:h=>{j.value="",i.setDraftText(o.conversationId,h),h.trim()&&i.emitTyping(o.conversationId,h)}}),E=v(()=>i.canSend(o.conversationId)),M=$(null);function C(){b.value.sending||M.value?.click()}function R(){const h=M.value;h?.files?.length&&(j.value="",i.uploadFiles(o.conversationId,[...h.files]),h.value="",Y(Te))}const A=`composer-menu-${c}`,q=$(!1),se=$(null),Q=$([]);function te(){q.value=!0,Y(()=>Q.value[0]?.focus())}function V(h=!0){q.value&&(q.value=!1,h&&Y(()=>se.value?.focus()))}function ae(h){const z=Q.value.filter(oe=>!oe.disabled),H=z.indexOf(document.activeElement);if(h.key==="Escape")h.preventDefault(),h.stopPropagation(),V();else if(h.key==="ArrowDown"||h.key==="ArrowUp"){if(h.preventDefault(),!z.length)return;const oe=h.key==="ArrowDown"?(H+1)%z.length:(H-1+z.length)%z.length;z[oe]?.focus()}else h.key==="Home"||h.key==="End"?(h.preventDefault(),z[h.key==="Home"?0:z.length-1]?.focus()):h.key==="Tab"&&V(!1)}function de(){V(!1),C()}function L(){V(!1),se.value?.focus(),W()}const S=v(()=>[{label:"Dołącz plik",icon:"paperclip",disabled:!1,title:void 0,run:de},{label:"Podepnij termin, zajęcia lub lekturę",icon:"calendar",disabled:_.value,title:_.value?Ke:void 0,run:L}]);function N(h){const z=h.target;z instanceof Node&&(se.value?.contains(z)||Q.value.some(H=>H.contains(z)))||V(!1)}le(q,h=>{h?document.addEventListener("pointerdown",N,!0):document.removeEventListener("pointerdown",N,!0)}),le(u,()=>V(!1)),Ce(()=>document.removeEventListener("pointerdown",N,!0));const D=$(null),U=v(()=>b.value.embeds.map(Ie)),_=v(()=>b.value.embeds.length>=i.maxEmbeds),x=v(()=>_.value?Ke:"Podepnij termin, zajęcia lub lekturę");function W(){_.value||b.value.sending||D.value?.open()}function P(h){j.value="",i.stageEmbed(o.conversationId,{type:h.type,id:h.id},h),Y(Te)}function re(h){if(b.value.sending)return;const z=h.clipboardData?.getData("text/plain")??"";if(!z)return;const H=Dt(z,window.location.origin);if(!H.refs.length)return;const oe=new Set(U.value);let De=0,xe=0;for(const Ue of H.refs)oe.has(Ie(Ue))||(i.stageEmbed(o.conversationId,Ue)?(oe.add(Ie(Ue)),De++):xe++);H.insertText===""&&(De>0||xe===0)&&h.preventDefault(),xe>0&&setTimeout(()=>j.value=Ke)}function be(){const h=f.value;if(!h)return;h.style.height="auto";const z=getComputedStyle(h),H=parseFloat(z.paddingTop)+parseFloat(z.paddingBottom),oe=Xn*(u.value?8:4)+H;h.style.height=`${Math.min(h.scrollHeight,oe)}px`,h.style.overflowY=h.scrollHeight>oe?"auto":"hidden"}le([F,u],()=>{Y(be)}),Xe(be);const X=$(null),ue=$(0);let pe=null;const he=v(()=>X.value?Qe(i.members.values(),X.value.query,i.userId).slice(0,Yn):[]),g=v(()=>X.value!==null&&i.membersState==="ready"),w=v(()=>g.value&&he.value.length?`${k}-opt-${ue.value}`:void 0);function Z(){const h=f.value;if(!h)return;const z=h.selectionStart===h.selectionEnd?Ra(h.value,h.selectionStart??0):null;if(!z){pe=null,X.value=null;return}z.start!==pe&&((!X.value||X.value.start!==z.start||X.value.query!==z.query)&&(ue.value=0),X.value=z)}function _e(){X.value&&(pe=X.value.start),X.value=null}function T(h){const z=f.value,H=X.value;if(!z||!H||!h.handle)return;const oe=qa(z.value,{start:H.start,end:z.selectionStart??H.start+H.query.length+1},h.handle);F.value=oe.text,X.value=null,pe=null,Y(()=>{z.focus(),z.setSelectionRange(oe.caret,oe.caret)})}function fe(){const h=f.value;if(!h)return;const z=h.selectionStart??h.value.length,H=h.selectionEnd??z,oe=h.value.slice(0,z),De=oe===""||/\s$/.test(oe)?"@":" @";F.value=oe+De+h.value.slice(H),i.loadMembers(),Y(()=>{const xe=z+De.length;h.focus(),h.setSelectionRange(xe,xe),pe=null,Z()})}function G(h){if(!g.value)return!1;const z=he.value.length;switch(h.key){case"ArrowDown":return z&&(ue.value=(ue.value+1)%z),!0;case"ArrowUp":return z&&(ue.value=(ue.value-1+z)%z),!0;case"Enter":return h.shiftKey&&!z?!1:(z?T(he.value[ue.value]):_e(),!0);case"Tab":return z?(T(he.value[ue.value]),!0):(_e(),!1);case"Escape":return h.stopPropagation(),_e(),!0;default:return!1}}le(()=>o.conversationId,()=>{X.value=null,pe=null});async function ke(){E.value&&await i.send(o.conversationId)&&l("sent")}function bt(h){if(!h.isComposing){if(G(h)){h.preventDefault();return}h.key!=="Enter"||h.shiftKey||(h.preventDefault(),ke())}}function ht(h){(["ArrowLeft","ArrowRight","Home","End"].includes(h.key)||!g.value&&["ArrowUp","ArrowDown"].includes(h.key))&&Z()}function Te(){f.value?.focus()}return r({focus:Te}),(h,z)=>(n(),s("form",{class:ce(["composer",{compact:!p(u)}]),onSubmit:Pe(ke,["prevent"])},[t("label",{class:ce(p(u)?"composer-label":"sr-only"),for:y},m(a.label),3),O.value?(n(),s("p",Rn,m(O.value),1)):I("",!0),p(u)?I("",!0):(n(),ve(ot,{key:1,"conversation-id":a.conversationId,onRemoved:Te},null,8,["conversation-id"])),t("div",qn,[p(u)?I("",!0):(n(),s("div",An,[t("button",{ref_key:"menuButton",ref:se,class:"composer-plus",type:"button","aria-label":"Dodaj do wiadomości","aria-haspopup":"menu","aria-expanded":q.value?"true":"false","aria-controls":A,disabled:b.value.sending,onClick:z[0]||(z[0]=H=>q.value?V():te())},[B(ne,{name:"plus"})],8,Wn),q.value?(n(),s("div",{key:0,id:A,class:"composer-menu",role:"menu","aria-label":"Dodaj do wiadomości",onKeydown:ae},[(n(!0),s(K,null,ee(S.value,H=>(n(),s("button",{key:H.label,ref_for:!0,ref_key:"menuItems",ref:Q,class:"composer-menu-item",type:"button",role:"menuitem",tabindex:"-1",disabled:H.disabled,title:H.title,onClick:H.run},[B(ne,{name:H.icon},null,8,["name"]),J(m(H.label),1)],8,Pn))),128))],32)):I("",!0)])),t("div",Un,[p(u)?(n(),ve(ot,{key:0,"conversation-id":a.conversationId,onRemoved:Te},null,8,["conversation-id"])):I("",!0),g.value&&X.value?(n(),ve(jn,{key:1,id:k,options:he.value,active:ue.value,query:X.value.query,onPick:T,onHover:z[1]||(z[1]=H=>ue.value=H)},null,8,["options","active","query"])):I("",!0),Ae(t("textarea",{id:y,ref_key:"input",ref:f,"onUpdate:modelValue":z[2]||(z[2]=H=>F.value=H),rows:p(u)?3:1,placeholder:p(u)?"Napisz wiadomość…":a.placeholder,enterkeyhint:"send",readonly:b.value.sending,"aria-describedby":d,role:"combobox","aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":k,"aria-expanded":g.value?"true":"false","aria-activedescendant":w.value,onKeydown:bt,onKeyup:ht,onInput:Z,onClick:Z,onPaste:re,onBlur:z[3]||(z[3]=H=>X.value=null)},null,40,On),[[We,F.value]]),p(u)?(n(),s("div",Hn,[t("button",{class:"composer-tool",type:"button","aria-label":"Dołącz plik",title:"Dołącz plik",disabled:b.value.sending,onClick:C},[B(ne,{name:"paperclip"})],8,Kn),t("button",{class:"composer-tool",type:"button","aria-label":"Podepnij termin, zajęcia lub lekturę",title:x.value,disabled:b.value.sending||_.value,onClick:W},[B(ne,{name:"calendar"})],8,Fn),t("button",{class:"composer-tool",type:"button","aria-label":"Wspomnij osobę",title:"Wspomnij osobę",disabled:b.value.sending,onClick:fe},[B(ne,{name:"at"})],8,Zn),z[5]||(z[5]=t("span",{class:"composer-tools-gap"},null,-1)),t("button",{class:"btn primary small composer-send",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":b.value.sending?"true":void 0,disabled:!E.value},[z[4]||(z[4]=J(" Wyślij",-1)),B(ne,{name:"arrow-right"})],8,Vn)])):I("",!0)]),p(u)?I("",!0):(n(),s("button",{key:1,class:"composer-send round",type:"submit","aria-label":"Wyślij wiadomość","aria-busy":b.value.sending?"true":void 0,disabled:!E.value},[B(ne,{name:"arrow-up"})],8,Qn))]),t("span",{id:d,class:"sr-only"},"Enter wysyła, Shift+Enter dodaje nową linię."),t("input",{ref_key:"fileInput",ref:M,class:"sr-only",type:"file",multiple:"",tabindex:"-1","aria-hidden":"true",onChange:R},null,544),B(gn,{ref_key:"picker",ref:D,staged:U.value,onPick:P},null,8,["staged"])],34))}}),Jn={class:"chat-head"},es={class:"chat-head-row"},ts={class:"chat-head-name"},as={class:"eyebrow"},ns={class:"chat-title"},ss={class:"chat-presence","aria-hidden":"true"},os={key:0,class:"presence-stack"},ls={key:1,class:"presence-text"},is={class:"presence-text"},rs={class:"chat-tabs",role:"tablist","aria-label":"Rozmowy"},us=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],cs={key:0,class:"mention-badge"},ds={class:"sr-only"},ms={key:1,class:"unread-badge"},vs={"aria-hidden":"true"},ps={class:"sr-only"},fs={key:0,class:"chat-strip"},ys=ie({__name:"ChatHeader",props:{view:{},dmName:{},dmUserId:{},idBase:{}},emits:["select","back"],setup(a,{emit:r}){const e=a,o=r,l=[{key:"general",label:"# ogólny"},{key:"dms",label:"Wiadomości"}],i=E=>`${e.idBase}-tab-${E}`,c=ye(),y=v(()=>{switch(c.connection){case"connecting":return"Łączenie z czatem…";case"reconnecting":return"Ponowne łączenie…";case"unavailable":return"Czat bez aktualizacji na żywo — odświeżam co 15 s.";default:return""}}),d=v(()=>({general:{unread:c.generalId===null?0:c.unreadOf(c.generalId),mentions:c.totalMentions},dms:{unread:c.dmUnread,mentions:0}})),k=v(()=>c.othersOnline.slice(0,3)),f=v(()=>Math.max(0,c.othersOnline.length-3)),u=v(()=>e.view==="dm"&&e.dmUserId!=null&&c.isOnline(e.dmUserId)),b=v(()=>e.view==="general"?"general":"dms"),j=v(()=>e.view==="general"?"Czat roku":e.view==="dms"?"Wiadomości":"Wiadomość prywatna"),O=v(()=>e.view==="general"?"# ogólny":e.view==="dms"?"Wiadomości":e.dmName??"");function F(E,M){const C=ct(E.key,M,l.length);C!==null&&(E.preventDefault(),o("select",l[C].key),Y(()=>document.getElementById(i(l[C].key))?.focus()))}return(E,M)=>(n(),s(K,null,[t("header",Jn,[t("div",es,[a.view==="dm"?(n(),s("button",{key:0,class:"icon-btn chat-back",type:"button","aria-label":"Wróć do listy wiadomości",onClick:M[0]||(M[0]=C=>o("back"))},[B(ne,{name:"arrow-left"})])):I("",!0),t("div",ts,[t("span",as,m(j.value),1),t("h2",ns,m(O.value),1)]),t("div",ss,[a.view==="general"&&p(c).presenceAvailable?(n(),s(K,{key:0},[k.value.length?(n(),s("span",os,[(n(!0),s(K,null,ee(k.value,C=>(n(),ve(Me,{key:C,"user-id":C,member:p(c).members.get(C),size:24},null,8,["user-id","member"]))),128))])):I("",!0),f.value?(n(),s("span",ls,"+"+m(f.value),1)):I("",!0),M[1]||(M[1]=t("span",{class:"presence-dot"},null,-1)),t("span",is,m(p(c).onlineCount>1?`${p(c).onlineCount} online`:"tylko Ty"),1)],64)):u.value?(n(),s(K,{key:1},[M[2]||(M[2]=t("span",{class:"presence-dot"},null,-1)),M[3]||(M[3]=t("span",{class:"presence-text"},"online",-1))],64)):I("",!0)])]),t("div",rs,[(n(),s(K,null,ee(l,(C,R)=>t("button",{id:i(C.key),key:C.key,class:"chat-tab",type:"button",role:"tab","aria-selected":b.value===C.key,"aria-controls":`${a.idBase}-body`,tabindex:b.value===C.key?0:-1,onClick:A=>o("select",C.key),onKeydown:A=>F(A,R)},[J(m(C.label)+" ",1),d.value[C.key].mentions>0?(n(),s("span",cs,[M[4]||(M[4]=t("span",{"aria-hidden":"true"},"@",-1)),t("span",ds,", "+m(p(St)(d.value[C.key].mentions)),1)])):I("",!0),p(je)(d.value[C.key].unread)?(n(),s("span",ms,[t("span",vs,m(p(je)(d.value[C.key].unread)),1),t("span",ps,", "+m(p(Ye)(d.value[C.key].unread)),1)])):I("",!0)],40,us)),64))])]),y.value?(n(),s("p",fs,m(y.value),1)):I("",!0)],64))}}),bs={class:"dm-list"},hs={class:"dm-new"},_s={key:0,class:"chat-skeletons dm-skeletons","aria-busy":"true","aria-label":"Wczytywanie rozmów"},ks={key:1,class:"notice error dm-notice",role:"alert"},gs={key:2,class:"empty chat-empty dm-empty"},$s={key:3,class:"dm-rows"},ws=["onClick"],zs={class:"dm-text"},xs={class:"dm-name"},Is={class:"dm-preview"},js={class:"dm-meta"},Cs=["datetime"],Es={key:1,class:"unread-badge"},Ts={"aria-hidden":"true"},Ds={class:"sr-only"},Ss=ie({__name:"DmList",emits:["compose"],setup(a,{emit:r}){const e=r,o=ye(),l=v(()=>o.dmRows),i=v(()=>!l.value.length&&(o.bootstrapState==="loading"||o.bootstrapState==="idle")),c=v(()=>!l.value.length&&o.bootstrapState==="error");function y(f){return $e(o.members.get(f.other_user_id))}function d(f){const u=f.last_message;return u?u.sender_id===o.userId?`Ty: ${u.content}`:u.content:""}function k(f){const u=f.last_message?.created_at;return u?ze(u)===ze(new Date)?Le(u):Mt(u):""}return(f,u)=>(n(),s("div",bs,[t("div",hs,[t("button",{class:"btn small",type:"button",onClick:u[0]||(u[0]=b=>e("compose"))},[B(ne,{name:"plus"}),u[2]||(u[2]=J("Nowa wiadomość",-1))])]),i.value?(n(),s("div",_s,[...u[3]||(u[3]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):c.value?(n(),s("div",ks,[u[4]||(u[4]=J(" Nie udało się wczytać rozmów. ",-1)),t("button",{class:"linkish",type:"button",onClick:u[1]||(u[1]=b=>p(o).bootstrap())},"Spróbuj ponownie")])):l.value.length?(n(),s("ul",$s,[(n(!0),s(K,null,ee(l.value,b=>(n(),s("li",{key:b.id},[t("button",{class:ce(["dm-row",{unread:b.unread>0}]),type:"button",onClick:j=>p(o).openDm(b.id)},[B(Me,{"user-id":b.other_user_id,member:p(o).members.get(b.other_user_id)},null,8,["user-id","member"]),t("span",zs,[t("span",xs,m(y(b)),1),t("span",Is,m(d(b)),1)]),t("span",js,[b.last_message?(n(),s("time",{key:0,datetime:b.last_message.created_at},m(k(b)),9,Cs)):I("",!0),p(je)(b.unread)?(n(),s("span",Es,[t("span",Ts,m(p(je)(b.unread)),1),t("span",Ds,", "+m(p(Ye)(b.unread)),1)])):I("",!0)])],10,ws)]))),128))])):(n(),s("div",gs,[...u[5]||(u[5]=[t("p",{class:"chat-empty-h"},"Nie masz jeszcze wiadomości prywatnych",-1),t("p",null,"Kliknij „Nowa wiadomość”, wybierz osobę i napisz do niej.",-1)])]))]))}}),Ms=["aria-labelledby"],Bs={class:"chat-dialog-head"},Ls=["id"],Ns={class:"field"},Rs=["for"],qs=["id"],As={key:0,class:"error-text",role:"alert"},Ws={class:"picker-results"},Ps={key:0,class:"chat-skeletons picker-skeletons","aria-busy":"true","aria-label":"Wczytywanie osób"},Us={key:1,class:"notice error",role:"alert"},Os={key:2,class:"empty"},Hs={key:3,class:"empty"},Ks={key:4,class:"picker-rows"},Fs=["disabled","onClick"],Zs={class:"picker-name"},Vs=ie({__name:"MemberPicker",emits:["started"],setup(a,{expose:r,emit:e}){const o=e,l=ye(),i=Ee(),c=$(null),y=$(null),d=$(""),k=$(!1);let f=null,u=!1;const b=v(()=>Qe(l.members.values(),"",l.userId)),j=v(()=>Qe(l.members.values(),d.value,l.userId));function O(){f=document.activeElement instanceof HTMLElement?document.activeElement:null,u=!1,d.value="",l.dmError="",l.loadMembers(),c.value?.showModal(),Y(()=>y.value?.focus())}function F(){c.value?.close()}function E(){u||f?.focus(),f=null}function M(R){R.target===c.value&&F()}async function C(R){if(!k.value){k.value=!0;try{const A=await l.startDm(R);if(A===null)return;u=!0,F(),o("started",A)}finally{k.value=!1}}}return r({open:O}),(R,A)=>(n(),s("dialog",{ref_key:"dialog",ref:c,class:"chat-dialog","aria-labelledby":`picker-h-${p(i)}`,onClose:E,onClick:M},[t("div",Bs,[t("h2",{id:`picker-h-${p(i)}`,class:"chat-dialog-title"},"Nowa wiadomość",8,Ls),t("button",{class:"icon-btn",type:"button","aria-label":"Zamknij",onClick:F},[B(ne,{name:"close"})])]),t("div",Ns,[t("label",{for:`picker-q-${p(i)}`},"Do kogo?",8,Rs),Ae(t("input",{id:`picker-q-${p(i)}`,ref_key:"search",ref:y,"onUpdate:modelValue":A[0]||(A[0]=q=>d.value=q),type:"text",autocomplete:"off",placeholder:"Wpisz imię lub nazwisko…"},null,8,qs),[[We,d.value]])]),p(l).dmError?(n(),s("p",As,m(p(l).dmError),1)):I("",!0),t("div",Ws,[p(l).membersState==="loading"&&!p(l).members.size?(n(),s("div",Ps,[...A[2]||(A[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])])):p(l).membersState==="error"&&!p(l).members.size?(n(),s("div",Us,[A[3]||(A[3]=J(" Nie udało się wczytać listy osób. ",-1)),t("button",{class:"linkish",type:"button",onClick:A[1]||(A[1]=q=>p(l).loadMembers(!0))},"Spróbuj ponownie")])):b.value.length?j.value.length?(n(),s("ul",Ks,[(n(!0),s(K,null,ee(j.value,q=>(n(),s("li",{key:q.id},[t("button",{class:"picker-row",type:"button",disabled:k.value,onClick:se=>C(q.id)},[B(Me,{"user-id":q.id,member:q,size:24},null,8,["user-id","member"]),t("span",Zs,m(p(Ne)(q)),1)],8,Fs)]))),128))])):(n(),s("p",Hs,"Nikt nie pasuje do „"+m(d.value.trim())+"”.",1)):(n(),s("p",Os,"Na czacie nie ma jeszcze innych osób."))])],40,Ms))}}),Qs=["aria-pressed","aria-label","title","onClick"],Xs={class:"reaction-emoji","aria-hidden":"true"},Ys={class:"reaction-count","aria-hidden":"true"},Gs={class:"reaction-add-wrap"},Js=["aria-expanded","aria-controls","disabled"],eo=["aria-label","tabindex","onClick","onFocus"],ge=6,to=ie({__name:"ReactionBar",props:{message:{}},emits:["closed"],setup(a,{expose:r,emit:e}){const o=a,l=e,i=ye(),y=`reactions-${Ee()}`,d=$(null),k=$(null),f=$(null),u=$(!1),b=$(!1),j=$(0);let O=null;const F=v(()=>(o.message.reactions??[]).filter(L=>L.count>0).map(L=>{const S=i.userId!==null&&L.user_ids.includes(i.userId);return{key:L.key,count:L.count,mine:S,label:`${L.key} ${L.count}. ${S?"Cofnij swoją reakcję":"Dodaj swoją reakcję"}`,title:Da(L.user_ids,i.members)}})),E=v(()=>i.allowedReactions??[]),M=v(()=>E.value.length>0);function C(L){i.toggleReaction(o.message,L)}function R(){const L=d.value,S=L?.closest(".chat-list");if(!L||!S){b.value=!1;return}const N=Math.ceil(E.value.length/ge),D=N*36+(N-1)*4+16+2+8;b.value=L.getBoundingClientRect().top-S.getBoundingClientRect().topA()[j.value]?.focus())}function se(L){if(!M.value){i.loadReactions();return}O=L??k.value,j.value=0,R(),u.value=!0,document.addEventListener("pointerdown",te,!0),q()}function Q(L=!0){if(!u.value)return;u.value=!1,document.removeEventListener("pointerdown",te,!0);const S=O;O=null,L&&S?.focus(),l("closed")}function te(L){const S=L.target;if(S&&(f.value?.contains(S)||k.value?.contains(S)))return;const N=O;Q(!1),setTimeout(()=>{const D=document.activeElement;(!D||D===document.body||f.value?.contains(D))&&N?.focus()})}function V(L){C(L),Q()}function ae(){u.value?Q():se(k.value)}function de(L){const S=E.value.length;if(!S)return;let N=j.value;switch(L.key){case"Escape":L.preventDefault(),L.stopPropagation(),Q();return;case"ArrowRight":N=(j.value+1)%S;break;case"ArrowLeft":N=(j.value-1+S)%S;break;case"ArrowDown":N=j.value+ge=0?j.value-ge:Math.min(S-1,j.value%ge+Math.floor((S-1)/ge)*ge);break;case"Home":N=0;break;case"End":N=S-1;break;case"Tab":Q(!1);return;default:return}L.preventDefault(),j.value=N,q()}return Ce(()=>document.removeEventListener("pointerdown",te,!0)),r({openPicker:se}),(L,S)=>(n(),s("div",{ref_key:"root",ref:d,class:"reactions"},[(n(!0),s(K,null,ee(F.value,N=>(n(),s("button",{key:N.key,class:"reaction-chip",type:"button","aria-pressed":N.mine?"true":"false","aria-label":N.label,title:N.title,onClick:D=>C(N.key)},[t("span",Xs,m(N.key),1),t("span",Ys,m(N.count),1)],8,Qs))),128)),t("span",Gs,[t("button",{ref_key:"addBtn",ref:k,class:"reaction-add",type:"button","aria-label":"Dodaj reakcję","aria-haspopup":"true","aria-expanded":u.value?"true":"false","aria-controls":u.value?y:void 0,disabled:!M.value,onClick:ae},[B(ne,{name:"smile"})],8,Js),u.value?(n(),s("div",{key:0,id:y,ref_key:"pop",ref:f,class:ce(["reaction-pop",{below:b.value}]),role:"group","aria-label":"Dodaj reakcję",onKeydown:de},[(n(!0),s(K,null,ee(E.value,(N,D)=>(n(),s("button",{key:N,class:"reaction-pick",type:"button","aria-label":N,tabindex:D===j.value?0:-1,onClick:U=>V(N),onFocus:U=>j.value=D},m(N),41,eo))),128))],34)):I("",!0)])],512))}}),ao=["data-message-id"],no={class:"msg-gutter"},so=["datetime","title"],oo={class:"msg-content"},lo={key:0,class:"msg-head"},io={class:"msg-name"},ro={key:0,class:"msg-tag"},uo={key:1,class:"msg-tag me"},co=["datetime","title"],mo=["title"],vo={key:1,class:"sr-only"},po={key:2,class:"msg-deleted"},fo={class:"composer-field"},yo=["readonly"],bo={key:0,class:"error-text",role:"alert"},ho={class:"btn-row"},_o=["aria-busy"],ko=["disabled"],go=["innerHTML"],$o=["title"],wo={key:5,class:"msg-files"},zo=["aria-label","aria-busy","onClick"],xo={class:"msg-file-name"},Io={class:"msg-file-size"},jo={key:6,class:"msg-embeds"},Co={key:0,class:"msg-actions",role:"toolbar","aria-label":"Działania wiadomości"},Eo=["disabled"],Se=$(null),To=ie({__name:"ChatMessage",props:{message:{},followUp:{type:Boolean},author:{},meId:{}},emits:["delete"],setup(a,{emit:r}){const e=a,o=r,l=ye(),i=Ge("(hover: none)"),c=$(null),y=$(null),d=$(null),k=$(null),f=$(null),u=$(null),b=v(()=>e.meId!==null&&e.message.sender_id===e.meId),j=v(()=>$e(e.author,e.message.sender_name)),O=v(()=>Le(e.message.created_at)),F=v(()=>Ze(e.message.created_at)),E=v(()=>!!e.author?.is_bot),M=v(()=>!b.value&&Na(e.message.content,l.myHandle)),C=v(()=>e.message.edited_at?`Edytowano ${Ze(e.message.edited_at)}`:""),R=v(()=>(e.message.reactions??[]).some(T=>T.count>0)),A=$(!1),q=v(()=>Se.value===e.message.id),se=v(()=>!!l.allowedReactions?.length),Q=v(()=>!!e.message.deleted_at),te=v(()=>l.canEdit(e.message)),V=v(()=>l.canDelete(e.message)),ae=v(()=>Lt(e.message,l.maxEmbeds)),de=v(()=>!e.message.content||Nt(e.message.content,ae.value)),L=v(()=>e.message.attachments??[]),S=$(null),N=Bt();async function D(T){if(S.value===null){S.value=T.id;try{await ut.download(e.message.id,T.id,T.filename)}catch{N.show("Nie udało się pobrać pliku. Spróbuj ponownie.")}finally{S.value=null}}}const U=$(!1),_=$(""),x=$(!1),W=$(""),P=24;function re(){const T=u.value;if(!T)return;T.style.height="auto";const fe=getComputedStyle(T),G=P*8+parseFloat(fe.paddingTop)+parseFloat(fe.paddingBottom);T.style.height=`${Math.min(T.scrollHeight,G)}px`,T.style.overflowY=T.scrollHeight>G?"auto":"hidden"}async function be(){if(!te.value)return;_.value=e.message.content??"",W.value="",U.value=!0,Se.value=null,await Y();const T=u.value;T&&(re(),T.focus(),T.setSelectionRange(T.value.length,T.value.length))}function X(){U.value=!1,W.value="",Y(()=>k.value?.focus())}async function ue(){if(x.value)return;x.value=!0,W.value="";const T=await l.edit(e.message,_.value);if(x.value=!1,T){W.value=T;return}X()}function pe(T){if(!T.isComposing){if(T.key==="Escape"){T.preventDefault(),T.stopPropagation(),x.value||X();return}T.key==="Enter"&&!T.shiftKey&&(T.preventDefault(),ue())}}le(_,()=>{Y(re)}),le(Q,T=>{T&&(U.value=!1)});function he(){V.value&&o("delete",e.message,f.value)}async function g(){se.value&&(A.value=!0,await Y(),y.value?.openPicker(d.value))}function w(){A.value=!1}function Z(T){!i.value||T.target?.closest("a, button, textarea, input, .msg-actions")||(Se.value=q.value?null:e.message.id)}function _e(T){c.value&&T.target instanceof Node&&c.value.contains(T.target)||q.value&&(Se.value=null)}return le(q,T=>{T?document.addEventListener("pointerdown",_e,!0):document.removeEventListener("pointerdown",_e,!0)}),Ce(()=>{document.removeEventListener("pointerdown",_e,!0),q.value&&(Se.value=null)}),(T,fe)=>(n(),s("article",{ref_key:"root",ref:c,class:ce(["msg",{follow:a.followUp,"actions-open":q.value,"mentions-me":M.value}]),"data-message-id":a.message.id,onClick:Z},[t("div",no,[a.followUp?(n(),s("time",{key:1,class:"msg-time",datetime:a.message.created_at,title:F.value},m(O.value),9,so)):(n(),ve(Me,{key:0,"user-id":a.message.sender_id,member:a.author,fallback:a.message.sender_name,me:b.value},null,8,["user-id","member","fallback","me"]))]),t("div",oo,[a.followUp?(n(),s("span",vo,m(j.value)+", "+m(O.value)+":",1)):(n(),s("div",lo,[t("span",io,m(j.value),1),E.value?(n(),s("span",ro,"Bot")):b.value?(n(),s("span",uo,"Ty")):I("",!0),t("time",{class:"msg-time",datetime:a.message.created_at,title:F.value},m(O.value),9,co),a.message.edited_at?(n(),s("span",{key:2,class:"msg-edited",title:C.value},"(edytowano)",8,mo)):I("",!0)])),Q.value?(n(),s("p",po,"Wiadomość usunięta.")):U.value?(n(),s("form",{key:3,class:"msg-edit",onSubmit:Pe(ue,["prevent"])},[t("div",fo,[Ae(t("textarea",{ref_key:"editInput",ref:u,"onUpdate:modelValue":fe[0]||(fe[0]=G=>_.value=G),rows:"1","aria-label":"Edytuj wiadomość",readonly:x.value,onKeydown:pe},null,40,yo),[[We,_.value]])]),W.value?(n(),s("p",bo,m(W.value),1)):I("",!0),t("div",ho,[t("button",{class:"btn primary small",type:"submit","aria-busy":x.value?"true":void 0},"Zapisz zmiany",8,_o),t("button",{class:"btn ghost small",type:"button",disabled:x.value,onClick:X},"Anuluj edycję",8,ko)])],32)):(n(),s(K,{key:4},[de.value?I("",!0):(n(),s("div",{key:0,class:"msg-body prose",innerHTML:p(La)(a.message.content,p(l).membersByHandle)},null,8,go)),a.followUp&&a.message.edited_at?(n(),s("span",{key:1,class:"msg-edited",title:C.value},"(edytowano)",8,$o)):I("",!0)],64)),!Q.value&&L.value.length?(n(),s("ul",wo,[(n(!0),s(K,null,ee(L.value,G=>(n(),s("li",{key:G.id},[t("button",{class:"msg-file",type:"button","aria-label":`Pobierz ${G.filename} (${p(Fe)(G.size)})`,"aria-busy":S.value===G.id?"true":void 0,onClick:ke=>D(G)},[B(ne,{name:"file"}),t("span",xo,m(G.filename),1),t("span",Io,m(p(Fe)(G.size)),1)],8,zo)]))),128))])):I("",!0),!Q.value&&ae.value.length?(n(),s("div",jo,[(n(!0),s(K,null,ee(ae.value,G=>(n(),ve(yt,{key:p(Ie)(G),"embed-ref":G,item:p(l).embedItem(G)},null,8,["embed-ref","item"]))),128))])):I("",!0),!Q.value&&(R.value||A.value)?(n(),ve(to,{key:7,ref_key:"bar",ref:y,message:a.message,onClosed:w},null,8,["message"])):I("",!0)]),!Q.value&&!U.value?(n(),s("div",Co,[t("button",{ref_key:"reactBtn",ref:d,class:"msg-action",type:"button","aria-label":"Dodaj reakcję",title:"Dodaj reakcję",disabled:!se.value,onClick:g},[B(ne,{name:"smile"})],8,Eo),te.value?(n(),s("button",{key:0,ref_key:"editBtn",ref:k,class:"msg-action",type:"button","aria-label":"Edytuj",title:"Edytuj",onClick:be},[B(ne,{name:"pencil"})],512)):I("",!0),V.value?(n(),s("button",{key:1,ref_key:"deleteBtn",ref:f,class:"msg-action miss",type:"button","aria-label":"Usuń",title:"Usuń",onClick:he},[B(ne,{name:"trash"})],512)):I("",!0)])):I("",!0)],10,ao))}}),Do=["aria-labelledby","aria-describedby"],So=["id"],Mo=["id"],Bo={key:0,class:"error-text",role:"alert"},Lo={class:"btn-row chat-confirm-buttons"},No=["aria-busy","disabled"],Ro=["disabled"],qo=ie({__name:"DeleteDialog",setup(a,{expose:r}){const e=ye(),o=Ee(),l=$(null),i=$(null),c=$(null),y=$(!1),d=$("");let k=null,f=null;const u=v(()=>!!c.value&&c.value.sender_id===e.userId),b=v(()=>{const R=c.value;return!R||u.value?"Wiadomość zniknie z rozmowy u wszystkich. Tego nie można cofnąć.":`Usuniesz wiadomość od ${$e(e.members.get(R.sender_id),R.sender_name)} u wszystkich. Tego nie można cofnąć.`});function j(R,A){c.value=R,d.value="",y.value=!1,k=A??(document.activeElement instanceof HTMLElement?document.activeElement:null),f=k?.closest(".chat-list")??null,l.value?.showModal(),Y(()=>i.value?.focus())}function O(){l.value?.close()}function F(R){y.value&&R.preventDefault()}function E(){k?.isConnected?k.focus():f?.focus(),k=null,f=null,c.value=null}function M(R){R.target===l.value&&!y.value&&O()}async function C(){const R=c.value;if(!R||y.value)return;y.value=!0,d.value="";const A=await e.remove(R);if(y.value=!1,A){d.value=A;return}O()}return r({open:j}),(R,A)=>(n(),s("dialog",{ref_key:"dialog",ref:l,class:"chat-dialog chat-confirm","aria-labelledby":`delete-h-${p(o)}`,"aria-describedby":`delete-b-${p(o)}`,onCancel:F,onClose:E,onClick:M},[t("h2",{id:`delete-h-${p(o)}`,class:"chat-dialog-title"},"Usunąć wiadomość?",8,So),t("p",{id:`delete-b-${p(o)}`,class:"chat-confirm-body"},m(b.value),9,Mo),d.value?(n(),s("p",Bo,m(d.value),1)):I("",!0),t("div",Lo,[t("button",{class:"btn danger",type:"button","aria-busy":y.value?"true":void 0,disabled:y.value,onClick:C},"Usuń wiadomość",8,No),t("button",{ref_key:"keepBtn",ref:i,class:"btn ghost",type:"button",disabled:y.value,onClick:O},"Zostaw wiadomość",8,Ro)])],40,Do))}}),Ao={class:"chat-list-wrap"},Wo=["aria-label"],Po={key:0,class:"notice error",role:"alert"},Uo={key:1,class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie wiadomości"},Oo={key:2,class:"chat-start"},Ho={key:3,class:"empty chat-empty"},Ko={key:0,class:"error-text"},Fo={key:1,class:"chat-start"},Zo={key:2,class:"chat-start"},Vo=["aria-label"],Qo={"aria-hidden":"true"},Xo={key:0,class:"chat-new",role:"separator","aria-label":"Nowe wiadomości"},Yo={class:"sr-only","aria-live":"polite"},Go=ie({__name:"MessageList",props:{conversationId:{},name:{},kind:{default:"general"},otherName:{default:""},visible:{type:Boolean,default:!0}},setup(a,{expose:r}){const e=a,o=ye(),l=$(null),i=$(null),c=$(null);function y(g,w){c.value?.open(g,w)}const d=v(()=>o.messages[e.conversationId]),k=v(()=>o.errors[e.conversationId]??""),f=v(()=>Ea(d.value??[],new Date)),u=v(()=>d.value?.at(-1)?.id??null),b=v(()=>!!o.olderLoading[e.conversationId]),j=v(()=>o.olderError[e.conversationId]??""),O=v(()=>!!o.reachedStart[e.conversationId]),F=v(()=>e.kind==="dm"?"To początek Waszej rozmowy.":"To początek kanału # ogólny.");let E=!1;le(d,g=>{g&&(o.resolveFor(g,!E),E=!0)},{immediate:!0,deep:1});const M=o.unreadOf(e.conversationId),C=$(null);let R=!1;function A(){R||!d.value||(R=!0,C.value=Rt(d.value,M,o.userId))}const q=$(0),se=$(""),Q=typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;function te(){return!!l.value&&l.value.clientHeight>0}function V(){const g=l.value;return!g||g.scrollHeight-g.scrollTop-g.clientHeight<=48}function ae(){return!l.value||!te()||!d.value?null:V()?{atBottom:!0,messageId:null,offset:0}:de()??{atBottom:!0,messageId:null,offset:0}}function de(){const g=l.value;if(!g)return null;for(const w of g.querySelectorAll("[data-message-id]"))if(w.offsetTop+w.offsetHeight>g.scrollTop)return{atBottom:!1,messageId:Number(w.dataset.messageId),offset:w.offsetTop-g.scrollTop};return null}function L(){const g=ae();g&&o.saveAnchor(e.conversationId,g)}let S=!0;const N=$(!1);function D(){if(!d.value||!te())return;qt({active:o.activeId===e.conversationId,visible:e.visible,focused:typeof document>"u"||document.hasFocus(),atBottom:V()})&&o.markRead(e.conversationId)}function U(g=!1){Y(()=>{const w=l.value;w&&(g&&!Q&&typeof w.scrollTo=="function"?w.scrollTo({top:w.scrollHeight,behavior:"smooth"}):w.scrollTop=w.scrollHeight,S=!0,q.value=0,te()&&o.saveAnchor(e.conversationId,{atBottom:!0,messageId:null,offset:0}),D())})}function _(g){if(C.value===null)return!1;const w=g.querySelector(".chat-new");if(!w)return!1;const Z=g.scrollHeight-g.clientHeight;return w.offsetTop>=Z?!1:(g.scrollTop=w.offsetTop-48,!0)}function x(){Y(()=>{const g=l.value;!g||!te()||!d.value||(A(),Y(()=>{const w=o.anchorFor(e.conversationId),Z=w&&!w.atBottom&&w.messageId!==null?g.querySelector(`[data-message-id="${w.messageId}"]`):null;Z?g.scrollTop=Z.offsetTop-(w?.offset??0):C.value!==null&&!N.value&&_(g)||(g.scrollTop=g.scrollHeight),S=V(),S&&(q.value=0),N.value=!0,D(),X()}))})}let W=0;function P(){S=V(),S&&(q.value=0),!W&&(W=requestAnimationFrame(()=>{W=0,L(),D()}))}le(()=>d.value===void 0,(g,w)=>{!g&&w&&x()}),le(u,(g,w)=>{if(g===null||g===w||w===null)return;const Z=d.value??[],_e=Z.filter(ke=>ke.id>w),T=Z.at(-1),fe=_e.filter(ke=>ke.sender_id!==o.userId),G=fe.at(-1);if(G&&e.visible){const ke=(G.content??"").replace(/\s+/g," ").trim().slice(0,80);se.value=`${$e(o.members.get(G.sender_id),G.sender_name)}: ${ke}`}S||T&&T.sender_id===o.userId?U():q.value+=fe.length}),le(()=>e.visible,(g,w)=>{w&&!g&&L(),g&&!w&&x()});let re=null;async function be(){const g=l.value;if(!g||!N.value||b.value||j.value||O.value)return;const w=de();if(await o.loadOlder(e.conversationId),await Y(),w?.messageId!=null){const Z=g.querySelector(`[data-message-id="${w.messageId}"]`);Z&&(g.scrollTop=Z.offsetTop-w.offset)}X()}function X(){const g=i.value;!re||!g||(re.unobserve(g),re.observe(g))}function ue(){o.olderError[e.conversationId]="",Y(()=>{be()})}le(i,(g,w)=>{w&&re?.unobserve(w),g&&re?.observe(g)});function pe(){D()}function he(){document.visibilityState==="visible"&&D()}return Xe(()=>{typeof IntersectionObserver<"u"&&l.value&&(re=new IntersectionObserver(g=>{g.some(w=>w.isIntersecting)&&be()},{root:l.value,rootMargin:"200px 0px 0px 0px"}),i.value&&re.observe(i.value)),window.addEventListener("focus",pe),document.addEventListener("visibilitychange",he),x()}),Ce(()=>{W&&cancelAnimationFrame(W),re?.disconnect(),window.removeEventListener("focus",pe),document.removeEventListener("visibilitychange",he),L()}),r({scrollToBottom:U}),(g,w)=>(n(),s("div",Ao,[t("div",{ref_key:"el",ref:l,class:"chat-list",role:"region","aria-label":`Wiadomości w ${a.name}`,tabindex:"0",onScrollPassive:P},[!d.value&&k.value?(n(),s("div",Po,[J(m(k.value)+" ",1),t("button",{class:"linkish",type:"button",onClick:w[0]||(w[0]=Z=>p(o).loadLatest(a.conversationId))},"Spróbuj ponownie")])):d.value?!d.value.length&&a.kind==="dm"?(n(),s("p",Oo,"To początek Waszej rozmowy z "+m(a.otherName)+".",1)):d.value.length?(n(),s(K,{key:4},[t("div",{ref_key:"sentinel",ref:i,class:"chat-older"},[j.value?(n(),s("p",Ko,[J(m(j.value)+" ",1),t("button",{class:"linkish",type:"button",onClick:ue},"Spróbuj ponownie")])):b.value?(n(),s("p",Fo,"Wczytywanie starszych wiadomości…")):O.value?(n(),s("p",Zo,m(F.value),1)):I("",!0)],512),(n(!0),s(K,null,ee(f.value,Z=>(n(),s(K,{key:Z.key},[Z.kind==="day"?(n(),s("div",{key:0,class:"chat-day",role:"separator","aria-label":Z.label},[t("span",Qo,m(Z.label),1)],8,Vo)):(n(),s(K,{key:1},[Z.message.id===C.value?(n(),s("div",Xo,[...w[4]||(w[4]=[t("span",{"aria-hidden":"true"},"Nowe wiadomości",-1)])])):I("",!0),B(To,{message:Z.message,"follow-up":Z.followUp&&Z.message.id!==C.value,author:p(o).members.get(Z.message.sender_id),"me-id":p(o).userId,onDelete:y},null,8,["message","follow-up","author","me-id"])],64))],64))),128))],64)):(n(),s("div",Ho,[...w[3]||(w[3]=[t("p",{class:"chat-empty-h"},"Na # ogólny jeszcze cisza",-1),t("p",null,"Napisz pierwszą wiadomość do całego roku. Przyciskiem kalendarza podepniesz termin, zajęcia albo lekturę.",-1)])])):(n(),s("div",Uo,[...w[2]||(w[2]=[t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1),t("div",{class:"skeleton"},null,-1)])]))],40,Wo),q.value>0?(n(),s("button",{key:0,class:"btn small chat-jump",type:"button",onClick:w[1]||(w[1]=Z=>U(!0))},[B(ne,{name:"arrow-down"}),J("Nowe wiadomości: "+m(q.value),1)])):I("",!0),t("div",Yo,m(se.value),1),B(qo,{ref_key:"deleteDialog",ref:c},null,512)]))}}),Jo=["role","aria-label","aria-labelledby"],el=["id","aria-labelledby"],tl={class:"chat-typing","aria-hidden":"true"},al={key:2,class:"chat-list"},nl=ie({__name:"ChatPanel",props:{wide:{type:Boolean,default:!0},visible:{type:Boolean,default:!0},labelledBy:{default:void 0}},setup(a){const r=a,e=ye(),o=`chat-${Ee()}`,l=$(null),i=$(null),c=$(null),y=v(()=>r.wide?void 0:"tabpanel"),d=v(()=>e.view==="dms"?null:e.activeId),k=v(()=>e.view==="dm"?e.conversations.find(E=>E.id===e.activeId):void 0),f=v(()=>k.value?$e(e.members.get(k.value.other_user_id)):""),u=v(()=>e.view==="dm"?f.value:"# ogólny"),b=v(()=>d.value===null?"":At(e.typingIn(d.value).map(E=>$e(e.members.get(E),"Ktoś")))),j=v(()=>`${o}-tab-${e.view==="general"?"general":"dms"}`);le(()=>r.visible,E=>e.panelVisible=E,{immediate:!0}),Ce(()=>e.panelVisible=!1);function O(E){E==="general"?e.showGeneral():e.showDms()}function F(){Y(()=>i.value?.focus())}return(E,M)=>(n(),s("aside",{class:"chat",role:y.value,"aria-label":a.wide?"Czat":void 0,"aria-labelledby":a.wide?void 0:a.labelledBy},[B(ys,{view:p(e).view,"dm-name":f.value,"dm-user-id":k.value?.other_user_id??null,"id-base":o,onSelect:O,onBack:M[0]||(M[0]=C=>p(e).showDms())},null,8,["view","dm-name","dm-user-id"]),t("div",{id:`${o}-body`,class:"chat-body",role:"tabpanel","aria-labelledby":j.value},[p(e).view==="dms"?(n(),ve(Ss,{key:0,onCompose:M[1]||(M[1]=C=>c.value?.open())})):d.value!==null?(n(),s(K,{key:1},[(n(),ve(Go,{ref_key:"list",ref:l,key:d.value,"conversation-id":d.value,name:u.value,kind:p(e).view==="dm"?"dm":"general","other-name":f.value,visible:a.visible},null,8,["conversation-id","name","kind","other-name","visible"])),t("div",tl,m(b.value),1),B(Gn,{ref_key:"composer",ref:i,"conversation-id":d.value,label:`Wiadomość do ${u.value}`,placeholder:p(e).view==="dm"?`Napisz do ${f.value}…`:"Napisz na # ogólny…",onSent:M[2]||(M[2]=C=>l.value?.scrollToBottom())},null,8,["conversation-id","label","placeholder"])],64)):(n(),s("div",al,[...M[3]||(M[3]=[t("div",{class:"chat-skeletons","aria-busy":"true","aria-label":"Wczytywanie czatu"},[t("div",{class:"skeleton"}),t("div",{class:"skeleton"}),t("div",{class:"skeleton"})],-1)])]))],8,el),B(Vs,{ref_key:"picker",ref:c,onStarted:F},null,512)],8,Jo))}}),sl={key:0,class:"pulpit-tabs",role:"tablist","aria-label":"Widok"},ol=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],ll={key:0,class:"unread-badge"},il={"aria-hidden":"true"},rl={class:"sr-only"},ul=["role","aria-labelledby"],cl={class:"pulpit-lists"},dl={"aria-labelledby":"next-h"},ml={class:"section-head"},vl={key:0,class:"rows"},pl={class:"row-main"},fl={class:"title"},yl={class:"when"},bl={class:"muted small"},hl={key:0,class:"badge online"},_l={key:1,class:"badge onsite"},kl={key:1,class:"empty"},gl={"aria-labelledby":"dl-h"},$l={class:"section-head"},wl={key:0,class:"rows"},zl={class:"row-main"},xl={class:"title"},Il={class:"muted small"},jl={key:0},Cl={key:1,class:"empty"},El={class:"pulpit-cards"},Tl={class:"card","aria-labelledby":"read-h"},Dl={style:{margin:"0 0 8px"}},Sl={class:"big-num"},Ml={class:"muted"},Bl=["aria-valuenow"],Ll={class:"muted small",style:{margin:"8px 0 10px"}},Nl={class:"card","aria-labelledby":"quiz-h"},Ol=ie({__name:"DashboardView",setup(a){const r=Wt(),e=Pt(),o=Ut(),l=ye(),i=Ht(),c=Kt(),y=$(new Date);Xe(()=>{y.value=new Date,Promise.all([e.loadDashboard(),e.loadCourses(),e.loadSchedule(),e.loadDeadlines(),e.loadReadings()]),o.loadList()});const d=v(()=>e.loaded.schedule&&e.loaded.courses&&e.loaded.readings&&e.loaded.deadlines&&e.loaded.dashboard),k=v(()=>e.dashboard?.current_meeting??e.dashboard?.next_meeting??null),f=v(()=>!!e.dashboard?.current_meeting),u=v(()=>o.list?.find(_=>_.meeting_id===k.value?.id)??null),b=$(null);let j=0;async function O(_){const x=++j;if(_===void 0){b.value=[];return}b.value=null;try{const W=await Xt.materials({meeting:_,per_page:100});x===j&&(b.value=W.data)}catch{x===j&&(b.value=[])}}le(()=>k.value?.id,_=>{O(_)},{immediate:!0});const F=v(()=>b.value===null?null:Qt(b.value,e.hidden)),E=v(()=>e.schedule.filter(_=>Date.parse(_.ends_at)>y.value.getTime()).slice(0,5)),M=v(()=>e.deadlines.filter(_=>Date.parse(_.due_at)>=y.value.getTime()).slice(0,5)),C=_=>{const x=Re(_,y.value);return x>=0&&x<=14},R=v(()=>e.readingStats),A=v(()=>R.value.requiredTotal?Math.round(R.value.requiredRead/R.value.requiredTotal*100):0),q=v(()=>r.user?.name?`Cześć, ${r.user.name}`:"Pulpit"),se=v(()=>`Pulpit · ${Be(y.value.toISOString())}`),Q=v(()=>{const _=r.user;return mt({name:_?.name??"",surname:_?.surname??"",handle:""},_?.email??"")}),te=Aa(1100),V=v(()=>l.member===!0),ae=v(()=>i.query.tab==="czat"?"czat":"pulpit"),de=v(()=>V.value&&!te.value),L=v(()=>V.value&&(te.value||ae.value==="czat")),S=[{key:"pulpit",label:"Pulpit",id:"tab-pulpit",panel:"panel-pulpit"},{key:"czat",label:"Czat",id:"tab-czat",panel:"panel-czat"}];function N(_){if(_==="czat")return{...i.query,tab:"czat"};const{tab:x,...W}=i.query;return W}function D(_){_!==ae.value&&c.push({query:N(_)})}function U(_,x){const W=ct(_.key,x,S.length);W!==null&&(_.preventDefault(),D(S[W].key),Y(()=>document.getElementById(S[W].id)?.focus()))}return le([()=>l.member,()=>i.query.tab],([_,x])=>{_===!1&&x==="czat"&&c.replace({query:N("pulpit")})},{immediate:!0}),(_,x)=>{const W=lt("router-link");return n(),s("div",{class:ce(["pulpit",{"with-chat":V.value,czat:V.value&&ae.value==="czat"}])},[B(Yt,{class:"pulpit-head",eyebrow:se.value,title:q.value},{default:me(()=>[B(Je,{part:"chip"}),B(W,{class:"profile-link",to:"/profil","aria-label":"Profil"},{default:me(()=>[J(m(Q.value),1)]),_:1})]),_:1},8,["eyebrow","title"]),V.value?(n(),s("div",sl,[(n(),s(K,null,ee(S,(P,re)=>t("button",{id:P.id,key:P.key,class:"pulpit-tab",type:"button",role:"tab","aria-selected":ae.value===P.key,"aria-controls":P.panel,tabindex:ae.value===P.key?0:-1,onClick:be=>D(P.key),onKeydown:be=>U(be,re)},[J(m(P.label)+" ",1),P.key==="czat"&&p(je)(p(l).totalUnread)?(n(),s("span",ll,[t("span",il,m(p(je)(p(l).totalUnread)),1),t("span",rl,", "+m(p(Ye)(p(l).totalUnread)),1)])):I("",!0)],40,ol)),64))])):I("",!0),t("div",{id:"panel-pulpit",class:"pulpit-main",role:de.value?"tabpanel":void 0,"aria-labelledby":de.value?"tab-pulpit":void 0},[B(Je,{part:"notice"}),B(Gt,{ready:d.value,error:p(e).error,onRetry:x[0]||(x[0]=P=>p(e).retry())},{default:me(()=>[B(xa,{meeting:k.value,"is-current":f.value,schedule:p(e).schedule,deadlines:p(e).deadlines,readings:p(e).readings,materials:F.value,now:y.value,checklist:u.value},null,8,["meeting","is-current","schedule","deadlines","readings","materials","now","checklist"]),t("div",cl,[t("section",dl,[t("div",ml,[x[2]||(x[2]=t("h2",{id:"next-h"},"Najbliższe zajęcia",-1)),B(W,{to:"/plan",class:"small"},{default:me(()=>[...x[1]||(x[1]=[J("Cały plan",-1)])]),_:1})]),E.value.length?(n(),s("ul",vl,[(n(!0),s(K,null,ee(E.value,P=>(n(),s("li",{key:P.id},[t("div",pl,[t("span",fl,m(P.course.name),1),t("span",yl,m(p(Le)(P.starts_at))+"–"+m(p(Le)(P.ends_at)),1)]),t("div",bl,[J(m(p(Be)(P.starts_at))+" · "+m(p(Ft)[P.course.form])+" ",1),P.is_online?(n(),s("span",hl,"online")):P.room?(n(),s("span",_l,"sala "+m(P.room),1)):I("",!0)])]))),128))])):(n(),s("p",kl,"Nie ma już zaplanowanych zajęć."))]),t("section",gl,[t("div",$l,[x[4]||(x[4]=t("h2",{id:"dl-h"},"Terminy",-1)),B(W,{to:"/terminarz",class:"small"},{default:me(()=>[...x[3]||(x[3]=[J("Terminarz",-1)])]),_:1})]),M.value.length?(n(),s("ul",wl,[(n(!0),s(K,null,ee(M.value,P=>(n(),s("li",{key:P.id},[t("div",zl,[t("span",xl,m(P.title),1),t("span",{class:ce(["badge",{warn:C(P.due_at)}])},m(p(Zt)(P.due_at,y.value)),3)]),t("div",Il,[J(m(p(Ze)(P.due_at))+" · "+m(p(Vt)[P.kind]),1),P.course?(n(),s("span",jl," · "+m(P.course.name),1)):I("",!0)])]))),128))])):(n(),s("p",Cl,"Brak nadchodzących terminów."))])]),t("div",El,[t("section",Tl,[x[6]||(x[6]=t("span",{class:"eyebrow"},"Lektury",-1)),x[7]||(x[7]=t("h2",{id:"read-h",style:{margin:"4px 0 8px"}},"Postęp czytania",-1)),t("p",Dl,[t("span",Sl,m(R.value.requiredRead),1),t("span",Ml," z "+m(R.value.requiredTotal)+" obowiązkowych",1)]),t("div",{class:"progress-bar",role:"progressbar","aria-valuenow":A.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[t("span",{style:qe({width:A.value+"%"})},null,4)],8,Bl),t("p",Ll,"Łącznie przeczytano "+m(R.value.read)+" z "+m(p(Ot)(R.value.total,"lektury","lektur","lektur"))+".",1),B(W,{class:"btn small",to:"/lektury"},{default:me(()=>[...x[5]||(x[5]=[J("Lista lektur",-1)])]),_:1})]),t("section",Nl,[x[9]||(x[9]=t("span",{class:"eyebrow"},"Quizy",-1)),x[10]||(x[10]=t("h2",{id:"quiz-h",style:{margin:"4px 0 8px"}},"Sprawdź się",-1)),x[11]||(x[11]=t("p",{class:"muted",style:{margin:"0 0 12px"}},"Fiszki z powtórki: losuj po 5 pytań, oznaczaj Wiem / Nie wiem i wracaj do tych, których nie znasz.",-1)),B(W,{class:"btn primary small",to:"/quizy"},{default:me(()=>[...x[8]||(x[8]=[J("Zacznij quiz",-1)])]),_:1})])])]),_:1},8,["ready","error"])],8,ul),V.value?(n(),ve(nl,{key:1,id:"panel-czat",wide:p(te),visible:L.value,"labelled-by":"tab-czat"},null,8,["wide","visible"])):I("",!0)],2)}}});export{Ol as default}; diff --git a/public/assets/DeadlinesView--mYtpzV1.js b/public/assets/DeadlinesView-DQ1eOrvn.js similarity index 90% rename from public/assets/DeadlinesView--mYtpzV1.js rename to public/assets/DeadlinesView-DQ1eOrvn.js index 5d0d90d..c1efece 100644 --- a/public/assets/DeadlinesView--mYtpzV1.js +++ b/public/assets/DeadlinesView-DQ1eOrvn.js @@ -1 +1 @@ -import{d as C,ae as B,o as N,U as T,c as t,i as m,j as g,e as a,r as w,x as y,n as o,F as h,E as D,b as i,t as s,C as V,z as b,ai as j,p as f,K as z,a6 as E,aj as $,f as p,ag as L,l as M,k as S}from"./index-CZVUqkdk.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js";import{u as R}from"./scrollToHash-CsDQF0uS.js";const U={key:0,class:"rows card"},A=["id"],H={class:"row-main"},I={class:"title"},Z={class:"muted small"},q={class:"badge"},G={key:0,class:"small",style:{margin:"6px 0 0"}},J={key:1,class:"empty"},O={key:2,class:"section"},Q=["aria-pressed"],W={key:0,class:"rows card past",style:{"margin-top":"10px"}},X=["id"],Y={class:"row-main"},ee={class:"title"},se={class:"when"},te={class:"muted small"},de=C({__name:"DeadlinesView",setup(ae){const n=B(),l=w(new Date),u=w(!1);N(()=>{l.value=new Date,Promise.all([n.loadDeadlines(),n.loadCourses()])});const k=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)>=l.value.getTime())),c=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)n.loaded.deadlines&&n.loaded.courses),x=S();return T([v,()=>x.hash],([d,r])=>{const _=Number(/^#termin-(\d+)$/.exec(r)?.[1]);d&&_&&c.value.some(e=>e.id===_)&&(u.value=!0)},{immediate:!0}),R(v),(d,r)=>{const _=M("router-link");return o(),t("div",null,[m(F,{eyebrow:"Zaliczenia, egzaminy, sprawy organizacyjne",title:"Terminarz"}),m(K,{ready:v.value,error:a(n).error,onRetry:r[1]||(r[1]=e=>a(n).retry())},{default:g(()=>[m(P),k.value.length?(o(),t("ul",U,[(o(!0),t(h,null,D(k.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",H,[i("span",I,s(e.title),1),i("span",{class:V(["badge",{alert:a(b)(e.due_at,l.value)<=3}])},s(a(j)(e.due_at,l.value)),3)]),i("div",Z,[f(s(a(z)(e.due_at))+", "+s(a(E)(e.due_at))+" · ",1),i("span",q,s(a($)[e.kind]),1),e.course?(o(),t(h,{key:0},[r[2]||(r[2]=f(" · ",-1)),m(_,{to:`/przedmioty/${e.course.id}`},{default:g(()=>[f(s(e.course.name),1)]),_:2},1032,["to"])],64)):p("",!0)]),e.description?(o(),t("p",G,s(e.description),1)):p("",!0)],8,A))),128))])):(o(),t("p",J,"Brak nadchodzących terminów.")),c.value.length?(o(),t("div",O,[i("button",{class:"chip",type:"button","aria-pressed":u.value,onClick:r[0]||(r[0]=e=>u.value=!u.value)},"Minione ("+s(c.value.length)+")",9,Q),u.value?(o(),t("ul",W,[(o(!0),t(h,null,D(c.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",Y,[i("span",ee,s(e.title),1),i("span",se,s(a(L)(Math.abs(a(b)(e.due_at,l.value)),"dzień","dni","dni"))+" temu",1)]),i("div",te,s(a(z)(e.due_at))+" · "+s(a($)[e.kind]),1)],8,X))),128))])):p("",!0)])):p("",!0)]),_:1},8,["ready","error"])])}}});export{de as default}; +import{d as C,ae as B,o as N,U as T,c as t,i as m,j as g,e as a,r as w,x as y,n as o,F as h,E as D,b as i,t as s,C as V,z as b,ai as j,p as f,K as z,a6 as E,aj as $,f as p,ag as L,l as M,k as S}from"./index-DyD9x5ZD.js";import{_ as F}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as K}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as P}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js";import{u as R}from"./scrollToHash-CpYt_GM6.js";const U={key:0,class:"rows card"},A=["id"],H={class:"row-main"},I={class:"title"},Z={class:"muted small"},q={class:"badge"},G={key:0,class:"small",style:{margin:"6px 0 0"}},J={key:1,class:"empty"},O={key:2,class:"section"},Q=["aria-pressed"],W={key:0,class:"rows card past",style:{"margin-top":"10px"}},X=["id"],Y={class:"row-main"},ee={class:"title"},se={class:"when"},te={class:"muted small"},de=C({__name:"DeadlinesView",setup(ae){const n=B(),l=w(new Date),u=w(!1);N(()=>{l.value=new Date,Promise.all([n.loadDeadlines(),n.loadCourses()])});const k=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)>=l.value.getTime())),c=y(()=>n.deadlines.filter(d=>Date.parse(d.due_at)n.loaded.deadlines&&n.loaded.courses),x=S();return T([v,()=>x.hash],([d,r])=>{const _=Number(/^#termin-(\d+)$/.exec(r)?.[1]);d&&_&&c.value.some(e=>e.id===_)&&(u.value=!0)},{immediate:!0}),R(v),(d,r)=>{const _=M("router-link");return o(),t("div",null,[m(F,{eyebrow:"Zaliczenia, egzaminy, sprawy organizacyjne",title:"Terminarz"}),m(K,{ready:v.value,error:a(n).error,onRetry:r[1]||(r[1]=e=>a(n).retry())},{default:g(()=>[m(P),k.value.length?(o(),t("ul",U,[(o(!0),t(h,null,D(k.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",H,[i("span",I,s(e.title),1),i("span",{class:V(["badge",{alert:a(b)(e.due_at,l.value)<=3}])},s(a(j)(e.due_at,l.value)),3)]),i("div",Z,[f(s(a(z)(e.due_at))+", "+s(a(E)(e.due_at))+" · ",1),i("span",q,s(a($)[e.kind]),1),e.course?(o(),t(h,{key:0},[r[2]||(r[2]=f(" · ",-1)),m(_,{to:`/przedmioty/${e.course.id}`},{default:g(()=>[f(s(e.course.name),1)]),_:2},1032,["to"])],64)):p("",!0)]),e.description?(o(),t("p",G,s(e.description),1)):p("",!0)],8,A))),128))])):(o(),t("p",J,"Brak nadchodzących terminów.")),c.value.length?(o(),t("div",O,[i("button",{class:"chip",type:"button","aria-pressed":u.value,onClick:r[0]||(r[0]=e=>u.value=!u.value)},"Minione ("+s(c.value.length)+")",9,Q),u.value?(o(),t("ul",W,[(o(!0),t(h,null,D(c.value,e=>(o(),t("li",{id:`termin-${e.id}`,key:e.id},[i("div",Y,[i("span",ee,s(e.title),1),i("span",se,s(a(L)(Math.abs(a(b)(e.due_at,l.value)),"dzień","dni","dni"))+" temu",1)]),i("div",te,s(a(z)(e.due_at))+" · "+s(a($)[e.kind]),1)],8,X))),128))])):p("",!0)])):p("",!0)]),_:1},8,["ready","error"])])}}});export{de as default}; diff --git a/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js b/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js similarity index 97% rename from public/assets/DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js rename to public/assets/DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js index 699416b..af2c202 100644 --- a/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js +++ b/public/assets/DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js @@ -1,9 +1,9 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/opsz-DD7j1RRT.css","assets/opsz-italic-l9KtpeZ8.css","assets/index-CZVUqkdk.js","assets/index-BeU-aKV2.css","assets/summer-DcZGwnDj.css","assets/pptx-C8HPYutj.js"])))=>i.map(i=>d[i]); -import{aR as w,d as yt,U as D,o as wt,Z as W,b7 as zt,be as St,bf as Et,c as b,s as _t,bg as Ct,a$ as Re,f as y,F as ke,b as f,t as C,p as I,C as Me,E as Tt,H as He,r as z,x as A,n as g,e as Lt}from"./index-CZVUqkdk.js";import{c as Pt,a as Oe}from"./engine-DDeQk6Ow.js";const jt=':host{color-scheme:light dark;--deck-paper: #e9ebe3;--deck-paper-2: #dfe2d8;--deck-ink: #16201f;--deck-ink-2: #4b5551;--deck-rule: #b9beb3;--deck-empire: #b5302c;--deck-khaki: #7f7047;--deck-display: "Libre Caslon Display", "Times New Roman", Georgia, serif;--deck-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Courier Prime", "Courier New", Courier, monospace}@media(prefers-color-scheme:dark){:host:not([data-theme=light]){--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}}:host[data-theme=dark]{--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}*{box-sizing:border-box}:host,.deck{height:100%;margin:0}.deck{position:relative;background:var(--deck-paper);color:var(--deck-ink);font-family:var(--deck-body);font-size:24px;line-height:1.4;overflow:hidden}h1,h2,h3{font-family:var(--deck-display);font-weight:400;margin:0;text-wrap:balance;line-height:1.08}p{margin:0}ul{margin:0;padding-left:1.1em}li{margin-block:.25em}li::marker{color:var(--deck-empire)}em{font-style:italic}strong{font-weight:600}a{color:inherit}.k{font-family:var(--deck-mono);font-size:.72em;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.red{color:var(--deck-empire)}.muted{color:var(--deck-ink-2)}.small{font-size:.78em;line-height:1.35}.bib{font-size:17px;line-height:1.3;gap:36px}.bib li{margin-block:.2em}.bib .k{font-size:13px;margin-bottom:6px}#stage{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:0 0}.slide{position:absolute;inset:0;display:none;padding:64px 88px 72px;background:var(--deck-paper);grid-template-rows:auto 1fr;gap:28px;overflow:hidden}[hidden]{display:none!important}.slide.on{display:grid}.slide.special{border-top:6px solid var(--deck-khaki)}.sp-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:1px solid var(--deck-rule);background:transparent;color:var(--deck-ink-2);font-size:28px;line-height:1;cursor:pointer}.sp-link{border-bottom:2px dotted var(--deck-empire);cursor:pointer}.slide>header{display:grid;gap:10px}.slide>header h2{font-size:50px}.slide .body{min-height:0;display:grid;gap:22px;align-content:start}.cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.cols>*{min-width:0}.cols.w{grid-template-columns:1.3fr 1fr}.rule-top{border-top:1px solid var(--deck-rule);padding-top:16px}.note{font-size:20px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);padding-left:14px}.quote{font-family:var(--deck-display);font-size:34px;line-height:1.25}.quote+.k{margin-top:6px}.slide.sec{grid-template-rows:1fr;align-content:center;background:var(--deck-paper-2)}.slide.sec>div:not(.notes,.srcs,.speak) .k{font-size:20px}.slide.sec h2{font-size:72px;max-width:18ch;margin-top:12px}.slide.sec>div:not(.notes,.srcs,.speak) p{font-size:26px;color:var(--deck-ink-2);max-width:44ch;margin-top:22px}.slide.title{grid-template-rows:1fr auto;background:var(--deck-paper-2)}.slide.title h1{font-size:86px;max-width:14ch}.slide.title .sub{font-size:30px;color:var(--deck-ink-2);margin-top:20px;font-family:var(--deck-display)}.slide.title footer{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--deck-rule);padding-top:18px;font-size:20px}.tl{display:grid;grid-template-columns:max-content 1fr;column-gap:26px;row-gap:8px;font-size:22px;align-content:start}.tl .y{font-family:var(--deck-mono);color:var(--deck-empire);font-variant-numeric:tabular-nums}.tl.compact{font-size:20px;row-gap:6px}table{border-collapse:collapse;width:100%;font-size:21px}th,td{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--deck-rule)}th{font-family:var(--deck-mono);font-weight:400;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.p{border-top:2px solid var(--deck-empire);padding-top:10px;font-size:20px;line-height:1.35;min-width:0}.p b{display:block;font-family:var(--deck-display);font-weight:400;font-size:26px;margin-bottom:4px}.theses{display:grid;gap:18px;counter-reset:t}.theses>div{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}.theses>div:before{counter-increment:t;content:counter(t);font-family:var(--deck-display);font-size:48px;line-height:1;color:var(--deck-empire)}.theses b{font-weight:600}.body.v2{grid-template-rows:1fr;align-content:stretch;gap:20px}.body.v2>:first-child{align-self:start}.body.v2>.people+.cols{align-self:start}.pts{font-size:28px;line-height:1.3}.pts li{margin-block:.4em}.tl.big{font-size:26px;row-gap:10px}table.big{font-size:24px}.sum{font-family:var(--deck-display);font-size:30px;line-height:1.25;border-top:2px solid var(--deck-empire);padding-top:14px;align-self:end;text-wrap:balance}.body.v2 .p{font-size:22px}.body.v2 .theses{font-size:30px;gap:26px}.body.v2 .theses>div{align-items:center}.notes .full{opacity:.9}@media screen and (max-width:900px)and (orientation:portrait){.pts{font-size:17px}.tl.big{font-size:16px}table.big{font-size:15px}.sum{font-size:20px}.body.v2 .p{font-size:16px}}#bar{position:fixed;left:0;right:0;bottom:0;height:4px;background:var(--deck-rule)}#bar i{display:block;height:100%;width:0;background:var(--deck-empire);transition:width .25s}#meta{position:fixed;right:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.06em}#meta b{font-weight:400;color:var(--deck-ink)}#sect{position:fixed;left:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.08em;text-transform:uppercase}.notes,.srcs{display:none}.deck.notes-on .notes,.deck.srcs-on .srcs{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:19px;line-height:1.45}.notes:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.notes:before{content:"Komentarz · N"}.srcs:before{content:"Źródła · Z"}.srcs ul{margin:0;padding-left:1.1em}.srcs li+li{margin-top:.35em}.deck.notes-on .notes p+p{margin-top:.5em}.deck.notes-on #nav,.deck.srcs-on #nav{bottom:50%}#nav{position:fixed;inset:0;display:grid;grid-template-columns:1fr 2fr 1fr;overflow:hidden}#nav button{background:transparent;border:0;cursor:pointer;opacity:0;font-size:0;outline:none}#nav button:focus,#nav button:focus-visible{outline:none}#nav button:focus-visible{opacity:1;box-shadow:inset 4px 0 0 var(--deck-empire)}#nav button:last-of-type:focus-visible{box-shadow:inset -4px 0 0 var(--deck-empire)}#nav .mid{pointer-events:none}.status-retry{margin-top:28px;font:16px var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-rule);min-height:44px;padding:8px 16px;cursor:pointer}.status-retry:focus-visible{outline:3px solid var(--deck-empire)}.export-overlay{position:fixed;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:12px;background:var(--deck-paper);color:var(--deck-ink);font:16px/1.4 var(--deck-mono);text-align:center;padding:24px}@media screen and (max-width:900px)and (orientation:portrait){.deck{overflow:auto;font-size:17px}#stage{position:static;width:auto;height:auto;transform:none!important;padding:0 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.slide{position:static;display:grid!important;padding:28px 0;border-bottom:1px solid var(--deck-rule);gap:16px}.slide>header h2{font-size:30px}.slide.sec h2{font-size:36px}.slide.sec>div:not(.notes,.srcs,.speak) p{font-size:18px}.slide.title h1{font-size:40px}.slide.title .sub{font-size:20px}.slide.title footer{flex-direction:column;align-items:start;gap:6px;font-size:15px}.cols,.cols.w{grid-template-columns:1fr;gap:16px}.people{grid-template-columns:1fr}.tl,.tl.compact{font-size:16px}table{font-size:15px}.quote{font-size:22px}.note,.p{font-size:16px}.p b{font-size:20px}.theses>div{grid-template-columns:36px 1fr}.theses>div:before{font-size:30px}.notes,.srcs{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-khaki);position:static;max-height:none}.notes p+p{margin-top:.5em}.notes.is-empty,.srcs.is-empty{display:none}.slide.title :is(.notes,.srcs),.slide.sec :is(.notes,.srcs){background:var(--deck-paper)}.slide{overflow:visible}#bar,#meta,#sect,#nav,.sp-close,.tools,.tools-show{display:none}}@media print{:host,.deck{height:auto}.deck{overflow:visible}.deck,.slide{-webkit-print-color-adjust:exact;print-color-adjust:exact}#stage{display:contents;transform:none!important}#stage>.slide{position:relative;display:grid!important;width:1280px;height:720px;overflow:hidden;break-before:auto;break-after:auto;break-inside:avoid}#stage>.slide+.slide{break-before:page}#bar,#meta,#sect,#nav,.notes,.srcs,.sp-close,.tools,.tools-show,.export-overlay,.deck>.sr-only,#stage>.slide.special{display:none!important}.deck>.print-link{display:block;position:absolute;z-index:1;top:24px;right:32px;font:14px/1.3 var(--deck-mono);letter-spacing:.04em;color:var(--deck-khaki);text-decoration:underline;text-underline-offset:3px}}@media(prefers-reduced-motion:reduce){#bar i,.tools-show{transition:none}}.tools{position:fixed;z-index:6;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:56px;padding:8px 16px;background:var(--deck-paper-2);border-bottom:1px solid var(--deck-rule)}.tools-group{display:flex;align-items:center;gap:8px}.tools-end{margin-left:auto}.tools-pos{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink-2);font-variant-numeric:tabular-nums;min-width:7ch}.tools button,.tools-show{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);border-radius:0;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.tools kbd,.tools-show kbd{font:inherit;color:var(--deck-empire)}.tools button:hover{border-color:var(--deck-empire)}.tools button:focus-visible,.tools-show:focus-visible,.sp-close:focus-visible{outline:3px solid var(--deck-empire);outline-offset:2px}.tools button[aria-pressed=true]{background:var(--deck-ink);border-color:var(--deck-ink);color:var(--deck-paper)}.tools button[aria-pressed=true] kbd{color:inherit}.tools button:disabled{opacity:.4;cursor:default}.tool-s.unavailable{visibility:hidden}.tools-show{position:fixed;z-index:6;top:8px;left:50%;transform:translate(-50%);min-height:32px;padding:0 8px;background:var(--deck-paper-2);border:1px solid var(--deck-rule);opacity:.55;transition:opacity .15s}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}.print-link{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.deck.notes-on .notes.is-empty:after{content:"Brak komentarza do tego slajdu.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}@media(max-height:480px){.tools{flex-wrap:nowrap;overflow-x:auto;min-height:40px;padding:4px 16px}.tools-group{flex-wrap:nowrap}.tools button{min-height:32px;padding:0 8px;white-space:nowrap}}',At=/^[a-z][a-z0-9-]*$/;function $t(e){return`${e.special?'':""}${e.body_html}`}function Dt(e,t={}){const o=["slide"];for(const i of e.split(/\s+/))At.test(i)&&o.push(i);return t.special&&o.push("special"),t.on&&o.push("on"),o.join(" ")}const It=["@import","expression(","url(","javascript:","vbscript:","data:","http:","https:","ftp:","file:"],Rt=new Set(["@font-face","@page","@counter-style","@font-palette-values","@property","@color-profile","@font-feature-values"]);function Be(e){return e===" "||e===" "||e===` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/opsz-DD7j1RRT.css","assets/opsz-italic-l9KtpeZ8.css","assets/index-DyD9x5ZD.js","assets/index-FkOyve-6.css","assets/summer-DcZGwnDj.css","assets/pptx-DVS-5qtM.js"])))=>i.map(i=>d[i]); +import{aR as w,d as yt,U as D,o as wt,Z as W,b7 as zt,be as St,bf as Et,c as b,s as _t,bg as Ct,a$ as Re,f as y,F as ke,b as f,t as C,p as I,C as Me,E as Tt,H as He,r as z,x as A,n as g,e as Lt}from"./index-DyD9x5ZD.js";import{c as Pt,a as Oe}from"./engine-DDeQk6Ow.js";const jt=':host{color-scheme:light dark;--deck-paper: #e9ebe3;--deck-paper-2: #dfe2d8;--deck-ink: #16201f;--deck-ink-2: #4b5551;--deck-rule: #b9beb3;--deck-empire: #b5302c;--deck-khaki: #7f7047;--deck-display: "Libre Caslon Display", "Times New Roman", Georgia, serif;--deck-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Courier Prime", "Courier New", Courier, monospace}@media(prefers-color-scheme:dark){:host:not([data-theme=light]){--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}}:host[data-theme=dark]{--deck-paper: #141a18;--deck-paper-2: #1c2421;--deck-ink: #e4e4da;--deck-ink-2: #a7ada4;--deck-rule: #3a443f;--deck-empire: #e0675f;--deck-khaki: #c2ad72;color-scheme:dark}*{box-sizing:border-box}:host,.deck{height:100%;margin:0}.deck{position:relative;background:var(--deck-paper);color:var(--deck-ink);font-family:var(--deck-body);font-size:24px;line-height:1.4;overflow:hidden}h1,h2,h3{font-family:var(--deck-display);font-weight:400;margin:0;text-wrap:balance;line-height:1.08}p{margin:0}ul{margin:0;padding-left:1.1em}li{margin-block:.25em}li::marker{color:var(--deck-empire)}em{font-style:italic}strong{font-weight:600}a{color:inherit}.k{font-family:var(--deck-mono);font-size:.72em;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.red{color:var(--deck-empire)}.muted{color:var(--deck-ink-2)}.small{font-size:.78em;line-height:1.35}.bib{font-size:17px;line-height:1.3;gap:36px}.bib li{margin-block:.2em}.bib .k{font-size:13px;margin-bottom:6px}#stage{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:0 0}.slide{position:absolute;inset:0;display:none;padding:64px 88px 72px;background:var(--deck-paper);grid-template-rows:auto 1fr;gap:28px;overflow:hidden}[hidden]{display:none!important}.slide.on{display:grid}.slide.special{border-top:6px solid var(--deck-khaki)}.sp-close{position:absolute;top:18px;right:22px;width:44px;height:44px;border:1px solid var(--deck-rule);background:transparent;color:var(--deck-ink-2);font-size:28px;line-height:1;cursor:pointer}.sp-link{border-bottom:2px dotted var(--deck-empire);cursor:pointer}.slide>header{display:grid;gap:10px}.slide>header h2{font-size:50px}.slide .body{min-height:0;display:grid;gap:22px;align-content:start}.cols{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}.cols>*{min-width:0}.cols.w{grid-template-columns:1.3fr 1fr}.rule-top{border-top:1px solid var(--deck-rule);padding-top:16px}.note{font-size:20px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);padding-left:14px}.quote{font-family:var(--deck-display);font-size:34px;line-height:1.25}.quote+.k{margin-top:6px}.slide.sec{grid-template-rows:1fr;align-content:center;background:var(--deck-paper-2)}.slide.sec>div:not(.notes,.srcs,.speak) .k{font-size:20px}.slide.sec h2{font-size:72px;max-width:18ch;margin-top:12px}.slide.sec>div:not(.notes,.srcs,.speak) p{font-size:26px;color:var(--deck-ink-2);max-width:44ch;margin-top:22px}.slide.title{grid-template-rows:1fr auto;background:var(--deck-paper-2)}.slide.title h1{font-size:86px;max-width:14ch}.slide.title .sub{font-size:30px;color:var(--deck-ink-2);margin-top:20px;font-family:var(--deck-display)}.slide.title footer{display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--deck-rule);padding-top:18px;font-size:20px}.tl{display:grid;grid-template-columns:max-content 1fr;column-gap:26px;row-gap:8px;font-size:22px;align-content:start}.tl .y{font-family:var(--deck-mono);color:var(--deck-empire);font-variant-numeric:tabular-nums}.tl.compact{font-size:20px;row-gap:6px}table{border-collapse:collapse;width:100%;font-size:21px}th,td{text-align:left;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--deck-rule)}th{font-family:var(--deck-mono);font-weight:400;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--deck-khaki)}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.p{border-top:2px solid var(--deck-empire);padding-top:10px;font-size:20px;line-height:1.35;min-width:0}.p b{display:block;font-family:var(--deck-display);font-weight:400;font-size:26px;margin-bottom:4px}.theses{display:grid;gap:18px;counter-reset:t}.theses>div{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start}.theses>div:before{counter-increment:t;content:counter(t);font-family:var(--deck-display);font-size:48px;line-height:1;color:var(--deck-empire)}.theses b{font-weight:600}.body.v2{grid-template-rows:1fr;align-content:stretch;gap:20px}.body.v2>:first-child{align-self:start}.body.v2>.people+.cols{align-self:start}.pts{font-size:28px;line-height:1.3}.pts li{margin-block:.4em}.tl.big{font-size:26px;row-gap:10px}table.big{font-size:24px}.sum{font-family:var(--deck-display);font-size:30px;line-height:1.25;border-top:2px solid var(--deck-empire);padding-top:14px;align-self:end;text-wrap:balance}.body.v2 .p{font-size:22px}.body.v2 .theses{font-size:30px;gap:26px}.body.v2 .theses>div{align-items:center}.notes .full{opacity:.9}@media screen and (max-width:900px)and (orientation:portrait){.pts{font-size:17px}.tl.big{font-size:16px}table.big{font-size:15px}.sum{font-size:20px}.body.v2 .p{font-size:16px}}#bar{position:fixed;left:0;right:0;bottom:0;height:4px;background:var(--deck-rule)}#bar i{display:block;height:100%;width:0;background:var(--deck-empire);transition:width .25s}#meta{position:fixed;right:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.06em}#meta b{font-weight:400;color:var(--deck-ink)}#sect{position:fixed;left:20px;bottom:12px;font-family:var(--deck-mono);font-size:14px;color:var(--deck-ink-2);letter-spacing:.08em;text-transform:uppercase}.notes,.srcs{display:none}.deck.notes-on .notes,.deck.srcs-on .srcs{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:19px;line-height:1.45}.notes:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.notes:before{content:"Komentarz · N"}.srcs:before{content:"Źródła · Z"}.srcs ul{margin:0;padding-left:1.1em}.srcs li+li{margin-top:.35em}.deck.notes-on .notes p+p{margin-top:.5em}.deck.notes-on #nav,.deck.srcs-on #nav{bottom:50%}#nav{position:fixed;inset:0;display:grid;grid-template-columns:1fr 2fr 1fr;overflow:hidden}#nav button{background:transparent;border:0;cursor:pointer;opacity:0;font-size:0;outline:none}#nav button:focus,#nav button:focus-visible{outline:none}#nav button:focus-visible{opacity:1;box-shadow:inset 4px 0 0 var(--deck-empire)}#nav button:last-of-type:focus-visible{box-shadow:inset -4px 0 0 var(--deck-empire)}#nav .mid{pointer-events:none}.status-retry{margin-top:28px;font:16px var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-rule);min-height:44px;padding:8px 16px;cursor:pointer}.status-retry:focus-visible{outline:3px solid var(--deck-empire)}.export-overlay{position:fixed;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:12px;background:var(--deck-paper);color:var(--deck-ink);font:16px/1.4 var(--deck-mono);text-align:center;padding:24px}@media screen and (max-width:900px)and (orientation:portrait){.deck{overflow:auto;font-size:17px}#stage{position:static;width:auto;height:auto;transform:none!important;padding:0 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.slide{position:static;display:grid!important;padding:28px 0;border-bottom:1px solid var(--deck-rule);gap:16px}.slide>header h2{font-size:30px}.slide.sec h2{font-size:36px}.slide.sec>div:not(.notes,.srcs,.speak) p{font-size:18px}.slide.title h1{font-size:40px}.slide.title .sub{font-size:20px}.slide.title footer{flex-direction:column;align-items:start;gap:6px;font-size:15px}.cols,.cols.w{grid-template-columns:1fr;gap:16px}.people{grid-template-columns:1fr}.tl,.tl.compact{font-size:16px}table{font-size:15px}.quote{font-size:22px}.note,.p{font-size:16px}.p b{font-size:20px}.theses>div{grid-template-columns:36px 1fr}.theses>div:before{font-size:30px}.notes,.srcs{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-khaki);position:static;max-height:none}.notes p+p{margin-top:.5em}.notes.is-empty,.srcs.is-empty{display:none}.slide.title :is(.notes,.srcs),.slide.sec :is(.notes,.srcs){background:var(--deck-paper)}.slide{overflow:visible}#bar,#meta,#sect,#nav,.sp-close,.tools,.tools-show{display:none}}@media print{:host,.deck{height:auto}.deck{overflow:visible}.deck,.slide{-webkit-print-color-adjust:exact;print-color-adjust:exact}#stage{display:contents;transform:none!important}#stage>.slide{position:relative;display:grid!important;width:1280px;height:720px;overflow:hidden;break-before:auto;break-after:auto;break-inside:avoid}#stage>.slide+.slide{break-before:page}#bar,#meta,#sect,#nav,.notes,.srcs,.sp-close,.tools,.tools-show,.export-overlay,.deck>.sr-only,#stage>.slide.special{display:none!important}.deck>.print-link{display:block;position:absolute;z-index:1;top:24px;right:32px;font:14px/1.3 var(--deck-mono);letter-spacing:.04em;color:var(--deck-khaki);text-decoration:underline;text-underline-offset:3px}}@media(prefers-reduced-motion:reduce){#bar i,.tools-show{transition:none}}.tools{position:fixed;z-index:6;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;min-height:56px;padding:8px 16px;background:var(--deck-paper-2);border-bottom:1px solid var(--deck-rule)}.tools-group{display:flex;align-items:center;gap:8px}.tools-end{margin-left:auto}.tools-pos{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink-2);font-variant-numeric:tabular-nums;min-width:7ch}.tools button,.tools-show{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);border-radius:0;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.tools kbd,.tools-show kbd{font:inherit;color:var(--deck-empire)}.tools button:hover{border-color:var(--deck-empire)}.tools button:focus-visible,.tools-show:focus-visible,.sp-close:focus-visible{outline:3px solid var(--deck-empire);outline-offset:2px}.tools button[aria-pressed=true]{background:var(--deck-ink);border-color:var(--deck-ink);color:var(--deck-paper)}.tools button[aria-pressed=true] kbd{color:inherit}.tools button:disabled{opacity:.4;cursor:default}.tool-s.unavailable{visibility:hidden}.tools-show{position:fixed;z-index:6;top:8px;left:50%;transform:translate(-50%);min-height:32px;padding:0 8px;background:var(--deck-paper-2);border:1px solid var(--deck-rule);opacity:.55;transition:opacity .15s}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}.print-link{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.deck.notes-on .notes.is-empty:after{content:"Brak komentarza do tego slajdu.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}@media(max-height:480px){.tools{flex-wrap:nowrap;overflow-x:auto;min-height:40px;padding:4px 16px}.tools-group{flex-wrap:nowrap}.tools button{min-height:32px;padding:0 8px;white-space:nowrap}}',At=/^[a-z][a-z0-9-]*$/;function $t(e){return`${e.special?'':""}${e.body_html}`}function Dt(e,t={}){const o=["slide"];for(const i of e.split(/\s+/))At.test(i)&&o.push(i);return t.special&&o.push("special"),t.on&&o.push("on"),o.join(" ")}const It=["@import","expression(","url(","javascript:","vbscript:","data:","http:","https:","ftp:","file:"],Rt=new Set(["@font-face","@page","@counter-style","@font-palette-values","@property","@color-profile","@font-feature-values"]);function Be(e){return e===" "||e===" "||e===` `||e==="\r"||e==="\f"}function Mt(e){return e?e>="0"&&e<="9"||e>="a"&&e<="f"||e>="A"&&e<="F":!1}function me(e){return e?e>="A"&&e<="Z"||e>="a"&&e<="z"||e>="0"&&e<="9"||e==="_"||e==="-"||e.charCodeAt(0)>=128:!1}function R(e,t){return e[t]==="/"&&e[t+1]==="*"}function M(e,t){for(t+=2;t+1e.length)break;o=i;continue}t+=e[o],o++}return t}function Ht(e){let t="";for(let o=0;o=e.length)break;const a=e[o+1];if(a===` `){o++;continue}if(a==="\r"){o++,e[o+1]===` `&&o++;continue}let l=o+1,c=0;for(;l0){t+=String.fromCodePoint(Number.parseInt(e.slice(o+1,l),16)),Be(e[l])&&(e[l]==="\r"&&e[l+1]===` `?l+=2:l++),o=l-1;continue}t+=a,o++}return t}function ve(e){const t=Ht(he(e)).toLowerCase();let o="";for(const i of t)i<=" "||i.charCodeAt(0)<32||(o+=i);return o}function Z(e){const t=ve(e);if(!t)return!1;for(const o of It)if(t.includes(o))return!0;return t.includes("//")}function Ve(e){let t="",o=0,i=0;for(;ie.length)return!0;i=l;continue}const a=e[i];if(t){if(a==="\\"&&i+1="a"&&t[o]<="z"||t[o]>="0"&&t[o]<="9");)o++;return t.slice(0,o)}function xe(e){return Rt.has(K(e))}function Ot(e,t){const o=t;let i="",a=1;for(;te.length)return null;continue}const l=e[t];if(i){if(l==="\\"&&t+1e.length)return null;continue}const l=e[t];if(i){if(l==="\\"&&t+10){a--,t++;continue}if(a===0&&l==="{"){const c=Ot(e,t+1);return c?{item:{prelude:e.slice(o,t),block:c.block,braced:!0},next:c.end}:null}if(a===0&&l===";")return{item:{prelude:e.slice(o,t),block:"",braced:!1},next:t+1};t++}return null}function G(e){const t=[];let o=0;for(;o=e.length)break;const i=Nt(e,o);if(!i)break;t.push(i.item),o=i.next}return t}function Fe(e){const t=[];let o="",i="",a=0,l=0;for(;le.length){o+=e.slice(l);break}o+=e.slice(l,x),l=x;continue}const c=e[l];if(i){if(o+=c,c==="\\"&&l+10){a--,o+=c,l++;continue}if(c===";"&&a===0){t.push(o),o="",l++;continue}o+=c,l++}return o&&t.push(o),t}function Ne(e){const t=[];for(const o of Fe(e)){const i=o.trim();i&&(Ve(o)||Z(o)||t.push(i))}return t.length===0?"":`${t.join("; ")};`}function qt(e){const t=e.prelude.trim();if(!t&&!e.braced||Z(t)||K(t)==="@import")return"";if(!e.braced)return Z(e.prelude)?"":`${t};`;if(Ve(e.block)&&Z(e.block))return"";let o="";return xe(t)?o=Ne(e.block):K(t).startsWith("@")?o=Ue(e.block):o=Ne(e.block),o.trim()?`${t} { ${o.trim()} }`:""}function Ue(e){const t=[];for(const o of G(e)){const i=qt(o);i&&t.push(i)}return t.join(` `)}function We(e,t){const o=e[t];let i=o;for(t++;te.length){t+=e.slice(o);break}t+=e.slice(o,a),o=a;continue}const i=e[o];if(i==='"'||i==="'"){const a=We(e,o);t+=a.text,o=a.next;continue}if(i==="["){const a=Kt(e,o);t+=a.text,o=a.next;continue}if(e.slice(o,o+5).toLowerCase()===":root"&&!me(e[o+5])){t+=":host",o+=5;continue}if(e.slice(o,o+4).toLowerCase()==="body"&&!me(e[o+4])){const a=o===0?"":e[o-1];if(!me(a)&&a!=="."&&a!=="#"&&a!==":"&&a!=="@"){t+=".deck",o+=4;continue}}t+=i,o++}return t}function Vt(e){const t=e.prelude.trim();if(!e.braced)return t?`${t};`:"";const o=K(t);let i=t,a=e.block;return o.startsWith("@")?xe(t)||(a=Xe(e.block)):i=Bt(t),`${i} { ${a.trim()} }`}function Xe(e){const t=[];for(const o of G(e)){const i=Vt(o);i&&t.push(i)}return t.join(` `)}function Ft(e){const t=ve(e);if(!t.startsWith("@media"))return null;const o=t.includes("prefers-color-scheme:dark"),i=t.includes("prefers-color-scheme:light");return o&&!i?"dark":i&&!o?"light":null}function ge(e,t){const o=[];for(const i of G(e)){const a=i.prelude.trim(),l=Ft(a);if(l){if(l===t&&i.braced){const x=ge(i.block,t).trim();x&&o.push(x)}continue}if(!i.braced){a&&o.push(`${a};`);continue}if(K(a).startsWith("@")&&!xe(a)){const x=ge(i.block,t).trim();x&&o.push(`${a} { ${x} }`);continue}o.push(`${a} { ${i.block.trim()} }`)}return o.join(` -`)}function B(e,t){return!e.trim()||t==="auto"?e.trim():ge(e,t).trim()}const be=["paper","paper-2","ink","ink-2","rule","empire","khaki"],Q={paper:"#141a18","paper-2":"#1c2421",ink:"#e4e4da","ink-2":"#a7ada4",rule:"#3a443f",empire:"#e0675f",khaki:"#c2ad72"},Ze={paper:"#e9ebe3","paper-2":"#dfe2d8",ink:"#16201f","ink-2":"#4b5551",rule:"#b9beb3",empire:"#b5302c",khaki:"#7f7047"};function Ge(e){return e==="light"?Ze:Q}function Qe(e,t=Ge(e)){const o=t;return[":host {",`--paper: ${o.paper}; --paper-2: ${o["paper-2"]}; --ink: ${o.ink}; --ink-2: ${o["ink-2"]};`,`--rule: ${o.rule}; --empire: ${o.empire}; --khaki: ${o.khaki};`,`--deck-paper: ${o.paper}; --deck-paper-2: ${o["paper-2"]}; --deck-ink: ${o.ink}; --deck-ink-2: ${o["ink-2"]};`,`--deck-rule: ${o.rule}; --deck-empire: ${o.empire}; --deck-khaki: ${o.khaki};`,`color-scheme: ${e};`,"}",".deck { background: var(--paper); color: var(--ink); }","#nav button:focus, #nav button:focus-visible { outline: none; }","#nav button:focus-visible { box-shadow: inset 4px 0 0 var(--empire, var(--deck-empire)); }","#nav button:last-of-type:focus-visible { box-shadow: inset -4px 0 0 var(--empire, var(--deck-empire)); }"].join(" ")}function Ye(e=Q){return Qe("dark",e)}Ye();function Ut(e=Q){const t={};for(const o of be)t[`--${o}`]=e[o];for(const o of be)t[`--deck-${o}`]=e[o];return t}const Wt=/^[#a-z0-9(),.%\s/-]+$/i;function Xt(e){return be.includes(e)}function Je(e,t){const o={...Ge(t)};for(const i of G(B(e,t)))if(!(!i.braced||he(i.prelude).trim()!==":host"))for(const a of Fe(i.block)){const l=he(a),c=l.indexOf(":");if(c<0)continue;const x=l.slice(0,c).trim(),T=l.slice(c+1).trim();if(!x.startsWith("--deck-"))continue;const _=x.slice(7);Xt(_)&&Wt.test(T)&&(o[_]=T)}return o}function Zt(e){return Je(e,"dark")}const Gt=/@media\s*\(\s*max-width\s*:\s*900px\s*\)\s*and\s*\(\s*orientation\s*:\s*portrait\s*\)/gi;function Qt(e){if(!e.trim())return"";const t=Ue(e).trim();return t?Xe(t).trim().replace(Gt,"@media screen and (max-width: 900px) and (orientation: portrait)"):""}const Yt=':host{--deck-paper: #e5eef0;--deck-paper-2: #d0e1e3;--deck-ink: #12303a;--deck-ink-2: #48646c;--deck-rule: #a8c1c5;--deck-empire: #b84e12;--deck-khaki: #17705f;--deck-contour: rgba(18, 48, 58, .13);--deck-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #0d2b2a;--deck-paper-2: #092120;--deck-ink: #e2eeec;--deck-ink-2: #9bb8b4;--deck-rule: #2a4d4a;--deck-empire: #f09a5a;--deck-khaki: #7fd1bd;--deck-contour: rgba(226, 238, 236, .1)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:500;letter-spacing:-.012em}.slide.title>div>.sub{font-style:italic}.slide.sec>div>.k{color:var(--deck-khaki)}.slide .tl{column-gap:0;row-gap:0}.slide .tl .y{position:relative;padding:8px 30px 8px 0;text-align:right;color:var(--deck-ink);border-right:2px solid var(--deck-empire)}.slide .tl .y:after{content:"";position:absolute;right:-8px;top:50%;width:10px;height:10px;margin-top:-7px;border-radius:50%;background:var(--deck-paper);border:2px solid var(--deck-empire)}.slide .tl>span:not(.y){padding:8px 0 8px 28px}.slide .sum{border-top:0;background:var(--deck-paper-2);padding:16px 22px}.slide .quote{font-style:italic}@media not screen and (max-width:900px)and (orientation:portrait){.slide:before{content:"";position:absolute;z-index:-1;right:-200px;top:-200px;width:560px;height:560px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 22px,var(--deck-contour) 22px 23.5px)}.slide:is(.sec,.title):before{right:-160px;top:auto;bottom:-320px;width:960px;height:960px}.slide>header h2{font-size:52px}.slide.sec{align-items:center}.slide.title>div>h1{margin-top:22px}.slide .sum{font-size:28px}.slide .quote{font-size:38px}}@media print{.slide:before{content:none}.slide .sum{background:none}.slide .tl .y{border-right-color:#000}.slide .tl .y:after{background:#fff;border-color:#000}}',Jt=':host{--deck-paper: #f8f8f5;--deck-paper-2: #efeee8;--deck-ink: #1b1d22;--deck-ink-2: #5b5f69;--deck-rule: #d3d2ca;--deck-empire: #7a1f2b;--deck-khaki: #5b5f69;--deck-display: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #17181d;--deck-paper-2: #1e2027;--deck-ink: #ebe9e1;--deck-ink-2: #a4a7af;--deck-rule: #363944;--deck-empire: #e39aa3;--deck-khaki: #a4a7af}}.slide h1,.slide h2{font-weight:600;letter-spacing:-.015em}.slide .k{font-family:var(--deck-body);font-weight:500;letter-spacing:.16em}.slide>header{padding-bottom:22px;border-bottom:1px solid var(--deck-rule)}.slide.title>div>.sub{font-style:italic}.slide.sec>div>h2{font-style:italic;font-weight:400}.slide.sec>div>p:not(.k){font-family:var(--deck-display)}.slide li::marker{content:"– "}.slide :is(.notes,.srcs,.speak) li::marker{content:normal}.slide .tl .y{font-family:var(--deck-display);font-style:italic}.slide .sum{font-style:italic;border-top:0;border-left:2px solid var(--deck-empire);padding:2px 0 2px 22px}.slide .quote{font-style:italic}@media not screen and (max-width:900px)and (orientation:portrait){.slide{padding:72px 120px 80px}.slide .k{font-size:.64em}.slide .bib .k{font-size:13px}.slide>header{gap:12px}.slide>header h2{font-size:48px}.slide.title,.slide.sec{text-align:center;justify-items:center}.slide.sec{align-items:center}.slide :is(.notes,.srcs,.speak){text-align:left}.slide.title>div{align-self:center}.slide.title>div>h1{max-width:16ch;font-size:84px;margin-top:22px;margin-inline:auto}.slide.title>footer{width:100%;justify-content:center;gap:48px}.slide.sec>div>h2{font-size:88px;max-width:none;margin-top:0}.slide.sec>div>.k:after{content:"";display:block;width:64px;height:2px;background:var(--deck-empire);margin:20px auto 26px}.slide.sec>div>p:not(.k){margin-inline:auto}.slide .tl .y{font-size:1.06em}.slide .quote{font-size:40px}}',en=':host{--deck-paper: #f6f7fa;--deck-paper-2: #eceff4;--deck-ink: #1d2940;--deck-ink-2: #4c586d;--deck-rule: #c9d0dc;--deck-empire: #9a6200;--deck-khaki: #7c5100;--deck-card: #ffffff;--deck-line: rgba(29, 41, 64, .12);--deck-pill: rgba(154, 98, 0, .08);--deck-pill-line: rgba(154, 98, 0, .35);--deck-ray: rgba(29, 41, 64, .05);--deck-glow: rgba(245, 197, 90, .4);--deck-shadow: 0 24px 60px -30px rgba(29, 41, 64, .35);--deck-display: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-body: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #233148;--deck-paper-2: #1d2940;--deck-ink: #e9edf3;--deck-ink-2: #b3bccb;--deck-rule: #3e4a5f;--deck-empire: #f5c55a;--deck-khaki: #fbd77e;--deck-card: #29344a;--deck-line: rgba(255, 255, 255, .1);--deck-pill: rgba(245, 197, 90, .08);--deck-pill-line: rgba(245, 197, 90, .35);--deck-ray: rgba(255, 255, 255, .035);--deck-glow: rgba(245, 197, 90, .16);--deck-shadow: 0 40px 100px -40px rgba(0, 0, 0, .6)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:700;letter-spacing:-.02em}.slide h3,.slide strong,.slide b{font-weight:600}.slide .k{font-weight:500;letter-spacing:.06em}.slide>header>.k,.slide:is(.sec,.title)>div:not(.notes,.srcs,.speak)>.k{font-family:var(--deck-body);letter-spacing:.16em;color:var(--deck-empire)}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body);font-weight:300}.slide.title>footer .k{color:var(--deck-khaki)}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-weight:300}.slide .tl .y{justify-self:stretch;align-self:baseline;text-align:center;white-space:nowrap;line-height:1.3;font-family:var(--deck-body);font-variant-numeric:tabular-nums;font-weight:500;color:var(--deck-empire);background:var(--deck-pill);border:1px solid var(--deck-pill-line);border-radius:999px;padding:0 .6em}.slide .tl>span:not(.y){align-self:baseline}.slide .sum{font-family:var(--deck-body);font-weight:500;border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:14px 24px}.slide .p{border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:18px 24px}.slide .p b{font-family:var(--deck-display);font-weight:700;letter-spacing:-.01em;line-height:1.15}.slide .note{border-left-color:var(--deck-empire)}.slide .theses>div:before{font-weight:700;color:var(--deck-empire)}.slide th{font-weight:500}.slide figure img{border-radius:12px;box-shadow:var(--deck-shadow)}.slide figcaption{margin-top:8px}.slide .quote{font-weight:300}@media not screen and (max-width:900px)and (orientation:portrait){.slide:is(.sec,.title):before{content:"";position:absolute;z-index:-1;inset:-40% -20%;background:radial-gradient(circle at 80% 50%,var(--deck-glow),transparent 30%),repeating-conic-gradient(from 0deg at 80% 50%,var(--deck-ray) 0deg 7deg,transparent 7deg 15deg);-webkit-mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%);mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%)}.slide.title:after{content:"";position:absolute;z-index:-1;left:80%;top:44%;width:168px;height:168px;margin:-84px 0 0 -84px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fde9b4,#f5c55a 62%,#e9a93a);box-shadow:0 0 0 18px #f5c55a1a,0 0 120px 20px #f5c55a4d}.slide>header{gap:12px}.slide>header .k{font-size:17px}.slide>header h2{font-size:50px;line-height:1.1}.slide.sec>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:76px;max-width:15ch;margin-top:16px;line-height:1.04}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-size:28px;max-width:34ch}.slide.title>div:not(.notes,.srcs,.speak){align-self:center}.slide.title>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;line-height:1;margin-top:18px;letter-spacing:-.03em}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:32px;max-width:32ch;line-height:1.3;margin-top:24px}.slide.title>footer{font-size:20px}.slide .tl{column-gap:22px}.slide .tl .y{font-size:.8em}.slide .sum{font-size:27px;line-height:1.3}.slide .quote{font-size:38px}}@media print{.slide:before,.slide:after{content:none}.slide .sum,.slide .p,.slide .tl .y{background:none;border-color:#000}.slide figure img{box-shadow:none}}',tn=':host{--deck-paper: #eef1f2;--deck-paper-2: #dde4e7;--deck-ink: #131c2b;--deck-ink-2: #4a586b;--deck-rule: #b4c0c9;--deck-empire: #a85f00;--deck-khaki: #1d6a78;--deck-grid: rgba(19, 28, 43, .06);--deck-display: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #131c2b;--deck-paper-2: #0d1420;--deck-ink: #e7ecf0;--deck-ink-2: #94a3b5;--deck-rule: #2b3a50;--deck-empire: #f2b23e;--deck-khaki: #72c6cf;--deck-grid: rgba(231, 236, 240, .05)}}.slide{background-image:linear-gradient(var(--deck-grid) 1px,transparent 1px),linear-gradient(90deg,var(--deck-grid) 1px,transparent 1px);background-size:40px 40px}.slide h1,.slide h2{font-weight:700;line-height:1;letter-spacing:-.005em}.slide>header{border-left:6px solid var(--deck-empire);padding-left:20px}.slide.title>div:not(.notes,.srcs,.speak)>h1,.slide.sec>div:not(.notes,.srcs,.speak)>h2{text-transform:uppercase}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body)}.slide.sec>div:not(.notes,.srcs,.speak)>.k{color:var(--deck-empire)}.slide ul{list-style:square}.slide .tl{column-gap:0;row-gap:0}.slide .tl>span{padding:9px 0;border-bottom:1px solid var(--deck-rule)}.slide .tl .y{padding-right:26px;font-weight:500}.slide .sum{font-family:var(--deck-body);font-weight:500;border:1px solid var(--deck-empire);padding:14px 18px;background:var(--deck-paper-2)}.slide .sum:before{content:"Wniosek";display:block;font:500 14px var(--deck-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--deck-empire);margin-bottom:6px}.slide .quote{font-family:var(--deck-body);font-weight:500}@media not screen and (max-width:900px)and (orientation:portrait){.slide>header h2{font-size:58px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;max-width:15ch}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:112px;max-width:14ch}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:28px}.slide .sum{font-size:25px}.slide .quote{font-size:33px}}@media print{.slide{background-image:none}.slide .sum{background:none;border-color:#000}.slide .sum:before{color:#000}}',et="screen and (max-width: 900px) and (orientation: portrait)";function nn(e){return e(et).matches}function qe(e,t,o){if(e==="reading")return t;for(const i of o)if(i.bottom>0)return i.id;return t}function on(e){return e.complete?Promise.resolve():new Promise(t=>{const o=()=>t();e.addEventListener("load",o,{once:!0}),e.addEventListener("error",o,{once:!0})})}async function Ke(e,t){t.scrollTo(e),await Promise.all(t.imagesBefore(e).map(on)),t.scrollTo(e)}function X(e,t,o){return{key:e,sheet:B(t,"dark"),dark:Zt(t),lightSheet:B(t,"light"),light:Je(t,"light"),loadFonts:o}}const rn=new Map([["atlas",X("atlas",Yt,()=>Promise.all([w(()=>Promise.resolve({}),__vite__mapDeps([0])),w(()=>Promise.resolve({}),__vite__mapDeps([1])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))],["monografia",X("monografia",Jt,()=>Promise.all([w(()=>import("./index-CZVUqkdk.js").then(e=>e.bk),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bl),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))],["summer",X("summer",en,()=>w(()=>Promise.resolve({}),__vite__mapDeps([4])))],["sztab",X("sztab",tn,()=>Promise.all([w(()=>import("./index-CZVUqkdk.js").then(e=>e.bi),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bj),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-CZVUqkdk.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))]]);function sn(e){return typeof e!="string"||e===""?null:rn.get(e)??null}function an(e,t,o,i="dark"){const a=i==="light";return[B(e,i),t?a?t.lightSheet:t.sheet:"",...o,a?Qe("light",t?t.light:void 0):Ye(t?t.dark:void 0)].filter(l=>!!l)}function ln(e,t){return t==="light"?e?e.light:Ze:e?e.dark:Q}const dn=["data-theme","aria-busy"],cn={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},pn={class:"tools-group"},un={class:"tools-pos","aria-hidden":"true"},fn=["aria-pressed"],kn=["aria-pressed"],mn=["aria-pressed"],hn={class:"tools-group tools-end"},gn=["aria-pressed"],bn=["disabled"],vn={id:"stage"},xn={key:1,class:"slide sec on","aria-busy":"true"},yn={key:2,class:"slide sec on"},wn={key:3,class:"slide sec on"},zn={key:4,class:"slide sec on"},Sn=["id","innerHTML"],En={key:2,id:"bar"},_n=["innerHTML"],Cn={key:4,id:"sect"},Tn={key:5,id:"nav"},Ln={key:6,class:"export-overlay",role:"status","aria-live":"polite"},Pn={key:0},jn=["href"],An=["href"],$n={key:9,class:"sr-only","aria-live":"polite"},Rn=yt({__name:"DeckViewer",props:{phase:{},deck:{},error:{},mode:{},compose:{type:Function},labels:{},announce:{type:Function},extraCss:{},theme:{},images:{},noToolbar:{type:Boolean}},emits:["retry","position","navigate","clock","snapshot","scheme"],setup(e,{expose:t,emit:o}){const i=e,a=o,l=z(null),c=z(null),x=z(null),T=z(0),_=z(""),Y=z(!1),H=z(""),ye=A(()=>i.deck?.slides?.length??0),J=z(!1),$=z(!0),h=z(null),O=z("");let u=null,V=null,ee=null,F=null,te=null,N=null,q=[],L="";const ne=A(()=>sn(i.theme)),P=A(()=>$.value?"dark":"light"),tt=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function nt(n){return{body_html:n.body_html,sources_html:n.sources_html,comment_html:"comment_html"in n?n.comment_html:"",say_html:"say_html"in n?n.say_html:"",notes_html:"notes_html"in n?n.notes_html:""}}function ot(n,r){const s=nt(n);return i.compose?i.compose(s,r):$t({body_html:s.body_html,comment_html:s.comment_html??"",sources_html:s.sources_html,special:r})}function S(){return nn(n=>window.matchMedia(n))}D(()=>[i.phase,i.deck],()=>{if(L="",q=[],i.phase!=="ready"||!i.deck||i.deck.slides.length===0){u=null,T.value++;return}u=Pt({slides:i.deck.slides.map(n=>({number:n.number,hasSpecial:n.special!=null})),history:window.history,hash:window.location.hash,mode:i.mode==="speaker"?"speaker":"public",onChange:()=>{T.value++},onNavigate:n=>{a("navigate",n)}}),a("position",u.snapshot().index),T.value++},{immediate:!0});const m=A(()=>(T.value,u?.snapshot()??null)),U=A(()=>{const n=i.deck?.slides??[],r=new Set(m.value?.on??[]),s=[];for(const d of n){const p=String(d.number);if(s.push({id:p,slide:d,special:!1,on:r.has(p)}),d.special){const k=`${d.number}s`;s.push({id:k,slide:d.special,special:!0,on:r.has(k)})}}return s}),it=A(()=>{const n=m.value,r=i.deck?.slides.length??0;return!n||!r?"":`${n.index+1} / ${r}`}),rt=A(()=>{const n=m.value,r=i.deck?.slides;if(!n||!r)return"";const s=r[n.index];return s?n.special&&s.special?s.special.section_label:s.section_label:""});function st(){const n=i.extraCss,r=Array.isArray(n)?n:n?[n]:[],s=[];for(const d of r){if(!d)continue;const p=B(Qt(d),P.value);p&&s.push(p)}return s}function oe(n){const r=an(jt,ne.value,st(),P.value);try{n.adoptedStyleSheets=r.map(s=>{const d=new CSSStyleSheet;return d.replaceSync(s),d})}catch{n.querySelectorAll("style[data-deck-style]").forEach(s=>s.remove());for(const s of r){const d=document.createElement("style");d.dataset.deckStyle="1",d.textContent=s,n.appendChild(d)}}}function ie(){const n=l.value;if(n){for(const[r,s]of Object.entries(Ut(ln(ne.value,P.value))))n.style.setProperty(r,s);n.style.colorScheme=P.value,n.dataset.theme=P.value,document.documentElement.dataset.theme=P.value,document.documentElement.style.colorScheme=P.value}}function re(){i.mode==="speaker"&&($.value=!$.value,ie(),c.value&&oe(c.value),a("scheme",!$.value))}function E(){const n=c.value?.getElementById("stage"),r=l.value;if(!n||!r)return;const s=c.value?.getElementById("nav");if(S()){n.style.transform="",s&&(s.style.top="");return}const d=c.value?.querySelector(".tools"),p=d instanceof HTMLElement?d.getBoundingClientRect().height:0,k=Math.max(0,window.innerHeight-p),v=Math.min(window.innerWidth/1280,k/720),pe=p/2;n.style.transform=`translate(${-640*v}px, ${-360*v+pe}px) scale(${v})`,s&&(s.style.top=`${p}px`)}function se(){F?.disconnect();const n=c.value?.querySelector(".tools");n&&F?.observe(n)}function at(){const n=c.value;if(!n)return;const r=i.images;n.querySelectorAll("img[data-deck-image]").forEach(s=>{if(!(s instanceof HTMLImageElement))return;const d=s.getAttribute("data-deck-image")??"",p=d&&r?r[d]:void 0;if(!p){s.removeAttribute("src");return}s.getAttribute("src")!==p&&s.setAttribute("src",p)})}function we(){const n=c.value,r=x.value;if(!n||!r)return;const s=u?.snapshot().panel??null;if(r.classList.toggle("speaker",i.mode==="speaker"),r.classList.toggle("notes-on",s==="notes"),r.classList.toggle("srcs-on",s==="srcs"),r.classList.toggle("speak-on",s==="say"),n.querySelectorAll("aside.notes, aside.srcs, aside.speak").forEach(p=>{const k=(p.textContent??"").replace(/\u00a0/g," ").trim()==="";p.classList.toggle("is-empty",k),p.removeAttribute("tabindex"),p.removeAttribute("role"),p.removeAttribute("aria-label")}),s){const p=s==="notes"?"notes":s==="srcs"?"srcs":"speak",k=s==="notes"?i.labels?.notes??"Komentarz":s==="srcs"?i.labels?.sources??"Źródła":i.labels?.say??"",v=n.querySelector(`.slide.on aside.${p}`);v&&(v.setAttribute("tabindex","0"),v.setAttribute("role","region"),v.setAttribute("aria-label",k))}const d=i.labels?.specialLink??"Slajd dodatkowy (S)";n.querySelectorAll(".sp-link").forEach(p=>{p.setAttribute("title",d)})}function ze(){return c.value?.activeElement??document.activeElement}function lt(){const r=ze()?.closest?.(".notes, .srcs, .speak");return r instanceof HTMLElement?r:null}function dt(n,r){const d=n.clientHeight;r==="ArrowDown"?n.scrollTop+=40:r==="ArrowUp"?n.scrollTop-=40:r==="PageDown"||r===" "?n.scrollTop+=d:r==="PageUp"?n.scrollTop-=d:r==="Home"?n.scrollTop=0:r==="End"&&(n.scrollTop=n.scrollHeight)}function ct(){window.print()}async function Se(){if(h.value||!u||i.phase!=="ready"||!i.deck||!c.value||S())return;const n=i.deck,r=new Map(U.value.map(k=>[k.id,k])),s=[];for(const k of c.value.querySelectorAll("#stage > section.slide")){const v=r.get(k.id);v&&s.push({el:k,slide:v.slide,special:v.special})}if(!s.length)return;const d=u,p=d.snapshot().panel;p&&d.togglePanel(p),O.value="",h.value={done:0,total:s.length},await W();try{const{exportDeck:k,downloadPptx:v,pptxFileName:pe}=await w(async()=>{const{exportDeck:ue,downloadPptx:fe,pptxFileName:xt}=await import("./pptx-C8HPYutj.js");return{exportDeck:ue,downloadPptx:fe,pptxFileName:xt}},__vite__mapDeps([5,2,3])),Ie=i.mode==="speaker"?"speaker":"public",vt=await k({title:n.title,mode:Ie,sections:s,onProgress:(ue,fe)=>{h.value={done:ue,total:fe}}});v(vt,pe(n.title,Ie))}catch(k){O.value=k instanceof Error&&k.message?k.message:"Nieznany błąd"}finally{const k=new Map(U.value.map(v=>[v.id,v.on]));for(const{el:v}of s)v.classList.toggle("on",k.get(v.id)??!1);u===d&&p&&d.snapshot().panel!==p&&d.togglePanel(p),h.value=null,le()}}function ae(){document.fullscreenEnabled&&(document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()?.catch(()=>{}))}function Ee(n){return n!=="pause"&&n!=="clock"&&n!=="reset"?!1:(a("clock",n),!0)}function _e(n){if(h.value||!u||i.phase!=="ready")return;const s=!!ze()?.closest("button"),d=lt(),p=Oe(u,{key:n.key,ctrlKey:n.ctrlKey,metaKey:n.metaKey,altKey:n.altKey,targetIsButton:s,targetIsPanel:!!d,reading:S()});if(p==="fullscreen"){n.preventDefault(),ae();return}if(p==="scheme"){n.preventDefault(),re();return}if(Ee(p)){n.preventDefault();return}if(p==="ignored"){if(s&&(n.key===" "||n.key==="Enter"))return;d&&tt.has(n.key)&&!n.ctrlKey&&!n.metaKey&&!n.altKey&&!S()&&(n.preventDefault(),dt(d,n.key));return}n.preventDefault()}function pt(n){if(h.value||!u||i.phase!=="ready"||i.mode!=="speaker"||n.toLowerCase()==="f")return"ignored";const r=Oe(u,{key:n,reading:S()});return r==="fullscreen"?"ignored":(Ee(r),r==="scheme"&&re(),r)}function ut(n){if(h.value||!u||i.phase!=="ready"||i.mode!=="speaker"||!i.deck||S())return!1;const r=i.deck.slides.findIndex(s=>s.number===n);return r<0?!1:(u.go(r),!0)}function ft(n,r,s=null){if(h.value||!u||i.phase!=="ready"||!i.deck)return!1;const d=i.deck.slides.find(k=>k.number===n);if(!d)return!1;u.showId(r&&d.special?`${n}s`:String(n));const p=u.snapshot().panel;return s!==p&&u.togglePanel(s??p),!0}function kt(){if(!u||i.phase!=="ready")return null;const n=u.snapshot();return{number:n.number,special:n.special,panel:n.panel}}function mt(){return[...c.value?.querySelectorAll("#stage > section.slide")??[]]}t({runKey:pt,goToNumber:ut,showSlide:ft,current:kt,sections:mt});function le(){h.value||!u||window.location.hash!==u.snapshot().hash&&u.followHash(window.location.hash)}function Ce(){J.value=document.fullscreenElement!=null,E()}function ht(n){if(h.value||!(n instanceof MouseEvent)||!u||S())return;const r=n.target instanceof Element?n.target:null;if(n.detail>0){const d=r?.closest("#nav button");d instanceof HTMLElement&&d.blur()}if(r?.closest(".tools, .tools-show, #speaker-clock, .export-overlay"))return;const s=c.value;if(s){for(const d of s.elementsFromPoint(n.clientX,n.clientY))if(d instanceof Element){if(d.classList.contains("sp-link")){n.preventDefault(),n.stopPropagation(),u.openSpecial();return}if(d.classList.contains("sp-close")){n.preventDefault(),n.stopPropagation(),u.closeSpecial();return}}}}function Te(n){V=n.touches[0]?.clientX??null}function Le(n){if(h.value||V==null||!u)return;const r=V;V=null;const s=n.changedTouches[0]?.clientX;s!=null&&u.swipe(s-r,S())}function de(n){h.value||u?.togglePanel(n)}function Pe(){h.value||u?.toggleSpecial()}function ce(){h.value||u?.toggleToolbar()}function gt(){h.value||u?.previous()}function bt(){h.value||u?.next()}function je(){const n=c.value;return n?[...n.querySelectorAll("section.slide")].flatMap(r=>!(r instanceof HTMLElement)||!r.id?[]:[{id:r.id,bottom:r.getBoundingClientRect().bottom}]):[]}function j(){if(!S())return;const n=je();n.length&&(q=n)}const Ae={scrollTo(n){c.value?.getElementById(n)?.scrollIntoView({block:"start"})},imagesBefore(n){const r=c.value;if(!r)return[];const s=[...r.querySelectorAll("section.slide")],d=s.findIndex(k=>k.id===n);if(d<=0)return[];const p=[];for(let k=0;kj()))}function De(){if(!u||i.phase!=="ready"||!N)return;const n=u.snapshot().on[0]??"";if(!n)return;if(N.matches){const s=qe("reading",n,q);L="",W(()=>{j(),L=s,Ke(s,Ae).then(()=>j())});return}const r=qe("slide",n,q.length?q:je());L="",u.showId(r),E()}return wt(()=>{const n=l.value;if(!n)return;Y.value=document.fullscreenEnabled,H.value=window.location.origin+window.location.pathname;const r=n.attachShadow({mode:"open"});c.value=r,ie(),oe(r);const s=document.createElement("div");s.className="deck",r.appendChild(s),x.value=s,r.addEventListener("click",ht,!0),window.addEventListener("hashchange",le),window.addEventListener("keydown",_e),window.addEventListener("resize",E),window.addEventListener("scroll",j,!0),window.addEventListener("touchstart",Te,{passive:!0}),window.addEventListener("touchend",Le,{passive:!0}),document.addEventListener("fullscreenchange",Ce),N=window.matchMedia(et),N.addEventListener("change",De),ee=new ResizeObserver(()=>E()),ee.observe(n),F=new ResizeObserver(()=>E()),te=new MutationObserver(()=>{se(),E()}),te.observe(s,{childList:!0,subtree:!0}),W(()=>{we(),se(),E(),j(),$e()})}),zt(()=>{window.removeEventListener("hashchange",le),window.removeEventListener("keydown",_e),window.removeEventListener("resize",E),window.removeEventListener("scroll",j,!0),window.removeEventListener("touchstart",Te),window.removeEventListener("touchend",Le),document.removeEventListener("fullscreenchange",Ce),N?.removeEventListener("change",De),ee?.disconnect(),F?.disconnect(),te?.disconnect(),St(Et()),document.documentElement.style.removeProperty("color-scheme")}),D([()=>i.extraCss,()=>i.theme],()=>{ie(),c.value&&oe(c.value)}),D(ne,n=>{n?.loadFonts().catch(()=>{})},{immediate:!0}),D(m,n=>{n&&a("snapshot",n)}),D(m,(n,r)=>{if(!n){_.value="";return}if(!r||n.number!==r.number||n.special!==r.special){if(i.announce){_.value=i.announce({number:n.number,total:n.total,special:n.special});return}n.special&&!r?.special?_.value=`Slajd dodatkowy do slajdu ${n.number}`:_.value=`Slajd ${n.number} z ${n.total}`}},{immediate:!0}),D([()=>i.phase,U,m,()=>i.images],()=>{W(()=>{we(),at(),se(),E();const n=u?.snapshot().on[0]??"";n&&n!==L?$e():j()})}),(n,r)=>(g(),b("div",{ref_key:"host",ref:l,class:"deck-host","data-theme":$.value?"dark":"light","aria-busy":e.phase==="loading"?"true":void 0},[x.value?(g(),_t(Ct,{key:0,to:x.value},[e.phase==="ready"&&m.value&&e.mode==="speaker"?Re(n.$slots,"tools",{panel:m.value.panel,special:m.value.special,hasSpecial:m.value.hasSpecial,fullscreenEnabled:Y.value,fullscreenOn:J.value,toolbarHidden:m.value.toolbarHidden,togglePanel:de,toggleSpecial:Pe,toggleToolbar:ce,toggleFullscreen:ae,light:!$.value,toggleScheme:re,exportPptx:Se,exporting:h.value!=null},void 0,void 0,0):y("",!0),e.phase==="ready"&&m.value&&e.mode!=="speaker"&&!e.noToolbar?(g(),b(ke,{key:1},[m.value.toolbarHidden?y("",!0):(g(),b("div",cn,[f("div",pn,[f("span",un,C(it.value),1),f("button",{type:"button","aria-pressed":m.value.panel==="notes","aria-keyshortcuts":"N",onClick:r[0]||(r[0]=s=>de("notes"))},[...r[4]||(r[4]=[I(" Komentarz ",-1),f("kbd",null,"N",-1)])],8,fn),f("button",{type:"button","aria-pressed":m.value.panel==="srcs","aria-keyshortcuts":"Z",onClick:r[1]||(r[1]=s=>de("srcs"))},[...r[5]||(r[5]=[I(" Źródła ",-1),f("kbd",null,"Z",-1)])],8,kn),f("button",{type:"button",class:Me(["tool-s",{unavailable:!m.value.hasSpecial}]),"aria-pressed":m.value.special,"aria-keyshortcuts":"S",onClick:Pe},[...r[6]||(r[6]=[I(" Slajd dodatkowy ",-1),f("kbd",null,"S",-1)])],10,mn)]),f("div",hn,[Y.value?(g(),b("button",{key:0,type:"button","aria-pressed":J.value,"aria-keyshortcuts":"F",onClick:ae},[...r[7]||(r[7]=[I(" Pełny ekran ",-1),f("kbd",null,"F",-1)])],8,gn)):y("",!0),f("button",{type:"button",title:"Drukuj albo zapisz jako PDF, slajd na stronę",onClick:ct}," PDF "),f("button",{type:"button",disabled:h.value!=null,title:"Pobierz jako PowerPoint: slajd jako obraz, komentarz i źródła w notatkach",onClick:Se}," PPTX ",8,bn),f("button",{type:"button","aria-keyshortcuts":"H",onClick:ce},[...r[8]||(r[8]=[I(" Ukryj pasek ",-1),f("kbd",null,"H",-1)])])])])),m.value.toolbarHidden?(g(),b("button",{key:1,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:ce},[...r[9]||(r[9]=[I(" Pokaż pasek ",-1),f("kbd",null,"H",-1)])])):y("",!0)],64)):y("",!0),f("div",vn,[e.mode==="speaker"&&e.phase==="ready"?Re(n.$slots,"reading-close",{},void 0,void 0,0):y("",!0),e.phase==="loading"?(g(),b("section",xn,[...r[10]||(r[10]=[f("div",null,[f("p",{class:"k"},"Wczytywanie prezentacji…")],-1)])])):e.phase==="notfound"?(g(),b("section",yn,[...r[11]||(r[11]=[f("div",null,[f("p",{class:"k"},"404"),f("h2",null,"Nie ma takiej prezentacji"),f("p",null,"Link jest nieaktualny albo prezentacja nie jest już udostępniona.")],-1)])])):e.phase==="error"?(g(),b("section",wn,[f("div",null,[r[12]||(r[12]=f("p",{class:"k"},"Błąd",-1)),r[13]||(r[13]=f("h2",null,"Nie udało się wczytać prezentacji",-1)),f("p",null,C(e.error),1),f("button",{type:"button",class:"status-retry",onClick:r[2]||(r[2]=s=>a("retry"))},"Spróbuj ponownie")])])):e.phase==="empty"?(g(),b("section",zn,[f("div",null,[f("h2",null,C(e.deck?.title),1),r[14]||(r[14]=f("p",null,"Ta prezentacja nie ma jeszcze slajdów.",-1))])])):e.phase==="ready"?(g(!0),b(ke,{key:5},Tt(U.value,s=>(g(),b("section",{id:s.id,key:s.id,class:Me(Lt(Dt)(s.slide.css_class,{special:s.special,on:s.on})),innerHTML:ot(s.slide,s.special)},null,10,Sn))),128)):y("",!0)]),e.phase==="ready"&&m.value?(g(),b("div",En,[f("i",{style:He({width:m.value.progress+"%"})},null,4)])):y("",!0),e.phase==="ready"&&m.value?(g(),b("div",{key:3,id:"meta",innerHTML:m.value.metaHTML},null,8,_n)):y("",!0),e.phase==="ready"&&m.value?(g(),b("div",Cn,C(rt.value),1)):y("",!0),e.phase==="ready"?(g(),b("div",Tn,[f("button",{type:"button","aria-label":"Poprzedni slajd",onClick:gt}),r[15]||(r[15]=f("div",{class:"mid"},null,-1)),f("button",{type:"button","aria-label":"Następny slajd",onClick:bt})])):y("",!0),h.value||O.value?(g(),b("div",Ln,[h.value?(g(),b("p",Pn,"Eksportuję do PPTX… slajd "+C(h.value.done)+" z "+C(h.value.total),1)):(g(),b(ke,{key:1},[r[16]||(r[16]=f("p",null,"Nie udało się utworzyć pliku PPTX.",-1)),f("p",null,C(O.value),1),f("button",{type:"button",class:"status-retry",onClick:r[3]||(r[3]=s=>O.value="")},"Zamknij")],64))])):y("",!0),e.phase==="ready"&&e.mode!=="speaker"&&H.value?(g(),b("a",{key:7,class:"print-link",href:H.value}," Kliknij, aby zobaczyć wersję z notatkami i dodatkowymi slajdami ",8,jn)):y("",!0),e.phase==="ready"&&e.mode!=="speaker"&&H.value&&ye.value>1?(g(),b("a",{key:8,class:"print-link",href:H.value,style:He({top:`${(ye.value-1)*720+24}px`})}," Pełna wersja prezentacji z notatkami i dodatkowymi slajdami jest dostępna pod tym linkiem ",12,An)):y("",!0),e.phase==="ready"?(g(),b("div",$n,C(_.value),1)):y("",!0)],8,["to"])):y("",!0)],8,dn))}});export{Rn as _,nn as r}; +`)}function B(e,t){return!e.trim()||t==="auto"?e.trim():ge(e,t).trim()}const be=["paper","paper-2","ink","ink-2","rule","empire","khaki"],Q={paper:"#141a18","paper-2":"#1c2421",ink:"#e4e4da","ink-2":"#a7ada4",rule:"#3a443f",empire:"#e0675f",khaki:"#c2ad72"},Ze={paper:"#e9ebe3","paper-2":"#dfe2d8",ink:"#16201f","ink-2":"#4b5551",rule:"#b9beb3",empire:"#b5302c",khaki:"#7f7047"};function Ge(e){return e==="light"?Ze:Q}function Qe(e,t=Ge(e)){const o=t;return[":host {",`--paper: ${o.paper}; --paper-2: ${o["paper-2"]}; --ink: ${o.ink}; --ink-2: ${o["ink-2"]};`,`--rule: ${o.rule}; --empire: ${o.empire}; --khaki: ${o.khaki};`,`--deck-paper: ${o.paper}; --deck-paper-2: ${o["paper-2"]}; --deck-ink: ${o.ink}; --deck-ink-2: ${o["ink-2"]};`,`--deck-rule: ${o.rule}; --deck-empire: ${o.empire}; --deck-khaki: ${o.khaki};`,`color-scheme: ${e};`,"}",".deck { background: var(--paper); color: var(--ink); }","#nav button:focus, #nav button:focus-visible { outline: none; }","#nav button:focus-visible { box-shadow: inset 4px 0 0 var(--empire, var(--deck-empire)); }","#nav button:last-of-type:focus-visible { box-shadow: inset -4px 0 0 var(--empire, var(--deck-empire)); }"].join(" ")}function Ye(e=Q){return Qe("dark",e)}Ye();function Ut(e=Q){const t={};for(const o of be)t[`--${o}`]=e[o];for(const o of be)t[`--deck-${o}`]=e[o];return t}const Wt=/^[#a-z0-9(),.%\s/-]+$/i;function Xt(e){return be.includes(e)}function Je(e,t){const o={...Ge(t)};for(const i of G(B(e,t)))if(!(!i.braced||he(i.prelude).trim()!==":host"))for(const a of Fe(i.block)){const l=he(a),c=l.indexOf(":");if(c<0)continue;const x=l.slice(0,c).trim(),T=l.slice(c+1).trim();if(!x.startsWith("--deck-"))continue;const _=x.slice(7);Xt(_)&&Wt.test(T)&&(o[_]=T)}return o}function Zt(e){return Je(e,"dark")}const Gt=/@media\s*\(\s*max-width\s*:\s*900px\s*\)\s*and\s*\(\s*orientation\s*:\s*portrait\s*\)/gi;function Qt(e){if(!e.trim())return"";const t=Ue(e).trim();return t?Xe(t).trim().replace(Gt,"@media screen and (max-width: 900px) and (orientation: portrait)"):""}const Yt=':host{--deck-paper: #e5eef0;--deck-paper-2: #d0e1e3;--deck-ink: #12303a;--deck-ink-2: #48646c;--deck-rule: #a8c1c5;--deck-empire: #b84e12;--deck-khaki: #17705f;--deck-contour: rgba(18, 48, 58, .13);--deck-display: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #0d2b2a;--deck-paper-2: #092120;--deck-ink: #e2eeec;--deck-ink-2: #9bb8b4;--deck-rule: #2a4d4a;--deck-empire: #f09a5a;--deck-khaki: #7fd1bd;--deck-contour: rgba(226, 238, 236, .1)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:500;letter-spacing:-.012em}.slide.title>div>.sub{font-style:italic}.slide.sec>div>.k{color:var(--deck-khaki)}.slide .tl{column-gap:0;row-gap:0}.slide .tl .y{position:relative;padding:8px 30px 8px 0;text-align:right;color:var(--deck-ink);border-right:2px solid var(--deck-empire)}.slide .tl .y:after{content:"";position:absolute;right:-8px;top:50%;width:10px;height:10px;margin-top:-7px;border-radius:50%;background:var(--deck-paper);border:2px solid var(--deck-empire)}.slide .tl>span:not(.y){padding:8px 0 8px 28px}.slide .sum{border-top:0;background:var(--deck-paper-2);padding:16px 22px}.slide .quote{font-style:italic}@media not screen and (max-width:900px)and (orientation:portrait){.slide:before{content:"";position:absolute;z-index:-1;right:-200px;top:-200px;width:560px;height:560px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 22px,var(--deck-contour) 22px 23.5px)}.slide:is(.sec,.title):before{right:-160px;top:auto;bottom:-320px;width:960px;height:960px}.slide>header h2{font-size:52px}.slide.sec{align-items:center}.slide.title>div>h1{margin-top:22px}.slide .sum{font-size:28px}.slide .quote{font-size:38px}}@media print{.slide:before{content:none}.slide .sum{background:none}.slide .tl .y{border-right-color:#000}.slide .tl .y:after{background:#fff;border-color:#000}}',Jt=':host{--deck-paper: #f8f8f5;--deck-paper-2: #efeee8;--deck-ink: #1b1d22;--deck-ink-2: #5b5f69;--deck-rule: #d3d2ca;--deck-empire: #7a1f2b;--deck-khaki: #5b5f69;--deck-display: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #17181d;--deck-paper-2: #1e2027;--deck-ink: #ebe9e1;--deck-ink-2: #a4a7af;--deck-rule: #363944;--deck-empire: #e39aa3;--deck-khaki: #a4a7af}}.slide h1,.slide h2{font-weight:600;letter-spacing:-.015em}.slide .k{font-family:var(--deck-body);font-weight:500;letter-spacing:.16em}.slide>header{padding-bottom:22px;border-bottom:1px solid var(--deck-rule)}.slide.title>div>.sub{font-style:italic}.slide.sec>div>h2{font-style:italic;font-weight:400}.slide.sec>div>p:not(.k){font-family:var(--deck-display)}.slide li::marker{content:"– "}.slide :is(.notes,.srcs,.speak) li::marker{content:normal}.slide .tl .y{font-family:var(--deck-display);font-style:italic}.slide .sum{font-style:italic;border-top:0;border-left:2px solid var(--deck-empire);padding:2px 0 2px 22px}.slide .quote{font-style:italic}@media not screen and (max-width:900px)and (orientation:portrait){.slide{padding:72px 120px 80px}.slide .k{font-size:.64em}.slide .bib .k{font-size:13px}.slide>header{gap:12px}.slide>header h2{font-size:48px}.slide.title,.slide.sec{text-align:center;justify-items:center}.slide.sec{align-items:center}.slide :is(.notes,.srcs,.speak){text-align:left}.slide.title>div{align-self:center}.slide.title>div>h1{max-width:16ch;font-size:84px;margin-top:22px;margin-inline:auto}.slide.title>footer{width:100%;justify-content:center;gap:48px}.slide.sec>div>h2{font-size:88px;max-width:none;margin-top:0}.slide.sec>div>.k:after{content:"";display:block;width:64px;height:2px;background:var(--deck-empire);margin:20px auto 26px}.slide.sec>div>p:not(.k){margin-inline:auto}.slide .tl .y{font-size:1.06em}.slide .quote{font-size:40px}}',en=':host{--deck-paper: #f6f7fa;--deck-paper-2: #eceff4;--deck-ink: #1d2940;--deck-ink-2: #4c586d;--deck-rule: #c9d0dc;--deck-empire: #9a6200;--deck-khaki: #7c5100;--deck-card: #ffffff;--deck-line: rgba(29, 41, 64, .12);--deck-pill: rgba(154, 98, 0, .08);--deck-pill-line: rgba(154, 98, 0, .35);--deck-ray: rgba(29, 41, 64, .05);--deck-glow: rgba(245, 197, 90, .4);--deck-shadow: 0 24px 60px -30px rgba(29, 41, 64, .35);--deck-display: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-body: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--deck-mono: "Roboto Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #233148;--deck-paper-2: #1d2940;--deck-ink: #e9edf3;--deck-ink-2: #b3bccb;--deck-rule: #3e4a5f;--deck-empire: #f5c55a;--deck-khaki: #fbd77e;--deck-card: #29344a;--deck-line: rgba(255, 255, 255, .1);--deck-pill: rgba(245, 197, 90, .08);--deck-pill-line: rgba(245, 197, 90, .35);--deck-ray: rgba(255, 255, 255, .035);--deck-glow: rgba(245, 197, 90, .16);--deck-shadow: 0 40px 100px -40px rgba(0, 0, 0, .6)}}.slide{isolation:isolate}.slide h1,.slide h2{font-weight:700;letter-spacing:-.02em}.slide h3,.slide strong,.slide b{font-weight:600}.slide .k{font-weight:500;letter-spacing:.06em}.slide>header>.k,.slide:is(.sec,.title)>div:not(.notes,.srcs,.speak)>.k{font-family:var(--deck-body);letter-spacing:.16em;color:var(--deck-empire)}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body);font-weight:300}.slide.title>footer .k{color:var(--deck-khaki)}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-weight:300}.slide .tl .y{justify-self:stretch;align-self:baseline;text-align:center;white-space:nowrap;line-height:1.3;font-family:var(--deck-body);font-variant-numeric:tabular-nums;font-weight:500;color:var(--deck-empire);background:var(--deck-pill);border:1px solid var(--deck-pill-line);border-radius:999px;padding:0 .6em}.slide .tl>span:not(.y){align-self:baseline}.slide .sum{font-family:var(--deck-body);font-weight:500;border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:14px 24px}.slide .p{border-top:0;background:var(--deck-card);border:1px solid var(--deck-line);border-radius:16px;padding:18px 24px}.slide .p b{font-family:var(--deck-display);font-weight:700;letter-spacing:-.01em;line-height:1.15}.slide .note{border-left-color:var(--deck-empire)}.slide .theses>div:before{font-weight:700;color:var(--deck-empire)}.slide th{font-weight:500}.slide figure img{border-radius:12px;box-shadow:var(--deck-shadow)}.slide figcaption{margin-top:8px}.slide .quote{font-weight:300}@media not screen and (max-width:900px)and (orientation:portrait){.slide:is(.sec,.title):before{content:"";position:absolute;z-index:-1;inset:-40% -20%;background:radial-gradient(circle at 80% 50%,var(--deck-glow),transparent 30%),repeating-conic-gradient(from 0deg at 80% 50%,var(--deck-ray) 0deg 7deg,transparent 7deg 15deg);-webkit-mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%);mask-image:radial-gradient(circle at 80% 50%,#000 12%,transparent 58%)}.slide.title:after{content:"";position:absolute;z-index:-1;left:80%;top:44%;width:168px;height:168px;margin:-84px 0 0 -84px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fde9b4,#f5c55a 62%,#e9a93a);box-shadow:0 0 0 18px #f5c55a1a,0 0 120px 20px #f5c55a4d}.slide>header{gap:12px}.slide>header .k{font-size:17px}.slide>header h2{font-size:50px;line-height:1.1}.slide.sec>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:76px;max-width:15ch;margin-top:16px;line-height:1.04}.slide.sec>div:not(.notes,.srcs,.speak)>p:not(.k){font-size:28px;max-width:34ch}.slide.title>div:not(.notes,.srcs,.speak){align-self:center}.slide.title>div:not(.notes,.srcs,.speak)>.k{font-size:17px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;line-height:1;margin-top:18px;letter-spacing:-.03em}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:32px;max-width:32ch;line-height:1.3;margin-top:24px}.slide.title>footer{font-size:20px}.slide .tl{column-gap:22px}.slide .tl .y{font-size:.8em}.slide .sum{font-size:27px;line-height:1.3}.slide .quote{font-size:38px}}@media print{.slide:before,.slide:after{content:none}.slide .sum,.slide .p,.slide .tl .y{background:none;border-color:#000}.slide figure img{box-shadow:none}}',tn=':host{--deck-paper: #eef1f2;--deck-paper-2: #dde4e7;--deck-ink: #131c2b;--deck-ink-2: #4a586b;--deck-rule: #b4c0c9;--deck-empire: #a85f00;--deck-khaki: #1d6a78;--deck-grid: rgba(19, 28, 43, .06);--deck-display: "Archivo Narrow", "Arial Narrow", Arial, sans-serif;--deck-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:host{--deck-paper: #131c2b;--deck-paper-2: #0d1420;--deck-ink: #e7ecf0;--deck-ink-2: #94a3b5;--deck-rule: #2b3a50;--deck-empire: #f2b23e;--deck-khaki: #72c6cf;--deck-grid: rgba(231, 236, 240, .05)}}.slide{background-image:linear-gradient(var(--deck-grid) 1px,transparent 1px),linear-gradient(90deg,var(--deck-grid) 1px,transparent 1px);background-size:40px 40px}.slide h1,.slide h2{font-weight:700;line-height:1;letter-spacing:-.005em}.slide>header{border-left:6px solid var(--deck-empire);padding-left:20px}.slide.title>div:not(.notes,.srcs,.speak)>h1,.slide.sec>div:not(.notes,.srcs,.speak)>h2{text-transform:uppercase}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-family:var(--deck-body)}.slide.sec>div:not(.notes,.srcs,.speak)>.k{color:var(--deck-empire)}.slide ul{list-style:square}.slide .tl{column-gap:0;row-gap:0}.slide .tl>span{padding:9px 0;border-bottom:1px solid var(--deck-rule)}.slide .tl .y{padding-right:26px;font-weight:500}.slide .sum{font-family:var(--deck-body);font-weight:500;border:1px solid var(--deck-empire);padding:14px 18px;background:var(--deck-paper-2)}.slide .sum:before{content:"Wniosek";display:block;font:500 14px var(--deck-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--deck-empire);margin-bottom:6px}.slide .quote{font-family:var(--deck-body);font-weight:500}@media not screen and (max-width:900px)and (orientation:portrait){.slide>header h2{font-size:58px}.slide.title>div:not(.notes,.srcs,.speak)>h1{font-size:104px;max-width:15ch}.slide.sec>div:not(.notes,.srcs,.speak)>h2{font-size:112px;max-width:14ch}.slide.title>div:not(.notes,.srcs,.speak)>.sub{font-size:28px}.slide .sum{font-size:25px}.slide .quote{font-size:33px}}@media print{.slide{background-image:none}.slide .sum{background:none;border-color:#000}.slide .sum:before{color:#000}}',et="screen and (max-width: 900px) and (orientation: portrait)";function nn(e){return e(et).matches}function qe(e,t,o){if(e==="reading")return t;for(const i of o)if(i.bottom>0)return i.id;return t}function on(e){return e.complete?Promise.resolve():new Promise(t=>{const o=()=>t();e.addEventListener("load",o,{once:!0}),e.addEventListener("error",o,{once:!0})})}async function Ke(e,t){t.scrollTo(e),await Promise.all(t.imagesBefore(e).map(on)),t.scrollTo(e)}function X(e,t,o){return{key:e,sheet:B(t,"dark"),dark:Zt(t),lightSheet:B(t,"light"),light:Je(t,"light"),loadFonts:o}}const rn=new Map([["atlas",X("atlas",Yt,()=>Promise.all([w(()=>Promise.resolve({}),__vite__mapDeps([0])),w(()=>Promise.resolve({}),__vite__mapDeps([1])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))],["monografia",X("monografia",Jt,()=>Promise.all([w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bk),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bl),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))],["summer",X("summer",en,()=>w(()=>Promise.resolve({}),__vite__mapDeps([4])))],["sztab",X("sztab",tn,()=>Promise.all([w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bi),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bj),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bm),__vite__mapDeps([2,3])),w(()=>import("./index-DyD9x5ZD.js").then(e=>e.bn),__vite__mapDeps([2,3]))]))]]);function sn(e){return typeof e!="string"||e===""?null:rn.get(e)??null}function an(e,t,o,i="dark"){const a=i==="light";return[B(e,i),t?a?t.lightSheet:t.sheet:"",...o,a?Qe("light",t?t.light:void 0):Ye(t?t.dark:void 0)].filter(l=>!!l)}function ln(e,t){return t==="light"?e?e.light:Ze:e?e.dark:Q}const dn=["data-theme","aria-busy"],cn={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},pn={class:"tools-group"},un={class:"tools-pos","aria-hidden":"true"},fn=["aria-pressed"],kn=["aria-pressed"],mn=["aria-pressed"],hn={class:"tools-group tools-end"},gn=["aria-pressed"],bn=["disabled"],vn={id:"stage"},xn={key:1,class:"slide sec on","aria-busy":"true"},yn={key:2,class:"slide sec on"},wn={key:3,class:"slide sec on"},zn={key:4,class:"slide sec on"},Sn=["id","innerHTML"],En={key:2,id:"bar"},_n=["innerHTML"],Cn={key:4,id:"sect"},Tn={key:5,id:"nav"},Ln={key:6,class:"export-overlay",role:"status","aria-live":"polite"},Pn={key:0},jn=["href"],An=["href"],$n={key:9,class:"sr-only","aria-live":"polite"},Rn=yt({__name:"DeckViewer",props:{phase:{},deck:{},error:{},mode:{},compose:{type:Function},labels:{},announce:{type:Function},extraCss:{},theme:{},images:{},noToolbar:{type:Boolean}},emits:["retry","position","navigate","clock","snapshot","scheme"],setup(e,{expose:t,emit:o}){const i=e,a=o,l=z(null),c=z(null),x=z(null),T=z(0),_=z(""),Y=z(!1),H=z(""),ye=A(()=>i.deck?.slides?.length??0),J=z(!1),$=z(!0),h=z(null),O=z("");let u=null,V=null,ee=null,F=null,te=null,N=null,q=[],L="";const ne=A(()=>sn(i.theme)),P=A(()=>$.value?"dark":"light"),tt=new Set(["ArrowUp","ArrowDown","PageUp","PageDown"," ","Home","End"]);function nt(n){return{body_html:n.body_html,sources_html:n.sources_html,comment_html:"comment_html"in n?n.comment_html:"",say_html:"say_html"in n?n.say_html:"",notes_html:"notes_html"in n?n.notes_html:""}}function ot(n,r){const s=nt(n);return i.compose?i.compose(s,r):$t({body_html:s.body_html,comment_html:s.comment_html??"",sources_html:s.sources_html,special:r})}function S(){return nn(n=>window.matchMedia(n))}D(()=>[i.phase,i.deck],()=>{if(L="",q=[],i.phase!=="ready"||!i.deck||i.deck.slides.length===0){u=null,T.value++;return}u=Pt({slides:i.deck.slides.map(n=>({number:n.number,hasSpecial:n.special!=null})),history:window.history,hash:window.location.hash,mode:i.mode==="speaker"?"speaker":"public",onChange:()=>{T.value++},onNavigate:n=>{a("navigate",n)}}),a("position",u.snapshot().index),T.value++},{immediate:!0});const m=A(()=>(T.value,u?.snapshot()??null)),U=A(()=>{const n=i.deck?.slides??[],r=new Set(m.value?.on??[]),s=[];for(const d of n){const p=String(d.number);if(s.push({id:p,slide:d,special:!1,on:r.has(p)}),d.special){const k=`${d.number}s`;s.push({id:k,slide:d.special,special:!0,on:r.has(k)})}}return s}),it=A(()=>{const n=m.value,r=i.deck?.slides.length??0;return!n||!r?"":`${n.index+1} / ${r}`}),rt=A(()=>{const n=m.value,r=i.deck?.slides;if(!n||!r)return"";const s=r[n.index];return s?n.special&&s.special?s.special.section_label:s.section_label:""});function st(){const n=i.extraCss,r=Array.isArray(n)?n:n?[n]:[],s=[];for(const d of r){if(!d)continue;const p=B(Qt(d),P.value);p&&s.push(p)}return s}function oe(n){const r=an(jt,ne.value,st(),P.value);try{n.adoptedStyleSheets=r.map(s=>{const d=new CSSStyleSheet;return d.replaceSync(s),d})}catch{n.querySelectorAll("style[data-deck-style]").forEach(s=>s.remove());for(const s of r){const d=document.createElement("style");d.dataset.deckStyle="1",d.textContent=s,n.appendChild(d)}}}function ie(){const n=l.value;if(n){for(const[r,s]of Object.entries(Ut(ln(ne.value,P.value))))n.style.setProperty(r,s);n.style.colorScheme=P.value,n.dataset.theme=P.value,document.documentElement.dataset.theme=P.value,document.documentElement.style.colorScheme=P.value}}function re(){i.mode==="speaker"&&($.value=!$.value,ie(),c.value&&oe(c.value),a("scheme",!$.value))}function E(){const n=c.value?.getElementById("stage"),r=l.value;if(!n||!r)return;const s=c.value?.getElementById("nav");if(S()){n.style.transform="",s&&(s.style.top="");return}const d=c.value?.querySelector(".tools"),p=d instanceof HTMLElement?d.getBoundingClientRect().height:0,k=Math.max(0,window.innerHeight-p),v=Math.min(window.innerWidth/1280,k/720),pe=p/2;n.style.transform=`translate(${-640*v}px, ${-360*v+pe}px) scale(${v})`,s&&(s.style.top=`${p}px`)}function se(){F?.disconnect();const n=c.value?.querySelector(".tools");n&&F?.observe(n)}function at(){const n=c.value;if(!n)return;const r=i.images;n.querySelectorAll("img[data-deck-image]").forEach(s=>{if(!(s instanceof HTMLImageElement))return;const d=s.getAttribute("data-deck-image")??"",p=d&&r?r[d]:void 0;if(!p){s.removeAttribute("src");return}s.getAttribute("src")!==p&&s.setAttribute("src",p)})}function we(){const n=c.value,r=x.value;if(!n||!r)return;const s=u?.snapshot().panel??null;if(r.classList.toggle("speaker",i.mode==="speaker"),r.classList.toggle("notes-on",s==="notes"),r.classList.toggle("srcs-on",s==="srcs"),r.classList.toggle("speak-on",s==="say"),n.querySelectorAll("aside.notes, aside.srcs, aside.speak").forEach(p=>{const k=(p.textContent??"").replace(/\u00a0/g," ").trim()==="";p.classList.toggle("is-empty",k),p.removeAttribute("tabindex"),p.removeAttribute("role"),p.removeAttribute("aria-label")}),s){const p=s==="notes"?"notes":s==="srcs"?"srcs":"speak",k=s==="notes"?i.labels?.notes??"Komentarz":s==="srcs"?i.labels?.sources??"Źródła":i.labels?.say??"",v=n.querySelector(`.slide.on aside.${p}`);v&&(v.setAttribute("tabindex","0"),v.setAttribute("role","region"),v.setAttribute("aria-label",k))}const d=i.labels?.specialLink??"Slajd dodatkowy (S)";n.querySelectorAll(".sp-link").forEach(p=>{p.setAttribute("title",d)})}function ze(){return c.value?.activeElement??document.activeElement}function lt(){const r=ze()?.closest?.(".notes, .srcs, .speak");return r instanceof HTMLElement?r:null}function dt(n,r){const d=n.clientHeight;r==="ArrowDown"?n.scrollTop+=40:r==="ArrowUp"?n.scrollTop-=40:r==="PageDown"||r===" "?n.scrollTop+=d:r==="PageUp"?n.scrollTop-=d:r==="Home"?n.scrollTop=0:r==="End"&&(n.scrollTop=n.scrollHeight)}function ct(){window.print()}async function Se(){if(h.value||!u||i.phase!=="ready"||!i.deck||!c.value||S())return;const n=i.deck,r=new Map(U.value.map(k=>[k.id,k])),s=[];for(const k of c.value.querySelectorAll("#stage > section.slide")){const v=r.get(k.id);v&&s.push({el:k,slide:v.slide,special:v.special})}if(!s.length)return;const d=u,p=d.snapshot().panel;p&&d.togglePanel(p),O.value="",h.value={done:0,total:s.length},await W();try{const{exportDeck:k,downloadPptx:v,pptxFileName:pe}=await w(async()=>{const{exportDeck:ue,downloadPptx:fe,pptxFileName:xt}=await import("./pptx-DVS-5qtM.js");return{exportDeck:ue,downloadPptx:fe,pptxFileName:xt}},__vite__mapDeps([5,2,3])),Ie=i.mode==="speaker"?"speaker":"public",vt=await k({title:n.title,mode:Ie,sections:s,onProgress:(ue,fe)=>{h.value={done:ue,total:fe}}});v(vt,pe(n.title,Ie))}catch(k){O.value=k instanceof Error&&k.message?k.message:"Nieznany błąd"}finally{const k=new Map(U.value.map(v=>[v.id,v.on]));for(const{el:v}of s)v.classList.toggle("on",k.get(v.id)??!1);u===d&&p&&d.snapshot().panel!==p&&d.togglePanel(p),h.value=null,le()}}function ae(){document.fullscreenEnabled&&(document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen()?.catch(()=>{}))}function Ee(n){return n!=="pause"&&n!=="clock"&&n!=="reset"?!1:(a("clock",n),!0)}function _e(n){if(h.value||!u||i.phase!=="ready")return;const s=!!ze()?.closest("button"),d=lt(),p=Oe(u,{key:n.key,ctrlKey:n.ctrlKey,metaKey:n.metaKey,altKey:n.altKey,targetIsButton:s,targetIsPanel:!!d,reading:S()});if(p==="fullscreen"){n.preventDefault(),ae();return}if(p==="scheme"){n.preventDefault(),re();return}if(Ee(p)){n.preventDefault();return}if(p==="ignored"){if(s&&(n.key===" "||n.key==="Enter"))return;d&&tt.has(n.key)&&!n.ctrlKey&&!n.metaKey&&!n.altKey&&!S()&&(n.preventDefault(),dt(d,n.key));return}n.preventDefault()}function pt(n){if(h.value||!u||i.phase!=="ready"||i.mode!=="speaker"||n.toLowerCase()==="f")return"ignored";const r=Oe(u,{key:n,reading:S()});return r==="fullscreen"?"ignored":(Ee(r),r==="scheme"&&re(),r)}function ut(n){if(h.value||!u||i.phase!=="ready"||i.mode!=="speaker"||!i.deck||S())return!1;const r=i.deck.slides.findIndex(s=>s.number===n);return r<0?!1:(u.go(r),!0)}function ft(n,r,s=null){if(h.value||!u||i.phase!=="ready"||!i.deck)return!1;const d=i.deck.slides.find(k=>k.number===n);if(!d)return!1;u.showId(r&&d.special?`${n}s`:String(n));const p=u.snapshot().panel;return s!==p&&u.togglePanel(s??p),!0}function kt(){if(!u||i.phase!=="ready")return null;const n=u.snapshot();return{number:n.number,special:n.special,panel:n.panel}}function mt(){return[...c.value?.querySelectorAll("#stage > section.slide")??[]]}t({runKey:pt,goToNumber:ut,showSlide:ft,current:kt,sections:mt});function le(){h.value||!u||window.location.hash!==u.snapshot().hash&&u.followHash(window.location.hash)}function Ce(){J.value=document.fullscreenElement!=null,E()}function ht(n){if(h.value||!(n instanceof MouseEvent)||!u||S())return;const r=n.target instanceof Element?n.target:null;if(n.detail>0){const d=r?.closest("#nav button");d instanceof HTMLElement&&d.blur()}if(r?.closest(".tools, .tools-show, #speaker-clock, .export-overlay"))return;const s=c.value;if(s){for(const d of s.elementsFromPoint(n.clientX,n.clientY))if(d instanceof Element){if(d.classList.contains("sp-link")){n.preventDefault(),n.stopPropagation(),u.openSpecial();return}if(d.classList.contains("sp-close")){n.preventDefault(),n.stopPropagation(),u.closeSpecial();return}}}}function Te(n){V=n.touches[0]?.clientX??null}function Le(n){if(h.value||V==null||!u)return;const r=V;V=null;const s=n.changedTouches[0]?.clientX;s!=null&&u.swipe(s-r,S())}function de(n){h.value||u?.togglePanel(n)}function Pe(){h.value||u?.toggleSpecial()}function ce(){h.value||u?.toggleToolbar()}function gt(){h.value||u?.previous()}function bt(){h.value||u?.next()}function je(){const n=c.value;return n?[...n.querySelectorAll("section.slide")].flatMap(r=>!(r instanceof HTMLElement)||!r.id?[]:[{id:r.id,bottom:r.getBoundingClientRect().bottom}]):[]}function j(){if(!S())return;const n=je();n.length&&(q=n)}const Ae={scrollTo(n){c.value?.getElementById(n)?.scrollIntoView({block:"start"})},imagesBefore(n){const r=c.value;if(!r)return[];const s=[...r.querySelectorAll("section.slide")],d=s.findIndex(k=>k.id===n);if(d<=0)return[];const p=[];for(let k=0;kj()))}function De(){if(!u||i.phase!=="ready"||!N)return;const n=u.snapshot().on[0]??"";if(!n)return;if(N.matches){const s=qe("reading",n,q);L="",W(()=>{j(),L=s,Ke(s,Ae).then(()=>j())});return}const r=qe("slide",n,q.length?q:je());L="",u.showId(r),E()}return wt(()=>{const n=l.value;if(!n)return;Y.value=document.fullscreenEnabled,H.value=window.location.origin+window.location.pathname;const r=n.attachShadow({mode:"open"});c.value=r,ie(),oe(r);const s=document.createElement("div");s.className="deck",r.appendChild(s),x.value=s,r.addEventListener("click",ht,!0),window.addEventListener("hashchange",le),window.addEventListener("keydown",_e),window.addEventListener("resize",E),window.addEventListener("scroll",j,!0),window.addEventListener("touchstart",Te,{passive:!0}),window.addEventListener("touchend",Le,{passive:!0}),document.addEventListener("fullscreenchange",Ce),N=window.matchMedia(et),N.addEventListener("change",De),ee=new ResizeObserver(()=>E()),ee.observe(n),F=new ResizeObserver(()=>E()),te=new MutationObserver(()=>{se(),E()}),te.observe(s,{childList:!0,subtree:!0}),W(()=>{we(),se(),E(),j(),$e()})}),zt(()=>{window.removeEventListener("hashchange",le),window.removeEventListener("keydown",_e),window.removeEventListener("resize",E),window.removeEventListener("scroll",j,!0),window.removeEventListener("touchstart",Te),window.removeEventListener("touchend",Le),document.removeEventListener("fullscreenchange",Ce),N?.removeEventListener("change",De),ee?.disconnect(),F?.disconnect(),te?.disconnect(),St(Et()),document.documentElement.style.removeProperty("color-scheme")}),D([()=>i.extraCss,()=>i.theme],()=>{ie(),c.value&&oe(c.value)}),D(ne,n=>{n?.loadFonts().catch(()=>{})},{immediate:!0}),D(m,n=>{n&&a("snapshot",n)}),D(m,(n,r)=>{if(!n){_.value="";return}if(!r||n.number!==r.number||n.special!==r.special){if(i.announce){_.value=i.announce({number:n.number,total:n.total,special:n.special});return}n.special&&!r?.special?_.value=`Slajd dodatkowy do slajdu ${n.number}`:_.value=`Slajd ${n.number} z ${n.total}`}},{immediate:!0}),D([()=>i.phase,U,m,()=>i.images],()=>{W(()=>{we(),at(),se(),E();const n=u?.snapshot().on[0]??"";n&&n!==L?$e():j()})}),(n,r)=>(g(),b("div",{ref_key:"host",ref:l,class:"deck-host","data-theme":$.value?"dark":"light","aria-busy":e.phase==="loading"?"true":void 0},[x.value?(g(),_t(Ct,{key:0,to:x.value},[e.phase==="ready"&&m.value&&e.mode==="speaker"?Re(n.$slots,"tools",{panel:m.value.panel,special:m.value.special,hasSpecial:m.value.hasSpecial,fullscreenEnabled:Y.value,fullscreenOn:J.value,toolbarHidden:m.value.toolbarHidden,togglePanel:de,toggleSpecial:Pe,toggleToolbar:ce,toggleFullscreen:ae,light:!$.value,toggleScheme:re,exportPptx:Se,exporting:h.value!=null},void 0,void 0,0):y("",!0),e.phase==="ready"&&m.value&&e.mode!=="speaker"&&!e.noToolbar?(g(),b(ke,{key:1},[m.value.toolbarHidden?y("",!0):(g(),b("div",cn,[f("div",pn,[f("span",un,C(it.value),1),f("button",{type:"button","aria-pressed":m.value.panel==="notes","aria-keyshortcuts":"N",onClick:r[0]||(r[0]=s=>de("notes"))},[...r[4]||(r[4]=[I(" Komentarz ",-1),f("kbd",null,"N",-1)])],8,fn),f("button",{type:"button","aria-pressed":m.value.panel==="srcs","aria-keyshortcuts":"Z",onClick:r[1]||(r[1]=s=>de("srcs"))},[...r[5]||(r[5]=[I(" Źródła ",-1),f("kbd",null,"Z",-1)])],8,kn),f("button",{type:"button",class:Me(["tool-s",{unavailable:!m.value.hasSpecial}]),"aria-pressed":m.value.special,"aria-keyshortcuts":"S",onClick:Pe},[...r[6]||(r[6]=[I(" Slajd dodatkowy ",-1),f("kbd",null,"S",-1)])],10,mn)]),f("div",hn,[Y.value?(g(),b("button",{key:0,type:"button","aria-pressed":J.value,"aria-keyshortcuts":"F",onClick:ae},[...r[7]||(r[7]=[I(" Pełny ekran ",-1),f("kbd",null,"F",-1)])],8,gn)):y("",!0),f("button",{type:"button",title:"Drukuj albo zapisz jako PDF, slajd na stronę",onClick:ct}," PDF "),f("button",{type:"button",disabled:h.value!=null,title:"Pobierz jako PowerPoint: slajd jako obraz, komentarz i źródła w notatkach",onClick:Se}," PPTX ",8,bn),f("button",{type:"button","aria-keyshortcuts":"H",onClick:ce},[...r[8]||(r[8]=[I(" Ukryj pasek ",-1),f("kbd",null,"H",-1)])])])])),m.value.toolbarHidden?(g(),b("button",{key:1,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:ce},[...r[9]||(r[9]=[I(" Pokaż pasek ",-1),f("kbd",null,"H",-1)])])):y("",!0)],64)):y("",!0),f("div",vn,[e.mode==="speaker"&&e.phase==="ready"?Re(n.$slots,"reading-close",{},void 0,void 0,0):y("",!0),e.phase==="loading"?(g(),b("section",xn,[...r[10]||(r[10]=[f("div",null,[f("p",{class:"k"},"Wczytywanie prezentacji…")],-1)])])):e.phase==="notfound"?(g(),b("section",yn,[...r[11]||(r[11]=[f("div",null,[f("p",{class:"k"},"404"),f("h2",null,"Nie ma takiej prezentacji"),f("p",null,"Link jest nieaktualny albo prezentacja nie jest już udostępniona.")],-1)])])):e.phase==="error"?(g(),b("section",wn,[f("div",null,[r[12]||(r[12]=f("p",{class:"k"},"Błąd",-1)),r[13]||(r[13]=f("h2",null,"Nie udało się wczytać prezentacji",-1)),f("p",null,C(e.error),1),f("button",{type:"button",class:"status-retry",onClick:r[2]||(r[2]=s=>a("retry"))},"Spróbuj ponownie")])])):e.phase==="empty"?(g(),b("section",zn,[f("div",null,[f("h2",null,C(e.deck?.title),1),r[14]||(r[14]=f("p",null,"Ta prezentacja nie ma jeszcze slajdów.",-1))])])):e.phase==="ready"?(g(!0),b(ke,{key:5},Tt(U.value,s=>(g(),b("section",{id:s.id,key:s.id,class:Me(Lt(Dt)(s.slide.css_class,{special:s.special,on:s.on})),innerHTML:ot(s.slide,s.special)},null,10,Sn))),128)):y("",!0)]),e.phase==="ready"&&m.value?(g(),b("div",En,[f("i",{style:He({width:m.value.progress+"%"})},null,4)])):y("",!0),e.phase==="ready"&&m.value?(g(),b("div",{key:3,id:"meta",innerHTML:m.value.metaHTML},null,8,_n)):y("",!0),e.phase==="ready"&&m.value?(g(),b("div",Cn,C(rt.value),1)):y("",!0),e.phase==="ready"?(g(),b("div",Tn,[f("button",{type:"button","aria-label":"Poprzedni slajd",onClick:gt}),r[15]||(r[15]=f("div",{class:"mid"},null,-1)),f("button",{type:"button","aria-label":"Następny slajd",onClick:bt})])):y("",!0),h.value||O.value?(g(),b("div",Ln,[h.value?(g(),b("p",Pn,"Eksportuję do PPTX… slajd "+C(h.value.done)+" z "+C(h.value.total),1)):(g(),b(ke,{key:1},[r[16]||(r[16]=f("p",null,"Nie udało się utworzyć pliku PPTX.",-1)),f("p",null,C(O.value),1),f("button",{type:"button",class:"status-retry",onClick:r[3]||(r[3]=s=>O.value="")},"Zamknij")],64))])):y("",!0),e.phase==="ready"&&e.mode!=="speaker"&&H.value?(g(),b("a",{key:7,class:"print-link",href:H.value}," Kliknij, aby zobaczyć wersję z notatkami i dodatkowymi slajdami ",8,jn)):y("",!0),e.phase==="ready"&&e.mode!=="speaker"&&H.value&&ye.value>1?(g(),b("a",{key:8,class:"print-link",href:H.value,style:He({top:`${(ye.value-1)*720+24}px`})}," Pełna wersja prezentacji z notatkami i dodatkowymi slajdami jest dostępna pod tym linkiem ",12,An)):y("",!0),e.phase==="ready"?(g(),b("div",$n,C(_.value),1)):y("",!0)],8,["to"])):y("",!0)],8,dn))}});export{Rn as _,nn as r}; diff --git a/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js b/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js similarity index 95% rename from public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js rename to public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js index 27de97c..188a81b 100644 --- a/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js +++ b/public/assets/ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js @@ -1 +1 @@ -import{d as v,an as z,ae as g,n as s,c as a,e as o,p as n,t as h,i as m,j as b,f as p,b as f,x as u,l as _,ag as C}from"./index-CZVUqkdk.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-DyD9x5ZD.js";const x=["aria-pressed"],A={key:1,class:"notice"},B={key:2,class:"stack",style:{"margin-bottom":"16px"}},E={key:0,class:"notice"},N={key:1,class:"chips wrap"},V=["aria-pressed"],M=v({__name:"ElectiveBar",props:{part:{default:"both"}},setup(r){const c=r,t=z(),d=g(),y=u(()=>C(d.pendingElectives.length,"grupa przedmiotów do wyboru","grupy przedmiotów do wyboru","grup przedmiotów do wyboru")),i=u(()=>c.part!=="chip"&&d.pendingElectives.length>0),l=u(()=>c.part!=="notice"&&t.hasChoices);return(D,e)=>{const w=_("router-link");return r.part==="chip"&&l.value?(s(),a("button",{key:0,class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[0]||(e[0]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,x)):r.part==="notice"&&i.value?(s(),a("p",A,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[2]||(e[2]=[n("Wybierz",-1)])]),_:1})])):r.part==="both"&&(i.value||l.value)?(s(),a("div",B,[i.value?(s(),a("p",E,[n(" Masz "+h(y.value)+". Do czasu wyboru widać wszystkie alternatywy. ",1),m(w,{to:{name:"profile",hash:"#wybor"}},{default:b(()=>[...e[3]||(e[3]=[n("Wybierz",-1)])]),_:1})])):p("",!0),l.value?(s(),a("div",N,[f("button",{class:"chip",type:"button","aria-pressed":o(t).showAll,onClick:e[1]||(e[1]=k=>o(t).setShowAll(!o(t).showAll))},"Pokaż wszystkie przedmioty do wyboru",8,V)])):p("",!0)])):p("",!0)}}});export{M as _}; diff --git a/public/assets/ForgotView-BBRR0ZKl.js b/public/assets/ForgotView-DCuuDBAB.js similarity index 92% rename from public/assets/ForgotView-BBRR0ZKl.js rename to public/assets/ForgotView-DCuuDBAB.js index 66b259c..f68f802 100644 --- a/public/assets/ForgotView-BBRR0ZKl.js +++ b/public/assets/ForgotView-DCuuDBAB.js @@ -1 +1 @@ -import{d as f,c as t,b as a,h as y,t as n,f as m,w as _,v as w,i as b,j as k,r,l as h,n as o,p as g,a as x}from"./index-CZVUqkdk.js";import{f as V}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{f as V}from"./forms-rkjiDhhH.js";const j={class:"auth"},B={key:0,class:"notice",role:"status"},C={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},N={class:"field"},W={key:0,class:"error-text"},M=["disabled"],z={class:"auth-links"},I=f({__name:"ForgotView",setup(A){const l=r(""),i=r(!1),u=r(!1),s=r(null);async function c(){i.value=!0,s.value=null;try{await x.forgotPassword(l.value.trim()),u.value=!0}catch(d){s.value=V(d)}finally{i.value=!1}}return(d,e)=>{const p=h("router-link");return o(),t("div",j,[e[3]||(e[3]=a("header",{class:"page-head"},[a("span",{class:"eyebrow"},"BM II° · UWr"),a("h1",null,"Przypomnij hasło")],-1)),u.value?(o(),t("p",B,"Jeśli konto o tym adresie istnieje, wysłaliśmy na nie wiadomość z linkiem do ustawienia nowego hasła.")):(o(),t("form",{key:1,onSubmit:y(c,["prevent"]),novalidate:""},[s.value?.message?(o(),t("div",C,n(s.value.message),1)):m("",!0),a("div",N,[e[1]||(e[1]=a("label",{for:"email"},"Adres e-mail",-1)),_(a("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=v=>l.value=v),type:"email",autocomplete:"email",inputmode:"email",required:"",autofocus:""},null,512),[[w,l.value]]),s.value?.fields.email?(o(),t("p",W,n(s.value.fields.email),1)):m("",!0)]),a("button",{class:"btn primary block",type:"submit",disabled:i.value||!l.value},n(i.value?"Wysyłanie…":"Wyślij link"),9,M)],32)),a("div",z,[b(p,{to:"/logowanie"},{default:k(()=>[...e[2]||(e[2]=[g("Wróć do logowania",-1)])]),_:1})])])}}});export{I as default}; diff --git a/public/assets/LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js b/public/assets/LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js similarity index 90% rename from public/assets/LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js rename to public/assets/LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js index 492f770..25a1745 100644 --- a/public/assets/LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js +++ b/public/assets/LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js @@ -1 +1 @@ -import{d as n,c as r,p as l,t as i,b as o,a$ as d,n as s}from"./index-CZVUqkdk.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,a$ as d,n as s}from"./index-DyD9x5ZD.js";const y={key:0,class:"notice error",role:"alert"},c={key:1,class:"stack","aria-busy":"true","aria-label":"Wczytywanie"},m=n({__name:"LoadState",props:{loading:{type:Boolean},error:{},ready:{type:Boolean}},emits:["retry"],setup(e){return(a,t)=>e.error&&!e.ready?(s(),r("div",y,[l(i(e.error)+" ",1),o("button",{class:"linkish",type:"button",onClick:t[0]||(t[0]=u=>a.$emit("retry"))},"Spróbuj ponownie")])):e.ready?d(a.$slots,"default",{},void 0,void 0,2):(s(),r("div",c,[...t[1]||(t[1]=[o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1),o("div",{class:"skeleton"},null,-1)])]))}});export{m as _}; diff --git a/public/assets/LoginView-BjmNoGNs.js b/public/assets/LoginView-BErNRSBU.js similarity index 95% rename from public/assets/LoginView-BjmNoGNs.js rename to public/assets/LoginView-BErNRSBU.js index 3b7f510..fde4abf 100644 --- a/public/assets/LoginView-BjmNoGNs.js +++ b/public/assets/LoginView-BErNRSBU.js @@ -1 +1 @@ -import{d as C,u as q,o as z,a as N,c as o,b as s,e as U,f as i,t as p,w as y,v as w,g as Z,h as B,i as g,j as k,k as S,r as a,l as A,m as I,n as l,p as _}from"./index-CZVUqkdk.js";import{s as h,f as R}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{s as h,f as R}from"./forms-rkjiDhhH.js";import{o as T}from"./oauth-zzthF4BZ.js";const D={class:"auth"},E={key:0,class:"notice",role:"status"},L={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},P={class:"field"},W={key:0,class:"error-text"},H={class:"field"},F={key:0,class:"error-text"},G={class:"check",style:{"margin-bottom":"16px"}},J=["disabled"],K={class:"auth-links"},$=C({__name:"LoginView",setup(O){const x=q(),c=S(),j=I(),n=a(""),u=a(""),v=a(!0),d=a(!1),t=a(null),f=a(!1);z(async()=>{try{const m=await N.oauthProviders();f.value=m.providers.some(e=>e.name==="microsoft")}catch{f.value=!1}});function V(){window.location.assign(T("microsoft",{action:"login",returnTo:h(c.query.redirect)}))}async function M(){d.value=!0,t.value=null;try{await x.login(n.value.trim(),u.value,v.value),await j.replace(h(c.query.redirect))}catch(m){t.value=R(m)}finally{d.value=!1}}return(m,e)=>{const b=A("router-link");return l(),o("div",D,[e[8]||(e[8]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Zaloguj się")],-1)),U(c).query.expired?(l(),o("p",E,"Sesja wygasła. Zaloguj się ponownie.")):i("",!0),s("form",{onSubmit:B(M,["prevent"]),novalidate:""},[t.value?.message?(l(),o("div",L,p(t.value.message),1)):i("",!0),s("div",P,[e[3]||(e[3]=s("label",{for:"email"},"Adres e-mail",-1)),y(s("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=r=>n.value=r),type:"email",autocomplete:"username",inputmode:"email",required:"",autofocus:""},null,512),[[w,n.value]]),t.value?.fields.email?(l(),o("p",W,p(t.value.fields.email),1)):i("",!0)]),s("div",H,[e[4]||(e[4]=s("label",{for:"password"},"Hasło",-1)),y(s("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>u.value=r),type:"password",autocomplete:"current-password",required:""},null,512),[[w,u.value]]),t.value?.fields.password?(l(),o("p",F,p(t.value.fields.password),1)):i("",!0)]),s("label",G,[y(s("input",{"onUpdate:modelValue":e[2]||(e[2]=r=>v.value=r),type:"checkbox"},null,512),[[Z,v.value]]),e[5]||(e[5]=s("span",null,"Pamiętaj mnie na tym urządzeniu",-1))]),s("button",{class:"btn primary block",type:"submit",disabled:d.value||!n.value||!u.value},p(d.value?"Logowanie…":"Zaloguj się"),9,J)],32),f.value?(l(),o("button",{key:1,class:"btn block",type:"button",style:{"margin-top":"12px"},onClick:V},"Zaloguj przez Microsoft 365")):i("",!0),s("div",K,[g(b,{to:"/przypomnij-haslo"},{default:k(()=>[...e[6]||(e[6]=[_("Nie pamiętam hasła",-1)])]),_:1}),g(b,{to:"/rejestracja"},{default:k(()=>[...e[7]||(e[7]=[_("Załóż konto",-1)])]),_:1})])])}}});export{$ as default}; diff --git a/public/assets/MarkdownEditor-86JH6paT.js b/public/assets/MarkdownEditor-DPmxtwdc.js similarity index 99% rename from public/assets/MarkdownEditor-86JH6paT.js rename to public/assets/MarkdownEditor-DPmxtwdc.js index 180866a..776ccfd 100644 --- a/public/assets/MarkdownEditor-86JH6paT.js +++ b/public/assets/MarkdownEditor-DPmxtwdc.js @@ -1,4 +1,4 @@ -import{d as gu,o as mu,V as Su,U as Qu,n as Yl,c as _l,b as bu,f as ku,C as $u,r as br}from"./index-CZVUqkdk.js";let Jr=[],Ga=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Ga[i])e=i+1;else return!0;if(e==t)return!1}}function El(n){return n>=127462&&n<=127487}const zl=8205;function yu(n,e,t=!0,i=!0){return(t?Na:wu)(n,e,i)}function Na(n,e,t){if(e==n.length)return e;e&&Fa(n.charCodeAt(e))&&Ha(n.charCodeAt(e-1))&&e--;let i=kr(n,e);for(e+=ql(i);e=0&&El(kr(n,l));)s++,l-=2;if(s%2==0)break;e+=2}else break}return e}function wu(n,e,t){for(;e>1;){let i=Na(n,e-2,t);if(i=56320&&n<57344}function Ha(n){return n>=55296&&n<56320}function ql(n){return n<65536?1:2}class W{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=Nt(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),Fe.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Nt(this,e,t);let i=[];return this.decompose(e,t,i,0),Fe.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new vi(this),s=new vi(e);for(let l=t,o=t;;){if(r.next(l),s.next(l),l=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new vi(this,e)}iterRange(e,t=this.length){return new Ka(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Ja(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?W.empty:e.length<=32?new se(e):Fe.from(se.split(e,[]))}}class se extends W{constructor(e,t=Pu(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let s=0;;s++){let l=this.text[s],o=r+l.length;if((t?i:o)>=e)return new vu(r,o,i,l);r=o+1,i++}}decompose(e,t,i,r){let s=e<=0&&t>=this.length?this:new se(Wl(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let l=i.pop(),o=vn(s.text,l.text.slice(),0,s.length);if(o.length<=32)i.push(new se(o,l.length+s.length));else{let a=o.length>>1;i.push(new se(o.slice(0,a)),new se(o.slice(a)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof se))return super.replace(e,t,i);[e,t]=Nt(this,e,t);let r=vn(this.text,vn(i.text,Wl(this.text,0,e)),t),s=this.length+i.length-(t-e);return r.length<=32?new se(r,s):Fe.from(se.split(r,[]),s)}sliceString(e,t=this.length,i=` +import{d as gu,o as mu,V as Su,U as Qu,n as Yl,c as _l,b as bu,f as ku,C as $u,r as br}from"./index-DyD9x5ZD.js";let Jr=[],Ga=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,1n,9,16,o,,x,1i,3,,i,,7,a,2,t,3,1k,,,7,2,2,2,3,9,,a,2,q,,2,3,1k,,,5,4,2,2,3,3,,u,2,3,,b,3,1k,,,8,,3,,3,k,2,m,6,,3,1k,,,7,2,2,2,3,7,3,a,2,u,,1n,5,3,3,,4,9,,14,5,1j,,,7,,3,,4,7,2,b,2,t,3,1k,,,7,,3,,4,7,2,b,2,f,,c,4,1j,2,,7,,3,,4,9,,a,2,t,3,1y,,4,6,,,,8,i,2,1p,,,8,c,8,2q,,,a,b,7,21,2,r,,,,,,4,2,1d,k,,2,5,b,,10,9,,2u,b,,6,n,4,4,3,g,4,d,,,3,6,,f,,jj,3,qa,4,s,3,t,2,u,2,1s,w,9,,19,3,,,39,2,y,,3a,c,4,c,63,5,1l,a,,,,,2,o,2,,1c,1a,2,c,k,5,1b,h,12,9,c,3,u,d,1k,e,1c,k,48,3,,l,4,,6,,2,3,5i,1s,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,n,5,4,,2b,2,1e,i,q,i,d,,12,8,p,d,18,4,1b,e,10,,1v,e,c,,8,2,1a,,1f,,,3,2,2,5,2,,,15,5,5,2,6k,8,,2,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,1t,5,8t,2,25,6,1y,b,1d,4,3e,3,1h,f,15,,2,2,a,4,19,b,7,,1p,3,10,e,g,2,18,,c,3,1c,e,8,4,,2,2k,c,6,,2,,4d,c,l,4,1j,2,,7,2,2,2,3,9,,a,2,2,7,3,5,1v,9,,,2,,,4,,5,,,e,2,2a,i,n,,29,k,6j,7,2,9,r,2,2a,h,2y,d,2t,3,2,a,74,f,6t,6,,2,2,4,,,,2,3x,7,2,7,3,,s,a,14,7,,4,8,,9,b,1a,g,5i,8,5j,8,,8,2a,m,,e,3e,6,3,,,2,,7,,,1u,5,,2,,5,9n,4,9,2,,,1c,7,3,5,n,,44l,,6,f,8ug,i,1xc,5,1n,7,t4,,,1j,7,4,29,,b,2,f57,2,3mp,1a,2,n,f2,5,3,6,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,2s,,4g,7,af,,1p,4,e4,4,72,2,6r,,2,,7,2,5,,d6,7,31,7,240,5".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Ga[i])e=i+1;else return!0;if(e==t)return!1}}function El(n){return n>=127462&&n<=127487}const zl=8205;function yu(n,e,t=!0,i=!0){return(t?Na:wu)(n,e,i)}function Na(n,e,t){if(e==n.length)return e;e&&Fa(n.charCodeAt(e))&&Ha(n.charCodeAt(e-1))&&e--;let i=kr(n,e);for(e+=ql(i);e=0&&El(kr(n,l));)s++,l-=2;if(s%2==0)break;e+=2}else break}return e}function wu(n,e,t){for(;e>1;){let i=Na(n,e-2,t);if(i=56320&&n<57344}function Ha(n){return n>=55296&&n<56320}function ql(n){return n<65536?1:2}class W{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=Nt(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),Fe.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Nt(this,e,t);let i=[];return this.decompose(e,t,i,0),Fe.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new vi(this),s=new vi(e);for(let l=t,o=t;;){if(r.next(l),s.next(l),l=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new vi(this,e)}iterRange(e,t=this.length){return new Ka(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Ja(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?W.empty:e.length<=32?new se(e):Fe.from(se.split(e,[]))}}class se extends W{constructor(e,t=Pu(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let s=0;;s++){let l=this.text[s],o=r+l.length;if((t?i:o)>=e)return new vu(r,o,i,l);r=o+1,i++}}decompose(e,t,i,r){let s=e<=0&&t>=this.length?this:new se(Wl(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let l=i.pop(),o=vn(s.text,l.text.slice(),0,s.length);if(o.length<=32)i.push(new se(o,l.length+s.length));else{let a=o.length>>1;i.push(new se(o.slice(0,a)),new se(o.slice(a)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof se))return super.replace(e,t,i);[e,t]=Nt(this,e,t);let r=vn(this.text,vn(i.text,Wl(this.text,0,e)),t),s=this.length+i.length-(t-e);return r.length<=32?new se(r,s):Fe.from(se.split(r,[]),s)}sliceString(e,t=this.length,i=` `){[e,t]=Nt(this,e,t);let r="";for(let s=0,l=0;s<=t&&le&&l&&(r+=i),es&&(r+=o.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let s of e)i.push(s),r+=s.length+1,i.length==32&&(t.push(new se(i,r)),i=[],r=-1);return r>-1&&t.push(new se(i,r)),t}}class Fe extends W{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let s=0;;s++){let l=this.children[s],o=r+l.length,a=i+l.lines-1;if((t?a:o)>=e)return l.lineInner(e,t,i,r);r=o+1,i=a+1}}decompose(e,t,i,r){for(let s=0,l=0;l<=t&&s=l){let h=r&((l<=e?1:0)|(a>=t?2:0));l>=e&&a<=t&&!h?i.push(o):o.decompose(e-l,t-l,i,h)}l=a+1}}replace(e,t,i){if([e,t]=Nt(this,e,t),i.lines=s&&t<=o){let a=l.replace(e-s,t-s,i),h=this.lines-l.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let f=this.children.slice();return f[r]=a,new Fe(f,this.length-(t-e)+i.length)}return super.replace(s,o,a)}s=o+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` `){[e,t]=Nt(this,e,t);let r="";for(let s=0,l=0;se&&s&&(r+=i),el&&(r+=o.sliceString(e-l,t-l,i)),l=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Fe))return 0;let i=0,[r,s,l,o]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==l||s==o)return i;let a=this.children[r],h=e.children[s];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let O of e)i+=O.lines;if(i<32){let O=[];for(let d of e)d.flatten(O);return new se(O,t)}let r=Math.max(32,i>>5),s=r<<1,l=r>>1,o=[],a=0,h=-1,f=[];function c(O){let d;if(O.lines>s&&O instanceof Fe)for(let p of O.children)c(p);else O.lines>l&&(a>l||!a)?(u(),o.push(O)):O instanceof se&&a&&(d=f[f.length-1])instanceof se&&O.lines+d.lines<=32?(a+=O.lines,h+=O.length+1,f[f.length-1]=new se(d.text.concat(O.text),d.length+1+O.length)):(a+O.lines>r&&u(),a+=O.lines,h+=O.length+1,f.push(O))}function u(){a!=0&&(o.push(f.length==1?f[0]:Fe.from(f,h)),h=-1,a=f.length=0)}for(let O of e)c(O);return u(),o.length==1?o[0]:new Fe(o,t)}}W.empty=new se([""],0);function Pu(n){let e=-1;for(let t of n)e+=t.length+1;return e}function vn(n,e,t=0,i=1e9){for(let r=0,s=0,l=!0;s=t&&(a>i&&(o=o.slice(0,i-r)),r0?1:(e instanceof se?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],s=this.offsets[i],l=s>>1,o=r instanceof se?r.text.length:r.children.length;if(l==(t>0?o:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` `,this;e--}else if(r instanceof se){let a=r.text[l+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[l+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof se?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Ka{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new vi(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Ja{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(W.prototype[Symbol.iterator]=function(){return this.iter()},vi.prototype[Symbol.iterator]=Ka.prototype[Symbol.iterator]=Ja.prototype[Symbol.iterator]=function(){return this});let vu=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}};function Nt(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function ge(n,e,t=!0,i=!0){return yu(n,e,t,i)}function Xu(n){return n>=56320&&n<57344}function Zu(n){return n>=55296&&n<56320}function Cu(n,e){let t=n.charCodeAt(e);if(!Zu(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Xu(i)?(t-55296<<10)+(i-56320)+65536:t}function Tu(n){return n<65536?1:2}const es=/\r\n?|\n/;var de=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(de||(de={}));class it{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-r);s+=o}else{if(i!=de.Simple&&h>=e&&(i==de.TrackDel&&re||i==de.TrackBefore&&re))return null;if(h>e||h==e&&t<0&&!o)return e==r||t<0?s:s+a;s+=a}r=h}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&o>=e)return rt?"cover":!0;r=o}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new it(e)}static create(e){return new it(e)}}class ae extends it{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ts(this,(t,i,r,s,l)=>e=e.replace(r,r+(i-t),l),!1),e}mapDesc(e,t=!1){return is(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,s=0;r=0){t[r]=o,t[r+1]=l;let a=r>>1;for(;i.length0&&kt(i,t,s.text),s.forward(f),o+=f}let h=e[l++];for(;o>1].toJSON()))}return e}static of(e,t,i){let r=[],s=[],l=0,o=null;function a(f=!1){if(!f&&!r.length)return;lu||c<0||u>t)throw new RangeError(`Invalid change range ${c} to ${u} (in doc of length ${t})`);let d=O?typeof O=="string"?W.of(O.split(i||es)):O:W.empty,p=d.length;if(c==u&&p==0)return;cl&&pe(r,c-l,-1),pe(r,u-c,p),kt(s,r,d),l=u}}return h(e),a(!o),o}static empty(e){return new ae(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;ro&&typeof l!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;i.length=0&&t<=0&&t==n[r+1]?n[r]+=e:r>=0&&e==0&&n[r]==0?n[r+1]+=t:i?(n[r]+=e,n[r+1]+=t):n.push(e,t)}function kt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||l==n.sections.length||n.sections[l+1]<0);)o=n.sections[l++],a=n.sections[l++];e(r,h,s,f,c),r=h,s=f}}}function is(n,e,t,i=!1){let r=[],s=i?[]:null,l=new Mi(n),o=new Mi(e);for(let a=-1;;){if(l.done&&o.len||o.done&&l.len)throw new Error("Mismatched change set lengths");if(l.ins==-1&&o.ins==-1){let h=Math.min(l.len,o.len);pe(r,h,-1),l.forward(h),o.forward(h)}else if(o.ins>=0&&(l.ins<0||a==l.i||l.off==0&&(o.len=0&&a=0){let h=0,f=l.len;for(;f;)if(o.ins==-1){let c=Math.min(f,o.len);h+=c,f-=c,o.forward(c)}else if(o.ins==0&&o.lena||l.ins>=0&&l.len>a)&&(o||i.length>h),s.forward2(a),l.forward(a)}}}}class Mi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?W.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?W.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Qt{constructor(e,t,i,r){this.from=e,this.to=t,this.flags=i,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new Qt(i,r,this.flags,this.goalColumn)}extend(e,t=e,i=0){if(e<=this.anchor&&t>=this.anchor)return Q.range(e,t,void 0,void 0,i);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Q.range(this.anchor,r,void 0,void 0,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Q.range(e.anchor,e.head)}static create(e,t,i,r){return new Qt(e,t,i,r)}}class Q{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:Q.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Q(e.ranges.map(t=>Qt.fromJSON(t)),e.main)}static single(e,t=e){return new Q([Q.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;rr.from-s.from),t=e.indexOf(i);for(let r=1;rs.head?Q.range(a,o):Q.range(o,a))}}return new Q(e,t)}}function th(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Ks=0;class R{constructor(e,t,i,r,s){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=Ks++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new R(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Js),!!e.static,e.enables)}of(e){return new Xn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Xn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Xn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function Js(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Xn{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=Ks++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,s=this.id,l=e[s]>>1,o=this.type==2,a=!1,h=!1,f=[];for(let c of this.dependencies)c=="doc"?a=!0:c=="selection"?h=!0:(((t=e[c.id])!==null&&t!==void 0?t:1)&1)==0&&f.push(e[c.id]);return{create(c){return c.values[l]=i(c),1},update(c,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||ns(c,f)){let O=i(c);if(o?!Bl(O,c.values[l],r):!r(O,c.values[l]))return c.values[l]=O,1}return 0},reconfigure:(c,u)=>{let O,d=u.config.address[s];if(d!=null){let p=Yn(u,d);if(this.dependencies.every(m=>m instanceof R?u.facet(m)===c.facet(m):m instanceof rt?u.field(m,!1)==c.field(m,!1):!0)||(o?Bl(O=i(c),p,r):r(O=i(c),p)))return c.values[l]=p,0}else O=i(c);return c.values[l]=O,1}}}get extension(){return this}}function Bl(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),r=t.map(a=>a.type),s=i.filter(a=>!(a&1)),l=n[e.id]>>1;function o(a){let h=[];for(let f=0;fi===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(hn).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let s=i.values[t],l=this.updateF(s,r);return this.compareF(s,l)?0:(i.values[t]=l,1)},reconfigure:(i,r)=>{let s=i.facet(hn),l=r.facet(hn),o;return(o=s.find(a=>a.field==this))&&o!=l.find(a=>a.field==this)?(i.values[t]=o.create(i),1):r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,hn.of({field:this,create:e})]}get extension(){return this}}const Ct={lowest:4,low:3,default:2,high:1,highest:0};function pi(n){return e=>new ih(e,n)}const hi={highest:pi(Ct.highest),high:pi(Ct.high),default:pi(Ct.default),low:pi(Ct.low),lowest:pi(Ct.lowest)};class ih{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}}class lr{of(e){return new rs(this,e)}reconfigure(e){return lr.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class rs{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}}class Ln{constructor(e,t,i,r,s,l){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=s,this.facets=l,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],s=Object.create(null),l=new Map;for(let u of Ru(e,t,l))u instanceof rt?r.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let o=Object.create(null),a=[],h=[];for(let u of r)o[u.id]=h.length<<1,h.push(O=>u.slot(O));let f=i?.config.facets;for(let u in s){let O=s[u],d=O[0].facet,p=f&&f[u]||[];if(O.every(m=>m.type==0))if(o[d.id]=a.length<<1|1,Js(p,O))a.push(i.facet(d));else{let m=d.combine(O.map(S=>S.value));a.push(i&&d.compare(m,i.facet(d))?i.facet(d):m)}else{for(let m of O)m.type==0?(o[m.id]=a.length<<1|1,a.push(m.value)):(o[m.id]=h.length<<1,h.push(S=>m.dynamicSlot(S)));o[d.id]=h.length<<1,h.push(m=>Au(m,d,O))}}let c=h.map(u=>u(o));return new Ln(e,l,c,o,a,s)}}function Ru(n,e,t){let i=[[],[],[],[],[]],r=new Map;function s(l,o){let a=r.get(l);if(a!=null){if(a<=o)return;let h=i[a].indexOf(l);h>-1&&i[a].splice(h,1),l instanceof rs&&t.delete(l.compartment)}if(r.set(l,o),Array.isArray(l))for(let h of l)s(h,o);else if(l instanceof rs){if(t.has(l.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(l.compartment)||l.inner;t.set(l.compartment,h),s(h,o)}else if(l instanceof ih)s(l.inner,l.prec);else if(l instanceof rt)i[o].push(l),l.provides&&s(l.provides,o);else if(l instanceof Xn)i[o].push(l),l.facet.extensions&&s(l.facet.extensions,Ct.default);else{let h=l.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${l}).`);if(h==l)throw new Error(`Unrecognized extension value in extension set (${l}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(h,o)}}return s(n,Ct.default),i.reduce((l,o)=>l.concat(o))}function Xi(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let r=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|r}function Yn(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const nh=R.define(),ss=R.define({combine:n=>n.some(e=>e),static:!0}),rh=R.define({combine:n=>n.length?n[0]:void 0,static:!0}),sh=R.define(),lh=R.define(),oh=R.define(),ah=R.define({combine:n=>n.length?n[0]:!1});class pt{constructor(e,t){this.type=e,this.value=t}static define(){return new ju}}class ju{of(e){return new pt(this,e)}}class Mu{constructor(e){this.map=e}of(e){return new ee(this,e)}}class ee{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new ee(this.type,t)}is(e){return this.type==e}static define(e={}){return new Mu(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let s=r.map(t);s&&i.push(s)}return i}}ee.reconfigure=ee.define();ee.appendConfig=ee.define();class oe{constructor(e,t,i,r,s,l){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=s,this.scrollIntoView=l,this._doc=null,this._state=null,i&&th(i,t.newLength),s.some(o=>o.type==oe.time)||(this.annotations=s.concat(oe.time.of(Date.now())))}static create(e,t,i,r,s,l){return new oe(e,t,i,r,s,l)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(oe.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}oe.time=pt.define();oe.userEvent=pt.define();oe.addToHistory=pt.define();oe.remote=pt.define();function Lu(n,e){let t=[];for(let i=0,r=0;;){let s,l;if(i=n[i]))s=n[i++],l=n[i++];else if(r=0;r--){let s=i[r](n);s instanceof oe?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof oe?n=s[0]:n=fh(e,Wt(s),!1)}return n}function _u(n){let e=n.startState,t=e.facet(oh),i=n;for(let r=t.length-1;r>=0;r--){let s=t[r](n);s&&Object.keys(s).length&&(i=hh(i,ls(e,s,n.changes.newLength),!0))}return i==n?n:oe.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const Eu=[];function Wt(n){return n==null?Eu:Array.isArray(n)?n:[n]}var ht=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(ht||(ht={}));const zu=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let os;try{os=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function qu(n){if(os)return os.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||zu.test(t)))return!0}return!1}function Wu(n){return e=>{if(!/\S/.test(e))return ht.Space;if(qu(e))return ht.Word;for(let t=0;t-1)return ht.Word;return ht.Other}}class U{constructor(e,t,i,r,s,l){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,l&&(l._state=this);for(let o=0;or.set(h,a)),t=null),r.set(o.value.compartment,o.value.extension)):o.is(ee.reconfigure)?(t=null,i=o.value):o.is(ee.appendConfig)&&(t=null,i=Wt(i).concat(o.value));let s;t?s=e.startState.values.slice():(t=Ln.resolve(i,r,this),s=new U(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let l=e.startState.facet(ss)?e.newSelection:e.newSelection.asSingle();new U(t,e.newDoc,l,s,(o,a)=>a.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:Q.cursor(t.from+e.length,-1)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),s=[i.range],l=Wt(i.effects);for(let o=1;ol.spec.fromJSON(o,a)))}}return U.create({doc:e.doc,selection:Q.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Ln.resolve(e.extensions||[],new Map),i=e.doc instanceof W?e.doc:W.of((e.doc||"").split(t.staticFacet(U.lineSeparator)||es)),r=e.selection?e.selection instanceof Q?e.selection:Q.single(e.selection.anchor,e.selection.head):Q.single(0);return th(r,i.length),t.staticFacet(ss)||(r=r.asSingle()),new U(t,i,r,t.dynamicSlots.map(()=>null),(s,l)=>l.create(s),null)}get tabSize(){return this.facet(U.tabSize)}get lineBreak(){return this.facet(U.lineSeparator)||` diff --git a/public/assets/MaterialEditView-BFeHImy8.js b/public/assets/MaterialEditView-DNeVFjle.js similarity index 98% rename from public/assets/MaterialEditView-BFeHImy8.js rename to public/assets/MaterialEditView-DNeVFjle.js index 0179a37..769e1c9 100644 --- a/public/assets/MaterialEditView-BFeHImy8.js +++ b/public/assets/MaterialEditView-DNeVFjle.js @@ -1,7 +1,7 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-86JH6paT.js","assets/index-CZVUqkdk.js","assets/index-BeU-aKV2.css"])))=>i.map(i=>d[i]); -import{d as je,n as l,c as r,F as U,E as K,f as M,h as oa,i as F,_ as ht,r as z,x as L,V as ve,e as h,b as n,t as y,C as fe,ag as la,X as kt,Z as oe,T as Qe,aC as Gt,at as ra,U as ae,w as ne,v as Ye,aw as Wa,ax as Xe,aD as Aa,aE as Oa,aF as bt,aG as Ra,A as ua,ae as Fa,q as Ka,o as mt,aH as Za,j as Le,al as ge,aI as te,ap as Ve,aJ as qa,aK as Ge,aL as Ha,aM as Jt,aN as pt,aO as Ga,p as ze,s as Yt,as as Xt,H as Ja,aP as Ya,aQ as Xa,aB as Qt,l as Qa,m as en,aR as tn,aS as an,aT as yt,au as nn,aU as sn}from"./index-CZVUqkdk.js";import{_ as on}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as ln}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{n as da}from"./tabs-nNm7HGNT.js";import{_ as gt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js";import{u as rn,r as un}from"./markdown-B8hp6mJg.js";import{c as ea}from"./materialListCache-DQPoPhVA.js";import"./safeText-O-oWGdGq.js";const dn={key:0,class:"md-toolbar-sep","aria-hidden":"true"},cn=["data-index","aria-label","title","tabindex","onClick"],vn=je({__name:"MarkdownToolbar",emits:["command","pickImage"],setup(i,{emit:s}){const m=s,v=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform),k=f=>v?`⌘${f}`:`Ctrl+${f}`,u=[[{cmd:"bold",icon:"bold",label:"Pogrubienie",key:"B"},{cmd:"italic",icon:"italic",label:"Kursywa",key:"I"},{cmd:"heading",icon:"heading",label:"Nagłówek"}],[{cmd:"list",icon:"list",label:"Lista"},{cmd:"quote",icon:"quote",label:"Cytat"}],[{cmd:"link",icon:"link",label:"Link",key:"K"},{cmd:"image",icon:"image",label:"Obrazek z dysku",title:"Obrazek z dysku (możesz też wkleić albo przeciągnąć)"},{cmd:"table",icon:"table",label:"Tabela"}]],E=L(()=>u.flat()),x=z(0),w=z([]);function c(f){return E.value.indexOf(f)}function S(f){return f.title?f.title:f.key?`${f.label} (${k(f.key)})`:f.label}function d(f){const p=da(f.key,x.value,E.value.length);p!==null&&(f.preventDefault(),x.value=p,w.value.find(q=>Number(q.dataset.index)===p)?.focus())}function j(f){x.value=c(f),f.cmd==="image"?m("pickImage"):m("command",f.cmd)}return(f,p)=>(l(),r("div",{class:"md-toolbar",role:"toolbar","aria-label":"Formatowanie",onKeydown:d},[(l(),r(U,null,K(u,(q,Z)=>(l(),r(U,{key:Z},[Z>0?(l(),r("span",dn)):M("",!0),(l(!0),r(U,null,K(q,P=>(l(),r("button",{key:P.cmd,ref_for:!0,ref_key:"buttons",ref:w,class:"icon-btn md-tool",type:"button","data-index":c(P),"aria-label":P.label,title:S(P),tabindex:c(P)===x.value?0:-1,onMousedown:p[0]||(p[0]=oa(()=>{},["prevent"])),onClick:H=>j(P)},[F(ht,{name:P.icon},null,8,["name"])],40,cn))),128))],64))),64))],32))}}),fn=2e3*2e3;function ta(i){const s=i.replace(/\r\n?/g,` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-DPmxtwdc.js","assets/index-DyD9x5ZD.js","assets/index-FkOyve-6.css"])))=>i.map(i=>d[i]); +import{d as je,n as l,c as r,F as U,E as K,f as M,h as oa,i as F,_ as ht,r as z,x as L,V as ve,e as h,b as n,t as y,C as fe,ag as la,X as kt,Z as oe,T as Qe,aC as Gt,at as ra,U as ae,w as ne,v as Ye,aw as Wa,ax as Xe,aD as Aa,aE as Oa,aF as bt,aG as Ra,A as ua,ae as Fa,q as Ka,o as mt,aH as Za,j as Le,al as ge,aI as te,ap as Ve,aJ as qa,aK as Ge,aL as Ha,aM as Jt,aN as pt,aO as Ga,p as ze,s as Yt,as as Xt,H as Ja,aP as Ya,aQ as Xa,aB as Qt,l as Qa,m as en,aR as tn,aS as an,aT as yt,au as nn,aU as sn}from"./index-DyD9x5ZD.js";import{_ as on}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as ln}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{n as da}from"./tabs-nNm7HGNT.js";import{_ as gt}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js";import{u as rn,r as un}from"./markdown-CvqroLZD.js";import{c as ea}from"./materialListCache-Do2aYQaO.js";import"./safeText-O-oWGdGq.js";const dn={key:0,class:"md-toolbar-sep","aria-hidden":"true"},cn=["data-index","aria-label","title","tabindex","onClick"],vn=je({__name:"MarkdownToolbar",emits:["command","pickImage"],setup(i,{emit:s}){const m=s,v=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform),k=f=>v?`⌘${f}`:`Ctrl+${f}`,u=[[{cmd:"bold",icon:"bold",label:"Pogrubienie",key:"B"},{cmd:"italic",icon:"italic",label:"Kursywa",key:"I"},{cmd:"heading",icon:"heading",label:"Nagłówek"}],[{cmd:"list",icon:"list",label:"Lista"},{cmd:"quote",icon:"quote",label:"Cytat"}],[{cmd:"link",icon:"link",label:"Link",key:"K"},{cmd:"image",icon:"image",label:"Obrazek z dysku",title:"Obrazek z dysku (możesz też wkleić albo przeciągnąć)"},{cmd:"table",icon:"table",label:"Tabela"}]],E=L(()=>u.flat()),x=z(0),w=z([]);function c(f){return E.value.indexOf(f)}function S(f){return f.title?f.title:f.key?`${f.label} (${k(f.key)})`:f.label}function d(f){const p=da(f.key,x.value,E.value.length);p!==null&&(f.preventDefault(),x.value=p,w.value.find(q=>Number(q.dataset.index)===p)?.focus())}function j(f){x.value=c(f),f.cmd==="image"?m("pickImage"):m("command",f.cmd)}return(f,p)=>(l(),r("div",{class:"md-toolbar",role:"toolbar","aria-label":"Formatowanie",onKeydown:d},[(l(),r(U,null,K(u,(q,Z)=>(l(),r(U,{key:Z},[Z>0?(l(),r("span",dn)):M("",!0),(l(!0),r(U,null,K(q,P=>(l(),r("button",{key:P.cmd,ref_for:!0,ref_key:"buttons",ref:w,class:"icon-btn md-tool",type:"button","data-index":c(P),"aria-label":P.label,title:S(P),tabindex:c(P)===x.value?0:-1,onMousedown:p[0]||(p[0]=oa(()=>{},["prevent"])),onClick:H=>j(P)},[F(ht,{name:P.icon},null,8,["name"])],40,cn))),128))],64))),64))],32))}}),fn=2e3*2e3;function ta(i){const s=i.replace(/\r\n?/g,` `);return s?(s.endsWith(` `)?s.slice(0,-1):s).split(` -`):[]}function mn(i,s,m,v){const k=i.length,u=s.length,E=[];if(k*u>fn){for(let d=0;d=0;d--)for(let j=u-1;j>=0;j--)w[d*x+j]=i[d]===s[j]?w[(d+1)*x+j+1]+1:Math.max(w[(d+1)*x+j],w[d*x+j+1]);let c=0,S=0;for(;c=u||c=w[c*x+S+1]?(E.push({kind:"server",i:m+c,j:-1}),c++):(E.push({kind:"mine",i:-1,j:v+S}),S++);return E}function pn(i,s){const m=ta(i),v=ta(s);let k=0;for(;k0;d--)E.push({kind:"same",i:m.length-d,j:v.length-d});const x=[];let w=[],c=[];const S=()=>{const d=Math.min(w.length,c.length);for(let j=0;jk.push(...w),E=w=>{w.length&&(k.length&&v.push({kind:"rows",rows:k}),k=[],v.push({kind:"gap",rows:w}))};let x=0;for(;xd?.removeEventListener("change",f));function p($){if($==null)return"";const b=v.meetings?.find(I=>I.id===$);return b?ra(b):"Wybrany zjazd"}const q=($,b)=>$.length===b.length&&$.every(I=>b.includes(I)),Z=L(()=>{const $=v.server,b=v.mine,I=[],B=(N,_,R)=>I.push({name:N,server:_,mine:R});return $.title.trim()!==b.title.trim()&&B("Tytuł",$.title.trim(),b.title.trim()),$.type!==b.type&&B("Rodzaj",Qe[$.type],Qe[b.type]),$.meeting_id!==b.meeting_id&&B("Zjazd",p($.meeting_id),p(b.meeting_id)),$.source.trim()!==b.source.trim()&&B("Źródło",$.source.trim(),b.source.trim()),$.url.trim()!==b.url.trim()&&B("Link",$.url.trim(),b.url.trim()),q($.tags,b.tags)||B("Tagi",$.tags.join(", "),b.tags.join(", ")),I}),P=L(()=>Gt(v.server.body)===Gt(v.mine.body)),H=L(()=>P.value?[]:yn(pn(v.server.body,v.mine.body))),G=z(new Set);function me($){G.value=new Set(G.value).add($)}function be($){const b=[];let I=[],B=[];const N=()=>{b.push(...I,...B),I=[],B=[]};for(const _ of $){if(_.kind==="same"){N(),b.push({side:"same",no:_.mineNo,text:_.mine??""});continue}_.server!==void 0&&I.push({side:"server",no:_.serverNo,text:_.server}),_.mine!==void 0&&B.push({side:"mine",no:_.mineNo,text:_.mine})}return N(),b}function he(){w=document.activeElement instanceof HTMLElement?document.activeElement:null,c=null,G.value=new Set,E.value?.open||E.value?.showModal(),oe(()=>x.value?.focus())}function O($=null){c=$,E.value?.close()}function $e(){const $=c;c=null;const b=w;if(w=null,$==="load")return k("load");if($==="overwrite")return k("overwrite");b?.isConnected&&b.focus(),k("close")}function ke($){$.target===E.value&&O()}return s({open:he}),($,b)=>(l(),r("dialog",{ref_key:"dialog",ref:E,class:"chat-dialog diff-dialog","aria-labelledby":`diff-h-${h(u)}`,onClose:$e,onClick:ke},[n("div",bn,[n("h2",{id:`diff-h-${h(u)}`,class:"chat-dialog-title"},"Zmiany względem rev "+y(v.revision),9,hn),n("button",{class:"icon-btn",type:"button","aria-label":"Zamknij porównanie",onClick:b[0]||(b[0]=I=>O())},[F(ht,{name:"close"})])]),n("div",kn,[Z.value.length?(l(),r("table",wn,[n("thead",null,[n("tr",null,[b[4]||(b[4]=n("th",{scope:"col"},"Pole",-1)),n("th",_n,"Na serwerze (rev "+y(v.revision)+")",1),b[5]||(b[5]=n("th",{scope:"col"},"U Ciebie",-1))])]),n("tbody",null,[(l(!0),r(U,null,K(Z.value,I=>(l(),r("tr",{key:I.name},[n("th",zn,y(I.name),1),n("td",null,y(I.server||"—"),1),n("td",null,y(I.mine||"—"),1)]))),128))])])):M("",!0),P.value?(l(),r("p",jn,"Treść jest taka sama. Różnią się tylko pola powyżej.")):(l(),r("div",{key:2,class:fe(["diff-body",{split:j.value}]),role:"region","aria-label":"Różnice w treści"},[n("div",$n,[n("span",null,"Na serwerze (rev "+y(v.revision)+")",1),b[6]||(b[6]=n("span",null,"U Ciebie",-1))]),(l(!0),r(U,null,K(H.value,(I,B)=>(l(),r(U,{key:B},[I.kind==="gap"&&!G.value.has(B)?(l(),r("button",{key:0,class:"linkish diff-gap",type:"button",onClick:N=>me(B)}," Pokaż "+y(h(la)(I.rows.length,"niezmieniony wiersz","niezmienione wiersze","niezmienionych wierszy")),9,xn)):j.value?(l(!0),r(U,{key:1},K(I.rows,(N,_)=>(l(),r("div",{key:_,class:"diff-row"},[N.server!==void 0?(l(),r("div",{key:0,class:fe(["diff-line",{server:N.kind!=="same"}])},[n("span",Tn,y(N.serverNo),1),n("span",Mn,y(N.kind==="same"?"":"−"),1),N.kind!=="same"?(l(),r("span",En,y(S.server)+": ",1)):M("",!0),n("span",Cn,y(N.server),1)],2)):(l(),r("div",Sn)),N.mine!==void 0?(l(),r("div",{key:2,class:fe(["diff-line",{mine:N.kind!=="same"}])},[n("span",In,y(N.mineNo),1),n("span",Nn,y(N.kind==="same"?"":"+"),1),N.kind!=="same"?(l(),r("span",Pn,y(S.mine)+": ",1)):M("",!0),n("span",Dn,y(N.mine),1)],2)):(l(),r("div",Ln))]))),128)):(l(!0),r(U,{key:2},K(be(I.rows),(N,_)=>(l(),r("div",{key:_,class:fe(["diff-line",N.side==="same"?"":N.side])},[n("span",Vn,y(N.no),1),n("span",Bn,y(N.side==="server"?"−":N.side==="mine"?"+":""),1),N.side!=="same"?(l(),r("span",Un,y(S[N.side])+": ",1)):M("",!0),n("span",Wn,y(N.text),1)],2))),128))],64))),128))],2))]),n("div",An,[n("button",{class:"btn ghost",type:"button",onClick:b[1]||(b[1]=I=>O("load"))},"Wczytaj wersję z serwera"),n("button",{class:"btn miss",type:"button",onClick:b[2]||(b[2]=I=>O("overwrite"))},"Nadpisz wersję z serwera"),n("button",{ref_key:"closeBtn",ref:x,class:"btn",type:"button",onClick:b[3]||(b[3]=I=>O())},"Zamknij porównanie",512)])],40,gn))}}),Rn={key:0,class:"share-chips","aria-label":"Wybrane tagi"},Fn=["title"],Kn={class:"share-chip-label"},Zn=["aria-label","onClick"],qn=["id","aria-expanded","aria-activedescendant","aria-describedby","aria-invalid","readonly","placeholder"],Hn={key:0,class:"share-option share-empty",role:"option","aria-disabled":"true","aria-selected":"false"},Gn=["id","aria-selected","onMousedown","onMousemove"],Jn={class:"share-option-name"},Yn={class:"sr-only",role:"status","aria-live":"polite"},Xn=je({__name:"TagInput",props:{modelValue:{},tags:{},inputId:{},describedby:{},invalid:{type:Boolean}},emits:["update:modelValue"],setup(i,{expose:s,emit:m}){const v=i,k=m,E=`${kt()}-list`,x=z(null),w=L(()=>v.modelValue.length>=bt),c=L(()=>new Set(v.tags.map(_=>_.name))),{query:S,open:d,active:j,announcement:f,suggestions:p,activeId:q,optionId:Z,announce:P,onKeydown:H,show:G,close:me,hover:be,reset:he}=rn({listId:E,suggest:_=>w.value?[]:Oa(v.tags,_,v.modelValue),onPick:ke,onBackspace:()=>{const _=v.modelValue[v.modelValue.length-1];_!==void 0&&$(_)}}),O=L(()=>w.value?"Masz już 4 tagi":v.modelValue.length?"Dodaj kolejny tag":"Wpisz lub wybierz tag"),$e=L(()=>{const _=S.value.trim();return v.tags.length?_?`Żaden tag nie pasuje do „${_}”.`:"Nie ma więcej tagów do wyboru.":"Słownik tagów jest pusty."});function ke(_){w.value||v.modelValue.includes(_.name)||(k("update:modelValue",Aa(v.modelValue,_.name)),he(),P(`Dodano tag: ${_.name}`))}function $(_){k("update:modelValue",v.modelValue.filter(R=>R!==_)),P(`Usunięto tag: ${_}`),oe(()=>x.value?.focus())}function b(){w.value||G()}function I(_){if(w.value&&(_.key==="ArrowDown"||_.key==="ArrowUp")){_.preventDefault();return}H(_)}function B(_){const R=_.target;(R===_.currentTarget||R.classList.contains("share-chips"))&&(x.value?.focus(),b())}ae(j,()=>{d.value&&oe(()=>document.getElementById(Z(j.value))?.scrollIntoView({block:"nearest"}))});function N(){x.value?.focus()}return s({focus:N}),(_,R)=>(l(),r("div",{class:fe(["share-field tag-field",{full:w.value}]),onClick:B},[i.modelValue.length?(l(),r("ul",Rn,[(l(!0),r(U,null,K(i.modelValue,V=>(l(),r("li",{key:V,class:"share-chip",title:c.value.has(V)?void 0:"Tego tagu nie ma już w słowniku. Możesz go tylko usunąć."},[n("span",Kn,y(V),1),n("button",{class:"share-chip-remove",type:"button","aria-label":`Usuń tag ${V}`,onClick:pe=>$(V)},[F(ht,{name:"close"})],8,Zn)],8,Fn))),128))])):M("",!0),ne(n("input",{id:i.inputId,ref_key:"input",ref:x,"onUpdate:modelValue":R[0]||(R[0]=V=>Wa(S)?S.value=V:null),class:"share-input",type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":h(d)?"true":"false","aria-controls":E,"aria-activedescendant":h(q),"aria-describedby":i.describedby,"aria-invalid":i.invalid?"true":void 0,readonly:w.value,autocomplete:"off",enterkeyhint:"done",placeholder:O.value,onInput:b,onClick:b,onKeydown:I,onBlur:R[1]||(R[1]=(...V)=>h(me)&&h(me)(...V))},null,40,qn),[[Ye,h(S)]]),ne(n("ul",{id:E,class:"share-pop tag-pop",role:"listbox","aria-label":"Pasujące tagi"},[h(p).length?M("",!0):(l(),r("li",Hn,y($e.value),1)),(l(!0),r(U,null,K(h(p),(V,pe)=>(l(),r("li",{id:h(Z)(pe),key:V.id,class:fe(["share-option",{active:pe===h(j)}]),role:"option","aria-selected":pe===h(j)?"true":"false",onMousedown:oa(xe=>ke(V),["prevent"]),onMousemove:xe=>h(be)(pe)},[n("span",Jn,y(V.name),1)],42,Gn))),128))],512),[[Xe,h(d)]]),n("span",Yn,y(h(f)),1)],2))}}),Qn=["image/png","image/jpeg","image/gif","image/webp"],ei=50*1024*1024,ti=20,ca=i=>(i||"").split(";")[0].trim().toLowerCase();function aa(i,s){return Ra(i)||!Qn.includes(ca(i.type))?"type":i.size>ei?"size":s>=ti?"count":null}function ai(i,s){if(i===413)return"size";if(i!==422||!s||typeof s!="object")return null;const m=s.reason;return m==="type"||m==="size"||m==="count"?m:null}const ni={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp"},Be=i=>String(i).padStart(2,"0");function ii(i,s=new Date){const m=`${s.getFullYear()}${Be(s.getMonth()+1)}${Be(s.getDate())}`,v=`${Be(s.getHours())}${Be(s.getMinutes())}${Be(s.getSeconds())}`;return`wklejony-${m}-${v}.${ni[ca(i)]??"png"}`}function si(i){return!i.trim()||/^(image|blob)(\.[a-z0-9]+)?$/i.test(i.trim())}const wt=i=>i.replace(/[[\]\\]/g,"");function oi(i,s){if(s)return"obrazek";const m=i.lastIndexOf("."),v=m>0?i.slice(0,m):i;return wt(v).replace(/[-_]+/g," ").replace(/\s+/g," ").trim()||"obrazek"}function li(i){return`![Wysyłanie: ${wt(i)}…]()`}function ri(i,s){const m=/[\s()<>]/.test(s)?`<${s.replace(/[<>]/g,"")}>`:s;return`![${wt(i)}](${m})`}function ui(i){if(i.length===0)return"";const s=i.reduce((k,u)=>k+Math.max(0,u.loaded),0),m=i.reduce((k,u)=>k+Math.max(0,u.total),0),v=m>0?Math.min(100,Math.round(s/m*100)):0;return i.length===1?`Wysyłanie „${i[0].name}”… ${v}%`:`Wysyłanie ${i.length} obrazków… ${v}%`}function Je(i,s,m=""){switch(i){case"type":return`„${s}”: wklej obrazek PNG, JPG, GIF albo WebP.`;case"size":return`„${s}”: plik jest większy niż 50 MB.`;case"count":return"Materiał ma już 20 plików. Usuń któryś w /bmadmin, żeby dodać obrazek.";case"network":return`„${s}”: nie udało się wysłać. ${m}`.trim()}}const na="Nie udało się wczytać danych.";function di(i){if(!i||typeof i!="object")return!1;const s=i;return typeof s.revision=="number"&&Number.isInteger(s.revision)&&s.revision>0&&!!s.data&&typeof s.data=="object"&&typeof s.data.id=="number"}function ci(i){if(!(i instanceof ua))return{kind:"failed",message:na};switch(i.status){case 409:return di(i.body)?{kind:"conflict",revision:i.body.revision,updatedAt:typeof i.body.updated_at=="string"?i.body.updated_at:"",server:i.body.data}:{kind:"failed",message:i.message};case 422:return Object.keys(i.errors).length?{kind:"invalid",errors:i.errors}:{kind:"failed",message:i.message};case 404:return{kind:"gone"};case 403:return{kind:"forbidden"};default:return{kind:"failed",message:i.message||na}}}function vi(i,s,m){switch(i){case"title":return m.trim()?/already has this title/i.test(s)?"W tym przedmiocie jest już materiał o tym tytule.":/255 characters/.test(s)||m.trim().length>255?"Tytuł może mieć najwyżej 255 znaków.":s:"Podaj tytuł.";case"url":return/http/i.test(s)?"Podaj adres zaczynający się od https:// albo http://.":s;case"source":return/500 characters/.test(s)?"Źródło może mieć najwyżej 500 znaków.":s;case"tags":return/at most 4 tags/i.test(s)?"Wybierz najwyżej 4 tagi.":s;default:return s}}const fi="updated.jz.bm.material";function mi(i){return`materials:${i}`}const ia=i=>typeof i=="number"&&Number.isInteger(i)&&i>=1;function pi(i){if(!i||typeof i!="object")return null;const s=i;if(s.event!==fi||!s.payload||typeof s.payload!="object")return null;const m=s.payload;return!ia(m.material_id)||!ia(m.revision)?null:{materialId:m.material_id,revision:m.revision}}const yi={class:"material-edit"},gi={key:0,class:"empty"},bi=["href"],hi=["role","aria-labelledby"],ki=["id"],wi={key:0,class:"conflict-line"},_i={key:1,class:"conflict-line"},zi={class:"btn-row"},ji=["aria-busy"],$i=["disabled"],xi={key:2,class:"error-text",role:"alert"},Ti={key:1,class:"notice draft-offer no-print",role:"status"},Mi={class:"draft-offer-title"},Ei={class:"btn-row"},Ci={class:"field"},Si=["for"],Ii=["id","aria-invalid","aria-describedby"],Ni=["id"],Pi=["open"],Di={class:"edit-details-values"},Li={class:"grid-3"},Vi={class:"field"},Bi=["for"],Ui=["id","aria-invalid","aria-describedby"],Wi=["value"],Ai=["id"],Oi={class:"field"},Ri=["for"],Fi=["id","disabled","aria-invalid","aria-describedby"],Ki=["value"],Zi=["value"],qi=["id"],Hi=["id"],Gi={class:"field"},Ji={class:"edit-course"},Yi={class:"grid-2"},Xi={class:"field"},Qi=["for"],es=["id","aria-invalid","aria-describedby"],ts=["id"],as={class:"field"},ns=["for"],is=["id","aria-invalid","aria-describedby"],ss=["id"],os={class:"field edit-tags"},ls={class:"edit-tags-head"},rs=["id","for"],us={class:"label edit-tags-count","aria-live":"polite"},ds=["aria-labelledby","aria-describedby"],cs={key:0,class:"muted small"},vs=["id"],fs=["id"],ms={key:4,class:"error-text",role:"alert"},ps={class:"edit-block","aria-label":"Treść"},ys={key:0,class:"pulpit-tabs edit-tabs no-print",role:"tablist","aria-label":"Widok treści"},gs=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],bs={class:"edit-toolbar-row no-print"},hs=["aria-expanded"],ks=["id"],ws={id:"md-preview",class:"edit-pane edit-preview prose",role:"region","aria-label":"Podgląd"},_s={key:0,class:"label edit-preview-caption"},zs=["innerHTML"],js={key:2,class:"muted"},$s=["id"],xs={class:"edit-status-strip no-print"},Ts={key:1,"aria-hidden":"true"},Ms={key:2,class:"notice error edit-upload-errors no-print",role:"alert"},Es=["onClick"],Cs={key:3,class:"notice error edit-save-error",role:"alert"},Ss={key:4,class:"notice error edit-save-error",role:"alert"},Is={class:"edit-actions no-print"},Ns={class:"btn-row"},Ps=["disabled","aria-busy"],Ds=["href"],Ls={class:"muted small",role:"status"},sa="bm.editor.preview",Ks=je({__name:"MaterialEditView",props:{id:{}},setup(i){const s=i,m=en(),v=Fa(),k=Ka(),u=kt(),E=je({render:()=>yt("div",{class:"skeleton edit-pane-skeleton","aria-busy":"true","aria-label":"Wczytywanie edytora"})}),x=je({render:()=>yt("div",{class:"notice error",role:"alert"},["Nie udało się wczytać edytora. Sprawdź połączenie i spróbuj ponownie. ",yt("button",{class:"linkish",type:"button",onClick:()=>window.location.reload()},"Spróbuj ponownie")])}),w=Ya({loader:()=>tn(()=>import("./MarkdownEditor-86JH6paT.js"),__vite__mapDeps([0,1,2])),loadingComponent:E,errorComponent:x,delay:0}),c=z(null),S=typeof window.matchMedia=="function"?window.matchMedia("(min-width: 900px)"):null,d=z(S?.matches??!0);function j(e){d.value=e.matches}S?.addEventListener("change",j),ve(()=>S?.removeEventListener("change",j));const f=z(null);ae(f,e=>{e?.title&&(document.title=`Edycja: ${e.title} · BM II°`)});const p=z(null),q=z("");async function Z(){rt(),Ft(),Ie!==void 0&&se(),A.value=null,Se=null,Ne=null,f.value=null,p.value=null,q.value="",re.value="",ue.value="",C.value=null,T.value={},X.value=null,Re.value=!1;try{const e=await ge.material(Number(s.id));f.value=e,dt(te(e))}catch(e){q.value=Ve(e);return}f.value.can_manage&&(Ea(f.value),me(),$e(),Ta(f.value.id))}mt(Z),ae(()=>s.id,Z);const P=L(()=>!!p.value&&!!f.value&&!Ge(p.value,te(f.value))),H=z(null),G=z("");async function me(){G.value="";try{H.value=await ge.tags()}catch(e){G.value=Ve(e)}}const be=L(()=>(p.value?.tags.length??0)>=bt),he=z(null),O=z(!1);async function $e(){O.value=!1,await v.loadMeetings(),O.value=v.meetings===null}const ke=L(()=>nn(v.meetings??[])),$=L(()=>{const e=p.value?.meeting_id;return e==null?null:(v.meetings??[]).find(t=>t.id===e)?.number??null}),b=Object.entries(Qe),I=z(d.value);function B(e){I.value=e.target.open}const N=L(()=>{const e=p.value;if(!e)return"";const t=e.meeting_id==null?"bez zjazdu":$.value!=null?`Zjazd ${$.value}`:"zjazd";return`${Qe[e.type]} · ${t} · ${la(e.tags.length,"tag","tagi","tagów")}`});function _(){try{const e=window.localStorage.getItem(sa);return e==="1"?!0:e==="0"?!1:null}catch{return null}}const R=typeof window.matchMedia=="function"?window.matchMedia("(min-width: 1100px)").matches:!0,V=z(_()??R);function pe(){V.value=!V.value;try{window.localStorage.setItem(sa,V.value?"1":"0")}catch{}}const xe=[{id:"edit",label:"Edycja"},{id:"preview",label:"Podgląd"}],le=z("edit"),_t=z([]);function va(e,t){const o=da(e.key,t,xe.length);o!==null&&(e.preventDefault(),le.value=xe[o].id,_t.value[o]?.focus())}const zt=L(()=>d.value||le.value==="edit"),jt=L(()=>d.value?V.value:le.value==="preview"),et=z("");let Te;function $t(){clearTimeout(Te),Te=void 0,et.value=un(p.value?.body??"",{newTabLinks:!0})}ae(()=>[p.value?.body,jt.value],([,e],t)=>{e&&(clearTimeout(Te),!t||!t[1]?$t():Te=setTimeout($t,150))},{immediate:!0}),ve(()=>clearTimeout(Te)),ae(c,(e,t)=>{e&&!t&&d.value&&e.focus()});const Ue=["title","type","meeting_id","source","url","tags","body"],fa=new Set(["type","meeting_id","source","url","tags"]),T=z({}),ma=L(()=>Object.keys(T.value).length>0),W=e=>`${e}-e-${u}`,xt=(...e)=>e.filter(Boolean).join(" ")||void 0;for(const e of Ue)ae(()=>p.value?.[e],()=>{T.value[e]!==void 0&&delete T.value[e]});function pa(e,t){const o=e[t];return Array.isArray(o)?o.join(", "):o==null?"":String(o)}function ya(e){if(e==="body"){le.value="edit",c.value?.focus();return}if(e==="tags"){he.value?.focus();return}const t={title:`title-${u}`,type:`type-${u}`,meeting_id:`meeting-${u}`,source:`source-${u}`,url:`url-${u}`};document.getElementById(t[e])?.focus()}async function ga(e){const t=p.value;if(!t)return;const o={};for(const g of Ue){const D=e[g]?.[0];D&&(o[g]=vi(g,D,pa(t,g)))}const a=Ue.find(g=>o[g]!==void 0);if(!a){re.value=Qt(Object.values(e).flat()[0]??"Błąd 422");return}T.value=o,Ue.some(g=>o[g]!==void 0&&fa.has(g))&&(I.value=!0),await oe(),ya(a)}const C=z(null),tt=z(null),Tt=z(null),Mt=z(null),We=z(0);function Ae(e){re.value="",T.value={},Me.value="",C.value=e}function at(e){f.value=e,C.value=null,ue.value="Wersja z serwera jest taka sama jak Twoja."}function Et(e){f.value=e,dt(te(e)),C.value=null,T.value={},re.value="";const t=A.value;if(t){const o=Jt(t.draft,{fields:te(e),revision:e.revision});o==="none"?Ke():A.value={...t,kind:o}}}async function ba(){try{return await ge.material(Number(s.id))}catch(e){throw new Error(`Nie udało się pobrać wersji z serwera. ${Ve(e)}`)}}async function Ct(e=null){const t=C.value,o=Tt.value;if(!t||!o)return;let a=t.server;const g=await o.open({from:e,action:async()=>{a||(a=await ba())}}),D=C.value;g!=="confirm"||!D||!a||(D.server&&D.server.revision>a.revision&&(a=D.server),Et(a),Ke(),ue.value=`Wczytano wersję z serwera (rev ${a.revision}).`,await oe(),d.value&&c.value?.focus())}async function St(e=null){const t=C.value,o=Mt.value;if(!t||!o||J.value||(We.value=t.revision,await o.open({from:e})!=="confirm"||!C.value))return;const g=We.value;C.value=null,await Fe(!0,g)}function nt(e){return e.currentTarget instanceof HTMLElement?e.currentTarget:null}const It=z(null),Oe=z(!1),Me=z("");let it=null;const Nt=L(()=>C.value?.server?te(C.value.server):null);async function ha(e){const t=C.value;if(!(!t||Oe.value)){if(it=nt(e),Me.value="",!t.server){Oe.value=!0;let o;try{o=await ge.material(Number(s.id))}catch(g){C.value===t&&(Me.value=Ve(g));return}finally{Oe.value=!1}if(C.value!==t)return;const a=p.value;if(a&&Ge(te(o),a)){at(o);return}C.value={...t,revision:Math.max(t.revision,o.revision),server:o}}await oe(),It.value?.open()}}function ka(){Ct(it)}function wa(){St(it)}const X=z(null),Re=z(!1);let st;ve(()=>clearTimeout(st));function _a(e){const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let o=!1;try{o=document.execCommand("copy")}catch{o=!1}return t.remove(),o}async function za(){const e=p.value?.body??"";let t=!1;try{await navigator.clipboard.writeText(e),t=!0}catch{t=_a(e)}t&&(Re.value=!0,clearTimeout(st),st=setTimeout(()=>Re.value=!1,4e3))}const ie=z(!1),re=z(""),ue=z("");let Pt=!1,ot;const ja=L(()=>ie.value?"Zapisywanie…":J.value?"Poczekaj, aż obrazki się wyślą.":C.value?"Najpierw zdecyduj, co zrobić z wersją z serwera.":X.value?"":ma.value?"Popraw zaznaczone pola.":P.value?"Niezapisane zmiany.":ue.value);ae(P,e=>{e?ue.value="":A.value||se()});const $a=L(()=>P.value&&!ie.value&&!J.value&&!C.value&&!X.value);async function Fe(e,t){const o=f.value,a=p.value;if(!(!o||!a||ie.value||X.value||J.value)&&!(t===void 0&&(C.value||!P.value))){Pt=e,ot=t,ie.value=!0,re.value="",ue.value="",T.value={};try{const g=await ge.editMaterial(o.id,Xa(a,t??o.revision));if(f.value!==o)return;f.value=g,ot=void 0,ea(),se(),e?ue.value=`Zapisano (rev ${g.revision}).`:(k.show("Zapisano zmiany."),ft=!0,qt())}catch(g){f.value===o&&await xa(ci(g))}finally{ie.value=!1;const g=ye;ye=0,g&&f.value&&g>f.value.revision&&ut(g)}}}async function xa(e){switch(e.kind){case"conflict":{const t={...e.server,revision:e.revision},o=p.value;if(o&&Ge(te(t),o)){at(t);return}Ae({revision:e.revision,server:t,source:"save"}),await oe(),tt.value?.focus();return}case"invalid":await ga(e.errors);return;case"gone":case"forbidden":C.value=null,X.value=e.kind;return;case"failed":re.value=Qt(e.message);return}}let lt=null,Ee=0,Ce=0,ye=0;async function Ta(e){if(rt(),an())return;const t=Ee;try{const o=await qa(mi(e),{onPublication:a=>{const g=pi(a);g&&g.materialId===e&&ut(g.revision)},onSubscribed:()=>{ut(null)}});if(t!==Ee)return o.close();lt=o}catch{}}function rt(){Ee++,lt?.close(),lt=null,Ce=0,ye=0}ve(rt);async function ut(e){const t=f.value;if(!t||X.value)return;if(e!==null){if(e<=Math.max(t.revision,C.value?.revision??0,Ce))return;if(ie.value){ye=Math.max(ye,e);return}Ce=e}else if(ie.value)return;const o=Ee;let a=null;try{a=await ge.material(t.id)}catch{a=null}finally{Ce===e&&(Ce=0)}const g=f.value;if(o!==Ee||!g||g.id!==t.id||X.value)return;if(!a){e!==null&&e>Math.max(g.revision,C.value?.revision??0)&&Ae({revision:e,server:null,source:C.value?.source??"live"});return}if(a.revision<=Math.max(g.revision,C.value?.server?.revision??0))return;if(ie.value){ye=Math.max(ye,a.revision);return}const D=p.value;D&&Ge(te(a),D)?at(a):P.value?Ae({revision:a.revision,server:a,source:C.value?.source??"live"}):(Et(a),ue.value=`Wczytano nowszą wersję z serwera (rev ${a.revision}).`)}function Ma(){Fe(Pt,ot)}const A=z(null);let Se=null,Ie,Ne=null;function dt(e){Ne=JSON.stringify(e),p.value=e}function ct(){clearTimeout(Ie),Ie=void 0}function se(){ct();const e=f.value,t=p.value;if(!(!e||!t||!e.can_manage||A.value)){if(!P.value){pt(e.id);return}Ga(e.id,{base_revision:Se??e.revision,saved_at:new Date().toISOString(),fields:{...t,tags:[...t.tags]}})}}function Ke(){ct(),A.value=null,Se=null;const e=f.value;e&&pt(e.id)}function Ea(e){const t=Ha(e.id),o=Jt(t,{fields:te(e),revision:e.revision});if(!t||o==="none"){A.value=null,t&&pt(e.id);return}A.value={kind:o,draft:t}}ae(p,e=>{if(!e||!f.value)return;const t=Ne!==null&&JSON.stringify(e)===Ne;if(Ne=null,!t){if(A.value=null,!P.value){se();return}ct(),Ie=setTimeout(se,800)}},{deep:!0}),ae(C,e=>{e||(Se=null)});function Dt(){document.visibilityState==="hidden"&&P.value&&se()}mt(()=>document.addEventListener("visibilitychange",Dt)),ve(()=>{document.removeEventListener("visibilitychange",Dt),Ie!==void 0&&se()});const Ca=L(()=>{const e=A.value,t=f.value;if(!e||!t)return"";const o=sn(e.draft.saved_at);return e.kind==="same"?`Masz niezapisane zmiany z ${o}.`:`Masz niezapisane zmiany z ${o}, zrobione na rev ${e.draft.base_revision}. Na serwerze jest już rev ${t.revision}.`});function Sa(e,t){return e.type!==t.type||e.meeting_id!==t.meeting_id||e.source.trim()!==t.source.trim()||e.url.trim()!==t.url.trim()||[...e.tags].sort().join(` +`):[]}function mn(i,s,m,v){const k=i.length,u=s.length,E=[];if(k*u>fn){for(let d=0;d=0;d--)for(let j=u-1;j>=0;j--)w[d*x+j]=i[d]===s[j]?w[(d+1)*x+j+1]+1:Math.max(w[(d+1)*x+j],w[d*x+j+1]);let c=0,S=0;for(;c=u||c=w[c*x+S+1]?(E.push({kind:"server",i:m+c,j:-1}),c++):(E.push({kind:"mine",i:-1,j:v+S}),S++);return E}function pn(i,s){const m=ta(i),v=ta(s);let k=0;for(;k0;d--)E.push({kind:"same",i:m.length-d,j:v.length-d});const x=[];let w=[],c=[];const S=()=>{const d=Math.min(w.length,c.length);for(let j=0;jk.push(...w),E=w=>{w.length&&(k.length&&v.push({kind:"rows",rows:k}),k=[],v.push({kind:"gap",rows:w}))};let x=0;for(;xd?.removeEventListener("change",f));function p($){if($==null)return"";const b=v.meetings?.find(I=>I.id===$);return b?ra(b):"Wybrany zjazd"}const q=($,b)=>$.length===b.length&&$.every(I=>b.includes(I)),Z=L(()=>{const $=v.server,b=v.mine,I=[],B=(N,_,R)=>I.push({name:N,server:_,mine:R});return $.title.trim()!==b.title.trim()&&B("Tytuł",$.title.trim(),b.title.trim()),$.type!==b.type&&B("Rodzaj",Qe[$.type],Qe[b.type]),$.meeting_id!==b.meeting_id&&B("Zjazd",p($.meeting_id),p(b.meeting_id)),$.source.trim()!==b.source.trim()&&B("Źródło",$.source.trim(),b.source.trim()),$.url.trim()!==b.url.trim()&&B("Link",$.url.trim(),b.url.trim()),q($.tags,b.tags)||B("Tagi",$.tags.join(", "),b.tags.join(", ")),I}),P=L(()=>Gt(v.server.body)===Gt(v.mine.body)),H=L(()=>P.value?[]:yn(pn(v.server.body,v.mine.body))),G=z(new Set);function me($){G.value=new Set(G.value).add($)}function be($){const b=[];let I=[],B=[];const N=()=>{b.push(...I,...B),I=[],B=[]};for(const _ of $){if(_.kind==="same"){N(),b.push({side:"same",no:_.mineNo,text:_.mine??""});continue}_.server!==void 0&&I.push({side:"server",no:_.serverNo,text:_.server}),_.mine!==void 0&&B.push({side:"mine",no:_.mineNo,text:_.mine})}return N(),b}function he(){w=document.activeElement instanceof HTMLElement?document.activeElement:null,c=null,G.value=new Set,E.value?.open||E.value?.showModal(),oe(()=>x.value?.focus())}function O($=null){c=$,E.value?.close()}function $e(){const $=c;c=null;const b=w;if(w=null,$==="load")return k("load");if($==="overwrite")return k("overwrite");b?.isConnected&&b.focus(),k("close")}function ke($){$.target===E.value&&O()}return s({open:he}),($,b)=>(l(),r("dialog",{ref_key:"dialog",ref:E,class:"chat-dialog diff-dialog","aria-labelledby":`diff-h-${h(u)}`,onClose:$e,onClick:ke},[n("div",bn,[n("h2",{id:`diff-h-${h(u)}`,class:"chat-dialog-title"},"Zmiany względem rev "+y(v.revision),9,hn),n("button",{class:"icon-btn",type:"button","aria-label":"Zamknij porównanie",onClick:b[0]||(b[0]=I=>O())},[F(ht,{name:"close"})])]),n("div",kn,[Z.value.length?(l(),r("table",wn,[n("thead",null,[n("tr",null,[b[4]||(b[4]=n("th",{scope:"col"},"Pole",-1)),n("th",_n,"Na serwerze (rev "+y(v.revision)+")",1),b[5]||(b[5]=n("th",{scope:"col"},"U Ciebie",-1))])]),n("tbody",null,[(l(!0),r(U,null,K(Z.value,I=>(l(),r("tr",{key:I.name},[n("th",zn,y(I.name),1),n("td",null,y(I.server||"—"),1),n("td",null,y(I.mine||"—"),1)]))),128))])])):M("",!0),P.value?(l(),r("p",jn,"Treść jest taka sama. Różnią się tylko pola powyżej.")):(l(),r("div",{key:2,class:fe(["diff-body",{split:j.value}]),role:"region","aria-label":"Różnice w treści"},[n("div",$n,[n("span",null,"Na serwerze (rev "+y(v.revision)+")",1),b[6]||(b[6]=n("span",null,"U Ciebie",-1))]),(l(!0),r(U,null,K(H.value,(I,B)=>(l(),r(U,{key:B},[I.kind==="gap"&&!G.value.has(B)?(l(),r("button",{key:0,class:"linkish diff-gap",type:"button",onClick:N=>me(B)}," Pokaż "+y(h(la)(I.rows.length,"niezmieniony wiersz","niezmienione wiersze","niezmienionych wierszy")),9,xn)):j.value?(l(!0),r(U,{key:1},K(I.rows,(N,_)=>(l(),r("div",{key:_,class:"diff-row"},[N.server!==void 0?(l(),r("div",{key:0,class:fe(["diff-line",{server:N.kind!=="same"}])},[n("span",Tn,y(N.serverNo),1),n("span",Mn,y(N.kind==="same"?"":"−"),1),N.kind!=="same"?(l(),r("span",En,y(S.server)+": ",1)):M("",!0),n("span",Cn,y(N.server),1)],2)):(l(),r("div",Sn)),N.mine!==void 0?(l(),r("div",{key:2,class:fe(["diff-line",{mine:N.kind!=="same"}])},[n("span",In,y(N.mineNo),1),n("span",Nn,y(N.kind==="same"?"":"+"),1),N.kind!=="same"?(l(),r("span",Pn,y(S.mine)+": ",1)):M("",!0),n("span",Dn,y(N.mine),1)],2)):(l(),r("div",Ln))]))),128)):(l(!0),r(U,{key:2},K(be(I.rows),(N,_)=>(l(),r("div",{key:_,class:fe(["diff-line",N.side==="same"?"":N.side])},[n("span",Vn,y(N.no),1),n("span",Bn,y(N.side==="server"?"−":N.side==="mine"?"+":""),1),N.side!=="same"?(l(),r("span",Un,y(S[N.side])+": ",1)):M("",!0),n("span",Wn,y(N.text),1)],2))),128))],64))),128))],2))]),n("div",An,[n("button",{class:"btn ghost",type:"button",onClick:b[1]||(b[1]=I=>O("load"))},"Wczytaj wersję z serwera"),n("button",{class:"btn miss",type:"button",onClick:b[2]||(b[2]=I=>O("overwrite"))},"Nadpisz wersję z serwera"),n("button",{ref_key:"closeBtn",ref:x,class:"btn",type:"button",onClick:b[3]||(b[3]=I=>O())},"Zamknij porównanie",512)])],40,gn))}}),Rn={key:0,class:"share-chips","aria-label":"Wybrane tagi"},Fn=["title"],Kn={class:"share-chip-label"},Zn=["aria-label","onClick"],qn=["id","aria-expanded","aria-activedescendant","aria-describedby","aria-invalid","readonly","placeholder"],Hn={key:0,class:"share-option share-empty",role:"option","aria-disabled":"true","aria-selected":"false"},Gn=["id","aria-selected","onMousedown","onMousemove"],Jn={class:"share-option-name"},Yn={class:"sr-only",role:"status","aria-live":"polite"},Xn=je({__name:"TagInput",props:{modelValue:{},tags:{},inputId:{},describedby:{},invalid:{type:Boolean}},emits:["update:modelValue"],setup(i,{expose:s,emit:m}){const v=i,k=m,E=`${kt()}-list`,x=z(null),w=L(()=>v.modelValue.length>=bt),c=L(()=>new Set(v.tags.map(_=>_.name))),{query:S,open:d,active:j,announcement:f,suggestions:p,activeId:q,optionId:Z,announce:P,onKeydown:H,show:G,close:me,hover:be,reset:he}=rn({listId:E,suggest:_=>w.value?[]:Oa(v.tags,_,v.modelValue),onPick:ke,onBackspace:()=>{const _=v.modelValue[v.modelValue.length-1];_!==void 0&&$(_)}}),O=L(()=>w.value?"Masz już 4 tagi":v.modelValue.length?"Dodaj kolejny tag":"Wpisz lub wybierz tag"),$e=L(()=>{const _=S.value.trim();return v.tags.length?_?`Żaden tag nie pasuje do „${_}”.`:"Nie ma więcej tagów do wyboru.":"Słownik tagów jest pusty."});function ke(_){w.value||v.modelValue.includes(_.name)||(k("update:modelValue",Aa(v.modelValue,_.name)),he(),P(`Dodano tag: ${_.name}`))}function $(_){k("update:modelValue",v.modelValue.filter(R=>R!==_)),P(`Usunięto tag: ${_}`),oe(()=>x.value?.focus())}function b(){w.value||G()}function I(_){if(w.value&&(_.key==="ArrowDown"||_.key==="ArrowUp")){_.preventDefault();return}H(_)}function B(_){const R=_.target;(R===_.currentTarget||R.classList.contains("share-chips"))&&(x.value?.focus(),b())}ae(j,()=>{d.value&&oe(()=>document.getElementById(Z(j.value))?.scrollIntoView({block:"nearest"}))});function N(){x.value?.focus()}return s({focus:N}),(_,R)=>(l(),r("div",{class:fe(["share-field tag-field",{full:w.value}]),onClick:B},[i.modelValue.length?(l(),r("ul",Rn,[(l(!0),r(U,null,K(i.modelValue,V=>(l(),r("li",{key:V,class:"share-chip",title:c.value.has(V)?void 0:"Tego tagu nie ma już w słowniku. Możesz go tylko usunąć."},[n("span",Kn,y(V),1),n("button",{class:"share-chip-remove",type:"button","aria-label":`Usuń tag ${V}`,onClick:pe=>$(V)},[F(ht,{name:"close"})],8,Zn)],8,Fn))),128))])):M("",!0),ne(n("input",{id:i.inputId,ref_key:"input",ref:x,"onUpdate:modelValue":R[0]||(R[0]=V=>Wa(S)?S.value=V:null),class:"share-input",type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":h(d)?"true":"false","aria-controls":E,"aria-activedescendant":h(q),"aria-describedby":i.describedby,"aria-invalid":i.invalid?"true":void 0,readonly:w.value,autocomplete:"off",enterkeyhint:"done",placeholder:O.value,onInput:b,onClick:b,onKeydown:I,onBlur:R[1]||(R[1]=(...V)=>h(me)&&h(me)(...V))},null,40,qn),[[Ye,h(S)]]),ne(n("ul",{id:E,class:"share-pop tag-pop",role:"listbox","aria-label":"Pasujące tagi"},[h(p).length?M("",!0):(l(),r("li",Hn,y($e.value),1)),(l(!0),r(U,null,K(h(p),(V,pe)=>(l(),r("li",{id:h(Z)(pe),key:V.id,class:fe(["share-option",{active:pe===h(j)}]),role:"option","aria-selected":pe===h(j)?"true":"false",onMousedown:oa(xe=>ke(V),["prevent"]),onMousemove:xe=>h(be)(pe)},[n("span",Jn,y(V.name),1)],42,Gn))),128))],512),[[Xe,h(d)]]),n("span",Yn,y(h(f)),1)],2))}}),Qn=["image/png","image/jpeg","image/gif","image/webp"],ei=50*1024*1024,ti=20,ca=i=>(i||"").split(";")[0].trim().toLowerCase();function aa(i,s){return Ra(i)||!Qn.includes(ca(i.type))?"type":i.size>ei?"size":s>=ti?"count":null}function ai(i,s){if(i===413)return"size";if(i!==422||!s||typeof s!="object")return null;const m=s.reason;return m==="type"||m==="size"||m==="count"?m:null}const ni={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp"},Be=i=>String(i).padStart(2,"0");function ii(i,s=new Date){const m=`${s.getFullYear()}${Be(s.getMonth()+1)}${Be(s.getDate())}`,v=`${Be(s.getHours())}${Be(s.getMinutes())}${Be(s.getSeconds())}`;return`wklejony-${m}-${v}.${ni[ca(i)]??"png"}`}function si(i){return!i.trim()||/^(image|blob)(\.[a-z0-9]+)?$/i.test(i.trim())}const wt=i=>i.replace(/[[\]\\]/g,"");function oi(i,s){if(s)return"obrazek";const m=i.lastIndexOf("."),v=m>0?i.slice(0,m):i;return wt(v).replace(/[-_]+/g," ").replace(/\s+/g," ").trim()||"obrazek"}function li(i){return`![Wysyłanie: ${wt(i)}…]()`}function ri(i,s){const m=/[\s()<>]/.test(s)?`<${s.replace(/[<>]/g,"")}>`:s;return`![${wt(i)}](${m})`}function ui(i){if(i.length===0)return"";const s=i.reduce((k,u)=>k+Math.max(0,u.loaded),0),m=i.reduce((k,u)=>k+Math.max(0,u.total),0),v=m>0?Math.min(100,Math.round(s/m*100)):0;return i.length===1?`Wysyłanie „${i[0].name}”… ${v}%`:`Wysyłanie ${i.length} obrazków… ${v}%`}function Je(i,s,m=""){switch(i){case"type":return`„${s}”: wklej obrazek PNG, JPG, GIF albo WebP.`;case"size":return`„${s}”: plik jest większy niż 50 MB.`;case"count":return"Materiał ma już 20 plików. Usuń któryś w /bmadmin, żeby dodać obrazek.";case"network":return`„${s}”: nie udało się wysłać. ${m}`.trim()}}const na="Nie udało się wczytać danych.";function di(i){if(!i||typeof i!="object")return!1;const s=i;return typeof s.revision=="number"&&Number.isInteger(s.revision)&&s.revision>0&&!!s.data&&typeof s.data=="object"&&typeof s.data.id=="number"}function ci(i){if(!(i instanceof ua))return{kind:"failed",message:na};switch(i.status){case 409:return di(i.body)?{kind:"conflict",revision:i.body.revision,updatedAt:typeof i.body.updated_at=="string"?i.body.updated_at:"",server:i.body.data}:{kind:"failed",message:i.message};case 422:return Object.keys(i.errors).length?{kind:"invalid",errors:i.errors}:{kind:"failed",message:i.message};case 404:return{kind:"gone"};case 403:return{kind:"forbidden"};default:return{kind:"failed",message:i.message||na}}}function vi(i,s,m){switch(i){case"title":return m.trim()?/already has this title/i.test(s)?"W tym przedmiocie jest już materiał o tym tytule.":/255 characters/.test(s)||m.trim().length>255?"Tytuł może mieć najwyżej 255 znaków.":s:"Podaj tytuł.";case"url":return/http/i.test(s)?"Podaj adres zaczynający się od https:// albo http://.":s;case"source":return/500 characters/.test(s)?"Źródło może mieć najwyżej 500 znaków.":s;case"tags":return/at most 4 tags/i.test(s)?"Wybierz najwyżej 4 tagi.":s;default:return s}}const fi="updated.jz.bm.material";function mi(i){return`materials:${i}`}const ia=i=>typeof i=="number"&&Number.isInteger(i)&&i>=1;function pi(i){if(!i||typeof i!="object")return null;const s=i;if(s.event!==fi||!s.payload||typeof s.payload!="object")return null;const m=s.payload;return!ia(m.material_id)||!ia(m.revision)?null:{materialId:m.material_id,revision:m.revision}}const yi={class:"material-edit"},gi={key:0,class:"empty"},bi=["href"],hi=["role","aria-labelledby"],ki=["id"],wi={key:0,class:"conflict-line"},_i={key:1,class:"conflict-line"},zi={class:"btn-row"},ji=["aria-busy"],$i=["disabled"],xi={key:2,class:"error-text",role:"alert"},Ti={key:1,class:"notice draft-offer no-print",role:"status"},Mi={class:"draft-offer-title"},Ei={class:"btn-row"},Ci={class:"field"},Si=["for"],Ii=["id","aria-invalid","aria-describedby"],Ni=["id"],Pi=["open"],Di={class:"edit-details-values"},Li={class:"grid-3"},Vi={class:"field"},Bi=["for"],Ui=["id","aria-invalid","aria-describedby"],Wi=["value"],Ai=["id"],Oi={class:"field"},Ri=["for"],Fi=["id","disabled","aria-invalid","aria-describedby"],Ki=["value"],Zi=["value"],qi=["id"],Hi=["id"],Gi={class:"field"},Ji={class:"edit-course"},Yi={class:"grid-2"},Xi={class:"field"},Qi=["for"],es=["id","aria-invalid","aria-describedby"],ts=["id"],as={class:"field"},ns=["for"],is=["id","aria-invalid","aria-describedby"],ss=["id"],os={class:"field edit-tags"},ls={class:"edit-tags-head"},rs=["id","for"],us={class:"label edit-tags-count","aria-live":"polite"},ds=["aria-labelledby","aria-describedby"],cs={key:0,class:"muted small"},vs=["id"],fs=["id"],ms={key:4,class:"error-text",role:"alert"},ps={class:"edit-block","aria-label":"Treść"},ys={key:0,class:"pulpit-tabs edit-tabs no-print",role:"tablist","aria-label":"Widok treści"},gs=["id","aria-selected","aria-controls","tabindex","onClick","onKeydown"],bs={class:"edit-toolbar-row no-print"},hs=["aria-expanded"],ks=["id"],ws={id:"md-preview",class:"edit-pane edit-preview prose",role:"region","aria-label":"Podgląd"},_s={key:0,class:"label edit-preview-caption"},zs=["innerHTML"],js={key:2,class:"muted"},$s=["id"],xs={class:"edit-status-strip no-print"},Ts={key:1,"aria-hidden":"true"},Ms={key:2,class:"notice error edit-upload-errors no-print",role:"alert"},Es=["onClick"],Cs={key:3,class:"notice error edit-save-error",role:"alert"},Ss={key:4,class:"notice error edit-save-error",role:"alert"},Is={class:"edit-actions no-print"},Ns={class:"btn-row"},Ps=["disabled","aria-busy"],Ds=["href"],Ls={class:"muted small",role:"status"},sa="bm.editor.preview",Ks=je({__name:"MaterialEditView",props:{id:{}},setup(i){const s=i,m=en(),v=Fa(),k=Ka(),u=kt(),E=je({render:()=>yt("div",{class:"skeleton edit-pane-skeleton","aria-busy":"true","aria-label":"Wczytywanie edytora"})}),x=je({render:()=>yt("div",{class:"notice error",role:"alert"},["Nie udało się wczytać edytora. Sprawdź połączenie i spróbuj ponownie. ",yt("button",{class:"linkish",type:"button",onClick:()=>window.location.reload()},"Spróbuj ponownie")])}),w=Ya({loader:()=>tn(()=>import("./MarkdownEditor-DPmxtwdc.js"),__vite__mapDeps([0,1,2])),loadingComponent:E,errorComponent:x,delay:0}),c=z(null),S=typeof window.matchMedia=="function"?window.matchMedia("(min-width: 900px)"):null,d=z(S?.matches??!0);function j(e){d.value=e.matches}S?.addEventListener("change",j),ve(()=>S?.removeEventListener("change",j));const f=z(null);ae(f,e=>{e?.title&&(document.title=`Edycja: ${e.title} · BM II°`)});const p=z(null),q=z("");async function Z(){rt(),Ft(),Ie!==void 0&&se(),A.value=null,Se=null,Ne=null,f.value=null,p.value=null,q.value="",re.value="",ue.value="",C.value=null,T.value={},X.value=null,Re.value=!1;try{const e=await ge.material(Number(s.id));f.value=e,dt(te(e))}catch(e){q.value=Ve(e);return}f.value.can_manage&&(Ea(f.value),me(),$e(),Ta(f.value.id))}mt(Z),ae(()=>s.id,Z);const P=L(()=>!!p.value&&!!f.value&&!Ge(p.value,te(f.value))),H=z(null),G=z("");async function me(){G.value="";try{H.value=await ge.tags()}catch(e){G.value=Ve(e)}}const be=L(()=>(p.value?.tags.length??0)>=bt),he=z(null),O=z(!1);async function $e(){O.value=!1,await v.loadMeetings(),O.value=v.meetings===null}const ke=L(()=>nn(v.meetings??[])),$=L(()=>{const e=p.value?.meeting_id;return e==null?null:(v.meetings??[]).find(t=>t.id===e)?.number??null}),b=Object.entries(Qe),I=z(d.value);function B(e){I.value=e.target.open}const N=L(()=>{const e=p.value;if(!e)return"";const t=e.meeting_id==null?"bez zjazdu":$.value!=null?`Zjazd ${$.value}`:"zjazd";return`${Qe[e.type]} · ${t} · ${la(e.tags.length,"tag","tagi","tagów")}`});function _(){try{const e=window.localStorage.getItem(sa);return e==="1"?!0:e==="0"?!1:null}catch{return null}}const R=typeof window.matchMedia=="function"?window.matchMedia("(min-width: 1100px)").matches:!0,V=z(_()??R);function pe(){V.value=!V.value;try{window.localStorage.setItem(sa,V.value?"1":"0")}catch{}}const xe=[{id:"edit",label:"Edycja"},{id:"preview",label:"Podgląd"}],le=z("edit"),_t=z([]);function va(e,t){const o=da(e.key,t,xe.length);o!==null&&(e.preventDefault(),le.value=xe[o].id,_t.value[o]?.focus())}const zt=L(()=>d.value||le.value==="edit"),jt=L(()=>d.value?V.value:le.value==="preview"),et=z("");let Te;function $t(){clearTimeout(Te),Te=void 0,et.value=un(p.value?.body??"",{newTabLinks:!0})}ae(()=>[p.value?.body,jt.value],([,e],t)=>{e&&(clearTimeout(Te),!t||!t[1]?$t():Te=setTimeout($t,150))},{immediate:!0}),ve(()=>clearTimeout(Te)),ae(c,(e,t)=>{e&&!t&&d.value&&e.focus()});const Ue=["title","type","meeting_id","source","url","tags","body"],fa=new Set(["type","meeting_id","source","url","tags"]),T=z({}),ma=L(()=>Object.keys(T.value).length>0),W=e=>`${e}-e-${u}`,xt=(...e)=>e.filter(Boolean).join(" ")||void 0;for(const e of Ue)ae(()=>p.value?.[e],()=>{T.value[e]!==void 0&&delete T.value[e]});function pa(e,t){const o=e[t];return Array.isArray(o)?o.join(", "):o==null?"":String(o)}function ya(e){if(e==="body"){le.value="edit",c.value?.focus();return}if(e==="tags"){he.value?.focus();return}const t={title:`title-${u}`,type:`type-${u}`,meeting_id:`meeting-${u}`,source:`source-${u}`,url:`url-${u}`};document.getElementById(t[e])?.focus()}async function ga(e){const t=p.value;if(!t)return;const o={};for(const g of Ue){const D=e[g]?.[0];D&&(o[g]=vi(g,D,pa(t,g)))}const a=Ue.find(g=>o[g]!==void 0);if(!a){re.value=Qt(Object.values(e).flat()[0]??"Błąd 422");return}T.value=o,Ue.some(g=>o[g]!==void 0&&fa.has(g))&&(I.value=!0),await oe(),ya(a)}const C=z(null),tt=z(null),Tt=z(null),Mt=z(null),We=z(0);function Ae(e){re.value="",T.value={},Me.value="",C.value=e}function at(e){f.value=e,C.value=null,ue.value="Wersja z serwera jest taka sama jak Twoja."}function Et(e){f.value=e,dt(te(e)),C.value=null,T.value={},re.value="";const t=A.value;if(t){const o=Jt(t.draft,{fields:te(e),revision:e.revision});o==="none"?Ke():A.value={...t,kind:o}}}async function ba(){try{return await ge.material(Number(s.id))}catch(e){throw new Error(`Nie udało się pobrać wersji z serwera. ${Ve(e)}`)}}async function Ct(e=null){const t=C.value,o=Tt.value;if(!t||!o)return;let a=t.server;const g=await o.open({from:e,action:async()=>{a||(a=await ba())}}),D=C.value;g!=="confirm"||!D||!a||(D.server&&D.server.revision>a.revision&&(a=D.server),Et(a),Ke(),ue.value=`Wczytano wersję z serwera (rev ${a.revision}).`,await oe(),d.value&&c.value?.focus())}async function St(e=null){const t=C.value,o=Mt.value;if(!t||!o||J.value||(We.value=t.revision,await o.open({from:e})!=="confirm"||!C.value))return;const g=We.value;C.value=null,await Fe(!0,g)}function nt(e){return e.currentTarget instanceof HTMLElement?e.currentTarget:null}const It=z(null),Oe=z(!1),Me=z("");let it=null;const Nt=L(()=>C.value?.server?te(C.value.server):null);async function ha(e){const t=C.value;if(!(!t||Oe.value)){if(it=nt(e),Me.value="",!t.server){Oe.value=!0;let o;try{o=await ge.material(Number(s.id))}catch(g){C.value===t&&(Me.value=Ve(g));return}finally{Oe.value=!1}if(C.value!==t)return;const a=p.value;if(a&&Ge(te(o),a)){at(o);return}C.value={...t,revision:Math.max(t.revision,o.revision),server:o}}await oe(),It.value?.open()}}function ka(){Ct(it)}function wa(){St(it)}const X=z(null),Re=z(!1);let st;ve(()=>clearTimeout(st));function _a(e){const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let o=!1;try{o=document.execCommand("copy")}catch{o=!1}return t.remove(),o}async function za(){const e=p.value?.body??"";let t=!1;try{await navigator.clipboard.writeText(e),t=!0}catch{t=_a(e)}t&&(Re.value=!0,clearTimeout(st),st=setTimeout(()=>Re.value=!1,4e3))}const ie=z(!1),re=z(""),ue=z("");let Pt=!1,ot;const ja=L(()=>ie.value?"Zapisywanie…":J.value?"Poczekaj, aż obrazki się wyślą.":C.value?"Najpierw zdecyduj, co zrobić z wersją z serwera.":X.value?"":ma.value?"Popraw zaznaczone pola.":P.value?"Niezapisane zmiany.":ue.value);ae(P,e=>{e?ue.value="":A.value||se()});const $a=L(()=>P.value&&!ie.value&&!J.value&&!C.value&&!X.value);async function Fe(e,t){const o=f.value,a=p.value;if(!(!o||!a||ie.value||X.value||J.value)&&!(t===void 0&&(C.value||!P.value))){Pt=e,ot=t,ie.value=!0,re.value="",ue.value="",T.value={};try{const g=await ge.editMaterial(o.id,Xa(a,t??o.revision));if(f.value!==o)return;f.value=g,ot=void 0,ea(),se(),e?ue.value=`Zapisano (rev ${g.revision}).`:(k.show("Zapisano zmiany."),ft=!0,qt())}catch(g){f.value===o&&await xa(ci(g))}finally{ie.value=!1;const g=ye;ye=0,g&&f.value&&g>f.value.revision&&ut(g)}}}async function xa(e){switch(e.kind){case"conflict":{const t={...e.server,revision:e.revision},o=p.value;if(o&&Ge(te(t),o)){at(t);return}Ae({revision:e.revision,server:t,source:"save"}),await oe(),tt.value?.focus();return}case"invalid":await ga(e.errors);return;case"gone":case"forbidden":C.value=null,X.value=e.kind;return;case"failed":re.value=Qt(e.message);return}}let lt=null,Ee=0,Ce=0,ye=0;async function Ta(e){if(rt(),an())return;const t=Ee;try{const o=await qa(mi(e),{onPublication:a=>{const g=pi(a);g&&g.materialId===e&&ut(g.revision)},onSubscribed:()=>{ut(null)}});if(t!==Ee)return o.close();lt=o}catch{}}function rt(){Ee++,lt?.close(),lt=null,Ce=0,ye=0}ve(rt);async function ut(e){const t=f.value;if(!t||X.value)return;if(e!==null){if(e<=Math.max(t.revision,C.value?.revision??0,Ce))return;if(ie.value){ye=Math.max(ye,e);return}Ce=e}else if(ie.value)return;const o=Ee;let a=null;try{a=await ge.material(t.id)}catch{a=null}finally{Ce===e&&(Ce=0)}const g=f.value;if(o!==Ee||!g||g.id!==t.id||X.value)return;if(!a){e!==null&&e>Math.max(g.revision,C.value?.revision??0)&&Ae({revision:e,server:null,source:C.value?.source??"live"});return}if(a.revision<=Math.max(g.revision,C.value?.server?.revision??0))return;if(ie.value){ye=Math.max(ye,a.revision);return}const D=p.value;D&&Ge(te(a),D)?at(a):P.value?Ae({revision:a.revision,server:a,source:C.value?.source??"live"}):(Et(a),ue.value=`Wczytano nowszą wersję z serwera (rev ${a.revision}).`)}function Ma(){Fe(Pt,ot)}const A=z(null);let Se=null,Ie,Ne=null;function dt(e){Ne=JSON.stringify(e),p.value=e}function ct(){clearTimeout(Ie),Ie=void 0}function se(){ct();const e=f.value,t=p.value;if(!(!e||!t||!e.can_manage||A.value)){if(!P.value){pt(e.id);return}Ga(e.id,{base_revision:Se??e.revision,saved_at:new Date().toISOString(),fields:{...t,tags:[...t.tags]}})}}function Ke(){ct(),A.value=null,Se=null;const e=f.value;e&&pt(e.id)}function Ea(e){const t=Ha(e.id),o=Jt(t,{fields:te(e),revision:e.revision});if(!t||o==="none"){A.value=null,t&&pt(e.id);return}A.value={kind:o,draft:t}}ae(p,e=>{if(!e||!f.value)return;const t=Ne!==null&&JSON.stringify(e)===Ne;if(Ne=null,!t){if(A.value=null,!P.value){se();return}ct(),Ie=setTimeout(se,800)}},{deep:!0}),ae(C,e=>{e||(Se=null)});function Dt(){document.visibilityState==="hidden"&&P.value&&se()}mt(()=>document.addEventListener("visibilitychange",Dt)),ve(()=>{document.removeEventListener("visibilitychange",Dt),Ie!==void 0&&se()});const Ca=L(()=>{const e=A.value,t=f.value;if(!e||!t)return"";const o=sn(e.draft.saved_at);return e.kind==="same"?`Masz niezapisane zmiany z ${o}.`:`Masz niezapisane zmiany z ${o}, zrobione na rev ${e.draft.base_revision}. Na serwerze jest już rev ${t.revision}.`});function Sa(e,t){return e.type!==t.type||e.meeting_id!==t.meeting_id||e.source.trim()!==t.source.trim()||e.url.trim()!==t.url.trim()||[...e.tags].sort().join(` `)!==[...t.tags].sort().join(` `)}async function Lt(){const e=A.value,t=f.value;if(!e||!t)return;A.value=null;const o=e.draft.fields;if(dt({...o,tags:[...o.tags]}),Sa(o,te(t))&&(I.value=!0),e.kind==="older"){Se=e.draft.base_revision,Ae({revision:t.revision,server:t,source:"live"}),await oe(),tt.value?.focus();return}le.value="edit",await oe(),c.value?.focusEnd()}const Q=z([]),de=z([]),J=L(()=>Q.value.length>0),Vt=L(()=>ui(Q.value)),Ia=L(()=>{const e=Q.value.reduce((o,a)=>o+a.total,0),t=Q.value.reduce((o,a)=>o+a.loaded,0);return e>0?Math.min(100,Math.round(t/e*100)):0}),Bt=z("");ae(J,e=>{e&&(Bt.value=Vt.value)});const Ut=z(null);let Wt=0,Pe=0;const Ze=new Map,we=new Map,vt=new Set;function At(){const e=new Set((f.value?.files??[]).map(t=>t.id));for(const t of vt)e.add(t);return e.size+Q.value.length}function qe(e,t=null){if(!t&&de.value.some(a=>!a.retry&&a.text===e))return;const o=++Wt;t&&we.set(o,t),de.value.push({key:o,text:e,retry:!!t})}function Ot(e,t,o){const a=f.value;if(!a||!a.can_manage||X.value||!c.value)return;let g=t;for(const D of e){const ce=o&&si(D.name),ee=ce?new File([D],ii(D.type),{type:D.type}):D,De=aa(ee,At());if(De){qe(Je(De,ee.name));continue}Rt(ee,oi(ee.name,ce),g)&&(g=null)}}function Na(e){Ot(e.files,e.pos,e.pasted)}function Pa(){Ut.value?.click()}function Da(e){const t=e.target,o=Array.from(t.files??[]);t.value="",o.length!==0&&(Ot(o,null,!1),c.value?.focus())}function Rt(e,t,o){const a=f.value,g=c.value;if(!a||!g)return!1;const D=Pe,ce=g.insertUpload(o,li(e.name)),ee=++Wt,De=new AbortController;Ze.set(ee,De),Q.value.push({key:ee,token:ce,name:e.name,loaded:0,total:Math.max(e.size,1)});const Ba=Y=>{const _e=Q.value.find(Ua=>Ua.key===ee);_e&&(_e.loaded=Y/100*_e.total)};return ge.uploadMaterialImage(a.id,e,Ba,De.signal).then(Y=>{D===Pe&&(vt.add(Y.id),c.value?.replaceUpload(ce,ri(t,Y.url)),ea())}).catch(Y=>{if(D!==Pe)return;c.value?.removeUpload(ce);const _e=Y instanceof ua?ai(Y.status,Y.body):null;if(_e){c.value?.forgetUpload(ce),qe(Je(_e,e.name));return}qe(Je("network",e.name,Ve(Y)),{file:e,alt:t,token:ce})}).finally(()=>{Ze.delete(ee),D===Pe&&(Q.value=Q.value.filter(Y=>Y.key!==ee))}),!0}function La(e){const t=we.get(e);if(we.delete(e),de.value=de.value.filter(D=>D.key!==e),!t)return;const o=c.value,a=o?.uploadSpot(t.token)??null;o?.forgetUpload(t.token);const g=aa(t.file,At());if(g){qe(Je(g,t.file.name));return}Rt(t.file,t.alt,a)}function Va(){for(const e of we.values())c.value?.forgetUpload(e.token);we.clear(),de.value=[]}function Ft(){Pe++;for(const e of Ze.values())e.abort();Ze.clear(),we.clear(),vt.clear(),Q.value=[],de.value=[]}ve(Ft);const Kt=z(null);let ft=!1;Za(async()=>{const e=Kt.value;if(ft||!P.value||!e)return!0;const t=await e.open();return t==="cancel"?!1:(t==="confirm"?Ke():se(),ft=!0,!0)});function Zt(e){P.value&&se(),!(!P.value&&!J.value)&&(e.preventDefault(),e.returnValue="")}mt(()=>window.addEventListener("beforeunload",Zt)),ve(()=>window.removeEventListener("beforeunload",Zt));const He=L(()=>`/materialy/${s.id}`);function qt(){const e=window.history.state?.back;let t=!1;if(typeof e=="string"&&e)try{const o=m.resolve(e);t=o.name==="material"&&String(o.params.id)===s.id}catch{t=!1}t?m.back():m.replace(He.value)}function Ht(e){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),qt())}return(e,t)=>{const o=Qa("router-link");return l(),r("div",yi,[F(ln,{ready:!!f.value,error:q.value,onRetry:t[12]||(t[12]=a=>Z())},{default:Le(()=>[f.value?(l(),r(U,{key:0},[f.value.can_manage?p.value?(l(),r(U,{key:1},[F(on,{eyebrow:`Edycja · rev ${f.value.revision}`,title:"Edytuj materiał"},{default:Le(()=>[F(o,{to:He.value,custom:""},{default:Le(({href:a})=>[n("a",{class:"btn small ghost",href:a,onClick:Ht},"← Materiał",8,bi)]),_:1},8,["to"])]),_:1},8,["eyebrow"]),C.value?(l(),r("div",{key:0,ref_key:"bannerEl",ref:tt,class:"notice conflict no-print",role:C.value.source==="save"?"alert":"status",tabindex:"-1","aria-labelledby":`conflict-h-${h(u)}`},[n("p",{id:`conflict-h-${h(u)}`,class:"conflict-title"},"Zmieniono gdzie indziej (rev "+y(C.value.revision)+")",9,ki),C.value.source==="save"?(l(),r("p",wi,"Na serwerze jest nowsza wersja. Twoje zmiany są nadal tutaj i w kopii w przeglądarce.")):(l(),r("p",_i,"Ten materiał zmieniono w trakcie Twojej edycji. Twoje zmiany nie są jeszcze zapisane.")),n("div",zi,[n("button",{class:"btn small",type:"button","aria-busy":Oe.value?"true":void 0,onClick:ha},"Pokaż zmiany",8,ji),n("button",{class:"btn small ghost",type:"button",onClick:t[0]||(t[0]=a=>Ct(nt(a)))},"Wczytaj wersję z serwera"),n("button",{class:"btn small miss",type:"button",disabled:J.value,onClick:t[1]||(t[1]=a=>St(nt(a)))},"Nadpisz",8,$i)]),Me.value?(l(),r("p",xi,"Nie udało się pobrać wersji z serwera. "+y(Me.value),1)):M("",!0)],8,hi)):M("",!0),A.value&&!C.value?(l(),r("div",Ti,[n("p",Mi,y(Ca.value),1),n("div",Ei,[A.value.kind==="same"?(l(),r("button",{key:0,class:"btn small",type:"button",onClick:Lt},"Przywróć niezapisane zmiany")):(l(),r("button",{key:1,class:"btn small",type:"button",onClick:Lt},"Przywróć i porównaj")),n("button",{class:"btn small ghost",type:"button",onClick:Ke},"Odrzuć kopię")])])):M("",!0),C.value&&Nt.value?(l(),Yt(On,{key:2,ref_key:"diffDialog",ref:It,revision:C.value.revision,server:Nt.value,mine:p.value,meetings:h(v).meetings,onLoad:ka,onOverwrite:wa},null,8,["revision","server","mine","meetings"])):M("",!0),F(gt,{ref_key:"loadDialog",ref:Tt,tone:"danger",title:"Wczytać wersję z serwera?",body:"Twoje zmiany w edytorze przepadną, razem z kopią w przeglądarce.","confirm-label":"Wczytaj wersję z serwera","cancel-label":"Zostaw moje zmiany"},null,512),F(gt,{ref_key:"overwriteDialog",ref:Mt,tone:"danger",title:"Nadpisać wersję z serwera?",body:`Twoja wersja zastąpi rev ${We.value}. Zmiany z rev ${We.value}, których nie masz u siebie, przepadną.`,"confirm-label":"Nadpisz wersję z serwera","cancel-label":"Wróć do edycji"},null,8,["body"]),F(gt,{ref_key:"leaveDialog",ref:Kt,tone:"danger",title:"Wyjść z edytora?",body:"Masz niezapisane zmiany. Jeśli wyjdziesz, zostaną w tej przeglądarce i przy następnym otwarciu edytora zaproponujemy ich przywrócenie.","confirm-label":"Odrzuć zmiany","extra-label":"Wyjdź z edytora","extra-class":"btn ghost","cancel-label":"Wróć do edycji","cancel-class":"btn"},null,512),n("div",Ci,[n("label",{for:`title-${h(u)}`},"Tytuł",8,Si),ne(n("input",{id:`title-${h(u)}`,"onUpdate:modelValue":t[2]||(t[2]=a=>p.value.title=a),type:"text",maxlength:"255",required:"",autocomplete:"off","aria-invalid":T.value.title?"true":void 0,"aria-describedby":T.value.title?W("title"):void 0},null,8,Ii),[[Ye,p.value.title]]),T.value.title?(l(),r("p",{key:0,id:W("title"),class:"error-text"},y(T.value.title),9,Ni)):M("",!0)]),n("details",{class:"edit-details",open:I.value,onToggle:B},[n("summary",null,[t[15]||(t[15]=ze(" Szczegóły ",-1)),n("span",Di,y(N.value),1)]),n("div",Li,[n("div",Vi,[n("label",{for:`type-${h(u)}`},"Rodzaj",8,Bi),ne(n("select",{id:`type-${h(u)}`,"onUpdate:modelValue":t[3]||(t[3]=a=>p.value.type=a),"aria-invalid":T.value.type?"true":void 0,"aria-describedby":T.value.type?W("type"):void 0},[(l(!0),r(U,null,K(h(b),([a,g])=>(l(),r("option",{key:a,value:a},y(g),9,Wi))),128))],8,Ui),[[Xt,p.value.type]]),T.value.type?(l(),r("p",{key:0,id:W("type"),class:"error-text"},y(T.value.type),9,Ai)):M("",!0)]),n("div",Oi,[n("label",{for:`meeting-${h(u)}`},"Zjazd",8,Ri),ne(n("select",{id:`meeting-${h(u)}`,"onUpdate:modelValue":t[4]||(t[4]=a=>p.value.meeting_id=a),disabled:O.value,"aria-invalid":T.value.meeting_id?"true":void 0,"aria-describedby":xt(O.value?`meeting-e-${h(u)}`:"",T.value.meeting_id?W("meeting_id"):"")},[t[16]||(t[16]=n("option",{value:null},"Bez zjazdu",-1)),h(v).meetings?(l(!0),r(U,{key:0},K(ke.value,a=>(l(),r("option",{key:a.id,value:a.id},y(h(ra)(a)),9,Ki))),128)):p.value.meeting_id!=null?(l(),r("option",{key:1,value:p.value.meeting_id},"Wybrany zjazd",8,Zi)):M("",!0)],8,Fi),[[Xt,p.value.meeting_id]]),O.value?(l(),r("p",{key:0,id:`meeting-e-${h(u)}`,class:"error-text"},"Nie udało się wczytać zjazdów.",8,qi)):M("",!0),T.value.meeting_id?(l(),r("p",{key:1,id:W("meeting_id"),class:"error-text"},y(T.value.meeting_id),9,Hi)):M("",!0)]),n("div",Gi,[t[17]||(t[17]=n("span",{class:"label"},"Przedmiot",-1)),n("span",Ji,y(f.value.course?.name??"bez przedmiotu"),1),t[18]||(t[18]=n("span",{class:"muted small"},"Przedmiotu nie można zmienić.",-1))])]),n("div",Yi,[n("div",Xi,[n("label",{for:`source-${h(u)}`},"Źródło",8,Qi),ne(n("input",{id:`source-${h(u)}`,"onUpdate:modelValue":t[5]||(t[5]=a=>p.value.source=a),type:"text",maxlength:"500",placeholder:"np. autor, tytuł, strony","aria-invalid":T.value.source?"true":void 0,"aria-describedby":T.value.source?W("source"):void 0},null,8,es),[[Ye,p.value.source]]),T.value.source?(l(),r("p",{key:0,id:W("source"),class:"error-text"},y(T.value.source),9,ts)):M("",!0)]),n("div",as,[n("label",{for:`url-${h(u)}`},"Link",8,ns),ne(n("input",{id:`url-${h(u)}`,"onUpdate:modelValue":t[6]||(t[6]=a=>p.value.url=a),type:"url",maxlength:"2048",inputmode:"url",placeholder:"https://…","aria-invalid":T.value.url?"true":void 0,"aria-describedby":T.value.url?W("url"):void 0},null,8,is),[[Ye,p.value.url]]),T.value.url?(l(),r("p",{key:0,id:W("url"),class:"error-text"},y(T.value.url),9,ss)):M("",!0)])]),n("div",os,[n("div",ls,[n("label",{id:`tags-${h(u)}`,class:"label",for:H.value?`tags-in-${h(u)}`:void 0},"Tagi",8,rs),n("span",us,y(p.value.tags.length)+" z "+y(h(bt)),1)]),H.value?(l(),Yt(Xn,{key:0,ref_key:"tagInput",ref:he,modelValue:p.value.tags,"onUpdate:modelValue":t[7]||(t[7]=a=>p.value.tags=a),tags:H.value,"input-id":`tags-in-${h(u)}`,invalid:!!T.value.tags,describedby:xt(T.value.tags?W("tags"):"",be.value?`tags-h-${h(u)}`:"")},null,8,["modelValue","tags","input-id","invalid","describedby"])):(l(),r("div",{key:1,class:"chips wrap",role:"group","aria-labelledby":`tags-${h(u)}`,"aria-describedby":T.value.tags?W("tags"):void 0},[(l(!0),r(U,null,K(p.value.tags,a=>(l(),r("span",{key:a,class:"chip on"},y(a),1))),128)),G.value?M("",!0):(l(),r("span",cs,"Wczytywanie tagów…"))],8,ds)),T.value.tags?(l(),r("p",{key:2,id:W("tags"),class:"error-text"},y(T.value.tags),9,vs)):M("",!0),H.value&&be.value?(l(),r("p",{key:3,id:`tags-h-${h(u)}`,class:"muted small"},"Maksymalnie 4 tagi. Usuń któryś, żeby dodać inny.",8,fs)):M("",!0),G.value&&!H.value?(l(),r("p",ms,[t[19]||(t[19]=ze(" Nie udało się wczytać tagów. ",-1)),n("button",{class:"linkish",type:"button",onClick:me},"Spróbuj ponownie")])):M("",!0)])],40,Pi),n("section",ps,[d.value?M("",!0):(l(),r("div",ys,[(l(),r(U,null,K(xe,(a,g)=>n("button",{id:`edit-tab-${a.id}-${h(u)}`,key:a.id,ref_for:!0,ref_key:"tabEls",ref:_t,class:"pulpit-tab",type:"button",role:"tab","aria-selected":le.value===a.id?"true":"false","aria-controls":a.id==="edit"?`md-editor-${h(u)}`:"md-preview",tabindex:le.value===a.id?0:-1,onClick:D=>le.value=a.id,onKeydown:D=>va(D,g)},y(a.label),41,gs)),64))])),n("div",bs,[ne(F(vn,{onCommand:t[8]||(t[8]=a=>c.value?.run(a)),onPickImage:Pa},null,512),[[Xe,zt.value]]),n("input",{ref_key:"imageInput",ref:Ut,type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:"",hidden:"",tabindex:"-1","aria-hidden":"true",onChange:Da},null,544),d.value?(l(),r("button",{key:0,class:"btn small ghost edit-preview-toggle",type:"button","aria-controls":"md-preview","aria-expanded":V.value?"true":"false",onClick:pe},y(V.value?"Ukryj podgląd":"Pokaż podgląd"),9,hs)):M("",!0)]),n("div",{class:fe(["edit-panes",{split:d.value&&V.value}])},[ne(n("div",{id:`md-editor-${h(u)}`,class:"edit-pane edit-editor"},[F(h(w),{ref_key:"editor",ref:c,modelValue:p.value.body,"onUpdate:modelValue":t[9]||(t[9]=a=>p.value.body=a),onSave:t[10]||(t[10]=a=>Fe(!0)),onImages:Na},null,8,["modelValue"])],8,ks),[[Xe,zt.value]]),ne(n("section",ws,[d.value?(l(),r("span",_s,"Podgląd")):M("",!0),et.value?(l(),r("div",{key:1,innerHTML:et.value},null,8,zs)):(l(),r("p",js,"Podgląd pojawi się, gdy coś napiszesz."))],512),[[Xe,jt.value]])],2),T.value.body?(l(),r("p",{key:1,id:W("body"),class:"error-text"},y(T.value.body),9,$s)):M("",!0),n("div",xs,[J.value?(l(),r("span",{key:0,class:"edit-upload-bar",style:Ja({width:`${Ia.value}%`}),"aria-hidden":"true"},null,4)):M("",!0),J.value?(l(),r("span",Ts,y(Vt.value),1)):M("",!0),n("span",{role:"status",class:fe({"sr-only":J.value})},y(J.value?Bt.value:"Wklejone obrazki stają się plikami materiału, które widzi każdy, kto ma link."),3)]),de.value.length?(l(),r("div",Ms,[(l(!0),r(U,null,K(de.value,a=>(l(),r("p",{key:a.key,class:"edit-upload-error"},[ze(y(a.text)+" ",1),a.retry?(l(),r("button",{key:0,class:"linkish",type:"button",onClick:g=>La(a.key)},"Spróbuj ponownie",8,Es)):M("",!0)]))),128)),n("button",{class:"linkish",type:"button",onClick:Va},"Ukryj błędy")])):M("",!0)]),X.value?(l(),r("div",Cs,[ze(y(X.value==="gone"?"Tego materiału nie ma już w Materiałach (usunięty albo przeniesiony do szkiców). Twoje zmiany zostały w tej przeglądarce.":"Nie możesz już edytować tego materiału. Twoje zmiany zostały w tej przeglądarce.")+" ",1),n("button",{class:"linkish",type:"button",onClick:za},y(Re.value?"Skopiowano.":"Skopiuj treść"),1)])):re.value?(l(),r("div",Ss,[ze(" Nie udało się zapisać: "+y(re.value)+". Twoje zmiany zostały w tej przeglądarce. ",1),n("button",{class:"linkish",type:"button",onClick:Ma},"Spróbuj ponownie")])):M("",!0),n("div",Is,[n("div",Ns,[n("button",{class:"btn primary",type:"button",disabled:!$a.value,"aria-busy":ie.value?"true":void 0,onClick:t[11]||(t[11]=a=>Fe(!0))},"Zapisz zmiany",8,Ps),F(o,{to:He.value,custom:""},{default:Le(({href:a})=>[n("a",{class:"btn ghost",href:a,onClick:Ht},"Wróć do materiału",8,Ds)]),_:1},8,["to"]),n("span",Ls,y(ja.value),1)])])],64)):M("",!0):(l(),r("div",gi,[t[14]||(t[14]=n("p",null,"Nie możesz edytować tego materiału.",-1)),F(o,{to:He.value},{default:Le(()=>[...t[13]||(t[13]=[ze("Wróć do materiału",-1)])]),_:1},8,["to"])]))],64)):M("",!0)]),_:1},8,["ready","error"])])}}});export{Ks as default}; diff --git a/public/assets/MaterialView-B3T6rMpS.js b/public/assets/MaterialView-CMEk1fcU.js similarity index 96% rename from public/assets/MaterialView-B3T6rMpS.js rename to public/assets/MaterialView-CMEk1fcU.js index 9aab517..35c7fd7 100644 --- a/public/assets/MaterialView-B3T6rMpS.js +++ b/public/assets/MaterialView-CMEk1fcU.js @@ -1 +1 @@ -import{d as ae,n,c as o,b as l,F as E,E as R,t as c,e as r,av as M,i as g,_ as te,f as u,w as G,v as ne,aw as le,ax as oe,h as se,C as ie,X as re,r as y,x as b,ay as ue,ae as ce,q as de,U as X,o as pe,j as w,al as C,ap as A,T as ve,ar as me,s as J,p as h,at as ye,a1 as fe,g as _e,az as he,aA as Y,A as be,aB as ke,l as we,m as ge}from"./index-CZVUqkdk.js";import{_ as $e}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as ze}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{u as Me,r as Ce}from"./markdown-B8hp6mJg.js";import{_ as Ve}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js";import{b as Q,c as ee}from"./materialListCache-DQPoPhVA.js";import{p as xe,c as Te}from"./materialPins-CTQ_1quC.js";import{s as Ue}from"./safeText-O-oWGdGq.js";const Be={class:"field"},je={key:0,class:"share-chips","aria-label":"Udostępniono"},Ie=["title"],Le=["aria-label","onClick"],Ne=["aria-expanded","aria-activedescendant","placeholder"],Ae={key:0,class:"share-option share-empty",role:"option","aria-disabled":"true","aria-selected":"false"},Ee=["id","aria-selected","onMousedown","onMousemove"],De={class:"share-option-name"},Se={key:0,class:"share-option-email"},Pe={key:0,class:"muted small share-none"},Ke={class:"sr-only",role:"status","aria-live":"polite"},qe=ae({__name:"ShareUserInput",props:{users:{},modelValue:{}},emits:["update:modelValue"],setup(D,{emit:S}){const d=D,V=S,x=re(),s=`${x}-input`,T=`${x}-list`,k=y(null),f=b(()=>new Map(d.users.map(e=>[e.id,e]))),p=b(()=>d.modelValue.map(e=>f.value.get(e)).filter(e=>!!e)),{query:v,open:m,active:_,announcement:$,suggestions:U,activeId:Z,optionId:P,announce:B,onInput:z,onKeydown:K,close:j,hover:q,reset:I}=Me({listId:T,suggest:e=>ue(d.users,e,d.modelValue,8),onPick:F,onBackspace:()=>{const e=p.value[p.value.length-1];e&&L(e)}}),O=b(()=>{const e=v.value.trim();return d.users.length&&e?`Nikt nie pasuje do „${e}”.`:"Brak innych osób."});function F(e){d.modelValue.includes(e.id)||(V("update:modelValue",[...d.modelValue,e.id]),I(),B(`Dodano: ${M(e)}`))}function L(e){V("update:modelValue",d.modelValue.filter(a=>a!==e.id)),B(`Usunięto: ${M(e)}`),k.value?.focus()}function W(e){const a=e.target;(a===e.currentTarget||a.classList.contains("share-chips"))&&k.value?.focus()}return(e,a)=>(n(),o("div",Be,[l("label",{for:s},"Udostępnij osobom"),l("div",{class:"share-field",onClick:W},[p.value.length?(n(),o("ul",je,[(n(!0),o(E,null,R(p.value,t=>(n(),o("li",{key:t.id,class:"share-chip"},[l("span",{class:"share-chip-label",title:t.email},c(r(M)(t)),9,Ie),l("button",{class:"share-chip-remove",type:"button","aria-label":`Usuń ${r(M)(t)}`,onClick:i=>L(t)},[g(te,{name:"close"})],8,Le)]))),128))])):u("",!0),G(l("input",{id:s,ref_key:"input",ref:k,"onUpdate:modelValue":a[0]||(a[0]=t=>le(v)?v.value=t:null),class:"share-input",type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":r(m)?"true":"false","aria-controls":T,"aria-activedescendant":r(Z),autocomplete:"off",enterkeyhint:"done",placeholder:r(v)?void 0:"Imię, nazwisko lub e-mail",onInput:a[1]||(a[1]=(...t)=>r(z)&&r(z)(...t)),onKeydown:a[2]||(a[2]=(...t)=>r(K)&&r(K)(...t)),onBlur:a[3]||(a[3]=(...t)=>r(j)&&r(j)(...t))},null,40,Ne),[[ne,r(v)]]),G(l("ul",{id:T,class:"share-pop",role:"listbox","aria-label":"Pasujące osoby"},[r(U).length?u("",!0):(n(),o("li",Ae,c(O.value),1)),(n(!0),o(E,null,R(r(U),(t,i)=>(n(),o("li",{id:r(P)(i),key:t.id,class:ie(["share-option",{active:i===r(_)}]),role:"option","aria-selected":i===r(_)?"true":"false",onMousedown:se(H=>F(t),["prevent"]),onMousemove:H=>r(q)(i)},[l("span",De,c(r(M)(t)),1),r(M)(t)!==t.email?(n(),o("span",Se,c(t.email),1)):u("",!0)],42,Ee))),128))],512),[[oe,r(m)]])]),D.modelValue.length?u("",!0):(n(),o("p",Pe,"Nikomu nie udostępniono.")),l("span",Ke,c(r($)),1)]))}}),Fe=["href"],He={class:"muted small"},Re={key:1},Ze={key:2},Oe={key:3},We={key:4},Xe={key:0},Ye={class:"btn-row material-actions"},Ge=["href"],Je=["aria-pressed"],Qe={key:1,class:"btn-row author-actions"},ea=["href","onClick"],aa=["innerHTML"],sa={key:3,class:"section","aria-labelledby":"files-h"},ta={class:"rows"},na=["href","download"],la={class:"when"},oa={key:4,class:"section no-print","aria-labelledby":"access-h"},ia={class:"card"},ra={key:0,class:"notice error",role:"alert"},ua={key:1,class:"skeleton","aria-busy":"true"},ca={class:"check"},da={class:"muted small"},pa={key:0,class:"muted small"},va={class:"btn-row"},ma=["disabled"],ya={key:0,class:"muted small"},fa={key:1,class:"muted small",role:"status"},_a={key:1,class:"notice error",role:"alert"},Ca=ae({__name:"MaterialView",props:{id:{}},setup(D){const S=D,d=ge(),V=ce(),x=de(),s=y(null);X(s,e=>{e?.title&&(document.title=`${e.title} · BM II°`)});const T=Te({pin:C.pinMaterial,unpin:C.unpinMaterial,onSaved:ee,onError:e=>x.show(`Nie udało się zapisać zmiany. ${A(e)}`)}),k=y(""),f=y(null),p=y(""),v=y(""),m=y(!1),_=y([]),$=y(!1);function U(e){f.value=e,m.value=e.is_private,_.value=he(e.shares).map(a=>a.id)}const Z=b(()=>{const e=f.value;if(!e)return[];const a=new Set(e.users.map(t=>t.id));return[...e.users,...e.shares.filter(t=>!a.has(t.id))]}),P=b(()=>{const e=f.value;if(!e)return!1;const a=Y(m.value,_.value),t=Y(e.is_private,e.shares.map(i=>i.id));return a.is_private!==t.is_private||a.user_ids.join(",")!==t.user_ids.join(",")});X(P,e=>{e&&(v.value="")});async function B(e){p.value="";try{U(await C.materialAccess(e))}catch(a){p.value=A(a)}}async function z(){s.value=null,k.value="",f.value=null,v.value="",p.value="",V.loadMeetings();try{s.value=await C.material(Number(S.id))}catch(e){k.value=A(e);return}s.value.can_manage&&await B(s.value.id)}async function K(){const e=s.value;if(!(!e||$.value)){$.value=!0,v.value="",p.value="";try{const a=await C.saveMaterialAccess(e.id,Y(m.value,_.value));if(s.value!==e)return;U(a),e.is_private=a.is_private,v.value="Zapisano."}catch(a){p.value=A(a)}finally{$.value=!1}}}pe(z),X(()=>S.id,z);const j=b(()=>Ce(s.value?.body)),q=b(()=>s.value?.url?Ue(s.value.url):null),I=b(()=>{const e=s.value?.meeting_id;return e==null?null:(V.meetings??[]).find(a=>a.id===e)??null});function O(e){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),Q(window.history.state?.back,a=>d.resolve(a).name)?d.back():d.push("/materialy"))}function F(){window.print()}const L=y(null);async function W(e){const a=s.value,t=L.value;if(!a||!t)return;let i=!1;await t.open({from:e.currentTarget instanceof HTMLElement?e.currentTarget:null,action:async()=>{try{await C.unpublishMaterial(a.id)}catch(N){if(N instanceof be&&N.status===404){i=!0;return}throw new Error(`Nie udało się usunąć: ${ke(A(N))}.`)}}})==="confirm"&&(ee(),x.show(i?"Tego materiału już nie ma w Materiałach.":"Materiał przeniesiony do szkiców."),Q(window.history.state?.back,N=>d.resolve(N).name)?d.back():d.replace("/materialy"))}return(e,a)=>{const t=we("router-link");return n(),o("div",null,[g(ze,{ready:!!s.value,error:k.value,onRetry:a[4]||(a[4]=i=>z())},{default:w(()=>[s.value?(n(),o(E,{key:0},[g($e,{eyebrow:`${r(ve)[s.value.type]}${s.value.published_at?" · "+r(me)(s.value.published_at):""}`,title:s.value.title},{default:w(()=>[g(t,{to:"/materialy",custom:""},{default:w(({href:i})=>[l("a",{class:"btn small ghost",href:i,onClick:O},"← Materiały",8,Fe)]),_:1})]),_:1},8,["eyebrow","title"]),l("p",He,[s.value.course?(n(),J(t,{key:0,to:`/przedmioty/${s.value.course.id}`},{default:w(()=>[h(c(s.value.course.name),1)]),_:1},8,["to"])):u("",!0),I.value?(n(),o("span",Re,[a[5]||(a[5]=h(" · ",-1)),g(t,{to:`/plan?zjazd=${I.value.number}`},{default:w(()=>[h(c(r(ye)(I.value)),1)]),_:1},8,["to"])])):u("",!0),s.value.source?(n(),o("span",Ze," · "+c(s.value.source),1)):u("",!0),s.value.is_private?(n(),o("span",Oe,[...a[6]||(a[6]=[h(" · ",-1),l("span",{class:"badge alert"},"prywatny",-1)])])):u("",!0),s.value.pinned?(n(),o("span",We,[...a[7]||(a[7]=[h(" · ",-1),l("span",{class:"badge pin"},"przypięty",-1)])])):u("",!0)]),s.value.tags.length?(n(),o("p",Xe,[(n(!0),o(E,null,R(s.value.tags,i=>(n(),o("span",{key:i.id,class:"badge",style:{"margin-right":"4px"}},c(i.name),1))),128))])):u("",!0),l("div",Ye,[q.value?(n(),o("a",{key:0,class:"btn small",href:q.value,target:"_blank",rel:"noopener noreferrer"},"Otwórz link",8,Ge)):u("",!0),l("button",{class:"btn small",type:"button",onClick:F},"Drukuj"),l("button",{class:"btn small pin no-print",type:"button","aria-pressed":s.value.pinned,onClick:a[0]||(a[0]=i=>r(T).toggle(s.value))},c(r(xe)(s.value.pinned)),9,Je),s.value.can_manage?(n(),o("span",Qe,[g(t,{to:`/materialy/${s.value.id}/edytuj`,custom:""},{default:w(({href:i,navigate:H})=>[l("a",{class:"btn small",href:i,onClick:H},"Edytuj",8,ea)]),_:1},8,["to"]),l("button",{class:"btn small miss",type:"button",onClick:W},"Usuń")])):u("",!0)]),s.value.can_manage?(n(),J(Ve,{key:1,ref_key:"removeDialog",ref:L,tone:"danger",title:"Usunąć materiał?","confirm-label":"Usuń materiał","cancel-label":"Zostaw materiał"},{default:w(()=>[h(" „"+c(s.value.title)+"” zniknie z Materiałów u wszystkich, także u Ciebie. Trafi do szkiców: przywrócisz go w /bmadmin albo przez ",1),a[8]||(a[8]=l("code",null,"bm-notatka push",-1)),a[9]||(a[9]=h(". ",-1))]),_:1},512)):u("",!0),j.value?(n(),o("div",{key:2,class:"prose card",innerHTML:j.value},null,8,aa)):u("",!0),s.value.files.length?(n(),o("section",sa,[a[10]||(a[10]=l("div",{class:"section-head"},[l("h2",{id:"files-h"},"Pliki")],-1)),l("ul",ta,[(n(!0),o(E,null,R(s.value.files,i=>(n(),o("li",{key:i.id,class:"row-main"},[l("a",{href:i.url,download:i.name},c(i.name),9,na),l("span",la,c(r(fe)(i.size)),1)]))),128))])])):u("",!0),s.value.can_manage?(n(),o("section",oa,[a[12]||(a[12]=l("div",{class:"section-head"},[l("h2",{id:"access-h"},"Dostęp")],-1)),l("div",ia,[p.value&&!f.value?(n(),o("div",ra,[h(c(p.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:a[1]||(a[1]=i=>B(s.value.id))},"Spróbuj ponownie")])):f.value?(n(),o("form",{key:2,onSubmit:se(K,["prevent"])},[l("label",ca,[G(l("input",{"onUpdate:modelValue":a[2]||(a[2]=i=>m.value=i),type:"checkbox"},null,512),[[_e,m.value]]),a[11]||(a[11]=l("span",null,"Materiał prywatny",-1))]),l("p",da,c(m.value?"Widzisz go tylko Ty i osoby, którym go udostępnisz.":"Materiał publiczny: widzą go wszyscy."),1),g(qe,{modelValue:_.value,"onUpdate:modelValue":a[3]||(a[3]=i=>_.value=i),users:Z.value},null,8,["modelValue","users"]),m.value?u("",!0):(n(),o("p",pa,"Udostępnienie działa, gdy materiał jest prywatny.")),l("div",va,[l("button",{class:"btn small",type:"submit",disabled:$.value},"Zapisz dostęp",8,ma),P.value?(n(),o("span",ya,"Niezapisane zmiany.")):v.value?(n(),o("span",fa,c(v.value),1)):u("",!0)]),p.value?(n(),o("div",_a,c(p.value),1)):u("",!0)],32)):(n(),o("div",ua))])])):u("",!0)],64)):u("",!0)]),_:1},8,["ready","error"])])}}});export{Ca as default}; +import{d as ae,n,c as o,b as l,F as E,E as R,t as c,e as r,av as M,i as g,_ as te,f as u,w as G,v as ne,aw as le,ax as oe,h as se,C as ie,X as re,r as y,x as b,ay as ue,ae as ce,q as de,U as X,o as pe,j as w,al as C,ap as A,T as ve,ar as me,s as J,p as h,at as ye,a1 as fe,g as _e,az as he,aA as Y,A as be,aB as ke,l as we,m as ge}from"./index-DyD9x5ZD.js";import{_ as $e}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as ze}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{u as Me,r as Ce}from"./markdown-CvqroLZD.js";import{_ as Ve}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js";import{b as Q,c as ee}from"./materialListCache-Do2aYQaO.js";import{p as xe,c as Te}from"./materialPins-CTQ_1quC.js";import{s as Ue}from"./safeText-O-oWGdGq.js";const Be={class:"field"},je={key:0,class:"share-chips","aria-label":"Udostępniono"},Ie=["title"],Le=["aria-label","onClick"],Ne=["aria-expanded","aria-activedescendant","placeholder"],Ae={key:0,class:"share-option share-empty",role:"option","aria-disabled":"true","aria-selected":"false"},Ee=["id","aria-selected","onMousedown","onMousemove"],De={class:"share-option-name"},Se={key:0,class:"share-option-email"},Pe={key:0,class:"muted small share-none"},Ke={class:"sr-only",role:"status","aria-live":"polite"},qe=ae({__name:"ShareUserInput",props:{users:{},modelValue:{}},emits:["update:modelValue"],setup(D,{emit:S}){const d=D,V=S,x=re(),s=`${x}-input`,T=`${x}-list`,k=y(null),f=b(()=>new Map(d.users.map(e=>[e.id,e]))),p=b(()=>d.modelValue.map(e=>f.value.get(e)).filter(e=>!!e)),{query:v,open:m,active:_,announcement:$,suggestions:U,activeId:Z,optionId:P,announce:B,onInput:z,onKeydown:K,close:j,hover:q,reset:I}=Me({listId:T,suggest:e=>ue(d.users,e,d.modelValue,8),onPick:F,onBackspace:()=>{const e=p.value[p.value.length-1];e&&L(e)}}),O=b(()=>{const e=v.value.trim();return d.users.length&&e?`Nikt nie pasuje do „${e}”.`:"Brak innych osób."});function F(e){d.modelValue.includes(e.id)||(V("update:modelValue",[...d.modelValue,e.id]),I(),B(`Dodano: ${M(e)}`))}function L(e){V("update:modelValue",d.modelValue.filter(a=>a!==e.id)),B(`Usunięto: ${M(e)}`),k.value?.focus()}function W(e){const a=e.target;(a===e.currentTarget||a.classList.contains("share-chips"))&&k.value?.focus()}return(e,a)=>(n(),o("div",Be,[l("label",{for:s},"Udostępnij osobom"),l("div",{class:"share-field",onClick:W},[p.value.length?(n(),o("ul",je,[(n(!0),o(E,null,R(p.value,t=>(n(),o("li",{key:t.id,class:"share-chip"},[l("span",{class:"share-chip-label",title:t.email},c(r(M)(t)),9,Ie),l("button",{class:"share-chip-remove",type:"button","aria-label":`Usuń ${r(M)(t)}`,onClick:i=>L(t)},[g(te,{name:"close"})],8,Le)]))),128))])):u("",!0),G(l("input",{id:s,ref_key:"input",ref:k,"onUpdate:modelValue":a[0]||(a[0]=t=>le(v)?v.value=t:null),class:"share-input",type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":r(m)?"true":"false","aria-controls":T,"aria-activedescendant":r(Z),autocomplete:"off",enterkeyhint:"done",placeholder:r(v)?void 0:"Imię, nazwisko lub e-mail",onInput:a[1]||(a[1]=(...t)=>r(z)&&r(z)(...t)),onKeydown:a[2]||(a[2]=(...t)=>r(K)&&r(K)(...t)),onBlur:a[3]||(a[3]=(...t)=>r(j)&&r(j)(...t))},null,40,Ne),[[ne,r(v)]]),G(l("ul",{id:T,class:"share-pop",role:"listbox","aria-label":"Pasujące osoby"},[r(U).length?u("",!0):(n(),o("li",Ae,c(O.value),1)),(n(!0),o(E,null,R(r(U),(t,i)=>(n(),o("li",{id:r(P)(i),key:t.id,class:ie(["share-option",{active:i===r(_)}]),role:"option","aria-selected":i===r(_)?"true":"false",onMousedown:se(H=>F(t),["prevent"]),onMousemove:H=>r(q)(i)},[l("span",De,c(r(M)(t)),1),r(M)(t)!==t.email?(n(),o("span",Se,c(t.email),1)):u("",!0)],42,Ee))),128))],512),[[oe,r(m)]])]),D.modelValue.length?u("",!0):(n(),o("p",Pe,"Nikomu nie udostępniono.")),l("span",Ke,c(r($)),1)]))}}),Fe=["href"],He={class:"muted small"},Re={key:1},Ze={key:2},Oe={key:3},We={key:4},Xe={key:0},Ye={class:"btn-row material-actions"},Ge=["href"],Je=["aria-pressed"],Qe={key:1,class:"btn-row author-actions"},ea=["href","onClick"],aa=["innerHTML"],sa={key:3,class:"section","aria-labelledby":"files-h"},ta={class:"rows"},na=["href","download"],la={class:"when"},oa={key:4,class:"section no-print","aria-labelledby":"access-h"},ia={class:"card"},ra={key:0,class:"notice error",role:"alert"},ua={key:1,class:"skeleton","aria-busy":"true"},ca={class:"check"},da={class:"muted small"},pa={key:0,class:"muted small"},va={class:"btn-row"},ma=["disabled"],ya={key:0,class:"muted small"},fa={key:1,class:"muted small",role:"status"},_a={key:1,class:"notice error",role:"alert"},Ca=ae({__name:"MaterialView",props:{id:{}},setup(D){const S=D,d=ge(),V=ce(),x=de(),s=y(null);X(s,e=>{e?.title&&(document.title=`${e.title} · BM II°`)});const T=Te({pin:C.pinMaterial,unpin:C.unpinMaterial,onSaved:ee,onError:e=>x.show(`Nie udało się zapisać zmiany. ${A(e)}`)}),k=y(""),f=y(null),p=y(""),v=y(""),m=y(!1),_=y([]),$=y(!1);function U(e){f.value=e,m.value=e.is_private,_.value=he(e.shares).map(a=>a.id)}const Z=b(()=>{const e=f.value;if(!e)return[];const a=new Set(e.users.map(t=>t.id));return[...e.users,...e.shares.filter(t=>!a.has(t.id))]}),P=b(()=>{const e=f.value;if(!e)return!1;const a=Y(m.value,_.value),t=Y(e.is_private,e.shares.map(i=>i.id));return a.is_private!==t.is_private||a.user_ids.join(",")!==t.user_ids.join(",")});X(P,e=>{e&&(v.value="")});async function B(e){p.value="";try{U(await C.materialAccess(e))}catch(a){p.value=A(a)}}async function z(){s.value=null,k.value="",f.value=null,v.value="",p.value="",V.loadMeetings();try{s.value=await C.material(Number(S.id))}catch(e){k.value=A(e);return}s.value.can_manage&&await B(s.value.id)}async function K(){const e=s.value;if(!(!e||$.value)){$.value=!0,v.value="",p.value="";try{const a=await C.saveMaterialAccess(e.id,Y(m.value,_.value));if(s.value!==e)return;U(a),e.is_private=a.is_private,v.value="Zapisano."}catch(a){p.value=A(a)}finally{$.value=!1}}}pe(z),X(()=>S.id,z);const j=b(()=>Ce(s.value?.body)),q=b(()=>s.value?.url?Ue(s.value.url):null),I=b(()=>{const e=s.value?.meeting_id;return e==null?null:(V.meetings??[]).find(a=>a.id===e)??null});function O(e){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),Q(window.history.state?.back,a=>d.resolve(a).name)?d.back():d.push("/materialy"))}function F(){window.print()}const L=y(null);async function W(e){const a=s.value,t=L.value;if(!a||!t)return;let i=!1;await t.open({from:e.currentTarget instanceof HTMLElement?e.currentTarget:null,action:async()=>{try{await C.unpublishMaterial(a.id)}catch(N){if(N instanceof be&&N.status===404){i=!0;return}throw new Error(`Nie udało się usunąć: ${ke(A(N))}.`)}}})==="confirm"&&(ee(),x.show(i?"Tego materiału już nie ma w Materiałach.":"Materiał przeniesiony do szkiców."),Q(window.history.state?.back,N=>d.resolve(N).name)?d.back():d.replace("/materialy"))}return(e,a)=>{const t=we("router-link");return n(),o("div",null,[g(ze,{ready:!!s.value,error:k.value,onRetry:a[4]||(a[4]=i=>z())},{default:w(()=>[s.value?(n(),o(E,{key:0},[g($e,{eyebrow:`${r(ve)[s.value.type]}${s.value.published_at?" · "+r(me)(s.value.published_at):""}`,title:s.value.title},{default:w(()=>[g(t,{to:"/materialy",custom:""},{default:w(({href:i})=>[l("a",{class:"btn small ghost",href:i,onClick:O},"← Materiały",8,Fe)]),_:1})]),_:1},8,["eyebrow","title"]),l("p",He,[s.value.course?(n(),J(t,{key:0,to:`/przedmioty/${s.value.course.id}`},{default:w(()=>[h(c(s.value.course.name),1)]),_:1},8,["to"])):u("",!0),I.value?(n(),o("span",Re,[a[5]||(a[5]=h(" · ",-1)),g(t,{to:`/plan?zjazd=${I.value.number}`},{default:w(()=>[h(c(r(ye)(I.value)),1)]),_:1},8,["to"])])):u("",!0),s.value.source?(n(),o("span",Ze," · "+c(s.value.source),1)):u("",!0),s.value.is_private?(n(),o("span",Oe,[...a[6]||(a[6]=[h(" · ",-1),l("span",{class:"badge alert"},"prywatny",-1)])])):u("",!0),s.value.pinned?(n(),o("span",We,[...a[7]||(a[7]=[h(" · ",-1),l("span",{class:"badge pin"},"przypięty",-1)])])):u("",!0)]),s.value.tags.length?(n(),o("p",Xe,[(n(!0),o(E,null,R(s.value.tags,i=>(n(),o("span",{key:i.id,class:"badge",style:{"margin-right":"4px"}},c(i.name),1))),128))])):u("",!0),l("div",Ye,[q.value?(n(),o("a",{key:0,class:"btn small",href:q.value,target:"_blank",rel:"noopener noreferrer"},"Otwórz link",8,Ge)):u("",!0),l("button",{class:"btn small",type:"button",onClick:F},"Drukuj"),l("button",{class:"btn small pin no-print",type:"button","aria-pressed":s.value.pinned,onClick:a[0]||(a[0]=i=>r(T).toggle(s.value))},c(r(xe)(s.value.pinned)),9,Je),s.value.can_manage?(n(),o("span",Qe,[g(t,{to:`/materialy/${s.value.id}/edytuj`,custom:""},{default:w(({href:i,navigate:H})=>[l("a",{class:"btn small",href:i,onClick:H},"Edytuj",8,ea)]),_:1},8,["to"]),l("button",{class:"btn small miss",type:"button",onClick:W},"Usuń")])):u("",!0)]),s.value.can_manage?(n(),J(Ve,{key:1,ref_key:"removeDialog",ref:L,tone:"danger",title:"Usunąć materiał?","confirm-label":"Usuń materiał","cancel-label":"Zostaw materiał"},{default:w(()=>[h(" „"+c(s.value.title)+"” zniknie z Materiałów u wszystkich, także u Ciebie. Trafi do szkiców: przywrócisz go w /bmadmin albo przez ",1),a[8]||(a[8]=l("code",null,"bm-notatka push",-1)),a[9]||(a[9]=h(". ",-1))]),_:1},512)):u("",!0),j.value?(n(),o("div",{key:2,class:"prose card",innerHTML:j.value},null,8,aa)):u("",!0),s.value.files.length?(n(),o("section",sa,[a[10]||(a[10]=l("div",{class:"section-head"},[l("h2",{id:"files-h"},"Pliki")],-1)),l("ul",ta,[(n(!0),o(E,null,R(s.value.files,i=>(n(),o("li",{key:i.id,class:"row-main"},[l("a",{href:i.url,download:i.name},c(i.name),9,na),l("span",la,c(r(fe)(i.size)),1)]))),128))])])):u("",!0),s.value.can_manage?(n(),o("section",oa,[a[12]||(a[12]=l("div",{class:"section-head"},[l("h2",{id:"access-h"},"Dostęp")],-1)),l("div",ia,[p.value&&!f.value?(n(),o("div",ra,[h(c(p.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:a[1]||(a[1]=i=>B(s.value.id))},"Spróbuj ponownie")])):f.value?(n(),o("form",{key:2,onSubmit:se(K,["prevent"])},[l("label",ca,[G(l("input",{"onUpdate:modelValue":a[2]||(a[2]=i=>m.value=i),type:"checkbox"},null,512),[[_e,m.value]]),a[11]||(a[11]=l("span",null,"Materiał prywatny",-1))]),l("p",da,c(m.value?"Widzisz go tylko Ty i osoby, którym go udostępnisz.":"Materiał publiczny: widzą go wszyscy."),1),g(qe,{modelValue:_.value,"onUpdate:modelValue":a[3]||(a[3]=i=>_.value=i),users:Z.value},null,8,["modelValue","users"]),m.value?u("",!0):(n(),o("p",pa,"Udostępnienie działa, gdy materiał jest prywatny.")),l("div",va,[l("button",{class:"btn small",type:"submit",disabled:$.value},"Zapisz dostęp",8,ma),P.value?(n(),o("span",ya,"Niezapisane zmiany.")):v.value?(n(),o("span",fa,c(v.value),1)):u("",!0)]),p.value?(n(),o("div",_a,c(p.value),1)):u("",!0)],32)):(n(),o("div",ua))])])):u("",!0)],64)):u("",!0)]),_:1},8,["ready","error"])])}}});export{Ca as default}; diff --git a/public/assets/MaterialsView-CeIBNy86.js b/public/assets/MaterialsView-BFDVD5Qm.js similarity index 97% rename from public/assets/MaterialsView-CeIBNy86.js rename to public/assets/MaterialsView-BFDVD5Qm.js index 7cde351..490bfbe 100644 --- a/public/assets/MaterialsView-CeIBNy86.js +++ b/public/assets/MaterialsView-BFDVD5Qm.js @@ -1 +1 @@ -import{d as re,n as s,c as n,t as o,f as c,F as m,E as z,p as N,x as y,ae as ye,u as me,q as ge,r as b,o as fe,U as ke,al as L,A as _e,ap as X,V as be,i as D,b as l,w as j,v as he,W as we,h as ee,as as E,e as f,T as te,k as xe,m as ze,at as qe,j as Ce,ar as Se,ag as ae,s as Te,l as $e,_ as Me,au as je}from"./index-CZVUqkdk.js";import{_ as Ne}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{r as se,m as U,i as ne,w as A,a as Ve,s as le,n as ie,c as Pe}from"./materialListCache-DQPoPhVA.js";import{p as oe,c as Be}from"./materialPins-CTQ_1quC.js";function Fe(g){const r=[];g.lead&&r.push({text:"…",hit:!1});for(const h of g.segments??[])h.text&&r.push({text:h.text,hit:!!h.hit});return g.trail&&r.push({text:"…",hit:!1}),r}function We(g){if(g.source!=="file")return"";const r=g.file_name?.trim();return r?`z pliku ${r}: `:"z pliku: "}const Le={class:"snippet muted small"},De={key:0,class:"snippet-file"},Ee={key:0},Ue=re({__name:"SearchSnippet",props:{snippet:{}},setup(g){const r=g,h=y(()=>Fe(r.snippet)),w=y(()=>We(r.snippet));return(C,K)=>(s(),n("p",Le,[w.value?(s(),n("span",De,o(w.value),1)):c("",!0),(s(!0),n(m,null,z(h.value,(q,i)=>(s(),n(m,{key:i},[q.hit?(s(),n("mark",Ee,o(q.text),1)):(s(),n(m,{key:1},[N(o(q.text),1)],64))],64))),128))]))}}),Ae={class:"field no-print"},Ke=["onKeydown"],Qe={class:"field"},Ie=["value"],Oe={class:"field"},Re=["value"],Ze={class:"field"},Ye=["value"],Ge={key:0,class:"chips wrap no-print",role:"group","aria-label":"Tagi",style:{"margin-bottom":"12px"}},He=["aria-pressed","onClick"],Je={key:2,class:"notice error",role:"alert",style:{"margin-top":"12px"}},Xe={key:3,class:"notice error",role:"alert"},et={key:4,class:"stack","aria-busy":"true"},tt={key:0,class:"muted small nums no-print",role:"status","aria-live":"polite",style:{margin:"8px 0 0"}},at=["aria-busy"],st={class:"row-main"},nt={class:"badges"},lt={key:0,class:"badge pin"},it={key:1,class:"badge alert"},ot={key:2,class:"badge"},rt={class:"badge"},ut={class:"muted small",style:{margin:"0"}},pt={key:0},dt={key:1},ct={key:2},vt={key:1,style:{margin:"6px 0 0"}},yt=["aria-pressed","aria-label","title","onClick"],mt={key:2,class:"empty",style:{"margin-top":"12px"}},gt={style:{margin:"0"}},ft={key:3,class:"empty",style:{"margin-top":"12px"}},kt={key:4,class:"btn-row no-print",style:{"margin-top":"16px","justify-content":"space-between","align-items":"center"},"aria-label":"Strony"},_t=["disabled"],bt={class:"muted small nums"},ht=["disabled"],Ct=re({__name:"MaterialsView",setup(g){const r=ye(),h=me(),w=xe(),C=ze(),K=ge(),q=Be({pin:L.pinMaterial,unpin:L.unpinMaterial,onSaved:Pe,onError:a=>K.show(`Nie udało się zapisać zmiany. ${X(a)}`)}),i=b(se(w.query)),k=b(i.value.q),Q=a=>`${h.user?.id??0}|${Ve(a)}`,v=b(U.get(Q(i.value))??null),p=b(i.value),V=b(!1),S=b(""),P=b(!1),T=b(new Map);function B(a){for(const e of a.data)for(const d of e.tags)T.value.set(d.slug,d);T.value=new Map(T.value)}v.value&&B(v.value),fe(()=>{r.loadCourses(),r.loadMeetings(),ne(w.query,i.value)||C.replace({query:A(i.value)}),M()}),ke(()=>w.query,a=>{if(w.name!=="materials")return;const e=se(a);ne(a,e)||C.replace({query:A(e)}),!le(e,i.value)&&(i.value=e,ie(k.value)!==e.q&&(k.value=e.q),M())});function _(a){const e={...i.value,...a};Object.keys(a).some(d=>d!=="page")&&(e.page=1),!le(e,i.value)&&(i.value=e,C.replace({query:A(e)}),M())}let $=0;async function M(){const a=++$,e=i.value,d=Q(e),t=U.get(d);t&&(v.value=t,p.value=e,B(t)),V.value=!0,S.value="",P.value=!1;try{const u=await L.materials({q:e.q||null,course:e.course,type:e.type||null,meeting:e.meeting,tag:e.tag||null,page:e.page});if(a!==$)return;U.set(d,u),v.value=u,p.value=e,B(u)}catch(u){if(a!==$)return;e.q&&u instanceof _e&&u.status===503?P.value=!0:S.value=X(u)}finally{a===$&&(V.value=!1)}}let x;function F(){clearTimeout(x),x=void 0,_({q:ie(k.value)})}function ue(){clearTimeout(x),k.value.trim()?x=setTimeout(F,300):F()}be(()=>clearTimeout(x));const I=y({get:()=>i.value.course===null?"":String(i.value.course),set:a=>_({course:a?Number(a):null})}),O=y({get:()=>i.value.type,set:a=>_({type:a})}),R=y({get:()=>i.value.meeting===null?"":String(i.value.meeting),set:a=>_({meeting:a?Number(a):null})}),pe=y(()=>je(r.meetings??[])),de=y(()=>new Map((r.meetings??[]).map(a=>[a.id,a]))),Z=a=>a.meeting_id===null?void 0:de.value.get(a.meeting_id);function Y(a){_({page:a}),window.scrollTo({top:0})}const G=y(()=>{const a=[...T.value.values()].sort((d,t)=>d.name.localeCompare(t.name,"pl")),e=i.value.tag;return e&&!a.some(d=>d.slug===e)&&a.unshift({id:0,slug:e,name:e}),a}),W=a=>!!(a.q||a.course!==null||a.type||a.meeting!==null||a.tag),ce=y(()=>W(i.value));function H(){clearTimeout(x),k.value="",_({q:"",course:null,type:"",meeting:null,tag:""})}function ve(){clearTimeout(x),k.value="",_({q:""})}const J=y(()=>{const a=v.value?.meta.total??0;return ae(a,"materiał","materiały","materiałów")});return(a,e)=>{const d=$e("router-link");return s(),n("div",null,[D(Ne,{eyebrow:"Notatki, PDF-y, linki",title:"Materiały"}),l("div",Ae,[e[8]||(e[8]=l("label",{for:"f-q"},"Szukaj",-1)),j(l("input",{id:"f-q","onUpdate:modelValue":e[0]||(e[0]=t=>k.value=t),type:"search",enterkeyhint:"search",autocomplete:"off",maxlength:"100",placeholder:"Tytuł, treść, tekst z PDF-ów",onInput:ue,onKeydown:we(ee(F,["prevent"]),["enter"])},null,40,Ke),[[he,k.value]])]),l("form",{class:"grid-3 no-print",style:{"margin-bottom":"8px"},onSubmit:e[4]||(e[4]=ee(()=>{},["prevent"]))},[l("div",Qe,[e[10]||(e[10]=l("label",{for:"f-course"},"Przedmiot",-1)),j(l("select",{id:"f-course","onUpdate:modelValue":e[1]||(e[1]=t=>I.value=t)},[e[9]||(e[9]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(f(r).visibleCourses,t=>(s(),n("option",{key:t.id,value:String(t.id)},o(t.name)+" ("+o(t.form==="wyklad"?"wykład":t.form==="cwiczenia"?"ćwiczenia":t.form)+")",9,Ie))),128))],512),[[E,I.value]])]),l("div",Oe,[e[12]||(e[12]=l("label",{for:"f-type"},"Rodzaj",-1)),j(l("select",{id:"f-type","onUpdate:modelValue":e[2]||(e[2]=t=>O.value=t)},[e[11]||(e[11]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(f(te),(t,u)=>(s(),n("option",{key:u,value:u},o(t),9,Re))),128))],512),[[E,O.value]])]),l("div",Ze,[e[14]||(e[14]=l("label",{for:"f-meeting"},"Zjazd",-1)),j(l("select",{id:"f-meeting","onUpdate:modelValue":e[3]||(e[3]=t=>R.value=t)},[e[13]||(e[13]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(pe.value,t=>(s(),n("option",{key:t.id,value:String(t.id)},o(f(qe)(t)),9,Ye))),128))],512),[[E,R.value]])])],32),G.value.length?(s(),n("div",Ge,[(s(!0),n(m,null,z(G.value,t=>(s(),n("button",{key:t.slug,class:"chip",type:"button","aria-pressed":i.value.tag===t.slug,onClick:u=>_({tag:i.value.tag===t.slug?"":t.slug})},o(t.name),9,He))),128))])):c("",!0),ce.value?(s(),n("button",{key:1,class:"linkish small no-print",type:"button",onClick:H},"Wyczyść filtry")):c("",!0),P.value?(s(),n("div",Je,[e[15]||(e[15]=N("Wyszukiwarka jest teraz niedostępna. Filtry działają bez niej. ",-1)),l("button",{class:"linkish",type:"button",onClick:ve},"Wyczyść wyszukiwanie")])):S.value?(s(),n("div",Xe,[N(o(S.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:e[5]||(e[5]=t=>M())},"Spróbuj ponownie")])):v.value?(s(),n(m,{key:5},[W(p.value)&&v.value.data.length?(s(),n("p",tt,o(p.value.q?`Znaleziono ${J.value} · od najtrafniejszych`:J.value),1)):c("",!0),v.value.data.length?(s(),n("div",{key:1,class:"stack",style:{"margin-top":"12px"},"aria-busy":V.value},[(s(!0),n(m,null,z(v.value.data,t=>(s(),n("div",{key:t.id,class:"material-card"},[D(d,{to:`/materialy/${t.id}`,class:"card link"},{default:Ce(()=>[l("div",st,[l("h3",null,o(t.title),1),l("span",nt,[t.pinned?(s(),n("span",lt,"przypięty")):c("",!0),t.is_private?(s(),n("span",it,"prywatny")):c("",!0),Z(t)?(s(),n("span",ot,"Zjazd "+o(Z(t).number),1)):c("",!0),l("span",rt,o(f(te)[t.type]),1)])]),l("p",ut,[t.course?(s(),n("span",pt,o(t.course.name),1)):c("",!0),t.published_at?(s(),n("span",dt," · "+o(f(Se)(t.published_at)),1)):c("",!0),t.files_count?(s(),n("span",ct," · "+o(f(ae)(t.files_count,"plik","pliki","plików")),1)):c("",!0)]),p.value.q&&t.snippet?(s(),Te(Ue,{key:0,snippet:t.snippet},null,8,["snippet"])):c("",!0),t.tags.length?(s(),n("p",vt,[(s(!0),n(m,null,z(t.tags,u=>(s(),n("span",{key:u.id,class:"badge",style:{"margin-right":"4px"}},o(u.name),1))),128))])):c("",!0)]),_:2},1032,["to"]),l("button",{class:"icon-btn pin-btn no-print",type:"button","aria-pressed":t.pinned,"aria-label":`${f(oe)(t.pinned)}: ${t.title}`,title:f(oe)(t.pinned),onClick:u=>f(q).toggle(t)},[D(Me,{name:"pin"})],8,yt)]))),128))],8,at)):p.value.q?(s(),n("div",mt,[l("p",gt,"Nic nie znaleziono dla „"+o(p.value.q)+"”.",1),l("p",{class:"small",style:{margin:"4px 0 0"}},[e[17]||(e[17]=N("Sprawdź pisownię albo zmień filtry. ",-1)),l("button",{class:"linkish",type:"button",onClick:H},"Wyczyść filtry")])])):(s(),n("p",ft,o(W(p.value)?"Nic nie pasuje do filtrów.":"Nie ma jeszcze żadnych materiałów."),1)),v.value.meta.last_page>1?(s(),n("nav",kt,[l("button",{class:"btn small",type:"button",disabled:p.value.page<=1,onClick:e[6]||(e[6]=t=>Y(p.value.page-1))},"← Poprzednia",8,_t),l("span",bt,o(p.value.page)+" / "+o(v.value.meta.last_page),1),l("button",{class:"btn small",type:"button",disabled:p.value.page>=v.value.meta.last_page,onClick:e[7]||(e[7]=t=>Y(p.value.page+1))},"Następna →",8,ht)])):c("",!0)],64)):(s(),n("div",et,[...e[16]||(e[16]=[l("div",{class:"skeleton"},null,-1),l("div",{class:"skeleton"},null,-1)])]))])}}});export{Ct as default}; +import{d as re,n as s,c as n,t as o,f as c,F as m,E as z,p as N,x as y,ae as ye,u as me,q as ge,r as b,o as fe,U as ke,al as L,A as _e,ap as X,V as be,i as D,b as l,w as j,v as he,W as we,h as ee,as as E,e as f,T as te,k as xe,m as ze,at as qe,j as Ce,ar as Se,ag as ae,s as Te,l as $e,_ as Me,au as je}from"./index-DyD9x5ZD.js";import{_ as Ne}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{r as se,m as U,i as ne,w as A,a as Ve,s as le,n as ie,c as Pe}from"./materialListCache-Do2aYQaO.js";import{p as oe,c as Be}from"./materialPins-CTQ_1quC.js";function Fe(g){const r=[];g.lead&&r.push({text:"…",hit:!1});for(const h of g.segments??[])h.text&&r.push({text:h.text,hit:!!h.hit});return g.trail&&r.push({text:"…",hit:!1}),r}function We(g){if(g.source!=="file")return"";const r=g.file_name?.trim();return r?`z pliku ${r}: `:"z pliku: "}const Le={class:"snippet muted small"},De={key:0,class:"snippet-file"},Ee={key:0},Ue=re({__name:"SearchSnippet",props:{snippet:{}},setup(g){const r=g,h=y(()=>Fe(r.snippet)),w=y(()=>We(r.snippet));return(C,K)=>(s(),n("p",Le,[w.value?(s(),n("span",De,o(w.value),1)):c("",!0),(s(!0),n(m,null,z(h.value,(q,i)=>(s(),n(m,{key:i},[q.hit?(s(),n("mark",Ee,o(q.text),1)):(s(),n(m,{key:1},[N(o(q.text),1)],64))],64))),128))]))}}),Ae={class:"field no-print"},Ke=["onKeydown"],Qe={class:"field"},Ie=["value"],Oe={class:"field"},Re=["value"],Ze={class:"field"},Ye=["value"],Ge={key:0,class:"chips wrap no-print",role:"group","aria-label":"Tagi",style:{"margin-bottom":"12px"}},He=["aria-pressed","onClick"],Je={key:2,class:"notice error",role:"alert",style:{"margin-top":"12px"}},Xe={key:3,class:"notice error",role:"alert"},et={key:4,class:"stack","aria-busy":"true"},tt={key:0,class:"muted small nums no-print",role:"status","aria-live":"polite",style:{margin:"8px 0 0"}},at=["aria-busy"],st={class:"row-main"},nt={class:"badges"},lt={key:0,class:"badge pin"},it={key:1,class:"badge alert"},ot={key:2,class:"badge"},rt={class:"badge"},ut={class:"muted small",style:{margin:"0"}},pt={key:0},dt={key:1},ct={key:2},vt={key:1,style:{margin:"6px 0 0"}},yt=["aria-pressed","aria-label","title","onClick"],mt={key:2,class:"empty",style:{"margin-top":"12px"}},gt={style:{margin:"0"}},ft={key:3,class:"empty",style:{"margin-top":"12px"}},kt={key:4,class:"btn-row no-print",style:{"margin-top":"16px","justify-content":"space-between","align-items":"center"},"aria-label":"Strony"},_t=["disabled"],bt={class:"muted small nums"},ht=["disabled"],Ct=re({__name:"MaterialsView",setup(g){const r=ye(),h=me(),w=xe(),C=ze(),K=ge(),q=Be({pin:L.pinMaterial,unpin:L.unpinMaterial,onSaved:Pe,onError:a=>K.show(`Nie udało się zapisać zmiany. ${X(a)}`)}),i=b(se(w.query)),k=b(i.value.q),Q=a=>`${h.user?.id??0}|${Ve(a)}`,v=b(U.get(Q(i.value))??null),p=b(i.value),V=b(!1),S=b(""),P=b(!1),T=b(new Map);function B(a){for(const e of a.data)for(const d of e.tags)T.value.set(d.slug,d);T.value=new Map(T.value)}v.value&&B(v.value),fe(()=>{r.loadCourses(),r.loadMeetings(),ne(w.query,i.value)||C.replace({query:A(i.value)}),M()}),ke(()=>w.query,a=>{if(w.name!=="materials")return;const e=se(a);ne(a,e)||C.replace({query:A(e)}),!le(e,i.value)&&(i.value=e,ie(k.value)!==e.q&&(k.value=e.q),M())});function _(a){const e={...i.value,...a};Object.keys(a).some(d=>d!=="page")&&(e.page=1),!le(e,i.value)&&(i.value=e,C.replace({query:A(e)}),M())}let $=0;async function M(){const a=++$,e=i.value,d=Q(e),t=U.get(d);t&&(v.value=t,p.value=e,B(t)),V.value=!0,S.value="",P.value=!1;try{const u=await L.materials({q:e.q||null,course:e.course,type:e.type||null,meeting:e.meeting,tag:e.tag||null,page:e.page});if(a!==$)return;U.set(d,u),v.value=u,p.value=e,B(u)}catch(u){if(a!==$)return;e.q&&u instanceof _e&&u.status===503?P.value=!0:S.value=X(u)}finally{a===$&&(V.value=!1)}}let x;function F(){clearTimeout(x),x=void 0,_({q:ie(k.value)})}function ue(){clearTimeout(x),k.value.trim()?x=setTimeout(F,300):F()}be(()=>clearTimeout(x));const I=y({get:()=>i.value.course===null?"":String(i.value.course),set:a=>_({course:a?Number(a):null})}),O=y({get:()=>i.value.type,set:a=>_({type:a})}),R=y({get:()=>i.value.meeting===null?"":String(i.value.meeting),set:a=>_({meeting:a?Number(a):null})}),pe=y(()=>je(r.meetings??[])),de=y(()=>new Map((r.meetings??[]).map(a=>[a.id,a]))),Z=a=>a.meeting_id===null?void 0:de.value.get(a.meeting_id);function Y(a){_({page:a}),window.scrollTo({top:0})}const G=y(()=>{const a=[...T.value.values()].sort((d,t)=>d.name.localeCompare(t.name,"pl")),e=i.value.tag;return e&&!a.some(d=>d.slug===e)&&a.unshift({id:0,slug:e,name:e}),a}),W=a=>!!(a.q||a.course!==null||a.type||a.meeting!==null||a.tag),ce=y(()=>W(i.value));function H(){clearTimeout(x),k.value="",_({q:"",course:null,type:"",meeting:null,tag:""})}function ve(){clearTimeout(x),k.value="",_({q:""})}const J=y(()=>{const a=v.value?.meta.total??0;return ae(a,"materiał","materiały","materiałów")});return(a,e)=>{const d=$e("router-link");return s(),n("div",null,[D(Ne,{eyebrow:"Notatki, PDF-y, linki",title:"Materiały"}),l("div",Ae,[e[8]||(e[8]=l("label",{for:"f-q"},"Szukaj",-1)),j(l("input",{id:"f-q","onUpdate:modelValue":e[0]||(e[0]=t=>k.value=t),type:"search",enterkeyhint:"search",autocomplete:"off",maxlength:"100",placeholder:"Tytuł, treść, tekst z PDF-ów",onInput:ue,onKeydown:we(ee(F,["prevent"]),["enter"])},null,40,Ke),[[he,k.value]])]),l("form",{class:"grid-3 no-print",style:{"margin-bottom":"8px"},onSubmit:e[4]||(e[4]=ee(()=>{},["prevent"]))},[l("div",Qe,[e[10]||(e[10]=l("label",{for:"f-course"},"Przedmiot",-1)),j(l("select",{id:"f-course","onUpdate:modelValue":e[1]||(e[1]=t=>I.value=t)},[e[9]||(e[9]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(f(r).visibleCourses,t=>(s(),n("option",{key:t.id,value:String(t.id)},o(t.name)+" ("+o(t.form==="wyklad"?"wykład":t.form==="cwiczenia"?"ćwiczenia":t.form)+")",9,Ie))),128))],512),[[E,I.value]])]),l("div",Oe,[e[12]||(e[12]=l("label",{for:"f-type"},"Rodzaj",-1)),j(l("select",{id:"f-type","onUpdate:modelValue":e[2]||(e[2]=t=>O.value=t)},[e[11]||(e[11]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(f(te),(t,u)=>(s(),n("option",{key:u,value:u},o(t),9,Re))),128))],512),[[E,O.value]])]),l("div",Ze,[e[14]||(e[14]=l("label",{for:"f-meeting"},"Zjazd",-1)),j(l("select",{id:"f-meeting","onUpdate:modelValue":e[3]||(e[3]=t=>R.value=t)},[e[13]||(e[13]=l("option",{value:""},"Wszystkie",-1)),(s(!0),n(m,null,z(pe.value,t=>(s(),n("option",{key:t.id,value:String(t.id)},o(f(qe)(t)),9,Ye))),128))],512),[[E,R.value]])])],32),G.value.length?(s(),n("div",Ge,[(s(!0),n(m,null,z(G.value,t=>(s(),n("button",{key:t.slug,class:"chip",type:"button","aria-pressed":i.value.tag===t.slug,onClick:u=>_({tag:i.value.tag===t.slug?"":t.slug})},o(t.name),9,He))),128))])):c("",!0),ce.value?(s(),n("button",{key:1,class:"linkish small no-print",type:"button",onClick:H},"Wyczyść filtry")):c("",!0),P.value?(s(),n("div",Je,[e[15]||(e[15]=N("Wyszukiwarka jest teraz niedostępna. Filtry działają bez niej. ",-1)),l("button",{class:"linkish",type:"button",onClick:ve},"Wyczyść wyszukiwanie")])):S.value?(s(),n("div",Xe,[N(o(S.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:e[5]||(e[5]=t=>M())},"Spróbuj ponownie")])):v.value?(s(),n(m,{key:5},[W(p.value)&&v.value.data.length?(s(),n("p",tt,o(p.value.q?`Znaleziono ${J.value} · od najtrafniejszych`:J.value),1)):c("",!0),v.value.data.length?(s(),n("div",{key:1,class:"stack",style:{"margin-top":"12px"},"aria-busy":V.value},[(s(!0),n(m,null,z(v.value.data,t=>(s(),n("div",{key:t.id,class:"material-card"},[D(d,{to:`/materialy/${t.id}`,class:"card link"},{default:Ce(()=>[l("div",st,[l("h3",null,o(t.title),1),l("span",nt,[t.pinned?(s(),n("span",lt,"przypięty")):c("",!0),t.is_private?(s(),n("span",it,"prywatny")):c("",!0),Z(t)?(s(),n("span",ot,"Zjazd "+o(Z(t).number),1)):c("",!0),l("span",rt,o(f(te)[t.type]),1)])]),l("p",ut,[t.course?(s(),n("span",pt,o(t.course.name),1)):c("",!0),t.published_at?(s(),n("span",dt," · "+o(f(Se)(t.published_at)),1)):c("",!0),t.files_count?(s(),n("span",ct," · "+o(f(ae)(t.files_count,"plik","pliki","plików")),1)):c("",!0)]),p.value.q&&t.snippet?(s(),Te(Ue,{key:0,snippet:t.snippet},null,8,["snippet"])):c("",!0),t.tags.length?(s(),n("p",vt,[(s(!0),n(m,null,z(t.tags,u=>(s(),n("span",{key:u.id,class:"badge",style:{"margin-right":"4px"}},o(u.name),1))),128))])):c("",!0)]),_:2},1032,["to"]),l("button",{class:"icon-btn pin-btn no-print",type:"button","aria-pressed":t.pinned,"aria-label":`${f(oe)(t.pinned)}: ${t.title}`,title:f(oe)(t.pinned),onClick:u=>f(q).toggle(t)},[D(Me,{name:"pin"})],8,yt)]))),128))],8,at)):p.value.q?(s(),n("div",mt,[l("p",gt,"Nic nie znaleziono dla „"+o(p.value.q)+"”.",1),l("p",{class:"small",style:{margin:"4px 0 0"}},[e[17]||(e[17]=N("Sprawdź pisownię albo zmień filtry. ",-1)),l("button",{class:"linkish",type:"button",onClick:H},"Wyczyść filtry")])])):(s(),n("p",ft,o(W(p.value)?"Nic nie pasuje do filtrów.":"Nie ma jeszcze żadnych materiałów."),1)),v.value.meta.last_page>1?(s(),n("nav",kt,[l("button",{class:"btn small",type:"button",disabled:p.value.page<=1,onClick:e[6]||(e[6]=t=>Y(p.value.page-1))},"← Poprzednia",8,_t),l("span",bt,o(p.value.page)+" / "+o(v.value.meta.last_page),1),l("button",{class:"btn small",type:"button",disabled:p.value.page>=v.value.meta.last_page,onClick:e[7]||(e[7]=t=>Y(p.value.page+1))},"Następna →",8,ht)])):c("",!0)],64)):(s(),n("div",et,[...e[16]||(e[16]=[l("div",{class:"skeleton"},null,-1),l("div",{class:"skeleton"},null,-1)])]))])}}});export{Ct as default}; diff --git a/public/assets/MoreView-Cc2MNn9g.js b/public/assets/MoreView-99Lj73EB.js similarity index 93% rename from public/assets/MoreView-Cc2MNn9g.js rename to public/assets/MoreView-99Lj73EB.js index 5bc806c..5d01bca 100644 --- a/public/assets/MoreView-Cc2MNn9g.js +++ b/public/assets/MoreView-99Lj73EB.js @@ -1 +1 @@ -import{_ as b}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.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-CZVUqkdk.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-DTbBIdvR.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-DyD9x5ZD.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}; diff --git a/public/assets/MyPresentationsView-4KJTEzu1.js b/public/assets/MyPresentationsView-BzDdE1gL.js similarity index 94% rename from public/assets/MyPresentationsView-4KJTEzu1.js rename to public/assets/MyPresentationsView-BzDdE1gL.js index 99af93a..676c191 100644 --- a/public/assets/MyPresentationsView-4KJTEzu1.js +++ b/public/assets/MyPresentationsView-BzDdE1gL.js @@ -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-CZVUqkdk.js";import{_ as S}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as G}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{p as T}from"./presentations-BgohxBTm.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-DyD9x5ZD.js";import{_ as S}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as G}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{p as T}from"./presentations-CZ3vmyJx.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}; diff --git a/public/assets/NotFoundView-706jG-LC.js b/public/assets/NotFoundView-DIWF_u8U.js similarity index 87% rename from public/assets/NotFoundView-706jG-LC.js rename to public/assets/NotFoundView-DIWF_u8U.js index 5607909..dc059c3 100644 --- a/public/assets/NotFoundView-706jG-LC.js +++ b/public/assets/NotFoundView-DIWF_u8U.js @@ -1 +1 @@ -import{_ as s}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{n as a,c as n,b as t,i as r,j as l,p as c,l as i}from"./index-CZVUqkdk.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-DyD9x5ZD.js";const p={},d={class:"stack"};function _(u,e){const o=i("router-link");return a(),n("div",d,[e[1]||(e[1]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"404"),t("h1",null,"Nie ma takiej strony")],-1)),t("p",null,[r(o,{to:"/"},{default:l(()=>[...e[0]||(e[0]=[c("Wróć na pulpit",-1)])]),_:1})])])}const k=s(p,[["render",_]]);export{k as default}; diff --git a/public/assets/OAuthCallbackView-BWe1IsQj.js b/public/assets/OAuthCallbackView-lHRQhTi5.js similarity index 92% rename from public/assets/OAuthCallbackView-BWe1IsQj.js rename to public/assets/OAuthCallbackView-lHRQhTi5.js index 4abbf0b..5e9d873 100644 --- a/public/assets/OAuthCallbackView-BWe1IsQj.js +++ b/public/assets/OAuthCallbackView-lHRQhTi5.js @@ -1 +1 @@ -import{d as g,u as y,q as h,o as _,A as v,c as i,b as n,t as b,e as A,s as p,j as d,k as B,m as C,r as f,l as j,n as a,p as m}from"./index-CZVUqkdk.js";import{s as x,f as z}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{s as x,f as z}from"./forms-rkjiDhhH.js";import{p as q}from"./oauth-zzthF4BZ.js";const E={class:"auth"},I={key:0,class:"notice",role:"status"},L={key:1,class:"stack"},M={class:"notice error",role:"alert"},k=new Set,V=g({__name:"OAuthCallbackView",setup(O){const l=y(),u=B(),s=C(),w=h(),c=f(!0),t=f("");return _(async()=>{const o=q(u.query);if(o.kind==="pending"){const e={pending:o.pending,provider:o.provider};o.reason&&(e.reason=o.reason),o.email&&(e.email=o.email),await s.replace({name:"oauth-register",query:e});return}if(await s.replace({path:u.path}),o.kind==="error")t.value=o.message;else if(o.kind==="none")t.value="Brak danych logowania. Spróbuj zalogować się ponownie.";else{if(k.has(o.code))return;k.add(o.code);try{const{action:e,returnTo:r}=await l.completeOAuth(o.code);e==="link"?(w.show("Połączono konto Microsoft."),await s.replace("/profil")):await s.replace(x(r));return}catch(e){t.value=e instanceof v&&(e.status===410||e.status===422)?"Link logowania wygasł lub został już użyty.":z(e).message}}c.value=!1}),(o,e)=>{const r=j("router-link");return a(),i("div",E,[e[2]||(e[2]=n("header",{class:"page-head"},[n("span",{class:"eyebrow"},"BM II° · UWr"),n("h1",null,"Logowanie")],-1)),c.value?(a(),i("p",I,"Logowanie…")):(a(),i("div",L,[n("p",M,b(t.value),1),A(l).loggedIn?(a(),p(r,{key:0,class:"btn primary",to:"/profil"},{default:d(()=>[...e[0]||(e[0]=[m("Wróć do profilu",-1)])]),_:1})):(a(),p(r,{key:1,class:"btn primary",to:"/logowanie"},{default:d(()=>[...e[1]||(e[1]=[m("Przejdź do logowania",-1)])]),_:1}))]))])}}});export{V as default}; diff --git a/public/assets/OAuthRegisterView-CNQe9Gcp.js b/public/assets/OAuthRegisterView-yORkBNst.js similarity index 96% rename from public/assets/OAuthRegisterView-CNQe9Gcp.js rename to public/assets/OAuthRegisterView-yORkBNst.js index c023261..544c059 100644 --- a/public/assets/OAuthRegisterView-CNQe9Gcp.js +++ b/public/assets/OAuthRegisterView-yORkBNst.js @@ -1 +1 @@ -import{d as U,u as q,c as o,b as t,i as w,j as _,e as c,p as n,t as l,F as V,h as B,f as k,w as j,g as h,x as N,r as i,l as E,k as P,n as a,A as S,m as D}from"./index-CZVUqkdk.js";import{s as F,f as I}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{s as F,f as I}from"./forms-rkjiDhhH.js";const O={class:"auth"},T={key:0,class:"stack"},K={key:1,class:"stack"},L={class:"notice",role:"status"},W={key:0},G={class:"muted",style:{"margin-bottom":"14px"}},H={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},J={class:"check"},Q={key:1,class:"error-text"},X={class:"check"},Y={key:2,class:"error-text"},$={class:"check",style:{"margin-bottom":"16px"}},ee=["disabled"],te={class:"auth-links"},ne=U({__name:"OAuthRegisterView",setup(se){const A=q(),C=P(),Z=D();function d(s){const e=C.query[s];return typeof e=="string"?e:""}const x=d("pending"),p=d("email"),M=d("reason"),f=N(()=>{const s=d("provider");return s==="microsoft"||s===""?"Microsoft 365":s.charAt(0).toUpperCase()+s.slice(1)}),m=i(!1),v=i(!1),g=i(!1),y=i(!1),r=i(null),z=i(!x);async function R(){y.value=!0,r.value=null;try{const{returnTo:s}=await A.completeOAuthRegistration({pending_code:x,terms_accepted:m.value,privacy_accepted:v.value,marketing_consent:g.value});await Z.replace(F(s))}catch(s){s instanceof S&&s.status===410?z.value=!0:r.value=I(s)}finally{y.value=!1}}return(s,e)=>{const b=E("router-link");return a(),o("div",O,[e[13]||(e[13]=t("header",{class:"page-head"},[t("span",{class:"eyebrow"},"BM II° · UWr"),t("h1",null,"Rejestracja")],-1)),z.value?(a(),o("div",T,[e[4]||(e[4]=t("p",{class:"notice error",role:"alert"},"Sesja rejestracji wygasła. Zaloguj się ponownie.",-1)),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[3]||(e[3]=[n("Przejdź do logowania",-1)])]),_:1})])):c(M)==="unverified_match"?(a(),o("div",K,[t("p",L,[e[5]||(e[5]=n(" Konto z adresem ",-1)),c(p)?(a(),o("b",W,l(c(p)),1)):(a(),o(V,{key:1},[n("e-mail z konta "+l(f.value),1)],64)),n(" już istnieje. Zaloguj się hasłem, a potem połącz konto "+l(f.value)+" w profilu („Połącz konto Microsoft”). ",1)]),w(b,{class:"btn primary",to:"/logowanie"},{default:_(()=>[...e[6]||(e[6]=[n("Zaloguj się hasłem",-1)])]),_:1})])):(a(),o("form",{key:2,onSubmit:B(R,["prevent"]),novalidate:""},[t("p",G,[n(" Pierwsze logowanie przez "+l(f.value),1),c(p)?(a(),o(V,{key:0},[e[7]||(e[7]=n(" jako ",-1)),t("b",null,l(c(p)),1)],64)):k("",!0),e[8]||(e[8]=n(". Zaakceptuj warunki, aby założyć konto. ",-1))]),r.value?.message?(a(),o("div",H,l(r.value.message),1)):k("",!0),t("label",J,[j(t("input",{"onUpdate:modelValue":e[0]||(e[0]=u=>m.value=u),type:"checkbox",required:""},null,512),[[h,m.value]]),e[9]||(e[9]=t("span",null,"Akceptuję regulamin serwisu (wymagane)",-1))]),r.value?.fields.terms_accepted?(a(),o("p",Q,l(r.value.fields.terms_accepted),1)):k("",!0),t("label",X,[j(t("input",{"onUpdate:modelValue":e[1]||(e[1]=u=>v.value=u),type:"checkbox",required:""},null,512),[[h,v.value]]),e[10]||(e[10]=t("span",null,"Zgadzam się na przetwarzanie moich danych zgodnie z polityką prywatności (wymagane)",-1))]),r.value?.fields.privacy_accepted?(a(),o("p",Y,l(r.value.fields.privacy_accepted),1)):k("",!0),t("label",$,[j(t("input",{"onUpdate:modelValue":e[2]||(e[2]=u=>g.value=u),type:"checkbox"},null,512),[[h,g.value]]),e[11]||(e[11]=t("span",null,"Chcę otrzymywać wiadomości o nowościach (opcjonalnie)",-1))]),t("button",{class:"btn primary block",type:"submit",disabled:y.value||!m.value||!v.value},l(y.value?"Zakładanie…":"Załóż konto"),9,ee)],32)),t("div",te,[w(b,{to:"/logowanie"},{default:_(()=>[...e[12]||(e[12]=[n("Mam już konto",-1)])]),_:1})])])}}});export{ne as default}; diff --git a/public/assets/PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js b/public/assets/PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js similarity index 84% rename from public/assets/PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js rename to public/assets/PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js index 04958f9..717244e 100644 --- a/public/assets/PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js +++ b/public/assets/PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js @@ -1 +1 @@ -import{d as r,c as s,t as a,f as c,b as t,a$ as d,n as o}from"./index-CZVUqkdk.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,a$ as d,n as o}from"./index-DyD9x5ZD.js";const l={class:"page-head"},i={key:0,class:"eyebrow"},_={class:"row"},h={class:"btn-row"},p=r({__name:"PageHead",props:{eyebrow:{},title:{}},setup(e){return(n,m)=>(o(),s("header",l,[e.eyebrow?(o(),s("span",i,a(e.eyebrow),1)):c("",!0),t("div",_,[t("h1",null,a(e.title),1),t("div",h,[d(n.$slots,"default")])])]))}});export{p as _}; diff --git a/public/assets/PresentationPublicView-TcqELTt_.js b/public/assets/PresentationPublicView-BiFFJw7H.js similarity index 89% rename from public/assets/PresentationPublicView-TcqELTt_.js rename to public/assets/PresentationPublicView-BiFFJw7H.js index f184d1a..ed6da2a 100644 --- a/public/assets/PresentationPublicView-TcqELTt_.js +++ b/public/assets/PresentationPublicView-BiFFJw7H.js @@ -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-CZVUqkdk.js";import{p as y}from"./presentations-BgohxBTm.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.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-DyD9x5ZD.js";import{p as y}from"./presentations-CZ3vmyJx.js";import{_ as E}from"./DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.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}; diff --git a/public/assets/PresentationRemoteView-DQfzMTCG.js b/public/assets/PresentationRemoteView-DMNivM_-.js similarity index 99% rename from public/assets/PresentationRemoteView-DQfzMTCG.js rename to public/assets/PresentationRemoteView-DMNivM_-.js index e67a343..d1c1ef6 100644 --- a/public/assets/PresentationRemoteView-DQfzMTCG.js +++ b/public/assets/PresentationRemoteView-DMNivM_-.js @@ -1 +1 @@ -import{c as sn}from"./engine-DDeQk6Ow.js";import{d as Te,c as u,b as c,C as I,i as ne,_ as Ye,t as _,f as E,x as p,n as r,U as he,F as L,E as ge,j as on,r as g,l as ln,p as Ct,Z as Et,s as Qe,o as rn,b7 as cn,A as be,b8 as un,b9 as dn,m as vn,ba as fn}from"./index-CZVUqkdk.js";import{p as R}from"./presentations-BgohxBTm.js";import{_ as _e}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{s as et,e as wt,f as tt,g as mn,h as pn,i as yn,d as bn,r as kn,j as wn,k as Je,a as hn,l as ht,S as gn,H as Tn,m as _n,o as Sn,D as Cn,b as En,R as zn,n as $n}from"./remote-aOKX75Mt.js";import{f as Nn,C as Ue,p as jn,i as An,j as Dn,d as xn}from"./log-Xlt5jeld.js";import{c as Rn,a as In}from"./clock-4r1aA6KU.js";const Ln={key:0,class:"cast"},Mn=["aria-busy"],Pn={class:"cast-label"},Bn={key:0,class:"cast-tv"},On={key:0,"aria-live":"polite"},Vn=Te({__name:"CastButton",props:{availability:{},deviceName:{},tv:{}},emits:["request","log"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>t.availability!=="off"&&t.availability!=="no-devices"),i=p(()=>t.availability==="connected"),d=p(()=>t.availability==="connecting"?"Łączę z TV…":t.availability==="connected"?t.deviceName?`Na TV: ${t.deviceName}`:"Na TV":"Wyświetl na TV"),v=p(()=>{const k=t.tv;return k?k.phase==="waiting"?"TV: czekam na bilet":k.phase==="loading"?"TV: przygotowuję slajdy…":k.phase==="error"?"TV: błąd, połącz ponownie":`TV: slajd ${k.number}${k.special?" · specjalny":""}`:""});return(k,z)=>s.value?(r(),u("div",Ln,[c("button",{type:"button",class:I(["cast-row",{on:i.value}]),"aria-busy":n.availability==="connecting"?"true":void 0,onClick:z[0]||(z[0]=$=>o("request"))},[ne(Ye,{class:"cast-icon",name:"cast"}),c("span",Pn,_(d.value),1)],10,Mn),i.value?(r(),u("p",Bn,[v.value?(r(),u("span",On,_(v.value),1)):E("",!0),c("button",{type:"button",class:"cast-log",onClick:z[1]||(z[1]=$=>o("log"))},"Dziennik TV")])):E("",!0)])):E("",!0)}}),qn=_e(Vn,[["__scopeId","data-v-ff9a5014"]]),Hn={class:"drawer"},Wn=["id","aria-label"],Kn={class:"sheet-head"},Gn=["disabled"],Zn={class:"sheet-title"},Fn={class:"title"},Jn={key:0,class:"subtitle"},Un=["disabled"],Xn=["innerHTML"],Yn={key:1,class:"empty"},Qn=["innerHTML"],ea={key:1,class:"empty"},ta=["data-current","aria-current","onClick"],na={class:"num"},aa={class:"row-title"},sa={key:0,class:"tag"},oa={key:1,class:"now"},ia={class:"list-foot"},la={key:0,class:"hint"},ra={class:"bar","aria-label":"Szuflady na telefonie"},ca=["disabled","aria-expanded","aria-controls","onClick"],ua=Te({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(n,{emit:y}){const t=n,o=y,s=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],i=p(()=>t.deck.slides.length),d=p(()=>mn(t.deck,t.state,t.live,t.cursor)),v=p(()=>t.live&&t.state?t.state.number:t.deck.slides[et(t.deck.slides,t.cursor)]?.number??0),k=p(()=>et(t.deck.slides,t.cursor)),z=p(()=>t.live&&t.state?t.state.number:t.deck.slides[k.value]?.number??t.cursor),$=p(()=>{const h=t.live&&t.state?.special?"s":"";return`${z.value}${h}`});function P(h){return h?/]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const w=p(()=>P(d.value?.say_html)?wt(d.value?.say_html??""):""),b=p(()=>P(d.value?.notes_html)?wt(d.value?.notes_html??""):""),S=p(()=>t.open==="say"?`Powiedz · slajd ${z.value}`:t.open==="notes"?`Notatki · slajd ${z.value}`:"Slajdy"),D=p(()=>t.open==="slides"?"":t.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${k.value+1} z ${i.value}`),N=p(()=>!t.live&&(t.open==="say"||t.open==="notes")),G=p(()=>k.value>0),ae=p(()=>k.valuet.deck.slides.map(h=>({number:h.number,title:tt(h),special:!!h.special})));function B(h){t.disabled||(t.open===h?o("close"):o("open",h))}function Y(h){const x=t.deck.slides[k.value+h];x&&o("cursor",x.number)}const Z=g(null),O=g(null);return he([$,()=>t.open],()=>{Z.value&&(Z.value.scrollTop=0)}),he(()=>t.open,async h=>{if(h!=="slides")return;await Et(),O.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(h,x)=>{const se=ln("router-link");return r(),u("div",Hn,[n.open?(r(),u("section",{key:0,id:`remote-drawer-${n.open}`,class:"sheet","aria-label":S.value},[c("header",Kn,[N.value?(r(),u("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!G.value,onClick:x[0]||(x[0]=T=>Y(-1))}," ‹ ",8,Gn)):E("",!0),c("div",Zn,[c("p",Fn,_(S.value),1),D.value?(r(),u("p",Jn,_(D.value),1)):E("",!0)]),N.value?(r(),u("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!ae.value,onClick:x[1]||(x[1]=T=>Y(1))}," › ",8,Un)):E("",!0),c("button",{type:"button",class:"close-btn",onClick:x[2]||(x[2]=T=>o("close"))},"Zamknij")]),c("div",{ref_key:"body",ref:Z,class:I(["sheet-body",{reading:n.open!=="slides"}])},[n.open==="say"?(r(),u(L,{key:0},[w.value?(r(),u("div",{key:0,class:"text",innerHTML:w.value},null,8,Xn)):(r(),u("p",Yn,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):n.open==="notes"?(r(),u(L,{key:1},[b.value?(r(),u("div",{key:0,class:"text",innerHTML:b.value},null,8,Qn)):(r(),u("p",ea,"Brak notatek do tego slajdu."))],64)):(r(),u(L,{key:2},[c("ol",{ref_key:"list",ref:O,class:"list"},[(r(!0),u(L,null,ge(A.value,T=>(r(),u("li",{key:T.number},[c("button",{type:"button",class:"row","data-current":T.number===v.value?"true":void 0,"aria-current":T.number===v.value?"true":void 0,onClick:Me=>o("goto",T.number)},[c("span",na,_(T.number),1),c("span",aa,_(T.title),1),T.special?(r(),u("span",sa,"+ specjalny")):E("",!0),T.number===v.value?(r(),u("span",oa,"teraz")):E("",!0)],8,ta)]))),128))],512),c("footer",ia,[ne(se,{class:"back-link",to:{name:"my-presentations"}},{default:on(()=>[...x[3]||(x[3]=[Ct("Wróć do moich prezentacji",-1)])]),_:1}),n.wakeLockMissing?(r(),u("p",la,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):E("",!0)])],64))],2)],8,Wn)):E("",!0),c("nav",ra,[(r(),u(L,null,ge(s,T=>c("button",{key:T.kind,type:"button",class:I(["tab",{open:n.open===T.kind}]),disabled:n.disabled,"aria-expanded":n.open===T.kind?"true":"false","aria-controls":`remote-drawer-${T.kind}`,onClick:Me=>B(T.kind)},_(T.label),11,ca)),64))])])}}}),da=_e(ua,[["__scopeId","data-v-9f920f42"]]),va=["aria-label"],fa={key:0,class:"eyebrow"},ma={class:"grid nav"},pa=["disabled","aria-busy","onClick"],ya={key:1,class:"grid fn"},ba=["disabled","aria-pressed","aria-busy","onClick"],ka={class:"label"},wa=Te({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean},cast:{type:Boolean}},emits:["press","reset"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>pn(t.state,t.live,t.cast?"cast":"deck")),i=p(()=>t.cast?"Klawisze na TV":"Klawisze na komputerze"),d=p(()=>s.value.slice(0,2)),v=p(()=>s.value.slice(2));function k($){return(t.busy[$.action]??0)>0}function z($){$.enabled&&($.action==="clock-reset"?o("reset"):o("press",$.action))}return($,P)=>(r(),u("section",{class:I(["keys",{compact:n.compact}]),"aria-label":i.value},[n.compact?E("",!0):(r(),u("p",fa,_(i.value),1)),c("div",ma,[(r(!0),u(L,null,ge(d.value,w=>(r(),u("button",{key:w.action,type:"button",class:I(["key nav-key",w.action]),disabled:!w.enabled,"aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[w.action==="prev"?(r(),Qe(Ye,{key:0,class:"arrow",name:"arrow-left"})):E("",!0),c("span",null,_(w.label),1),w.action==="next"?(r(),Qe(Ye,{key:1,class:"arrow",name:"arrow-right"})):E("",!0)],10,pa))),128))]),n.compact?E("",!0):(r(),u("div",ya,[(r(!0),u(L,null,ge(v.value,w=>(r(),u("button",{key:w.action,type:"button",class:"key fn-key",disabled:!w.enabled,"aria-pressed":w.pressed===null?void 0:w.pressed?"true":"false","aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[c("span",ka,_(w.label),1),c("kbd",null,_(w.kbd),1)],8,ba))),128))]))],10,va))}}),gt=_e(wa,[["__scopeId","data-v-25e061a7"]]),ha={class:"top"},ga={class:"row row-title"},Ta={class:"deck-title"},_a={class:"row row-slide","aria-live":"polite"},Sa={class:"counter"},Ca={key:0,class:"slide-title"},Ea={key:1,class:"slide-title waiting"},za={class:"row row-chips","aria-label":"Na komputerze"},$a={class:"row row-clock"},Na={key:0,class:"idle"},ja={key:0,class:"chip"},Aa={key:2,class:"clock"},Da=Te({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(n){const y=n,t=p(()=>yn(y.status));return(o,s)=>(r(),u("header",ha,[c("div",ga,[c("p",Ta,_(n.deckTitle),1),c("p",{class:I(["conn",{on:n.status==="live"}])},[s[0]||(s[0]=c("span",{class:"dot","aria-hidden":"true"},null,-1)),Ct(_(t.value),1)],2)]),c("div",_a,[c("p",Sa,_(n.counter),1),n.live?(r(),u("p",Ca,_(n.slideTitle),1)):(r(),u("p",Ea,"Czekam na wersję mówcy"))]),c("ul",za,[n.live?(r(!0),u(L,{key:0},ge(n.chips,i=>(r(),u("li",{key:i,class:I(["chip",{khaki:i==="Specjalny"}])},_(i),3))),128)):E("",!0)]),c("div",$a,[n.live&&n.clock&&n.clock.idle?(r(),u("p",Na,"Zegar ruszy przy pierwszej zmianie slajdu")):n.live&&n.clock?(r(),u(L,{key:1},[c("p",{class:I(["clock",{paused:n.clock.paused}])},[s[2]||(s[2]=c("span",{class:"lbl"},"Slajd",-1)),c("b",{class:I({over:n.clock.slideOver})},_(n.clock.slide),3),s[3]||(s[3]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),s[4]||(s[4]=c("span",{class:"lbl"},"Całość",-1)),c("b",{class:I({over:n.clock.totalOver})},_(n.clock.total),3),n.clock.pace?(r(),u(L,{key:0},[s[1]||(s[1]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),c("span",{class:I(["pace",{late:n.clock.late}])},_(n.clock.pace),3)],64)):E("",!0)],2),n.clock.paused?(r(),u("span",ja,"Pauza")):E("",!0)],64)):(r(),u("p",Aa,[...s[5]||(s[5]=[c("b",null,"—",-1)])]))])]))}}),xa=_e(Da,[["__scopeId","data-v-382e11de"]]),Ra="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",Xe="bm-cast-sender";function at(){return globalThis}function nt(){const n=at().cast?.framework;return n&&n.CastContext&&n.CastContextEventType?n:null}let ke=null;function Ia(n=1e4){return nt()?Promise.resolve(!0):ke||(typeof document>"u"?Promise.resolve(!1):(ke=new Promise(t=>{let o=!1,s=null;const i=d=>{o||(o=!0,s!==null&&clearTimeout(s),t(d&&nt()!==null))};try{at().__onGCastApiAvailable=v=>i(!!v);let d=document.getElementById(Xe);d||(d=document.createElement("script"),d.id=Xe,d.src=Ra,d.async=!0,d.addEventListener("error",()=>i(!1)),document.head.appendChild(d)),s=setTimeout(()=>i(!1),n)}catch{i(!1)}}).then(t=>(t||(ke=null,document.getElementById(Xe)?.remove()),t)),ke))}function La(n){switch(n){case"NOT_CONNECTED":return"available";case"CONNECTING":return"connecting";case"CONNECTED":return"connected";default:return"no-devices"}}function Ma(n){const y=nt();if(!y)return null;let t;try{t=y.CastContext.getInstance()}catch{return null}const o=y.CastContextEventType;let s=!1,i=null;const d=(b,S)=>{if(s)return;const D=jn(S);D&&n.onMessage(D)};function v(){const b=i;if(i=null,!!b)try{b.removeMessageListener(Ue,d)}catch{}}function k(){v();let b=null;try{b=t.getCurrentSession(),b?.addMessageListener(Ue,d)}catch{b=null}return i=b,b!==null}function z(b){s||n.onAvailability(La(b??""))}const $=b=>z(b.castState),P=b=>{if(s)return;const S=b.sessionState;S==="SESSION_STARTED"||S==="SESSION_RESUMED"?k()&&n.onSession(S==="SESSION_STARTED"?"started":"resumed"):S==="SESSION_ENDED"&&(v(),n.onSession("ended"))};try{t.addEventListener(o.CAST_STATE_CHANGED,$),t.addEventListener(o.SESSION_STATE_CHANGED,P)}catch{return null}try{const b=at().chrome?.cast?.AutoJoinPolicy?.ORIGIN_SCOPED??"origin_scoped";t.setOptions({receiverApplicationId:n.appId,autoJoinPolicy:b})}catch{}try{z(t.getCastState())}catch{z("")}let w=!1;try{w=t.getCurrentSession()!==null}catch{w=!1}return w&&queueMicrotask(()=>{!s&&i===null&&k()&&n.onSession("resumed")}),{async request(){if(!s)try{await t.requestSession()}catch{}},stop(){try{t.endCurrentSession(!0)}catch{}},async send(b){if(!Nn(b))throw new Error("cast message too large");let S=null;try{S=t.getCurrentSession()}catch{S=null}if(!S)throw new Error("no cast session");await S.sendMessage(Ue,b)},deviceName(){try{return t.getCurrentSession()?.getCastDevice()?.friendlyName??""}catch{return""}},connected(){try{return t.getCurrentSession()!==null}catch{return!1}},close(){if(!s){s=!0,v();try{t.removeEventListener(o.CAST_STATE_CHANGED,$),t.removeEventListener(o.SESSION_STATE_CHANGED,P)}catch{}}}}}const Pa=["speak","scheme","toolbar"],Ba=new Set(Pa);function Oa(n){const y=n.now??(()=>Date.now()),t=n.slides.map(i=>({number:i.number,hasSpecial:i.special!=null})),o=Rn({budgets:n.slides.map(i=>i.seconds),targetSeconds:n.targetSeconds,now:y}),s=sn({slides:t,history:{state:null,replaceState(){}},mode:"speaker",onNavigate:i=>{o.tick(),o.go(i)}});return{press(i){if(i==="sync"||i==="goto"||Ba.has(i))return!1;const d=kn(i);if(!d)return!1;const v=s.applyKey({key:d});return v==="pause"?o.pause():v==="clock"?o.toggleHidden():v==="reset"&&o.reset(),!0},goto(i){const d=t.findIndex(v=>v.number===i);return d<0?!1:(s.go(d),!0)},seed(i,d){t.some(v=>v.number===i)&&(o.tick(),s.showId(d?`${i}s`:String(i)),o.seek(s.snapshot().index))},state(i={}){return o.tick(),bn(s.snapshot(),o.view(),n.tab,{claim:!0,bye:i.bye,light:!1})},position(){const i=s.snapshot();return{number:i.number,special:i.special}}}}const Va=/^[A-Za-z0-9_-]{8,64}$/;function st(n){return"bm.cast."+n}function qa(n,y,t){if(!n)return null;let o;try{o=n.getItem(st(y))}catch{return null}if(!o)return null;let s;try{s=JSON.parse(o)}catch{return null}if(typeof s!="object"||s===null||Array.isArray(s))return null;const{tab:i,ticket:d,expires_at:v}=s;if(typeof i!="string"||!Va.test(i)||!An(d)||typeof v!="string")return null;const k=Date.parse(v);return!Number.isFinite(k)||k<=t?null:{tab:i,ticket:d,expires_at:v}}function Ha(n,y,t){if(n)try{n.setItem(st(y),JSON.stringify({tab:t.tab,ticket:t.ticket,expires_at:t.expires_at}))}catch{}}function Wa(n,y){if(n)try{n.removeItem(st(y))}catch{}}function Tt(n,y,t=10*6e4){const o=Date.parse(n);return Number.isFinite(o)?y>=o-t:!0}const Ka={key:0,class:"remote-status remote-label"},Ga={key:1,class:"remote-status"},Za={key:0,class:"remote-alert",role:"alert"},Fa={class:"remote-middle"},Ja={key:0,class:"remote-notice"},Ua={key:0,class:"remote-notice"},Xa={class:"remote-dialog-body"},Ya="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",Qa="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",te="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",es="Nie udało się połączyć z TV. Spróbuj ponownie.",we="TV nie odpowiada. Dotknij „Na TV”, aby zakończyć i połączyć ponownie.",_t="Nie udało się odnowić biletu TV. Spróbuję ponownie.",St="Nie udało się pobrać dziennika TV.",ts=2e3,ns=15e3,as=15e3,ss=3e4,os=Te({__name:"PresentationRemoteView",props:{slug:{}},setup(n){const y=n,t=vn(),o=g("pending"),s=g(null),i=g("");let d=0,v=0,k=null,z="",$=0,P=0,w=0,b=!1,S=0,D=Je();const N=g(null),G=g(0),ae=g(Date.now()),A=g(!1),B=g(!1),Y=g("connecting"),Z=g(!1),O=g(!1),h=g(!1),x=p(()=>B.value?"live":h.value?"unavailable":A.value?"live":Y.value==="connected"&&O.value?"waiting":Z.value?"reconnecting":"connecting"),se=p(()=>s.value?.slides.length??0),T=p(()=>{const e=N.value;return!s.value||!e?0:et(s.value.slides,e.number)}),Me=p(()=>{const e=N.value;return A.value&&e?`${e.number} / ${e.total}`:`— / ${se.value}`}),zt=p(()=>{const e=N.value,a=s.value?.slides[T.value];return!e||!a?"":e.special&&a.special?tt(a.special):tt(a)}),$t=p(()=>N.value?_n(N.value):[]),Nt=p(()=>{const e=N.value;return!s.value||!e?null:In(Sn(e,s.value.slides.map(a=>a.seconds),s.value.target_seconds,T.value,G.value,ae.value))}),V=g(null),oe=g(1);he(N,e=>{e&&!e.bye&&e.number>0&&(oe.value=e.number)});function jt(e){se.value!==0&&(V.value=e)}function At(){V.value=null}function Dt(e){oe.value=e}function xt(e){if(f){re(),f.mode.goto(e)&&F(),V.value=null;return}if(A.value){re(),Pe("goto",e),V.value=null;return}oe.value=e,V.value="say"}function Q(){ae.value=Date.now(),A.value=B.value||D.live(ae.value)}function Rt(e){if(f)return;const a=En(e);!a||a.event!==zn||D.observe(a.payload,Date.now())&&(N.value=D.current(),G.value=D.receivedAt(),Q(),a.payload.bye&&le())}function Se(){d&&window.clearTimeout(d),d=0}const j=g("");let H=0;function q(e,a=4e3){j.value=e,H&&window.clearTimeout(H),H=0,a>0&&(H=window.setTimeout(()=>{j.value="",H=0},a))}function W(){H&&window.clearTimeout(H),H=0,j.value=""}const ie=g({});function ot(e,a){const l=Math.max(0,(ie.value[e]??0)+a);ie.value={...ie.value,[e]:l}}async function Pe(e,a){const l={action:e,tab:D.actionTab()};a!==void 0&&(l.number=a),ot(e,1);try{await R.remote(y.slug,l),j.value&&j.value!==te&&W()}catch(m){q(ht(m instanceof be?m.status:-1))}finally{ot(e,-1)}}function le(){f||!O.value||R.remote(y.slug,{action:"sync",tab:""}).catch(()=>{})}function It(){O.value=!0,h.value=!1,j.value===te&&W(),D.release(),le()}function Lt(e){Y.value=e,e==="connected"?Z.value=!0:O.value=!1}function Mt(e){if(O.value=!1,h.value=!0,e!==403||b){j.value===te&&W();return}b=!0,q(te,0),S=window.setTimeout(()=>{S=0,k?.resubscribe()},Cn)}function re(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function it(e){if(f){re(),f.mode.press(e)&&F();return}A.value&&(re(),Pe(e))}const ce=g(null),lt=g(null);function Pt(){if(!A.value)return;re();const e=ce.value;e&&(e.open||e.showModal(),Et(()=>lt.value?.focus()))}function Ce(){ce.value?.open&&ce.value.close()}function Bt(){if(Ce(),f){f.mode.press("clock-reset")&&F();return}A.value&&Pe("clock-reset")}function Ot(e){e.target===ce.value&&Ce()}let ue=null,Ee=!1;const ze=g(!1);async function rt(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ze.value=!0;return}if(!(ue&&!ue.released))try{const a=await e.request("screen");if(!Ee){a.release().catch(()=>{});return}ue=a,ze.value=!1}catch{ze.value=!0}}function Vt(){const e=ue;ue=null,e&&!e.released&&e.release().catch(()=>{})}function ct(){if(document.visibilityState!=="visible"){De();return}if(rt(),f){J&&Ke(),Ae.flush();return}le()}function Be(){$+=1,k?.close(),k=null,z="",O.value=!1,Y.value="connecting",Z.value=!1,h.value=!1,b=!1,S&&window.clearTimeout(S),S=0,j.value===te&&W(),D=Je(),N.value=null,G.value=0,Q()}async function qt(e){Be();const a=$;z=e;try{const l=()=>a===$,m=await fn(e,{onPublication:C=>{l()&&Rt(C)},onSubscribed:()=>{l()&&It()},onConnection:C=>{l()&&Lt(C)},onDenied:C=>{l()&&Mt(C)},onUnavailable:()=>{l()&&(h.value=!0)}});if(a!==$){m.close();return}k=m}catch{a===$&&(h.value=!0)}}function Ht(){const e=o.value==="ready"?s.value?.remote_channel??"":"";if(e!==z){if(!e){Be();return}qt(e)}}const Oe=g("off"),$e=g(""),Ne=g(null);let M=null,Ve="",je=0,f=null,de=0,ve=0,ut=Promise.resolve();const Ae=hn(()=>{Kt()},gn);function F(){f&&Ae.call()}function De(){ve&&window.clearTimeout(ve),ve=0}function Wt(){De(),!(!f||document.visibilityState!=="visible")&&(ve=window.setTimeout(()=>{ve=0;const e=f;e&&((J||Tt(e.expiresAt,Date.now()))&&Ke(),F())},Tn))}async function Kt(){const e=f;if(!e)return;const a=e.mode.state();Wt();const l=R.remoteState(e.slug,a);ut=l.catch(()=>{});try{if(await l,f!==e)return;N.value=a,G.value=Date.now(),Q(),j.value&&j.value!==te&&j.value!==we&&W()}catch(m){f===e&&q(ht(m instanceof be?m.status:-1))}}const xe=new Map;function dt(e,a){const l=window.setTimeout(()=>{xe.delete(l),R.castRevoke(e,a).catch(()=>{})},ns);xe.set(l,{slug:e,ticket:a})}function Gt(){for(const[e,a]of xe)window.clearTimeout(e),R.castRevoke(a.slug,a.ticket).catch(()=>{});xe.clear()}function qe(){try{return window.sessionStorage}catch{return null}}function vt(e){Ha(qe(),e.slug,{tab:e.tab,ticket:e.ticket,expires_at:e.expiresAt})}let He=null;function ee(e){const a=He;a&&(He=null,window.clearTimeout(a.timer),a.resolve(e))}function Zt(e){return ee(null),new Promise(a=>{const l=window.setTimeout(()=>ee(null),ts);He={resolve:a,timer:l},e.send({type:"where"}).catch(()=>ee(null))})}async function Ft(e){const a=s.value,l=M;if(!a||!l)return;const m=++de,C=y.slug,U=qa(qe(),C,Date.now()),X=e?U:null,Ze=X?.tab??$n();let bt=X?.ticket??"",Fe=X?.expires_at??"",Re="";if(!X||Tt(Fe,Date.now())){let Le;try{Le=await R.castMint(C)}catch{if(m!==de)return;q(es),l.stop();return}if(m!==de||M!==l){R.castRevoke(C,Le.ticket).catch(()=>{});return}U&&(Re=U.ticket),bt=Le.ticket,Fe=Le.expires_at}const kt=Oa({slides:a.slides,targetSeconds:a.target_seconds,tab:Ze}),ye=N.value;!X&&A.value&&ye&&!ye.bye&&ye.number>0&&kt.seed(ye.number,ye.special);const K={slug:C,tab:Ze,ticket:bt,expiresAt:Fe,mode:kt};f=K,B.value=!0,J=!1,Ne.value=null,vt(K),Q(),X||F();try{await l.send({type:"hello",ticket:K.ticket,tab:Ze})}catch{f===K&&q(we,0)}if(Re&&Re!==K.ticket&&dt(C,Re),!X||f!==K)return;const Ie=await Zt(l);f===K&&(Ie&&Ie.number>0&&K.mode.seed(Ie.number,Ie.special),F())}let J=!1,We=!1;async function Ke(){const e=f,a=M;if(!(!e||!a||We)){if(document.visibilityState!=="visible"){J=!0;return}We=!0,J=!1;try{let l;try{l=await R.castMint(e.slug)}catch{f===e&&(J=!0,q(_t));return}if(f!==e||M!==a){R.castRevoke(e.slug,l.ticket).catch(()=>{});return}const m=e.ticket;e.ticket=l.ticket,e.expiresAt=l.expires_at,vt(e);try{await a.send({type:"hello",ticket:e.ticket,tab:e.tab})}catch{f===e&&q(we,0)}m!==e.ticket&&dt(e.slug,m)}finally{We=!1}}}function Ge(){de+=1,Ne.value=null,ee(null),pe();const e=f;if(!e)return;f=null,B.value=!1,J=!1,Ae.cancel(),De();const a=e.mode.state({bye:!0});ut.then(()=>R.remoteState(e.slug,a)).catch(()=>{}),R.castRevoke(e.slug,e.ticket).catch(()=>{}),Gt(),Wa(qe(),e.slug),(j.value===we||j.value===_t)&&W(),D=Je(),N.value=null,G.value=0,Q(),le()}function Jt(){de+=1,ee(null),pe(),f=null,B.value=!1,Ae.cancel(),De()}function Ut(e){if($e.value=M?.deviceName()??"",e==="ended"){Ge();return}e==="resumed"&&f||(f&&Ge(),Ft(e==="resumed"))}let fe=[],me=0;function pe(){me&&window.clearTimeout(me),me=0,fe=[]}function ft(){pe(),q(St)}function Xt(){const e=M;if(!e||!e.connected()){q(St);return}pe(),me=window.setTimeout(ft,as),e.send({type:"log"}).catch(ft)}function Yt(e){if(!me)return;const a=Date.now();fe=fe.filter(U=>a-U.ata===je;M=Ma({appId:e,onAvailability:C=>{m()&&(Oe.value=C,$e.value=M?.deviceName()??"")},onSession:C=>{m()&&Ut(C)},onMessage:C=>{m()&&Qt(C)}})}function nn(){const e=s.value,a=o.value==="ready"&&e&&e.slides.length>0?e.cast_app_id??"":"",l=a?`${a}|${y.slug}`:"";l!==Ve&&(mt(),l&&(Ve=l,tn(a)))}async function pt(e){const a=++v;Se(),o.value="pending",s.value=null,i.value="",d=window.setTimeout(()=>{a===v&&o.value==="pending"&&(o.value="loading")},200);try{const l=await R.speaker(e);if(a!==v)return;Se();const m=l.slides??[];s.value={...l,slides:m},un(e),oe.value=m[0]?.number??1,V.value=null,document.title=l.title?`Pilot · ${l.title}`:"Pilot · BM II°",o.value=m.length===0?"empty":"ready"}catch(l){if(a!==v)return;if(Se(),l instanceof be&&l.status===404){dn(e),await t.replace({name:"my-presentations",query:{denied:"1"}});return}if(l instanceof be&&l.status===401)return;i.value=l instanceof be&&l.status===429?Qa:Ya,o.value="error"}}function an(){pt(y.slug)}function yt(e,a,l){if(document.querySelector(`meta[data-deck-remote="${l}"]`))return;const m=document.createElement("meta");m.name=e,m.content=a,m.dataset.deckRemote=l,document.head.appendChild(m)}return he(()=>y.slug,e=>{f&&Ge(),pt(e)},{immediate:!0}),he([s,o],()=>{Ht(),nn()}),rn(()=>{Ee=!0,document.documentElement.classList.add("deck-remote"),yt("robots","noindex","robots"),yt("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",ct),P=window.setInterval(()=>{document.visibilityState==="visible"&&le()},wn),w=window.setInterval(Q,1e3),rt()}),cn(()=>{Ee=!1,v+=1,Se(),W(),Be(),Jt(),mt(),Ce(),Vt(),window.clearInterval(P),window.clearInterval(w),document.removeEventListener("visibilitychange",ct),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,a)=>(r(),u("main",{class:I(["remote",{"remote-page":o.value==="ready"||o.value==="empty","remote-drawer-open":o.value==="ready"&&V.value}])},[o.value==="loading"?(r(),u("p",Ka,"Wczytywanie pilota…")):o.value==="error"?(r(),u("div",Ga,[c("p",null,_(i.value),1),c("button",{type:"button",class:"remote-retry",onClick:an},"Spróbuj ponownie")])):(o.value==="ready"||o.value==="empty")&&s.value?(r(),u(L,{key:2},[ne(xa,{class:"remote-top","deck-title":s.value.title,status:o.value==="empty"?"waiting":x.value,live:o.value==="ready"&&A.value,counter:Me.value,"slide-title":zt.value,chips:$t.value,clock:Nt.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),j.value?(r(),u("p",Za,_(j.value),1)):E("",!0),c("div",Fa,[o.value==="empty"?(r(),u("div",Ja,[...a[0]||(a[0]=[c("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),c("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):V.value?(r(),Qe(gt,{key:1,compact:"",cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:it},null,8,["cast","state","live","busy"])):(r(),u(L,{key:2},[ne(qn,{availability:Oe.value,"device-name":$e.value,tv:Ne.value,onRequest:en,onLog:Xt},null,8,["availability","device-name","tv"]),A.value?E("",!0):(r(),u("div",Ua,[...a[1]||(a[1]=[c("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),c("p",{class:"remote-muted"}," Klawisze zadziałają, gdy wersja mówcy tej prezentacji będzie otwarta na komputerze. Powiedz i notatki możesz czytać już teraz. ",-1)])])),ne(gt,{cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:it,onReset:Pt},null,8,["cast","state","live","busy"])],64))]),ne(da,{deck:s.value,state:N.value,live:o.value==="ready"&&A.value,cursor:oe.value,open:V.value,disabled:se.value===0,"wake-lock-missing":ze.value,onOpen:jt,onClose:At,onCursor:Dt,onGoto:xt},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):E("",!0),c("dialog",{ref_key:"resetDialog",ref:ce,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Ot},[c("div",Xa,[a[2]||(a[2]=c("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),a[3]||(a[3]=c("p",{id:"remote-reset-body",class:"remote-muted"}," Czas całości i wszystkich slajdów wróci do zera, a zegar ruszy przy następnej zmianie slajdu. ",-1)),c("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:Bt},"Zeruj zegar"),c("button",{ref_key:"resetCancel",ref:lt,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:Ce},"Anuluj",512)])],512)],2))}}),fs=_e(os,[["__scopeId","data-v-85090917"]]);export{fs as default}; +import{c as sn}from"./engine-DDeQk6Ow.js";import{d as Te,c as u,b as c,C as I,i as ne,_ as Ye,t as _,f as E,x as p,n as r,U as he,F as L,E as ge,j as on,r as g,l as ln,p as Ct,Z as Et,s as Qe,o as rn,b7 as cn,A as be,b8 as un,b9 as dn,m as vn,ba as fn}from"./index-DyD9x5ZD.js";import{p as R}from"./presentations-CZ3vmyJx.js";import{_ as _e}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{s as et,e as wt,f as tt,g as mn,h as pn,i as yn,d as bn,r as kn,j as wn,k as Je,a as hn,l as ht,S as gn,H as Tn,m as _n,o as Sn,D as Cn,b as En,R as zn,n as $n}from"./remote-aOKX75Mt.js";import{f as Nn,C as Ue,p as jn,i as An,j as Dn,d as xn}from"./log-Xlt5jeld.js";import{c as Rn,a as In}from"./clock-4r1aA6KU.js";const Ln={key:0,class:"cast"},Mn=["aria-busy"],Pn={class:"cast-label"},Bn={key:0,class:"cast-tv"},On={key:0,"aria-live":"polite"},Vn=Te({__name:"CastButton",props:{availability:{},deviceName:{},tv:{}},emits:["request","log"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>t.availability!=="off"&&t.availability!=="no-devices"),i=p(()=>t.availability==="connected"),d=p(()=>t.availability==="connecting"?"Łączę z TV…":t.availability==="connected"?t.deviceName?`Na TV: ${t.deviceName}`:"Na TV":"Wyświetl na TV"),v=p(()=>{const k=t.tv;return k?k.phase==="waiting"?"TV: czekam na bilet":k.phase==="loading"?"TV: przygotowuję slajdy…":k.phase==="error"?"TV: błąd, połącz ponownie":`TV: slajd ${k.number}${k.special?" · specjalny":""}`:""});return(k,z)=>s.value?(r(),u("div",Ln,[c("button",{type:"button",class:I(["cast-row",{on:i.value}]),"aria-busy":n.availability==="connecting"?"true":void 0,onClick:z[0]||(z[0]=$=>o("request"))},[ne(Ye,{class:"cast-icon",name:"cast"}),c("span",Pn,_(d.value),1)],10,Mn),i.value?(r(),u("p",Bn,[v.value?(r(),u("span",On,_(v.value),1)):E("",!0),c("button",{type:"button",class:"cast-log",onClick:z[1]||(z[1]=$=>o("log"))},"Dziennik TV")])):E("",!0)])):E("",!0)}}),qn=_e(Vn,[["__scopeId","data-v-ff9a5014"]]),Hn={class:"drawer"},Wn=["id","aria-label"],Kn={class:"sheet-head"},Gn=["disabled"],Zn={class:"sheet-title"},Fn={class:"title"},Jn={key:0,class:"subtitle"},Un=["disabled"],Xn=["innerHTML"],Yn={key:1,class:"empty"},Qn=["innerHTML"],ea={key:1,class:"empty"},ta=["data-current","aria-current","onClick"],na={class:"num"},aa={class:"row-title"},sa={key:0,class:"tag"},oa={key:1,class:"now"},ia={class:"list-foot"},la={key:0,class:"hint"},ra={class:"bar","aria-label":"Szuflady na telefonie"},ca=["disabled","aria-expanded","aria-controls","onClick"],ua=Te({__name:"RemoteDrawer",props:{deck:{},state:{},live:{type:Boolean},cursor:{},open:{},disabled:{type:Boolean},wakeLockMissing:{type:Boolean}},emits:["goto","cursor","open","close"],setup(n,{emit:y}){const t=n,o=y,s=[{kind:"say",label:"Powiedz"},{kind:"notes",label:"Notatki"},{kind:"slides",label:"Slajdy"}],i=p(()=>t.deck.slides.length),d=p(()=>mn(t.deck,t.state,t.live,t.cursor)),v=p(()=>t.live&&t.state?t.state.number:t.deck.slides[et(t.deck.slides,t.cursor)]?.number??0),k=p(()=>et(t.deck.slides,t.cursor)),z=p(()=>t.live&&t.state?t.state.number:t.deck.slides[k.value]?.number??t.cursor),$=p(()=>{const h=t.live&&t.state?.special?"s":"";return`${z.value}${h}`});function P(h){return h?/]*>/g,"").replace(/ | /g," ").trim()!=="":!1}const w=p(()=>P(d.value?.say_html)?wt(d.value?.say_html??""):""),b=p(()=>P(d.value?.notes_html)?wt(d.value?.notes_html??""):""),S=p(()=>t.open==="say"?`Powiedz · slajd ${z.value}`:t.open==="notes"?`Notatki · slajd ${z.value}`:"Slajdy"),D=p(()=>t.open==="slides"?"":t.live?"Widzisz tylko Ty":`Przeglądasz na telefonie · slajd ${k.value+1} z ${i.value}`),N=p(()=>!t.live&&(t.open==="say"||t.open==="notes")),G=p(()=>k.value>0),ae=p(()=>k.valuet.deck.slides.map(h=>({number:h.number,title:tt(h),special:!!h.special})));function B(h){t.disabled||(t.open===h?o("close"):o("open",h))}function Y(h){const x=t.deck.slides[k.value+h];x&&o("cursor",x.number)}const Z=g(null),O=g(null);return he([$,()=>t.open],()=>{Z.value&&(Z.value.scrollTop=0)}),he(()=>t.open,async h=>{if(h!=="slides")return;await Et(),O.value?.querySelector('[data-current="true"]')?.scrollIntoView({block:"center"})}),(h,x)=>{const se=ln("router-link");return r(),u("div",Hn,[n.open?(r(),u("section",{key:0,id:`remote-drawer-${n.open}`,class:"sheet","aria-label":S.value},[c("header",Kn,[N.value?(r(),u("button",{key:0,type:"button",class:"icon-btn","aria-label":"Poprzedni slajd na telefonie",disabled:!G.value,onClick:x[0]||(x[0]=T=>Y(-1))}," ‹ ",8,Gn)):E("",!0),c("div",Zn,[c("p",Fn,_(S.value),1),D.value?(r(),u("p",Jn,_(D.value),1)):E("",!0)]),N.value?(r(),u("button",{key:1,type:"button",class:"icon-btn","aria-label":"Następny slajd na telefonie",disabled:!ae.value,onClick:x[1]||(x[1]=T=>Y(1))}," › ",8,Un)):E("",!0),c("button",{type:"button",class:"close-btn",onClick:x[2]||(x[2]=T=>o("close"))},"Zamknij")]),c("div",{ref_key:"body",ref:Z,class:I(["sheet-body",{reading:n.open!=="slides"}])},[n.open==="say"?(r(),u(L,{key:0},[w.value?(r(),u("div",{key:0,class:"text",innerHTML:w.value},null,8,Xn)):(r(),u("p",Yn,"Brak tekstu do powiedzenia na tym slajdzie."))],64)):n.open==="notes"?(r(),u(L,{key:1},[b.value?(r(),u("div",{key:0,class:"text",innerHTML:b.value},null,8,Qn)):(r(),u("p",ea,"Brak notatek do tego slajdu."))],64)):(r(),u(L,{key:2},[c("ol",{ref_key:"list",ref:O,class:"list"},[(r(!0),u(L,null,ge(A.value,T=>(r(),u("li",{key:T.number},[c("button",{type:"button",class:"row","data-current":T.number===v.value?"true":void 0,"aria-current":T.number===v.value?"true":void 0,onClick:Me=>o("goto",T.number)},[c("span",na,_(T.number),1),c("span",aa,_(T.title),1),T.special?(r(),u("span",sa,"+ specjalny")):E("",!0),T.number===v.value?(r(),u("span",oa,"teraz")):E("",!0)],8,ta)]))),128))],512),c("footer",ia,[ne(se,{class:"back-link",to:{name:"my-presentations"}},{default:on(()=>[...x[3]||(x[3]=[Ct("Wróć do moich prezentacji",-1)])]),_:1}),n.wakeLockMissing?(r(),u("p",la,"Ta przeglądarka nie pozwala zablokować wygaszania ekranu.")):E("",!0)])],64))],2)],8,Wn)):E("",!0),c("nav",ra,[(r(),u(L,null,ge(s,T=>c("button",{key:T.kind,type:"button",class:I(["tab",{open:n.open===T.kind}]),disabled:n.disabled,"aria-expanded":n.open===T.kind?"true":"false","aria-controls":`remote-drawer-${T.kind}`,onClick:Me=>B(T.kind)},_(T.label),11,ca)),64))])])}}}),da=_e(ua,[["__scopeId","data-v-9f920f42"]]),va=["aria-label"],fa={key:0,class:"eyebrow"},ma={class:"grid nav"},pa=["disabled","aria-busy","onClick"],ya={key:1,class:"grid fn"},ba=["disabled","aria-pressed","aria-busy","onClick"],ka={class:"label"},wa=Te({__name:"RemoteKeys",props:{state:{},live:{type:Boolean},busy:{},compact:{type:Boolean},cast:{type:Boolean}},emits:["press","reset"],setup(n,{emit:y}){const t=n,o=y,s=p(()=>pn(t.state,t.live,t.cast?"cast":"deck")),i=p(()=>t.cast?"Klawisze na TV":"Klawisze na komputerze"),d=p(()=>s.value.slice(0,2)),v=p(()=>s.value.slice(2));function k($){return(t.busy[$.action]??0)>0}function z($){$.enabled&&($.action==="clock-reset"?o("reset"):o("press",$.action))}return($,P)=>(r(),u("section",{class:I(["keys",{compact:n.compact}]),"aria-label":i.value},[n.compact?E("",!0):(r(),u("p",fa,_(i.value),1)),c("div",ma,[(r(!0),u(L,null,ge(d.value,w=>(r(),u("button",{key:w.action,type:"button",class:I(["key nav-key",w.action]),disabled:!w.enabled,"aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[w.action==="prev"?(r(),Qe(Ye,{key:0,class:"arrow",name:"arrow-left"})):E("",!0),c("span",null,_(w.label),1),w.action==="next"?(r(),Qe(Ye,{key:1,class:"arrow",name:"arrow-right"})):E("",!0)],10,pa))),128))]),n.compact?E("",!0):(r(),u("div",ya,[(r(!0),u(L,null,ge(v.value,w=>(r(),u("button",{key:w.action,type:"button",class:"key fn-key",disabled:!w.enabled,"aria-pressed":w.pressed===null?void 0:w.pressed?"true":"false","aria-busy":k(w)?"true":void 0,onClick:b=>z(w)},[c("span",ka,_(w.label),1),c("kbd",null,_(w.kbd),1)],8,ba))),128))]))],10,va))}}),gt=_e(wa,[["__scopeId","data-v-25e061a7"]]),ha={class:"top"},ga={class:"row row-title"},Ta={class:"deck-title"},_a={class:"row row-slide","aria-live":"polite"},Sa={class:"counter"},Ca={key:0,class:"slide-title"},Ea={key:1,class:"slide-title waiting"},za={class:"row row-chips","aria-label":"Na komputerze"},$a={class:"row row-clock"},Na={key:0,class:"idle"},ja={key:0,class:"chip"},Aa={key:2,class:"clock"},Da=Te({__name:"RemoteTopBar",props:{deckTitle:{},status:{},live:{type:Boolean},counter:{},slideTitle:{},chips:{},clock:{}},setup(n){const y=n,t=p(()=>yn(y.status));return(o,s)=>(r(),u("header",ha,[c("div",ga,[c("p",Ta,_(n.deckTitle),1),c("p",{class:I(["conn",{on:n.status==="live"}])},[s[0]||(s[0]=c("span",{class:"dot","aria-hidden":"true"},null,-1)),Ct(_(t.value),1)],2)]),c("div",_a,[c("p",Sa,_(n.counter),1),n.live?(r(),u("p",Ca,_(n.slideTitle),1)):(r(),u("p",Ea,"Czekam na wersję mówcy"))]),c("ul",za,[n.live?(r(!0),u(L,{key:0},ge(n.chips,i=>(r(),u("li",{key:i,class:I(["chip",{khaki:i==="Specjalny"}])},_(i),3))),128)):E("",!0)]),c("div",$a,[n.live&&n.clock&&n.clock.idle?(r(),u("p",Na,"Zegar ruszy przy pierwszej zmianie slajdu")):n.live&&n.clock?(r(),u(L,{key:1},[c("p",{class:I(["clock",{paused:n.clock.paused}])},[s[2]||(s[2]=c("span",{class:"lbl"},"Slajd",-1)),c("b",{class:I({over:n.clock.slideOver})},_(n.clock.slide),3),s[3]||(s[3]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),s[4]||(s[4]=c("span",{class:"lbl"},"Całość",-1)),c("b",{class:I({over:n.clock.totalOver})},_(n.clock.total),3),n.clock.pace?(r(),u(L,{key:0},[s[1]||(s[1]=c("span",{class:"sep","aria-hidden":"true"},"·",-1)),c("span",{class:I(["pace",{late:n.clock.late}])},_(n.clock.pace),3)],64)):E("",!0)],2),n.clock.paused?(r(),u("span",ja,"Pauza")):E("",!0)],64)):(r(),u("p",Aa,[...s[5]||(s[5]=[c("b",null,"—",-1)])]))])]))}}),xa=_e(Da,[["__scopeId","data-v-382e11de"]]),Ra="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",Xe="bm-cast-sender";function at(){return globalThis}function nt(){const n=at().cast?.framework;return n&&n.CastContext&&n.CastContextEventType?n:null}let ke=null;function Ia(n=1e4){return nt()?Promise.resolve(!0):ke||(typeof document>"u"?Promise.resolve(!1):(ke=new Promise(t=>{let o=!1,s=null;const i=d=>{o||(o=!0,s!==null&&clearTimeout(s),t(d&&nt()!==null))};try{at().__onGCastApiAvailable=v=>i(!!v);let d=document.getElementById(Xe);d||(d=document.createElement("script"),d.id=Xe,d.src=Ra,d.async=!0,d.addEventListener("error",()=>i(!1)),document.head.appendChild(d)),s=setTimeout(()=>i(!1),n)}catch{i(!1)}}).then(t=>(t||(ke=null,document.getElementById(Xe)?.remove()),t)),ke))}function La(n){switch(n){case"NOT_CONNECTED":return"available";case"CONNECTING":return"connecting";case"CONNECTED":return"connected";default:return"no-devices"}}function Ma(n){const y=nt();if(!y)return null;let t;try{t=y.CastContext.getInstance()}catch{return null}const o=y.CastContextEventType;let s=!1,i=null;const d=(b,S)=>{if(s)return;const D=jn(S);D&&n.onMessage(D)};function v(){const b=i;if(i=null,!!b)try{b.removeMessageListener(Ue,d)}catch{}}function k(){v();let b=null;try{b=t.getCurrentSession(),b?.addMessageListener(Ue,d)}catch{b=null}return i=b,b!==null}function z(b){s||n.onAvailability(La(b??""))}const $=b=>z(b.castState),P=b=>{if(s)return;const S=b.sessionState;S==="SESSION_STARTED"||S==="SESSION_RESUMED"?k()&&n.onSession(S==="SESSION_STARTED"?"started":"resumed"):S==="SESSION_ENDED"&&(v(),n.onSession("ended"))};try{t.addEventListener(o.CAST_STATE_CHANGED,$),t.addEventListener(o.SESSION_STATE_CHANGED,P)}catch{return null}try{const b=at().chrome?.cast?.AutoJoinPolicy?.ORIGIN_SCOPED??"origin_scoped";t.setOptions({receiverApplicationId:n.appId,autoJoinPolicy:b})}catch{}try{z(t.getCastState())}catch{z("")}let w=!1;try{w=t.getCurrentSession()!==null}catch{w=!1}return w&&queueMicrotask(()=>{!s&&i===null&&k()&&n.onSession("resumed")}),{async request(){if(!s)try{await t.requestSession()}catch{}},stop(){try{t.endCurrentSession(!0)}catch{}},async send(b){if(!Nn(b))throw new Error("cast message too large");let S=null;try{S=t.getCurrentSession()}catch{S=null}if(!S)throw new Error("no cast session");await S.sendMessage(Ue,b)},deviceName(){try{return t.getCurrentSession()?.getCastDevice()?.friendlyName??""}catch{return""}},connected(){try{return t.getCurrentSession()!==null}catch{return!1}},close(){if(!s){s=!0,v();try{t.removeEventListener(o.CAST_STATE_CHANGED,$),t.removeEventListener(o.SESSION_STATE_CHANGED,P)}catch{}}}}}const Pa=["speak","scheme","toolbar"],Ba=new Set(Pa);function Oa(n){const y=n.now??(()=>Date.now()),t=n.slides.map(i=>({number:i.number,hasSpecial:i.special!=null})),o=Rn({budgets:n.slides.map(i=>i.seconds),targetSeconds:n.targetSeconds,now:y}),s=sn({slides:t,history:{state:null,replaceState(){}},mode:"speaker",onNavigate:i=>{o.tick(),o.go(i)}});return{press(i){if(i==="sync"||i==="goto"||Ba.has(i))return!1;const d=kn(i);if(!d)return!1;const v=s.applyKey({key:d});return v==="pause"?o.pause():v==="clock"?o.toggleHidden():v==="reset"&&o.reset(),!0},goto(i){const d=t.findIndex(v=>v.number===i);return d<0?!1:(s.go(d),!0)},seed(i,d){t.some(v=>v.number===i)&&(o.tick(),s.showId(d?`${i}s`:String(i)),o.seek(s.snapshot().index))},state(i={}){return o.tick(),bn(s.snapshot(),o.view(),n.tab,{claim:!0,bye:i.bye,light:!1})},position(){const i=s.snapshot();return{number:i.number,special:i.special}}}}const Va=/^[A-Za-z0-9_-]{8,64}$/;function st(n){return"bm.cast."+n}function qa(n,y,t){if(!n)return null;let o;try{o=n.getItem(st(y))}catch{return null}if(!o)return null;let s;try{s=JSON.parse(o)}catch{return null}if(typeof s!="object"||s===null||Array.isArray(s))return null;const{tab:i,ticket:d,expires_at:v}=s;if(typeof i!="string"||!Va.test(i)||!An(d)||typeof v!="string")return null;const k=Date.parse(v);return!Number.isFinite(k)||k<=t?null:{tab:i,ticket:d,expires_at:v}}function Ha(n,y,t){if(n)try{n.setItem(st(y),JSON.stringify({tab:t.tab,ticket:t.ticket,expires_at:t.expires_at}))}catch{}}function Wa(n,y){if(n)try{n.removeItem(st(y))}catch{}}function Tt(n,y,t=10*6e4){const o=Date.parse(n);return Number.isFinite(o)?y>=o-t:!0}const Ka={key:0,class:"remote-status remote-label"},Ga={key:1,class:"remote-status"},Za={key:0,class:"remote-alert",role:"alert"},Fa={class:"remote-middle"},Ja={key:0,class:"remote-notice"},Ua={key:0,class:"remote-notice"},Xa={class:"remote-dialog-body"},Ya="Nie udało się wczytać prezentacji. Sprawdź połączenie z internetem i spróbuj ponownie.",Qa="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",te="Pilot niedostępny. Spróbuję połączyć się ponownie za 10 s.",es="Nie udało się połączyć z TV. Spróbuj ponownie.",we="TV nie odpowiada. Dotknij „Na TV”, aby zakończyć i połączyć ponownie.",_t="Nie udało się odnowić biletu TV. Spróbuję ponownie.",St="Nie udało się pobrać dziennika TV.",ts=2e3,ns=15e3,as=15e3,ss=3e4,os=Te({__name:"PresentationRemoteView",props:{slug:{}},setup(n){const y=n,t=vn(),o=g("pending"),s=g(null),i=g("");let d=0,v=0,k=null,z="",$=0,P=0,w=0,b=!1,S=0,D=Je();const N=g(null),G=g(0),ae=g(Date.now()),A=g(!1),B=g(!1),Y=g("connecting"),Z=g(!1),O=g(!1),h=g(!1),x=p(()=>B.value?"live":h.value?"unavailable":A.value?"live":Y.value==="connected"&&O.value?"waiting":Z.value?"reconnecting":"connecting"),se=p(()=>s.value?.slides.length??0),T=p(()=>{const e=N.value;return!s.value||!e?0:et(s.value.slides,e.number)}),Me=p(()=>{const e=N.value;return A.value&&e?`${e.number} / ${e.total}`:`— / ${se.value}`}),zt=p(()=>{const e=N.value,a=s.value?.slides[T.value];return!e||!a?"":e.special&&a.special?tt(a.special):tt(a)}),$t=p(()=>N.value?_n(N.value):[]),Nt=p(()=>{const e=N.value;return!s.value||!e?null:In(Sn(e,s.value.slides.map(a=>a.seconds),s.value.target_seconds,T.value,G.value,ae.value))}),V=g(null),oe=g(1);he(N,e=>{e&&!e.bye&&e.number>0&&(oe.value=e.number)});function jt(e){se.value!==0&&(V.value=e)}function At(){V.value=null}function Dt(e){oe.value=e}function xt(e){if(f){re(),f.mode.goto(e)&&F(),V.value=null;return}if(A.value){re(),Pe("goto",e),V.value=null;return}oe.value=e,V.value="say"}function Q(){ae.value=Date.now(),A.value=B.value||D.live(ae.value)}function Rt(e){if(f)return;const a=En(e);!a||a.event!==zn||D.observe(a.payload,Date.now())&&(N.value=D.current(),G.value=D.receivedAt(),Q(),a.payload.bye&&le())}function Se(){d&&window.clearTimeout(d),d=0}const j=g("");let H=0;function q(e,a=4e3){j.value=e,H&&window.clearTimeout(H),H=0,a>0&&(H=window.setTimeout(()=>{j.value="",H=0},a))}function W(){H&&window.clearTimeout(H),H=0,j.value=""}const ie=g({});function ot(e,a){const l=Math.max(0,(ie.value[e]??0)+a);ie.value={...ie.value,[e]:l}}async function Pe(e,a){const l={action:e,tab:D.actionTab()};a!==void 0&&(l.number=a),ot(e,1);try{await R.remote(y.slug,l),j.value&&j.value!==te&&W()}catch(m){q(ht(m instanceof be?m.status:-1))}finally{ot(e,-1)}}function le(){f||!O.value||R.remote(y.slug,{action:"sync",tab:""}).catch(()=>{})}function It(){O.value=!0,h.value=!1,j.value===te&&W(),D.release(),le()}function Lt(e){Y.value=e,e==="connected"?Z.value=!0:O.value=!1}function Mt(e){if(O.value=!1,h.value=!0,e!==403||b){j.value===te&&W();return}b=!0,q(te,0),S=window.setTimeout(()=>{S=0,k?.resubscribe()},Cn)}function re(){typeof navigator.vibrate=="function"&&navigator.vibrate(15)}function it(e){if(f){re(),f.mode.press(e)&&F();return}A.value&&(re(),Pe(e))}const ce=g(null),lt=g(null);function Pt(){if(!A.value)return;re();const e=ce.value;e&&(e.open||e.showModal(),Et(()=>lt.value?.focus()))}function Ce(){ce.value?.open&&ce.value.close()}function Bt(){if(Ce(),f){f.mode.press("clock-reset")&&F();return}A.value&&Pe("clock-reset")}function Ot(e){e.target===ce.value&&Ce()}let ue=null,Ee=!1;const ze=g(!1);async function rt(){const e=navigator.wakeLock;if(!e||typeof e.request!="function"){ze.value=!0;return}if(!(ue&&!ue.released))try{const a=await e.request("screen");if(!Ee){a.release().catch(()=>{});return}ue=a,ze.value=!1}catch{ze.value=!0}}function Vt(){const e=ue;ue=null,e&&!e.released&&e.release().catch(()=>{})}function ct(){if(document.visibilityState!=="visible"){De();return}if(rt(),f){J&&Ke(),Ae.flush();return}le()}function Be(){$+=1,k?.close(),k=null,z="",O.value=!1,Y.value="connecting",Z.value=!1,h.value=!1,b=!1,S&&window.clearTimeout(S),S=0,j.value===te&&W(),D=Je(),N.value=null,G.value=0,Q()}async function qt(e){Be();const a=$;z=e;try{const l=()=>a===$,m=await fn(e,{onPublication:C=>{l()&&Rt(C)},onSubscribed:()=>{l()&&It()},onConnection:C=>{l()&&Lt(C)},onDenied:C=>{l()&&Mt(C)},onUnavailable:()=>{l()&&(h.value=!0)}});if(a!==$){m.close();return}k=m}catch{a===$&&(h.value=!0)}}function Ht(){const e=o.value==="ready"?s.value?.remote_channel??"":"";if(e!==z){if(!e){Be();return}qt(e)}}const Oe=g("off"),$e=g(""),Ne=g(null);let M=null,Ve="",je=0,f=null,de=0,ve=0,ut=Promise.resolve();const Ae=hn(()=>{Kt()},gn);function F(){f&&Ae.call()}function De(){ve&&window.clearTimeout(ve),ve=0}function Wt(){De(),!(!f||document.visibilityState!=="visible")&&(ve=window.setTimeout(()=>{ve=0;const e=f;e&&((J||Tt(e.expiresAt,Date.now()))&&Ke(),F())},Tn))}async function Kt(){const e=f;if(!e)return;const a=e.mode.state();Wt();const l=R.remoteState(e.slug,a);ut=l.catch(()=>{});try{if(await l,f!==e)return;N.value=a,G.value=Date.now(),Q(),j.value&&j.value!==te&&j.value!==we&&W()}catch(m){f===e&&q(ht(m instanceof be?m.status:-1))}}const xe=new Map;function dt(e,a){const l=window.setTimeout(()=>{xe.delete(l),R.castRevoke(e,a).catch(()=>{})},ns);xe.set(l,{slug:e,ticket:a})}function Gt(){for(const[e,a]of xe)window.clearTimeout(e),R.castRevoke(a.slug,a.ticket).catch(()=>{});xe.clear()}function qe(){try{return window.sessionStorage}catch{return null}}function vt(e){Ha(qe(),e.slug,{tab:e.tab,ticket:e.ticket,expires_at:e.expiresAt})}let He=null;function ee(e){const a=He;a&&(He=null,window.clearTimeout(a.timer),a.resolve(e))}function Zt(e){return ee(null),new Promise(a=>{const l=window.setTimeout(()=>ee(null),ts);He={resolve:a,timer:l},e.send({type:"where"}).catch(()=>ee(null))})}async function Ft(e){const a=s.value,l=M;if(!a||!l)return;const m=++de,C=y.slug,U=qa(qe(),C,Date.now()),X=e?U:null,Ze=X?.tab??$n();let bt=X?.ticket??"",Fe=X?.expires_at??"",Re="";if(!X||Tt(Fe,Date.now())){let Le;try{Le=await R.castMint(C)}catch{if(m!==de)return;q(es),l.stop();return}if(m!==de||M!==l){R.castRevoke(C,Le.ticket).catch(()=>{});return}U&&(Re=U.ticket),bt=Le.ticket,Fe=Le.expires_at}const kt=Oa({slides:a.slides,targetSeconds:a.target_seconds,tab:Ze}),ye=N.value;!X&&A.value&&ye&&!ye.bye&&ye.number>0&&kt.seed(ye.number,ye.special);const K={slug:C,tab:Ze,ticket:bt,expiresAt:Fe,mode:kt};f=K,B.value=!0,J=!1,Ne.value=null,vt(K),Q(),X||F();try{await l.send({type:"hello",ticket:K.ticket,tab:Ze})}catch{f===K&&q(we,0)}if(Re&&Re!==K.ticket&&dt(C,Re),!X||f!==K)return;const Ie=await Zt(l);f===K&&(Ie&&Ie.number>0&&K.mode.seed(Ie.number,Ie.special),F())}let J=!1,We=!1;async function Ke(){const e=f,a=M;if(!(!e||!a||We)){if(document.visibilityState!=="visible"){J=!0;return}We=!0,J=!1;try{let l;try{l=await R.castMint(e.slug)}catch{f===e&&(J=!0,q(_t));return}if(f!==e||M!==a){R.castRevoke(e.slug,l.ticket).catch(()=>{});return}const m=e.ticket;e.ticket=l.ticket,e.expiresAt=l.expires_at,vt(e);try{await a.send({type:"hello",ticket:e.ticket,tab:e.tab})}catch{f===e&&q(we,0)}m!==e.ticket&&dt(e.slug,m)}finally{We=!1}}}function Ge(){de+=1,Ne.value=null,ee(null),pe();const e=f;if(!e)return;f=null,B.value=!1,J=!1,Ae.cancel(),De();const a=e.mode.state({bye:!0});ut.then(()=>R.remoteState(e.slug,a)).catch(()=>{}),R.castRevoke(e.slug,e.ticket).catch(()=>{}),Gt(),Wa(qe(),e.slug),(j.value===we||j.value===_t)&&W(),D=Je(),N.value=null,G.value=0,Q(),le()}function Jt(){de+=1,ee(null),pe(),f=null,B.value=!1,Ae.cancel(),De()}function Ut(e){if($e.value=M?.deviceName()??"",e==="ended"){Ge();return}e==="resumed"&&f||(f&&Ge(),Ft(e==="resumed"))}let fe=[],me=0;function pe(){me&&window.clearTimeout(me),me=0,fe=[]}function ft(){pe(),q(St)}function Xt(){const e=M;if(!e||!e.connected()){q(St);return}pe(),me=window.setTimeout(ft,as),e.send({type:"log"}).catch(ft)}function Yt(e){if(!me)return;const a=Date.now();fe=fe.filter(U=>a-U.ata===je;M=Ma({appId:e,onAvailability:C=>{m()&&(Oe.value=C,$e.value=M?.deviceName()??"")},onSession:C=>{m()&&Ut(C)},onMessage:C=>{m()&&Qt(C)}})}function nn(){const e=s.value,a=o.value==="ready"&&e&&e.slides.length>0?e.cast_app_id??"":"",l=a?`${a}|${y.slug}`:"";l!==Ve&&(mt(),l&&(Ve=l,tn(a)))}async function pt(e){const a=++v;Se(),o.value="pending",s.value=null,i.value="",d=window.setTimeout(()=>{a===v&&o.value==="pending"&&(o.value="loading")},200);try{const l=await R.speaker(e);if(a!==v)return;Se();const m=l.slides??[];s.value={...l,slides:m},un(e),oe.value=m[0]?.number??1,V.value=null,document.title=l.title?`Pilot · ${l.title}`:"Pilot · BM II°",o.value=m.length===0?"empty":"ready"}catch(l){if(a!==v)return;if(Se(),l instanceof be&&l.status===404){dn(e),await t.replace({name:"my-presentations",query:{denied:"1"}});return}if(l instanceof be&&l.status===401)return;i.value=l instanceof be&&l.status===429?Qa:Ya,o.value="error"}}function an(){pt(y.slug)}function yt(e,a,l){if(document.querySelector(`meta[data-deck-remote="${l}"]`))return;const m=document.createElement("meta");m.name=e,m.content=a,m.dataset.deckRemote=l,document.head.appendChild(m)}return he(()=>y.slug,e=>{f&&Ge(),pt(e)},{immediate:!0}),he([s,o],()=>{Ht(),nn()}),rn(()=>{Ee=!0,document.documentElement.classList.add("deck-remote"),yt("robots","noindex","robots"),yt("theme-color","#141a18","theme"),document.addEventListener("visibilitychange",ct),P=window.setInterval(()=>{document.visibilityState==="visible"&&le()},wn),w=window.setInterval(Q,1e3),rt()}),cn(()=>{Ee=!1,v+=1,Se(),W(),Be(),Jt(),mt(),Ce(),Vt(),window.clearInterval(P),window.clearInterval(w),document.removeEventListener("visibilitychange",ct),document.documentElement.classList.remove("deck-remote"),document.querySelectorAll("meta[data-deck-remote]").forEach(e=>e.remove())}),(e,a)=>(r(),u("main",{class:I(["remote",{"remote-page":o.value==="ready"||o.value==="empty","remote-drawer-open":o.value==="ready"&&V.value}])},[o.value==="loading"?(r(),u("p",Ka,"Wczytywanie pilota…")):o.value==="error"?(r(),u("div",Ga,[c("p",null,_(i.value),1),c("button",{type:"button",class:"remote-retry",onClick:an},"Spróbuj ponownie")])):(o.value==="ready"||o.value==="empty")&&s.value?(r(),u(L,{key:2},[ne(xa,{class:"remote-top","deck-title":s.value.title,status:o.value==="empty"?"waiting":x.value,live:o.value==="ready"&&A.value,counter:Me.value,"slide-title":zt.value,chips:$t.value,clock:Nt.value},null,8,["deck-title","status","live","counter","slide-title","chips","clock"]),j.value?(r(),u("p",Za,_(j.value),1)):E("",!0),c("div",Fa,[o.value==="empty"?(r(),u("div",Ja,[...a[0]||(a[0]=[c("p",{class:"remote-notice-head"},"Ta prezentacja nie ma jeszcze slajdów.",-1),c("p",{class:"remote-muted"},"Dodaj slajdy w panelu administracyjnym i otwórz pilota ponownie.",-1)])])):V.value?(r(),Qe(gt,{key:1,compact:"",cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:it},null,8,["cast","state","live","busy"])):(r(),u(L,{key:2},[ne(qn,{availability:Oe.value,"device-name":$e.value,tv:Ne.value,onRequest:en,onLog:Xt},null,8,["availability","device-name","tv"]),A.value?E("",!0):(r(),u("div",Ua,[...a[1]||(a[1]=[c("p",{class:"remote-notice-head"},"Otwórz wersję mówcy na komputerze",-1),c("p",{class:"remote-muted"}," Klawisze zadziałają, gdy wersja mówcy tej prezentacji będzie otwarta na komputerze. Powiedz i notatki możesz czytać już teraz. ",-1)])])),ne(gt,{cast:B.value,state:N.value,live:A.value,busy:ie.value,onPress:it,onReset:Pt},null,8,["cast","state","live","busy"])],64))]),ne(da,{deck:s.value,state:N.value,live:o.value==="ready"&&A.value,cursor:oe.value,open:V.value,disabled:se.value===0,"wake-lock-missing":ze.value,onOpen:jt,onClose:At,onCursor:Dt,onGoto:xt},null,8,["deck","state","live","cursor","open","disabled","wake-lock-missing"])],64)):E("",!0),c("dialog",{ref_key:"resetDialog",ref:ce,class:"remote-dialog","aria-labelledby":"remote-reset-title","aria-describedby":"remote-reset-body",onClick:Ot},[c("div",Xa,[a[2]||(a[2]=c("p",{id:"remote-reset-title",class:"remote-dialog-title"},"Wyzerować zegar?",-1)),a[3]||(a[3]=c("p",{id:"remote-reset-body",class:"remote-muted"}," Czas całości i wszystkich slajdów wróci do zera, a zegar ruszy przy następnej zmianie slajdu. ",-1)),c("button",{type:"button",class:"remote-dialog-btn remote-dialog-danger",onClick:Bt},"Zeruj zegar"),c("button",{ref_key:"resetCancel",ref:lt,type:"button",class:"remote-dialog-btn",autofocus:"",onClick:Ce},"Anuluj",512)])],512)],2))}}),fs=_e(os,[["__scopeId","data-v-85090917"]]);export{fs as default}; diff --git a/public/assets/PresentationSpeakerView-DYlbz4sc.js b/public/assets/PresentationSpeakerView-CoTPvDZa.js similarity index 96% rename from public/assets/PresentationSpeakerView-DYlbz4sc.js rename to public/assets/PresentationSpeakerView-CoTPvDZa.js index dd5a2e2..d64c66d 100644 --- a/public/assets/PresentationSpeakerView-DYlbz4sc.js +++ b/public/assets/PresentationSpeakerView-CoTPvDZa.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SpeakerTools-DseyVcDL.js","assets/index-CZVUqkdk.js","assets/index-BeU-aKV2.css"])))=>i.map(i=>d[i]); -import{d as Me,U as ce,o as Pe,b7 as Ue,s as de,j as ue,r as p,x as Ie,b8 as Oe,A as B,b9 as He,n as pe,b as fe,e as Ve,f as qe,aP as Ze,m as Ke,aR as Ye,ba as Fe}from"./index-CZVUqkdk.js";import{p as _}from"./presentations-BgohxBTm.js";import{_ as Ge,r as Je}from"./DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js";import{c as Qe}from"./clock-4r1aA6KU.js";import{n as We,C as Xe,c as Q,a as et,p as W,S as tt,D as nt,H as me,b as ot,R as at,t as it,r as rt,d as st}from"./remote-aOKX75Mt.js";import"./engine-DDeQk6Ow.js";const lt='.speak{display:none}.deck.speak-on .speak{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:22px;line-height:1.45}.notes:before{content:"Notatki · N"}.speak:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.speak:before{content:"Powiedz · P"}.srcs:before{content:"Źródła · Z"}.deck.speak-on #nav{bottom:50%}.deck.notes-on .notes.is-empty:after{content:"Brak notatek do tego slajdu.";opacity:.7}.deck.speak-on .speak.is-empty:after{content:"Brak tekstu do powiedzenia na tym slajdzie.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}#speaker-clock{position:static;display:inline-flex;gap:8px;align-items:center;font-family:var(--deck-mono);font-size:12px;line-height:1;color:var(--deck-ink-2);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:var(--deck-paper-2);border:1px solid var(--deck-rule);padding:4px 12px;cursor:pointer;user-select:none}.tools #speaker-clock{min-height:40px;padding:0 14px;background:var(--deck-paper);border-color:var(--deck-ink-2)}.tools-pilot{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;color:var(--deck-ink);white-space:nowrap}.tools-pilot.elsewhere{color:var(--deck-ink-2)}.tools-pilot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--deck-khaki)}#speaker-clock.floating{position:fixed;top:8px;left:14px;z-index:5}#speaker-clock b{display:inline-block;font-weight:700;font-size:20px;color:var(--deck-ink);font-variant-numeric:tabular-nums;letter-spacing:0;margin-right:6px;text-align:right}#speaker-clock .clk-slide,#speaker-clock .clk-total{min-width:6ch}#speaker-clock b.over{color:var(--deck-empire)}#speaker-clock .clk-pace{display:inline-block;min-width:18ch;text-transform:none;letter-spacing:0}#speaker-clock .clk-pace.late{color:var(--deck-empire)}#speaker-clock.paused b{opacity:.5}@media(hover:hover){.tools-show{opacity:0}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}}@media(hover:none){.tools-show{opacity:.55}}@media screen and (max-width:900px)and (orientation:portrait){.speak{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);position:static;max-height:none}.speak.is-empty{display:none}.slide.title .speak,.slide.sec .speak{background:var(--deck-paper)}#speaker-clock{display:none}}.reading-close{display:none}@media screen and (max-width:900px)and (orientation:portrait){.reading-close{display:flex;justify-content:flex-end;padding:16px 0}.reading-close button{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);min-height:44px;padding:0 16px;cursor:pointer}}@media print{#speaker-clock,.speak,.reading-close{display:none!important}}',ct="Sprawdź połączenie z internetem i spróbuj ponownie.",dt="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",vt=Me({__name:"PresentationSpeakerView",props:{slug:{}},setup(ke){const ge=Ze(()=>Ye(()=>import("./SpeakerTools-DseyVcDL.js"),__vite__mapDeps([0,1,2]))),f=ke,X=Ke(),l=p("pending"),c=p(null),b=p(""),ee=p(null);let j=0,m=0;const ve=Ie(()=>[c.value?.css??"",lt]),be={notes:"Notatki",say:"Powiedz",sources:"Źródła",specialLink:"Slajd specjalny (S)"},E=p(null),R=p({});let s=null,te=0,L=0;const M=[];function h(){E.value=s?.view()??null}function he(e,n){if(!e||!n){s=null,E.value=null;return}s=Qe({budgets:e.slides.map(t=>t.seconds),targetSeconds:e.target_seconds,now:()=>Date.now()}),h()}function we(e){s?.seek(e),h()}function ye(e){s?.go(e),h()}function A(e){s&&(e==="pause"?s.pause():e==="clock"?s.toggleHidden():s.reset(),h(),Z())}const w=We(),P=p(null);let C=null,U="",I=0,i=Q(w),r=!1,O=!1,z=!1,ne=0,y=0,H=!1,x=0,T=0,k=0,S=!1,V=null,oe=!1;const u=et(xe,tt);function g(){return Je(e=>window.matchMedia(e))}function q(e){return V?st(V,s?.view()??null,w,{...e,light:oe}):null}function ae(e){_.remoteState(f.slug,e).catch(()=>{})}function xe(){if(!r||!i.isActive()||g())return;const e=q();e&&ae(e)}function Z(){r&&i.isActive()&&u.call()}function D(){if(!r||g())return;const e=q({claim:!0});if(!e){z=!0;return}z=!1,ne=Date.now(),u.cancel(),ae(e)}function d(){const e=r?i.activeTab():null;let n=null;e===w?n=W(y,Date.now())?"active":null:e&&(n="elsewhere"),P.value!==n&&(P.value=n)}function K(){k&&window.clearTimeout(k),k=0}function Te(){k||!r||i.activeTab()!==null||g()||(k=window.setTimeout(()=>{k=0,!(!r||i.activeTab()!==null||g())&&D()},it(Math.random(),S)))}function Se(e){V=e,z?D():Z()}function _e(e){oe=e,Z()}function je(e){const n=ee.value;if(!n)return;if(e.action==="goto"){e.number!=null&&n.goToNumber(e.number);return}const t=rt(e.action);t&&n.runKey(t)}function Ee(e){const n=ot(e);if(n){if(n.event===at){i.observe(n.payload)&&u.flush(),i.activeTab()!==null&&(K(),S=!1),d();return}if(y=Date.now(),d(),n.payload.action==="sync"&&i.activeTab()===null){Te();return}if(!(g()||!i.shouldApply(n.payload))){if(n.payload.action==="sync"){u.flush();return}je(n.payload)}}}function Re(){r=!0,O?S&&W(y,Date.now())&&_.remote(f.slug,{action:"sync",tab:""}).catch(()=>{}):(O=!0,D()),d()}function Le(){r=!1,i.isActive()&&(S=!0),i=Q(w),K(),u.cancel(),d()}function $(){!r||i.isActive()||g()||Date.now()-nen===I;try{const a=await Fe(e,{onPublication:o=>{t()&&Ee(o)},onSubscribed:()=>{t()&&Re()},onConnection:o=>{!t()||o==="connected"||Le()},onDenied:o=>{t()&&(r=!1,d(),!(o!==403||H)&&(H=!0,x=window.setTimeout(()=>{x=0,t()&&C?.resubscribe()},nt)))},onUnavailable:()=>{t()&&(r=!1,d())}});if(!t()){a.close();return}C=a,T=window.setTimeout(ie,me)}catch{}}function Ce(){const e=l.value==="ready"?c.value?.remote_channel??"":"";if(e!==U){if(!e){F();return}Ae(e)}}function re(){window.close(),X.replace("/moje-prezentacje")}function N(){j&&window.clearTimeout(j),j=0}function se(){for(const e of M)URL.revokeObjectURL(e);M.length=0,R.value={}}function ze(e){const n=new Set,t=o=>{const v=/data-deck-image="([^"]+)"/g;for(let J=v.exec(o);J;J=v.exec(o))n.add(J[1])},a=o=>{t(o.body_html),t(o.say_html),t(o.notes_html),t(o.sources_html),o.special&&a(o.special)};for(const o of e.slides)a(o);return[...n]}async function De(e,n,t){await Promise.all(ze(e).map(async a=>{try{const o=await _.speakerImage(n,a);if(t!==L)return;const v=URL.createObjectURL(o);if(t!==L){URL.revokeObjectURL(v);return}M.push(v),R.value={...R.value,[a]:v}}catch{}}))}function $e(e,n){const t=e;return`${n?'':""}${t.body_html}`}function Ne(e){return e.special?`Slajd specjalny do slajdu ${e.number}`:`Slajd ${e.number} z ${e.total}`}async function G(e){const n=++m;L=n,se(),N(),l.value="pending",c.value=null,b.value="",j=window.setTimeout(()=>{n===m&&l.value==="pending"&&(l.value="loading")},200);try{const t=await _.speaker(e);if(n!==m)return;N();const a=t.slides??[],o={...t,slides:a};c.value=o,Oe(e),document.title=t.title?`${t.title} · wersja prelegenta`:"Prezentacja · BM II°",l.value=a.length===0?"empty":"ready",a.length>0&&De(o,e,n)}catch(t){if(n!==m)return;if(N(),t instanceof B&&t.status===404){He(e),await X.replace({name:"my-presentations",query:{denied:"1"}});return}if(t instanceof B&&t.status===401)return;t instanceof B&&t.status===429?b.value=dt:t instanceof B&&t.message?b.value=t.message:b.value=ct,l.value="error"}}function Be(){G(f.slug)}function le(e){e.persisted&&G(f.slug)}return ce(()=>f.slug,e=>{G(e)},{immediate:!0}),ce([c,l],()=>{he(c.value,l.value==="ready"),Ce()}),Pe(()=>{if(document.documentElement.classList.add("deck-speaker"),!document.querySelector('meta[data-deck-speaker="1"]')){const e=document.createElement("meta");e.name="robots",e.content="noindex",e.dataset.deckSpeaker="1",document.head.appendChild(e)}window.addEventListener("pageshow",le),window.addEventListener("pagehide",Y),window.addEventListener("keydown",$,!0),window.addEventListener("pointerdown",$,!0),te=window.setInterval(()=>{s?.tick(),h(),d()},250)}),Ue(()=>{m+=1,L=m,se(),N(),Y(),F(),window.clearInterval(te),window.removeEventListener("pageshow",le),window.removeEventListener("pagehide",Y),window.removeEventListener("keydown",$,!0),window.removeEventListener("pointerdown",$,!0),document.documentElement.classList.remove("deck-speaker"),document.querySelector('meta[data-deck-speaker="1"]')?.remove()}),(e,n)=>(pe(),de(Ge,{ref_key:"viewer",ref:ee,mode:"speaker",phase:l.value,deck:c.value,error:b.value,compose:$e,labels:be,announce:Ne,"extra-css":ve.value,theme:c.value?.theme,images:R.value,onRetry:Be,onPosition:we,onNavigate:ye,onClock:A,onSnapshot:Se,onScheme:_e},{tools:ue(t=>[E.value?(pe(),de(Ve(ge),{key:0,clock:E.value,panel:t.panel,special:t.special,"has-special":t.hasSpecial,"fullscreen-enabled":t.fullscreenEnabled,"fullscreen-on":t.fullscreenOn,"toolbar-hidden":t.toolbarHidden,"toggle-panel":t.togglePanel,"toggle-special":t.toggleSpecial,"toggle-toolbar":t.toggleToolbar,"toggle-fullscreen":t.toggleFullscreen,light:t.light,"toggle-scheme":t.toggleScheme,"export-pptx":t.exportPptx,exporting:t.exporting,pilot:P.value,onPause:n[0]||(n[0]=a=>A("pause")),onReset:n[1]||(n[1]=a=>A("reset")),onToggleHidden:n[2]||(n[2]=a=>A("clock")),onClose:re},null,8,["clock","panel","special","has-special","fullscreen-enabled","fullscreen-on","toolbar-hidden","toggle-panel","toggle-special","toggle-toolbar","toggle-fullscreen","light","toggle-scheme","export-pptx","exporting","pilot"])):qe("",!0)]),"reading-close":ue(()=>[fe("div",{class:"reading-close"},[fe("button",{type:"button",onClick:re},"Zamknij")])]),_:1},8,["phase","deck","error","extra-css","theme","images"]))}});export{vt as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SpeakerTools-v93k_DDA.js","assets/index-DyD9x5ZD.js","assets/index-FkOyve-6.css"])))=>i.map(i=>d[i]); +import{d as Me,U as ce,o as Pe,b7 as Ue,s as de,j as ue,r as p,x as Ie,b8 as Oe,A as B,b9 as He,n as pe,b as fe,e as Ve,f as qe,aP as Ze,m as Ke,aR as Ye,ba as Fe}from"./index-DyD9x5ZD.js";import{p as _}from"./presentations-CZ3vmyJx.js";import{_ as Ge,r as Je}from"./DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js";import{c as Qe}from"./clock-4r1aA6KU.js";import{n as We,C as Xe,c as Q,a as et,p as W,S as tt,D as nt,H as me,b as ot,R as at,t as it,r as rt,d as st}from"./remote-aOKX75Mt.js";import"./engine-DDeQk6Ow.js";const lt='.speak{display:none}.deck.speak-on .speak{display:block;position:absolute;left:0;right:0;bottom:0;max-height:46%;overflow:auto;background:var(--deck-ink);color:var(--deck-paper);padding:18px 88px;font-size:22px;line-height:1.45}.notes:before{content:"Notatki · N"}.speak:before,.srcs:before{display:block;font-family:var(--deck-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;opacity:.7}.speak:before{content:"Powiedz · P"}.srcs:before{content:"Źródła · Z"}.deck.speak-on #nav{bottom:50%}.deck.notes-on .notes.is-empty:after{content:"Brak notatek do tego slajdu.";opacity:.7}.deck.speak-on .speak.is-empty:after{content:"Brak tekstu do powiedzenia na tym slajdzie.";opacity:.7}.deck.srcs-on .srcs.is-empty:after{content:"Brak źródeł do tego slajdu.";opacity:.7}#speaker-clock{position:static;display:inline-flex;gap:8px;align-items:center;font-family:var(--deck-mono);font-size:12px;line-height:1;color:var(--deck-ink-2);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:var(--deck-paper-2);border:1px solid var(--deck-rule);padding:4px 12px;cursor:pointer;user-select:none}.tools #speaker-clock{min-height:40px;padding:0 14px;background:var(--deck-paper);border-color:var(--deck-ink-2)}.tools-pilot{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px;color:var(--deck-ink);white-space:nowrap}.tools-pilot.elsewhere{color:var(--deck-ink-2)}.tools-pilot-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--deck-khaki)}#speaker-clock.floating{position:fixed;top:8px;left:14px;z-index:5}#speaker-clock b{display:inline-block;font-weight:700;font-size:20px;color:var(--deck-ink);font-variant-numeric:tabular-nums;letter-spacing:0;margin-right:6px;text-align:right}#speaker-clock .clk-slide,#speaker-clock .clk-total{min-width:6ch}#speaker-clock b.over{color:var(--deck-empire)}#speaker-clock .clk-pace{display:inline-block;min-width:18ch;text-transform:none;letter-spacing:0}#speaker-clock .clk-pace.late{color:var(--deck-empire)}#speaker-clock.paused b{opacity:.5}@media(hover:hover){.tools-show{opacity:0}.tools-show:hover,.tools-show:focus,.tools-show:focus-visible{opacity:1}}@media(hover:none){.tools-show{opacity:.55}}@media screen and (max-width:900px)and (orientation:portrait){.speak{display:block;margin-top:10px;padding:12px 14px;background:var(--deck-paper-2);font-size:15px;color:var(--deck-ink-2);border-left:3px solid var(--deck-empire);position:static;max-height:none}.speak.is-empty{display:none}.slide.title .speak,.slide.sec .speak{background:var(--deck-paper)}#speaker-clock{display:none}}.reading-close{display:none}@media screen and (max-width:900px)and (orientation:portrait){.reading-close{display:flex;justify-content:flex-end;padding:16px 0}.reading-close button{font:14px/1 var(--deck-mono);letter-spacing:.04em;color:var(--deck-ink);background:var(--deck-paper);border:1px solid var(--deck-ink-2);min-height:44px;padding:0 16px;cursor:pointer}}@media print{#speaker-clock,.speak,.reading-close{display:none!important}}',ct="Sprawdź połączenie z internetem i spróbuj ponownie.",dt="Za dużo żądań w krótkim czasie. Odczekaj minutę i spróbuj ponownie.",vt=Me({__name:"PresentationSpeakerView",props:{slug:{}},setup(ke){const ge=Ze(()=>Ye(()=>import("./SpeakerTools-v93k_DDA.js"),__vite__mapDeps([0,1,2]))),f=ke,X=Ke(),l=p("pending"),c=p(null),b=p(""),ee=p(null);let j=0,m=0;const ve=Ie(()=>[c.value?.css??"",lt]),be={notes:"Notatki",say:"Powiedz",sources:"Źródła",specialLink:"Slajd specjalny (S)"},E=p(null),R=p({});let s=null,te=0,L=0;const M=[];function h(){E.value=s?.view()??null}function he(e,n){if(!e||!n){s=null,E.value=null;return}s=Qe({budgets:e.slides.map(t=>t.seconds),targetSeconds:e.target_seconds,now:()=>Date.now()}),h()}function we(e){s?.seek(e),h()}function ye(e){s?.go(e),h()}function A(e){s&&(e==="pause"?s.pause():e==="clock"?s.toggleHidden():s.reset(),h(),Z())}const w=We(),P=p(null);let C=null,U="",I=0,i=Q(w),r=!1,O=!1,z=!1,ne=0,y=0,H=!1,x=0,T=0,k=0,S=!1,V=null,oe=!1;const u=et(xe,tt);function g(){return Je(e=>window.matchMedia(e))}function q(e){return V?st(V,s?.view()??null,w,{...e,light:oe}):null}function ae(e){_.remoteState(f.slug,e).catch(()=>{})}function xe(){if(!r||!i.isActive()||g())return;const e=q();e&&ae(e)}function Z(){r&&i.isActive()&&u.call()}function D(){if(!r||g())return;const e=q({claim:!0});if(!e){z=!0;return}z=!1,ne=Date.now(),u.cancel(),ae(e)}function d(){const e=r?i.activeTab():null;let n=null;e===w?n=W(y,Date.now())?"active":null:e&&(n="elsewhere"),P.value!==n&&(P.value=n)}function K(){k&&window.clearTimeout(k),k=0}function Te(){k||!r||i.activeTab()!==null||g()||(k=window.setTimeout(()=>{k=0,!(!r||i.activeTab()!==null||g())&&D()},it(Math.random(),S)))}function Se(e){V=e,z?D():Z()}function _e(e){oe=e,Z()}function je(e){const n=ee.value;if(!n)return;if(e.action==="goto"){e.number!=null&&n.goToNumber(e.number);return}const t=rt(e.action);t&&n.runKey(t)}function Ee(e){const n=ot(e);if(n){if(n.event===at){i.observe(n.payload)&&u.flush(),i.activeTab()!==null&&(K(),S=!1),d();return}if(y=Date.now(),d(),n.payload.action==="sync"&&i.activeTab()===null){Te();return}if(!(g()||!i.shouldApply(n.payload))){if(n.payload.action==="sync"){u.flush();return}je(n.payload)}}}function Re(){r=!0,O?S&&W(y,Date.now())&&_.remote(f.slug,{action:"sync",tab:""}).catch(()=>{}):(O=!0,D()),d()}function Le(){r=!1,i.isActive()&&(S=!0),i=Q(w),K(),u.cancel(),d()}function $(){!r||i.isActive()||g()||Date.now()-nen===I;try{const a=await Fe(e,{onPublication:o=>{t()&&Ee(o)},onSubscribed:()=>{t()&&Re()},onConnection:o=>{!t()||o==="connected"||Le()},onDenied:o=>{t()&&(r=!1,d(),!(o!==403||H)&&(H=!0,x=window.setTimeout(()=>{x=0,t()&&C?.resubscribe()},nt)))},onUnavailable:()=>{t()&&(r=!1,d())}});if(!t()){a.close();return}C=a,T=window.setTimeout(ie,me)}catch{}}function Ce(){const e=l.value==="ready"?c.value?.remote_channel??"":"";if(e!==U){if(!e){F();return}Ae(e)}}function re(){window.close(),X.replace("/moje-prezentacje")}function N(){j&&window.clearTimeout(j),j=0}function se(){for(const e of M)URL.revokeObjectURL(e);M.length=0,R.value={}}function ze(e){const n=new Set,t=o=>{const v=/data-deck-image="([^"]+)"/g;for(let J=v.exec(o);J;J=v.exec(o))n.add(J[1])},a=o=>{t(o.body_html),t(o.say_html),t(o.notes_html),t(o.sources_html),o.special&&a(o.special)};for(const o of e.slides)a(o);return[...n]}async function De(e,n,t){await Promise.all(ze(e).map(async a=>{try{const o=await _.speakerImage(n,a);if(t!==L)return;const v=URL.createObjectURL(o);if(t!==L){URL.revokeObjectURL(v);return}M.push(v),R.value={...R.value,[a]:v}}catch{}}))}function $e(e,n){const t=e;return`${n?'':""}${t.body_html}`}function Ne(e){return e.special?`Slajd specjalny do slajdu ${e.number}`:`Slajd ${e.number} z ${e.total}`}async function G(e){const n=++m;L=n,se(),N(),l.value="pending",c.value=null,b.value="",j=window.setTimeout(()=>{n===m&&l.value==="pending"&&(l.value="loading")},200);try{const t=await _.speaker(e);if(n!==m)return;N();const a=t.slides??[],o={...t,slides:a};c.value=o,Oe(e),document.title=t.title?`${t.title} · wersja prelegenta`:"Prezentacja · BM II°",l.value=a.length===0?"empty":"ready",a.length>0&&De(o,e,n)}catch(t){if(n!==m)return;if(N(),t instanceof B&&t.status===404){He(e),await X.replace({name:"my-presentations",query:{denied:"1"}});return}if(t instanceof B&&t.status===401)return;t instanceof B&&t.status===429?b.value=dt:t instanceof B&&t.message?b.value=t.message:b.value=ct,l.value="error"}}function Be(){G(f.slug)}function le(e){e.persisted&&G(f.slug)}return ce(()=>f.slug,e=>{G(e)},{immediate:!0}),ce([c,l],()=>{he(c.value,l.value==="ready"),Ce()}),Pe(()=>{if(document.documentElement.classList.add("deck-speaker"),!document.querySelector('meta[data-deck-speaker="1"]')){const e=document.createElement("meta");e.name="robots",e.content="noindex",e.dataset.deckSpeaker="1",document.head.appendChild(e)}window.addEventListener("pageshow",le),window.addEventListener("pagehide",Y),window.addEventListener("keydown",$,!0),window.addEventListener("pointerdown",$,!0),te=window.setInterval(()=>{s?.tick(),h(),d()},250)}),Ue(()=>{m+=1,L=m,se(),N(),Y(),F(),window.clearInterval(te),window.removeEventListener("pageshow",le),window.removeEventListener("pagehide",Y),window.removeEventListener("keydown",$,!0),window.removeEventListener("pointerdown",$,!0),document.documentElement.classList.remove("deck-speaker"),document.querySelector('meta[data-deck-speaker="1"]')?.remove()}),(e,n)=>(pe(),de(Ge,{ref_key:"viewer",ref:ee,mode:"speaker",phase:l.value,deck:c.value,error:b.value,compose:$e,labels:be,announce:Ne,"extra-css":ve.value,theme:c.value?.theme,images:R.value,onRetry:Be,onPosition:we,onNavigate:ye,onClock:A,onSnapshot:Se,onScheme:_e},{tools:ue(t=>[E.value?(pe(),de(Ve(ge),{key:0,clock:E.value,panel:t.panel,special:t.special,"has-special":t.hasSpecial,"fullscreen-enabled":t.fullscreenEnabled,"fullscreen-on":t.fullscreenOn,"toolbar-hidden":t.toolbarHidden,"toggle-panel":t.togglePanel,"toggle-special":t.toggleSpecial,"toggle-toolbar":t.toggleToolbar,"toggle-fullscreen":t.toggleFullscreen,light:t.light,"toggle-scheme":t.toggleScheme,"export-pptx":t.exportPptx,exporting:t.exporting,pilot:P.value,onPause:n[0]||(n[0]=a=>A("pause")),onReset:n[1]||(n[1]=a=>A("reset")),onToggleHidden:n[2]||(n[2]=a=>A("clock")),onClose:re},null,8,["clock","panel","special","has-special","fullscreen-enabled","fullscreen-on","toolbar-hidden","toggle-panel","toggle-special","toggle-toolbar","toggle-fullscreen","light","toggle-scheme","export-pptx","exporting","pilot"])):qe("",!0)]),"reading-close":ue(()=>[fe("div",{class:"reading-close"},[fe("button",{type:"button",onClick:re},"Zamknij")])]),_:1},8,["phase","deck","error","extra-css","theme","images"]))}});export{vt as default}; diff --git a/public/assets/ProfileView-C8ZTXew3.js b/public/assets/ProfileView-BOwV9hN-.js similarity index 98% rename from public/assets/ProfileView-C8ZTXew3.js rename to public/assets/ProfileView-BOwV9hN-.js index 5f19d32..ac4ba1b 100644 --- a/public/assets/ProfileView-C8ZTXew3.js +++ b/public/assets/ProfileView-BOwV9hN-.js @@ -1 +1 @@ -import{d as I,u as O,ae as W,an as A,b3 as J,q,o as H,a as U,b4 as Z,c as l,i as R,b as o,h as D,t as r,f as d,w as k,v as w,e as s,F as T,E as K,p as M,r as c,b5 as Q,n,b6 as X}from"./index-CZVUqkdk.js";import{_ as Y}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{f as V}from"./forms-DwSNDsNK.js";import{o as ee}from"./oauth-zzthF4BZ.js";const oe={class:"card","aria-labelledby":"dane-h"},se={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},te={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},ae={class:"grid-2"},le={class:"field"},ne={key:0,class:"error-text"},ie={class:"field"},re={key:0,class:"error-text"},de={class:"field"},ue={key:0,class:"error-text"},pe=["disabled"],me={id:"wybor",class:"card section","aria-labelledby":"wybor-h"},ce={key:0,class:"skeleton"},ye={key:1,class:"muted"},be={class:"eyebrow",style:{padding:"0","margin-bottom":"6px"}},ke=["name","value","checked","onChange"],we={key:0,class:"muted small",style:{margin:"4px 0 0"}},fe=["onClick"],ze={id:"kalendarz",class:"card section","aria-labelledby":"kalendarz-h"},ve={key:0,class:"notice error",role:"alert",style:{margin:"12px 0"}},ge={key:1,class:"skeleton",style:{"margin-top":"12px"}},_e={key:2,style:{"margin-top":"12px"}},he=["disabled"],xe={class:"field",style:{"margin-top":"12px"}},je={style:{display:"flex",gap:"8px"}},Pe=["value"],Ce={key:0,class:"muted small",style:{margin:"0"}},Ue={class:"check"},Te=["checked","disabled"],Ve={class:"check"},Ne=["checked","disabled"],Ze={class:"btn-row",style:{"margin-top":"12px"}},De=["disabled"],Ke=["disabled"],Me={key:0,class:"card section","aria-labelledby":"microsoft-h"},Fe=["disabled"],Be={class:"card section","aria-labelledby":"haslo-h"},Ge={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},Le={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},Se={class:"field"},Ee={key:0,class:"error-text"},$e={class:"field"},Ie={key:0,class:"error-text"},Oe={class:"field"},We=["disabled"],Ae={class:"section"},Ye=I({__name:"ProfileView",setup(Je){const f=O(),z=W(),v=A(),a=J(),x=q(),j=c(!1),g=c(!1);H(()=>{z.loadCourses(),a.load(),U.oauthProviders().then(i=>j.value=i.providers.some(e=>e.name==="microsoft")).catch(()=>j.value=!1)});async function F(){g.value=!0;try{const{link_ticket:i}=await U.oauthLinkTicket();window.location.assign(ee("microsoft",{action:"link",linkTicket:i,returnTo:"/profil"}))}catch(i){x.show(V(i).message||"Nie udało się połączyć konta Microsoft."),g.value=!1}}const N=c(null);async function B(){const i=a.feed?.url;i&&(await Q(i)?x.show("Skopiowano link do schowka."):(N.value?.select(),x.show("Nie udało się skopiować. Link jest zaznaczony: skopiuj go ręcznie.")))}function G(){window.confirm("Wygenerować nowy link? Stary przestanie działać i kalendarze, które go subskrybują, trzeba będzie dodać od nowa.")&&a.rotate()}function L(){window.confirm("Usunąć link do kalendarza? Kalendarze, które go subskrybują, przestaną się aktualizować.")&&a.remove()}function S(i){return new Date(i).toLocaleString("pl-PL",{day:"numeric",month:"long",hour:"2-digit",minute:"2-digit"})}const m=Z({name:f.user?.name??"",surname:f.user?.surname??"",email:f.user?.email??""}),_=c(!1),u=c(null),P=c(!1);async function E(){_.value=!0,u.value=null,P.value=!1;try{await f.updateProfile({name:m.name.trim(),surname:m.surname.trim(),email:m.email.trim()}),P.value=!0}catch(i){u.value=V(i)}finally{_.value=!1}}const p=Z({current_password:"",password:"",password_confirmation:""}),h=c(!1),y=c(null),C=c(!1);async function $(){h.value=!0,y.value=null,C.value=!1;try{await U.changePassword({...p}),C.value=!0,Object.assign(p,{current_password:"",password:"",password_confirmation:""})}catch(i){y.value=V(i)}finally{h.value=!1}}return(i,e)=>(n(),l("div",null,[R(Y,{eyebrow:"Konto",title:"Profil"}),o("section",oe,[e[14]||(e[14]=o("h2",{id:"dane-h",style:{"margin-bottom":"12px"}},"Dane",-1)),o("form",{onSubmit:D(E,["prevent"]),novalidate:""},[u.value?.message?(n(),l("p",se,r(u.value.message),1)):d("",!0),P.value?(n(),l("p",te,"Zapisano.")):d("",!0),o("div",ae,[o("div",le,[e[11]||(e[11]=o("label",{for:"p-name"},"Imię",-1)),k(o("input",{id:"p-name","onUpdate:modelValue":e[0]||(e[0]=t=>m.name=t),type:"text",autocomplete:"given-name"},null,512),[[w,m.name]]),u.value?.fields.name?(n(),l("p",ne,r(u.value.fields.name),1)):d("",!0)]),o("div",ie,[e[12]||(e[12]=o("label",{for:"p-surname"},"Nazwisko",-1)),k(o("input",{id:"p-surname","onUpdate:modelValue":e[1]||(e[1]=t=>m.surname=t),type:"text",autocomplete:"family-name"},null,512),[[w,m.surname]]),u.value?.fields.surname?(n(),l("p",re,r(u.value.fields.surname),1)):d("",!0)])]),o("div",de,[e[13]||(e[13]=o("label",{for:"p-email"},"Adres e-mail",-1)),k(o("input",{id:"p-email","onUpdate:modelValue":e[2]||(e[2]=t=>m.email=t),type:"email",autocomplete:"email",inputmode:"email"},null,512),[[w,m.email]]),u.value?.fields.email?(n(),l("p",ue,r(u.value.fields.email),1)):d("",!0)]),o("button",{class:"btn primary",type:"submit",disabled:_.value},r(_.value?"Zapisywanie…":"Zapisz dane"),9,pe)],32)]),o("section",me,[e[15]||(e[15]=o("h2",{id:"wybor-h",style:{"margin-bottom":"6px"}},"Przedmioty do wyboru",-1)),e[16]||(e[16]=o("p",{class:"muted small"},"Z każdej grupy wybierasz jeden przedmiot. Pozostałe znikną z planu, pulpitu i list (można je pokazać przełącznikiem „Pokaż wszystkie”). Wybór zapamiętuje to urządzenie.",-1)),s(z).loaded.courses?s(z).electiveGroups.length?d("",!0):(n(),l("p",ye,"Nie ma teraz przedmiotów do wyboru.")):(n(),l("div",ce)),(n(!0),l(T,null,K(s(z).electiveGroups,t=>(n(),l("fieldset",{key:t.code,style:{border:"0",padding:"0",margin:"14px 0 0"}},[o("legend",be,r(s(X)(t.code)),1),(n(!0),l(T,null,K(t.options,b=>(n(),l("label",{key:b,class:"check"},[o("input",{type:"radio",name:`g-${t.code}`,value:b,checked:s(v).choices[t.code]===b,onChange:qe=>s(v).choose(t.code,b)},null,40,ke),o("span",null,r(b),1)]))),128)),s(v).choices[t.code]?(n(),l("button",{key:1,class:"linkish small",type:"button",onClick:b=>s(v).choose(t.code,null)},"Wyczyść wybór",8,fe)):(n(),l("p",we,"Jeszcze nie wybrano. Do tego czasu widać wszystkie alternatywy."))]))),128))]),o("section",ze,[e[23]||(e[23]=o("h2",{id:"kalendarz-h",style:{"margin-bottom":"6px"}},"Kalendarz Google / telefon",-1)),e[24]||(e[24]=o("p",{class:"muted small"}," Prywatny link do planu zajęć w formacie iCalendar. Dodaj go w Kalendarzu Google albo w telefonie, a zajęcia pojawią się obok Twoich wydarzeń. Plan uwzględnia przedmioty do wyboru wybrane wyżej. ",-1)),s(a).error?(n(),l("p",ve,r(s(a).error),1)):d("",!0),s(a).feed===void 0&&(s(a).loading||!s(a).error)?(n(),l("div",ge)):s(a).feed?(n(),l(T,{key:3},[o("div",xe,[e[17]||(e[17]=o("label",{for:"cal-url"},"Twój link (nie udostępniaj go)",-1)),o("div",je,[o("input",{id:"cal-url",ref_key:"urlInput",ref:N,class:"mono",type:"text",readonly:"",value:s(a).feed.url,style:{"font-size":"14px","min-width":"0"},onFocus:e[4]||(e[4]=t=>t.target.select())},null,40,Pe),o("button",{class:"btn",type:"button",onClick:B},"Kopiuj")]),s(a).feed.last_fetched_at?(n(),l("p",Ce,"Ostatnio pobrany przez kalendarz: "+r(S(s(a).feed.last_fetched_at))+".",1)):d("",!0)]),o("label",Ue,[o("input",{type:"checkbox",checked:s(a).feed.include_meetings,disabled:s(a).busy,onChange:e[5]||(e[5]=t=>s(a).save({include_meetings:t.target.checked}))},null,40,Te),e[18]||(e[18]=o("span",null,"Zjazdy jako wydarzenia całodniowe",-1))]),o("label",Ve,[o("input",{type:"checkbox",checked:s(a).feed.include_deadlines,disabled:s(a).busy,onChange:e[6]||(e[6]=t=>s(a).save({include_deadlines:t.target.checked}))},null,40,Ne),e[19]||(e[19]=o("span",null,"Terminy z terminarza",-1))]),o("div",Ze,[o("button",{class:"btn small ghost",type:"button",disabled:s(a).busy,onClick:G},"Wygeneruj nowy link",8,De),o("button",{class:"btn small miss",type:"button",disabled:s(a).busy,onClick:L},"Usuń link",8,Ke)]),e[20]||(e[20]=o("h3",{class:"eyebrow",style:{margin:"18px 0 6px"}},"Jak dodać",-1)),e[21]||(e[21]=o("ol",{class:"small",style:{margin:"0","padding-left":"20px",display:"grid",gap:"6px"}},[o("li",null,[o("b",null,"Kalendarz Google"),M(" (na komputerze, calendar.google.com): po lewej przy „Inne kalendarze” kliknij „+”, wybierz „Z adresu URL”, wklej link i kliknij „Dodaj kalendarz”. Na telefonie z Androidem kalendarz pojawi się sam po synchronizacji konta Google. ")]),o("li",null,[o("b",null,"iPhone / iPad"),M(": Ustawienia → Kalendarz → Konta → Dodaj konto → Inne → Dodaj subskrybowany kalendarz, wklej link i zapisz. ")])],-1)),e[22]||(e[22]=o("p",{class:"muted small",style:{margin:"10px 0 0"}}," Google odświeża subskrybowane kalendarze co kilka godzin, nie od razu: zmiana planu albo wyboru przedmiotów pojawi się w kalendarzu z opóźnieniem. ",-1))],64)):(n(),l("div",_e,[o("button",{class:"btn primary",type:"button",disabled:s(a).busy,onClick:e[3]||(e[3]=t=>s(a).create())},r(s(a).busy?"Tworzenie…":"Utwórz link do kalendarza"),9,he)]))]),j.value?(n(),l("section",Me,[e[25]||(e[25]=o("h2",{id:"microsoft-h",style:{"margin-bottom":"6px"}},"Konto Microsoft 365",-1)),e[26]||(e[26]=o("p",{class:"muted small"}," Połącz konto uczelniane Microsoft 365, aby logować się przyciskiem „Zaloguj przez Microsoft 365”. ",-1)),o("button",{class:"btn",type:"button",style:{"margin-top":"12px"},disabled:g.value,onClick:F},r(g.value?"Przekierowanie…":"Połącz konto Microsoft"),9,Fe)])):d("",!0),o("section",Be,[e[30]||(e[30]=o("h2",{id:"haslo-h",style:{"margin-bottom":"12px"}},"Zmiana hasła",-1)),o("form",{onSubmit:D($,["prevent"]),novalidate:""},[y.value?.message?(n(),l("p",Ge,r(y.value.message),1)):d("",!0),C.value?(n(),l("p",Le,"Hasło zostało zmienione.")):d("",!0),o("div",Se,[e[27]||(e[27]=o("label",{for:"pw-current"},"Obecne hasło",-1)),k(o("input",{id:"pw-current","onUpdate:modelValue":e[7]||(e[7]=t=>p.current_password=t),type:"password",autocomplete:"current-password"},null,512),[[w,p.current_password]]),y.value?.fields.current_password?(n(),l("p",Ee,r(y.value.fields.current_password),1)):d("",!0)]),o("div",$e,[e[28]||(e[28]=o("label",{for:"pw-new"},"Nowe hasło (min. 8 znaków)",-1)),k(o("input",{id:"pw-new","onUpdate:modelValue":e[8]||(e[8]=t=>p.password=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password]]),y.value?.fields.password?(n(),l("p",Ie,r(y.value.fields.password),1)):d("",!0)]),o("div",Oe,[e[29]||(e[29]=o("label",{for:"pw-confirm"},"Powtórz nowe hasło",-1)),k(o("input",{id:"pw-confirm","onUpdate:modelValue":e[9]||(e[9]=t=>p.password_confirmation=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password_confirmation]])]),o("button",{class:"btn primary",type:"submit",disabled:h.value||!p.current_password||!p.password},r(h.value?"Zapisywanie…":"Zmień hasło"),9,We)],32)]),o("section",Ae,[o("button",{class:"btn miss",type:"button",onClick:e[10]||(e[10]=t=>s(f).logout())},"Wyloguj się")])]))}});export{Ye as default}; +import{d as I,u as O,ae as W,an as A,b3 as J,q,o as H,a as U,b4 as Z,c as l,i as R,b as o,h as D,t as r,f as d,w as k,v as w,e as s,F as T,E as K,p as M,r as c,b5 as Q,n,b6 as X}from"./index-DyD9x5ZD.js";import{_ as Y}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{f as V}from"./forms-rkjiDhhH.js";import{o as ee}from"./oauth-zzthF4BZ.js";const oe={class:"card","aria-labelledby":"dane-h"},se={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},te={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},ae={class:"grid-2"},le={class:"field"},ne={key:0,class:"error-text"},ie={class:"field"},re={key:0,class:"error-text"},de={class:"field"},ue={key:0,class:"error-text"},pe=["disabled"],me={id:"wybor",class:"card section","aria-labelledby":"wybor-h"},ce={key:0,class:"skeleton"},ye={key:1,class:"muted"},be={class:"eyebrow",style:{padding:"0","margin-bottom":"6px"}},ke=["name","value","checked","onChange"],we={key:0,class:"muted small",style:{margin:"4px 0 0"}},fe=["onClick"],ze={id:"kalendarz",class:"card section","aria-labelledby":"kalendarz-h"},ve={key:0,class:"notice error",role:"alert",style:{margin:"12px 0"}},ge={key:1,class:"skeleton",style:{"margin-top":"12px"}},_e={key:2,style:{"margin-top":"12px"}},he=["disabled"],xe={class:"field",style:{"margin-top":"12px"}},je={style:{display:"flex",gap:"8px"}},Pe=["value"],Ce={key:0,class:"muted small",style:{margin:"0"}},Ue={class:"check"},Te=["checked","disabled"],Ve={class:"check"},Ne=["checked","disabled"],Ze={class:"btn-row",style:{"margin-top":"12px"}},De=["disabled"],Ke=["disabled"],Me={key:0,class:"card section","aria-labelledby":"microsoft-h"},Fe=["disabled"],Be={class:"card section","aria-labelledby":"haslo-h"},Ge={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"12px"}},Le={key:1,class:"notice",role:"status",style:{"margin-bottom":"12px"}},Se={class:"field"},Ee={key:0,class:"error-text"},$e={class:"field"},Ie={key:0,class:"error-text"},Oe={class:"field"},We=["disabled"],Ae={class:"section"},Ye=I({__name:"ProfileView",setup(Je){const f=O(),z=W(),v=A(),a=J(),x=q(),j=c(!1),g=c(!1);H(()=>{z.loadCourses(),a.load(),U.oauthProviders().then(i=>j.value=i.providers.some(e=>e.name==="microsoft")).catch(()=>j.value=!1)});async function F(){g.value=!0;try{const{link_ticket:i}=await U.oauthLinkTicket();window.location.assign(ee("microsoft",{action:"link",linkTicket:i,returnTo:"/profil"}))}catch(i){x.show(V(i).message||"Nie udało się połączyć konta Microsoft."),g.value=!1}}const N=c(null);async function B(){const i=a.feed?.url;i&&(await Q(i)?x.show("Skopiowano link do schowka."):(N.value?.select(),x.show("Nie udało się skopiować. Link jest zaznaczony: skopiuj go ręcznie.")))}function G(){window.confirm("Wygenerować nowy link? Stary przestanie działać i kalendarze, które go subskrybują, trzeba będzie dodać od nowa.")&&a.rotate()}function L(){window.confirm("Usunąć link do kalendarza? Kalendarze, które go subskrybują, przestaną się aktualizować.")&&a.remove()}function S(i){return new Date(i).toLocaleString("pl-PL",{day:"numeric",month:"long",hour:"2-digit",minute:"2-digit"})}const m=Z({name:f.user?.name??"",surname:f.user?.surname??"",email:f.user?.email??""}),_=c(!1),u=c(null),P=c(!1);async function E(){_.value=!0,u.value=null,P.value=!1;try{await f.updateProfile({name:m.name.trim(),surname:m.surname.trim(),email:m.email.trim()}),P.value=!0}catch(i){u.value=V(i)}finally{_.value=!1}}const p=Z({current_password:"",password:"",password_confirmation:""}),h=c(!1),y=c(null),C=c(!1);async function $(){h.value=!0,y.value=null,C.value=!1;try{await U.changePassword({...p}),C.value=!0,Object.assign(p,{current_password:"",password:"",password_confirmation:""})}catch(i){y.value=V(i)}finally{h.value=!1}}return(i,e)=>(n(),l("div",null,[R(Y,{eyebrow:"Konto",title:"Profil"}),o("section",oe,[e[14]||(e[14]=o("h2",{id:"dane-h",style:{"margin-bottom":"12px"}},"Dane",-1)),o("form",{onSubmit:D(E,["prevent"]),novalidate:""},[u.value?.message?(n(),l("p",se,r(u.value.message),1)):d("",!0),P.value?(n(),l("p",te,"Zapisano.")):d("",!0),o("div",ae,[o("div",le,[e[11]||(e[11]=o("label",{for:"p-name"},"Imię",-1)),k(o("input",{id:"p-name","onUpdate:modelValue":e[0]||(e[0]=t=>m.name=t),type:"text",autocomplete:"given-name"},null,512),[[w,m.name]]),u.value?.fields.name?(n(),l("p",ne,r(u.value.fields.name),1)):d("",!0)]),o("div",ie,[e[12]||(e[12]=o("label",{for:"p-surname"},"Nazwisko",-1)),k(o("input",{id:"p-surname","onUpdate:modelValue":e[1]||(e[1]=t=>m.surname=t),type:"text",autocomplete:"family-name"},null,512),[[w,m.surname]]),u.value?.fields.surname?(n(),l("p",re,r(u.value.fields.surname),1)):d("",!0)])]),o("div",de,[e[13]||(e[13]=o("label",{for:"p-email"},"Adres e-mail",-1)),k(o("input",{id:"p-email","onUpdate:modelValue":e[2]||(e[2]=t=>m.email=t),type:"email",autocomplete:"email",inputmode:"email"},null,512),[[w,m.email]]),u.value?.fields.email?(n(),l("p",ue,r(u.value.fields.email),1)):d("",!0)]),o("button",{class:"btn primary",type:"submit",disabled:_.value},r(_.value?"Zapisywanie…":"Zapisz dane"),9,pe)],32)]),o("section",me,[e[15]||(e[15]=o("h2",{id:"wybor-h",style:{"margin-bottom":"6px"}},"Przedmioty do wyboru",-1)),e[16]||(e[16]=o("p",{class:"muted small"},"Z każdej grupy wybierasz jeden przedmiot. Pozostałe znikną z planu, pulpitu i list (można je pokazać przełącznikiem „Pokaż wszystkie”). Wybór zapamiętuje to urządzenie.",-1)),s(z).loaded.courses?s(z).electiveGroups.length?d("",!0):(n(),l("p",ye,"Nie ma teraz przedmiotów do wyboru.")):(n(),l("div",ce)),(n(!0),l(T,null,K(s(z).electiveGroups,t=>(n(),l("fieldset",{key:t.code,style:{border:"0",padding:"0",margin:"14px 0 0"}},[o("legend",be,r(s(X)(t.code)),1),(n(!0),l(T,null,K(t.options,b=>(n(),l("label",{key:b,class:"check"},[o("input",{type:"radio",name:`g-${t.code}`,value:b,checked:s(v).choices[t.code]===b,onChange:qe=>s(v).choose(t.code,b)},null,40,ke),o("span",null,r(b),1)]))),128)),s(v).choices[t.code]?(n(),l("button",{key:1,class:"linkish small",type:"button",onClick:b=>s(v).choose(t.code,null)},"Wyczyść wybór",8,fe)):(n(),l("p",we,"Jeszcze nie wybrano. Do tego czasu widać wszystkie alternatywy."))]))),128))]),o("section",ze,[e[23]||(e[23]=o("h2",{id:"kalendarz-h",style:{"margin-bottom":"6px"}},"Kalendarz Google / telefon",-1)),e[24]||(e[24]=o("p",{class:"muted small"}," Prywatny link do planu zajęć w formacie iCalendar. Dodaj go w Kalendarzu Google albo w telefonie, a zajęcia pojawią się obok Twoich wydarzeń. Plan uwzględnia przedmioty do wyboru wybrane wyżej. ",-1)),s(a).error?(n(),l("p",ve,r(s(a).error),1)):d("",!0),s(a).feed===void 0&&(s(a).loading||!s(a).error)?(n(),l("div",ge)):s(a).feed?(n(),l(T,{key:3},[o("div",xe,[e[17]||(e[17]=o("label",{for:"cal-url"},"Twój link (nie udostępniaj go)",-1)),o("div",je,[o("input",{id:"cal-url",ref_key:"urlInput",ref:N,class:"mono",type:"text",readonly:"",value:s(a).feed.url,style:{"font-size":"14px","min-width":"0"},onFocus:e[4]||(e[4]=t=>t.target.select())},null,40,Pe),o("button",{class:"btn",type:"button",onClick:B},"Kopiuj")]),s(a).feed.last_fetched_at?(n(),l("p",Ce,"Ostatnio pobrany przez kalendarz: "+r(S(s(a).feed.last_fetched_at))+".",1)):d("",!0)]),o("label",Ue,[o("input",{type:"checkbox",checked:s(a).feed.include_meetings,disabled:s(a).busy,onChange:e[5]||(e[5]=t=>s(a).save({include_meetings:t.target.checked}))},null,40,Te),e[18]||(e[18]=o("span",null,"Zjazdy jako wydarzenia całodniowe",-1))]),o("label",Ve,[o("input",{type:"checkbox",checked:s(a).feed.include_deadlines,disabled:s(a).busy,onChange:e[6]||(e[6]=t=>s(a).save({include_deadlines:t.target.checked}))},null,40,Ne),e[19]||(e[19]=o("span",null,"Terminy z terminarza",-1))]),o("div",Ze,[o("button",{class:"btn small ghost",type:"button",disabled:s(a).busy,onClick:G},"Wygeneruj nowy link",8,De),o("button",{class:"btn small miss",type:"button",disabled:s(a).busy,onClick:L},"Usuń link",8,Ke)]),e[20]||(e[20]=o("h3",{class:"eyebrow",style:{margin:"18px 0 6px"}},"Jak dodać",-1)),e[21]||(e[21]=o("ol",{class:"small",style:{margin:"0","padding-left":"20px",display:"grid",gap:"6px"}},[o("li",null,[o("b",null,"Kalendarz Google"),M(" (na komputerze, calendar.google.com): po lewej przy „Inne kalendarze” kliknij „+”, wybierz „Z adresu URL”, wklej link i kliknij „Dodaj kalendarz”. Na telefonie z Androidem kalendarz pojawi się sam po synchronizacji konta Google. ")]),o("li",null,[o("b",null,"iPhone / iPad"),M(": Ustawienia → Kalendarz → Konta → Dodaj konto → Inne → Dodaj subskrybowany kalendarz, wklej link i zapisz. ")])],-1)),e[22]||(e[22]=o("p",{class:"muted small",style:{margin:"10px 0 0"}}," Google odświeża subskrybowane kalendarze co kilka godzin, nie od razu: zmiana planu albo wyboru przedmiotów pojawi się w kalendarzu z opóźnieniem. ",-1))],64)):(n(),l("div",_e,[o("button",{class:"btn primary",type:"button",disabled:s(a).busy,onClick:e[3]||(e[3]=t=>s(a).create())},r(s(a).busy?"Tworzenie…":"Utwórz link do kalendarza"),9,he)]))]),j.value?(n(),l("section",Me,[e[25]||(e[25]=o("h2",{id:"microsoft-h",style:{"margin-bottom":"6px"}},"Konto Microsoft 365",-1)),e[26]||(e[26]=o("p",{class:"muted small"}," Połącz konto uczelniane Microsoft 365, aby logować się przyciskiem „Zaloguj przez Microsoft 365”. ",-1)),o("button",{class:"btn",type:"button",style:{"margin-top":"12px"},disabled:g.value,onClick:F},r(g.value?"Przekierowanie…":"Połącz konto Microsoft"),9,Fe)])):d("",!0),o("section",Be,[e[30]||(e[30]=o("h2",{id:"haslo-h",style:{"margin-bottom":"12px"}},"Zmiana hasła",-1)),o("form",{onSubmit:D($,["prevent"]),novalidate:""},[y.value?.message?(n(),l("p",Ge,r(y.value.message),1)):d("",!0),C.value?(n(),l("p",Le,"Hasło zostało zmienione.")):d("",!0),o("div",Se,[e[27]||(e[27]=o("label",{for:"pw-current"},"Obecne hasło",-1)),k(o("input",{id:"pw-current","onUpdate:modelValue":e[7]||(e[7]=t=>p.current_password=t),type:"password",autocomplete:"current-password"},null,512),[[w,p.current_password]]),y.value?.fields.current_password?(n(),l("p",Ee,r(y.value.fields.current_password),1)):d("",!0)]),o("div",$e,[e[28]||(e[28]=o("label",{for:"pw-new"},"Nowe hasło (min. 8 znaków)",-1)),k(o("input",{id:"pw-new","onUpdate:modelValue":e[8]||(e[8]=t=>p.password=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password]]),y.value?.fields.password?(n(),l("p",Ie,r(y.value.fields.password),1)):d("",!0)]),o("div",Oe,[e[29]||(e[29]=o("label",{for:"pw-confirm"},"Powtórz nowe hasło",-1)),k(o("input",{id:"pw-confirm","onUpdate:modelValue":e[9]||(e[9]=t=>p.password_confirmation=t),type:"password",autocomplete:"new-password"},null,512),[[w,p.password_confirmation]])]),o("button",{class:"btn primary",type:"submit",disabled:h.value||!p.current_password||!p.password},r(h.value?"Zapisywanie…":"Zmień hasło"),9,We)],32)]),o("section",Ae,[o("button",{class:"btn miss",type:"button",onClick:e[10]||(e[10]=t=>s(f).logout())},"Wyloguj się")])]))}});export{Ye as default}; diff --git a/public/assets/QuizView-61Odcs-7.js b/public/assets/QuizView-CXf3PymX.js similarity index 98% rename from public/assets/QuizView-61Odcs-7.js rename to public/assets/QuizView-CXf3PymX.js index ba7c4ee..9f83210 100644 --- a/public/assets/QuizView-61Odcs-7.js +++ b/public/assets/QuizView-CXf3PymX.js @@ -1 +1 @@ -var Ae=Object.defineProperty;var Re=(p,e,s)=>e in p?Ae(p,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):p[e]=s;var g=(p,e,s)=>Re(p,typeof e!="symbol"?e+"":e,s);import{_ as Le}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as Be}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as Ne,q as U}from"./quizzes-DciJY4wy.js";import{d as $e,n as a,c as i,F as x,b as t,E as D,C as G,t as n,p as S,f as m,x as Z,A as Ee,V as Te,e as he,ag as ye,i as H,s as be,r as z,ap as I,Z as ge,o as De,j as ke,H as Ie,l as Fe}from"./index-CZVUqkdk.js";import{_ as Qe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js";const Ke=["aria-label"],Ve=["type","name","value","checked","disabled","onChange"],He={class:"choice-body"},Ge={class:"choice-text"},Je={key:0,class:"choice-note"},Xe={key:1,class:"choice-expl"},Ye={key:0,class:"choice-none"},et={key:1,class:"answer","aria-live":"polite"},tt={class:"tag"},ze=$e({__name:"ChoiceQuestion",props:{name:{},label:{},type:{},options:{},selected:{},solution:{},disabled:{type:Boolean}},emits:["update:selected"],setup(p,{emit:e}){const s=p,h=e,w=Z(()=>s.disabled||s.solution!==null);function $(_){const b=s.solution;return b?b.correct_answer_ids?b.correct_answer_ids.includes(_):b.answers.find(f=>f.id===_)?.is_correct===!0:!1}const r=_=>s.selected.includes(_);function C(_){return s.solution?$(_)?r(_)?"ok":"missed":r(_)?"bad":"":""}const W=_=>s.solution?.answers.find(b=>b.id===_)?.explanation??null;function q(_,b){if(w.value)return;if(s.type==="single"){h("update:selected",b?[_]:[]);return}const f=s.selected.filter(T=>T!==_);h("update:selected",b?[...f,_]:f)}return(_,b)=>(a(),i(x,null,[t("fieldset",{class:"choices","aria-label":p.label},[(a(!0),i(x,null,D(p.options,f=>(a(),i("label",{key:f.id,class:G(["choice",C(f.id)])},[t("input",{type:p.type==="single"?"radio":"checkbox",name:p.name,value:f.id,checked:r(f.id),disabled:w.value,onChange:T=>q(f.id,T.target.checked)},null,40,Ve),t("span",He,[t("span",Ge,n(f.text),1),p.solution&&($(f.id)||r(f.id))?(a(),i("span",Je,[$(f.id)?(a(),i(x,{key:0},[S("poprawna")],64)):m("",!0),$(f.id)&&r(f.id)?(a(),i(x,{key:1},[S(" · ")],64)):m("",!0),r(f.id)?(a(),i(x,{key:2},[S("Twoja odpowiedź")],64)):m("",!0)])):m("",!0),p.solution&&W(f.id)?(a(),i("span",Xe,n(W(f.id)),1)):m("",!0)])],2))),128))],8,Ke),p.solution&&!p.selected.length?(a(),i("p",Ye,"Nie udzielono odpowiedzi.")):m("",!0),p.solution?(a(),i("div",et,[t("span",tt,n(p.solution.is_correct?"Dobrze":"Nie do końca"),1),p.solution.explanation?(a(),i(x,{key:0},[S(n(p.solution.explanation),1)],64)):(a(),i(x,{key:1},[S(n(p.solution.is_correct?"Wszystkie poprawne odpowiedzi zaznaczone.":"Poprawne odpowiedzi są oznaczone powyżej."),1)],64))])):m("",!0)],64))}});function Me(p){const e=Math.max(0,Math.floor(p));return`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`}function pe(p){if(!(p instanceof Ee)||p.status!==409)return null;const e=p.body?.code;return typeof e=="string"?e:null}class Se{constructor(e,s=Date.now){g(this,"questions");g(this,"navigation");g(this,"deadline");g(this,"index",0);g(this,"answers",{});g(this,"unsaved",[]);g(this,"now");this.now=s,this.questions=e.questions.slice(),this.navigation=e.quiz_navigation,this.deadline=e.seconds_left===null?null:s()+e.seconds_left*1e3;for(const h of this.questions)h.answered&&(this.answers[h.id]=h.type==="self_check"?{known:h.known??!1}:{answer_ids:h.answer_ids.slice()})}get current(){return this.questions[this.index]??null}get isOneWay(){return this.navigation==="one_way"}get canGoBack(){return!this.isOneWay&&this.index>0}get unansweredCount(){return this.questions.filter(e=>!this.answered(e.id)).length}answered(e){if(this.isUnsaved(e))return!1;const s=this.answers[e];return s?this.isOneWay?!0:s.known!==void 0||(s.answer_ids?.length??0)>0:!1}locked(e){return this.isOneWay&&this.answered(e)}get allAnswered(){return this.unansweredCount===0}next(){if(!this.isOneWay){this.indexw>this.index&&!this.answered(h.id)),s=e>=0?e:this.firstUnanswered();s>=0&&(this.index=s)}prev(){this.canGoBack&&this.index--}goTo(e){e<0||e>=this.questions.length||this.isOneWay&&eh!==e))}firstUnanswered(){return this.questions.findIndex(e=>!this.answered(e.id))}startAt(e){return!e&&!this.isOneWay?0:Math.max(0,this.firstUnanswered())}secondsLeft(){return this.deadline===null?null:Math.max(0,Math.ceil((this.deadline-this.now())/1e3))}}class st{constructor(e,s,h=()=>{}){g(this,"send");g(this,"onError");g(this,"onUnsaved");g(this,"inflight",new Map);g(this,"queued",new Map);g(this,"failed",new Map);g(this,"notSaved",new Set);this.send=e,this.onError=s,this.onUnsaved=h}save(e,s){return this.failed.delete(e),this.retryFailed(),this.enqueue(e,s)}async flush(){for(this.retryFailed();this.inflight.size;)await Promise.all([...this.inflight.values()]);return[...this.notSaved]}pending(e){return this.inflight.has(e)||this.failed.has(e)}clear(){this.failed.clear(),this.queued.clear();for(const e of[...this.notSaved])this.mark(e,!1)}mark(e,s){s!==this.notSaved.has(e)&&(s?this.notSaved.add(e):this.notSaved.delete(e),this.onUnsaved(e,s))}retryFailed(){for(const[e,s]of[...this.failed])this.failed.delete(e),this.enqueue(e,s)}enqueue(e,s){const h=this.inflight.get(e);if(h)return this.queued.set(e,s),h;const w=this.drain(e,s);return this.inflight.set(e,w),w}async drain(e,s){let h=s;for(;h;){this.queued.delete(e);try{await this.send(e,h),this.queued.has(e)||this.mark(e,!1)}catch(w){this.queued.has(e)||this.failed.set(e,h),this.mark(e,!0),this.onError(e,w)}h=this.queued.get(e)}this.inflight.delete(e)}}const at={class:"quiz-test"},nt={key:0,class:"muted"},it={class:"card accent","aria-labelledby":"test-h"},lt={class:"quiz-badges"},ot={key:0,class:"badge warn"},ut={class:"badge warn"},rt={class:"badge"},dt={key:1,class:"badge"},ct={class:"small muted"},vt={key:0,class:"small muted"},pt={class:"btn-row",style:{"margin-top":"12px"}},ht=["disabled"],yt={key:1,class:"small muted",style:{margin:"8px 0 0"}},ft={key:2,class:"error-text",role:"alert"},mt={key:1,class:"section","aria-labelledby":"test-hist-h"},wt={class:"card"},_t={class:"test-bar"},kt={class:"count"},bt=["aria-label"],gt={class:"sr-only","aria-live":"polite"},zt=["disabled"],xt={key:0,class:"error-text",role:"alert"},$t=["disabled"],Ct={key:1,class:"qnav","aria-label":"Pytania testu"},Wt=["aria-current","aria-label","onClick"],jt={key:2,class:"qcard"},qt={class:"qactions"},Mt=["disabled"],St={key:3,class:"qcard"},Ot={key:0,class:"tag"},Nt={class:"tag",style:{margin:"6px 0 0"}},Tt={key:2,class:"qactions"},Zt=["aria-pressed","disabled"],Ut=["aria-pressed","disabled"],Pt={key:3,class:"qactions"},At=["disabled"],Rt=["disabled"],Lt={key:4,class:"qactions"},Bt=["disabled"],Et=["disabled"],Dt={key:5,class:"small muted",style:{margin:"10px 0 0"}},It={key:6,class:"error-text",role:"alert"},Ft={class:"qcard sum test-result"},Qt={class:"test-review"},Kt={class:"tag"},Vt={class:"q"},Ht={class:"small",style:{margin:"10px 0 0"}},Gt={class:"answer"},Jt={key:0,class:"muted small",style:{margin:"8px 0 0"}},Oe="Wykorzystano wszystkie podejścia.",Xt=$e({__name:"QuizTest",props:{quiz:{},history:{}},emits:["finished"],setup(p,{emit:e}){const s=p,h=e,w=z("intro"),$=z(null),r=z(null),C=z(null),W=z(!1),q=z(""),_=z(""),b=z(!1),f=z(null),T=z(""),A=z({}),M=z(!1),se=z(null),F=z(null);let B=null,J=null,Q=null;function R(){Q!==null&&clearInterval(Q),Q=null}function Y(){R(),f.value=r.value?.secondsLeft()??null,f.value!==null&&(T.value="",Q=setInterval(ae,1e3),ae())}function ae(){const o=r.value;if(!o||w.value!=="running")return R();const l=o.secondsLeft(),u=f.value;if(f.value=l,l===null)return R();u!==null&&u>300&&l<=300&&l>60&&(T.value="Zostało 5 minut."),u!==null&&u>60&&l<=60&&l>0&&(T.value="Została 1 minuta."),l<=0&&(R(),V("deadline"))}function ne(){Q===null&&w.value==="running"&&Y()}Te(()=>{R()});function fe(o){const l=pe(o);if(l==="time_limit_exceeded"||l==="attempt_completed"){B?.clear(),V("deadline");return}q.value=`Nie udało się zapisać odpowiedzi. ${I(o)}`}function ie(o){return new st(async(l,u)=>{await U.answer(o,{question_id:l,...u})},(l,u)=>fe(u),(l,u)=>r.value?.setUnsaved(l,u))}async function le(){if(!W.value){W.value=!0,q.value="",_.value="",b.value=!1;try{const o=await U.start(s.quiz.slug),l=await U.attempt(o.id);if($.value=l,l.completed_at){K(l);return}const u=new Se(l);u.index=u.startAt(o.resumed),r.value=u,A.value={},B=ie(l.id),M.value=!1,w.value="running",Y()}catch(o){pe(o)==="attempt_limit_reached"?(b.value=!0,q.value=Oe):q.value=I(o)}finally{W.value=!1}}}function K(o){R(),C.value=o,r.value=null,B=null,w.value="review",h("finished",o)}async function E(){await J?.catch(()=>{});const o=await B?.flush()??[];return[...new Set([...o,...r.value?.unsaved??[]])]}function oe(o){_.value=`Nie zapisano odpowiedzi na ${ye(o,"pytanie","pytania","pytań")}. Test pozostaje otwarty; sprawdź połączenie i spróbuj ponownie.`,M.value=!1,ne()}async function V(o="manual"){const l=$.value;if(!(!l||M.value)){M.value=!0,_.value="",o==="deadline"&&R();try{const u=await E();if(u.length&&o!=="deadline"){oe(u.length);return}R(),K(await U.finish(l.id))}catch(u){if(pe(u)==="attempt_completed")try{const N=await U.attempt(l.id);if(N.completed_at){K(N);return}}catch{}_.value=`Nie udało się zakończyć testu. ${I(u)}`,M.value=!1}}}async function ue(){const o=r.value;if(!o||M.value)return;M.value=!0,_.value="";const l=await E();if(l.length)return oe(l.length);M.value=!1,ne(),!(w.value!=="running"||M.value)&&(o.unansweredCount>0&&await se.value?.open()!=="confirm"||V())}async function v(){const o=$.value;if(!o)return;const l=await U.attempt(o.id);if(l.completed_at){K(l);return}const u=new Se(l);u.index=u.startAt(!0),r.value=u,A.value={}}async function j(o,l){const u=$.value,N=r.value;if(!u||!N||W.value||M.value||N.locked(o.id))return;W.value=!0,q.value="";let X=!1;const je=U.answer(u.id,{question_id:o.id,...l});J=je;try{await je,N.setUnsaved(o.id,!1),l.known!==void 0?N.setKnown(o.id,l.known):N.setChoice(o.id,l.answer_ids??[]),N.next(),await ge(),F.value?.focus()}catch(qe){const _e=pe(qe);if(_e==="answer_locked")try{await v()}catch(Pe){q.value=I(Pe)}else _e==="time_limit_exceeded"||_e==="attempt_completed"?X=!0:(N.setUnsaved(o.id,!0),q.value=`Nie udało się zapisać odpowiedzi. ${I(qe)}`)}finally{J=null,W.value=!1}X&&V("deadline")}function L(o,l){A.value={...A.value,[o]:l}}function ee(o,l){q.value="",B?.save(o,l)}function re(o,l){r.value?.setChoice(o.id,l),ee(o.id,{answer_ids:l})}function de(o,l){r.value?.setKnown(o.id,l),ee(o.id,{known:l})}function ce(){w.value="intro",C.value=null,$.value=null}const k=Z(()=>r.value?.current??null),te=o=>(r.value?.isOneWay?A.value[o]:r.value?.answers[o])?.answer_ids??[],d=o=>(r.value?.isOneWay?A.value[o]:r.value?.answers[o])?.known,c=o=>y(o)?te(o.id).length>0:d(o.id)!==void 0,O=Z(()=>`Nie odpowiedziano na ${ye(r.value?.unansweredCount??0,"pytanie","pytania","pytań")}. Zakończyć test?`),y=o=>o.type==="single"||o.type==="multiple",P=o=>String(Math.round((o??0)*100)/100).replace(".",","),ve=o=>String(o??0).replace(".",","),Ze=Z(()=>C.value?.passed?"Zaliczony":"Niezaliczony"),me=Z(()=>s.history.filter(o=>o.quiz_slug===s.quiz.slug)),Ce=Z(()=>me.value.find(o=>!o.completed_at&&!o.category)??null),We=Z(()=>!Ce.value&&(s.quiz.attempts_left===0||b.value)),we=Z(()=>s.quiz.time_limit_seconds?Math.ceil(s.quiz.time_limit_seconds/60):null),Ue=Z(()=>s.quiz.navigation==="one_way"?"Jedno pytanie naraz; odpowiedź jest ostateczna.":"Możesz wracać do pytań i zmieniać odpowiedzi do zakończenia.");return(o,l)=>(a(),i("div",at,[w.value==="intro"?(a(),i(x,{key:0},[p.quiz.description?(a(),i("p",nt,n(p.quiz.description),1)):m("",!0),t("section",it,[t("div",lt,[l[8]||(l[8]=t("span",{class:"badge alert"},"Test",-1)),we.value?(a(),i("span",ot,n(we.value)+" min",1)):m("",!0),t("span",ut,"próg "+n(ve(p.quiz.passing_score))+"%",1),t("span",rt,n(he(ye)(p.quiz.question_count,"pytanie","pytania","pytań")),1),p.quiz.attempts_left!==null?(a(),i("span",dt,"Pozostało podejść: "+n(p.quiz.attempts_left),1)):m("",!0)]),l[9]||(l[9]=t("h2",{id:"test-h",style:{"margin-bottom":"8px"}},"Nowe podejście",-1)),t("p",ct,n(Ue.value)+" Odpowiedzi zapisujemy na bieżąco. Wynik i poprawne odpowiedzi zobaczysz po zakończeniu testu.",1),we.value?(a(),i("p",vt,"Czas liczy się od rozpoczęcia; po jego upływie test kończy się sam. Zamknięcie strony nie zatrzymuje zegara.")):m("",!0),t("div",pt,[t("button",{class:"btn primary",type:"button",disabled:W.value||We.value,onClick:le},n(Ce.value?"Wznów test":"Rozpocznij test"),9,ht)]),We.value&&!q.value?(a(),i("p",yt,n(Oe))):m("",!0),q.value?(a(),i("p",ft,n(q.value),1)):m("",!0)]),me.value.length?(a(),i("section",mt,[l[10]||(l[10]=t("div",{class:"section-head"},[t("h2",{id:"test-hist-h"},"Historia podejść")],-1)),t("div",wt,[H(Ne,{attempts:me.value},null,8,["attempts"])])])):m("",!0)],64)):w.value==="running"&&r.value&&k.value?(a(),i(x,{key:1},[t("div",_t,[t("span",kt,n(r.value.isOneWay&&r.value.allAnswered?"Wszystkie pytania za Tobą":`Pytanie ${r.value.index+1} z ${r.value.questions.length}`),1),f.value!==null?(a(),i("span",{key:0,class:G(["timer",{low:f.value<=60}]),role:"timer","aria-label":`Pozostały czas ${he(Me)(f.value)}`},n(he(Me)(f.value)),11,bt)):m("",!0),t("span",gt,n(T.value),1),t("button",{class:"btn small primary",type:"button",disabled:W.value||M.value,onClick:ue},"Zakończ",8,zt)]),_.value?(a(),i("div",xt,[S(n(_.value)+" ",1),t("button",{class:"btn small",type:"button",disabled:M.value,onClick:ue},"Spróbuj ponownie",8,$t)])):m("",!0),r.value.isOneWay?m("",!0):(a(),i("nav",Ct,[(a(!0),i(x,null,D(r.value.questions,(u,N)=>(a(),i("button",{key:u.id,type:"button",class:G({answered:r.value.answered(u.id),unsaved:r.value.isUnsaved(u.id)}),"aria-current":N===r.value.index?"step":void 0,"aria-label":`Pytanie ${N+1}${r.value.isUnsaved(u.id)?", nie zapisano":r.value.answered(u.id)?", odpowiedziano":""}`,onClick:X=>r.value.goTo(N)},n(N+1),11,Wt))),128))])),r.value.isOneWay&&r.value.allAnswered?(a(),i("div",jt,[t("p",{ref_key:"qText",ref:F,class:"q",tabindex:"-1"},"Odpowiedziano na wszystkie pytania.",512),l[11]||(l[11]=t("p",{class:"small muted"},"Odpowiedzi są ostateczne. Zakończ test, aby zobaczyć wynik i poprawne odpowiedzi.",-1)),t("div",qt,[t("button",{class:"btn primary",type:"button",disabled:M.value,onClick:l[0]||(l[0]=u=>V())},"Zakończ test",8,Mt)])])):(a(),i("div",St,[k.value.category?(a(),i("span",Ot,n(k.value.category),1)):m("",!0),t("p",{ref_key:"qText",ref:F,class:"q",tabindex:"-1"},n(k.value.text),513),y(k.value)?(a(),i(x,{key:1},[t("p",Nt,n(k.value.type==="multiple"?"Zaznacz wszystkie poprawne odpowiedzi":"Zaznacz jedną odpowiedź"),1),(a(),be(ze,{key:k.value.id,name:`t-${k.value.id}`,label:k.value.text,type:k.value.type==="multiple"?"multiple":"single",options:k.value.answers.map(u=>({id:u.id,text:u.text})),selected:te(k.value.id),solution:null,disabled:M.value||r.value.isOneWay&&W.value,"onUpdate:selected":l[1]||(l[1]=u=>r.value.isOneWay?L(k.value.id,{answer_ids:u}):re(k.value,u))},null,8,["name","label","type","options","selected","disabled"]))],64)):(a(),i("div",Tt,[t("button",{class:"btn yes",type:"button","aria-pressed":d(k.value.id)===!0,disabled:M.value,onClick:l[2]||(l[2]=u=>r.value.isOneWay?L(k.value.id,{known:!0}):de(k.value,!0))}," Wiem ",8,Zt),t("button",{class:"btn no",type:"button","aria-pressed":d(k.value.id)===!1,disabled:M.value,onClick:l[3]||(l[3]=u=>r.value.isOneWay?L(k.value.id,{known:!1}):de(k.value,!1))}," Nie wiem ",8,Ut)])),r.value.isOneWay?(a(),i("div",Pt,[t("button",{class:"btn",type:"button",disabled:W.value||M.value,onClick:l[4]||(l[4]=u=>j(k.value,y(k.value)?{answer_ids:[]}:{known:!1}))},"Pomiń",8,At),t("button",{class:"btn primary next",type:"button",disabled:!c(k.value)||W.value||M.value,onClick:l[5]||(l[5]=u=>j(k.value,y(k.value)?{answer_ids:te(k.value.id)}:{known:d(k.value.id)}))},"Zatwierdź",8,Rt)])):(a(),i("div",Lt,[t("button",{class:"btn",type:"button",disabled:!r.value.canGoBack,onClick:l[6]||(l[6]=u=>r.value.prev())},"Wstecz",8,Bt),t("button",{class:"btn primary next",type:"button",disabled:r.value.index>=r.value.questions.length-1,onClick:l[7]||(l[7]=u=>r.value.next())},"Dalej",8,Et)])),r.value.isOneWay?(a(),i("p",Dt,"Odpowiedź jest ostateczna; do pytania nie można wrócić.")):m("",!0),q.value?(a(),i("p",It,n(q.value),1)):m("",!0)])),H(Qe,{ref_key:"confirmDlg",ref:se,title:"Zakończyć test?",body:O.value,"confirm-label":"Zakończ","cancel-label":"Wróć do testu"},null,8,["body"])],64)):w.value==="review"&&C.value?(a(),i(x,{key:2},[t("div",Ft,[t("h2",null,"Wynik: "+n(P(C.value.score_points))+" / "+n(P(C.value.max_points))+" pkt ("+n(ve(C.value.score_percent))+"%)",1),t("p",null,[t("span",{class:G(["badge",C.value.passed?"online":"alert"])},n(Ze.value),3),S(" próg "+n(ve(C.value.passing_score))+"% ",1)]),t("div",{class:"qactions",style:{margin:"0"}},[t("button",{class:"btn",type:"button",onClick:ce},"Wróć do quizu")])]),t("ol",Qt,[(a(!0),i(x,null,D(C.value.questions,(u,N)=>(a(),i("li",{key:u.id,class:"qcard"},[t("span",Kt,[S("Pytanie "+n(N+1)+" · "+n(P(u.points_earned))+" / "+n(P(u.points))+" pkt",1),u.category?(a(),i(x,{key:0},[S(" · "+n(u.category),1)],64)):m("",!0)]),t("p",Vt,n(u.text),1),y(u)?(a(),be(ze,{key:0,name:`r-${u.id}`,label:u.text,type:u.type==="multiple"?"multiple":"single",options:u.answers.map(X=>({id:X.id,text:X.text})),selected:u.answer_ids,solution:u,disabled:""},null,8,["name","label","type","options","selected","solution"])):(a(),i(x,{key:1},[t("p",Ht,"Twoja odpowiedź: "+n(u.known===!0?"Wiem":u.known===!1?"Nie wiem":"brak odpowiedzi"),1),t("div",Gt,[l[12]||(l[12]=t("span",{class:"tag"},"Odpowiedź",-1)),S(" "+n(u.answer_text),1)]),u.explanation?(a(),i("p",Jt,n(u.explanation),1)):m("",!0)],64))]))),128))])],64)):m("",!0)]))}});function xe(p){return p.type==="single"||p.type==="multiple"}function Yt(p,e=Math.random){const s=p.slice();for(let h=s.length-1;h>0;h--){const w=Math.floor(e()*(h+1));[s[h],s[w]]=[s[w],s[h]]}return s}class es{constructor(e,s=5,h=Math.random){g(this,"cards");g(this,"roundSize");g(this,"rng");g(this,"pool",[]);g(this,"round",[]);g(this,"cur",0);g(this,"roundMarks",[]);g(this,"marks",{});g(this,"order",[]);g(this,"review",!1);g(this,"phase","card");g(this,"feedback",{});g(this,"points",{});this.cards=new Map(e.map(w=>[w.id,w])),this.roundSize=Math.max(1,s),this.rng=h,this.reset()}reset(){this.marks={},this.order=[],this.feedback={},this.points={},this.pool=[...this.cards.keys()],this.draw()}draw(){if(this.review=!1,this.pool.length===0){this.round=[],this.roundMarks=[],this.cur=0,this.phase="final";return}const e=[];for(;e.lengthnull),this.cur=0,this.phase="card"}get current(){const e=this.round[this.cur];return e===void 0?null:this.cards.get(e)??null}get isLastInRound(){return this.cur===this.round.length-1}get answeredCount(){return this.order.length}get remaining(){return this.pool.length}get total(){return this.cards.size}mark(e){const s=this.round[this.cur];s===void 0||this.phase!=="card"||(this.roundMarks[this.cur]=e,s in this.marks||this.order.push(s),this.marks[s]=e)}record(e,s){this.feedback[e]=s,this.points[e]=s.points??0}next(){this.phase==="card"&&(this.cur++,this.cur>=this.round.length&&(this.phase=this.review||this.pool.length===0?"final":"round"))}finish(){this.phase="final"}ids(e){return this.order.filter(s=>this.marks[s]===e)}get missed(){return this.ids("n")}get known(){return this.ids("y")}get tally(){return{y:this.known.length,n:this.missed.length}}get choiceScore(){let e=0,s=0;for(const h of this.order){const w=this.cards.get(h);!w||!xe(w)||!(h in this.points)||(e+=this.points[h],s+=w.points)}return{got:e,max:s}}correctText(e){const s=this.feedback[e];return s?s.answers.filter(h=>h.is_correct===!0).map(h=>h.text).join("; "):""}startReview(){const e=this.missed;e.length!==0&&(this.review=!0,this.startRound(Yt(e,this.rng)))}}const ts={key:0,class:"muted"},ss={class:"card accent","aria-labelledby":"start-h"},as={class:"small muted"},ns={key:0,class:"chips wrap",role:"group","aria-label":"Kategoria"},is=["aria-pressed"],ls=["aria-pressed","onClick"],os={class:"btn-row",style:{"margin-top":"12px"}},us=["disabled"],rs={key:1,class:"section","aria-labelledby":"hist-h"},ds={class:"card"},cs={class:"quiz-bar"},vs={class:"score"},ps={class:"y"},hs={class:"n"},ys={class:"count"},fs={class:"btn-row"},ms=["disabled"],ws=["disabled"],_s={class:"step","aria-live":"polite"},ks={key:0},bs={key:1,class:"qcard"},gs={class:"q"},zs={class:"tag",style:{margin:"6px 0 0"}},xs={class:"qactions"},$s=["disabled"],Cs=["disabled"],Ws={key:0,class:"error-text",role:"alert"},js={key:2,class:"qcard"},qs={class:"q"},Ms={key:1,class:"answer","aria-live":"polite"},Ss={class:"qactions"},Os=["aria-pressed","disabled"],Ns=["aria-pressed","disabled"],Ts=["disabled"],Zs={key:2,class:"error-text",role:"alert"},Us={key:3,class:"qcard sum"},Ps={class:"tag"},As={class:"qactions"},Rs={key:4,class:"qcard sum"},Ls={key:0,class:"mono small"},Bs={class:"qactions",style:{margin:"0 0 18px"}},Es={key:1,class:"grp miss"},Ds={class:"tag"},Is={key:2,class:"grp ok"},Fs={class:"tag"},Qs={key:3,class:"muted small mono",style:{margin:"14px 0 0"}},Ys=$e({__name:"QuizView",props:{slug:{}},setup(p){const e=p,s=z(null),h=z(""),w=z([]),$=z(null),r=z(null),C=z(null),W=z(!1),q=z({}),_=z({}),b=z(!1),f=z(""),T=z(null),A=z(null);async function M(){h.value="";try{s.value=await U.quiz(e.slug),F()}catch(d){h.value=I(d)}}async function se(){F();try{s.value=await U.quiz(e.slug)}catch{}}async function F(){try{w.value=(await U.attempts(e.slug)).data}catch{}}De(M),Te(()=>{C.value&&!W.value&&r.value?.answeredCount&&U.finish(C.value.id).catch(()=>{})});const B=Z(()=>{const d=new Map;for(const c of s.value?.questions??[])c.category&&d.set(c.category,(d.get(c.category)??0)+1);return[...d].sort(([c],[O])=>c.localeCompare(O,"pl"))}),J=Z(()=>(s.value?.questions??[]).filter(d=>!$.value||d.category===$.value).length);function Q(){const d=(s.value?.questions??[]).filter(c=>!$.value||c.category===$.value).map(c=>({id:c.id,text:c.text,category:c.category,type:c.type,points:c.points,answer:c.answer_text??"",options:c.type==="self_check"?[]:c.answers.map(O=>({id:O.id,text:O.text}))}));r.value=new es(d,s.value?.round_size??5),C.value=null,W.value=!1,q.value={},_.value={},f.value="",T.value=null}async function R(){return C.value||(C.value=await U.start(e.slug,$.value),W.value=!1),C.value}async function Y(d){const c=r.value,O=c?.current;if(!(!c||!O||b.value)){b.value=!0,f.value="";try{const y=await R();await U.answer(y.id,{question_id:O.id,known:d==="y"}),c.mark(d),await ge(),A.value?.focus()}catch(y){f.value=`Nie udało się zapisać odpowiedzi. ${I(y)}`}finally{b.value=!1}}}async function ae(){const d=r.value,c=d?.current;if(!d||!c||b.value)return;const O=_.value[c.id]??[];if(O.length){b.value=!0,f.value="";try{const y=await R(),P=await U.answer(y.id,{question_id:c.id,answer_ids:O});d.record(c.id,P),d.mark(P.is_correct===!0?"y":"n"),await ge(),A.value?.focus()}catch(y){f.value=`Nie udało się zapisać odpowiedzi. ${I(y)}`}finally{b.value=!1}}}function ne(d,c){_.value={..._.value,[d]:c}}function fe(){const d=r.value?.current?.id;d!==void 0&&(q.value={...q.value,[d]:!0})}function ie(){const d=r.value;d&&(d.next(),d.phase==="final"&&E())}function le(){_.value={},r.value?.draw(),r.value?.phase==="final"&&E()}function K(){r.value?.finish(),E()}async function E(){const d=C.value;if(!(!d||W.value)){W.value=!0;try{T.value=await U.finish(d.id)}catch{}F()}}function oe(){const d=r.value;d&&(d.startReview(),_.value={},C.value=null,W.value=!1,T.value=null)}function V(){r.value?.reset(),C.value=null,W.value=!1,q.value={},_.value={},T.value=null,r.value?.phase==="final"&&E()}function ue(){E(),r.value=null}const v=Z(()=>r.value),j=Z(()=>v.value?.current??null),L=Z(()=>j.value?v.value?.roundMarks[v.value.cur]??null:null);function ee(d){const c=v.value,O=c?.cards.get(d);return!c||!O?"":xe(O)?c.correctText(d):O.answer}const re=d=>String(Math.round(d*100)/100).replace(".",","),de=d=>v.value?.roundMarks[d]??(d===v.value?.cur?"cur":""),ce=Z(()=>{const d=v.value;return d?d.isLastInRound?d.review?"Wynik powtórki":d.remaining?"Koniec rundy":"Podsumowanie":"Dalej":""}),k=d=>ye(d,"pytanie","pytania","pytań"),te=Z(()=>{const d=v.value;return d?d.phase==="round"?"Koniec rundy":d.phase==="final"?d.review?"Wynik po powtórce":d.remaining?"Podsumowanie sesji":"Cała pula za Tobą":`${d.review?"Powtórka · ":""}Pytanie ${d.cur+1} z ${d.round.length}`:""});return(d,c)=>{const O=Fe("router-link");return a(),i("div",null,[H(Be,{ready:!!s.value,error:h.value,onRetry:c[4]||(c[4]=y=>M())},{default:ke(()=>[s.value?(a(),i(x,{key:0},[H(Le,{eyebrow:"Quiz",title:s.value.title},{default:ke(()=>[H(O,{class:"btn small ghost",to:"/quizy"},{default:ke(()=>[...c[5]||(c[5]=[S("← Quizy",-1)])]),_:1})]),_:1},8,["title"]),s.value.mode==="test"?(a(),be(Xt,{key:0,quiz:s.value,history:w.value,onFinished:se},null,8,["quiz","history"])):v.value?(a(),i(x,{key:2},[t("div",cs,[t("div",null,[t("div",vs,[t("span",ps,[c[8]||(c[8]=S("Wiem ",-1)),t("b",null,n(v.value.tally.y),1)]),t("span",hs,[c[9]||(c[9]=S("Nie wiem ",-1)),t("b",null,n(v.value.tally.n),1)])]),t("span",ys,[S(n(k(v.value.total))+" w puli · "+n(v.value.remaining)+" jeszcze nie padło",1),$.value?(a(),i(x,{key:0},[S(" · "+n($.value),1)],64)):m("",!0)])]),t("div",fs,[t("button",{class:"btn small",type:"button",disabled:v.value.phase==="final",onClick:le},"Losuj "+n(s.value.round_size??5)+" nowych",9,ms),t("button",{class:"btn small primary",type:"button",disabled:v.value.answeredCount===0||v.value.phase==="final",onClick:K},"Zakończ",8,ws)])]),v.value.phase!=="final"?(a(),i("div",{key:0,class:"round-progress",style:Ie({gridTemplateColumns:`repeat(${v.value.round.length}, 1fr)`}),"aria-hidden":"true"},[(a(!0),i(x,null,D(v.value.round,(y,P)=>(a(),i("span",{key:P,class:G(de(P))},null,2))),128))],4)):m("",!0),t("div",_s,[t("span",null,n(te.value),1),v.value.phase==="card"&&j.value?.category?(a(),i("span",ks,n(j.value.category),1)):m("",!0)]),v.value.phase==="card"&&j.value&&he(xe)(j.value)?(a(),i("div",bs,[t("p",gs,n(j.value.text),1),t("p",zs,n(j.value.type==="multiple"?"Zaznacz wszystkie poprawne odpowiedzi":"Zaznacz jedną odpowiedź"),1),H(ze,{name:`q-${j.value.id}`,label:j.value.text,type:j.value.type==="multiple"?"multiple":"single",options:j.value.options,selected:_.value[j.value.id]??[],solution:L.value?v.value.feedback[j.value.id]??null:null,disabled:b.value,"onUpdate:selected":c[1]||(c[1]=y=>ne(j.value.id,y))},null,8,["name","label","type","options","selected","solution","disabled"]),t("div",xs,[L.value?m("",!0):(a(),i("button",{key:0,class:"btn primary",type:"button",disabled:!(_.value[j.value.id]??[]).length||b.value,onClick:ae},"Sprawdź",8,$s)),t("button",{ref_key:"nextBtn",ref:A,class:"btn primary next",type:"button",disabled:!L.value||b.value,onClick:ie},n(ce.value),9,Cs)]),f.value?(a(),i("p",Ws,n(f.value),1)):m("",!0)])):v.value.phase==="card"&&j.value?(a(),i("div",js,[t("p",qs,n(j.value.text),1),q.value[j.value.id]?(a(),i("div",Ms,[c[10]||(c[10]=t("span",{class:"tag"},"Odpowiedź",-1)),S(" "+n(j.value.answer),1)])):(a(),i("button",{key:0,class:"reveal",type:"button",onClick:fe},"odpowiedź")),t("div",Ss,[t("button",{class:"btn yes",type:"button","aria-pressed":L.value==="y",disabled:b.value,onClick:c[2]||(c[2]=y=>Y("y"))},"Wiem!",8,Os),t("button",{class:"btn no",type:"button","aria-pressed":L.value==="n",disabled:b.value,onClick:c[3]||(c[3]=y=>Y("n"))},"Nie wiem",8,Ns),t("button",{ref_key:"nextBtn",ref:A,class:"btn primary next",type:"button",disabled:!L.value||b.value,onClick:ie},n(ce.value),9,Ts)]),f.value?(a(),i("p",Zs,n(f.value),1)):m("",!0)])):v.value.phase==="round"?(a(),i("div",Us,[t("h2",null,"Wiem "+n(v.value.roundMarks.filter(y=>y==="y").length)+" z "+n(v.value.round.length),1),c[11]||(c[11]=t("p",null,"Pytania „Nie wiem” trafiają do powtórki. Zbierzesz je przyciskiem „Zakończ”.",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.round,(y,P)=>(a(),i("li",{key:y,class:G(v.value.roundMarks[P])},[t("span",Ps,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text)+" ",1),t("small",null,n(ee(y)),1)],2))),128))]),t("div",As,[t("button",{class:"btn primary",type:"button",onClick:le},"Losuj "+n(s.value.round_size??5)+" nowych",1),t("button",{class:"btn",type:"button",onClick:K},"Zakończ")])])):(a(),i("div",Rs,[t("h2",null,"Wiem "+n(v.value.known.length)+" z "+n(v.value.answeredCount),1),t("p",null,n(v.value.missed.length?`Do powtórki: ${v.value.missed.length}.`:v.value.answeredCount?"Wszystko umiesz. Nie ma nic do powtórki.":"Nie udzielono żadnej odpowiedzi."),1),v.value.choiceScore.max>0?(a(),i("p",Ls,"Punkty za pytania wyboru: "+n(re(v.value.choiceScore.got))+" z "+n(re(v.value.choiceScore.max)),1)):m("",!0),t("div",Bs,[v.value.missed.length?(a(),i("button",{key:0,class:"btn primary",type:"button",onClick:oe},"Powtórz "+n(k(v.value.missed.length)),1)):m("",!0),t("button",{class:G(["btn",{primary:!v.value.missed.length}]),type:"button",onClick:V},"Nowa sesja",2),t("button",{class:"btn ghost",type:"button",onClick:ue},"Wróć do quizu")]),v.value.missed.length?(a(),i("div",Es,[c[12]||(c[12]=t("h3",null,"Nie wiem",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.missed,y=>(a(),i("li",{key:y,class:"n"},[t("span",Ds,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text)+" ",1),t("small",null,n(ee(y)),1)]))),128))])])):m("",!0),v.value.known.length?(a(),i("div",Is,[c[13]||(c[13]=t("h3",null,"Wiem",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.known,y=>(a(),i("li",{key:y,class:"y"},[t("span",Fs,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text),1)]))),128))])])):m("",!0),T.value?(a(),i("p",Qs,"Zapisano w historii: "+n(Math.round(T.value.score_points))+"/"+n(Math.round(T.value.max_points)),1)):m("",!0)]))],64)):(a(),i(x,{key:1},[s.value.description?(a(),i("p",ts,n(s.value.description),1)):m("",!0),t("section",ss,[c[6]||(c[6]=t("h2",{id:"start-h",style:{"margin-bottom":"8px"}},"Nowa sesja",-1)),t("p",as,"Rundy po "+n(s.value.round_size??5)+" losowych pytań, które jeszcze nie padły. Każdą odpowiedź zapisujemy na koncie.",1),B.value.length?(a(),i("div",ns,[t("button",{class:"chip",type:"button","aria-pressed":$.value===null,onClick:c[0]||(c[0]=y=>$.value=null)},"Wszystkie",8,is),(a(!0),i(x,null,D(B.value,([y,P])=>(a(),i("button",{key:y,class:"chip",type:"button","aria-pressed":$.value===y,onClick:ve=>$.value=y},n(y)+" · "+n(P),9,ls))),128))])):m("",!0),t("div",os,[t("button",{class:"btn primary",type:"button",disabled:J.value===0,onClick:Q},"Zacznij · "+n(k(J.value)),9,us)])]),w.value.length?(a(),i("section",rs,[c[7]||(c[7]=t("div",{class:"section-head"},[t("h2",{id:"hist-h"},"Historia podejść")],-1)),t("div",ds,[H(Ne,{attempts:w.value},null,8,["attempts"])])])):m("",!0)],64))],64)):m("",!0)]),_:1},8,["ready","error"])])}}});export{Ys as default}; +var Ae=Object.defineProperty;var Re=(p,e,s)=>e in p?Ae(p,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):p[e]=s;var g=(p,e,s)=>Re(p,typeof e!="symbol"?e+"":e,s);import{_ as Le}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as Be}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as Ne,q as U}from"./quizzes-BNBqkGD1.js";import{d as $e,n as a,c as i,F as x,b as t,E as D,C as G,t as n,p as S,f as m,x as Z,A as Ee,V as Te,e as he,ag as ye,i as H,s as be,r as z,ap as I,Z as ge,o as De,j as ke,H as Ie,l as Fe}from"./index-DyD9x5ZD.js";import{_ as Qe}from"./ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js";const Ke=["aria-label"],Ve=["type","name","value","checked","disabled","onChange"],He={class:"choice-body"},Ge={class:"choice-text"},Je={key:0,class:"choice-note"},Xe={key:1,class:"choice-expl"},Ye={key:0,class:"choice-none"},et={key:1,class:"answer","aria-live":"polite"},tt={class:"tag"},ze=$e({__name:"ChoiceQuestion",props:{name:{},label:{},type:{},options:{},selected:{},solution:{},disabled:{type:Boolean}},emits:["update:selected"],setup(p,{emit:e}){const s=p,h=e,w=Z(()=>s.disabled||s.solution!==null);function $(_){const b=s.solution;return b?b.correct_answer_ids?b.correct_answer_ids.includes(_):b.answers.find(f=>f.id===_)?.is_correct===!0:!1}const r=_=>s.selected.includes(_);function C(_){return s.solution?$(_)?r(_)?"ok":"missed":r(_)?"bad":"":""}const W=_=>s.solution?.answers.find(b=>b.id===_)?.explanation??null;function q(_,b){if(w.value)return;if(s.type==="single"){h("update:selected",b?[_]:[]);return}const f=s.selected.filter(T=>T!==_);h("update:selected",b?[...f,_]:f)}return(_,b)=>(a(),i(x,null,[t("fieldset",{class:"choices","aria-label":p.label},[(a(!0),i(x,null,D(p.options,f=>(a(),i("label",{key:f.id,class:G(["choice",C(f.id)])},[t("input",{type:p.type==="single"?"radio":"checkbox",name:p.name,value:f.id,checked:r(f.id),disabled:w.value,onChange:T=>q(f.id,T.target.checked)},null,40,Ve),t("span",He,[t("span",Ge,n(f.text),1),p.solution&&($(f.id)||r(f.id))?(a(),i("span",Je,[$(f.id)?(a(),i(x,{key:0},[S("poprawna")],64)):m("",!0),$(f.id)&&r(f.id)?(a(),i(x,{key:1},[S(" · ")],64)):m("",!0),r(f.id)?(a(),i(x,{key:2},[S("Twoja odpowiedź")],64)):m("",!0)])):m("",!0),p.solution&&W(f.id)?(a(),i("span",Xe,n(W(f.id)),1)):m("",!0)])],2))),128))],8,Ke),p.solution&&!p.selected.length?(a(),i("p",Ye,"Nie udzielono odpowiedzi.")):m("",!0),p.solution?(a(),i("div",et,[t("span",tt,n(p.solution.is_correct?"Dobrze":"Nie do końca"),1),p.solution.explanation?(a(),i(x,{key:0},[S(n(p.solution.explanation),1)],64)):(a(),i(x,{key:1},[S(n(p.solution.is_correct?"Wszystkie poprawne odpowiedzi zaznaczone.":"Poprawne odpowiedzi są oznaczone powyżej."),1)],64))])):m("",!0)],64))}});function Me(p){const e=Math.max(0,Math.floor(p));return`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`}function pe(p){if(!(p instanceof Ee)||p.status!==409)return null;const e=p.body?.code;return typeof e=="string"?e:null}class Se{constructor(e,s=Date.now){g(this,"questions");g(this,"navigation");g(this,"deadline");g(this,"index",0);g(this,"answers",{});g(this,"unsaved",[]);g(this,"now");this.now=s,this.questions=e.questions.slice(),this.navigation=e.quiz_navigation,this.deadline=e.seconds_left===null?null:s()+e.seconds_left*1e3;for(const h of this.questions)h.answered&&(this.answers[h.id]=h.type==="self_check"?{known:h.known??!1}:{answer_ids:h.answer_ids.slice()})}get current(){return this.questions[this.index]??null}get isOneWay(){return this.navigation==="one_way"}get canGoBack(){return!this.isOneWay&&this.index>0}get unansweredCount(){return this.questions.filter(e=>!this.answered(e.id)).length}answered(e){if(this.isUnsaved(e))return!1;const s=this.answers[e];return s?this.isOneWay?!0:s.known!==void 0||(s.answer_ids?.length??0)>0:!1}locked(e){return this.isOneWay&&this.answered(e)}get allAnswered(){return this.unansweredCount===0}next(){if(!this.isOneWay){this.indexw>this.index&&!this.answered(h.id)),s=e>=0?e:this.firstUnanswered();s>=0&&(this.index=s)}prev(){this.canGoBack&&this.index--}goTo(e){e<0||e>=this.questions.length||this.isOneWay&&eh!==e))}firstUnanswered(){return this.questions.findIndex(e=>!this.answered(e.id))}startAt(e){return!e&&!this.isOneWay?0:Math.max(0,this.firstUnanswered())}secondsLeft(){return this.deadline===null?null:Math.max(0,Math.ceil((this.deadline-this.now())/1e3))}}class st{constructor(e,s,h=()=>{}){g(this,"send");g(this,"onError");g(this,"onUnsaved");g(this,"inflight",new Map);g(this,"queued",new Map);g(this,"failed",new Map);g(this,"notSaved",new Set);this.send=e,this.onError=s,this.onUnsaved=h}save(e,s){return this.failed.delete(e),this.retryFailed(),this.enqueue(e,s)}async flush(){for(this.retryFailed();this.inflight.size;)await Promise.all([...this.inflight.values()]);return[...this.notSaved]}pending(e){return this.inflight.has(e)||this.failed.has(e)}clear(){this.failed.clear(),this.queued.clear();for(const e of[...this.notSaved])this.mark(e,!1)}mark(e,s){s!==this.notSaved.has(e)&&(s?this.notSaved.add(e):this.notSaved.delete(e),this.onUnsaved(e,s))}retryFailed(){for(const[e,s]of[...this.failed])this.failed.delete(e),this.enqueue(e,s)}enqueue(e,s){const h=this.inflight.get(e);if(h)return this.queued.set(e,s),h;const w=this.drain(e,s);return this.inflight.set(e,w),w}async drain(e,s){let h=s;for(;h;){this.queued.delete(e);try{await this.send(e,h),this.queued.has(e)||this.mark(e,!1)}catch(w){this.queued.has(e)||this.failed.set(e,h),this.mark(e,!0),this.onError(e,w)}h=this.queued.get(e)}this.inflight.delete(e)}}const at={class:"quiz-test"},nt={key:0,class:"muted"},it={class:"card accent","aria-labelledby":"test-h"},lt={class:"quiz-badges"},ot={key:0,class:"badge warn"},ut={class:"badge warn"},rt={class:"badge"},dt={key:1,class:"badge"},ct={class:"small muted"},vt={key:0,class:"small muted"},pt={class:"btn-row",style:{"margin-top":"12px"}},ht=["disabled"],yt={key:1,class:"small muted",style:{margin:"8px 0 0"}},ft={key:2,class:"error-text",role:"alert"},mt={key:1,class:"section","aria-labelledby":"test-hist-h"},wt={class:"card"},_t={class:"test-bar"},kt={class:"count"},bt=["aria-label"],gt={class:"sr-only","aria-live":"polite"},zt=["disabled"],xt={key:0,class:"error-text",role:"alert"},$t=["disabled"],Ct={key:1,class:"qnav","aria-label":"Pytania testu"},Wt=["aria-current","aria-label","onClick"],jt={key:2,class:"qcard"},qt={class:"qactions"},Mt=["disabled"],St={key:3,class:"qcard"},Ot={key:0,class:"tag"},Nt={class:"tag",style:{margin:"6px 0 0"}},Tt={key:2,class:"qactions"},Zt=["aria-pressed","disabled"],Ut=["aria-pressed","disabled"],Pt={key:3,class:"qactions"},At=["disabled"],Rt=["disabled"],Lt={key:4,class:"qactions"},Bt=["disabled"],Et=["disabled"],Dt={key:5,class:"small muted",style:{margin:"10px 0 0"}},It={key:6,class:"error-text",role:"alert"},Ft={class:"qcard sum test-result"},Qt={class:"test-review"},Kt={class:"tag"},Vt={class:"q"},Ht={class:"small",style:{margin:"10px 0 0"}},Gt={class:"answer"},Jt={key:0,class:"muted small",style:{margin:"8px 0 0"}},Oe="Wykorzystano wszystkie podejścia.",Xt=$e({__name:"QuizTest",props:{quiz:{},history:{}},emits:["finished"],setup(p,{emit:e}){const s=p,h=e,w=z("intro"),$=z(null),r=z(null),C=z(null),W=z(!1),q=z(""),_=z(""),b=z(!1),f=z(null),T=z(""),A=z({}),M=z(!1),se=z(null),F=z(null);let B=null,J=null,Q=null;function R(){Q!==null&&clearInterval(Q),Q=null}function Y(){R(),f.value=r.value?.secondsLeft()??null,f.value!==null&&(T.value="",Q=setInterval(ae,1e3),ae())}function ae(){const o=r.value;if(!o||w.value!=="running")return R();const l=o.secondsLeft(),u=f.value;if(f.value=l,l===null)return R();u!==null&&u>300&&l<=300&&l>60&&(T.value="Zostało 5 minut."),u!==null&&u>60&&l<=60&&l>0&&(T.value="Została 1 minuta."),l<=0&&(R(),V("deadline"))}function ne(){Q===null&&w.value==="running"&&Y()}Te(()=>{R()});function fe(o){const l=pe(o);if(l==="time_limit_exceeded"||l==="attempt_completed"){B?.clear(),V("deadline");return}q.value=`Nie udało się zapisać odpowiedzi. ${I(o)}`}function ie(o){return new st(async(l,u)=>{await U.answer(o,{question_id:l,...u})},(l,u)=>fe(u),(l,u)=>r.value?.setUnsaved(l,u))}async function le(){if(!W.value){W.value=!0,q.value="",_.value="",b.value=!1;try{const o=await U.start(s.quiz.slug),l=await U.attempt(o.id);if($.value=l,l.completed_at){K(l);return}const u=new Se(l);u.index=u.startAt(o.resumed),r.value=u,A.value={},B=ie(l.id),M.value=!1,w.value="running",Y()}catch(o){pe(o)==="attempt_limit_reached"?(b.value=!0,q.value=Oe):q.value=I(o)}finally{W.value=!1}}}function K(o){R(),C.value=o,r.value=null,B=null,w.value="review",h("finished",o)}async function E(){await J?.catch(()=>{});const o=await B?.flush()??[];return[...new Set([...o,...r.value?.unsaved??[]])]}function oe(o){_.value=`Nie zapisano odpowiedzi na ${ye(o,"pytanie","pytania","pytań")}. Test pozostaje otwarty; sprawdź połączenie i spróbuj ponownie.`,M.value=!1,ne()}async function V(o="manual"){const l=$.value;if(!(!l||M.value)){M.value=!0,_.value="",o==="deadline"&&R();try{const u=await E();if(u.length&&o!=="deadline"){oe(u.length);return}R(),K(await U.finish(l.id))}catch(u){if(pe(u)==="attempt_completed")try{const N=await U.attempt(l.id);if(N.completed_at){K(N);return}}catch{}_.value=`Nie udało się zakończyć testu. ${I(u)}`,M.value=!1}}}async function ue(){const o=r.value;if(!o||M.value)return;M.value=!0,_.value="";const l=await E();if(l.length)return oe(l.length);M.value=!1,ne(),!(w.value!=="running"||M.value)&&(o.unansweredCount>0&&await se.value?.open()!=="confirm"||V())}async function v(){const o=$.value;if(!o)return;const l=await U.attempt(o.id);if(l.completed_at){K(l);return}const u=new Se(l);u.index=u.startAt(!0),r.value=u,A.value={}}async function j(o,l){const u=$.value,N=r.value;if(!u||!N||W.value||M.value||N.locked(o.id))return;W.value=!0,q.value="";let X=!1;const je=U.answer(u.id,{question_id:o.id,...l});J=je;try{await je,N.setUnsaved(o.id,!1),l.known!==void 0?N.setKnown(o.id,l.known):N.setChoice(o.id,l.answer_ids??[]),N.next(),await ge(),F.value?.focus()}catch(qe){const _e=pe(qe);if(_e==="answer_locked")try{await v()}catch(Pe){q.value=I(Pe)}else _e==="time_limit_exceeded"||_e==="attempt_completed"?X=!0:(N.setUnsaved(o.id,!0),q.value=`Nie udało się zapisać odpowiedzi. ${I(qe)}`)}finally{J=null,W.value=!1}X&&V("deadline")}function L(o,l){A.value={...A.value,[o]:l}}function ee(o,l){q.value="",B?.save(o,l)}function re(o,l){r.value?.setChoice(o.id,l),ee(o.id,{answer_ids:l})}function de(o,l){r.value?.setKnown(o.id,l),ee(o.id,{known:l})}function ce(){w.value="intro",C.value=null,$.value=null}const k=Z(()=>r.value?.current??null),te=o=>(r.value?.isOneWay?A.value[o]:r.value?.answers[o])?.answer_ids??[],d=o=>(r.value?.isOneWay?A.value[o]:r.value?.answers[o])?.known,c=o=>y(o)?te(o.id).length>0:d(o.id)!==void 0,O=Z(()=>`Nie odpowiedziano na ${ye(r.value?.unansweredCount??0,"pytanie","pytania","pytań")}. Zakończyć test?`),y=o=>o.type==="single"||o.type==="multiple",P=o=>String(Math.round((o??0)*100)/100).replace(".",","),ve=o=>String(o??0).replace(".",","),Ze=Z(()=>C.value?.passed?"Zaliczony":"Niezaliczony"),me=Z(()=>s.history.filter(o=>o.quiz_slug===s.quiz.slug)),Ce=Z(()=>me.value.find(o=>!o.completed_at&&!o.category)??null),We=Z(()=>!Ce.value&&(s.quiz.attempts_left===0||b.value)),we=Z(()=>s.quiz.time_limit_seconds?Math.ceil(s.quiz.time_limit_seconds/60):null),Ue=Z(()=>s.quiz.navigation==="one_way"?"Jedno pytanie naraz; odpowiedź jest ostateczna.":"Możesz wracać do pytań i zmieniać odpowiedzi do zakończenia.");return(o,l)=>(a(),i("div",at,[w.value==="intro"?(a(),i(x,{key:0},[p.quiz.description?(a(),i("p",nt,n(p.quiz.description),1)):m("",!0),t("section",it,[t("div",lt,[l[8]||(l[8]=t("span",{class:"badge alert"},"Test",-1)),we.value?(a(),i("span",ot,n(we.value)+" min",1)):m("",!0),t("span",ut,"próg "+n(ve(p.quiz.passing_score))+"%",1),t("span",rt,n(he(ye)(p.quiz.question_count,"pytanie","pytania","pytań")),1),p.quiz.attempts_left!==null?(a(),i("span",dt,"Pozostało podejść: "+n(p.quiz.attempts_left),1)):m("",!0)]),l[9]||(l[9]=t("h2",{id:"test-h",style:{"margin-bottom":"8px"}},"Nowe podejście",-1)),t("p",ct,n(Ue.value)+" Odpowiedzi zapisujemy na bieżąco. Wynik i poprawne odpowiedzi zobaczysz po zakończeniu testu.",1),we.value?(a(),i("p",vt,"Czas liczy się od rozpoczęcia; po jego upływie test kończy się sam. Zamknięcie strony nie zatrzymuje zegara.")):m("",!0),t("div",pt,[t("button",{class:"btn primary",type:"button",disabled:W.value||We.value,onClick:le},n(Ce.value?"Wznów test":"Rozpocznij test"),9,ht)]),We.value&&!q.value?(a(),i("p",yt,n(Oe))):m("",!0),q.value?(a(),i("p",ft,n(q.value),1)):m("",!0)]),me.value.length?(a(),i("section",mt,[l[10]||(l[10]=t("div",{class:"section-head"},[t("h2",{id:"test-hist-h"},"Historia podejść")],-1)),t("div",wt,[H(Ne,{attempts:me.value},null,8,["attempts"])])])):m("",!0)],64)):w.value==="running"&&r.value&&k.value?(a(),i(x,{key:1},[t("div",_t,[t("span",kt,n(r.value.isOneWay&&r.value.allAnswered?"Wszystkie pytania za Tobą":`Pytanie ${r.value.index+1} z ${r.value.questions.length}`),1),f.value!==null?(a(),i("span",{key:0,class:G(["timer",{low:f.value<=60}]),role:"timer","aria-label":`Pozostały czas ${he(Me)(f.value)}`},n(he(Me)(f.value)),11,bt)):m("",!0),t("span",gt,n(T.value),1),t("button",{class:"btn small primary",type:"button",disabled:W.value||M.value,onClick:ue},"Zakończ",8,zt)]),_.value?(a(),i("div",xt,[S(n(_.value)+" ",1),t("button",{class:"btn small",type:"button",disabled:M.value,onClick:ue},"Spróbuj ponownie",8,$t)])):m("",!0),r.value.isOneWay?m("",!0):(a(),i("nav",Ct,[(a(!0),i(x,null,D(r.value.questions,(u,N)=>(a(),i("button",{key:u.id,type:"button",class:G({answered:r.value.answered(u.id),unsaved:r.value.isUnsaved(u.id)}),"aria-current":N===r.value.index?"step":void 0,"aria-label":`Pytanie ${N+1}${r.value.isUnsaved(u.id)?", nie zapisano":r.value.answered(u.id)?", odpowiedziano":""}`,onClick:X=>r.value.goTo(N)},n(N+1),11,Wt))),128))])),r.value.isOneWay&&r.value.allAnswered?(a(),i("div",jt,[t("p",{ref_key:"qText",ref:F,class:"q",tabindex:"-1"},"Odpowiedziano na wszystkie pytania.",512),l[11]||(l[11]=t("p",{class:"small muted"},"Odpowiedzi są ostateczne. Zakończ test, aby zobaczyć wynik i poprawne odpowiedzi.",-1)),t("div",qt,[t("button",{class:"btn primary",type:"button",disabled:M.value,onClick:l[0]||(l[0]=u=>V())},"Zakończ test",8,Mt)])])):(a(),i("div",St,[k.value.category?(a(),i("span",Ot,n(k.value.category),1)):m("",!0),t("p",{ref_key:"qText",ref:F,class:"q",tabindex:"-1"},n(k.value.text),513),y(k.value)?(a(),i(x,{key:1},[t("p",Nt,n(k.value.type==="multiple"?"Zaznacz wszystkie poprawne odpowiedzi":"Zaznacz jedną odpowiedź"),1),(a(),be(ze,{key:k.value.id,name:`t-${k.value.id}`,label:k.value.text,type:k.value.type==="multiple"?"multiple":"single",options:k.value.answers.map(u=>({id:u.id,text:u.text})),selected:te(k.value.id),solution:null,disabled:M.value||r.value.isOneWay&&W.value,"onUpdate:selected":l[1]||(l[1]=u=>r.value.isOneWay?L(k.value.id,{answer_ids:u}):re(k.value,u))},null,8,["name","label","type","options","selected","disabled"]))],64)):(a(),i("div",Tt,[t("button",{class:"btn yes",type:"button","aria-pressed":d(k.value.id)===!0,disabled:M.value,onClick:l[2]||(l[2]=u=>r.value.isOneWay?L(k.value.id,{known:!0}):de(k.value,!0))}," Wiem ",8,Zt),t("button",{class:"btn no",type:"button","aria-pressed":d(k.value.id)===!1,disabled:M.value,onClick:l[3]||(l[3]=u=>r.value.isOneWay?L(k.value.id,{known:!1}):de(k.value,!1))}," Nie wiem ",8,Ut)])),r.value.isOneWay?(a(),i("div",Pt,[t("button",{class:"btn",type:"button",disabled:W.value||M.value,onClick:l[4]||(l[4]=u=>j(k.value,y(k.value)?{answer_ids:[]}:{known:!1}))},"Pomiń",8,At),t("button",{class:"btn primary next",type:"button",disabled:!c(k.value)||W.value||M.value,onClick:l[5]||(l[5]=u=>j(k.value,y(k.value)?{answer_ids:te(k.value.id)}:{known:d(k.value.id)}))},"Zatwierdź",8,Rt)])):(a(),i("div",Lt,[t("button",{class:"btn",type:"button",disabled:!r.value.canGoBack,onClick:l[6]||(l[6]=u=>r.value.prev())},"Wstecz",8,Bt),t("button",{class:"btn primary next",type:"button",disabled:r.value.index>=r.value.questions.length-1,onClick:l[7]||(l[7]=u=>r.value.next())},"Dalej",8,Et)])),r.value.isOneWay?(a(),i("p",Dt,"Odpowiedź jest ostateczna; do pytania nie można wrócić.")):m("",!0),q.value?(a(),i("p",It,n(q.value),1)):m("",!0)])),H(Qe,{ref_key:"confirmDlg",ref:se,title:"Zakończyć test?",body:O.value,"confirm-label":"Zakończ","cancel-label":"Wróć do testu"},null,8,["body"])],64)):w.value==="review"&&C.value?(a(),i(x,{key:2},[t("div",Ft,[t("h2",null,"Wynik: "+n(P(C.value.score_points))+" / "+n(P(C.value.max_points))+" pkt ("+n(ve(C.value.score_percent))+"%)",1),t("p",null,[t("span",{class:G(["badge",C.value.passed?"online":"alert"])},n(Ze.value),3),S(" próg "+n(ve(C.value.passing_score))+"% ",1)]),t("div",{class:"qactions",style:{margin:"0"}},[t("button",{class:"btn",type:"button",onClick:ce},"Wróć do quizu")])]),t("ol",Qt,[(a(!0),i(x,null,D(C.value.questions,(u,N)=>(a(),i("li",{key:u.id,class:"qcard"},[t("span",Kt,[S("Pytanie "+n(N+1)+" · "+n(P(u.points_earned))+" / "+n(P(u.points))+" pkt",1),u.category?(a(),i(x,{key:0},[S(" · "+n(u.category),1)],64)):m("",!0)]),t("p",Vt,n(u.text),1),y(u)?(a(),be(ze,{key:0,name:`r-${u.id}`,label:u.text,type:u.type==="multiple"?"multiple":"single",options:u.answers.map(X=>({id:X.id,text:X.text})),selected:u.answer_ids,solution:u,disabled:""},null,8,["name","label","type","options","selected","solution"])):(a(),i(x,{key:1},[t("p",Ht,"Twoja odpowiedź: "+n(u.known===!0?"Wiem":u.known===!1?"Nie wiem":"brak odpowiedzi"),1),t("div",Gt,[l[12]||(l[12]=t("span",{class:"tag"},"Odpowiedź",-1)),S(" "+n(u.answer_text),1)]),u.explanation?(a(),i("p",Jt,n(u.explanation),1)):m("",!0)],64))]))),128))])],64)):m("",!0)]))}});function xe(p){return p.type==="single"||p.type==="multiple"}function Yt(p,e=Math.random){const s=p.slice();for(let h=s.length-1;h>0;h--){const w=Math.floor(e()*(h+1));[s[h],s[w]]=[s[w],s[h]]}return s}class es{constructor(e,s=5,h=Math.random){g(this,"cards");g(this,"roundSize");g(this,"rng");g(this,"pool",[]);g(this,"round",[]);g(this,"cur",0);g(this,"roundMarks",[]);g(this,"marks",{});g(this,"order",[]);g(this,"review",!1);g(this,"phase","card");g(this,"feedback",{});g(this,"points",{});this.cards=new Map(e.map(w=>[w.id,w])),this.roundSize=Math.max(1,s),this.rng=h,this.reset()}reset(){this.marks={},this.order=[],this.feedback={},this.points={},this.pool=[...this.cards.keys()],this.draw()}draw(){if(this.review=!1,this.pool.length===0){this.round=[],this.roundMarks=[],this.cur=0,this.phase="final";return}const e=[];for(;e.lengthnull),this.cur=0,this.phase="card"}get current(){const e=this.round[this.cur];return e===void 0?null:this.cards.get(e)??null}get isLastInRound(){return this.cur===this.round.length-1}get answeredCount(){return this.order.length}get remaining(){return this.pool.length}get total(){return this.cards.size}mark(e){const s=this.round[this.cur];s===void 0||this.phase!=="card"||(this.roundMarks[this.cur]=e,s in this.marks||this.order.push(s),this.marks[s]=e)}record(e,s){this.feedback[e]=s,this.points[e]=s.points??0}next(){this.phase==="card"&&(this.cur++,this.cur>=this.round.length&&(this.phase=this.review||this.pool.length===0?"final":"round"))}finish(){this.phase="final"}ids(e){return this.order.filter(s=>this.marks[s]===e)}get missed(){return this.ids("n")}get known(){return this.ids("y")}get tally(){return{y:this.known.length,n:this.missed.length}}get choiceScore(){let e=0,s=0;for(const h of this.order){const w=this.cards.get(h);!w||!xe(w)||!(h in this.points)||(e+=this.points[h],s+=w.points)}return{got:e,max:s}}correctText(e){const s=this.feedback[e];return s?s.answers.filter(h=>h.is_correct===!0).map(h=>h.text).join("; "):""}startReview(){const e=this.missed;e.length!==0&&(this.review=!0,this.startRound(Yt(e,this.rng)))}}const ts={key:0,class:"muted"},ss={class:"card accent","aria-labelledby":"start-h"},as={class:"small muted"},ns={key:0,class:"chips wrap",role:"group","aria-label":"Kategoria"},is=["aria-pressed"],ls=["aria-pressed","onClick"],os={class:"btn-row",style:{"margin-top":"12px"}},us=["disabled"],rs={key:1,class:"section","aria-labelledby":"hist-h"},ds={class:"card"},cs={class:"quiz-bar"},vs={class:"score"},ps={class:"y"},hs={class:"n"},ys={class:"count"},fs={class:"btn-row"},ms=["disabled"],ws=["disabled"],_s={class:"step","aria-live":"polite"},ks={key:0},bs={key:1,class:"qcard"},gs={class:"q"},zs={class:"tag",style:{margin:"6px 0 0"}},xs={class:"qactions"},$s=["disabled"],Cs=["disabled"],Ws={key:0,class:"error-text",role:"alert"},js={key:2,class:"qcard"},qs={class:"q"},Ms={key:1,class:"answer","aria-live":"polite"},Ss={class:"qactions"},Os=["aria-pressed","disabled"],Ns=["aria-pressed","disabled"],Ts=["disabled"],Zs={key:2,class:"error-text",role:"alert"},Us={key:3,class:"qcard sum"},Ps={class:"tag"},As={class:"qactions"},Rs={key:4,class:"qcard sum"},Ls={key:0,class:"mono small"},Bs={class:"qactions",style:{margin:"0 0 18px"}},Es={key:1,class:"grp miss"},Ds={class:"tag"},Is={key:2,class:"grp ok"},Fs={class:"tag"},Qs={key:3,class:"muted small mono",style:{margin:"14px 0 0"}},Ys=$e({__name:"QuizView",props:{slug:{}},setup(p){const e=p,s=z(null),h=z(""),w=z([]),$=z(null),r=z(null),C=z(null),W=z(!1),q=z({}),_=z({}),b=z(!1),f=z(""),T=z(null),A=z(null);async function M(){h.value="";try{s.value=await U.quiz(e.slug),F()}catch(d){h.value=I(d)}}async function se(){F();try{s.value=await U.quiz(e.slug)}catch{}}async function F(){try{w.value=(await U.attempts(e.slug)).data}catch{}}De(M),Te(()=>{C.value&&!W.value&&r.value?.answeredCount&&U.finish(C.value.id).catch(()=>{})});const B=Z(()=>{const d=new Map;for(const c of s.value?.questions??[])c.category&&d.set(c.category,(d.get(c.category)??0)+1);return[...d].sort(([c],[O])=>c.localeCompare(O,"pl"))}),J=Z(()=>(s.value?.questions??[]).filter(d=>!$.value||d.category===$.value).length);function Q(){const d=(s.value?.questions??[]).filter(c=>!$.value||c.category===$.value).map(c=>({id:c.id,text:c.text,category:c.category,type:c.type,points:c.points,answer:c.answer_text??"",options:c.type==="self_check"?[]:c.answers.map(O=>({id:O.id,text:O.text}))}));r.value=new es(d,s.value?.round_size??5),C.value=null,W.value=!1,q.value={},_.value={},f.value="",T.value=null}async function R(){return C.value||(C.value=await U.start(e.slug,$.value),W.value=!1),C.value}async function Y(d){const c=r.value,O=c?.current;if(!(!c||!O||b.value)){b.value=!0,f.value="";try{const y=await R();await U.answer(y.id,{question_id:O.id,known:d==="y"}),c.mark(d),await ge(),A.value?.focus()}catch(y){f.value=`Nie udało się zapisać odpowiedzi. ${I(y)}`}finally{b.value=!1}}}async function ae(){const d=r.value,c=d?.current;if(!d||!c||b.value)return;const O=_.value[c.id]??[];if(O.length){b.value=!0,f.value="";try{const y=await R(),P=await U.answer(y.id,{question_id:c.id,answer_ids:O});d.record(c.id,P),d.mark(P.is_correct===!0?"y":"n"),await ge(),A.value?.focus()}catch(y){f.value=`Nie udało się zapisać odpowiedzi. ${I(y)}`}finally{b.value=!1}}}function ne(d,c){_.value={..._.value,[d]:c}}function fe(){const d=r.value?.current?.id;d!==void 0&&(q.value={...q.value,[d]:!0})}function ie(){const d=r.value;d&&(d.next(),d.phase==="final"&&E())}function le(){_.value={},r.value?.draw(),r.value?.phase==="final"&&E()}function K(){r.value?.finish(),E()}async function E(){const d=C.value;if(!(!d||W.value)){W.value=!0;try{T.value=await U.finish(d.id)}catch{}F()}}function oe(){const d=r.value;d&&(d.startReview(),_.value={},C.value=null,W.value=!1,T.value=null)}function V(){r.value?.reset(),C.value=null,W.value=!1,q.value={},_.value={},T.value=null,r.value?.phase==="final"&&E()}function ue(){E(),r.value=null}const v=Z(()=>r.value),j=Z(()=>v.value?.current??null),L=Z(()=>j.value?v.value?.roundMarks[v.value.cur]??null:null);function ee(d){const c=v.value,O=c?.cards.get(d);return!c||!O?"":xe(O)?c.correctText(d):O.answer}const re=d=>String(Math.round(d*100)/100).replace(".",","),de=d=>v.value?.roundMarks[d]??(d===v.value?.cur?"cur":""),ce=Z(()=>{const d=v.value;return d?d.isLastInRound?d.review?"Wynik powtórki":d.remaining?"Koniec rundy":"Podsumowanie":"Dalej":""}),k=d=>ye(d,"pytanie","pytania","pytań"),te=Z(()=>{const d=v.value;return d?d.phase==="round"?"Koniec rundy":d.phase==="final"?d.review?"Wynik po powtórce":d.remaining?"Podsumowanie sesji":"Cała pula za Tobą":`${d.review?"Powtórka · ":""}Pytanie ${d.cur+1} z ${d.round.length}`:""});return(d,c)=>{const O=Fe("router-link");return a(),i("div",null,[H(Be,{ready:!!s.value,error:h.value,onRetry:c[4]||(c[4]=y=>M())},{default:ke(()=>[s.value?(a(),i(x,{key:0},[H(Le,{eyebrow:"Quiz",title:s.value.title},{default:ke(()=>[H(O,{class:"btn small ghost",to:"/quizy"},{default:ke(()=>[...c[5]||(c[5]=[S("← Quizy",-1)])]),_:1})]),_:1},8,["title"]),s.value.mode==="test"?(a(),be(Xt,{key:0,quiz:s.value,history:w.value,onFinished:se},null,8,["quiz","history"])):v.value?(a(),i(x,{key:2},[t("div",cs,[t("div",null,[t("div",vs,[t("span",ps,[c[8]||(c[8]=S("Wiem ",-1)),t("b",null,n(v.value.tally.y),1)]),t("span",hs,[c[9]||(c[9]=S("Nie wiem ",-1)),t("b",null,n(v.value.tally.n),1)])]),t("span",ys,[S(n(k(v.value.total))+" w puli · "+n(v.value.remaining)+" jeszcze nie padło",1),$.value?(a(),i(x,{key:0},[S(" · "+n($.value),1)],64)):m("",!0)])]),t("div",fs,[t("button",{class:"btn small",type:"button",disabled:v.value.phase==="final",onClick:le},"Losuj "+n(s.value.round_size??5)+" nowych",9,ms),t("button",{class:"btn small primary",type:"button",disabled:v.value.answeredCount===0||v.value.phase==="final",onClick:K},"Zakończ",8,ws)])]),v.value.phase!=="final"?(a(),i("div",{key:0,class:"round-progress",style:Ie({gridTemplateColumns:`repeat(${v.value.round.length}, 1fr)`}),"aria-hidden":"true"},[(a(!0),i(x,null,D(v.value.round,(y,P)=>(a(),i("span",{key:P,class:G(de(P))},null,2))),128))],4)):m("",!0),t("div",_s,[t("span",null,n(te.value),1),v.value.phase==="card"&&j.value?.category?(a(),i("span",ks,n(j.value.category),1)):m("",!0)]),v.value.phase==="card"&&j.value&&he(xe)(j.value)?(a(),i("div",bs,[t("p",gs,n(j.value.text),1),t("p",zs,n(j.value.type==="multiple"?"Zaznacz wszystkie poprawne odpowiedzi":"Zaznacz jedną odpowiedź"),1),H(ze,{name:`q-${j.value.id}`,label:j.value.text,type:j.value.type==="multiple"?"multiple":"single",options:j.value.options,selected:_.value[j.value.id]??[],solution:L.value?v.value.feedback[j.value.id]??null:null,disabled:b.value,"onUpdate:selected":c[1]||(c[1]=y=>ne(j.value.id,y))},null,8,["name","label","type","options","selected","solution","disabled"]),t("div",xs,[L.value?m("",!0):(a(),i("button",{key:0,class:"btn primary",type:"button",disabled:!(_.value[j.value.id]??[]).length||b.value,onClick:ae},"Sprawdź",8,$s)),t("button",{ref_key:"nextBtn",ref:A,class:"btn primary next",type:"button",disabled:!L.value||b.value,onClick:ie},n(ce.value),9,Cs)]),f.value?(a(),i("p",Ws,n(f.value),1)):m("",!0)])):v.value.phase==="card"&&j.value?(a(),i("div",js,[t("p",qs,n(j.value.text),1),q.value[j.value.id]?(a(),i("div",Ms,[c[10]||(c[10]=t("span",{class:"tag"},"Odpowiedź",-1)),S(" "+n(j.value.answer),1)])):(a(),i("button",{key:0,class:"reveal",type:"button",onClick:fe},"odpowiedź")),t("div",Ss,[t("button",{class:"btn yes",type:"button","aria-pressed":L.value==="y",disabled:b.value,onClick:c[2]||(c[2]=y=>Y("y"))},"Wiem!",8,Os),t("button",{class:"btn no",type:"button","aria-pressed":L.value==="n",disabled:b.value,onClick:c[3]||(c[3]=y=>Y("n"))},"Nie wiem",8,Ns),t("button",{ref_key:"nextBtn",ref:A,class:"btn primary next",type:"button",disabled:!L.value||b.value,onClick:ie},n(ce.value),9,Ts)]),f.value?(a(),i("p",Zs,n(f.value),1)):m("",!0)])):v.value.phase==="round"?(a(),i("div",Us,[t("h2",null,"Wiem "+n(v.value.roundMarks.filter(y=>y==="y").length)+" z "+n(v.value.round.length),1),c[11]||(c[11]=t("p",null,"Pytania „Nie wiem” trafiają do powtórki. Zbierzesz je przyciskiem „Zakończ”.",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.round,(y,P)=>(a(),i("li",{key:y,class:G(v.value.roundMarks[P])},[t("span",Ps,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text)+" ",1),t("small",null,n(ee(y)),1)],2))),128))]),t("div",As,[t("button",{class:"btn primary",type:"button",onClick:le},"Losuj "+n(s.value.round_size??5)+" nowych",1),t("button",{class:"btn",type:"button",onClick:K},"Zakończ")])])):(a(),i("div",Rs,[t("h2",null,"Wiem "+n(v.value.known.length)+" z "+n(v.value.answeredCount),1),t("p",null,n(v.value.missed.length?`Do powtórki: ${v.value.missed.length}.`:v.value.answeredCount?"Wszystko umiesz. Nie ma nic do powtórki.":"Nie udzielono żadnej odpowiedzi."),1),v.value.choiceScore.max>0?(a(),i("p",Ls,"Punkty za pytania wyboru: "+n(re(v.value.choiceScore.got))+" z "+n(re(v.value.choiceScore.max)),1)):m("",!0),t("div",Bs,[v.value.missed.length?(a(),i("button",{key:0,class:"btn primary",type:"button",onClick:oe},"Powtórz "+n(k(v.value.missed.length)),1)):m("",!0),t("button",{class:G(["btn",{primary:!v.value.missed.length}]),type:"button",onClick:V},"Nowa sesja",2),t("button",{class:"btn ghost",type:"button",onClick:ue},"Wróć do quizu")]),v.value.missed.length?(a(),i("div",Es,[c[12]||(c[12]=t("h3",null,"Nie wiem",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.missed,y=>(a(),i("li",{key:y,class:"n"},[t("span",Ds,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text)+" ",1),t("small",null,n(ee(y)),1)]))),128))])])):m("",!0),v.value.known.length?(a(),i("div",Is,[c[13]||(c[13]=t("h3",null,"Wiem",-1)),t("ol",null,[(a(!0),i(x,null,D(v.value.known,y=>(a(),i("li",{key:y,class:"y"},[t("span",Fs,n(v.value.cards.get(y)?.category),1),S(" "+n(v.value.cards.get(y)?.text),1)]))),128))])])):m("",!0),T.value?(a(),i("p",Qs,"Zapisano w historii: "+n(Math.round(T.value.score_points))+"/"+n(Math.round(T.value.max_points)),1)):m("",!0)]))],64)):(a(),i(x,{key:1},[s.value.description?(a(),i("p",ts,n(s.value.description),1)):m("",!0),t("section",ss,[c[6]||(c[6]=t("h2",{id:"start-h",style:{"margin-bottom":"8px"}},"Nowa sesja",-1)),t("p",as,"Rundy po "+n(s.value.round_size??5)+" losowych pytań, które jeszcze nie padły. Każdą odpowiedź zapisujemy na koncie.",1),B.value.length?(a(),i("div",ns,[t("button",{class:"chip",type:"button","aria-pressed":$.value===null,onClick:c[0]||(c[0]=y=>$.value=null)},"Wszystkie",8,is),(a(!0),i(x,null,D(B.value,([y,P])=>(a(),i("button",{key:y,class:"chip",type:"button","aria-pressed":$.value===y,onClick:ve=>$.value=y},n(y)+" · "+n(P),9,ls))),128))])):m("",!0),t("div",os,[t("button",{class:"btn primary",type:"button",disabled:J.value===0,onClick:Q},"Zacznij · "+n(k(J.value)),9,us)])]),w.value.length?(a(),i("section",rs,[c[7]||(c[7]=t("div",{class:"section-head"},[t("h2",{id:"hist-h"},"Historia podejść")],-1)),t("div",ds,[H(Ne,{attempts:w.value},null,8,["attempts"])])])):m("",!0)],64))],64)):m("",!0)]),_:1},8,["ready","error"])])}}});export{Ys as default}; diff --git a/public/assets/QuizzesView-DlBeMsNX.js b/public/assets/QuizzesView-BV_xvs6m.js similarity index 92% rename from public/assets/QuizzesView-DlBeMsNX.js rename to public/assets/QuizzesView-BV_xvs6m.js index 379e762..e11034c 100644 --- a/public/assets/QuizzesView-DlBeMsNX.js +++ b/public/assets/QuizzesView-BV_xvs6m.js @@ -1 +1 @@ -import{_ as T}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as B}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{q as x,_ as V}from"./quizzes-DciJY4wy.js";import{d as E,o as F,c as o,i as v,j,r as b,ap as M,n as s,F as u,E as z,b as l,t as c,s as Q,e as k,C as S,f as y,p as g,ag as C,x as H,l as O}from"./index-CZVUqkdk.js";const P="Inne";function R(a){const e=new Map,n=[];for(const i of a){const r=i.context?.trim()??"";if(!r){n.push(i);continue}const m=e.get(r);m?m.push(i):e.set(r,[i])}const p=[...e].sort(([i],[r])=>i.localeCompare(r,"pl",{numeric:!0})).map(([i,r])=>({label:i,quizzes:r}));return n.length&&p.push({label:P,quizzes:n}),p}function A(a){const e=a.question_types,n=[];return(e?.self_check??0)>0&&n.push("fiszki"),(e?.single??0)+(e?.multiple??0)>0&&n.push("wybór"),n}function D(a){if(a.mode!=="test")return[];const e=["Test"];return a.time_limit_seconds&&e.push(`${Math.ceil(a.time_limit_seconds/60)} min`),e.push(`próg ${String(a.passing_score).replace(".",",")}%`),a.attempts_left!==null&&a.attempts_left!==void 0&&e.push(`Pozostało podejść: ${a.attempts_left}`),e}const I=["aria-labelledby"],L={class:"section-head"},X=["id"],G={class:"stack"},J={class:"quiz-badges"},K={key:0,class:"muted small",style:{margin:"0 0 8px"}},U={class:"small",style:{margin:"0"}},W={key:1,class:"empty"},Y={key:2,class:"section","aria-labelledby":"hist-h"},Z={class:"card"},oe=E({__name:"QuizzesView",setup(a){const e=b(null),n=b([]),p=b(""),i=H(()=>R(e.value??[])),r=d=>String(Math.round(d*10)/10).replace(".",",");async function m(){p.value="";try{const[d,_]=await Promise.all([x.list(),x.attempts()]);e.value=d,n.value=_.data}catch(d){p.value=M(d)}}return F(m),(d,_)=>{const N=O("router-link");return s(),o("div",null,[v(T,{eyebrow:"Fiszki i testy",title:"Quizy"}),v(B,{ready:e.value!==null,error:p.value,onRetry:_[0]||(_[0]=h=>m())},{default:j(()=>[e.value?.length?(s(!0),o(u,{key:0},z(i.value,(h,$)=>(s(),o("section",{key:h.label,class:"section","aria-labelledby":`ctx-${$}`},[l("div",L,[l("h2",{id:`ctx-${$}`},c(h.label),9,X)]),l("div",G,[(s(!0),o(u,null,z(h.quizzes,t=>(s(),Q(N,{key:t.id,to:`/quizy/${t.slug}`,class:"card link accent"},{default:j(()=>[l("h3",null,c(t.title),1),l("div",J,[(s(!0),o(u,null,z(k(D)(t),(f,w)=>(s(),o("span",{key:`t${w}`,class:S(["badge",w===0?"alert":"warn"])},c(f),3))),128)),(s(!0),o(u,null,z(k(A)(t),f=>(s(),o("span",{key:f,class:"badge"},c(f),1))),128))]),t.description?(s(),o("p",K,c(t.description),1)):y("",!0),l("p",U,[g(c(k(C)(t.question_count,"pytanie","pytania","pytań")),1),t.round_size&&t.mode!=="test"?(s(),o(u,{key:0},[g(" · rundy po "+c(t.round_size),1)],64)):y("",!0),t.attempts_count?(s(),o(u,{key:1},[g(" · "+c(k(C)(t.attempts_count,"zakończone podejście","zakończone podejścia","zakończonych podejść")),1)],64)):y("",!0),t.best_score_percent!==null?(s(),o(u,{key:2},[g(" · najlepszy wynik "+c(r(t.best_score_percent))+"%",1)],64)):y("",!0)])]),_:2},1032,["to"]))),128))])],8,I))),128)):(s(),o("p",W,"Nie ma jeszcze żadnych quizów.")),n.value.length?(s(),o("section",Y,[_[1]||(_[1]=l("div",{class:"section-head"},[l("h2",{id:"hist-h"},"Historia podejść")],-1)),l("div",Z,[v(V,{attempts:n.value,"show-quiz":""},null,8,["attempts"])])])):y("",!0)]),_:1},8,["ready","error"])])}}});export{oe as default}; +import{_ as T}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as B}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{q as x,_ as V}from"./quizzes-BNBqkGD1.js";import{d as E,o as F,c as o,i as v,j,r as b,ap as M,n as s,F as u,E as z,b as l,t as c,s as Q,e as k,C as S,f as y,p as g,ag as C,x as H,l as O}from"./index-DyD9x5ZD.js";const P="Inne";function R(a){const e=new Map,n=[];for(const i of a){const r=i.context?.trim()??"";if(!r){n.push(i);continue}const m=e.get(r);m?m.push(i):e.set(r,[i])}const p=[...e].sort(([i],[r])=>i.localeCompare(r,"pl",{numeric:!0})).map(([i,r])=>({label:i,quizzes:r}));return n.length&&p.push({label:P,quizzes:n}),p}function A(a){const e=a.question_types,n=[];return(e?.self_check??0)>0&&n.push("fiszki"),(e?.single??0)+(e?.multiple??0)>0&&n.push("wybór"),n}function D(a){if(a.mode!=="test")return[];const e=["Test"];return a.time_limit_seconds&&e.push(`${Math.ceil(a.time_limit_seconds/60)} min`),e.push(`próg ${String(a.passing_score).replace(".",",")}%`),a.attempts_left!==null&&a.attempts_left!==void 0&&e.push(`Pozostało podejść: ${a.attempts_left}`),e}const I=["aria-labelledby"],L={class:"section-head"},X=["id"],G={class:"stack"},J={class:"quiz-badges"},K={key:0,class:"muted small",style:{margin:"0 0 8px"}},U={class:"small",style:{margin:"0"}},W={key:1,class:"empty"},Y={key:2,class:"section","aria-labelledby":"hist-h"},Z={class:"card"},oe=E({__name:"QuizzesView",setup(a){const e=b(null),n=b([]),p=b(""),i=H(()=>R(e.value??[])),r=d=>String(Math.round(d*10)/10).replace(".",",");async function m(){p.value="";try{const[d,_]=await Promise.all([x.list(),x.attempts()]);e.value=d,n.value=_.data}catch(d){p.value=M(d)}}return F(m),(d,_)=>{const N=O("router-link");return s(),o("div",null,[v(T,{eyebrow:"Fiszki i testy",title:"Quizy"}),v(B,{ready:e.value!==null,error:p.value,onRetry:_[0]||(_[0]=h=>m())},{default:j(()=>[e.value?.length?(s(!0),o(u,{key:0},z(i.value,(h,$)=>(s(),o("section",{key:h.label,class:"section","aria-labelledby":`ctx-${$}`},[l("div",L,[l("h2",{id:`ctx-${$}`},c(h.label),9,X)]),l("div",G,[(s(!0),o(u,null,z(h.quizzes,t=>(s(),Q(N,{key:t.id,to:`/quizy/${t.slug}`,class:"card link accent"},{default:j(()=>[l("h3",null,c(t.title),1),l("div",J,[(s(!0),o(u,null,z(k(D)(t),(f,w)=>(s(),o("span",{key:`t${w}`,class:S(["badge",w===0?"alert":"warn"])},c(f),3))),128)),(s(!0),o(u,null,z(k(A)(t),f=>(s(),o("span",{key:f,class:"badge"},c(f),1))),128))]),t.description?(s(),o("p",K,c(t.description),1)):y("",!0),l("p",U,[g(c(k(C)(t.question_count,"pytanie","pytania","pytań")),1),t.round_size&&t.mode!=="test"?(s(),o(u,{key:0},[g(" · rundy po "+c(t.round_size),1)],64)):y("",!0),t.attempts_count?(s(),o(u,{key:1},[g(" · "+c(k(C)(t.attempts_count,"zakończone podejście","zakończone podejścia","zakończonych podejść")),1)],64)):y("",!0),t.best_score_percent!==null?(s(),o(u,{key:2},[g(" · najlepszy wynik "+c(r(t.best_score_percent))+"%",1)],64)):y("",!0)])]),_:2},1032,["to"]))),128))])],8,I))),128)):(s(),o("p",W,"Nie ma jeszcze żadnych quizów.")),n.value.length?(s(),o("section",Y,[_[1]||(_[1]=l("div",{class:"section-head"},[l("h2",{id:"hist-h"},"Historia podejść")],-1)),l("div",Z,[v(V,{attempts:n.value,"show-quiz":""},null,8,["attempts"])])])):y("",!0)]),_:1},8,["ready","error"])])}}});export{oe as default}; diff --git a/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.js b/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.js similarity index 94% rename from public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.js rename to public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.js index 328cebd..bf2caff 100644 --- a/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.js +++ b/public/assets/ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.js @@ -1 +1 @@ -import{d as s,n,c as l,b as t,p as c,t as r,f as d,e as g,ar as m}from"./index-CZVUqkdk.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-DyD9x5ZD.js";const u=["id"],h=["checked"],k={class:"text"},b={key:0,class:"muted"},f={key:1,class:"muted mono"},y={class:"owned"},w=["checked","aria-label"],$=["href","aria-label"],B=s({__name:"ReadingItem",props:{reading:{}},emits:["toggle","own"],setup(e){return(o,a)=>(n(),l("li",{id:`lektura-${e.reading.id}`,class:"reading"},[t("label",null,[t("input",{type:"checkbox",checked:!!e.reading.read_at,onChange:a[0]||(a[0]=i=>o.$emit("toggle",i.target.checked))},null,40,h),t("span",k,[c(r(e.reading.title)+" ",1),e.reading.author||e.reading.source?(n(),l("small",b," · "+r([e.reading.author,e.reading.source].filter(Boolean).join(", ")),1)):d("",!0),e.reading.read_at?(n(),l("small",f," · przeczytano "+r(g(m)(e.reading.read_at)),1)):d("",!0)])]),t("label",y,[t("input",{type:"checkbox",checked:!!e.reading.owned_at,"aria-label":`Mam: ${e.reading.title}`,onChange:a[1]||(a[1]=i=>o.$emit("own",i.target.checked))},null,40,w),a[2]||(a[2]=t("span",null,"mam",-1))]),e.reading.url?(n(),l("a",{key:0,href:e.reading.url,target:"_blank",rel:"noopener noreferrer",class:"small","aria-label":`Otwórz: ${e.reading.title}`},"link",8,$)):d("",!0)],8,u))}});export{B as _}; diff --git a/public/assets/ReadingsView-Bsfq4m4C.js b/public/assets/ReadingsView-Bb7cutEd.js similarity index 90% rename from public/assets/ReadingsView-Bsfq4m4C.js rename to public/assets/ReadingsView-Bb7cutEd.js index f66b804..90711a0 100644 --- a/public/assets/ReadingsView-Bsfq4m4C.js +++ b/public/assets/ReadingsView-Bb7cutEd.js @@ -1 +1 @@ -import{_ as $}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.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-CZVUqkdk.js";import{u as D}from"./scrollToHash-CsDQF0uS.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-DTbBIdvR.js";import{_ as O}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js";import{_ as b}from"./ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.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-DyD9x5ZD.js";import{u as D}from"./scrollToHash-CpYt_GM6.js";const E={class:"card","aria-label":"Postęp czytania"},F={style:{margin:"0 0 8px"}},P={class:"big-num nums"},H={class:"muted"},W={class:"muted small"},A=["aria-valuenow"],G={class:"chips wrap",style:{"margin-top":"12px"}},I=["aria-pressed"],U=["aria-pressed"],J=["aria-labelledby"],K={class:"section-head"},Q=["id"],X={class:"badge",style:{"margin-left":"8px"}},Y={class:"muted small nums"},Z={class:"subhead"},ee={class:"rows"},ae={class:"subhead"},oe={class:"rows"},te={key:0,class:"empty",style:{"margin-top":"16px"}},ce=R({__name:"ReadingsView",setup(se){const s=B(),_=T(!1),p=T(!1);N(()=>{Promise.all([s.loadReadings(),s.loadCourses()])});const k=g(()=>{const y=new Map;for(const t of s.readings)y.set(t.course_id,[...y.get(t.course_id)??[],t]);const l=t=>s.courseById.get(t)?.sort_order??0;return[...y].sort(([t],[e])=>l(t)-l(e)).map(([,t])=>{const e=t.filter(a=>(!_.value||!a.read_at)&&(!p.value||a.owned_at));return{course:t[0].course,required:e.filter(a=>a.is_required),optional:e.filter(a=>!a.is_required),read:t.filter(a=>a.read_at).length,total:t.length}}).filter(t=>t.required.length+t.optional.length>0)}),w=g(()=>s.loaded.readings&&s.loaded.courses);D(w);const u=g(()=>s.readingStats),z=g(()=>u.value.requiredTotal?Math.round(u.value.requiredRead/u.value.requiredTotal*100):0);return(y,l)=>{const t=M("router-link");return n(),i("div",null,[h($,{eyebrow:"Do przeczytania",title:"Lektury"}),h(O,{ready:w.value,error:d(s).error,onRetry:l[2]||(l[2]=e=>d(s).retry())},{default:q(()=>[h(C),o("section",E,[o("p",F,[o("span",P,r(u.value.requiredRead),1),o("span",H," z "+r(u.value.requiredTotal)+" obowiązkowych",1),o("span",W," · łącznie "+r(u.value.read)+" z "+r(u.value.total),1)]),o("div",{class:"progress-bar",role:"progressbar","aria-valuenow":z.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[o("span",{style:S({width:z.value+"%"})},null,4)],8,A)]),o("div",G,[o("button",{class:"chip",type:"button","aria-pressed":_.value,onClick:l[0]||(l[0]=e=>_.value=!_.value)},"Tylko nieprzeczytane",8,I),o("button",{class:"chip",type:"button","aria-pressed":p.value,onClick:l[1]||(l[1]=e=>p.value=!p.value)},"Tylko posiadane",8,U)]),(n(!0),i(m,null,v(k.value,e=>(n(),i("section",{key:e.course.id,class:"section","aria-labelledby":`c${e.course.id}`},[o("div",K,[o("h2",{id:`c${e.course.id}`},[h(t,{to:`/przedmioty/${e.course.id}`,style:{color:"inherit","text-decoration":"none"}},{default:q(()=>[V(r(e.course.name),1)]),_:2},1032,["to"]),o("span",X,r(d(j)[e.course.form]),1)],8,Q),o("span",Y,r(e.read)+"/"+r(e.total),1)]),e.required.length?(n(),i(m,{key:0},[o("h3",Z,"Obowiązkowe · "+r(e.required.length),1),o("ul",ee,[(n(!0),i(m,null,v(e.required,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0),e.optional.length?(n(),i(m,{key:1},[o("h3",ae,"Dodatkowe · "+r(e.optional.length),1),o("ul",oe,[(n(!0),i(m,null,v(e.optional,a=>(n(),x(b,{key:a.id,reading:a,onToggle:c=>d(s).toggleReading(a.id,c),onOwn:c=>d(s).toggleOwned(a.id,c)},null,8,["reading","onToggle","onOwn"]))),128))])],64)):f("",!0)],8,J))),128)),k.value.length?f("",!0):(n(),i("p",te,r(p.value?_.value?"Wszystkie posiadane lektury przeczytane.":"Nie masz jeszcze żadnej lektury.":_.value?"Wszystko przeczytane. Gratulacje!":d(L)(0,"lektura","lektury","lektur")+" do wyświetlenia."),1))]),_:1},8,["ready","error"])])}}});export{ce as default}; diff --git a/public/assets/RegisterView-Bu382Gx7.js b/public/assets/RegisterView-CVCGVTEt.js similarity index 98% rename from public/assets/RegisterView-Bu382Gx7.js rename to public/assets/RegisterView-CVCGVTEt.js index ec3fa00..208d582 100644 --- a/public/assets/RegisterView-Bu382Gx7.js +++ b/public/assets/RegisterView-CVCGVTEt.js @@ -1 +1 @@ -import{d as q,u as N,c as o,b as s,t as n,i as _,j as g,h as j,f as u,w as d,v as m,r as l,l as B,n as i,p as x,m as C}from"./index-CZVUqkdk.js";import{f as I}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{f as I}from"./forms-rkjiDhhH.js";const M={class:"auth"},h={key:0,class:"stack"},S={class:"notice",role:"status"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},A={class:"field"},D={key:0,class:"error-text"},E={class:"field"},P={key:0,class:"error-text"},R={class:"field"},T={key:0,class:"error-text"},H={class:"field"},K={key:0,class:"error-text"},W={class:"field"},F=["disabled"],G={class:"auth-links"},Q=q({__name:"RegisterView",setup(J){const V=N(),z=C(),v=l(""),f=l(""),w=l(""),c=l(""),y=l(""),p=l(!1),t=l(null),k=l("");async function U(){p.value=!0,t.value=null;try{const r=await V.register({name:v.value.trim(),surname:f.value.trim(),email:w.value.trim(),password:c.value,password_confirmation:y.value},!0);r.signedIn?await z.replace("/"):k.value=r.message||"Konto zostało utworzone. Sprawdź pocztę, aby je aktywować."}catch(r){t.value=I(r)}finally{p.value=!1}}return(r,e)=>{const b=B("router-link");return i(),o("div",M,[e[12]||(e[12]=s("header",{class:"page-head"},[s("span",{class:"eyebrow"},"BM II° · UWr"),s("h1",null,"Załóż konto")],-1)),k.value?(i(),o("div",h,[s("p",S,n(k.value),1),_(b,{class:"btn",to:"/logowanie"},{default:g(()=>[...e[5]||(e[5]=[x("Przejdź do logowania",-1)])]),_:1})])):(i(),o("form",{key:1,onSubmit:j(U,["prevent"]),novalidate:""},[t.value?.message?(i(),o("div",Z,n(t.value.message),1)):u("",!0),s("div",A,[e[6]||(e[6]=s("label",{for:"name"},"Imię",-1)),d(s("input",{id:"name","onUpdate:modelValue":e[0]||(e[0]=a=>v.value=a),type:"text",autocomplete:"given-name",required:""},null,512),[[m,v.value]]),t.value?.fields.name?(i(),o("p",D,n(t.value.fields.name),1)):u("",!0)]),s("div",E,[e[7]||(e[7]=s("label",{for:"surname"},"Nazwisko",-1)),d(s("input",{id:"surname","onUpdate:modelValue":e[1]||(e[1]=a=>f.value=a),type:"text",autocomplete:"family-name",required:""},null,512),[[m,f.value]]),t.value?.fields.surname?(i(),o("p",P,n(t.value.fields.surname),1)):u("",!0)]),s("div",R,[e[8]||(e[8]=s("label",{for:"email"},"Adres e-mail",-1)),d(s("input",{id:"email","onUpdate:modelValue":e[2]||(e[2]=a=>w.value=a),type:"email",autocomplete:"email",inputmode:"email",required:""},null,512),[[m,w.value]]),t.value?.fields.email?(i(),o("p",T,n(t.value.fields.email),1)):u("",!0)]),s("div",H,[e[9]||(e[9]=s("label",{for:"password"},"Hasło (min. 8 znaków)",-1)),d(s("input",{id:"password","onUpdate:modelValue":e[3]||(e[3]=a=>c.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,c.value]]),t.value?.fields.password?(i(),o("p",K,n(t.value.fields.password),1)):u("",!0)]),s("div",W,[e[10]||(e[10]=s("label",{for:"confirmation"},"Powtórz hasło",-1)),d(s("input",{id:"confirmation","onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),type:"password",autocomplete:"new-password",required:""},null,512),[[m,y.value]])]),s("button",{class:"btn primary block",type:"submit",disabled:p.value},n(p.value?"Zakładanie…":"Załóż konto"),9,F)],32)),s("div",G,[_(b,{to:"/logowanie"},{default:g(()=>[...e[11]||(e[11]=[x("Mam już konto",-1)])]),_:1})])])}}});export{Q as default}; diff --git a/public/assets/ResetView-D4Tz3P51.js b/public/assets/ResetView-CffI63qy.js similarity index 97% rename from public/assets/ResetView-D4Tz3P51.js rename to public/assets/ResetView-CffI63qy.js index 3ee26b2..c9d32af 100644 --- a/public/assets/ResetView-D4Tz3P51.js +++ b/public/assets/ResetView-CffI63qy.js @@ -1 +1 @@ -import{d as _,r as t,c as a,b as o,i as g,j as x,h as V,t as m,f as v,e as q,w as c,v as f,k as z,l as N,n as l,p as h,a as B}from"./index-CZVUqkdk.js";import{f as C}from"./forms-DwSNDsNK.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-DyD9x5ZD.js";import{f as C}from"./forms-rkjiDhhH.js";const U={class:"auth"},M={key:0,class:"stack"},Z={key:0,class:"notice error",role:"alert",style:{"margin-bottom":"14px"}},j={key:1,class:"field"},D={class:"field"},E={key:0,class:"error-text"},I={class:"field"},P=["disabled"],A=_({__name:"ResetView",setup(R){const u=z(),i=t(typeof u.query.code=="string"?u.query.code:""),n=t(""),p=t(""),d=t(!1),w=t(!1),s=t(null);async function b(){d.value=!0,s.value=null;try{await B.resetPassword({code:i.value.trim(),password:n.value,password_confirmation:p.value}),w.value=!0}catch(y){s.value=C(y)}finally{d.value=!1}}return(y,e)=>{const k=N("router-link");return l(),a("div",U,[e[8]||(e[8]=o("header",{class:"page-head"},[o("span",{class:"eyebrow"},"BM II° · UWr"),o("h1",null,"Nowe hasło")],-1)),w.value?(l(),a("div",M,[e[4]||(e[4]=o("p",{class:"notice",role:"status"},"Hasło zostało zmienione.",-1)),g(k,{class:"btn primary",to:"/logowanie"},{default:x(()=>[...e[3]||(e[3]=[h("Zaloguj się",-1)])]),_:1})])):(l(),a("form",{key:1,onSubmit:V(b,["prevent"]),novalidate:""},[s.value?.message?(l(),a("div",Z,m(s.value.message),1)):v("",!0),q(u).query.code?v("",!0):(l(),a("div",j,[e[5]||(e[5]=o("label",{for:"code"},"Kod z wiadomości",-1)),c(o("input",{id:"code","onUpdate:modelValue":e[0]||(e[0]=r=>i.value=r),type:"text",autocomplete:"one-time-code",required:""},null,512),[[f,i.value]])])),o("div",D,[e[6]||(e[6]=o("label",{for:"password"},"Nowe hasło (min. 8 znaków)",-1)),c(o("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>n.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,n.value]]),s.value?.fields.password?(l(),a("p",E,m(s.value.fields.password),1)):v("",!0)]),o("div",I,[e[7]||(e[7]=o("label",{for:"confirmation"},"Powtórz hasło",-1)),c(o("input",{id:"confirmation","onUpdate:modelValue":e[2]||(e[2]=r=>p.value=r),type:"password",autocomplete:"new-password",required:""},null,512),[[f,p.value]])]),o("button",{class:"btn primary block",type:"submit",disabled:d.value||!i.value||!n.value},m(d.value?"Zapisywanie…":"Zapisz hasło"),9,P)],32))])}}});export{A as default}; diff --git a/public/assets/ScheduleView-JG7kNLpE.js b/public/assets/ScheduleView-1i8xCtdH.js similarity index 93% rename from public/assets/ScheduleView-JG7kNLpE.js rename to public/assets/ScheduleView-1i8xCtdH.js index 7db8ed8..318ae56 100644 --- a/public/assets/ScheduleView-JG7kNLpE.js +++ b/public/assets/ScheduleView-1i8xCtdH.js @@ -1 +1 @@ -import{d as F,n as s,c as t,C as B,b as o,p as N,t as l,e as r,a6 as R,i as z,j as K,ah as L,f as y,l as P,ae as T,o as I,am as Z,r as A,U as H,k as J,x as v,F as f,E as C,D as V,J as q,K as E,ag as O,s as U,m as W,y as G,I as Q}from"./index-CZVUqkdk.js";import{_ as X}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js";import{_ as Y}from"./LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js";import{_ as ee}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js";import{u as se}from"./scrollToHash-CsDQF0uS.js";const te=["id"],ne={class:"time"},ae={class:"name"},oe={class:"meta"},le={key:0},ie={key:1,class:"lecturer"},re={key:2,class:"badge online"},ue={key:3,class:"badge onsite"},ce={key:4,class:"mono"},de={key:0,class:"note"},me=F({__name:"SessionCard",props:{session:{},showDay:{}},setup(n){return(u,h)=>{const g=P("router-link");return s(),t("article",{id:`zajecia-${n.session.id}`,class:B(["session",{online:n.session.is_online}])},[o("div",ne,[N(l(r(R)(n.session.starts_at))+" ",1),o("span",null,l(r(R)(n.session.ends_at)),1)]),o("div",null,[o("div",ae,[z(g,{to:`/przedmioty/${n.session.course_id}`,style:{color:"inherit","text-decoration":"none"}},{default:K(()=>[N(l(n.session.course.name),1)]),_:1},8,["to"])]),o("div",oe,[o("span",null,l(r(L)[n.session.course.form]),1),n.session.kind?(s(),t("span",le,"· "+l(n.session.kind),1)):y("",!0),n.session.lecturer||n.session.course.lecturer?(s(),t("span",ie,"· "+l(n.session.lecturer||n.session.course.lecturer),1)):y("",!0),n.session.is_online?(s(),t("span",re,"online")):n.session.room?(s(),t("span",ue,"sala "+l(n.session.room),1)):y("",!0),n.showDay?(s(),t("span",ce,l(n.showDay),1)):y("",!0)]),n.session.notes?(s(),t("div",de,l(n.session.notes),1)):y("",!0)])],10,te)}}}),ve={"aria-label":"Wybór zjazdu"},ye={class:"chips"},be=["aria-pressed","aria-current","title","onClick"],_e=["aria-label"],he={class:"meeting-bar","aria-live":"polite"},ke={key:1,class:"badge solid"},fe={key:2,class:"badge alert"},ze={key:0,class:"notice",style:{"margin-bottom":"16px"}},ge=["aria-label"],pe={class:"day-head"},je={key:2,class:"empty"},$e={class:"btn-row",style:{"margin-top":"18px","justify-content":"space-between"}},we=["disabled"],xe=["disabled"],Ce={key:1,class:"empty"},Re=F({__name:"ScheduleView",setup(n){const u=T(),h=J(),g=W();I(()=>{Promise.all([u.loadMeetings(),u.loadSchedule(),u.loadCourses()])});const m=v(()=>u.meetings??[]),p=Z(),S=v(()=>m.value.find(a=>a.starts_on<=p&&p<=a.ends_on)??null),D=v(()=>m.value.find(a=>a.starts_on>p)??null),k=A(Number(h.query.zjazd)||null),j=v(()=>k.value??S.value?.number??D.value?.number??m.value.at(-1)?.number??null),c=v(()=>m.value.find(a=>a.number===j.value)??null),b=v(()=>m.value.findIndex(a=>a.number===j.value));function $(a){k.value=a,g.replace({query:{...h.query,zjazd:String(a)}})}H(()=>h.query.zjazd,a=>{const i=Number(a);i&&i!==k.value&&(k.value=i)});const w=v(()=>{const a=c.value;if(!a)return[];const i=new Map;for(const e of u.schedule){if(e.meeting_id!==a.id)continue;const d=G(e.starts_at);i.set(d,[...i.get(d)??[],e])}return[...i].sort(([e],[d])=>e.localeCompare(d)).map(([e,d])=>({key:e,sessions:d}))}),x=v(()=>Q(c.value?.notes)),_=a=>S.value?.number===a?"current":D.value?.number===a?"next":"",M=v(()=>u.loaded.meetings&&u.loaded.schedule&&u.loaded.courses);return se(M),(a,i)=>(s(),t("div",null,[z(X,{eyebrow:"Zjazdy",title:"Plan zajęć"}),z(Y,{ready:M.value,error:r(u).error,onRetry:i[2]||(i[2]=e=>r(u).retry())},{default:K(()=>[z(ee),o("nav",ve,[o("div",ye,[(s(!0),t(f,null,C(m.value,e=>(s(),t("button",{key:e.id,class:"chip",type:"button","aria-pressed":e.number===j.value,"aria-current":_(e.number)==="current"?"date":void 0,title:r(V)(e.starts_on,e.ends_on),onClick:d=>$(e.number)},[N(l(e.number),1),_(e.number)?(s(),t("span",{key:0,class:"dot","aria-label":_(e.number)==="current"?"trwa":"najbliższy"},null,8,_e)):y("",!0)],8,be))),128))])]),c.value?(s(),t(f,{key:0},[o("section",he,[o("h2",null,"Zjazd "+l(c.value.number),1),o("span",null,l(r(V)(c.value.starts_on,c.value.ends_on)),1),x.value?(s(),t("span",{key:0,class:B(["badge",x.value==="online"?"online":"onsite"])},l(x.value),3)):y("",!0),_(c.value.number)==="current"?(s(),t("span",ke,"trwa teraz")):_(c.value.number)==="next"?(s(),t("span",fe,"najbliższy")):y("",!0)]),r(q)(c.value.notes)?(s(),t("p",ze,l(r(q)(c.value.notes)),1)):y("",!0),w.value.length?(s(),t("div",{key:1,class:B(["days",{two:w.value.length===2}])},[(s(!0),t(f,null,C(w.value,e=>(s(),t("section",{key:e.key,"aria-label":r(E)(e.sessions[0].starts_at)},[o("div",pe,[o("span",null,l(r(E)(e.sessions[0].starts_at)),1),o("span",null,l(r(O)(e.sessions.length,"zajęcia","zajęcia","zajęć")),1)]),(s(!0),t(f,null,C(e.sessions,d=>(s(),U(me,{key:d.id,session:d},null,8,["session"]))),128))],8,ge))),128))],2)):(s(),t("p",je,"Brak zajęć w tym zjeździe (może należą do ukrytych alternatyw).")),o("div",$e,[o("button",{class:"btn small",type:"button",disabled:b.value<=0,onClick:i[0]||(i[0]=e=>$(m.value[b.value-1].number))},"← Poprzedni zjazd",8,we),o("button",{class:"btn small",type:"button",disabled:b.value<0||b.value>=m.value.length-1,onClick:i[1]||(i[1]=e=>$(m.value[b.value+1].number))},"Następny zjazd →",8,xe)])],64)):(s(),t("p",Ce,"Brak zjazdów."))]),_:1},8,["ready","error"])]))}});export{Re as default}; +import{d as F,n as s,c as t,C as B,b as o,p as N,t as l,e as r,a6 as R,i as z,j as K,ah as L,f as y,l as P,ae as T,o as I,am as Z,r as A,U as H,k as J,x as v,F as f,E as C,D as V,J as q,K as E,ag as O,s as U,m as W,y as G,I as Q}from"./index-DyD9x5ZD.js";import{_ as X}from"./PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js";import{_ as Y}from"./LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js";import{_ as ee}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js";import{u as se}from"./scrollToHash-CpYt_GM6.js";const te=["id"],ne={class:"time"},ae={class:"name"},oe={class:"meta"},le={key:0},ie={key:1,class:"lecturer"},re={key:2,class:"badge online"},ue={key:3,class:"badge onsite"},ce={key:4,class:"mono"},de={key:0,class:"note"},me=F({__name:"SessionCard",props:{session:{},showDay:{}},setup(n){return(u,h)=>{const g=P("router-link");return s(),t("article",{id:`zajecia-${n.session.id}`,class:B(["session",{online:n.session.is_online}])},[o("div",ne,[N(l(r(R)(n.session.starts_at))+" ",1),o("span",null,l(r(R)(n.session.ends_at)),1)]),o("div",null,[o("div",ae,[z(g,{to:`/przedmioty/${n.session.course_id}`,style:{color:"inherit","text-decoration":"none"}},{default:K(()=>[N(l(n.session.course.name),1)]),_:1},8,["to"])]),o("div",oe,[o("span",null,l(r(L)[n.session.course.form]),1),n.session.kind?(s(),t("span",le,"· "+l(n.session.kind),1)):y("",!0),n.session.lecturer||n.session.course.lecturer?(s(),t("span",ie,"· "+l(n.session.lecturer||n.session.course.lecturer),1)):y("",!0),n.session.is_online?(s(),t("span",re,"online")):n.session.room?(s(),t("span",ue,"sala "+l(n.session.room),1)):y("",!0),n.showDay?(s(),t("span",ce,l(n.showDay),1)):y("",!0)]),n.session.notes?(s(),t("div",de,l(n.session.notes),1)):y("",!0)])],10,te)}}}),ve={"aria-label":"Wybór zjazdu"},ye={class:"chips"},be=["aria-pressed","aria-current","title","onClick"],_e=["aria-label"],he={class:"meeting-bar","aria-live":"polite"},ke={key:1,class:"badge solid"},fe={key:2,class:"badge alert"},ze={key:0,class:"notice",style:{"margin-bottom":"16px"}},ge=["aria-label"],pe={class:"day-head"},je={key:2,class:"empty"},$e={class:"btn-row",style:{"margin-top":"18px","justify-content":"space-between"}},we=["disabled"],xe=["disabled"],Ce={key:1,class:"empty"},Re=F({__name:"ScheduleView",setup(n){const u=T(),h=J(),g=W();I(()=>{Promise.all([u.loadMeetings(),u.loadSchedule(),u.loadCourses()])});const m=v(()=>u.meetings??[]),p=Z(),S=v(()=>m.value.find(a=>a.starts_on<=p&&p<=a.ends_on)??null),D=v(()=>m.value.find(a=>a.starts_on>p)??null),k=A(Number(h.query.zjazd)||null),j=v(()=>k.value??S.value?.number??D.value?.number??m.value.at(-1)?.number??null),c=v(()=>m.value.find(a=>a.number===j.value)??null),b=v(()=>m.value.findIndex(a=>a.number===j.value));function $(a){k.value=a,g.replace({query:{...h.query,zjazd:String(a)}})}H(()=>h.query.zjazd,a=>{const i=Number(a);i&&i!==k.value&&(k.value=i)});const w=v(()=>{const a=c.value;if(!a)return[];const i=new Map;for(const e of u.schedule){if(e.meeting_id!==a.id)continue;const d=G(e.starts_at);i.set(d,[...i.get(d)??[],e])}return[...i].sort(([e],[d])=>e.localeCompare(d)).map(([e,d])=>({key:e,sessions:d}))}),x=v(()=>Q(c.value?.notes)),_=a=>S.value?.number===a?"current":D.value?.number===a?"next":"",M=v(()=>u.loaded.meetings&&u.loaded.schedule&&u.loaded.courses);return se(M),(a,i)=>(s(),t("div",null,[z(X,{eyebrow:"Zjazdy",title:"Plan zajęć"}),z(Y,{ready:M.value,error:r(u).error,onRetry:i[2]||(i[2]=e=>r(u).retry())},{default:K(()=>[z(ee),o("nav",ve,[o("div",ye,[(s(!0),t(f,null,C(m.value,e=>(s(),t("button",{key:e.id,class:"chip",type:"button","aria-pressed":e.number===j.value,"aria-current":_(e.number)==="current"?"date":void 0,title:r(V)(e.starts_on,e.ends_on),onClick:d=>$(e.number)},[N(l(e.number),1),_(e.number)?(s(),t("span",{key:0,class:"dot","aria-label":_(e.number)==="current"?"trwa":"najbliższy"},null,8,_e)):y("",!0)],8,be))),128))])]),c.value?(s(),t(f,{key:0},[o("section",he,[o("h2",null,"Zjazd "+l(c.value.number),1),o("span",null,l(r(V)(c.value.starts_on,c.value.ends_on)),1),x.value?(s(),t("span",{key:0,class:B(["badge",x.value==="online"?"online":"onsite"])},l(x.value),3)):y("",!0),_(c.value.number)==="current"?(s(),t("span",ke,"trwa teraz")):_(c.value.number)==="next"?(s(),t("span",fe,"najbliższy")):y("",!0)]),r(q)(c.value.notes)?(s(),t("p",ze,l(r(q)(c.value.notes)),1)):y("",!0),w.value.length?(s(),t("div",{key:1,class:B(["days",{two:w.value.length===2}])},[(s(!0),t(f,null,C(w.value,e=>(s(),t("section",{key:e.key,"aria-label":r(E)(e.sessions[0].starts_at)},[o("div",pe,[o("span",null,l(r(E)(e.sessions[0].starts_at)),1),o("span",null,l(r(O)(e.sessions.length,"zajęcia","zajęcia","zajęć")),1)]),(s(!0),t(f,null,C(e.sessions,d=>(s(),U(me,{key:d.id,session:d},null,8,["session"]))),128))],8,ge))),128))],2)):(s(),t("p",je,"Brak zajęć w tym zjeździe (może należą do ukrytych alternatyw).")),o("div",$e,[o("button",{class:"btn small",type:"button",disabled:b.value<=0,onClick:i[0]||(i[0]=e=>$(m.value[b.value-1].number))},"← Poprzedni zjazd",8,we),o("button",{class:"btn small",type:"button",disabled:b.value<0||b.value>=m.value.length-1,onClick:i[1]||(i[1]=e=>$(m.value[b.value+1].number))},"Następny zjazd →",8,xe)])],64)):(s(),t("p",Ce,"Brak zjazdów."))]),_:1},8,["ready","error"])]))}});export{Re as default}; diff --git a/public/assets/SpeakerTools-DseyVcDL.js b/public/assets/SpeakerTools-v93k_DDA.js similarity index 98% rename from public/assets/SpeakerTools-DseyVcDL.js rename to public/assets/SpeakerTools-v93k_DDA.js index c616064..3a6a134 100644 --- a/public/assets/SpeakerTools-DseyVcDL.js +++ b/public/assets/SpeakerTools-v93k_DDA.js @@ -1 +1 @@ -import{d as y,n as i,c as d,b as l,w as g,ax as c,C as s,t as a,p as n,f as r,F as v}from"./index-CZVUqkdk.js";const p={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},C={class:"tools-group"},j=["disabled","title"],P={class:"tools-group"},z=["aria-pressed"],m=["aria-pressed"],w=["aria-pressed"],$=["aria-pressed"],S={class:"tools-group tools-end"},F={key:0,class:"tools-pilot",role:"status",title:"Telefon steruje tą kartą"},T={key:1,class:"tools-pilot elsewhere",role:"status",title:"Kliknij tę kartę albo naciśnij klawisz, aby przejąć pilota"},f=["aria-pressed"],x=["aria-pressed"],B=["disabled"],H="Zegar ruszy przy pierwszej zmianie slajdu",k="Klik lub T: pauza · R: zeruj · C: schowaj",O=y({__name:"SpeakerTools",props:{clock:{},panel:{},special:{type:Boolean},hasSpecial:{type:Boolean},fullscreenEnabled:{type:Boolean},fullscreenOn:{type:Boolean},toolbarHidden:{type:Boolean},togglePanel:{type:Function},toggleSpecial:{type:Function},toggleToolbar:{type:Function},toggleFullscreen:{type:Function},light:{type:Boolean},toggleScheme:{type:Function},exportPptx:{type:Function},exporting:{type:Boolean},pilot:{}},emits:["pause","reset","toggleHidden","close"],setup(e,{emit:b}){const u=b;return(Z,t)=>(i(),d(v,null,[e.toolbarHidden?r("",!0):(i(),d("div",p,[l("div",C,[g(l("button",{id:"speaker-clock",type:"button",class:s(["docked",{paused:e.clock.paused}]),title:k,"aria-label":"Zegar prelegenta",onClick:t[0]||(t[0]=o=>u("pause"))},[t[15]||(t[15]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[16]||(t[16]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2),[[c,!e.clock.hidden]]),l("button",{type:"button","aria-keyshortcuts":"T",disabled:e.clock.idle,title:e.clock.idle?H:void 0,onClick:t[1]||(t[1]=o=>u("pause"))},[n(a(e.clock.paused?"Wznów":"Pauza")+" ",1),t[17]||(t[17]=l("kbd",null,"T",-1))],8,j),l("button",{type:"button","aria-keyshortcuts":"R",onClick:t[2]||(t[2]=o=>u("reset"))},[...t[18]||(t[18]=[n(" Zeruj ",-1),l("kbd",null,"R",-1)])]),l("button",{type:"button","aria-keyshortcuts":"C",onClick:t[3]||(t[3]=o=>u("toggleHidden"))},[n(a(e.clock.hidden?"Pokaż zegar":"Ukryj zegar")+" ",1),t[19]||(t[19]=l("kbd",null,"C",-1))])]),l("div",P,[l("button",{type:"button","aria-pressed":e.panel==="say","aria-keyshortcuts":"P",onClick:t[4]||(t[4]=o=>e.togglePanel("say"))},[...t[20]||(t[20]=[n(" Powiedz ",-1),l("kbd",null,"P",-1)])],8,z),l("button",{type:"button","aria-pressed":e.panel==="notes","aria-keyshortcuts":"N",onClick:t[5]||(t[5]=o=>e.togglePanel("notes"))},[...t[21]||(t[21]=[n(" Notatki ",-1),l("kbd",null,"N",-1)])],8,m),l("button",{type:"button","aria-pressed":e.panel==="srcs","aria-keyshortcuts":"Z",onClick:t[6]||(t[6]=o=>e.togglePanel("srcs"))},[...t[22]||(t[22]=[n(" Źródła ",-1),l("kbd",null,"Z",-1)])],8,w),l("button",{type:"button",class:s(["tool-s",{unavailable:!e.hasSpecial}]),"aria-pressed":e.special,"aria-keyshortcuts":"S",onClick:t[7]||(t[7]=o=>e.toggleSpecial())},[...t[23]||(t[23]=[n(" Slajd specjalny ",-1),l("kbd",null,"S",-1)])],10,$)]),l("div",S,[e.pilot==="active"?(i(),d("span",F,[...t[24]||(t[24]=[l("i",{class:"tools-pilot-dot","aria-hidden":"true"},null,-1),n("Pilot",-1)])])):e.pilot==="elsewhere"?(i(),d("span",T,"Pilot steruje inną kartą")):r("",!0),l("button",{type:"button","aria-pressed":e.light,"aria-keyshortcuts":"J",onClick:t[8]||(t[8]=o=>e.toggleScheme())},[...t[25]||(t[25]=[n(" Jasny ",-1),l("kbd",null,"J",-1)])],8,f),e.fullscreenEnabled?(i(),d("button",{key:2,type:"button","aria-pressed":e.fullscreenOn,"aria-keyshortcuts":"F",onClick:t[9]||(t[9]=o=>e.toggleFullscreen())},[...t[26]||(t[26]=[n(" Pełny ekran ",-1),l("kbd",null,"F",-1)])],8,x)):r("",!0),l("button",{type:"button",disabled:e.exporting,title:"Pobierz jako PowerPoint: slajd jako obraz, Powiedz i notatki w notatkach prelegenta",onClick:t[10]||(t[10]=o=>e.exportPptx())}," PPTX ",8,B),l("button",{type:"button","aria-keyshortcuts":"H",onClick:t[11]||(t[11]=o=>e.toggleToolbar())},[...t[27]||(t[27]=[n(" Ukryj pasek ",-1),l("kbd",null,"H",-1)])]),l("button",{type:"button",onClick:t[12]||(t[12]=o=>u("close"))},"Zamknij")])])),e.toolbarHidden&&!e.clock.hidden?(i(),d("button",{key:1,id:"speaker-clock",type:"button",class:s(["floating",{paused:e.clock.paused}]),title:k,"aria-label":"Zegar prelegenta",onClick:t[13]||(t[13]=o=>u("pause"))},[t[28]||(t[28]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[29]||(t[29]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2)):r("",!0),e.toolbarHidden?(i(),d("button",{key:2,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:t[14]||(t[14]=o=>e.toggleToolbar())},[...t[30]||(t[30]=[n(" Pokaż pasek ",-1),l("kbd",null,"H",-1)])])):r("",!0)],64))}});export{O as default}; +import{d as y,n as i,c as d,b as l,w as g,ax as c,C as s,t as a,p as n,f as r,F as v}from"./index-DyD9x5ZD.js";const p={key:0,class:"tools",role:"group","aria-label":"Sterowanie prezentacją"},C={class:"tools-group"},j=["disabled","title"],P={class:"tools-group"},z=["aria-pressed"],m=["aria-pressed"],w=["aria-pressed"],$=["aria-pressed"],S={class:"tools-group tools-end"},F={key:0,class:"tools-pilot",role:"status",title:"Telefon steruje tą kartą"},T={key:1,class:"tools-pilot elsewhere",role:"status",title:"Kliknij tę kartę albo naciśnij klawisz, aby przejąć pilota"},f=["aria-pressed"],x=["aria-pressed"],B=["disabled"],H="Zegar ruszy przy pierwszej zmianie slajdu",k="Klik lub T: pauza · R: zeruj · C: schowaj",O=y({__name:"SpeakerTools",props:{clock:{},panel:{},special:{type:Boolean},hasSpecial:{type:Boolean},fullscreenEnabled:{type:Boolean},fullscreenOn:{type:Boolean},toolbarHidden:{type:Boolean},togglePanel:{type:Function},toggleSpecial:{type:Function},toggleToolbar:{type:Function},toggleFullscreen:{type:Function},light:{type:Boolean},toggleScheme:{type:Function},exportPptx:{type:Function},exporting:{type:Boolean},pilot:{}},emits:["pause","reset","toggleHidden","close"],setup(e,{emit:b}){const u=b;return(Z,t)=>(i(),d(v,null,[e.toolbarHidden?r("",!0):(i(),d("div",p,[l("div",C,[g(l("button",{id:"speaker-clock",type:"button",class:s(["docked",{paused:e.clock.paused}]),title:k,"aria-label":"Zegar prelegenta",onClick:t[0]||(t[0]=o=>u("pause"))},[t[15]||(t[15]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[16]||(t[16]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2),[[c,!e.clock.hidden]]),l("button",{type:"button","aria-keyshortcuts":"T",disabled:e.clock.idle,title:e.clock.idle?H:void 0,onClick:t[1]||(t[1]=o=>u("pause"))},[n(a(e.clock.paused?"Wznów":"Pauza")+" ",1),t[17]||(t[17]=l("kbd",null,"T",-1))],8,j),l("button",{type:"button","aria-keyshortcuts":"R",onClick:t[2]||(t[2]=o=>u("reset"))},[...t[18]||(t[18]=[n(" Zeruj ",-1),l("kbd",null,"R",-1)])]),l("button",{type:"button","aria-keyshortcuts":"C",onClick:t[3]||(t[3]=o=>u("toggleHidden"))},[n(a(e.clock.hidden?"Pokaż zegar":"Ukryj zegar")+" ",1),t[19]||(t[19]=l("kbd",null,"C",-1))])]),l("div",P,[l("button",{type:"button","aria-pressed":e.panel==="say","aria-keyshortcuts":"P",onClick:t[4]||(t[4]=o=>e.togglePanel("say"))},[...t[20]||(t[20]=[n(" Powiedz ",-1),l("kbd",null,"P",-1)])],8,z),l("button",{type:"button","aria-pressed":e.panel==="notes","aria-keyshortcuts":"N",onClick:t[5]||(t[5]=o=>e.togglePanel("notes"))},[...t[21]||(t[21]=[n(" Notatki ",-1),l("kbd",null,"N",-1)])],8,m),l("button",{type:"button","aria-pressed":e.panel==="srcs","aria-keyshortcuts":"Z",onClick:t[6]||(t[6]=o=>e.togglePanel("srcs"))},[...t[22]||(t[22]=[n(" Źródła ",-1),l("kbd",null,"Z",-1)])],8,w),l("button",{type:"button",class:s(["tool-s",{unavailable:!e.hasSpecial}]),"aria-pressed":e.special,"aria-keyshortcuts":"S",onClick:t[7]||(t[7]=o=>e.toggleSpecial())},[...t[23]||(t[23]=[n(" Slajd specjalny ",-1),l("kbd",null,"S",-1)])],10,$)]),l("div",S,[e.pilot==="active"?(i(),d("span",F,[...t[24]||(t[24]=[l("i",{class:"tools-pilot-dot","aria-hidden":"true"},null,-1),n("Pilot",-1)])])):e.pilot==="elsewhere"?(i(),d("span",T,"Pilot steruje inną kartą")):r("",!0),l("button",{type:"button","aria-pressed":e.light,"aria-keyshortcuts":"J",onClick:t[8]||(t[8]=o=>e.toggleScheme())},[...t[25]||(t[25]=[n(" Jasny ",-1),l("kbd",null,"J",-1)])],8,f),e.fullscreenEnabled?(i(),d("button",{key:2,type:"button","aria-pressed":e.fullscreenOn,"aria-keyshortcuts":"F",onClick:t[9]||(t[9]=o=>e.toggleFullscreen())},[...t[26]||(t[26]=[n(" Pełny ekran ",-1),l("kbd",null,"F",-1)])],8,x)):r("",!0),l("button",{type:"button",disabled:e.exporting,title:"Pobierz jako PowerPoint: slajd jako obraz, Powiedz i notatki w notatkach prelegenta",onClick:t[10]||(t[10]=o=>e.exportPptx())}," PPTX ",8,B),l("button",{type:"button","aria-keyshortcuts":"H",onClick:t[11]||(t[11]=o=>e.toggleToolbar())},[...t[27]||(t[27]=[n(" Ukryj pasek ",-1),l("kbd",null,"H",-1)])]),l("button",{type:"button",onClick:t[12]||(t[12]=o=>u("close"))},"Zamknij")])])),e.toolbarHidden&&!e.clock.hidden?(i(),d("button",{key:1,id:"speaker-clock",type:"button",class:s(["floating",{paused:e.clock.paused}]),title:k,"aria-label":"Zegar prelegenta",onClick:t[13]||(t[13]=o=>u("pause"))},[t[28]||(t[28]=l("span",null,"slajd",-1)),l("b",{class:s(["clk-slide",{over:e.clock.slideOver}])},a(e.clock.slide),3),t[29]||(t[29]=l("span",null,"całość",-1)),l("b",{class:s(["clk-total",{over:e.clock.totalOver}])},a(e.clock.total),3),l("span",{class:s(["clk-pace",{late:e.clock.late}])},a(e.clock.pace),3)],2)):r("",!0),e.toolbarHidden?(i(),d("button",{key:2,type:"button",class:"tools-show","aria-keyshortcuts":"H",onClick:t[14]||(t[14]=o=>e.toggleToolbar())},[...t[30]||(t[30]=[n(" Pokaż pasek ",-1),l("kbd",null,"H",-1)])])):r("",!0)],64))}});export{O as default}; diff --git a/public/assets/SyllabiView-BRHlp3TI.js b/public/assets/SyllabiView-BYyGecM1.js similarity index 94% rename from public/assets/SyllabiView-BRHlp3TI.js rename to public/assets/SyllabiView-BYyGecM1.js index ccfe352..d52c421 100644 --- a/public/assets/SyllabiView-BRHlp3TI.js +++ b/public/assets/SyllabiView-BYyGecM1.js @@ -1 +1 @@ -import{_ as c}from"./PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.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-CZVUqkdk.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-DTbBIdvR.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-DyD9x5ZD.js";const B=[{file:"sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-AW-PL.pdf",size:50255},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-GR-PL.pdf",size:57715},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-KWP-PL.pdf",size:51902},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-PHT-PL.pdf",size:58646},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-TMNB-PL.pdf",size:75386},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WBM-PL.pdf",size:64288},{file:"sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",url:"/sylabusy/sylabus_2026_27-Z_26-BM-Z2-E01-WKM-PL.pdf",size:55064}],P={key:0,class:"stack"},E=["href","download"],L={class:"row-main"},h={class:"muted small",style:{margin:"0"}},z={key:0},k={key:1},w={key:1,class:"empty"},v=y({__name:"SyllabiView",setup(W){const u=p();f(()=>{u.loadCourses()});const r=/^sylabus_(\d{4})_(\d{2})-([ZL])_(.+?)-([A-Z]{2})\.pdf$/i,d=M(()=>{const o=new Map;for(const e of u.courses??[])e.code&&!o.has(e.code)&&o.set(e.code,e.name);return B.map(e=>{const s=r.exec(e.file),_=s?.[4]??null;return{...e,code:_,title:_&&o.get(_)||_||e.file,term:s?`${s[1]}/${s[2]} · ${s[3].toUpperCase()==="Z"?"zima":"lato"}`:"",kb:Math.max(1,Math.round(e.size/1024))}}).sort((e,s)=>e.title.localeCompare(s.title,"pl"))});return(o,e)=>(l(),a("div",null,[b(c,{eyebrow:"Karty przedmiotów z USOS",title:"Sylabusy"}),d.value.length?(l(),a("div",P,[(l(!0),a(m,null,Z(d.value,s=>(l(),a("a",{key:s.file,href:s.url,download:s.file,class:"card link"},[t("div",L,[t("h3",null,i(s.title),1),e[0]||(e[0]=t("span",{class:"badge"},"PDF",-1))]),t("p",h,[s.code?(l(),a("span",z,i(s.code),1)):n("",!0),s.term?(l(),a("span",k," · "+i(s.term),1)):n("",!0),t("span",null," · "+i(s.kb)+" KB",1)])],8,E))),128))])):(l(),a("p",w,"Nie ma jeszcze żadnych sylabusów."))]))}});export{v as default}; diff --git a/public/assets/forms-DwSNDsNK.js b/public/assets/forms-rkjiDhhH.js similarity index 85% rename from public/assets/forms-DwSNDsNK.js rename to public/assets/forms-rkjiDhhH.js index 1d1e26b..aedde30 100644 --- a/public/assets/forms-DwSNDsNK.js +++ b/public/assets/forms-rkjiDhhH.js @@ -1 +1 @@ -import{A as o}from"./index-CZVUqkdk.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-DyD9x5ZD.js";function a(s){if(s instanceof o){const e={};for(const[r,t]of Object.entries(s.errors))t.length&&(e[r]=t[0]);return{message:Object.keys(e).length&&Object.values(e).includes(s.message)?"":s.message,fields:e}}return{message:"Coś poszło nie tak. Spróbuj ponownie.",fields:{}}}function f(s){return typeof s=="string"&&s.startsWith("/")&&!s.startsWith("//")&&!s.startsWith("/\\")?s:"/"}export{a as f,f as s}; diff --git a/public/assets/index-CZVUqkdk.js b/public/assets/index-DyD9x5ZD.js similarity index 97% rename from public/assets/index-CZVUqkdk.js rename to public/assets/index-DyD9x5ZD.js index 38ac16e..73e74cd 100644 --- a/public/assets/index-CZVUqkdk.js +++ b/public/assets/index-DyD9x5ZD.js @@ -1,7 +1,7 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-BjmNoGNs.js","assets/forms-DwSNDsNK.js","assets/oauth-zzthF4BZ.js","assets/RegisterView-Bu382Gx7.js","assets/ForgotView-BBRR0ZKl.js","assets/OAuthCallbackView-BWe1IsQj.js","assets/OAuthRegisterView-CNQe9Gcp.js","assets/ResetView-D4Tz3P51.js","assets/DashboardView-C6q1Zjsy.js","assets/PageHead.vue_vue_type_script_setup_true_lang-BQLlYDAR.js","assets/LoadState.vue_vue_type_script_setup_true_lang-BSlycb4Y.js","assets/ElectiveBar.vue_vue_type_script_setup_true_lang-Booj-Cpl.js","assets/safeText-O-oWGdGq.js","assets/tabs-nNm7HGNT.js","assets/ScheduleView-JG7kNLpE.js","assets/scrollToHash-CsDQF0uS.js","assets/DeadlinesView--mYtpzV1.js","assets/CoursesView-BpOD1b5y.js","assets/CourseView-rxCXe-gk.js","assets/ReadingItem.vue_vue_type_script_setup_true_lang-C5hxVTLM.js","assets/ReadingsView-Bsfq4m4C.js","assets/MaterialsView-CeIBNy86.js","assets/materialListCache-DQPoPhVA.js","assets/materialPins-CTQ_1quC.js","assets/MaterialView-B3T6rMpS.js","assets/markdown-B8hp6mJg.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dc8Bp8YV.js","assets/MaterialEditView-BFeHImy8.js","assets/ChecklistsView-BsRke9w6.js","assets/ChecklistView-BTFCZ9eO.js","assets/presentations-BgohxBTm.js","assets/SyllabiView-BRHlp3TI.js","assets/QuizzesView-DlBeMsNX.js","assets/quizzes-DciJY4wy.js","assets/QuizView-61Odcs-7.js","assets/MoreView-Cc2MNn9g.js","assets/ProfileView-C8ZTXew3.js","assets/MyPresentationsView-4KJTEzu1.js","assets/PresentationSpeakerView-DYlbz4sc.js","assets/DeckViewer.vue_vue_type_style_index_0_lang-gKMDKlt7.js","assets/engine-DDeQk6Ow.js","assets/engine-D54I7Duj.css","assets/DeckViewer-44NpA3H-.css","assets/clock-4r1aA6KU.js","assets/remote-aOKX75Mt.js","assets/PresentationSpeakerView-B_k_BZvQ.css","assets/PresentationRemoteView-DQfzMTCG.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/log-Xlt5jeld.js","assets/PresentationRemoteView-DupVcsnc.css","assets/PresentationPublicView-TcqELTt_.js","assets/PresentationPublicView-BA_OfOyJ.css","assets/CastReceiverView-oqPPp8eq.js","assets/CastReceiverView-guIBZout.css","assets/NotFoundView-706jG-LC.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-BErNRSBU.js","assets/forms-rkjiDhhH.js","assets/oauth-zzthF4BZ.js","assets/RegisterView-CVCGVTEt.js","assets/ForgotView-DCuuDBAB.js","assets/OAuthCallbackView-lHRQhTi5.js","assets/OAuthRegisterView-yORkBNst.js","assets/ResetView-CffI63qy.js","assets/DashboardView-BDdrGOAV.js","assets/PageHead.vue_vue_type_script_setup_true_lang-DTbBIdvR.js","assets/LoadState.vue_vue_type_script_setup_true_lang-DdBa8KzH.js","assets/ElectiveBar.vue_vue_type_script_setup_true_lang-OtCcR0CJ.js","assets/safeText-O-oWGdGq.js","assets/tabs-nNm7HGNT.js","assets/ScheduleView-1i8xCtdH.js","assets/scrollToHash-CpYt_GM6.js","assets/DeadlinesView-DQ1eOrvn.js","assets/CoursesView-Xix5tx0p.js","assets/CourseView-BfjIcRZN.js","assets/ReadingItem.vue_vue_type_script_setup_true_lang-DShS7pYh.js","assets/ReadingsView-Bb7cutEd.js","assets/MaterialsView-BFDVD5Qm.js","assets/materialListCache-Do2aYQaO.js","assets/materialPins-CTQ_1quC.js","assets/MaterialView-CMEk1fcU.js","assets/markdown-CvqroLZD.js","assets/ConfirmDialog.vue_vue_type_script_setup_true_lang-BSqb_d6d.js","assets/MaterialEditView-DNeVFjle.js","assets/ChecklistsView-DAQUw-rC.js","assets/ChecklistView-BXIfnhpC.js","assets/presentations-CZ3vmyJx.js","assets/SyllabiView-BYyGecM1.js","assets/QuizzesView-BV_xvs6m.js","assets/quizzes-BNBqkGD1.js","assets/QuizView-CXf3PymX.js","assets/MoreView-99Lj73EB.js","assets/ProfileView-BOwV9hN-.js","assets/MyPresentationsView-BzDdE1gL.js","assets/PresentationSpeakerView-CoTPvDZa.js","assets/DeckViewer.vue_vue_type_style_index_0_lang-9hs4kUkW.js","assets/engine-DDeQk6Ow.js","assets/engine-D54I7Duj.css","assets/DeckViewer-44NpA3H-.css","assets/clock-4r1aA6KU.js","assets/remote-aOKX75Mt.js","assets/PresentationSpeakerView-B_k_BZvQ.css","assets/PresentationRemoteView-DMNivM_-.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/log-Xlt5jeld.js","assets/PresentationRemoteView-DupVcsnc.css","assets/PresentationPublicView-BiFFJw7H.js","assets/PresentationPublicView-BA_OfOyJ.css","assets/CastReceiverView-CkfJy-8z.js","assets/CastReceiverView-guIBZout.css","assets/NotFoundView-DIWF_u8U.js"])))=>i.map(i=>d[i]); var hu=Object.defineProperty;var pu=(e,t,n)=>t in e?hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var cn=(e,t,n)=>pu(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function xi(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const we={},gn=[],xt=()=>{},Oa=()=>!1,sr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),rr=e=>e.startsWith("onUpdate:"),Be=Object.assign,Oi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mu=Object.prototype.hasOwnProperty,_e=(e,t)=>mu.call(e,t),Z=Array.isArray,sn=e=>_s(e)==="[object Map]",Bt=e=>_s(e)==="[object Set]",fo=e=>_s(e)==="[object Date]",se=e=>typeof e=="function",Pe=e=>typeof e=="string",ct=e=>typeof e=="symbol",be=e=>e!==null&&typeof e=="object",Pa=e=>(be(e)||se(e))&&se(e.then)&&se(e.catch),ka=Object.prototype.toString,_s=e=>ka.call(e),gu=e=>_s(e).slice(8,-1),Ia=e=>_s(e)==="[object Object]",ir=e=>Pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ts=xi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),or=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},yu=/-\w/g,nt=or(e=>e.replace(yu,t=>t.slice(1).toUpperCase())),vu=/\B([A-Z])/g,an=or(e=>e.replace(vu,"-$1").toLowerCase()),ar=or(e=>e.charAt(0).toUpperCase()+e.slice(1)),Lr=or(e=>e?`on${ar(e)}`:""),At=(e,t)=>!Object.is(e,t),Vs=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},lr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ho;const cr=()=>ho||(ho=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Pi(e){if(Z(e)){const t={};for(let n=0;nn.startsWith("/*")?"":n).split(_u).forEach(n=>{if(n){const s=n.split(bu);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Dn(e){let t="";if(Pe(e))t=e;else if(Z(e))for(let n=0;nqt(n,t))}const Na=e=>!!(e&&e.__v_isRef===!0),Jt=e=>Pe(e)?e:e==null?"":Z(e)||be(e)&&(e.toString===ka||!se(e.toString))?Na(e)?Jt(e.value):JSON.stringify(e,$a,2):String(e),$a=(e,t)=>Na(t)?$a(e,t.value):sn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Dr(s,i)+" =>"]=r,n),{})}:Bt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Dr(n))}:ct(t)?Dr(t):be(t)&&!Z(t)&&!Ia(t)?String(t):t,Dr=(e,t="")=>{var n;return ct(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ve;class ja{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ve&&(Ve.active?(this.parent=Ve,this.index=(Ve.scopes||(Ve.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(Ve===this)Ve=this.prevScope;else{let t=Ve;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(ss){let t=ss;for(ss=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;ns;){let t=ns;for(ns=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Ua(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ha(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),Di(s),Cu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function ni(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ka(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ka(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===cs)||(e.globalVersion=cs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ni(e))))return;e.flags|=2;const t=e.dep,n=Re,s=pt;Re=e,pt=!0;try{Ua(e);const r=e.fn(e._value);(t.version===0||At(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Re=n,pt=s,Ha(e),e.flags&=-3}}function Di(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Di(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Cu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let pt=!0;const Wa=[];function Ut(){Wa.push(pt),pt=!1}function Ht(){const e=Wa.pop();pt=e===void 0?!0:e}function go(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Re;Re=void 0;try{t()}finally{Re=n}}}let cs=0;class xu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ni{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Re||!pt||Re===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Re)n=this.activeLink=new xu(Re,this),Re.deps?(n.prevDep=Re.depsTail,Re.depsTail.nextDep=n,Re.depsTail=n):Re.deps=Re.depsTail=n,Ga(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Re.depsTail,n.nextDep=void 0,Re.depsTail.nextDep=n,Re.depsTail=n,Re.deps===n&&(Re.deps=s)}return n}trigger(t){this.version++,cs++,this.notify(t)}notify(t){Ii();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Li()}}}function Ga(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ga(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Hs=new WeakMap,_n=Symbol(""),si=Symbol(""),us=Symbol("");function Ge(e,t,n){if(pt&&Re){let s=Hs.get(e);s||Hs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new Ni),r.map=s,r.key=n),r.track()}}function jt(e,t,n,s,r,i){const o=Hs.get(e);if(!o){cs++;return}const a=l=>{l&&l.trigger()};if(Ii(),t==="clear")o.forEach(a);else{const l=Z(e),c=l&&ir(n);if(l&&n==="length"){const u=Number(s);o.forEach((f,p)=>{(p==="length"||p===us||!ct(p)&&p>=u)&&a(f)})}else switch((n!==void 0||o.has(void 0))&&a(o.get(n)),c&&a(o.get(us)),t){case"add":l?c&&a(o.get("length")):(a(o.get(_n)),sn(e)&&a(o.get(si)));break;case"delete":l||(a(o.get(_n)),sn(e)&&a(o.get(si)));break;case"set":sn(e)&&a(o.get(_n));break}}Li()}function Ou(e,t){const n=Hs.get(e);return n&&n.get(t)}function Mn(e){const t=he(e);return t===e||(Ge(t,"iterate",us),at(e))?t:Pt(e)?Ot(e)?t.map(n=>on(ht(n))):t.map(on):t.map(ht)}function ur(e){return Ge(e=he(e),"iterate",us),e}function Tt(e,t){return Pt(e)?on(Ot(e)?ht(t):t):ht(t)}const Pu={__proto__:null,[Symbol.iterator](){return $r(this,Symbol.iterator,e=>Tt(this,e))},concat(...e){return Mn(this).concat(...e.map(t=>Z(t)?Mn(t):t))},entries(){return $r(this,"entries",e=>(e[1]=Tt(this,e[1]),e))},every(e,t){return It(this,"every",e,t,void 0,arguments)},filter(e,t){return It(this,"filter",e,t,n=>n.map(s=>Tt(this,s)),arguments)},find(e,t){return It(this,"find",e,t,n=>Tt(this,n),arguments)},findIndex(e,t){return It(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return It(this,"findLast",e,t,n=>Tt(this,n),arguments)},findLastIndex(e,t){return It(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return It(this,"forEach",e,t,void 0,arguments)},includes(...e){return jr(this,"includes",e)},indexOf(...e){return jr(this,"indexOf",e)},join(e){return Mn(this).join(e)},lastIndexOf(...e){return jr(this,"lastIndexOf",e)},map(e,t){return It(this,"map",e,t,void 0,arguments)},pop(){return Wn(this,"pop")},push(...e){return Wn(this,"push",e)},reduce(e,...t){return yo(this,"reduce",e,t)},reduceRight(e,...t){return yo(this,"reduceRight",e,t)},shift(){return Wn(this,"shift")},some(e,t){return It(this,"some",e,t,void 0,arguments)},splice(...e){return Wn(this,"splice",e)},toReversed(){return Mn(this).toReversed()},toSorted(e){return Mn(this).toSorted(e)},toSpliced(...e){return Mn(this).toSpliced(...e)},unshift(...e){return Wn(this,"unshift",e)},values(){return $r(this,"values",e=>Tt(this,e))}};function $r(e,t,n){const s=ur(e),r=s[t]();return s!==e&&!at(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.done||(i.value=n(i.value)),i}),r}const ku=Array.prototype;function It(e,t,n,s,r,i){const o=ur(e),a=o!==e&&!at(e),l=o[t];if(l!==ku[t]){const f=l.apply(e,i);return a?ht(f):f}let c=n;o!==e&&(a?c=function(f,p){return n.call(this,Tt(e,f),p,e)}:n.length>2&&(c=function(f,p){return n.call(this,f,p,e)}));const u=l.call(o,c,s);return a&&r?r(u):u}function yo(e,t,n,s){const r=ur(e),i=r!==e&&!at(e);let o=n,a=!1;r!==e&&(i?(a=s.length===0,o=function(c,u,f){return a&&(a=!1,c=Tt(e,c)),n.call(this,c,Tt(e,u),f,e)}):n.length>3&&(o=function(c,u,f){return n.call(this,c,u,f,e)}));const l=r[t](o,...s);return a?Tt(e,l):l}function jr(e,t,n){const s=he(e);Ge(s,"iterate",us);const r=s[t](...n);return(r===-1||r===!1)&&fr(n[0])?(n[0]=he(n[0]),s[t](...n)):r}function Wn(e,t,n=[]){Ut(),Ii();const s=he(e)[t].apply(e,n);return Li(),Ht(),s}const Iu=xi("__proto__,__v_isRef,__isVue"),Ja=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ct));function Lu(e){ct(e)||(e=String(e));const t=he(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class Ya{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Uu:el:i?Xa:Qa).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=Z(t);if(!r){let l;if(o&&(l=Pu[n]))return l;if(n==="hasOwnProperty")return Lu}const a=Reflect.get(t,n,De(t)?t:s);if((ct(n)?Ja.has(n):Iu(n))||(r||Ge(t,"get",n),i))return a;if(De(a)){const l=o&&ir(n)?a:a.value;return r&&be(l)?ii(l):l}return be(a)?r?ii(a):bs(a):a}}class Za extends Ya{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];const o=Z(t)&&ir(n);if(!this._isShallow){const c=Pt(i);if(!at(s)&&!Pt(s)&&(i=he(i),s=he(s)),!o&&De(i)&&!De(s))return c||(i.value=s),!0}const a=o?Number(n)e,Os=e=>Reflect.getPrototypeOf(e);function zu(e,t,n){return function(...s){const r=this.__v_raw,i=he(r),o=sn(i),a=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,c=r[e](...s),u=n?ri:t?on:ht;return!t&&Ge(i,"iterate",l?si:_n),Be(Object.create(c),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:a?[u(f[0]),u(f[1])]:u(f),done:p}}})}}function Ps(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Vu(e,t){const n={get(r){const i=this.__v_raw,o=he(i),a=he(r);e||(At(r,a)&&Ge(o,"get",r),Ge(o,"get",a));const{has:l}=Os(o),c=t?ri:e?on:ht;if(l.call(o,r))return c(i.get(r));if(l.call(o,a))return c(i.get(a));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Ge(he(r),"iterate",_n),r.size},has(r){const i=this.__v_raw,o=he(i),a=he(r);return e||(At(r,a)&&Ge(o,"has",r),Ge(o,"has",a)),r===a?i.has(r):i.has(r)||i.has(a)},forEach(r,i){const o=this,a=o.__v_raw,l=he(a),c=t?ri:e?on:ht;return!e&&Ge(l,"iterate",_n),a.forEach((u,f)=>r.call(i,c(u),c(f),o))}};return Be(n,e?{add:Ps("add"),set:Ps("set"),delete:Ps("delete"),clear:Ps("clear")}:{add(r){const i=he(this),o=Os(i),a=he(r),l=!t&&!at(r)&&!Pt(r)?a:r;return o.has.call(i,l)||At(r,l)&&o.has.call(i,r)||At(a,l)&&o.has.call(i,a)||(i.add(l),jt(i,"add",l,l)),this},set(r,i){!t&&!at(i)&&!Pt(i)&&(i=he(i));const o=he(this),{has:a,get:l}=Os(o);let c=a.call(o,r);c||(r=he(r),c=a.call(o,r));const u=l.call(o,r);return o.set(r,i),c?At(i,u)&&jt(o,"set",r,i):jt(o,"add",r,i),this},delete(r){const i=he(this),{has:o,get:a}=Os(i);let l=o.call(i,r);l||(r=he(r),l=o.call(i,r)),a&&a.call(i,r);const c=i.delete(r);return l&&jt(i,"delete",r,void 0),c},clear(){const r=he(this),i=r.size!==0,o=r.clear();return i&&jt(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=zu(r,e,t)}),n}function $i(e,t){const n=Vu(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(_e(n,r)&&r in s?n:s,r,i)}const Fu={get:$i(!1,!1)},Bu={get:$i(!1,!0)},qu={get:$i(!0,!1)};const Qa=new WeakMap,Xa=new WeakMap,el=new WeakMap,Uu=new WeakMap;function Hu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function bs(e){return Pt(e)?e:ji(e,!1,Nu,Fu,Qa)}function tl(e){return ji(e,!1,ju,Bu,Xa)}function ii(e){return ji(e,!0,$u,qu,el)}function ji(e,t,n,s,r){if(!be(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const o=Hu(gu(e));if(o===0)return e;const a=new Proxy(e,o===2?s:n);return r.set(e,a),a}function Ot(e){return Pt(e)?Ot(e.__v_raw):!!(e&&e.__v_isReactive)}function Pt(e){return!!(e&&e.__v_isReadonly)}function at(e){return!!(e&&e.__v_isShallow)}function fr(e){return e?!!e.__v_raw:!1}function he(e){const t=e&&e.__v_raw;return t?he(t):e}function zi(e){return!_e(e,"__v_skip")&&Object.isExtensible(e)&&La(e,"__v_skip",!0),e}const ht=e=>be(e)?bs(e):e,on=e=>be(e)?ii(e):e;function De(e){return e?e.__v_isRef===!0:!1}function X(e){return nl(e,!1)}function jn(e){return nl(e,!0)}function nl(e,t){return De(e)?e:new Ku(e,t)}class Ku{constructor(t,n){this.dep=new Ni,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:he(t),this._value=n?t:ht(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||at(t)||Pt(t);t=s?t:he(t),At(t,n)&&(this._rawValue=t,this._value=s?t:ht(t),this.dep.trigger())}}function Oe(e){return De(e)?e.value:e}function gg(e){return se(e)?e():Oe(e)}const Wu={get:(e,t,n)=>t==="__v_raw"?e:Oe(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return De(r)&&!De(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function sl(e){return Ot(e)?e:new Proxy(e,Wu)}function Gu(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=Yu(e,n);return t}class Ju{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=ct(n)?n:String(n),this._raw=he(t);let r=!0,i=t;if(!Z(t)||ct(this._key)||!ir(this._key))do r=!fr(i)||at(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=Oe(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&De(this._raw[this._key])){const n=this._object[this._key];if(De(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Ou(this._raw,this._key)}}function Yu(e,t,n){return new Ju(e,t,n)}class Zu{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ni(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=cs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Re!==this)return qa(this,!0),!0}get value(){const t=this.dep.track();return Ka(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Qu(e,t,n=!1){let s,r;return se(e)?s=e:(s=e.get,r=e.set),new Zu(s,r,n)}const ks={},Ks=new WeakMap;let hn;function Xu(e,t=!1,n=hn){if(n){let s=Ks.get(n);s||Ks.set(n,s=[]),s.push(e)}}function ef(e,t,n=we){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:a,call:l}=n,c=O=>r?O:at(O)||r===!1||r===0?zt(O,1):zt(O);let u,f,p,g,v=!1,w=!1;if(De(e)?(f=()=>e.value,v=at(e)):Ot(e)?(f=()=>c(e),v=!0):Z(e)?(w=!0,v=e.some(O=>Ot(O)||at(O)),f=()=>e.map(O=>{if(De(O))return O.value;if(Ot(O))return c(O);if(se(O))return l?l(O,2):O()})):se(e)?t?f=l?()=>l(e,2):e:f=()=>{if(p){Ut();try{p()}finally{Ht()}}const O=hn;hn=u;try{return l?l(e,3,[g]):e(g)}finally{hn=O}}:f=xt,t&&r){const O=f,N=r===!0?1/0:r;f=()=>zt(O(),N)}const S=Va(),E=()=>{u.stop(),S&&S.active&&Oi(S.effects,u)};if(i&&t){const O=t;t=(...N)=>{const Q=O(...N);return E(),Q}}let y=w?new Array(e.length).fill(ks):ks;const C=O=>{if(!(!(u.flags&1)||!u.dirty&&!O))if(t){const N=u.run();if(O||r||v||(w?N.some((Q,$)=>At(Q,y[$])):At(N,y))){p&&p();const Q=hn;hn=u;try{const $=[N,y===ks?void 0:w&&y[0]===ks?[]:y,g];y=N,l?l(t,3,$):t(...$)}finally{hn=Q}}}else u.run()};return a&&a(C),u=new Fa(f),u.scheduler=o?()=>o(C,!1):C,g=O=>Xu(O,!1,u),p=u.onStop=()=>{const O=Ks.get(u);if(O){if(l)l(O,4);else for(const N of O)N();Ks.delete(u)}},t?s?C(!0):y=u.run():o?o(C.bind(null,!0),!0):u.run(),E.pause=u.pause.bind(u),E.resume=u.resume.bind(u),E.stop=E,E}function zt(e,t=1/0,n){if(t<=0||!be(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,De(e))zt(e.value,t,n);else if(Z(e))for(let s=0;s{zt(s,t,n)});else if(Ia(e)){for(const s in e)zt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&zt(e[s],t,n)}return e}function ws(e,t,n,s){try{return s?e(...s):e()}catch(r){Es(r,t,n)}}function mt(e,t,n,s){if(se(e)){const r=ws(e,t,n,s);return r&&Pa(r)&&r.catch(i=>{Es(i,t,n)}),r}if(Z(e)){const r=[];for(let i=0;i>>1,r=tt[s],i=fs(r);i=fs(n)?tt.push(e):tt.splice(nf(t),0,e),e.flags|=1,il()}}function il(){Ws||(Ws=rl.then(al))}function sf(e){if(!Z(e))Xt&&e.id===-1?Xt.splice(Pn+1,0,e):e.flags&1||(Nn.push(e),e.flags|=1);else for(let t=0;tfs(n)-fs(s));if(Nn.length=0,Xt){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function al(e){try{for(Et=0;Et{s._d&&Zs(-1);const i=Gs(t),o=Ft.length;let a;try{a=e(...r)}finally{for(let l=Ft.length;l>o;l--)Ki();Gs(i),s._d&&Zs(1)}return a};return s._n=!0,s._c=!0,s._d=!0,s}function rf(e,t){if(Ue===null)return e;const n=_r(Ue),s=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&se(t)?t.call(s&&s.proxy):t}}function of(){return!!(Wi()||wn)}const af=Symbol.for("v-scx"),lf=()=>lt(af);function bn(e,t,n){return cl(e,t,n)}function cl(e,t,n=we){const{immediate:s,deep:r,flush:i,once:o}=n,a=Be({},n),l=t&&s||!t&&i!=="post";let c;if(Vn){if(i==="sync"){const g=lf();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!l){const g=()=>{};return g.stop=xt,g.resume=xt,g.pause=xt,g}}const u=qe;a.call=(g,v,w)=>mt(g,u,v,w);let f=!1;i==="post"?a.scheduler=g=>{Ze(g,u&&u.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(g,v)=>{v?g():Vi(g)}),a.augmentJob=g=>{t&&(g.flags|=4),f&&(g.flags|=2,u&&(g.id=u.uid,g.i=u))};const p=ef(e,t,a);return Vn&&(c?c.push(p):l&&p()),p}function cf(e,t,n){const s=this.proxy,r=Pe(e)?e.includes(".")?ul(s,e):()=>s[e]:e.bind(s,s);let i;se(t)?i=t:(i=t.handler,n=t);const o=Ss(this),a=cl(r,i.bind(s),n);return o(),a}function ul(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;re.__isTeleport,mn=e=>e&&(e.disabled||e.disabled===""),uf=e=>e&&(e.defer||e.defer===""),_o=e=>typeof SVGElement<"u"&&e instanceof SVGElement,bo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,oi=(e,t)=>{const n=e&&e.to;return Pe(n)?t?t(n):null:n},ff={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,i,o,a,l,c){const{mc:u,pc:f,pbc:p,o:{insert:g,querySelector:v,createText:w,createComment:S,parentNode:E}}=c,y=mn(t.props);let{dynamicChildren:C}=t;const O=($,F,B)=>{$.shapeFlag&16&&u($.children,F,B,r,i,o,a,l)},N=($=t)=>{const F=mn($.props),B=$.target=oi($.props,v),oe=ai(B,$,w,g);B&&(o!=="svg"&&_o(B)?o="svg":o!=="mathml"&&bo(B)&&(o="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(B),F||(O($,B,oe),Qn($,!1)))},Q=$=>{const F=()=>{if(Yt.get($)===F){if(Yt.delete($),mn($.props)){const B=E($.el)||n;O($,B,$.anchor),Qn($,!0)}N($)}};Yt.set($,F),Ze(F,i)};if(e==null){const $=t.el=w(""),F=t.anchor=w("");if(g($,n,s),g(F,n,s),uf(t.props)||i&&i.pendingBranch){Q(t);return}y&&(O(t,n,F),Qn(t,!0)),N()}else{t.el=e.el;const $=t.anchor=e.anchor,F=Yt.get(e);if(F){F.flags|=8,Yt.delete(e),Q(t);return}t.targetStart=e.targetStart;const B=t.target=e.target,oe=t.targetAnchor=e.targetAnchor,L=mn(e.props),Me=L?n:B,Ce=L?$:oe;if(o==="svg"||_o(B)?o="svg":(o==="mathml"||bo(B))&&(o="mathml"),C?(p(e.dynamicChildren,C,Me,r,i,o,a),Hi(e,t,!0)):l||f(e,t,Me,Ce,r,i,o,a,!1),y)L?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Is(t,n,$,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const H=oi(t.props,v);H&&(t.target=H,Is(t,H,null,c,0))}else L&&Is(t,B,oe,c,1);Qn(t,y)}},remove(e,t,n,{um:s,o:{remove:r}},i){const{shapeFlag:o,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:p}=e,g=mn(p),v=i||!g,w=Yt.get(e);if(w&&(w.flags|=8,Yt.delete(e)),f&&(r(c),r(u)),i&&r(l),!w&&(g||f)&&o&16)for(let S=0;S1){for(const n of e)if(n.type!==kt){t=n;break}}return t}function dl(e){if(!pr(e))return hr(e.type)&&e.children?hf(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function Fi(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;Fi(hr(n.type)&&dl(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Tn(e,t){return se(e)?Be({name:e.name},t,{setup:e}):e}function vg(){const e=Wi();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""}function Bi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function wo(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Js=new WeakMap;function rs(e,t,n,s,r=!1){if(Z(e)){e.forEach((w,S)=>rs(w,t&&(Z(t)?t[S]:t),n,s,r));return}if($n(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&rs(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?_r(s.component):s.el,o=r?null:i,{i:a,r:l}=e,c=t&&t.r,u=a.refs===we?a.refs={}:a.refs,f=a.setupState,p=he(f),g=f===we?Oa:w=>wo(u,w)?!1:_e(p,w),v=(w,S)=>!(S&&wo(u,S));if(c!=null&&c!==l){if(Eo(t),Pe(c))u[c]=null,g(c)&&(f[c]=null);else if(De(c)){const w=t;v(c,w.k)&&(c.value=null),w.k&&(u[w.k]=null)}}if(se(l))ws(l,a,12,[o,u]);else{const w=Pe(l),S=De(l);if(w||S){const E=()=>{if(e.f){const y=w?g(l)?f[l]:u[l]:v()||!e.k?l.value:u[e.k];if(r)Z(y)&&Oi(y,i);else if(Z(y))y.includes(i)||y.push(i);else if(w)u[l]=[i],g(l)&&(f[l]=u[l]);else{const C=[i];v(l,e.k)&&(l.value=C),e.k&&(u[e.k]=C)}}else w?(u[l]=o,g(l)&&(f[l]=o)):S&&(v(l,e.k)&&(l.value=o),e.k&&(u[e.k]=o))};if(o){const y=()=>{E(),Js.delete(e)};y.id=-1,Js.set(e,y),Ze(y,n)}else Eo(e),E()}}}function Eo(e){const t=Js.get(e);t&&(t.flags|=8,Js.delete(e))}const So=e=>e.nodeType===8;cr().requestIdleCallback;cr().cancelIdleCallback;function pf(e,t){if(So(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(So(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const $n=e=>!!e.type.__asyncLoader;function _g(e){se(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:i,timeout:o,suspensible:a=!0,onError:l}=e;let c=null,u,f=0;const p=()=>(f++,c=null,g()),g=()=>{let v;return c||(v=c=t().catch(w=>{if(w=w instanceof Error?w:new Error(String(w)),l)return new Promise((S,E)=>{l(w,()=>S(p()),()=>E(w),f+1)});throw w}).then(w=>v!==c&&c?c:(w&&(w.__esModule||w[Symbol.toStringTag]==="Module")&&(w=w.default),u=w,w)))};return Tn({name:"AsyncComponentWrapper",__asyncLoader:g,__asyncHydrate(v,w,S){const E=v.isConnected;let y=!1;(w.bu||(w.bu=[])).push(()=>y=!0);const C=()=>{y||!v.parentNode||E&&!v.isConnected||S()},O=i?()=>{const N=i(C,Q=>pf(v,Q));N&&(w.bum||(w.bum=[])).push(N)}:C;u?O():g().then(()=>!w.isUnmounted&&O())},get __asyncResolved(){return u},setup(){const v=qe;if(Bi(v),u)return()=>Ls(u,v);const w=N=>{c=null,Es(N,v,13,!s)};if(a&&v.suspense||Vn)return g().then(N=>()=>Ls(N,v)).catch(N=>(w(N),()=>s?Ee(s,{error:N}):null));const S=X(!1),E=X(),y=X(!!r);let C,O;return gr(()=>{C!=null&&clearTimeout(C),O!=null&&clearTimeout(O)}),r&&(O=setTimeout(()=>{v.isUnmounted||(y.value=!1)},r)),o!=null&&(C=setTimeout(()=>{if(!v.isUnmounted&&!S.value&&!E.value){const N=new Error(`Async component timed out after ${o}ms.`);w(N),E.value=N}},o)),g().then(()=>{v.isUnmounted||(S.value=!0,v.parent&&pr(v.parent.vnode)&&v.parent.update())}).catch(N=>{if(v.isUnmounted){c=null;return}w(N),E.value=N}),()=>{if(S.value&&u)return Ls(u,v);if(E.value&&s)return Ee(s,{error:E.value});if(n&&!y.value)return Ls(n,v)}}})}function Ls(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=Ee(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const pr=e=>e.type.__isKeepAlive;function hl(e,t){ml(e,"a",t)}function pl(e,t){ml(e,"da",t)}function ml(e,t,n=qe){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(mr(t,s,n),n){let r=n.parent;for(;r&&r.parent;)pr(r.parent.vnode)&&mf(s,t,n,r),r=r.parent}}function mf(e,t,n,s){const r=mr(t,e,s,!0);gr(()=>{Oi(s[t],r)},n)}function mr(e,t,n=qe,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Ut();const a=Ss(n),l=mt(t,n,e,o);return a(),Ht(),l});return s?r.unshift(i):r.push(i),i}}const Kt=e=>(t,n=qe)=>{(!Vn||e==="sp")&&mr(e,(...s)=>t(...s),n)},gf=Kt("bm"),yf=Kt("m"),vf=Kt("bu"),_f=Kt("u"),bf=Kt("bum"),gr=Kt("um"),wf=Kt("sp"),Ef=Kt("rtg"),Sf=Kt("rtc");function Tf(e,t=qe){mr("ec",e,t)}const Rf="components";function gl(e,t){return Mf(Rf,e,!0,t)||e}const Af=Symbol.for("v-ndc");function Mf(e,t,n=!0,s=!1){const r=Ue||qe;if(r){const i=r.type;{const a=fd(i,!1);if(a&&(a===t||a===nt(t)||a===ar(nt(t))))return i}const o=To(r[e]||i[e],t)||To(r.appContext[e],t);return!o&&s?i:o}}function To(e,t){return e&&(e[t]||e[nt(t)]||e[ar(nt(t))])}function Ro(e,t,n,s){let r;const i=n,o=Z(e);if(o||Pe(e)){const a=o&&Ot(e);let l=!1,c=!1;a&&(l=!at(e),c=Pt(e),e=ur(e)),r=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,i));else{const a=Object.keys(e);r=new Array(a.length);for(let l=0,c=a.length;l0;return t!=="default"&&(c.name=t),Xe(),hs(st,null,[Ee("slot",c,s&&s())],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);const a=Ft.length;Xe();let l;try{const c=o&&yl(o(n)),u=n.key||i||c&&c.key;l=hs(st,{key:(u&&!ct(u)?u:`_${t}`)+(!c&&s?"_fb":"")},c||(s?s():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ft.length;u>a;u--)Ki();throw c}finally{o&&o._c&&(o._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function yl(e){return e.some(t=>ps(t)?!(t.type===kt||t.type===st&&!yl(t.children)):!0)?e:null}const li=e=>e?Nl(e)?_r(e):li(e.parent):null,is=Be(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>li(e.parent),$root:e=>li(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>_l(e),$forceUpdate:e=>e.f||(e.f=()=>{Vi(e.update)}),$nextTick:e=>e.n||(e.n=dr.bind(e.proxy)),$watch:e=>cf.bind(e)}),Vr=(e,t)=>e!==we&&!e.__isScriptSetup&&_e(e,t),xf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:a,appContext:l}=e;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Vr(s,t))return o[t]=1,s[t];if(r!==we&&_e(r,t))return o[t]=2,r[t];if(_e(i,t))return o[t]=3,i[t];if(n!==we&&_e(n,t))return o[t]=4,n[t];ci&&(o[t]=0)}}const c=is[t];let u,f;if(c)return t==="$attrs"&&Ge(e.attrs,"get",""),c(e);if((u=a.__cssModules)&&(u=u[t]))return u;if(n!==we&&_e(n,t))return o[t]=4,n[t];if(f=l.config.globalProperties,_e(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Vr(r,t)?(r[t]=n,!0):s!==we&&_e(s,t)?(s[t]=n,!0):_e(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,props:i,type:o}},a){let l;return!!(n[a]||e!==we&&a[0]!=="$"&&_e(e,a)||Vr(t,a)||_e(i,a)||_e(s,a)||_e(is,a)||_e(r.config.globalProperties,a)||(l=o.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:_e(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ao(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ci=!0;function Of(e){const t=_l(e),n=e.proxy,s=e.ctx;ci=!1,t.beforeCreate&&Mo(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:g,updated:v,activated:w,deactivated:S,beforeDestroy:E,beforeUnmount:y,destroyed:C,unmounted:O,render:N,renderTracked:Q,renderTriggered:$,errorCaptured:F,serverPrefetch:B,expose:oe,inheritAttrs:L,components:Me,directives:Ce,filters:H}=t;if(c&&Pf(c,s,null),o)for(const W in o){const re=o[W];se(re)&&(s[W]=re.bind(n))}if(r){const W=r.call(n,n);be(W)&&(e.data=bs(W))}if(ci=!0,i)for(const W in i){const re=i[W],$e=se(re)?re.bind(n,n):se(re.get)?re.get.bind(n,n):xt,me=!se(re)&&se(re.set)?re.set.bind(n):xt,Te=ne({get:$e,set:me});Object.defineProperty(s,W,{enumerable:!0,configurable:!0,get:()=>Te.value,set:ke=>Te.value=ke})}if(a)for(const W in a)vl(a[W],s,n,W);if(l){const W=se(l)?l.call(n):l;Reflect.ownKeys(W).forEach(re=>{Fs(re,W[re])})}u&&Mo(u,e,"c");function ee(W,re){Z(re)?re.forEach($e=>W($e.bind(n))):re&&W(re.bind(n))}if(ee(gf,f),ee(yf,p),ee(vf,g),ee(_f,v),ee(hl,w),ee(pl,S),ee(Tf,F),ee(Sf,Q),ee(Ef,$),ee(bf,y),ee(gr,O),ee(wf,B),Z(oe))if(oe.length){const W=e.exposed||(e.exposed={});oe.forEach(re=>{Object.defineProperty(W,re,{get:()=>n[re],set:$e=>n[re]=$e,enumerable:!0})})}else e.exposed||(e.exposed={});N&&e.render===xt&&(e.render=N),L!=null&&(e.inheritAttrs=L),Me&&(e.components=Me),Ce&&(e.directives=Ce),B&&Bi(e)}function Pf(e,t,n=xt){Z(e)&&(e=ui(e));for(const s in e){const r=e[s];let i;be(r)?"default"in r?i=lt(r.from||s,r.default,!0):i=lt(r.from||s):i=lt(r),De(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Mo(e,t,n){mt(Z(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function vl(e,t,n,s){let r=s.includes(".")?ul(n,s):()=>n[s];if(Pe(e)){const i=t[e];se(i)&&bn(r,i)}else if(se(e))bn(r,e.bind(n));else if(be(e))if(Z(e))e.forEach(i=>vl(i,t,n,s));else{const i=se(e.handler)?e.handler.bind(n):t[e.handler];se(i)&&bn(r,i,e)}}function _l(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,a=i.get(t);let l;return a?l=a:!r.length&&!n&&!s?l=t:(l={},r.length&&r.forEach(c=>Ys(l,c,o,!0)),Ys(l,t,o)),be(t)&&i.set(t,l),l}function Ys(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Ys(e,i,n,!0),r&&r.forEach(o=>Ys(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const a=kf[o]||n&&n[o];e[o]=a?a(e[o],t[o]):t[o]}return e}const kf={data:Co,props:xo,emits:xo,methods:Xn,computed:Xn,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Xn,directives:Xn,watch:Lf,provide:Co,inject:If};function Co(e,t){return t?e?function(){return Be(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function If(e,t){return Xn(ui(e),ui(t))}function ui(e){if(Z(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${nt(t)}Modifiers`]||e[`${an(t)}Modifiers`];function jf(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||we;let r=n;const i=t.startsWith("update:"),o=i&&$f(s,t.slice(7));o&&(o.trim&&(r=n.map(u=>Pe(u)?u.trim():u)),o.number&&(r=r.map(lr)));let a,l=s[a=Lr(t)]||s[a=Lr(nt(t))];!l&&i&&(l=s[a=Lr(an(t))]),l&&mt(l,e,6,r);const c=s[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,mt(c,e,6,r)}}const zf=new WeakMap;function wl(e,t,n=!1){const s=n?zf:t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},a=!1;if(!se(e)){const l=c=>{const u=wl(c,t,!0);u&&(a=!0,Be(o,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!i&&!a?(be(e)&&s.set(e,null),null):(Z(i)?i.forEach(l=>o[l]=null):Be(o,i),be(e)&&s.set(e,o),o)}function yr(e,t){return!e||!sr(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),_e(e,t[0].toLowerCase()+t.slice(1))||_e(e,an(t))||_e(e,t))}function Oo(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:a,emit:l,render:c,renderCache:u,props:f,data:p,setupState:g,ctx:v,inheritAttrs:w}=e,S=Gs(e);let E,y;try{if(n.shapeFlag&4){const O=r||s,N=O;E=Rt(c.call(N,O,u,f,g,p,v)),y=a}else{const O=t;E=Rt(O.length>1?O(f,{attrs:a,slots:o,emit:l}):O(f,null)),y=t.props?a:Vf(a)}}catch(O){Ft.length=0,Es(O,e,1),E=Ee(kt)}let C=E;if(y&&w!==!1){const O=Object.keys(y),{shapeFlag:N}=C;O.length&&N&7&&(i&&O.some(rr)&&(y=Ff(y,i)),C=zn(C,y,!1,!0))}if(n.dirs&&(C=zn(C,null,!1,!0),C.dirs=C.dirs?C.dirs.concat(n.dirs):n.dirs),n.transition){const O=hr(C.type)&&dl(C)||C;Fi(O,n.transition)}return E=C,Gs(S),E}const Vf=e=>{let t;for(const n in e)(n==="class"||n==="style"||sr(n))&&((t||(t={}))[n]=e[n]);return t},Ff=(e,t)=>{const n={};for(const s in e)(!rr(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Bf(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:a,patchFlag:l}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?Po(s,o,c):!!o;if(l&8){const u=t.dynamicProps;for(let f=0;fObject.create(Sl),Rl=e=>Object.getPrototypeOf(e)===Sl;function Uf(e,t,n,s=!1){const r={},i=Tl();e.propsDefaults=Object.create(null),Al(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:tl(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Hf(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,a=he(r),[l]=e.propsOptions;let c=!1;if((s||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,g]=Ml(f,t,!0);Be(o,p),g&&a.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!l)return be(e)&&s.set(e,gn),gn;if(Z(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Ui=e=>Z(e)?e.map(Rt):[Rt(e)],Wf=(e,t,n)=>{if(t._n)return t;const s=Ln((...r)=>Ui(t(...r)),n);return s._c=!1,s},Cl=(e,t,n)=>{const s=e._ctx;for(const r in e){if(qi(r))continue;const i=e[r];if(se(i))t[r]=Wf(r,i,s);else if(i!=null){const o=Ui(i);t[r]=()=>o}}},xl=(e,t)=>{const n=Ui(t);e.slots.default=()=>n},Ol=(e,t,n)=>{for(const s in t)(n||!qi(s))&&(e[s]=t[s])},Gf=(e,t,n)=>{const s=e.slots=Tl();if(e.vnode.shapeFlag&32){const r=t._;r?(Ol(s,t,n),n&&La(s,"_",r,!0)):Cl(t,s)}else t&&xl(e,t)},Jf=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=we;if(s.shapeFlag&32){const a=t._;a?n&&a===1?i=!1:Ol(r,t,n):(i=!t.$stable,Cl(t,r)),o=t}else t&&(xl(e,t),o={default:1});if(i)for(const a in r)!qi(a)&&o[a]==null&&delete r[a]},Ze=ed;function Yf(e){return Zf(e)}function Zf(e,t){const n=cr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:g=xt,insertStaticContent:v}=e,w=(h,m,_,A=null,M=null,T=null,j=void 0,I=null,D=!!m.dynamicChildren)=>{if(h===m)return;h&&!Gn(h,m)&&(A=x(h),ke(h,M,T,!0),h=null),m.patchFlag===-2&&(D=!1,m.dynamicChildren=null),m.dynamicChildren&&h&&h.dynamicChildren&&h.dynamicChildren.hasOnce&&(m.dynamicChildren===gn&&(m.dynamicChildren=[]),m.dynamicChildren.hasOnce=!0);const{type:P,ref:Y,shapeFlag:V}=m;switch(P){case vr:S(h,m,_,A);break;case kt:E(h,m,_,A);break;case Br:h==null&&y(m,_,A,j);break;case st:Me(h,m,_,A,M,T,j,I,D);break;default:V&1?N(h,m,_,A,M,T,j,I,D):V&6?Ce(h,m,_,A,M,T,j,I,D):(V&64||V&128)&&P.process(h,m,_,A,M,T,j,I,D,K)}Y!=null&&M?rs(Y,h&&h.ref,T,m||h,!m):Y==null&&h&&h.ref!=null&&rs(h.ref,null,T,h,!0)},S=(h,m,_,A)=>{if(h==null)s(m.el=a(m.children),_,A);else{const M=m.el=h.el;m.children!==h.children&&c(M,m.children)}},E=(h,m,_,A)=>{h==null?s(m.el=l(m.children||""),_,A):m.el=h.el},y=(h,m,_,A)=>{[h.el,h.anchor]=v(h.children,m,_,A,h.el,h.anchor)},C=({el:h,anchor:m},_,A)=>{let M;for(;h&&h!==m;)M=p(h),s(h,_,A),h=M;s(m,_,A)},O=({el:h,anchor:m})=>{let _;for(;h&&h!==m;)_=p(h),r(h),h=_;r(m)},N=(h,m,_,A,M,T,j,I,D)=>{if(m.type==="svg"?j="svg":m.type==="math"&&(j="mathml"),h==null)Q(m,_,A,M,T,j,I,D);else{const P=h.el&&h.el._isVueCE?h.el:null;try{P&&P._beginPatch(),B(h,m,M,T,j,I,D)}finally{P&&P._endPatch()}}},Q=(h,m,_,A,M,T,j,I)=>{let D,P;const{props:Y,shapeFlag:V,transition:G,dirs:te}=h;if(D=h.el=o(h.type,T,Y&&Y.is,Y),V&8?u(D,h.children):V&16&&F(h.children,D,null,A,M,Fr(h,T),j,I),te&&un(h,null,A,"created"),$(D,h,h.scopeId,j,A),Y){for(const pe in Y)pe!=="value"&&!ts(pe)&&i(D,pe,null,Y[pe],T,A);"value"in Y&&i(D,"value",null,Y.value,T),(P=Y.onVnodeBeforeMount)&&wt(P,A,h)}te&&un(h,null,A,"beforeMount");const le=Qf(M,G);le&&G.beforeEnter(D),s(D,m,_),((P=Y&&Y.onVnodeMounted)||le||te)&&Ze(()=>{P&&wt(P,A,h),le&&G.enter(D),te&&un(h,null,A,"mounted")},M)},$=(h,m,_,A,M)=>{if(_&&g(h,_),A)for(let T=0;T{for(let P=D;P{const I=m.el=h.el;let{patchFlag:D,dynamicChildren:P,dirs:Y}=m;D|=h.patchFlag&16;const V=h.props||we,G=m.props||we;let te;if(_&&fn(_,!1),(te=G.onVnodeBeforeUpdate)&&wt(te,_,m,h),Y&&un(m,h,_,"beforeUpdate"),_&&fn(_,!0),P&&(!h.dynamicChildren||h.dynamicChildren.length!==P.length)&&(D=0,j=!1,P=null),(V.innerHTML&&G.innerHTML==null||V.textContent&&G.textContent==null)&&u(I,""),P?oe(h.dynamicChildren,P,I,_,A,Fr(m,M),T):j||re(h,m,I,null,_,A,Fr(m,M),T,!1),D>0){if(D&16)L(I,V,G,_,M);else if(D&2&&V.class!==G.class&&i(I,"class",null,G.class,M),D&4&&i(I,"style",V.style,G.style,M),D&8){const le=m.dynamicProps;for(let pe=0;pe{te&&wt(te,_,m,h),Y&&un(m,h,_,"updated")},A)},oe=(h,m,_,A,M,T,j)=>{for(let I=0;I{if(m!==_){if(m!==we)for(const T in m)!ts(T)&&!(T in _)&&i(h,T,m[T],null,M,A);for(const T in _){if(ts(T))continue;const j=_[T],I=m[T];j!==I&&T!=="value"&&i(h,T,I,j,M,A)}"value"in _&&i(h,"value",m.value,_.value,M)}},Me=(h,m,_,A,M,T,j,I,D)=>{const P=m.el=h?h.el:a(""),Y=m.anchor=h?h.anchor:a("");let{patchFlag:V,dynamicChildren:G,slotScopeIds:te}=m;te&&(I=I?I.concat(te):te),h==null?(s(P,_,A),s(Y,_,A),F(m.children||[],_,Y,M,T,j,I,D)):V>0&&V&64&&G&&h.dynamicChildren&&h.dynamicChildren.length===G.length?(oe(h.dynamicChildren,G,_,M,T,j,I),(m.key!=null||M&&m===M.subTree)&&Hi(h,m,!0)):re(h,m,_,Y,M,T,j,I,D)},Ce=(h,m,_,A,M,T,j,I,D)=>{m.slotScopeIds=I,h==null?m.shapeFlag&512?M.ctx.activate(m,_,A,j,D):H(m,_,A,M,T,j,D):Se(h,m,D)},H=(h,m,_,A,M,T,j)=>{const I=h.component=od(h,A,M);if(pr(h)&&(I.ctx.renderer=K),ad(I,!1,j),I.asyncDep){if(M&&M.registerDep(I,ee,j),!h.el){const D=I.subTree=Ee(kt);E(null,D,m,_),h.placeholder=D.el}}else ee(I,h,m,_,M,T,j)},Se=(h,m,_)=>{const A=m.component=h.component;if(Bf(h,m,_))if(A.asyncDep&&!A.asyncResolved){m.el=h.el,W(A,m,_);return}else A.next=m,A.update();else m.el=h.el,A.vnode=m},ee=(h,m,_,A,M,T,j)=>{const I=()=>{if(h.isMounted){let{next:V,bu:G,u:te,parent:le,vnode:pe}=h;{const ft=Pl(h);if(ft){V&&(V.el=pe.el,W(h,V,j)),ft.asyncDep.then(()=>{Ze(()=>{h.isUnmounted||P()},M)});return}}let ge=V,Ie;fn(h,!1),V?(V.el=pe.el,W(h,V,j)):V=pe,G&&Vs(G),(Ie=V.props&&V.props.onVnodeBeforeUpdate)&&wt(Ie,le,V,pe),fn(h,!0);const je=Oo(h),ut=h.subTree;h.subTree=je,w(ut,je,f(ut.el),x(ut),h,M,T),V.el=je.el,ge===null&&qf(h,je.el),te&&Ze(te,M),(Ie=V.props&&V.props.onVnodeUpdated)&&Ze(()=>wt(Ie,le,V,pe),M)}else{let V;const{el:G,props:te}=m,{bm:le,m:pe,parent:ge,root:Ie,type:je}=h,ut=$n(m);fn(h,!1),le&&Vs(le),!ut&&(V=te&&te.onVnodeBeforeMount)&&wt(V,ge,m),fn(h,!0);{Ie.ce&&Ie.ce._hasShadowRoot()&&Ie.ce._injectChildStyle(je,h.parent?h.parent.type:void 0);const ft=h.subTree=Oo(h);w(null,ft,_,A,h,M,T),m.el=ft.el}if(pe&&Ze(pe,M),!ut&&(V=te&&te.onVnodeMounted)){const ft=m;Ze(()=>wt(V,ge,ft),M)}(m.shapeFlag&256||ge&&$n(ge.vnode)&&ge.vnode.shapeFlag&256)&&h.a&&Ze(h.a,M),h.isMounted=!0,m=_=A=null}};h.scope.on();const D=h.effect=new Fa(I);h.scope.off();const P=h.update=D.run.bind(D),Y=h.job=D.runIfDirty.bind(D);Y.i=h,Y.id=h.uid,D.scheduler=()=>Vi(Y),fn(h,!0),P()},W=(h,m,_)=>{m.component=h;const A=h.vnode.props;h.vnode=m,h.next=null,Hf(h,m.props,A,_),Jf(h,m.children,_),Ut(),vo(h),Ht()},re=(h,m,_,A,M,T,j,I,D=!1)=>{const P=h&&h.children,Y=h?h.shapeFlag:0,V=m.children,{patchFlag:G,shapeFlag:te}=m;if(G>0){if(G&128){me(P,V,_,A,M,T,j,I,D);return}else if(G&256){$e(P,V,_,A,M,T,j,I,D);return}}te&8?(Y&16&&He(P,M,T),V!==P&&u(_,V)):Y&16?te&16?me(P,V,_,A,M,T,j,I,D):He(P,M,T,!0):(Y&8&&u(_,""),te&16&&F(V,_,A,M,T,j,I,D))},$e=(h,m,_,A,M,T,j,I,D)=>{h=h||gn,m=m||gn;const P=h.length,Y=m.length,V=Math.min(P,Y);let G;for(G=0;GY?He(h,M,T,!0,!1,V):F(m,_,A,M,T,j,I,D,V)},me=(h,m,_,A,M,T,j,I,D)=>{let P=0;const Y=m.length;let V=h.length-1,G=Y-1;for(;P<=V&&P<=G;){const te=h[P],le=m[P]=D?$t(m[P]):Rt(m[P]);if(Gn(te,le))w(te,le,_,null,M,T,j,I,D);else break;P++}for(;P<=V&&P<=G;){const te=h[V],le=m[G]=D?$t(m[G]):Rt(m[G]);if(Gn(te,le))w(te,le,_,null,M,T,j,I,D);else break;V--,G--}if(P>V){if(P<=G){const te=G+1,le=teG)for(;P<=V;)ke(h[P],M,T,!0),P++;else{const te=P,le=P,pe=new Map;for(P=le;P<=G;P++){const Ke=m[P]=D?$t(m[P]):Rt(m[P]);Ke.key!=null&&pe.set(Ke.key,P)}let ge,Ie=0;const je=G-le+1;let ut=!1,ft=0;const _t=new Array(je);for(P=0;P=je){ke(Ke,M,T,!0);continue}let Je;if(Ke.key!=null)Je=pe.get(Ke.key);else for(ge=le;ge<=G;ge++)if(_t[ge-le]===0&&Gn(Ke,m[ge])){Je=ge;break}Je===void 0?ke(Ke,M,T,!0):(_t[Je-le]=P+1,Je>=ft?ft=Je:ut=!0,w(Ke,m[Je],_,null,M,T,j,I,D),Ie++)}const Rs=ut?Xf(_t):gn;for(ge=Rs.length-1,P=je-1;P>=0;P--){const Ke=le+P,Je=m[Ke],Rn=m[Ke+1],As=Ke+1{const{el:T,type:j,transition:I,children:D,shapeFlag:P}=h;if(P&6){Te(h.component.subTree,m,_,A);return}if(P&128){h.suspense.move(m,_,A);return}if(P&64){j.move(h,m,_,K);return}if(j===st){s(T,m,_);for(let V=0;VI.enter(T),M));else{const{leave:V,delayLeave:G,afterLeave:te}=I,le=()=>{h.ctx.isUnmounted?r(T):s(T,m,_)},pe=()=>{const ge=T._isLeaving||!!T[zr];T._isLeaving&&T[zr](!0),I.persisted&&!ge?le():V(T,()=>{le(),te&&te()})};G?G(T,le,pe):pe()}else s(T,m,_)},ke=(h,m,_,A=!1,M=!1)=>{const{type:T,props:j,ref:I,children:D,dynamicChildren:P,shapeFlag:Y,patchFlag:V,dirs:G,cacheIndex:te,memo:le}=h;if((V===-2||P&&P.hasOnce)&&(M=!1),I!=null&&(Ut(),rs(I,null,_,h,!0),Ht()),te!=null&&(!h.ctx||h.ctx===m)&&(m.renderCache[te]=void 0),Y&256){m.ctx.deactivate(h);return}const pe=Y&1&&G,ge=!$n(h);let Ie;if(ge&&(Ie=j&&j.onVnodeBeforeUnmount)&&wt(Ie,m,h),Y&6)rt(h.component,_,A);else{if(Y&128){h.suspense.unmount(_,A);return}pe&&un(h,null,m,"beforeUnmount"),Y&64?h.type.remove(h,m,_,K,A):P&&!P.hasOnce&&(T!==st||V>0&&V&64)?He(P,m,_,!1,!0):(T===st&&V&384||!M&&Y&16)&&He(D,m,_),A&&yt(h)}const je=le!=null&&te==null;(ge&&(Ie=j&&j.onVnodeUnmounted)||pe||je)&&Ze(()=>{Ie&&wt(Ie,m,h),pe&&un(h,null,m,"unmounted"),je&&(h.el=null)},_)},yt=h=>{const{type:m,el:_,anchor:A,transition:M}=h;if(m===st){vt(_,A);return}if(m===Br){O(h),M&&!M.persisted&&M.afterLeave&&M.afterLeave();return}const T=()=>{r(_),M&&!M.persisted&&M.afterLeave&&M.afterLeave()};if(h.shapeFlag&1&&M&&!M.persisted){const{leave:j,delayLeave:I}=M,D=()=>j(_,T);I?I(h.el,T,D):D()}else T()},vt=(h,m)=>{let _;for(;h!==m;)_=p(h),r(h),h=_;r(m)},rt=(h,m,_)=>{const{bum:A,scope:M,job:T,subTree:j,um:I,m:D,a:P}=h;Io(D),Io(P),A&&Vs(A),M.stop(),T?(T.flags|=8,ke(j,h,m,_)):h.vnode.el&&j&&(j.transition=h.vnode.transition,ke(j,h,m,_)),I&&Ze(I,m),Ze(()=>{h.isUnmounted=!0},m)},He=(h,m,_,A=!1,M=!1,T=0)=>{for(let j=T;j{if(h.shapeFlag&6)return x(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const m=p(h.anchor||h.el),_=m&&m[fl];return _?p(_):m};let q=!1;const z=(h,m,_)=>{let A;h==null?m._vnode&&(ke(m._vnode,null,null,!0),A=m._vnode.component):w(m._vnode||null,h,m,null,null,null,_),m._vnode=h,q||(q=!0,vo(A),ol(),q=!1)},K={p:w,um:ke,m:Te,r:yt,mt:H,mc:F,pc:re,pbc:oe,n:x,o:e};return{render:z,hydrate:void 0,createApp:Nf(z)}}function Fr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function fn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Qf(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Hi(e,t,n=!1){const s=e.children,r=t.children;if(Z(s)&&Z(r))for(let i=0;i>1,e[n[a]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Pl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pl(t)}function Io(e){if(e)for(let t=0;te.__isSuspense;function ed(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):sf(e)}const st=Symbol.for("v-fgt"),vr=Symbol.for("v-txt"),kt=Symbol.for("v-cmt"),Br=Symbol.for("v-stc"),Ft=[];let ot=null;function Xe(e=!1){Ft.push(ot=e?null:[])}function Ki(){Ft.pop(),ot=Ft[Ft.length-1]||null}let ds=1;function Zs(e,t=!1){ds+=e,e<0&&ot&&t&&(ot.hasOnce=!0)}function Ll(e){return e.dynamicChildren=ds>0?ot||gn:null,Ki(),ds>0&&ot&&ot.push(e),e}function St(e,t,n,s,r,i){return Ll(xe(e,t,n,s,r,i,!0))}function hs(e,t,n,s,r){return Ll(Ee(e,t,n,s,r,!0))}function ps(e){return e?e.__v_isVNode===!0:!1}function Gn(e,t){return e.type===t.type&&e.key===t.key}const Dl=({key:e})=>e??null,Bs=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Pe(e)||De(e)||se(e)?{i:Ue,r:e,k:t,f:!!n}:e:null);function xe(e,t=null,n=null,s=0,r=null,i=e===st?0:1,o=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Dl(t),ref:t&&Bs(t),scopeId:ll,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ue};return a?(Qs(l,n),i&128&&e.normalize(l)):n&&(l.shapeFlag|=Pe(n)?8:16),ds>0&&!o&&ot&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&ot.push(l),l}const Ee=td;function td(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Af)&&(e=kt),ps(e)){const a=zn(e,t,!0);return n&&Qs(a,n),ds>0&&!i&&ot&&(a.shapeFlag&6?ot[ot.indexOf(e)]=a:ot.push(a)),a.patchFlag=-2,a}if(dd(e)&&(e=e.__vccOpts),t){t=nd(t);let{class:a,style:l}=t;a&&!Pe(a)&&(t.class=Dn(a)),be(l)&&(fr(l)&&!Z(l)&&(l=Be({},l)),t.style=Pi(l))}const o=Pe(e)?1:Il(e)?128:hr(e)?64:be(e)?4:se(e)?2:0;return xe(e,t,n,s,r,o,i,!0)}function nd(e){return e?fr(e)||Rl(e)?Be({},e):e:null}function zn(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:a,transition:l}=e,c=t?sd(r||{},t):r,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Dl(c),ref:t&&t.ref?n&&i?Z(i)?i.concat(Bs(t)):[i,Bs(t)]:Bs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==st?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&zn(e.ssContent),ssFallback:e.ssFallback&&zn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return l&&s&&Fi(u,l.clone(u)),u}function di(e=" ",t=0){return Ee(vr,null,e,t)}function Jn(e="",t=!1){return t?(Xe(),hs(kt,null,e)):Ee(kt,null,e)}function Rt(e){return e==null||typeof e=="boolean"?Ee(kt):Z(e)?Ee(st,null,e.slice()):ps(e)?$t(e):Ee(vr,null,String(e))}function $t(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:zn(e)}function Qs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Qs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Rl(t)?t._ctx=Ue:r===3&&Ue&&(Ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(se(t)){if(s&65){Qs(e,{default:t});return}t={default:t,_ctx:Ue},n=32}else t=String(t),s&64?(n=16,t=[di(t)]):n=8;e.children=t,e.shapeFlag|=n}function sd(...e){const t={};for(let n=0;nqe||Ue;let Xs,ms;{const e=cr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Xs=t("__VUE_INSTANCE_SETTERS__",n=>qe=n),ms=t("__VUE_SSR_SETTERS__",n=>Vn=n)}const Ss=e=>{const t=qe;return Xs(e),e.scope.on(),()=>{e.scope.off(),Xs(t)}},Lo=()=>{qe&&qe.scope.off(),Xs(null)};function Nl(e){return e.vnode.shapeFlag&4}let Vn=!1;function ad(e,t=!1,n=!1){t&&ms(t);const{props:s,children:r}=e.vnode,i=Nl(e);Uf(e,s,i,t),Gf(e,r,n||t);const o=i?ld(e,t):void 0;return t&&ms(!1),o}function ld(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,xf);const{setup:s}=n;if(s){Ut();const r=e.setupContext=s.length>1?ud(e):null,i=Ss(e),o=ws(s,e,0,[e.props,r]),a=Pa(o);if(Ht(),i(),(a||e.sp)&&!$n(e)&&Bi(e),a){if(o.then(Lo,Lo),t)return o.then(l=>{ms(!0);try{Do(e,l,t)}finally{ms(!1)}}).catch(l=>{Es(l,e,0)});e.asyncDep=o}else Do(e,o)}else $l(e)}function Do(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:be(t)&&(e.setupState=sl(t)),$l(e)}function $l(e,t,n){const s=e.type;e.render||(e.render=s.render||xt);{const r=Ss(e);Ut();try{Of(e)}finally{Ht(),r()}}}const cd={get(e,t){return Ge(e,"get",""),e[t]}};function ud(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cd),slots:e.slots,emit:e.emit,expose:t}}function _r(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(sl(zi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in is)return is[n](e)},has(t,n){return n in t||n in is}})):e.proxy}function fd(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function dd(e){return se(e)&&"__vccOpts"in e}const ne=(e,t)=>Qu(e,t,Vn);function jl(e,t,n){try{Zs(-1);const s=arguments.length;return s===2?be(t)&&!Z(t)?ps(t)?Ee(e,null,[t]):Ee(e,t):Ee(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&ps(n)&&(n=[n]),Ee(e,t,n))}finally{Zs(1)}}const hd="3.5.43";let hi;const No=typeof window<"u"&&window.trustedTypes;if(No)try{hi=No.createPolicy("vue",{createHTML:e=>e})}catch{}const zl=hi?e=>hi.createHTML(e):e=>e,pd="http://www.w3.org/2000/svg",md="http://www.w3.org/1998/Math/MathML",Nt=typeof document<"u"?document:null,$o=Nt&&Nt.createElement("template"),gd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Nt.createElementNS(pd,e):t==="mathml"?Nt.createElementNS(md,e):n?Nt.createElement(e,{is:n}):Nt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Nt.createTextNode(e),createComment:e=>Nt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Nt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{$o.innerHTML=zl(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const a=$o.content;if(s==="svg"||s==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},yd=Symbol("_vtc");function vd(e,t,n){const s=e[yd];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const er=Symbol("_vod"),Vl=Symbol("_vsh"),_d={name:"show",beforeMount(e,{value:t},{transition:n}){e[er]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Yn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Yn(e,!0),s.enter(e)):s.leave(e,()=>{Yn(e,!1)}):Yn(e,t))},beforeUnmount(e,{value:t}){Yn(e,t)}};function Yn(e,t){e.style.display=t?e[er]:"none",e[Vl]=!t}const bd=Symbol(""),wd=/(?:^|;)\s*display\s*:/;function Ed(e,t,n){const s=e.style,r=Pe(n);let i=!1;if(n&&!r){if(t)if(Pe(t))for(const o of t.split(";")){const a=o.slice(0,o.indexOf(":")).trim();n[a]==null&&es(s,a,"")}else for(const o in t)n[o]==null&&es(s,o,"");for(const o in n){o==="display"&&(i=!0);const a=n[o];a!=null?Td(e,o,!Pe(t)&&t?t[o]:void 0,a)||es(s,o,a):es(s,o,"")}}else if(r){if(t!==n){const o=s[bd];o&&(n+=";"+o),s.cssText=n,i=wd.test(n)}}else t&&e.removeAttribute("style");er in e&&(e[er]=i?s.display:"",e[Vl]&&(s.display="none"))}const Ds=/\s*!important$/;function es(e,t,n){if(Z(n))n.forEach(s=>es(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))Ds.test(n)?e.setProperty(t,n.replace(Ds,""),"important"):e.setProperty(t,n);else{const s=Sd(e,t);Ds.test(n)?e.setProperty(an(s),n.replace(Ds,""),"important"):e[s]=n}}const jo=["Webkit","Moz","ms"],qr={};function Sd(e,t){const n=qr[t];if(n)return n;let s=nt(t);if(s!=="filter"&&s in e)return qr[t]=s;s=ar(s);for(let r=0;rUr||(Od.then(()=>Ur=0),Ur=Date.now());function kd(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const r=n.value;if(Z(r)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const o=r.slice(),a=[s];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Id=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?vd(e,s,o):t==="style"?Ed(e,n,s):sr(t)?rr(t)||Ad(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ld(e,t,s,o))?(Fo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Vo(e,t,s,o,i,t!=="value")):e._isVueCE&&(Dd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Pe(s)))?Fo(e,nt(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Vo(e,t,s,o))};function Ld(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&qo(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return qo(t)&&Pe(n)?!1:t in e}function Dd(e,t){const n=e._def.props;if(!n)return!1;const s=nt(t);return Array.isArray(n)?n.some(r=>nt(r)===s):Object.keys(n).some(r=>nt(r)===s)}const Fn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>Vs(t,n):t};function Nd(e){e.target.composing=!0}function Uo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Mt=Symbol("_assign"),Ns=Symbol("_initialValue");function Hr(e,t,n){return t&&(e=e.trim()),n&&(e=lr(e)),e}const bg={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e.parentNode&&(e.type==="text"?e[Ns]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Ns]=e.defaultValue.replace(/\r\n?/g,` `))),e[Mt]=Fn(r);const i=s||r.props&&r.props.type==="number";nn(e,t?"change":"input",o=>{o.target.composing||e[Mt](Hr(e.value,n,i))}),(n||i)&&nn(e,"change",()=>{e.value=Hr(e.value,n,i)}),t||(nn(e,"compositionstart",Nd),nn(e,"compositionend",Uo),nn(e,"change",Uo))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const r=t??"",i=e[Ns];delete e[Ns],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Mt](Hr(e.value,n,s)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[Mt]=Fn(o),e.composing)return;const a=(i||e.type==="number")&&!/^0\d/.test(e.value)?lr(e.value):e.value,l=t??"";if(a===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===l)||(e.value=l)}},wg={deep:!0,created(e,t,n){e[Mt]=Fn(n),nn(e,"change",()=>{const s=e._modelValue,r=gs(e),i=e.checked,o=e[Mt];if(Z(s)){const a=ki(s,r),l=a!==-1;if(i&&!l)o(s.concat(r));else if(!i&&l){const c=[...s];c.splice(a,1),o(c)}}else if(Bt(s)){const a=new Set(s);i?a.add(r):a.delete(r),o(a)}else o(Fl(e,i))})},mounted:Ho,beforeUpdate(e,t,n){e[Mt]=Fn(n),Ho(e,t,n)}};function Ho(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(Z(t))r=ki(t,s.props.value)>-1;else if(Bt(t))r=t.has(s.props.value);else{if(t===n)return;r=qt(t,Fl(e,!0))}e.checked!==r&&(e.checked=r)}const Eg={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,nn(e,"change",()=>{const r=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?lr(gs(l)):gs(l)),i=e.multiple,o=i?Bt(e._modelValue)?new Set(r):r:r[0],a=e._pendingValue=[i,i?Z(o)?r.slice():r:o];try{e[Mt](o)}finally{dr(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[Mt]=Fn(s)},mounted(e,{value:t}){Ko(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Mt]=Fn(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!$d(t,n[1],n[0]))&&Ko(e,t)}};function $d(e,t,n){if(!n||Z(e))return qt(e,t);if(Bt(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function Ko(e,t){const n=e.multiple,s=Z(t);if(!(n&&!s&&!Bt(t))){for(let r=0,i=e.options.length;rString(c)===String(a)):o.selected=ki(t,a)>-1}else o.selected=t.has(a);else if(qt(gs(o),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function gs(e){return"_value"in e?e._value:e.value}function Fl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const jd=["ctrl","shift","alt","meta"],zd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>jd.some(n=>e[`${n}Key`]&&!t.includes(n))},Sg=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(r=>{if(!("key"in r))return;const i=an(r.key);if(t.some(o=>o===i||Vd[o]===i))return e(r)}))},Fd=Be({patchProp:Id},gd);let Wo;function Bd(){return Wo||(Wo=Yf(Fd))}const qd=((...e)=>{const t=Bd().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Hd(s);if(!r)return;const i=t._component;!se(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Ud(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t});function Ud(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Hd(e){return Pe(e)?document.querySelector(e):e}let Bl;const br=e=>Bl=e,ql=Symbol();function pi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var os;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(os||(os={}));function Kd(){const e=za(!0),t=e.run(()=>X({}));let n=[],s=[];const r=zi({install(i){br(r),r._a=i,i.provide(ql,r),i.config.globalProperties.$pinia=r,s.forEach(o=>n.push(o)),s=[]},use(i){return this._a?n.push(i):s.push(i),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return r}const Ul=()=>{};function Go(e,t,n,s=Ul){e.add(t);const r=()=>{e.delete(t)&&s()};return!n&&Va()&&Mu(r),r}function Cn(e,...t){e.forEach(n=>{n(...t)})}const Wd=e=>e(),Jo=Symbol(),Kr=Symbol();function mi(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],r=e[n];pi(r)&&pi(s)&&e.hasOwnProperty(n)&&!De(s)&&!Ot(s)?e[n]=mi(r,s):e[n]=s}return e}const Gd=Symbol();function Jd(e){return!pi(e)||!Object.prototype.hasOwnProperty.call(e,Gd)}const{assign:Zt}=Object;function Yd(e){return!!(De(e)&&e.effect)}function Zd(e,t,n,s){const{state:r,actions:i,getters:o}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=r?r():{});const u=Gu(n.state.value[e]);return Zt(u,i,Object.keys(o||{}).reduce((f,p)=>(f[p]=zi(ne(()=>{br(n);const g=n._s.get(e);return o[p].call(g,g)})),f),{}))}return l=Hl(e,c,t,n,s,!0),l}function Hl(e,t,n={},s,r,i){let o;const a=Zt({actions:{}},n),l={deep:!0};let c,u,f=new Set,p=new Set,g;const v=s.state.value[e];!i&&!v&&(s.state.value[e]={});let w;function S(F){let B;c=u=!1,typeof F=="function"?(F(s.state.value[e]),B={type:os.patchFunction,storeId:e,events:g}):(mi(s.state.value[e],F),B={type:os.patchObject,payload:F,storeId:e,events:g});const oe=w=Symbol();dr().then(()=>{w===oe&&(c=!0)}),u=!0,Cn(f,B,s.state.value[e])}const E=i?function(){const{state:B}=n,oe=B?B():{};this.$patch(L=>{Zt(L,oe)})}:Ul;function y(){o.stop(),f.clear(),p.clear(),s._s.delete(e)}const C=(F,B="")=>{if(Jo in F)return F[Kr]=B,F;const oe=function(){br(s);const L=Array.from(arguments),Me=new Set,Ce=new Set;function H(W){Me.add(W)}function Se(W){Ce.add(W)}Cn(p,{args:L,name:oe[Kr],store:N,after:H,onError:Se});let ee;try{ee=F.apply(this&&this.$id===e?this:N,L)}catch(W){throw Cn(Ce,W),W}return ee instanceof Promise?ee.then(W=>(Cn(Me,W),W)).catch(W=>(Cn(Ce,W),Promise.reject(W))):(Cn(Me,ee),ee)};return oe[Jo]=!0,oe[Kr]=B,oe},O={_p:s,$id:e,$onAction:Go.bind(null,p),$patch:S,$reset:E,$subscribe(F,B={}){const oe=Go(f,F,B.detached,()=>L()),L=o.run(()=>bn(()=>s.state.value[e],Me=>{(B.flush==="sync"?u:c)&&F({storeId:e,type:os.direct,events:g},Me)},Zt({},l,B)));return oe},$dispose:y},N=bs(O);s._s.set(e,N);const $=(s._a&&s._a.runWithContext||Wd)(()=>s._e.run(()=>(o=za()).run(()=>t({action:C}))));for(const F in $){const B=$[F];if(De(B)&&!Yd(B)||Ot(B))i||(v&&Jd(B)&&(De(B)?B.value=v[F]:mi(B,v[F])),s.state.value[e][F]=B);else if(typeof B=="function"){const oe=C(B,F);$[F]=oe,a.actions[F]=B}}return Zt(N,$),Zt(he(N),$),Object.defineProperty(N,"$state",{get:()=>s.state.value[e],set:F=>{S(B=>{Zt(B,F)})}}),s._p.forEach(F=>{Zt(N,o.run(()=>F({store:N,app:s._a,pinia:s,options:a})))}),v&&i&&n.hydrate&&n.hydrate(N.$state,v),c=!0,u=!0,N}function Wt(e,t,n){let s;const r=typeof t=="function";s=r?n:t;function i(o,a){const l=of();return o=o||(l?lt(ql,null):null),o&&br(o),o=Bl,o._s.has(e)||(r?Hl(e,t,s,o):Zd(e,s,o)),o._s.get(e)}return i.$id=e,i}const Rg=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Ag=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Mg=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Cg=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),xg=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Og=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));const kn=typeof document<"u";function Kl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Qd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Kl(e.default)}const ve=Object.assign;function Wr(e,t){const n={};for(const s in t){const r=t[s];n[s]=gt(r)?r.map(e):e(r)}return n}const as=()=>{},gt=Array.isArray;function Yo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const Wl=/#/g,Xd=/&/g,eh=/\//g,th=/=/g,nh=/\?/g,Gl=/\+/g,sh=/%5B/g,rh=/%5D/g,Jl=/%5E/g,ih=/%60/g,Yl=/%7B/g,oh=/%7C/g,Zl=/%7D/g,ah=/%20/g;function Gi(e){return e==null?"":encodeURI(""+e).replace(oh,"|").replace(sh,"[").replace(rh,"]")}function lh(e){return Gi(e).replace(Yl,"{").replace(Zl,"}").replace(Jl,"^")}function gi(e){return Gi(e).replace(Gl,"%2B").replace(ah,"+").replace(Wl,"%23").replace(Xd,"%26").replace(ih,"`").replace(Yl,"{").replace(Zl,"}").replace(Jl,"^")}function ch(e){return gi(e).replace(th,"%3D")}function uh(e){return Gi(e).replace(Wl,"%23").replace(nh,"%3F")}function fh(e){return uh(e).replace(eh,"%2F")}function ys(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const dh=/\/$/,hh=e=>e.replace(dh,"");function Gr(e,t,n="/"){let s,r={},i="",o="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(s=t.slice(0,l),i=t.slice(l,a>0?a:t.length),r=e(i.slice(1))),a>=0&&(s=s||t.slice(0,a),o=t.slice(a,t.length)),s=yh(s??t,n),{fullPath:s+i+o,path:s,query:r,hash:ys(o)}}function ph(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Zo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function mh(e,t,n){const s=t.matched.length-1,r=n.matched.length-1;return s>-1&&s===r&&Bn(t.matched[s],n.matched[r])&&Ql(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Bn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ql(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!gh(e[n],t[n]))return!1;return!0}function gh(e,t){return gt(e)?Qo(e,t):gt(t)?Qo(t,e):e?.valueOf()===t?.valueOf()}function Qo(e,t){return gt(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function yh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),r=s[s.length-1];(r===".."||r===".")&&s.push("");let i=n.length-1,o,a;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(o).join("/")}const Gt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let yi=(function(e){return e.pop="pop",e.push="push",e})({}),Jr=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function vh(e){if(!e)if(kn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),hh(e)}const _h=/^[^#]+#/;function bh(e,t){return e.replace(_h,"#")+t}function wh(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const wr=()=>({left:window.scrollX,top:window.scrollY});function Eh(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=wh(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Xo(e,t){return(history.state?history.state.position-t:-1)+e}const vi=new Map;function Sh(e,t){vi.set(e,t)}function Th(e){const t=vi.get(e);return vi.delete(e),t}function Rh(e){return typeof e=="string"||e&&typeof e=="object"}function Xl(e){return typeof e=="string"||typeof e=="symbol"}let Le=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const ec=Symbol("");Le.MATCHER_NOT_FOUND+"",Le.NAVIGATION_GUARD_REDIRECT+"",Le.NAVIGATION_ABORTED+"",Le.NAVIGATION_CANCELLED+"",Le.NAVIGATION_DUPLICATED+"";function qn(e,t){return ve(new Error,{type:e,[ec]:!0},t)}function Lt(e,t){return e instanceof Error&&ec in e&&(t==null||!!(e.type&t))}const Ah=["params","query","hash"];function Mh(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Ah)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Ch(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&gi(r)):[s&&gi(s)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function xh(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=gt(s)?s.map(r=>r==null?null:""+r):s==null?s:""+s)}return t}const tc=Symbol(""),ta=Symbol(""),Er=Symbol(""),Ji=Symbol(""),_i=Symbol("");function Zn(){let e=[];function t(s){return e.push(s),()=>{const r=e.indexOf(s);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Oh(e,t,n){const s=()=>{e[t].delete(n)};gr(s),pl(s),hl(()=>{e[t].add(n)}),e[t].add(n)}function Pg(e){const t=lt(tc,{}).value;t&&Oh(t,"leaveGuards",e)}function en(e,t,n,s,r,i=o=>o()){const o=s&&(s.enterCallbacks[r]=s.enterCallbacks[r]||[]);return()=>new Promise((a,l)=>{const c=p=>{p===!1?l(qn(Le.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?l(p):Rh(p)?l(qn(Le.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(o&&s.enterCallbacks[r]===o&&typeof p=="function"&&o.push(p),a())},u=i(()=>e.call(s&&s.instances[r],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(p=>l(p))})}function Yr(e,t,n,s,r=i=>i()){const i=[];for(const o of e)for(const a in o.components){let l=o.components[a];if(!(t!=="beforeRouteEnter"&&!o.instances[a]))if(Kl(l)){const c=(l.__vccOpts||l)[t];c&&i.push(en(c,n,s,o,a,r))}else{let c=l();i.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${o.path}"`);const f=Qd(u)?u.default:u;o.mods[a]=u,o.components[a]=f;const p=(f.__vccOpts||f)[t];return p&&en(p,n,s,o,a,r)()}))}}return i}function Ph(e,t){const n=[],s=[],r=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;oBn(c,a))?s.push(a):n.push(a));const l=e.matched[o];l&&(t.matched.find(c=>Bn(c,l))||r.push(l))}return[n,s,r]}let kh=()=>location.protocol+"//"+location.host;function nc(e,t){const{pathname:n,search:s,hash:r}=t,i=e.indexOf("#");if(i>-1){let o=r.includes(e.slice(i))?e.slice(i).length:1,a=r.slice(o);return a[0]!=="/"&&(a="/"+a),Zo(a,"")}return Zo(n,e)+s+r}function Ih(e,t,n,s){let r=[],i=[],o=null;const a=({state:p})=>{const g=nc(e,location),v=n.value,w=t.value;let S=0;if(p){if(n.value=g,t.value=p,o&&o===v){o=null;return}S=w?p.position-w.position:0}else s(g);r.forEach(E=>{E(n.value,v,{delta:S,type:yi.pop,direction:S?S>0?Jr.forward:Jr.back:Jr.unknown})})};function l(){o=n.value}function c(p){r.push(p);const g=()=>{const v=r.indexOf(p);v>-1&&r.splice(v,1)};return i.push(g),g}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(ve({},p.state,{scroll:wr()}),"")}}function f(){for(const p of i)p();i=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:f}}function na(e,t,n,s=!1,r=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:r?wr():null}}function Lh(e){const{history:t,location:n}=window,s={value:nc(e,n)},r={value:t.state};r.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(l,c,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:kh()+e+l;try{t[u?"replaceState":"pushState"](c,"",p),r.value=c}catch(g){console.error(g),n[u?"replace":"assign"](p)}}function o(l,c){i(l,ve({},t.state,na(r.value.back,l,r.value.forward,!0),c,{position:r.value.position}),!0),s.value=l}function a(l,c){const u=ve({},r.value,t.state,{forward:l,scroll:wr()});i(u.current,u,!0),i(l,ve({},na(s.value,l,null),{position:u.position+1},c),!1),s.value=l}return{location:s,state:r,push:a,replace:o}}function Dh(e){e=vh(e);const t=Lh(e),n=Ih(e,t.state,t.location,t.replace);function s(i,o=!0){o||n.pauseListeners(),history.go(i)}const r=ve({location:"",base:e,go:s,createHref:bh.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}let yn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var ze=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(ze||{});const Nh={type:yn.Static,value:""},$h=/[a-zA-Z0-9_]/;function jh(e){if(!e)return[[]];if(e==="/")return[[Nh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${c}": ${g}`)}let n=ze.Static,s=n;const r=[];let i;function o(){i&&r.push(i),i=[]}let a=0,l,c="",u="";function f(){c&&(n===ze.Static?i.push({type:yn.Static,value:c}):n===ze.Param||n===ze.ParamRegExp||n===ze.ParamRegExpEnd?(i.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:yn.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=l}for(;at.length?t.length===1&&t[0]===Qe.Static+Qe.Segment?1:-1:0}function sc(e,t){let n=0;const s=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const qh={strict:!1,end:!0,sensitive:!1};function Uh(e,t,n){const s=Fh(jh(e.path),n),r=ve(s,{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Hh(e,t){const n=[],s=new Map;t=Yo(qh,t);function r(f){return s.get(f)}function i(f,p,g){const v=!g,w=oa(f);w.aliasOf=g&&g.record;const S=Yo(t,f),E=[w];if("alias"in f){const O=typeof f.alias=="string"?[f.alias]:f.alias;for(const N of O)E.push(oa(ve({},w,{components:g?g.record.components:w.components,path:N,aliasOf:g?g.record:w})))}let y,C;for(const O of E){const{path:N}=O;if(p&&N[0]!=="/"){const Q=p.record.path,$=Q[Q.length-1]==="/"?"":"/";O.path=p.record.path+(N&&$+N)}if(y=Uh(O,p,S),g?g.alias.push(y):(C=C||y,C!==y&&C.alias.push(y),v&&f.name&&!aa(y)&&o(f.name)),rc(y)&&l(y),w.children){const Q=w.children;for(let $=0;${o(C)}:as}function o(f){if(Xl(f)){const p=s.get(f);p&&(s.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&s.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function a(){return n}function l(f){const p=Gh(f,n);n.splice(p,0,f),f.record.name&&!aa(f)&&s.set(f.record.name,f)}function c(f,p){let g,v={},w,S;if("name"in f&&f.name){if(g=s.get(f.name),!g)throw qn(Le.MATCHER_NOT_FOUND,{location:f});S=g.record.name,v=ve(ia(p.params,g.keys.filter(C=>!C.optional).concat(g.parent?g.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&ia(f.params,g.keys.map(C=>C.name))),w=g.stringify(v)}else if(f.path!=null)w=f.path,g=n.find(C=>C.re.test(w)),g&&(v=g.parse(w),S=g.record.name);else{if(g=p.name?s.get(p.name):n.find(C=>C.re.test(p.path)),!g)throw qn(Le.MATCHER_NOT_FOUND,{location:f,currentLocation:p});S=g.record.name,v=ve({},p.params,f.params),w=g.stringify(v)}const E=[];let y=g;for(;y;)E.unshift(y.record),y=y.parent;return{name:S,path:w,params:v,matched:E,meta:Wh(E)}}e.forEach(f=>i(f));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:c,removeRoute:o,clearRoutes:u,getRoutes:a,getRecordMatcher:r}}function ia(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function oa(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Kh(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Kh(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function aa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Wh(e){return e.reduce((t,n)=>ve(t,n.meta),{})}function Gh(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;sc(e,t[i])<0?s=i:n=i+1}const r=Jh(e);return r&&(s=t.lastIndexOf(r,s-1)),s}function Jh(e){let t=e;for(;t=t.parent;)if(rc(t)&&sc(e,t)===0)return t}function rc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function la(e){const t=lt(Er),n=lt(Ji),s=ne(()=>{const l=Oe(e.to);return t.resolve(l)}),r=ne(()=>{const{matched:l}=s.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex(Bn.bind(null,u));if(p>-1)return p;const g=ca(l[c-2]);return c>1&&ca(u)===g&&f[f.length-1].path!==g?f.findIndex(Bn.bind(null,l[c-2])):p}),i=ne(()=>r.value>-1&&ep(n.params,s.value.params)),o=ne(()=>r.value>-1&&r.value===n.matched.length-1&&Ql(n.params,s.value.params));function a(l={}){if(Xh(l)){const c=t[Oe(e.replace)?"replace":"push"](Oe(e.to)).catch(as);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:s,href:ne(()=>s.value.href),isActive:i,isExactActive:o,navigate:a}}function Yh(e){return e.length===1?e[0]:e}const Zh=Tn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:la,setup(e,{slots:t}){const n=bs(la(e)),{options:s}=lt(Er),r=ne(()=>({[ua(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[ua(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Yh(t.default(n));return e.custom?i:jl("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},i)}}}),Qh=Zh;function Xh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ep(e,t){for(const n in t){const s=t[n],r=e[n];if(typeof s=="string"){if(s!==r)return!1}else if(!gt(r)||r.length!==s.length||s.some((i,o)=>i.valueOf()!==r[o].valueOf()))return!1}return!0}function ca(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ua=(e,t,n)=>e??t??n,tp=Tn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=lt(_i),r=ne(()=>e.route||s.value),i=lt(ta,0),o=ne(()=>{let c=Oe(i);const{matched:u}=r.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=ne(()=>r.value.matched[o.value]);Fs(ta,ne(()=>o.value+1)),Fs(tc,a),Fs(_i,r);const l=X();return bn(()=>[l.value,a.value,e.name],([c,u,f],[p,g,v])=>{u&&(u.instances[f]=c,g&&g!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=g.leaveGuards),u.updateGuards.size||(u.updateGuards=g.updateGuards))),c&&u&&(!g||!Bn(u,g)||!p)&&(u.enterCallbacks[f]||[]).forEach(w=>w(c))},{flush:"post"}),()=>{const c=r.value,u=e.name,f=a.value,p=f&&f.components[u];if(!p)return fa(n.default,{Component:p,route:c});const g=f.props[u],v=g?g===!0?c.params:typeof g=="function"?g(c):g:null,S=jl(p,ve({},v,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return fa(n.default,{Component:S,route:c})||S}}});function fa(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const np=tp;function sp(e){const t=Hh(e.routes,e),n=e.parseQuery||Ch,s=e.stringifyQuery||ea,r=e.history,i=Zn(),o=Zn(),a=Zn(),l=jn(Gt);let c=Gt;kn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Wr.bind(null,x=>""+x),f=Wr.bind(null,fh),p=Wr.bind(null,ys);function g(x,q){let z,K;return Xl(x)?(z=t.getRecordMatcher(x),K=q):K=x,t.addRoute(K,z)}function v(x){const q=t.getRecordMatcher(x);q&&t.removeRoute(q)}function w(){return t.getRoutes().map(x=>x.record)}function S(x){return!!t.getRecordMatcher(x)}function E(x,q){if(q=ve({},q||l.value),typeof x=="string"){const _=Gr(n,x,q.path),A=t.resolve({path:_.path},q),M=r.createHref(_.fullPath);return ve(_,A,{params:p(A.params),hash:ys(_.hash),redirectedFrom:void 0,href:M})}let z;if(x.path!=null)z=ve({},x,{path:Gr(n,x.path,q.path).path});else{const _=ve({},x.params);for(const A in _)_[A]==null&&delete _[A];z=ve({},x,{params:f(_)}),q.params=f(q.params)}const K=t.resolve(z,q),ie=x.hash||"";K.params=u(p(K.params));const h=ph(s,ve({},x,{hash:lh(ie),path:K.path})),m=r.createHref(h);return ve({fullPath:h,hash:ie,query:s===ea?xh(x.query):x.query||{}},K,{redirectedFrom:void 0,href:m})}function y(x){return typeof x=="string"?Gr(n,x,l.value.path):ve({},x)}function C(x,q){if(c!==x)return qn(Le.NAVIGATION_CANCELLED,{from:q,to:x})}function O(x){return $(x)}function N(x){return O(ve(y(x),{replace:!0}))}function Q(x,q){const z=x.matched[x.matched.length-1];if(z&&z.redirect){const{redirect:K}=z;let ie=typeof K=="function"?K(x,q):K;return typeof ie=="string"&&(ie=ie.includes("?")||ie.includes("#")?ie=y(ie):{path:ie},ie.params={}),ve({query:x.query,hash:x.hash,params:ie.path!=null?{}:x.params},ie)}}function $(x,q){const z=c=E(x),K=l.value,ie=x.state,h=x.force,m=x.replace===!0,_=Q(z,K);if(_)return $(ve(y(_),{state:typeof _=="object"?ve({},ie,_.state):ie,force:h,replace:m}),q||z);const A=z;A.redirectedFrom=q;let M;return!h&&mh(s,K,z)&&(M=qn(Le.NAVIGATION_DUPLICATED,{to:A,from:K}),Te(K,K,!0,!1)),(M?Promise.resolve(M):oe(A,K)).catch(T=>Lt(T)?Lt(T,Le.NAVIGATION_GUARD_REDIRECT)?T:me(T):re(T,A,K)).then(T=>{if(T){if(Lt(T,Le.NAVIGATION_GUARD_REDIRECT))return $(ve({replace:m},y(T.to),{state:typeof T.to=="object"?ve({},ie,T.to.state):ie,force:h}),q||A)}else T=Me(A,K,!0,m,ie);return L(A,K,T),T})}function F(x,q){const z=C(x,q);return z?Promise.reject(z):Promise.resolve()}function B(x){const q=vt.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(x):x()}function oe(x,q){let z;const[K,ie,h]=Ph(x,q);z=Yr(K.reverse(),"beforeRouteLeave",x,q);for(const _ of K)_.leaveGuards.forEach(A=>{z.push(en(A,x,q))});const m=F.bind(null,x,q);return z.push(m),He(z).then(()=>{z=[];for(const _ of i.list())z.push(en(_,x,q));return z.push(m),He(z)}).then(()=>{z=Yr(ie,"beforeRouteUpdate",x,q);for(const _ of ie)_.updateGuards.forEach(A=>{z.push(en(A,x,q))});return z.push(m),He(z)}).then(()=>{z=[];for(const _ of h)if(_.beforeEnter)if(gt(_.beforeEnter))for(const A of _.beforeEnter)z.push(en(A,x,q));else z.push(en(_.beforeEnter,x,q));return z.push(m),He(z)}).then(()=>(x.matched.forEach(_=>_.enterCallbacks={}),z=Yr(h,"beforeRouteEnter",x,q,B),z.push(m),He(z))).then(()=>{z=[];for(const _ of o.list())z.push(en(_,x,q));return z.push(m),He(z)}).catch(_=>Lt(_,Le.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function L(x,q,z){a.list().forEach(K=>B(()=>K(x,q,z)))}function Me(x,q,z,K,ie){const h=C(x,q);if(h)return h;const m=q===Gt,_=kn?history.state:{};z&&(K||m?r.replace(x.fullPath,ve({scroll:m&&_&&_.scroll},ie)):r.push(x.fullPath,ie)),l.value=x,Te(x,q,z,m),me()}let Ce;function H(){Ce||(Ce=r.listen((x,q,z)=>{if(!rt.listening)return;const K=E(x),ie=Q(K,rt.currentRoute.value);if(ie){$(ve(ie,{replace:!0,force:!0}),K).catch(as);return}c=K;const h=l.value;kn&&Sh(Xo(h.fullPath,z.delta),wr()),oe(K,h).catch(m=>Lt(m,Le.NAVIGATION_ABORTED|Le.NAVIGATION_CANCELLED)?m:Lt(m,Le.NAVIGATION_GUARD_REDIRECT)?($(ve(y(m.to),{force:!0}),K).then(_=>{Lt(_,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&!z.delta&&z.type===yi.pop&&r.go(-1,!1)}).catch(as),Promise.reject()):(z.delta&&r.go(-z.delta,!1),re(m,K,h))).then(m=>{m=m||Me(K,h,!1),m&&(z.delta&&!Lt(m,Le.NAVIGATION_CANCELLED)?r.go(-z.delta,!1):z.type===yi.pop&&Lt(m,Le.NAVIGATION_ABORTED|Le.NAVIGATION_DUPLICATED)&&r.go(-1,!1)),L(K,h,m)}).catch(as)}))}let Se=Zn(),ee=Zn(),W;function re(x,q,z){me(x);const K=ee.list();return K.length?K.forEach(ie=>ie(x,q,z)):console.error(x),Promise.reject(x)}function $e(){return W&&l.value!==Gt?Promise.resolve():new Promise((x,q)=>{Se.add([x,q])})}function me(x){return W||(W=!x,H(),Se.list().forEach(([q,z])=>x?z(x):q()),Se.reset()),x}function Te(x,q,z,K){const{scrollBehavior:ie}=e;if(!kn||!ie)return Promise.resolve();const h=!z&&Th(Xo(x.fullPath,0))||(K||!z)&&history.state&&history.state.scroll||null;return dr().then(()=>ie(x,q,h)).then(m=>m&&Eh(m)).catch(m=>re(m,x,q))}const ke=x=>r.go(x);let yt;const vt=new Set,rt={currentRoute:l,listening:!0,addRoute:g,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:w,resolve:E,options:e,push:O,replace:N,go:ke,back:()=>ke(-1),forward:()=>ke(1),beforeEach:i.add,beforeResolve:o.add,afterEach:a.add,onError:ee.add,isReady:$e,install(x){x.component("RouterLink",Qh),x.component("RouterView",np),x.config.globalProperties.$router=rt,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>Oe(l)}),kn&&!yt&&l.value===Gt&&(yt=!0,O(r.location).catch(K=>{}));const q={};for(const K in Gt)Object.defineProperty(q,K,{get:()=>l.value[K],enumerable:!0});x.provide(Er,rt),x.provide(Ji,tl(q)),x.provide(_i,l);const z=x.unmount;vt.add(x),x.unmount=function(){vt.delete(x),vt.size<1&&(c=Gt,Ce&&Ce(),Ce=null,l.value=Gt,yt=!1,W=!1),z()}}};function He(x){return x.reduce((q,z)=>q.then(()=>B(z)),Promise.resolve())}return rt}function kg(){return lt(Er)}function ic(e){return lt(Ji)}const rp={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},ip=["d"],bi=Tn({__name:"Icon",props:{name:{}},setup(e){const t=e,n={home:"M3 11l9-8 9 8M5 10v10h5v-6h4v6h5V10",calendar:"M4 6h16v14H4zM4 10h16M8 3v5M16 3v5",book:"M5 4h10a3 3 0 013 3v13H8a3 3 0 01-3-3zM5 17a3 3 0 013-3h10",quiz:"M12 21a9 9 0 100-18 9 9 0 000 18zM9.5 9.5a2.5 2.5 0 114 2c-.9.6-1.5 1-1.5 2M12 17h.01",more:"M5 12h.01M12 12h.01M19 12h.01",flag:"M5 21V4M5 4h11l-2 4 2 4H5",grad:"M2 9l10-5 10 5-10 5zM6 11.5V16c0 1.5 3 3 6 3s6-1.5 6-3v-4.5",file:"M7 3h7l5 5v13H7zM14 3v5h5M10 13h6M10 17h6",slides:"M3 4h18v12H3zM12 16v4M8 20h8",user:"M12 12a4 4 0 100-8 4 4 0 000 8zM4 21c0-4 4-6 8-6s8 2 8 6",out:"M10 4H5v16h5M15 8l4 4-4 4M19 12H9",chevron:"M9 6l6 6-6 6","arrow-left":"M19 12H5M11 6l-6 6 6 6","arrow-right":"M5 12h14M13 6l6 6-6 6",paperclip:"M20 11.5l-8.5 8.5a5 5 0 01-7-7L13 4.5a3.5 3.5 0 015 5L9.5 18a2 2 0 01-3-3L14 7.5",at:"M12 16a4 4 0 100-8 4 4 0 000 8zM16 12v1.5a2.5 2.5 0 005 0V12a9 9 0 10-3.5 7.1","arrow-up":"M12 19V5M5 12l7-7 7 7","arrow-down":"M12 5v14M5 12l7 7 7-7",smile:"M12 21a9 9 0 100-18 9 9 0 000 18zM8.5 14.5c1 1.2 2.2 1.8 3.5 1.8s2.5-.6 3.5-1.8M9 9.5h.01M15 9.5h.01",pencil:"M4 20h4L19 9l-4-4L4 16zM13.5 6.5l4 4",trash:"M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3",close:"M6 6l12 12M18 6L6 18",plus:"M12 5v14M5 12h14",pin:"M9 3h6M10 3v6l-3 4h10l-3-4V3M12 13v8",checklist:"M4 6l2 2 3-3M4 13l2 2 3-3M12 7h8M12 14h8M4 19h.01M12 19h8",cast:"M2 16.1A5 5 0 015.9 20M2 12.05A9 9 0 019.95 20M2 8V6a2 2 0 012-2h16a2 2 0 012 2v12a2 2 0 01-2 2h-6M2 20h.01",sun:"M12 16a4 4 0 100-8 4 4 0 000 8zM12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4",moon:"M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z",bold:"M7 5h6a3.5 3.5 0 010 7H7zM7 12h7a3.5 3.5 0 010 7H7z",italic:"M10 5h8M6 19h8M14 5l-4 14",heading:"M6 4v16M18 4v16M6 12h12",list:"M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01",quote:"M5 7h5v5c0 3-2 5-5 6M14 7h5v5c0 3-2 5-5 6",link:"M10 14a4 4 0 005.7 0l3-3a4 4 0 00-5.7-5.7l-1 1M14 10a4 4 0 00-5.7 0l-3 3a4 4 0 005.7 5.7l1-1",image:"M4 5h16v14H4zM4 16l5-5 4 4 3-3 4 4M15 9h.01",table:"M4 5h16v14H4zM4 10h16M4 15h16M10 5v14"};return(s,r)=>(Xe(),St("svg",rp,[xe("path",{d:n[t.name]??""},null,8,ip)]))}}),op="bm.theme",ap="dark",lp={light:"#f3f4f1",dark:"#141917"},cp=/(?:^|;\s*)bm\.theme=(light|dark)(?:;|$)/;function up(e){const t=cp.exec(e);return t?t[1]:ap}function fp(e,t){return`${op}=${e}; Path=/; Max-Age=31536000; SameSite=Lax${t?"; Secure":""}`}function dp(){return up(document.cookie)}function hp(e){document.cookie=fp(e,location.protocol==="https:")}function pp(e){document.documentElement.dataset.theme=e;const t=document.getElementById("bm-theme-color");t&&t.setAttribute("content",lp[e])}const mp=Wt("theme",()=>{const e=X(dp()),t=ne(()=>e.value==="dark");function n(r){e.value=r,hp(r),pp(r)}function s(){n(e.value==="dark"?"light":"dark")}return{theme:e,dark:t,set:n,toggle:s}}),gp=["aria-label","title"],da=Tn({__name:"ThemeToggle",setup(e){const t=mp(),n=ne(()=>t.dark?"Tryb jasny":"Tryb ciemny");return(s,r)=>(Xe(),St("button",{type:"button",class:"icon-btn theme-toggle","aria-label":n.value,title:n.value,onClick:r[0]||(r[0]=i=>Oe(t).toggle())},[Ee(bi,{name:Oe(t).dark?"sun":"moon"},null,8,["name"])],8,gp))}});class Ne extends Error{constructor(n,s,r={},i){super(s);cn(this,"status");cn(this,"errors");cn(this,"body");this.name="ApiError",this.status=n,this.errors=r,this.body=i}}const Zr="bm.token";class yp{constructor(t,n){cn(this,"local");cn(this,"session");cn(this,"memory",null);this.local=t,this.session=n}read(t){try{return t?.getItem(Zr)??null}catch{return null}}get(){return this.read(this.local)??this.read(this.session)??this.memory}get remembered(){return this.read(this.local)!==null}set(t,n){this.clear();try{(n?this.local:this.session)?.setItem(Zr,t)}catch{}this.get()===null&&(this.memory=t)}replace(t){this.set(t,this.remembered)}clear(){this.memory=null;for(const t of[this.local,this.session])try{t?.removeItem(Zr)}catch{}}}function vp(e){const t=e.fetch??((...g)=>fetch(...g)),{tokens:n}=e;let s=null;function r(g,v){if(!v)return g;const w=new URLSearchParams;for(const[E,y]of Object.entries(v))y!=null&&y!==""&&w.set(E,String(y));const S=w.toString();return S?`${g}?${S}`:g}async function i(g,v){const w={Accept:"application/json"};if(v.headers)for(const[y,C]of Object.entries(v.headers))y.toLowerCase()!=="authorization"&&(w[y]=C);const S=n.get();v.auth!==!1&&S&&(w.Authorization=`Bearer ${S}`);let E;return v.body!==void 0&&(w["Content-Type"]="application/json",E=JSON.stringify(v.body)),t(r(g,v.query),{method:v.method??"GET",headers:w,body:E})}function o(){return s||(s=(async()=>{try{const g=await i("/_user/api/v1/refresh",{method:"POST"});if(!g.ok)return!1;const v=await g.json(),w=v.token??v.data?.token;return w?(n.replace(w),!0):!1}catch{return!1}finally{queueMicrotask(()=>{s=null})}})()),s}async function a(g){const v=await g.text();if(!v)return null;try{return JSON.parse(v)}catch{return null}}function l(g,v){const w=v??{},S=typeof w.error=="string"&&w.error||typeof w.message=="string"&&w.message||(g.status>=500?"Błąd serwera. Spróbuj ponownie za chwilę.":`Błąd ${g.status}`);return new Ne(g.status,S,w.errors??{},v??void 0)}async function c(g,v){let w;const S=n.get();try{w=await i(g,v)}catch{throw new Ne(0,"Brak połączenia z serwerem.")}if(w.status===401&&v.auth!==!1&&S){const E=n.get();if(E!==null&&E!==S?!0:await o())try{w=await i(g,v)}catch{throw new Ne(0,"Brak połączenia z serwerem.")}w.status===401&&(n.clear(),e.onUnauthorized?.())}return w}async function u(g,v={}){const w=await c(g,v),S=await a(w);if(!w.ok)throw l(w,S);return S}async function f(g,v={}){const w=await c(g,v);if(!w.ok){const S=await a(w);throw l(w,S)}return w.blob()}async function p(g,v={}){const w=await u(g,v);return w&&typeof w=="object"&&"data"in w?w.data:w}return{request:p,raw:u,blob:f}}function ha(e){try{return e()}catch{return null}}const et=new yp(ha(()=>window.localStorage),ha(()=>window.sessionStorage));let oc=()=>{};function _p(e){oc=e}const U=vp({tokens:et,onUnauthorized:()=>oc()}),dt="/_user/api/v1",dn={login:e=>U.request(`${dt}/login`,{method:"POST",body:e,auth:!1}),register:e=>U.request(`${dt}/register`,{method:"POST",body:e,auth:!1}),fetch:()=>U.request(`${dt}/fetch`),logout:()=>U.request(`${dt}/logout`,{method:"POST"}),forgotPassword:e=>U.request(`${dt}/forgot-password`,{method:"POST",body:{email:e},auth:!1}),resetPassword:e=>U.request(`${dt}/reset-password`,{method:"POST",body:e,auth:!1}),update:e=>U.request(`${dt}/update`,{method:"POST",body:e}),changePassword:e=>U.request(`${dt}/change-password`,{method:"POST",body:e}),oauthProviders:()=>U.request(`${dt}/oauth-providers`,{auth:!1}),oauthComplete:e=>U.request(`${dt}/oauth-complete?code=${encodeURIComponent(e)}`,{auth:!1}),oauthRegisterComplete:e=>U.request(`${dt}/oauth-register-complete`,{method:"POST",body:e,auth:!1}),oauthLinkTicket:()=>U.request(`${dt}/oauth-link-ticket`,{method:"POST"})},ac="Europe/Warsaw",bp="pl-PL";function lc(e,t,n,s){const r=Math.abs(e);if(r===1)return t;const i=r%10,o=r%100;return i>=2&&i<=4&&!(o>=12&&o<=14)?n:s}function wi(e,t,n,s){return`${e} ${lc(e,t,n,s)}`}const Hn=(e,t=ac)=>new Intl.DateTimeFormat(bp,{timeZone:t,...e}),wp=Hn({hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),Ep=Hn({weekday:"long",day:"numeric",month:"long"}),Sp=Hn({day:"numeric",month:"long",year:"numeric"}),Tp=Hn({day:"numeric",month:"short"});Hn({weekday:"long"});const Rp=new Intl.DateTimeFormat("sv-SE",{timeZone:ac,year:"numeric",month:"2-digit",day:"2-digit"});function $s(e){return new Date(`${e}T12:00:00Z`)}const js=e=>Hn(e,"UTC"),Ei=e=>wp.format(new Date(e)),Ap=e=>Ep.format(new Date(e)),Mp=e=>Sp.format(new Date(e)),Ig=e=>Tp.format(new Date(e)),Cp=e=>`${Mp(e)}, ${Ei(e)}`,cc=e=>Rp.format(typeof e=="string"?new Date(e):e),uc=(e=new Date)=>cc(e);function fc(e,t=new Date){const n=Date.parse(`${uc(t)}T00:00:00Z`),s=Date.parse(`${cc(e)}T00:00:00Z`);return Math.round((s-n)/864e5)}function xp(e,t=new Date){const n=fc(e,t);return n===0?"dzisiaj":n===1?"jutro":n===-1?"wczoraj":n>1?`za ${wi(n,"dzień","dni","dni")}`:`${wi(-n,"dzień","dni","dni")} temu`}function Lg(e,t){if(e===t)return js({day:"numeric",month:"long",year:"numeric"}).format($s(e));const[n,s]=e.split("-"),[r,i]=t.split("-"),o=c=>js({day:"numeric"}).format($s(c)),a=c=>js({day:"numeric",month:"long"}).format($s(c)),l=c=>js({year:"numeric"}).format($s(c));return n===r&&s===i?`${o(e)}–${a(t)} ${l(t)}`:n===r?`${a(e)} – ${a(t)} ${l(t)}`:`${a(e)} ${l(e)} – ${a(t)} ${l(t)}`}function Op(e,t){const n=i=>{const[,o,a]=i.split("-");return{d:parseInt(a,10),m:parseInt(o,10)}},s=n(e),r=n(t);return e===t?`${s.d}.${s.m}`:s.m===r.m?`${s.d}–${r.d}.${r.m}`:`${s.d}.${s.m}–${r.d}.${r.m}`}function Dg(e){return`Zjazd ${e.number} (${Op(e.starts_on,e.ends_on)})`}function Ng(e,t=uc()){const n=[...e].sort((r,i)=>i.starts_on.localeCompare(r.starts_on)),s=e.find(r=>r.starts_on<=t&&t<=r.ends_on)??e.filter(r=>r.starts_on>t).sort((r,i)=>r.starts_on.localeCompare(i.starts_on))[0];return s?[s,...n.filter(r=>r!==s)]:n}function $g(e){return e?/online/i.test(e)?"online":/stacjonarn/i.test(e)?"stacjonarny":null:null}function jg(e){return e?e.trim().toLowerCase()==="online"?"":e.trim():""}const Pp={wyklad:"wykład",cwiczenia:"ćwiczenia",konwersatorium:"konwersatorium",seminarium:"seminarium",inne:"zajęcia"},kp={zaliczenie:"zaliczenie",egzamin:"egzamin",praca:"praca",organizacyjne:"organizacyjne",inne:"inne"},Ip={pdf:"PDF",notatka:"notatka",link:"link",inne:"inne"};function zg(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(0)} KB`:`${(e/1024/1024).toFixed(1).replace(".",",")} MB`}function Si(e){return e.name.trim()||e.email}function Un(e){return e.toLocaleLowerCase("pl").replace(/ł/g,"l").normalize("NFD").replace(/\p{M}/gu,"")}function Lp(e,t){return Un(e.name).includes(t)||Un(e.email).includes(t)}function Dp(e){return[...e].sort((t,n)=>Si(t).localeCompare(Si(n),"pl"))}function Vg(e,t,n,s=8){const r=new Set(n),i=Un(t.trim()),o=Dp(e.filter(c=>!r.has(c.id)));if(!i)return o.slice(0,s);const a=[],l=[];for(const c of o){if(!Lp(c,i))continue;const u=Un(Si(c));u.startsWith(i)||u.split(/[\s-]+/).some(f=>f.startsWith(i))?a.push(c):l.push(c)}return[...a,...l].slice(0,s)}function Fg(e,t){return{is_private:e,user_ids:[...new Set(t)].sort((n,s)=>n-s)}}const Np=4;function Bg(e){return{title:e.title,type:e.type,meeting_id:e.meeting_id,source:e.source??"",url:e.url??"",tags:e.tags.map(t=>t.name),body:e.body??""}}function Ti(e){const t=e.replace(/\r\n?/g,` `).trim();return t?`${t} -`:""}function $p(e,t){const n=new Set(e),s=new Set(t);if(n.size!==s.size)return!1;for(const r of n)if(!s.has(r))return!1;return!0}function jp(e,t){return e.title.trim()===t.title.trim()&&e.type===t.type&&e.meeting_id===t.meeting_id&&e.source.trim()===t.source.trim()&&e.url.trim()===t.url.trim()&&$p(e.tags,t.tags)&&Ti(e.body)===Ti(t.body)}const pa=e=>{const t=e.trim();return t||null};function qg(e,t){const n=Ti(e.body);return{revision:t,title:e.title.trim(),type:e.type,body:n||null,source:pa(e.source),url:pa(e.url),meeting_id:e.meeting_id,tags:[...e.tags]}}function Ug(e,t){return e.includes(t)?e.filter(n=>n!==t):e.length>=Np?e:[...e,t]}function Hg(e,t,n){const s=new Set(n),r=e.filter(l=>!s.has(l.name)),i=Un(t.trim());if(!i)return r;const o=[],a=[];for(const l of r){const c=Un(l.name);c.includes(i)&&(c.startsWith(i)||c.split(/[\s\-–—]+/).some(u=>u.startsWith(i))?o.push(l):a.push(l))}return[...o,...a]}function Kg(e){return e.trim().replace(/\.+$/,"")}const dc="bm.materialDraft.";function Yi(e){return`${dc}${e}`}function Sr(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}const pn=e=>typeof e=="string";function zp(e){if(!e||typeof e!="object")return null;const t=e;if(!pn(t.title)||!pn(t.source)||!pn(t.url)||!pn(t.body)||!pn(t.type)||!Object.prototype.hasOwnProperty.call(Ip,t.type))return null;const n=t.meeting_id;return n!==null&&!(typeof n=="number"&&Number.isInteger(n)&&n>0)||!Array.isArray(t.tags)||!t.tags.every(pn)?null:{title:t.title,type:t.type,meeting_id:n,source:t.source,url:t.url,tags:[...t.tags],body:t.body}}function Wg(e,t=Sr()){let n=null;try{n=t?.getItem(Yi(e))??null}catch{return null}if(!n)return null;let s;try{s=JSON.parse(n)}catch{return null}if(!s||typeof s!="object")return null;const r=s,i=r.base_revision;if(typeof i!="number"||!Number.isInteger(i)||i<0||!pn(r.saved_at)||Number.isNaN(Date.parse(r.saved_at)))return null;const o=zp(r.fields);return o?{base_revision:i,saved_at:r.saved_at,fields:o}:null}function Gg(e,t,n=Sr()){try{n?.setItem(Yi(e),JSON.stringify(t))}catch{}}function Jg(e,t=Sr()){try{t?.removeItem(Yi(e))}catch{}}function Vp(e=Sr()){if(e)try{const t=[];for(let n=0;n0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");r=l(n.map(c=>{if(c=qp(c),c in ma)return;ma[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const p=document.createElement("link");if(p.rel=u?"stylesheet":Bp,u||(p.as="script"),p.crossOrigin="",p.href=c,a&&p.setAttribute("nonce",a),document.head.appendChild(p),u)return new Promise((g,v)=>{p.addEventListener("load",g),p.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&i(a.reason);return t().catch(i)})},tr="bm.lastPilot";function Tr(){try{return window.localStorage}catch{return null}}function hc(e){return typeof e=="string"&&e.trim()!==""&&e.length<=255&&!e.includes("/")}function Qg(e,t=Tr()){if(!(!t||!hc(e)))try{t.setItem(tr,e)}catch{}}function Up(e=Tr()){if(!e)return null;try{const t=e.getItem(tr);return hc(t)?t:null}catch{return null}}function Xg(e,t=Tr()){if(t)try{t.getItem(tr)===e&&t.removeItem(tr)}catch{}}function Hp(e=Tr()){const t=Up(e);return t?{name:"presentation-remote",params:{slug:t}}:{name:"my-presentations"}}const vn=sp({history:Dh("/"),scrollBehavior:(e,t,n)=>e.meta.bare?!1:n??(e.hash?{el:e.hash,top:12}:e.path===t.path?void 0:{top:0}),routes:[{path:"/logowanie",name:"login",component:()=>ye(()=>import("./LoginView-BjmNoGNs.js"),__vite__mapDeps([0,1,2])),meta:{public:!0,guest:!0,title:"Logowanie"}},{path:"/rejestracja",name:"register",component:()=>ye(()=>import("./RegisterView-Bu382Gx7.js"),__vite__mapDeps([3,1])),meta:{public:!0,guest:!0,title:"Rejestracja"}},{path:"/przypomnij-haslo",name:"forgot",component:()=>ye(()=>import("./ForgotView-BBRR0ZKl.js"),__vite__mapDeps([4,1])),meta:{public:!0,title:"Przypomnienie hasła"}},{path:"/auth/oauth/callback",name:"oauth-callback",component:()=>ye(()=>import("./OAuthCallbackView-BWe1IsQj.js"),__vite__mapDeps([5,1,2])),meta:{public:!0,title:"Logowanie"}},{path:"/auth/oauth/rejestracja",name:"oauth-register",component:()=>ye(()=>import("./OAuthRegisterView-CNQe9Gcp.js"),__vite__mapDeps([6,1])),meta:{public:!0,title:"Rejestracja"}},{path:"/reset-password",alias:"/reset-hasla",name:"reset",component:()=>ye(()=>import("./ResetView-D4Tz3P51.js"),__vite__mapDeps([7,1])),meta:{public:!0,title:"Nowe hasło"}},{path:"/",name:"dashboard",component:()=>ye(()=>import("./DashboardView-C6q1Zjsy.js"),__vite__mapDeps([8,9,10,11,12,13])),meta:{title:"Pulpit",wide:!0}},{path:"/plan",name:"schedule",component:()=>ye(()=>import("./ScheduleView-JG7kNLpE.js"),__vite__mapDeps([14,9,10,11,15])),meta:{title:"Plan zajęć"}},{path:"/terminarz",name:"deadlines",component:()=>ye(()=>import("./DeadlinesView--mYtpzV1.js"),__vite__mapDeps([16,9,10,11,15])),meta:{title:"Terminarz"}},{path:"/przedmioty",name:"courses",component:()=>ye(()=>import("./CoursesView-BpOD1b5y.js"),__vite__mapDeps([17,9,10,11])),meta:{title:"Przedmioty"}},{path:"/przedmioty/:id(\\d+)",name:"course",component:()=>ye(()=>import("./CourseView-rxCXe-gk.js"),__vite__mapDeps([18,9,10,19])),props:!0,meta:{title:"Przedmiot"}},{path:"/lektury",name:"readings",component:()=>ye(()=>import("./ReadingsView-Bsfq4m4C.js"),__vite__mapDeps([20,9,10,11,19,15])),meta:{title:"Lektury"}},{path:"/materialy",name:"materials",component:()=>ye(()=>import("./MaterialsView-CeIBNy86.js"),__vite__mapDeps([21,9,22,23])),meta:{title:"Materiały"}},{path:"/materialy/:id(\\d+)",name:"material",component:()=>ye(()=>import("./MaterialView-B3T6rMpS.js"),__vite__mapDeps([24,9,10,25,12,26,22,23])),props:!0,meta:{title:"Materiał"}},{path:"/materialy/:id(\\d+)/edytuj",name:"material-edit",component:()=>ye(()=>import("./MaterialEditView-BFeHImy8.js"),__vite__mapDeps([27,9,10,13,26,25,12,22])),props:!0,meta:{title:"Edycja materiału"}},{path:"/checklisty",name:"checklists",component:()=>ye(()=>import("./ChecklistsView-BsRke9w6.js"),__vite__mapDeps([28,9,10,1])),meta:{title:"Checklisty"}},{path:"/checklisty/:id(\\d+)",name:"checklist",component:()=>ye(()=>import("./ChecklistView-BTFCZ9eO.js"),__vite__mapDeps([29,9,10,30,1])),props:!0,meta:{title:"Checklista"}},{path:"/sylabusy",name:"syllabi",component:()=>ye(()=>import("./SyllabiView-BRHlp3TI.js"),__vite__mapDeps([31,9])),meta:{title:"Sylabusy"}},{path:"/quiz",redirect:"/quizy/powtorka-1-zjazd"},{path:"/quizy",name:"quizzes",component:()=>ye(()=>import("./QuizzesView-DlBeMsNX.js"),__vite__mapDeps([32,9,10,33])),meta:{title:"Quizy"}},{path:"/quizy/:slug",name:"quiz",component:()=>ye(()=>import("./QuizView-61Odcs-7.js"),__vite__mapDeps([34,9,10,33,26])),props:!0,meta:{title:"Quiz"}},{path:"/wiecej",name:"more",component:()=>ye(()=>import("./MoreView-Cc2MNn9g.js"),__vite__mapDeps([35,9])),meta:{title:"Więcej"}},{path:"/profil",name:"profile",component:()=>ye(()=>import("./ProfileView-C8ZTXew3.js"),__vite__mapDeps([36,9,1,2])),meta:{title:"Profil"}},{path:"/moje-prezentacje",name:"my-presentations",component:()=>ye(()=>import("./MyPresentationsView-4KJTEzu1.js"),__vite__mapDeps([37,9,10,30])),meta:{title:"Moje prezentacje"}},{path:"/moje-prezentacje/:slug",name:"presentation-speaker",component:()=>ye(()=>import("./PresentationSpeakerView-DYlbz4sc.js"),__vite__mapDeps([38,30,39,40,41,42,43,44,45])),props:!0,meta:{bare:!0,title:"Prezentacja"}},{path:"/moje-prezentacje/:slug/pilot",name:"presentation-remote",component:()=>ye(()=>import("./PresentationRemoteView-DQfzMTCG.js"),__vite__mapDeps([46,40,41,30,47,44,48,43,49])),props:!0,meta:{bare:!0,title:"Pilot"}},{path:"/pilot",name:"pilot",redirect:()=>Hp()},{path:"/prezentacje/:slugHash",name:"presentation-public",component:()=>ye(()=>import("./PresentationPublicView-TcqELTt_.js"),__vite__mapDeps([50,30,39,40,41,42,51])),props:!0,meta:{public:!0,bare:!0,title:"Prezentacja"}},{path:"/connect",name:"connect",component:()=>ye(()=>import("./ConnectView-DVlfoZUg.js"),[]),meta:{title:"Połącz aplikację"}},{path:"/cast",name:"cast",component:()=>ye(()=>import("./CastReceiverView-oqPPp8eq.js"),__vite__mapDeps([52,40,41,30,39,42,48,44,53])),meta:{public:!0,bare:!0,cast:!0,title:"BM · TV"}},{path:"/:rest(.*)*",name:"notfound",component:()=>ye(()=>import("./NotFoundView-706jG-LC.js"),__vite__mapDeps([54,47])),meta:{title:"Nie znaleziono"}}]});vn.beforeEach(async e=>{const t=Cc();return e.meta.cast===!0&&et.clear(),t.ready||await t.restore(e),!e.meta.public&&!t.loggedIn?{name:"login",query:e.fullPath==="/"?{}:{redirect:e.fullPath}}:e.meta.guest&&t.loggedIn?{name:"dashboard"}:!0});vn.afterEach(e=>{const t=e.meta.title;document.title=t?`${t} · BM II°`:"BM II°"});const fe="/_bm/api/v1";function ga(e,t,n,s){return new Promise((r,i)=>{const o=new XMLHttpRequest;o.open("POST",`${fe}/materials/${e}/images`),o.setRequestHeader("Accept","application/json");const a=et.get();if(a&&o.setRequestHeader("Authorization",`Bearer ${a}`),o.upload.onprogress=c=>{c.lengthComputable&&c.total>0&&n?.(Math.min(100,Math.round(c.loaded/c.total*100)))},o.onload=()=>{let c=null;try{c=o.responseText?JSON.parse(o.responseText):null}catch{c=null}const u=c&&typeof c=="object"&&"data"in c?c.data:c;if(o.status>=200&&o.status<300&&u&&typeof u.id=="number"&&typeof u.url=="string"){r({id:u.id,url:u.url,name:String(u.name??t.name),size:Number(u.size??t.size),mime:String(u.mime??t.type)});return}const f=c??{},p=typeof f.message=="string"?f.message:typeof f.error=="string"?f.error:`Błąd ${o.status}`;i(new Ne(o.status,p,f.errors??{},c))},o.onerror=()=>i(new Ne(0,"Brak połączenia z serwerem.")),o.onabort=()=>i(new Ne(0,"Przerwano wysyłanie.")),s){if(s.aborted){i(new Ne(0,"Przerwano wysyłanie."));return}s.addEventListener("abort",()=>o.abort(),{once:!0})}const l=new FormData;l.append("file",t,t.name),o.send(l)})}async function Kp(e,t,n,s){const r=et.get();try{return await ga(e,t,n,s)}catch(i){if(!(i instanceof Ne)||i.status!==401||!r||s?.aborted)throw i;await U.request("/_user/api/v1/fetch").catch(()=>null);const o=et.get();if(!o||o===r)throw i;return n?.(0),ga(e,t,n,s)}}const Ae={dashboard:()=>U.request(`${fe}/dashboard`),courses:e=>U.request(`${fe}/courses`,{query:{semester:e}}),course:e=>U.request(`${fe}/courses/${e}`),schedule:(e,t)=>U.request(`${fe}/schedule`,{query:{from:e,to:t}}),meetings:()=>U.request(`${fe}/meetings`),deadlines:(e,t)=>U.request(`${fe}/deadlines`,{query:{from:e,to:t}}),readings:e=>U.request(`${fe}/readings`,{query:{course:e}}),markRead:e=>U.request(`${fe}/readings/${e}/progress`,{method:"PUT"}),unmarkRead:e=>U.request(`${fe}/readings/${e}/progress`,{method:"DELETE"}),markOwned:e=>U.request(`${fe}/readings/${e}/owned`,{method:"PUT"}),unmarkOwned:e=>U.request(`${fe}/readings/${e}/owned`,{method:"DELETE"}),materials:(e={})=>U.raw(`${fe}/materials`,{query:{...e}}),material:e=>U.request(`${fe}/materials/${e}`),pinMaterial:e=>U.request(`${fe}/materials/${e}/pin`,{method:"PUT"}),unpinMaterial:e=>U.request(`${fe}/materials/${e}/pin`,{method:"DELETE"}),materialAccess:e=>U.request(`${fe}/materials/${e}/access`),saveMaterialAccess:(e,t)=>U.request(`${fe}/materials/${e}/access`,{method:"PUT",body:t}),tags:()=>U.request(`${fe}/tags`),editMaterial:(e,t)=>U.request(`${fe}/materials/${e}`,{method:"PUT",body:t}),unpublishMaterial:e=>U.request(`${fe}/materials/${e}/unpublish`,{method:"POST"}),uploadMaterialImage:Kp,calendarFeed:()=>U.request(`${fe}/calendar-feed`),saveCalendarFeed:e=>U.request(`${fe}/calendar-feed`,{method:"PUT",body:e}),rotateCalendarFeed:()=>U.request(`${fe}/calendar-feed/rotate`,{method:"POST"}),deleteCalendarFeed:()=>U.request(`${fe}/calendar-feed`,{method:"DELETE"}),checklists:e=>U.request(`${fe}/checklists`,{query:{meeting:e}}),checklist:e=>U.request(`${fe}/checklists/${e}`),createChecklist:e=>U.request(`${fe}/checklists`,{method:"POST",body:e}),updateChecklist:(e,t)=>U.request(`${fe}/checklists/${e}`,{method:"PATCH",body:t}),deleteChecklist:e=>U.request(`${fe}/checklists/${e}`,{method:"DELETE"}),addChecklistItem:(e,t)=>U.request(`${fe}/checklists/${e}/items`,{method:"POST",body:t}),updateChecklistItem:(e,t)=>U.request(`${fe}/checklist-items/${e}`,{method:"PATCH",body:t}),deleteChecklistItem:e=>U.request(`${fe}/checklist-items/${e}`,{method:"DELETE"}),markChecklistItem:e=>U.request(`${fe}/checklist-items/${e}/done`,{method:"PUT"}),unmarkChecklistItem:e=>U.request(`${fe}/checklist-items/${e}/done`,{method:"DELETE"})},Wp={"historia-koncepcje":"Historia / koncepcje wojny i pokoju",specjalnosc:"Specjalność"};function ey(e){return Wp[e]??e}function Zi(e){const t=new Map;for(const n of e){if(!n.elective_group)continue;const s=t.get(n.elective_group)??[];s.includes(n.name)||s.push(n.name),t.set(n.elective_group,s)}return[...t].map(([n,s])=>({code:n,options:s}))}function Gp(e,t){const n={};for(const s of Zi(e)){const r=t[s.code];r&&s.options.includes(r)&&(n[s.code]=r)}return n}function Jp(e,t){if(!e.elective_group)return!1;const n=t[e.elective_group];return n!==void 0&&n!==e.name}function pc(e,t,n=!1){const s=new Set;if(n)return s;for(const r of e)Jp(r,t)&&s.add(r.id);return s}function Qr(e,t){return t.size===0?e:e.filter(n=>n.course_id===null||!t.has(n.course_id))}function Yp(e,t){return Zi(e).filter(n=>n.options.length>1&&!t[n.code])}function ty(e,t){return!!e.elective_group&&!t[e.elective_group]}const ya="bm.showAllElectives";function va(e){try{return localStorage.getItem(e)}catch{return null}}function _a(e,t){try{localStorage.setItem(e,t)}catch{}}const ls=Wt("electives",()=>{const e=X({}),t=X(va(ya)==="1"),n=X(null),s=()=>n.value===null?null:`bm.electives.${n.value}`,r=()=>{const f=s();f&&_a(f,JSON.stringify(e.value))};function i(f){n.value=f;try{const p=JSON.parse(va(`bm.electives.${f}`)??"{}");e.value=p&&typeof p=="object"?p:{}}catch{e.value={}}}const o=ne(()=>Object.keys(e.value).length>0);function a(f,p){const g={...e.value};p===null?delete g[f]:g[f]=p,e.value=g,r()}function l(f){t.value=f,_a(ya,f?"1":"0")}function c(f){const p=Gp(f,e.value);Object.keys(p).length!==Object.keys(e.value).length&&(e.value=p,r())}function u(){e.value={},n.value=null}return{choices:e,showAll:t,userId:n,hasChoices:o,load:i,choose:a,setShowAll:l,prune:c,reset:u}}),Sn=Wt("toast",()=>{const e=X("");let t;function n(r,i=4e3){e.value=r,clearTimeout(t),t=setTimeout(()=>e.value="",i)}function s(){e.value=""}return{message:e,show:n,clear:s}});function Ct(e){return e instanceof Ne?e.message:"Nie udało się wczytać danych."}function xn(e){const t=jn(null),n=X(!1),s=X("");let r=null;function i(a=!1){return r||(t.value!==null&&!a?Promise.resolve():(n.value=!0,s.value="",r=e().then(l=>{t.value=l}).catch(l=>{s.value=Ct(l)}).finally(()=>{n.value=!1,r=null}),r))}function o(){t.value=null,s.value="",n.value=!1,r=null}return{data:t,loading:n,error:s,load:i,reset:o}}const ba="2000-01-01",Qi=Wt("bm",()=>{const e=xn(()=>Ae.courses()),t=xn(()=>Ae.meetings()),n=xn(()=>Ae.schedule(ba)),s=xn(()=>Ae.deadlines(ba)),r=xn(()=>Ae.readings()),i=xn(()=>Ae.dashboard()),o=ne(()=>e.data.value),a=ne(()=>t.data.value),l=ne(()=>i.data.value),c=ls(),u=ne(()=>Zi(o.value??[])),f=ne(()=>Yp(o.value??[],c.choices)),p=ne(()=>pc(o.value??[],c.choices,c.showAll)),g=ne(()=>Qr(n.data.value??[],p.value)),v=ne(()=>Qr(s.data.value??[],p.value)),w=ne(()=>Qr(r.data.value??[],p.value)),S=ne(()=>r.data.value??[]),E=ne(()=>(o.value??[]).filter(H=>!p.value.has(H.id))),y=ne(()=>{const H=w.value,Se=H.filter(ee=>ee.is_required);return{total:H.length,read:H.filter(ee=>ee.read_at).length,requiredTotal:Se.length,requiredRead:Se.filter(ee=>ee.read_at).length}}),C=ne(()=>new Map((o.value??[]).map(H=>[H.id,H])));async function O(H=!1){await e.load(H),e.data.value&&c.prune(e.data.value)}async function N(H,Se){const ee=r.data.value,W=ee?.find(me=>me.id===H);if(!ee||!W)return;const re=W.read_at,$e=me=>{r.data.value=ee.map(Te=>Te.id===H?{...Te,read_at:me}:Te)};$e(Se?new Date().toISOString():null);try{const me=Se?await Ae.markRead(H):await Ae.unmarkRead(H);$e(me.read_at)}catch(me){$e(re),Sn().show(`Nie udało się zapisać zmiany. ${Ct(me)}`)}}function Q(H,Se){const ee=r.data.value;ee&&(r.data.value=ee.map(W=>W.id===H?{...W,read_at:Se}:W))}async function $(H,Se){const ee=r.data.value,W=ee?.find(me=>me.id===H);if(!ee||!W)return;const re=W.owned_at,$e=me=>{r.data.value=ee.map(Te=>Te.id===H?{...Te,owned_at:me}:Te)};$e(Se?new Date().toISOString():null);try{const me=Se?await Ae.markOwned(H):await Ae.unmarkOwned(H);$e(me.owned_at)}catch(me){$e(re),Sn().show(`Nie udało się zapisać zmiany. ${Ct(me)}`)}}const F=[e,t,n,s,r,i],B=ne(()=>F.some(H=>H.loading.value)),oe=ne(()=>F.find(H=>H.error.value)?.error.value??""),L=ne(()=>({courses:e.data.value!==null,meetings:t.data.value!==null,schedule:n.data.value!==null,deadlines:s.data.value!==null,readings:r.data.value!==null,dashboard:i.data.value!==null}));function Me(){for(const H of F)H.error.value&&H.load(!0)}function Ce(){for(const H of F)H.reset()}return{courses:o,electiveGroups:u,pendingElectives:f,hidden:p,meetings:a,dashboard:l,schedule:g,deadlines:v,readings:w,allReadings:S,visibleCourses:E,readingStats:y,courseById:C,loading:B,error:oe,loaded:L,retry:Me,loadCourses:O,loadMeetings:(H=!1)=>t.load(H),loadSchedule:(H=!1)=>n.load(H),loadDeadlines:(H=!1)=>s.load(H),loadReadings:(H=!1)=>r.load(H),loadDashboard:(H=!1)=>i.load(H),toggleReading:N,toggleOwned:$,setReadAt:Q,reset:Ce}}),Zp={lektura:"Lektura",artykul:"Artykuł",ksiazka:"Książka",prezentacja:"Prezentacja",zadanie:"Zadanie",inne:"Inne"},ny=Object.keys(Zp);function Qp(e){const t=Math.floor(e/60),n=e%60;return t?n?`${t} h ${n} min`:`${t} h`:`${n} min`}function Xp(e){const t={total:0,done:0,percent:0,minutes_total:0,minutes_done:0,minutes_left:0};for(const n of e){const s=n.estimate_minutes??0;t.total++,t.minutes_total+=s,n.done?(t.done++,t.minutes_done+=s):t.minutes_left+=s}return t.minutes_total?t.percent=Math.floor(t.minutes_done*100/t.minutes_total):t.percent=t.total?Math.floor(t.done*100/t.total):0,t}function sy(e){const t=`${e.done} z ${e.total}`;return e.minutes_left?`${t} · zostało ${Qp(e.minutes_left)}`:t}function ry(e){const t=new Map;for(const s of e){const r=s.course?`c${s.course.id}`:"none";let i=t.get(r);i||(i={key:r,label:s.course?.name??"Ogólne",items:[]},t.set(r,i)),i.items.push(s)}const n=t.get("none");return t.delete("none"),n?[...t.values(),n]:[...t.values()]}function iy(e){if(!e)return"";const t=new Date(e),n=s=>String(s).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function oy(e){return e?e.replace("T"," "):null}const em=Wt("checklists",()=>{const e=X(null),t=X(""),n=X({}),s=X("");async function r(){t.value="";try{e.value=await Ae.checklists()}catch(y){t.value=Ct(y)}}async function i(y){s.value="";try{o(await Ae.checklist(y))}catch(C){s.value=Ct(C)}}function o(y){y.items||(y={...y,items:n.value[y.id]?.items??[]}),n.value={...n.value,[y.id]:y};const C={...y,items:void 0};e.value&&(e.value=e.value.some(O=>O.id===y.id)?e.value.map(O=>O.id===y.id?C:O):[...e.value,C])}function a(y,C){const O=n.value[y];O&&o({...O,items:C,progress:Xp(C)})}async function l(y){const C=await Ae.createChecklist(y);return o(C),C}async function c(y,C){o(await Ae.updateChecklist(y,C))}async function u(y){await Ae.deleteChecklist(y);const{[y]:C,...O}=n.value;n.value=O,e.value&&(e.value=e.value.filter(N=>N.id!==y))}function f(y,C){for(const O of Object.values(n.value))O.items?.some(N=>N.reading_id===y)&&a(O.id,O.items.map(N=>N.reading_id===y?{...N,done:C!==null,done_at:C}:N))}async function p(y,C){const O=n.value[y.checklist_id];if(!O?.items)return;const N=O.items,Q=$=>{if(y.reading_id!==null)f(y.reading_id,$);else{const F=n.value[y.checklist_id]?.items??N;a(y.checklist_id,F.map(B=>B.id===y.id?{...B,done:$!==null,done_at:$}:B))}};Q(C?new Date().toISOString():null);try{const $=C?await Ae.markChecklistItem(y.id):await Ae.unmarkChecklistItem(y.id);Q($.done_at),y.reading_id!==null&&Qi().setReadAt(y.reading_id,$.done_at)}catch($){a(y.checklist_id,N),Sn().show(`Nie udało się zapisać zmiany. ${Ct($)}`)}}async function g(y,C){const O=await Ae.addChecklistItem(y,C),N=n.value[y];return N?.items&&a(y,[...N.items,O]),O}async function v(y,C){const O=await Ae.updateChecklistItem(y.id,C);if(O.checklist_id!==y.checklist_id){const Q=n.value[y.checklist_id];return Q?.items&&a(y.checklist_id,Q.items.filter($=>$.id!==y.id)),i(O.checklist_id),r(),O}const N=n.value[y.checklist_id];if(N?.items){const Q=N.items.map($=>$.id===y.id?O:$);a(y.checklist_id,Q.sort(($,F)=>$.sort_order-F.sort_order||$.id-F.id))}return O}async function w(y){await Ae.deleteChecklistItem(y.id);const C=n.value[y.checklist_id];C?.items&&a(y.checklist_id,C.items.filter(O=>O.id!==y.id))}async function S(y,C){const O=n.value[y.checklist_id]?.items;if(!O)return;const N=O.findIndex(B=>B.id===y.id),Q=O[N+C];if(!Q)return;const $=Q.sort_order===y.sort_order?N+C:Q.sort_order,F=Q.sort_order===y.sort_order?N:y.sort_order;try{await Promise.all([v(y,{sort_order:$}),v(Q,{sort_order:F})])}catch(B){Sn().show(`Nie udało się zmienić kolejności. ${Ct(B)}`),i(y.checklist_id)}}function E(){e.value=null,n.value={},t.value="",s.value=""}return{list:e,listError:t,details:n,detailError:s,loadList:r,loadOne:i,create:l,update:c,remove:u,toggle:p,syncReading:f,addItem:g,updateItem:v,removeItem:w,move:S,reset:E}});function tm(e,t){return[...pc(e,t,!1)].sort((n,s)=>n-s)}function nm(e,t){if(e.length!==t.length)return!1;const n=[...e].sort((r,i)=>r-i),s=[...t].sort((r,i)=>r-i);return n.every((r,i)=>r===s[i])}async function ay(e){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0}catch{}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch{return!1}}const mc=Wt("calendarFeed",()=>{const e=X(void 0),t=X(!1),n=X(!1),s=X(""),r=Qi(),i=ls();let o=Promise.resolve();function a(E){const y=o.then(E,E);return o=y.catch(()=>{}),y}async function l(E=!1){if(!(e.value!==void 0&&!E)){t.value=!0,s.value="";try{e.value=await Ae.calendarFeed()}catch(y){s.value=Ct(y)}finally{t.value=!1}}}async function c(){await r.loadCourses();const E=r.courses;return E?tm(E,i.choices):null}async function u(E){n.value=!0,s.value="";try{await a(E)}catch(y){s.value=Ct(y)}finally{n.value=!1}}function f(){return u(async()=>{const E=await c();e.value=await Ae.saveCalendarFeed(E?{excluded_course_ids:E}:{})})}function p(E){return u(async()=>{e.value=await Ae.saveCalendarFeed(E)})}function g(){return u(async()=>{e.value=await Ae.rotateCalendarFeed()})}function v(){return u(async()=>{await Ae.deleteCalendarFeed(),e.value=null})}function w(){return a(async()=>{e.value===void 0&&await l();const E=e.value;if(!E)return;const y=await c();if(!(!y||nm(y,E.excluded_course_ids)))try{e.value=await Ae.saveCalendarFeed({excluded_course_ids:y})}catch(C){Sn().show(`Nie udało się zaktualizować kalendarza. ${Ct(C)}`)}})}bn(()=>i.choices,()=>{i.userId!==null&&w()});function S(){e.value=void 0,s.value="",t.value=!1,n.value=!1}return{feed:e,loading:t,busy:n,error:s,load:l,create:f,save:p,rotate:g,remove:v,sync:w,reset:S}}),zs="/_bm/api/v1",it="/_chat/api/v1";function wa(e,t,n){return new Promise((s,r)=>{const i=new XMLHttpRequest;i.open("POST",`${it}/attachments`),i.setRequestHeader("Accept","application/json");const o=et.get();if(o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.upload.onprogress=l=>{l.lengthComputable&&l.total>0&&t?.(Math.min(100,Math.round(l.loaded/l.total*100)))},i.onload=()=>{let l=null;try{l=i.responseText?JSON.parse(i.responseText):null}catch{l=null}const c=l&&typeof l=="object"&&"data"in l?l.data:l;if(i.status>=200&&i.status<300&&c&&typeof c.id=="number"){s({id:c.id,filename:String(c.filename??e.name),size:Number(c.size??e.size)});return}const u=l??{};r(new Ne(i.status,typeof u.error=="string"?u.error:`Błąd ${i.status}`,u.errors??{}))},i.onerror=()=>r(new Ne(0,"Brak połączenia z serwerem.")),i.onabort=()=>r(new Ne(0,"Przerwano wysyłanie.")),n){if(n.aborted){r(new Ne(0,"Przerwano wysyłanie."));return}n.addEventListener("abort",()=>i.abort(),{once:!0})}const a=new FormData;a.append("file",e,e.name),i.send(a)})}async function sm(e,t,n){const s=et.get();try{return await wa(e,t,n)}catch(r){if(!(r instanceof Ne)||r.status!==401||!s||n?.aborted)throw r;await U.request("/_user/api/v1/fetch").catch(()=>null);const i=et.get();if(!i||i===s)throw r;return t?.(0),wa(e,t,n)}}async function rm(e,t,n){const s=await U.blob(`${it}/attachments/${e}/${t}`),r=URL.createObjectURL(new Blob([s],{type:"application/octet-stream"})),i=document.createElement("a");i.href=r,i.download=n||"plik",i.rel="noopener",i.style.display="none",document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}const Fe={bootstrap:()=>U.request(`${zs}/chat`),members:()=>U.request(`${zs}/chat/members`),messages:(e,{limit:t=50,before:n}={})=>U.request(`${it}/conversations/${e}/messages`,{query:{limit:t,before:n}}),send:(e,t)=>U.request(`${it}/conversations/${e}/messages`,{method:"POST",body:t}),message:e=>U.request(`${it}/messages/${e}`),markRead:e=>U.request(`${it}/conversations/${e}/read`,{method:"POST"}),typing:e=>U.request(`${it}/conversations/${e}/typing`,{method:"POST"}),edit:(e,t)=>U.request(`${it}/messages/${e}`,{method:"PUT",body:{content:t}}),remove:e=>U.request(`${it}/messages/${e}`,{method:"DELETE"}),reactions:()=>U.request(`${it}/reactions`),addReaction:(e,t)=>U.request(`${it}/messages/${e}/reactions`,{method:"POST",body:{key:t}}),removeReaction:(e,t)=>U.request(`${it}/messages/${e}/reactions/${encodeURIComponent(t)}`,{method:"DELETE"}),embeds:(e,t="")=>U.request(`${zs}/chat/embeds`,{query:{type:e,q:t.trim()}}),resolveEmbeds:e=>U.request(`${zs}/chat/embeds/resolve`,{method:"POST",body:{refs:e}}),upload:sm,download:rm,startDm:e=>U.request(`${it}/contexts/bm/1/dm`,{method:"POST",body:{user_id:e}})};function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}function im(e){return Dt(e)?We(e.id)!==null&&We(e.conversation_id)!==null&&We(e.sender_id)!==null&&typeof e.created_at=="string"&&(e.content===null||typeof e.content=="string")&&Array.isArray(e.attachments):!1}function om(e){if(!Dt(e)||typeof e.event!="string")return null;const t=e.payload;switch(e.event){case"created.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id),r=We(t.sender_id);return n===null||s===null||r===null?null:{kind:"created",id:n,conversationId:s,senderId:r}}case"chat:message":{if(!Dt(t)||!im(t.message))return null;const n=We(t.conversation_id);return n===null||n!==t.message.conversation_id?null:{kind:"chatMessage",conversationId:n,message:t.message}}case"typing.chat.message":{if(!Dt(t)||t.action!=="typing-start")return null;const n=We(t.conversation_id),s=We(t.user_id);return n===null||s===null?null:{kind:"typing",conversationId:n,userId:s}}case"chat:read":{if(!Dt(t))return null;const n=We(t.conversation_id),s=We(t.user_id);return n===null||s===null?null:{kind:"read",conversationId:n,userId:s}}case"chat:unread":return!Dt(t)||typeof t.count!="number"||!Number.isInteger(t.count)||t.count<0?null:{kind:"unread",count:t.count};case"mentions.changed":return{kind:"mentions"};case"reacted.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id),r=We(t.user_id);return n===null||s===null||r===null||typeof t.key!="string"||t.key===""||t.action!=="added"&&t.action!=="removed"?null:{kind:"reacted",id:n,conversationId:s,userId:r,key:t.key,added:t.action==="added"}}case"updated.chat.message":case"deleted.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id);return n===null||s===null?null:{kind:e.event==="updated.chat.message"?"updated":"deleted",id:n,conversationId:s}}default:return null}}function am(e,t){if(e.kind!=="created")return!1;const n=t[e.conversationId];return!!n&&!n.some(s=>s.id===e.id)}function lm(e,t,{seen:n}){const s={id:t.id,sender_id:t.sender_id,content:t.content??"",created_at:t.created_at},r=e.findIndex(l=>l.id===t.conversation_id);if(r===-1)return[{id:t.conversation_id,type:"dm",other_user_id:t.sender_id,unread:n?0:1,last_message:s},...e];const i=e[r];if(i.last_message&&i.last_message.id===t.id)return e;const o=!i.last_message||Date.parse(t.created_at)>=Date.parse(i.last_message.created_at),a={...i,unread:n?i.unread:i.unread+1,last_message:o?s:i.last_message};return e.map((l,c)=>c===r?a:l)}function Xr(e,t,n,s,r=[]){const i=e?[...e]:[],o=i.findIndex(c=>c.key===t),a=o>=0&&i[o].user_ids.includes(n);if(s===a)return e||i;if(s){if(o>=0)return i[o]={...i[o],count:i[o].count+1,user_ids:[...i[o].user_ids,n]},i;const c={key:t,count:1,user_ids:[n]},u=p=>{const g=r.indexOf(p);return g<0?r.length:g};let f=i.length;return r.includes(t)&&(f=i.findIndex(p=>u(p.key)>u(t)),f<0&&(f=i.length)),i.splice(f,0,c),i}const l=i[o].user_ids.filter(c=>c!==n);return l.length===0?i.splice(o,1):i[o]={...i[o],count:Math.max(0,i[o].count-1),user_ids:l},i}const cm=["svg","svgz","html","htm","xhtml","xml"],um=["image/svg+xml","text/html","application/xhtml+xml","text/xml","application/xml"];function Ea(e){const t=e/1048576;return Number.isInteger(t)?String(t):(Math.floor(t*10)/10).toFixed(1).replace(".",",")}function fm(e){const t=e.name.lastIndexOf("."),n=(t>=0?e.name.slice(t+1):e.name).toLowerCase();if(cm.includes(n))return!0;const s=(e.type||"").split(";")[0].trim().toLowerCase();return um.includes(s)}function dm(e,t,n,s=0){const r=[],i=[];let o=!1,a=!1,l=!1,c=s;for(const u of e){if(fm(u)){o=!0;continue}if(t.max_bytes>0&&u.size>t.max_bytes){i.push(`Plik „${u.name}” jest za duży. Limit to ${Ea(t.max_bytes)} MB.`);continue}if(n+r.length>=t.max_files){a=!0;continue}if(t.max_bytes>0&&c+u.size>t.max_bytes){l=!0;continue}c+=u.size,r.push(u)}return l&&i.unshift(`Załączniki jednej wiadomości mogą mieć razem najwyżej ${Ea(t.max_bytes)} MB.`),o&&i.unshift("Plików SVG, HTML i XML nie można wysyłać na czacie."),a&&i.unshift(`Możesz dołączyć najwyżej ${t.max_files} plików do jednej wiadomości.`),{accepted:r,errors:i}}const hm=["deadline","class","reading"],Ri=3,ly={deadline:"Termin",class:"Zajęcia",reading:"Lektura"};function tn(e){return`${e.type}:${e.id}`}function pm(e){return typeof e=="string"&&hm.includes(e)}function gc(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function mm(e){if(!e||typeof e!="object")return!1;const t=e;return pm(t.type)&&gc(t.id)}function gm(e,t=Ri){const n=e?.metadata?.embeds;if(!Array.isArray(n))return[];const s=[],r=new Set;for(const i of n){if(s.length>=t)break;if(!mm(i))continue;const o={type:i.type,id:i.id},a=tn(o);r.has(a)||(r.add(a),s.push(o))}return s}function yc(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":return`/plan#zajecia-${e.id}`;case"reading":return`/lektury#lektura-${e.id}`}}function ym(e,t=""){return e.map(n=>t+yc(n)).join(` +`:""}function $p(e,t){const n=new Set(e),s=new Set(t);if(n.size!==s.size)return!1;for(const r of n)if(!s.has(r))return!1;return!0}function jp(e,t){return e.title.trim()===t.title.trim()&&e.type===t.type&&e.meeting_id===t.meeting_id&&e.source.trim()===t.source.trim()&&e.url.trim()===t.url.trim()&&$p(e.tags,t.tags)&&Ti(e.body)===Ti(t.body)}const pa=e=>{const t=e.trim();return t||null};function qg(e,t){const n=Ti(e.body);return{revision:t,title:e.title.trim(),type:e.type,body:n||null,source:pa(e.source),url:pa(e.url),meeting_id:e.meeting_id,tags:[...e.tags]}}function Ug(e,t){return e.includes(t)?e.filter(n=>n!==t):e.length>=Np?e:[...e,t]}function Hg(e,t,n){const s=new Set(n),r=e.filter(l=>!s.has(l.name)),i=Un(t.trim());if(!i)return r;const o=[],a=[];for(const l of r){const c=Un(l.name);c.includes(i)&&(c.startsWith(i)||c.split(/[\s\-–—]+/).some(u=>u.startsWith(i))?o.push(l):a.push(l))}return[...o,...a]}function Kg(e){return e.trim().replace(/\.+$/,"")}const dc="bm.materialDraft.";function Yi(e){return`${dc}${e}`}function Sr(){try{return typeof window<"u"?window.localStorage:null}catch{return null}}const pn=e=>typeof e=="string";function zp(e){if(!e||typeof e!="object")return null;const t=e;if(!pn(t.title)||!pn(t.source)||!pn(t.url)||!pn(t.body)||!pn(t.type)||!Object.prototype.hasOwnProperty.call(Ip,t.type))return null;const n=t.meeting_id;return n!==null&&!(typeof n=="number"&&Number.isInteger(n)&&n>0)||!Array.isArray(t.tags)||!t.tags.every(pn)?null:{title:t.title,type:t.type,meeting_id:n,source:t.source,url:t.url,tags:[...t.tags],body:t.body}}function Wg(e,t=Sr()){let n=null;try{n=t?.getItem(Yi(e))??null}catch{return null}if(!n)return null;let s;try{s=JSON.parse(n)}catch{return null}if(!s||typeof s!="object")return null;const r=s,i=r.base_revision;if(typeof i!="number"||!Number.isInteger(i)||i<0||!pn(r.saved_at)||Number.isNaN(Date.parse(r.saved_at)))return null;const o=zp(r.fields);return o?{base_revision:i,saved_at:r.saved_at,fields:o}:null}function Gg(e,t,n=Sr()){try{n?.setItem(Yi(e),JSON.stringify(t))}catch{}}function Jg(e,t=Sr()){try{t?.removeItem(Yi(e))}catch{}}function Vp(e=Sr()){if(e)try{const t=[];for(let n=0;n0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");r=l(n.map(c=>{if(c=qp(c),c in ma)return;ma[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const p=document.createElement("link");if(p.rel=u?"stylesheet":Bp,u||(p.as="script"),p.crossOrigin="",p.href=c,a&&p.setAttribute("nonce",a),document.head.appendChild(p),u)return new Promise((g,v)=>{p.addEventListener("load",g),p.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&i(a.reason);return t().catch(i)})},tr="bm.lastPilot";function Tr(){try{return window.localStorage}catch{return null}}function hc(e){return typeof e=="string"&&e.trim()!==""&&e.length<=255&&!e.includes("/")}function Qg(e,t=Tr()){if(!(!t||!hc(e)))try{t.setItem(tr,e)}catch{}}function Up(e=Tr()){if(!e)return null;try{const t=e.getItem(tr);return hc(t)?t:null}catch{return null}}function Xg(e,t=Tr()){if(t)try{t.getItem(tr)===e&&t.removeItem(tr)}catch{}}function Hp(e=Tr()){const t=Up(e);return t?{name:"presentation-remote",params:{slug:t}}:{name:"my-presentations"}}const vn=sp({history:Dh("/"),scrollBehavior:(e,t,n)=>e.meta.bare?!1:n??(e.hash?{el:e.hash,top:12}:e.path===t.path?void 0:{top:0}),routes:[{path:"/logowanie",name:"login",component:()=>ye(()=>import("./LoginView-BErNRSBU.js"),__vite__mapDeps([0,1,2])),meta:{public:!0,guest:!0,title:"Logowanie"}},{path:"/rejestracja",name:"register",component:()=>ye(()=>import("./RegisterView-CVCGVTEt.js"),__vite__mapDeps([3,1])),meta:{public:!0,guest:!0,title:"Rejestracja"}},{path:"/przypomnij-haslo",name:"forgot",component:()=>ye(()=>import("./ForgotView-DCuuDBAB.js"),__vite__mapDeps([4,1])),meta:{public:!0,title:"Przypomnienie hasła"}},{path:"/auth/oauth/callback",name:"oauth-callback",component:()=>ye(()=>import("./OAuthCallbackView-lHRQhTi5.js"),__vite__mapDeps([5,1,2])),meta:{public:!0,title:"Logowanie"}},{path:"/auth/oauth/rejestracja",name:"oauth-register",component:()=>ye(()=>import("./OAuthRegisterView-yORkBNst.js"),__vite__mapDeps([6,1])),meta:{public:!0,title:"Rejestracja"}},{path:"/reset-password",alias:"/reset-hasla",name:"reset",component:()=>ye(()=>import("./ResetView-CffI63qy.js"),__vite__mapDeps([7,1])),meta:{public:!0,title:"Nowe hasło"}},{path:"/",name:"dashboard",component:()=>ye(()=>import("./DashboardView-BDdrGOAV.js"),__vite__mapDeps([8,9,10,11,12,13])),meta:{title:"Pulpit",wide:!0}},{path:"/plan",name:"schedule",component:()=>ye(()=>import("./ScheduleView-1i8xCtdH.js"),__vite__mapDeps([14,9,10,11,15])),meta:{title:"Plan zajęć"}},{path:"/terminarz",name:"deadlines",component:()=>ye(()=>import("./DeadlinesView-DQ1eOrvn.js"),__vite__mapDeps([16,9,10,11,15])),meta:{title:"Terminarz"}},{path:"/przedmioty",name:"courses",component:()=>ye(()=>import("./CoursesView-Xix5tx0p.js"),__vite__mapDeps([17,9,10,11])),meta:{title:"Przedmioty"}},{path:"/przedmioty/:id(\\d+)",name:"course",component:()=>ye(()=>import("./CourseView-BfjIcRZN.js"),__vite__mapDeps([18,9,10,19])),props:!0,meta:{title:"Przedmiot"}},{path:"/lektury",name:"readings",component:()=>ye(()=>import("./ReadingsView-Bb7cutEd.js"),__vite__mapDeps([20,9,10,11,19,15])),meta:{title:"Lektury"}},{path:"/materialy",name:"materials",component:()=>ye(()=>import("./MaterialsView-BFDVD5Qm.js"),__vite__mapDeps([21,9,22,23])),meta:{title:"Materiały"}},{path:"/materialy/:id(\\d+)",name:"material",component:()=>ye(()=>import("./MaterialView-CMEk1fcU.js"),__vite__mapDeps([24,9,10,25,12,26,22,23])),props:!0,meta:{title:"Materiał"}},{path:"/materialy/:id(\\d+)/edytuj",name:"material-edit",component:()=>ye(()=>import("./MaterialEditView-DNeVFjle.js"),__vite__mapDeps([27,9,10,13,26,25,12,22])),props:!0,meta:{title:"Edycja materiału"}},{path:"/checklisty",name:"checklists",component:()=>ye(()=>import("./ChecklistsView-DAQUw-rC.js"),__vite__mapDeps([28,9,10,1])),meta:{title:"Checklisty"}},{path:"/checklisty/:id(\\d+)",name:"checklist",component:()=>ye(()=>import("./ChecklistView-BXIfnhpC.js"),__vite__mapDeps([29,9,10,30,1])),props:!0,meta:{title:"Checklista"}},{path:"/sylabusy",name:"syllabi",component:()=>ye(()=>import("./SyllabiView-BYyGecM1.js"),__vite__mapDeps([31,9])),meta:{title:"Sylabusy"}},{path:"/quiz",redirect:"/quizy/powtorka-1-zjazd"},{path:"/quizy",name:"quizzes",component:()=>ye(()=>import("./QuizzesView-BV_xvs6m.js"),__vite__mapDeps([32,9,10,33])),meta:{title:"Quizy"}},{path:"/quizy/:slug",name:"quiz",component:()=>ye(()=>import("./QuizView-CXf3PymX.js"),__vite__mapDeps([34,9,10,33,26])),props:!0,meta:{title:"Quiz"}},{path:"/wiecej",name:"more",component:()=>ye(()=>import("./MoreView-99Lj73EB.js"),__vite__mapDeps([35,9])),meta:{title:"Więcej"}},{path:"/profil",name:"profile",component:()=>ye(()=>import("./ProfileView-BOwV9hN-.js"),__vite__mapDeps([36,9,1,2])),meta:{title:"Profil"}},{path:"/moje-prezentacje",name:"my-presentations",component:()=>ye(()=>import("./MyPresentationsView-BzDdE1gL.js"),__vite__mapDeps([37,9,10,30])),meta:{title:"Moje prezentacje"}},{path:"/moje-prezentacje/:slug",name:"presentation-speaker",component:()=>ye(()=>import("./PresentationSpeakerView-CoTPvDZa.js"),__vite__mapDeps([38,30,39,40,41,42,43,44,45])),props:!0,meta:{bare:!0,title:"Prezentacja"}},{path:"/moje-prezentacje/:slug/pilot",name:"presentation-remote",component:()=>ye(()=>import("./PresentationRemoteView-DMNivM_-.js"),__vite__mapDeps([46,40,41,30,47,44,48,43,49])),props:!0,meta:{bare:!0,title:"Pilot"}},{path:"/pilot",name:"pilot",redirect:()=>Hp()},{path:"/prezentacje/:slugHash",name:"presentation-public",component:()=>ye(()=>import("./PresentationPublicView-BiFFJw7H.js"),__vite__mapDeps([50,30,39,40,41,42,51])),props:!0,meta:{public:!0,bare:!0,title:"Prezentacja"}},{path:"/connect",name:"connect",component:()=>ye(()=>import("./ConnectView-B6wNmLO8.js"),[]),meta:{title:"Połącz aplikację"}},{path:"/cast",name:"cast",component:()=>ye(()=>import("./CastReceiverView-CkfJy-8z.js"),__vite__mapDeps([52,40,41,30,39,42,48,44,53])),meta:{public:!0,bare:!0,cast:!0,title:"BM · TV"}},{path:"/:rest(.*)*",name:"notfound",component:()=>ye(()=>import("./NotFoundView-DIWF_u8U.js"),__vite__mapDeps([54,47])),meta:{title:"Nie znaleziono"}}]});vn.beforeEach(async e=>{const t=Cc();return e.meta.cast===!0&&et.clear(),t.ready||await t.restore(e),!e.meta.public&&!t.loggedIn?{name:"login",query:e.fullPath==="/"?{}:{redirect:e.fullPath}}:e.meta.guest&&t.loggedIn?{name:"dashboard"}:!0});vn.afterEach(e=>{const t=e.meta.title;document.title=t?`${t} · BM II°`:"BM II°"});const fe="/_bm/api/v1";function ga(e,t,n,s){return new Promise((r,i)=>{const o=new XMLHttpRequest;o.open("POST",`${fe}/materials/${e}/images`),o.setRequestHeader("Accept","application/json");const a=et.get();if(a&&o.setRequestHeader("Authorization",`Bearer ${a}`),o.upload.onprogress=c=>{c.lengthComputable&&c.total>0&&n?.(Math.min(100,Math.round(c.loaded/c.total*100)))},o.onload=()=>{let c=null;try{c=o.responseText?JSON.parse(o.responseText):null}catch{c=null}const u=c&&typeof c=="object"&&"data"in c?c.data:c;if(o.status>=200&&o.status<300&&u&&typeof u.id=="number"&&typeof u.url=="string"){r({id:u.id,url:u.url,name:String(u.name??t.name),size:Number(u.size??t.size),mime:String(u.mime??t.type)});return}const f=c??{},p=typeof f.message=="string"?f.message:typeof f.error=="string"?f.error:`Błąd ${o.status}`;i(new Ne(o.status,p,f.errors??{},c))},o.onerror=()=>i(new Ne(0,"Brak połączenia z serwerem.")),o.onabort=()=>i(new Ne(0,"Przerwano wysyłanie.")),s){if(s.aborted){i(new Ne(0,"Przerwano wysyłanie."));return}s.addEventListener("abort",()=>o.abort(),{once:!0})}const l=new FormData;l.append("file",t,t.name),o.send(l)})}async function Kp(e,t,n,s){const r=et.get();try{return await ga(e,t,n,s)}catch(i){if(!(i instanceof Ne)||i.status!==401||!r||s?.aborted)throw i;await U.request("/_user/api/v1/fetch").catch(()=>null);const o=et.get();if(!o||o===r)throw i;return n?.(0),ga(e,t,n,s)}}const Ae={dashboard:()=>U.request(`${fe}/dashboard`),courses:e=>U.request(`${fe}/courses`,{query:{semester:e}}),course:e=>U.request(`${fe}/courses/${e}`),schedule:(e,t)=>U.request(`${fe}/schedule`,{query:{from:e,to:t}}),meetings:()=>U.request(`${fe}/meetings`),deadlines:(e,t)=>U.request(`${fe}/deadlines`,{query:{from:e,to:t}}),readings:e=>U.request(`${fe}/readings`,{query:{course:e}}),markRead:e=>U.request(`${fe}/readings/${e}/progress`,{method:"PUT"}),unmarkRead:e=>U.request(`${fe}/readings/${e}/progress`,{method:"DELETE"}),markOwned:e=>U.request(`${fe}/readings/${e}/owned`,{method:"PUT"}),unmarkOwned:e=>U.request(`${fe}/readings/${e}/owned`,{method:"DELETE"}),materials:(e={})=>U.raw(`${fe}/materials`,{query:{...e}}),material:e=>U.request(`${fe}/materials/${e}`),pinMaterial:e=>U.request(`${fe}/materials/${e}/pin`,{method:"PUT"}),unpinMaterial:e=>U.request(`${fe}/materials/${e}/pin`,{method:"DELETE"}),materialAccess:e=>U.request(`${fe}/materials/${e}/access`),saveMaterialAccess:(e,t)=>U.request(`${fe}/materials/${e}/access`,{method:"PUT",body:t}),tags:()=>U.request(`${fe}/tags`),editMaterial:(e,t)=>U.request(`${fe}/materials/${e}`,{method:"PUT",body:t}),unpublishMaterial:e=>U.request(`${fe}/materials/${e}/unpublish`,{method:"POST"}),uploadMaterialImage:Kp,calendarFeed:()=>U.request(`${fe}/calendar-feed`),saveCalendarFeed:e=>U.request(`${fe}/calendar-feed`,{method:"PUT",body:e}),rotateCalendarFeed:()=>U.request(`${fe}/calendar-feed/rotate`,{method:"POST"}),deleteCalendarFeed:()=>U.request(`${fe}/calendar-feed`,{method:"DELETE"}),checklists:e=>U.request(`${fe}/checklists`,{query:{meeting:e}}),checklist:e=>U.request(`${fe}/checklists/${e}`),createChecklist:e=>U.request(`${fe}/checklists`,{method:"POST",body:e}),updateChecklist:(e,t)=>U.request(`${fe}/checklists/${e}`,{method:"PATCH",body:t}),deleteChecklist:e=>U.request(`${fe}/checklists/${e}`,{method:"DELETE"}),addChecklistItem:(e,t)=>U.request(`${fe}/checklists/${e}/items`,{method:"POST",body:t}),updateChecklistItem:(e,t)=>U.request(`${fe}/checklist-items/${e}`,{method:"PATCH",body:t}),deleteChecklistItem:e=>U.request(`${fe}/checklist-items/${e}`,{method:"DELETE"}),markChecklistItem:e=>U.request(`${fe}/checklist-items/${e}/done`,{method:"PUT"}),unmarkChecklistItem:e=>U.request(`${fe}/checklist-items/${e}/done`,{method:"DELETE"})},Wp={"historia-koncepcje":"Historia / koncepcje wojny i pokoju",specjalnosc:"Specjalność"};function ey(e){return Wp[e]??e}function Zi(e){const t=new Map;for(const n of e){if(!n.elective_group)continue;const s=t.get(n.elective_group)??[];s.includes(n.name)||s.push(n.name),t.set(n.elective_group,s)}return[...t].map(([n,s])=>({code:n,options:s}))}function Gp(e,t){const n={};for(const s of Zi(e)){const r=t[s.code];r&&s.options.includes(r)&&(n[s.code]=r)}return n}function Jp(e,t){if(!e.elective_group)return!1;const n=t[e.elective_group];return n!==void 0&&n!==e.name}function pc(e,t,n=!1){const s=new Set;if(n)return s;for(const r of e)Jp(r,t)&&s.add(r.id);return s}function Qr(e,t){return t.size===0?e:e.filter(n=>n.course_id===null||!t.has(n.course_id))}function Yp(e,t){return Zi(e).filter(n=>n.options.length>1&&!t[n.code])}function ty(e,t){return!!e.elective_group&&!t[e.elective_group]}const ya="bm.showAllElectives";function va(e){try{return localStorage.getItem(e)}catch{return null}}function _a(e,t){try{localStorage.setItem(e,t)}catch{}}const ls=Wt("electives",()=>{const e=X({}),t=X(va(ya)==="1"),n=X(null),s=()=>n.value===null?null:`bm.electives.${n.value}`,r=()=>{const f=s();f&&_a(f,JSON.stringify(e.value))};function i(f){n.value=f;try{const p=JSON.parse(va(`bm.electives.${f}`)??"{}");e.value=p&&typeof p=="object"?p:{}}catch{e.value={}}}const o=ne(()=>Object.keys(e.value).length>0);function a(f,p){const g={...e.value};p===null?delete g[f]:g[f]=p,e.value=g,r()}function l(f){t.value=f,_a(ya,f?"1":"0")}function c(f){const p=Gp(f,e.value);Object.keys(p).length!==Object.keys(e.value).length&&(e.value=p,r())}function u(){e.value={},n.value=null}return{choices:e,showAll:t,userId:n,hasChoices:o,load:i,choose:a,setShowAll:l,prune:c,reset:u}}),Sn=Wt("toast",()=>{const e=X("");let t;function n(r,i=4e3){e.value=r,clearTimeout(t),t=setTimeout(()=>e.value="",i)}function s(){e.value=""}return{message:e,show:n,clear:s}});function Ct(e){return e instanceof Ne?e.message:"Nie udało się wczytać danych."}function xn(e){const t=jn(null),n=X(!1),s=X("");let r=null;function i(a=!1){return r||(t.value!==null&&!a?Promise.resolve():(n.value=!0,s.value="",r=e().then(l=>{t.value=l}).catch(l=>{s.value=Ct(l)}).finally(()=>{n.value=!1,r=null}),r))}function o(){t.value=null,s.value="",n.value=!1,r=null}return{data:t,loading:n,error:s,load:i,reset:o}}const ba="2000-01-01",Qi=Wt("bm",()=>{const e=xn(()=>Ae.courses()),t=xn(()=>Ae.meetings()),n=xn(()=>Ae.schedule(ba)),s=xn(()=>Ae.deadlines(ba)),r=xn(()=>Ae.readings()),i=xn(()=>Ae.dashboard()),o=ne(()=>e.data.value),a=ne(()=>t.data.value),l=ne(()=>i.data.value),c=ls(),u=ne(()=>Zi(o.value??[])),f=ne(()=>Yp(o.value??[],c.choices)),p=ne(()=>pc(o.value??[],c.choices,c.showAll)),g=ne(()=>Qr(n.data.value??[],p.value)),v=ne(()=>Qr(s.data.value??[],p.value)),w=ne(()=>Qr(r.data.value??[],p.value)),S=ne(()=>r.data.value??[]),E=ne(()=>(o.value??[]).filter(H=>!p.value.has(H.id))),y=ne(()=>{const H=w.value,Se=H.filter(ee=>ee.is_required);return{total:H.length,read:H.filter(ee=>ee.read_at).length,requiredTotal:Se.length,requiredRead:Se.filter(ee=>ee.read_at).length}}),C=ne(()=>new Map((o.value??[]).map(H=>[H.id,H])));async function O(H=!1){await e.load(H),e.data.value&&c.prune(e.data.value)}async function N(H,Se){const ee=r.data.value,W=ee?.find(me=>me.id===H);if(!ee||!W)return;const re=W.read_at,$e=me=>{r.data.value=ee.map(Te=>Te.id===H?{...Te,read_at:me}:Te)};$e(Se?new Date().toISOString():null);try{const me=Se?await Ae.markRead(H):await Ae.unmarkRead(H);$e(me.read_at)}catch(me){$e(re),Sn().show(`Nie udało się zapisać zmiany. ${Ct(me)}`)}}function Q(H,Se){const ee=r.data.value;ee&&(r.data.value=ee.map(W=>W.id===H?{...W,read_at:Se}:W))}async function $(H,Se){const ee=r.data.value,W=ee?.find(me=>me.id===H);if(!ee||!W)return;const re=W.owned_at,$e=me=>{r.data.value=ee.map(Te=>Te.id===H?{...Te,owned_at:me}:Te)};$e(Se?new Date().toISOString():null);try{const me=Se?await Ae.markOwned(H):await Ae.unmarkOwned(H);$e(me.owned_at)}catch(me){$e(re),Sn().show(`Nie udało się zapisać zmiany. ${Ct(me)}`)}}const F=[e,t,n,s,r,i],B=ne(()=>F.some(H=>H.loading.value)),oe=ne(()=>F.find(H=>H.error.value)?.error.value??""),L=ne(()=>({courses:e.data.value!==null,meetings:t.data.value!==null,schedule:n.data.value!==null,deadlines:s.data.value!==null,readings:r.data.value!==null,dashboard:i.data.value!==null}));function Me(){for(const H of F)H.error.value&&H.load(!0)}function Ce(){for(const H of F)H.reset()}return{courses:o,electiveGroups:u,pendingElectives:f,hidden:p,meetings:a,dashboard:l,schedule:g,deadlines:v,readings:w,allReadings:S,visibleCourses:E,readingStats:y,courseById:C,loading:B,error:oe,loaded:L,retry:Me,loadCourses:O,loadMeetings:(H=!1)=>t.load(H),loadSchedule:(H=!1)=>n.load(H),loadDeadlines:(H=!1)=>s.load(H),loadReadings:(H=!1)=>r.load(H),loadDashboard:(H=!1)=>i.load(H),toggleReading:N,toggleOwned:$,setReadAt:Q,reset:Ce}}),Zp={lektura:"Lektura",artykul:"Artykuł",ksiazka:"Książka",prezentacja:"Prezentacja",zadanie:"Zadanie",inne:"Inne"},ny=Object.keys(Zp);function Qp(e){const t=Math.floor(e/60),n=e%60;return t?n?`${t} h ${n} min`:`${t} h`:`${n} min`}function Xp(e){const t={total:0,done:0,percent:0,minutes_total:0,minutes_done:0,minutes_left:0};for(const n of e){const s=n.estimate_minutes??0;t.total++,t.minutes_total+=s,n.done?(t.done++,t.minutes_done+=s):t.minutes_left+=s}return t.minutes_total?t.percent=Math.floor(t.minutes_done*100/t.minutes_total):t.percent=t.total?Math.floor(t.done*100/t.total):0,t}function sy(e){const t=`${e.done} z ${e.total}`;return e.minutes_left?`${t} · zostało ${Qp(e.minutes_left)}`:t}function ry(e){const t=new Map;for(const s of e){const r=s.course?`c${s.course.id}`:"none";let i=t.get(r);i||(i={key:r,label:s.course?.name??"Ogólne",items:[]},t.set(r,i)),i.items.push(s)}const n=t.get("none");return t.delete("none"),n?[...t.values(),n]:[...t.values()]}function iy(e){if(!e)return"";const t=new Date(e),n=s=>String(s).padStart(2,"0");return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function oy(e){return e?e.replace("T"," "):null}const em=Wt("checklists",()=>{const e=X(null),t=X(""),n=X({}),s=X("");async function r(){t.value="";try{e.value=await Ae.checklists()}catch(y){t.value=Ct(y)}}async function i(y){s.value="";try{o(await Ae.checklist(y))}catch(C){s.value=Ct(C)}}function o(y){y.items||(y={...y,items:n.value[y.id]?.items??[]}),n.value={...n.value,[y.id]:y};const C={...y,items:void 0};e.value&&(e.value=e.value.some(O=>O.id===y.id)?e.value.map(O=>O.id===y.id?C:O):[...e.value,C])}function a(y,C){const O=n.value[y];O&&o({...O,items:C,progress:Xp(C)})}async function l(y){const C=await Ae.createChecklist(y);return o(C),C}async function c(y,C){o(await Ae.updateChecklist(y,C))}async function u(y){await Ae.deleteChecklist(y);const{[y]:C,...O}=n.value;n.value=O,e.value&&(e.value=e.value.filter(N=>N.id!==y))}function f(y,C){for(const O of Object.values(n.value))O.items?.some(N=>N.reading_id===y)&&a(O.id,O.items.map(N=>N.reading_id===y?{...N,done:C!==null,done_at:C}:N))}async function p(y,C){const O=n.value[y.checklist_id];if(!O?.items)return;const N=O.items,Q=$=>{if(y.reading_id!==null)f(y.reading_id,$);else{const F=n.value[y.checklist_id]?.items??N;a(y.checklist_id,F.map(B=>B.id===y.id?{...B,done:$!==null,done_at:$}:B))}};Q(C?new Date().toISOString():null);try{const $=C?await Ae.markChecklistItem(y.id):await Ae.unmarkChecklistItem(y.id);Q($.done_at),y.reading_id!==null&&Qi().setReadAt(y.reading_id,$.done_at)}catch($){a(y.checklist_id,N),Sn().show(`Nie udało się zapisać zmiany. ${Ct($)}`)}}async function g(y,C){const O=await Ae.addChecklistItem(y,C),N=n.value[y];return N?.items&&a(y,[...N.items,O]),O}async function v(y,C){const O=await Ae.updateChecklistItem(y.id,C);if(O.checklist_id!==y.checklist_id){const Q=n.value[y.checklist_id];return Q?.items&&a(y.checklist_id,Q.items.filter($=>$.id!==y.id)),i(O.checklist_id),r(),O}const N=n.value[y.checklist_id];if(N?.items){const Q=N.items.map($=>$.id===y.id?O:$);a(y.checklist_id,Q.sort(($,F)=>$.sort_order-F.sort_order||$.id-F.id))}return O}async function w(y){await Ae.deleteChecklistItem(y.id);const C=n.value[y.checklist_id];C?.items&&a(y.checklist_id,C.items.filter(O=>O.id!==y.id))}async function S(y,C){const O=n.value[y.checklist_id]?.items;if(!O)return;const N=O.findIndex(B=>B.id===y.id),Q=O[N+C];if(!Q)return;const $=Q.sort_order===y.sort_order?N+C:Q.sort_order,F=Q.sort_order===y.sort_order?N:y.sort_order;try{await Promise.all([v(y,{sort_order:$}),v(Q,{sort_order:F})])}catch(B){Sn().show(`Nie udało się zmienić kolejności. ${Ct(B)}`),i(y.checklist_id)}}function E(){e.value=null,n.value={},t.value="",s.value=""}return{list:e,listError:t,details:n,detailError:s,loadList:r,loadOne:i,create:l,update:c,remove:u,toggle:p,syncReading:f,addItem:g,updateItem:v,removeItem:w,move:S,reset:E}});function tm(e,t){return[...pc(e,t,!1)].sort((n,s)=>n-s)}function nm(e,t){if(e.length!==t.length)return!1;const n=[...e].sort((r,i)=>r-i),s=[...t].sort((r,i)=>r-i);return n.every((r,i)=>r===s[i])}async function ay(e){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(e),!0}catch{}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch{return!1}}const mc=Wt("calendarFeed",()=>{const e=X(void 0),t=X(!1),n=X(!1),s=X(""),r=Qi(),i=ls();let o=Promise.resolve();function a(E){const y=o.then(E,E);return o=y.catch(()=>{}),y}async function l(E=!1){if(!(e.value!==void 0&&!E)){t.value=!0,s.value="";try{e.value=await Ae.calendarFeed()}catch(y){s.value=Ct(y)}finally{t.value=!1}}}async function c(){await r.loadCourses();const E=r.courses;return E?tm(E,i.choices):null}async function u(E){n.value=!0,s.value="";try{await a(E)}catch(y){s.value=Ct(y)}finally{n.value=!1}}function f(){return u(async()=>{const E=await c();e.value=await Ae.saveCalendarFeed(E?{excluded_course_ids:E}:{})})}function p(E){return u(async()=>{e.value=await Ae.saveCalendarFeed(E)})}function g(){return u(async()=>{e.value=await Ae.rotateCalendarFeed()})}function v(){return u(async()=>{await Ae.deleteCalendarFeed(),e.value=null})}function w(){return a(async()=>{e.value===void 0&&await l();const E=e.value;if(!E)return;const y=await c();if(!(!y||nm(y,E.excluded_course_ids)))try{e.value=await Ae.saveCalendarFeed({excluded_course_ids:y})}catch(C){Sn().show(`Nie udało się zaktualizować kalendarza. ${Ct(C)}`)}})}bn(()=>i.choices,()=>{i.userId!==null&&w()});function S(){e.value=void 0,s.value="",t.value=!1,n.value=!1}return{feed:e,loading:t,busy:n,error:s,load:l,create:f,save:p,rotate:g,remove:v,sync:w,reset:S}}),zs="/_bm/api/v1",it="/_chat/api/v1";function wa(e,t,n){return new Promise((s,r)=>{const i=new XMLHttpRequest;i.open("POST",`${it}/attachments`),i.setRequestHeader("Accept","application/json");const o=et.get();if(o&&i.setRequestHeader("Authorization",`Bearer ${o}`),i.upload.onprogress=l=>{l.lengthComputable&&l.total>0&&t?.(Math.min(100,Math.round(l.loaded/l.total*100)))},i.onload=()=>{let l=null;try{l=i.responseText?JSON.parse(i.responseText):null}catch{l=null}const c=l&&typeof l=="object"&&"data"in l?l.data:l;if(i.status>=200&&i.status<300&&c&&typeof c.id=="number"){s({id:c.id,filename:String(c.filename??e.name),size:Number(c.size??e.size)});return}const u=l??{};r(new Ne(i.status,typeof u.error=="string"?u.error:`Błąd ${i.status}`,u.errors??{}))},i.onerror=()=>r(new Ne(0,"Brak połączenia z serwerem.")),i.onabort=()=>r(new Ne(0,"Przerwano wysyłanie.")),n){if(n.aborted){r(new Ne(0,"Przerwano wysyłanie."));return}n.addEventListener("abort",()=>i.abort(),{once:!0})}const a=new FormData;a.append("file",e,e.name),i.send(a)})}async function sm(e,t,n){const s=et.get();try{return await wa(e,t,n)}catch(r){if(!(r instanceof Ne)||r.status!==401||!s||n?.aborted)throw r;await U.request("/_user/api/v1/fetch").catch(()=>null);const i=et.get();if(!i||i===s)throw r;return t?.(0),wa(e,t,n)}}async function rm(e,t,n){const s=await U.blob(`${it}/attachments/${e}/${t}`),r=URL.createObjectURL(new Blob([s],{type:"application/octet-stream"})),i=document.createElement("a");i.href=r,i.download=n||"plik",i.rel="noopener",i.style.display="none",document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),3e4)}const Fe={bootstrap:()=>U.request(`${zs}/chat`),members:()=>U.request(`${zs}/chat/members`),messages:(e,{limit:t=50,before:n}={})=>U.request(`${it}/conversations/${e}/messages`,{query:{limit:t,before:n}}),send:(e,t)=>U.request(`${it}/conversations/${e}/messages`,{method:"POST",body:t}),message:e=>U.request(`${it}/messages/${e}`),markRead:e=>U.request(`${it}/conversations/${e}/read`,{method:"POST"}),typing:e=>U.request(`${it}/conversations/${e}/typing`,{method:"POST"}),edit:(e,t)=>U.request(`${it}/messages/${e}`,{method:"PUT",body:{content:t}}),remove:e=>U.request(`${it}/messages/${e}`,{method:"DELETE"}),reactions:()=>U.request(`${it}/reactions`),addReaction:(e,t)=>U.request(`${it}/messages/${e}/reactions`,{method:"POST",body:{key:t}}),removeReaction:(e,t)=>U.request(`${it}/messages/${e}/reactions/${encodeURIComponent(t)}`,{method:"DELETE"}),embeds:(e,t="")=>U.request(`${zs}/chat/embeds`,{query:{type:e,q:t.trim()}}),resolveEmbeds:e=>U.request(`${zs}/chat/embeds/resolve`,{method:"POST",body:{refs:e}}),upload:sm,download:rm,startDm:e=>U.request(`${it}/contexts/bm/1/dm`,{method:"POST",body:{user_id:e}})};function Dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function We(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:null}function im(e){return Dt(e)?We(e.id)!==null&&We(e.conversation_id)!==null&&We(e.sender_id)!==null&&typeof e.created_at=="string"&&(e.content===null||typeof e.content=="string")&&Array.isArray(e.attachments):!1}function om(e){if(!Dt(e)||typeof e.event!="string")return null;const t=e.payload;switch(e.event){case"created.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id),r=We(t.sender_id);return n===null||s===null||r===null?null:{kind:"created",id:n,conversationId:s,senderId:r}}case"chat:message":{if(!Dt(t)||!im(t.message))return null;const n=We(t.conversation_id);return n===null||n!==t.message.conversation_id?null:{kind:"chatMessage",conversationId:n,message:t.message}}case"typing.chat.message":{if(!Dt(t)||t.action!=="typing-start")return null;const n=We(t.conversation_id),s=We(t.user_id);return n===null||s===null?null:{kind:"typing",conversationId:n,userId:s}}case"chat:read":{if(!Dt(t))return null;const n=We(t.conversation_id),s=We(t.user_id);return n===null||s===null?null:{kind:"read",conversationId:n,userId:s}}case"chat:unread":return!Dt(t)||typeof t.count!="number"||!Number.isInteger(t.count)||t.count<0?null:{kind:"unread",count:t.count};case"mentions.changed":return{kind:"mentions"};case"reacted.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id),r=We(t.user_id);return n===null||s===null||r===null||typeof t.key!="string"||t.key===""||t.action!=="added"&&t.action!=="removed"?null:{kind:"reacted",id:n,conversationId:s,userId:r,key:t.key,added:t.action==="added"}}case"updated.chat.message":case"deleted.chat.message":{if(!Dt(t))return null;const n=We(t.id),s=We(t.conversation_id);return n===null||s===null?null:{kind:e.event==="updated.chat.message"?"updated":"deleted",id:n,conversationId:s}}default:return null}}function am(e,t){if(e.kind!=="created")return!1;const n=t[e.conversationId];return!!n&&!n.some(s=>s.id===e.id)}function lm(e,t,{seen:n}){const s={id:t.id,sender_id:t.sender_id,content:t.content??"",created_at:t.created_at},r=e.findIndex(l=>l.id===t.conversation_id);if(r===-1)return[{id:t.conversation_id,type:"dm",other_user_id:t.sender_id,unread:n?0:1,last_message:s},...e];const i=e[r];if(i.last_message&&i.last_message.id===t.id)return e;const o=!i.last_message||Date.parse(t.created_at)>=Date.parse(i.last_message.created_at),a={...i,unread:n?i.unread:i.unread+1,last_message:o?s:i.last_message};return e.map((l,c)=>c===r?a:l)}function Xr(e,t,n,s,r=[]){const i=e?[...e]:[],o=i.findIndex(c=>c.key===t),a=o>=0&&i[o].user_ids.includes(n);if(s===a)return e||i;if(s){if(o>=0)return i[o]={...i[o],count:i[o].count+1,user_ids:[...i[o].user_ids,n]},i;const c={key:t,count:1,user_ids:[n]},u=p=>{const g=r.indexOf(p);return g<0?r.length:g};let f=i.length;return r.includes(t)&&(f=i.findIndex(p=>u(p.key)>u(t)),f<0&&(f=i.length)),i.splice(f,0,c),i}const l=i[o].user_ids.filter(c=>c!==n);return l.length===0?i.splice(o,1):i[o]={...i[o],count:Math.max(0,i[o].count-1),user_ids:l},i}const cm=["svg","svgz","html","htm","xhtml","xml"],um=["image/svg+xml","text/html","application/xhtml+xml","text/xml","application/xml"];function Ea(e){const t=e/1048576;return Number.isInteger(t)?String(t):(Math.floor(t*10)/10).toFixed(1).replace(".",",")}function fm(e){const t=e.name.lastIndexOf("."),n=(t>=0?e.name.slice(t+1):e.name).toLowerCase();if(cm.includes(n))return!0;const s=(e.type||"").split(";")[0].trim().toLowerCase();return um.includes(s)}function dm(e,t,n,s=0){const r=[],i=[];let o=!1,a=!1,l=!1,c=s;for(const u of e){if(fm(u)){o=!0;continue}if(t.max_bytes>0&&u.size>t.max_bytes){i.push(`Plik „${u.name}” jest za duży. Limit to ${Ea(t.max_bytes)} MB.`);continue}if(n+r.length>=t.max_files){a=!0;continue}if(t.max_bytes>0&&c+u.size>t.max_bytes){l=!0;continue}c+=u.size,r.push(u)}return l&&i.unshift(`Załączniki jednej wiadomości mogą mieć razem najwyżej ${Ea(t.max_bytes)} MB.`),o&&i.unshift("Plików SVG, HTML i XML nie można wysyłać na czacie."),a&&i.unshift(`Możesz dołączyć najwyżej ${t.max_files} plików do jednej wiadomości.`),{accepted:r,errors:i}}const hm=["deadline","class","reading"],Ri=3,ly={deadline:"Termin",class:"Zajęcia",reading:"Lektura"};function tn(e){return`${e.type}:${e.id}`}function pm(e){return typeof e=="string"&&hm.includes(e)}function gc(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function mm(e){if(!e||typeof e!="object")return!1;const t=e;return pm(t.type)&&gc(t.id)}function gm(e,t=Ri){const n=e?.metadata?.embeds;if(!Array.isArray(n))return[];const s=[],r=new Set;for(const i of n){if(s.length>=t)break;if(!mm(i))continue;const o={type:i.type,id:i.id},a=tn(o);r.has(a)||(r.add(a),s.push(o))}return s}function yc(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":return`/plan#zajecia-${e.id}`;case"reading":return`/lektury#lektura-${e.id}`}}function ym(e,t=""){return e.map(n=>t+yc(n)).join(` `)}function cy(e,t){if(!e||!t.length)return!1;const n=e.trim().split(` `);return n.length!==t.length?!1:n.every((s,r)=>{const i=yc(t[r]);return s===i?!0:s.endsWith(i)?/^https?:\/\/[^/\s]+$/i.test(s.slice(0,s.length-i.length)):!1})}function uy(e){switch(e.type){case"deadline":return e.deadline.title;case"class":return e.session.course?.name??"";case"reading":return e.reading.title}}function fy(e){switch(e.type){case"deadline":return`/terminarz#termin-${e.id}`;case"class":{const t=e.session;return t.meeting_number?`/plan?zjazd=${t.meeting_number}#zajecia-${e.id}`:`/przedmioty/${t.course_id}`}case"reading":return`/lektury#lektura-${e.id}`}}function dy(e){switch(e.type){case"deadline":{const t=e.deadline,n=[Cp(t.due_at),kp[t.kind]??t.kind];return t.course?.name&&n.push(t.course.name),n.join(" · ")}case"class":{const t=e.session,n=[`${Ap(t.starts_at)}, ${Ei(t.starts_at)}–${Ei(t.ends_at)}`];return t.course?.form&&n.push(Pp[t.course.form]??t.course.form),t.is_online?n.push("online"):t.room&&n.push(`sala ${t.room}`),n.join(" · ")}case"reading":{const t=e.reading;return[t.author,t.course?.name].filter(n=>!!n).join(" · ")}}}function Sa(e,t){const n=fc(e,t);return{text:xp(e,t),warn:n>=0&&n<=14}}function hy(e,t=new Date){switch(e.type){case"deadline":return Sa(e.deadline.due_at,t);case"class":return Sa(e.session.starts_at,t);case"reading":return e.reading.is_required?{text:"obowiązkowa",warn:!1}:null}}const vm=[{path:"/terminarz",hash:/^#termin-([1-9]\d{0,15})$/,type:"deadline"},{path:"/plan",hash:/^#zajecia-([1-9]\d{0,15})$/,type:"class"},{path:"/lektury",hash:/^#lektura-([1-9]\d{0,15})$/,type:"reading"}];function vc(e,t){const n=e.trim();if(!n||!/^https?:\/\//i.test(n)&&(!n.startsWith("/")||n.startsWith("//")))return null;let r;try{r=new URL(n,t)}catch{return null}if(r.origin!==t)return null;for(const i of vm){if(r.pathname!==i.path)continue;const o=i.hash.exec(r.hash);if(!o)return null;const a=Number(o[1]);return gc(a)?{type:i.type,id:a}:null}return null}const _m=/https?:\/\/[^\s<>"'`]+|(?"'`]+/gi;function bm(e,t){const n=[],s=new Set;for(const r of e.matchAll(_m)){const i=r[0].replace(/[.,;:!?)\]}"'”»]+$/,""),o=vc(i,t);if(!o)continue;const a=tn(o);s.has(a)||(s.add(a),n.push(o))}return n}function py(e,t){const n=bm(e,t);return n.length?{insertText:e.trim().split(/\s+/).every(i=>vc(i,t)!==null)?"":e,refs:n}:{insertText:e,refs:n}}const wm="/ws",Em="/api/realtime/token",Sm=new Set([401,403,404]);function _c(e){return Sm.has(e)}const Tm=1;function Rm(e=window.location){return`${e.protocol==="https:"?"wss":"ws"}://${e.host}${wm}`}function Am(e){const t=String(e);return t==="connected"||t==="connecting"?t:"disconnected"}function Ai(e){if(!e||typeof e.client!="string")return null;const t=Number(e.user);return!Number.isInteger(t)||t<=0?null:{client:e.client,user:t}}let Vt=null,In=null,vs="disconnected",Ts=!1,nr=null,Mi=null,En=0;const rn=new Map,Ci=new Set,qs=new Set;function bc(e){vs=e;for(const t of[...Ci])t(e)}function Mm(){Ts=!0;for(const e of[...qs])e()}function my(e){nr=e}function Cm(e,t){return e instanceof Ne&&_c(e.status)&&Mi?new Mi(t):e}function gy(){return Ts}function wc(e){return Ci.add(e),()=>{Ci.delete(e)}}function Ec(e){return qs.add(e),Ts&&queueMicrotask(()=>qs.has(e)&&e()),()=>{qs.delete(e)}}function xm(){if(Vt)return vs==="disconnected"&&!Ts&&Vt.connect(),Promise.resolve(Vt);if(In)return In;const e=En;return In=(async()=>{try{const{Centrifuge:t,UnauthorizedError:n}=await ye(async()=>{const{Centrifuge:r,UnauthorizedError:i}=await import("./index-B53bcf0x.js");return{Centrifuge:r,UnauthorizedError:i}},[]);if(e!==En)throw new Error("realtime: disconnected while loading");Mi=n;const s=new t(Rm(),{minReconnectDelay:500,maxReconnectDelay:1e4,getToken:async()=>{try{const r=nr;let i;if(r?i=await r.connection():i=(await U.request(Em))?.token,typeof i!="string"||i==="")throw new Error("realtime: empty token");return i}catch(r){throw r instanceof Ne&&_c(r.status)?(Mm(),new n("realtime unavailable")):r}}});return s.on("state",r=>{Vt===s&&bc(Am(r.newState))}),Vt=s,s.connect(),s}finally{e===En&&(In=null)}})(),In}function On(e,t){for(const n of[...e.hooks])t(n)}function Om(e,t){return nr?.subscription?e.newSubscription(t,{getToken:async()=>{const n=nr;if(!n?.subscription)throw new Error("realtime: no subscription token source");try{const s=await n.subscription(t);if(typeof s!="string"||s==="")throw new Error("realtime: empty subscription token");return s}catch(s){throw Cm(s,"subscription refused")}}}):e.newSubscription(t)}function Pm(e,t,n){let s=rn.get(t);if(s)String(s.sub.state)==="subscribed"&&queueMicrotask(()=>s?.hooks.has(n)&&n.onSubscribed?.());else{const r=e.getSubscription(t)??Om(e,t),i={sub:r,hooks:new Set};r.on("publication",o=>On(i,a=>a.onPublication?.(o.data))),r.on("subscribed",()=>On(i,o=>o.onSubscribed?.())),r.on("unsubscribed",o=>{o.code>=400?On(i,a=>a.onDenied?.(o.code)):o.code===Tm&&On(i,a=>a.onDenied?.(401))}),r.on("join",o=>{const a=Ai(o.info);a&&On(i,l=>l.onJoin?.(a))}),r.on("leave",o=>{const a=Ai(o.info);a&&On(i,l=>l.onLeave?.(a))}),rn.set(t,i),r.subscribe(),s=i}return s.hooks.add(n),s}function Sc(e,t){t.sub.removeAllListeners(),t.sub.unsubscribe(),Vt?.removeSubscription(t.sub),rn.delete(e)}async function Us(e,t){const n=await xm(),s={...t},r=En;Pm(n,e,s);let i=!1;return{close(){if(i)return;i=!0;const o=rn.get(e);r!==En||!o||!o.hooks.delete(s)||o.hooks.size>0||(Sc(e,o),rn.size===0&&Vt===n&&n.disconnect())},resubscribe(){i||r!==En||rn.get(e)?.sub.subscribe()}}}async function km(e){const t=rn.get(e);if(!t)return null;try{const n=await t.sub.presence();return Object.values(n.clients??{}).map(s=>Ai(s)).filter(s=>s!==null)}catch{return null}}function Im(){En++,In=null;for(const[t,n]of[...rn])Sc(t,n);const e=Vt;Vt=null,Ts=!1,e&&(e.disconnect(),e.removeAllListeners()),vs!=="disconnected"&&bc("disconnected")}async function yy(e,t){const n=wc(o=>t.onConnection?.(o)),s=Ec(()=>t.onUnavailable?.());let r;try{r=await Us(e,{onPublication:o=>t.onPublication(o),onSubscribed:()=>t.onSubscribed?.(),onDenied:o=>t.onDenied?.(o)})}catch(o){throw n(),s(),o}vs==="connected"&&t.onConnection?.(vs);let i=!1;return{close(){i||(i=!0,n(),s(),r.close())},resubscribe(){i||r.resubscribe()}}}const Lm={max_files:5,max_bytes:62914560};function Dm(e){return`Nie udało się wysłać pliku „${e}”.`}const Nm=Object.freeze({text:"",error:"",sending:!1,embeds:Object.freeze([]),files:Object.freeze([])}),Ta=50;function $m(){return typeof window<"u"&&window.location?window.location.origin:""}function jm(e){const t=e instanceof Ne?e.status:-1;return t===0?"Nie wysłano: brak połączenia z internetem. Spróbuj ponownie.":t===429?"Za dużo wiadomości w krótkim czasie. Odczekaj chwilę i wyślij ponownie.":t===403||t===404?"Nie masz już dostępu do tej rozmowy.":t===400||t===422?"Tej wiadomości nie da się wysłać. Sprawdź treść i załączniki.":"Nie wysłano wiadomości. Spróbuj ponownie."}function zm(e){return e instanceof Ne&&e.status===429?"Za dużo nowych rozmów w krótkim czasie. Odczekaj minutę i spróbuj ponownie.":e instanceof Ne&&e.status===0?"Brak połączenia z internetem. Spróbuj ponownie.":"Nie udało się rozpocząć rozmowy. Spróbuj ponownie."}const Vm=15e3,Fm=6e4,Bm=500,Qt=50,qm="Nie udało się wczytać starszych wiadomości.",Um=3e3,Hm=6e3,Ra={add:"Nie udało się dodać reakcji.",remove:"Nie udało się cofnąć reakcji."},Aa="Nie udało się zapisać zmian. Spróbuj ponownie.",Km="Nie udało się usunąć wiadomości. Spróbuj ponownie.";function Tc(e){e.deleted_at=e.deleted_at??new Date().toISOString(),e.content=null,e.reactions=[],e.attachments=[],e.metadata=void 0}function Wm(e,t,n){const s=new Set(t.map(i=>i.id)),r=t.lengthn||Tc(i)}const Ma=e=>`chat:conversation:${e}`;function Gm(){return typeof document>"u"||typeof document.hasFocus!="function"||document.hasFocus()}function Ca(e,t){if(e.some(s=>s.id===t.id))return!1;let n=e.length;for(;n>0&&e[n-1].id>t.id;)n--;return e.splice(n,0,t),!0}const Rc=e=>`bm.chat.member.${e}`;function Ac(){try{return globalThis.localStorage??null}catch{return null}}function Jm(e){try{const t=Ac()?.getItem(Rc(e));return t==="1"?!0:t==="0"?!1:void 0}catch{return}}function Ym(e,t){try{Ac()?.setItem(Rc(e),t?"1":"0")}catch{}}const Mc=Wt("chat",()=>{const e=X(null),t=X(void 0),n=X(!1),s=X(null),r=X([]),i=X(null),o=X(null),a=X("general"),l=X(""),c=X({}),u=X({}),f=X({}),p=X({}),g=X({}),v=jn(new Map),w=X("idle"),S=X("idle"),E=X("idle"),y=X(!1),C=X({}),O=X({}),N=X({}),Q=jn(new Map),$=X(!1),F=X({}),B=X(null),oe=X({});let L=0,Me=null,Ce=null,H=null;const Se=new Map,ee=new Map,W=new Set;let re=null,$e=0;const me=new Map,Te=new Map;let ke=!1,yt=null,vt=null,rt=null,He=null,x=0,q=[],z=null,K=null;const ie=new Set,h=new Map,m=new Map,_=new Map,A=new Set;let M=null;const T=new Map,j=new Map,I=ne(()=>s.value?.conversation_id??null);function D(d){return d===I.value?s.value?.unread??0:r.value.find(b=>b.id===d)?.unread??0}function P(d){return d===I.value?s.value?.mentions??0:0}const Y=ne(()=>r.value.reduce((d,b)=>d+(b.unread>0?b.unread:0),0)),V=ne(()=>t.value?Math.max(0,s.value?.unread??0)+Y.value:0),G=ne(()=>t.value?Math.max(0,s.value?.mentions??0):0),te=ne(()=>{const d=new Map;for(const b of v.value.values())b.handle&&d.set(b.handle,b);return d}),le=ne(()=>e.value!==null?v.value.get(e.value)?.handle??null:null),pe=ne(()=>[...new Set(Q.value.values())].filter(d=>d!==e.value).sort((d,b)=>d-b)),ge=ne(()=>pe.value.length+1);function Ie(d){return $.value&&pe.value.includes(d)}function je(d){return E.value==="unavailable"?[]:F.value[d]??[]}const ut=ne(()=>[...r.value].sort((d,b)=>{const R=d.last_message?Date.parse(d.last_message.created_at):-1/0;return(b.last_message?Date.parse(b.last_message.created_at):-1/0)-R||b.id-d.id}));function ft(d){if(!d.member){co(),t.value=!1,n.value=!1,s.value=null,r.value=[],i.value=null,o.value=null,a.value="general",c.value={};return}t.value=!0,n.value=d.moderator,s.value=d.general,r.value=(d.conversations??[]).map(R=>({...R})),i.value=d.limits;for(const R of[..._.keys(),...A])Xi(R);o.value!==null&&(o.value===d.general.conversation_id||r.value.some(R=>R.id===o.value))||(o.value=d.general.conversation_id,a.value==="dm"&&(a.value="general"))}function _t(){if(Me)return Me;const d=L,b=S.value==="ready";return b||(S.value="loading"),Me=(async()=>{try{const R=await Fe.bootstrap();if(d!==L)return;ft(R),e.value!==null&&Ym(e.value,R.member),S.value="ready"}catch{d===L&&!b&&(S.value="error")}finally{d===L&&(Me=null)}})(),Me}async function Rs(d){e.value!==d&&(uo(),e.value=d),t.value===void 0&&(t.value=Jm(d));const b=L;await _t(),!(b!==L||!t.value)&&(ro(),io(),Ic(),du(),o.value!==null&&a.value!=="dms"&&await Je(o.value))}async function Ke(d){const b=L;u.value[d]=!0,f.value[d]="";try{const R=await Fe.messages(d,{limit:Qt});if(b!==L)return;c.value[d]=R,C.value[d]=R.length{try{const J=c.value[d]?.at(-1)?.id??0,ce=await Fe.messages(d,{limit:Qt});if(R!==L)return;const de=c.value[d],ae=de?.at(-1)?.id??0;if(!de||ce.length>=Qt&&ce[0].id>ae){c.value[d]=ce,f.value[d]="",C.value[d]=ce.length[bt.id,bt]));for(const bt of ce)ue.set(bt.id,bt);c.value[d]=[...ue.values()].sort((bt,ln)=>bt.id-ln.id)}catch{}finally{R===L&&h.delete(d)}})();return h.set(d,k),k}async function As(d){const b=c.value[d];if(!b?.length||O.value[d]||C.value[d])return;const R=L;O.value[d]=!0,N.value[d]="";try{const k=await Fe.messages(d,{limit:Qt,before:b[0].id});if(R!==L)return;const J=c.value[d]??[],ce=new Set(J.map(de=>de.id));c.value[d]=[...k.filter(de=>!ce.has(de.id)),...J],C.value[d]=k.lengthR.id===d);b&&(b.unread=0)}function kc(d){const b=c.value[d]?.at(-1)?.id??0;if(!(D(d)>0||P(d)>0||b>(m.get(d)??0))||(Xi(d),m.set(d,b),_.has(d)))return;const k=L;_.set(d,setTimeout(()=>{_.delete(d),k===L&&(A.add(d),Fe.markRead(d).catch(()=>{}).finally(()=>{k===L&&A.delete(d)}))},Bm))}function Ic(){M||typeof document>"u"||(M=()=>{document.visibilityState==="visible"&&t.value&&Kn()},document.addEventListener("visibilitychange",M))}function eo(){return a.value==="dms"?null:o.value}function Lc(d){return o.value===d&&a.value!=="dms"&&y.value&&Gm()}function to(d){const b=c.value[d.conversation_id];b&&Ca(b,d);const R=r.value.find(k=>k.id===d.conversation_id);R&&(!R.last_message||Date.parse(d.created_at)>=Date.parse(R.last_message.created_at))&&(R.last_message={id:d.id,sender_id:d.sender_id,content:d.content??"",created_at:d.created_at})}async function Dc(){a.value="general",I.value!==null&&await Je(I.value)}function Nc(){a.value="dms",l.value="",Ir()}async function Rr(d){a.value="dm",await Je(d)}function no(d){return r.value.find(b=>b.other_user_id===d)}async function $c(d){l.value="";const b=no(d);if(b)return await Rr(b.id),b.id;const R=L;try{const k=await Fe.startDm(d);return R!==L?null:(r.value.some(J=>J.id===k.id)||r.value.unshift({id:k.id,type:k.type||"dm",other_user_id:d,unread:0,last_message:null}),await Rr(k.id),k.id)}catch(k){return R===L&&(l.value=zm(k)),null}}function Ar(d){return d!==null&&p.value[d]||Nm}function Ms(d){return p.value[d]||(p.value[d]={text:"",error:"",sending:!1,embeds:[],files:[]}),p.value[d]}function Mr(d){return Ar(d).files.some(b=>b.state==="uploading")}function jc(d){const b=Ar(d);return b.sending||Mr(d)?!1:b.text.trim()!==""||b.embeds.length>0||b.files.some(R=>R.state==="done")}function so(d,b){const R=me.get(b),k=p.value[d]?.files.find(ae=>ae.localId===b);if(!R||!k)return;k.state="uploading",k.progress=0,k.id=null;const J=new AbortController;Te.set(b,J);const ce=L,de=()=>p.value[d]?.files.find(ae=>ae.localId===b);Fe.upload(R,ae=>{const ue=de();ce===L&&ue&&ue.state==="uploading"&&(ue.progress=ae)},J.signal).then(ae=>{const ue=de();ce!==L||!ue||J.signal.aborted||(ue.state="done",ue.progress=100,ue.id=ae.id)}).catch(()=>{const ae=de();if(ce!==L||!ae||J.signal.aborted)return;ae.state="failed";const ue=p.value[d];ue&&(ue.error=Dm(ae.name))}).finally(()=>{Te.get(b)===J&&Te.delete(b)})}function zc(d,b){const R=Ms(d),k=R.files.reduce((de,ae)=>de+ae.size,0),{accepted:J,errors:ce}=dm(b,i.value??Lm,R.files.length,k);R.error=ce.join(" ");for(const de of J){const ae=++$e;me.set(ae,de),R.files.push({localId:ae,name:de.name,size:de.size,progress:0,state:"uploading",id:null}),so(d,ae)}return ce}function Vc(d,b){const R=p.value[d]?.files.find(J=>J.localId===b);if(!R||R.state!=="failed")return;const k=p.value[d];k&&(k.error=""),so(d,b)}function Fc(d,b){Te.get(b)?.abort(),Te.delete(b),me.delete(b);const R=p.value[d];R&&(R.files=R.files.filter(k=>k.localId!==b))}const Cs=ne(()=>Math.min(i.value?.max_embeds||Ri,Ri));function Bc(d,b,R){const k=Ms(d),J=tn(b);return k.embeds.some(ce=>tn(ce)===J)||k.embeds.length>=Cs.value?!1:(k.embeds.push({type:b.type,id:b.id}),k.error="",R?oe.value[J]=R:Cr([b]),!0)}function qc(d,b){const R=p.value[d];if(!R)return;const k=tn(b);R.embeds=R.embeds.filter(J=>tn(J)!==k)}function Uc(d){return oe.value[tn(d)]}function Cr(d,b=!1){for(const R of d){const k=tn(R);W.has(k)||ee.has(k)||!b&&k in oe.value||ee.set(k,{type:R.type,id:R.id})}if(!ee.size)return re??Promise.resolve();if(!re){const R=L;re=Promise.resolve().then(async()=>{const k=[...ee.entries()];ee.clear(),re=null;for(const[J]of k)W.add(J);for(let J=0;Jae));if(R!==L)return;for(const[ae]of ce){const ue=de&&typeof de=="object"?de[ae]:void 0;oe.value[ae]=ue??null}}catch{}finally{if(R===L)for(const[de]of ce)W.delete(de)}}})}return re}function Hc(d,b=!1){const R=[];for(const k of d??[])k.deleted_at||R.push(...gm(k,Cs.value));return Cr(R,b)}function Kc(d,b){const R=Ms(d);R.text=b,R.error=""}async function Wc(d=o.value){if(d===null)return!1;const b=Ms(d),R=b.embeds.slice(0,Cs.value),k=b.files.filter(ue=>ue.state==="done"&&ue.id!==null),J=k.map(ue=>ue.id);let ce=b.text.trim();if(!ce&&!R.length&&!J.length||b.sending||Mr(d))return!1;!ce&&!J.length&&(ce=ym(R,$m()));const de={content:ce};J.length&&(de.attachment_ids=J),R.length&&(de.metadata={embeds:R.map(ue=>({type:ue.type,id:ue.id}))}),b.sending=!0,b.error="";const ae=L;try{const ue=await Fe.send(d,de);if(ae!==L)return!1;to(ue),b.text="",b.embeds=[];const bt=new Set(k.map(ln=>ln.localId));for(const ln of bt)me.delete(ln);return b.files=b.files.filter(ln=>!bt.has(ln.localId)),!0}catch(ue){return ae!==L||(b.error=jm(ue),ue instanceof Ne&&(ue.status===403||ue.status===404)&&_t()),!1}finally{b.sending=!1}}function Gc(d,b){g.value[d]={...b}}function Jc(d){return g.value[d]??null}function ro(d=!1){if(Ce)return Ce;if(w.value==="ready"&&!d)return Promise.resolve();const b=L;return w.value="loading",Ce=(async()=>{try{const R=await Fe.members();if(b!==L)return;v.value=new Map(R.map(k=>[k.id,k])),w.value="ready"}catch{b===L&&(w.value="error")}finally{b===L&&(Ce=null)}})(),Ce}function io(){if(B.value!==null)return Promise.resolve();if(H)return H;const d=L;return H=(async()=>{try{const b=await Fe.reactions();d===L&&(B.value=Array.isArray(b)?b.filter(R=>typeof R=="string"&&R!==""):[])}catch{}finally{d===L&&(H=null)}})(),H}function An(d,b){return c.value[d]?.find(R=>R.id===b)}async function Yc(d,b){const R=e.value,k=An(d.conversation_id,d.id);if(R===null||!k||k.deleted_at)return;const J=!(k.reactions??[]).some(ae=>ae.key===b&&ae.user_ids.includes(R));k.reactions=Xr(k.reactions,b,R,J,B.value??[]);const ce=(Se.get(k.id)??0)+1;Se.set(k.id,ce);const de=L;try{const ae=J?await Fe.addReaction(k.id,b):await Fe.removeReaction(k.id,b);if(de!==L||Se.get(k.id)!==ce)return;const ue=An(d.conversation_id,d.id);ue&&!ue.deleted_at&&(ue.reactions=ae.reactions??[])}catch{if(de!==L)return;const ae=An(d.conversation_id,d.id);ae&&(ae.reactions=Xr(ae.reactions,b,R,!J,B.value??[])),Sn().show(J?Ra.add:Ra.remove)}finally{de===L&&Se.get(k.id)===ce&&Se.delete(k.id)}}function Zc(d){return e.value!==null&&d.sender_id===e.value&&!d.deleted_at&&d.type==="text"}function Qc(d){return e.value===null||d.deleted_at?!1:d.sender_id===e.value?!0:n.value&&I.value!==null&&d.conversation_id===I.value}function oo(d){const b=c.value[d.conversation_id],R=b?b.findIndex(J=>J.id===d.id):-1;b&&R>=0&&(b[R]=d);const k=r.value.find(J=>J.id===d.conversation_id);k?.last_message?.id===d.id&&(k.last_message={...k.last_message,content:d.content??""})}function xs(d,b){const R=An(d,b);R&&Tc(R);const k=r.value.find(J=>J.id===d);k?.last_message?.id===b&&(k.last_message={...k.last_message,content:""})}async function Xc(d,b){const R=b.trim();if(R===(d.content??"").trim())return null;if(!R)return Aa;const k=L;try{const J=await Fe.edit(d.id,R);return k===L&&oo(J),null}catch{return Aa}}async function eu(d){const b=L;try{return await Fe.remove(d.id),b===L&&xs(d.conversation_id,d.id),null}catch(R){return R instanceof Ne&&R.status===404?(b===L&&xs(d.conversation_id,d.id),null):Km}}async function tu(d,b){if(!An(d,b))return;const R=L;try{const k=await Fe.message(b);if(R!==L)return;k.deleted_at?xs(d,b):oo(k)}catch{}}function Kn(){return _t()}async function nu(d){if(ie.has(d))return;ie.add(d);const b=L;try{const R=await Fe.message(d);b===L&&to(R)}catch{}finally{b===L&&ie.delete(d)}}function su(d){const b=d.conversation_id;Pr(b,d.sender_id);const R=Lc(b),k=c.value[b];if(k&&Ca(k,d),b===I.value){s.value&&!R&&(s.value.unread+=1);return}r.value=lm(r.value,d,{seen:R})}function ru(d){switch(d.kind){case"created":Pr(d.conversationId,d.senderId),am(d,c.value)&&nu(d.id);return;case"typing":au(d.conversationId,d.userId);return;case"chatMessage":su(d.message);return;case"mentions":Kn();return;case"updated":tu(d.conversationId,d.id);return;case"deleted":xs(d.conversationId,d.id);return;case"reacted":{const b=An(d.conversationId,d.id);b&&!b.deleted_at&&(b.reactions=Xr(b.reactions,d.key,d.userId,d.added,B.value??[]));return}default:return}}function xr(d){const b=om(d);b&&ru(b)}function Or(){const d=eo();d!==null&&c.value[d]!==void 0&&Rn(d),Kn()}function iu(d){if(!(E.value==="idle"||E.value==="unavailable")){if(d==="connected"){E.value="connected";return}$.value=!1,kr(),E.value=E.value==="connected"||E.value==="reconnecting"?"reconnecting":"connecting"}}function ou(){ao(),z=setInterval(()=>{const d=eo();d!==null&&Rn(d)},Vm),K=setInterval(()=>{Kn()},Fm)}function ao(){z&&clearInterval(z),K&&clearInterval(K),z=null,K=null}function lo(){!ke||E.value==="unavailable"||(E.value="unavailable",$.value=!1,kr(),ou())}function au(d,b){if(b===e.value||E.value==="unavailable")return;const R=F.value[d]??[];R.includes(b)||(F.value[d]=[...R,b]);const k=`${d}:${b}`,J=T.get(k);J&&clearTimeout(J),T.set(k,setTimeout(()=>Pr(d,b),Hm))}function Pr(d,b){const R=`${d}:${b}`,k=T.get(R);k&&clearTimeout(k),T.delete(R);const J=F.value[d];J?.includes(b)&&(F.value[d]=J.filter(ce=>ce!==b))}function kr(){for(const d of T.values())clearTimeout(d);T.clear(),F.value={}}function lu(d,b){if(!b.trim()||E.value==="idle"||E.value==="unavailable")return;const R=Date.now(),k=j.get(d);k!==void 0&&R-k{}))}async function cu(d){const b=L,R=await km(d);if(!(b!==L||E.value==="unavailable")){if(R===null){$.value=!1;return}Q.value=new Map(R.map(k=>[k.client,k.user])),$.value=!0}}function uu(d){const b=new Map(Q.value);b.set(d.client,d.user),Q.value=b}function fu(d){if(!Q.value.has(d.client))return;const b=new Map(Q.value);b.delete(d.client),Q.value=b}async function du(){if(ke||e.value===null||I.value===null)return;ke=!0;const d=L,b=e.value,R=I.value;E.value="connecting",q.push(wc(iu),Ec(lo));try{const k=await Us(`user:${b}`,{onPublication:xr,onSubscribed:Or});if(d!==L)return k.close();yt=k;const J=Ma(R),ce=await Us(J,{onPublication:xr,onSubscribed:()=>{Or(),cu(J)},onJoin:uu,onLeave:fu});if(d!==L)return ce.close();vt=ce,await Ir()}catch{d===L&&lo()}}async function Ir(){if(!ke)return;const d=a.value==="dm"?o.value:null;if(d===He)return;const b=++x;if(rt?.close(),rt=null,He=d,d===null)return;const R=L;try{const k=await Us(Ma(d),{onPublication:xr,onSubscribed:Or});if(R!==L||b!==x)return k.close();rt=k}catch{}}function co(){for(const b of q)b();q=[],yt?.close(),vt?.close(),rt?.close(),yt=vt=rt=null,He=null,x++,ao();const d=ke;return ke=!1,E.value="idle",$.value=!1,Q.value=new Map,kr(),j.clear(),d}function uo(){(co()||e.value!==null)&&Im(),ie.clear(),h.clear();for(const d of _.values())clearTimeout(d);_.clear(),A.clear(),m.clear(),M&&typeof document<"u"&&document.removeEventListener("visibilitychange",M),M=null,L++,Me=null,Ce=null,H=null,Se.clear(),B.value=null;for(const d of Te.values())d.abort();Te.clear(),me.clear(),ee.clear(),W.clear(),re=null,oe.value={},e.value=null,t.value=void 0,n.value=!1,s.value=null,r.value=[],i.value=null,o.value=null,a.value="general",l.value="",c.value={},u.value={},f.value={},p.value={},g.value={},C.value={},O.value={},N.value={},v.value=new Map,w.value="idle",S.value="idle"}return{userId:e,member:t,moderator:n,general:s,generalId:I,conversations:r,limits:i,activeId:o,view:a,dmError:l,dmRows:ut,messages:c,loading:u,errors:f,drafts:p,anchors:g,members:v,membersByHandle:te,myHandle:le,membersState:w,bootstrapState:S,connection:E,panelVisible:y,reachedStart:C,olderLoading:O,olderError:N,dmUnread:Y,totalUnread:V,totalMentions:G,unreadOf:D,mentionsOf:P,markRead:kc,loadOlder:As,presenceAvailable:$,othersOnline:pe,onlineCount:ge,isOnline:Ie,typing:F,typingIn:je,emitTyping:lu,init:Rs,bootstrap:_t,open:Je,showGeneral:Dc,showDms:Nc,openDm:Rr,dmWith:no,startDm:$c,loadLatest:Ke,refreshLatest:Rn,refetchCounts:Kn,draft:Ar,setDraftText:Kc,send:Wc,maxEmbeds:Cs,uploading:Mr,canSend:jc,uploadFiles:zc,retryUpload:Vc,removeFile:Fc,stageEmbed:Bc,unstageEmbed:qc,embedItems:oe,embedItem:Uc,resolveRefs:Cr,resolveFor:Hc,saveAnchor:Gc,anchorFor:Jc,loadMembers:ro,allowedReactions:B,loadReactions:io,toggleReaction:Yc,canEdit:Zc,canDelete:Qc,edit:Xc,remove:eu,reset:uo}});let ei=null;const Cc=Wt("auth",()=>{const e=X(null),t=X(et.get()),n=X(!1),s=ne(()=>t.value!==null),r=ne(()=>{const S=e.value;return S?[S.name,S.surname].filter(Boolean).join(" ")||S.email:""});function i(S,E,y){et.set(S,y),t.value=et.get(),E&&(e.value=E,ls().load(E.id))}function o(){et.clear(),t.value=null,e.value=null,Qi().reset(),em().reset(),ls().reset(),mc().reset(),Mc().reset(),Vp()}async function a(S){S&&(ei={public:S.meta.public===!0,fullPath:S.fullPath});try{if(et.get())try{const E=await dn.fetch();e.value=E.user,t.value=et.get(),ls().load(E.user.id)}catch{et.get()||o()}n.value=!0}finally{ei=null}}async function l(S,E,y){const C=await dn.login({email:S,password:E});i(C.token,C.user,y)}async function c(S,E){const y=await dn.register(S);return y.token?(i(y.token,y.user,E),{signedIn:!0,message:""}):{signedIn:!1,message:y.message??""}}function u(S){return i(S.token,S.user,!0),{action:S.action,returnTo:S.return_to}}async function f(S){return u(await dn.oauthComplete(S))}async function p(S){return u(await dn.oauthRegisterComplete(S))}async function g(){try{await dn.logout()}catch{}o(),await vn.push({name:"login"})}async function v(S){const E=await dn.update(S);e.value=E.user}function w(){const S=ei??{public:vn.currentRoute.value.meta.public===!0,fullPath:vn.currentRoute.value.fullPath},E=s.value||e.value!==null;o(),E&&!S.public&&vn.push({name:"login",query:{redirect:S.fullPath,expired:"1"}})}return _p(w),{user:e,token:t,ready:n,loggedIn:s,displayName:r,restore:a,login:l,register:c,completeOAuth:f,completeOAuthRegistration:p,logout:g,updateProfile:v}});function vy({active:e,visible:t,focused:n,atBottom:s}){return e&&t&&n&&s}function Zm(e){return e>0?e>99?"99+":String(e):""}function xa(e){return wi(e,"nieprzeczytana wiadomość","nieprzeczytane wiadomości","nieprzeczytanych wiadomości")}function _y(e){return e===1?"wzmianka o Tobie":`${e} ${lc(e,"wzmianka","wzmianki","wzmianek")} o Tobie`}function by(e,t,n){if(!(t>0))return null;let s=t,r=null;for(let i=e.length-1;i>=0&&s>0;i--){const o=e[i];o.sender_id!==n&&(r=o.id,s--)}return r}function wy(e){return e.length===0?"":e.length===1?`${e[0]} pisze…`:e.length===2?`${e[0]} i ${e[1]} piszą…`:"Kilka osób pisze…"}let ti=!1;const xc=Wt("pwa",()=>{const e=X(!1),t=jn(null),n=jn(null);let s=!1;const r=ne(()=>!e.value&&t.value!==null),i=ne(()=>n.value!==null);function o(){s||typeof window>"u"||(s=!0,e.value=window.matchMedia?.("(display-mode: standalone)").matches===!0||navigator.standalone===!0,window.addEventListener("beforeinstallprompt",f=>{f.preventDefault(),t.value=f}),window.addEventListener("appinstalled",()=>{e.value=!0,t.value=null}),"serviceWorker"in navigator&&(document.readyState==="complete"?a():window.addEventListener("load",a,{once:!0})))}async function a(){const f=navigator.serviceWorker;f.addEventListener("controllerchange",()=>{ti&&(ti=!1,window.location.reload())});try{const p=await f.register("/sw.js",{scope:"/",updateViaCache:"none"});p.waiting&&f.controller&&(n.value=p.waiting),p.addEventListener("updatefound",()=>{const g=p.installing;g&&g.addEventListener("statechange",()=>{g.state==="installed"&&f.controller&&(n.value=g)})}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&p.update().catch(()=>{})})}catch{}}async function l(){const f=t.value;if(f){t.value=null;try{await f.prompt(),(await f.userChoice).outcome==="accepted"&&(e.value=!0)}catch{}}}function c(){const f=n.value;f&&(ti=!0,f.postMessage({type:"SKIP_WAITING"}))}function u(){n.value=null}return{installed:e,deferred:t,waiting:n,canInstall:r,updateReady:i,start:o,install:l,applyUpdate:c,dismissUpdate:u}}),Qm={class:"shell"},Xm={class:"sidebar"},eg={class:"side-head"},tg={"aria-label":"Główna nawigacja"},ng={key:0,class:"unread-badge nav-badge"},sg={"aria-hidden":"true"},rg={class:"sr-only"},ig={class:"who"},og={class:"muted"},ag={class:"topbar"},lg={class:"tabbar","aria-label":"Nawigacja"},cg={class:"nav-icon"},ug={key:0,class:"nav-dot","aria-hidden":"true"},fg={key:0,class:"sr-only"},dg={key:0,class:"update-bar",role:"status","aria-live":"polite"},hg=Tn({__name:"AppShell",setup(e){const t=Cc(),n=Sn(),s=xc(),r=ic();mc();const i=Mc();bn(()=>t.user?.id,f=>{f?i.init(f):i.reset()},{immediate:!0});const o=[{to:"/",label:"Pulpit",icon:"home",match:["dashboard"]},{to:"/plan",label:"Plan zajęć",icon:"calendar",match:["schedule"]},{to:"/terminarz",label:"Terminarz",icon:"flag",match:["deadlines"]},{to:"/przedmioty",label:"Przedmioty",icon:"grad",match:["courses","course"]},{to:"/lektury",label:"Lektury",icon:"book",match:["readings"]},{to:"/materialy",label:"Materiały",icon:"file",match:["materials","material"]},{to:"/checklisty",label:"Checklisty",icon:"checklist",match:["checklists","checklist"]},{to:"/sylabusy",label:"Sylabusy",icon:"file",match:["syllabi"]},{to:"/quizy",label:"Quizy",icon:"quiz",match:["quizzes","quiz"]},{to:"/moje-prezentacje",label:"Moje prezentacje",icon:"slides",match:["my-presentations"]},{to:"/profil",label:"Profil",icon:"user",match:["profile"]}],a=[{to:"/",label:"Pulpit",icon:"home",match:["dashboard"]},{to:"/plan",label:"Plan zajęć",icon:"calendar",match:["schedule"]},{to:"/materialy",label:"Materiały",icon:"file",match:["materials","material"]},{to:"/checklisty",label:"Checklisty",icon:"checklist",match:["checklists","checklist"]},{to:"/wiecej",label:"Więcej",icon:"more",match:["more","deadlines","courses","course","readings","quizzes","quiz","syllabi","my-presentations","profile"]}],l=ne(()=>String(r.name??"")),c=ne(()=>l.value!=="dashboard"&&i.totalUnread>0?i.totalUnread:0),u=f=>f.includes(l.value);return(f,p)=>{const g=gl("router-link");return Xe(),St("div",Qm,[xe("aside",Xm,[xe("div",eg,[Ee(g,{to:"/",class:"brand"},{default:Ln(()=>[...p[4]||(p[4]=[xe("span",{class:"eyebrow"},"UWr · ISMiB",-1),xe("b",null,"BM II°",-1)])]),_:1}),Ee(da)]),xe("nav",tg,[(Xe(),St(st,null,Ro(o,v=>Ee(g,{key:v.to,to:v.to,class:Dn({active:u(v.match)}),"aria-current":u(v.match)?"page":void 0},{default:Ln(()=>[Ee(bi,{name:v.icon},null,8,["name"]),di(Jt(v.label)+" ",1),v.to==="/"&&c.value?(Xe(),St("span",ng,[xe("span",sg,Jt(Oe(Zm)(c.value)),1),xe("span",rg,", "+Jt(Oe(xa)(c.value)),1)])):Jn("",!0)]),_:2},1032,["to","class","aria-current"])),64))]),xe("div",ig,[xe("span",og,Jt(Oe(t).displayName),1),Oe(s).canInstall?(Xe(),St("button",{key:0,class:"btn small",type:"button",onClick:p[0]||(p[0]=v=>Oe(s).install())},"Zainstaluj aplikację")):Jn("",!0),xe("button",{class:"btn small ghost",type:"button",onClick:p[1]||(p[1]=v=>Oe(t).logout())},"Wyloguj")])]),xe("header",ag,[Ee(g,{to:"/",class:"topbar-brand"},{default:Ln(()=>[...p[5]||(p[5]=[xe("span",{class:"eyebrow"},"UWr · ISMiB",-1),xe("b",null,"BM II°",-1)])]),_:1}),Ee(da)]),xe("main",{class:Dn(["main",{wide:Oe(r).meta.wide===!0}]),id:"main"},[Cf(f.$slots,"default")],2),xe("nav",lg,[(Xe(),St(st,null,Ro(a,v=>Ee(g,{key:v.to,to:v.to,class:Dn({active:u(v.match)}),"aria-current":u(v.match)?"page":void 0},{default:Ln(()=>[xe("span",cg,[Ee(bi,{name:v.icon},null,8,["name"]),v.to==="/"&&c.value?(Xe(),St("span",ug)):Jn("",!0)]),di(Jt(v.label)+" ",1),v.to==="/"&&c.value?(Xe(),St("span",fg,", "+Jt(Oe(xa)(c.value)),1)):Jn("",!0)]),_:2},1032,["to","class","aria-current"])),64))]),rf(xe("div",{class:"toast",role:"status","aria-live":"polite"},Jt(Oe(n).message),513),[[_d,Oe(n).message]]),Oe(s).updateReady?(Xe(),St("div",dg,[p[6]||(p[6]=xe("span",null,"Dostępna jest nowa wersja aplikacji.",-1)),xe("button",{class:"btn small",type:"button",onClick:p[2]||(p[2]=v=>Oe(s).applyUpdate())},"Odśwież"),xe("button",{class:"btn small ghost",type:"button",onClick:p[3]||(p[3]=v=>Oe(s).dismissUpdate())},"Później")])):Jn("",!0)])}}});function Oc(e){return e==="/cast"||e==="/cast/"}const pg=Tn({__name:"App",setup(e){const t=ic(),n=Oc(window.location.pathname),s=ne(()=>t.meta.public===!0||t.meta.bare===!0||n&&t.matched.length===0);return(r,i)=>{const o=gl("router-view");return s.value?(Xe(),hs(o,{key:0})):(Xe(),hs(hg,{key:1},{default:Ln(()=>[Ee(o)]),_:1}))}}}),Pc=Kd();qd(pg).use(Pc).use(vn).mount("#app");Oc(window.location.pathname)||xc(Pc).start();export{tn as $,Ne as A,lc as B,Dn as C,Lg as D,Ro as E,st as F,sy as G,Pi as H,$g as I,jg as J,Ap as K,Va as L,Mu as M,ly as N,uy as O,dy as P,hy as Q,Qh as R,fy as S,Ip as T,bn as U,bf as V,Tg as W,vg as X,Fe as Y,dr as Z,bi as _,dn as a,Cf as a$,Mc as a0,zg as a1,py as a2,_y as a3,Zm as a4,xa as a5,Ei as a6,Ig as a7,Cp as a8,gm as a9,Fg as aA,Kg as aB,Ti as aC,Ug as aD,Hg as aE,Np as aF,fm as aG,Pg as aH,Bg as aI,Us as aJ,jp as aK,Wg as aL,Yg as aM,Jg as aN,Gg as aO,_g as aP,qg as aQ,ye as aR,gy as aS,jl as aT,Zg as aU,iy as aV,Zp as aW,ny as aX,oy as aY,Qp as aZ,ry as a_,cy as aa,by as ab,vy as ac,wy as ad,Qi as ae,em as af,wi as ag,Pp as ah,xp as ai,kp as aj,Qr as ak,Ae as al,uc as am,ls as an,ty as ao,Ct as ap,gg as aq,Mp as ar,Eg as as,Dg as at,Ng as au,Si as av,De as aw,_d as ax,Vg as ay,Dp as az,xe as b,U as b0,xc as b1,Up as b2,mc as b3,bs as b4,ay as b5,ey as b6,gr as b7,Qg as b8,Xg as b9,yy as ba,Im as bb,jn as bc,my as bd,pp as be,dp as bf,yg as bg,et as bh,Rg as bi,Ag as bj,Mg as bk,Cg as bl,xg as bm,Og as bn,St as c,Tn as d,Oe as e,Jn as f,wg as g,Sg as h,Ee as i,Ln as j,ic as k,gl as l,kg as m,Xe as n,yf as o,di as p,Sn as q,X as r,hs as s,Jt as t,Cc as u,bg as v,rf as w,ne as x,cc as y,fc as z}; diff --git a/public/assets/index-BeU-aKV2.css b/public/assets/index-FkOyve-6.css similarity index 54% rename from public/assets/index-BeU-aKV2.css rename to public/assets/index-FkOyve-6.css index bcaf818..97d681e 100644 --- a/public/assets/index-BeU-aKV2.css +++ b/public/assets/index-FkOyve-6.css @@ -1 +1 @@ -@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-vietnamese-500-normal-CbuGBAYj.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-500-normal-DBsYfoQF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-latin-ext-500-normal-CEqYmuFE.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-500-normal-DESKgx4f.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-latin-500-normal-BH-FPhCi.woff2) format("woff2"),url(/assets/archivo-narrow-latin-500-normal-Oafwxh5s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-vietnamese-600-normal-B3iMS2rD.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-600-normal-BOVNaV0C.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-latin-ext-600-normal-DNmONYTo.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-600-normal-CFDqFZjW.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-latin-600-normal-l2jiltzb.woff2) format("woff2"),url(/assets/archivo-narrow-latin-600-normal-DZkbuzR9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-vietnamese-700-normal-VsvP8OcS.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-700-normal-CB0yIOvF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-ext-700-normal-DCLoHMFv.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-700-normal-C4q0W15T.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-700-normal-DtADLsoy.woff2) format("woff2"),url(/assets/archivo-narrow-latin-700-normal-DxmyBkwC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-normal-DIwfbPUE.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-normal-C0olyEE-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-normal-DrHU7SY7.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-normal-BOyYyU_V.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-normal-HoL-AExg.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-normal-BpEBLj1O.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-italic-Bl6DJqma.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-italic-Dibx14aP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-italic-CMW9dfKg.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-italic-C-k5pZlm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-italic-BhUEwDRF.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-italic-BOLXpvkj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--paper: #141917;--panel: #1b211e;--ink: #e4e8e3;--muted: #9aa69f;--rule: #2e3833;--accent: #8cc3aa;--accent-soft: #1f3129;--on-accent: #141917;--miss: #e39a7c;--miss-soft: #35221b;--warn: #f0c27a;--warn-rule: #6b5631;--display: "Archivo Narrow", "Arial Narrow", system-ui, sans-serif;--body: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--gutter: 16px;--tabbar-h: 64px;--topbar-h: 52px;--sidebar-w: 236px;--safe-bottom: env(safe-area-inset-bottom, 0px);--av-ink: #f3f4f1;--av-1: #3b4f6b;--av-2: #6b4a3b;--av-3: #4a3b6b;--av-4: #3b6b5e;--av-5: #6b3b4f;--av-6: #5e6b3b;--av-7: #3b5e6b;--av-8: #6b5a3b}:root[data-theme=light]{color-scheme:light;--paper: #f3f4f1;--panel: #fafbf8;--ink: #1c2320;--muted: #5a6560;--rule: #d5dad4;--accent: #2f5a4b;--accent-soft: #e2ebe5;--on-accent: #f3f4f1;--miss: #9a4a2e;--miss-soft: #f3e3dc;--warn: #7a5200;--warn-rule: #d9b56a}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden}a{color:var(--accent);text-underline-offset:2px}h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;line-height:1.1;text-wrap:balance}h1{font-size:clamp(32px,6vw,44px);letter-spacing:-.01em}h2{font-size:24px}h3{font-size:19px;font-weight:600}p{margin:0 0 .8em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.small{font-size:14.5px}.nums{font-variant-numeric:tabular-nums}.shell{min-height:100vh}.main{padding:16px var(--gutter) calc(var(--tabbar-h) + var(--safe-bottom) + 28px);min-width:0}.sidebar{display:none}.tabbar{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);background:var(--panel);border-top:1px solid var(--rule);padding-bottom:var(--safe-bottom)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tabbar-h);padding:6px 2px;color:var(--muted);text-decoration:none;font-family:var(--mono);font-size:11px;letter-spacing:.02em}.tabbar a svg{width:22px;height:22px}.tabbar a.active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:var(--topbar-h);padding:0 calc(var(--gutter) - 8px) 0 var(--gutter);background:var(--panel);border-bottom:1px solid var(--rule)}.topbar-brand{display:inline-flex;align-items:baseline;gap:8px;color:var(--ink);text-decoration:none}.topbar-brand b{font-family:var(--display);font-size:20px;line-height:1}@media(min-width:900px){.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.tabbar,.topbar{display:none}.main{padding:32px 32px 64px;width:100%}.sidebar{display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;padding:28px 16px 20px 20px;border-right:1px solid var(--rule);background:var(--panel)}.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:14px;border-bottom:2px solid var(--ink)}.side-head .icon-btn{width:36px;height:36px}.brand{display:grid;gap:2px;padding:0 8px;text-decoration:none;color:var(--ink)}.brand b{font-family:var(--display);font-size:30px;line-height:1}.sidebar nav{display:grid;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:3px;border-left:3px solid transparent;color:var(--ink);text-decoration:none;font-family:var(--display);font-weight:600;font-size:18px}.sidebar nav a svg{width:20px;height:20px;color:var(--muted)}.sidebar nav a:hover{background:var(--accent-soft)}.sidebar nav a.active{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.sidebar nav a.active svg{color:var(--accent)}.sidebar .who{margin-top:auto;display:grid;gap:6px;padding:12px 8px 0;border-top:1px solid var(--rule);font-size:14.5px}}.page-head{display:grid;gap:8px;padding-bottom:16px;border-bottom:2px solid var(--ink);margin-bottom:20px}.page-head .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px}.stack{display:grid;gap:16px}.section{margin-top:28px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:6px;margin-bottom:10px;border-bottom:1px solid var(--rule)}.section-head h2{font-size:22px}.grid-2{display:grid;gap:16px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}.grid-3{display:grid;gap:16px}@media(min-width:720px){.grid-3{grid-template-columns:repeat(3,1fr)}}.badges{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.stack[aria-busy=true]>.card,.stack[aria-busy=true]>.material-card{opacity:.6}@media(prefers-reduced-motion:no-preference){.stack[aria-busy]>.card,.stack[aria-busy]>.material-card{transition:opacity .15s ease}}.material-card{position:relative;min-width:0}.material-card>.card.link{padding-right:56px}.material-card>.pin-btn{position:absolute;top:6px;right:6px}.pin-btn[aria-pressed=true],.btn.pin[aria-pressed=true]{color:var(--accent)}.pin-btn[aria-pressed=true] svg{fill:currentColor}.btn.pin[aria-pressed=true]{border-color:var(--accent)}.snippet{margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.snippet mark{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--accent);padding:0;font-weight:inherit}.snippet-file{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.card{padding:16px 18px;background:var(--panel);border:1px solid var(--rule);border-radius:4px;min-width:0}.card.accent{border-left:4px solid var(--accent)}.card.hl{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card h3{margin-bottom:4px}.card.link{display:block;color:inherit;text-decoration:none}.card.link:hover{border-color:var(--accent)}button.card{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.notice{padding:10px 14px;border-radius:3px;background:var(--accent-soft);font-size:15.5px}.notice.error,.error-text{background:var(--miss-soft);color:var(--miss)}.error-text{background:none;font-size:14.5px;margin:4px 0 0}.notice.error{border-left:3px solid var(--miss)}.empty{padding:22px 16px;text-align:center;color:var(--muted);border:1px dashed var(--rule);border-radius:4px}.skeleton{height:72px;border-radius:4px;background:linear-gradient(90deg,var(--rule),var(--panel),var(--rule));background-size:200% 100%;animation:shimmer 1.4s linear infinite;opacity:.6}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--display);font-weight:600;font-size:16px;line-height:1.2;cursor:pointer;border-radius:3px;padding:9px 16px;min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);text-decoration:none}.btn:hover:not(:disabled){background:var(--accent-soft)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.miss{border-color:var(--miss);color:var(--miss)}.btn.miss:hover:not(:disabled){background:var(--miss-soft)}.btn.ghost{border-color:var(--rule);color:var(--muted)}.btn.small{min-height:32px;padding:4px 12px;font-size:15px}.btn.block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.linkish{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.field{display:grid;gap:4px;margin-bottom:14px}.field>label,.field>.label{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],select{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 12px;min-height:44px}input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.check{display:flex;align-items:center;gap:10px;min-height:32px}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent);margin:0;flex:none}.auth{max-width:420px;margin:0 auto;padding:40px var(--gutter) 64px}.auth .page-head{margin-bottom:22px}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:18px;font-size:15.5px}.badge{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border-radius:3px;border:1px solid var(--rule);color:var(--muted);vertical-align:middle;white-space:nowrap}.badge.online{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.badge.onsite{border-color:var(--ink);color:var(--ink)}.badge.alert{border-color:var(--miss);color:var(--miss);background:var(--miss-soft)}.badge.warn{color:var(--warn);border-color:var(--warn-rule)}.badge.pin{border-color:var(--accent);color:var(--accent)}.badge.solid{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.chips.wrap{flex-wrap:wrap;overflow:visible}.chip{flex:none;font-family:var(--display);font-weight:600;font-size:16px;padding:6px 13px;min-height:36px;border:1px solid var(--rule);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer;position:relative}.chip[aria-pressed=true],.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip:disabled{opacity:.4;cursor:default}.chip .dot{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--miss)}.rows{list-style:none;margin:0;padding:0}.rows>li{padding:10px 0;border-top:1px solid var(--rule)}.rows>li:first-child{border-top:0}.rows.card{padding:6px 18px}.row-main{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.when{font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.title{font-weight:600}.past{opacity:.55}.progress-bar{height:6px;border-radius:3px;background:var(--rule);overflow:hidden}.progress-bar>span{display:block;height:100%;background:var(--accent);border-radius:3px}.big-num{font-family:var(--display);font-weight:700;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.days{display:grid;gap:18px}@media(min-width:720px){.days.two{grid-template-columns:1fr 1fr;align-items:start}}.day-head{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:6px;border-bottom:2px solid var(--ink);margin-bottom:10px;display:flex;justify-content:space-between;gap:8px}.session{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:12px 14px;margin-bottom:8px;background:var(--panel);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px}.session.online{border-left-color:var(--rule)}.session .time{font-family:var(--mono);font-size:13px;line-height:1.35;font-variant-numeric:tabular-nums}.session .time span{display:block;color:var(--muted)}.session .name{font-weight:600;line-height:1.3}.session .meta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:4px;font-size:14.5px;color:var(--muted)}.session .note{margin-top:6px;font-size:14.5px;padding:6px 10px;background:var(--accent-soft);border-radius:3px}.meeting-bar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:14px 0 18px}.reading{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--rule)}.reading:first-child{border-top:0}.reading label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;flex:1;min-width:0;min-height:32px}.reading input{margin-top:3px}.reading .text{min-width:0;overflow-wrap:anywhere}.reading input:checked+.text{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--rule)}.reading .owned{flex:none;align-items:center;gap:6px;cursor:pointer;min-height:32px;font-family:var(--mono);font-size:12px;color:var(--muted)}.reading .owned input{margin-top:0}.subhead{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}.checklist-card .progress-bar{margin:10px 0 6px}.checklist-item{flex-wrap:wrap;align-items:center}.checklist-item label{flex:1 1 260px}.checklist-item .badge{font-size:11px;margin-right:4px}.checklist-item .item-notes{display:block;margin-top:2px;white-space:pre-line;text-decoration:none}.checklist-item .item-links{display:flex;gap:10px}.checklist-item .item-actions{display:flex;margin-left:auto}.checklist-item .item-actions .icon-btn{width:36px;height:36px;color:var(--muted)}.checklist-item .item-actions .icon-btn svg{width:18px;height:18px}.checklist-item .grow{flex:1 1 100%}.chip-icon{width:14px;height:14px;vertical-align:-2px}.item-form textarea,.item-form input[type=number],.item-form input[type=datetime-local]{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 12px;min-height:44px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}.hero-prep{display:flex;flex-direction:column;gap:6px;width:100%;max-width:360px;color:inherit;text-decoration:none}.hero-prep:hover .hero-cap{color:var(--accent)}.prose{overflow-wrap:anywhere}.prose h2,.prose h3,.prose h4{margin:1.2em 0 .4em}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 .8em}.prose blockquote{margin:0 0 .8em;padding:2px 14px;border-left:3px solid var(--accent);color:var(--muted)}.prose code{font-family:var(--mono);font-size:.9em;background:var(--accent-soft);padding:1px 5px;border-radius:3px}.prose pre{overflow-x:auto;background:var(--accent-soft);padding:12px 14px;border-radius:4px;margin:0 0 .8em}.prose pre code{background:none;padding:0}.prose hr{border:0;border-top:1px solid var(--rule);margin:1.2em 0}.prose img{display:block;max-width:100%;height:auto;margin:16px 0;color:var(--muted);font-size:14.5px}.table-scroll{overflow-x:auto;margin:0 0 .8em}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prose table{border-collapse:collapse;min-width:50%}.prose th,.prose td{border:1px solid var(--rule);padding:8px 16px;text-align:left;vertical-align:top;font-size:14.5px;line-height:1.5}.prose th{font-family:var(--display);font-weight:600;background:var(--paper)}.prose .task-list-item{list-style:none}.prose .task-list-item input{margin:0 8px 0 -1.3em;accent-color:var(--accent)}.quiz-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-block:14px;border-bottom:1px solid var(--rule)}.score{display:flex;align-items:baseline;gap:14px;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.score b{font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}.score .y b{color:var(--accent)}.score .n b{color:var(--miss)}.count{display:block;font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.round-progress{display:grid;gap:6px;margin-top:22px}.round-progress span{height:6px;border-radius:3px;background:var(--rule)}.round-progress span.cur{background:var(--ink)}.round-progress span.y{background:var(--accent)}.round-progress span.n{background:var(--miss)}.step{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:8px;display:flex;justify-content:space-between;gap:8px}.qcard{margin-top:14px;padding:20px 22px;background:var(--panel);border:1px solid var(--rule);border-radius:4px}.q{margin:0;font-size:20px;line-height:1.45}.answer{margin:14px 0 0;padding:10px 14px;background:var(--accent-soft);border-radius:3px;font-size:16px}.answer .tag{margin-bottom:2px}.reveal{margin-top:12px;font-family:var(--mono);font-size:12.5px;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.quiz-badges{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.choices{display:grid;gap:8px;margin:14px 0 0;padding:0;border:0;min-width:0}.choice{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--rule);border-left-width:3px;border-radius:3px;background:var(--paper);font-size:16px;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}.choice input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.choice:has(input:disabled){cursor:default}.choice-body{display:grid;gap:2px;min-width:0}.choice-note{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.choice-expl{color:var(--muted);font-size:14.5px}.choice.ok{border-color:var(--accent);background:var(--accent-soft)}.choice.ok .choice-note,.choice.missed .choice-note{color:var(--accent)}.choice.missed{border-color:var(--accent);border-style:dashed;border-left-style:solid}.choice.bad{border-color:var(--miss);background:var(--miss-soft)}.choice.bad .choice-note{color:var(--miss)}.choice-none{margin:10px 0 0;font-family:var(--mono);font-size:12px;color:var(--miss)}.test-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding-block:12px;border-bottom:1px solid var(--rule)}.test-bar .count{display:inline}.timer{margin-left:auto;font-family:var(--mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.timer.low{color:var(--miss)}.test-bar+.error-text{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.qnav{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.qnav button{min-width:36px;height:36px;padding:0 6px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.qnav button.answered{border-color:var(--accent);background:var(--accent-soft)}.qnav button.unsaved{border-style:dashed;border-color:var(--miss);color:var(--miss)}.qnav button[aria-current=step]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}.qnav button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.q[tabindex="-1"]:focus{outline:none}.test-result p{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--mono);font-size:12.5px}.test-review{list-style:none;margin:0;padding:0}.test-review .tag{font-variant-numeric:tabular-nums}.qactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.qactions .next{margin-left:auto}.btn.yes[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.btn.no{border-color:var(--miss);color:var(--miss)}.btn.no[aria-pressed=true]{background:var(--miss);color:var(--paper)}.sum h2{font-size:26px;margin:0 0 4px}.sum>p{margin:0 0 12px;color:var(--muted)}.sum ol{list-style:none;margin:0 0 18px;padding:0}.sum li{padding:10px 0 10px 14px;border-top:1px solid var(--rule);border-left:3px solid var(--accent);font-size:16px}.sum li.n{border-left-color:var(--miss)}.sum li small{display:block;color:var(--muted);font-size:14.5px;margin-top:2px}.tag{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}.grp h3{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;color:var(--miss)}.grp.ok h3{color:var(--accent)}.grp.ok li{padding-block:6px;font-size:15px}@media(max-width:480px){.qactions .next{margin-left:0;flex:1 1 100%}.qcard{padding:16px}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:40;max-width:min(520px,calc(100vw - 32px));padding:10px 16px;background:var(--ink);color:var(--paper);border-radius:4px;font-size:15px}@media(min-width:900px){.toast{bottom:24px}}.update-bar{position:fixed;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 12px);z-index:45;display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:max-content;max-width:min(520px,calc(100vw - 32px));padding:10px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px;font-size:15px;box-shadow:0 4px 16px #0000001f}.pulpit-head{margin-bottom:32px}.pulpit.with-chat>.pulpit-head{margin-bottom:16px}.pulpit-head h1{font-size:34px;line-height:1.1}.pulpit-head .btn-row{align-items:center}.profile-link{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--panel);border:1px solid var(--rule);color:var(--ink);font-family:var(--display);font-weight:700;font-size:16px;text-decoration:none}.pulpit-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule);margin-bottom:24px}.pulpit-tab{min-height:48px;padding:0 16px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer}.pulpit-tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.pulpit-main{display:grid;gap:32px;min-width:0}.pulpit-main>.notice{margin:0}.pulpit-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:48px}.pulpit-lists .section-head h2{text-wrap:pretty}.pulpit-lists .when,.pulpit-lists .badge{white-space:nowrap}.pulpit-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:32px;padding:24px 32px;font-size:16px;line-height:1.5}.hero .badge{font-size:12px}.hero .btn{font-size:16px}.hero-main{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.hero-main p{margin:0}.hero-eyebrow{color:var(--accent)}.hero-title{font-size:34px;line-height:1.1}.hero-empty-h{font-size:22px;line-height:1.2}.hero-dates .badge{margin-left:8px}.hero-stats{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:8px 0;padding:0}.hero-stats li{display:flex;flex-direction:column}.hero-num{font-family:var(--display);font-weight:700;font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums}.hero-cap{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted)}.hero-timeline{display:flex;flex-direction:column;gap:8px;min-width:0}.hero-rows{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule)}.hero-rows li{display:flex;flex-direction:column;padding:4px 0 4px 16px}.hero-read-title{overflow-wrap:anywhere}.hero-read-meta{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}.hero-timeline p{margin:0}.hero-rows .hero-more{display:block}@media(min-width:900px){.pulpit-head h1{font-size:44px}.profile-link{display:none}}@media(max-width:1099.98px){.pulpit.with-chat:not(.czat)>.chat{display:none}.pulpit.czat{display:flex;flex-direction:column;height:calc(100dvh - 32px)}.pulpit.czat>.pulpit-head,.pulpit.czat>.pulpit-tabs{flex:none}.pulpit.czat>.pulpit-tabs{margin-bottom:0}.pulpit.czat>.pulpit-main{display:none}.pulpit.czat>.chat{flex:1 1 auto;min-height:0}.main.wide:has(>.pulpit.czat){padding-bottom:0}}@media(max-width:899.98px){.pulpit.czat{height:calc(100dvh - 16px - var(--topbar-h) - var(--tabbar-h) - var(--safe-bottom))}.main.wide:has(>.pulpit.czat){padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom))}}@media(min-width:1100px){.main.wide{padding:0}.pulpit-tabs{display:none}.pulpit>.pulpit-head,.pulpit.with-chat>.pulpit-head{margin:32px 48px 0}.pulpit-main{padding:32px 48px 64px}.pulpit.with-chat{display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,26vw,420px);grid-template-rows:auto 1fr}.pulpit.with-chat>.pulpit-head{grid-column:1;grid-row:1}.pulpit.with-chat>.pulpit-main{grid-column:1;grid-row:2;align-self:start}.pulpit.with-chat>.chat{--chat-bg: var(--panel);--chat-surface: var(--paper);grid-column:2;grid-row:1 / span 2;position:sticky;top:0;height:100vh;height:100dvh;align-self:start;border-left:1px solid var(--rule)}}.chat{--chat-bg: var(--paper);--chat-surface: var(--panel);display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--chat-bg);font-size:16px;line-height:1.5}.chat .notice,.chat .error-text,.chat .empty,.chat .btn,.chat .btn.small,.chat textarea,.chat input[type=text]{font-size:16px}.chat .badge{font-size:12px}.chat-head{flex:none;display:grid;gap:12px;padding:24px 16px 0;border-bottom:1px solid var(--rule);min-width:0}.chat-head-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.chat-head-name{display:grid;flex:1 1 auto;min-width:0}.chat-presence{flex:none;display:flex;align-items:center;gap:8px}.chat-presence:empty{display:none}.icon-btn{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:6px;background:none;color:var(--ink);cursor:pointer}.icon-btn:hover{background:var(--accent-soft)}.icon-btn svg{width:22px;height:22px}.chat-back{margin-left:-12px}.chat-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chat-tab{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--rule);border-radius:999px;background:var(--chat-surface);color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;white-space:nowrap;cursor:pointer}.chat-tab[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}@media(min-width:1100px)and (pointer:fine){.chat-tabs{gap:4px;padding-bottom:0}.chat-tab{min-height:36px;padding:0 8px;border:0;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;background:none}.chat-tab[aria-selected=true]{background:none;border-bottom-color:var(--accent)}}.chat-strip{flex:none;display:flex;align-items:center;height:28px;margin:0;padding:0 16px;font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-start{margin:0;font-family:var(--mono);font-size:12px;color:var(--muted);text-align:center}.chat-title{font-size:22px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:16px}.chat-list>.msg.follow{margin-top:-12px}.chat-skeletons{display:grid;gap:8px}.chat-skeletons .skeleton{height:48px}.chat-empty{margin:auto 0}.chat-empty p{margin:0}.chat-empty .chat-empty-h{margin:0 0 8px;font-family:var(--display);font-weight:700;font-size:22px;line-height:1.2;color:var(--ink)}.chat-day{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted)}.chat-day:before,.chat-day:after{content:"";flex:1;height:1px;background:var(--rule)}.chat-typing{flex:none;height:24px;padding:0 16px;font-style:italic;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;color:var(--av-ink);font-family:var(--display);font-weight:700;line-height:1;user-select:none}.avatar.s24{width:24px;height:24px;font-size:12px}.avatar.s32{width:32px;height:32px;font-size:16px}.avatar.s44{width:44px;height:44px;font-size:16px}.avatar.me{background:var(--accent-soft);color:var(--accent)}.msg{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px}.msg-gutter{display:flex;justify-content:center}.msg-content{min-width:0}.msg-head{display:flex;align-items:baseline;gap:4px;min-width:0}.msg-name{font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-tag{flex:none;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;padding:0 4px;border:1px solid var(--rule);border-radius:3px;color:var(--muted)}.msg-tag.me{border-color:var(--accent);color:var(--accent)}.msg-time,.msg-edited{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.msg-gutter .msg-time{line-height:24px;visibility:hidden}.msg.follow:hover .msg-gutter .msg-time,.msg.follow:focus-within .msg-gutter .msg-time{visibility:visible}.msg-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.composer{flex:none;display:grid;gap:8px;padding:16px;border-top:1px solid var(--rule);background:var(--chat-bg)}.composer-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.composer .error-text{margin:0}.composer-field{background:var(--chat-surface);border:1px solid var(--rule);border-radius:8px}.composer-field:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.composer-field textarea{display:block;width:100%;resize:none;border:0;background:transparent;color:inherit;font:inherit;line-height:1.5;padding:12px;overflow-y:hidden}.composer-field textarea:focus-visible{outline:none}.composer-tools{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:0 8px 8px}.composer-send svg{width:18px;height:18px}.composer-send[aria-busy=true]{opacity:.7}.unread-badge,.mention-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:20px;height:20px;padding:0 4px;border-radius:999px;font-family:var(--mono);font-size:12px;font-weight:400;line-height:1;letter-spacing:0;vertical-align:middle}.unread-badge{background:var(--accent);color:var(--on-accent)}.mention-badge{background:var(--accent-soft);color:var(--accent)}.chat-tab .mention-badge,.chat-tab .unread-badge,.pulpit-tab .unread-badge{margin-left:8px}.chat-tab .mention-badge+.unread-badge{margin-left:4px}.sidebar nav a .nav-badge{margin-left:auto}.nav-icon{position:relative;display:inline-flex}.nav-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--panel)}.chat-list-wrap{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-older{flex:none;min-height:1px;text-align:center}.chat-older p{margin:0}.chat-new{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.chat-new:before{content:"";flex:1;height:1px;background:var(--accent)}.chat-jump{position:absolute;bottom:16px;left:50%;z-index:1;transform:translate(-50%);gap:4px;background:var(--chat-surface);white-space:nowrap}.chat-jump svg{width:18px;height:18px}@media(prefers-reduced-motion:reduce){.chat-list{scroll-behavior:auto}}.presence-stack{display:inline-flex;align-items:center}.presence-stack .avatar{box-shadow:0 0 0 2px var(--chat-bg)}.presence-stack .avatar+.avatar{margin-left:-8px}.presence-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}.presence-text{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);white-space:nowrap}.dm-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.dm-new{padding:16px}.dm-new .btn svg{width:18px;height:18px}.dm-skeletons{padding:0 16px}.dm-skeletons .skeleton{height:64px}.dm-notice,.dm-empty{margin:0 16px}.dm-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.dm-rows li{border-bottom:1px solid var(--rule)}.dm-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 16px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.dm-row:hover{background:var(--chat-surface)}.dm-text{display:grid;flex:1 1 auto;min-width:0}.dm-name,.dm-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-row.unread .dm-name{font-weight:700}.dm-preview{color:var(--muted)}.dm-meta{flex:none;display:grid;justify-items:end;gap:4px;font-family:var(--mono);font-size:12px;color:var(--muted)}.chat-dialog{width:min(520px,calc(100vw - 32px));max-height:70vh;padding:24px;border:1px solid var(--rule);border-radius:8px;background:var(--panel);color:var(--ink);font-size:16px;line-height:1.5}.chat-dialog::backdrop{background:#0006}.chat-dialog[open]{display:flex;flex-direction:column}.chat-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.chat-dialog-title{font-size:22px;line-height:1.2}.chat-dialog input[type=text]{font-size:16px;background:var(--paper)}.chat-dialog .error-text,.chat-dialog .notice,.chat-dialog .empty{font-size:16px}.chat-dialog .error-text{margin:0 0 8px}.picker-results{flex:1 1 auto;min-height:0;overflow-y:auto}.picker-skeletons .skeleton{height:48px}.picker-rows{list-style:none;margin:0;padding:0}.picker-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:4px 8px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.picker-row:hover:not(:disabled){background:var(--accent-soft)}.picker-row:disabled{opacity:.7;cursor:default}.picker-name{min-width:0;overflow-wrap:anywhere}@media(max-width:899.98px){.chat-dialog{width:100dvw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer-row>.composer-field{flex:1 1 auto;min-width:0}.composer.compact .composer-field{border-radius:22px}.composer.compact .composer-field:focus-within{outline-offset:0}.composer.compact .composer-field textarea{min-height:42px;padding:9px 16px}.composer-send.round{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer}.composer-send.round:disabled{opacity:.4;cursor:default}.composer-send.round[aria-busy=true]{opacity:.7}.composer-send.round svg{width:22px;height:22px}@media(hover:none){.chat .btn.small,.dm-new .btn{min-height:44px}}.reactions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.reaction-chip,.reaction-add{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border:1px solid var(--rule);border-radius:999px;background:var(--chat-surface);color:var(--ink);font:inherit;cursor:pointer}.reaction-emoji{font-size:16px;line-height:1}.reaction-count{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);font-variant-numeric:tabular-nums}.reaction-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.reaction-chip[aria-pressed=true] .reaction-count{color:var(--accent)}.reaction-chip:hover{border-color:var(--accent)}.reaction-add{justify-content:center;width:28px;padding:0;border-style:dashed;color:var(--muted)}.reaction-add:disabled{opacity:.4;cursor:default}.reaction-add svg{width:16px;height:16px}.reaction-add-wrap{position:relative;display:inline-flex}.reaction-pop{position:absolute;z-index:5;bottom:calc(100% + 4px);left:0;display:grid;grid-template-columns:repeat(6,36px);gap:4px;padding:8px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.reaction-pop.below{top:calc(100% + 4px);bottom:auto}.reaction-pick{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:none;font-size:20px;line-height:1;cursor:pointer}.reaction-pick:hover,.reaction-pick:focus-visible{background:var(--accent-soft)}.msg-actions{position:absolute;z-index:4;top:-16px;right:0;display:flex;gap:2px;padding:2px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface);opacity:0;pointer-events:none}.msg:focus-within>.msg-actions,.msg.actions-open>.msg-actions{opacity:1;pointer-events:auto}@media(hover:hover){.msg:hover>.msg-actions{opacity:1;pointer-events:auto}}.msg-action{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:4px;background:none;color:var(--ink);cursor:pointer}.msg-action:hover:not(:disabled){background:var(--accent-soft)}.msg-action:disabled{opacity:.4;cursor:default}.msg-action svg{width:18px;height:18px}.msg-action.miss{color:var(--miss)}@media(hover:none){.reaction-chip,.reaction-add{min-height:44px}.reaction-add{min-width:44px}.msg-action{width:44px;height:44px}.msg-actions{top:-24px}}.msg-body.prose a{overflow-wrap:anywhere}.msg-body.prose code{font-size:.9em}.mention{padding:0 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.msg.mentions-me{box-shadow:inset 3px 0 0 var(--accent);margin-left:-16px;padding-left:16px}.composer-field{position:relative}.composer-tools-gap{flex:1 1 auto}.composer-tool{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted);cursor:pointer}.composer-tool:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.composer-tool:disabled{opacity:.4;cursor:default}.composer-tool svg{width:20px;height:20px}.mention-pop{position:absolute;z-index:6;bottom:calc(100% + 4px);left:0;width:100%;max-width:360px;margin:0;padding:4px;list-style:none;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.mention-option,.mention-empty{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border-radius:4px}.mention-option{cursor:pointer}.mention-option.active{background:var(--accent-soft)}.mention-empty{color:var(--muted)}.mention-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mention-handle{flex:none;margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted)}.share-field{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:44px;padding:4px 8px;border:1px solid var(--rule);border-radius:3px;background:var(--panel);cursor:text}.share-field:focus-within{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.share-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0;max-width:100%;margin:0;padding:0;list-style:none}.share-chip{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;min-height:32px;padding:0 4px 0 8px;border:1px solid var(--rule);border-radius:999px;background:var(--panel);color:var(--ink);font-family:var(--display);font-size:14.5px;font-weight:600;cursor:default}.share-chip-label{max-width:240px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.share-chip-remove{display:inline-flex;flex:none;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer}.share-chip-remove:hover{color:var(--ink)}.share-chip-remove:focus-visible{outline:2px solid var(--accent);outline-offset:0}.share-chip-remove svg{width:16px;height:16px}.share-field .share-input{flex:1 1 160px;width:auto;min-width:120px;min-height:32px;padding:0;border:0;background:none}.share-field .share-input:focus-visible{outline:none}.share-pop{position:absolute;z-index:6;top:calc(100% + 4px);left:0;width:100%;max-width:420px;margin:0;padding:4px;list-style:none;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.share-option{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border-radius:4px;cursor:pointer}.share-option.active{background:var(--accent-soft)}.share-option.share-empty{color:var(--muted);cursor:default}.share-option-name{min-width:0;overflow:hidden;font-family:var(--body);font-size:17px;white-space:nowrap;text-overflow:ellipsis}.share-option-email{min-width:0;margin-left:auto;overflow:hidden;font-family:var(--mono);font-size:14.5px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.share-none{margin:0}.share-pop.tag-pop{max-height:272px;overflow-y:auto;overscroll-behavior:contain}.tag-field.full,.tag-field.full .share-input{cursor:default}.msg-edit{display:grid;gap:8px;margin-top:4px}.msg-edit .error-text{margin:0}.msg-edit .btn[aria-busy=true]{opacity:.7}.msg-deleted{margin:0;font-style:italic;color:var(--muted)}.chat-dialog.chat-confirm{width:auto;max-width:min(420px,calc(100vw - 32px));height:auto;max-height:none;margin:auto;border-radius:8px}.chat-confirm-body{margin:12px 0 16px}.chat-confirm .error-text{margin:0 0 16px}.chat-confirm-buttons .btn{min-height:44px}.btn.danger{border-color:var(--miss);background:var(--miss);color:var(--paper)}.btn.danger:hover:not(:disabled){filter:brightness(1.08);background:var(--miss)}.btn.danger[aria-busy=true]{opacity:.7}.msg-embeds{display:grid;gap:8px;margin-top:8px}.embed-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface, var(--panel));color:var(--ink);text-decoration:none}a.embed-card:hover{border-color:var(--accent)}.embed-card.unavailable{border-style:dashed}.embed-main{display:grid;flex:1 1 auto;min-width:0}.embed-type{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.embed-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}.embed-card.unavailable .embed-title{font-weight:400;color:var(--muted)}.embed-meta{overflow:hidden;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.embed-card .badge{flex:none;font-size:12px}.embed-skeleton{display:block;width:60%;height:16px;margin:4px 0}.embed-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--rule)}.embed-tab{min-height:44px;padding:0 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer}.embed-tab[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}.embed-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.embed-searching{margin:0 0 8px;font-family:var(--mono);font-size:12px;color:var(--muted)}.picker-rows li+li{margin-top:8px}.picker-row.embed-pick{display:grid;gap:4px;padding:0}.picker-row.embed-pick:hover:not([aria-disabled=true]){background:none}.picker-row.embed-pick:hover:not([aria-disabled=true]) .embed-card{border-color:var(--accent)}.picker-row.embed-pick[aria-disabled=true]{cursor:default;opacity:.7}.embed-staged{font-family:var(--mono);font-size:12px;color:var(--accent)}.staging{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:8px 8px 0;list-style:none}.composer.compact>.staging{padding:0}.staging-chip{position:relative;display:inline-flex;align-items:center;gap:8px;max-width:100%;height:32px;padding-left:8px;border-radius:6px;background:var(--chat-bg, var(--paper));font-size:16px}.composer.compact>.staging .staging-chip{background:var(--chat-surface, var(--panel))}.staging-type,.staging-size{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted)}.staging-type{text-transform:uppercase;letter-spacing:.06em}.staging-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.staging-name.embed-name{max-width:240px}.staging-remove{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted);cursor:pointer}.staging-remove:hover:not(:disabled){color:var(--ink);background:var(--accent-soft)}.staging-remove svg{width:16px;height:16px}:target,.hash-target{scroll-margin-top:12px;animation:target-fade 2s ease-out}@keyframes target-fade{0%{background-color:var(--accent-soft)}to{background-color:transparent}}@media(prefers-reduced-motion:reduce){:target,.hash-target{animation:none}.hash-target{background-color:var(--accent-soft)}}.msg-files{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none}.msg-file{display:flex;align-items:center;gap:8px;width:100%;max-width:480px;min-height:44px;padding:0 12px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface, var(--panel));color:var(--ink);font:inherit;text-align:left;cursor:pointer}.msg-file:hover{border-color:var(--accent)}.msg-file[aria-busy=true]{opacity:.7;cursor:progress}.msg-file svg{flex:none;width:20px;height:20px;color:var(--muted)}.msg-file-name{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.msg-file-size{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted)}.staging-name.file-name{max-width:200px}.staging-failed{flex:none;font-size:12px;font-family:var(--mono);color:var(--miss)}.staging-chip .linkish{flex:none;font-size:12px}.staging-progress{position:absolute;left:0;bottom:0;height:2px;border-radius:0 0 0 6px;background:var(--accent);transition:width .2s linear}@media(prefers-reduced-motion:reduce){.staging-progress{transition:none}}.composer-add{position:relative;flex:none}.composer-plus{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--rule);border-radius:50%;background:var(--chat-surface, var(--panel));color:var(--ink);cursor:pointer}.composer-plus[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.composer-plus:disabled{opacity:.4;cursor:default}.composer-plus svg{width:22px;height:22px}.composer-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:5;display:grid;min-width:280px;max-width:calc(100vw - 32px);padding:4px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.composer-menu-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border:0;border-radius:6px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.composer-menu-item:hover:not(:disabled),.composer-menu-item:focus-visible{background:var(--accent-soft)}.composer-menu-item:disabled{opacity:.5;cursor:default}.composer-menu-item svg{flex:none;width:20px;height:20px}@page{margin:16mm 14mm}@page app{size:auto;margin:16mm 14mm}@media print{:root:not(.deck-public):not(.deck-speaker){color-scheme:light;--paper: #fff;--panel: #fff;--ink: #000;--muted: #444;--rule: #bbb;--accent: #1f4a3b;--accent-soft: #fff;--on-accent: #fff;--miss: #7a3218;--miss-soft: #fff;--warn: #5c3d00;--warn-rule: #bbb}.shell{display:block;min-height:0;page:app}.main,.main.wide{padding:0!important;width:auto}.pulpit.czat{height:auto}.shell .sidebar,.shell .topbar,.shell .tabbar,.theme-toggle,.shell .toast,.shell .update-bar,.shell .btn,.shell .icon-btn,.pulpit-tabs,.pulpit>.chat{display:none!important}.shell a.btn[href^=http]{display:inline!important;min-height:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-decoration:underline}.shell a.btn[href^=http]:after{content:" (" attr(href) ")"}.shell a{color:var(--ink);text-decoration:underline}.prose a[href^=http]:after{content:" (" attr(href) ")";color:var(--muted);font-size:.85em;overflow-wrap:anywhere}.shell *{box-shadow:none!important;text-shadow:none!important}.shell .card:not(.prose),.shell .rows>li,.prose pre,.prose blockquote,.prose figure,.prose img{break-inside:avoid}.table-scroll{overflow:visible}.prose thead{display:table-header-group}.prose tr{break-inside:avoid}.prose img{max-height:200mm;width:auto;break-inside:avoid}.shell h1,.shell h2,.shell h3{break-after:avoid}.prose p,.prose li{orphans:3;widows:3}.prose.card{padding:0;border:0;background:none}}.material-actions{align-items:center;margin:0 0 .8em}.author-actions{margin-left:auto}.confirm-dialog code{font-family:var(--mono);font-size:14.5px}@media(max-width:479.98px){.confirm-dialog .chat-confirm-buttons{flex-direction:column}.confirm-dialog .chat-confirm-buttons .btn{width:100%;justify-content:center}}.edit-details{margin-bottom:0}.edit-details>summary{min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;cursor:pointer;font-family:var(--display);font-weight:600;font-size:17px;margin-bottom:8px}.edit-details-values{font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--muted)}.edit-course{min-height:44px;display:flex;align-items:center;color:var(--ink)}.edit-tags-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.edit-tags-head .label{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.edit-tags .chips{align-items:center}.edit-block{margin-top:24px}.edit-tabs{margin-bottom:8px}.edit-toolbar-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.edit-preview-toggle{margin-left:auto}.md-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:0}.md-tool{width:40px;height:40px;border-radius:6px;color:var(--ink)}.md-tool svg{width:20px;height:20px}.md-tool:focus-visible{outline:2px solid var(--accent);outline-offset:0}.md-toolbar-sep{display:none}@media(min-width:480px){.md-toolbar-sep{display:block;width:1px;height:24px;margin:0 4px;background:var(--rule)}}.edit-panes{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.edit-panes.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.edit-pane{background:var(--panel);border:1px solid var(--rule);border-radius:4px;min-width:0}.edit-editor .md-editor,.edit-editor .cm-editor{min-height:320px}.edit-pane-skeleton{height:320px}.edit-preview{padding:16px}.edit-preview-caption{display:block;margin-bottom:8px;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.edit-status-strip{margin:0;padding:8px 16px;font-size:14.5px;line-height:1.5;color:var(--muted)}.edit-save-error{margin-top:16px}.edit-actions{position:sticky;bottom:0;z-index:5;min-height:56px;display:flex;align-items:center;margin-top:16px;padding:8px 0;background:var(--paper);border-top:1px solid var(--rule)}.edit-actions .btn-row{align-items:center}@media(min-width:900px){.edit-pane{height:max(480px,calc(100dvh - 176px));overflow:auto}.edit-editor{overflow:hidden}.edit-editor .md-editor,.edit-editor .cm-editor,.edit-pane-skeleton{height:100%}}@media(max-width:899.98px){.edit-actions{bottom:calc(var(--tabbar-h) + var(--safe-bottom))}}@media print{.no-print{display:none!important}.material-card>.card.link{padding-right:18px}}.notice.conflict{margin-bottom:16px;background:var(--panel);border:1px solid var(--rule);border-left:3px solid var(--warn);color:var(--ink)}.notice.conflict:focus{outline:none}.notice.conflict:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.conflict-title{margin:0;font-family:var(--display);font-size:17px;font-weight:600;line-height:1.55;color:var(--warn)}.conflict-line{margin:2px 0 0;font-size:14.5px;line-height:1.5;color:var(--muted)}.notice.conflict .btn-row,.notice.conflict .error-text{margin-top:8px}.md-editor{position:relative}.md-editor-host{height:100%}.md-editor.dragging{outline:2px dashed var(--accent);outline-offset:-2px}.md-drop-overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;background:var(--accent-soft);color:var(--ink);font-size:17px;pointer-events:none}.edit-status-strip{position:relative}.edit-upload-bar{position:absolute;left:0;top:0;height:2px;background:var(--accent);transition:width .2s linear}@media(prefers-reduced-motion:reduce){.edit-upload-bar{transition:none}}.edit-upload-errors{margin-top:8px}.edit-upload-error{margin:0 0 4px}.notice.draft-offer{margin-bottom:16px;color:var(--ink)}.draft-offer-title{margin:0;font-family:var(--display);font-size:17px;font-weight:600;line-height:1.55}.notice.draft-offer .btn-row{margin-top:8px}@media(min-width:900px){.chat-dialog.diff-dialog{width:min(1100px,calc(100vw - 32px));height:85vh;max-height:none}}.diff-scroll{flex:1 1 auto;min-height:0;overflow:auto}.diff-fields{width:100%;margin-bottom:16px;border-collapse:collapse;font-size:14.5px;line-height:1.5}.diff-fields th,.diff-fields td{padding:6px 8px;border:1px solid var(--rule);text-align:left;vertical-align:top;color:var(--ink);overflow-wrap:anywhere}.diff-fields th{font-family:var(--display);font-weight:600}.diff-fields thead th{background:var(--paper)}.diff-body{border:1px solid var(--rule);border-radius:4px}.diff-head{display:flex;flex-wrap:wrap;gap:4px 16px;padding:6px 8px;border-bottom:1px solid var(--rule);background:var(--paper);font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.diff-body.split .diff-head,.diff-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.diff-row>.diff-line+.diff-line{border-left:1px solid var(--rule)}.diff-line{display:flex;gap:4px;min-height:21.75px;padding:0 8px;font-family:var(--mono);font-size:14.5px;line-height:1.5;color:var(--ink)}.diff-line.server{background:var(--miss-soft)}.diff-line.mine{background:var(--accent-soft)}.diff-line.empty{background:var(--paper)}.diff-no{flex:0 0 auto;min-width:4ch;padding-top:.2em;font-size:12px;line-height:1.4;text-align:right;color:var(--muted)}.diff-glyph{flex:0 0 1ch}.diff-line.server .diff-glyph{color:var(--miss)}.diff-line.mine .diff-glyph{color:var(--accent)}.diff-text{flex:1 1 auto;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.diff-gap{display:block;width:100%;padding:4px 8px;border-block:1px dashed var(--rule);font-size:14.5px;text-align:left}.diff-foot{position:sticky;bottom:0;margin-top:16px;padding-top:12px;border-top:1px solid var(--rule);background:var(--panel)} +@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-vietnamese-500-normal-CbuGBAYj.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-500-normal-DBsYfoQF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-latin-ext-500-normal-CEqYmuFE.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-500-normal-DESKgx4f.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-narrow-latin-500-normal-BH-FPhCi.woff2) format("woff2"),url(/assets/archivo-narrow-latin-500-normal-Oafwxh5s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-vietnamese-600-normal-B3iMS2rD.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-600-normal-BOVNaV0C.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-latin-ext-600-normal-DNmONYTo.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-600-normal-CFDqFZjW.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-narrow-latin-600-normal-l2jiltzb.woff2) format("woff2"),url(/assets/archivo-narrow-latin-600-normal-DZkbuzR9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-vietnamese-700-normal-VsvP8OcS.woff2) format("woff2"),url(/assets/archivo-narrow-vietnamese-700-normal-CB0yIOvF.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-ext-700-normal-DCLoHMFv.woff2) format("woff2"),url(/assets/archivo-narrow-latin-ext-700-normal-C4q0W15T.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-narrow-latin-700-normal-DtADLsoy.woff2) format("woff2"),url(/assets/archivo-narrow-latin-700-normal-DxmyBkwC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-normal-DIwfbPUE.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-normal-C0olyEE-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-normal-DrHU7SY7.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-normal-BOyYyU_V.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-normal-HoL-AExg.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-normal-BpEBLj1O.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-italic-Bl6DJqma.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-italic-Dibx14aP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-italic-CMW9dfKg.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-italic-C-k5pZlm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-italic-BhUEwDRF.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-italic-BOLXpvkj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--paper: #141917;--panel: #1b211e;--ink: #e4e8e3;--muted: #9aa69f;--rule: #2e3833;--accent: #8cc3aa;--accent-soft: #1f3129;--on-accent: #141917;--miss: #e39a7c;--miss-soft: #35221b;--warn: #f0c27a;--warn-rule: #6b5631;--display: "Archivo Narrow", "Arial Narrow", system-ui, sans-serif;--body: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--gutter: 16px;--tabbar-h: 64px;--topbar-h: 52px;--sidebar-w: 236px;--safe-bottom: env(safe-area-inset-bottom, 0px);--av-ink: #f3f4f1;--av-1: #3b4f6b;--av-2: #6b4a3b;--av-3: #4a3b6b;--av-4: #3b6b5e;--av-5: #6b3b4f;--av-6: #5e6b3b;--av-7: #3b5e6b;--av-8: #6b5a3b}:root[data-theme=light]{color-scheme:light;--paper: #f3f4f1;--panel: #fafbf8;--ink: #1c2320;--muted: #5a6560;--rule: #d5dad4;--accent: #2f5a4b;--accent-soft: #e2ebe5;--on-accent: #f3f4f1;--miss: #9a4a2e;--miss-soft: #f3e3dc;--warn: #7a5200;--warn-rule: #d9b56a}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden}a{color:var(--accent);text-underline-offset:2px}h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;line-height:1.1;text-wrap:balance}h1{font-size:clamp(32px,6vw,44px);letter-spacing:-.01em}h2{font-size:24px}h3{font-size:19px;font-weight:600}p{margin:0 0 .8em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.small{font-size:14.5px}.nums{font-variant-numeric:tabular-nums}.shell{min-height:100vh}.main{padding:16px var(--gutter) calc(var(--tabbar-h) + var(--safe-bottom) + 28px);min-width:0}.sidebar{display:none}.tabbar{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);background:var(--panel);border-top:1px solid var(--rule);padding-bottom:var(--safe-bottom)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--tabbar-h);padding:6px 2px;color:var(--muted);text-decoration:none;font-family:var(--mono);font-size:11px;letter-spacing:.02em}.tabbar a svg{width:22px;height:22px}.tabbar a.active{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:var(--topbar-h);padding:0 calc(var(--gutter) - 8px) 0 var(--gutter);background:var(--panel);border-bottom:1px solid var(--rule)}.topbar-brand{display:inline-flex;align-items:baseline;gap:8px;color:var(--ink);text-decoration:none}.topbar-brand b{font-family:var(--display);font-size:20px;line-height:1}@media(min-width:900px){.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.tabbar,.topbar{display:none}.main{padding:32px 32px 64px;width:100%}.sidebar{display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;padding:28px 16px 20px 20px;border-right:1px solid var(--rule);background:var(--panel)}.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:14px;border-bottom:2px solid var(--ink)}.side-head .icon-btn{width:36px;height:36px}.brand{display:grid;gap:2px;padding:0 8px;text-decoration:none;color:var(--ink)}.brand b{font-family:var(--display);font-size:30px;line-height:1}.sidebar nav{display:grid;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:3px;border-left:3px solid transparent;color:var(--ink);text-decoration:none;font-family:var(--display);font-weight:600;font-size:18px}.sidebar nav a svg{width:20px;height:20px;color:var(--muted)}.sidebar nav a:hover{background:var(--accent-soft)}.sidebar nav a.active{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.sidebar nav a.active svg{color:var(--accent)}.sidebar .who{margin-top:auto;display:grid;gap:6px;padding:12px 8px 0;border-top:1px solid var(--rule);font-size:14.5px}}.page-head{display:grid;gap:8px;padding-bottom:16px;border-bottom:2px solid var(--ink);margin-bottom:20px}.page-head .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px}.stack{display:grid;gap:16px}.section{margin-top:28px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:6px;margin-bottom:10px;border-bottom:1px solid var(--rule)}.section-head h2{font-size:22px}.grid-2{display:grid;gap:16px}@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}.grid-3{display:grid;gap:16px}@media(min-width:720px){.grid-3{grid-template-columns:repeat(3,1fr)}}.badges{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.stack[aria-busy=true]>.card,.stack[aria-busy=true]>.material-card{opacity:.6}@media(prefers-reduced-motion:no-preference){.stack[aria-busy]>.card,.stack[aria-busy]>.material-card{transition:opacity .15s ease}}.material-card{position:relative;min-width:0}.material-card>.card.link{padding-right:56px}.material-card>.pin-btn{position:absolute;top:6px;right:6px}.pin-btn[aria-pressed=true],.btn.pin[aria-pressed=true]{color:var(--accent)}.pin-btn[aria-pressed=true] svg{fill:currentColor}.btn.pin[aria-pressed=true]{border-color:var(--accent)}.snippet{margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.snippet mark{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--accent);padding:0;font-weight:inherit}.snippet-file{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.card{padding:16px 18px;background:var(--panel);border:1px solid var(--rule);border-radius:4px;min-width:0}.card.accent{border-left:4px solid var(--accent)}.card.hl{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.card h3{margin-bottom:4px}.card.link{display:block;color:inherit;text-decoration:none}.card.link:hover{border-color:var(--accent)}button.card{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.notice{padding:10px 14px;border-radius:3px;background:var(--accent-soft);font-size:15.5px}.notice.error,.error-text{background:var(--miss-soft);color:var(--miss)}.error-text{background:none;font-size:14.5px;margin:4px 0 0}.notice.error{border-left:3px solid var(--miss)}.empty{padding:22px 16px;text-align:center;color:var(--muted);border:1px dashed var(--rule);border-radius:4px}.skeleton{height:72px;border-radius:4px;background:linear-gradient(90deg,var(--rule),var(--panel),var(--rule));background-size:200% 100%;animation:shimmer 1.4s linear infinite;opacity:.6}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--display);font-weight:600;font-size:16px;line-height:1.2;cursor:pointer;border-radius:3px;padding:9px 16px;min-height:40px;border:1px solid var(--accent);background:transparent;color:var(--accent);text-decoration:none}.btn:hover:not(:disabled){background:var(--accent-soft)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.miss{border-color:var(--miss);color:var(--miss)}.btn.miss:hover:not(:disabled){background:var(--miss-soft)}.btn.ghost{border-color:var(--rule);color:var(--muted)}.btn.small{min-height:32px;padding:4px 12px;font-size:15px}.btn.block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.linkish{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.field{display:grid;gap:4px;margin-bottom:14px}.field>label,.field>.label{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],select{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 12px;min-height:44px}input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.check{display:flex;align-items:center;gap:10px;min-height:32px}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent);margin:0;flex:none}.auth{max-width:420px;margin:0 auto;padding:40px var(--gutter) 64px}.auth .page-head{margin-bottom:22px}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:18px;font-size:15.5px}.badge{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border-radius:3px;border:1px solid var(--rule);color:var(--muted);vertical-align:middle;white-space:nowrap}.badge.online{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.badge.onsite{border-color:var(--ink);color:var(--ink)}.badge.alert{border-color:var(--miss);color:var(--miss);background:var(--miss-soft)}.badge.warn{color:var(--warn);border-color:var(--warn-rule)}.badge.pin{border-color:var(--accent);color:var(--accent)}.badge.solid{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.chips.wrap{flex-wrap:wrap;overflow:visible}.chip{flex:none;font-family:var(--display);font-weight:600;font-size:16px;padding:6px 13px;min-height:36px;border:1px solid var(--rule);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer;position:relative}.chip[aria-pressed=true],.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip:disabled{opacity:.4;cursor:default}.chip .dot{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--miss)}.rows{list-style:none;margin:0;padding:0}.rows>li{padding:10px 0;border-top:1px solid var(--rule)}.rows>li:first-child{border-top:0}.rows.card{padding:6px 18px}.row-main{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.when{font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.title{font-weight:600}.past{opacity:.55}.progress-bar{height:6px;border-radius:3px;background:var(--rule);overflow:hidden}.progress-bar>span{display:block;height:100%;background:var(--accent);border-radius:3px}.big-num{font-family:var(--display);font-weight:700;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}.days{display:grid;gap:18px}@media(min-width:720px){.days.two{grid-template-columns:1fr 1fr;align-items:start}}.day-head{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:6px;border-bottom:2px solid var(--ink);margin-bottom:10px;display:flex;justify-content:space-between;gap:8px}.session{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:12px 14px;margin-bottom:8px;background:var(--panel);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px}.session.online{border-left-color:var(--rule)}.session .time{font-family:var(--mono);font-size:13px;line-height:1.35;font-variant-numeric:tabular-nums}.session .time span{display:block;color:var(--muted)}.session .name{font-weight:600;line-height:1.3}.session .meta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:4px;font-size:14.5px;color:var(--muted)}.session .note{margin-top:6px;font-size:14.5px;padding:6px 10px;background:var(--accent-soft);border-radius:3px}.meeting-bar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:14px 0 18px}.reading{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--rule)}.reading:first-child{border-top:0}.reading label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;flex:1;min-width:0;min-height:32px}.reading input{margin-top:3px}.reading .text{min-width:0;overflow-wrap:anywhere}.reading input:checked+.text{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--rule)}.reading .owned{flex:none;align-items:center;gap:6px;cursor:pointer;min-height:32px;font-family:var(--mono);font-size:12px;color:var(--muted)}.reading .owned input{margin-top:0}.subhead{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}.checklist-card .progress-bar{margin:10px 0 6px}.checklist-item{flex-wrap:wrap;align-items:center}.checklist-item label{flex:1 1 260px}.checklist-item .badge{font-size:11px;margin-right:4px}.checklist-item .item-notes{display:block;margin-top:2px;white-space:pre-line;text-decoration:none}.checklist-item .item-links{display:flex;gap:10px}.checklist-item .item-actions{display:flex;margin-left:auto}.checklist-item .item-actions .icon-btn{width:36px;height:36px;color:var(--muted)}.checklist-item .item-actions .icon-btn svg{width:18px;height:18px}.checklist-item .grow{flex:1 1 100%}.chip-icon{width:14px;height:14px;vertical-align:-2px}.item-form textarea,.item-form input[type=number],.item-form input[type=datetime-local]{width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:9px 12px;min-height:44px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}.hero-prep{display:flex;flex-direction:column;gap:6px;width:100%;max-width:360px;color:inherit;text-decoration:none}.hero-prep:hover .hero-cap{color:var(--accent)}.prose{overflow-wrap:anywhere}.prose h2,.prose h3,.prose h4{margin:1.2em 0 .4em}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 .8em}.prose blockquote{margin:0 0 .8em;padding:2px 14px;border-left:3px solid var(--accent);color:var(--muted)}.prose code{font-family:var(--mono);font-size:.9em;background:var(--accent-soft);padding:1px 5px;border-radius:3px}.prose pre{overflow-x:auto;background:var(--accent-soft);padding:12px 14px;border-radius:4px;margin:0 0 .8em}.prose pre code{background:none;padding:0}.prose hr{border:0;border-top:1px solid var(--rule);margin:1.2em 0}.prose img{display:block;max-width:100%;height:auto;margin:16px 0;color:var(--muted);font-size:14.5px}.table-scroll{overflow-x:auto;margin:0 0 .8em}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prose table{border-collapse:collapse;min-width:50%}.prose th,.prose td{border:1px solid var(--rule);padding:8px 16px;text-align:left;vertical-align:top;font-size:14.5px;line-height:1.5}.prose th{font-family:var(--display);font-weight:600;background:var(--paper)}.prose .task-list-item{list-style:none}.prose .task-list-item input{margin:0 8px 0 -1.3em;accent-color:var(--accent)}.quiz-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-block:14px;border-bottom:1px solid var(--rule)}.score{display:flex;align-items:baseline;gap:14px;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.score b{font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}.score .y b{color:var(--accent)}.score .n b{color:var(--miss)}.count{display:block;font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.round-progress{display:grid;gap:6px;margin-top:22px}.round-progress span{height:6px;border-radius:3px;background:var(--rule)}.round-progress span.cur{background:var(--ink)}.round-progress span.y{background:var(--accent)}.round-progress span.n{background:var(--miss)}.step{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:8px;display:flex;justify-content:space-between;gap:8px}.qcard{margin-top:14px;padding:20px 22px;background:var(--panel);border:1px solid var(--rule);border-radius:4px}.q{margin:0;font-size:20px;line-height:1.45}.answer{margin:14px 0 0;padding:10px 14px;background:var(--accent-soft);border-radius:3px;font-size:16px}.answer .tag{margin-bottom:2px}.reveal{margin-top:12px;font-family:var(--mono);font-size:12.5px;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.quiz-badges{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.choices{display:grid;gap:8px;margin:14px 0 0;padding:0;border:0;min-width:0}.choice{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--rule);border-left-width:3px;border-radius:3px;background:var(--paper);font-size:16px;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}.choice input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent)}.choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.choice:has(input:disabled){cursor:default}.choice-body{display:grid;gap:2px;min-width:0}.choice-note{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.choice-expl{color:var(--muted);font-size:14.5px}.choice.ok{border-color:var(--accent);background:var(--accent-soft)}.choice.ok .choice-note,.choice.missed .choice-note{color:var(--accent)}.choice.missed{border-color:var(--accent);border-style:dashed;border-left-style:solid}.choice.bad{border-color:var(--miss);background:var(--miss-soft)}.choice.bad .choice-note{color:var(--miss)}.choice-none{margin:10px 0 0;font-family:var(--mono);font-size:12px;color:var(--miss)}.test-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding-block:12px;border-bottom:1px solid var(--rule)}.test-bar .count{display:inline}.timer{margin-left:auto;font-family:var(--mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.timer.low{color:var(--miss)}.test-bar+.error-text{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.qnav{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.qnav button{min-width:36px;height:36px;padding:0 6px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.qnav button.answered{border-color:var(--accent);background:var(--accent-soft)}.qnav button.unsaved{border-style:dashed;border-color:var(--miss);color:var(--miss)}.qnav button[aria-current=step]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}.qnav button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.q[tabindex="-1"]:focus{outline:none}.test-result p{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--mono);font-size:12.5px}.test-review{list-style:none;margin:0;padding:0}.test-review .tag{font-variant-numeric:tabular-nums}.qactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.qactions .next{margin-left:auto}.btn.yes[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.btn.no{border-color:var(--miss);color:var(--miss)}.btn.no[aria-pressed=true]{background:var(--miss);color:var(--paper)}.sum h2{font-size:26px;margin:0 0 4px}.sum>p{margin:0 0 12px;color:var(--muted)}.sum ol{list-style:none;margin:0 0 18px;padding:0}.sum li{padding:10px 0 10px 14px;border-top:1px solid var(--rule);border-left:3px solid var(--accent);font-size:16px}.sum li.n{border-left-color:var(--miss)}.sum li small{display:block;color:var(--muted);font-size:14.5px;margin-top:2px}.tag{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}.grp h3{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;color:var(--miss)}.grp.ok h3{color:var(--accent)}.grp.ok li{padding-block:6px;font-size:15px}@media(max-width:480px){.qactions .next{margin-left:0;flex:1 1 100%}.qcard{padding:16px}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 12px);z-index:40;max-width:min(520px,calc(100vw - 32px));padding:10px 16px;background:var(--ink);color:var(--paper);border-radius:4px;font-size:15px}@media(min-width:900px){.toast{bottom:24px}}.update-bar{position:fixed;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 12px);z-index:45;display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:max-content;max-width:min(520px,calc(100vw - 32px));padding:10px 12px;background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px;font-size:15px;box-shadow:0 4px 16px #0000001f}.pulpit-head{margin-bottom:32px}.pulpit.with-chat>.pulpit-head{margin-bottom:16px}.pulpit-head h1{font-size:34px;line-height:1.1}.pulpit-head .btn-row{align-items:center}.profile-link{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--panel);border:1px solid var(--rule);color:var(--ink);font-family:var(--display);font-weight:700;font-size:16px;text-decoration:none}.pulpit-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--rule);margin-bottom:24px}.pulpit-tab{min-height:48px;padding:0 16px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer}.pulpit-tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.pulpit-main{display:grid;gap:32px;min-width:0}.pulpit-main>.notice{margin:0}.pulpit-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:48px}.pulpit-lists .section-head h2{text-wrap:pretty}.pulpit-lists .when,.pulpit-lists .badge{white-space:nowrap}.pulpit-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:32px;padding:24px 32px;font-size:16px;line-height:1.5}.hero .badge{font-size:12px}.hero .btn{font-size:16px}.hero-main{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.hero-main p{margin:0}.hero-eyebrow{color:var(--accent)}.hero-title{font-size:34px;line-height:1.1}.hero-empty-h{font-size:22px;line-height:1.2}.hero-dates .badge{margin-left:8px}.hero-stats{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:8px 0;padding:0}.hero-stats li{display:flex;flex-direction:column}.hero-num{font-family:var(--display);font-weight:700;font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums}.hero-cap{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted)}.hero-timeline{display:flex;flex-direction:column;gap:8px;min-width:0}.hero-rows{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule)}.hero-rows li{display:flex;flex-direction:column;padding:4px 0 4px 16px}.hero-read-title{overflow-wrap:anywhere}.hero-read-meta{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}.hero-timeline p{margin:0}.hero-rows .hero-more{display:block}@media(min-width:900px){.pulpit-head h1{font-size:44px}.profile-link{display:none}}@media(max-width:1099.98px){.pulpit.with-chat:not(.czat)>.chat{display:none}.pulpit.czat{display:flex;flex-direction:column;height:calc(100dvh - 32px)}.pulpit.czat>.pulpit-head,.pulpit.czat>.pulpit-tabs{flex:none}.pulpit.czat>.pulpit-tabs{margin-bottom:0}.pulpit.czat>.pulpit-main{display:none}.pulpit.czat>.chat{flex:1 1 auto;min-height:0}.main.wide:has(>.pulpit.czat){padding-bottom:0}}@media(max-width:899.98px){.pulpit.czat{height:calc(100dvh - 16px - var(--topbar-h) - var(--tabbar-h) - var(--safe-bottom))}.main.wide:has(>.pulpit.czat){padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom))}}@media(min-width:1100px){.main.wide{padding:0}.pulpit-tabs{display:none}.pulpit>.pulpit-head,.pulpit.with-chat>.pulpit-head{margin:32px 48px 0}.pulpit-main{padding:32px 48px 64px}.pulpit.with-chat{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,var(--chat-width, clamp(340px, 26vw, 420px)),50vw);grid-template-rows:auto 1fr}.pulpit.with-chat>.pulpit-head{grid-column:1;grid-row:1}.pulpit.with-chat>.pulpit-main{grid-column:1;grid-row:2;align-self:start}.pulpit.with-chat>.chat{--chat-bg: var(--panel);--chat-surface: var(--paper);grid-column:2;grid-row:1 / span 2;position:sticky;top:0;height:100vh;height:100dvh;align-self:start;border-left:1px solid var(--rule)}.pulpit.with-chat>.chat-resizer{display:block;grid-column:2;grid-row:1 / span 2;justify-self:start;align-self:start;position:sticky;top:0;z-index:1;width:12px;height:100vh;height:100dvh;margin-left:-6px;cursor:col-resize;touch-action:none}}@media(min-width:1100px)and (pointer:coarse){.pulpit.with-chat>.chat-resizer{width:24px;margin-left:-12px}.pulpit.with-chat>.chat-resizer:before{left:11px}}.chat-resizer{display:none}.chat-resizer:before{content:"";position:absolute;top:0;bottom:0;left:5px;width:2px;background:transparent}.chat-resizer:hover:before,.chat-resizer.dragging:before,.chat-resizer:focus-visible:before{background:var(--accent)}html.chat-resizing{cursor:col-resize;user-select:none;-webkit-user-select:none}.chat{--chat-bg: var(--paper);--chat-surface: var(--panel);display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--chat-bg);font-size:16px;line-height:1.5}.chat .notice,.chat .error-text,.chat .empty,.chat .btn,.chat .btn.small,.chat textarea,.chat input[type=text]{font-size:16px}.chat .badge{font-size:12px}.chat-head{flex:none;display:grid;gap:12px;padding:24px 16px 0;border-bottom:1px solid var(--rule);min-width:0}.chat-head-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.chat-head-name{display:grid;flex:1 1 auto;min-width:0}.chat-presence{flex:none;display:flex;align-items:center;gap:8px}.chat-presence:empty{display:none}.icon-btn{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:6px;background:none;color:var(--ink);cursor:pointer}.icon-btn:hover{background:var(--accent-soft)}.icon-btn svg{width:22px;height:22px}.chat-back{margin-left:-12px}.chat-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chat-tab{flex:none;min-height:44px;padding:0 16px;border:1px solid var(--rule);border-radius:999px;background:var(--chat-surface);color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;white-space:nowrap;cursor:pointer}.chat-tab[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}@media(min-width:1100px)and (pointer:fine){.chat-tabs{gap:4px;padding-bottom:0}.chat-tab{min-height:36px;padding:0 8px;border:0;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;background:none}.chat-tab[aria-selected=true]{background:none;border-bottom-color:var(--accent)}}.chat-strip{flex:none;display:flex;align-items:center;height:28px;margin:0;padding:0 16px;font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-start{margin:0;font-family:var(--mono);font-size:12px;color:var(--muted);text-align:center}.chat-title{font-size:22px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:16px}.chat-list>.msg.follow{margin-top:-12px}.chat-skeletons{display:grid;gap:8px}.chat-skeletons .skeleton{height:48px}.chat-empty{margin:auto 0}.chat-empty p{margin:0}.chat-empty .chat-empty-h{margin:0 0 8px;font-family:var(--display);font-weight:700;font-size:22px;line-height:1.2;color:var(--ink)}.chat-day{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted)}.chat-day:before,.chat-day:after{content:"";flex:1;height:1px;background:var(--rule)}.chat-typing{flex:none;height:24px;padding:0 16px;font-style:italic;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;color:var(--av-ink);font-family:var(--display);font-weight:700;line-height:1;user-select:none}.avatar.s24{width:24px;height:24px;font-size:12px}.avatar.s32{width:32px;height:32px;font-size:16px}.avatar.s44{width:44px;height:44px;font-size:16px}.avatar.me{background:var(--accent-soft);color:var(--accent)}.msg{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px}.msg-gutter{display:flex;justify-content:center}.msg-content{min-width:0}.msg-head{display:flex;align-items:baseline;gap:4px;min-width:0}.msg-name{font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-tag{flex:none;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;padding:0 4px;border:1px solid var(--rule);border-radius:3px;color:var(--muted)}.msg-tag.me{border-color:var(--accent);color:var(--accent)}.msg-time,.msg-edited{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.msg-gutter .msg-time{line-height:24px;visibility:hidden}.msg.follow:hover .msg-gutter .msg-time,.msg.follow:focus-within .msg-gutter .msg-time{visibility:visible}.msg-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.composer{flex:none;display:grid;gap:8px;padding:16px;border-top:1px solid var(--rule);background:var(--chat-bg)}.composer-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.composer .error-text{margin:0}.composer-field{background:var(--chat-surface);border:1px solid var(--rule);border-radius:8px}.composer-field:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.composer-field textarea{display:block;width:100%;resize:none;border:0;background:transparent;color:inherit;font:inherit;line-height:1.5;padding:12px;overflow-y:hidden}.composer-field textarea:focus-visible{outline:none}.composer-tools{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:0 8px 8px}.composer-send svg{width:18px;height:18px}.composer-send[aria-busy=true]{opacity:.7}.unread-badge,.mention-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:20px;height:20px;padding:0 4px;border-radius:999px;font-family:var(--mono);font-size:12px;font-weight:400;line-height:1;letter-spacing:0;vertical-align:middle}.unread-badge{background:var(--accent);color:var(--on-accent)}.mention-badge{background:var(--accent-soft);color:var(--accent)}.chat-tab .mention-badge,.chat-tab .unread-badge,.pulpit-tab .unread-badge{margin-left:8px}.chat-tab .mention-badge+.unread-badge{margin-left:4px}.sidebar nav a .nav-badge{margin-left:auto}.nav-icon{position:relative;display:inline-flex}.nav-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--panel)}.chat-list-wrap{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-older{flex:none;min-height:1px;text-align:center}.chat-older p{margin:0}.chat-new{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.chat-new:before{content:"";flex:1;height:1px;background:var(--accent)}.chat-jump{position:absolute;bottom:16px;left:50%;z-index:1;transform:translate(-50%);gap:4px;background:var(--chat-surface);white-space:nowrap}.chat-jump svg{width:18px;height:18px}@media(prefers-reduced-motion:reduce){.chat-list{scroll-behavior:auto}}.presence-stack{display:inline-flex;align-items:center}.presence-stack .avatar{box-shadow:0 0 0 2px var(--chat-bg)}.presence-stack .avatar+.avatar{margin-left:-8px}.presence-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}.presence-text{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);white-space:nowrap}.dm-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.dm-new{padding:16px}.dm-new .btn svg{width:18px;height:18px}.dm-skeletons{padding:0 16px}.dm-skeletons .skeleton{height:64px}.dm-notice,.dm-empty{margin:0 16px}.dm-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.dm-rows li{border-bottom:1px solid var(--rule)}.dm-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 16px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.dm-row:hover{background:var(--chat-surface)}.dm-text{display:grid;flex:1 1 auto;min-width:0}.dm-name,.dm-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-row.unread .dm-name{font-weight:700}.dm-preview{color:var(--muted)}.dm-meta{flex:none;display:grid;justify-items:end;gap:4px;font-family:var(--mono);font-size:12px;color:var(--muted)}.chat-dialog{width:min(520px,calc(100vw - 32px));max-height:70vh;padding:24px;border:1px solid var(--rule);border-radius:8px;background:var(--panel);color:var(--ink);font-size:16px;line-height:1.5}.chat-dialog::backdrop{background:#0006}.chat-dialog[open]{display:flex;flex-direction:column}.chat-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.chat-dialog-title{font-size:22px;line-height:1.2}.chat-dialog input[type=text]{font-size:16px;background:var(--paper)}.chat-dialog .error-text,.chat-dialog .notice,.chat-dialog .empty{font-size:16px}.chat-dialog .error-text{margin:0 0 8px}.picker-results{flex:1 1 auto;min-height:0;overflow-y:auto}.picker-skeletons .skeleton{height:48px}.picker-rows{list-style:none;margin:0;padding:0}.picker-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:4px 8px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.picker-row:hover:not(:disabled){background:var(--accent-soft)}.picker-row:disabled{opacity:.7;cursor:default}.picker-name{min-width:0;overflow-wrap:anywhere}@media(max-width:899.98px){.chat-dialog{width:100dvw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer-row>.composer-field{flex:1 1 auto;min-width:0}.composer.compact .composer-field{border-radius:22px}.composer.compact .composer-field:focus-within{outline-offset:0}.composer.compact .composer-field textarea{min-height:42px;padding:9px 16px}.composer-send.round{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer}.composer-send.round:disabled{opacity:.4;cursor:default}.composer-send.round[aria-busy=true]{opacity:.7}.composer-send.round svg{width:22px;height:22px}@media(hover:none){.chat .btn.small,.dm-new .btn{min-height:44px}}.reactions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.reaction-chip,.reaction-add{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border:1px solid var(--rule);border-radius:999px;background:var(--chat-surface);color:var(--ink);font:inherit;cursor:pointer}.reaction-emoji{font-size:16px;line-height:1}.reaction-count{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--muted);font-variant-numeric:tabular-nums}.reaction-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.reaction-chip[aria-pressed=true] .reaction-count{color:var(--accent)}.reaction-chip:hover{border-color:var(--accent)}.reaction-add{justify-content:center;width:28px;padding:0;border-style:dashed;color:var(--muted)}.reaction-add:disabled{opacity:.4;cursor:default}.reaction-add svg{width:16px;height:16px}.reaction-add-wrap{position:relative;display:inline-flex}.reaction-pop{position:absolute;z-index:5;bottom:calc(100% + 4px);left:0;display:grid;grid-template-columns:repeat(6,36px);gap:4px;padding:8px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.reaction-pop.below{top:calc(100% + 4px);bottom:auto}.reaction-pick{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:none;font-size:20px;line-height:1;cursor:pointer}.reaction-pick:hover,.reaction-pick:focus-visible{background:var(--accent-soft)}.msg-actions{position:absolute;z-index:4;top:-16px;right:0;display:flex;gap:2px;padding:2px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface);opacity:0;pointer-events:none}.msg:focus-within>.msg-actions,.msg.actions-open>.msg-actions{opacity:1;pointer-events:auto}@media(hover:hover){.msg:hover>.msg-actions{opacity:1;pointer-events:auto}}.msg-action{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:4px;background:none;color:var(--ink);cursor:pointer}.msg-action:hover:not(:disabled){background:var(--accent-soft)}.msg-action:disabled{opacity:.4;cursor:default}.msg-action svg{width:18px;height:18px}.msg-action.miss{color:var(--miss)}@media(hover:none){.reaction-chip,.reaction-add{min-height:44px}.reaction-add{min-width:44px}.msg-action{width:44px;height:44px}.msg-actions{top:-24px}}.msg-body.prose a{overflow-wrap:anywhere}.msg-body.prose code{font-size:.9em}.mention{padding:0 4px;border-radius:3px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.msg.mentions-me{box-shadow:inset 3px 0 0 var(--accent);margin-left:-16px;padding-left:16px}.composer-field{position:relative}.composer-tools-gap{flex:1 1 auto}.composer-tool{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted);cursor:pointer}.composer-tool:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.composer-tool:disabled{opacity:.4;cursor:default}.composer-tool svg{width:20px;height:20px}.mention-pop{position:absolute;z-index:6;bottom:calc(100% + 4px);left:0;width:100%;max-width:360px;margin:0;padding:4px;list-style:none;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.mention-option,.mention-empty{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border-radius:4px}.mention-option{cursor:pointer}.mention-option.active{background:var(--accent-soft)}.mention-empty{color:var(--muted)}.mention-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mention-handle{flex:none;margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted)}.share-field{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-height:44px;padding:4px 8px;border:1px solid var(--rule);border-radius:3px;background:var(--panel);cursor:text}.share-field:focus-within{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.share-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0;max-width:100%;margin:0;padding:0;list-style:none}.share-chip{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;min-height:32px;padding:0 4px 0 8px;border:1px solid var(--rule);border-radius:999px;background:var(--panel);color:var(--ink);font-family:var(--display);font-size:14.5px;font-weight:600;cursor:default}.share-chip-label{max-width:240px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.share-chip-remove{display:inline-flex;flex:none;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer}.share-chip-remove:hover{color:var(--ink)}.share-chip-remove:focus-visible{outline:2px solid var(--accent);outline-offset:0}.share-chip-remove svg{width:16px;height:16px}.share-field .share-input{flex:1 1 160px;width:auto;min-width:120px;min-height:32px;padding:0;border:0;background:none}.share-field .share-input:focus-visible{outline:none}.share-pop{position:absolute;z-index:6;top:calc(100% + 4px);left:0;width:100%;max-width:420px;margin:0;padding:4px;list-style:none;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.share-option{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 8px;border-radius:4px;cursor:pointer}.share-option.active{background:var(--accent-soft)}.share-option.share-empty{color:var(--muted);cursor:default}.share-option-name{min-width:0;overflow:hidden;font-family:var(--body);font-size:17px;white-space:nowrap;text-overflow:ellipsis}.share-option-email{min-width:0;margin-left:auto;overflow:hidden;font-family:var(--mono);font-size:14.5px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.share-none{margin:0}.share-pop.tag-pop{max-height:272px;overflow-y:auto;overscroll-behavior:contain}.tag-field.full,.tag-field.full .share-input{cursor:default}.msg-edit{display:grid;gap:8px;margin-top:4px}.msg-edit .error-text{margin:0}.msg-edit .btn[aria-busy=true]{opacity:.7}.msg-deleted{margin:0;font-style:italic;color:var(--muted)}.chat-dialog.chat-confirm{width:auto;max-width:min(420px,calc(100vw - 32px));height:auto;max-height:none;margin:auto;border-radius:8px}.chat-confirm-body{margin:12px 0 16px}.chat-confirm .error-text{margin:0 0 16px}.chat-confirm-buttons .btn{min-height:44px}.btn.danger{border-color:var(--miss);background:var(--miss);color:var(--paper)}.btn.danger:hover:not(:disabled){filter:brightness(1.08);background:var(--miss)}.btn.danger[aria-busy=true]{opacity:.7}.msg-embeds{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:8px}.embed-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 12px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface, var(--panel));color:var(--ink);text-decoration:none}a.embed-card:hover{border-color:var(--accent)}.embed-card.unavailable{border-style:dashed}.embed-main{display:grid;flex:1 1 auto;min-width:0}.embed-type{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.embed-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}.embed-card.unavailable .embed-title{font-weight:400;color:var(--muted)}.embed-meta{overflow:hidden;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.embed-card .badge{flex:none;font-size:12px}.embed-skeleton{display:block;width:60%;height:16px;margin:4px 0}.embed-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--rule)}.embed-tab{min-height:44px;padding:0 12px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--muted);font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer}.embed-tab[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}.embed-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.embed-searching{margin:0 0 8px;font-family:var(--mono);font-size:12px;color:var(--muted)}.picker-rows li+li{margin-top:8px}.picker-row.embed-pick{display:grid;gap:4px;padding:0}.picker-row.embed-pick:hover:not([aria-disabled=true]){background:none}.picker-row.embed-pick:hover:not([aria-disabled=true]) .embed-card{border-color:var(--accent)}.picker-row.embed-pick[aria-disabled=true]{cursor:default;opacity:.7}.embed-staged{font-family:var(--mono);font-size:12px;color:var(--accent)}.staging{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:8px 8px 0;list-style:none}.composer.compact>.staging{padding:0}.staging-chip{position:relative;display:inline-flex;align-items:center;gap:8px;max-width:100%;height:32px;padding-left:8px;border-radius:6px;background:var(--chat-bg, var(--paper));font-size:16px}.composer.compact>.staging .staging-chip{background:var(--chat-surface, var(--panel))}.staging-type,.staging-size{flex:none;font-family:var(--mono);font-size:12px;color:var(--muted)}.staging-type{text-transform:uppercase;letter-spacing:.06em}.staging-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.staging-name.embed-name{max-width:240px}.staging-remove{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:none;color:var(--muted);cursor:pointer}.staging-remove:hover:not(:disabled){color:var(--ink);background:var(--accent-soft)}.staging-remove svg{width:16px;height:16px}:target,.hash-target{scroll-margin-top:12px;animation:target-fade 2s ease-out}@keyframes target-fade{0%{background-color:var(--accent-soft)}to{background-color:transparent}}@media(prefers-reduced-motion:reduce){:target,.hash-target{animation:none}.hash-target{background-color:var(--accent-soft)}}.msg-files{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:8px 0 0;padding:0;list-style:none}.msg-files>li{min-width:0}.msg-file{display:flex;align-items:center;gap:8px;width:100%;max-width:min(480px,100%);min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--rule);border-radius:6px;background:var(--chat-surface, var(--panel));color:var(--ink);font:inherit;text-align:left;cursor:pointer}.msg-file:hover{border-color:var(--accent)}.msg-file[aria-busy=true]{opacity:.7;cursor:progress}.msg-file svg{flex:none;width:20px;height:20px;color:var(--muted)}.msg-file-name{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.msg-file-size{flex:none;white-space:nowrap;font-family:var(--mono);font-size:12px;color:var(--muted)}.staging-name.file-name{max-width:200px}.staging-failed{flex:none;font-size:12px;font-family:var(--mono);color:var(--miss)}.staging-chip .linkish{flex:none;font-size:12px}.staging-progress{position:absolute;left:0;bottom:0;height:2px;border-radius:0 0 0 6px;background:var(--accent);transition:width .2s linear}@media(prefers-reduced-motion:reduce){.staging-progress{transition:none}}.composer-add{position:relative;flex:none}.composer-plus{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--rule);border-radius:50%;background:var(--chat-surface, var(--panel));color:var(--ink);cursor:pointer}.composer-plus[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.composer-plus:disabled{opacity:.4;cursor:default}.composer-plus svg{width:22px;height:22px}.composer-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:5;display:grid;min-width:280px;max-width:calc(100vw - 32px);padding:4px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:0 4px 16px #0000001f}.composer-menu-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border:0;border-radius:6px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.composer-menu-item:hover:not(:disabled),.composer-menu-item:focus-visible{background:var(--accent-soft)}.composer-menu-item:disabled{opacity:.5;cursor:default}.composer-menu-item svg{flex:none;width:20px;height:20px}@page{margin:16mm 14mm}@page app{size:auto;margin:16mm 14mm}@media print{:root:not(.deck-public):not(.deck-speaker){color-scheme:light;--paper: #fff;--panel: #fff;--ink: #000;--muted: #444;--rule: #bbb;--accent: #1f4a3b;--accent-soft: #fff;--on-accent: #fff;--miss: #7a3218;--miss-soft: #fff;--warn: #5c3d00;--warn-rule: #bbb}.shell{display:block;min-height:0;page:app}.main,.main.wide{padding:0!important;width:auto}.pulpit.czat{height:auto}.shell .sidebar,.shell .topbar,.shell .tabbar,.theme-toggle,.shell .toast,.shell .update-bar,.shell .btn,.shell .icon-btn,.pulpit-tabs,.pulpit>.chat{display:none!important}.shell a.btn[href^=http]{display:inline!important;min-height:0;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-decoration:underline}.shell a.btn[href^=http]:after{content:" (" attr(href) ")"}.shell a{color:var(--ink);text-decoration:underline}.prose a[href^=http]:after{content:" (" attr(href) ")";color:var(--muted);font-size:.85em;overflow-wrap:anywhere}.shell *{box-shadow:none!important;text-shadow:none!important}.shell .card:not(.prose),.shell .rows>li,.prose pre,.prose blockquote,.prose figure,.prose img{break-inside:avoid}.table-scroll{overflow:visible}.prose thead{display:table-header-group}.prose tr{break-inside:avoid}.prose img{max-height:200mm;width:auto;break-inside:avoid}.shell h1,.shell h2,.shell h3{break-after:avoid}.prose p,.prose li{orphans:3;widows:3}.prose.card{padding:0;border:0;background:none}}.material-actions{align-items:center;margin:0 0 .8em}.author-actions{margin-left:auto}.confirm-dialog code{font-family:var(--mono);font-size:14.5px}@media(max-width:479.98px){.confirm-dialog .chat-confirm-buttons{flex-direction:column}.confirm-dialog .chat-confirm-buttons .btn{width:100%;justify-content:center}}.edit-details{margin-bottom:0}.edit-details>summary{min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;cursor:pointer;font-family:var(--display);font-weight:600;font-size:17px;margin-bottom:8px}.edit-details-values{font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--muted)}.edit-course{min-height:44px;display:flex;align-items:center;color:var(--ink)}.edit-tags-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.edit-tags-head .label{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.edit-tags .chips{align-items:center}.edit-block{margin-top:24px}.edit-tabs{margin-bottom:8px}.edit-toolbar-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.edit-preview-toggle{margin-left:auto}.md-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:0}.md-tool{width:40px;height:40px;border-radius:6px;color:var(--ink)}.md-tool svg{width:20px;height:20px}.md-tool:focus-visible{outline:2px solid var(--accent);outline-offset:0}.md-toolbar-sep{display:none}@media(min-width:480px){.md-toolbar-sep{display:block;width:1px;height:24px;margin:0 4px;background:var(--rule)}}.edit-panes{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.edit-panes.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.edit-pane{background:var(--panel);border:1px solid var(--rule);border-radius:4px;min-width:0}.edit-editor .md-editor,.edit-editor .cm-editor{min-height:320px}.edit-pane-skeleton{height:320px}.edit-preview{padding:16px}.edit-preview-caption{display:block;margin-bottom:8px;font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.edit-status-strip{margin:0;padding:8px 16px;font-size:14.5px;line-height:1.5;color:var(--muted)}.edit-save-error{margin-top:16px}.edit-actions{position:sticky;bottom:0;z-index:5;min-height:56px;display:flex;align-items:center;margin-top:16px;padding:8px 0;background:var(--paper);border-top:1px solid var(--rule)}.edit-actions .btn-row{align-items:center}@media(min-width:900px){.edit-pane{height:max(480px,calc(100dvh - 176px));overflow:auto}.edit-editor{overflow:hidden}.edit-editor .md-editor,.edit-editor .cm-editor,.edit-pane-skeleton{height:100%}}@media(max-width:899.98px){.edit-actions{bottom:calc(var(--tabbar-h) + var(--safe-bottom))}}@media print{.no-print{display:none!important}.material-card>.card.link{padding-right:18px}}.notice.conflict{margin-bottom:16px;background:var(--panel);border:1px solid var(--rule);border-left:3px solid var(--warn);color:var(--ink)}.notice.conflict:focus{outline:none}.notice.conflict:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.conflict-title{margin:0;font-family:var(--display);font-size:17px;font-weight:600;line-height:1.55;color:var(--warn)}.conflict-line{margin:2px 0 0;font-size:14.5px;line-height:1.5;color:var(--muted)}.notice.conflict .btn-row,.notice.conflict .error-text{margin-top:8px}.md-editor{position:relative}.md-editor-host{height:100%}.md-editor.dragging{outline:2px dashed var(--accent);outline-offset:-2px}.md-drop-overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;background:var(--accent-soft);color:var(--ink);font-size:17px;pointer-events:none}.edit-status-strip{position:relative}.edit-upload-bar{position:absolute;left:0;top:0;height:2px;background:var(--accent);transition:width .2s linear}@media(prefers-reduced-motion:reduce){.edit-upload-bar{transition:none}}.edit-upload-errors{margin-top:8px}.edit-upload-error{margin:0 0 4px}.notice.draft-offer{margin-bottom:16px;color:var(--ink)}.draft-offer-title{margin:0;font-family:var(--display);font-size:17px;font-weight:600;line-height:1.55}.notice.draft-offer .btn-row{margin-top:8px}@media(min-width:900px){.chat-dialog.diff-dialog{width:min(1100px,calc(100vw - 32px));height:85vh;max-height:none}}.diff-scroll{flex:1 1 auto;min-height:0;overflow:auto}.diff-fields{width:100%;margin-bottom:16px;border-collapse:collapse;font-size:14.5px;line-height:1.5}.diff-fields th,.diff-fields td{padding:6px 8px;border:1px solid var(--rule);text-align:left;vertical-align:top;color:var(--ink);overflow-wrap:anywhere}.diff-fields th{font-family:var(--display);font-weight:600}.diff-fields thead th{background:var(--paper)}.diff-body{border:1px solid var(--rule);border-radius:4px}.diff-head{display:flex;flex-wrap:wrap;gap:4px 16px;padding:6px 8px;border-bottom:1px solid var(--rule);background:var(--paper);font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.diff-body.split .diff-head,.diff-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.diff-row>.diff-line+.diff-line{border-left:1px solid var(--rule)}.diff-line{display:flex;gap:4px;min-height:21.75px;padding:0 8px;font-family:var(--mono);font-size:14.5px;line-height:1.5;color:var(--ink)}.diff-line.server{background:var(--miss-soft)}.diff-line.mine{background:var(--accent-soft)}.diff-line.empty{background:var(--paper)}.diff-no{flex:0 0 auto;min-width:4ch;padding-top:.2em;font-size:12px;line-height:1.4;text-align:right;color:var(--muted)}.diff-glyph{flex:0 0 1ch}.diff-line.server .diff-glyph{color:var(--miss)}.diff-line.mine .diff-glyph{color:var(--accent)}.diff-text{flex:1 1 auto;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.diff-gap{display:block;width:100%;padding:4px 8px;border-block:1px dashed var(--rule);font-size:14.5px;text-align:left}.diff-foot{position:sticky;bottom:0;margin-top:16px;padding-top:12px;border-top:1px solid var(--rule);background:var(--panel)} diff --git a/public/assets/markdown-B8hp6mJg.js b/public/assets/markdown-CvqroLZD.js similarity index 99% rename from public/assets/markdown-B8hp6mJg.js rename to public/assets/markdown-CvqroLZD.js index ebbc865..70c5908 100644 --- a/public/assets/markdown-B8hp6mJg.js +++ b/public/assets/markdown-CvqroLZD.js @@ -1,4 +1,4 @@ -var uo=Object.defineProperty;var ao=(e,t,n)=>t in e?uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Y=(e,t,n)=>ao(e,typeof t!="symbol"?t+"":t,n);import{U as lo,Z as co,x as ir,r as At}from"./index-CZVUqkdk.js";import{s as fo}from"./safeText-O-oWGdGq.js";function Ca(e){const t=At(""),n=At(!1),r=At(0),i=At(""),o=ir(()=>e.suggest(t.value)),s=ir(()=>n.value&&o.value.length?u(r.value):void 0);lo(o,()=>{r.value>=o.value.length&&(r.value=0)});function u(R){return`${e.listId}-opt-${R}`}function l(R){i.value="",co(()=>{i.value=R})}function c(){n.value=t.value.trim()!=="",r.value=0}function d(R){const D=o.value.length;if(!n.value){n.value=!0,r.value=R===1||!D?0:D-1;return}D&&(r.value=(r.value+R+D)%D)}function p(R){if(R.key==="Enter"){R.preventDefault();const D=o.value[r.value];!R.isComposing&&n.value&&D!==void 0&&e.onPick(D);return}switch(R.key){case"ArrowDown":R.preventDefault(),d(1);break;case"ArrowUp":R.preventDefault(),d(-1);break;case"Escape":n.value?(R.preventDefault(),n.value=!1):t.value&&(R.preventDefault(),t.value="");break;case"Backspace":t.value===""&&e.onBackspace();break;case"Tab":n.value=!1;break}}function k(){n.value=!0,r.value=0}function m(){n.value=!1}function h(R){R!==r.value&&(r.value=R)}function T(){t.value="",n.value=!1,r.value=0}return{query:t,open:n,active:r,announcement:i,suggestions:o,activeId:s,optionId:u,announce:l,onInput:c,onKeydown:p,move:d,show:k,close:m,hover:h,reset:T}}const or={};function ho(e){let t=or[e];if(t)return t;t=or[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&d<=57343?i+="���":i+=String.fromCharCode(d),o+=6;continue}}if((u&248)===240&&o+91114111?i+="����":(p-=65536,i+=String.fromCharCode(55296+(p>>10),56320+(p&1023))),o+=9;continue}}i+="�"}return i})}qe.defaultChars=";/?:@&=+$,#";qe.componentChars="";const sr={};function po(e){let t=sr[e];if(t)return t;t=sr[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=po(t);let i="";for(let o=0,s=e.length;o=55296&&u<=57343){if(u>=55296&&u<=56319&&o+1=56320&&l<=57343){i+=encodeURIComponent(e[o]+e[o+1]),o++;continue}}i+="%EF%BF%BD";continue}i+=encodeURIComponent(e[o])}return i}Re.defaultChars=";/?:@&=+$,-_.!~*'()#";Re.componentChars="-_.!~*'()";function bn(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Ct(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const mo=/^([a-z0-9.+-]+:)/i,_o=/:[0-9]*$/,go=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,bo=["<",">",'"',"`"," ","\r",` +var uo=Object.defineProperty;var ao=(e,t,n)=>t in e?uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Y=(e,t,n)=>ao(e,typeof t!="symbol"?t+"":t,n);import{U as lo,Z as co,x as ir,r as At}from"./index-DyD9x5ZD.js";import{s as fo}from"./safeText-O-oWGdGq.js";function Ca(e){const t=At(""),n=At(!1),r=At(0),i=At(""),o=ir(()=>e.suggest(t.value)),s=ir(()=>n.value&&o.value.length?u(r.value):void 0);lo(o,()=>{r.value>=o.value.length&&(r.value=0)});function u(R){return`${e.listId}-opt-${R}`}function l(R){i.value="",co(()=>{i.value=R})}function c(){n.value=t.value.trim()!=="",r.value=0}function d(R){const D=o.value.length;if(!n.value){n.value=!0,r.value=R===1||!D?0:D-1;return}D&&(r.value=(r.value+R+D)%D)}function p(R){if(R.key==="Enter"){R.preventDefault();const D=o.value[r.value];!R.isComposing&&n.value&&D!==void 0&&e.onPick(D);return}switch(R.key){case"ArrowDown":R.preventDefault(),d(1);break;case"ArrowUp":R.preventDefault(),d(-1);break;case"Escape":n.value?(R.preventDefault(),n.value=!1):t.value&&(R.preventDefault(),t.value="");break;case"Backspace":t.value===""&&e.onBackspace();break;case"Tab":n.value=!1;break}}function k(){n.value=!0,r.value=0}function m(){n.value=!1}function h(R){R!==r.value&&(r.value=R)}function T(){t.value="",n.value=!1,r.value=0}return{query:t,open:n,active:r,announcement:i,suggestions:o,activeId:s,optionId:u,announce:l,onInput:c,onKeydown:p,move:d,show:k,close:m,hover:h,reset:T}}const or={};function ho(e){let t=or[e];if(t)return t;t=or[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&d<=57343?i+="���":i+=String.fromCharCode(d),o+=6;continue}}if((u&248)===240&&o+91114111?i+="����":(p-=65536,i+=String.fromCharCode(55296+(p>>10),56320+(p&1023))),o+=9;continue}}i+="�"}return i})}qe.defaultChars=";/?:@&=+$,#";qe.componentChars="";const sr={};function po(e){let t=sr[e];if(t)return t;t=sr[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=po(t);let i="";for(let o=0,s=e.length;o=55296&&u<=57343){if(u>=55296&&u<=56319&&o+1=56320&&l<=57343){i+=encodeURIComponent(e[o]+e[o+1]),o++;continue}}i+="%EF%BF%BD";continue}i+=encodeURIComponent(e[o])}return i}Re.defaultChars=";/?:@&=+$,-_.!~*'()#";Re.componentChars="-_.!~*'()";function bn(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Ct(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const mo=/^([a-z0-9.+-]+:)/i,_o=/:[0-9]*$/,go=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,bo=["<",">",'"',"`"," ","\r",` `," "],ko=["{","}","|","\\","^","`"].concat(bo),Ro=["'"].concat(ko),ur=["%","/","?",";","#"].concat(Ro),ar=["/","?","#"],Ao=255,lr=/^[+a-z0-9A-Z_-]{0,63}$/,Do=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,cr={javascript:!0,"javascript:":!0},fr={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function kn(e,t){if(e&&e instanceof Ct)return e;const n=new Ct;return n.parse(e,t),n}Ct.prototype.parse=function(e,t){let n,r,i,o=e;if(o=o.trim(),!t&&e.split("#").length===1){const c=go.exec(o);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let s=mo.exec(o);if(s&&(s=s[0],n=s.toLowerCase(),this.protocol=s,o=o.substr(s.length)),(t||s||o.match(/^\/\/[^@\/]+@[^@\/]+/))&&(i=o.substr(0,2)==="//",i&&!(s&&cr[s])&&(o=o.substr(2),this.slashes=!0)),!cr[s]&&(i||s&&!fr[s])){let c=-1;for(let h=0;h127?w+="x":w+=D[v];if(!w.match(lr)){const v=h.slice(0,T),A=h.slice(T+1),x=D.match(Do);x&&(v.push(x[1]),A.unshift(x[2])),A.length&&(o=A.join(".")+o),this.hostname=v.join(".");break}}}}this.hostname.length>Ao&&(this.hostname=""),m&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const u=o.indexOf("#");u!==-1&&(this.hash=o.substr(u),o=o.slice(0,u));const l=o.indexOf("?");return l!==-1&&(this.search=o.substr(l),o=o.slice(0,l)),o&&(this.pathname=o),fr[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Ct.prototype.parseHost=function(e){let t=_o.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const vo=Object.freeze(Object.defineProperty({__proto__:null,decode:qe,encode:Re,format:bn,parse:kn},Symbol.toStringTag,{value:"Module"})),qr=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Hr=/[\0-\x1F\x7F-\x9F]/,xo=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,xn=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,Zr=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA]/,Yr=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,Eo=Object.freeze(Object.defineProperty({__proto__:null,Any:qr,Cc:Hr,Cf:xo,P:xn,S:Zr,Z:Yr},Symbol.toStringTag,{value:"Module"})),Co=[8364,0,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,0,381,0,0,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,0,382,376];function wo(e){return e===0||e>=55296&&e<=57343||e>1114111}function yo(e){return wo(e)?65533:e>=128&&e<=159&&Co[e-128]||e}function To(e){return e-1>>>0<127||e-160>>>0<55136?String.fromCharCode(e):String.fromCodePoint(yo(e))}const le=(()=>{const e=new Uint8Array(127);let t=0;for(let n=33;n<=126;n++)n!==34&&n!==36&&n!==92&&(e[n]=t++);return e})();function Fo(e,t,n,r,i,o){const u=e.length,l=o*90;let c=0;const d=()=>{const O=le[e.charCodeAt(c++)];return O=o&&(O=O*91-l+le[e.charCodeAt(c++)]);const j=m[O];if(j<0){let I=h[O];const N=I+T[O];for(;I%#%&}*%}(%}9%}/%})%}*%}*%}?&}&%}3%}&*#%})%#%#)}#&#-#+*%E%%'%'#%}#*V##&##I}#&&##%&%#&&Qf%%))w/0+&%#(#.%-''''++++7}>%4'',##1,#%#&%##&#'##&#*#9)%&%}#*}%,#+P(%A&%#'&##wSD',9E00#y#@}(+}&%&>~!#~!X}#*}(&&}(&}(,%}%&#+&}#&}I%#%}%)#(},'%#*}4%%#%}(''}#/##(##),%-##%%)#&}(.}&%#&}%%}*&#%},&&}&%}#%*'#%})%}D&}&%}-&}6&#&}-,%}#%})-(~+`~,=?~I9'9%~!,#%})%})%}@%}?%}(~!?~#<~#pP~#BG~#=1#%K+~#?#~%;)~#A~#mF1~#A'~'X%'~#lR~#N~'N~#r~#m#-~#i'?%#'%~#B%##%,%#~#_%#0%~#]732~,w~2+#:&#%&'0%&>%}#>##F+)#%&&#(+_}4&}-%}(&}@&}O7Fdf0@+/v4}&WU##&/0#&'('B#%}.%}'+#%}#%%&#&%#%##+#&#)#6#'#.},%}c%},%#%##%&#&%#&~#>'*-.%##%##%}#%%}%'~#)D1}#%*&~#_%%'(~#S2%'.}#~#=##*'*-%}&'%'##&&~'E%.#&~#M4}%%##&'%#~#O1##%&#'+~#~#UA%-%##&~!C%~!-.9:~!1~!-^2/:a~!y,D*J#-5)/4~%23,~#G~!L1~!0X3`~!2+~!!0-~&E~!W~!o,>Y&]~%cZx_&~#O*9#A#'#+I'%#)~!0B*-5A+-((F&*M#)(-7-5+'-3a5Vi~!Y~!?+[)%3),ERHm~!+:D,VG.+)?fB%%*(%)'(#&80%1'8`K8?`+'Z#&O&'H5#*9)A%%5&3))0%39+.*7#()&&*=4@**L)<'_&*+..;(#*+)./&0#3)%')-8(4ixD(&.}%,('aI:,)%,k2231T)I'#/-W7,/'Q#.'Y24+h')37w+vu9i[~>g5uI~=RvdwEg;v/g;uk!!TTSx]@RT!U!#!@VBRUU!'UTe-d0c`e&gSdicedFcrdTaqb.kYcAohdYd@a3e+d}dMdtd.aJ#bqcK`dle/e.e'dwdPdodddjbEb}ogd^ofdpduc6j?l%d{drdqc)d7bacOdQ%T#Y)X.sR[yH>6Vyv3[xwLu>vo'!*.[yBacahoj>6Rew3[xqdZa#!a&#^(X-[yG>6Vyu3[xvg3sEr|g.u/Ri9db0T#^(Xa)!-[y;>6Vylg4wKs{JwNZt3@3r=c4Z([xlg;wKt!cpq's@v7A'*a(a+!-a#[y<3Dt?3Dt'>6Vym3[xmg9rxsNJwLZt4~?r?db1T#`-!(Xa,!0[yS>6Vz%NuQs.g4wKtnJwNZtS@3r>c4Z([y%g;wKtrdga8!a(!#&T*Y-Xa#!a06Vz43[y3JwNZtf@3s!Ju}!%Dti:pm3c_%X#tjB5pkd6q!r]u?voC'*-a.a2!0a&a+[yI3DtI3Ds~3DtH>6Vyw3[xx;:s#~<5pKJwNZtE@3r~d`a)!a2T#a.(!+U.X1[yT3Dt`3Dtv>6Vz&3[y&g9rxwzcxstPu.6Vz23[y1g3sEr}wkg{NuQRg{ci(U#5@b`~,cg#U(2WnH5wugcRh7dX#T(Y,a'Ta!!a,[yZ<]mj>6Vz,3[y+Pv#5ReZKu+=,%!H}7ABwkaS?Rh:BcW(X#<]mrj:ubv/ARekdg%!(!a.*Ta(Y.X1!#sP>Rl*Dt6[y>>6Vyo3Wf*jOvuumvuRgRJuq*!:96Re}3[xy~<5s%JwJZt1~Gs)c;&!#2sJkNuXvzq7rxu,Re8dka4!a8(aEZ+a@Y.X1Xa)[yd=Bs(3DtP>6Vz53[y4cX#X&Re:avRe9~<5s&JwJZtQ~Gs*i^rzvdRg+Jv{%!2sbB@bX}kdga,!Za?&^*T1/!a'Dt+[y6>6Vyf3Wf%g/u;s4hGu6?Rh-JvZ,!c%#&RoX54Rivj7uyvf8RgTKvZB%*!2sGh[y93Wf)coZ(T,6VyifluvRgC@95@B@bX~/hFu34cC#T,k/unq8w8Q5RkUklwQuzunq8w8Q5Rk8d/rJu?v8w9)-&!a0a;a&aIWejg3sEr/h1s23E~5c:Z&bX};kKv?w&unuVu5Rjc;>bs)#~@:Rh.=ay6Vyt3[xuNuPRi&NuPwpi#RoWh?vf8Ri%Jv]!%Ri:KvxD!.'2WeAjZu`q9rxu,Re7woeAg-unLq(qA_/*2Wg_g3u5q^9:4E}/jTrxrzv=Wkkd~0UX#^^Xa-a1a5T&a=U1a'*aEa]!a*aPaA-adok[y54Rn>;:p3~Dp5g9rpsFNvZqjg3uJp4~<5p0Pw;5qlJwNZt*@3p1Pw:5p/Ou!5p2JvG'!6Vye=Rl!9ARiq5E}Qg=ucRkBE|oJrJ_@Wk~@Wk{JrJ_@Wk|@WkyJrJ_@Wk}@WkzJvO_[y2g-vMRmiKuYC!)&>Ri;>Ri<@3RkNc](X#@9Rk=g5vuRmhKvDB!+'=]meg3u4Rmgd)#Y'Vz3CARmfd`a+!%T'!+#Ta1Ta6TaM-sTDt9[yA9sYd'%Y#s[[xpj:ueunaXRgEjRq,v-vuqdd2'`#6Rev<32@5>:2vyRgNj8w)v86Vyj3[xkg6ruwjcqsrPw;5r*Ku]D'Zt-@3r(~?r.i[vwv]dU1a--U#`a4(g/vsRhPOu!5RhLj:rmu9Wo!~@:wdh@g/vsRiTjXuvvNr}:RhBj^v(pyw8unRn]dz1UYa'a+^Y(!aETZalaRY.Ta?a4[yDJw1!#qLsW>6Vyrfzq-pLflpwRe|Js>%!Dt@3Dt&Jvy_[xs~HrnjMuwpsw'RecKu+D#'!t<~Grl~?rjg5u-x,gwp{ah!-(~@:Rg~Ou!5Rh'jXuvvNr}:Rh#cW#X/c;&!#2sLi[v7u7RgpJv)(!iLrxu,Re6j7v@s@5Se[e7d`aW!Za(a`T.a#!a3!&aDa-!9)Dt_=6s+3[x~~DR|h~DS6avhGun5RkZj3w)v-]mkKunB!&*]kb97R|icQ#%T'p-Rf8Rf=ct#%'(*!,p,Rf4p+Rf6Rf:Rf3Ds}KvGB)_6Vyk2sM=6Vyp;:pE~DrY~<5pBJwNZt8@3pCh=rt3rWPw:5pAJup_[xoNuPpF9c!#'45pD5ARn)d8#X'X*3@rU72s]h>v<RoUWeL>:Cbb|?JwPZtVg6ruRmzJvD'!6Vz(g/vmRh~Jvy_[y(g9voRgyx*cy(#2>Ri2B9b]~9kIw9u7rluJu3Rg]dI#a%UY'@=p%CAx.gQZ&RhwwygtRm{x5g_Z'+ABqR9Woa=Bp&dV#^*Xa'!&@o{g4v]Rk;Jv{!%Rk[wkkiA5RkiwwfUB=x,fUuqC&*!>RfTg8v0RfV~ARfSd;rJsAuAv9wR'ae+/aO!a@aza/a#[yQ@Wg!2Wemg3sEr0JvB_g>uvReWg2v+Re=KupB_+[y!2AbY~-~Hr2AJwD!(h<~El>h<~El?Kun@+_:9b`}Kg-v/Ri3g;vtwyk_9]k_d=&T#*U.6qh@Ab`|K9:H|CJv[!&3Dtex'fDwC%!Rf[9WlMd[(^X,!a%Z06Vz!@WgBg=v~Rgvg,QRe@awd,#Y+jTv|Q~EfWj]uNr|~FRfXdy#Y&^Ua%!aO.!(a)Ua;=!a@aKap!a-,a!Ta]a[rSa]p?[y82sK=Bq~;:p:~<5p8Pw:5p7d'#Y'Wf(;RnRi[u4w&RgJJvG'!6Vyh=)!&6Ri154s,KuGB_%@r68r:dJ|t`#X(9b6a3b%!/aKa/)!arwve^VyJ;:pR~DpTg3uJpS~<5pOPw;5qmPw:5pNOu!5pQJvG'!6Vyx=wkh'?Rh,x8gyt`w5D!&),(SgyccRgztJ@3pPB5p#d'(Y#<]mmifubw&RgoJvE&!82s^JvF&!8Rf,ADb]~;x=h'rNu]vK!,%'*0RnORh)4Rh*AqQg-vaRnNg;wHwkh'ba~4cE#Ta*x3gctyw@'!+%RnFRnD<4Rn@hFvK5RnCxWg[#`&a0Ua()`1Rm75Rg[c]%X#qi8Rg^NvdRj>BwzgZauwji7Rm6A4wgg]d1#&(*,.0a#Rm;RmRm?Rm@RmARmBe%#^^^Xaea?aC/b+(,!a+a#!a/!>a&Ta6Vy~g6urRf.x,hPrNav!%'RnqRo%Ro#Nu;q[Pw;5r+JwNZtM@3r)d'#Y'Weh;xChL#`&RnmRnoKu}>%(!Rne~Bs-;2wjcussJv+'!aYSO}6@B<5?ba~8LrNvj!.%*ROwungw~ng~:9;Ri^>wtnig;wHRnixDh@|(UZ.x1h@|)!#:2@=be}]?cl{{U#:5Abb}Jds#^YaF!a*b4a#a3aPa>&Tb!bH!*a_!Eau?/a&RjY<]gj>6Vz*;:pe~DrZg,QRj1JwNZtX@wihspcJvZ&!VyX9WmOJu|!|N2WmHJvh&!]ht~Bpbcn&T(!#RmQRmKCARhnKup=!)&Wf+:RhqNuPpf9c!#'45pd5AwghpARn(Ls@w!%,)!RmP@Wfe.a6!a:aO`aJDtL[y`@Wg#>6Vz12@wzoYRoZNuPRi!NuPRhzg=ucRi,@=b`{Yg=ucRi-ACJvB!&Sh[ebSh]ebi`wUuFRm4Jw2_[y0JvB!.>bU{0j9udv:Bb_{TJv`!&g/r|snj6v(us5d,#Y(56H}[978H}]Jw5!&g1rushJvB!+j;v{u5?zDhd}6}bj;v{u5?zDhe}6}ce*#`(^^^a[aea!=!a6a*aoXb1a.!aAbL!b>,b'aL!aV@Wf|2Wlg3[y/JwNZt^@3piPw:5pgJunZou3@rsJva&!Vy_gg5u-rqJvy'!@9RkQcH(T#=>Ri~@Ri}@2@@=aybb}XjWv0Q~EfEj3vLv;5@d##Y+jTv|vV~EfFj]uNpn~FRfGdgaK!Z2&!a8a-Tb({E!acTbM*!a(DtY[yYd'%Y#sl[y*hHvh>Re5x2c{Z}.j4uCvcawRiMd+#X+_x&d!},<5RkX;2Hzw@x,gavfB-!{CcF&T#Roe;RodwWbBg5urRgaKvHC*_6Vz+<4opieuew&Rmq@d]&Y)X,T#X0Rh}Ro5CE{A9b]{@;5x#eO{:g;urRi+KrNA!%(Ro3>Ro79;Ri_Ku@>{;&!x%gX|{KunA_+g5QRj/g3u5Rj#g>uERj%wio/xRhS&!,!#^1U}wba{8>>@=be}qC@:D5ba{7Ku+A&!}x?ba}t>>@=be}se(aA^^^Uat!b0#{pa+awUazbGa#aLb9bgaWac'a5TbS=Br!d1#`%scp_Jvl!#rT>Re0JvX&!VyN=H{Fcm#U&:pY=ReaJv2&!]h0=]nUJvG'!6Vy|=!|l=w^e1bp#&Re2Re3BDx7gH#T|f5H|eKuZ>!%(:qNAH{]Jv6!+3B2B9=b^{X<5x]z/@awRoTd+#Y(az]hFhCrm4d,#Y+jTv|Q~EfMj]uNr|~FRfOdCa!Xa9_X#@>@=be{#KuY>!+&4Ezyi[ugv&RjIdea+T)#UXa&T-T&a!Rh9auRmW=]kLg5vuRn+g3u4Rn-Ow6ARn,hHus5xNk?#UX(U~)/g8v0RkD~AwkkF?Ri.OuNBwkkA?Ri/d|a2`a*^UYa.!aBTZaTa'Xa;!(!2!-a#b2[yC>6Vyq3[xr2Wi?g1rusVh%s?DtF~<5rbJs;%!DtBfswKtCj[uvuSsEu3RgVx3o:u+wN'*Zt;@3rd~Grh~?rfg8w)Lq)qE&-a%!>bI|`jWv0vV~EfCjTv|vV~Ef@j]uNpn~FRfBcK#T']gWNu7x,k7q4ai(0!hHv8waiL2b`{QJv*_Ouv2qgjZa&!*UaA=2Wls3cH#T(@Ri|b~'#23s9h<~El.d'#Y&Dtxi^rzvdRl#d*#U%(o|B2s`hJwSaxRmDKv4B&!1:Rmdd5#`'Vx}to~Hq{x'f1v3(!BA5ba|bJv_&!Wfug1v]ReIdO+U/Y#&G}-8wze=Rh{g1v]ReHg/uQRf/by#)ibQwERl/cH#T(@Ri{cNu+vlax-!(#a0qa9aY?C9:9au@9Cb]}9cl#U*5;5KqRlR=c>Z,k#u3vWs@u2]krvgwyk^9]k^Jv3_@WfbAARkhJw2_[x|JvB_wkoIRoKwkoJRoLd'(Y#<]gm=<9Awwn;;Rn=c:Z'ARn<=Rn8Jw0!&>Rn:>Rn6cY#a7+!a&=978H{Dd_#{2^Y%_+qbbb{6g3sERhsbU{?dfa.,`a(XaRn7Jw0!&>Rn5>Rn9Lunw?&a2!,5ReGJwPZtK<7Rh+h<~El,Pv#5ReR@awwxjCg,ulRjDJv6&!]j!z?aQeeg>w=Shx'h-u(!%Ro.w~h.zPdNZ(X,Ya![x{;9ReY;wkgxRiF:x?ap#Y&RmUgA9:=b^}zKuh=a''!3awRk3c*'!#aHRk6c+Z&Rk5Rk4Jv)&!awRjSawd9*`#0?C2@EzMj8uuq@_+=ayb^|W~ARkEOuN]k@7dhzV^X/X&a-#zRzSb`zXcJzTT#2WkVKvDBzW!%FzY9;5bbzWjQrquJu3Jw3%!b`zU=ayb^zQd:#X(T-a!6Vyywxh}=b]{Jg=u1RiAdGp~qHtzv!w(wA+a+a;!,')~<5qeGzq9F{W=c##%s5au:5aU3CBE|;d4#X(D!a&6Vygx(b;#(=]ed?C2F{NaU@@=I|1OuNBc1Z+jTqIsBv=Wlc~Cw`fl2WlZ~AcTa%!Z+jTqIsBv=Wlb~Cw`fh2WlYk+uNqJsBv=WlSg,u3dca3#UXaMYa)TaB-=cM|7T#cB{/T#=ayaL.bo6!a#CbTa'T#Re{2Wlh2@G{yg6t~Ro_NvdRfticuRQRllJv3&!x&c|zs@Jw3!%RflwpfkRlpKuL;%(!Re<@G|C2GzdhIvuBwgjAg-u0RjAKQB%!(GzZ@G|5NuuRl7d='T+Y#Vy[gJvA!)@wma=]m1ifuaw&RmnLs@vT'!|/+[y,g:v>ReTJw1!#qX=x!eC{bLu+wT&)ZtZauq_~Graci&U#F|89:r_Lupvq!.)&2RlG8RfaC=x!eF{_h?rpWlmd&'!#X|&]k::xJey#`'T|+RlyARl9b[z[>RfZ:RlL:RfRwlg/ARl;9;RlxKv,A/!%7s69<74=BA5ba{-8Bde#`aRfk=ayb^}4~Ad1#`*@@=aybb{w2@>==KqRlT=c>Z,k#u3vWs@u2]kqReD2@G{42@G{5~DpM~<5rc=Bx6i>{RT#RnI@zCx]y]z:2Jv[!zr5Awyk]9]k]dD(Y+X#6Vz.g=wKtgwhaCwgmTWj2Lu,w%_+/[y-B;b^xeg3u3Rj-2@bX{*KrJRkdJwMZtc3Dtd@BcG#T'9bWxg2@2Fznd*#Y+;2x'c}wRn%:A5B;bZ~%KvhCa!a2!x>k7#Uxb@b{#xaRk7Jw0!)>wwhlShl}6>wwhmShm}6CJvB!.x'hhvj{!!5Bwkhhbaz}x'hivjz~!5Bwkhibaz|xEhTrNu,v-vpD!a%&/)a3a.,%Ro2t[CE{)@3re9b]{%wjo09:rgc:Z&Ro6=Ro89;Ri`dSaL'UYzxZb)7Rka3xRhT&!,!#^1U}vbaz{>>@=be}yC@:D5bazzKu+A&!}{?ba}y>>@=be}wxBh[t`u~vJvr!%a!a()a,a0a4RoC=]o;Ju(!%RoGRhdwjh`=]oAg>w#Ro?g5vuRo=NvdRl|Ku]C.!&;RoEJvB!%RoORoMBx'h[v+_?w~h`}~5?w~hd~!xKh]oiptu-utv.vp!#%&a30a@a'a+(a/aOp(o~p!RoDJu(!%RoHRhewjha=]oBNvdRl}g>w#Ro@g5vuRo>c[#X']ox7gL#TzuwjirRipcon;>z=h-MSh.Mwqczx'a7vj&!>Re4@=ResJt__NuPRi*NuPRi)j]uNr|~FRfzKrJ>_+@Wfy@Wf]2WocKrJRn1~?rOc:Z&Rn2=w=Rh=g3w*wwgGRgGcW(X#;Sg}M2Gzk@Jv`!&awRl=wsfGIz`dKZ*T'Y-:RhR7RhQg5u-p`j6v(us5d,#Y+~Awkia?RicOuNBwkibba}Ld6p~tyu_vbAa'a+!a/'a3aEa8a!>Sh,ebJv{!&Sh@ebSaReb9;SgwebNuPRi(NvdRl)NuPRi'hHu^(!a.3wkhZba~(x,h^u(A!&(SoCMRhb5Bz=h[eb?w~hb~6x,h_u(A!&(SoDMRhc5Bz=h]eb?w~hc~6e)aA1T#T,^^^c-bMb&blcPaP(a/!0!bA=b5c@a(!bfbrc#2afwmhARnjwchORnp2Wlf3DtsNvdRl-2@wpa<]m0bx(#:awRk2@Jw3!%RfhwpfgRlnKQB%!(G{V@G|'NuuRl6d='T+Y#VyUgw*wgj@g-u0Rj@Lu+wT&)ZtUauq]~GrGci&U#F|39:rELrNvj!.%*RhCwunfw~nf~:9;Ri]>wtnhg;wHRnhx3hDs@v~!/+'@Wfr@9RkSNu&Rlo=@<5GzoKs0@_+@Wl+@awRkmJuh!-3d(}pY#qWJvj!%Rm(:Jw3!%Rm,Rm*de&!1U-U#`)Re;@G|.@9Ri82@wjfvRlq=@<5GzpLvOvr!).&2RlF8Rf`C=x!eE{.Jw3_g2QRlkhLrpWlPde(!#U{s,UXa*Ta'[y'g:v>ReS;x0PZ&RnlRnn~HrKJw1}f!=x!eB|2w]aP(#Xa&a*Ta.Ua2a7=]iOd'#Y&Ro&WnWg;u.RiDg6vjRiBNvdRlzhNvj]nYJuW_2Wm3x)kFze{9d])!a.!,Y01!#&aC!a3RndC=ox~BrC@2b^{pg,rlse7x'ksuq!%Rm.E{xidw(wBRmGx9o+)X#wwo-So-}69:Rl4@xSf@a#XZ'X)X,Ta(/ARl8b[xc>RfY:RlI:RfQwlg.ARl:9;Rlwdn'#^XafaQa1X1TaHTa)@b[{zcZ#X'7RkwWg@Ou4ARn&x)kG#{,g7u/RkGdH'U#Y*Vz'Wm&CARm|bx#(A]gUbUzJj9Q~=d,#Y(56H}l978H{U7d,0#U*2>ABb_xZ978BbU{e~AJQ{g!978BbU{hxMh?ad{oUYZ.x1h?{l!#:2>@=be}F?JvS!&BG{d7BG}(Bde#`a1X,Ya@!a'P~=wxf@2bZ}I56B2@@=aybb}08@55B9;5bb}Rfg=ayb^}&OuNBKuLA!)a!P~=x#fD{f2@>==23ExY5@Dah89b^~689Jv)!~2b[~1Lv'w(%*!a#bX|aPrmawRe]keu7uhv-q6rxu,q`xTo]/a5aU!bNaDXbi!b-!ao!bRhG<7@C5vIbs)#?C2F|9jPv0w.vISh-MKvUaz(.!9ABbb|[5;5unwfh;9:4E|YjQsBt|vjx'hYq3!(?C2F|J:2kJv~vYrquJu3x4ib#T)2@SmZM?C2F|Bj:rmu9@xPhI(a*a#U#`a3-5Abb|L~@:RhK9:4E|0@52B5G|#C::aY?C2F|-:2!a)-g>>Xr;return t===Rn?Gr:t}function Oo(e){return e-oe.ZERO>>>0<=9}function Lo(e){return(e|wt)-oe.LOWER_A>>>0<=5}function zo(e){return(e|wt)-oe.LOWER_A>>>0<=25}var hr;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(hr||(hr={}));var pr;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(pr||(pr={}));function Mo(e,t,n,r){const i=(t&X.BRANCH_LENGTH)>>7,o=t&X.JUMP_TABLE;if(o){if(i===0)return r===o?n:-1;const l=r-o;if(l>>>0>=i)return-1;const c=e[n+l];return c===0?-1:n+i+c-1&65535}if(i===0)return-1;const s=i+1>>1,u=n+s+i;for(let l=0;l>1)]>>((l&1)<<3)&255;if(d===r){const p=n+s+l;return u+e[p]&65535}if(d>r)return-1}return-1}function dr(e,t,n){return n===1?String.fromCharCode(e[t]&X.VALUE_MASK):n===2?String.fromCharCode(e[t+1]):String.fromCharCode(e[t+1],e[t+2])}function No(e,t,n){let r=t+1,i=0,o=r;if(r>>0>9)break;i=i*10+u,r+=1}if(r===o)return 0;r1114111&&(i=1114112);let s=r-t;return s>=Rn&&(Gr=s,s=Rn),s<>7;do{const p=i+1,k=e.charCodeAt(p);let m,h;if(k===oe.NUM){const T=No(e,p,o);m=Bo(T),m>0&&e.charCodeAt(p+m-1)!==oe.SEMI&&(m=0),h=m===0?"":To(T&Io)}else if(zo(k)){m=0,h="";const T=k-c;let R;if(T>>>0>7;if(O===0){if(e.charCodeAt(A)!==z)break e;R+=1}else{const j=e.charCodeAt(A)-z;if(j>>>0>=O)break e;const I=r[R+1+j];if(I===0)break e;R=R+O+I&65535}if(v=r[R],A+=1,A>=o)break e}if((v&(X.VALUE_LENGTH|X.FLAG13))===X.FLAG13){const z=(v&X.BRANCH_LENGTH)>>7;if(e.charCodeAt(A)!==(v&X.JUMP_TABLE))break;A+=1;const O=z-1;let j=R+1,I=0;for(;I+1>8&255)))break e;A+=1,j+=1}if(I>1),v=r[R];continue}const x=v>>>14,C=e.charCodeAt(A);if(x!==0){if(C===oe.SEMI){m=A-p+1,h=x===1?String.fromCharCode(v&X.VALUE_MASK):dr(r,R,x);break}if(x===1)break}const S=Mo(r,v,R+(x||1),C);if(S<0)break;R=S,v=r[R],A+=1}h===""&&m>0&&(h=dr(r,D,w))}else m=0,h="";m===0||n?i=p:(s=0);return u+e.slice(s)}function Kr(e){return Po(e,!0,!1)}var jo=class{constructor(e={}){Y(this,"src_Any",qr.source);Y(this,"src_Cc",Hr.source);Y(this,"src_Z",Yr.source);Y(this,"src_P",xn.source);Y(this,"src_ZPCc",[this.src_Z,this.src_P,this.src_Cc].join("|"));Y(this,"src_ZCc",[this.src_Z,this.src_Cc].join("|"));Y(this,"cache",{});Y(this,"opts",{maxLength:1e4,urlAuth:!1,schema_names:[]});this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,t,n=4){const r=this.escapeRE(e),i=this.escapeRE(t),o=`(?:(?!${this.src_ZCc}|${r}|${i}).)`;let s=`${r}${o}{0,1000}${i}`;for(let u=2;u<=n;u++)s=`${r}(?:${o}|${s}){0,1000}${i}`;return s}get_text_separators(){var e;return(e=this.cache).text_separators??(e.text_separators=/[><\uff5c]/)}get_pseudo_letter(){var e;return(e=this.cache).src_pseudo_letter??(e.src_pseudo_letter=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`))}get_ipv4_addr(){var e;return(e=this.cache).src_ip4??(e.src_ip4=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])"))}get_ipv6_addr(){var n;const e="[0-9A-Fa-f]{1,4}",t=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return(n=this.cache).src_ip6_addr??(n.src_ip6_addr=new RegExp(`(?:(?:${e}:){6}${t}|::(?:${e}:){5}${t}|(?:${e})?::(?:${e}:){4}${t}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${t}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${t}|(?:(?:${e}:){0,3}${e})?::${e}:${t}|(?:(?:${e}:){0,4}${e})?::${t}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`))}get_ipv6_url_host(){var e;return(e=this.cache).src_ip6_host??(e.src_ip6_host=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`))}get_ipv6_mail_host(){var e;return(e=this.cache).src_ipv6_mail_host??(e.src_ipv6_mail_host=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`))}get_auth(){var e;return(e=this.cache).src_auth??(e.src_auth=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`))}get_port(){var e;return(e=this.cache).src_port??(e.src_port=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?"))}get_host_terminator(){var e;return(e=this.cache).src_host_terminator??(e.src_host_terminator=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`))}get_path_terminator(){var e;return(e=this.cache).src_path_terminator??(e.src_path_terminator=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`))}get_path(){var e;return(e=this.cache).src_path??(e.src_path=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`))}get_mail_name(){var e;return(e=this.cache).src_mail_name??(e.src_mail_name=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}"))}get_xn(){var e;return(e=this.cache).src_xn??(e.src_xn=new RegExp("xn--[a-z0-9\\-]{1,59}"))}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){var e;return(e=this.cache).src_domain_root??(e.src_domain_root=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`))}get_domain(){var e;return(e=this.cache).src_domain??(e.src_domain=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`))}get_url_host_port(){var e;return(e=this.cache).url_host_port??(e.url_host_port=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source))}get_fuzzy_url_host_port(){var e;return(e=this.cache).fuzzy_url_host_port??(e.fuzzy_url_host_port=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source))}get_mail_host(){var e;return(e=this.cache).src_mail_host??(e.src_mail_host=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source))}get_fuzzy_mail_host(){var e;return(e=this.cache).src_fuzzy_mail_host??(e.src_fuzzy_mail_host=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source))}get_path_extra(){var e;return(e=this.cache).src_path_extra??(e.src_path_extra=new RegExp(""))}get_fuzzy_mail_host_search(){var e;return(e=this.cache).mail_fuzzy_host_search??(e.mail_fuzzy_host_search=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig"))}get_fuzzy_link_search(){var e;return(e=this.cache).link_fuzzy_search??(e.link_fuzzy_search=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig"))}get_http_validator(){var e;return(e=this.cache).http_validator??(e.http_validator=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy"))}get_relative_proto_validator(){var e;return(e=this.cache).relative_proto_validator??(e.relative_proto_validator=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy"))}get_mail_name_validator(){var e;return(e=this.cache).mail_name_validator??(e.mail_name_validator=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`))}get_mailto_validator(){var e;return(e=this.cache).mailto_validator??(e.mailto_validator=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy"))}get_schema_names(){var e;return(e=this.cache).schema_names??(e.schema_names=new RegExp((this.opts.schema_names||[]).map(t=>this.escapeRE(t)).join("|")))}get_schema_search(){var e;return(e=this.cache).schema_search??(e.schema_search=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig"))}get_schema_at_start(){var e;return(e=this.cache).schema_at_start??(e.schema_at_start=new RegExp(`^${this.get_schema_search().source}`,"i"))}},Qt={validate:(e,t,n)=>{const r=n.re.get_http_validator();r.lastIndex=t;const i=r.exec(e);return i?i[0].length:0},normalize:(e,t)=>t.normalize(e)},Uo={"http:":Qt,"https:":Qt,"ftp:":Qt,"//":{validate:function(e,t,n){const r=n.re.get_relative_proto_validator();r.lastIndex=t;const i=r.exec(e);return i?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:i[0].length:0},normalize:(e,t)=>t.normalize(e)},"mailto:":{validate:function(e,t,n){const r=n.re.get_mailto_validator();r.lastIndex=t;const i=r.exec(e);return i?i[0].length:0},normalize:(e,t)=>t.normalize(e)}},Jo="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",Wo="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function $o(){const e=Wo.split("|");return Jo.split("|").forEach(t=>{const n=t.indexOf(":"),r=t.slice(0,n);for(const i of t.slice(n+1))e.push(r+i)}),e}var qo={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:$o(),urlAuth:!1,maxLength:1e4},mr=class{constructor(e,t,n,r){Y(this,"schema");Y(this,"index");Y(this,"lastIndex");Y(this,"raw");Y(this,"text");Y(this,"url");const i=e.slice(n,r);this.schema=t.toLowerCase(),this.index=n,this.lastIndex=r,this.raw=i,this.text=i,this.url=i}},Ho=class{constructor(e={}){Y(this,"__opts__");Y(this,"__schemas__");Y(this,"re");const{rebuilder:t,...n}=e;this.__opts__={...qo,...n},this.__schemas__={...Uo},this.re=t||new jo,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,t=null){if(!t)delete this.__schemas__[e];else{const n={normalize:(r,i)=>i.normalize(r),...t};this.__schemas__[e]=n}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let t,n;for(n=this.re.get_schema_search(),n.lastIndex=0;(t=n.exec(e))!==null;)if(this.testSchemaAt(e,t[2],n.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(n=this.re.get_fuzzy_link_search(),n.lastIndex=0,n.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const r=this.re.get_fuzzy_mail_host_search(),i=this.re.get_mail_name_validator();for(r.lastIndex=0;(t=r.exec(e))!==null;){const o=e.slice(Math.max(0,t.index-65),t.index);if(i.test(o))return!0}}return!1}testSchemaAt(e,t,n){return this.__schemas__[t.toLowerCase()]?this.__schemas__[t.toLowerCase()].validate(e.slice(0,n+this.__opts__.maxLength),n,this):0}match(e){const t=[],n=this.re.get_schema_search();let r,i,o,s,u,l,c=!1,d=!1,p=!1,k=0;if(!e.length)return null;for(n.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(r=this.re.get_fuzzy_link_search(),r.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(i=this.re.get_fuzzy_mail_host_search(),i.lastIndex=0,o=this.re.get_mail_name_validator());;){const m=Math.max(k-1,0);if(i&&o&&!p&&(!u||u.index=k)break;i.lastIndex=k)break;r.lastIndexh.lastIndex))&&(h=s);let T;if(!c)for(;;){if(!l){n.lastIndexh.index)break;const w=l;l=void 0;const v=this.testSchemaAt(e,w.schema,w.lastIndex);if(v){T={schema:w.schema,index:w.index,lastIndex:w.lastIndex+v};break}}let R=T;if((!R||u&&(u.indexR.lastIndex))&&(R=u),(!R||s&&(s.indexR.lastIndex))&&(R=s),!R)break;R===u?u=void 0:R===s&&(s=void 0);const D=new mr(e,R.schema,R.index,R.lastIndex);D.schema?this.__schemas__[D.schema].normalize(D,this):this.normalize(D),t.push(D),k=R.lastIndex}return t.length?t:null}matchAtStart(e){if(!e.length)return null;const t=this.re.get_schema_at_start().exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);if(!n)return null;const r=new mr(e,t[2],t.index+t[1].length,t.index+t[0].length+n);return this.__schemas__[r.schema].normalize(r,this),r}tlds(e,t=!1){return e=Array.isArray(e)?e:[e],t?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}};const We=2147483647,pe=36,En=1,nt=26,Zo=38,Yo=700,Vr=72,Qr=128,ei="-",Xo=/^xn--/,Go=/[^\0-\x7F]/,Ko=/[\x2E\u3002\uFF0E\uFF61]/g,Vo={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},en=pe-En,de=Math.floor,tn=String.fromCharCode;function Ee(e){throw new RangeError(Vo[e])}function Qo(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}function ti(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(Ko,".");const i=e.split("."),o=Qo(i,t).join(".");return r+o}function ni(e){const t=[];let n=0;const r=e.length;for(;n=55296&&i<=56319&&nString.fromCodePoint(...e),ts=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:pe},_r=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},ri=function(e,t,n){let r=0;for(e=n?de(e/Yo):e>>1,e+=de(e/t);e>en*nt>>1;r+=pe)e=de(e/en);return de(r+(en+1)*e/(e+Zo))},ii=function(e){const t=[],n=e.length;let r=0,i=Qr,o=Vr,s=e.lastIndexOf(ei);s<0&&(s=0);for(let u=0;u=128&&Ee("not-basic"),t.push(e.charCodeAt(u));for(let u=s>0?s+1:0;u=n&&Ee("invalid-input");const k=ts(e.charCodeAt(u++));k>=pe&&Ee("invalid-input"),k>de((We-r)/d)&&Ee("overflow"),r+=k*d;const m=p<=o?En:p>=o+nt?nt:p-o;if(kde(We/h)&&Ee("overflow"),d*=h}const c=t.length+1;o=ri(r-l,c,l==0),de(r/c)>We-i&&Ee("overflow"),i+=de(r/c),r%=c,t.splice(r++,0,i)}return String.fromCodePoint(...t)},oi=function(e){const t=[];e=ni(e);const n=e.length;let r=Qr,i=0,o=Vr;for(const l of e)l<128&&t.push(tn(l));const s=t.length;let u=s;for(s&&t.push(ei);u=r&&dde((We-i)/c)&&Ee("overflow"),i+=(l-r)*c,r=l;for(const d of e)if(dWe&&Ee("overflow"),d===r){let p=i;for(let k=pe;;k+=pe){const m=k<=o?En:k>=o+nt?nt:k-o;if(p{let n={};for(var r in e)br(n,r,{get:e[r],enumerable:!0});return br(n,Symbol.toStringTag,{value:"Module"}),n},is=si({arrayReplaceAt:()=>os,asciiTrim:()=>Tt,callable:()=>ui,escapeHtml:()=>Ce,escapeRE:()=>ms,fromCodePoint:()=>rt,isMdAsciiPunct:()=>st,isPunctChar:()=>li,isPunctCharCode:()=>ot,isSpace:()=>M,isValidEntityCode:()=>Cn,isWhiteSpace:()=>it,lib:()=>_s,normalizeReference:()=>yt,unescapeAll:()=>He,unescapeMd:()=>ls});function ui(e){const t=function(...n){return Reflect.construct(e,n,new.target&&new.target!==t?new.target:e)};return Object.defineProperty(t,"name",{value:e.name}),Object.setPrototypeOf(t,e),t.prototype=e.prototype,t}function os(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function Cn(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function rt(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var ai=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,ss=new RegExp(`${ai.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),us=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function as(e,t){if(t.charCodeAt(0)===35&&us.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Cn(r)?rt(r):e}const n=Kr(e);return n!==e?n:e}function ls(e){return e.indexOf("\\")<0?e:e.replace(ai,"$1")}function He(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(ss,function(t,n,r){return n||as(t,r)})}var cs=/[&<>"]/,fs=/[&<>"]/g,hs={"&":"&","<":"<",">":">",'"':"""};function ps(e){return hs[e]}function Ce(e){return cs.test(e)?e.replace(fs,ps):e}var ds=/[.?*+^$[\]\\(){}|-]/g;function ms(e){return e.replace(ds,"\\$&")}function M(e){switch(e){case 9:case 32:return!0}return!1}function it(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function li(e){return xn.test(e)||Zr.test(e)}function ot(e){return li(rt(e))}function st(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function yt(e){return e=e.trim().replace(/\s+/g," "),e.toLowerCase().toUpperCase()}function kr(e){return e===32||e===9||e===10||e===13}function Tt(e){let t=0;for(;t=t&&kr(e.charCodeAt(n));n--);return e.slice(t,n+1)}var _s={mdurl:vo,ucmicro:Eo};function gs(e,t,n){let r,i,o,s;const u=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos32))return o;if(r===41){if(s===0)break;s--}i++}return t===i||s!==0||(o.str=He(e.slice(t,i)),o.pos=i,o.ok=!0),o}function ks(e,t,n,r){let i,o=t;const s={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)s.str=r.str,s.marker=r.marker;else{if(o>=n)return s;let u=e.charCodeAt(o);if(u!==34&&u!==39&&u!==40)return s;t++,o++,u===40&&(u=41),s.marker=u}for(;obs,parseLinkLabel:()=>gs,parseLinkTitle:()=>ks});function ut(e){"@babel/helpers - typeof";return ut=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ut(e)}function As(e,t){if(ut(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ut(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ds(e){var t=As(e,"string");return ut(t)=="symbol"?t:t+""}function E(e,t,n){return(t=Ds(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Be=class{constructor(e,t,n){E(this,"map",null),E(this,"level",0),E(this,"children",null),E(this,"content",""),E(this,"markup",""),E(this,"info",""),E(this,"block",!1),E(this,"hidden",!1),this.type=e,this.tag=t,this.attrs=null,this.nesting=n,this.meta=null}attrIndex(e){if(!this.attrs)return-1;const t=this.attrs;for(let n=0,r=t.length;n=0&&(n=this.attrs[t][1]),n}attrJoin(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=`${this.attrs[n][1]} ${t}`}},at=class{constructor(){E(this,"__rules__",[]),E(this,"__cache__",null)}__find__(e){for(let t=0;t{t.enabled&&t.alt.forEach(n=>{n&&e.add(n)})}),this.__cache__=Object.create(null),this.__cache__[""]=[],this.__rules__.forEach(t=>{t.enabled&&this.__cache__[""].push(t.fn)}),e.forEach(t=>{this.__cache__[t]=[],this.__rules__.forEach(n=>{n.enabled&&n.alt.indexOf(t)>=0&&this.__cache__[t].push(n.fn)})})}at(e,t,n={}){const r=this.__find__(e);if(r===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__[r].fn=t,this.__rules__[r].alt=n.alt||[],this.__cache__=null}before(e,t,n,r={}){const i=this.__find__(e);if(i===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__.splice(i,0,{name:t,enabled:!0,fn:n,alt:r.alt||[]}),this.__cache__=null}after(e,t,n,r={}){const i=this.__find__(e);if(i===-1)throw new Error(`Parser rule not found: ${e}`);this.__rules__.splice(i+1,0,{name:t,enabled:!0,fn:n,alt:r.alt||[]}),this.__cache__=null}push(e,t,n={}){this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null}enable(e,t=!1){Array.isArray(e)||(e=[e]);const n=[];return e.forEach(r=>{const i=this.__find__(r);if(i<0){if(t)return;throw new Error(`Rules manager: invalid rule name ${r}`)}this.__rules__[i].enabled=!0,n.push(r)}),this.__cache__=null,n}enableOnly(e,t=!1){Array.isArray(e)||(e=[e]),this.__rules__.forEach(n=>{n.enabled=!1}),this.enable(e,t)}disable(e,t=!1){Array.isArray(e)||(e=[e]);const n=[];return e.forEach(r=>{const i=this.__find__(r);if(i<0){if(t)return;throw new Error(`Rules manager: invalid rule name ${r}`)}this.__rules__[i].enabled=!1,n.push(r)}),this.__cache__=null,n}getRules(e){return this.__cache__||this.__compile__(),this.__cache__[e]||[]}},me={};me.code_inline=function(e,t,n,r,i){const o=e[t];return`${Ce(o.content)}`};me.code_block=function(e,t,n,r,i){const o=e[t];return`${Ce(e[t].content)} `};me.fence=function(e,t,n,r,i){const o=e[t],s=o.info?He(o.info).trim():"";let u="",l="";if(s){const d=s.split(/(\s+)/g);u=d[0],l=d.slice(2).join("")}let c;if(n.highlight?c=n.highlight(o.content,u,l)||Ce(o.content):c=Ce(o.content),c.indexOf("${c} diff --git a/public/assets/materialListCache-DQPoPhVA.js b/public/assets/materialListCache-Do2aYQaO.js similarity index 95% rename from public/assets/materialListCache-DQPoPhVA.js rename to public/assets/materialListCache-Do2aYQaO.js index 46ed5f6..998d520 100644 --- a/public/assets/materialListCache-DQPoPhVA.js +++ b/public/assets/materialListCache-Do2aYQaO.js @@ -1 +1 @@ -import{T as o}from"./index-CZVUqkdk.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-DyD9x5ZD.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}; diff --git a/public/assets/pptx-C8HPYutj.js b/public/assets/pptx-DVS-5qtM.js similarity index 99% rename from public/assets/pptx-C8HPYutj.js rename to public/assets/pptx-DVS-5qtM.js index 9ea2695..b7bec6e 100644 --- a/public/assets/pptx-C8HPYutj.js +++ b/public/assets/pptx-DVS-5qtM.js @@ -1,4 +1,4 @@ -import{aR as lt}from"./index-CZVUqkdk.js";var rt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ea(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function nt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ut={exports:{}};var Mt;function ta(){return Mt||(Mt=1,(function(e,o){(function(t){e.exports=t()})(function(){return(function t(i,r,s){function l(a,n){if(!r[a]){if(!i[a]){var u=typeof nt=="function"&&nt;if(!n&&u)return u(a,!0);if(c)return c(a,!0);var g=new Error("Cannot find module '"+a+"'");throw g.code="MODULE_NOT_FOUND",g}var d=r[a]={exports:{}};i[a][0].call(d.exports,function(m){var h=i[a][1][m];return l(h||m)},d,d.exports,t,i,r,s)}return r[a].exports}for(var c=typeof nt=="function"&&nt,A=0;A>2,d=(3&a)<<4|n>>4,m=1>6:64,h=2>4,n=(15&g)<<4|(d=c.indexOf(A.charAt(h++)))>>2,u=(3&d)<<6|(m=c.indexOf(A.charAt(h++))),b[y++]=a,d!==64&&(b[y++]=n),m!==64&&(b[y++]=u);return b}},{"./support":30,"./utils":32}],2:[function(t,i,r){var s=t("./external"),l=t("./stream/DataWorker"),c=t("./stream/Crc32Probe"),A=t("./stream/DataLengthProbe");function a(n,u,g,d,m){this.compressedSize=n,this.uncompressedSize=u,this.crc32=g,this.compression=d,this.compressedContent=m}a.prototype={getContentWorker:function(){var n=new l(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new A("data_length")),u=this;return n.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),n},getCompressedWorker:function(){return new l(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(n,u,g){return n.pipe(new c).pipe(new A("uncompressedSize")).pipe(u.compressWorker(g)).pipe(new A("compressedSize")).withStreamInfo("compression",u)},i.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,i,r){var s=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,i,r){var s=t("./utils"),l=(function(){for(var c,A=[],a=0;a<256;a++){c=a;for(var n=0;n<8;n++)c=1&c?3988292384^c>>>1:c>>>1;A[a]=c}return A})();i.exports=function(c,A){return c!==void 0&&c.length?s.getTypeOf(c)!=="string"?(function(a,n,u,g){var d=l,m=g+u;a^=-1;for(var h=g;h>>8^d[255&(a^n[h])];return-1^a})(0|A,c,c.length,0):(function(a,n,u,g){var d=l,m=g+u;a^=-1;for(var h=g;h>>8^d[255&(a^n.charCodeAt(h))];return-1^a})(0|A,c,c.length,0):0}},{"./utils":32}],5:[function(t,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,i,r){var s=null;s=typeof Promise<"u"?Promise:t("lie"),i.exports={Promise:s}},{lie:37}],7:[function(t,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",l=t("pako"),c=t("./utils"),A=t("./stream/GenericWorker"),a=s?"uint8array":"array";function n(u,g){A.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=g,this.meta={}}r.magic="\b\0",c.inherits(n,A),n.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(c.transformTo(a,u.data),!1)},n.prototype.flush=function(){A.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},n.prototype.cleanUp=function(){A.prototype.cleanUp.call(this),this._pako=null},n.prototype._createPako=function(){this._pako=new l[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(g){u.push({data:g,meta:u.meta})}},r.compressWorker=function(u){return new n("Deflate",u)},r.uncompressWorker=function(){return new n("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,i,r){function s(d,m){var h,y="";for(h=0;h>>=8;return y}function l(d,m,h,y,v,b){var C,D,B=d.file,M=d.compression,_=b!==a.utf8encode,X=c.transformTo("string",b(B.name)),P=c.transformTo("string",a.utf8encode(B.name)),E=B.comment,J=c.transformTo("string",b(E)),L=c.transformTo("string",a.utf8encode(E)),S=P.length!==B.name.length,p=L.length!==E.length,T="",Z="",U="",ae=B.dir,Q=B.date,$={crc32:0,compressedSize:0,uncompressedSize:0};m&&!h||($.crc32=d.crc32,$.compressedSize=d.compressedSize,$.uncompressedSize=d.uncompressedSize);var F=0;m&&(F|=8),_||!S&&!p||(F|=2048);var R=0,K=0;ae&&(R|=16),v==="UNIX"?(K=798,R|=(function(q,Ae){var ye=q;return q||(ye=Ae?16893:33204),(65535&ye)<<16})(B.unixPermissions,ae)):(K=20,R|=(function(q){return 63&(q||0)})(B.dosPermissions)),C=Q.getUTCHours(),C<<=6,C|=Q.getUTCMinutes(),C<<=5,C|=Q.getUTCSeconds()/2,D=Q.getUTCFullYear()-1980,D<<=4,D|=Q.getUTCMonth()+1,D<<=5,D|=Q.getUTCDate(),S&&(Z=s(1,1)+s(n(X),4)+P,T+="up"+s(Z.length,2)+Z),p&&(U=s(1,1)+s(n(J),4)+L,T+="uc"+s(U.length,2)+U);var H="";return H+=` +import{aR as lt}from"./index-DyD9x5ZD.js";var rt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ea(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function nt(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var ut={exports:{}};var Mt;function ta(){return Mt||(Mt=1,(function(e,o){(function(t){e.exports=t()})(function(){return(function t(i,r,s){function l(a,n){if(!r[a]){if(!i[a]){var u=typeof nt=="function"&&nt;if(!n&&u)return u(a,!0);if(c)return c(a,!0);var g=new Error("Cannot find module '"+a+"'");throw g.code="MODULE_NOT_FOUND",g}var d=r[a]={exports:{}};i[a][0].call(d.exports,function(m){var h=i[a][1][m];return l(h||m)},d,d.exports,t,i,r,s)}return r[a].exports}for(var c=typeof nt=="function"&&nt,A=0;A>2,d=(3&a)<<4|n>>4,m=1>6:64,h=2>4,n=(15&g)<<4|(d=c.indexOf(A.charAt(h++)))>>2,u=(3&d)<<6|(m=c.indexOf(A.charAt(h++))),b[y++]=a,d!==64&&(b[y++]=n),m!==64&&(b[y++]=u);return b}},{"./support":30,"./utils":32}],2:[function(t,i,r){var s=t("./external"),l=t("./stream/DataWorker"),c=t("./stream/Crc32Probe"),A=t("./stream/DataLengthProbe");function a(n,u,g,d,m){this.compressedSize=n,this.uncompressedSize=u,this.crc32=g,this.compression=d,this.compressedContent=m}a.prototype={getContentWorker:function(){var n=new l(s.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new A("data_length")),u=this;return n.on("end",function(){if(this.streamInfo.data_length!==u.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),n},getCompressedWorker:function(){return new l(s.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(n,u,g){return n.pipe(new c).pipe(new A("uncompressedSize")).pipe(u.compressWorker(g)).pipe(new A("compressedSize")).withStreamInfo("compression",u)},i.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,i,r){var s=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new s("STORE compression")},uncompressWorker:function(){return new s("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,i,r){var s=t("./utils"),l=(function(){for(var c,A=[],a=0;a<256;a++){c=a;for(var n=0;n<8;n++)c=1&c?3988292384^c>>>1:c>>>1;A[a]=c}return A})();i.exports=function(c,A){return c!==void 0&&c.length?s.getTypeOf(c)!=="string"?(function(a,n,u,g){var d=l,m=g+u;a^=-1;for(var h=g;h>>8^d[255&(a^n[h])];return-1^a})(0|A,c,c.length,0):(function(a,n,u,g){var d=l,m=g+u;a^=-1;for(var h=g;h>>8^d[255&(a^n.charCodeAt(h))];return-1^a})(0|A,c,c.length,0):0}},{"./utils":32}],5:[function(t,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,i,r){var s=null;s=typeof Promise<"u"?Promise:t("lie"),i.exports={Promise:s}},{lie:37}],7:[function(t,i,r){var s=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",l=t("pako"),c=t("./utils"),A=t("./stream/GenericWorker"),a=s?"uint8array":"array";function n(u,g){A.call(this,"FlateWorker/"+u),this._pako=null,this._pakoAction=u,this._pakoOptions=g,this.meta={}}r.magic="\b\0",c.inherits(n,A),n.prototype.processChunk=function(u){this.meta=u.meta,this._pako===null&&this._createPako(),this._pako.push(c.transformTo(a,u.data),!1)},n.prototype.flush=function(){A.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},n.prototype.cleanUp=function(){A.prototype.cleanUp.call(this),this._pako=null},n.prototype._createPako=function(){this._pako=new l[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var u=this;this._pako.onData=function(g){u.push({data:g,meta:u.meta})}},r.compressWorker=function(u){return new n("Deflate",u)},r.uncompressWorker=function(){return new n("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,i,r){function s(d,m){var h,y="";for(h=0;h>>=8;return y}function l(d,m,h,y,v,b){var C,D,B=d.file,M=d.compression,_=b!==a.utf8encode,X=c.transformTo("string",b(B.name)),P=c.transformTo("string",a.utf8encode(B.name)),E=B.comment,J=c.transformTo("string",b(E)),L=c.transformTo("string",a.utf8encode(E)),S=P.length!==B.name.length,p=L.length!==E.length,T="",Z="",U="",ae=B.dir,Q=B.date,$={crc32:0,compressedSize:0,uncompressedSize:0};m&&!h||($.crc32=d.crc32,$.compressedSize=d.compressedSize,$.uncompressedSize=d.uncompressedSize);var F=0;m&&(F|=8),_||!S&&!p||(F|=2048);var R=0,K=0;ae&&(R|=16),v==="UNIX"?(K=798,R|=(function(q,Ae){var ye=q;return q||(ye=Ae?16893:33204),(65535&ye)<<16})(B.unixPermissions,ae)):(K=20,R|=(function(q){return 63&(q||0)})(B.dosPermissions)),C=Q.getUTCHours(),C<<=6,C|=Q.getUTCMinutes(),C<<=5,C|=Q.getUTCSeconds()/2,D=Q.getUTCFullYear()-1980,D<<=4,D|=Q.getUTCMonth()+1,D<<=5,D|=Q.getUTCDate(),S&&(Z=s(1,1)+s(n(X),4)+P,T+="up"+s(Z.length,2)+Z),p&&(U=s(1,1)+s(n(J),4)+L,T+="uc"+s(U.length,2)+U);var H="";return H+=` \0`,H+=s(F,2),H+=M.magic,H+=s(C,2),H+=s(D,2),H+=s($.crc32,4),H+=s($.compressedSize,4),H+=s($.uncompressedSize,4),H+=s(X.length,2),H+=s(T.length,2),{fileRecord:u.LOCAL_FILE_HEADER+H+X+T,dirRecord:u.CENTRAL_FILE_HEADER+s(K,2)+H+s(J.length,2)+"\0\0\0\0"+s(R,4)+s(y,4)+X+T+J}}var c=t("../utils"),A=t("../stream/GenericWorker"),a=t("../utf8"),n=t("../crc32"),u=t("../signature");function g(d,m,h,y){A.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=m,this.zipPlatform=h,this.encodeFileName=y,this.streamFiles=d,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}c.inherits(g,A),g.prototype.push=function(d){var m=d.meta.percent||0,h=this.entriesCount,y=this._sources.length;this.accumulate?this.contentBuffer.push(d):(this.bytesWritten+=d.data.length,A.prototype.push.call(this,{data:d.data,meta:{currentFile:this.currentFile,percent:h?(m+100*(h-y-1))/h:100}}))},g.prototype.openedSource=function(d){this.currentSourceOffset=this.bytesWritten,this.currentFile=d.file.name;var m=this.streamFiles&&!d.file.dir;if(m){var h=l(d,m,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:h.fileRecord,meta:{percent:0}})}else this.accumulate=!0},g.prototype.closedSource=function(d){this.accumulate=!1;var m=this.streamFiles&&!d.file.dir,h=l(d,m,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(h.dirRecord),m)this.push({data:(function(y){return u.DATA_DESCRIPTOR+s(y.crc32,4)+s(y.compressedSize,4)+s(y.uncompressedSize,4)})(d),meta:{percent:100}});else for(this.push({data:h.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},g.prototype.flush=function(){for(var d=this.bytesWritten,m=0;m=this.index;A--)a=(a<<8)+this.byteAt(A);return this.index+=c,a},readString:function(c){return s.transformTo("string",this.readData(c))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var c=this.readInt(4);return new Date(Date.UTC(1980+(c>>25&127),(c>>21&15)-1,c>>16&31,c>>11&31,c>>5&63,(31&c)<<1))}},i.exports=l},{"../utils":32}],19:[function(t,i,r){var s=t("./Uint8ArrayReader");function l(c){s.call(this,c)}t("../utils").inherits(l,s),l.prototype.readData=function(c){this.checkOffset(c);var A=this.data.slice(this.zero+this.index,this.zero+this.index+c);return this.index+=c,A},i.exports=l},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,i,r){var s=t("./DataReader");function l(c){s.call(this,c)}t("../utils").inherits(l,s),l.prototype.byteAt=function(c){return this.data.charCodeAt(this.zero+c)},l.prototype.lastIndexOfSignature=function(c){return this.data.lastIndexOf(c)-this.zero},l.prototype.readAndCheckSignature=function(c){return c===this.readData(4)},l.prototype.readData=function(c){this.checkOffset(c);var A=this.data.slice(this.zero+this.index,this.zero+this.index+c);return this.index+=c,A},i.exports=l},{"../utils":32,"./DataReader":18}],21:[function(t,i,r){var s=t("./ArrayReader");function l(c){s.call(this,c)}t("../utils").inherits(l,s),l.prototype.readData=function(c){if(this.checkOffset(c),c===0)return new Uint8Array(0);var A=this.data.subarray(this.zero+this.index,this.zero+this.index+c);return this.index+=c,A},i.exports=l},{"../utils":32,"./ArrayReader":17}],22:[function(t,i,r){var s=t("../utils"),l=t("../support"),c=t("./ArrayReader"),A=t("./StringReader"),a=t("./NodeBufferReader"),n=t("./Uint8ArrayReader");i.exports=function(u){var g=s.getTypeOf(u);return s.checkSupport(g),g!=="string"||l.uint8array?g==="nodebuffer"?new a(u):l.uint8array?new n(s.transformTo("uint8array",u)):new c(s.transformTo("array",u)):new A(u)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,i,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(t,i,r){var s=t("./GenericWorker"),l=t("../utils");function c(A){s.call(this,"ConvertWorker to "+A),this.destType=A}l.inherits(c,s),c.prototype.processChunk=function(A){this.push({data:l.transformTo(this.destType,A.data),meta:A.meta})},i.exports=c},{"../utils":32,"./GenericWorker":28}],25:[function(t,i,r){var s=t("./GenericWorker"),l=t("../crc32");function c(){s.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(c,s),c.prototype.processChunk=function(A){this.streamInfo.crc32=l(A.data,this.streamInfo.crc32||0),this.push(A)},i.exports=c},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,i,r){var s=t("../utils"),l=t("./GenericWorker");function c(A){l.call(this,"DataLengthProbe for "+A),this.propName=A,this.withStreamInfo(A,0)}s.inherits(c,l),c.prototype.processChunk=function(A){if(A){var a=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=a+A.data.length}l.prototype.processChunk.call(this,A)},i.exports=c},{"../utils":32,"./GenericWorker":28}],27:[function(t,i,r){var s=t("../utils"),l=t("./GenericWorker");function c(A){l.call(this,"DataWorker");var a=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,A.then(function(n){a.dataIsReady=!0,a.data=n,a.max=n&&n.length||0,a.type=s.getTypeOf(n),a.isPaused||a._tickAndRepeat()},function(n){a.error(n)})}s.inherits(c,l),c.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this.data=null},c.prototype.resume=function(){return!!l.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,s.delay(this._tickAndRepeat,[],this)),!0)},c.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(s.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},c.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var A=null,a=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":A=this.data.substring(this.index,a);break;case"uint8array":A=this.data.subarray(this.index,a);break;case"array":case"nodebuffer":A=this.data.slice(this.index,a)}return this.index=a,this.push({data:A,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=c},{"../utils":32,"./GenericWorker":28}],28:[function(t,i,r){function s(l){this.name=l||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}s.prototype={push:function(l){this.emit("data",l)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(l){this.emit("error",l)}return!0},error:function(l){return!this.isFinished&&(this.isPaused?this.generatedError=l:(this.isFinished=!0,this.emit("error",l),this.previous&&this.previous.error(l),this.cleanUp()),!0)},on:function(l,c){return this._listeners[l].push(c),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(l,c){if(this._listeners[l])for(var A=0;A "+l:l}},i.exports=s},{}],29:[function(t,i,r){var s=t("../utils"),l=t("./ConvertWorker"),c=t("./GenericWorker"),A=t("../base64"),a=t("../support"),n=t("../external"),u=null;if(a.nodestream)try{u=t("../nodejs/NodejsStreamOutputAdapter")}catch{}function g(m,h){return new n.Promise(function(y,v){var b=[],C=m._internalType,D=m._outputType,B=m._mimeType;m.on("data",function(M,_){b.push(M),h&&h(_)}).on("error",function(M){b=[],v(M)}).on("end",function(){try{var M=(function(_,X,P){switch(_){case"blob":return s.newBlob(s.transformTo("arraybuffer",X),P);case"base64":return A.encode(X);default:return s.transformTo(_,X)}})(D,(function(_,X){var P,E=0,J=null,L=0;for(P=0;P"u")r.blob=!1;else{var s=new ArrayBuffer(0);try{r.blob=new Blob([s],{type:"application/zip"}).size===0}catch{try{var l=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);l.append(s),r.blob=l.getBlob("application/zip").size===0}catch{r.blob=!1}}}try{r.nodestream=!!t("readable-stream").Readable}catch{r.nodestream=!1}},{"readable-stream":16}],31:[function(t,i,r){for(var s=t("./utils"),l=t("./support"),c=t("./nodejsUtils"),A=t("./stream/GenericWorker"),a=new Array(256),n=0;n<256;n++)a[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;a[254]=a[254]=1;function u(){A.call(this,"utf-8 decode"),this.leftOver=null}function g(){A.call(this,"utf-8 encode")}r.utf8encode=function(d){return l.nodebuffer?c.newBufferFrom(d,"utf-8"):(function(m){var h,y,v,b,C,D=m.length,B=0;for(b=0;b>>6:(y<65536?h[C++]=224|y>>>12:(h[C++]=240|y>>>18,h[C++]=128|y>>>12&63),h[C++]=128|y>>>6&63),h[C++]=128|63&y);return h})(d)},r.utf8decode=function(d){return l.nodebuffer?s.transformTo("nodebuffer",d).toString("utf-8"):(function(m){var h,y,v,b,C=m.length,D=new Array(2*C);for(h=y=0;h>10&1023,D[y++]=56320|1023&v)}return D.length!==y&&(D.subarray?D=D.subarray(0,y):D.length=y),s.applyFromCharCode(D)})(d=s.transformTo(l.uint8array?"uint8array":"array",d))},s.inherits(u,A),u.prototype.processChunk=function(d){var m=s.transformTo(l.uint8array?"uint8array":"array",d.data);if(this.leftOver&&this.leftOver.length){if(l.uint8array){var h=m;(m=new Uint8Array(h.length+this.leftOver.length)).set(this.leftOver,0),m.set(h,this.leftOver.length)}else m=this.leftOver.concat(m);this.leftOver=null}var y=(function(b,C){var D;for((C=C||b.length)>b.length&&(C=b.length),D=C-1;0<=D&&(192&b[D])==128;)D--;return D<0||D===0?C:D+a[b[D]]>C?D:C})(m),v=m;y!==m.length&&(l.uint8array?(v=m.subarray(0,y),this.leftOver=m.subarray(y,m.length)):(v=m.slice(0,y),this.leftOver=m.slice(y,m.length))),this.push({data:r.utf8decode(v),meta:d.meta})},u.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=u,s.inherits(g,A),g.prototype.processChunk=function(d){this.push({data:r.utf8encode(d.data),meta:d.meta})},r.Utf8EncodeWorker=g},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,i,r){var s=t("./support"),l=t("./base64"),c=t("./nodejsUtils"),A=t("./external");function a(h){return h}function n(h,y){for(var v=0;v>8;this.dir=!!(16&this.externalFileAttributes),d==0&&(this.dosPermissions=63&this.externalFileAttributes),d==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var d=s(this.extraFields[1].value);this.uncompressedSize===l.MAX_VALUE_32BITS&&(this.uncompressedSize=d.readInt(8)),this.compressedSize===l.MAX_VALUE_32BITS&&(this.compressedSize=d.readInt(8)),this.localHeaderOffset===l.MAX_VALUE_32BITS&&(this.localHeaderOffset=d.readInt(8)),this.diskNumberStart===l.MAX_VALUE_32BITS&&(this.diskNumberStart=d.readInt(4))}},readExtraFields:function(d){var m,h,y,v=d.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});d.index+4>>6:(d<65536?g[y++]=224|d>>>12:(g[y++]=240|d>>>18,g[y++]=128|d>>>12&63),g[y++]=128|d>>>6&63),g[y++]=128|63&d);return g},r.buf2binstring=function(u){return n(u,u.length)},r.binstring2buf=function(u){for(var g=new s.Buf8(u.length),d=0,m=g.length;d>10&1023,b[m++]=56320|1023&h)}return n(b,m)},r.utf8border=function(u,g){var d;for((g=g||u.length)>u.length&&(g=u.length),d=g-1;0<=d&&(192&u[d])==128;)d--;return d<0||d===0?g:d+A[u[d]]>g?d:g}},{"./common":41}],43:[function(t,i,r){i.exports=function(s,l,c,A){for(var a=65535&s|0,n=s>>>16&65535|0,u=0;c!==0;){for(c-=u=2e3>>1:l>>>1;c[A]=l}return c})();i.exports=function(l,c,A,a){var n=s,u=a+A;l^=-1;for(var g=a;g>>8^n[255&(l^c[g])];return-1^l}},{}],46:[function(t,i,r){var s,l=t("../utils/common"),c=t("./trees"),A=t("./adler32"),a=t("./crc32"),n=t("./messages"),u=0,g=4,d=0,m=-2,h=-1,y=4,v=2,b=8,C=9,D=286,B=30,M=19,_=2*D+1,X=15,P=3,E=258,J=E+P+1,L=42,S=113,p=1,T=2,Z=3,U=4;function ae(f,z){return f.msg=n[z],z}function Q(f){return(f<<1)-(4f.avail_out&&(I=f.avail_out),I!==0&&(l.arraySet(f.output,z.pending_buf,z.pending_out,I,f.next_out),f.next_out+=I,z.pending_out+=I,f.total_out+=I,f.avail_out-=I,z.pending-=I,z.pending===0&&(z.pending_out=0))}function R(f,z){c._tr_flush_block(f,0<=f.block_start?f.block_start:-1,f.strstart-f.block_start,z),f.block_start=f.strstart,F(f.strm)}function K(f,z){f.pending_buf[f.pending++]=z}function H(f,z){f.pending_buf[f.pending++]=z>>>8&255,f.pending_buf[f.pending++]=255&z}function q(f,z){var I,x,w=f.max_chain_length,k=f.strstart,G=f.prev_length,O=f.nice_match,N=f.strstart>f.w_size-J?f.strstart-(f.w_size-J):0,V=f.window,j=f.w_mask,Y=f.prev,ee=f.strstart+E,me=V[k+G-1],pe=V[k+G];f.prev_length>=f.good_match&&(w>>=2),O>f.lookahead&&(O=f.lookahead);do if(V[(I=z)+G]===pe&&V[I+G-1]===me&&V[I]===V[k]&&V[++I]===V[k+1]){k+=2,I++;do;while(V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&V[++k]===V[++I]&&kN&&--w!=0);return G<=f.lookahead?G:f.lookahead}function Ae(f){var z,I,x,w,k,G,O,N,V,j,Y=f.w_size;do{if(w=f.window_size-f.lookahead-f.strstart,f.strstart>=Y+(Y-J)){for(l.arraySet(f.window,f.window,Y,Y,0),f.match_start-=Y,f.strstart-=Y,f.block_start-=Y,z=I=f.hash_size;x=f.head[--z],f.head[z]=Y<=x?x-Y:0,--I;);for(z=I=Y;x=f.prev[--z],f.prev[z]=Y<=x?x-Y:0,--I;);w+=Y}if(f.strm.avail_in===0)break;if(G=f.strm,O=f.window,N=f.strstart+f.lookahead,V=w,j=void 0,j=G.avail_in,V=P)for(k=f.strstart-f.insert,f.ins_h=f.window[k],f.ins_h=(f.ins_h<=P&&(f.ins_h=(f.ins_h<=P)if(x=c._tr_tally(f,f.strstart-f.match_start,f.match_length-P),f.lookahead-=f.match_length,f.match_length<=f.max_lazy_match&&f.lookahead>=P){for(f.match_length--;f.strstart++,f.ins_h=(f.ins_h<=P&&(f.ins_h=(f.ins_h<=P&&f.match_length<=f.prev_length){for(w=f.strstart+f.lookahead-P,x=c._tr_tally(f,f.strstart-1-f.prev_match,f.prev_length-P),f.lookahead-=f.prev_length-1,f.prev_length-=2;++f.strstart<=w&&(f.ins_h=(f.ins_h<f.pending_buf_size-5&&(I=f.pending_buf_size-5);;){if(f.lookahead<=1){if(Ae(f),f.lookahead===0&&z===u)return p;if(f.lookahead===0)break}f.strstart+=f.lookahead,f.lookahead=0;var x=f.block_start+I;if((f.strstart===0||f.strstart>=x)&&(f.lookahead=f.strstart-x,f.strstart=x,R(f,!1),f.strm.avail_out===0)||f.strstart-f.block_start>=f.w_size-J&&(R(f,!1),f.strm.avail_out===0))return p}return f.insert=0,z===g?(R(f,!0),f.strm.avail_out===0?Z:U):(f.strstart>f.block_start&&(R(f,!1),f.strm.avail_out),p)}),new de(4,4,8,4,ye),new de(4,5,16,8,ye),new de(4,6,32,32,ye),new de(4,4,16,16,ce),new de(8,16,32,32,ce),new de(8,16,128,128,ce),new de(8,32,128,256,ce),new de(32,128,258,1024,ce),new de(32,258,258,4096,ce)],r.deflateInit=function(f,z){return ue(f,z,b,15,8,0)},r.deflateInit2=ue,r.deflateReset=we,r.deflateResetKeep=se,r.deflateSetHeader=function(f,z){return f&&f.state?f.state.wrap!==2?m:(f.state.gzhead=z,d):m},r.deflate=function(f,z){var I,x,w,k;if(!f||!f.state||5>8&255),K(x,x.gzhead.time>>16&255),K(x,x.gzhead.time>>24&255),K(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),K(x,255&x.gzhead.os),x.gzhead.extra&&x.gzhead.extra.length&&(K(x,255&x.gzhead.extra.length),K(x,x.gzhead.extra.length>>8&255)),x.gzhead.hcrc&&(f.adler=a(f.adler,x.pending_buf,x.pending,0)),x.gzindex=0,x.status=69):(K(x,0),K(x,0),K(x,0),K(x,0),K(x,0),K(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),K(x,3),x.status=S);else{var G=b+(x.w_bits-8<<4)<<8;G|=(2<=x.strategy||x.level<2?0:x.level<6?1:x.level===6?2:3)<<6,x.strstart!==0&&(G|=32),G+=31-G%31,x.status=S,H(x,G),x.strstart!==0&&(H(x,f.adler>>>16),H(x,65535&f.adler)),f.adler=1}if(x.status===69)if(x.gzhead.extra){for(w=x.pending;x.gzindex<(65535&x.gzhead.extra.length)&&(x.pending!==x.pending_buf_size||(x.gzhead.hcrc&&x.pending>w&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),F(f),w=x.pending,x.pending!==x.pending_buf_size));)K(x,255&x.gzhead.extra[x.gzindex]),x.gzindex++;x.gzhead.hcrc&&x.pending>w&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),x.gzindex===x.gzhead.extra.length&&(x.gzindex=0,x.status=73)}else x.status=73;if(x.status===73)if(x.gzhead.name){w=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>w&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),F(f),w=x.pending,x.pending===x.pending_buf_size)){k=1;break}k=x.gzindexw&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),k===0&&(x.gzindex=0,x.status=91)}else x.status=91;if(x.status===91)if(x.gzhead.comment){w=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>w&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),F(f),w=x.pending,x.pending===x.pending_buf_size)){k=1;break}k=x.gzindexw&&(f.adler=a(f.adler,x.pending_buf,x.pending-w,w)),k===0&&(x.status=103)}else x.status=103;if(x.status===103&&(x.gzhead.hcrc?(x.pending+2>x.pending_buf_size&&F(f),x.pending+2<=x.pending_buf_size&&(K(x,255&f.adler),K(x,f.adler>>8&255),f.adler=0,x.status=S)):x.status=S),x.pending!==0){if(F(f),f.avail_out===0)return x.last_flush=-1,d}else if(f.avail_in===0&&Q(z)<=Q(I)&&z!==g)return ae(f,-5);if(x.status===666&&f.avail_in!==0)return ae(f,-5);if(f.avail_in!==0||x.lookahead!==0||z!==u&&x.status!==666){var O=x.strategy===2?(function(N,V){for(var j;;){if(N.lookahead===0&&(Ae(N),N.lookahead===0)){if(V===u)return p;break}if(N.match_length=0,j=c._tr_tally(N,0,N.window[N.strstart]),N.lookahead--,N.strstart++,j&&(R(N,!1),N.strm.avail_out===0))return p}return N.insert=0,V===g?(R(N,!0),N.strm.avail_out===0?Z:U):N.last_lit&&(R(N,!1),N.strm.avail_out===0)?p:T})(x,z):x.strategy===3?(function(N,V){for(var j,Y,ee,me,pe=N.window;;){if(N.lookahead<=E){if(Ae(N),N.lookahead<=E&&V===u)return p;if(N.lookahead===0)break}if(N.match_length=0,N.lookahead>=P&&0N.lookahead&&(N.match_length=N.lookahead)}if(N.match_length>=P?(j=c._tr_tally(N,1,N.match_length-P),N.lookahead-=N.match_length,N.strstart+=N.match_length,N.match_length=0):(j=c._tr_tally(N,0,N.window[N.strstart]),N.lookahead--,N.strstart++),j&&(R(N,!1),N.strm.avail_out===0))return p}return N.insert=0,V===g?(R(N,!0),N.strm.avail_out===0?Z:U):N.last_lit&&(R(N,!1),N.strm.avail_out===0)?p:T})(x,z):s[x.level].func(x,z);if(O!==Z&&O!==U||(x.status=666),O===p||O===Z)return f.avail_out===0&&(x.last_flush=-1),d;if(O===T&&(z===1?c._tr_align(x):z!==5&&(c._tr_stored_block(x,0,0,!1),z===3&&($(x.head),x.lookahead===0&&(x.strstart=0,x.block_start=0,x.insert=0))),F(f),f.avail_out===0))return x.last_flush=-1,d}return z!==g?d:x.wrap<=0?1:(x.wrap===2?(K(x,255&f.adler),K(x,f.adler>>8&255),K(x,f.adler>>16&255),K(x,f.adler>>24&255),K(x,255&f.total_in),K(x,f.total_in>>8&255),K(x,f.total_in>>16&255),K(x,f.total_in>>24&255)):(H(x,f.adler>>>16),H(x,65535&f.adler)),F(f),0=I.w_size&&(k===0&&($(I.head),I.strstart=0,I.block_start=0,I.insert=0),V=new l.Buf8(I.w_size),l.arraySet(V,z,j-I.w_size,I.w_size,0),z=V,j=I.w_size),G=f.avail_in,O=f.next_in,N=f.input,f.avail_in=j,f.next_in=0,f.input=z,Ae(I);I.lookahead>=P;){for(x=I.strstart,w=I.lookahead-(P-1);I.ins_h=(I.ins_h<>>=P=X>>>24,C-=P,(P=X>>>16&255)===0)T[n++]=65535&X;else{if(!(16&P)){if((64&P)==0){X=D[(65535&X)+(b&(1<>>=P,C-=P),C<15&&(b+=p[A++]<>>=P=X>>>24,C-=P,!(16&(P=X>>>16&255))){if((64&P)==0){X=B[(65535&X)+(b&(1<>>=P,C-=P,(P=n-u)>3,b&=(1<<(C-=E<<3))-1,s.next_in=A,s.next_out=n,s.avail_in=A>>24&255)+(L>>>8&65280)+((65280&L)<<8)+((255&L)<<24)}function b(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function C(L){var S;return L&&L.state?(S=L.state,L.total_in=L.total_out=S.total=0,L.msg="",S.wrap&&(L.adler=1&S.wrap),S.mode=m,S.last=0,S.havedict=0,S.dmax=32768,S.head=null,S.hold=0,S.bits=0,S.lencode=S.lendyn=new s.Buf32(h),S.distcode=S.distdyn=new s.Buf32(y),S.sane=1,S.back=-1,g):d}function D(L){var S;return L&&L.state?((S=L.state).wsize=0,S.whave=0,S.wnext=0,C(L)):d}function B(L,S){var p,T;return L&&L.state?(T=L.state,S<0?(p=0,S=-S):(p=1+(S>>4),S<48&&(S&=15)),S&&(S<8||15=U.wsize?(s.arraySet(U.window,S,p-U.wsize,U.wsize,0),U.wnext=0,U.whave=U.wsize):(T<(Z=U.wsize-U.wnext)&&(Z=T),s.arraySet(U.window,S,p-T,Z,U.wnext),(T-=Z)?(s.arraySet(U.window,S,p-T,T,0),U.wnext=T,U.whave=U.wsize):(U.wnext+=Z,U.wnext===U.wsize&&(U.wnext=0),U.whave>>8&255,p.check=c(p.check,k,2,0),R=F=0,p.mode=2;break}if(p.flags=0,p.head&&(p.head.done=!1),!(1&p.wrap)||(((255&F)<<8)+(F>>8))%31){L.msg="incorrect header check",p.mode=30;break}if((15&F)!=8){L.msg="unknown compression method",p.mode=30;break}if(R-=4,f=8+(15&(F>>>=4)),p.wbits===0)p.wbits=f;else if(f>p.wbits){L.msg="invalid window size",p.mode=30;break}p.dmax=1<>8&1),512&p.flags&&(k[0]=255&F,k[1]=F>>>8&255,p.check=c(p.check,k,2,0)),R=F=0,p.mode=3;case 3:for(;R<32;){if(Q===0)break e;Q--,F+=T[U++]<>>8&255,k[2]=F>>>16&255,k[3]=F>>>24&255,p.check=c(p.check,k,4,0)),R=F=0,p.mode=4;case 4:for(;R<16;){if(Q===0)break e;Q--,F+=T[U++]<>8),512&p.flags&&(k[0]=255&F,k[1]=F>>>8&255,p.check=c(p.check,k,2,0)),R=F=0,p.mode=5;case 5:if(1024&p.flags){for(;R<16;){if(Q===0)break e;Q--,F+=T[U++]<>>8&255,p.check=c(p.check,k,2,0)),R=F=0}else p.head&&(p.head.extra=null);p.mode=6;case 6:if(1024&p.flags&&(Q<(q=p.length)&&(q=Q),q&&(p.head&&(f=p.head.extra_len-p.length,p.head.extra||(p.head.extra=new Array(p.head.extra_len)),s.arraySet(p.head.extra,T,U,q,f)),512&p.flags&&(p.check=c(p.check,T,q,U)),Q-=q,U+=q,p.length-=q),p.length))break e;p.length=0,p.mode=7;case 7:if(2048&p.flags){if(Q===0)break e;for(q=0;f=T[U+q++],p.head&&f&&p.length<65536&&(p.head.name+=String.fromCharCode(f)),f&&q>9&1,p.head.done=!0),L.adler=p.check=0,p.mode=12;break;case 10:for(;R<32;){if(Q===0)break e;Q--,F+=T[U++]<>>=7&R,R-=7&R,p.mode=27;break}for(;R<3;){if(Q===0)break e;Q--,F+=T[U++]<>>=1)){case 0:p.mode=14;break;case 1:if(E(p),p.mode=20,S!==6)break;F>>>=2,R-=2;break e;case 2:p.mode=17;break;case 3:L.msg="invalid block type",p.mode=30}F>>>=2,R-=2;break;case 14:for(F>>>=7&R,R-=7&R;R<32;){if(Q===0)break e;Q--,F+=T[U++]<>>16^65535)){L.msg="invalid stored block lengths",p.mode=30;break}if(p.length=65535&F,R=F=0,p.mode=15,S===6)break e;case 15:p.mode=16;case 16:if(q=p.length){if(Q>>=5,R-=5,p.ndist=1+(31&F),F>>>=5,R-=5,p.ncode=4+(15&F),F>>>=4,R-=4,286>>=3,R-=3}for(;p.have<19;)p.lens[G[p.have++]]=0;if(p.lencode=p.lendyn,p.lenbits=7,I={bits:p.lenbits},z=a(0,p.lens,0,19,p.lencode,0,p.work,I),p.lenbits=I.bits,z){L.msg="invalid code lengths set",p.mode=30;break}p.have=0,p.mode=19;case 19:for(;p.have>>16&255,ve=65535&w,!((ce=w>>>24)<=R);){if(Q===0)break e;Q--,F+=T[U++]<>>=ce,R-=ce,p.lens[p.have++]=ve;else{if(ve===16){for(x=ce+2;R>>=ce,R-=ce,p.have===0){L.msg="invalid bit length repeat",p.mode=30;break}f=p.lens[p.have-1],q=3+(3&F),F>>>=2,R-=2}else if(ve===17){for(x=ce+3;R>>=ce)),F>>>=3,R-=3}else{for(x=ce+7;R>>=ce)),F>>>=7,R-=7}if(p.have+q>p.nlen+p.ndist){L.msg="invalid bit length repeat",p.mode=30;break}for(;q--;)p.lens[p.have++]=f}}if(p.mode===30)break;if(p.lens[256]===0){L.msg="invalid code -- missing end-of-block",p.mode=30;break}if(p.lenbits=9,I={bits:p.lenbits},z=a(n,p.lens,0,p.nlen,p.lencode,0,p.work,I),p.lenbits=I.bits,z){L.msg="invalid literal/lengths set",p.mode=30;break}if(p.distbits=6,p.distcode=p.distdyn,I={bits:p.distbits},z=a(u,p.lens,p.nlen,p.ndist,p.distcode,0,p.work,I),p.distbits=I.bits,z){L.msg="invalid distances set",p.mode=30;break}if(p.mode=20,S===6)break e;case 20:p.mode=21;case 21:if(6<=Q&&258<=$){L.next_out=ae,L.avail_out=$,L.next_in=U,L.avail_in=Q,p.hold=F,p.bits=R,A(L,H),ae=L.next_out,Z=L.output,$=L.avail_out,U=L.next_in,T=L.input,Q=L.avail_in,F=p.hold,R=p.bits,p.mode===12&&(p.back=-1);break}for(p.back=0;de=(w=p.lencode[F&(1<>>16&255,ve=65535&w,!((ce=w>>>24)<=R);){if(Q===0)break e;Q--,F+=T[U++]<>se)])>>>16&255,ve=65535&w,!(se+(ce=w>>>24)<=R);){if(Q===0)break e;Q--,F+=T[U++]<>>=se,R-=se,p.back+=se}if(F>>>=ce,R-=ce,p.back+=ce,p.length=ve,de===0){p.mode=26;break}if(32&de){p.back=-1,p.mode=12;break}if(64&de){L.msg="invalid literal/length code",p.mode=30;break}p.extra=15&de,p.mode=22;case 22:if(p.extra){for(x=p.extra;R>>=p.extra,R-=p.extra,p.back+=p.extra}p.was=p.length,p.mode=23;case 23:for(;de=(w=p.distcode[F&(1<>>16&255,ve=65535&w,!((ce=w>>>24)<=R);){if(Q===0)break e;Q--,F+=T[U++]<>se)])>>>16&255,ve=65535&w,!(se+(ce=w>>>24)<=R);){if(Q===0)break e;Q--,F+=T[U++]<>>=se,R-=se,p.back+=se}if(F>>>=ce,R-=ce,p.back+=ce,64&de){L.msg="invalid distance code",p.mode=30;break}p.offset=ve,p.extra=15&de,p.mode=24;case 24:if(p.extra){for(x=p.extra;R>>=p.extra,R-=p.extra,p.back+=p.extra}if(p.offset>p.dmax){L.msg="invalid distance too far back",p.mode=30;break}p.mode=25;case 25:if($===0)break e;if(q=H-$,p.offset>q){if((q=p.offset-q)>p.whave&&p.sane){L.msg="invalid distance too far back",p.mode=30;break}Ae=q>p.wnext?(q-=p.wnext,p.wsize-q):p.wnext-q,q>p.length&&(q=p.length),ye=p.window}else ye=Z,Ae=ae-p.offset,q=p.length;for($_?(P=Ae[ye+y[S]],R[K+y[S]]):(P=96,0),b=1<>ae)+(C-=b)]=X<<24|P<<16|E|0,C!==0;);for(b=1<>=1;if(b!==0?(F&=b-1,F+=b):F=0,S++,--H[L]==0){if(L===T)break;L=u[g+y[S]]}if(Z>>7)]}function K(w,k){w.pending_buf[w.pending++]=255&k,w.pending_buf[w.pending++]=k>>>8&255}function H(w,k,G){w.bi_valid>v-G?(w.bi_buf|=k<>v-w.bi_valid,w.bi_valid+=G-v):(w.bi_buf|=k<>>=1,G<<=1,0<--k;);return G>>>1}function ye(w,k,G){var O,N,V=new Array(y+1),j=0;for(O=1;O<=y;O++)V[O]=j=j+G[O-1]<<1;for(N=0;N<=k;N++){var Y=w[2*N+1];Y!==0&&(w[2*N]=Ae(V[Y]++,Y))}}function ce(w){var k;for(k=0;k>1;1<=G;G--)se(w,V,G);for(N=ee;G=w.heap[1],w.heap[1]=w.heap[w.heap_len--],se(w,V,1),O=w.heap[1],w.heap[--w.heap_max]=G,w.heap[--w.heap_max]=O,V[2*N]=V[2*G]+V[2*O],w.depth[N]=(w.depth[G]>=w.depth[O]?w.depth[G]:w.depth[O])+1,V[2*G+1]=V[2*O+1]=N,w.heap[1]=N++,se(w,V,1),2<=w.heap_len;);w.heap[--w.heap_max]=w.heap[1],(function(pe,De){var qe,Pe,Ye,ge,tt,pt,Ne=De.dyn_tree,St=De.max_code,Zt=De.stat_desc.static_tree,jt=De.stat_desc.has_stree,$t=De.stat_desc.extra_bits,It=De.stat_desc.extra_base,Je=De.stat_desc.max_length,at=0;for(ge=0;ge<=y;ge++)pe.bl_count[ge]=0;for(Ne[2*pe.heap[pe.heap_max]+1]=0,qe=pe.heap_max+1;qe>=7;N>>=1)if(1&me&&Y.dyn_ltree[2*ee]!==0)return l;if(Y.dyn_ltree[18]!==0||Y.dyn_ltree[20]!==0||Y.dyn_ltree[26]!==0)return c;for(ee=32;ee>>3,(V=w.static_len+3+7>>>3)<=N&&(N=V)):N=V=G+5,G+4<=N&&k!==-1?x(w,k,G,O):w.strategy===4||V===N?(H(w,2+(O?1:0),3),we(w,J,L)):(H(w,4+(O?1:0),3),(function(Y,ee,me,pe){var De;for(H(Y,ee-257,5),H(Y,me-1,5),H(Y,pe-4,4),De=0;De>>8&255,w.pending_buf[w.d_buf+2*w.last_lit+1]=255&k,w.pending_buf[w.l_buf+w.last_lit]=255&G,w.last_lit++,k===0?w.dyn_ltree[2*G]++:(w.matches++,k--,w.dyn_ltree[2*(p[G]+u+1)]++,w.dyn_dtree[2*R(k)]++),w.last_lit===w.lit_bufsize-1},r._tr_align=function(w){H(w,2,3),q(w,C,J),(function(k){k.bi_valid===16?(K(k,k.bi_buf),k.bi_buf=0,k.bi_valid=0):8<=k.bi_valid&&(k.pending_buf[k.pending++]=255&k.bi_buf,k.bi_buf>>=8,k.bi_valid-=8)})(w)}},{"../utils/common":41}],53:[function(t,i,r){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,i,r){(function(s){(function(l,c){if(!l.setImmediate){var A,a,n,u,g=1,d={},m=!1,h=l.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(l);y=y&&y.setTimeout?y:l,A={}.toString.call(l.process)==="[object process]"?function(D){process.nextTick(function(){b(D)})}:(function(){if(l.postMessage&&!l.importScripts){var D=!0,B=l.onmessage;return l.onmessage=function(){D=!1},l.postMessage("","*"),l.onmessage=B,D}})()?(u="setImmediate$"+Math.random()+"$",l.addEventListener?l.addEventListener("message",C,!1):l.attachEvent("onmessage",C),function(D){l.postMessage(u+D,"*")}):l.MessageChannel?((n=new MessageChannel).port1.onmessage=function(D){b(D.data)},function(D){n.port2.postMessage(D)}):h&&"onreadystatechange"in h.createElement("script")?(a=h.documentElement,function(D){var B=h.createElement("script");B.onreadystatechange=function(){b(D),B.onreadystatechange=null,a.removeChild(B),B=null},a.appendChild(B)}):function(D){setTimeout(b,0,D)},y.setImmediate=function(D){typeof D!="function"&&(D=new Function(""+D));for(var B=new Array(arguments.length-1),M=0;M"u"?s===void 0?this:s:self)}).call(this,typeof rt<"u"?rt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(ut)),ut.exports}var aa=ta();const Nt=ea(aa);function Le(e,o,t,i){function r(s){return s instanceof t?s:new t(function(l){l(s)})}return new(t||(t=Promise))(function(s,l){function c(n){try{a(i.next(n))}catch(u){l(u)}}function A(n){try{a(i.throw(n))}catch(u){l(u)}}function a(n){n.done?s(n.value):r(n.value).then(c,A)}a((i=i.apply(e,[])).next())})}const oe=914400,et=12700,be=`\r `,ra=2147483649,ht=/^[0-9a-fA-F]{6}$/,na=1.67,oa=27,ze={type:"solid",color:"666666",pt:1},Qt=[.05,.1,.05,.1],Ue={color:"363636",pt:1},Me={color:"888888",style:"solid",size:1,cap:"flat"},xe="000000",ke=12,ia=18,Xe="LAYOUT_16x9",wt="DEFAULT",Ot="333333",Se={type:"outer",blur:3,offset:23e3/12700,angle:90,color:"000000",opacity:.35,rotateWithShape:!0},$e=[.5,.5,.5,.5],Et={color:"000000"},Aa={size:8,color:"FFFFFF",opacity:.75},Re="2094734552",it="2094734553",Ke="2094734554",xt="2094734555",Wt="2094734556",He="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),Ze=["C0504D","4F81BD","9BBB59","8064A2","4BACC6","F79646","628FC6","C86360","C0504D","4F81BD","9BBB59","8064A2","4BACC6","F79646","628FC6","C86360"],sa=["5DA5DA","FAA43A","60BD68","F17CB0","B2912F","B276B2","DECF3F","F15854","A7A7A7","5DA5DA","FAA43A","60BD68","F17CB0","B2912F","B276B2","DECF3F","F15854","A7A7A7"];var Ge;(function(e){e.left="left",e.center="center",e.right="right",e.justify="justify"})(Ge||(Ge={}));var Qe;(function(e){e.b="b",e.ctr="ctr",e.t="t"})(Qe||(Qe={}));const Vt="{F7021451-1387-4CA6-816F-3879F97B5CBC}";var Ct;(function(e){e.arraybuffer="arraybuffer",e.base64="base64",e.binarystring="binarystring",e.blob="blob",e.nodebuffer="nodebuffer",e.uint8array="uint8array"})(Ct||(Ct={}));var Lt;(function(e){e.area="area",e.bar="bar",e.bar3d="bar3D",e.bubble="bubble",e.bubble3d="bubble3D",e.doughnut="doughnut",e.line="line",e.pie="pie",e.radar="radar",e.scatter="scatter"})(Lt||(Lt={}));var Bt;(function(e){e.accentBorderCallout1="accentBorderCallout1",e.accentBorderCallout2="accentBorderCallout2",e.accentBorderCallout3="accentBorderCallout3",e.accentCallout1="accentCallout1",e.accentCallout2="accentCallout2",e.accentCallout3="accentCallout3",e.actionButtonBackPrevious="actionButtonBackPrevious",e.actionButtonBeginning="actionButtonBeginning",e.actionButtonBlank="actionButtonBlank",e.actionButtonDocument="actionButtonDocument",e.actionButtonEnd="actionButtonEnd",e.actionButtonForwardNext="actionButtonForwardNext",e.actionButtonHelp="actionButtonHelp",e.actionButtonHome="actionButtonHome",e.actionButtonInformation="actionButtonInformation",e.actionButtonMovie="actionButtonMovie",e.actionButtonReturn="actionButtonReturn",e.actionButtonSound="actionButtonSound",e.arc="arc",e.bentArrow="bentArrow",e.bentUpArrow="bentUpArrow",e.bevel="bevel",e.blockArc="blockArc",e.borderCallout1="borderCallout1",e.borderCallout2="borderCallout2",e.borderCallout3="borderCallout3",e.bracePair="bracePair",e.bracketPair="bracketPair",e.callout1="callout1",e.callout2="callout2",e.callout3="callout3",e.can="can",e.chartPlus="chartPlus",e.chartStar="chartStar",e.chartX="chartX",e.chevron="chevron",e.chord="chord",e.circularArrow="circularArrow",e.cloud="cloud",e.cloudCallout="cloudCallout",e.corner="corner",e.cornerTabs="cornerTabs",e.cube="cube",e.curvedDownArrow="curvedDownArrow",e.curvedLeftArrow="curvedLeftArrow",e.curvedRightArrow="curvedRightArrow",e.curvedUpArrow="curvedUpArrow",e.custGeom="custGeom",e.decagon="decagon",e.diagStripe="diagStripe",e.diamond="diamond",e.dodecagon="dodecagon",e.donut="donut",e.doubleWave="doubleWave",e.downArrow="downArrow",e.downArrowCallout="downArrowCallout",e.ellipse="ellipse",e.ellipseRibbon="ellipseRibbon",e.ellipseRibbon2="ellipseRibbon2",e.flowChartAlternateProcess="flowChartAlternateProcess",e.flowChartCollate="flowChartCollate",e.flowChartConnector="flowChartConnector",e.flowChartDecision="flowChartDecision",e.flowChartDelay="flowChartDelay",e.flowChartDisplay="flowChartDisplay",e.flowChartDocument="flowChartDocument",e.flowChartExtract="flowChartExtract",e.flowChartInputOutput="flowChartInputOutput",e.flowChartInternalStorage="flowChartInternalStorage",e.flowChartMagneticDisk="flowChartMagneticDisk",e.flowChartMagneticDrum="flowChartMagneticDrum",e.flowChartMagneticTape="flowChartMagneticTape",e.flowChartManualInput="flowChartManualInput",e.flowChartManualOperation="flowChartManualOperation",e.flowChartMerge="flowChartMerge",e.flowChartMultidocument="flowChartMultidocument",e.flowChartOfflineStorage="flowChartOfflineStorage",e.flowChartOffpageConnector="flowChartOffpageConnector",e.flowChartOnlineStorage="flowChartOnlineStorage",e.flowChartOr="flowChartOr",e.flowChartPredefinedProcess="flowChartPredefinedProcess",e.flowChartPreparation="flowChartPreparation",e.flowChartProcess="flowChartProcess",e.flowChartPunchedCard="flowChartPunchedCard",e.flowChartPunchedTape="flowChartPunchedTape",e.flowChartSort="flowChartSort",e.flowChartSummingJunction="flowChartSummingJunction",e.flowChartTerminator="flowChartTerminator",e.folderCorner="folderCorner",e.frame="frame",e.funnel="funnel",e.gear6="gear6",e.gear9="gear9",e.halfFrame="halfFrame",e.heart="heart",e.heptagon="heptagon",e.hexagon="hexagon",e.homePlate="homePlate",e.horizontalScroll="horizontalScroll",e.irregularSeal1="irregularSeal1",e.irregularSeal2="irregularSeal2",e.leftArrow="leftArrow",e.leftArrowCallout="leftArrowCallout",e.leftBrace="leftBrace",e.leftBracket="leftBracket",e.leftCircularArrow="leftCircularArrow",e.leftRightArrow="leftRightArrow",e.leftRightArrowCallout="leftRightArrowCallout",e.leftRightCircularArrow="leftRightCircularArrow",e.leftRightRibbon="leftRightRibbon",e.leftRightUpArrow="leftRightUpArrow",e.leftUpArrow="leftUpArrow",e.lightningBolt="lightningBolt",e.line="line",e.lineInv="lineInv",e.mathDivide="mathDivide",e.mathEqual="mathEqual",e.mathMinus="mathMinus",e.mathMultiply="mathMultiply",e.mathNotEqual="mathNotEqual",e.mathPlus="mathPlus",e.moon="moon",e.noSmoking="noSmoking",e.nonIsoscelesTrapezoid="nonIsoscelesTrapezoid",e.notchedRightArrow="notchedRightArrow",e.octagon="octagon",e.parallelogram="parallelogram",e.pentagon="pentagon",e.pie="pie",e.pieWedge="pieWedge",e.plaque="plaque",e.plaqueTabs="plaqueTabs",e.plus="plus",e.quadArrow="quadArrow",e.quadArrowCallout="quadArrowCallout",e.rect="rect",e.ribbon="ribbon",e.ribbon2="ribbon2",e.rightArrow="rightArrow",e.rightArrowCallout="rightArrowCallout",e.rightBrace="rightBrace",e.rightBracket="rightBracket",e.round1Rect="round1Rect",e.round2DiagRect="round2DiagRect",e.round2SameRect="round2SameRect",e.roundRect="roundRect",e.rtTriangle="rtTriangle",e.smileyFace="smileyFace",e.snip1Rect="snip1Rect",e.snip2DiagRect="snip2DiagRect",e.snip2SameRect="snip2SameRect",e.snipRoundRect="snipRoundRect",e.squareTabs="squareTabs",e.star10="star10",e.star12="star12",e.star16="star16",e.star24="star24",e.star32="star32",e.star4="star4",e.star5="star5",e.star6="star6",e.star7="star7",e.star8="star8",e.stripedRightArrow="stripedRightArrow",e.sun="sun",e.swooshArrow="swooshArrow",e.teardrop="teardrop",e.trapezoid="trapezoid",e.triangle="triangle",e.upArrow="upArrow",e.upArrowCallout="upArrowCallout",e.upDownArrow="upDownArrow",e.upDownArrowCallout="upDownArrowCallout",e.uturnArrow="uturnArrow",e.verticalScroll="verticalScroll",e.wave="wave",e.wedgeEllipseCallout="wedgeEllipseCallout",e.wedgeRectCallout="wedgeRectCallout",e.wedgeRoundRectCallout="wedgeRoundRectCallout"})(Bt||(Bt={}));var Ce;(function(e){e.text1="tx1",e.text2="tx2",e.background1="bg1",e.background2="bg2",e.accent1="accent1",e.accent2="accent2",e.accent3="accent3",e.accent4="accent4",e.accent5="accent5",e.accent6="accent6"})(Ce||(Ce={}));var Dt;(function(e){e.left="left",e.center="center",e.right="right",e.justify="justify"})(Dt||(Dt={}));var kt;(function(e){e.top="top",e.middle="middle",e.bottom="bottom"})(kt||(kt={}));var _e;(function(e){e.ACTION_BUTTON_BACK_OR_PREVIOUS="actionButtonBackPrevious",e.ACTION_BUTTON_BEGINNING="actionButtonBeginning",e.ACTION_BUTTON_CUSTOM="actionButtonBlank",e.ACTION_BUTTON_DOCUMENT="actionButtonDocument",e.ACTION_BUTTON_END="actionButtonEnd",e.ACTION_BUTTON_FORWARD_OR_NEXT="actionButtonForwardNext",e.ACTION_BUTTON_HELP="actionButtonHelp",e.ACTION_BUTTON_HOME="actionButtonHome",e.ACTION_BUTTON_INFORMATION="actionButtonInformation",e.ACTION_BUTTON_MOVIE="actionButtonMovie",e.ACTION_BUTTON_RETURN="actionButtonReturn",e.ACTION_BUTTON_SOUND="actionButtonSound",e.ARC="arc",e.BALLOON="wedgeRoundRectCallout",e.BENT_ARROW="bentArrow",e.BENT_UP_ARROW="bentUpArrow",e.BEVEL="bevel",e.BLOCK_ARC="blockArc",e.CAN="can",e.CHART_PLUS="chartPlus",e.CHART_STAR="chartStar",e.CHART_X="chartX",e.CHEVRON="chevron",e.CHORD="chord",e.CIRCULAR_ARROW="circularArrow",e.CLOUD="cloud",e.CLOUD_CALLOUT="cloudCallout",e.CORNER="corner",e.CORNER_TABS="cornerTabs",e.CROSS="plus",e.CUBE="cube",e.CURVED_DOWN_ARROW="curvedDownArrow",e.CURVED_DOWN_RIBBON="ellipseRibbon",e.CURVED_LEFT_ARROW="curvedLeftArrow",e.CURVED_RIGHT_ARROW="curvedRightArrow",e.CURVED_UP_ARROW="curvedUpArrow",e.CURVED_UP_RIBBON="ellipseRibbon2",e.CUSTOM_GEOMETRY="custGeom",e.DECAGON="decagon",e.DIAGONAL_STRIPE="diagStripe",e.DIAMOND="diamond",e.DODECAGON="dodecagon",e.DONUT="donut",e.DOUBLE_BRACE="bracePair",e.DOUBLE_BRACKET="bracketPair",e.DOUBLE_WAVE="doubleWave",e.DOWN_ARROW="downArrow",e.DOWN_ARROW_CALLOUT="downArrowCallout",e.DOWN_RIBBON="ribbon",e.EXPLOSION1="irregularSeal1",e.EXPLOSION2="irregularSeal2",e.FLOWCHART_ALTERNATE_PROCESS="flowChartAlternateProcess",e.FLOWCHART_CARD="flowChartPunchedCard",e.FLOWCHART_COLLATE="flowChartCollate",e.FLOWCHART_CONNECTOR="flowChartConnector",e.FLOWCHART_DATA="flowChartInputOutput",e.FLOWCHART_DECISION="flowChartDecision",e.FLOWCHART_DELAY="flowChartDelay",e.FLOWCHART_DIRECT_ACCESS_STORAGE="flowChartMagneticDrum",e.FLOWCHART_DISPLAY="flowChartDisplay",e.FLOWCHART_DOCUMENT="flowChartDocument",e.FLOWCHART_EXTRACT="flowChartExtract",e.FLOWCHART_INTERNAL_STORAGE="flowChartInternalStorage",e.FLOWCHART_MAGNETIC_DISK="flowChartMagneticDisk",e.FLOWCHART_MANUAL_INPUT="flowChartManualInput",e.FLOWCHART_MANUAL_OPERATION="flowChartManualOperation",e.FLOWCHART_MERGE="flowChartMerge",e.FLOWCHART_MULTIDOCUMENT="flowChartMultidocument",e.FLOWCHART_OFFLINE_STORAGE="flowChartOfflineStorage",e.FLOWCHART_OFFPAGE_CONNECTOR="flowChartOffpageConnector",e.FLOWCHART_OR="flowChartOr",e.FLOWCHART_PREDEFINED_PROCESS="flowChartPredefinedProcess",e.FLOWCHART_PREPARATION="flowChartPreparation",e.FLOWCHART_PROCESS="flowChartProcess",e.FLOWCHART_PUNCHED_TAPE="flowChartPunchedTape",e.FLOWCHART_SEQUENTIAL_ACCESS_STORAGE="flowChartMagneticTape",e.FLOWCHART_SORT="flowChartSort",e.FLOWCHART_STORED_DATA="flowChartOnlineStorage",e.FLOWCHART_SUMMING_JUNCTION="flowChartSummingJunction",e.FLOWCHART_TERMINATOR="flowChartTerminator",e.FOLDED_CORNER="folderCorner",e.FRAME="frame",e.FUNNEL="funnel",e.GEAR_6="gear6",e.GEAR_9="gear9",e.HALF_FRAME="halfFrame",e.HEART="heart",e.HEPTAGON="heptagon",e.HEXAGON="hexagon",e.HORIZONTAL_SCROLL="horizontalScroll",e.ISOSCELES_TRIANGLE="triangle",e.LEFT_ARROW="leftArrow",e.LEFT_ARROW_CALLOUT="leftArrowCallout",e.LEFT_BRACE="leftBrace",e.LEFT_BRACKET="leftBracket",e.LEFT_CIRCULAR_ARROW="leftCircularArrow",e.LEFT_RIGHT_ARROW="leftRightArrow",e.LEFT_RIGHT_ARROW_CALLOUT="leftRightArrowCallout",e.LEFT_RIGHT_CIRCULAR_ARROW="leftRightCircularArrow",e.LEFT_RIGHT_RIBBON="leftRightRibbon",e.LEFT_RIGHT_UP_ARROW="leftRightUpArrow",e.LEFT_UP_ARROW="leftUpArrow",e.LIGHTNING_BOLT="lightningBolt",e.LINE_CALLOUT_1="borderCallout1",e.LINE_CALLOUT_1_ACCENT_BAR="accentCallout1",e.LINE_CALLOUT_1_BORDER_AND_ACCENT_BAR="accentBorderCallout1",e.LINE_CALLOUT_1_NO_BORDER="callout1",e.LINE_CALLOUT_2="borderCallout2",e.LINE_CALLOUT_2_ACCENT_BAR="accentCallout2",e.LINE_CALLOUT_2_BORDER_AND_ACCENT_BAR="accentBorderCallout2",e.LINE_CALLOUT_2_NO_BORDER="callout2",e.LINE_CALLOUT_3="borderCallout3",e.LINE_CALLOUT_3_ACCENT_BAR="accentCallout3",e.LINE_CALLOUT_3_BORDER_AND_ACCENT_BAR="accentBorderCallout3",e.LINE_CALLOUT_3_NO_BORDER="callout3",e.LINE_CALLOUT_4="borderCallout4",e.LINE_CALLOUT_4_ACCENT_BAR="accentCallout3=4",e.LINE_CALLOUT_4_BORDER_AND_ACCENT_BAR="accentBorderCallout4",e.LINE_CALLOUT_4_NO_BORDER="callout4",e.LINE="line",e.LINE_INVERSE="lineInv",e.MATH_DIVIDE="mathDivide",e.MATH_EQUAL="mathEqual",e.MATH_MINUS="mathMinus",e.MATH_MULTIPLY="mathMultiply",e.MATH_NOT_EQUAL="mathNotEqual",e.MATH_PLUS="mathPlus",e.MOON="moon",e.NON_ISOSCELES_TRAPEZOID="nonIsoscelesTrapezoid",e.NOTCHED_RIGHT_ARROW="notchedRightArrow",e.NO_SYMBOL="noSmoking",e.OCTAGON="octagon",e.OVAL="ellipse",e.OVAL_CALLOUT="wedgeEllipseCallout",e.PARALLELOGRAM="parallelogram",e.PENTAGON="homePlate",e.PIE="pie",e.PIE_WEDGE="pieWedge",e.PLAQUE="plaque",e.PLAQUE_TABS="plaqueTabs",e.QUAD_ARROW="quadArrow",e.QUAD_ARROW_CALLOUT="quadArrowCallout",e.RECTANGLE="rect",e.RECTANGULAR_CALLOUT="wedgeRectCallout",e.REGULAR_PENTAGON="pentagon",e.RIGHT_ARROW="rightArrow",e.RIGHT_ARROW_CALLOUT="rightArrowCallout",e.RIGHT_BRACE="rightBrace",e.RIGHT_BRACKET="rightBracket",e.RIGHT_TRIANGLE="rtTriangle",e.ROUNDED_RECTANGLE="roundRect",e.ROUNDED_RECTANGULAR_CALLOUT="wedgeRoundRectCallout",e.ROUND_1_RECTANGLE="round1Rect",e.ROUND_2_DIAG_RECTANGLE="round2DiagRect",e.ROUND_2_SAME_RECTANGLE="round2SameRect",e.SMILEY_FACE="smileyFace",e.SNIP_1_RECTANGLE="snip1Rect",e.SNIP_2_DIAG_RECTANGLE="snip2DiagRect",e.SNIP_2_SAME_RECTANGLE="snip2SameRect",e.SNIP_ROUND_RECTANGLE="snipRoundRect",e.SQUARE_TABS="squareTabs",e.STAR_10_POINT="star10",e.STAR_12_POINT="star12",e.STAR_16_POINT="star16",e.STAR_24_POINT="star24",e.STAR_32_POINT="star32",e.STAR_4_POINT="star4",e.STAR_5_POINT="star5",e.STAR_6_POINT="star6",e.STAR_7_POINT="star7",e.STAR_8_POINT="star8",e.STRIPED_RIGHT_ARROW="stripedRightArrow",e.SUN="sun",e.SWOOSH_ARROW="swooshArrow",e.TEAR="teardrop",e.TRAPEZOID="trapezoid",e.UP_ARROW="upArrow",e.UP_ARROW_CALLOUT="upArrowCallout",e.UP_DOWN_ARROW="upDownArrow",e.UP_DOWN_ARROW_CALLOUT="upDownArrowCallout",e.UP_RIBBON="ribbon2",e.U_TURN_ARROW="uturnArrow",e.VERTICAL_SCROLL="verticalScroll",e.WAVE="wave"})(_e||(_e={}));var W;(function(e){e.AREA="area",e.BAR="bar",e.BAR3D="bar3D",e.BUBBLE="bubble",e.BUBBLE3D="bubble3D",e.DOUGHNUT="doughnut",e.LINE="line",e.PIE="pie",e.RADAR="radar",e.SCATTER="scatter"})(W||(W={}));var ct;(function(e){e.TEXT1="tx1",e.TEXT2="tx2",e.BACKGROUND1="bg1",e.BACKGROUND2="bg2",e.ACCENT1="accent1",e.ACCENT2="accent2",e.ACCENT3="accent3",e.ACCENT4="accent4",e.ACCENT5="accent5",e.ACCENT6="accent6"})(ct||(ct={}));var Te;(function(e){e.chart="chart",e.image="image",e.line="line",e.rect="rect",e.text="text",e.placeholder="placeholder"})(Te||(Te={}));var ne;(function(e){e.chart="chart",e.hyperlink="hyperlink",e.image="image",e.media="media",e.online="online",e.placeholder="placeholder",e.table="table",e.tablecell="tablecell",e.text="text",e.notes="notes"})(ne||(ne={}));var je;(function(e){e.title="title",e.body="body",e.image="pic",e.chart="chart",e.table="tbl",e.media="media"})(je||(je={}));var Oe;(function(e){e.DEFAULT="•",e.CHECK="✓",e.STAR="★",e.TRIANGLE="▶"})(Oe||(Oe={}));const We="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAB3CAYAAAD1oOVhAAAGAUlEQVR4Xu2dT0xcRRzHf7tAYSsc0EBSIq2xEg8mtTGebVzEqOVIolz0siRE4gGTStqKwdpWsXoyGhMuyAVJOHBgqyvLNgonDkabeCBYW/8kTUr0wsJC+Wfm0bfuvn37Znbem9mR9303mJnf/Pb7ed95M7PDI5JIJPYJV5EC7e3t1N/fT62trdqViQCIu+bVgpIHEo/Hqbe3V/sdYVKHyWSSZmZm8ilVA0oeyNjYmEnaVC2Xvr6+qg5fAOJAz4DU1dURGzFSqZRVqtMpAFIGyMjICC0vL9PExIRWKADiAYTNshYWFrRCARAOEFZcCKWtrY0GBgaUTYkBRACIE4rKZwqACALR5RQAqQCIDqcASIVAVDsFQCSAqHQKgEgCUeUUAPEBRIVTAMQnEBvK5OQkbW9vk991CoAEAMQJxc86BUACAhKUUwAkQCBBOAVAAgbi1ykAogCIH6cAiCIgsk4BEIVAZJwCIIqBVLqiBxANQFgXS0tLND4+zl08AogmIG5OSSQS1gGKwgtANAIRcQqAaAbCe6YASBWA2E6xDyeyDUl7+AKQMkDYYevm5mZHabA/Li4uUiaTsYLau8QA4gLE/hU7wajyYtv1hReDAiAOxQcHBymbzark4BkbQKom/X8dp9Npmpqasn4BIAYAYSnYp+4BBEAMUcCwNOCQsAKZnp62NtQOw8WmwT09PUo+ijaHsOMx7GppaaH6+nolH0Z10K2tLVpdXbW6UfV3mNqBdHd3U1NTk2rtlMRfW1uj2dlZAFGirkRQAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAFGprkRsAJEQTWUTAGHqrm8caPzQ0WC1logbeiC7X3xJm0PvUmRzh45cuki1588FAmVn9BO6P3yF9utrqGH0MtW82S8UN9RA9v/4k7InjhcJFTs/TLVXLwmJV67S7vD7tHF5pKi46fYdosdOcOOGG8j1OcqefbFEJD9Q3GCwDhqT31HklS4A8VRgfYM2Op6k3bt/BQJl58J7lPvwg5JYNccepaMry0LPqFA7hCm39+NNyp2J0172b19QysGINj5CsRtpij57musOViH0QPJQXn6J9u7dlYJSFkbrMYolrwvDAJAC+WWdEpQz7FTgECeUCpzi6YxvvqXoM6eEhqnCSgDikEzUKUE7Aw7xuHctKB5OYU3dZlNR9syQdAaAcAYTC0pXF+39c09o2Ik+3EqxVKqiB7hbYAxZkk4pbBaEM+AQofv+wTrFwylBOQNABIGwavdfe4O2pg5elO+86l99nY58/VUF0byrYsjiSFluNlXYrOHcBar7+EogUADEQ0YRGHbzoKAASBkg2+9cpM1rV0tK2QOcXW7bLEFAARAXIF4w2DrDWoeUWaf4hQIgDiA8GPZ2iNfi0Q8UACkAIgrDbrJ385eDxaPLLrEsFAB5oG6lMPJQPLZZZKAACBGVhcG2Q+bmuLu2nk55e4jqPv1IeEoceiBeX7s2zCa5MAqdstl91vfXwaEGsv/rb5TtOFk6tWXOuJGh6KmnhO9sayrMninPx103JBtXblHkice58cINZP4Hyr5wpkgkdiChEmc4FWazLzenNKa/p0jncwDiqcD6BuWePk07t1asatZGoYQzSqA4nFJ7soNiP/+EUyfc25GI2GG53dHPrKo1g/1Cw4pIXLrzO+1c+/wg7tBbFDle/EbQcjFCPWQJCau5EoBoFpzXHYDwFNJcDiCaBed1ByA8hTSXA4hmwXndAQhPIc3lAKJZcF53AMJTSHM5gGgWnNcdgPAU0lwOIJoF53UHIDyFNJcfSiCdnZ0Ui8U0SxlMd7lcjubn561gh+Y1scFIU/0o/3sgeLO12E2k7UXKYumgFoAYdg8ACIAYpoBh6cAhAGKYAoalA4cAiGEKGJYOHAIghilgWDpwCIAYpoBh6cAhAGKYAoalA4cAiGEKGJYOHAIghilgWDpwCIAYpoBh6ZQ4JB6PKzviYthnNy4d9h+1M5mMlVckkUjsG5dhiBMCEMPg/wuOfrZZ/RSywQAAAABJRU5ErkJggg==",la="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAVnCAYAAACzfHDVAAAAYHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjaVcjJDYAwDEXBu6ughBfH+YnLQSwSHVA+Yrkwx7HtPHabHuEWrQ+lBBAZ6TMweBWoCwUH8quZH6VWFXVT696zxp12ARkVFEqn8wB8AAAACXBIWXMAAC4jAAAuIwF4pT92AADZLklEQVR42uzdd5hV9Z0/8M+dmcsUZmDovYOhKCiKYhR7JJuoSTCWGFI0WUxijBoTTXazVlyza4maYm9rTRSJigVsqCDNQhHBAogKCEgRMjMMU+7vj93sL8kqClLmnPt6PY+PeXZM9vP9vO8jZ+Y955xMfJLjorBrRMuSgmiViyjN1Ee2oSCyucbIBAAAAAAAAADbXaYgcoWNUZcrirpMbdRsysa69wbF+rggGrf439vSF7seF12aFUTnxvoosGIAAAAAAACAXacgoqEgF++/VRgr4r5o+Kh/pvD//F8uiII+LaPrum/EXzqui2b1ddHGKgEAAAAAAAB2rVxEQWMmWrQtjHZlA6N2w2tR84//zP8pgHu3ib6NBdG+zdqorK6KVUXZaB85j3sGAAAAAAAAaAoaG6OwIBdtyneP2PBabPzbr/1dAdx3VHRtyESHiIhcYzQrLo7WmVzkcjmPgAYAAAAAAABoSgpy0eIfS+D/LYD7fy3abC6Inn/7X2hsjELlLwAAAAAAAEDT9D8lcM1fHwddFBFxyAVR9M686PVp/gfqayKiJiLqLBMAAAAAAABgh8hGRGlEUekn/6PFEb3ikNgQk6O+KCJi6dzoksv83/cB/1X9xoiaJdmoWxlRV1dk2QAAAAAAAAA7QTZbH9muERX96v7n9t7/q6Exinq3i86LI94pjOOisHUu+uYykfmof7h+Y8Sa6aVRt74gGhs9DRoAAAAAAABgZ2lsLIi69QWxeUUmSjs0/vedwR8hk4uydSfE+wVd6qOyMfMx7/mtj9jwUtbjngEAAAAAAAB2obrqolg7IxtR/9Ffb4wo7P5GtCwobRaVH/c/UvNmNuqqPfIZAAAAAAAAYFerqy6KmjezH/v1ktpoVZBr/PgCeMN7yl8AAAAAAACApmJLHW5jUVQWNDSP+Q3ZeLco4i9/+8X6teHRzwAAAAAAAABNSd3/dLn/oLAoqqIuVhXFxhhSGB/xqGjlLwAAAAAAAECTU1eTjaK/KXSLIv7SWB+bc5ko9YxnAAAAAAAAgATJFv393bz1EeV//c8F1gMAAAAAAACQDgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKSEAhgAAAAAAAAgJRTAAAAAAAAAACmhAAYAAAAAAABICQUwAAAAAAAAQEoogAEAAAAAAABSQgEMAAAAAAAAkBIKYAAAAAAAAICUUAADAAAAAAAApIQCGAAAAAAAACAlFMAAAAAAAAAAKaEABgAAAAAAAEgJBTAAAAAAAABASiiAAQAAAAAAAFJCAQwAAAAAAACQEgpgAAAAAAAAgJRQAAMAAAAAAACkhAIYAAAAAAAAICUUwAAAAAAAAAApoQAGAAAAAAAASAkFMAAAAAAAAEBKKIABAAAAAAAAUkIBDAAAAAAAAJASCmAAAAAAAACAlFAAAwAAAAAAAKREkRUAAACwrUpLSwuGDRvWfMCAAS26du3avKysrLiioqKkZcuWzZs1a1bcvHnz0tLS0rJsNtusuLi4ebNmzUoLCgo+8/eijY2N9Zs3b66pra2tqqur21xTU1NdVVVVs2nTptqNGzdWbdiwoeYvf/nL5hUrVlQtWLBgw6xZs6pqamoaJQYAAEDaKYABAACIiIghQ4aUHnTQQW379u3bql27dq3at2/fpkWLFq2bN29eWVpa2qpZs2bNCwsLm2ez2fLCwsLyoqKi8sLCwtKknK+hoaG6vr6+qqGh4S91dXV/aWhoqNq8eXNVTU3NuqqqqvUbNmxYu2rVqjWrV69e99Zbb6177rnnPpgzZ06NTwYAAABJogAGAADIA8OGDWt+xBFHdBwwYECnLl26dGjdunXHFi1adCgtLe1YUlLSvlmzZq0KCgqK07yDwsLCssLCwrKIaPdp/zuNjY21mzdvXrdp06ZVNTU172/YsGHl2rVr31+2bNnKBQsWrHjyySffnzVrVpVPGAAAAE1Fpuexsd9HfaF+ZcSal0ptCAAAIAE6deqUPf744zvtueeeXbp3796lbdu2XSorKzuXlpZ2KS0t7VBYWFhhSztGQ0PDxpqampU1NTXL169fv+yDDz5Y9s477yybPXv2sj/96U8rVqxYUWdLAAAAbE9t9q6Jog4f/TUFMAAAQEJks9nMt7/97Y4jRozo1bdv397t2rXrXl5e3rWsrKxzcXFx+4gosKUmp7G2tnZVTU3Nso0bNy5btWrV0tdff/2tJ598cvG999672noAAADYFgpgAACAhPne977X6a9Fb/v27Xu1bNmyV1lZWa8kvXOXLauvr9/wl7/8ZdG6desWL1u2bNHChQsX/fGPf1w8derUjbYDAADAliiAAQAAmqhsNps59dRTuxx66KH9+/Tp87n27dv3Ly8v719UVOSRzXlq06ZNKzZu3Pj6+++//8abb775xqOPPvrG3XffvcpmAAAA+CsFMAAAQBNx6qmndvniF784qHfv3v3btWv3uYqKis8VFhaW2wxbUl9fv37Dhg1vfPDBB68vXrz4jccee2z+jTfeuNxmAAAA8pMCGAAAYBc45phjWn/rW9/aq3///kPatGnTv6Kiop9HOLO9NDQ0VG/cuPGtNWvWLFy4cOGcO+6445WHHnporc0AAACknwIYAABgJzjjjDO6f+lLX9qrV69eg1u3bj2orKysR0RkbIadJFddXb103bp18xcvXjz30UcffeXqq69+x1oAAADSRwEMAACwnZWWlhb86le/2u3QQw8d1r17931btmw5qLCwsMxmaEoaGhqqP/zww/nvvPPOzGeeeWbW2LFj36ipqWm0GQAAgGRTAAMAAGwHP/7xj7t+9atf3bdXr15D27Ztu1c2m21jKyRJXV3dmg8++OCVRYsWvfznP/95xh/+8IdltgIAAJA8CmAAAIBtcOKJJ7Y75ZRTDujXr9+w1q1bD81ms61shTSpq6tbt3bt2pfffPPNWbfccsvUe++9d7WtAAAANH0KYAAAgE+hoqKi4IILLhg0YsSI/bp27bpfy5YtB2YymUKbIR/kcrmGDz/8cP6777474/nnn59x4YUXvrZx40aPiwYAAGiCFMAAAAAf4/jjj2/7/e9//8D+/fsf2Lp1630KCgpKbAUiGhsbN61fv37eW2+9NeWGG2545u67715lKwAAAE2DAhgAAOB/ZLPZzAUXXPC5I4888sDu3bsfWFFRsVtEFNgMbFl1dfWSd999d8qsWbNmnnvuuS+vW7euwVYAAAB2DQUwAACQ10pLSwsuvfTSQYcccsjBXbt2HVFWVtbDVmDb1dbWrnr//fdfmDp16uRf/vKXL65evbreVgAAAHYeBTAAAJB3Bg0aVHrBBRd8fs899zywQ4cOBxQVFbWwFdj+Ghsba9euXTtrzpw5T59//vmTX3755WpbAQAA2LEUwAAAQF4YNmxY8/POO+/gIUOGHOZ9vrDz/W0ZfNFFFz07a9asKlsBAADY/hTAAABAarVq1arwyiuv3HfEiBEjO3TocFBhYWGZrcCu19DQUP3+++8/O2XKlIk/+clPZm7cuLHRVgAAALYPBTAAAJAqrVq1Kvztb3+7/3777Xd4x44dRxQWFpbbCjRdDQ0NG99///0pM2bMeOqHP/zhC8pgAACAz0YBDAAApMJZZ53V45vf/OaRvXr1GllaWtrVRiB5ampq3l28ePHEO++8c9LVV1/9jo0AAABsPQUwAACQWMOHDy+/6KKLvjB48OCjW7RoMdBGID0+/PDDV+fNmzfhvPPOe3L69Ol/sREAAIBPRwEMAAAkSqtWrQpvuOGGQ/bbb79/atOmzX6ZTCZrK5BeuVyubs2aNTNmzJjx2JgxYyavW7euwVYAAAA+ngIYAABIhB//+Mddv/e9732lZ8+e/1RcXNzWRiD/1NbWfvD2228/dssttzz029/+9l0bAQAA+L8UwAAAQJNVUVFRcO21137+4IMPPrZ169b7ZTKZAlsBIqJxzZo1M59//vnxp5122hR3BQMAAPx/CmAAAKDJOeWUUzqefvrpx/bu3ftL2Wy2jY0AH6e+vn7j0qVLH/vd7373x+uvv36ZjQAAAPlOAQwAADQJ2Ww2c+uttx5wyCGHnNC6deu9I8LdvsDWaFy7du1L06ZN+/OPfvSjZ1evXl1vJQAAQD5SAAMAALtU//79S6655pp/2nPPPY8tLy/vayPAZ1VTU7NswYIF488999wHp06dutFGAACAfKIABgAAdomf//znPU855ZQTu3btemRhYWGZjQDbW2NjY92KFSuevOWWW+689NJLF9kIAACQDxTAAADATuMxz8Cusn79+rlPP/30f5188slT6+rqcjYCAACklQIYAADY4fr27Vv8hz/84a+Pee5nI8CuUlNT8+68efPu/8EPfvDgwoULN9kIAACQNgpgAABghxkyZEjpNddc89XBgwefWFxc3MFGgKaitrZ21dy5c+/5yU9+8uc5c+bU2AgAAJAWWyqAPYoNAADYJqNHj+4wb968n06ZMuXRYcOGnaH8BZqa4uLi9sOGDTtjypQpj86bN++nJ510UntbAQAA0s4dwAAAwFY599xze33/+9//dufOnY/IZDJZGwGSIpfL1S1fvvzJG2644fbLLrvsbRsBAACSyiOgAQCAz+y8887r+53vfOfbHTt2PDyTyRTaCJBUuVyuYcWKFU/cdNNN//XrX/96sY0AAABJowAGAAC22WWXXTboG9/4xg9at249zDaAtFm7du2su++++9pzzjnnNdsAAACSQgEMAABsNcUvkE8UwQAAQJIogAEAgE9N8Qvks7Vr18665557rvv5z38+3zYAAICmaksFcGHlwOj6UV9orIqoWZG1PQAAyBO/+MUvet9xxx3nHHrooT8pLS3tYiNAPiotLe2y7777HvP973+/X1lZ2ZIpU6assxUAAKCpKetcHwXlH/01BTAAAOS5M844o/u99957zpe//OWflZeX94qIjK0AeS5TXl7e8+CDDx71/e9/v3dEvDVjxowPrQUAAGgqFMAAAMD/ceKJJ7a77777fjJq1Kh/KS8v7xOKX4B/lCkvL+99+OGHj/rWt77VfvXq1Qvnz59fbS0AAMCutqUC2DuAAQAgzwwdOrTs+uuvP6l///4nFRYWltkI20NjY2Ns2rQpqquro6amJurr62PTpk2xefPmqK+vj+rq6qivr4/NmzfHpk2boqGhYZv/fxUWFkZJSUk0a9YsioqKoqysLIqKiqJZs2ZRUlISRUVFUVpa+r9/FRQUCIjtoqGhoeq11167a8yYMffMmTOnxkYAAIBdZUvvAFYAAwBAnujUqVP2nnvuGbXXXnudnM1mK22Ej9PQ0BAbN26MDRs2/J+/Nm7cGBs3boyamprYtGlTbNq0KWpqaqK2trbJnqe4uDhKSkqitLT0f/9eUVERFRUV0aJFi//zV0VFRRQWFvog8LHq6urWvvjii7eceOKJf169enW9jQAAADubAhgAAPLcXXfdddAXv/jF00tLS7vZRn7L5XKxYcOGWLt2baxbty7Wrl37d3+tW7cuNmzYkPd7atGiRbRu3TpatWoVrVu3jjZt2vzvf27dunW0aNHCh4morq5e+sgjj1zzne98Z6ptAAAAO5MCGAAA8tTVV189+MQTTzyzoqJioG3kj8bGxli5cmUsX748Pvjgg1i9evX//n3t2rXR2NhoSZ9RYWFhtGrVKtq1axdt27b937937tw5OnTo4LHTeWbDhg3z77333qvOPPPMebYBAADsDApgAADIM1/72tfaXHrppad27979qIjQRKVUQ0NDrFq1KlasWBHvv//+//595cqVTfqRzGlXXFwcHTp0iI4dO0bnzp2jY8eO0alTp2jXrp1HS6dYLpdrfOeddx76+c9/fv2ECRPW2QgAALAjKYABACBP9OrVq9ldd931jT322OM7hYWFZTaSHh9++GG88847sXTp0njvvfdixYoVsXr16mhoaLCchCgsLIz27dtHp06dolu3btG9e/fo3r27x0mnTENDQ9W8efNu++Y3v/nHJUuWbLYRAABgR1AAAwBAHrjrrrtG/NM//dOZJSUlXWwj2davXx9Lly6Nd955539L3w8//NBiUqqysvJ/y+C//tWqVSuLSbiamppljz322G9Gjx49xTYAAIDtTQEMAAAp9qtf/arPD3/4w5+1atVqL9tIno0bN8aSJUvirbfeikWLFsV7770XmzZtspg8V1JSEl27do0+ffpE3759o3fv3lFeXm4xCbRu3bqXr7322ivGjh27yDYAAIDtRQEMAAApNGjQoNI77rjju7vttttJBQUFWRtJhtWrV8ebb74ZixcvjiVLlsTy5cujsbHRYtiigoKC6Ny5c/Tu3Tt69+4d/fr1i7Zt21pMQjQ2Nta98cYbd33rW9+6ff78+TU2AgAAfFYKYAAASJHS0tKCBx988Jj99tvvn7PZbBsbaboaGhri7bffjrfeeisWLFgQS5YscXcv201FRUX06tUr+vbtG3379o2ePXtGYWGhxTRhdXV1a2bMmHHjV77ylYdqamr85gcAALDNFMAAAJASp59+erdf/vKX51ZWVu5jG03T6tWr47XXXouFCxfGm2++GRs3brQUdooWLVpE3759Y8CAATFw4EB3CDdh69evf/E//uM//vPqq69+xzYAAIBtoQAGAICEGzRoUOm99977w969ex+byWTc4teErF+/PubNmxcLFiyIN954Q+FLk9GiRYvo169fDBgwIPbYY4+orKy0lCYkl8s1LF68eNyJJ554rcdCAwAAW0sBDAAACXbNNdcMOemkk35RVlbWyzZ2vVwuF++++27MnTs3XnvttViyZIl3+NLkFRQURK9evWLQoEExePDg6Natm6U0EdXV1UvuvvvuX//kJz+ZYxsAAMCnpQAGAIAEOuqoo1r99re//VmHDh0Ot41da9OmTTF79uyYO3duLFy4MKqqqiyFRGvevHn0798/Bg8eHHvuuWeUlJRYyi62cuXKp04//fTLJ0yYsM42AACAT6IABgCAhBk3btwRRxxxxFnZbLaNbewaVVVVMXfu3Jg7d27Mnz8/amtrLYVUKi4ujoEDB8bgwYNj8ODBUV5ebim7SF1d3ZqnnnrqqlGjRj1hGwAAwJYogAEAICFOOeWUjhdddNEvW7duvZ9t7HwrV66MWbNmxdy5c+Odd96JXC5nKeSdzp07x9577x3Dhg2LDh06WMgusHbt2hnnnXfepbfccsv7tgEAAHwUBTAAADRxpaWlBU899dQ3Bw8e/L2CggLPYt2JVqxYES+99FK89NJLsXz5cguBv/HXMnjvvfeOTp06WchO1NjYuGnu3Lk3H3744XfV1NR40TgAAPB3FMAAANCEjR49usOll176yzZt2gy3jZ1j/fr18eKLL8bMmTNj6dKlFgKfQs+ePWPfffeNYcOGRYsWLSxkJ1mzZs0L55577q/vvvvuVbYBAAD8lQIYAACaoIqKioKJEyd+c/Dgwd8vKCgotpEda8OGDfHiiy/G9OnTlb7wGfXo0SOGDx8ew4YNi4qKCgvZwdwNDAAA/CMFMAAANDGnnHJKx7Fjx/5rZWXlMNvYcerr6+PVV1+NGTNmxLx586Kurs5SYDvKZrMxZMiQ2HfffWP33XePwsJCS9mB1q5dO+MXv/jFv995550rbQMAAPKbAhgAAJqIbDabeeKJJ47fZ599fuSu3x0jl8vFwoULY/r06TF79uzYtGmTpcBOUFpaGkOGDInhw4fHgAEDLGQHaWhoqJ42bdo1Rx555J9tAwAA8pcCGAAAmoDjjz++7ZVXXvmr1q1be9fvDrBmzZqYNm1azJw5M1audHMc7EodO3aMz3/+87H//vt7X/CO+3fetDPPPPOScePGfWAbAACQfxTAAACwi9100037HXvssf9WXFzc1ja2n1wuF6+99lo8//zzMW/evKivr7cUaEKKiopizz33jBEjRsTnPve5yGQylrId1dbWrvrjH/948Q9+8INZtgEAAPlFAQwAALvIkCFDSu+///5zunTp8k+2sf2sXbs2Jk+eHNOnT48PP/zQQiABKisrY8SIEXHIIYdEeXm5hWxHy5Yte+zrX//6f86ZM6fGNgAAID9sqQAurBwYXT/qC41VETUrsrYHAADb6IILLtjt97///VVt2rQZZhvbx+LFi2P8+PFx9913xxtvvBG1tbWWAgmxadOmeOONN+LZZ5+NtWvXRps2bTweejtp0aJFv5NOOumg0tLSuc8+++xaGwEAgPQr61wfBR/zu7XuAAYAgO0sm81mJk2a9PVhw4b9pKCgwG9VfkZ1dXUxY8aMeOaZZ+K9996zEEiRfv36xSGHHBJDhw6NgoICC/mMGhsbN8+YMeOaL37xi+Pq6upyNgIAAOnlEdAAALCTHH/88W2vuuqqCyorK/exjc9mzZo18dRTT8XUqVNj06ZNFgIpVlFREZ///OfjsMMOi8rKSgv5jNavXz/r9NNPv3DcuHEf2AYAAKSTAhgAAHaC22677fNf+9rXzstms5W2se0WLVoUjz/+eMybNy9yOTewQT4pKiqKIUOGxBFHHBG9e/e2kM+grq5u3QMPPHDRySefPM02AAAgfRTAAACwA1VUVBQ8/fTTpwwcOPCUTCbjGabbIJfLxauvvhpPPvlkLFy40EIgz2UymRgwYEAcccQRMWjQIAvZ9n+3Ns6fP/+Www8//JaNGzc22ggAAKTHlgrgwsqB0fWjvtBYFVGzwuvKAABgS0488cR2EyZMuLx79+5fzmQyGRvZOo2NjTFr1qy49dZb48knn4wPPvC0UuC/rV69OmbMmBFz5syJ0tLS6NSpU/jX7NbJZDKZ9u3bD/3+978/dPny5TNfffXValsBAIB0KOtcHwXlH/O9gDuAAQBg29x66637H3vssRcWFRW1sI2tU1NTE0899VQ8++yzsWHDBgsBPlGLFi3i4IMPjsMPPzxKS/28YmvV19d/OG7cuPNPPvnk6bYBAADJ5xHQAACwHWWz2cyzzz77rSFDhvzAI5+3zqZNm2Ly5Mnx1FNPKX6BbdKiRYs47LDD4pBDDlEEb6VcLtfwyiuvXHfooYfeWVdX5yXrAACQYApgAADYTo455pjW11133cWVlZV728ant2HDhnj88cdjypQpUVtbayHAZ1ZcXBwHHnhgfPGLX4wWLTyIYWusWbNm2re//e3zn3nmGb+JAwAACeUdwAAAsB1cfvnlu1900UW/LS8v72cbn05VVVVMmDAhbrnllnjzzTejoaHBUoDtoqGhIZYsWRLPPfdc1NTURI8ePSKb9XOMT6OsrKzb17/+9SPbtm0774knnlhtIwAAkMDreu8ABgCAz+bhhx/+8qGHHnpOQUFBsW18sk2bNsUzzzwTTzzxRFRVVVkIsMOVl5fHkUceGYccckgUF/tX9afR2Ni46emnn/71Mccc87htAABAsngENAAAbKN27doVTZ48+YxevXodZxufrK6uLp5++umYOHGi4hfYJSoqKuKLX/xiHHzwwe4I/pQWLVr0x4MOOuiadevWeUwDAAAkhEdAAwDANjj22GPbPvzww7/p2LHjobaxZXV1dfHkk0/GddddF3Pnzo26ujpLAXaJzZs3x2uvvRbPPfdcRET06NEjCgsLLWYLWrduvfv3vve9fd9+++1pCxYsqLYRAABo+rb0CGgFMAAAfITLL7989wsuuOB3zZs372UbH6+xsTGmTJkS119/fbzyyiuKX6DJ2Lx5cyxYsCCmT58excXF0a1bt8hkMhbzMUpKSjp8+ctfPrJt27ZzvBcYAACaPu8ABgCArTB+/Pgjv/CFL/xLQUFBiW18vAULFsT48eNj6dKllgE0eT169IivfOUrMWjQIMvYgsbGxpqJEydecuyxxz5pGwAA0HR5BzAAAHwK7dq1K3ruued+1qNHj6/axsdbtGhR3H///bF48WLLABKnV69ecdxxx0WfPn0sYwuWLl3654MOOujy1atX19sGAAA0Pd4BDAAAn2DYsGHNn3766V936tTpC7bx0TZs2BD33Xdf/PGPf4y1a9daCJBI69evj2nTpsW6deuiZ8+eUVLiYQ8fpbKysv+3v/3t/lOmTJmyfPlyz/cHAIAmxjuAAQBgC372s5/1uP76669t0aKF54J+hJqamhg/fnzcfPPN8fbbb0cul7MUINFyuVy888478cwzz0RVVVX07t07slk/A/lHZWVl3U488cTD6+rqZkyfPv1DGwEAgCZ0va4ABgCAj3bFFVfscdZZZ11dXFzcwTb+Xi6XixkzZsR1110XCxYsiMbGRksBUqWxsTGWLFkSM2bMiPLy8ujSpUtkMhmL+RvZbLbFQQcddHibNm1mP/HEE6ttBAAAmoYtFcDeAQwAQN6aNGnSqAMOOODsTCZTaBt/b9GiRXHPPffEu+++axlA3ujWrVucdNJJ0bt3b8v4B7lcrm7y5Mm//vKXv/yIbQAAwK63pXcAK4ABAMg7paWlBTNnzjyzT58+x9vG39uwYUOMGzcuZsyY4VHPQF7KZDKx3377xde//vWoqKiwkH+waNGiP+27775X1dTUeCwEAADsQgpgAAD4H926dctOnjz5V506dRppG/9fLpeLqVOnxp///OfYuHGjhQB5r6KiIkaNGhX777+/x0L/g+XLlz9+6KGHXvLuu+/W2QYAAOwaWyqAvQMYAIC8MXz48PInnnjiynbt2o2wjf/vnXfeiWuvvTaee+652Lx5s4UARMTmzZtjzpw58dprr0XPnj2jRYsWlvI/Kioq+n7rW98aMnXq1Ofee+89f3AAAMAusKV3ACuAAQDIC9/+9rc73n777X9o0aLFANv4b1VVVXHXXXfFvffeG+vXr7cQgI+wbt26eP7552P9+vWx2267RVFRkaVERElJSefjjjvuoA8++GDKK6+88hcbAQCAnUsBDABAXjv//PP7XXzxxX8oKSnpbBv/bfr06XHttdfGokWLLAPgU3jnnXdi2rRp0bp16+jc2R8nERHZbLbyC1/4whElJSUvTp48eY2NAADAzqMABgAgb/3ud7/b60c/+tFVRUVFrWwjYs2aNXHzzTfHpEmTora21kIAtkJtbW289NJL8c4770Tfvn2jtLQ073dSWFhYNnz48C/26dNn4UMPPbTMpwQAAHYOBTAAAHnp1ltv3f+b3/zmfxYWFjbP913kcrl4/vnn4/rrr4/ly5f7cAB8BitXroxp06ZFRUVFdOvWLTKZTF7vo6CgIDto0KBDBw0atOiBBx54xycEAAB2vC0VwJmex8Z+H/WF+pURa17ym6wAACTTww8//KXDDjvsXzKZTN6/rPGDDz6I22+/Pd544w0fDIDtbMCAAfGtb30r2rRpk/e7yOVyjVOmTPn1yJEjH/LJAACAHavN3jVR1OGjv6YABgAgdV555ZXTPve5z30r3/fQ0NAQjz32WDz++ONRV1fngwGwg2Sz2Tj66KPjC1/4QhQUFOT9Pl5//fU79tprr9/7ZAAAwI6jAAYAIC9ks9nMyy+/fFafPn2Oz/ddvPvuu3HbbbfFe++954MBsJN069YtvvOd70S3bt3yfhdLliy5f5999rmypqam0ScDAAC2PwUwAACpV1paWjBr1qyzevfufVw+7yGXy8WTTz4ZDz74oLt+AXaBbDYbxxxzTBxxxBF5fzfw0qVLHxg6dOjlSmAAANj+FMAAAKRar169mk2ePHlsu3btDsrnPaxcuTJuueWWePvtt30oAHaxnj17ximnnBIdOnTI6z2sXr16yiGHHPIvS5Ys2exTAQAA28+WCuDCyoHR9aO+0FgVUbMia3sAADRpQ4cOLXvqqacub9Omzf75uoNcLhfPPPNMXH/99bF27VofCoAmYP369TFlypQoKSmJnj17RiaTycs9NG/evPtJJ500ZPLkyc+sWLHCoykAAGA7KetcHwXlH/01BTAAAIk1ZMiQ0kceeeSKVq1a7Z2vO6iuro7bb789nnjiiWhs9IRNgKaksbEx5s+fH++//34MGDAgstn8/DlLaWlpp6997WuDn3rqqadXrlxZ75MBAACfnQIYAIDUOfTQQ1s8+OCDv2/ZsuUe+bqDOXPmxNVXX+2RzwBN3PLly+OFF16Ijh075u0joUtLSzudcMIJ+7/00ktPv/3227U+FQAA8NkogAEASJVhw4Y1v++++37TsmXLQfl4/vr6+hg/fnz88Y9/jNpaP0MHSILNmzfHiy++GJs3b47ddtstCgoK8m4HxcXFbY866qg9n3vuuaeXL1/ucdAAAPAZKIABAEiNI488snLcuHG/b9GixcB8PP97770XV111VcyZM8eHASCBFi1aFC+//HL069cvWrRokXfnLykp6XDcccftP2fOnGcWLVq0yScCAAC2jQIYAIBUOPLIIyvvvPPO35aXl++Wj+d/+umn48Ybb4wPP/zQhwEgwf7yl7/ECy+8ECUlJdGrV6+8O3+zZs3aHHXUUfspgQEAYNspgAEASLxjjz227W233faH5s2b98m3s1dVVcXNN98cTz31VDQ2NvowAKRAY2NjzJ8/P5YtWxYDBgyIZs2a5dX5mzVr1uaYY4458M0333xm4cKFNT4RAACwdRTAAAAk2qGHHtritttuuzofy9+33347rrnmmli8eLEPAkAKvf/++/HKK69Enz59orKyMq/Ons1mK4888sh9Zs6c+dTSpUs3+zQAAMCnpwAGACCxjjjiiJb33nvvteXl5f3y6dy5XC4mTZoUN998c1RVVfkgAKRYVVVVTJ06NbLZbPTp0ycymUzenL24uLjtV7/61c+/8sorTy1evLjWpwEAAD4dBTAAAIl06KGHtrj33nt/l2/lb3V1ddx0000xefLkyOVyPggAeSCXy8WCBQvi3Xffjd133z2y2fz5mUyzZs1aH3300fvNmDHjSXcCAwDAp6MABgAgcYYOHVo2fvz4qysqKgbk07mXLVsWV111lUc+A+SplStXxiuvvBKf+9znoqKiIm/O3axZszZHH3300GeeeebJFStW1PkkAADAlimAAQBIlCFDhpQ++uij17Rs2XL3fDr31KlT49prr42NGzf6EADksaqqqpg+fXq0bds2unTpkjfnLikpaT9q1KihTz755JMrV66s90kAAICPt6UCuMB6AABoSjp16pSdMGHCv1dWVu6RL2dubGyMcePGxR133BF1dW56AiCitrY2br755hg/fnw0NjbmzbkrKyv3mDBhwr9369bNXQkAALCNFMAAADQZrVq1Kpw+ffolbdq02T9fzlxdXR2/+93vYtKkSd73C8DfyeVy8fjjj8fvf//7qK6uzptzt2nTZv8pU6Zc0qpVq0KfAgAA2HoKYAAAmoSKioqC2bNnX9KuXbuD8uXMS5cujYsuuijmz5/vAwDAx3r11VfjoosuiqVLl+bNmdu1a3fQ7Nmz/72iosLPrgAAYCu5iAYAoEmYOXPmz9q1a3dIvpz35ZdfjiuuuCLWrVsnfAA+0bp16+KKK66Il19+OW/O3K5du4Nnzpz5M+kDAMDWUQADALDLvfjii2N69OgxKh/Omsvl4oEHHogbbrghamtrhQ/Ap1ZbWxs33HBDPPDAA3nz2oAePXqMevHFF8dIHwAAPj0FMAAAu9SkSZO+NnDgwFPy4ax1dXVx8803x8SJE73vF4BtksvlYuLEiXHLLbdEXV1dXpx54MCBJ0+aNOlr0gcAgE9HAQwAwC7z6KOPHnXggQeekw9nXbduXfz617+OWbNmCR6Az2zmzJnx61//Ol9eJZA58MADz3n00UePkjwAAHyywsqB0fWjvtBYFVGzImtDAADsEDfeeOO+Rx999EWZTKYw7Wddvnx5XHXVVbFy5UrBA7DdbNiwIWbPnh0DBw6MioqKtB8307179/179uz56sMPP7xc+gAA5LuyzvVRUP7RX1MAAwCw011xxRV7fPe7372qoKCgWdrPOmfOnPjtb38bGzduFDwA2111dXVMmzYtOnfuHB07dkz1WTOZTOHuu+9+eJs2bV6aNGnSKukDAJDPFMAAADQZZ5xxRvef/exnvy0sLCxP+1knTJgQd999d9TX1wsegB2moaEhXnrppchms9G3b99UnzWTyRTttddeB/3lL395dubMmRukDwBAvlIAAwDQJBx00EEVf/jDH64pLi7ulOZz5nK5eOCBB+Kxxx4TOgA77c+eBQsWRF1dXfTv3z8ymUxqz1pQUFBywAEHDJs+ffqkpUuXbpY+AAD5aEsFcIH1AACwMwwaNKj0vvvuu7qsrKxXms9ZV1cX1113XUyaNEnoAOx0EydOjOuvvz7q6upSfc6ysrJef/rTn67u379/idQBAODvKYABANjhKioqCh577LGLKyoqBqb5nNXV1XHNNdfE7NmzhQ7ALvPKK6/ElVdeGVVVVak+Z4sWLQZOnDhxbEVFhZ9vAQDA33CBDADADjdz5syftW3b9sA0n3HdunVx2WWXxRtvvCFwAHa5xYsXx2WXXRZr165N9TnbtWt34MyZM38mcQAA+P8UwAAA7FBPPvnkqB49eoxK8xlXrVoVV1xxRSxfvlzgADQZK1asiCuuuCJWrlyZ6nP26NFj1KRJk0ZJHAAA/lth5cDo+lFfaKyKqFmRtSEAALbZjTfeuO+XvvSlCzOZTGp/8fDdd9+NK6+8MtatWydwAJqc6urqmDVrVvTv3z8qKytTe85u3boN79mz57yHH37Yb2MBAJAXyjrXR0H5R39NAQwAwA5x3nnn9T311FOvLigoKE7rGV977bW45pprorq6WuAANFmbN2+OGTNmRI8ePaJ9+/apPGMmkykYNGjQIYWFhVOee+45v5UFAEDqKYABANipjjrqqFb/8R//8YdmzZq1SusZX3755bj++uujrq5O4AA0eQ0NDfHSSy9Fp06dolOnTqk8Y0FBQXbYsGGfnz9//qQ33nhjk9QBAEizLRXA3gEMAMB21a1bt+wNN9zwnyUlJR3TesYpU6bEjTfeGPX19QIHIDHq6+vjxhtvjKlTp6b2jCUlJZ1uuOGG/+jWrZu7GgAAyFsKYAAAtqunn376XyorK/dI6/kmTZoUd955ZzQ2NgobgMRpbGyMO+64I5588snUnrGysnLw008//UtpAwCQrxTAAABsN88///w3unTp8k9pPd/EiRNj3LhxkcvlhA1AYuVyubj//vtTXQJ36dLlS88+++yJ0gYAIB95BzAAANvFTTfdNPzII488L5PJZNJ4vsceeyzGjx8vaABS47XXXotmzZpF3759U3m+zp0779urV695Dz/88DJpAwCQNlt6B7ACGACAz+wXv/hF7x/+8IdXFxQUNEvj+R544IF45JFHBA1A6ixYsCDq6upiwIABqTtbJpPJDBo06ODGxsbnpk6dul7aAACkiQIYAIAd5oADDqj43e9+99tmzZq1TeP5xo0bF5MmTRI0AKm1aNGi2Lx5cwwcODB1ZysoKMjut99+w5577rnH33vvvc3SBgAgLbZUAHsHMAAA2yybzWbuvPPOfyktLe2exvNNmDBB+QtAXpg0aVI89NBDqTxbaWlpj3vuuedfstlsRtIAAOQDBTAAANvs+eef/06HDh0OTePZHn744Xj44YeFDEDeeOSRR+LPf/5zKs/WoUOHw5599tlvSxkAgHygAAYAYJvcd999hw8ePPjUNJ7t/vvvjwkTJggZgLzz2GOPxX333ZfKs+25554/+NOf/nSYlAEASDvvAAYAYKudccYZ3ceMGXN5QUFBcdrONnHixHjkkUeEDEDeWrx4cWSz2ejbt2/ajpbp06fPvn/5y18mz5w5c4OkAQBIsi29A1gBDADAVhk2bFjzG2+88Q/NmjVrl7azPfroo6l99CUAbI2FCxdGUVFR9OvXL1XnKigoKD7wwAP3e/LJJx9dsWJFnaQBAEiqLRXAHgENAMBWuffee39ZWlraPW3nevzxx+PBBx8UMAD8jz//+c8xceLE1J2rtLS0x3333fdLCQMAkFYKYAAAPrVJkyaN6tSp0xEpPFeMHz9ewADwD8aPHx+TJ09O3bk6der0hUmTJn1VwgAApJFHQAMA8Kmcd955fU888cR/z2QyRWk618yZM+Puu+8WMAB8jNdeey06duwYnTt3TtW5unbtuk9BQcHzzz333DopAwCQNN4BDADAZ3LEEUe0vOKKK67NZrOVaTrXyy+/HDfffHPkcjkhA8DHyOVyMXv27OjSpUt06tQpNefKZDJF++yzz/CpU6c+9u67726WNAAASeIdwAAAbLNsNpu55ZZb/q2kpKRjms61YMGCuPnmm6OxsVHIAPAJGhsb4+abb44333wzVecqLS3tcvfdd5+fzWYzUgYAIC0UwAAAbNGkSZO+3rZt2wPTdKZly5bFDTfcEPX19QIGgE+prq4urr322li+fHmqztWuXbsDH3/88VESBgAgLTwCGgCAj3XZZZcN+upXvzo2k8mk5hcH33///bjyyiujqqpKwACwlerq6uLll1+OIUOGRHl5eWrO1aVLl31LS0unPvPMM2ukDABAEngENAAAW61///4lJ5988q8ymUxRWs60YcOG+P3vfx8bN24UMABso40bN8bvfve7VP15WlBQkP3hD394ft++fYslDABA4q9vrQAAgI/y4IMPnl1WVtYrLeeprq6O3/zmN7Fq1SrhAsBntGrVqrjyyiujuro6NWcqKyvr8/DDD58lXQAAkk4BDADA/zF+/Pgju3XrdnRazlNfX5/KdxYCwK60fPnyuO6666K+vj41Z+rRo8dXx40bd4R0AQBIMgUwAAB/53vf+16nI4444py0nCeXy8Vtt90Wb7zxhnABYDt7/fXX47bbbotcLpeaMx155JHnfvvb3+4oXQAAkkoBDADA/6qoqCi4+OKLLywsLCxPy5nGjx8fs2bNEi4A7CCzZs2Khx56KDXnKSwsrPj1r399QUVFhZ+bAQCQSC5kAQD4XxMnThxdWVk5OC3nef7552PixImCBYAd7LHHHosXXnghNeeprKzc89FHHz1RsgAAJFFh5cDo+lFfaKyKqFmRtSEAgDxxwQUX7DZq1KgLM5lMYRrO8+qrr8Ytt9ySqkdSAkBT/7O3d+/e0a5du1Scp2PHjkNzudxzU6ZMWSddAACamrLO9VHwMc/wcwcwAADRt2/f4h//+McXZzKZVPwG4HvvvRc33HBDNDY2ChcAdpKGhoa47rrrYtmyZak4T0FBQfbss88e27dv32LpAgCQqGtZKwAAYPz48T8qKyvrkYazbNiwIX7/+99HbW2tYAFgJ9u0aVP8/ve/j40bN6biPGVlZb3GjRs3RrIAACSJAhgAIM/ddNNNw/v06XN8Gs5SX18f1157baxdu1awALCLrFmzJq699tqor69PxXn69ev3jd///vdDJQsAQFIogAEA8thBBx1Uceyxx/5rRGTScJ477rgjFi9eLFgA2MUWLVoUd955Z1qOU/CNb3zj34YNG9ZcsgAAJOIC1goAAPLXzTfffFZxcXG7NJxl4sSJMX36dKECQBMxbdq0mDRpUirOUlJS0unOO+88Q6oAACSBAhgAIE/913/914FdunT5UhrO8tprr8Wf//xnoQJAEzN+/PhYsGBBKs7SrVu3o2+66abhUgUAoKlTAAMA5KEvfelLlV/5yld+lYazrFixIq6//vpobGwULAA0MY2NjXHdddfFihUr0nCczHHHHfergw46qEKyAAA0ZQpgAIA8dPXVV5+ezWYrk36OmpqauPbaa2PTpk1CBYAmatOmTXHttddGTU1N4s+SzWbb3njjjT+RKgAATZkCGAAgz9x6663Du3Tp8uWknyOXy8Utt9wSK1euFCoANHErV66MW2+9NXK5XOLP4lHQAAA0dQpgAIA8MnTo0LKvfvWrv0jDWSZMmBBz584VKgAkxJw5c+Kxxx5LxVlGjRr1i6FDh5ZJFQCApkgBDACQR+64444fFRcXd0z6OV5++eV45JFHBAoACfPQQw+l4he4SkpKOt5xxx0/lCgAAE2RAhgAIE9cfvnlu/fs2XNU0s/xwQcfxB133JGKR0gCQL7J5XJx2223xZo1axJ/lp49ex57+eWX7y5VAACaGgUwAEAe6NatW/a73/3uv2YymURf/9XX18cNN9wQ1dXVQgWAhKqqqoobb7wx6uvrE32OTCZT8N3vfvdX3bp1y0oVAICmRAEMAJAHxo8ff0pZWVmvpJ/jnnvuiaVLlwoUABJuyZIlcd999yX+HGVlZT3Hjx9/ikQBAGhKFMAAACn385//vOeAAQNGJ/0c06dPjylTpggUAFJi8uTJMWPGjMSfY8CAAaN//vOf95QoAABNhQIYACDFstls5qyzzjo3k8kk+tGEK1asiLvvvlugAJAyd911V6xYsSLRZ8hkMtmzzjrr3Gw2m5EoAABNgQIYACDFxo0b98XKysq9knyG2trauOGGG6K2tlagAJAyf/1zfvPmzYk+R2Vl5V7jxo0bKVEAAJoCBTAAQEoNHz68/OCDDz4t6ee4//77Y/ny5QIFgJRavnx5jBs3LvHnGDFixI+HDRvWXKIAAOxqCmAAgJS69dZbT8tms22TfIYZM2bEc889J0wASLnJkyfHzJkzE32G4uLitrfffvtp0gQAYFdTAAMApNBVV121R48ePb6S5DOsXLky7rrrLmECQJ64++6744MPPkj0GXr27PnVK664Yg9pAgCwKymAAQBSprS0tOAb3/jGT5N8rdfY2Bi333679/4CQB6pqamJ2267LRobG5N8jIJvfvObZ5aWlvqZGwAAu+6i1AoAANJlwoQJX6uoqBiQ5DOMHz8+Fi1aJEwAyDNvvvlmPPjgg4k+Q4sWLQY9+OCDx0gTAIBdRQEMAJAiRx55ZOWwYcN+kOQzzJ07N5544glhAkCemjhxYixYsCDRZxg+fPiPjjjiiJbSBABgV1AAAwCkyBVXXHFyUVFRRVLnr6qqijvvvDNyuZwwASBP5XK5uP3226O6ujqxZygqKmrxm9/85mRpAgCwKyiAAQBS4vzzz+/Xu3fv45J8httvvz0+/PBDYQJAnlu3bl3cfvvtiT5D7969jz///PP7SRMAgJ1NAQwAkALZbDZz6qmn/jyTyST2+m769OkxZ84cYQIAERExe/bsmDFjRmLnz2QyBaeeeurPs9lsRpoAAOxMCmAAgBT44x//eERlZeXgpM6/du3auPfeewUJAPyde+65J9atW5fY+SsrKwf/6U9/+oIkAQDYmRTAAAAJ17dv3+JDDjnkR0k+w9133x01NTXCBAD+Tk1NTdx9992JPsPBBx/8o759+xZLEwCAnUUBDACQcHfdddc3S0pKOiV1/smTJ8e8efMECQB8pLlz58azzz6b2PlLSko63nPPPd+SJAAAO4sCGAAgwb70pS9VDhw48KSkzr9mzZoYP368IAGALXrggQdizZo1iZ2/f//+Jx111FGtJAkAwM6gAAYASLArrrji1MLCwvIkzp7L5eK2226LTZs2CRIA2KJNmzbFbbfdFrlcLpHzFxYWll1++eU/kCQAADuDAhgAIKF+8Ytf9O7evftXkjr/s88+G2+88YYgAYBP5Y033ojnn38+sfN369bt6F/96ld9JAkAwI6mAAYASKgf/vCHP8pkMom8nvvggw/igQceECIAsFXGjRsX69atS+TsmUym4NRTT/2xFAEA2NEUwAAACXTdddcNa9eu3YFJnD2Xy8Udd9wRtbW1ggQAtsqmTZvizjvvTOz8bdq02f+mm27aT5IAAOxICmAAgIQpLS0t+NrXvnZ6Uud/4YUXYuHChYIEALbJq6++GjNmzEjs/Mccc8zpFRUVfiYHAMAO42ITACBhbr/99oMrKip2S+LsGzZsiHHjxgkRAPhM7r///qiqqkrk7OXl5X3/67/+6wgpAgCwoyiAAQASpKKiouCwww47Nanz33vvvYn9YS0A0HRs2LAh7r///sTOf9BBB/1zq1atCiUJAMCOoAAGAEiQ+++//+iysrKeSZx9zpw58dJLLwkRANguXnjhhViwYEEiZy8tLe32xz/+8StSBABgR1AAAwAkRN++fYv33Xfff07i7LW1tXHvvfcKEQDYru6+++6oq6tL5Oz77bffKf379y+RIgAA25sCGAAgIW6++eZRxcXFbZM4+yOPPBJr164VIgCwXa1atSoee+yxRM6ezWbb3njjjV+TIgAA25sCGAAgAYYOHVq21157fSeJs7/33nvxxBNPCBEA2CEmTpwYK1asSOTsQ4YM+c7QoUPLpAgAwPakAAYASIBrr732xKKiosqkzZ3L5eKee+6JxsZGIQIAO0R9fX3cddddkcvlEjd7UVFR5bXXXnuCFAEA2J4UwAAATdwBBxxQMWDAgG8kcfYZM2bEW2+9JUQAYId6880348UXX0zk7AMGDPjG8OHDy6UIAMD2ogAGAGjirrrqqhOKiooqkjb3pk2b4oEHHhAgALBT3H///VFbW5u4uYuKilpcffXV7gIGAGC7UQADADRhBx10UEX//v0Teffvww8/HB9++KEQAYCdYv369TFhwoREzj5w4MBvHHDAARVSBABge1AAAwA0Yf/5n/95bGFhYfOkzb1q1aqYPHmyAAGAnerpp5+O1atXJ27uwsLC8ssuu2yUBAEA2B4UwAAATdQBBxxQMWjQoNFJnP3uu++O+vp6IQIAO1V9fX3cddddiZx99913/+bQoUPLpAgAwGelAAYAaKIuv/zyYwsLC8uTNvfcuXNjwYIFAgQAdokFCxbE3LlzEzd3UVFRi9/97ndflyAAAJ+VAhgAoAkaOnRo2aBBgxL37t+6urr405/+JEAAYJf605/+FHV1dYmbe/fdd//mkCFDSiUIAMBnoQAGAGiCfvOb33ylqKioZdLmfu655xL53j0AIF1Wr14dzz33XOLmLioqann11VcfLUEAAD4LBTAAQBPTq1evZoMHD/5m0uaurq6ORx55RIAAQJPwyCOPRHV1deLmHjJkyLe6deuWlSAAANtKAQwA0MTcdNNNxxQXF7dN2twTJkyIqqoqAQIATUJVVVUifzmtuLi43a233uouYAAAtpkCGACgCWnVqlXhXnvtdVLS5l61alU8++yzAgQAmpTJkyfHqlWrEjf30KFDR7dq1apQggAAbAsFMABAE3LLLbccXlJS0jlpcz/44INRX18vQACgSamvr48HH3wwcXOXlJR0vummmw6VIAAA20IBDADQRGSz2cwBBxzw7aTNvWjRonjppZcECAA0SS+99FIsXrw4cXOPGDHiO9lsNiNBAAC2lgIYAKCJuOaaa/YuLy/vm7S5H3roocjlcgIEAJqkXC6XyLuAy8vL+1111VV7SRAAgK2lAAYAaCK+8pWvfDdpM8+bNy8WLlwoPACgSVu4cGG8+uqrrg8BAMgLCmAAgCbgsssuG1RZWblPkmbO5XIxfvx44QEAifDAAw8k7qklrVu33veSSy7pLz0AALaGAhgAoAkYNWrUCUmbefbs2bFs2TLhAQCJsGzZsnjllVcSN/cJJ5xwovQAANgaCmAAgF3sn//5nzt37NjxiCTN3NjYGA888IDwAIBEGT9+fDQ0NCRq5k6dOn1h9OjRHaQHAMCnpQAGANjFfvSjH30tk8kk6rps2rRpsWrVKuEBAImyatWqeOGFFxI1cyaTKfzpT386SnoAAHxaCmAAgF1o0KBBpX369Plqkmaur6+PCRMmCA8ASKQJEyZEXV1dombu27fvV/r27VssPQAAPg0FMADALnTZZZcdXlRUVJGkmadOnRpr164VHgCQSOvXr48pU6YkauaioqLK3/zmN0dIDwCAT0MBDACwi2Sz2cy+++57UpJmrqurc/cvAJB4jz76aOLuAt5///1PymazGekBAPBJFMAAALvI1VdfPbSsrKx3kmaeMmVKbNiwQXgAQKJt2LAhnn/++UTNXFZW1ueqq67aS3oAAHwSBTAAwC7y5S9/+bgkzVtfXx8TJ04UHACQCo8//nji7gL+0pe+dLzkAAD4JApgAIBdYPTo0R3atm07IkkzT5s2LdatWyc8ACAVPvzww5g+fXqiZm7fvv2I0aNHd5AeAABbogAGANgFfvrTn47KZDKFSZm3vr4+HnnkEcEBAKnyyCOPRH19fWLmzWQyhT/96U+/JjkAALZEAQwAsJN16tQp26dPn6OTNLO7fwGANFq3bl1MmzYtUTP36dPnmE6dOmWlBwDAx1EAAwDsZFddddUB2Wy2dVLmbWxsjEmTJgmOVOvYsWN06OCJmgD5aNKkSdHY2JiYebPZbOurrrrqAMkBAPBxFMAAADvZiBEjvp6keV988cVYtWqV4Ei1Ll26xIUXXhinnXZadO3a1UIA8siqVavipZdecj0JAEBqKIABAHaiM844o3tlZeXeSZk3l8vFxIkTBUdeyGQyMXjw4PjVr34VY8aMcUcwQB55/PHHI5fLJWbeysrKvc8444zukgMA4KMogAEAdqJTTjnlqxGRScq8CxYsiPfee09w5JVMJhN77713XHjhhTFmzJho3769pQCk3HvvvRcLFy5M1B9X/3NdCQAA/4cCGABgJ+nVq1ezXr16fTlJM3v3L/nsr0XwBRdcECeffHK0bdvWUgBSLGnXPb169fpyr169mkkOAIB/pAAGANhJrrjiioOLiopaJmXeBN4JAztEYWFhDB8+PC688MIYPXp0VFZWWgpACi1YsCCWLVuWmHmLiopaXnnllYdIDgCAf6QABgDYSYYPH/6VJM2btHfhwY5WVFQUI0aMiEsuuSRGjx4dLVu2tBSAFMnlcvH4448naub99tvvK5IDAOAfKYABAHaC0aNHd6isrByalHnXrl0bL7/8suDgI/y1CL744ovjhBNOiBYtWlgKQEq89NJLsW7dusTMW1lZudfo0aM7SA4AgL+lAAYA2AlOP/30o5J07fXMM89EQ0OD4GALiouL47DDDouxY8fGqFGjoqyszFIAEq6hoSGeeeaZJI1c8D/XmQAA8P8vEq0AAGDHymazmX79+n05KfPW1tbGlClTBAefUnFxcYwcOTIuvfTSGDVqVJSWlloKQII9//zzUVtbm5h5+/Xr9+VsNpuRHAAAf6UABgDYwX7zm9/sWVJS0jkp886YMSOqq6sFB1uppKQkRo4cGZdcckkcffTRUVJSYikACVRdXR0zZ85M0p8/na+44orBkgMA4K8UwAAAO9gXvvCFLyVl1lwuF08//bTQ4DNo3rx5HHXUUXHJJZfEyJEjI5vNWgpAwjz11FORy+USM++RRx75ZakBAPBXCmAAgB1oyJAhpZ07dz4iKfO+/vrrsWLFCsHBdlBeXh6jRo2KSy+9VBEMkDArVqyI119/PTHzdunS5fD+/ft79AQAABGhAAYA2KHGjh17aGFhYWJeCOruX9j+KioqYtSoUXHxxRfH4YcfHkVFRZYC4LpouyosLGz+H//xHwdLDQCACAUwAMAOteeeex6ZlFnXrl0b8+bNExrsIK1atYrjjz8+LrroohgxYkQUFPh2DKApmzdvXqxZsyYx8+61115HSg0AgAgFMADADnPMMce0bt269b5Jmfe5556LxsZGwcEO1qZNmxg9enRcfPHFimCAJqyxsTGee+65JP35MvyYY45pLTkAAPykAQBgBznzzDMPz2Qyibjeqq+vj6lTpwoNdqK2bdvG6NGj47zzzovhw4crggGaoBdeeCHq6+sTMWsmkyk844wzDpUaAAB+wgAAsIP079//C0mZdc6cObFhwwahwS7QqVOnOPnkk+Pf/u3fYu+9945MJmMpAE3Ehg0bYvbs2YmZd8CAAR4DDQCAAhgAYEf43ve+16mysnKPpMybpMcbQlp17tw5xowZE7/61a8UwQBNyPPPP5+YWSsrKwd/73vf6yQ1AID8pgAGANgBTj755CMiIhHtzcqVK+P1118XGjQRXbt2jTFjxsQ555wTgwcPthCAXez111+PlStXJmXczMknn3y41AAA8psCGABgB+jXr19iHv88ZcqUyOVyQoMmpnfv3nHaaafFOeecE/3797cQgF0kl8vFlClTknQd6jHQAAB5TgEMALCdnX766d0qKip2S8Ks9fX1MW3aNKFBE9anT58466yz4pxzzonddtvNQgB2gWnTpkV9fX0iZq2oqNjt9NNP7yY1AID8pQAGANjORo8efURSZp03b15s3LhRaJAAffr0ibPPPjvOPPPM6Nmzp4UA7EQbN26MefPmuR4FACARFMAAANtZr169EvPetSQ9zhD4bwMGDIhf/vKXceaZZ0b37t0tBGAnmTp1apKuRw+TGABA/lIAAwBsR2eccUb38vLyvkmYdf369fHaa68JDRJqwIAB8S//8i9x2mmnRbdunvQJsKPNnz8/Pvzww0TMWl5e3u9HP/pRF6kBAOQnBTAAwHZ03HHHHZSUWWfMmBGNjY1CgwTLZDIxePDg+Nd//dcYM2ZMdOjQwVIAdpDGxsaYMWNGYub9xje+cYjUAADykwIYAGA76tOnz8FJmDOXyyXqMYbAlmUymdh7773jwgsvjDFjxkT79u0tBWAHeOGFF5J0XXqIxAAA8pMCGABgOznppJPat2zZcvckzLpkyZJYuXKl0CBl/loEX3DBBXHyySdH27ZtLQVgO1qxYkW8/fbbiZi1srJy0PHHH+8PAgCAPKQABgDYTr773e8eGBGZJMyapMcXAluvsLAwhg8fHhdeeGGMHj06KisrLQVgO5k+fXpSRi34/ve/f6DEAADyjwIYAGA72X333Q9Nwpz19fUxc+ZMgUEeKCoqihEjRsQll1wSo0ePjpYtW1oKwGc0c+bMqK+vT8SsAwcOPFRiAAD5RwEMALAdHHTQQRUtW7bcKwmzLly4MKqrq4UGeeSvRfDFF18cJ5xwQrRo0cJSALZRVVVVvP7664mYtVWrVkOHDx9eLjUAgPyiAAYA2A7OPvvsz2cymaIkzOrxz5C/iouL47DDDouxY8fGqFGjoqyszFIAtkFSnqaSyWSy55577uclBgCQXxTAAADbwe67735AEuasra2NOXPmCAzyXHFxcYwcOTIuvfRSRTDANpg9e3bU1dUlYtY99tjjAIkBAOQXBTAAwGfUqlWrwnbt2u2fhFnnzZsXtbW1QgMiIqKkpCRGjhwZY8eOjaOPPjpKSkosBeBT2LRpU8ybNy8Rs7Zv337/iooKPwMEAMgjLv4AAD6jCy+8cPeioqKKJMz64osvCgz4P5o3bx5HHXVUXHLJJTFy5MjIZrOWAvAJZs2alYg5i4qKWlx88cWDJAYAkD8UwAAAn9GBBx6YiMfqVVdXJ+ZOFWDXKC8vj1GjRsWll16qCAb4BPPmzYuamppEzHrQQQd5DDQAQB5RAAMAfEZdu3YdnoQ5582bF/X19QIDPlFFRUWMGjUqLr744jj88MOjqKjIUgD+QV1dXbz66quJmLVLly77SwwAIH8ogAEAPoNTTjmlY3l5+W5JmPXll18WGLBVWrVqFccff3xcdNFFMWLEiCgo8C0kwN966aWXEjFnRUXFbieddFJ7iQEA5AffvQMAfAYnnnji55MwZ21tbcyfP19gwDZp06ZNjB49OsaOHasIBvgb8+fPj9ra2iSMmvnud7/7eYkBAOQH37UDAHwGn/vc5/ZLwpwLFy6Muro6gQGfyV+L4PPOOy+GDx+uCAby3ubNm2PhwoWJmLVfv37DJQYAkB98tw4AsI1atWpV2Lp1672TMKvHPwPbU6dOneLkk0+Oc889NwYNGmQhQF6bPXt2IuZs06bN3hUVFX4WCACQB1z0AQBso/PPP39gYWFheVOfs76+PubMmSMwYLvr2bNn/OQnP4nzzjsv9t5778hkMpYC5J3Zs2dHfX19k5+zqKio4vzzzx8oMQCA9FMAAwBso/3333/fJMz5+uuvR01NjcCAHaZLly4xZsyYOOecc2Lw4MEWAuSV6urqeOONNxIx64EHHriPxAAA0k8BDACwjbp27ZqIxz/PnTtXWMBO0bt37zjttNPinHPOif79+1sIkDeScr3VvXv3vaUFAJB+CmAAgG0wZMiQ0srKyj2a+py5XM7jn4Gdrk+fPnHWWWfFOeecE7vttpuFAKk3e/bsyOVyTX7Oli1b7jlo0KBSiQEApJsCGABgG5x55pl7ZjKZbFOfc9myZbFu3TqBAbtEnz594uyzz44zzzwzevbsaSFAaq1bty6WL1/e5OfMZDLZs846a4jEAADSrcgKAAC23tChQ4clYc558+YJC9jlBgwYEAMGDIgFCxbE+PHjY+nSpZYCpM68efOiS5cuTX7OffbZZ5+ImC4xAID0cgcwAMA26Nix4z5JmHP+/PnCApqMAQMGxC9/+cs47bTTolu3bhYCpEpSrrs6deq0j7QAANJNAQwAsJWOOOKIlhUVFf2a+pxVVVWxaNEigQFNSiaTicGDB8e//uu/xpgxY6JDhw6WAqTCW2+9FVVVVU1+zoqKis8deuihLSQGAJBeCmAAgK108sknD46ITFOfc/78+dHY2CgwoEnKZDKx9957x4UXXhhjxoyJ9u3bWwqQaI2NjbFgwYJE/Cv4u9/97h4SAwBILwUwAMBW2n333fdMwpze/wskwV+L4AsuuCBOPvnkaNu2raUAiZWU66/BgwfvKS0AgPQqsgIAgK3Trl27wU19xlwul5Q7UAAiIqKwsDCGDx8e++yzT0ybNi0mTJgQ69evtxggURYsWBC5XC4ymab9sJgOHToMlhYAQHq5AxgAYCsMGjSotGXLlgOa+pzvvfdebNy4UWBA4hQVFcWIESPikksuidGjR0fLli0tBUiMDz/8MJYtW9bk52zZsuXA/v37l0gMACCdFMAAAFvhxz/+8aBMJtPkn6Li7l8g6f5aBI8dOzZOOOGEaNGihaUAibBw4cImP2Mmk8n+5Cc/GSAtAIB0UgADAGyFvffee88kzJmEHzwCfBrNmjWLww47LMaOHRujRo2KsrIySwGatKT8Il5SrmsBANh63gEMALAVunbtOqSpz1hfXx9vvvmmsIBUKS4ujpEjR8bBBx8czz77bDz++ONRXV1tMUCT8+abb0Z9fX0UFTXtH7t16dJlT2kBAKSTO4ABAD6lioqKgoqKikFNfc4lS5bE5s2bBQakUklJSYwcOTLGjh0bRx99dJSUeIUl0LTU1tbG0qVLm/ycLVu2HFRaWupngwAAKeQiDwDgUzr77LP7FhYWNvlnj7722mvCAlKvefPmcdRRR8Ull1wSI0eOjGbNmlkK4HpsKxQWFpafffbZvaQFAJA+CmAAgE9p//3375+EOV9//XVhAXmjvLw8Ro0aFf/+7/8eI0eOjGw2aymA67FP6fOf//xAaQEApI8CGADgU+rRo8fuTX3G2traePvtt4UF5J2KiooYNWpUXHzxxXH44Yc3+XdvAum2ePHiRLySo1evXoOkBQCQPgpgAIBPqXXr1k3+DoklS5ZEQ0ODsIC81apVqzj++OPj4osvjhEjRkRBgW97gZ2voaEhlixZ0uTnbNOmjQIYACCFfCcMAPApDBkypLR58+a9m/qcb775prAAIqJ169YxevToGDt2rCIYcF32MZo3b95n0KBBpdICAEgX3wEDAHwKp556av9MJtPkr53eeustYQH8jTZt2sTo0aPjvPPOi+HDhyuCAddlfyOTyRT84Ac/+Jy0AADSxXe+AACfwuDBg5v84/Hq6+tj0aJFwgL4CJ06dYqTTz45/u3f/i323nvvyGQylgLsUIsXL07Eqzn23HPPgdICAEgXBTAAwKfQpUuXAU19xnfeeSfq6uqEBbAFnTt3jjFjxiiCgR2utrY23n333SRc53oPMABAyiiAAQA+hZYtW/Zv6jN6/DPAp9elS5cYM2ZMnHvuuTF48GALAfL2+iwJ17kAAGwdBTAAwCcYPnx4eUlJSeemPqfHPwNsvV69esVpp50W55xzTvTvrwMB8u/6rLS0tPPw4cPLpQUAkB4KYACAT/Ctb31rt4ho8s8IXbx4sbAAtlGfPn3irLPOinPOOSd22203CwG2i4T8gl7m29/+dj9pAQCkhwIYAOAT7L777k2+CVi7dm1s2LBBWACfUZ8+feLss8+OM888M3r27GkhwGfy4Ycfxrp165r8nAMHDlQAAwCkSJEVAABsWadOnZr8D8TefvttQQFsRwMGDIgBAwbEggULYvz48bF06VJLAbb5Oq1Vq1audwEA2GkUwAAAn6CyslIBDJCnBgwYEP3794958+bFQw89FO+++66lAFtlyZIlsddeezX1613PvgcASBEFMADAFnTq1CnbvHnzXk19ziVLlggLYAfJZDIxePDg2GOPPeLll1+OBx98MFauXGkxQGqu05o3b967Xbt2RatXr66XGABA8nkHMADAFowZM6ZnJpPJNuUZGxsbPZoUYCfIZDKx9957x4UXXhhjxoyJ9u3bWwrwiZYuXRqNjY1NesaCgoLsqaee2kNaAADp4A5gAIAt2Hvvvfs29RlXrlwZtbW1wgLYSf5aBO+5554xa9asmDBhQqxevdpigI9UW1sb77//fnTu3LlJzzls2LC+EbFIYgAAyecOYACALejRo0eTL4DfeecdQQHsAoWFhTF8+PC48MILY/To0VFZWWkpQGKv15Jw3QsAwKejAAYA2ILWrVs3+ff/vvvuu4IC2IUKCwtjxIgRcckll8To0aOjZcuWlgIk7notCde9AAB8Oh4BDQCwBc2bN+/Z1GdUAAM0kW+wi4pixIgRsd9++8WUKVPiscceiw0bNlgMEO+9914SrnsVwAAAKeEOYACAj9G/f/+SkpKSjk19TgUwQNPSrFmzOOyww2Ls2LExatSoKCsrsxTIc0m4XistLe3Ut2/fYmkBACSfAhgA4GOccMIJ3Zr69dK6deuiqqpKWABNUHFxcYwcOTJ+/etfK4Ihz1VVVcX69eub+pgF3/zmN7tLCwAg+RTAAAAfY8iQIT2b+oxJeJwgQL77axE8duzYOProo6OkpMRSIA8l4botCde/AAB8MgUwAMDH6N69e8+mPqPHPwMkR/PmzeOoo46KSy65JEaOHBnNmjWzFMgjSbhuS8L1LwAAn0wBDADwMVq1atWjqc+4bNkyQQEkTHl5eYwaNSr+/d//PUaOHBnZbNZSIA8k4botCde/AAB8MgUwAMDHqKio6NXUZ1y+fLmgAJL750yMGjUqLr744jj88MOjqKjIUiDFknDd1rJly16SAgBIPgUwAMBHyGazmbKysq5NecbGxsZYtWqVsAASrlWrVnH88cfHxRdfHCNGjIiCAt+qQxqtWrUqGhsbm/SMJSUlXbPZbEZaAADJ5rtKAICPcNxxx7UrKCgobsozrl69Ourr64UFkBKtW7eO0aNHx9ixYxXBkEJ1dXXxwQcfNOkZCwoKio877rh20gIASDbfTQIAfITPf/7zXZr6jO+//76gAFKoTZs2MXr06Dj//PNj+PDhimBIkRUrVrgOBgBgh/NdJP+PvTuPr7I888d/nSwEkhD2HUQEUVRAoIiouCtq64Jabd1arVorbqO2tlXbaavTOu38Rqffdmpbu9rWpYogsqgFRXCttAIKArJDgAAJBLKQ5JzfH8WO4+DOcp6T9/v18jWvTv657ut6hNvnk/t+AICd2G+//bL+xVcSXiAC8PF17do1Lr300rj99ttj2LBhkUq5lRWSLgn7tyTsgwEAeH8FWgAA8H917txZAAxAVujevXtceeWVsXr16njiiSdi9uzZkclkNAYSKAn7tyTsgwEAeH8CYACAnWjXrp0roAHIKj169Igrr7wyli5dGpMmTYo5c+ZoCiRMEvZvSdgHAwDw/gTAAAA7UVxc3D3baxQAAzRPffr0ibFjx8aSJUti/PjxsWDBAk2BhEjC/i0J+2AAAN6fbwADAOxESUlJz2yur7q6Ourq6gwKoBnbb7/94l/+5V/ia1/7WhxwwAEaAglQV1cX1dXV9sEAAOxWAmAAgHc5/PDDSwsKCtpmc40VFRUGBUBERPTt2zduvPHGuOGGG2LffffVEMhy2b6PKygoaDt8+PASkwIASC4BMADAu5x44oldsr3GDRs2GBQA/8uAAQPiG9/4Rtxwww3Ru3dvDQH7uE+yH+5qUgAAyeUbwAAA79KvX7+sD4DXr19vUADs1IABA+LAAw+MuXPnxoQJE2LlypWaAlkkCTe5HHDAAV0i4i3TAgBIJgEwAMC7dO/evXO21+gEMADvJ5VKxaBBg2LgwIExe/bsGD9+fKxbt05jwD4uZ/bDAAC8NwEwAMC7tG/fvlO21ygABuDDSKVSMWzYsBg6dGjMnj07HnvsMbdIwF6WhBPASdgPAwDw3gTAAADv0rp166w/8ZCEF4cAZI+3g+BDDz00XnnllZg4caK/S8A+LtH7YQAA3psAGADgXUpKSrL6xENjY2Ns3rzZoAD4yPLz8+Pwww+P4cOHx/PPPx8TJ06MqqoqjYE9aPPmzdHY2BgFBdn7Wi7b98MAALw/ATAAwLu0bNmySzbXV1lZGZlMxqAA+Njy8/Nj1KhRMXLkyHjhhRcEwbAHZTKZqKqqio4dO9oPAwCwWwiAAQDepaioKKuvvKusrDQkAHaJgoKCGDVqVIwYMSJmzpwZkydPji1btmgM7IH9XDYHwNm+HwYA4P3laQEAwP8YPnx4SX5+fkk21ygABmBXa9GiRRx//PFxxx13xNlnnx0lJSWaAs14P5efn18yfPhwfxAAACSUABgA4B2OOOKIDtleo+//ArC7FBUVxejRo+P73/9+nH322VFcXKwpsBsk4cr1JOyLAQDYOQEwAMA79O3bt1221+gEMAC729tB8B133BGnn356tGrVSlOgme3n9ttvv7YmBQCQTAJgAIB36NSpkwAYAHYoKSmJz3zmM3HnnXfG6NGjo0WLFpoCzWQ/l4R9MQAAOycABgB4hw4dOrTN9hqTcGUgALmlpKQkzj777PjOd74To0aNivz8fE2BHN/PJWFfDADAzgmAAQDeoaysrG221ygABmBvad++fVx00UVx5513xgknnBCFhYWaAjm6nysrK3MCGAAgoQTAAADvUFJS0j6b68tkMlFdXW1QAOxV7dq1i/POOy+++93vxqhRoyIvz+sF+CiSsJ8rLS0VAAMAJJT/QgMAeIfi4uK22VxfXV1dNDY2GhQAWeHtE8F33HGHIBg+gsbGxqirq7MvBgBgt/BfZgAA79CqVausPung9C8A2ahDhw5x0UUXxbe//e04/PDDBcGQA/u6oqIiJ4ABABLKf5EBALxDQUGBABgAPqauXbvGpZdeGt/61rdi2LBhkUqlNAUSuq9r0aJFW1MCAEimAi0AAPgfhYWFZdlc39atWw0JgKzXrVu3uPLKK2P16tXxxBNPxOzZsyOTyWgMJGhfl+37YgAA3psAGADgnZujgoLW2VyfE8AAJEmPHj3iyiuvjKVLl8akSZNizpw5mgIJ2ddl+74YAID35gpoAIAdWrdunZefn98ym2sUAAOQRH369ImxY8fGLbfcEgMGDNAQSMC+Lj8/v1WrVq28OwQASCCbOACAHQYNGlQSEVn9scJt27YZFACJtd9++8UNN9wQX/va1+KAAw7QEJq1BOzr8gYPHlxsUgAAySMABgDY4YADDijJ9hpramoMCoDE69u3b9x4441xww03xL777qshNEu1tbVZX2P//v1LTQoAIHl8AxgAYIeePXtm/QuuJLwoBIAPa8CAATFgwICYP39+jBs3LpYvX64pNBtJ2Nf16NGjxKQAAJJHAAwAsEOnTp0EwACwFwwYMCAOPPDAmDt3bkyYMCFWrlypKeS8JOzrunbtKgAGAEggATAAwA5lZWVZ/4Krrq7OoADISalUKgYNGhQDBw6M2bNnx4QJE2Lt2rUaQ85KQgDcpk0bV0ADACSQABgAYIeysjIngAFgL0ulUjFs2LAYOnRozJ49O8aPHx/r1q3TGHKOABgAgN1FAAwAsENJSUlxttfoBDAAzcXbQfCQIUPi5ZdfjokTJ0ZFRYXGkDOSEAAnYX8MAMD/JQAGANihqKioKNtrrKmpMSgAmpW8vLw4/PDDY/jw4fH888/HE088EZWVlRpD4iUhAG7RokWRSQEAJI8AGABgh8LCwhbZXF86nY7t27cbFADNUn5+fowaNSpGjhwZL7zwQkycODGqqqo0hsTavn17ZDKZSKVSWVtjixYtWpgUAEDyCIABAHbI9gC4oaHBkABo9goKCmLUqFExYsSImDlzZkyePDm2bNmiMSROJpOJhoaGyOaMtbCw0AlgAIAk/neTFgAA7NgYFRRk9QuuxsZGQwKAHVq0aBHHH398HHnkkfHMM8/E1KlTY9u2bRpDomR7AJzt+2MAAN5jH6cFAAA7NkZZ/oLL9c8A8H8VFRXF6NGj49hjj41nnnkmpkyZEjU1NRpDImT7DS8FBQWugAYASCABMADA2xujLH/B5QpoAHhvbwfBRx11VEyfPj2efvrpqK2t1RiymgAYAIDdIU8LAAD+QQAMAMlXUlISn/nMZ+LOO++M0aNHZ/X1uiAABgBgdxAAAwDskO1XQAuAAeDDKykpibPPPjv+7d/+LUaPHh2FhYWagv3dR5Sfn9/SlAAAkkcADADw9sYoL88JYADIMa1bt46zzz47vve978UJJ5wgCMb+7iPIz8/3LwwAQAIJgAEAdkilUlm9N2psbDQkAPiY2rVrF+edd15897vfjRNOOCEKCgo0Bfu7D94f55sSAEDyCIABAHbI9gA4nU4bEgB8Qu3bt/9nEDxq1KjIy/NqBPu799kfp0wJACB5/FcOAMAOXnABQPPRoUOHuOiii+J73/ueIJi9JpPJZHuJ/sUAAEggmzgAgP+R1QFwAl4QAkDidOzYMS666KL41re+FYcffnj4fTDs796xOc7yG3IAANg5mzgAgITsjQTAALD7dOvWLS699NL41re+FcOGDRMEs0dk+xXQeXl5/kUAAEigAi0AAPiHbH/BJQAGgN2ve/fuceWVV8ayZcviiSeeiDlz5mgKzXl/5/AIAEACCYABAHbIZDJOAAMAERGx7777xtixY2PJkiUxYcKEmD9/vqZgfwwAQCIIgAEA/ocr7gCA/2W//faLG264Id56660YP358vPnmm5rCLpPtV0Cn3IUOAJBIAmAAgB2y/QVXtr8gBIBc1rdv37jxxhvjrbfeinHjxsWiRYs0hU/MFdAAANjEAQDsXln9Bs4BDADY+/r27Rs333xz3HDDDdG7d28NIdf3d75BAgCQQE4AAwDskO0nMATAAJA9BgwYEAMGDIj58+fHI488EitXrtQUcnF/5woaAIAEcgIYAGCHVCqVzvL6DAkAssyAAQPi1ltvjbFjx0bPnj01hJza32UScEc1AAD/lxPAAAD/QwAMAHysv6MHDRoUBx98cDz//PMxadKk2LRpk8aQ+P1dtv+CJAAAO+cEMADADul0dr/fEgADQHarr6+PioqK2LZtm2aQE/u7dDrtBDAAQAI5AQwA8D+cAAYAPrK6urp4+umnY9q0acJfcm1/5wQwAEACCYABAP6HEw4AwIfW0NAQ06ZNiyeffDK2bt2qIXxkCfgGsAAYACCBBMAAADtkMpmsDoDz8ny9AwCywdvB71NPPRXV1dUaQs7u7wTAAADJJAAGANgh219wCYABYO9qbGyMGTNmxJNPPhmVlZUawieWn5+f9VtkUwIASB4BMADADplMpiGb6yssLDQkANgL0ul0zJo1KyZPnhwbN27UEHaZgoLsfjXX1NTUaEoAAAncZ2oBAMA/NDY2bs/m+gTAALBnpdPpePnll2Py5Mmxdu1aDWGXa9GiRbb/O1BvSgAAySMABgDYoampSQAMAEQmk4nZs2fH448/HuXl5RpCs93fNTY2CoABABJIAAwAsENDQ0NWv+ASAAPA7vV28PvEE0/E6tWrNYTdLtuvgM72G3IAAHiPfaYWAAD8gyugAaD5mjNnTkyaNCmWLl2qGewx2X4FtAAYACCZBMAAADs0NTU5AQwAzcyCBQtiwoQJ8dZbb2kG9nfv0tDQIAAGAEggATAAwA7Z/oJLAAwAu87ChQtj/PjxsXjxYs1gr8n2K6Cz/RckAQB4j32mFgAA/EO2B8AFBQWRl5cX6XTasADgY1q+fHmMGzcu5s+frxnsVXl5eVkfAG/fvt0JYACABBIAAwDs0NDQkPUnHFq1ahXbtm0zLAD4iFauXBmPPPKI4Jes2tclYH8sAAYASCABMADADrW1tXXZXqMAGAA+mnXr1sX48eNj9uzZkclkNISs2tdlu7q6ulqTAgBIHgEwAMAOW7du3ZrtNSbhRSEAZIP169fHY489JvjFvu4TqK6u3mpSAADJIwAGANihqqpKAAwACbdhw4Z4/PHH45VXXommpiYNwb7uE6isrHT1DABAAgmAAQB22LRpU9a/4GrZsqVBAcBOVFVVxcSJE+OFF16IxsZGDSHrJSEA3rRpkxPAAAAJJAAGANhh3bp1WR8AOwEMAP/bli1bYsKECYJfEicJ+7ry8nIBMABAAgmAAQB2WLZsmSugASAhqqurY/LkyTFz5syor6/XEBInCfu6pUuXCoABABJIAAwAsMP8+fOz/gRwcXGxQQHQrNXU1MSUKVPimWeeEfySaEnY173++uu+AQwAkEACYACAHRYsWFCXyWQaUqlUYbbW2Lp1a4MCoFmqq6uLp59+OqZNmxbbtsmkSL5s39el0+mGpUuXbjcpAIDkEQADALxDU1PTtoKCgrbZWp8AGIDmZvv27TF9+vR48sknY+tWt9GSO7J9X9fU1ORfOACAhBIAAwC8Q0NDw9ZsDoBLS0sNCYDm8ndyTJs2LZ566qmorq7WEHJOtu/rGhsb/YsHAJBQAmAAgHeor6+vbNWqVc9src8JYAByXWNjY8yYMSOefPLJqKys1BByVrbv6+rr66tMCQAgmQTAAADv0NDQkNVvmgXAAOSqdDods2bNismTJ8fGjRs1hJyX7fu6bN8XAwDw3gTAAADvUFdXV5XN9ZWWlkYqlYpMJmNYAOSETCYTr732Wjz++OOxatUqDaFZSKVSUVJSktU11tbWVpkUAEAyCYABAN5h27Ztm7K5vvz8/GjVqlXU1NQYFgCJlslkYvbs2fH4449HeXm5htCstGrVKvLz87O6xq1btzoBDACQUAJgAIB3qK6u3pztNZaVlQmAAUist4PfiRMnxpo1azSEZqmsrCzra9y2bVuVSQEAJJMAGADgHaqqqjZle43t2rWLtWvXGhYAiTNnzpyYNGlSLF26VDNo1tq1a5f1NW7atMkJYACALNbQWBgFjQ0REZFKRSavMJre/pkAGADgHSoqKqqyvcYkvDAEgHdasGBBTJgwId566y3NgITs5zZs2CAABgDIYoUFDf9MejMRqab0/+S+AmAAgHdYtWpV1r/oatu2rUEBkAgLFy6M8ePHx+LFizUD3iEJAfDq1aurTAoAIJkEwAAA77BgwYKsD4CdAAYg2y1fvjzGjRsX8+fP1wzYiST8Ql8S9sUAAOycABgA4B2eeOKJjZlMpimVSuVna41OAAOQrVauXBmPPPKI4Bc+QLb/Ql8mk2l64oknNpoUAEAyCYABAN6huro6vX379g1FRUVdsrVGJ4AByDZr166NCRMmxOzZsyOTyWgIJHw/t3379g3V1dVpkwIASCYBMADAu9TV1a0XAAPAB1u/fn089thjgl/Isf1cXV3delMCAEguATAAwLvU1dVVtGnTJmvrKykpiRYtWsT27dsNC4C9oqKiIiZOnBivvPJKNDU1aQh8BEVFRVFcXJz1+2GTAgBILgEwAMC7bN26dV2XLll7ADhSqVR07Ngx1qxZY1gA7FFVVVUxceLEeP755wW/8DF17NgxUqlU1u+HTQoAILkEwAAA71JVVZX1Jx46deokAAZgj9m8eXM8/vjj8cILL0RjY6OGwCfcx9kPAwCwOwmAAQDeZf369Vn/zbMkvDgEIPm2bNkSU6ZMiZkzZ0Z9fb2GwC7QsWNH+2EAAHYrATAAwLusXr066088JOHFIQDJVVNTE1OmTIlnnnlG8Au7WBJ+kW/VqlUCYACABBMAAwC8y9///ves/+aZABiA3aG2tjYmT54czz77bNTV1WkINNN93KuvvioABgBIMAEwAMC7PPzww+t//OMfN6RSqcJsrbFz584GBcAus3379pg+fXpMnTo1tm3bpiGwG2X7CeB0Ot3w8MMPC4ABABJMAAwA8C7V1dXpurq68latWu2TrTV26NAh8vLyIp1OGxgAH1tDQ0NMmzYtnnrqqaiurtYQ2M3y8vKiQ4cOWV1jfX39mtraWptMAIAEEwADAOxEbW3tmmwOgAsKCqJdu3axceNGwwLgI2tsbIwZM2bEk08+GZWVlRoCe0j79u2joCC7X8fV1NSUmxQAQLIJgAEAdmLz5s2r2rdvn9U1duvWTQAMwEeSTqdj1qxZMXnyZH+HwF7av2W7LVu2rDQpAIBkEwADAOzEpk2bVvfp0yera+zWrVvMmzfPsAD4QG8Hv1OmTIkNGzZoCOzF/Vu227BhwxqTAgBINgEwAMBOrFixYvWwYcOyusYkvEAEYO/KZDLx0ksvxZQpU6K83K2usLd17do162tctWrVKpMCAEg2ATAAwE7Mnz9/9ZgxY7K6xiS8QARg78hkMjF79uyYOHFirFnjMB9kiyT8At+8efP8oQEAkHACYACAnRg3btyab37zm5mISGVrjU4AA7Azc+bMiSeeeCKWLVumGZBlEvALfJlx48atNikAgGQTAAMA7MTrr79e29DQsKmwsLBDttZYXFwcZWVlsWXLFgMDIBYsWBDjx4+PJUuWaAZkobKysiguLs7qGhsaGjYuWLCgzrQAAJJNAAwA8B62bt26vF27dh2yucauXbsKgAGauYULF8b48eNj8eLFmgFZLAm3t2zbtm25SQEAJJ8AGADgPVRVVS1t167d0GyusWfPnrFw4ULDAmiGli1bFo899ljMnz9fMyABevbsmfU1VlZWLjUpAIDkEwADALyHdevWLevTp09W15iEF4kA7ForVqyIRx99VPALCZOEfdvatWuXmRQAQPIJgAEA3sPChQuXHX744VldY69evQwKoJlYtWpVjB8/PubOnRuZTEZDIGGSsG9buHDhMpMCAEg+ATAAwHuYNm3a0ksuuSSra+zevXvk5+dHU1OTgQHkqHXr1sX48eNj9uzZgl9IqIKCgkR8A/jpp59eZloAADmw/9QCAICde+ihhzbcd999W/Pz80uzdjNXUBBdunSJNWvWGBhAjqmoqIiJEyfGyy+/HOl0WkMgwbp27RoFBdn9Gq6xsbH6kUce2WBaAADJJwAGAHgf27ZtW15WVnZwNtfYq1cvATBADqmqqoqJEyfG888/74YHyBFJ+P7vtm3blpsUAEBuEAADALyPLVu2LMv2ALhnz57x0ksvGRZAwm3evDkef/zxeOGFF6KxsVFDIIck4fu/W7ZsWWpSAAC5QQAMAPA+1q9fvyzbT2z06NHDoAASbMuWLTFlypSYOXNm1NfXawjkoCTs19avX7/MpAAAcoMAGADgfSxYsGDh0KFDs7rGfffdN1KpVGQyGQMDSJCampqYMmVKPPPMM4JfyGGpVCr23XffrK9z/vz5C00LACA3CIABAN7Ho48++uYFF1yQ1TWWlJRE586dY926dQYGkAC1tbUxefLkePbZZ6Ourk5DIMd17do1WrVqlfV1/vnPf15kWgAAuUEADADwPiZNmlRVX1+/oaioqGM217nvvvsKgAGy3Pbt22P69OkxderU2LZtm4ZAM9GnT5+sr7G+vr7iySefrDItAIDcIAAGAPgAW7duXZTtAXCfPn3ipZdeMiyALNTQ0BDTpk2Lp556KqqrqzUEmpkkXP+8detWp38BAHKIABgA4ANUVFQs7NChw8hsrjEJLxYBmpvGxsaYMWNGPPnkk1FZWakh0EwlYZ9WUVHh+78AADlEAAwA8AGWLl266MADD8zqGnv16hUFBQXR2NhoYAB7WTqdjlmzZsWkSZNi06ZNGgLNWGFhYfTs2TMR+13TAgDIHQJgAIAPMHPmzEWnnnpqdm/qCgqiZ8+esWzZMgMD2EveDn4nT54cGzdu1BAg9tlnn8jPz0/CfnexaQEA5I48LQAAeH+//OUvV6bT6bpsr7NPnz6GBbAXZDKZePHFF+O73/1u3H///cJf4J+ScP1zOp2u++Uvf7nStAAAcocTwAAAH6C6ujpdXV29uE2bNodkc539+vWL6dOnGxjAHpLJZGL27NkxceLEWLNmjYYAO92fJWCvu7i6ujptWgAAuUMADADwIWzYsGFetgfA/fv3NyiAPeTVV1+NSZMmxapVqzQD2KlUKpWI/dmGDRvmmhYAQG4RAAMAfAiLFy9+o2/fvlldY1lZWXTu3DnWr19vYAC7yYIFC2L8+PGxZMkSzQDeV5cuXaK0tDQJ+9z5pgUAkFsEwAAAH8JTTz31+ujRo7O+zv33318ADLAbLFy4MMaPHx+LFy/WDOBD78uSYMqUKa+bFgBAbsnTAgCAD/aLX/xiTWNjY1W215mUF40ASbFs2bK4++674z/+4z+Ev8BHkoTv/zY0NFTee++9q00LACC3OAEMAPAhNDQ0ZDZv3jy/Q4cOI7O5TgEwwK6xYsWKePTRR2P+fDejArm7L9uyZYs/5AAAcpAAGADgQ1q3bl3WB8AdO3aMNm3axObNmw0M4GNYtWpVjB8/PubOnRuZTEZDgI+lbdu20aFDh0Tsb00LACD3CIABAD6kefPmzTvooIOyvs4DDzwwXnrpJQMD+AjWrVsX48ePj9mzZwt+gV2yH0uCuXPnzjMtAIDcIwAGAPiQ/vznP88/77zzsr7OAw44QAAM8CFVVFTEuHHjBL/ALt+PJcHDDz/sBDAAQA4SAAMAfEgTJ06srK2tXdGqVat9srnOgw8+2LAAPkBVVVVMnDgxnn/++WhqatIQYJdKwq0xNTU1yydNmlRlWgAAuUcADADwEWzYsOHvvXr1yuoAuG3bttG1a9dYu3atgQG8y+bNm+Pxxx+PF154IRobGzUE2OW6desWbdu2TcS+1rQAAHKTABgA4CNYuHDha7169Toj2+scMGCAABjgHbZs2RJTpkyJ5557LrZv364hwG6TlO//Lly48O+mBQCQmwTAAAAfwcSJE/9+wgknZH2dBx54YEyfPt3AgGavpqYmpkyZEs8880zU19drCLDbDRgwIBF1jh8//u+mBQCQmwTAAAAfwb333rv6Bz/4wfqioqLO2VznAQccEHl5eZFOpw0NaJZqa2tj8uTJ8eyzz0ZdXZ2GAHtEXl5e9O/fP+vrrK+vX3ffffeVmxgAQG4SAAMAfESVlZVzu3btmtXHgFu1ahX77LNPLFu2zMCAZqWuri6efvrpmDZtWmzbtk1DgD1qn332iVatWmV9nZs2bZpjWgAAuUsADADwES1dunR2tgfAERGDBg0SAAPNRkNDQ0ybNi2eeuqpqK6u1hBgr+2/kuCtt976m2kBAOQuATAAwEc0ffr0v48cOTLr6xw4cGBMmDDBwICc1tDQEM8991w8+eSTUVlZqSHAXt9/JcG0adP+bloAALlLAAwA8BH9x3/8x9JbbrmlOj8/v3U219mrV68oKyuLLVu2GBqQc9LpdMyaNSsmTZoUmzZt0hBgrysrK4tevXplfZ2NjY1b7rnnnmUmBgCQuwTAAAAfUW1tbXrDhg1/7dKly3HZXGcqlYqBAwfGrFmzDA3IGW8Hv5MnT46NGzdqCJA1Bg4cGKlUKuvr3Lhx4yu1tbVpEwMAyF0CYACAj+Gtt956JdsD4IgQAAM5I51Ox8svvxxTpkyJ8vJyDQGyct+VBIsWLXrFtAAAcpsAGADgYxg/fvwrRxxxRNbXedBBB0VBQUE0NjYaGpBImUwmZs+eHRMnTow1a9ZoCJCVCgoK4qCDDkpErY888ogAGAAgx+VpAQDAR/fjH/94ZX19/fpsr7OoqCj69etnYEAivfrqq3HHHXfEz3/+c+EvkNX69esXRUVFWV9nXV1d+b333rvaxAAAcpsTwAAAH9OGDRte6dGjx6ezvc5BgwbFggULDAxIjCVLlsSECRNi/vz5mgEkwuDBgxNR5/r1653+BQBoBgTAAAAf07x5815OQgA8bNiwePjhhyOTyRgakNXefPPNmDBhQixevFgzgMRIpVIxdOjQRNQ6d+7cl0wMACD3CYABAD6m++677+XRo0dnIiKVzXW2bds2evfuHcuWLTM0ICstW7YsHnvsMSd+gUTq06dPtG3bNgmlpu+9996/mhgAQO4TAAMAfEwTJ06s3Lp165LS0tK+2V7rkCFDBMBA1lmxYkU8+uijgl8g0YYMGZKIOqurqxc+/fTTm00MACD3CYABAD6B8vLyl/fff/+sD4AHDx4c48aNMzAgK6xcuTImTJgQc+fOdT09kHhJ+f7vmjVrfP8XAKCZEAADAHwCM2fOfG7//ff/fLbX2a1bt+jWrVuUl5cbGrDXrFu3LsaPHx+zZ88W/AI5oWfPntGlS5dE1DpjxoznTAwAoHkQAAMAfAK33Xbba5dcckl1fn5+62yvdciQIQJgYK9Yv359PPbYY4JfIOck5frnxsbGzbfddts8EwMAaB4EwAAAn0BlZWXThg0b/tqlS5fjsr3WQw89NCZNmmRowJ78MzKeeOKJeP7556OpqUlDgJxz6KGHJqLOioqKV6qrq9MmBgDQPAiAAQA+oXnz5s1MQgDcu3dv10ADe0RVVVVMnDgxXnjhhWhsbNQQICd17949evbsmZT9quufAQCakTwtAAD4ZP77v/97VkQk4kTFpz71KQMDdpstW7bEQw89FLfffns899xzwl8gpw0fPjwRdWYymfTdd9/9gokBADQfTgADAHxCkyZNqtqyZcuCsrKyg7K91uHDh8fjjz9uaMAuVVNTE1OmTIlnnnkm6uvrNQTIealUKg477LBE1Lply5bXp0+fvsXUAACaDwEwAMAusHz58lkDBw7M+gC4S5cu0atXr1i5cqWhAZ9YbW1tTJ48OZ599tmoq6vTEKDZ6N27d3Ts2DEx+1QTAwBoXgTAAAC7wLPPPvvCwIEDr0hCrcOGDRMAA59IXV1dPP300zFt2rTYtm2bhgDNzrBhwxJT61/+8pcXTQwAoHnxDWAAgF3g1ltvnV9fX782CbUefvjhkUqlDA34yBoaGmLq1Klx6623xuOPPy78BZqlJF3/XFdXt/rWW29dYGoAAM2LE8AAALtAQ0NDZs2aNc/16dPns9lea7t27aJPnz6xZMkSgwM+7J9xMW3atHjqqaeiurpaQ4Bmbb/99ou2bdsmotbVq1fPNDEAgOZHAAwAsIs8++yz05IQAEdEHHHEEQJg4AOl0+mYNWtWTJo0KTZt2qQhABFx5JFHJqbW6dOnTzMxAIDmxxXQAAC7yC233PJaQ0NDZRJqHT58eLRo0cLQgJ1Kp9Px3HPPxW233Rb333+/8Bdgh6KiovjUpz6ViFobGho23HLLLXNNDQCg+XECGABgF6murk6Xl5c/t88++5yR7bW2bNkyDj300Hj55ZcNDvindDodL7/8ckyZMiXKy8s1BOBdhgwZEkVFRYmodc2aNc/V1tamTQ0AoPkRAAMA7EIvvvjiM0kIgCMiRo4cKQAGIiIik8nE7NmzY+LEibFmzRoNAXif/VNSzJo161kTAwBongTAAAC70O233/7KOeecszU/P78022sdMGBAtG/f3tWu0My9+uqrMWnSpFi1apVmALyPjh07xgEHHJCIWhsbG6u/8Y1v/NXUAACaJwEwAMAutHLlyob169fP6tat2+hsrzWVSsXhhx8ekyZNMjhohubMmROTJ0+OJUuWaAbAh3D44YdHKpVKRK3r16+fVVFR0WhqAADNU54WAADsWq+++mpirts77LDDDAyamTfffDP+/d//PX7yk58IfwE+pFQqFSNGjEhMva+88sozpgYA0Hw5AQwAsIvddNNNz5166qnV+fn5rbO91m7dukX//v1j4cKFBgc5btmyZfHYY4/F/PnzNQPgIzrggAOic+fOiai1sbFxy4033jjL1AAAmi8BMADALrZy5cqG8vLyGT179vx0Euo9+uijBcCQw5YvXx7jxo0T/AJ8wv1SUpSXlz9TXl7eYGoAAM2XABgAYDeYMWPGUxdccEEiAuAhQ4ZE69ato7q62uAgh6xcuTImTJgQc+fOjUwmoyEAH1ObNm3i0EMPTUy9zz777FOmBgDQvPkGMADAbvDVr371lYaGhk1JqLWgoCCOOOIIQ4McsW7duvj5z38ed955Z8yZM0f4C/AJjRw5MvLz8xNRa0NDw8abbrrpVVMDAGjenAAGANgNKisrm1atWjW9T58+5ySh3qOPPjqefPJJQREk2Pr16+Oxxx6L2bNn+3cZYBdJpVIxatSoxNS7cuXKadXV1WmTAwBo3pwABgDYTaZNm5aY6/c6duwYAwYMMDRIoA0bNsSvf/3r+Nd//dd49dVXhb8Au9CAAQOiY8eOian36aefftLUAAAQAAMA7CZf+9rX5tTX11ckpd6jjjrK0CBBqqqq4v77749vf/vb8eKLL0ZTU5OmAOxiRx55ZGJqra+vX/eNb3zjdVMDAMAV0AAAu0ltbW16xYoVT++///6fT0K9hx56aLRt2zaqqqoMD7LYli1bYsqUKfHcc8/F9u3bNQRgN2nbtm0MGTIkMfUuX778qdraWtc/AwDgBDAAwO70xz/+cUJSas3Pz4/jjjvO0CBL1dTUxKOPPhq33XZb/OUvfxH+Auxmxx57bOTn5yel3Myvf/3rCaYGAECEABgAYLe66667llZXV89PSr1HH310tGjRwuAgi7wd/H7jG9+IqVOnRn19vaYA7GYtWrSIo48+OjH1btmy5Y177rlnhckBABDhCmgAgN3u9ddfn3T44YcPSEKtxcXFcdhhh8XMmTMNDvayurq6ePrpp2PatGmxbds2DQHYgw477LAoKSlJTL3z5s17wtQAAHibE8AAALvZ9773vanpdLohKfWecMIJkUqlDA72koaGhpg6dWrceuut8fjjjwt/AfawVCoVJ5xwQmLqTafT27/73e8+ZXIAALzNCWAAgN1s+vTpWyoqKmZ26dIlER/Y7d69e/Tv3z/efPNNw4M9qKGhIaZNmxZPPfVUVFdXawjAXnLAAQdE9+7dE1NvRUXFczNmzPAXBwAA/+QEMADAHjBr1qxEXcuXpFMvkHTpdDqee+65uP322+PRRx8V/gLsZccff3yi6p0xY8YkUwMA4J2cAAYA2AO++tWvvnT66adXFRYWtk1CvQMHDoyOHTvGhg0bDA92k3Q6HbNmzYrJkyfHxo0bNQQgC3Ts2DEGDhyYmHobGhoqb7755pdMDgCAd3ICGABgDygvL29YsWLF1MRsEvPy4sQTTzQ42A3S6XS8+OKL8Z3vfCfuv/9+4S9AFjnppJMiLy85r8tWrFgxpaKiotHkAAB4JwEwAMAe8qtf/erRiMgkpd6jjjoqysrKDA52kUwmE6+++mp873vfi1//+texdu1aTQHIImVlZXHUUUcl6q+W//7v//6zyQEA8G4CYACAPeQ///M/l1dWVv4tKfUWFhbGMcccY3CwC7wd/P785z+PNWvWaAhAFjruuOOioCA5X0urqqqa/dOf/nS1yQEA8G4CYACAPeill14al6R6jzvuuCgqKjI4+JjmzJkTd911V/z85z+P1au9owfIVkVFRYn7xbcXXnhhnMkBALAzBVoAALDnjB079pkFCxZUFhYWtktCvSUlJXHEEUfE9OnTDQ8+gjfffDPGjx8fb731lmYAJMCRRx4ZJSUliam3oaFh0zXXXPOsyQEAsDMCYACAPai8vLxh6dKlE/v3739xUmo+8cQT49lnn410Om2A8AEWLVoUjz32WCxevFgzABIiLy8vTjzxxETVvGTJkifKy8sbTA8AgJ3ucbUAAGDP+u1vfzsxIjJJqbdjx44xdOhQg4P3sXz58rj77rvjRz/6kfAXIGGGDRsWHTp0SFLJmd/85jePmxwAAO9FAAwAsIf953/+5/JNmza9kqSaTz/99EilUoYH77Jy5cr4yU9+Et///vdj/vz5GgKQMHl5eXHGGWckquZNmza9fM8996wwPQAA3osroAEA9oKXXnpp/KmnnnpYUurt2rVrDBkyJGbPnm14EBHr1q2L8ePHx+zZsyOTyWgIQEINHTo0OnfunKiaX3jhhQkmBwDA+xEAAwDsBZdffvkzS5YsWVdUVNQlKTWfccYZ8be//U3YRbO2fv36eOyxxwS/ADkglUrF6aefnqia6+rq1lx22WXTTQ8AgPcjAAYA2AsqKyub5s+f/8ihhx56dVJq7tatm1PANFsbNmyIxx9/PF555ZVoamrSEIAc8KlPfSq6du2aqJrfeOONcdXV1WnTAwDg/fgGMADAXvL1r399XDqdrktSzb4FTHNTVVUV999/f3z729+OF198UfgLkCNSqVR8+tOfTlTN6XS69pvf/OZjpgcAwAdxAhgAYC+ZMWNG9Zo1a/7Ss2fPxLx97N69ewwcODDmzJljgOS0LVu2xIQJE+KFF16IxsZGDQHIMYceemh069YtUTWvXr36qRkzZlSbHgAAH8QJYACAvejXv/71HyMiUR8SPeuss5wCJmdt27YtHn300bjtttviueeeE/4C5KC8vLwYM2ZM0srO/OpXv/qT6QEA8KH2vFoAALD3fP/733+rqqoqUR/V7dGjR3zqU58yPHJKfX19TJ06Nb71rW/F1KlTo76+XlMActSIESOiS5cuiap506ZNf73rrruWmh4AAB+GABgAYC975plnHkpazWeccUbk5dlKkjvmzZsXjz76aGzdulUzAHJYQUFBnH766Ymre9q0aQ+aHgAAH5a3dgAAe9nYsWNn1tfXr01SzZ07d47DDjvM8ACARBk5cmR06NAhUTXX1dWtHjt27POmBwDAhyUABgDYyyorK5tee+21Pyat7jPPPDMKCgoMEABIhBYtWiTy9O/s2bP/UF1dnTZBAAA+LAEwAEAWuOqqqyY0NjZWJanm9u3bx9FHH214AEAiHHfccdGmTZtE1dzQ0LDxiiuumGh6AAB8FAJgAIAssGDBgrqFCxc+lrS6R48eHYWFhQYIAGS1li1bxsknn5y4uhcuXDhu6dKl200QAICPQgAMAJAlvv71r/8pnU7XJqnmtm3bximnnGJ4AEBWO+2006K0tDRRNTc1NdV+7Wtfe8j0AAD4qATAAABZ4umnn968fPnyxF3xN3r06GjXrp0BAgBZqUOHDnH88ccnru5ly5ZNmD59+hYTBADgoxIAAwBkkbvvvvtPmUymKUk1FxYWxumnn254AEBWOvPMMxP3yYpMJtN41113/dH0AAD4OATAAABZ5Be/+MWatWvXTkta3UcccUT06tXLAAGArNK7d+847LDDEld3eXn5X+6///51JggAwMchAAYAyDIPP/zwn5JWcyqVijPPPNPwAICsMmbMmEilUomr+8EHH/yT6QEA8HEJgAEAsszXv/71NzZs2DAraXUPHDgwDj74YAMEALLCoEGDYsCAAYmru6KiYuatt966wAQBAPi4BMAAAFlo3Lhxv01i3WPGjIm8PFtMAGDvysvLizFjxiSy9j//+c+/NUEAAD7RflgLAACyz/XXXz+nqqrqr0mru1evXnHUUUcZIACwVx1zzDHRvXv3xNW9adOmV2666aa5JggAwCchAAYAyFJ/+tOf7k1i3WPGjInS0lIDBAD2ijZt2sRZZ52VyNofeOCBe00QAIBPSgAMAJClbrrpprlJPAVcXFwcZ555pgECAHvFWWedFS1btkxc3Zs2bXrl5ptvnmeCAAB8UgJgAIAsNm7cuF8lse5Ro0ZF7969DRAA2KP69OkTI0eOTGTtjz322K9MEACAXUEADACQxcaOHTu7qqrqb0mrO5VKxfnnnx+pVMoQAYA9tv/4/Oc/n8j9R2Vl5d+uueaav5kiAAC7ggAYACDLTZ069bdJrLtv374xZMgQAwQA9ojDDjsssTeQTJ48+TcmCADAriIABgDIcpdeeumLVVVVryax9s9//vNRXFxsiADAblVaWhrnn39+Imuvqqr66+WXX/6SKQIAsKsIgAEAEuChhx76WRLrLisri9NPP90AAYDd6qyzzoqSkpIklp753e9+91MTBABgVxIAAwAkwA033DB3w4YNs5JY+3HHHRd9+vQxRABgt+jbt28cddRRiay9oqJi1te//vU3TBEAgF1JAAwAkBA///nPfxoR6aTVnUql4vOf/3zk5dl6AgC7Vn5+flx00UWRSqWSWH76F7/4xX+bIgAAu5q3cAAACXHHHXe8tW7duulJrL13795xzDHHGCIAsEudcMIJ0b1790TWXl5e/pc77rjjLVMEAGBXEwADACTI3XfffW8mk2lKYu1nnXVWtG3b1hABgF2iQ4cOcfrppyey9kwm03T33Xf/3BQBANgdBMAAAAlyzz33rCgvL386ibW3bNkyzj33XEMEAHaJc889N1q0aJHI2tesWTP1xz/+8UpTBABgdxAAAwAkzA9/+MOfZzKZhiTWPnz48Bg0aJAhAgCfyKGHHhpDhw5NZO3pdLrhBz/4wS9MEQCA3UUADACQMPfee+/qRYsWPZDU+i+++OIoKSkxSADgY2ndunVcfPHFia1/4cKFf7jvvvvKTRIAgN1FAAwAkECXXXbZrxsaGjYlsfaysjJXQQMAH9u5554bpaWliay9oaFh4+WXX/47UwQAYHcSAAMAJNDs2bNrXn311V8ntf4jjjgiDj74YIMEAD6SwYMHx+GHH57Y+l955ZX7Zs+eXWOSAADsTgJgAICEOueccx6tqalZmtT6L7roomjZsqVBAgAfSsuWLeNzn/tcYuuvqalZMmbMmMdMEgCA3U0ADACQUJWVlU3Tpk37RVLrb9++fZx++ukGCQB8KGeccUa0b98+sfU/+eST91ZXV6dNEgCA3U0ADACQYOedd960qqqqV5Ja/wknnOAqaADgAx188MFx/PHHJ7b+TZs2vXzBBRc8a5IAAOwJAmAAgIT74x//eG9EZJJYeyqVigsuuMBV0ADAe2rZsmVccMEFkUqlkrqEzP333/8zkwQAYE8RAAMAJNzNN988b9WqVU8ktf6OHTsm+nt+AMDudcEFF0THjh0TW/+KFSse//rXv/6GSQIAsKcIgAEAcsCNN974k6ampq1JrX/kyJExdOhQgwQA/pdPfepTMWLEiMTW39TUVH3zzTf/t0kCALAnCYABAHLAxIkTK//+97//KslruPDCC6OsrMwwAYCIiGjTpk18/vOfT/QaZs+efd/EiRMrTRMAgD1JAAwAkCPOPvvsh2pqapYntf7S0tK46KKLDBIAiFQqFV/84hejtLQ0sWuoqal566yzznrYNAEA2NMEwAAAOaKioqJx0qRJP07yGgYPHhwjR440TABo5o444og46KCDEr2GJ5544qeVlZVNpgkAwJ4mAAYAyCGXXHLJzIqKihlJXsMFF1wQ3bp1M0wAaKZ69uyZ+KufKyoqZnzhC1+YZZoAAOwNAmAAgBzzb//2b/ek0+ntSa2/RYsWceWVV0ZhYaFhAkAzU1hYGF/60pcSvQ9Ip9Pb/+3f/u0e0wQAYG8RAAMA5Jh777139aJFix5M8hq6d+8eZ555pmECQDNzxhlnRPfu3RO9hsWLFz947733rjZNAAD2FgEwAEAO+uxnP/vL2traRL94PPHEE2Pw4MGGCQDNxKBBg+Kkk05K9Bpqa2tXn3vuub80TQAA9iYBMABADlq8eHH9uHHj/j3Ja0ilUnHJJZdE27ZtDRQAclybNm3ikksuiVQqleh1jBs37t8XL15cb6IAAOxNAmAAgBx1+eWXv1RRUTEjyWsoLS2NL3zhC4l/GQwAvLe3f+mrdevWiV5HRUXFM5dffvlLJgoAwN4mAAYAyGE33HDDXU1NTVuTvIaDDjrI94ABIId95jOfiUMOOSTRa2hqaqq+4YYbfmiaAABkAwEwAEAOGzdu3MbZs2cn/jt0p5xyiu8BA0AOOuSQQ+LTn/504tfx17/+9efjxo3baKIAAGQDATAAQI77zGc+81B1dfXCJK8hlUrFF7/4xejQoYOBAkCO6NixY3zpS19K/KceNm/ePO+00057xEQBAMgWAmAAgBxXXV2dfuCBB34UEekkr6O4uDguvfTSyMuzhQWApMvPz4/LLrssiouLk76U9P333/+ftbW1aVMFACBbeHsGANAMXH/99XMWLVr0YNLXsf/++8e5555roACQcOedd1707ds38etYuHDhH7/61a++bqIAAGQTATAAQDNxySWX/Lyurq486es4/vjjfQ8YABJs2LBhccwxxyR+HXV1dWsuvPDC+0wUAIBsIwAGAGgmXnvttdoHHnjguxGRSfI6UqlUfOlLX4oePXoYKgAkTO/evePSSy9N/Hd/IyLzwAMPfO/111+vNVUAALKNABgAoBm5+uqr/7Z06dJHk76OoqKiGDt2bJSWlhoqACRE69at46qrrorCwsLEr2X58uXjrr766r+ZKgAA2UgADADQzJx33nn/r66ubnXS19GhQ4e4/PLLIy/PlhYAsl1eXl5cfvnl0b59+8Svpb6+ft0ll1zyE1MFACBr999aAADQvLz++uu1Dz744Pcj4VdBR0QMGDAgzjrrLEMFgCw3ZsyYOPDAA3NiLY899tgPXnnllW2mCgBAthIAAwA0Q1/5ylf+umbNmqm5sJaTTz45Dj30UEMFgCw1ZMiQOOmkk3JiLWvXrv3LpZde+oKpAgCQzQTAAADN1GWXXfYf9fX1FUlfRyqViksvvTS6d+9uqACQZXr06BFf/OIXI5VKJX4tDQ0Nm6655pofmioAANlOAAwA0EzNmDGj+oEHHvhO5MBV0C1btozrr78+2rZta7AAkCXatWsX1113XbRs2TIXlpN56KGH/nXSpElVJgsAQLYTAAMANGNf+cpX/rpkyZI/58Ja2rZtG1dffXW0aNHCYAFgL2vRokVcffXVOfPLWUuXLn30iiuueNlkAQBIAgEwAEAzd+655/6ktrZ2eS6spXfv3jlzzSQAJNXbn2fYZ599cmI9tbW1y88555wfmywAAEkhAAYAaOYWLFhQ97Of/ezbmUymMRfWM2zYsDjllFMMFgD2kk9/+tMxdOjQnFhLJpNp/NnPfvbtBQsW1JksAABJIQAGACBuvfXWBfPnz78/V9Zz5plnxuDBgw0WAPaw4cOHx2c+85mcWc/8+fN/d+utty4wWQAAkkQADABARESMGTPmvpqamrdyYS2pVCouu+yy6Nmzp8ECwB7Su3fvuPjii3PmUwxbt25ddPrpp//aZAEASBoBMAAAERGxcuXKhh/+8Ie3pdPpnLjisGXLlvEv//Iv0aVLF8MFgN2sS5cucf3110dRUVFOrKepqanmu9/97jfKy8sbTBcAgKQRAAMA8E933XXX0ueff/6eXFlPaWlpXHvttVFWVma4ALCblJWVxXXXXRclJSU5s6aZM2fe/f/+3/9bZboAACSRABgAgP/l5JNPHldeXv50rqynU6dOMXbs2Jw5kQQA2aSoqCiuueaa6NixY86sqby8/MlTTz11gukCAJBUAmAAAP6PSy655K66urq1ubKefffdN6644orIy7P9BYBdJS8vL6688sro3bt3zqyprq6u/JJLLvmh6QIAkOi9uhYAAPBus2bNqn7ooYfujIh0rqxp4MCBcd555xkuAOwi559/fhxyyCG5tKT0gw8+eOesWbOqTRcAgCTLb3tQ9NzpjndbRG15oQ4BADRTEydOXDNmzJi8Tp06Dc2VNfXp0yfy8/PjzTffNGAA+ATOOuusOOmkk3JqTa+//vp9Z5555kTTBQAgCYq7N0Ze6c5/5gQwAADv6dRTT/31li1bXs+lNZ122mlx9NFHGy4AfEzHHntsnHrqqTm1pi1btrxx2mmn/cZ0AQDIBQJgAADeU0VFReONN974jcbGxqpcWtcFF1wQRx55pAEDwEd05JFHxuc+97mcWlNjY2PVzTff/I2KiopGEwYAIBcIgAEAeF9//OMf1z/yyCPfiRz6HnAqlYqLLroohgwZYsAA8CENHTo0LrrookilUrm0rPQjjzzynfvvv3+dCQMAkCsEwAAAfKBLL730hQULFvwupzbCeXnxpS99Kfbff38DBoAPcNBBB8WXvvSlyMvLrVdJCxYs+N2ll176ggkDAJBLBMAAAHwoo0eP/mVVVdXcXFpTYWFhfOUrX4kePXoYMAC8h169esUVV1wRBQUFObWuqqqqOaNHj/6lCQMAkGsEwAAAfCgVFRWNV1111S0NDQ0bcmldJSUlcfPNN8c+++xjyADwLr17946bbropiouLc2pdDQ0NG6666qqv++4vAAC5SAAMAMCHNmHChE3333//tzKZTDqX1lVcXBzXXXdddO/e3ZABYIfu3bvHtddeG61atcqpdWUymfT999//rQkTJmwyZQAAcpEAGACAj2Ts2LGz58+f/9tcW1fr1q3juuuuiw4dOhgyAM1ehw4d4rrrrovWrVvn3Nrmz5//m7Fjx842ZQAAcpUAGACAj+y44477xaZNm17MtXW1a9cubrzxxmjXrp0hA9BstW3bNmf/Pty4ceOLxx13nO/+AgCQ0wTAAAB8ZNXV1emLL774W3V1datzbW0dO3aMG2+8Mdq0aWPQADQ7ZWVlceONN0bHjh1zbm21tbWrL7zwwturq6vTJg0AQC7Lb3tQ9NzZD9LbImrLC3UIAICdWrZsWf327dtfOvbYY0/Ny8trkUtrKykpiaFDh8Zrr70WNTU1hg1As9ChQ4f42te+Fp06dcq5tTU1NW39zne+M/bBBx9cb9IAAOSC4u6NkVe6858JgAEA+NhefPHFzYcccsiyAQMGnBgRqZzaRBcXx5AhQ4TAADQLHTt2jJtuuik6dOiQi8tLjx8//ravfvWrc0waAIBc8X4BsCugAQD4RC688MIZb7zxxm9ycW3t27ePm266KSdPQgHA2zp16pTL4W+88cYbv77wwgufM2kAAJoLATAAAJ/YqFGjfrFhw4aZubi2t0Pgzp07GzQAOadz585x0003Rfv27XNyfRs2bJg5atSo+0waAIDmRAAMAMAnVltbm77sssu+V1dXtzoX19euXbu44YYbomPHjoYNQM7o0KFDXH/99dGuXbtc3Z+s/sIXvvDd2tratGkDANCc+AYwAAC7xJIlS+oj4pVRo0admpeX1yLX1ldcXBxDhw6NuXPnxrZt2wwcgETr0qVL3HjjjTl77XNTU1P1nXfeec0f/vCHdaYNAEAuer9vAAuAAQDYZWbNmlXVo0ePuYceeujoVCqVn2vra9WqVYwYMSIWLVoUlZWVBg5AIu23335x0003RVlZWU6uL51ON/z617++4fbbb3/TtAEAyFUCYAAA9phJkyatPeqoozbsu+++R+fi+goLC2P48OGxbNmy2LBhg4EDkCgDBgyIa6+9Nlq1apWza5w2bdq/XXLJJc+ZNgAAuez9AmDfAAYAYJc77bTTHn/rrbcezNX1FRUVxTXXXBNDhgwxbAASY8iQIXHNNddEUVFRzq5xwYIFvzv99NOfMG0AAJozATAAALvFEUcccc+GDRtm5ur6CgoK4sorr4wjjjjCsAFIwt/LceWVV0ZBQUHOrrG8vPypESNG/LdpAwDQ3AmAAQDYLaqrq9MXXXTRd2pra1fk7GY6Ly8uvvjiOPLIIw0cgKw1atSouPjiiyMvL3dfA23dunXxZz/72e83NDRkTBwAgObON4ABANhtli9fvr2mpuaFY4899uT8/PyWubjGVCoVgwYNikwmE4sWLTJ0ALLK6aefHueee26kUqmcXWN9fX3FDTfccM3UqVOrTBwAgObi/b4BLAAGAGC3evnll7cUFBS8cMQRR4zOy8trkYtrTKVSccABB0SnTp1i7ty5kck4fATA3lVYWBhXXHFFHHPMMTm9zsbGxuo777zzKz/72c9WmzoAAM2JABgAgL1qxowZlb169Xp98ODBJ6dSqfxcXWfPnj2jb9++8fe//z0aGxsNHoC9olWrVnH11VfHwIEDc3qd6XS64be//e2Nt9122wJTBwCguREAAwCw1z3xxBPlw4cPX9OvX79jIyJn76Hs2LFjDBw4MObMmRN1dXUGD8Ae1a5du7jxxhujT58+ub7U9JQpU779xS9+8XlTBwCgOXq/ADhPewAA2FPGjBkz9Y033vh1rq+zZ8+eceONN0bHjh0NHYA9pkuXLnHTTTdF9+7dc36tc+fO/eU555zzF1MHAID/SwAMAMAe9alPfernS5cufTjX19mlS5e49dZb48ADDzR0AHa7gQMHxje/+c3o1KlTzq/1rbfeemjEiBG/MnUAANg5ATAAAHvcsccee8/GjRtfyPV1FhcXx7XXXhsjRowwdAB2m8MPPzyuuuqqaNmyZc6vdePGjc8fffTR95g6AAC8NwEwAAB7XEVFReNxxx339crKyr/l+loLCgrisssui/PPPz9SqZThA7DLpFKpOP/88+PSSy+NgoKCnF/vpk2bXj7ssMNuqaysbDJ9AAB4bwJgAAD2isWLF9efddZZN1dXV7/ZHNZ7/PHHx5e//OUoKioyfAA+sRYtWsSXv/zlOP7445vFequrq98cM2bMN8rLyxtMHwAA3l9+24Oi585+kN4WUVteqEMAAOw2a9asaVi1atWs0aNHH1dQUNA619fbrVu3OOCAA2LevHlRX1/vAQDgYykrK4trrrkmDjrooGax3rq6uvKxY8de89RTT202fQAA+Ifi7o2RV7rznwmAAQDYq+bNm1ezevXqZ04++eTjCwoKSnN9ve3atYuRI0fG8uXLY+PGjR4AAD6S/v37x0033RRdu3ZtFuutr69fd9111335T3/6U4XpAwDA/xAAAwCQ1ebMmbMtlUq9fOSRR56Ul5eX83ckt2jRIkaMGBG1tbWxdOlSDwAAH8rxxx8fX/rSl5rN5wQaGxu33HXXXdf99Kc/XWn6AADwvwmAAQDIejNnzqzs2bPn64MHDz4plUrl5/p6U6lUHHLIIdGqVatYsGBBZDIZDwEAO5WXlxef/exn4/TTT49UKtUs1pxOp7f//ve//+o3vvGN1z0BAADwfwmAAQBIhEmTJpXvs88+8wYOHHhCKpUqaA5r3m+//WLAgAExd+5c3wUG4P8oKyuL6667LoYNG9Zs1pxOp7f/8Y9/vOmqq676qycAAAB2TgAMAEBiTJw4cc3BBx+85MADDzwulUrlNYc1t2/fPoYOHRqLFi2KLVu2eAgAiIiIffbZJ66//vro2bNns1lzJpNpnDBhwm1f/OIXn/cEAADAexMAAwCQKI8++ujy/fff/42DDjrohOZwHXRERHFxcRx11FHR2NgYb731locAoJkbPXp0XHHFFVFSUtJs1pxOpxsefvjhr15yySWzPAEAAPD+BMAAACTO+PHjVw0cOHDpAQcccGxzOQmcSqViwIAB0aVLl3jjjTeiqanJgwDQzBQVFcWll14aJ554YrP53m/EP07+Pv7447dffPHFMz0FAADwwQTAAAAk0iOPPLLs0EMPXbb//vs3mxA4IqJHjx4xZMiQePPNN2Pr1q0eBIBmonv37vEv//IvccABBzSrdWcymaYnnnji9s997nPPeAoAAODDEQADAJBYDz/88NJjjjlmY+/evY+KiGZzFKq0tDSGDx8eq1evjvXr13sQAHLcwIED45prrol27do1t6VnZsyY8YOzzjprqqcAAAA+PAEwAACJdv/99795zDHHVO6zzz5HRDMKgVu0aBGHHXZYtGzZMhYuXBjpdNrDAJBjCgoK4pxzzonzzz8/WrRo0dyWn37uuefuOuWUUyZ4EgAA4KMRAAMAkHi///3v5w8bNmxF3759j2lO10GnUqno27dvDB06NBYvXhxbtmzxMADkiJ49e8YNN9wQgwcPblbf+434x7XPU6ZM+fbpp58+2ZMAAAAfnQAYAICc8OCDDy4ZNmzYin79+jWrEDgionXr1nHEEUdEfX19LF261MMAkGCpVCpOOOGEuOKKK6JNmzbNbv07wt9vnXPOOX/xNAAAwMcjAAYAIGc89NBDS4YNG7a8X79+xza3EDg/Pz8OPvjg6NWrV8yfPz8aGho8EAAJU1JSEpdffnmccMIJkZ+f3+zWn8lkGp944olvffazn53maQAAgI9PAAwAQE556KGHlo4cOXJdnz59RqWa252ZEdG1a9cYNmxYLFu2LCorKz0QAAnRt2/fuO6662K//fZrluvPZDLpp59++rvnnHPO054GAAD4ZATAAADknD/96U+LDj300KX7779/s7sOOiKiuLg4jjzyyCgpKYk333wz0um0hwIgSxUUFMRnP/vZuPDCC6OkpKRZ9iCdTjc88sgjt5x//vnTPREAAPDJCYABAMhJDz/88NId3wQelUqlmt09mqlUKvr06RMHH3xwLFy4MLZt2+ahAMgynTt3jrFjx8bQoUOjGV5aERH/CH+feOKJ2y+88MLnPBEAALBrCIABAMhZDz300JIePXq8NmjQoGPz8vJaNMcetG3bNkaNGhVNTU2xZMkSDwVAFkilUjF69Oi48soro0OHDs22D01NTdt++9vf/stll132oqcCAAB2HQEwAAA5bdKkSeXdu3efM3jw4GYbAufn58eAAQOiV69esWDBgti+fbsHA2Avad26dVx66aVx/PHHR35+frPtQ2NjY/WvfvWrf7nuuute81QAAMCuJQAGACDnTZ48eW1jY+OMI4444uiCgoKS5tqHrl27xqhRo2Lbtm2xcuVKDwbAHpRKpWLUqFExduzY6NWrV7PuRX19/fo77rjjK9/61rcWejIAAGDXEwADANAsPP/881UbNmx45rjjjjuqsLCwrLn2obCwMAYNGhT77bdfLF68OGpraz0cALtZ+/bt44orrogTTzwxCgub9/uU2tralTfffPPVP/nJT1Z7MgAAYPcQAAMA0Gz87W9/27p27doZJ5xwwsjCwsK2zbkXnTp1ipEjR0Z1dbXTwAC70ciRI+Pqq6+OHj16NPte1NTULL/hhhuu/e1vf7vOkwEAALuPABgAgGbltdde2zpv3rynTznllKFFRUWdmnMvCgsL49BDD4399tsvFi1a5DQwwC709qnfk08+udmf+o2I2Lx587yLL774unHjxm30dAAAwO71fgFwat9zYsTOftC4LmLjq610DwCAxOrVq1fhs88++69du3Y9QTciGhoaYurUqTF58uRobGzUEICPqaCgIE499dQYPXq04HeH8vLyp4499tjvrly5skE3AABg9+swrDYKuuz8ZwJgAAByWuvWrfNeeumlm/fdd9+zdeMfVq9eHffff38sWbJEMwA+ov322y8uuugi1z2/w8KFC38/fPjwnzY0NGR0AwAA9gwBMAAAzd7zzz9/8aGHHnp1RKR0IyKTycTMmTPjz3/+c9TV1WkIwAcoKSmJ8847L0aMGBGplL9Kdki//PLL9xx77LEPagUAAOxZ7xcA+wYwAADNwn333Tfn+OOP39yrV6/DQwgcqVQqevfuHcOHD49169ZFRUWFhwTgPRxyyCExduzY6N+/v/B3h0wm0/jMM8/828knnzxONwAAYM97v28AC4ABAGg2fve7370xePDgJf369Ts6lUrl60hEcXFxjBgxInr06BFLly6N2tpaTQHYoUOHDvGFL3whzjzzzCguLtaQHZqammoeeOCBWz73uc9N1w0AANg7BMAAALDDww8/vKygoOC54cOHH1FQUFCqI//QrVu3OO6446K0tDQWL14cTU1NmgI0Wy1btoxzzjknLr300ujevbuGvENtbe2K22677arbbrvtDd0AAIC9RwAMAADv8Oyzz25avHjx0yeddNKQoqKiTjryD3l5edGnT58YOXJkbN26NVatWqUpQLNz+OGHx1e+8pUYMGBA5OXlacg7VFVV/e3CCy+8/oEHHvDdAAAA2MsEwAAA8C7z58+vefbZZ58+44wz+hcXF/fSkf/RsmXLGDJkSOyzzz6xdOnSqKmp0RQg53Xs2DG++MUvximnnBItW7bUkHdZt27dMyeffPI3Xn755W26AQAAe9/7BcCpfc+JETv7QeO6iI2vttI9AAByWmFhYer555//0sEHH3y5bvxfTU1N8fzzz8f48eOjurpaQ4Cc07p16zjzzDPjyCOPdOJ35zJ///vff3rMMcfc39DQkNEOAADIDh2G1UZBl53/TAAMAAARMWnSpM8cc8wxt6RSKdfg7ERNTU1MmTIlpk2bFg0NDRoCJF5hYWGccsopcdJJJ0VRUZGG7EQ6na6fOnXqd88555y/6AYAAGSX9wuAXQENAAAR8Yc//GHhfvvt98aAAQOOysvLkwS8S2FhYQwYMCCGDh0amzZtinXr1mkKkFiDBw+Oq666KoYOHRoFBQUashONjY1Vv//972/5whe+MEs3AAAg+/gGMAAAfAgTJkxYXV1dPf3II4/8VGFhYTsd+b9KS0vjsMMOi/79+8eaNWti8+bNmgIkRu/evePyyy+PU045JUpLSzXkPWzdunXxLbfccs33vve9hboBAADZyTeAAQDgI+jTp0+LJ5988us9evQ4TTfe3/z58+ORRx6JlStXagaQtXr16hXnnHNODBgwQDM+wKpVq5444YQTfrBy5Ur3/QMAQBbzDWAAAPgYnnnmmfOHDx9+fSqVytON95bJZGL27Nkxbty4qKio0BAga3Tu3DnOOuusGDp0aKRSKQ15/z/Lm2bNmvXDk08++THdAACA7OcbwAAA8DH85je/eX3//fd//cADDzzSd4HfWyqViu7du8cxxxwT7dq1i2XLlkV9fb3GAHtN27Zt49xzz42LL744evToIfz9AI2NjdUPPvjgLZ/97Gf/ohsAAJAMvgEMAAAf0/jx41dFxPOHHXbYiMLCwjIdeW95eXnRu3fvOOqoo6KgoCBWrlwZjY2NGgPsMcXFxXHKKafEl770pejbt2/k5bnA4YPU1tau+MEPfnD9LbfcMk83AAAgQf/94xvAAADwyQwePLjVo48++s1u3bqdpBsfTn19fTzzzDMxderU2LZtm4YAu01ZWVmceuqpceSRR0ZRkQsbPqyVK1c+/ulPf/pHixcvdm0DAAAkjG8AAwDALvLkk0+edeSRR96USqVcl/MhCYKB3eXtE7/HHnus4PcjyGQyDbNmzfoP3/sFAIDk8g1gAADYRX7/+98v6NGjx2uHHHLIyPz8fL8x+SEUFBREv3794qijjoq8vLxYtWqVq6GBT6Rly5ZxwgknxBVXXBEHHXRQFBQUaMqH1NDQsOG3v/3t1z7/+c8/oxsAAJBcroAGAIBd7Lzzzut4991339m2bdvBuvHR1NTUxLPPPhvTpk2LLVu2aAjwoZWVlcXxxx8fxxxzTBQXF2vIR1RVVfW3a6+99vZHHnlkg24AAECyuQIaAAB2g06dOhVMmzZtbN++fT8XESkd+WgaGhri+eefjyeffDI2bJBFAO/7522cdNJJccQRR0RhodvKPobMokWL/nTsscf+pLKyskk7AAAg+QTAAACwG/3hD38Ydfrpp99WUFDQRjc+unQ6Ha+++mpMnTo1Vq5cqSHAP/Xq1StOOeWUGDp0aOTl5WnIx9DY2Fg1YcKEOy666KKZugEAALlDAAwAALvZaaed1vbee+/9docOHUbqxse3fPnymDZtWrz88suRTqc1BJqhvLy8OOyww+L444+P3r17a8gnsHHjxue//OUvf3fSpElVugEAALlFAAwAAHtAYWFh6qmnnjpv+PDh16RSKXeUfgIbNmyIGTNmxHPPPRc1NTUaAs1AcXFxjBo1Ko4++ujo2LGjhnwCmUym4ZVXXvl/J5100kMNDQ0ZHQEAgNzzfgFwftuDoufOfpDeFlFb7p0VAAB8WOl0On7zm9+8Xlpa+uLgwYM/VVhYWKYrH09xcXEMGDAgjj322GjTpk2sXbs2amtrNQZyUIcOHeKMM86ISy+9NAYOHBjFxcWa8gnU1tau+slPfnLjxRdf/IybFAAAIHcVd2+MvNKd/8wJYAAA2A1OPPHENvfdd9+tnTp1Olo3PrnGxsb429/+Fs8++2wsWrRIQyAH9OvXL44++ugYNmxYFBQUaMguUFFR8cwXv/jFf5s+ffoW3QAAgNzmCmgAANhLHn744RNGjx799YKCgta6sWusX78+Zs6cGc8//3xUV1drCCRIaWlpHHnkkXHUUUdF586dNWQXaWxs3DJ16tS7PvvZz/5FNwAAoHkQAAMAwF50ySWXdP3+97//rXbt2g3VjV2nsbExXnvttXjuuedi/vz5GgJZbMCAATFq1KgYPHiw0767WFVV1atf//rXv/e73/1urW4AAEDzIQAGAIC9rF27dvlTp0699OCDD740lUrl68iutXz58nj++efj5ZdfjpqaGg2BLFBSUhLDhw+PI444Inr37q0hu1gmk2mcN2/efSeeeOJvq6urfewXAACaGQEwAABkia9//ev73Xjjjf9aWlraXzd2vXQ6HW+++WY899xz8dprr0VjY6OmwB5UUFAQgwcPjlGjRsUBBxwQeXl5mrIbVFdXL/zP//zPf/3BD36wRDcAAKB5EgADAEAWOfjgg1v9+c9/vrZ3795jIiKlI7tHZWVlvPjii/HCCy/EunXrNAR2o65du8bIkSPj8MMPj7Zt22rI7pNZunTpn88888z/t3jx4nrtAACA5ksADAAAWejuu+8eePHFF9/WqlUrd6PuZuXl5fHqq6/GSy+9FOvXr9cQ2AU6d+4cI0aMiGHDhkW3bt00ZDerqalZ9tvf/vbOm266aa5uAAAAAmAAAMhS/fr1K3r44Ycv79+//4WpVMpdqXvA8uXL46WXXoqXX345qqurNQQ+grKyshg+fHiMGDHCd333kEwmk164cOEfzj777F8sXbp0u44AAAARAmAAAMh6P/3pT4d97nOf+2bLli176Mae0dDQEHPnzo2//vWvMXfu3Ni+Xa4CO9OyZcsYNGhQDBs2LA455JAoKCjQlD2ktrZ21R//+Mc7rr322r/rBgAA8E4CYAAASIA+ffq0ePTRR69wGnjPS6fTsXTp0nj11VedDIaIaNu2bQwbNiyGDRsWffr0ibw8fyTtSZlMpuG11177+ZlnnvmnioqKRh0BAADeTQAMAAAJ8uMf//jQCy644JutWrXaRzf2vLdPBs+ePTvmzp0bdXV1mkKzUFZWFoMHD45hw4ZF//79Iz8/X1P2gpqammX333//nTfccINv/QIAAO9JAAwAAAnTrl27/HHjxp37qU996qq8vDwb870kk8nEihUrYu7cuTFnzpxYsWJFZDIZjSEnpFKp6Nu3bwwbNiwGDRoUHTt21JS9qKmpqfbVV1/92ZgxY/5cWVnZpCMAAMD7EQADAEBCffnLX+5x++23f7V9+/aH68bet2XLlnjjjTdizpw5MW/evKivr9cUEqVly5Zx8MEHx6BBg+KQQw6J0tJSTckCGzdufPG73/3uv//iF79YoxsAAMCHIQAGAIAEKywsTE2cOPGMkSNHXlNQUNBaR7JDXV1dvPnmm/HGG2/EG2+8EevXr9cUslKXLl3ioIMOioMOOigOOOCAKCoq0pQs0djYuGXmzJk/PvPMMyc2NDS4XgAAAPjQBMAAAJADjjzyyNY/+9nPrujbt++5EZGnI9mluro6Fi5cGPPnz4958+ZFZWWlprBXtGvXLg455JAYMGBA9O/fP1q39nsjWSj91ltv/fmqq676xaxZs6q1AwAA+KgEwAAAkEN++ctfjhgzZsyNrVq16q0b2SmdTsfKlStj0aJFsXDhwli8eHFs27ZNY9gtSkpKol+/ftG/f//Yf//9o1evXpGX53dEslVNTc3yRx999EdXXnnlK7oBAAB8XAJgAADIMd26dSt8+OGHPzd48ODL8vPzbdyzXCaTiTVr1sTChQtj0aJFsWjRotiyZYvG8LGUlZVF//79/xn6du/ePVKplMZkuaampprXXnvtV2PGjHmgoqKiUUcAAIBPQgAMAAA56rjjjiv7r//6r8tdC508mzdvjuXLl8eKFSti+fLlsXjx4qipqdEY/pfi4uLo169f9O7dO/bZZ5/Yd999o6ysTGMSJJPJpJcsWfLn66677pfTp0/3mx8AAMAuIQAGAIAc99Of/nTIueeee3NpaWlf3UimxsbGWLlyZSxdujSWLVsWy5cvj3Xr1kUmk9GcZiKVSkWXLl1in332iT59+kSfPn2iV69eUVBQoDkJtXXr1sUPPvjgj6699tq/6wYAALArCYABAKAZaNeuXf64cePOGTp06BUFBQWtdST56uvrY+XKlf88KbxixYpYu3ZtpNNpzUm4vLy86Nq1a+yzzz7//KdXr17RsmVLzckBjY2NW/7617/+4pxzznm0srKySUcAAIBdTQAMAADNyIknntjmnnvuuXzfffcdk0qlHB3MMdu3b481a9bEmjVrYu3atbF27dooLy+PDRs2CIazUF5eXnTs2DG6desWXbt2jW7dukW3bt2iR48eUVhYqEE5JpPJNC5ZsuRR1z0DAAC7mwAYAACaoa9+9av7Xnfdddd16NDhCN3IfY2Njf8MhNetWxfr1q2LioqKWLduXWzbtk2DdrPS0tLo3LnzP//p0qVLdO3aNbp27eoK52Ziw4YNM//rv/7rxz/60Y+W6wYAALC7CYABAKAZ++UvfznirLPOuq64uNj3gZupmpqaWL9+/T//qaioiMrKyqisrIxNmzZFY2OjJn2AgoKCaN++fbRr1y7at28fHTt2jC5dukSnTp2ic+fOUVxcrEnN1NatW98aP378PVdcccXLugEAAOwpAmAAAGjm2rVrl//ggw+eOWLEiCsLCwvb6gjvtHnz5n+GwZs2bYrKysqorq6OLVu2xJYtW6K6ujqqq6sjk8nk3NpTqVS0bt06WrduHWVlZdGmTZsoLS39X2Fvu3btok2bNh4U/peGhobKl1566efnnHPO+OrqavevAwAAe5QAGAAAiIiIoUOHFt97770XHHjggRfk5+c7ssiHlk6n/xkEV1dXR01Nzfv+k8lkora2NtLpdNTX10dTU1PU1dXt0u8U5+XlRcuWLSM/Pz+KiooiLy8vWrVqFalUKoqLi3f6T0lJSbRq1eqfgW9paWnk5eUZMB9aU1NTzYIFC/745S9/+Y+zZ8+u0REAAGBvEAADAAD/y2mnndb2rrvuurRPnz5n5+XlFeoIe9LbgfDbtm/f/r7XUBcUFESLFi3++b/fDnxhT8pkMg1LliwZd8stt/xq0qRJVToCAADsTQJgAABgp0477bS2d95554X777//5wTBAP9XJpNpWLhw4QO33nrrHwS/AABAtni/ADi/7UHRc2c/SG+LqC33/gcAAHLZokWL6u69995X0un0swcddFCnkpKS3roC8A8VFRUz/7//7/+77aKLLpq6aNGiOh0BAACyRXH3xsgr3fnPBMAAAEDMnDmz8u67736qqalpWr9+/Ypbt27dN5VKpXQGaG4ymUx6zZo1U+65555/Peeccx6cOXNmpa4AAADZRgAMAAB8KDNnzqz88Y9//Gw6nZ4uCAaak7eD37vvvvtfzz///McEvwAAQDYTAAMAAB+JIBhoLgS/AABAEgmAAQCAj+XtILisrOyFvn37diwuLu4VEYJgIBdkKioqnrv33nu/PWbMmEcEvwAAQJK8XwCc2vecGLGzHzSui9j4aivdAwAA/unqq6/u8ZWvfOX8Pn36nJWXl9dCR4CkSafT9UuXLh3/X//1Xw/84he/WKMjAABAEnUYVhsFXXb+MwEwAADwkZ1xxhntb7/99rMPPPDA8/Pz81vrCJDtmpqaqhcsWPDgd77znUcmTpzotC8AAJBoAmAAAGC3GD58eMkPf/jDzwwePPjioqKijjoCZJv6+voNr7322u9vvPHGx2fPnl2jIwAAQC4QAAMAALvV0KFDi++5556zDjnkkPOKioq66giwt9XV1a19/fXXH7z++uvHC34BAIBcIwAGAAD2iFatWuXdc889w0455ZTzO3bseJSOAHtYZsOGDbOmTJny4PXXX/9qbW1tWksAAIBcJAAGAAD2uH/913/tf/7555/dq1ev0/Ly8lroCLC7pNPp+pUrV05+4IEHHvnOd76zSEcAAIBcJwAGAAD2mjPOOKP97bfffvYBBxzw2YKCgjY6AuwqjY2NVW+++eafv/e97z06YcKETToCAAA0FwJgAABgrxs+fHjJ97///dGDBg0aU1paur+OAB9XdXX1wtdee+3Rr371q1Nfe+21Wh0BAACaGwEwAACQVb761a/ue8EFF3y6b9++ZxUUFLTWEeCDNDY2bnnrrbfG/+EPf5j4ox/9aLmOAAAAzZkAGAAAyEpDhw4t/sEPfnDy4MGDz27dunV/HQHerbq6+s2XX375weuuu+7ppUuXbtcRAAAAATAAAJDlCgsLU3ffffeQ0aNHn9G1a9fj8vLyinQFmq90Ol1XXl4+bcqUKROuvfbav+sIAADA/yYABgAAEqNPnz4t/v3f/33UyJEjz2rfvv2nIiKlK9AsZDZt2vTXF1544bGvfe1rzzntCwAA8N4EwAAAQCJddNFFXa6++uqTDzzwwLNbtmzZTUcg99TV1a1ZsGDBuJ/+9KdP3n///et0BAAA4IMJgAEAgETr1q1b4d13333k4YcffmqHDh2OyMvLK9QVSK50Ot2wcePGWbNmzZp8/fXXz6qoqGjUFQAAgA9PAAwAAOSMo48+uvWtt956/CGHHHJKu3btBkdEnq5AIqQrKytfmzdv3uQ777xz+owZM6q1BAAA4OMRAAMAADnpuOOOK/vGN75x/CGHHHJa27ZtB4bvBUO2yVRVVc2dN2/epO9///vTpk+fvkVLAAAAPjkBMAAAkPNuu+22vmedddZJffr0Oa5Vq1a9dQT2ntra2uXLly+f/uijjz51xx13vKUjAAAAu5YAGAAAaFa+9KUvdbv44ouP7t+//wlOBsMekamqqpq7cOHCv/z+97+fcd9995VrCQAAwO4jAAYAAJqtSy65pOtll112jDAYdrl0VVXVvIULF/7lV7/61bO/+93v1moJAADAniEABgAAiIirr766x/nnnz9q//33P7JNmzZDUqlUga7Ah5fJZBoqKyv/vnjx4uf+9Kc/zbr33ntX6woAAMCeJwAGAAB4l379+hV97WtfGzRy5MhRPXv2PLaoqKizrsD/VV9fv37VqlXPvPDCC8/9+7//+5zFixfX6woAAMDeJQAGAAB4H61bt8678847Bx599NFHde/efURpaen+4apomq/M1q1bF69Zs+bF5557btY3v/nNOdXV1WltAQAAyB4CYAAAgI9g8ODBrcaOHXvI8OHDD+vevfvw1q1bHxACYXJXprq6+s01a9a88sorr7z8k5/8ZN5rr71Wqy0AAADZSwAMAADwCVx//fX7nHHGGYf169dvePv27Yfm5+e31hWSrLGxsXrjxo2vvvXWWy+PHz/+lR//+McrdQUAACA5BMAAAAC70Je//OUe55xzzvA+ffoM7tix45CioqKuukI2q6+vX7t27doXFy9ePGfixImv3Xvvvat1BQAAILkEwAAAALvRl7/85R6f+cxnBvfr129Qly5dDm/ZsqVAmL2qrq5u7bp16wS+AAAAOUoADAAAsIe0atUq75prrtnn2GOPPXi//fY7uH379oeUlpb2TaVS+brDbpKuqalZtnHjxnlvvfXW3GeffXbef/3Xfy2vra1Naw0AAEBuEgADAADsRQceeGDLq6+++oAhQ4Yc3LNnz4Pbtm17sGuj+biampqqq6qqXi8vL583Z86ceb/85S/nvfjii1t1BgAAoPkQAAMAAGSZoUOHFn/xi1/cf9CgQQf26NHjwHbt2h3YqlWr3qlUKk932CFdU1OzvLKycsHq1asXzJkzZ8Gf//znJTNmzKjWGgAAgOZNAAwAAJAAxx13XNkFF1xw4MEHH3xA165dDywtLd23pKRkn1QqVag7uS2TyTRs27ZtRXV19dJ169YtfOONNxZOmDBh4YQJEzbpDgAAAO8mAAYAAEiw8847r+OJJ57Yp3///vt16dKlT5s2bfZr3bp1v/z8/GLdSZampqaa6urqxZs3b16ybt26pQsXLlzy9NNPL33ooYc26A4AAAAflgAYAAAgx7Rr1y7/kksu6TFkyJCe++67b89OnTr1Kisr61VcXNyzZcuW3VKpVL4u7R2ZTKaprq6uvKamZtWWLVtWVlRUrFy6dOnK2bNnr7r//vvXVFZWNukSAAAAn4QAGAAAoBnp1KlTwec+97luQ4cO7bnPPvv0aNeuXafWrVt3Li4u7tqyZcvORUVFnfLy8lro1MeTTqe319fXr6+rq6uoqalZW11dvb6ysnL9ihUrVr/66qurHnzwwbUVFRWNOgUAAMDuIgAGAADgfznjjDPaH3bYYZ369OnTuUuXLp3Kysral5SUtC0uLu5YVFTUrqioqG2LFi065OfnlzaXnjQ1NW3dvn37xvr6+qr6+vrKmpqaDdu2bavasmXLpnXr1lUsXbp0/Ysvvrh+4sSJlZ4gAAAA9iYBMAAAAB9Lr169CkeNGtXuoIMOatexY8ey9u3bl7Zp06Z1SUlJWXFxcetWrVq1btGiRVlRUVHrwsLC1hGRX1hYWBoR+QUFBSV5eXkFeXl5u/0/LtPpdG06nW5sbGzcFhFNDQ0NW3f83+r6+vrq7du3b6mtra2uqamp3rZtW/XmzZurN23aVL1hw4YtCxYsqJo1a1bl0qVLt5s4AAAASSAABgAAYK/q169fUffu3Vvss88+xSUlJQVv//8LCwtT3bp1+8BTxuXl5VsbGhoyb//vbdu2Na5YsaJmzZo12xcvXlyvwwAAADQn7xcAF2gPAAAAu9vixYvrdwS11boBAAAAu0+eFgAAAAAAAADkBgEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4QAAMAAAAAAADkCAEwAAAAAAAAQI4o0AIAAAAAAACA5GhoLIyCxoaIiEilIpNXGE1v/0wADAAAAAAAAJAghQUN/0x6MxGppvT/5L6ugAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAAYAAAAAAADIEQJgAAAAAAAAgBwhAIb/v5272ZHiusM4/FZ1NUkz9sQwOF4EyZJtpJCwysa5jSy4n1xPEqRIuQFvvfGSgIwBOzGRQAQERnx0d1UW0cgWGvKxsMGvnmfVdc7/1OJsf+oCAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoIQADAAAAAAAAlBCAAQAAAAAAAEoIwAAAAAAAAAAlBGAAAAAAAACAEgIwAAAAAAAAQAkBGAAAAAAAAKCEAAwAAAAAAABQQgAGAAAAAAAAKCEAAwAAAAAAAJQQgAEAAAAAAABKCMAAAAAAAAAAJQRgAAAAAAAAgBICMAAAAAAAAEAJARgAAAAAAACghAAMAAAAAAAAUEIABgAAAAAAACghAAMAAAAAAACUEIABAAAAAAAASgjAAAAAAAAAACUEYAAAAAAAAIASAjAAAAAAAABACQEYAAAAAAAAoIQADAAAAAAAAFBCAAYAAAAAAAAoMY3JP//9K8My551lzpAk293a7QAAAAAAAAD8iIw3r+SL7TpPxuSt4/ibJJuz20QDBgAAAAAAAHhzrJPp6NvHYcyyjLl7dJTPbl/Jp6sPLufSsM+5ec7q5YOrF0OeP/SVaAAAAAAAAIA3weH7u6zfm79dWDIMSw6225w785vsx3XyzasOby5ssz69c4sAAAAAAAAAr9n69C6bC9sT93a7rKdnORin5Otxynzi1JQcfiwCAwAAAAAAALxO69O7HH68TaaT98cp85R8vbp3Nfszv8q0LHn7xMF1sjk/ZzUPmZ/MmWefhAYAAAAAAAD4oayPdjn7223Gn7x6ZrXPnetX8mBKkpv3cufDd/Pufn5FL56SzcVtNheT3dNt8tQlAwAAAAAAAHyv1sm0ySv/9XtsNWZ3I/lHkgzHi7/4XY7WYz5yiwAAAAAAAAA/Ivtcv/3nPEyS1fHa42t5+vNLyX7JoRsCAAAAAAAAePPt1/nbV3/KvePn1Xc371/NYxEYAAAAAAAA4M0yTHk2rvNo2WdzvHZqzN9v/SF3vju3evng/at5fPDLPDu1yuGyZHSVAAAAAAAAAK/XOGe4ueSvZ4e8M8xZbVe5ceuPufvy3Oqkw4+v5emDX+fuuTlLhhwsEYIBAAAAAAAAXpclGR8OuXP0TR4cPM/9z/+SRyfNDf/1TZezOp/87KdjzizJZkhO7edMy/w/nAUAAAAAAADg/zaMWcZkP8/ZLsmLacr2/MV8+cnvs/tP5/4FmLjAq1ifcioAAAAASUVORK5CYII=";function ie(e,o,t){return typeof e=="string"&&!isNaN(Number(e))&&(e=Number(e)),typeof e=="number"&&e<100?le(e):typeof e=="number"&&e>=100?e:typeof e=="string"&&e.includes("%")?Math.round(o&&o==="X"?parseFloat(e)/100*t.width:o&&o==="Y"?parseFloat(e)/100*t.height:parseFloat(e)/100*t.width):0}function At(e){return e.replace(/[xy]/g,function(o){const t=Math.random()*16|0;return(o==="x"?t:t&3|8).toString(16)})}function re(e){return typeof e>"u"||e==null?"":e.toString().replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function le(e){return typeof e=="number"&&e>100?e:(typeof e=="string"&&(e=Number(e.replace(/in*/gi,""))),Math.round(oe*e))}function te(e){const o=Number(e)||0;return isNaN(o)?0:Math.round(o*et)}function Ee(e){return e=e||0,Math.round((e>360?e-360:e)*6e4)}function mt(e){const o=e.toString(16);return o.length===1?"0"+o:o}function gt(e,o,t){return(mt(e)+mt(o)+mt(t)).toUpperCase()}function fe(e,o){let t=(e||"").replace("#","");!ht.test(t)&&t!==Ce.background1&&t!==Ce.background2&&t!==Ce.text1&&t!==Ce.text2&&t!==Ce.accent1&&t!==Ce.accent2&&t!==Ce.accent3&&t!==Ce.accent4&&t!==Ce.accent5&&t!==Ce.accent6&&(console.warn(`"${t}" is not a valid scheme color or hex RGB! "${xe}" used instead. Only provide 6-digit RGB or 'pptx.SchemeColor' values!`),t=xe);const i=ht.test(t)?"srgbClr":"schemeClr",r='val="'+(ht.test(t)?t.toUpperCase():t)+'"';return o?`${o}`:``}function ca(e,o){let t="";const i=Object.assign(Object.assign({},o),e),r=Math.round(i.size*et),s=i.color,l=Math.round(i.opacity*1e5);return t+=``,t+=fe(s,``),t+="",t}function Be(e){let o="solid",t="",i="",r="";return e&&(typeof e=="string"?t=e:(e.type&&(o=e.type),e.color&&(t=e.color),e.alpha&&(i+=``),e.transparency&&(i+=``)),o==="solid"?r+=`${fe(t,i)}`:r+=""),r}function Fe(e){return e._rels.length+e._relsChart.length+e._relsMedia.length+1}function Rt(e){if(!(!e||typeof e!="object"))return e.type!=="outer"&&e.type!=="inner"&&e.type!=="none"&&(console.warn("Warning: shadow.type options are `outer`, `inner` or `none`."),e.type="outer"),e.angle&&((isNaN(Number(e.angle))||e.angle<0||e.angle>359)&&(console.warn("Warning: shadow.angle can only be 0-359"),e.angle=270),e.angle=Math.round(Number(e.angle))),e.opacity&&((isNaN(Number(e.opacity))||e.opacity<0||e.opacity>1)&&(console.warn("Warning: shadow.opacity can only be 0-1"),e.opacity=.75),e.opacity=Number(e.opacity)),e.color&&e.color.startsWith("#")&&(console.warn('Warning: shadow.color should not include hash (#) character, , e.g. "FF0000"'),e.color=e.color.replace("#","")),e}function da(e,o,t){var i,r;const s=2.3+(!((i=e.options)===null||i===void 0)&&i.autoPageCharWeight?e.options.autoPageCharWeight:0),l=Math.floor(o/et*oe)/((!((r=e.options)===null||r===void 0)&&r.fontSize?e.options.fontSize:ke)/s),c=[];let A=[];const a=[],n=[];e.text&&e.text.toString().trim().length===0?A.push({_type:ne.tablecell,text:" "}):typeof e.text=="number"||typeof e.text=="string"?A.push({_type:ne.tablecell,text:(e.text||"").toString().trim()}):Array.isArray(e.text)&&(A=e.text);let u=[];return A.forEach(g=>{var d;typeof g.text=="string"&&(g.text.split(` `).length>1?g.text.split(` diff --git a/public/assets/presentations-BgohxBTm.js b/public/assets/presentations-CZ3vmyJx.js similarity index 95% rename from public/assets/presentations-BgohxBTm.js rename to public/assets/presentations-CZ3vmyJx.js index 183deb8..1247cb5 100644 --- a/public/assets/presentations-BgohxBTm.js +++ b/public/assets/presentations-CZ3vmyJx.js @@ -1 +1 @@ -import{bh as i,b0 as o}from"./index-CZVUqkdk.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-DyD9x5ZD.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}; diff --git a/public/assets/quizzes-DciJY4wy.js b/public/assets/quizzes-BNBqkGD1.js similarity index 96% rename from public/assets/quizzes-DciJY4wy.js rename to public/assets/quizzes-BNBqkGD1.js index b794edc..0a95739 100644 --- a/public/assets/quizzes-DciJY4wy.js +++ b/public/assets/quizzes-BNBqkGD1.js @@ -1 +1 @@ -import{d as z,n as a,c as o,F as c,E as h,b as l,p as u,t as n,e as p,a8 as _,C as q,f as m,b0 as r}from"./index-CZVUqkdk.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-DyD9x5ZD.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}; diff --git a/public/assets/scrollToHash-CsDQF0uS.js b/public/assets/scrollToHash-CpYt_GM6.js similarity index 89% rename from public/assets/scrollToHash-CsDQF0uS.js rename to public/assets/scrollToHash-CpYt_GM6.js index 8f3e2ce..9c711e8 100644 --- a/public/assets/scrollToHash-CsDQF0uS.js +++ b/public/assets/scrollToHash-CpYt_GM6.js @@ -1 +1 @@ -import{U as i,k as d,Z as u,aq as m}from"./index-CZVUqkdk.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-DyD9x5ZD.js";const l=2500;function h(s){const a=d();let c="";i([()=>m(s),()=>a.hash],([n,e])=>{!n||!e||e===c||(c=e,u(()=>{if(typeof document>"u")return;let o=e.slice(1);try{o=decodeURIComponent(o)}catch{}const t=document.getElementById(o);if(!t)return;const r=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;t.scrollIntoView({behavior:r?"auto":"smooth",block:"start"}),t.classList.add("hash-target"),setTimeout(()=>t.classList.remove("hash-target"),l)}))},{immediate:!0})}export{h as u}; diff --git a/public/index.html b/public/index.html index 3b22ac7..5d167b2 100644 --- a/public/index.html +++ b/public/index.html @@ -35,8 +35,8 @@ document.write(' - - + +
diff --git a/public/sw.js b/public/sw.js index 5608119..a27336d 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,4 +1,4 @@ -const BUILD = 'ff753c961168' +const BUILD = 'b7f259c2688f' // 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.