import{t as e}from"./db-D2Po16Ap.js";import{B as t}from"./Card-Cxq4Ee-X.js";import{a as n,n as r,o as i}from"./now-Ds5hQLtP.js";function a(e){return e.recurrence===`weekly`?`weekly`:`once`}function o(e){return Array.isArray(e)?Array.from(new Set(e.filter(e=>Number.isInteger(e)&&e>=0&&e<=6))).sort((e,t)=>e-t):[]}function s(e){return n(e).getDay()}function c(e){return e.status!==`done`&&e.status!==`canceled`}function l(e,t){if(a(e)===`weekly`){let n=o(e.daysOfWeek);return n.length===0?!1:n.includes(s(t))}return e.dueDate===t}function u(e,t){return a(e)===`weekly`?e.lastDoneDateISO===t:e.status===`done`}function d(e,t){return!c(e)||!l(e,t)?!1:!u(e,t)}function f(e,t){return!c(e)||a(e)===`weekly`?!1:e.dueDate!=null&&e.dueDatet(`common.weekDays.${h[e]}`,void 0,n)).join(`, `)},n)}var _={high:0,medium:1,low:2,none:3};function v(e){return[...e].sort((e,t)=>{let n=e.dueDate??``,r=t.dueDate??``;if(n!==r)return n.localeCompare(r);let i=_[e.priority]??3,a=_[t.priority]??3;return i===a?t.createdAt.localeCompare(e.createdAt):i-a})}async function y(t=3){return(await e.tasks.toArray()).filter(e=>e.topPriorityOrder!=null&&e.topPriorityOrder>0).sort((e,t)=>(e.topPriorityOrder??0)-(t.topPriorityOrder??0)).slice(0,t)}async function b(t){return(await e.tasks.toArray()).filter(e=>e.createdAt.slice(0,10)===t).length}async function x(t){return(await e.tasks.toArray()).filter(e=>d(e,t)).length}async function S(){return(await e.tasks.toArray()).filter(e=>e.topPriorityOrder!=null&&e.topPriorityOrder>0).length}function C(e,t,n){if(t==null&&n==null)return!0;if(a(e)===`once`)return!(e.dueDate==null||t!=null&&e.dueDaten);let i=t??`1970-01-01`,o=n??`2999-12-31`,s=i;for(let t=0;s<=o&&t<400;t+=1){if(l(e,s))return!0;s=r(s,1)}return!1}async function w(t=i()){let n=r(t,1),a=(await e.tasks.toArray()).filter(e=>f(e,t));for(let e of a)await P(e.id,{dueDate:n});return a.length}async function T(t=10){let n=i();return v((await e.tasks.toArray()).filter(e=>f(e,n))).slice(0,t)}async function E(t=10){let n=i();return v((await e.tasks.toArray()).filter(e=>d(e,n))).slice(0,t)}async function D(t=10){let n=i();return v((await e.tasks.toArray()).filter(e=>p(e,n))).slice(0,t)}function O(){return crypto.randomUUID?.()??`_${Date.now()}_${Math.random().toString(36).slice(2)}`}function k(e){let t=i();if(typeof e==`object`&&e)return m(e,t);let r=e;if(!r)return null;let a=864e5;return r{let n=e.dueDate!=null,r=t.dueDate!=null;return!n&&!r?t.createdAt.localeCompare(e.createdAt):n?r?e.dueDate===t.dueDate?t.createdAt.localeCompare(e.createdAt):e.dueDate.localeCompare(t.dueDate):-1:1})}async function j(t){let n=await e.tasks.orderBy(`createdAt`).reverse().toArray();return A(t?n.filter(e=>!(t.status!=null&&e.status!==t.status||t.excludeStatus?.length&&t.excludeStatus.includes(e.status)||t.category!=null&&e.category!==t.category||t.energy!=null&&e.energy!==t.energy||!C(e,t.dueFrom,t.dueTo))):n)}async function M(t,n=i()){let r=await e.tasks.get(t);if(r)return a(r)===`weekly`?P(t,{lastDoneDateISO:n}):P(t,{status:`done`})}async function N(t){let n=new Date().toISOString(),r=(t.recurrence??`once`)===`weekly`,i={id:O(),title:t.title.trim()||`Без названия`,dueDate:r?null:t.dueDate??null,recurrence:r?`weekly`:void 0,daysOfWeek:r?o(t.daysOfWeek):void 0,status:t.status??`inbox`,category:t.category??`Прочее`,priority:t.priority??`none`,important:t.important??!1,urgent:t.urgent??!1,estimateMin:t.estimateMin??null,energy:t.energy??null,notes:t.notes??null,createdAt:n,updatedAt:n,completedAt:null};return await e.tasks.add(i),i}async function P(t,n){let r=await e.tasks.get(t);if(!r)return;let i={...r,...n,id:r.id,createdAt:r.createdAt,updatedAt:new Date().toISOString()};return n.status===`done`&&!r.completedAt&&(i.completedAt=new Date().toISOString()),n.status!=null&&n.status!==`done`&&(i.completedAt=null),i.recurrence===`weekly`?(i.dueDate=null,i.daysOfWeek=o(i.daysOfWeek),n.daysOfWeek!=null&&n.lastDoneDateISO===void 0&&(i.lastDoneDateISO=void 0)):(i.recurrence=void 0,i.daysOfWeek=void 0,n.recurrence===`once`&&(i.lastDoneDateISO=void 0)),await e.tasks.put(i),i}async function F(t){await e.tasks.delete(t)}var I=3;async function L(t,n){let r=await e.tasks.toArray(),i=r.filter(e=>e.topPriorityOrder!=null&&e.topPriorityOrder>0).sort((e,t)=>(e.topPriorityOrder??0)-(t.topPriorityOrder??0)).filter(e=>e.id!==t),a=[],o=0;for(let e=1;e<=I;e++)e===n?a.push({id:t,order:e}):o{for(let t of r){let n=a.find(e=>e.id===t.id),r=n?n.order:void 0;t.topPriorityOrder!==r&&await e.tasks.update(t.id,{topPriorityOrder:r,updatedAt:new Date().toISOString()})}})}async function R(t){if(!(await e.tasks.get(t))?.topPriorityOrder)return;let n=(await e.tasks.toArray()).filter(e=>e.topPriorityOrder!=null&&e.topPriorityOrder>0&&e.id!==t).sort((e,t)=>(e.topPriorityOrder??0)-(t.topPriorityOrder??0));await e.transaction(`rw`,e.tasks,async()=>{await e.tasks.update(t,{topPriorityOrder:void 0,updatedAt:new Date().toISOString()});for(let t=0;t