1import{s as F,_ as ke,a as Me,e as Se,b as Oe,i as Ce,c as xe,u as Ie,d as Ye,f as Ne,g as Ve,h as Pe,j as $e}from"./9_9SMVrC.js";import{b as Ae,X as Fe,l as Be}from"./PnHXRdXq.js";import{_ as Ue}from"./B3eTsvEW.js";import{u as Ee}from"./smpFWi4R.js";import{u as Le}from"./C8dULLSw.js";import{u as je}from"./COePPooe.js";import{X as qe,I as l,Q as s,S as Re,O as B,a1 as ze,a3 as X,aa as h,aj as U,an as Q,al as E,ak as b,aC as L,Y as H,az as Ge,aq as J,n as We}from"./Csg0bbzG.js";import{f as D,s as Xe}from"./B1PeDSjh.js";import"./BjiLse1n.js";import"./KR9krNPv.js";import"./DvXkyWUv.js";import"./I26E4aQk.js";import"./W9wOWANb.js";import"./i9HOuKz0.js";import"./ClMgnH0U.js";import"./BI6dUjYm.js";import"./DaXzoCs9.js";import"./Y0109eIG.js";import"./DCajF1z-.js";import"./sC14VKf5.js";import"./DGcXw_ZQ.js";import"./9HCzfvA4.js";import"./CowuyxjA.js";import"./C-4xKkNk.js";import"./B4EFf8x_.js";import"./BsR9itgK.js";import"./PAUADqLi.js";import"./B2jCKq1G.js";import"./VQzQmOLA.js";import"./DwaNsvZ2.js";import"./C3vaz5Bu.js";const Qe={class:"ctw-dashboard-page ctw-dashboard-content-page ctw-list-page"},He={class:"ctw-dashboard-calendar-widget"},Je={class:"ctw-calendar-event-title"},Ke={key:0,class:"ctw-calendar-event-time"},Ya=qe({__name:"calendar",setup(Ze){je();const{FullCalendar:K,dayGridPlugin:j,calendarLocales:Z}=Ie(),{locale:d}=Ae(),{getMyTags:ee,getMyTagsTop:ae}=Ee(),{calendarTodosByCreated:q}=Le(),m=l(D(F(new Date),"yyyy-MM")),r=l("month"),R=l(null),O=l([]),C=l([]),f=l([]),x=l({}),T=l({}),I=l(!1),u=l(null),g=l(!1);let Y=0;function z(e){return{label:e.label??e.name??"",value:e.value??e.id??0}}function G(e){const a=new Map;for(const t of O.value)t&&typeof t.value<"u"&&t.label&&a.set(t.value,t);for(const t of e)t&&typeof t.value<"u"&&t.label&&a.set(t.value,t);O.value=Array.from(a.values())}const te=Fe(async e=>{const a=await ee((e??"").toString());G((a.data?.data??[]).map(z))},300);function ne(e){const a=f.value.findIndex(t=>t.value===e.value);a===-1?f.value.push(e):f.value.splice(a,1)}const k=s(()=>f.value.map(e=>e.value)),y=s(()=>Number(m.value.slice(0,4))),oe=s(()=>String(y.value)),le=s(()=>u.value?T.value[u.value]??[]:[]),se=s(()=>le.value.map(e=>({uuid:e.uuid,title:e.title,time:e.created_at||""}))),M=s(()=>["sk","cs","pl"].includes(d.value)?1:0),re=s(()=>d.value==="sk"||d.value==="cs"||d.value==="pl"?d.value:"en"),ue=s(()=>{const e=M.value,a=new Intl.DateTimeFormat(d.value,{weekday:"short"}),t=Array.from({length:7},(o,c)=>{const i=new Date(Date.UTC(2024,0,7+c));return a.format(i)});return[...t.slice(e),...t.slice(0,e)]}),ce=s(()=>{const e=new Intl.DateTimeFormat(d.value,{month:"long"}),a=[];for(let t=0;t<12;t+=1){const o=new Date(y.value,t,1),c=F(o),i=Se(o),v=Xe(c,{weekStartsOn:M.value}),P=Oe(i,{weekStartsOn:M.value}),S=[];let n=v,p=[];for(;n<=P;){const $=D(n,"yyyy-MM-dd"),A=Ce(n,o),W=A?T.value[$]?.length??0:0;p.push({key:`${$}-${t}`,dayNumber:Number(D(n,"d")),inMonth:A,hasItems:A&&W>0,count:W,date:$}),p.length===7&&(S.push(p),p=[]),n=xe(n,1)}a.push({key:`${y.value}-${t+1}`,label:e.format(o),weeks:S})}return a});async function ie(){const e=await q(m.value,"plugin",k.value,w.value);x.value=e.data??{}}async function de(){const e=++Y;I.value=!0;try{const a=Array.from({length:12},(c,i)=>{const v=String(i+1).padStart(2,"0");return q(`${y.value}-${v}`,"plugin",k.value,w.value)}),t=await Promise.all(a);if(e!==Y)return;const o={};for(const c of t){const i=c.data??{};for(const v of Object.keys(i))o[v]=i[v]??[]}T.value=o,u.value&&!o[u.value]?.length&&(u.value=null,g.value=!1)}finally{e===Y&&(I.value=!1)}}const w=l(!0);Re(()=>{r.value!=="year"&&ie()}),B(()=>[r.value,y.value,k.value.join(","),w.value],()=>{r.value==="year"&&de()},{immediate:!0}),B(g,e=>{e||(u.value=null)}),ze(async()=>{const e=await ae(10);C.value=(e.data?.data??[]).map(z),G(C.value)});const _=l(!1),N=l(null);function ve(e){N.value=e.event.extendedProps,_.value=!0}function me(e){N.value=e,_.value=!0}function pe(e){return T.value[e]??[]}function fe(e){const a=pe(u.value||"").find(t=>t.uuid===e.uuid);a&&me(a)}function ye(e){u.value=e,g.value=!0}function ge(e){m.value=`${y.value+e}-01`}function we(){m.value=D(F(new Date),"yyyy-MM")}const _e=s(()=>
1{if(r.value==="year")return oe.value;const[e,a]=m.value.split("-").map(Number);return new Intl.DateTimeFormat(d.value,{month:"long",year:"numeric"}).format(new Date(e,(a||1)-1,1))});function V(){return R.value?.getApi?.()??null}function he(e){if(r.value==="year"){ge(e);return}const a=V();a&&(e<0?a.prev?.():a.next?.())}function be(){if(r.value==="year"){we();return}V()?.today?.()}B(r,async e=>{const a=$e(e);if(a)for(let t=0;t<12;t+=1){await We();const o=V();if(o?.changeView){o.changeView(a);return}await new Promise(c=>window.setTimeout(c,40))}});const De=s(()=>({...Ye(),plugins:j?[j]:[],locales:Z,locale:re.value,firstDay:M.value,initialView:"dayGridMonth",weekends:!0,events:Te.value,eventClick:ve,datesSet:e=>{const a=D(e.view.currentStart,"yyyy-MM");m.value!==a&&(m.value=a)}})),Te=s(()=>{const e=[];for(const a in x.value){const t=x.value[a];if(t)for(const o of t)e.push({id:o.uuid,title:o.title?o.title:"-",start:o.created_at??void 0,extendedProps:{...o,type:1}})}return e});return(e,a)=>{const t=Ne,o=Ve,c=Be,i=Pe,v=ke,P=Ue,S=Me;return b(),X("div",Qe,[h(v,{"top-tags":C.value,"selected-ids":k.value,onToggleTag:ne},{default:E(()=>[h(t,{"selected-tags":f.value,"onUpdate:selectedTags":a[0]||(a[0]=n=>f.value=n),"match-all-tags":w.value,"onUpdate:matchAllTags":a[1]||(a[1]=n=>w.value=n),tags:O.value,onSearch:H(te)},null,8,["selected-tags","match-all-tags","tags","onSearch"]),L("div",He,[h(o,{view:r.value,"onUpdate:view":a[2]||(a[2]=n=>r.value=n),label:_e.value,onStep:he,onToday:be},null,8,["view","label"]),r.value!=="year"?(b(),U(c,{key:0},{default:E(()=>[h(H(K),{ref_key:"calendarRef",ref:R,options:De.value},{eventContent:E(({event:n,timeText:p})=>[L("div",{class:Ge(["ctw-calendar-event",n.extendedProps.type===2?"ctw-calendar-event--event":n.extendedProps.type===1?"ctw-calendar-event--todo":"ctw-calendar-event--note",`ctw-calendar-event-p${Number(n.extendedProps.priority||0)}`])},[L("span",Je,J(n.title),1),p?(b(),X("span",Ke,J(p),1)):Q("",!0)],2)]),_:1},8,["options"])]),_:1})):(b(),U(i,{key:1,loading:I.value,months:ce.value,"week-day-labels":ue.value,"selected-day":u.value,onSelectDay:ye},null,8,["loading","months","week-day-labels","selected-day"]))])]),_:1},8,["top-tags","selected-ids"]),_.value?(b(),U(P,{key:0,modelValue:_.value,"onUpdate:modelValue":a[3]||(a[3]=n=>_.value=n),note:N.value||{}},null,8,["modelValue","note"])):Q("",!0),h(S,{open:g.value,"onUpdate:open":a[4]||(a[4]=n=>g.value=n),"date-label":u.value??"-",items:se.value,onSelect:fe},null,8,["open","date-label","items"])])}}});export{Ya as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.