Files
sm-bm-plugin/public/assets/DashboardView-Dg7omPI2.js

3 lines
62 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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-BhVKyY57.js";import{_ as Yt}from"./PageHead.vue_vue_type_script_setup_true_lang-DaSt0RSc.js";import{_ as Gt}from"./LoadState.vue_vue_type_script_setup_true_lang-Dht3xUQt.js";import{_ as Je}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-05LZv84e.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=/(?<![A-Za-z0-9_.@])@([A-Za-z0-9_.-]{2,255})/g,pt=/`([^`\n]+)`/g,Sa=/\[([^\]\n]+)\]\(([^()\s]*(?:\([^()\s]*\)[^()\s]*)*)\)/g,Ma=/(?<![\w/@.])https?:\/\/[^\s<>"'`]+/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(`<code>${we(y)}</code>`)),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(`<a href="${we(k)}"${u}>${f}</a>`)}),i=i.replace(Ma,c=>{if(c.includes("\0"))return c;const{url:y,rest:d}=Ba(c),k=et(y);return k?l(`<a href="${we(k)}"${st}>${we(y)}</a>`)+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(`<span class="mention" title="@${we(d.handle)}">${we(f)}</span>`)+d.rest}),i=tt(we(i)).replace(/\n/g,"<br>"),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().top<D}function A(){return f.value?[...f.value.querySelectorAll("button")]:[]}function q(){Y(()=>A()[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<S?j.value+ge:j.value%ge;break;case"ArrowUp":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};