diff --git a/dist/assets/index-2e6a5b77.js b/dist/assets/index-2e6a5b77.js deleted file mode 100644 index 8b49545..0000000 --- a/dist/assets/index-2e6a5b77.js +++ /dev/null @@ -1,17 +0,0 @@ -(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(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"&&n(o)}).observe(document,{childList:!0,subtree:!0});function s(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 n(r){if(r.ep)return;r.ep=!0;const i=s(r);fetch(r.href,i)}})();/** -* @vue/shared v3.5.18 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function ws(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const it={},Fe=[],Kt=()=>{},ri=()=>!1,Nn=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Ds=t=>t.startsWith("onUpdate:"),wt=Object.assign,ks=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},ii=Object.prototype.hasOwnProperty,nt=(t,e)=>ii.call(t,e),N=Array.isArray,Re=t=>cn(t)==="[object Map]",Hn=t=>cn(t)==="[object Set]",Zs=t=>cn(t)==="[object Date]",K=t=>typeof t=="function",pt=t=>typeof t=="string",Gt=t=>typeof t=="symbol",ft=t=>t!==null&&typeof t=="object",Mo=t=>(ft(t)||K(t))&&K(t.then)&&K(t.catch),jo=Object.prototype.toString,cn=t=>jo.call(t),li=t=>cn(t).slice(8,-1),Po=t=>cn(t)==="[object Object]",xs=t=>pt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Ge=ws(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Vn=t=>{const e=Object.create(null);return s=>e[s]||(e[s]=t(s))},ai=/-(\w)/g,fe=Vn(t=>t.replace(ai,(e,s)=>s?s.toUpperCase():"")),ci=/\B([A-Z])/g,ge=Vn(t=>t.replace(ci,"-$1").toLowerCase()),Io=Vn(t=>t.charAt(0).toUpperCase()+t.slice(1)),$n=Vn(t=>t?`on${Io(t)}`:""),de=(t,e)=>!Object.is(t,e),kn=(t,...e)=>{for(let s=0;s{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:s})},An=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Xs;const Un=()=>Xs||(Xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Pt(t){if(N(t)){const e={};for(let s=0;s{if(s){const n=s.split(di);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function W(t){let e="";if(pt(t))e=t;else if(N(t))for(let s=0;sKn(s,e))}const Ro=t=>!!(t&&t.__v_isRef===!0),C=t=>pt(t)?t:t==null?"":N(t)||ft(t)&&(t.toString===jo||!K(t.toString))?Ro(t)?C(t.value):JSON.stringify(t,qo,2):String(t),qo=(t,e)=>Ro(e)?qo(t,e.value):Re(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((s,[n,r],i)=>(s[ts(n,i)+" =>"]=r,s),{})}:Hn(e)?{[`Set(${e.size})`]:[...e.values()].map(s=>ts(s))}:Gt(e)?ts(e):ft(e)&&!N(e)&&!Po(e)?String(e):e,ts=(t,e="")=>{var s;return Gt(t)?`Symbol(${(s=t.description)!=null?s:e})`:t};/** -* @vue/reactivity v3.5.18 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let kt;class yi{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=kt,!e&&kt&&(this.index=(kt.scopes||(kt.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e0&&--this._on===0&&(kt=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(Ze){let e=Ze;for(Ze=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;Ye;){let e=Ye;for(Ye=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=s}}if(t)throw t}function Uo(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Ko(t){let e,s=t.depsTail,n=s;for(;n;){const r=n.prevDep;n.version===-1?(n===s&&(s=r),Os(n),bi(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=r}t.deps=e,t.depsTail=s}function ds(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Wo(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Wo(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===sn)||(t.globalVersion=sn,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!ds(t))))return;t.flags|=2;const e=t.dep,s=at,n=Wt;at=t,Wt=!0;try{Uo(t);const r=t.fn(t._value);(e.version===0||de(r,t._value))&&(t.flags|=128,t._value=r,e.version++)}catch(r){throw e.version++,r}finally{at=s,Wt=n,Ko(t),t.flags&=-3}}function Os(t,e=!1){const{dep:s,prevSub:n,nextSub:r}=t;if(n&&(n.nextSub=r,t.prevSub=void 0),r&&(r.prevSub=n,t.nextSub=void 0),s.subs===t&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Os(i,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function bi(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let Wt=!0;const Bo=[];function oe(){Bo.push(Wt),Wt=!1}function re(){const t=Bo.pop();Wt=t===void 0?!0:t}function $s(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=at;at=void 0;try{e()}finally{at=s}}}let sn=0;class Ti{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class As{constructor(e){this.computed=e,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(e){if(!at||!Wt||at===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==at)s=this.activeLink=new Ti(at,this),at.deps?(s.prevDep=at.depsTail,at.depsTail.nextDep=s,at.depsTail=s):at.deps=at.depsTail=s,zo(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=at.depsTail,s.nextDep=void 0,at.depsTail.nextDep=s,at.depsTail=s,at.deps===s&&(at.deps=n)}return s}trigger(e){this.version++,sn++,this.notify(e)}notify(e){Cs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Ss()}}}function zo(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)zo(n)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const fs=new WeakMap,Ce=Symbol(""),hs=Symbol(""),on=Symbol("");function xt(t,e,s){if(Wt&&at){let n=fs.get(t);n||fs.set(t,n=new Map);let r=n.get(s);r||(n.set(s,r=new As),r.map=n,r.key=s),r.track()}}function ne(t,e,s,n,r,i){const o=fs.get(t);if(!o){sn++;return}const l=d=>{d&&d.trigger()};if(Cs(),e==="clear")o.forEach(l);else{const d=N(t),m=d&&xs(s);if(d&&s==="length"){const p=Number(n);o.forEach((y,E)=>{(E==="length"||E===on||!Gt(E)&&E>=p)&&l(y)})}else switch((s!==void 0||o.has(void 0))&&l(o.get(s)),m&&l(o.get(on)),e){case"add":d?m&&l(o.get("length")):(l(o.get(Ce)),Re(t)&&l(o.get(hs)));break;case"delete":d||(l(o.get(Ce)),Re(t)&&l(o.get(hs)));break;case"set":Re(t)&&l(o.get(Ce));break}}Ss()}function je(t){const e=et(t);return e===t?e:(xt(e,"iterate",on),Vt(t)?e:e.map(Tt))}function Wn(t){return xt(t=et(t),"iterate",on),t}const wi={__proto__:null,[Symbol.iterator](){return ns(this,Symbol.iterator,Tt)},concat(...t){return je(this).concat(...t.map(e=>N(e)?je(e):e))},entries(){return ns(this,"entries",t=>(t[1]=Tt(t[1]),t))},every(t,e){return te(this,"every",t,e,void 0,arguments)},filter(t,e){return te(this,"filter",t,e,s=>s.map(Tt),arguments)},find(t,e){return te(this,"find",t,e,Tt,arguments)},findIndex(t,e){return te(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return te(this,"findLast",t,e,Tt,arguments)},findLastIndex(t,e){return te(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return te(this,"forEach",t,e,void 0,arguments)},includes(...t){return ss(this,"includes",t)},indexOf(...t){return ss(this,"indexOf",t)},join(t){return je(this).join(t)},lastIndexOf(...t){return ss(this,"lastIndexOf",t)},map(t,e){return te(this,"map",t,e,void 0,arguments)},pop(){return Be(this,"pop")},push(...t){return Be(this,"push",t)},reduce(t,...e){return to(this,"reduce",t,e)},reduceRight(t,...e){return to(this,"reduceRight",t,e)},shift(){return Be(this,"shift")},some(t,e){return te(this,"some",t,e,void 0,arguments)},splice(...t){return Be(this,"splice",t)},toReversed(){return je(this).toReversed()},toSorted(t){return je(this).toSorted(t)},toSpliced(...t){return je(this).toSpliced(...t)},unshift(...t){return Be(this,"unshift",t)},values(){return ns(this,"values",Tt)}};function ns(t,e,s){const n=Wn(t),r=n[e]();return n!==t&&!Vt(t)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.value&&(i.value=s(i.value)),i}),r}const Di=Array.prototype;function te(t,e,s,n,r,i){const o=Wn(t),l=o!==t&&!Vt(t),d=o[e];if(d!==Di[e]){const y=d.apply(t,i);return l?Tt(y):y}let m=s;o!==t&&(l?m=function(y,E){return s.call(this,Tt(y),E,t)}:s.length>2&&(m=function(y,E){return s.call(this,y,E,t)}));const p=d.call(o,m,n);return l&&r?r(p):p}function to(t,e,s,n){const r=Wn(t);let i=s;return r!==t&&(Vt(t)?s.length>3&&(i=function(o,l,d){return s.call(this,o,l,d,t)}):i=function(o,l,d){return s.call(this,o,Tt(l),d,t)}),r[e](i,...n)}function ss(t,e,s){const n=et(t);xt(n,"iterate",on);const r=n[e](...s);return(r===-1||r===!1)&&Is(s[0])?(s[0]=et(s[0]),n[e](...s)):r}function Be(t,e,s=[]){oe(),Cs();const n=et(t)[e].apply(t,s);return Ss(),re(),n}const ki=ws("__proto__,__v_isRef,__isVue"),Jo=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Gt));function xi(t){Gt(t)||(t=String(t));const e=et(this);return xt(e,"has",t),e.hasOwnProperty(t)}class Qo{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,n){if(s==="__v_skip")return e.__v_skip;const r=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!r;if(s==="__v_isReadonly")return r;if(s==="__v_isShallow")return i;if(s==="__v_raw")return n===(r?i?Fi:Xo:i?Zo:Yo).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=N(e);if(!r){let d;if(o&&(d=wi[s]))return d;if(s==="hasOwnProperty")return xi}const l=Reflect.get(e,s,Ct(e)?e:n);return(Gt(s)?Jo.has(s):ki(s))||(r||xt(e,"get",s),i)?l:Ct(l)?o&&xs(s)?l:l.value:ft(l)?r?js(l):Ms(l):l}}class Go extends Qo{constructor(e=!1){super(!1,e)}set(e,s,n,r){let i=e[s];if(!this._isShallow){const d=he(i);if(!Vt(n)&&!he(n)&&(i=et(i),n=et(n)),!N(e)&&Ct(i)&&!Ct(n))return d?!1:(i.value=n,!0)}const o=N(e)&&xs(s)?Number(s)t,yn=t=>Reflect.getPrototypeOf(t);function Ei(t,e,s){return function(...n){const r=this.__v_raw,i=et(r),o=Re(i),l=t==="entries"||t===Symbol.iterator&&o,d=t==="keys"&&o,m=r[t](...n),p=s?ps:e?En:Tt;return!e&&xt(i,"iterate",d?hs:Ce),{next(){const{value:y,done:E}=m.next();return E?{value:y,done:E}:{value:l?[p(y[0]),p(y[1])]:p(y),done:E}},[Symbol.iterator](){return this}}}}function _n(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function Mi(t,e){const s={get(r){const i=this.__v_raw,o=et(i),l=et(r);t||(de(r,l)&&xt(o,"get",r),xt(o,"get",l));const{has:d}=yn(o),m=e?ps:t?En:Tt;if(d.call(o,r))return m(i.get(r));if(d.call(o,l))return m(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!t&&xt(et(r),"iterate",Ce),Reflect.get(r,"size",r)},has(r){const i=this.__v_raw,o=et(i),l=et(r);return t||(de(r,l)&&xt(o,"has",r),xt(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,d=et(l),m=e?ps:t?En:Tt;return!t&&xt(d,"iterate",Ce),l.forEach((p,y)=>r.call(i,m(p),m(y),o))}};return wt(s,t?{add:_n("add"),set:_n("set"),delete:_n("delete"),clear:_n("clear")}:{add(r){!e&&!Vt(r)&&!he(r)&&(r=et(r));const i=et(this);return yn(i).has.call(i,r)||(i.add(r),ne(i,"add",r,r)),this},set(r,i){!e&&!Vt(i)&&!he(i)&&(i=et(i));const o=et(this),{has:l,get:d}=yn(o);let m=l.call(o,r);m||(r=et(r),m=l.call(o,r));const p=d.call(o,r);return o.set(r,i),m?de(i,p)&&ne(o,"set",r,i):ne(o,"add",r,i),this},delete(r){const i=et(this),{has:o,get:l}=yn(i);let d=o.call(i,r);d||(r=et(r),d=o.call(i,r)),l&&l.call(i,r);const m=i.delete(r);return d&&ne(i,"delete",r,void 0),m},clear(){const r=et(this),i=r.size!==0,o=r.clear();return i&&ne(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{s[r]=Ei(r,t,e)}),s}function Es(t,e){const s=Mi(t,e);return(n,r,i)=>r==="__v_isReactive"?!t:r==="__v_isReadonly"?t:r==="__v_raw"?n:Reflect.get(nt(s,r)&&r in n?s:n,r,i)}const ji={get:Es(!1,!1)},Pi={get:Es(!1,!0)},Ii={get:Es(!0,!1)};const Yo=new WeakMap,Zo=new WeakMap,Xo=new WeakMap,Fi=new WeakMap;function Ri(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qi(t){return t.__v_skip||!Object.isExtensible(t)?0:Ri(li(t))}function Ms(t){return he(t)?t:Ps(t,!1,Si,ji,Yo)}function Li(t){return Ps(t,!1,Ai,Pi,Zo)}function js(t){return Ps(t,!0,Oi,Ii,Xo)}function Ps(t,e,s,n,r){if(!ft(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const i=qi(t);if(i===0)return t;const o=r.get(t);if(o)return o;const l=new Proxy(t,i===2?n:s);return r.set(t,l),l}function qe(t){return he(t)?qe(t.__v_raw):!!(t&&t.__v_isReactive)}function he(t){return!!(t&&t.__v_isReadonly)}function Vt(t){return!!(t&&t.__v_isShallow)}function Is(t){return t?!!t.__v_raw:!1}function et(t){const e=t&&t.__v_raw;return e?et(e):t}function Ni(t){return!nt(t,"__v_skip")&&Object.isExtensible(t)&&us(t,"__v_skip",!0),t}const Tt=t=>ft(t)?Ms(t):t,En=t=>ft(t)?js(t):t;function Ct(t){return t?t.__v_isRef===!0:!1}function tt(t){return $o(t,!1)}function Hi(t){return $o(t,!0)}function $o(t,e){return Ct(t)?t:new Vi(t,e)}class Vi{constructor(e,s){this.dep=new As,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:et(e),this._value=s?e:Tt(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,n=this.__v_isShallow||Vt(e)||he(e);e=n?e:et(e),de(e,s)&&(this._rawValue=e,this._value=n?e:Tt(e),this.dep.trigger())}}function tr(t){return Ct(t)?t.value:t}const Ui={get:(t,e,s)=>e==="__v_raw"?t:tr(Reflect.get(t,e,s)),set:(t,e,s,n)=>{const r=t[e];return Ct(r)&&!Ct(s)?(r.value=s,!0):Reflect.set(t,e,s,n)}};function er(t){return qe(t)?t:new Proxy(t,Ui)}class Ki{constructor(e,s,n){this.fn=e,this.setter=s,this._value=void 0,this.dep=new As(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=sn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&at!==this)return Vo(this,!0),!0}get value(){const e=this.dep.track();return Wo(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Wi(t,e,s=!1){let n,r;return K(t)?n=t:(n=t.get,r=t.set),new Ki(n,r,s)}const bn={},Mn=new WeakMap;let ke;function Bi(t,e=!1,s=ke){if(s){let n=Mn.get(s);n||Mn.set(s,n=[]),n.push(t)}}function zi(t,e,s=it){const{immediate:n,deep:r,once:i,scheduler:o,augmentJob:l,call:d}=s,m=R=>r?R:Vt(R)||r===!1||r===0?se(R,1):se(R);let p,y,E,P,U=!1,H=!1;if(Ct(t)?(y=()=>t.value,U=Vt(t)):qe(t)?(y=()=>m(t),U=!0):N(t)?(H=!0,U=t.some(R=>qe(R)||Vt(R)),y=()=>t.map(R=>{if(Ct(R))return R.value;if(qe(R))return m(R);if(K(R))return d?d(R,2):R()})):K(t)?e?y=d?()=>d(t,2):t:y=()=>{if(E){oe();try{E()}finally{re()}}const R=ke;ke=p;try{return d?d(t,3,[P]):t(P)}finally{ke=R}}:y=Kt,e&&r){const R=y,lt=r===!0?1/0:r;y=()=>se(R(),lt)}const st=Lo(),G=()=>{p.stop(),st&&st.active&&ks(st.effects,p)};if(i&&e){const R=e;e=(...lt)=>{R(...lt),G()}}let Y=H?new Array(t.length).fill(bn):bn;const X=R=>{if(!(!(p.flags&1)||!p.dirty&&!R))if(e){const lt=p.run();if(r||U||(H?lt.some((It,vt)=>de(It,Y[vt])):de(lt,Y))){E&&E();const It=ke;ke=p;try{const vt=[lt,Y===bn?void 0:H&&Y[0]===bn?[]:Y,P];Y=lt,d?d(e,3,vt):e(...vt)}finally{ke=It}}}else p.run()};return l&&l(X),p=new No(y),p.scheduler=o?()=>o(X,!1):X,P=R=>Bi(R,!1,p),E=p.onStop=()=>{const R=Mn.get(p);if(R){if(d)d(R,4);else for(const lt of R)lt();Mn.delete(p)}},e?n?X(!0):Y=p.run():o?o(X.bind(null,!0),!0):p.run(),G.pause=p.pause.bind(p),G.resume=p.resume.bind(p),G.stop=G,G}function se(t,e=1/0,s){if(e<=0||!ft(t)||t.__v_skip||(s=s||new Set,s.has(t)))return t;if(s.add(t),e--,Ct(t))se(t.value,e,s);else if(N(t))for(let n=0;n{se(n,e,s)});else if(Po(t)){for(const n in t)se(t[n],e,s);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&se(t[n],e,s)}return t}/** -* @vue/runtime-core v3.5.18 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function un(t,e,s,n){try{return n?t(...n):t()}catch(r){Bn(r,e,s)}}function Yt(t,e,s,n){if(K(t)){const r=un(t,e,s,n);return r&&Mo(r)&&r.catch(i=>{Bn(i,e,s)}),r}if(N(t)){const r=[];for(let i=0;i>>1,r=Mt[n],i=rn(r);i=rn(s)?Mt.push(t):Mt.splice(Qi(e),0,t),t.flags|=1,sr()}}function sr(){jn||(jn=nr.then(rr))}function Gi(t){N(t)?Le.push(...t):ce&&t.id===-1?ce.splice(Ie+1,0,t):t.flags&1||(Le.push(t),t.flags|=1),sr()}function eo(t,e,s=zt+1){for(;srn(s)-rn(n));if(Le.length=0,ce){ce.push(...e);return}for(ce=e,Ie=0;Iet.id==null?t.flags&2?-1:1/0:t.id;function rr(t){const e=Kt;try{for(zt=0;zt{n._d&&co(-1);const i=Pn(e);let o;try{o=t(...r)}finally{Pn(i),n._d&&co(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function Ut(t,e){if(Ht===null)return t;const s=Gn(Ht),n=t.dirs||(t.dirs=[]);for(let r=0;rt.__isTeleport;function Rs(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Rs(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function lr(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Xe(t,e,s,n,r=!1){if(N(t)){t.forEach((U,H)=>Xe(U,e&&(N(e)?e[H]:e),s,n,r));return}if($e(n)&&!r){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Xe(t,e,s,n.component.subTree);return}const i=n.shapeFlag&4?Gn(n.component):n.el,o=r?null:i,{i:l,r:d}=t,m=e&&e.r,p=l.refs===it?l.refs={}:l.refs,y=l.setupState,E=et(y),P=y===it?()=>!1:U=>nt(E,U);if(m!=null&&m!==d&&(pt(m)?(p[m]=null,P(m)&&(y[m]=null)):Ct(m)&&(m.value=null)),K(d))un(d,l,12,[o,p]);else{const U=pt(d),H=Ct(d);if(U||H){const st=()=>{if(t.f){const G=U?P(d)?y[d]:p[d]:d.value;r?N(G)&&ks(G,i):N(G)?G.includes(i)||G.push(i):U?(p[d]=[i],P(d)&&(y[d]=p[d])):(d.value=[i],t.k&&(p[t.k]=d.value))}else U?(p[d]=o,P(d)&&(y[d]=o)):H&&(d.value=o,t.k&&(p[t.k]=o))};o?(st.id=-1,Rt(st,s)):st()}}}Un().requestIdleCallback;Un().cancelIdleCallback;const $e=t=>!!t.type.__asyncLoader,ar=t=>t.type.__isKeepAlive;function $i(t,e){cr(t,"a",e)}function tl(t,e){cr(t,"da",e)}function cr(t,e,s=jt){const n=t.__wdc||(t.__wdc=()=>{let r=s;for(;r;){if(r.isDeactivated)return;r=r.parent}return t()});if(zn(e,n,s),s){let r=s.parent;for(;r&&r.parent;)ar(r.parent.vnode)&&el(n,e,s,r),r=r.parent}}function el(t,e,s,n){const r=zn(e,t,n,!0);Ls(()=>{ks(n[e],r)},s)}function zn(t,e,s=jt,n=!1){if(s){const r=s[t]||(s[t]=[]),i=e.__weh||(e.__weh=(...o)=>{oe();const l=dn(s),d=Yt(e,s,t,o);return l(),re(),d});return n?r.unshift(i):r.push(i),i}}const ie=t=>(e,s=jt)=>{(!an||t==="sp")&&zn(t,(...n)=>e(...n),s)},nl=ie("bm"),qs=ie("m"),sl=ie("bu"),ol=ie("u"),rl=ie("bum"),Ls=ie("um"),il=ie("sp"),ll=ie("rtg"),al=ie("rtc");function cl(t,e=jt){zn("ec",t,e)}const ul=Symbol.for("v-ndc");function dt(t,e,s,n){let r;const i=s&&s[n],o=N(t);if(o||pt(t)){const l=o&&qe(t);let d=!1,m=!1;l&&(d=!Vt(t),m=he(t),t=Wn(t)),r=new Array(t.length);for(let p=0,y=t.length;pe(l,d,void 0,i&&i[d]));else{const l=Object.keys(t);r=new Array(l.length);for(let d=0,m=l.length;dt?Er(t)?Gn(t):gs(t.parent):null,tn=wt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>gs(t.parent),$root:t=>gs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Ns(t),$forceUpdate:t=>t.f||(t.f=()=>{Fs(t.update)}),$nextTick:t=>t.n||(t.n=Se.bind(t.proxy)),$watch:t=>jl.bind(t)}),os=(t,e)=>t!==it&&!t.__isScriptSetup&&nt(t,e),dl={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:n,data:r,props:i,accessCache:o,type:l,appContext:d}=t;let m;if(e[0]!=="$"){const P=o[e];if(P!==void 0)switch(P){case 1:return n[e];case 2:return r[e];case 4:return s[e];case 3:return i[e]}else{if(os(n,e))return o[e]=1,n[e];if(r!==it&&nt(r,e))return o[e]=2,r[e];if((m=t.propsOptions[0])&&nt(m,e))return o[e]=3,i[e];if(s!==it&&nt(s,e))return o[e]=4,s[e];ms&&(o[e]=0)}}const p=tn[e];let y,E;if(p)return e==="$attrs"&&xt(t.attrs,"get",""),p(t);if((y=l.__cssModules)&&(y=y[e]))return y;if(s!==it&&nt(s,e))return o[e]=4,s[e];if(E=d.config.globalProperties,nt(E,e))return E[e]},set({_:t},e,s){const{data:n,setupState:r,ctx:i}=t;return os(r,e)?(r[e]=s,!0):n!==it&&nt(n,e)?(n[e]=s,!0):nt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(i[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:n,appContext:r,propsOptions:i}},o){let l;return!!s[o]||t!==it&&nt(t,o)||os(e,o)||(l=i[0])&&nt(l,o)||nt(n,o)||nt(tn,o)||nt(r.config.globalProperties,o)},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:nt(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function no(t){return N(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}let ms=!0;function fl(t){const e=Ns(t),s=t.proxy,n=t.ctx;ms=!1,e.beforeCreate&&so(e.beforeCreate,t,"bc");const{data:r,computed:i,methods:o,watch:l,provide:d,inject:m,created:p,beforeMount:y,mounted:E,beforeUpdate:P,updated:U,activated:H,deactivated:st,beforeDestroy:G,beforeUnmount:Y,destroyed:X,unmounted:R,render:lt,renderTracked:It,renderTriggered:vt,errorCaptured:ht,serverPrefetch:le,expose:V,inheritAttrs:Z,components:yt,directives:Zt,filters:me}=e;if(m&&hl(m,n,null),o)for(const ct in o){const ot=o[ct];K(ot)&&(n[ct]=ot.bind(s))}if(r){const ct=r.call(s,s);ft(ct)&&(t.data=Ms(ct))}if(ms=!0,i)for(const ct in i){const ot=i[ct],Xt=K(ot)?ot.bind(s,s):K(ot.get)?ot.get.bind(s,s):Kt,Oe=!K(ot)&&K(ot.set)?ot.set.bind(s):Kt,$t=mt({get:Xt,set:Oe});Object.defineProperty(n,ct,{enumerable:!0,configurable:!0,get:()=>$t.value,set:Lt=>$t.value=Lt})}if(l)for(const ct in l)ur(l[ct],n,s,ct);if(d){const ct=K(d)?d.call(s):d;Reflect.ownKeys(ct).forEach(ot=>{_l(ot,ct[ot])})}p&&so(p,t,"c");function _t(ct,ot){N(ot)?ot.forEach(Xt=>ct(Xt.bind(s))):ot&&ct(ot.bind(s))}if(_t(nl,y),_t(qs,E),_t(sl,P),_t(ol,U),_t($i,H),_t(tl,st),_t(cl,ht),_t(al,It),_t(ll,vt),_t(rl,Y),_t(Ls,R),_t(il,le),N(V))if(V.length){const ct=t.exposed||(t.exposed={});V.forEach(ot=>{Object.defineProperty(ct,ot,{get:()=>s[ot],set:Xt=>s[ot]=Xt,enumerable:!0})})}else t.exposed||(t.exposed={});lt&&t.render===Kt&&(t.render=lt),Z!=null&&(t.inheritAttrs=Z),yt&&(t.components=yt),Zt&&(t.directives=Zt),le&&lr(t)}function hl(t,e,s=Kt){N(t)&&(t=vs(t));for(const n in t){const r=t[n];let i;ft(r)?"default"in r?i=xn(r.from||n,r.default,!0):i=xn(r.from||n):i=xn(r),Ct(i)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):e[n]=i}}function so(t,e,s){Yt(N(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,s)}function ur(t,e,s,n){let r=n.includes(".")?Dr(s,n):()=>s[n];if(pt(t)){const i=e[t];K(i)&&en(r,i)}else if(K(t))en(r,t.bind(s));else if(ft(t))if(N(t))t.forEach(i=>ur(i,e,s,n));else{const i=K(t.handler)?t.handler.bind(s):e[t.handler];K(i)&&en(r,i,t)}}function Ns(t){const e=t.type,{mixins:s,extends:n}=e,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=t.appContext,l=i.get(e);let d;return l?d=l:!r.length&&!s&&!n?d=e:(d={},r.length&&r.forEach(m=>In(d,m,o,!0)),In(d,e,o)),ft(e)&&i.set(e,d),d}function In(t,e,s,n=!1){const{mixins:r,extends:i}=e;i&&In(t,i,s,!0),r&&r.forEach(o=>In(t,o,s,!0));for(const o in e)if(!(n&&o==="expose")){const l=pl[o]||s&&s[o];t[o]=l?l(t[o],e[o]):e[o]}return t}const pl={data:oo,props:ro,emits:ro,methods:Qe,computed:Qe,beforeCreate:Et,created:Et,beforeMount:Et,mounted:Et,beforeUpdate:Et,updated:Et,beforeDestroy:Et,beforeUnmount:Et,destroyed:Et,unmounted:Et,activated:Et,deactivated:Et,errorCaptured:Et,serverPrefetch:Et,components:Qe,directives:Qe,watch:ml,provide:oo,inject:gl};function oo(t,e){return e?t?function(){return wt(K(t)?t.call(this,this):t,K(e)?e.call(this,this):e)}:e:t}function gl(t,e){return Qe(vs(t),vs(e))}function vs(t){if(N(t)){const e={};for(let s=0;s1)return s&&K(e)?e.call(n&&n.proxy):e}}const fr={},hr=()=>Object.create(fr),pr=t=>Object.getPrototypeOf(t)===fr;function bl(t,e,s,n=!1){const r={},i=hr();t.propsDefaults=Object.create(null),gr(t,e,r,i);for(const o in t.propsOptions[0])o in r||(r[o]=void 0);s?t.props=n?r:Li(r):t.type.props?t.props=r:t.props=i,t.attrs=i}function Tl(t,e,s,n){const{props:r,attrs:i,vnode:{patchFlag:o}}=t,l=et(r),[d]=t.propsOptions;let m=!1;if((n||o>0)&&!(o&16)){if(o&8){const p=t.vnode.dynamicProps;for(let y=0;y{d=!0;const[E,P]=mr(y,e,!0);wt(o,E),P&&l.push(...P)};!s&&e.mixins.length&&e.mixins.forEach(p),t.extends&&p(t.extends),t.mixins&&t.mixins.forEach(p)}if(!i&&!d)return ft(t)&&n.set(t,Fe),Fe;if(N(i))for(let p=0;pt==="_"||t==="__"||t==="_ctx"||t==="$stable",Vs=t=>N(t)?t.map(Jt):[Jt(t)],Dl=(t,e,s)=>{if(e._n)return e;const n=Yi((...r)=>Vs(e(...r)),s);return n._c=!1,n},vr=(t,e,s)=>{const n=t._ctx;for(const r in t){if(Hs(r))continue;const i=t[r];if(K(i))e[r]=Dl(r,i,n);else if(i!=null){const o=Vs(i);e[r]=()=>o}}},yr=(t,e)=>{const s=Vs(e);t.slots.default=()=>s},_r=(t,e,s)=>{for(const n in e)(s||!Hs(n))&&(t[n]=e[n])},kl=(t,e,s)=>{const n=t.slots=hr();if(t.vnode.shapeFlag&32){const r=e.__;r&&us(n,"__",r,!0);const i=e._;i?(_r(n,e,s),s&&us(n,"_",i,!0)):vr(e,n)}else e&&yr(t,e)},xl=(t,e,s)=>{const{vnode:n,slots:r}=t;let i=!0,o=it;if(n.shapeFlag&32){const l=e._;l?s&&l===1?i=!1:_r(r,e,s):(i=!e.$stable,vr(e,r)),o=e}else e&&(yr(t,e),o={default:1});if(i)for(const l in r)!Hs(l)&&o[l]==null&&delete r[l]},Rt=Nl;function Cl(t){return Sl(t)}function Sl(t,e){const s=Un();s.__VUE__=!0;const{insert:n,remove:r,patchProp:i,createElement:o,createText:l,createComment:d,setText:m,setElementText:p,parentNode:y,nextSibling:E,setScopeId:P=Kt,insertStaticContent:U}=t,H=(c,f,v,w=null,_=null,b=null,M=void 0,A=null,O=!!f.dynamicChildren)=>{if(c===f)return;c&&!ze(c,f)&&(w=Ae(c),Lt(c,_,b,!0),c=null),f.patchFlag===-2&&(O=!1,f.dynamicChildren=null);const{type:D,ref:F,shapeFlag:j}=f;switch(D){case Qn:st(c,f,v,w);break;case pe:G(c,f,v,w);break;case Cn:c==null&&Y(f,v,w,M);break;case Q:yt(c,f,v,w,_,b,M,A,O);break;default:j&1?lt(c,f,v,w,_,b,M,A,O):j&6?Zt(c,f,v,w,_,b,M,A,O):(j&64||j&128)&&D.process(c,f,v,w,_,b,M,A,O,ae)}F!=null&&_?Xe(F,c&&c.ref,b,f||c,!f):F==null&&c&&c.ref!=null&&Xe(c.ref,null,b,c,!0)},st=(c,f,v,w)=>{if(c==null)n(f.el=l(f.children),v,w);else{const _=f.el=c.el;f.children!==c.children&&m(_,f.children)}},G=(c,f,v,w)=>{c==null?n(f.el=d(f.children||""),v,w):f.el=c.el},Y=(c,f,v,w)=>{[c.el,c.anchor]=U(c.children,f,v,w,c.el,c.anchor)},X=({el:c,anchor:f},v,w)=>{let _;for(;c&&c!==f;)_=E(c),n(c,v,w),c=_;n(f,v,w)},R=({el:c,anchor:f})=>{let v;for(;c&&c!==f;)v=E(c),r(c),c=v;r(f)},lt=(c,f,v,w,_,b,M,A,O)=>{f.type==="svg"?M="svg":f.type==="math"&&(M="mathml"),c==null?It(f,v,w,_,b,M,A,O):le(c,f,_,b,M,A,O)},It=(c,f,v,w,_,b,M,A)=>{let O,D;const{props:F,shapeFlag:j,transition:I,dirs:L}=c;if(O=c.el=o(c.type,b,F&&F.is,F),j&8?p(O,c.children):j&16&&ht(c.children,O,null,w,_,rs(c,b),M,A),L&&we(c,null,w,"created"),vt(O,c,c.scopeId,M,w),F){for(const rt in F)rt!=="value"&&!Ge(rt)&&i(O,rt,null,F[rt],b,w);"value"in F&&i(O,"value",null,F.value,b),(D=F.onVnodeBeforeMount)&&Bt(D,w,c)}L&&we(c,null,w,"beforeMount");const B=Ol(_,I);B&&I.beforeEnter(O),n(O,f,v),((D=F&&F.onVnodeMounted)||B||L)&&Rt(()=>{D&&Bt(D,w,c),B&&I.enter(O),L&&we(c,null,w,"mounted")},_)},vt=(c,f,v,w,_)=>{if(v&&P(c,v),w)for(let b=0;b{for(let D=O;D{const A=f.el=c.el;let{patchFlag:O,dynamicChildren:D,dirs:F}=f;O|=c.patchFlag&16;const j=c.props||it,I=f.props||it;let L;if(v&&De(v,!1),(L=I.onVnodeBeforeUpdate)&&Bt(L,v,f,c),F&&we(f,c,v,"beforeUpdate"),v&&De(v,!0),(j.innerHTML&&I.innerHTML==null||j.textContent&&I.textContent==null)&&p(A,""),D?V(c.dynamicChildren,D,A,v,w,rs(f,_),b):M||ot(c,f,A,null,v,w,rs(f,_),b,!1),O>0){if(O&16)Z(A,j,I,v,_);else if(O&2&&j.class!==I.class&&i(A,"class",null,I.class,_),O&4&&i(A,"style",j.style,I.style,_),O&8){const B=f.dynamicProps;for(let rt=0;rt{L&&Bt(L,v,f,c),F&&we(f,c,v,"updated")},w)},V=(c,f,v,w,_,b,M)=>{for(let A=0;A{if(f!==v){if(f!==it)for(const b in f)!Ge(b)&&!(b in v)&&i(c,b,f[b],null,_,w);for(const b in v){if(Ge(b))continue;const M=v[b],A=f[b];M!==A&&b!=="value"&&i(c,b,A,M,_,w)}"value"in v&&i(c,"value",f.value,v.value,_)}},yt=(c,f,v,w,_,b,M,A,O)=>{const D=f.el=c?c.el:l(""),F=f.anchor=c?c.anchor:l("");let{patchFlag:j,dynamicChildren:I,slotScopeIds:L}=f;L&&(A=A?A.concat(L):L),c==null?(n(D,v,w),n(F,v,w),ht(f.children||[],v,F,_,b,M,A,O)):j>0&&j&64&&I&&c.dynamicChildren?(V(c.dynamicChildren,I,v,_,b,M,A),(f.key!=null||_&&f===_.subTree)&&br(c,f,!0)):ot(c,f,v,F,_,b,M,A,O)},Zt=(c,f,v,w,_,b,M,A,O)=>{f.slotScopeIds=A,c==null?f.shapeFlag&512?_.ctx.activate(f,v,w,M,O):me(f,v,w,_,b,M,O):ve(c,f,O)},me=(c,f,v,w,_,b,M)=>{const A=c.component=Jl(c,w,_);if(ar(c)&&(A.ctx.renderer=ae),Ql(A,!1,M),A.asyncDep){if(_&&_.registerDep(A,_t,M),!c.el){const O=A.subTree=Qt(pe);G(null,O,f,v),c.placeholder=O.el}}else _t(A,c,f,v,_,b,M)},ve=(c,f,v)=>{const w=f.component=c.component;if(ql(c,f,v))if(w.asyncDep&&!w.asyncResolved){ct(w,f,v);return}else w.next=f,w.update();else f.el=c.el,w.vnode=f},_t=(c,f,v,w,_,b,M)=>{const A=()=>{if(c.isMounted){let{next:j,bu:I,u:L,parent:B,vnode:rt}=c;{const St=Tr(c);if(St){j&&(j.el=rt.el,ct(c,j,M)),St.asyncDep.then(()=>{c.isUnmounted||A()});return}}let $=j,bt;De(c,!1),j?(j.el=rt.el,ct(c,j,M)):j=rt,I&&kn(I),(bt=j.props&&j.props.onVnodeBeforeUpdate)&&Bt(bt,B,j,rt),De(c,!0);const gt=is(c),Ft=c.subTree;c.subTree=gt,H(Ft,gt,y(Ft.el),Ae(Ft),c,_,b),j.el=gt.el,$===null&&Ll(c,gt.el),L&&Rt(L,_),(bt=j.props&&j.props.onVnodeUpdated)&&Rt(()=>Bt(bt,B,j,rt),_)}else{let j;const{el:I,props:L}=f,{bm:B,m:rt,parent:$,root:bt,type:gt}=c,Ft=$e(f);if(De(c,!1),B&&kn(B),!Ft&&(j=L&&L.onVnodeBeforeMount)&&Bt(j,$,f),De(c,!0),I&&Ee){const St=()=>{c.subTree=is(c),Ee(I,c.subTree,c,_,null)};Ft&>.__asyncHydrate?gt.__asyncHydrate(I,c,St):St()}else{bt.ce&&bt.ce._def.shadowRoot!==!1&&bt.ce._injectChildStyle(gt);const St=c.subTree=is(c);H(null,St,v,w,c,_,b),f.el=St.el}if(rt&&Rt(rt,_),!Ft&&(j=L&&L.onVnodeMounted)){const St=f;Rt(()=>Bt(j,$,St),_)}(f.shapeFlag&256||$&&$e($.vnode)&&$.vnode.shapeFlag&256)&&c.a&&Rt(c.a,_),c.isMounted=!0,f=v=w=null}};c.scope.on();const O=c.effect=new No(A);c.scope.off();const D=c.update=O.run.bind(O),F=c.job=O.runIfDirty.bind(O);F.i=c,F.id=c.uid,O.scheduler=()=>Fs(F),De(c,!0),D()},ct=(c,f,v)=>{f.component=c;const w=c.vnode.props;c.vnode=f,c.next=null,Tl(c,f.props,w,v),xl(c,f.children,v),oe(),eo(c),re()},ot=(c,f,v,w,_,b,M,A,O=!1)=>{const D=c&&c.children,F=c?c.shapeFlag:0,j=f.children,{patchFlag:I,shapeFlag:L}=f;if(I>0){if(I&128){Oe(D,j,v,w,_,b,M,A,O);return}else if(I&256){Xt(D,j,v,w,_,b,M,A,O);return}}L&8?(F&16&&ye(D,_,b),j!==D&&p(v,j)):F&16?L&16?Oe(D,j,v,w,_,b,M,A,O):ye(D,_,b,!0):(F&8&&p(v,""),L&16&&ht(j,v,w,_,b,M,A,O))},Xt=(c,f,v,w,_,b,M,A,O)=>{c=c||Fe,f=f||Fe;const D=c.length,F=f.length,j=Math.min(D,F);let I;for(I=0;IF?ye(c,_,b,!0,!1,j):ht(f,v,w,_,b,M,A,O,j)},Oe=(c,f,v,w,_,b,M,A,O)=>{let D=0;const F=f.length;let j=c.length-1,I=F-1;for(;D<=j&&D<=I;){const L=c[D],B=f[D]=O?ue(f[D]):Jt(f[D]);if(ze(L,B))H(L,B,v,null,_,b,M,A,O);else break;D++}for(;D<=j&&D<=I;){const L=c[j],B=f[I]=O?ue(f[I]):Jt(f[I]);if(ze(L,B))H(L,B,v,null,_,b,M,A,O);else break;j--,I--}if(D>j){if(D<=I){const L=I+1,B=LI)for(;D<=j;)Lt(c[D],_,b,!0),D++;else{const L=D,B=D,rt=new Map;for(D=B;D<=I;D++){const Ot=f[D]=O?ue(f[D]):Jt(f[D]);Ot.key!=null&&rt.set(Ot.key,D)}let $,bt=0;const gt=I-B+1;let Ft=!1,St=0;const be=new Array(gt);for(D=0;D=gt){Lt(Ot,_,b,!0);continue}let Nt;if(Ot.key!=null)Nt=rt.get(Ot.key);else for($=B;$<=I;$++)if(be[$-B]===0&&ze(Ot,f[$])){Nt=$;break}Nt===void 0?Lt(Ot,_,b,!0):(be[Nt-B]=D+1,Nt>=St?St=Nt:Ft=!0,H(Ot,f[Nt],v,null,_,b,M,A,O),bt++)}const Te=Ft?Al(be):Fe;for($=Te.length-1,D=gt-1;D>=0;D--){const Ot=B+D,Nt=f[Ot],pn=f[Ot+1],Ke=Ot+1{const{el:b,type:M,transition:A,children:O,shapeFlag:D}=c;if(D&6){$t(c.component.subTree,f,v,w);return}if(D&128){c.suspense.move(f,v,w);return}if(D&64){M.move(c,f,v,ae);return}if(M===Q){n(b,f,v);for(let j=0;jA.enter(b),_);else{const{leave:j,delayLeave:I,afterLeave:L}=A,B=()=>{c.ctx.isUnmounted?r(b):n(b,f,v)},rt=()=>{j(b,()=>{B(),L&&L()})};I?I(b,B,rt):rt()}else n(b,f,v)},Lt=(c,f,v,w=!1,_=!1)=>{const{type:b,props:M,ref:A,children:O,dynamicChildren:D,shapeFlag:F,patchFlag:j,dirs:I,cacheIndex:L}=c;if(j===-2&&(_=!1),A!=null&&(oe(),Xe(A,null,v,c,!0),re()),L!=null&&(f.renderCache[L]=void 0),F&256){f.ctx.deactivate(c);return}const B=F&1&&I,rt=!$e(c);let $;if(rt&&($=M&&M.onVnodeBeforeUnmount)&&Bt($,f,c),F&6)Zn(c.component,v,w);else{if(F&128){c.suspense.unmount(v,w);return}B&&we(c,null,f,"beforeUnmount"),F&64?c.type.remove(c,f,v,ae,w):D&&!D.hasOnce&&(b!==Q||j>0&&j&64)?ye(D,f,v,!1,!0):(b===Q&&j&384||!_&&F&16)&&ye(O,f,v),w&&fn(c)}(rt&&($=M&&M.onVnodeUnmounted)||B)&&Rt(()=>{$&&Bt($,f,c),B&&we(c,null,f,"unmounted")},v)},fn=c=>{const{type:f,el:v,anchor:w,transition:_}=c;if(f===Q){Yn(v,w);return}if(f===Cn){R(c);return}const b=()=>{r(v),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(c.shapeFlag&1&&_&&!_.persisted){const{leave:M,delayLeave:A}=_,O=()=>M(v,b);A?A(c.el,b,O):O()}else b()},Yn=(c,f)=>{let v;for(;c!==f;)v=E(c),r(c),c=v;r(f)},Zn=(c,f,v)=>{const{bum:w,scope:_,job:b,subTree:M,um:A,m:O,a:D,parent:F,slots:{__:j}}=c;lo(O),lo(D),w&&kn(w),F&&N(j)&&j.forEach(I=>{F.renderCache[I]=void 0}),_.stop(),b&&(b.flags|=8,Lt(M,c,f,v)),A&&Rt(A,f),Rt(()=>{c.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&c.asyncDep&&!c.asyncResolved&&c.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},ye=(c,f,v,w=!1,_=!1,b=0)=>{for(let M=b;M{if(c.shapeFlag&6)return Ae(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const f=E(c.anchor||c.el),v=f&&f[Zi];return v?E(v):f};let Ue=!1;const hn=(c,f,v)=>{c==null?f._vnode&&Lt(f._vnode,null,null,!0):H(f._vnode||null,c,f,null,null,null,v),f._vnode=c,Ue||(Ue=!0,eo(),or(),Ue=!1)},ae={p:H,um:Lt,m:$t,r:fn,mt:me,mc:ht,pc:ot,pbc:V,n:Ae,o:t};let _e,Ee;return e&&([_e,Ee]=e(ae)),{render:hn,hydrate:_e,createApp:yl(hn,_e)}}function rs({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function De({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Ol(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function br(t,e,s=!1){const n=t.children,r=e.children;if(N(n)&&N(r))for(let i=0;i>1,t[s[l]]0&&(e[n]=s[i-1]),s[i]=n)}}for(i=s.length,o=s[i-1];i-- >0;)s[i]=o,o=e[o];return s}function Tr(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Tr(e)}function lo(t){if(t)for(let e=0;exn(El);function en(t,e,s){return wr(t,e,s)}function wr(t,e,s=it){const{immediate:n,deep:r,flush:i,once:o}=s,l=wt({},s),d=e&&n||!e&&i!=="post";let m;if(an){if(i==="sync"){const P=Ml();m=P.__watcherHandles||(P.__watcherHandles=[])}else if(!d){const P=()=>{};return P.stop=Kt,P.resume=Kt,P.pause=Kt,P}}const p=jt;l.call=(P,U,H)=>Yt(P,p,U,H);let y=!1;i==="post"?l.scheduler=P=>{Rt(P,p&&p.suspense)}:i!=="sync"&&(y=!0,l.scheduler=(P,U)=>{U?P():Fs(P)}),l.augmentJob=P=>{e&&(P.flags|=4),y&&(P.flags|=2,p&&(P.id=p.uid,P.i=p))};const E=zi(t,e,l);return an&&(m?m.push(E):d&&E()),E}function jl(t,e,s){const n=this.proxy,r=pt(t)?t.includes(".")?Dr(n,t):()=>n[t]:t.bind(n,n);let i;K(e)?i=e:(i=e.handler,s=e);const o=dn(this),l=wr(r,i.bind(n),s);return o(),l}function Dr(t,e){const s=e.split(".");return()=>{let n=t;for(let r=0;re==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${fe(e)}Modifiers`]||t[`${ge(e)}Modifiers`];function Il(t,e,...s){if(t.isUnmounted)return;const n=t.vnode.props||it;let r=s;const i=e.startsWith("update:"),o=i&&Pl(n,e.slice(7));o&&(o.trim&&(r=s.map(p=>pt(p)?p.trim():p)),o.number&&(r=s.map(An)));let l,d=n[l=$n(e)]||n[l=$n(fe(e))];!d&&i&&(d=n[l=$n(ge(e))]),d&&Yt(d,t,6,r);const m=n[l+"Once"];if(m){if(!t.emitted)t.emitted={};else if(t.emitted[l])return;t.emitted[l]=!0,Yt(m,t,6,r)}}function kr(t,e,s=!1){const n=e.emitsCache,r=n.get(t);if(r!==void 0)return r;const i=t.emits;let o={},l=!1;if(!K(t)){const d=m=>{const p=kr(m,e,!0);p&&(l=!0,wt(o,p))};!s&&e.mixins.length&&e.mixins.forEach(d),t.extends&&d(t.extends),t.mixins&&t.mixins.forEach(d)}return!i&&!l?(ft(t)&&n.set(t,null),null):(N(i)?i.forEach(d=>o[d]=null):wt(o,i),ft(t)&&n.set(t,o),o)}function Jn(t,e){return!t||!Nn(e)?!1:(e=e.slice(2).replace(/Once$/,""),nt(t,e[0].toLowerCase()+e.slice(1))||nt(t,ge(e))||nt(t,e))}function is(t){const{type:e,vnode:s,proxy:n,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:d,render:m,renderCache:p,props:y,data:E,setupState:P,ctx:U,inheritAttrs:H}=t,st=Pn(t);let G,Y;try{if(s.shapeFlag&4){const R=r||n,lt=R;G=Jt(m.call(lt,R,p,y,P,E,U)),Y=l}else{const R=e;G=Jt(R.length>1?R(y,{attrs:l,slots:o,emit:d}):R(y,null)),Y=e.props?l:Fl(l)}}catch(R){nn.length=0,Bn(R,t,1),G=Qt(pe)}let X=G;if(Y&&H!==!1){const R=Object.keys(Y),{shapeFlag:lt}=X;R.length&<&7&&(i&&R.some(Ds)&&(Y=Rl(Y,i)),X=Ve(X,Y,!1,!0))}return s.dirs&&(X=Ve(X,null,!1,!0),X.dirs=X.dirs?X.dirs.concat(s.dirs):s.dirs),s.transition&&Rs(X,s.transition),G=X,Pn(st),G}const Fl=t=>{let e;for(const s in t)(s==="class"||s==="style"||Nn(s))&&((e||(e={}))[s]=t[s]);return e},Rl=(t,e)=>{const s={};for(const n in t)(!Ds(n)||!(n.slice(9)in e))&&(s[n]=t[n]);return s};function ql(t,e,s){const{props:n,children:r,component:i}=t,{props:o,children:l,patchFlag:d}=e,m=i.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&d>=0){if(d&1024)return!0;if(d&16)return n?ao(n,o,m):!!o;if(d&8){const p=e.dynamicProps;for(let y=0;yt.__isSuspense;function Nl(t,e){e&&e.pendingBranch?N(t)?e.effects.push(...t):e.effects.push(t):Gi(t)}const Q=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),pe=Symbol.for("v-cmt"),Cn=Symbol.for("v-stc"),nn=[];let qt=null;function k(t=!1){nn.push(qt=t?null:[])}function Hl(){nn.pop(),qt=nn[nn.length-1]||null}let ln=1;function co(t,e=!1){ln+=t,t<0&&qt&&e&&(qt.hasOnce=!0)}function Cr(t){return t.dynamicChildren=ln>0?qt||Fe:null,Hl(),ln>0&&qt&&qt.push(t),t}function x(t,e,s,n,r,i){return Cr(a(t,e,s,n,r,i,!0))}function Vl(t,e,s,n,r){return Cr(Qt(t,e,s,n,r,!0))}function Sr(t){return t?t.__v_isVNode===!0:!1}function ze(t,e){return t.type===e.type&&t.key===e.key}const Or=({key:t})=>t??null,Sn=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?pt(t)||Ct(t)||K(t)?{i:Ht,r:t,k:e,f:!!s}:t:null);function a(t,e=null,s=null,n=0,r=null,i=t===Q?0:1,o=!1,l=!1){const d={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Or(e),ref:e&&Sn(e),scopeId:ir,slotScopeIds:null,children:s,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:n,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ht};return l?(Us(d,s),i&128&&t.normalize(d)):s&&(d.shapeFlag|=pt(s)?8:16),ln>0&&!o&&qt&&(d.patchFlag>0||i&6)&&d.patchFlag!==32&&qt.push(d),d}const Qt=Ul;function Ul(t,e=null,s=null,n=0,r=null,i=!1){if((!t||t===ul)&&(t=pe),Sr(t)){const l=Ve(t,e,!0);return s&&Us(l,s),ln>0&&!i&&qt&&(l.shapeFlag&6?qt[qt.indexOf(t)]=l:qt.push(l)),l.patchFlag=-2,l}if(Xl(t)&&(t=t.__vccOpts),e){e=Kl(e);let{class:l,style:d}=e;l&&!pt(l)&&(e.class=W(l)),ft(d)&&(Is(d)&&!N(d)&&(d=wt({},d)),e.style=Pt(d))}const o=pt(t)?1:xr(t)?128:Xi(t)?64:ft(t)?4:K(t)?2:0;return a(t,e,s,n,r,o,i,!0)}function Kl(t){return t?Is(t)||pr(t)?wt({},t):t:null}function Ve(t,e,s=!1,n=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:d}=t,m=e?Wl(r||{},e):r,p={__v_isVNode:!0,__v_skip:!0,type:t.type,props:m,key:m&&Or(m),ref:e&&e.ref?s&&i?N(i)?i.concat(Sn(e)):[i,Sn(e)]:Sn(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:l,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Q?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:d,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Ve(t.ssContent),ssFallback:t.ssFallback&&Ve(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return d&&n&&Rs(p,d.clone(p)),p}function _s(t=" ",e=0){return Qt(Qn,null,t,e)}function uo(t,e){const s=Qt(Cn,null,t);return s.staticCount=e,s}function J(t="",e=!1){return e?(k(),Vl(pe,null,t)):Qt(pe,null,t)}function Jt(t){return t==null||typeof t=="boolean"?Qt(pe):N(t)?Qt(Q,null,t.slice()):Sr(t)?ue(t):Qt(Qn,null,String(t))}function ue(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Ve(t)}function Us(t,e){let s=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(N(e))s=16;else if(typeof e=="object")if(n&65){const r=e.default;r&&(r._c&&(r._d=!1),Us(t,r()),r._c&&(r._d=!0));return}else{s=32;const r=e._;!r&&!pr(e)?e._ctx=Ht:r===3&&Ht&&(Ht.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else K(e)?(e={default:e,_ctx:Ht},s=32):(e=String(e),n&64?(s=16,e=[_s(e)]):s=8);t.children=e,t.shapeFlag|=s}function Wl(...t){const e={};for(let s=0;sjt||Ht;let Fn,bs;{const t=Un(),e=(s,n)=>{let r;return(r=t[s])||(r=t[s]=[]),r.push(n),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Fn=e("__VUE_INSTANCE_SETTERS__",s=>jt=s),bs=e("__VUE_SSR_SETTERS__",s=>an=s)}const dn=t=>{const e=jt;return Fn(t),t.scope.on(),()=>{t.scope.off(),Fn(e)}},fo=()=>{jt&&jt.scope.off(),Fn(null)};function Er(t){return t.vnode.shapeFlag&4}let an=!1;function Ql(t,e=!1,s=!1){e&&bs(e);const{props:n,children:r}=t.vnode,i=Er(t);bl(t,n,i,e),kl(t,r,s||e);const o=i?Gl(t,e):void 0;return e&&bs(!1),o}function Gl(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,dl);const{setup:n}=s;if(n){oe();const r=t.setupContext=n.length>1?Zl(t):null,i=dn(t),o=un(n,t,0,[t.props,r]),l=Mo(o);if(re(),i(),(l||t.sp)&&!$e(t)&&lr(t),l){if(o.then(fo,fo),e)return o.then(d=>{ho(t,d,e)}).catch(d=>{Bn(d,t,0)});t.asyncDep=o}else ho(t,o,e)}else Mr(t,e)}function ho(t,e,s){K(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:ft(e)&&(t.setupState=er(e)),Mr(t,s)}let po;function Mr(t,e,s){const n=t.type;if(!t.render){if(!e&&po&&!n.render){const r=n.template||Ns(t).template;if(r){const{isCustomElement:i,compilerOptions:o}=t.appContext.config,{delimiters:l,compilerOptions:d}=n,m=wt(wt({isCustomElement:i,delimiters:l},o),d);n.render=po(r,m)}}t.render=n.render||Kt}{const r=dn(t);oe();try{fl(t)}finally{re(),r()}}}const Yl={get(t,e){return xt(t,"get",""),t[e]}};function Zl(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,Yl),slots:t.slots,emit:t.emit,expose:e}}function Gn(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(er(Ni(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in tn)return tn[s](t)},has(e,s){return s in e||s in tn}})):t.proxy}function Xl(t){return K(t)&&"__vccOpts"in t}const mt=(t,e)=>Wi(t,e,an),$l="3.5.18";/** -* @vue/runtime-dom v3.5.18 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ts;const go=typeof window<"u"&&window.trustedTypes;if(go)try{Ts=go.createPolicy("vue",{createHTML:t=>t})}catch{}const jr=Ts?t=>Ts.createHTML(t):t=>t,ta="http://www.w3.org/2000/svg",ea="http://www.w3.org/1998/Math/MathML",ee=typeof document<"u"?document:null,mo=ee&&ee.createElement("template"),na={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,n)=>{const r=e==="svg"?ee.createElementNS(ta,t):e==="mathml"?ee.createElementNS(ea,t):s?ee.createElement(t,{is:s}):ee.createElement(t);return t==="select"&&n&&n.multiple!=null&&r.setAttribute("multiple",n.multiple),r},createText:t=>ee.createTextNode(t),createComment:t=>ee.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ee.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,n,r,i){const o=s?s.previousSibling:e.lastChild;if(r&&(r===i||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),s),!(r===i||!(r=r.nextSibling)););else{mo.innerHTML=jr(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const l=mo.content;if(n==="svg"||n==="mathml"){const d=l.firstChild;for(;d.firstChild;)l.appendChild(d.firstChild);l.removeChild(d)}e.insertBefore(l,s)}return[o?o.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},sa=Symbol("_vtc");function oa(t,e,s){const n=t[sa];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const vo=Symbol("_vod"),ra=Symbol("_vsh"),ia=Symbol(""),la=/(^|;)\s*display\s*:/;function aa(t,e,s){const n=t.style,r=pt(s);let i=!1;if(s&&!r){if(e)if(pt(e))for(const o of e.split(";")){const l=o.slice(0,o.indexOf(":")).trim();s[l]==null&&On(n,l,"")}else for(const o in e)s[o]==null&&On(n,o,"");for(const o in s)o==="display"&&(i=!0),On(n,o,s[o])}else if(r){if(e!==s){const o=n[ia];o&&(s+=";"+o),n.cssText=s,i=la.test(s)}}else e&&t.removeAttribute("style");vo in t&&(t[vo]=i?n.display:"",t[ra]&&(n.display="none"))}const yo=/\s*!important$/;function On(t,e,s){if(N(s))s.forEach(n=>On(t,e,n));else if(s==null&&(s=""),e.startsWith("--"))t.setProperty(e,s);else{const n=ca(t,e);yo.test(s)?t.setProperty(ge(n),s.replace(yo,""),"important"):t[n]=s}}const _o=["Webkit","Moz","ms"],ls={};function ca(t,e){const s=ls[e];if(s)return s;let n=fe(e);if(n!=="filter"&&n in t)return ls[e]=n;n=Io(n);for(let r=0;r<_o.length;r++){const i=_o[r]+n;if(i in t)return ls[e]=i}return e}const bo="http://www.w3.org/1999/xlink";function To(t,e,s,n,r,i=gi(e)){n&&e.startsWith("xlink:")?s==null?t.removeAttributeNS(bo,e.slice(6,e.length)):t.setAttributeNS(bo,e,s):s==null||i&&!Fo(s)?t.removeAttribute(e):t.setAttribute(e,i?"":Gt(s)?String(s):s)}function wo(t,e,s,n,r){if(e==="innerHTML"||e==="textContent"){s!=null&&(t[e]=e==="innerHTML"?jr(s):s);return}const i=t.tagName;if(e==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?t.getAttribute("value")||"":t.value,d=s==null?t.type==="checkbox"?"on":"":String(s);(l!==d||!("_value"in t))&&(t.value=d),s==null&&t.removeAttribute(e),t._value=s;return}let o=!1;if(s===""||s==null){const l=typeof t[e];l==="boolean"?s=Fo(s):s==null&&l==="string"?(s="",o=!0):l==="number"&&(s=0,o=!0)}try{t[e]=s}catch{}o&&t.removeAttribute(r||e)}function xe(t,e,s,n){t.addEventListener(e,s,n)}function ua(t,e,s,n){t.removeEventListener(e,s,n)}const Do=Symbol("_vei");function da(t,e,s,n,r=null){const i=t[Do]||(t[Do]={}),o=i[e];if(n&&o)o.value=n;else{const[l,d]=fa(e);if(n){const m=i[e]=ga(n,r);xe(t,l,m,d)}else o&&(ua(t,l,o,d),i[e]=void 0)}}const ko=/(?:Once|Passive|Capture)$/;function fa(t){let e;if(ko.test(t)){e={};let n;for(;n=t.match(ko);)t=t.slice(0,t.length-n[0].length),e[n[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):ge(t.slice(2)),e]}let as=0;const ha=Promise.resolve(),pa=()=>as||(ha.then(()=>as=0),as=Date.now());function ga(t,e){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Yt(ma(n,s.value),e,5,[n])};return s.value=t,s.attached=pa(),s}function ma(t,e){if(N(e)){const s=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{s.call(t),t._stopped=!0},e.map(n=>r=>!r._stopped&&n&&n(r))}else return e}const xo=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,va=(t,e,s,n,r,i)=>{const o=r==="svg";e==="class"?oa(t,n,o):e==="style"?aa(t,s,n):Nn(e)?Ds(e)||da(t,e,s,n,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):ya(t,e,n,o))?(wo(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&To(t,e,n,o,i,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!pt(n))?wo(t,fe(e),n,i,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),To(t,e,n,o))};function ya(t,e,s,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&xo(e)&&K(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const r=t.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return xo(e)&&pt(s)?!1:e in t}const Rn=t=>{const e=t.props["onUpdate:modelValue"]||!1;return N(e)?s=>kn(e,s):e};function _a(t){t.target.composing=!0}function Co(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const He=Symbol("_assign"),Je={created(t,{modifiers:{lazy:e,trim:s,number:n}},r){t[He]=Rn(r);const i=n||r.props&&r.props.type==="number";xe(t,e?"change":"input",o=>{if(o.target.composing)return;let l=t.value;s&&(l=l.trim()),i&&(l=An(l)),t[He](l)}),s&&xe(t,"change",()=>{t.value=t.value.trim()}),e||(xe(t,"compositionstart",_a),xe(t,"compositionend",Co),xe(t,"change",Co))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:s,modifiers:{lazy:n,trim:r,number:i}},o){if(t[He]=Rn(o),t.composing)return;const l=(i||t.type==="number")&&!/^0\d/.test(t.value)?An(t.value):t.value,d=e??"";l!==d&&(document.activeElement===t&&t.type!=="range"&&(n&&e===s||r&&t.value.trim()===d)||(t.value=d))}},Pe={deep:!0,created(t,{value:e,modifiers:{number:s}},n){const r=Hn(e);xe(t,"change",()=>{const i=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>s?An(qn(o)):qn(o));t[He](t.multiple?r?new Set(i):i:i[0]),t._assigning=!0,Se(()=>{t._assigning=!1})}),t[He]=Rn(n)},mounted(t,{value:e}){So(t,e)},beforeUpdate(t,e,s){t[He]=Rn(s)},updated(t,{value:e}){t._assigning||So(t,e)}};function So(t,e){const s=t.multiple,n=N(e);if(!(s&&!n&&!Hn(e))){for(let r=0,i=t.options.length;rString(m)===String(l)):o.selected=vi(e,l)>-1}else o.selected=e.has(l);else if(Kn(qn(o),e)){t.selectedIndex!==r&&(t.selectedIndex=r);return}}!s&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function qn(t){return"_value"in t?t._value:t.value}const ba=["ctrl","shift","alt","meta"],Ta={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>ba.some(s=>t[`${s}Key`]&&!e.includes(s))},At=(t,e)=>{const s=t._withMods||(t._withMods={}),n=e.join(".");return s[n]||(s[n]=(r,...i)=>{for(let o=0;o{const s=t._withKeys||(t._withKeys={}),n=e.join(".");return s[n]||(s[n]=r=>{if(!("key"in r))return;const i=ge(r.key);if(e.some(o=>o===i||wa[o]===i))return t(r)})},Da=wt({patchProp:va},na);let Oo;function ka(){return Oo||(Oo=Cl(Da))}const xa=(...t)=>{const e=ka().createApp(...t),{mount:s}=e;return e.mount=n=>{const r=Sa(n);if(!r)return;const i=e._component;!K(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=s(r,!1,Ca(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},e};function Ca(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Sa(t){return pt(t)?document.querySelector(t):t}function Oa(t){return Lo()?(_i(t),!0):!1}function Ks(t){return typeof t=="function"?t():tr(t)}const Aa=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Ea=Object.prototype.toString,Ma=t=>Ea.call(t)==="[object Object]",ja=()=>{};function Pa(t,e){function s(...n){return new Promise((r,i)=>{Promise.resolve(t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(r).catch(i)})}return s}const Pr=t=>t();function Ia(t=Pr){const e=tt(!0);function s(){e.value=!1}function n(){e.value=!0}const r=(...i)=>{e.value&&t(...i)};return{isActive:js(e),pause:s,resume:n,eventFilter:r}}function Fa(t){return t||Ar()}function Ra(t,e,s={}){const{eventFilter:n=Pr,...r}=s;return en(t,Pa(n,e),r)}function qa(t,e,s={}){const{eventFilter:n,...r}=s,{eventFilter:i,pause:o,resume:l,isActive:d}=Ia(n);return{stop:Ra(t,e,{...r,eventFilter:i}),pause:o,resume:l,isActive:d}}function La(t,e=!0,s){Fa()?qs(t,s):e?t():Se(t)}function Na(t){var e;const s=Ks(t);return(e=s==null?void 0:s.$el)!=null?e:s}const Ln=Aa?window:void 0;function Ao(...t){let e,s,n,r;if(typeof t[0]=="string"||Array.isArray(t[0])?([s,n,r]=t,e=Ln):[e,s,n,r]=t,!e)return ja;Array.isArray(s)||(s=[s]),Array.isArray(n)||(n=[n]);const i=[],o=()=>{i.forEach(p=>p()),i.length=0},l=(p,y,E,P)=>(p.addEventListener(y,E,P),()=>p.removeEventListener(y,E,P)),d=en(()=>[Na(e),Ks(r)],([p,y])=>{if(o(),!p)return;const E=Ma(y)?{...y}:y;i.push(...s.flatMap(P=>n.map(U=>l(p,P,U,E))))},{immediate:!0,flush:"post"}),m=()=>{d(),o()};return Oa(m),m}const wn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Dn="__vueuse_ssr_handlers__",Ha=Va();function Va(){return Dn in wn||(wn[Dn]=wn[Dn]||{}),wn[Dn]}function Ua(t,e){return Ha[t]||e}function Ka(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}const Wa={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},Eo="vueuse-storage";function Ba(t,e,s,n={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:d=!0,mergeDefaults:m=!1,shallow:p,window:y=Ln,eventFilter:E,onError:P=V=>{console.error(V)},initOnMounted:U}=n,H=(p?Hi:tt)(typeof e=="function"?e():e);if(!s)try{s=Ua("getDefaultStorage",()=>{var V;return(V=Ln)==null?void 0:V.localStorage})()}catch(V){P(V)}if(!s)return H;const st=Ks(e),G=Ka(st),Y=(r=n.serializer)!=null?r:Wa[G],{pause:X,resume:R}=qa(H,()=>It(H.value),{flush:i,deep:o,eventFilter:E});y&&l&&La(()=>{Ao(y,"storage",ht),Ao(y,Eo,le),U&&ht()}),U||ht();function lt(V,Z){y&&y.dispatchEvent(new CustomEvent(Eo,{detail:{key:t,oldValue:V,newValue:Z,storageArea:s}}))}function It(V){try{const Z=s.getItem(t);if(V==null)lt(Z,null),s.removeItem(t);else{const yt=Y.write(V);Z!==yt&&(s.setItem(t,yt),lt(Z,yt))}}catch(Z){P(Z)}}function vt(V){const Z=V?V.newValue:s.getItem(t);if(Z==null)return d&&st!=null&&s.setItem(t,Y.write(st)),st;if(!V&&m){const yt=Y.read(Z);return typeof m=="function"?m(yt,st):G==="object"&&!Array.isArray(yt)?{...st,...yt}:yt}else return typeof Z!="string"?Z:Y.read(Z)}function ht(V){if(!(V&&V.storageArea!==s)){if(V&&V.key==null){H.value=st;return}if(!(V&&V.key!==t)){X();try{(V==null?void 0:V.newValue)!==Y.write(H.value)&&(H.value=vt(V))}catch(Z){P(Z)}finally{V?Se(R):R()}}}}function le(V){ht(V.detail)}return H}function cs(t,e,s={}){const{window:n=Ln}=s;return Ba(t,e,n==null?void 0:n.localStorage,s)}const za=(t,e)=>{const s=t.__vccOpts||t;for(const[n,r]of e)s[n]=r;return s},Ja={name:"App",setup(){const t=cs("todo-tasks",[]),e=cs("todo-projects",[]),s=cs("todo-initialized",!1),n=tt(""),r=tt(!1),i=tt(null),o=tt("idle"),l=tt(null),d=(u,h="info")=>{l.value={message:u,type:h,timestamp:Date.now()},setTimeout(()=>{l.value=null},3e3)},m=tt(""),p=tt(""),y=tt("development"),E=tt("medium"),P=tt("medium"),U=tt("medium"),H=tt(""),st=tt(""),G=tt("all"),Y=tt(""),X=tt(""),R=tt("tasks"),lt=tt(null),It=tt(!1),vt=tt(""),ht=tt(null),le=tt(null),V=tt("day"),Z=tt(new Date),yt=tt(null),Zt=tt(new Date),me=tt(!0),ve=tt("day"),_t=[{label:"今日",value:"day"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"本年",value:"year"}],ct=[{label:"全部",value:"all"},{label:"待完成",value:"pending"},{label:"已完成",value:"completed"}],ot=mt(()=>t.value.length),Xt=mt(()=>t.value.filter(u=>u.completed).length),Oe=mt(()=>t.value.filter(u=>!u.completed).length),$t=mt(()=>{const h=new Date().toLocaleDateString("en-CA");return t.value.filter(g=>g.startTime?new Date(g.startTime).toLocaleDateString("en-CA")===h:!1).length}),Lt=mt(()=>{const h=new Date().toLocaleDateString("en-CA"),g=t.value.filter(S=>S.startTime?new Date(S.startTime).toLocaleDateString("en-CA")===h:!1),T={};return g.forEach(S=>{T[S.projectId]||(T[S.projectId]=0),T[S.projectId]++}),Object.entries(T).map(([S,q])=>({projectId:S,count:q}))}),fn=mt(()=>{const h=new Date().toLocaleDateString("en-CA"),g=t.value.filter(S=>S.startTime?new Date(S.startTime).toLocaleDateString("en-CA")===h:!1),T={};return g.forEach(S=>{T[S.type]||(T[S.type]=0),T[S.type]++}),Object.entries(T).map(([S,q])=>({type:S,count:q}))}),Yn=mt(()=>{const h=new Date().toLocaleDateString("en-CA"),g=t.value.filter(q=>q.startTime?new Date(q.startTime).toLocaleDateString("en-CA")===h:!1);let T=0;return g.forEach(q=>{if(q.startTime&&q.endTime){const z=new Date(q.startTime),Dt=(new Date(q.endTime)-z)/(1e3*60*60);T+=Dt}}),t.value.filter(q=>q.timerDuration?new Date(q.createdAt).toISOString().split("T")[0]===h:!1).forEach(q=>{if(q.timerDuration){const z=q.timerDuration/3600;T+=z}}),T.toFixed(1)}),Zn=mt(()=>{const h=new Date().toLocaleDateString("en-CA"),T=t.value.filter(ut=>ut.startTime?new Date(ut.startTime).toLocaleDateString("en-CA")===h:!1).filter(ut=>ut.startTime&&ut.endTime),S=t.value.filter(ut=>ut.timerDuration?new Date(ut.createdAt).toLocaleDateString("en-CA")===h:!1),q=[...T,...S];if(q.length===0)return"0.0";let z=0;return T.forEach(ut=>{const Dt=new Date(ut.startTime),We=(new Date(ut.endTime)-Dt)/(1e3*60*60);z+=We}),S.forEach(ut=>{if(ut.timerDuration){const Dt=ut.timerDuration/3600;z+=Dt}}),(z/q.length).toFixed(1)}),ye=()=>{const u={tasks:t.value,projects:e.value,exportDate:new Date().toISOString(),version:"1.0.0"},h=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),g=URL.createObjectURL(h),T=document.createElement("a");T.href=g,T.download=`worktime-data-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(T),T.click(),document.body.removeChild(T),URL.revokeObjectURL(g)},Ae=()=>{le.value.click()},Ue=u=>{const h=u.target.files[0];if(!h)return;const g=new FileReader;g.onload=T=>{try{const S=JSON.parse(T.target.result);S.tasks&&S.projects?confirm("导入数据将覆盖当前所有数据,确定要继续吗?")&&(t.value=S.tasks,e.value=S.projects,s.value=!0,alert("数据导入成功!")):alert("文件格式不正确,请选择正确的数据文件。")}catch{alert("文件读取失败,请检查文件格式。")}},g.readAsText(h),u.target.value=""},hn=()=>{confirm("确定要清空所有数据吗?此操作不可恢复!")&&(t.value=[],e.value=[],s.value=!1,localStorage.removeItem("todo-tasks"),localStorage.removeItem("todo-projects"),localStorage.removeItem("todo-initialized"),X.value="",R.value="tasks",alert("数据已完全清空!页面将重新加载以应用更改。"),setTimeout(()=>{window.location.reload()},1e3))},ae=()=>{confirm("确定要清除所有默认数据吗?这将删除所有项目和任务,但保留应用设置。")&&(t.value=[],e.value=[],localStorage.removeItem("todo-tasks"),localStorage.removeItem("todo-projects"),X.value="",R.value="tasks",alert("默认数据已清除!现在您可以创建自己的项目了。"))},_e=async()=>{try{if((await fetch(`${n.value}/api/health`)).ok)return r.value=!0,!0}catch(u){console.log("服务器连接失败:",u)}return r.value=!1,!1},Ee=async()=>{if(!r.value)return alert("服务器未连接,无法同步数据"),!1;o.value="syncing";try{const u=await fetch(`${n.value}/api/data`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tasks:t.value,projects:e.value})});if(u.ok){const h=await u.json();return i.value=h.lastUpdated,o.value="success",setTimeout(()=>{o.value="idle"},2e3),!0}else throw new Error("同步失败")}catch(u){return console.error("同步到服务器失败:",u),o.value="error",setTimeout(()=>{o.value="idle"},3e3),!1}},c=async()=>{if(!r.value)return alert("服务器未连接,无法同步数据"),!1;o.value="syncing";try{const u=await fetch(`${n.value}/api/data`);if(u.ok){const h=await u.json();return t.value=h.tasks||[],e.value=h.projects||[],i.value=h.lastUpdated,o.value="success",setTimeout(()=>{o.value="idle"},2e3),!0}else throw new Error("获取数据失败")}catch(u){return console.error("从服务器同步失败:",u),o.value="error",setTimeout(()=>{o.value="idle"},3e3),!1}},f=async()=>{if(await _e())try{const h=await fetch(`${n.value}/api/last-updated`);if(h.ok){const{lastUpdated:g}=await h.json();g!==i.value?await c():await Ee()}}catch(h){console.error("自动同步失败:",h)}},v=mt(()=>{let u=t.value;switch(X.value&&(u=u.filter(h=>h.projectId===X.value)),G.value){case"completed":u=u.filter(h=>h.completed);break;case"pending":u=u.filter(h=>!h.completed);break}return Y.value&&(u=u.filter(h=>h.type===Y.value)),u}),w=()=>{if(m.value.trim()&&p.value){const u={id:Date.now(),text:m.value.trim(),projectId:p.value,type:y.value,completed:!1,priority:E.value,importance:P.value,urgency:U.value,startTime:H.value||null,endTime:st.value||null,timerRunning:!1,timerStartTime:null,timerDuration:null,createdAt:new Date,editing:!1};t.value.unshift(u),m.value="",p.value="",y.value="development",E.value="medium",P.value="medium",U.value="medium",H.value="",st.value=""}},_=()=>{if(vt.value.trim()){const u={id:Date.now().toString(),name:vt.value.trim(),createdAt:new Date};e.value.push(u),vt.value="",It.value=!1,e.value.length===1&&(X.value=u.id)}},b=u=>{const h=e.value.find(g=>g.id===u);return h?h.name:"未知项目"},M=u=>t.value.filter(h=>h.projectId===u).length,A=u=>{const h=t.value.find(g=>g.id===u);h&&(h.completed=!h.completed)},O=u=>{const h=t.value.findIndex(g=>g.id===u);h>-1&&t.value.splice(h,1)},D=u=>{u.editing=!0,lt.value=u,Se(()=>{const h=document.querySelector(".edit-input");h&&(h.focus(),h.select())})},F=u=>{u.text.trim()&&(u.editing=!1,lt.value=null)},j=u=>{u.editing=!1,lt.value=null},I=u=>({high:"高",medium:"中",low:"低"})[u]||"中",L=u=>({requirement:"需求分析",documentation:"文档编写",development:"开发代码",testing:"测试",operation:"运维",other:"其他"})[u]||"其他",B=u=>{const h=new Date,g=new Date(u),T=Math.abs(h-g),S=Math.ceil(T/(1e3*60*60*24));return S===1?"今天":S===2?"昨天":S<=7?`${S-1}天前`:g.toLocaleDateString("zh-CN")},rt=u=>new Date(u).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),$=(u,h)=>{const g=new Date(u),S=(new Date(h)-g)/(1e3*60*60);if(S<1)return`${Math.round(S*60)}分钟`;if(S<24)return`${S.toFixed(1)}小时`;{const q=Math.floor(S/24),z=S%24;return`${q}天${z.toFixed(1)}小时`}},bt=u=>{if(u<60)return`${u}秒`;if(u<3600){const h=Math.floor(u/60),g=u%60;return`${h}分${g}秒`}else{const h=Math.floor(u/3600),g=Math.floor(u%3600/60);return`${h}小时${g}分`}},gt=u=>{if(!u)return"0秒";const h=zs(u);return bt(h)},Ft=mt(()=>{const u=Z.value;switch(V.value){case"day":return u.toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric",weekday:"long"});case"week":const h=new Date(u);h.setDate(u.getDate()-u.getDay());const g=new Date(h);return g.setDate(h.getDate()+6),`${h.toLocaleDateString("zh-CN",{month:"long",day:"numeric"})} - ${g.toLocaleDateString("zh-CN",{month:"long",day:"numeric"})}`;case"month":return u.toLocaleDateString("zh-CN",{year:"numeric",month:"long"});default:return u.toLocaleDateString("zh-CN")}}),St=mt(()=>{const u=Z.value,h=new Date(u);h.setDate(u.getDate()-u.getDay());const g=[];for(let T=0;T<7;T++){const S=new Date(h);S.setDate(h.getDate()+T),g.push({date:S,name:["周日","周一","周二","周三","周四","周五","周六"][T]})}return g}),be=mt(()=>{const u=Z.value,h=u.getFullYear(),g=u.getMonth(),T=new Date(h,g,1),S=new Date(T),q=T.getDay();S.setDate(T.getDate()-q);const z=[];for(let ut=0;ut<42;ut++){const Dt=new Date(S);Dt.setDate(S.getDate()+ut),z.push({date:Dt,dayNumber:Dt.getDate(),isCurrentMonth:Dt.getMonth()===g})}return z}),Te=mt(()=>{const h=Z.value.toLocaleDateString("en-CA");return t.value.filter(g=>g.startTime?new Date(g.startTime).toLocaleDateString("en-CA")===h:!1)}),Ot=mt(()=>Te.value.filter(u=>u.completed)),Nt=mt(()=>{let u=0;return Te.value.forEach(h=>{if(h.startTime&&h.endTime){const g=new Date(h.startTime),T=new Date(h.endTime);u+=(T-g)/(1e3*60*60)}else h.timerDuration&&(u+=h.timerDuration/3600)}),u.toFixed(1)}),pn=u=>{u.timerRunning?Ws(u):Ke(u)},Ke=u=>{u.timerRunning=!0,u.timerStartTime=new Date().toISOString(),ht.value||(ht.value=setInterval(()=>{t.value=[...t.value]},1e3))},Ws=u=>{u.timerRunning=!1;const h=new Date,g=new Date(u.timerStartTime),T=Math.floor((h-g)/1e3);u.timerDuration=(u.timerDuration||0)+T;const S=!u.startTime,q=!u.endTime;u.startTime||(u.startTime=u.timerStartTime),u.endTime||(u.endTime=h.toISOString()),u.timerStartTime=null,(S||q)&&d(`已自动为任务"${u.text}"补充时间信息`,"success"),t.value.filter(ut=>ut.timerRunning).length===0&&ht.value&&(clearInterval(ht.value),ht.value=null)},Bs=()=>{t.value.filter(h=>h.timerRunning&&h.timerStartTime).length>0&&(ht.value||(ht.value=setInterval(()=>{t.value=[...t.value]},1e3)))},zs=u=>{if(!u.timerRunning||!u.timerStartTime)return u.timerDuration||0;const h=new Date,g=new Date(u.timerStartTime),T=Math.floor((h-g)/1e3);return(u.timerDuration||0)+T},Ir=()=>{const u=new Date(Z.value);switch(V.value){case"day":u.setDate(u.getDate()-1);break;case"week":u.setDate(u.getDate()-7);break;case"month":u.setMonth(u.getMonth()-1);break}Z.value=u},Fr=()=>{const u=new Date(Z.value);switch(V.value){case"day":u.setDate(u.getDate()+1);break;case"week":u.setDate(u.getDate()+7);break;case"month":u.setMonth(u.getMonth()+1);break}Z.value=u},Rr=u=>Te.value.filter(h=>h.startTime?new Date(h.startTime).getHours()===u:!1),qr=(u,h)=>{const g=u.toLocaleDateString("en-CA");return t.value.filter(T=>{if(T.startTime){const S=new Date(T.startTime).toLocaleDateString("en-CA"),q=new Date(T.startTime).getHours();return S===g&&q===h}return!1})},Js=u=>{const h=u.toLocaleDateString("en-CA");return t.value.filter(g=>g.startTime?new Date(g.startTime).toLocaleDateString("en-CA")===h:!1)},Lr=u=>Js(u).length,Nr=u=>{const h=new Date;return u.toDateString()===h.toDateString()},Hr=u=>u.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"}),Vr=u=>new Date(u).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}),Ur=mt(()=>{const u=Zt.value,h=u.getHours(),g=u.getMinutes();return h+g/60}),Kr=u=>{const h=Zt.value.getHours();return u===h},Wr=mt(()=>{const u={q1:[],q2:[],q3:[],q4:[]};return t.value.forEach(h=>{const g=h.importance||"medium",T=h.urgency||"medium";g==="high"&&T==="high"?u.q1.push(h):g==="high"&&T==="low"?u.q2.push(h):g==="low"&&T==="high"?u.q3.push(h):u.q4.push(h)}),u}),Br=u=>({q1:"重要且紧急",q2:"重要不紧急",q3:"不重要但紧急",q4:"不重要不紧急"})[u]||"",zr=u=>({q1:"立即处理",q2:"计划安排",q3:"委托他人",q4:"删除或延迟"})[u]||"",Jr=u=>({q1:"#ff4757",q2:"#2ed573",q3:"#ffa502",q4:"#747d8c"})[u]||"#747d8c",Qr=()=>{const u=gn(),h=u.length,g=u.filter(q=>q.completed).length,T=Gr(u),S=h>0?Math.round(g/h*100):0;return{totalTasks:h,completedTasks:g,totalHours:T.toFixed(1),completionRate:S}},gn=()=>{const u=new Date,h=ve.value;return t.value.filter(g=>{if(!g.startTime)return!1;const T=new Date(g.startTime),S=T.toLocaleDateString("en-CA");switch(h){case"day":return S===u.toLocaleDateString("en-CA");case"week":const q=new Date(u);q.setDate(u.getDate()-u.getDay());const z=new Date(q);return z.setDate(q.getDate()+6),T>=q&&T<=z;case"month":return T.getMonth()===u.getMonth()&&T.getFullYear()===u.getFullYear();case"year":return T.getFullYear()===u.getFullYear();default:return!1}})},Gr=u=>{let h=0;return u.forEach(g=>{if(g.startTime&&g.endTime){const T=new Date(g.startTime),S=new Date(g.endTime);h+=(S-T)/(1e3*60*60)}else g.timerDuration&&(h+=g.timerDuration/3600)}),h},Yr=()=>{const u=gn(),h={};u.forEach(q=>{const z=b(q.projectId);h[z]=(h[z]||0)+1});const g=Object.values(h).reduce((q,z)=>q+z,0),T=["#667eea","#f093fb","#f5576c","#4facfe","#00f2fe","#43e97b"];let S=0;return Object.entries(h).map(([q,z],ut)=>{const Dt=g>0?Math.round(z/g*100):0,Me=z/g*360,We=`${Me/360*502.4} ${502.4}`,Xn=-S*502.4/360;return S+=Me,{name:q,count:z,percentage:Dt,color:T[ut%T.length],dashArray:We,dashOffset:Xn}})},Zr=()=>{const u=gn(),h={};u.forEach(q=>{const z=L(q.type);h[z]=(h[z]||0)+1});const g=Object.values(h).reduce((q,z)=>q+z,0),T=["#ff6b6b","#4ecdc4","#45b7d1","#96ceb4","#ffeaa7","#dda0dd"];let S=0;return Object.entries(h).map(([q,z],ut)=>{const Dt=g>0?Math.round(z/g*100):0,Me=z/g*360,We=`${Me/360*502.4} ${502.4}`,Xn=-S*502.4/360;return S+=Me,{name:q,count:z,percentage:Dt,color:T[ut%T.length],dashArray:We,dashOffset:Xn}})},Qs=()=>{const u=ve.value,h=[];switch(u){case"day":for(let g=0;g<24;g++){const S=180-mn(g)*15;h.push({x:g/23*760+20,y:Math.max(S,20)})}break;case"week":for(let g=0;g<7;g++){const S=180-vn(g)*10;h.push({x:g/6*760+20,y:Math.max(S,20)})}break;case"month":for(let g=0;g<30;g++){const S=180-vn(g)*8;h.push({x:g/29*760+20,y:Math.max(S,20)})}break;case"year":for(let g=0;g<12;g++){const S=180-Gs(g)*15;h.push({x:g/11*760+20,y:Math.max(S,20)})}break}return h},Xr=()=>{const u=Qs();if(u.length===0)return"";let h=`M ${u[0].x} ${u[0].y}`;for(let g=1;g{const u=ve.value,h=[];switch(u){case"day":for(let g=0;g<24;g++){const T=mn(g),S=Math.max(T*10,5);h.push({x:g/24*760+20,y:180-S,width:25,height:S,value:T,color:T>0?"#667eea":"#e2e8f0"})}break;case"week":for(let g=0;g<7;g++){const T=vn(g),S=Math.max(T*8,5);h.push({x:g/7*760+20,y:180-S,width:80,height:S,value:T,color:T>0?"#667eea":"#e2e8f0"})}break;case"month":for(let g=0;g<30;g++){const T=vn(g),S=Math.max(T*6,5);h.push({x:g/30*760+20,y:180-S,width:20,height:S,value:T,color:T>0?"#667eea":"#e2e8f0"})}break;case"year":for(let g=0;g<12;g++){const T=Gs(g),S=Math.max(T*10,5);h.push({x:g/12*760+20,y:180-S,width:50,height:S,value:T,color:T>0?"#667eea":"#e2e8f0"})}break}return h},mn=u=>gn().filter(g=>g.startTime?new Date(g.startTime).getHours()===u:!1).length,ti=u=>{const h=mn(u);return h===0?"#f7fafc":h<=2?"#4facfe":h<=4?"#667eea":"#f093fb"},vn=u=>{const h=new Date,g=new Date(h);return g.setDate(h.getDate()-u),t.value.filter(T=>{if(T.startTime){const S=new Date(T.startTime).toLocaleDateString("en-CA"),q=g.toLocaleDateString("en-CA");return S===q}return!1}).length},Gs=u=>{const h=new Date,g=new Date(h.getFullYear(),h.getMonth()-u,1);return t.value.filter(T=>{if(T.startTime){const S=new Date(T.startTime);return S.getMonth()===g.getMonth()&&S.getFullYear()===g.getFullYear()}return!1}).length},ei=u=>{Z.value=u,V.value="day"},Ys=()=>{Se(()=>{const u=Zt.value.getHours(),h=document.querySelector(`[data-hour="${u}"]`);h&&h.scrollIntoView({behavior:"smooth",block:"center"})})},ni=u=>{yt.value=u},si=u=>{yt.value=null,R.value="tasks";const h=t.value.findIndex(g=>g.id===u.id);h!==-1&&(t.value[h].editing=!0,Se(()=>{const g=document.querySelector(".edit-input");g&&g.focus()}))},oi=()=>{me.value=!me.value};return qs(async()=>{s.value||(s.value=!0),Bs(),await _e(),r.value&&await f(),setInterval(async()=>{r.value&&await f()},5*60*1e3),setInterval(()=>{Zt.value=new Date},60*1e3),V.value==="day"&&setTimeout(Ys,500)}),Ls(()=>{ht.value&&(clearInterval(ht.value),ht.value=null)}),{tasks:t,projects:e,newTask:m,newTaskProject:p,newTaskType:y,newTaskPriority:E,newTaskImportance:P,newTaskUrgency:U,newTaskStartTime:H,newTaskEndTime:st,currentFilter:G,currentTypeFilter:Y,currentProject:X,currentMenu:R,showAddProject:It,newProjectName:vt,filters:ct,totalTasks:ot,completedTasks:Xt,pendingTasks:Oe,todayTasks:$t,projectDistribution:Lt,typeDistribution:fn,totalWorkHours:Yn,averageTaskHours:Zn,filteredTasks:v,addTask:w,addProject:_,toggleTask:A,deleteTask:O,editTask:D,saveEdit:F,cancelEdit:j,toggleTimer:pn,startTimer:Ke,stopTimer:Ws,restoreTimerState:Bs,getCurrentTimerDuration:zs,notification:l,showNotification:d,exportData:ye,importData:Ae,clearData:hn,clearDefaultData:ae,handleFileImport:Ue,getPriorityText:I,getTypeText:L,getProjectName:b,getProjectTaskCount:M,formatDate:B,formatDateTime:rt,calculateDuration:$,formatDuration:bt,formatTimer:gt,calendarView:V,selectedDate:Z,selectedTask:yt,calendarTitle:Ft,weekDays:St,monthDays:be,dayTasks:Te,completedDayTasks:Ot,dayWorkHours:Nt,previousPeriod:Ir,nextPeriod:Fr,getTasksForHour:Rr,getTasksForDayAndHour:qr,getTasksForDay:Js,getDayTaskCount:Lr,isToday:Nr,formatDayDate:Hr,formatTime:Vr,currentTimeLine:Ur,isCurrentTimeLine:Kr,selectDate:ei,selectTask:ni,editTaskFromCalendar:si,scrollToCurrentTime:Ys,quadrantTasks:Wr,getQuadrantTitle:Br,getQuadrantDescription:zr,getQuadrantColor:Jr,currentTimeDimension:ve,timeDimensions:_t,getOverviewData:Qr,getProjectChartData:Yr,getTypeChartData:Zr,getTrendData:Qs,getTrendPath:Xr,getTimeDistributionData:$r,getHourTaskCount:mn,getHourColor:ti,isFullscreen:me,toggleFullscreen:oi,serverUrl:n,isOnline:r,lastServerUpdate:i,syncStatus:o,checkServerConnection:_e,syncToServer:Ee,syncFromServer:c,autoSync:f}}},Qa={class:"header"},Ga={class:"header-content"},Ya={class:"header-right"},Za={class:"notification-content"},Xa={class:"notification-icon"},$a={class:"notification-message"},tc={class:"stats"},ec={class:"stat-item"},nc={class:"stat-number"},sc={class:"stat-item"},oc={class:"stat-number"},rc={class:"stat-item"},ic={class:"stat-number"},lc={class:"stat-item"},ac={class:"stat-number"},cc={class:"menu-nav"},uc={key:1,class:"menu-content"},dc={class:"project-section"},fc={class:"project-header"},hc={class:"project-list"},pc=["onClick"],gc={class:"project-name"},mc={class:"project-count"},vc={class:"modal-actions"},yc={class:"input-group"},_c=["value"],bc={class:"filters"},Tc=["onClick"],wc={key:1,class:"todo-list"},Dc=["onClick"],kc={class:"todo-content"},xc={class:"todo-text"},Cc={key:0},Sc=["onUpdate:modelValue","onBlur","onKeyup"],Oc={class:"todo-meta"},Ac={class:"todo-time"},Ec={key:0},Mc={key:1},jc={key:0,class:"todo-duration"},Pc={key:1,class:"todo-timer"},Ic={key:0,class:"timer-running"},Fc={key:1,class:"timer-stopped"},Rc={class:"todo-actions"},qc=["onClick","title"],Lc=["onClick"],Nc=["onClick"],Hc={key:2,class:"empty-state"},Vc={key:0},Uc={key:1},Kc={key:2},Wc={key:2,class:"menu-content"},Bc={class:"work-analysis"},zc={class:"analysis-header"},Jc={class:"time-dimension-selector"},Qc=["onClick"],Gc={class:"overview-section"},Yc={class:"overview-grid"},Zc={class:"overview-card"},Xc={class:"overview-content"},$c={class:"overview-number"},tu={class:"overview-card"},eu={class:"overview-content"},nu={class:"overview-number"},su={class:"overview-card"},ou={class:"overview-content"},ru={class:"overview-number"},iu={class:"overview-card"},lu={class:"overview-content"},au={class:"overview-number"},cu={class:"charts-section"},uu={class:"charts-grid"},du={class:"chart-card"},fu={class:"chart-header"},hu={class:"chart-legend"},pu={class:"legend-label"},gu={class:"legend-value"},mu={class:"pie-chart"},vu={width:"200",height:"200",viewBox:"0 0 200 200"},yu=["stroke","stroke-dasharray","stroke-dashoffset"],_u={class:"chart-card"},bu={class:"chart-header"},Tu={class:"chart-legend"},wu={class:"legend-label"},Du={class:"legend-value"},ku={class:"pie-chart"},xu={width:"200",height:"200",viewBox:"0 0 200 200"},Cu=["stroke","stroke-dasharray","stroke-dashoffset"],Su={class:"chart-card full-width"},Ou={class:"line-chart"},Au={width:"100%",height:"200",viewBox:"0 0 800 200"},Eu=["cx","cy"],Mu=["x1","y1","x2","y2"],ju=["d"],Pu={class:"chart-card full-width"},Iu={class:"bar-chart"},Fu={width:"100%",height:"200",viewBox:"0 0 800 200"},Ru=["x","y","width","height","fill"],qu=["x","y"],Lu={class:"chart-card full-width"},Nu={class:"time-blocks"},Hu={class:"time-label"},Vu={key:0,class:"task-count"},Uu={key:3,class:"menu-content"},Ku={class:"quadrant-container"},Wu={class:"quadrant-grid"},Bu={class:"quadrant-count"},zu={class:"quadrant-description"},Ju={class:"quadrant-tasks"},Qu=["onClick"],Gu=["onClick"],Yu={key:0,class:"checkmark"},Zu={class:"task-content"},Xu={class:"task-text"},$u={class:"task-meta"},td={class:"task-project"},ed={class:"task-type"},nd={class:"task-actions"},sd=["onClick"],od=["onClick"],rd={key:0,class:"empty-quadrant"},id={class:"quadrant-count"},ld={class:"quadrant-description"},ad={class:"quadrant-tasks"},cd=["onClick"],ud=["onClick"],dd={key:0,class:"checkmark"},fd={class:"task-content"},hd={class:"task-text"},pd={class:"task-meta"},gd={class:"task-project"},md={class:"task-type"},vd={class:"task-actions"},yd=["onClick"],_d=["onClick"],bd={key:0,class:"empty-quadrant"},Td={class:"quadrant-count"},wd={class:"quadrant-description"},Dd={class:"quadrant-tasks"},kd=["onClick"],xd=["onClick"],Cd={key:0,class:"checkmark"},Sd={class:"task-content"},Od={class:"task-text"},Ad={class:"task-meta"},Ed={class:"task-project"},Md={class:"task-type"},jd={class:"task-actions"},Pd=["onClick"],Id=["onClick"],Fd={key:0,class:"empty-quadrant"},Rd={class:"quadrant-count"},qd={class:"quadrant-description"},Ld={class:"quadrant-tasks"},Nd=["onClick"],Hd=["onClick"],Vd={key:0,class:"checkmark"},Ud={class:"task-content"},Kd={class:"task-text"},Wd={class:"task-meta"},Bd={class:"task-project"},zd={class:"task-type"},Jd={class:"task-actions"},Qd=["onClick"],Gd=["onClick"],Yd={key:0,class:"empty-quadrant"},Zd={key:4,class:"menu-content"},Xd={class:"calendar-container"},$d={class:"calendar-nav"},tf={class:"calendar-title"},ef={class:"calendar-actions"},nf={class:"calendar-views"},sf={key:0,class:"day-view"},of={class:"day-header"},rf={class:"day-stats"},lf={class:"stat"},af={class:"stat"},cf={class:"stat"},uf={class:"day-timeline"},df=["data-hour"],ff={class:"time-label"},hf={class:"time-content"},pf=["onClick"],gf={class:"task-time"},mf={class:"task-text"},vf={class:"task-meta"},yf={class:"task-project"},_f={class:"task-type"},bf={key:1,class:"week-view"},Tf={class:"week-grid"},wf={class:"week-header"},Df={class:"day-name"},kf={class:"day-date"},xf={class:"day-task-count"},Cf={class:"week-body"},Sf=["data-hour"],Of={class:"time-label"},Af=["onClick"],Ef={class:"task-time"},Mf={class:"task-text"},jf={key:2,class:"month-view"},Pf={class:"month-grid"},If={class:"month-header"},Ff={class:"month-body"},Rf=["onClick"],qf={class:"day-number"},Lf={class:"day-tasks"},Nf=["onClick"],Hf={key:0,class:"more-tasks"},Vf={class:"task-details"},Uf={class:"detail-item"},Kf={class:"detail-item"},Wf={class:"detail-item"},Bf={class:"detail-item"},zf={key:0,class:"detail-item"},Jf={key:1,class:"detail-item"},Qf={key:2,class:"detail-item"},Gf={key:3,class:"detail-item"},Yf={class:"detail-item"},Zf={class:"modal-actions"},Xf={key:5,class:"menu-content"},$f={class:"data-management"},th={class:"sync-status"},eh={class:"sync-info"},nh={key:0,class:"last-update"},sh={class:"sync-actions"},oh=["disabled"],rh=["disabled"],ih={class:"data-actions"};function lh(t,e,s,n,r,i){return k(),x("div",{class:W(["container",{fullscreen:n.isFullscreen}])},[a("div",Qa,[a("div",Ga,[e[43]||(e[43]=a("div",{class:"header-left"},[a("h1",null,"📝 滴答清单"),a("p",null,"高效管理您的任务,提升工作效率")],-1)),a("div",Ya,[a("button",{onClick:e[0]||(e[0]=(...o)=>n.toggleFullscreen&&n.toggleFullscreen(...o)),class:"btn btn-secondary fullscreen-btn"},C(n.isFullscreen?"🔄 退出全屏":"⛶ 全屏"),1)])])]),n.notification?(k(),x("div",{key:0,class:W(["notification",n.notification.type])},[a("div",Za,[a("span",Xa,C(n.notification.type==="success"?"✅":n.notification.type==="error"?"❌":"ℹ️"),1),a("span",$a,C(n.notification.message),1)])],2)):J("",!0),a("div",tc,[a("div",ec,[a("div",nc,C(n.totalTasks),1),e[44]||(e[44]=a("div",{class:"stat-label"},"总任务",-1))]),a("div",sc,[a("div",oc,C(n.completedTasks),1),e[45]||(e[45]=a("div",{class:"stat-label"},"已完成",-1))]),a("div",rc,[a("div",ic,C(n.pendingTasks),1),e[46]||(e[46]=a("div",{class:"stat-label"},"待完成",-1))]),a("div",lc,[a("div",ac,C(n.todayTasks),1),e[47]||(e[47]=a("div",{class:"stat-label"},"今日任务",-1))])]),a("div",cc,[a("button",{onClick:e[1]||(e[1]=o=>n.currentMenu="tasks"),class:W(["menu-btn",{active:n.currentMenu==="tasks"}])}," 📝 任务管理 ",2),a("button",{onClick:e[2]||(e[2]=o=>n.currentMenu="quadrant"),class:W(["menu-btn",{active:n.currentMenu==="quadrant"}])}," 🎯 四象限 ",2),a("button",{onClick:e[3]||(e[3]=o=>n.currentMenu="calendar"),class:W(["menu-btn",{active:n.currentMenu==="calendar"}])}," 📅 日历看板 ",2),a("button",{onClick:e[4]||(e[4]=o=>n.currentMenu="analysis"),class:W(["menu-btn",{active:n.currentMenu==="analysis"}])}," 📊 工作分析 ",2),a("button",{onClick:e[5]||(e[5]=o=>n.currentMenu="data"),class:W(["menu-btn",{active:n.currentMenu==="data"}])}," 💾 数据管理 ",2)]),n.currentMenu==="tasks"?(k(),x("div",uc,[a("div",dc,[a("div",fc,[e[49]||(e[49]=a("h3",null,"📁 项目管理",-1)),a("button",{onClick:e[6]||(e[6]=o=>n.showAddProject=!0),class:"btn btn-secondary"},e[48]||(e[48]=[a("span",null,"➕",-1),_s(" 新建项目 ",-1)]))]),a("div",hc,[(k(!0),x(Q,null,dt(n.projects,o=>(k(),x("button",{key:o.id,onClick:l=>n.currentProject=o.id,class:W(["project-item",{active:n.currentProject===o.id}])},[a("span",gc,C(o.name),1),a("span",mc,"("+C(n.getProjectTaskCount(o.id))+")",1)],10,pc))),128))])]),n.showAddProject?(k(),x("div",{key:0,class:"modal-overlay",onClick:e[12]||(e[12]=o=>n.showAddProject=!1)},[a("div",{class:"modal",onClick:e[11]||(e[11]=At(()=>{},["stop"]))},[e[50]||(e[50]=a("h3",null,"新建项目",-1)),Ut(a("input",{"onUpdate:modelValue":e[7]||(e[7]=o=>n.newProjectName=o),onKeyup:e[8]||(e[8]=Tn((...o)=>n.addProject&&n.addProject(...o),["enter"])),placeholder:"输入项目名称...",class:"modal-input"},null,544),[[Je,n.newProjectName]]),a("div",vc,[a("button",{onClick:e[9]||(e[9]=o=>n.showAddProject=!1),class:"btn btn-secondary"},"取消"),a("button",{onClick:e[10]||(e[10]=(...o)=>n.addProject&&n.addProject(...o)),class:"btn btn-primary"},"创建")])])])):J("",!0),a("div",yc,[Ut(a("input",{"onUpdate:modelValue":e[13]||(e[13]=o=>n.newTask=o),onKeyup:e[14]||(e[14]=Tn((...o)=>n.addTask&&n.addTask(...o),["enter"])),placeholder:"输入新任务...",type:"text"},null,544),[[Je,n.newTask]]),Ut(a("select",{"onUpdate:modelValue":e[15]||(e[15]=o=>n.newTaskProject=o),class:"btn btn-secondary"},[e[51]||(e[51]=a("option",{value:""},"📁 选择项目",-1)),(k(!0),x(Q,null,dt(n.projects,o=>(k(),x("option",{key:o.id,value:o.id}," 📁 "+C(o.name),9,_c))),128))],512),[[Pe,n.newTaskProject]]),Ut(a("select",{"onUpdate:modelValue":e[16]||(e[16]=o=>n.newTaskType=o),class:"btn btn-secondary"},e[52]||(e[52]=[uo('',6)]),512),[[Pe,n.newTaskType]]),Ut(a("select",{"onUpdate:modelValue":e[17]||(e[17]=o=>n.newTaskPriority=o),class:"btn btn-secondary"},e[53]||(e[53]=[a("option",{value:"low"},"低优先级",-1),a("option",{value:"medium"},"中优先级",-1),a("option",{value:"high"},"高优先级",-1)]),512),[[Pe,n.newTaskPriority]]),Ut(a("select",{"onUpdate:modelValue":e[18]||(e[18]=o=>n.newTaskImportance=o),class:"btn btn-secondary"},e[54]||(e[54]=[a("option",{value:"low"},"低重要性",-1),a("option",{value:"medium"},"中重要性",-1),a("option",{value:"high"},"高重要性",-1)]),512),[[Pe,n.newTaskImportance]]),Ut(a("select",{"onUpdate:modelValue":e[19]||(e[19]=o=>n.newTaskUrgency=o),class:"btn btn-secondary"},e[55]||(e[55]=[a("option",{value:"low"},"低紧急性",-1),a("option",{value:"medium"},"中紧急性",-1),a("option",{value:"high"},"高紧急性",-1)]),512),[[Pe,n.newTaskUrgency]]),Ut(a("input",{"onUpdate:modelValue":e[20]||(e[20]=o=>n.newTaskStartTime=o),type:"datetime-local",class:"btn btn-secondary",style:{"min-width":"180px"}},null,512),[[Je,n.newTaskStartTime]]),Ut(a("input",{"onUpdate:modelValue":e[21]||(e[21]=o=>n.newTaskEndTime=o),type:"datetime-local",class:"btn btn-secondary",style:{"min-width":"180px"}},null,512),[[Je,n.newTaskEndTime]]),a("button",{onClick:e[22]||(e[22]=(...o)=>n.addTask&&n.addTask(...o)),class:"btn btn-primary"},e[56]||(e[56]=[a("span",null,"➕",-1),_s(" 添加 ",-1)]))]),a("div",bc,[(k(!0),x(Q,null,dt(n.filters,o=>(k(),x("button",{key:o.value,onClick:l=>n.currentFilter=o.value,class:W(["filter-btn",{active:n.currentFilter===o.value}])},C(o.label),11,Tc))),128)),Ut(a("select",{"onUpdate:modelValue":e[23]||(e[23]=o=>n.currentTypeFilter=o),class:"filter-btn",style:{"min-width":"120px"}},e[57]||(e[57]=[uo('',7)]),512),[[Pe,n.currentTypeFilter]]),a("button",{onClick:e[24]||(e[24]=o=>n.currentProject=""),class:W(["filter-btn",{active:n.currentProject===""}])}," 所有项目 ",2)]),n.filteredTasks.length>0?(k(),x("div",wc,[(k(!0),x(Q,null,dt(n.filteredTasks,o=>(k(),x("div",{key:o.id,class:W(["todo-item",{completed:o.completed}])},[a("div",{class:W(["todo-checkbox",{checked:o.completed}]),onClick:l=>n.toggleTask(o.id)},null,10,Dc),a("div",kc,[a("div",xc,[o.editing?Ut((k(),x("input",{key:1,"onUpdate:modelValue":l=>o.text=l,onBlur:l=>n.saveEdit(o),onKeyup:[Tn(l=>n.saveEdit(o),["enter"]),Tn(l=>n.cancelEdit(o),["esc"])],ref_for:!0,ref:"editInput",class:"edit-input"},null,40,Sc)),[[Je,o.text]]):(k(),x("span",Cc,C(o.text),1))]),a("div",Oc,[a("span",{class:W(["todo-project",`project-${o.projectId}`])},C(n.getProjectName(o.projectId)),3),a("span",{class:W(["todo-type",`type-${o.type}`])},C(n.getTypeText(o.type)),3),a("span",{class:W(["todo-priority",`priority-${o.priority}`])},C(n.getPriorityText(o.priority)),3),a("span",Ac,[o.startTime?(k(),x("span",Ec,"🕐 "+C(n.formatDateTime(o.startTime)),1)):J("",!0),o.endTime?(k(),x("span",Mc," - "+C(n.formatDateTime(o.endTime)),1)):J("",!0)]),o.startTime&&o.endTime?(k(),x("span",jc," ⏱️ "+C(n.calculateDuration(o.startTime,o.endTime)),1)):J("",!0),o.timerRunning||o.timerDuration?(k(),x("span",Pc,[o.timerRunning?(k(),x("span",Ic," ⏱️ "+C(n.formatTimer(o)),1)):o.timerDuration?(k(),x("span",Fc," ⏱️ "+C(n.formatDuration(o.timerDuration)),1)):J("",!0)])):J("",!0)])]),a("div",Rc,[!o.startTime||!o.endTime?(k(),x("button",{key:0,onClick:l=>n.toggleTimer(o),class:W(["btn-icon",o.timerRunning?"btn-stop":"btn-start"]),title:o.timerRunning?"停止计时":"开始计时"},C(o.timerRunning?"⏹️":"▶️"),11,qc)):J("",!0),a("button",{onClick:l=>n.editTask(o),class:"btn-icon btn-edit",title:"编辑任务"}," ✏️ ",8,Lc),a("button",{onClick:l=>n.deleteTask(o.id),class:"btn-icon btn-delete",title:"删除任务"}," 🗑️ ",8,Nc)])],2))),128))])):(k(),x("div",Hc,[e[58]||(e[58]=a("h3",null,"🎉 太棒了!",-1)),n.currentFilter==="all"?(k(),x("p",Vc," 您还没有任何任务。开始添加您的第一个任务吧! ")):n.currentFilter==="completed"?(k(),x("p",Uc," 还没有完成的任务。继续加油! ")):n.currentFilter==="pending"?(k(),x("p",Kc," 所有任务都已完成!您真是太棒了! ")):J("",!0)]))])):J("",!0),n.currentMenu==="analysis"?(k(),x("div",Wc,[a("div",Bc,[a("div",zc,[e[59]||(e[59]=a("h3",null,"📊 工作分析",-1)),a("div",Jc,[(k(!0),x(Q,null,dt(n.timeDimensions,o=>(k(),x("button",{key:o.value,onClick:l=>n.currentTimeDimension=o.value,class:W(["dimension-btn",{active:n.currentTimeDimension===o.value}])},C(o.label),11,Qc))),128))])]),a("div",Gc,[a("div",Yc,[a("div",Zc,[e[61]||(e[61]=a("div",{class:"overview-icon"},"📝",-1)),a("div",Xc,[a("div",$c,C(n.getOverviewData().totalTasks),1),e[60]||(e[60]=a("div",{class:"overview-label"},"总任务数",-1))])]),a("div",tu,[e[63]||(e[63]=a("div",{class:"overview-icon"},"✅",-1)),a("div",eu,[a("div",nu,C(n.getOverviewData().completedTasks),1),e[62]||(e[62]=a("div",{class:"overview-label"},"已完成",-1))])]),a("div",su,[e[65]||(e[65]=a("div",{class:"overview-icon"},"⏱️",-1)),a("div",ou,[a("div",ru,C(n.getOverviewData().totalHours)+"h",1),e[64]||(e[64]=a("div",{class:"overview-label"},"工作时长",-1))])]),a("div",iu,[e[67]||(e[67]=a("div",{class:"overview-icon"},"📈",-1)),a("div",lu,[a("div",au,C(n.getOverviewData().completionRate)+"%",1),e[66]||(e[66]=a("div",{class:"overview-label"},"完成率",-1))])])])]),a("div",cu,[a("div",uu,[a("div",du,[a("div",fu,[e[68]||(e[68]=a("h4",null,"📊 项目占比",-1)),a("div",hu,[(k(!0),x(Q,null,dt(n.getProjectChartData(),o=>(k(),x("div",{key:o.name,class:"legend-item"},[a("div",{class:"legend-color",style:Pt({backgroundColor:o.color})},null,4),a("span",pu,C(o.name),1),a("span",gu,C(o.percentage)+"%",1)]))),128))])]),a("div",mu,[(k(),x("svg",vu,[e[69]||(e[69]=a("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:"#e2e8f0","stroke-width":"20"},null,-1)),(k(!0),x(Q,null,dt(n.getProjectChartData(),(o,l)=>(k(),x("g",{key:o.name},[a("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:o.color,"stroke-width":"20","stroke-dasharray":o.dashArray,"stroke-dashoffset":o.dashOffset,transform:"rotate(-90 100 100)"},null,8,yu)]))),128))]))])]),a("div",_u,[a("div",bu,[e[70]||(e[70]=a("h4",null,"📊 类型占比",-1)),a("div",Tu,[(k(!0),x(Q,null,dt(n.getTypeChartData(),o=>(k(),x("div",{key:o.name,class:"legend-item"},[a("div",{class:"legend-color",style:Pt({backgroundColor:o.color})},null,4),a("span",wu,C(o.name),1),a("span",Du,C(o.percentage)+"%",1)]))),128))])]),a("div",ku,[(k(),x("svg",xu,[e[71]||(e[71]=a("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:"#e2e8f0","stroke-width":"20"},null,-1)),(k(!0),x(Q,null,dt(n.getTypeChartData(),(o,l)=>(k(),x("g",{key:o.name},[a("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:o.color,"stroke-width":"20","stroke-dasharray":o.dashArray,"stroke-dashoffset":o.dashOffset,transform:"rotate(-90 100 100)"},null,8,Cu)]))),128))]))])]),a("div",Su,[e[73]||(e[73]=a("div",{class:"chart-header"},[a("h4",null,"📈 活动趋势")],-1)),a("div",Ou,[(k(),x("svg",Au,[e[72]||(e[72]=a("defs",null,[a("linearGradient",{id:"lineGradient",x1:"0%",y1:"0%",x2:"0%",y2:"100%"},[a("stop",{offset:"0%",style:{"stop-color":"#667eea","stop-opacity":"0.8"}}),a("stop",{offset:"100%",style:{"stop-color":"#667eea","stop-opacity":"0.1"}})])],-1)),(k(!0),x(Q,null,dt(n.getTrendData(),(o,l)=>(k(),x("g",{key:l},[a("circle",{cx:o.x,cy:o.y,r:"4",fill:"#667eea",class:"trend-point"},null,8,Eu),l>0?(k(),x("line",{key:0,x1:n.getTrendData()[l-1].x,y1:n.getTrendData()[l-1].y,x2:o.x,y2:o.y,stroke:"#667eea","stroke-width":"2"},null,8,Mu)):J("",!0)]))),128)),a("path",{d:n.getTrendPath(),fill:"url(#lineGradient)",opacity:"0.3"},null,8,ju)]))])]),a("div",Pu,[e[74]||(e[74]=a("div",{class:"chart-header"},[a("h4",null,"⏰ 时间分布")],-1)),a("div",Iu,[(k(),x("svg",Fu,[(k(!0),x(Q,null,dt(n.getTimeDistributionData(),(o,l)=>(k(),x("g",{key:l},[a("rect",{x:o.x,y:o.y,width:o.width,height:o.height,fill:o.color,rx:"2",class:"bar-item"},null,8,Ru),a("text",{x:o.x+o.width/2,y:o.y-5,"text-anchor":"middle","font-size":"12",fill:"#4a5568"},C(o.value),9,qu)]))),128))]))])]),a("div",Lu,[e[75]||(e[75]=a("div",{class:"chart-header"},[a("h4",null,"🕐 今日时间块")],-1)),a("div",Nu,[(k(),x(Q,null,dt(24,o=>a("div",{key:o,class:W(["time-block",{"has-task":n.getHourTaskCount(o-1)>0}]),style:Pt({backgroundColor:n.getHourTaskCount(o-1)>0?n.getHourColor(o-1):"#f7fafc",opacity:n.getHourTaskCount(o-1)>0?.8:.3})},[a("div",Hu,C((o-1).toString().padStart(2,"0"))+":00",1),n.getHourTaskCount(o-1)>0?(k(),x("div",Vu,C(n.getHourTaskCount(o-1))+"个任务 ",1)):J("",!0)],6)),64))])])])])])])):J("",!0),n.currentMenu==="quadrant"?(k(),x("div",Uu,[a("div",Ku,[e[76]||(e[76]=a("div",{class:"quadrant-header"},[a("h3",null,"🎯 四象限任务管理"),a("p",null,"按照重要性和紧急性对任务进行分类,提高工作效率")],-1)),a("div",Wu,[a("div",{class:"quadrant",style:Pt({borderColor:n.getQuadrantColor("q1")})},[a("div",{class:"quadrant-header",style:Pt({backgroundColor:n.getQuadrantColor("q1")})},[a("h4",null,C(n.getQuadrantTitle("q1")),1),a("span",Bu,C(n.quadrantTasks.q1.length)+"个任务",1)],4),a("div",zu,C(n.getQuadrantDescription("q1")),1),a("div",Ju,[(k(!0),x(Q,null,dt(n.quadrantTasks.q1,o=>(k(),x("div",{key:o.id,class:W(["quadrant-task",{completed:o.completed}]),onClick:l=>n.selectTask(o)},[a("div",{class:"task-checkbox",onClick:At(l=>n.toggleTask(o.id),["stop"])},[o.completed?(k(),x("span",Yu,"✓")):J("",!0)],8,Gu),a("div",Zu,[a("div",Xu,C(o.text),1),a("div",$u,[a("span",td,C(n.getProjectName(o.projectId)),1),a("span",ed,C(n.getTypeText(o.type)),1)])]),a("div",nd,[a("button",{onClick:At(l=>n.editTask(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,sd),a("button",{onClick:At(l=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,od)])],10,Qu))),128)),n.quadrantTasks.q1.length===0?(k(),x("div",rd," 暂无任务 ")):J("",!0)])],4),a("div",{class:"quadrant",style:Pt({borderColor:n.getQuadrantColor("q2")})},[a("div",{class:"quadrant-header",style:Pt({backgroundColor:n.getQuadrantColor("q2")})},[a("h4",null,C(n.getQuadrantTitle("q2")),1),a("span",id,C(n.quadrantTasks.q2.length)+"个任务",1)],4),a("div",ld,C(n.getQuadrantDescription("q2")),1),a("div",ad,[(k(!0),x(Q,null,dt(n.quadrantTasks.q2,o=>(k(),x("div",{key:o.id,class:W(["quadrant-task",{completed:o.completed}]),onClick:l=>n.selectTask(o)},[a("div",{class:"task-checkbox",onClick:At(l=>n.toggleTask(o.id),["stop"])},[o.completed?(k(),x("span",dd,"✓")):J("",!0)],8,ud),a("div",fd,[a("div",hd,C(o.text),1),a("div",pd,[a("span",gd,C(n.getProjectName(o.projectId)),1),a("span",md,C(n.getTypeText(o.type)),1)])]),a("div",vd,[a("button",{onClick:At(l=>n.editTask(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,yd),a("button",{onClick:At(l=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,_d)])],10,cd))),128)),n.quadrantTasks.q2.length===0?(k(),x("div",bd," 暂无任务 ")):J("",!0)])],4),a("div",{class:"quadrant",style:Pt({borderColor:n.getQuadrantColor("q3")})},[a("div",{class:"quadrant-header",style:Pt({backgroundColor:n.getQuadrantColor("q3")})},[a("h4",null,C(n.getQuadrantTitle("q3")),1),a("span",Td,C(n.quadrantTasks.q3.length)+"个任务",1)],4),a("div",wd,C(n.getQuadrantDescription("q3")),1),a("div",Dd,[(k(!0),x(Q,null,dt(n.quadrantTasks.q3,o=>(k(),x("div",{key:o.id,class:W(["quadrant-task",{completed:o.completed}]),onClick:l=>n.selectTask(o)},[a("div",{class:"task-checkbox",onClick:At(l=>n.toggleTask(o.id),["stop"])},[o.completed?(k(),x("span",Cd,"✓")):J("",!0)],8,xd),a("div",Sd,[a("div",Od,C(o.text),1),a("div",Ad,[a("span",Ed,C(n.getProjectName(o.projectId)),1),a("span",Md,C(n.getTypeText(o.type)),1)])]),a("div",jd,[a("button",{onClick:At(l=>n.editTask(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,Pd),a("button",{onClick:At(l=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,Id)])],10,kd))),128)),n.quadrantTasks.q3.length===0?(k(),x("div",Fd," 暂无任务 ")):J("",!0)])],4),a("div",{class:"quadrant",style:Pt({borderColor:n.getQuadrantColor("q4")})},[a("div",{class:"quadrant-header",style:Pt({backgroundColor:n.getQuadrantColor("q4")})},[a("h4",null,C(n.getQuadrantTitle("q4")),1),a("span",Rd,C(n.quadrantTasks.q4.length)+"个任务",1)],4),a("div",qd,C(n.getQuadrantDescription("q4")),1),a("div",Ld,[(k(!0),x(Q,null,dt(n.quadrantTasks.q4,o=>(k(),x("div",{key:o.id,class:W(["quadrant-task",{completed:o.completed}]),onClick:l=>n.selectTask(o)},[a("div",{class:"task-checkbox",onClick:At(l=>n.toggleTask(o.id),["stop"])},[o.completed?(k(),x("span",Vd,"✓")):J("",!0)],8,Hd),a("div",Ud,[a("div",Kd,C(o.text),1),a("div",Wd,[a("span",Bd,C(n.getProjectName(o.projectId)),1),a("span",zd,C(n.getTypeText(o.type)),1)])]),a("div",Jd,[a("button",{onClick:At(l=>n.editTask(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,Qd),a("button",{onClick:At(l=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,Gd)])],10,Nd))),128)),n.quadrantTasks.q4.length===0?(k(),x("div",Yd," 暂无任务 ")):J("",!0)])],4)])])])):J("",!0),n.currentMenu==="calendar"?(k(),x("div",Zd,[a("div",Xd,[a("div",$d,[a("button",{onClick:e[25]||(e[25]=(...o)=>n.previousPeriod&&n.previousPeriod(...o)),class:"btn btn-secondary"}," ◀️ 上期 "),a("h3",tf,C(n.calendarTitle),1),a("div",ef,[a("button",{onClick:e[26]||(e[26]=(...o)=>n.scrollToCurrentTime&&n.scrollToCurrentTime(...o)),class:"btn btn-secondary current-time-btn",title:"滚动到当前时间"}," 🕐 当前时间 "),a("button",{onClick:e[27]||(e[27]=(...o)=>n.nextPeriod&&n.nextPeriod(...o)),class:"btn btn-secondary"}," 下期 ▶️ ")])]),a("div",nf,[a("button",{onClick:e[28]||(e[28]=()=>{n.calendarView="day",t.setTimeout(n.scrollToCurrentTime,100)}),class:W(["view-btn",{active:n.calendarView==="day"}])}," 日视图 ",2),a("button",{onClick:e[29]||(e[29]=()=>{n.calendarView="week",t.setTimeout(n.scrollToCurrentTime,100)}),class:W(["view-btn",{active:n.calendarView==="week"}])}," 周视图 ",2),a("button",{onClick:e[30]||(e[30]=o=>n.calendarView="month"),class:W(["view-btn",{active:n.calendarView==="month"}])}," 月视图 ",2)]),n.calendarView==="day"?(k(),x("div",sf,[a("div",of,[a("h4",null,C(n.formatDate(n.selectedDate)),1),a("div",rf,[a("span",lf,"任务: "+C(n.dayTasks.length),1),a("span",af,"已完成: "+C(n.completedDayTasks.length),1),a("span",cf,"工作时长: "+C(n.dayWorkHours)+"小时",1)])]),a("div",uf,[(k(),x(Q,null,dt(24,o=>a("div",{key:o,class:W(["time-slot",{"current-time":n.isCurrentTimeLine(o-1)}]),"data-hour":o-1},[a("div",ff,C((o-1).toString().padStart(2,"0"))+":00",1),a("div",hf,[(k(!0),x(Q,null,dt(n.getTasksForHour(o-1),l=>(k(),x("div",{key:l.id,class:W(["timeline-task",{completed:l.completed}]),onClick:d=>n.selectTask(l)},[a("div",gf,C(n.formatTime(l.startTime)),1),a("div",mf,C(l.text),1),a("div",vf,[a("span",yf,C(n.getProjectName(l.projectId)),1),a("span",_f,C(n.getTypeText(l.type)),1)])],10,pf))),128))])],10,df)),64))])])):J("",!0),n.calendarView==="week"?(k(),x("div",bf,[a("div",Tf,[a("div",wf,[e[77]||(e[77]=a("div",{class:"time-column"},"时间",-1)),(k(!0),x(Q,null,dt(n.weekDays,o=>(k(),x("div",{key:o.date,class:W(["day-column",{today:n.isToday(o.date)}])},[a("div",Df,C(o.name),1),a("div",kf,C(n.formatDayDate(o.date)),1),a("div",xf,C(n.getDayTaskCount(o.date))+"个任务",1)],2))),128))]),a("div",Cf,[(k(),x(Q,null,dt(24,o=>a("div",{key:o,class:W(["time-row",{"current-time":n.isCurrentTimeLine(o-1)}]),"data-hour":o-1},[a("div",Of,C((o-1).toString().padStart(2,"0"))+":00",1),(k(!0),x(Q,null,dt(n.weekDays,l=>(k(),x("div",{key:l.date,class:"day-cell"},[(k(!0),x(Q,null,dt(n.getTasksForDayAndHour(l.date,o-1),d=>(k(),x("div",{key:d.id,class:W(["week-task",{completed:d.completed}]),onClick:m=>n.selectTask(d)},[a("div",Ef,C(n.formatTime(d.startTime)),1),a("div",Mf,C(d.text),1)],10,Af))),128))]))),128))],10,Sf)),64))])])])):J("",!0),n.calendarView==="month"?(k(),x("div",jf,[a("div",Pf,[a("div",If,[(k(),x(Q,null,dt(["日","一","二","三","四","五","六"],o=>a("div",{key:o,class:"day-name"},C(o),1)),64))]),a("div",Ff,[(k(!0),x(Q,null,dt(n.monthDays,o=>(k(),x("div",{key:o.date,class:W(["month-day",{"other-month":!o.isCurrentMonth,today:n.isToday(o.date),"has-tasks":n.getDayTaskCount(o.date)>0}]),onClick:l=>n.selectDate(o.date)},[a("div",qf,C(o.dayNumber),1),a("div",Lf,[(k(!0),x(Q,null,dt(n.getTasksForDay(o.date).slice(0,3),l=>(k(),x("div",{key:l.id,class:W(["month-task",{completed:l.completed}]),onClick:At(d=>n.selectTask(l),["stop"])},C(l.text),11,Nf))),128)),n.getDayTaskCount(o.date)>3?(k(),x("div",Hf," +"+C(n.getDayTaskCount(o.date)-3)+"个 ",1)):J("",!0)])],10,Rf))),128))])])])):J("",!0),n.selectedTask?(k(),x("div",{key:3,class:"modal-overlay",onClick:e[34]||(e[34]=o=>n.selectedTask=null)},[a("div",{class:"modal task-modal",onClick:e[33]||(e[33]=At(()=>{},["stop"]))},[e[87]||(e[87]=a("h3",null,"任务详情",-1)),a("div",Vf,[a("div",Uf,[e[78]||(e[78]=a("label",null,"任务内容:",-1)),a("span",null,C(n.selectedTask.text),1)]),a("div",Kf,[e[79]||(e[79]=a("label",null,"所属项目:",-1)),a("span",null,C(n.getProjectName(n.selectedTask.projectId)),1)]),a("div",Wf,[e[80]||(e[80]=a("label",null,"任务类型:",-1)),a("span",null,C(n.getTypeText(n.selectedTask.type)),1)]),a("div",Bf,[e[81]||(e[81]=a("label",null,"优先级:",-1)),a("span",null,C(n.getPriorityText(n.selectedTask.priority)),1)]),n.selectedTask.startTime?(k(),x("div",zf,[e[82]||(e[82]=a("label",null,"开始时间:",-1)),a("span",null,C(n.formatDateTime(n.selectedTask.startTime)),1)])):J("",!0),n.selectedTask.endTime?(k(),x("div",Jf,[e[83]||(e[83]=a("label",null,"结束时间:",-1)),a("span",null,C(n.formatDateTime(n.selectedTask.endTime)),1)])):J("",!0),n.selectedTask.startTime&&n.selectedTask.endTime?(k(),x("div",Qf,[e[84]||(e[84]=a("label",null,"工作时长:",-1)),a("span",null,C(n.calculateDuration(n.selectedTask.startTime,n.selectedTask.endTime)),1)])):J("",!0),n.selectedTask.timerDuration?(k(),x("div",Gf,[e[85]||(e[85]=a("label",null,"计时时长:",-1)),a("span",null,C(n.formatDuration(n.selectedTask.timerDuration)),1)])):J("",!0),a("div",Yf,[e[86]||(e[86]=a("label",null,"状态:",-1)),a("span",{class:W({completed:n.selectedTask.completed})},C(n.selectedTask.completed?"已完成":"进行中"),3)])]),a("div",Zf,[a("button",{onClick:e[31]||(e[31]=o=>n.selectedTask=null),class:"btn btn-secondary"},"关闭"),a("button",{onClick:e[32]||(e[32]=o=>n.editTaskFromCalendar(n.selectedTask)),class:"btn btn-primary"},"编辑")])])])):J("",!0)])])):J("",!0),n.currentMenu==="data"?(k(),x("div",Xf,[a("div",$f,[e[88]||(e[88]=a("h3",null,"💾 数据管理",-1)),a("div",th,[a("div",eh,[a("span",{class:W(["sync-indicator",{online:n.isOnline,offline:!n.isOnline}])},C(n.isOnline?"🟢 服务器在线":"🔴 服务器离线"),3),n.lastServerUpdate?(k(),x("span",nh," 最后同步: "+C(n.formatDateTime(n.lastServerUpdate)),1)):J("",!0)]),a("div",sh,[a("button",{onClick:e[35]||(e[35]=(...o)=>n.checkServerConnection&&n.checkServerConnection(...o)),class:"btn btn-secondary"}," 🔄 检查连接 "),a("button",{onClick:e[36]||(e[36]=(...o)=>n.syncToServer&&n.syncToServer(...o)),disabled:!n.isOnline||n.syncStatus==="syncing",class:"btn btn-primary"},C(n.syncStatus==="syncing"?"⏳ 同步中...":"📤 同步到服务器"),9,oh),a("button",{onClick:e[37]||(e[37]=(...o)=>n.syncFromServer&&n.syncFromServer(...o)),disabled:!n.isOnline||n.syncStatus==="syncing",class:"btn btn-primary"},C(n.syncStatus==="syncing"?"⏳ 同步中...":"📥 从服务器同步"),9,rh)])]),a("div",ih,[a("button",{onClick:e[38]||(e[38]=(...o)=>n.exportData&&n.exportData(...o)),class:"btn btn-secondary"}," 📤 导出数据 "),a("button",{onClick:e[39]||(e[39]=(...o)=>n.importData&&n.importData(...o)),class:"btn btn-secondary"}," 📥 导入数据 "),a("button",{onClick:e[40]||(e[40]=(...o)=>n.clearData&&n.clearData(...o)),class:"btn btn-secondary"}," 🗑️ 清空数据 "),a("button",{onClick:e[41]||(e[41]=(...o)=>n.clearDefaultData&&n.clearDefaultData(...o)),class:"btn btn-secondary"}," 🧹 清除默认数据 "),a("input",{ref:"fileInput",type:"file",accept:".json",onChange:e[42]||(e[42]=(...o)=>n.handleFileImport&&n.handleFileImport(...o)),style:{display:"none"}},null,544)])])])):J("",!0)],2)}const ah=za(Ja,[["render",lh],["__scopeId","data-v-a88cc1f2"]]);xa(ah).mount("#app"); diff --git a/dist/assets/index-4ae537ef.css b/dist/assets/index-4ae537ef.css new file mode 100644 index 0000000..2e3a0bb --- /dev/null +++ b/dist/assets/index-4ae537ef.css @@ -0,0 +1 @@ +.edit-input[data-v-cdf0d653]{width:100%;padding:8px 12px;border:2px solid #667eea;border-radius:8px;font-size:1.1rem;font-weight:500;color:#2d3748;background:white}.edit-input[data-v-cdf0d653]:focus{outline:none;box-shadow:0 0 0 3px #667eea1a}.edit-task-modal[data-v-cdf0d653]{max-width:600px;max-height:90vh;overflow-y:auto}.modal-header[data-v-cdf0d653]{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #e2e8f0;margin-bottom:1.5rem}.btn-close[data-v-cdf0d653]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#718096;padding:.5rem;border-radius:.5rem;transition:all .2s}.btn-close[data-v-cdf0d653]:hover{background:#f7fafc;color:#2d3748}.modal-body[data-v-cdf0d653]{padding:0}.edit-section[data-v-cdf0d653]{margin-bottom:2rem;padding:1.5rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.edit-section h4[data-v-cdf0d653]{margin:0 0 1rem;color:#2d3748;font-size:1.1rem;font-weight:600}.form-group[data-v-cdf0d653]{margin-bottom:1rem}.form-row[data-v-cdf0d653]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label[data-v-cdf0d653]{display:block;margin-bottom:.5rem;color:#4a5568;font-weight:500;font-size:.9rem}.form-input[data-v-cdf0d653],.form-select[data-v-cdf0d653]{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;color:#2d3748;background:white;transition:all .2s}.form-input[data-v-cdf0d653]:focus,.form-select[data-v-cdf0d653]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.time-actions[data-v-cdf0d653]{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.btn-sm[data-v-cdf0d653]{padding:.5rem 1rem;font-size:.875rem}.duration-display[data-v-cdf0d653]{margin-top:1rem;padding:.75rem 1rem;background:#e6fffa;border:1px solid #81e6d9;border-radius:8px;color:#234e52;font-weight:500}.timer-info[data-v-cdf0d653]{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fef5e7;border:1px solid #f6ad55;border-radius:8px;color:#744210;font-weight:500}.status-toggle[data-v-cdf0d653]{display:flex;align-items:center}.toggle-label[data-v-cdf0d653]{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-input[data-v-cdf0d653]{display:none}.toggle-slider[data-v-cdf0d653]{position:relative;width:50px;height:24px;background:#cbd5e0;border-radius:12px;margin-right:.75rem;transition:all .3s}.toggle-slider[data-v-cdf0d653]:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:white;border-radius:50%;transition:all .3s;box-shadow:0 2px 4px #0003}.toggle-input:checked+.toggle-slider[data-v-cdf0d653]{background:#667eea}.toggle-input:checked+.toggle-slider[data-v-cdf0d653]:before{transform:translate(26px)}.toggle-text[data-v-cdf0d653]{font-weight:500;color:#2d3748}@media (max-width: 768px){.edit-task-modal[data-v-cdf0d653]{margin:1rem;max-width:calc(100vw - 2rem)}.form-row[data-v-cdf0d653]{grid-template-columns:1fr}.time-actions[data-v-cdf0d653]{flex-direction:column}.time-actions .btn[data-v-cdf0d653]{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;color:#333}#app{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:20px;overflow-x:hidden}.container{background:white;border-radius:20px;box-shadow:0 20px 40px #0000001a;padding:30px;width:100%;max-width:800px;min-height:80vh;overflow-x:hidden;transition:all .3s ease}.container.fullscreen{max-width:100%;border-radius:0;box-shadow:none;margin:0;padding:20px;min-height:100vh}.container.fullscreen .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}.container.fullscreen .menu-nav{justify-content:center;gap:15px}.container.fullscreen .menu-btn{min-width:160px}.container.fullscreen .work-analysis .analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.container.fullscreen .calendar-container{max-width:100%}.container.fullscreen .week-view .week-grid{max-width:100%;overflow-x:auto}.container.fullscreen .month-view .month-grid,.container.fullscreen .quadrant-container{max-width:100%}.container.fullscreen .quadrant-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.container.fullscreen .calendar-container,.container.fullscreen .day-view,.container.fullscreen .week-view,.container.fullscreen .month-view,.container.fullscreen .data-management,.container.fullscreen .work-analysis{max-width:100%}.container.fullscreen .analysis-grid,.container.fullscreen .charts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.container.fullscreen .overview-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.menu-content,.quadrant-container,.calendar-container,.data-management,.work-analysis{width:100%;max-width:100%}.container:not(.fullscreen) .menu-content{max-width:100%}.container:not(.fullscreen) .quadrant-container{max-width:100%}.container:not(.fullscreen) .calendar-container{max-width:100%}.container:not(.fullscreen) .data-management{max-width:100%}.container:not(.fullscreen) .work-analysis{max-width:100%}.notification{position:fixed;top:20px;right:20px;z-index:1000;background:white;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:12px 16px;min-width:300px;max-width:400px;animation:slideIn .3s ease;border-left:4px solid}.notification.success{border-left-color:#4caf50}.notification.error{border-left-color:#f44336}.notification.info{border-left-color:#2196f3}.notification-content{display:flex;align-items:center;gap:8px}.notification-icon{font-size:16px}.notification-message{flex:1;font-size:14px;color:#333}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.header{margin-bottom:30px}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.header-left{text-align:left}.header-right{display:flex;align-items:center}.fullscreen-btn{background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.3);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fullscreen-btn:hover{background:rgba(255,255,255,.3);border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.header h1{color:#4a5568;font-size:2.5rem;font-weight:700;margin-bottom:10px}.header p{color:#718096;font-size:1.1rem}.input-group{display:flex;gap:10px;margin-bottom:30px;flex-wrap:wrap}.input-group input{flex:1;min-width:200px;padding:15px 20px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s ease}.input-group select{min-width:120px;white-space:nowrap}.input-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.btn{padding:15px 25px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.btn-secondary{background:#f7fafc;color:#4a5568;border:2px solid #e2e8f0}.btn-secondary:hover{background:#edf2f7;border-color:#cbd5e0}.todo-list{display:flex;flex-direction:column;gap:15px}.todo-item{display:flex;align-items:flex-start;gap:15px;padding:20px;background:#f7fafc;border-radius:15px;border:2px solid transparent;transition:all .3s ease;position:relative;flex-wrap:wrap}.todo-item:hover{border-color:#e2e8f0;transform:translateY(-2px);box-shadow:0 5px 15px #0000001a}.todo-item.completed{background:#f0fff4;border-color:#9ae6b4}.todo-item.completed .todo-text{text-decoration:line-through;color:#718096}.todo-checkbox{width:24px;height:24px;border:3px solid #cbd5e0;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.todo-checkbox.checked{background:#48bb78;border-color:#48bb78}.todo-checkbox.checked:after{content:"✓";color:#fff;font-weight:700;font-size:14px}.todo-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.todo-text{font-size:1.1rem;font-weight:500;color:#2d3748;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.todo-meta{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#718096;flex-wrap:wrap}.todo-priority{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;text-transform:uppercase}.priority-high{background:#fed7d7;color:#c53030}.priority-medium{background:#fef5e7;color:#d69e2e}.priority-low{background:#e6fffa;color:#319795}.todo-type{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;text-transform:uppercase}.type-requirement{background:#e6f3ff;color:#1e40af}.type-documentation{background:#f0f9ff;color:#0369a1}.type-development{background:#f0fdf4;color:#166534}.type-testing{background:#fef3c7;color:#d97706}.type-operation{background:#fdf2f8;color:#be185d}.type-other{background:#f3f4f6;color:#374151}.project-section{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.project-header h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.project-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.project-item{padding:10px 16px;border:2px solid #e2e8f0;background:white;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px}.project-item:hover{border-color:#667eea;color:#667eea}.project-item.active{background:#667eea;color:#fff;border-color:#667eea}.project-name{font-weight:600}.project-count{font-size:.8rem;opacity:.8}.todo-project{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;background:#e6f3ff;color:#1e40af}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:white;padding:30px;border-radius:15px;box-shadow:0 20px 40px #0003;min-width:400px;max-width:90vw}.modal h3{margin:0 0 20px;color:#2d3748;font-size:1.3rem;font-weight:600}.modal-input{width:100%;padding:15px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;margin-bottom:20px;transition:all .3s ease}.modal-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.todo-actions{display:flex;gap:8px;opacity:0;transition:opacity .3s ease;flex-shrink:0}.todo-item:hover .todo-actions{opacity:1}.btn-icon{width:36px;height:36px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:1rem}.btn-edit{background:#ebf8ff;color:#3182ce}.btn-edit:hover{background:#bee3f8}.btn-delete{background:#fed7d7;color:#e53e3e}.btn-delete:hover{background:#feb2b2}.btn-start{background:#f0fdf4;color:#166534}.btn-start:hover{background:#dcfce7}.btn-stop{background:#fef2f2;color:#dc2626}.btn-stop:hover{background:#fee2e2}.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-btn{padding:8px 16px;border:2px solid #e2e8f0;background:white;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500}.filter-btn.active{background:#667eea;color:#fff;border-color:#667eea}.filter-btn:hover{border-color:#667eea;color:#667eea}.filter-btn.active:hover{color:#fff}.stats{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#f7fafc;border-radius:15px;margin-bottom:20px}.stat-item{text-align:center}.stat-number{font-size:1.5rem;font-weight:700;color:#2d3748}.stat-label{font-size:.9rem;color:#718096;margin-top:5px}.empty-state{text-align:center;padding:60px 20px;color:#718096}.empty-state h3{font-size:1.5rem;margin-bottom:10px;color:#4a5568}.empty-state p{font-size:1rem;line-height:1.6}@media (max-width: 768px){.container{margin:10px;padding:20px;min-height:auto;max-width:100%}.header h1{font-size:2rem}.input-group{flex-direction:column}.input-group input,.input-group select{min-width:auto;width:100%}.todo-item{padding:15px;flex-direction:column;align-items:flex-start}.todo-actions{opacity:1;align-self:flex-end}.filters{justify-content:center}.project-header{flex-direction:column;gap:15px;align-items:flex-start}.project-list{justify-content:flex-start}.todo-meta{flex-direction:column;align-items:flex-start;gap:5px}.analysis-grid{grid-template-columns:1fr}.work-analysis,.data-management{padding:15px}.data-actions{flex-direction:column;align-items:stretch}.data-actions .btn{min-width:auto}.menu-nav{flex-direction:column;align-items:stretch}.menu-btn{min-width:auto;width:100%}.calendar-nav{flex-direction:column;gap:15px}.calendar-actions{flex-direction:column;gap:5px}.calendar-title{font-size:1.2rem}.calendar-views{flex-wrap:wrap}.view-btn{flex:1;min-width:80px}.day-stats{flex-direction:column;gap:10px}.time-label{width:60px;font-size:.8rem}.week-header{flex-direction:column}.time-column{width:100%;border-right:none;border-bottom:1px solid rgba(255,255,255,.2)}.day-column{border-right:none;border-bottom:1px solid rgba(255,255,255,.2)}.time-row{flex-direction:column}.day-cell{border-right:none;border-bottom:1px solid #e2e8f0}.month-day{min-height:80px;padding:8px}.month-task{font-size:.7rem;padding:3px 4px}.header-content{flex-direction:column;text-align:center}.header-left{text-align:center}.fullscreen-btn{padding:8px 12px;font-size:.9rem}.container.fullscreen{padding:15px}.container.fullscreen .stats{grid-template-columns:repeat(2,1fr)}.container.fullscreen .work-analysis .analysis-grid{grid-template-columns:1fr}.sync-info{flex-direction:column;align-items:flex-start}.sync-actions{flex-direction:column}.sync-actions .btn{width:100%}.analysis-header{flex-direction:column;align-items:flex-start}.time-dimension-selector{flex-wrap:wrap}.overview-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.chart-card{padding:15px}.time-blocks{grid-template-columns:repeat(12,1fr);height:80px}.time-block{min-width:30px;font-size:.6rem}}@media (max-width: 480px){.container{margin:5px;padding:15px}.header h1{font-size:1.5rem}.header p{font-size:1rem}.project-item{padding:8px 12px;font-size:.8rem}.todo-item{padding:12px}.todo-text{font-size:1rem}.btn{padding:12px 20px;font-size:.9rem}.btn-icon{width:32px;height:32px}}.todo-time{font-size:.85rem;color:#6b7280}.todo-duration{background:#f3f4f6;color:#374151;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600}.todo-timer{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600}.timer-running{background:#fef3c7;color:#d97706;animation:pulse 2s infinite}.timer-stopped{background:#e6fffa;color:#319795}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.work-analysis{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0;width:100%;max-width:100%}.work-analysis h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 20px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.analysis-card{background:white;padding:20px;border-radius:12px;border:2px solid #e2e8f0;transition:all .3s ease}.analysis-card:hover{border-color:#667eea;box-shadow:0 5px 15px #0000001a}.analysis-title{font-size:1rem;font-weight:600;color:#2d3748;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #e2e8f0}.analysis-content{display:flex;flex-direction:column;gap:10px}.analysis-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.analysis-label{font-size:.9rem;color:#4a5568;font-weight:500}.analysis-value{font-size:.9rem;color:#2d3748;font-weight:600;background:#e6f3ff;padding:4px 8px;border-radius:6px}.data-management{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0;width:100%;max-width:100%}.data-management h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 20px}.data-actions{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.data-actions .btn{min-width:120px;justify-content:center}.sync-status{background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:20px}.sync-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px}.sync-indicator{font-weight:600;padding:6px 12px;border-radius:6px;font-size:.9rem}.sync-indicator.online{background:#f0fff4;color:#38a169;border:1px solid #9ae6b4}.sync-indicator.offline{background:#fed7d7;color:#e53e3e;border:1px solid #feb2b2}.last-update{font-size:.9rem;color:#4a5568}.sync-actions{display:flex;gap:10px;flex-wrap:wrap}.sync-actions .btn{min-width:140px;justify-content:center}.sync-actions .btn:disabled{opacity:.6;cursor:not-allowed}.menu-nav{display:flex;gap:10px;margin-bottom:30px;justify-content:center;flex-wrap:wrap}.menu-btn{padding:12px 24px;border:2px solid #e2e8f0;background:white;border-radius:12px;cursor:pointer;transition:all .3s ease;font-size:1rem;font-weight:600;color:#4a5568;min-width:140px}.menu-btn:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px);box-shadow:0 5px 15px #667eea33}.menu-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea;box-shadow:0 5px 15px #667eea4d}.menu-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.calendar-container{max-width:100%;margin:0 auto;width:100%}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:15px;background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a}.calendar-actions{display:flex;gap:10px;align-items:center}.current-time-btn{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%)!important;color:#fff!important;border-color:#ff4757!important;font-weight:600}.current-time-btn:hover{background:linear-gradient(135deg,#ff4757 0%,#ff6b6b 100%)!important;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b66}.calendar-title{margin:0;font-size:1.5rem;font-weight:600;color:#2d3748}.calendar-views{display:flex;gap:10px;margin-bottom:20px;justify-content:center}.view-btn{padding:10px 20px;border:2px solid #e2e8f0;background:white;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;color:#4a5568}.view-btn:hover{border-color:#667eea;color:#667eea}.view-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea}.day-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.day-header{padding:20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.day-header h4{margin:0 0 10px;font-size:1.3rem}.day-stats{display:flex;gap:20px;flex-wrap:wrap}.day-stats .stat{font-size:.9rem;opacity:.9}.day-timeline{max-height:600px;overflow-y:auto;overflow-x:auto;position:relative;max-width:100%}.day-timeline::-webkit-scrollbar{height:8px}.day-timeline::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.day-timeline::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.day-timeline::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.time-slot{display:flex;border-bottom:1px solid #e2e8f0;min-height:100px;transition:all .3s ease;position:relative;overflow:visible}.time-slot.current-time{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%);border-bottom:2px solid #ff4757;box-shadow:0 2px 8px #ff6b6b4d}.time-slot.current-time .time-label{background:#ff4757;color:#fff;font-weight:600}.time-label{width:80px;padding:10px;background:#f7fafc;border-right:1px solid #e2e8f0;font-size:.9rem;color:#4a5568;display:flex;align-items:center;justify-content:center;font-weight:500;flex-shrink:0}.time-content{flex:1;padding:5px;position:relative;min-height:90px;overflow:visible;background-image:linear-gradient(90deg,rgba(226,232,240,.3) 1px,transparent 1px),linear-gradient(rgba(226,232,240,.3) 1px,transparent 1px);background-size:16.67% 20px;box-sizing:border-box}.timeline-task{background:#ebf8ff;border-left:4px solid #3182ce;padding:8px 12px;margin:2px 0;border-radius:6px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000001a;border:1px solid rgba(49,130,206,.2);overflow:hidden;white-space:nowrap;display:flex;flex-direction:column;justify-content:center}.timeline-task:hover{background:#bee3f8;transform:translate(2px);box-shadow:0 4px 8px #00000026;border-color:#3182ce66;z-index:20}.timeline-task.completed{background:#f0fff4;border-left-color:#38a169;border-color:#38a16933;opacity:.8}.timeline-task.completed:hover{background:#c6f6d5;border-color:#38a16966;opacity:1}.task-time{font-size:.8rem;color:#4a5568;font-weight:500;margin-bottom:4px}.task-text{font-weight:500;color:#2d3748;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.task-meta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.task-meta span{font-size:.7rem;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.8);color:#4a5568;font-weight:500}.task-duration{font-size:.75rem;color:#718096;font-weight:500;margin-top:4px;padding:2px 6px;background:rgba(255,255,255,.6);border-radius:4px;display:inline-block}.long-task-indicator{margin-left:4px;color:#3182ce;font-weight:600}.week-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden;max-height:600px;overflow-y:auto;overflow-x:auto}.week-grid{display:flex;flex-direction:column;min-width:800px}.day-cell{flex:1;border-right:1px solid #e2e8f0;padding:2px;position:relative;min-height:50px;background-image:linear-gradient(90deg,rgba(226,232,240,.3) 1px,transparent 1px),linear-gradient(rgba(226,232,240,.3) 1px,transparent 1px);background-size:16.67% 20px;overflow:visible}.week-header{display:flex;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.time-column{width:80px;padding:15px 10px;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2)}.day-column{flex:1;padding:15px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.2)}.day-column.today{background:rgba(255,255,255,.1)}.day-name{font-weight:600;margin-bottom:5px}.day-date{font-size:.9rem;opacity:.9}.day-task-count{font-size:.8rem;opacity:.8;margin-top:5px}.week-body{max-height:600px;overflow-y:auto}.time-row{display:flex;border-bottom:1px solid #e2e8f0;min-height:60px;transition:all .3s ease;position:relative}.time-row.current-time{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%);border-bottom:2px solid #ff4757;box-shadow:0 2px 8px #ff6b6b4d}.time-row.current-time .time-label{background:#ff4757;color:#fff;font-weight:600}.time-row .time-label{width:80px;padding:10px;background:#f7fafc;border-right:1px solid #e2e8f0;font-size:.9rem;color:#4a5568;display:flex;align-items:center;justify-content:center;font-weight:500;flex-shrink:0}.day-cell{border-right:1px solid #e2e8f0;padding:2px;min-height:50px;position:relative;overflow:visible;width:60px;background-image:linear-gradient(90deg,rgba(226,232,240,.3) 1px,transparent 1px),linear-gradient(rgba(226,232,240,.3) 1px,transparent 1px);background-size:10px 20px}.week-task{background:#ebf8ff;border-left:3px solid #3182ce;padding:6px 8px;margin:1px 0;border-radius:4px;cursor:pointer;transition:all .3s ease;font-size:.8rem;box-shadow:0 1px 3px #0000001a;border:1px solid rgba(49,130,206,.2);overflow:hidden;white-space:nowrap;display:flex;flex-direction:column;justify-content:center}.week-task:hover{background:#bee3f8;transform:translate(1px);box-shadow:0 2px 6px #00000026;border-color:#3182ce66}.week-task.completed{background:#f0fff4;border-left-color:#38a169;border-color:#38a16933;opacity:.8}.week-task.completed:hover{background:#c6f6d5;border-color:#38a16966}.week-task .task-time{font-size:.7rem;color:#4a5568;font-weight:500;margin-bottom:2px}.week-task .task-text{font-weight:500;color:#2d3748;margin:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.week-task .task-duration{font-size:.65rem;color:#718096;font-weight:500;margin-top:2px;padding:1px 4px;background:rgba(255,255,255,.6);border-radius:3px;display:inline-block}.month-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.month-grid{display:flex;flex-direction:column}.month-header{display:grid;grid-template-columns:repeat(7,1fr);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.month-header .day-name{padding:15px 10px;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2)}.month-body{display:grid;grid-template-columns:repeat(7,1fr)}.month-day{min-height:100px;padding:10px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;cursor:pointer;transition:all .3s ease;position:relative}.month-day:hover{background:#f7fafc}.month-day.other-month{background:#f7fafc;color:#a0aec0}.month-day.today{background:#ebf8ff;border:2px solid #3182ce}.month-day.has-tasks{background:#f0fff4}.day-number{font-weight:600;margin-bottom:8px;color:#2d3748}.day-tasks{display:flex;flex-direction:column;gap:2px}.month-task{background:#ebf8ff;border-left:2px solid #3182ce;padding:4px 6px;border-radius:3px;font-size:.75rem;cursor:pointer;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-task:hover{background:#bee3f8}.month-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.more-tasks{font-size:.7rem;color:#4a5568;text-align:center;padding:2px;background:#e2e8f0;border-radius:3px}.task-modal{max-width:500px;width:90%}.task-details{margin:20px 0}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0}.detail-item:last-child{border-bottom:none}.detail-item label{font-weight:600;color:#4a5568;min-width:100px}.detail-item span{color:#2d3748;text-align:right}.detail-item span.completed{color:#38a169;font-weight:500}.work-analysis{max-width:100%;margin:0 auto;padding:20px;width:100%}.analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.analysis-title{display:flex;flex-direction:column;gap:8px}.analysis-title h3{margin:0;font-size:1.8rem;color:#2d3748}.date-range-display{font-size:.9rem;color:#718096;font-weight:500;padding:6px 12px;background:#f7fafc;border-radius:6px;border:1px solid #e2e8f0;display:inline-block}.analysis-controls{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.date-selector{display:flex;align-items:center;gap:8px}.date-selector label{font-size:.9rem;color:#4a5568;font-weight:500;white-space:nowrap}.date-input{padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:.9rem;background:white;color:#2d3748;transition:all .3s ease;min-width:140px}.date-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.time-dimension-selector{display:flex;gap:10px}.dimension-btn{padding:10px 20px;border:2px solid #e2e8f0;background:white;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;color:#4a5568}.dimension-btn:hover{border-color:#667eea;color:#667eea}.dimension-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea}.overview-section{margin-bottom:30px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;width:100%}.overview-card{background:white;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;align-items:center;gap:15px;transition:all .3s ease}.overview-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.overview-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.overview-content{flex:1}.overview-number{font-size:2rem;font-weight:700;color:#2d3748;margin-bottom:5px}.overview-label{color:#4a5568;font-size:.9rem}.charts-section{margin-bottom:30px}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;width:100%}.chart-card{background:white;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;transition:all .3s ease}.chart-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.chart-card.full-width{grid-column:1 / -1}.chart-header{margin-bottom:15px}.chart-header h4{margin:0 0 15px;color:#2d3748;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:8px}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:15px}.legend-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#f7fafc;border-radius:6px;border:1px solid #e2e8f0;transition:all .2s ease}.legend-item:hover{background:#edf2f7;transform:translate(2px)}.legend-color{width:12px;height:12px;border-radius:50%;box-shadow:0 1px 3px #0003}.legend-label{font-size:.85rem;color:#4a5568;font-weight:500;min-width:60px}.legend-value{font-size:.85rem;color:#2d3748;font-weight:600;background:#e2e8f0;padding:2px 6px;border-radius:4px;min-width:30px;text-align:center}.pie-chart{display:flex;justify-content:center;align-items:center;margin:20px 0;position:relative}.pie-segment{transition:all .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.pie-segment:hover{filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));transform:scale(1.02)}.pie-center-text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none}.line-chart{height:200px;overflow:hidden}.trend-point{transition:all .3s ease;cursor:pointer}.trend-point:hover{r:7;fill:#4c51bf;filter:drop-shadow(0 2px 4px rgba(102,126,234,.3))}.trend-curve{transition:all .3s ease}.trend-curve:hover{stroke-width:4;filter:drop-shadow(0 2px 4px rgba(102,126,234,.2))}.bar-chart{height:200px;overflow:hidden}.bar-item{transition:all .3s ease}.bar-item:hover{opacity:.8;transform:scaleY(1.05)}.time-blocks{display:flex;flex-direction:column;gap:20px;margin-top:15px}.time-period{display:flex;flex-direction:column;gap:10px}.period-label{font-size:1rem;font-weight:600;color:#2d3748;padding:8px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;text-align:center;box-shadow:0 2px 4px #667eea33}.period-blocks{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.time-block{background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;padding:12px 8px;text-align:center;transition:all .3s ease;position:relative;min-height:80px;display:flex;flex-direction:column;justify-content:space-between}.time-block:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.time-block.has-task{border-color:#667eea;box-shadow:0 2px 8px #667eea33}.time-block.has-task:hover{box-shadow:0 4px 16px #667eea4d}.time-label{font-size:.9rem;font-weight:600;color:#4a5568;margin-bottom:4px}.task-count{font-size:.8rem;color:#fff;background:rgba(0,0,0,.7);padding:2px 6px;border-radius:4px;font-weight:500}.quadrant-container{max-width:100%;margin:0 auto;padding:20px;width:100%}.quadrant-header{text-align:center;margin-bottom:30px}.quadrant-header h3{margin:0 0 10px;font-size:1.8rem;color:#2d3748}.quadrant-header p{margin:0;color:#4a5568;font-size:1rem}.quadrant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px;width:100%}.container.fullscreen .quadrant-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px}.quadrant{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;border:2px solid;overflow:hidden;transition:all .3s ease}.quadrant:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.quadrant .quadrant-header{padding:15px 20px;color:#fff;text-align:left;margin:0}.quadrant .quadrant-header h4{margin:0 0 5px;font-size:1.2rem;font-weight:600}.quadrant-count{font-size:.9rem;opacity:.9}.quadrant-description{padding:10px 20px;background:#f7fafc;color:#4a5568;font-size:.9rem;font-style:italic;border-bottom:1px solid #e2e8f0}.quadrant-tasks{max-height:400px;overflow-y:auto;padding:10px}.quadrant-task{display:flex;align-items:center;padding:12px;margin-bottom:8px;background:#f7fafc;border-radius:8px;cursor:pointer;transition:all .3s ease;border-left:3px solid transparent}.quadrant-task:hover{background:#edf2f7;transform:translate(2px)}.quadrant-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.quadrant-task.completed .task-text{text-decoration:line-through;color:#38a169}.task-checkbox{width:20px;height:20px;border:2px solid #cbd5e0;border-radius:4px;margin-right:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;flex-shrink:0}.task-checkbox:hover{border-color:#667eea}.task-checkbox .checkmark{color:#667eea;font-weight:700;font-size:14px}.task-content{flex:1;min-width:0}.task-text{font-weight:500;color:#2d3748;margin-bottom:4px;word-break:break-word}.task-meta{display:flex;gap:8px;flex-wrap:wrap}.task-meta span{font-size:.8rem;padding:2px 6px;border-radius:4px;background:#e2e8f0;color:#4a5568}.task-actions{display:flex;gap:5px;opacity:0;transition:opacity .3s ease}.quadrant-task:hover .task-actions{opacity:1}.empty-quadrant{text-align:center;padding:40px 20px;color:#a0aec0;font-style:italic}@media (max-width: 768px){.quadrant-grid{grid-template-columns:1fr;gap:15px}.quadrant-container{padding:15px}.quadrant-header h3{font-size:1.5rem}.quadrant-tasks{max-height:300px}.quadrant-task{padding:10px}.task-meta{flex-direction:column;gap:4px}.menu-content,.quadrant-container,.calendar-container,.data-management,.work-analysis{width:100%;max-width:100%;margin:0;padding:15px}.container{padding:15px}.container.fullscreen{padding:10px}}.date-controls{display:flex;align-items:center;gap:5px}.date-nav-btn{padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;background:white;color:#4a5568;font-size:.9rem;cursor:pointer;transition:all .3s ease;min-width:40px;display:flex;align-items:center;justify-content:center}.date-nav-btn:hover{background:#f7fafc;border-color:#cbd5e0;color:#2d3748}.date-nav-btn.today-btn{background:#667eea;color:#fff;border-color:#667eea;min-width:60px}.date-nav-btn.today-btn:hover{background:#5a67d8;border-color:#5a67d8}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:20px}.auth-card{background:white;border-radius:20px;padding:40px;box-shadow:0 20px 40px #0000001a;text-align:center;max-width:400px;width:100%}.auth-header{margin-bottom:30px}.auth-header h2{margin:0 0 10px;color:#2d3748;font-size:1.8rem;font-weight:700}.auth-header p{margin:0;color:#718096;font-size:1rem}.pin-input-container{margin-top:20px}.pin-input{display:flex;justify-content:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}.pin-digit{width:50px;height:50px;border:2px solid #e2e8f0;border-radius:10px;text-align:center;font-size:1.3rem;font-weight:600;color:#2d3748;background:#f7fafc;transition:all .3s ease;outline:none}.pin-digit:focus{border-color:#667eea;background:white;box-shadow:0 0 0 3px #667eea1a;transform:scale(1.05)}.pin-digit:not(:placeholder-shown){border-color:#667eea;background:white}.pin-error{color:#e53e3e;font-size:.9rem;margin-bottom:15px;font-weight:500}.pin-hint{color:#718096;font-size:.85rem;opacity:.8}.hidden-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.app-container{min-height:100vh;background:#f7fafc;width:100%}.menu-content>*{width:100%;max-width:100%}.menu-content .quadrant-container,.menu-content .calendar-container,.menu-content .data-management,.menu-content .work-analysis{width:100%;max-width:100%;box-sizing:border-box}.calendar-container{margin-top:20px}.container.fullscreen .calendar-container{margin-top:20px;max-width:100%}.container.fullscreen .calendar-nav{flex-wrap:wrap;gap:15px}.container.fullscreen .calendar-views{flex-wrap:wrap;gap:10px}.data-management{margin-top:20px}.container.fullscreen .data-management{margin-top:20px;max-width:100%}.container.fullscreen .data-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.work-analysis{margin-top:20px}.container.fullscreen .work-analysis{margin-top:20px;max-width:100%}.container.fullscreen .analysis-header{flex-wrap:wrap;gap:15px}.container.fullscreen .analysis-controls{flex-wrap:wrap;gap:10px} diff --git a/dist/assets/index-6a0a008e.js b/dist/assets/index-6a0a008e.js new file mode 100644 index 0000000..0a50aa4 --- /dev/null +++ b/dist/assets/index-6a0a008e.js @@ -0,0 +1,17 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function s(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(i){if(i.ep)return;i.ep=!0;const l=s(i);fetch(i.href,l)}})();/** +* @vue/shared v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Ss(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const ut={},Ke=[],Zt=()=>{},Ur=()=>!1,Jn=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Ms=t=>t.startsWith("onUpdate:"),xt=Object.assign,Is=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},Kr=Object.prototype.hasOwnProperty,rt=(t,e)=>Kr.call(t,e),N=Array.isArray,We=t=>_n(t)==="[object Map]",Ge=t=>_n(t)==="[object Set]",ro=t=>_n(t)==="[object Date]",Y=t=>typeof t=="function",vt=t=>typeof t=="string",ie=t=>typeof t=="symbol",mt=t=>t!==null&&typeof t=="object",Vo=t=>(mt(t)||Y(t))&&Y(t.then)&&Y(t.catch),Uo=Object.prototype.toString,_n=t=>Uo.call(t),Wr=t=>_n(t).slice(8,-1),Ko=t=>_n(t)==="[object Object]",As=t=>vt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,rn=Ss(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=t=>{const e=Object.create(null);return s=>e[s]||(e[s]=t(s))},Br=/-(\w)/g,Ce=Qn(t=>t.replace(Br,(e,s)=>s?s.toUpperCase():"")),zr=/\B([A-Z])/g,Ie=Qn(t=>t.replace(zr,"-$1").toLowerCase()),Wo=Qn(t=>t.charAt(0).toUpperCase()+t.slice(1)),os=Qn(t=>t?`on${Wo(t)}`:""),xe=(t,e)=>!Object.is(t,e),jn=(t,...e)=>{for(let s=0;s{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:s})},qn=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let lo;const Gn=()=>lo||(lo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Dt(t){if(N(t)){const e={};for(let s=0;s{if(s){const n=s.split(Jr);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function G(t){let e="";if(vt(t))e=t;else if(N(t))for(let s=0;sbn(s,e))}const zo=t=>!!(t&&t.__v_isRef===!0),k=t=>vt(t)?t:t==null?"":N(t)||mt(t)&&(t.toString===Uo||!Y(t.toString))?zo(t)?k(t.value):JSON.stringify(t,Yo,2):String(t),Yo=(t,e)=>zo(e)?Yo(t,e.value):We(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((s,[n,i],l)=>(s[is(n,l)+" =>"]=i,s),{})}:Ge(e)?{[`Set(${e.size})`]:[...e.values()].map(s=>is(s))}:ie(e)?is(e):mt(e)&&!N(e)&&!Ko(e)?String(e):e,is=(t,e="")=>{var s;return ie(t)?`Symbol(${(s=t.description)!=null?s:e})`:t};/** +* @vue/reactivity v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ot;class tl{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ot,!e&&Ot&&(this.index=(Ot.scopes||(Ot.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e0&&--this._on===0&&(Ot=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s0)return;if(an){let e=an;for(an=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;ln;){let e=ln;for(ln=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=s}}if(t)throw t}function Zo(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function $o(t){let e,s=t.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),js(n),nl(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}t.deps=e,t.depsTail=s}function vs(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(ti(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function ti(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===mn)||(t.globalVersion=mn,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!vs(t))))return;t.flags|=2;const e=t.dep,s=ht,n=$t;ht=t,$t=!0;try{Zo(t);const i=t.fn(t._value);(e.version===0||xe(i,t._value))&&(t.flags|=128,t._value=i,e.version++)}catch(i){throw e.version++,i}finally{ht=s,$t=n,$o(t),t.flags&=-3}}function js(t,e=!1){const{dep:s,prevSub:n,nextSub:i}=t;if(n&&(n.nextSub=i,t.prevSub=void 0),i&&(i.prevSub=n,t.nextSub=void 0),s.subs===t&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let l=s.computed.deps;l;l=l.nextDep)js(l,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function nl(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let $t=!0;const ei=[];function pe(){ei.push($t),$t=!1}function ve(){const t=ei.pop();$t=t===void 0?!0:t}function ao(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=ht;ht=void 0;try{e()}finally{ht=s}}}let mn=0;class sl{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Hs{constructor(e){this.computed=e,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(e){if(!ht||!$t||ht===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ht)s=this.activeLink=new sl(ht,this),ht.deps?(s.prevDep=ht.depsTail,ht.depsTail.nextDep=s,ht.depsTail=s):ht.deps=ht.depsTail=s,ni(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=ht.depsTail,s.nextDep=void 0,ht.depsTail.nextDep=s,ht.depsTail=s,ht.deps===s&&(ht.deps=n)}return s}trigger(e){this.version++,mn++,this.notify(e)}notify(e){Ps();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Es()}}}function ni(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)ni(n)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const ys=new WeakMap,Fe=Symbol(""),Ts=Symbol(""),gn=Symbol("");function Pt(t,e,s){if($t&&ht){let n=ys.get(t);n||ys.set(t,n=new Map);let i=n.get(s);i||(n.set(s,i=new Hs),i.map=n,i.key=s),i.track()}}function fe(t,e,s,n,i,l){const o=ys.get(t);if(!o){mn++;return}const c=d=>{d&&d.trigger()};if(Ps(),e==="clear")o.forEach(c);else{const d=N(t),y=d&&As(s);if(d&&s==="length"){const p=Number(n);o.forEach((_,O)=>{(O==="length"||O===gn||!ie(O)&&O>=p)&&c(_)})}else switch((s!==void 0||o.has(void 0))&&c(o.get(s)),y&&c(o.get(gn)),e){case"add":d?y&&c(o.get("length")):(c(o.get(Fe)),We(t)&&c(o.get(Ts)));break;case"delete":d||(c(o.get(Fe)),We(t)&&c(o.get(Ts)));break;case"set":We(t)&&c(o.get(Fe));break}}Es()}function Ne(t){const e=it(t);return e===t?e:(Pt(e,"iterate",gn),zt(t)?e:e.map(kt))}function Xn(t){return Pt(t=it(t),"iterate",gn),t}const ol={__proto__:null,[Symbol.iterator](){return ls(this,Symbol.iterator,kt)},concat(...t){return Ne(this).concat(...t.map(e=>N(e)?Ne(e):e))},entries(){return ls(this,"entries",t=>(t[1]=kt(t[1]),t))},every(t,e){return ce(this,"every",t,e,void 0,arguments)},filter(t,e){return ce(this,"filter",t,e,s=>s.map(kt),arguments)},find(t,e){return ce(this,"find",t,e,kt,arguments)},findIndex(t,e){return ce(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return ce(this,"findLast",t,e,kt,arguments)},findLastIndex(t,e){return ce(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return ce(this,"forEach",t,e,void 0,arguments)},includes(...t){return as(this,"includes",t)},indexOf(...t){return as(this,"indexOf",t)},join(t){return Ne(this).join(t)},lastIndexOf(...t){return as(this,"lastIndexOf",t)},map(t,e){return ce(this,"map",t,e,void 0,arguments)},pop(){return nn(this,"pop")},push(...t){return nn(this,"push",t)},reduce(t,...e){return co(this,"reduce",t,e)},reduceRight(t,...e){return co(this,"reduceRight",t,e)},shift(){return nn(this,"shift")},some(t,e){return ce(this,"some",t,e,void 0,arguments)},splice(...t){return nn(this,"splice",t)},toReversed(){return Ne(this).toReversed()},toSorted(t){return Ne(this).toSorted(t)},toSpliced(...t){return Ne(this).toSpliced(...t)},unshift(...t){return nn(this,"unshift",t)},values(){return ls(this,"values",kt)}};function ls(t,e,s){const n=Xn(t),i=n[e]();return n!==t&&!zt(t)&&(i._next=i.next,i.next=()=>{const l=i._next();return l.value&&(l.value=s(l.value)),l}),i}const il=Array.prototype;function ce(t,e,s,n,i,l){const o=Xn(t),c=o!==t&&!zt(t),d=o[e];if(d!==il[e]){const _=d.apply(t,l);return c?kt(_):_}let y=s;o!==t&&(c?y=function(_,O){return s.call(this,kt(_),O,t)}:s.length>2&&(y=function(_,O){return s.call(this,_,O,t)}));const p=d.call(o,y,n);return c&&i?i(p):p}function co(t,e,s,n){const i=Xn(t);let l=s;return i!==t&&(zt(t)?s.length>3&&(l=function(o,c,d){return s.call(this,o,c,d,t)}):l=function(o,c,d){return s.call(this,o,kt(c),d,t)}),i[e](l,...n)}function as(t,e,s){const n=it(t);Pt(n,"iterate",gn);const i=n[e](...s);return(i===-1||i===!1)&&Ns(s[0])?(s[0]=it(s[0]),n[e](...s)):i}function nn(t,e,s=[]){pe(),Ps();const n=it(t)[e].apply(t,s);return Es(),ve(),n}const rl=Ss("__proto__,__v_isRef,__isVue"),si=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(ie));function ll(t){ie(t)||(t=String(t));const e=it(this);return Pt(e,"has",t),e.hasOwnProperty(t)}class oi{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,n){if(s==="__v_skip")return e.__v_skip;const i=this._isReadonly,l=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return l;if(s==="__v_raw")return n===(i?l?vl:ai:l?li:ri).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const o=N(e);if(!i){let d;if(o&&(d=ol[s]))return d;if(s==="hasOwnProperty")return ll}const c=Reflect.get(e,s,Et(e)?e:n);return(ie(s)?si.has(s):rl(s))||(i||Pt(e,"get",s),l)?c:Et(c)?o&&As(s)?c:c.value:mt(c)?i?Rs(c):Ls(c):c}}class ii extends oi{constructor(e=!1){super(!1,e)}set(e,s,n,i){let l=e[s];if(!this._isShallow){const d=Se(l);if(!zt(n)&&!Se(n)&&(l=it(l),n=it(n)),!N(e)&&Et(l)&&!Et(n))return d?!1:(l.value=n,!0)}const o=N(e)&&As(s)?Number(s)t,In=t=>Reflect.getPrototypeOf(t);function fl(t,e,s){return function(...n){const i=this.__v_raw,l=it(i),o=We(l),c=t==="entries"||t===Symbol.iterator&&o,d=t==="keys"&&o,y=i[t](...n),p=s?_s:e?Nn:kt;return!e&&Pt(l,"iterate",d?Ts:Fe),{next(){const{value:_,done:O}=y.next();return O?{value:_,done:O}:{value:c?[p(_[0]),p(_[1])]:p(_),done:O}},[Symbol.iterator](){return this}}}}function An(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function hl(t,e){const s={get(i){const l=this.__v_raw,o=it(l),c=it(i);t||(xe(i,c)&&Pt(o,"get",i),Pt(o,"get",c));const{has:d}=In(o),y=e?_s:t?Nn:kt;if(d.call(o,i))return y(l.get(i));if(d.call(o,c))return y(l.get(c));l!==o&&l.get(i)},get size(){const i=this.__v_raw;return!t&&Pt(it(i),"iterate",Fe),Reflect.get(i,"size",i)},has(i){const l=this.__v_raw,o=it(l),c=it(i);return t||(xe(i,c)&&Pt(o,"has",i),Pt(o,"has",c)),i===c?l.has(i):l.has(i)||l.has(c)},forEach(i,l){const o=this,c=o.__v_raw,d=it(c),y=e?_s:t?Nn:kt;return!t&&Pt(d,"iterate",Fe),c.forEach((p,_)=>i.call(l,y(p),y(_),o))}};return xt(s,t?{add:An("add"),set:An("set"),delete:An("delete"),clear:An("clear")}:{add(i){!e&&!zt(i)&&!Se(i)&&(i=it(i));const l=it(this);return In(l).has.call(l,i)||(l.add(i),fe(l,"add",i,i)),this},set(i,l){!e&&!zt(l)&&!Se(l)&&(l=it(l));const o=it(this),{has:c,get:d}=In(o);let y=c.call(o,i);y||(i=it(i),y=c.call(o,i));const p=d.call(o,i);return o.set(i,l),y?xe(l,p)&&fe(o,"set",i,l):fe(o,"add",i,l),this},delete(i){const l=it(this),{has:o,get:c}=In(l);let d=o.call(l,i);d||(i=it(i),d=o.call(l,i)),c&&c.call(l,i);const y=l.delete(i);return d&&fe(l,"delete",i,void 0),y},clear(){const i=it(this),l=i.size!==0,o=i.clear();return l&&fe(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=fl(i,t,e)}),s}function Fs(t,e){const s=hl(t,e);return(n,i,l)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?n:Reflect.get(rt(s,i)&&i in n?s:n,i,l)}const ml={get:Fs(!1,!1)},gl={get:Fs(!1,!0)},pl={get:Fs(!0,!1)};const ri=new WeakMap,li=new WeakMap,ai=new WeakMap,vl=new WeakMap;function yl(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Tl(t){return t.__v_skip||!Object.isExtensible(t)?0:yl(Wr(t))}function Ls(t){return Se(t)?t:qs(t,!1,cl,ml,ri)}function _l(t){return qs(t,!1,ul,gl,li)}function Rs(t){return qs(t,!0,dl,pl,ai)}function qs(t,e,s,n,i){if(!mt(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const l=Tl(t);if(l===0)return t;const o=i.get(t);if(o)return o;const c=new Proxy(t,l===2?n:s);return i.set(t,c),c}function Be(t){return Se(t)?Be(t.__v_raw):!!(t&&t.__v_isReactive)}function Se(t){return!!(t&&t.__v_isReadonly)}function zt(t){return!!(t&&t.__v_isShallow)}function Ns(t){return t?!!t.__v_raw:!1}function it(t){const e=t&&t.__v_raw;return e?it(e):t}function bl(t){return!rt(t,"__v_skip")&&Object.isExtensible(t)&&ps(t,"__v_skip",!0),t}const kt=t=>mt(t)?Ls(t):t,Nn=t=>mt(t)?Rs(t):t;function Et(t){return t?t.__v_isRef===!0:!1}function Z(t){return ci(t,!1)}function wl(t){return ci(t,!0)}function ci(t,e){return Et(t)?t:new Dl(t,e)}class Dl{constructor(e,s){this.dep=new Hs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:it(e),this._value=s?e:kt(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,n=this.__v_isShallow||zt(e)||Se(e);e=n?e:it(e),xe(e,s)&&(this._rawValue=e,this._value=n?e:kt(e),this.dep.trigger())}}function di(t){return Et(t)?t.value:t}const kl={get:(t,e,s)=>e==="__v_raw"?t:di(Reflect.get(t,e,s)),set:(t,e,s,n)=>{const i=t[e];return Et(i)&&!Et(s)?(i.value=s,!0):Reflect.set(t,e,s,n)}};function ui(t){return Be(t)?t:new Proxy(t,kl)}class xl{constructor(e,s,n){this.fn=e,this.setter=s,this._value=void 0,this.dep=new Hs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=mn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ht!==this)return Xo(this,!0),!0}get value(){const e=this.dep.track();return ti(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Cl(t,e,s=!1){let n,i;return Y(t)?n=t:(n=t.get,i=t.set),new xl(n,i,s)}const On={},Vn=new WeakMap;let He;function Sl(t,e=!1,s=He){if(s){let n=Vn.get(s);n||Vn.set(s,n=[]),n.push(t)}}function Ml(t,e,s=ut){const{immediate:n,deep:i,once:l,scheduler:o,augmentJob:c,call:d}=s,y=q=>i?q:zt(q)||i===!1||i===0?he(q,1):he(q);let p,_,O,j,V=!1,K=!1;if(Et(t)?(_=()=>t.value,V=zt(t)):Be(t)?(_=()=>y(t),V=!0):N(t)?(K=!0,V=t.some(q=>Be(q)||zt(q)),_=()=>t.map(q=>{if(Et(q))return q.value;if(Be(q))return y(q);if(Y(q))return d?d(q,2):q()})):Y(t)?e?_=d?()=>d(t,2):t:_=()=>{if(O){pe();try{O()}finally{ve()}}const q=He;He=p;try{return d?d(t,3,[j]):t(j)}finally{He=q}}:_=Zt,e&&i){const q=_,ft=i===!0?1/0:i;_=()=>he(q(),ft)}const ot=Jo(),$=()=>{p.stop(),ot&&ot.active&&Is(ot.effects,p)};if(l&&e){const q=e;e=(...ft)=>{q(...ft),$()}}let et=K?new Array(t.length).fill(On):On;const at=q=>{if(!(!(p.flags&1)||!p.dirty&&!q))if(e){const ft=p.run();if(i||V||(K?ft.some((Rt,Ct)=>xe(Rt,et[Ct])):xe(ft,et))){O&&O();const Rt=He;He=p;try{const Ct=[ft,et===On?void 0:K&&et[0]===On?[]:et,j];et=ft,d?d(e,3,Ct):e(...Ct)}finally{He=Rt}}}else p.run()};return c&&c(at),p=new Qo(_),p.scheduler=o?()=>o(at,!1):at,j=q=>Sl(q,!1,p),O=p.onStop=()=>{const q=Vn.get(p);if(q){if(d)d(q,4);else for(const ft of q)ft();Vn.delete(p)}},e?n?at(!0):et=p.run():o?o(at.bind(null,!0),!0):p.run(),$.pause=p.pause.bind(p),$.resume=p.resume.bind(p),$.stop=$,$}function he(t,e=1/0,s){if(e<=0||!mt(t)||t.__v_skip||(s=s||new Set,s.has(t)))return t;if(s.add(t),e--,Et(t))he(t.value,e,s);else if(N(t))for(let n=0;n{he(n,e,s)});else if(Ko(t)){for(const n in t)he(t[n],e,s);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&he(t[n],e,s)}return t}/** +* @vue/runtime-core v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function wn(t,e,s,n){try{return n?t(...n):t()}catch(i){Zn(i,e,s)}}function re(t,e,s,n){if(Y(t)){const i=wn(t,e,s,n);return i&&Vo(i)&&i.catch(l=>{Zn(l,e,s)}),i}if(N(t)){const i=[];for(let l=0;l>>1,i=Ft[n],l=pn(i);l=pn(s)?Ft.push(t):Ft.splice(Al(e),0,t),t.flags|=1,hi()}}function hi(){Un||(Un=fi.then(gi))}function Ol(t){N(t)?ze.push(...t):we&&t.id===-1?we.splice(Ve+1,0,t):t.flags&1||(ze.push(t),t.flags|=1),hi()}function uo(t,e,s=ne+1){for(;spn(s)-pn(n));if(ze.length=0,we){we.push(...e);return}for(we=e,Ve=0;Vet.id==null?t.flags&2?-1:1/0:t.id;function gi(t){const e=Zt;try{for(ne=0;ne{n._d&&To(-1);const l=Kn(e);let o;try{o=t(...i)}finally{Kn(l),n._d&&To(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function pt(t,e){if(Bt===null)return t;const s=ns(Bt),n=t.dirs||(t.dirs=[]);for(let i=0;it.__isTeleport;function Us(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Us(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function vi(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function cn(t,e,s,n,i=!1){if(N(t)){t.forEach((V,K)=>cn(V,e&&(N(e)?e[K]:e),s,n,i));return}if(dn(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&cn(t,e,s,n.component.subTree);return}const l=n.shapeFlag&4?ns(n.component):n.el,o=i?null:l,{i:c,r:d}=t,y=e&&e.r,p=c.refs===ut?c.refs={}:c.refs,_=c.setupState,O=it(_),j=_===ut?()=>!1:V=>rt(O,V);if(y!=null&&y!==d&&(vt(y)?(p[y]=null,j(y)&&(_[y]=null)):Et(y)&&(y.value=null)),Y(d))wn(d,c,12,[o,p]);else{const V=vt(d),K=Et(d);if(V||K){const ot=()=>{if(t.f){const $=V?j(d)?_[d]:p[d]:d.value;i?N($)&&Is($,l):N($)?$.includes(l)||$.push(l):V?(p[d]=[l],j(d)&&(_[d]=p[d])):(d.value=[l],t.k&&(p[t.k]=d.value))}else V?(p[d]=o,j(d)&&(_[d]=o)):K&&(d.value=o,t.k&&(p[t.k]=o))};o?(ot.id=-1,Kt(ot,s)):ot()}}}Gn().requestIdleCallback;Gn().cancelIdleCallback;const dn=t=>!!t.type.__asyncLoader,yi=t=>t.type.__isKeepAlive;function Hl(t,e){Ti(t,"a",e)}function Fl(t,e){Ti(t,"da",e)}function Ti(t,e,s=Lt){const n=t.__wdc||(t.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if($n(e,n,s),s){let i=s.parent;for(;i&&i.parent;)yi(i.parent.vnode)&&Ll(n,e,s,i),i=i.parent}}function Ll(t,e,s,n){const i=$n(e,t,n,!0);Ks(()=>{Is(n[e],i)},s)}function $n(t,e,s=Lt,n=!1){if(s){const i=s[t]||(s[t]=[]),l=e.__weh||(e.__weh=(...o)=>{pe();const c=Dn(s),d=re(e,s,t,o);return c(),ve(),d});return n?i.unshift(l):i.push(l),l}}const ye=t=>(e,s=Lt)=>{(!yn||t==="sp")&&$n(t,(...n)=>e(...n),s)},Rl=ye("bm"),Wn=ye("m"),ql=ye("bu"),Nl=ye("u"),Vl=ye("bum"),Ks=ye("um"),Ul=ye("sp"),Kl=ye("rtg"),Wl=ye("rtc");function Bl(t,e=Lt){$n("ec",t,e)}const zl=Symbol.for("v-ndc");function tt(t,e,s,n){let i;const l=s&&s[n],o=N(t);if(o||vt(t)){const c=o&&Be(t);let d=!1,y=!1;c&&(d=!zt(t),y=Se(t),t=Xn(t)),i=new Array(t.length);for(let p=0,_=t.length;p<_;p++)i[p]=e(d?y?Nn(kt(t[p])):kt(t[p]):t[p],p,void 0,l&&l[p])}else if(typeof t=="number"){i=new Array(t);for(let c=0;ce(c,d,void 0,l&&l[d]));else{const c=Object.keys(t);i=new Array(c.length);for(let d=0,y=c.length;dt?Ni(t)?ns(t):bs(t.parent):null,un=xt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>bs(t.parent),$root:t=>bs(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Ws(t),$forceUpdate:t=>t.f||(t.f=()=>{Vs(t.update)}),$nextTick:t=>t.n||(t.n=me.bind(t.proxy)),$watch:t=>ma.bind(t)}),cs=(t,e)=>t!==ut&&!t.__isScriptSetup&&rt(t,e),Yl={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:l,accessCache:o,type:c,appContext:d}=t;let y;if(e[0]!=="$"){const j=o[e];if(j!==void 0)switch(j){case 1:return n[e];case 2:return i[e];case 4:return s[e];case 3:return l[e]}else{if(cs(n,e))return o[e]=1,n[e];if(i!==ut&&rt(i,e))return o[e]=2,i[e];if((y=t.propsOptions[0])&&rt(y,e))return o[e]=3,l[e];if(s!==ut&&rt(s,e))return o[e]=4,s[e];ws&&(o[e]=0)}}const p=un[e];let _,O;if(p)return e==="$attrs"&&Pt(t.attrs,"get",""),p(t);if((_=c.__cssModules)&&(_=_[e]))return _;if(s!==ut&&rt(s,e))return o[e]=4,s[e];if(O=d.config.globalProperties,rt(O,e))return O[e]},set({_:t},e,s){const{data:n,setupState:i,ctx:l}=t;return cs(i,e)?(i[e]=s,!0):n!==ut&&rt(n,e)?(n[e]=s,!0):rt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(l[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:n,appContext:i,propsOptions:l}},o){let c;return!!s[o]||t!==ut&&rt(t,o)||cs(e,o)||(c=l[0])&&rt(c,o)||rt(n,o)||rt(un,o)||rt(i.config.globalProperties,o)},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:rt(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function fo(t){return N(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}let ws=!0;function Jl(t){const e=Ws(t),s=t.proxy,n=t.ctx;ws=!1,e.beforeCreate&&ho(e.beforeCreate,t,"bc");const{data:i,computed:l,methods:o,watch:c,provide:d,inject:y,created:p,beforeMount:_,mounted:O,beforeUpdate:j,updated:V,activated:K,deactivated:ot,beforeDestroy:$,beforeUnmount:et,destroyed:at,unmounted:q,render:ft,renderTracked:Rt,renderTriggered:Ct,errorCaptured:bt,serverPrefetch:le,expose:J,inheritAttrs:ct,components:wt,directives:Ae,filters:Te}=e;if(y&&Ql(y,n,null),o)for(const st in o){const Q=o[st];Y(Q)&&(n[st]=Q.bind(s))}if(i){const st=i.call(s,s);mt(st)&&(t.data=Ls(st))}if(ws=!0,l)for(const st in l){const Q=l[st],Yt=Y(Q)?Q.bind(s,s):Y(Q.get)?Q.get.bind(s,s):Zt,ae=!Y(Q)&&Y(Q.set)?Q.set.bind(s):Zt,Jt=_t({get:Yt,set:ae});Object.defineProperty(n,st,{enumerable:!0,configurable:!0,get:()=>Jt.value,set:qt=>Jt.value=qt})}if(c)for(const st in c)_i(c[st],n,s,st);if(d){const st=Y(d)?d.call(s):d;Reflect.ownKeys(st).forEach(Q=>{ea(Q,st[Q])})}p&&ho(p,t,"c");function yt(st,Q){N(Q)?Q.forEach(Yt=>st(Yt.bind(s))):Q&&st(Q.bind(s))}if(yt(Rl,_),yt(Wn,O),yt(ql,j),yt(Nl,V),yt(Hl,K),yt(Fl,ot),yt(Bl,bt),yt(Wl,Rt),yt(Kl,Ct),yt(Vl,et),yt(Ks,q),yt(Ul,le),N(J))if(J.length){const st=t.exposed||(t.exposed={});J.forEach(Q=>{Object.defineProperty(st,Q,{get:()=>s[Q],set:Yt=>s[Q]=Yt,enumerable:!0})})}else t.exposed||(t.exposed={});ft&&t.render===Zt&&(t.render=ft),ct!=null&&(t.inheritAttrs=ct),wt&&(t.components=wt),Ae&&(t.directives=Ae),le&&vi(t)}function Ql(t,e,s=Zt){N(t)&&(t=Ds(t));for(const n in t){const i=t[n];let l;mt(i)?"default"in i?l=Hn(i.from||n,i.default,!0):l=Hn(i.from||n):l=Hn(i),Et(l)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:o=>l.value=o}):e[n]=l}}function ho(t,e,s){re(N(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,s)}function _i(t,e,s,n){let i=n.includes(".")?Ei(s,n):()=>s[n];if(vt(t)){const l=e[t];Y(l)&&fn(i,l)}else if(Y(t))fn(i,t.bind(s));else if(mt(t))if(N(t))t.forEach(l=>_i(l,e,s,n));else{const l=Y(t.handler)?t.handler.bind(s):e[t.handler];Y(l)&&fn(i,l,t)}}function Ws(t){const e=t.type,{mixins:s,extends:n}=e,{mixins:i,optionsCache:l,config:{optionMergeStrategies:o}}=t.appContext,c=l.get(e);let d;return c?d=c:!i.length&&!s&&!n?d=e:(d={},i.length&&i.forEach(y=>Bn(d,y,o,!0)),Bn(d,e,o)),mt(e)&&l.set(e,d),d}function Bn(t,e,s,n=!1){const{mixins:i,extends:l}=e;l&&Bn(t,l,s,!0),i&&i.forEach(o=>Bn(t,o,s,!0));for(const o in e)if(!(n&&o==="expose")){const c=Gl[o]||s&&s[o];t[o]=c?c(t[o],e[o]):e[o]}return t}const Gl={data:mo,props:go,emits:go,methods:on,computed:on,beforeCreate:Ht,created:Ht,beforeMount:Ht,mounted:Ht,beforeUpdate:Ht,updated:Ht,beforeDestroy:Ht,beforeUnmount:Ht,destroyed:Ht,unmounted:Ht,activated:Ht,deactivated:Ht,errorCaptured:Ht,serverPrefetch:Ht,components:on,directives:on,watch:Zl,provide:mo,inject:Xl};function mo(t,e){return e?t?function(){return xt(Y(t)?t.call(this,this):t,Y(e)?e.call(this,this):e)}:e:t}function Xl(t,e){return on(Ds(t),Ds(e))}function Ds(t){if(N(t)){const e={};for(let s=0;s1)return s&&Y(e)?e.call(n&&n.proxy):e}}const wi={},Di=()=>Object.create(wi),ki=t=>Object.getPrototypeOf(t)===wi;function na(t,e,s,n=!1){const i={},l=Di();t.propsDefaults=Object.create(null),xi(t,e,i,l);for(const o in t.propsOptions[0])o in i||(i[o]=void 0);s?t.props=n?i:_l(i):t.type.props?t.props=i:t.props=l,t.attrs=l}function sa(t,e,s,n){const{props:i,attrs:l,vnode:{patchFlag:o}}=t,c=it(i),[d]=t.propsOptions;let y=!1;if((n||o>0)&&!(o&16)){if(o&8){const p=t.vnode.dynamicProps;for(let _=0;_{d=!0;const[O,j]=Ci(_,e,!0);xt(o,O),j&&c.push(...j)};!s&&e.mixins.length&&e.mixins.forEach(p),t.extends&&p(t.extends),t.mixins&&t.mixins.forEach(p)}if(!l&&!d)return mt(t)&&n.set(t,Ke),Ke;if(N(l))for(let p=0;pt==="_"||t==="__"||t==="_ctx"||t==="$stable",zs=t=>N(t)?t.map(se):[se(t)],ia=(t,e,s)=>{if(e._n)return e;const n=Pl((...i)=>zs(e(...i)),s);return n._c=!1,n},Si=(t,e,s)=>{const n=t._ctx;for(const i in t){if(Bs(i))continue;const l=t[i];if(Y(l))e[i]=ia(i,l,n);else if(l!=null){const o=zs(l);e[i]=()=>o}}},Mi=(t,e)=>{const s=zs(e);t.slots.default=()=>s},Ii=(t,e,s)=>{for(const n in e)(s||!Bs(n))&&(t[n]=e[n])},ra=(t,e,s)=>{const n=t.slots=Di();if(t.vnode.shapeFlag&32){const i=e.__;i&&ps(n,"__",i,!0);const l=e._;l?(Ii(n,e,s),s&&ps(n,"_",l,!0)):Si(e,n)}else e&&Mi(t,e)},la=(t,e,s)=>{const{vnode:n,slots:i}=t;let l=!0,o=ut;if(n.shapeFlag&32){const c=e._;c?s&&c===1?l=!1:Ii(i,e,s):(l=!e.$stable,Si(e,i)),o=e}else e&&(Mi(t,e),o={default:1});if(l)for(const c in i)!Bs(c)&&o[c]==null&&delete i[c]},Kt=ba;function aa(t){return ca(t)}function ca(t,e){const s=Gn();s.__VUE__=!0;const{insert:n,remove:i,patchProp:l,createElement:o,createText:c,createComment:d,setText:y,setElementText:p,parentNode:_,nextSibling:O,setScopeId:j=Zt,insertStaticContent:V}=t,K=(f,m,T,M=null,x=null,C=null,P=void 0,A=null,I=!!m.dynamicChildren)=>{if(f===m)return;f&&!sn(f,m)&&(M=Le(f),qt(f,x,C,!0),f=null),m.patchFlag===-2&&(I=!1,m.dynamicChildren=null);const{type:S,ref:L,shapeFlag:E}=m;switch(S){case es:ot(f,m,T,M);break;case Me:$(f,m,T,M);break;case Fn:f==null&&et(m,T,M,P);break;case z:wt(f,m,T,M,x,C,P,A,I);break;default:E&1?ft(f,m,T,M,x,C,P,A,I):E&6?Ae(f,m,T,M,x,C,P,A,I):(E&64||E&128)&&S.process(f,m,T,M,x,C,P,A,I,_e)}L!=null&&x?cn(L,f&&f.ref,C,m||f,!m):L==null&&f&&f.ref!=null&&cn(f.ref,null,C,f,!0)},ot=(f,m,T,M)=>{if(f==null)n(m.el=c(m.children),T,M);else{const x=m.el=f.el;m.children!==f.children&&y(x,m.children)}},$=(f,m,T,M)=>{f==null?n(m.el=d(m.children||""),T,M):m.el=f.el},et=(f,m,T,M)=>{[f.el,f.anchor]=V(f.children,m,T,M,f.el,f.anchor)},at=({el:f,anchor:m},T,M)=>{let x;for(;f&&f!==m;)x=O(f),n(f,T,M),f=x;n(m,T,M)},q=({el:f,anchor:m})=>{let T;for(;f&&f!==m;)T=O(f),i(f),f=T;i(m)},ft=(f,m,T,M,x,C,P,A,I)=>{m.type==="svg"?P="svg":m.type==="math"&&(P="mathml"),f==null?Rt(m,T,M,x,C,P,A,I):le(f,m,x,C,P,A,I)},Rt=(f,m,T,M,x,C,P,A)=>{let I,S;const{props:L,shapeFlag:E,transition:F,dirs:U}=f;if(I=f.el=o(f.type,C,L&&L.is,L),E&8?p(I,f.children):E&16&&bt(f.children,I,null,M,x,ds(f,C),P,A),U&&Ee(f,null,M,"created"),Ct(I,f,f.scopeId,P,M),L){for(const lt in L)lt!=="value"&&!rn(lt)&&l(I,lt,null,L[lt],C,M);"value"in L&&l(I,"value",null,L.value,C),(S=L.onVnodeBeforeMount)&&ee(S,M,f)}U&&Ee(f,null,M,"beforeMount");const X=da(x,F);X&&F.beforeEnter(I),n(I,m,T),((S=L&&L.onVnodeMounted)||X||U)&&Kt(()=>{S&&ee(S,M,f),X&&F.enter(I),U&&Ee(f,null,M,"mounted")},x)},Ct=(f,m,T,M,x)=>{if(T&&j(f,T),M)for(let C=0;C{for(let S=I;S{const A=m.el=f.el;let{patchFlag:I,dynamicChildren:S,dirs:L}=m;I|=f.patchFlag&16;const E=f.props||ut,F=m.props||ut;let U;if(T&&je(T,!1),(U=F.onVnodeBeforeUpdate)&&ee(U,T,m,f),L&&Ee(m,f,T,"beforeUpdate"),T&&je(T,!0),(E.innerHTML&&F.innerHTML==null||E.textContent&&F.textContent==null)&&p(A,""),S?J(f.dynamicChildren,S,A,T,M,ds(m,x),C):P||Q(f,m,A,null,T,M,ds(m,x),C,!1),I>0){if(I&16)ct(A,E,F,T,x);else if(I&2&&E.class!==F.class&&l(A,"class",null,F.class,x),I&4&&l(A,"style",E.style,F.style,x),I&8){const X=m.dynamicProps;for(let lt=0;lt{U&&ee(U,T,m,f),L&&Ee(m,f,T,"updated")},M)},J=(f,m,T,M,x,C,P)=>{for(let A=0;A{if(m!==T){if(m!==ut)for(const C in m)!rn(C)&&!(C in T)&&l(f,C,m[C],null,x,M);for(const C in T){if(rn(C))continue;const P=T[C],A=m[C];P!==A&&C!=="value"&&l(f,C,A,P,x,M)}"value"in T&&l(f,"value",m.value,T.value,x)}},wt=(f,m,T,M,x,C,P,A,I)=>{const S=m.el=f?f.el:c(""),L=m.anchor=f?f.anchor:c("");let{patchFlag:E,dynamicChildren:F,slotScopeIds:U}=m;U&&(A=A?A.concat(U):U),f==null?(n(S,T,M),n(L,T,M),bt(m.children||[],T,L,x,C,P,A,I)):E>0&&E&64&&F&&f.dynamicChildren?(J(f.dynamicChildren,F,T,x,C,P,A),(m.key!=null||x&&m===x.subTree)&&Ai(f,m,!0)):Q(f,m,T,L,x,C,P,A,I)},Ae=(f,m,T,M,x,C,P,A,I)=>{m.slotScopeIds=A,f==null?m.shapeFlag&512?x.ctx.activate(m,T,M,P,I):Te(m,T,M,x,C,P,I):Nt(f,m,I)},Te=(f,m,T,M,x,C,P)=>{const A=f.component=Ia(f,M,x);if(yi(f)&&(A.ctx.renderer=_e),Aa(A,!1,P),A.asyncDep){if(x&&x.registerDep(A,yt,P),!f.el){const I=A.subTree=oe(Me);$(null,I,m,T),f.placeholder=I.el}}else yt(A,f,m,T,x,C,P)},Nt=(f,m,T)=>{const M=m.component=f.component;if(Ta(f,m,T))if(M.asyncDep&&!M.asyncResolved){st(M,m,T);return}else M.next=m,M.update();else m.el=f.el,M.vnode=m},yt=(f,m,T,M,x,C,P)=>{const A=()=>{if(f.isMounted){let{next:E,bu:F,u:U,parent:X,vnode:lt}=f;{const Mt=Oi(f);if(Mt){E&&(E.el=lt.el,st(f,E,P)),Mt.asyncDep.then(()=>{f.isUnmounted||A()});return}}let nt=E,St;je(f,!1),E?(E.el=lt.el,st(f,E,P)):E=lt,F&&jn(F),(St=E.props&&E.props.onVnodeBeforeUpdate)&&ee(St,X,E,lt),je(f,!0);const Tt=us(f),Vt=f.subTree;f.subTree=Tt,K(Vt,Tt,_(Vt.el),Le(Vt),f,x,C),E.el=Tt.el,nt===null&&_a(f,Tt.el),U&&Kt(U,x),(St=E.props&&E.props.onVnodeUpdated)&&Kt(()=>ee(St,X,E,lt),x)}else{let E;const{el:F,props:U}=m,{bm:X,m:lt,parent:nt,root:St,type:Tt}=f,Vt=dn(m);if(je(f,!1),X&&jn(X),!Vt&&(E=U&&U.onVnodeBeforeMount)&&ee(E,nt,m),je(f,!0),F&&$e){const Mt=()=>{f.subTree=us(f),$e(F,f.subTree,f,x,null)};Vt&&Tt.__asyncHydrate?Tt.__asyncHydrate(F,f,Mt):Mt()}else{St.ce&&St.ce._def.shadowRoot!==!1&&St.ce._injectChildStyle(Tt);const Mt=f.subTree=us(f);K(null,Mt,T,M,f,x,C),m.el=Mt.el}if(lt&&Kt(lt,x),!Vt&&(E=U&&U.onVnodeMounted)){const Mt=m;Kt(()=>ee(E,nt,Mt),x)}(m.shapeFlag&256||nt&&dn(nt.vnode)&&nt.vnode.shapeFlag&256)&&f.a&&Kt(f.a,x),f.isMounted=!0,m=T=M=null}};f.scope.on();const I=f.effect=new Qo(A);f.scope.off();const S=f.update=I.run.bind(I),L=f.job=I.runIfDirty.bind(I);L.i=f,L.id=f.uid,I.scheduler=()=>Vs(L),je(f,!0),S()},st=(f,m,T)=>{m.component=f;const M=f.vnode.props;f.vnode=m,f.next=null,sa(f,m.props,M,T),la(f,m.children,T),pe(),uo(f),ve()},Q=(f,m,T,M,x,C,P,A,I=!1)=>{const S=f&&f.children,L=f?f.shapeFlag:0,E=m.children,{patchFlag:F,shapeFlag:U}=m;if(F>0){if(F&128){ae(S,E,T,M,x,C,P,A,I);return}else if(F&256){Yt(S,E,T,M,x,C,P,A,I);return}}U&8?(L&16&&Oe(S,x,C),E!==S&&p(T,E)):L&16?U&16?ae(S,E,T,M,x,C,P,A,I):Oe(S,x,C,!0):(L&8&&p(T,""),U&16&&bt(E,T,M,x,C,P,A,I))},Yt=(f,m,T,M,x,C,P,A,I)=>{f=f||Ke,m=m||Ke;const S=f.length,L=m.length,E=Math.min(S,L);let F;for(F=0;FL?Oe(f,x,C,!0,!1,E):bt(m,T,M,x,C,P,A,I,E)},ae=(f,m,T,M,x,C,P,A,I)=>{let S=0;const L=m.length;let E=f.length-1,F=L-1;for(;S<=E&&S<=F;){const U=f[S],X=m[S]=I?De(m[S]):se(m[S]);if(sn(U,X))K(U,X,T,null,x,C,P,A,I);else break;S++}for(;S<=E&&S<=F;){const U=f[E],X=m[F]=I?De(m[F]):se(m[F]);if(sn(U,X))K(U,X,T,null,x,C,P,A,I);else break;E--,F--}if(S>E){if(S<=F){const U=F+1,X=UF)for(;S<=E;)qt(f[S],x,C,!0),S++;else{const U=S,X=S,lt=new Map;for(S=X;S<=F;S++){const jt=m[S]=I?De(m[S]):se(m[S]);jt.key!=null&<.set(jt.key,S)}let nt,St=0;const Tt=F-X+1;let Vt=!1,Mt=0;const Pe=new Array(Tt);for(S=0;S=Tt){qt(jt,x,C,!0);continue}let Ut;if(jt.key!=null)Ut=lt.get(jt.key);else for(nt=X;nt<=F;nt++)if(Pe[nt-X]===0&&sn(jt,m[nt])){Ut=nt;break}Ut===void 0?qt(jt,x,C,!0):(Pe[Ut-X]=S+1,Ut>=Mt?Mt=Ut:Vt=!0,K(jt,m[Ut],T,null,x,C,P,A,I),St++)}const xn=Vt?ua(Pe):Ke;for(nt=xn.length-1,S=Tt-1;S>=0;S--){const jt=X+S,Ut=m[jt],Re=m[jt+1],tn=jt+1{const{el:C,type:P,transition:A,children:I,shapeFlag:S}=f;if(S&6){Jt(f.component.subTree,m,T,M);return}if(S&128){f.suspense.move(m,T,M);return}if(S&64){P.move(f,m,T,_e);return}if(P===z){n(C,m,T);for(let E=0;EA.enter(C),x);else{const{leave:E,delayLeave:F,afterLeave:U}=A,X=()=>{f.ctx.isUnmounted?i(C):n(C,m,T)},lt=()=>{E(C,()=>{X(),U&&U()})};F?F(C,X,lt):lt()}else n(C,m,T)},qt=(f,m,T,M=!1,x=!1)=>{const{type:C,props:P,ref:A,children:I,dynamicChildren:S,shapeFlag:L,patchFlag:E,dirs:F,cacheIndex:U}=f;if(E===-2&&(x=!1),A!=null&&(pe(),cn(A,null,T,f,!0),ve()),U!=null&&(m.renderCache[U]=void 0),L&256){m.ctx.deactivate(f);return}const X=L&1&&F,lt=!dn(f);let nt;if(lt&&(nt=P&&P.onVnodeBeforeUnmount)&&ee(nt,m,f),L&6)Qt(f.component,T,M);else{if(L&128){f.suspense.unmount(T,M);return}X&&Ee(f,null,m,"beforeUnmount"),L&64?f.type.remove(f,m,T,_e,M):S&&!S.hasOnce&&(C!==z||E>0&&E&64)?Oe(S,m,T,!1,!0):(C===z&&E&384||!x&&L&16)&&Oe(I,m,T),M&&dt(f)}(lt&&(nt=P&&P.onVnodeUnmounted)||X)&&Kt(()=>{nt&&ee(nt,m,f),X&&Ee(f,null,m,"unmounted")},T)},dt=f=>{const{type:m,el:T,anchor:M,transition:x}=f;if(m===z){te(T,M);return}if(m===Fn){q(f);return}const C=()=>{i(T),x&&!x.persisted&&x.afterLeave&&x.afterLeave()};if(f.shapeFlag&1&&x&&!x.persisted){const{leave:P,delayLeave:A}=x,I=()=>P(T,C);A?A(f.el,C,I):I()}else C()},te=(f,m)=>{let T;for(;f!==m;)T=O(f),i(f),f=T;i(m)},Qt=(f,m,T)=>{const{bum:M,scope:x,job:C,subTree:P,um:A,m:I,a:S,parent:L,slots:{__:E}}=f;vo(I),vo(S),M&&jn(M),L&&N(E)&&E.forEach(F=>{L.renderCache[F]=void 0}),x.stop(),C&&(C.flags|=8,qt(P,f,m,T)),A&&Kt(A,m),Kt(()=>{f.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},Oe=(f,m,T,M=!1,x=!1,C=0)=>{for(let P=C;P{if(f.shapeFlag&6)return Le(f.component.subTree);if(f.shapeFlag&128)return f.suspense.next();const m=O(f.anchor||f.el),T=m&&m[El];return T?O(T):m};let Xe=!1;const kn=(f,m,T)=>{f==null?m._vnode&&qt(m._vnode,null,null,!0):K(m._vnode||null,f,m,null,null,null,T),m._vnode=f,Xe||(Xe=!0,uo(),mi(),Xe=!1)},_e={p:K,um:qt,m:Jt,r:dt,mt:Te,mc:bt,pc:Q,pbc:J,n:Le,o:t};let Ze,$e;return e&&([Ze,$e]=e(_e)),{render:kn,hydrate:Ze,createApp:ta(kn,Ze)}}function ds({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function je({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function da(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Ai(t,e,s=!1){const n=t.children,i=e.children;if(N(n)&&N(i))for(let l=0;l>1,t[s[c]]0&&(e[n]=s[l-1]),s[l]=n)}}for(l=s.length,o=s[l-1];l-- >0;)s[l]=o,o=e[o];return s}function Oi(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Oi(e)}function vo(t){if(t)for(let e=0;eHn(fa);function fn(t,e,s){return Pi(t,e,s)}function Pi(t,e,s=ut){const{immediate:n,deep:i,flush:l,once:o}=s,c=xt({},s),d=e&&n||!e&&l!=="post";let y;if(yn){if(l==="sync"){const j=ha();y=j.__watcherHandles||(j.__watcherHandles=[])}else if(!d){const j=()=>{};return j.stop=Zt,j.resume=Zt,j.pause=Zt,j}}const p=Lt;c.call=(j,V,K)=>re(j,p,V,K);let _=!1;l==="post"?c.scheduler=j=>{Kt(j,p&&p.suspense)}:l!=="sync"&&(_=!0,c.scheduler=(j,V)=>{V?j():Vs(j)}),c.augmentJob=j=>{e&&(j.flags|=4),_&&(j.flags|=2,p&&(j.id=p.uid,j.i=p))};const O=Ml(t,e,c);return yn&&(y?y.push(O):d&&O()),O}function ma(t,e,s){const n=this.proxy,i=vt(t)?t.includes(".")?Ei(n,t):()=>n[t]:t.bind(n,n);let l;Y(e)?l=e:(l=e.handler,s=e);const o=Dn(this),c=Pi(i,l.bind(n),s);return o(),c}function Ei(t,e){const s=e.split(".");return()=>{let n=t;for(let i=0;ie==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ce(e)}Modifiers`]||t[`${Ie(e)}Modifiers`];function pa(t,e,...s){if(t.isUnmounted)return;const n=t.vnode.props||ut;let i=s;const l=e.startsWith("update:"),o=l&&ga(n,e.slice(7));o&&(o.trim&&(i=s.map(p=>vt(p)?p.trim():p)),o.number&&(i=s.map(qn)));let c,d=n[c=os(e)]||n[c=os(Ce(e))];!d&&l&&(d=n[c=os(Ie(e))]),d&&re(d,t,6,i);const y=n[c+"Once"];if(y){if(!t.emitted)t.emitted={};else if(t.emitted[c])return;t.emitted[c]=!0,re(y,t,6,i)}}function ji(t,e,s=!1){const n=e.emitsCache,i=n.get(t);if(i!==void 0)return i;const l=t.emits;let o={},c=!1;if(!Y(t)){const d=y=>{const p=ji(y,e,!0);p&&(c=!0,xt(o,p))};!s&&e.mixins.length&&e.mixins.forEach(d),t.extends&&d(t.extends),t.mixins&&t.mixins.forEach(d)}return!l&&!c?(mt(t)&&n.set(t,null),null):(N(l)?l.forEach(d=>o[d]=null):xt(o,l),mt(t)&&n.set(t,o),o)}function ts(t,e){return!t||!Jn(e)?!1:(e=e.slice(2).replace(/Once$/,""),rt(t,e[0].toLowerCase()+e.slice(1))||rt(t,Ie(e))||rt(t,e))}function us(t){const{type:e,vnode:s,proxy:n,withProxy:i,propsOptions:[l],slots:o,attrs:c,emit:d,render:y,renderCache:p,props:_,data:O,setupState:j,ctx:V,inheritAttrs:K}=t,ot=Kn(t);let $,et;try{if(s.shapeFlag&4){const q=i||n,ft=q;$=se(y.call(ft,q,p,_,j,O,V)),et=c}else{const q=e;$=se(q.length>1?q(_,{attrs:c,slots:o,emit:d}):q(_,null)),et=e.props?c:va(c)}}catch(q){hn.length=0,Zn(q,t,1),$=oe(Me)}let at=$;if(et&&K!==!1){const q=Object.keys(et),{shapeFlag:ft}=at;q.length&&ft&7&&(l&&q.some(Ms)&&(et=ya(et,l)),at=Je(at,et,!1,!0))}return s.dirs&&(at=Je(at,null,!1,!0),at.dirs=at.dirs?at.dirs.concat(s.dirs):s.dirs),s.transition&&Us(at,s.transition),$=at,Kn(ot),$}const va=t=>{let e;for(const s in t)(s==="class"||s==="style"||Jn(s))&&((e||(e={}))[s]=t[s]);return e},ya=(t,e)=>{const s={};for(const n in t)(!Ms(n)||!(n.slice(9)in e))&&(s[n]=t[n]);return s};function Ta(t,e,s){const{props:n,children:i,component:l}=t,{props:o,children:c,patchFlag:d}=e,y=l.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&d>=0){if(d&1024)return!0;if(d&16)return n?yo(n,o,y):!!o;if(d&8){const p=e.dynamicProps;for(let _=0;_t.__isSuspense;function ba(t,e){e&&e.pendingBranch?N(t)?e.effects.push(...t):e.effects.push(t):Ol(t)}const z=Symbol.for("v-fgt"),es=Symbol.for("v-txt"),Me=Symbol.for("v-cmt"),Fn=Symbol.for("v-stc"),hn=[];let Wt=null;function w(t=!1){hn.push(Wt=t?null:[])}function wa(){hn.pop(),Wt=hn[hn.length-1]||null}let vn=1;function To(t,e=!1){vn+=t,t<0&&Wt&&e&&(Wt.hasOnce=!0)}function Fi(t){return t.dynamicChildren=vn>0?Wt||Ke:null,wa(),vn>0&&Wt&&Wt.push(t),t}function D(t,e,s,n,i,l){return Fi(r(t,e,s,n,i,l,!0))}function Da(t,e,s,n,i){return Fi(oe(t,e,s,n,i,!0))}function Li(t){return t?t.__v_isVNode===!0:!1}function sn(t,e){return t.type===e.type&&t.key===e.key}const Ri=({key:t})=>t??null,Ln=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?vt(t)||Et(t)||Y(t)?{i:Bt,r:t,k:e,f:!!s}:t:null);function r(t,e=null,s=null,n=0,i=null,l=t===z?0:1,o=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Ri(e),ref:e&&Ln(e),scopeId:pi,slotScopeIds:null,children:s,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:l,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Bt};return c?(Ys(d,s),l&128&&t.normalize(d)):s&&(d.shapeFlag|=vt(s)?8:16),vn>0&&!o&&Wt&&(d.patchFlag>0||l&6)&&d.patchFlag!==32&&Wt.push(d),d}const oe=ka;function ka(t,e=null,s=null,n=0,i=null,l=!1){if((!t||t===zl)&&(t=Me),Li(t)){const c=Je(t,e,!0);return s&&Ys(c,s),vn>0&&!l&&Wt&&(c.shapeFlag&6?Wt[Wt.indexOf(t)]=c:Wt.push(c)),c.patchFlag=-2,c}if(ja(t)&&(t=t.__vccOpts),e){e=xa(e);let{class:c,style:d}=e;c&&!vt(c)&&(e.class=G(c)),mt(d)&&(Ns(d)&&!N(d)&&(d=xt({},d)),e.style=Dt(d))}const o=vt(t)?1:Hi(t)?128:jl(t)?64:mt(t)?4:Y(t)?2:0;return r(t,e,s,n,i,o,l,!0)}function xa(t){return t?Ns(t)||ki(t)?xt({},t):t:null}function Je(t,e,s=!1,n=!1){const{props:i,ref:l,patchFlag:o,children:c,transition:d}=t,y=e?Ca(i||{},e):i,p={__v_isVNode:!0,__v_skip:!0,type:t.type,props:y,key:y&&Ri(y),ref:e&&e.ref?s&&l?N(l)?l.concat(Ln(e)):[l,Ln(e)]:Ln(e):l,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:c,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==z?o===-1?16:o|16:o,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:d,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Je(t.ssContent),ssFallback:t.ssFallback&&Je(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return d&&n&&Us(p,d.clone(p)),p}function Ue(t=" ",e=0){return oe(es,null,t,e)}function fs(t,e){const s=oe(Fn,null,t);return s.staticCount=e,s}function B(t="",e=!1){return e?(w(),Da(Me,null,t)):oe(Me,null,t)}function se(t){return t==null||typeof t=="boolean"?oe(Me):N(t)?oe(z,null,t.slice()):Li(t)?De(t):oe(es,null,String(t))}function De(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Je(t)}function Ys(t,e){let s=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(N(e))s=16;else if(typeof e=="object")if(n&65){const i=e.default;i&&(i._c&&(i._d=!1),Ys(t,i()),i._c&&(i._d=!0));return}else{s=32;const i=e._;!i&&!ki(e)?e._ctx=Bt:i===3&&Bt&&(Bt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Y(e)?(e={default:e,_ctx:Bt},s=32):(e=String(e),n&64?(s=16,e=[Ue(e)]):s=8);t.children=e,t.shapeFlag|=s}function Ca(...t){const e={};for(let s=0;sLt||Bt;let zn,xs;{const t=Gn(),e=(s,n)=>{let i;return(i=t[s])||(i=t[s]=[]),i.push(n),l=>{i.length>1?i.forEach(o=>o(l)):i[0](l)}};zn=e("__VUE_INSTANCE_SETTERS__",s=>Lt=s),xs=e("__VUE_SSR_SETTERS__",s=>yn=s)}const Dn=t=>{const e=Lt;return zn(t),t.scope.on(),()=>{t.scope.off(),zn(e)}},_o=()=>{Lt&&Lt.scope.off(),zn(null)};function Ni(t){return t.vnode.shapeFlag&4}let yn=!1;function Aa(t,e=!1,s=!1){e&&xs(e);const{props:n,children:i}=t.vnode,l=Ni(t);na(t,n,l,e),ra(t,i,s||e);const o=l?Oa(t,e):void 0;return e&&xs(!1),o}function Oa(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Yl);const{setup:n}=s;if(n){pe();const i=t.setupContext=n.length>1?Ea(t):null,l=Dn(t),o=wn(n,t,0,[t.props,i]),c=Vo(o);if(ve(),l(),(c||t.sp)&&!dn(t)&&vi(t),c){if(o.then(_o,_o),e)return o.then(d=>{bo(t,d,e)}).catch(d=>{Zn(d,t,0)});t.asyncDep=o}else bo(t,o,e)}else Vi(t,e)}function bo(t,e,s){Y(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:mt(e)&&(t.setupState=ui(e)),Vi(t,s)}let wo;function Vi(t,e,s){const n=t.type;if(!t.render){if(!e&&wo&&!n.render){const i=n.template||Ws(t).template;if(i){const{isCustomElement:l,compilerOptions:o}=t.appContext.config,{delimiters:c,compilerOptions:d}=n,y=xt(xt({isCustomElement:l,delimiters:c},o),d);n.render=wo(i,y)}}t.render=n.render||Zt}{const i=Dn(t);pe();try{Jl(t)}finally{ve(),i()}}}const Pa={get(t,e){return Pt(t,"get",""),t[e]}};function Ea(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,Pa),slots:t.slots,emit:t.emit,expose:e}}function ns(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(ui(bl(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in un)return un[s](t)},has(e,s){return s in e||s in un}})):t.proxy}function ja(t){return Y(t)&&"__vccOpts"in t}const _t=(t,e)=>Cl(t,e,yn),Ha="3.5.18";/** +* @vue/runtime-dom v3.5.18 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Cs;const Do=typeof window<"u"&&window.trustedTypes;if(Do)try{Cs=Do.createPolicy("vue",{createHTML:t=>t})}catch{}const Ui=Cs?t=>Cs.createHTML(t):t=>t,Fa="http://www.w3.org/2000/svg",La="http://www.w3.org/1998/Math/MathML",ue=typeof document<"u"?document:null,ko=ue&&ue.createElement("template"),Ra={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,n)=>{const i=e==="svg"?ue.createElementNS(Fa,t):e==="mathml"?ue.createElementNS(La,t):s?ue.createElement(t,{is:s}):ue.createElement(t);return t==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:t=>ue.createTextNode(t),createComment:t=>ue.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ue.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,n,i,l){const o=s?s.previousSibling:e.lastChild;if(i&&(i===l||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),s),!(i===l||!(i=i.nextSibling)););else{ko.innerHTML=Ui(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const c=ko.content;if(n==="svg"||n==="mathml"){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}e.insertBefore(c,s)}return[o?o.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},qa=Symbol("_vtc");function Na(t,e,s){const n=t[qa];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const xo=Symbol("_vod"),Va=Symbol("_vsh"),Ua=Symbol(""),Ka=/(^|;)\s*display\s*:/;function Wa(t,e,s){const n=t.style,i=vt(s);let l=!1;if(s&&!i){if(e)if(vt(e))for(const o of e.split(";")){const c=o.slice(0,o.indexOf(":")).trim();s[c]==null&&Rn(n,c,"")}else for(const o in e)s[o]==null&&Rn(n,o,"");for(const o in s)o==="display"&&(l=!0),Rn(n,o,s[o])}else if(i){if(e!==s){const o=n[Ua];o&&(s+=";"+o),n.cssText=s,l=Ka.test(s)}}else e&&t.removeAttribute("style");xo in t&&(t[xo]=l?n.display:"",t[Va]&&(n.display="none"))}const Co=/\s*!important$/;function Rn(t,e,s){if(N(s))s.forEach(n=>Rn(t,e,n));else if(s==null&&(s=""),e.startsWith("--"))t.setProperty(e,s);else{const n=Ba(t,e);Co.test(s)?t.setProperty(Ie(n),s.replace(Co,""),"important"):t[n]=s}}const So=["Webkit","Moz","ms"],hs={};function Ba(t,e){const s=hs[e];if(s)return s;let n=Ce(e);if(n!=="filter"&&n in t)return hs[e]=n;n=Wo(n);for(let i=0;ims||(Qa.then(()=>ms=0),ms=Date.now());function Xa(t,e){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;re(Za(n,s.value),e,5,[n])};return s.value=t,s.attached=Ga(),s}function Za(t,e){if(N(e)){const s=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{s.call(t),t._stopped=!0},e.map(n=>i=>!i._stopped&&n&&n(i))}else return e}const Eo=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,$a=(t,e,s,n,i,l)=>{const o=i==="svg";e==="class"?Na(t,n,o):e==="style"?Wa(t,s,n):Jn(e)?Ms(e)||Ya(t,e,s,n,l):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):tc(t,e,n,o))?(Ao(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Io(t,e,n,o,l,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!vt(n))?Ao(t,Ce(e),n,l,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),Io(t,e,n,o))};function tc(t,e,s,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&Eo(e)&&Y(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const i=t.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Eo(e)&&vt(s)?!1:e in t}const Qe=t=>{const e=t.props["onUpdate:modelValue"]||!1;return N(e)?s=>jn(e,s):e};function ec(t){t.target.composing=!0}function jo(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const ge=Symbol("_assign"),de={created(t,{modifiers:{lazy:e,trim:s,number:n}},i){t[ge]=Qe(i);const l=n||i.props&&i.props.type==="number";ke(t,e?"change":"input",o=>{if(o.target.composing)return;let c=t.value;s&&(c=c.trim()),l&&(c=qn(c)),t[ge](c)}),s&&ke(t,"change",()=>{t.value=t.value.trim()}),e||(ke(t,"compositionstart",ec),ke(t,"compositionend",jo),ke(t,"change",jo))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:s,modifiers:{lazy:n,trim:i,number:l}},o){if(t[ge]=Qe(o),t.composing)return;const c=(l||t.type==="number")&&!/^0\d/.test(t.value)?qn(t.value):t.value,d=e??"";c!==d&&(document.activeElement===t&&t.type!=="range"&&(n&&e===s||i&&t.value.trim()===d)||(t.value=d))}},nc={deep:!0,created(t,e,s){t[ge]=Qe(s),ke(t,"change",()=>{const n=t._modelValue,i=Tn(t),l=t.checked,o=t[ge];if(N(n)){const c=Os(n,i),d=c!==-1;if(l&&!d)o(n.concat(i));else if(!l&&d){const y=[...n];y.splice(c,1),o(y)}}else if(Ge(n)){const c=new Set(n);l?c.add(i):c.delete(i),o(c)}else o(Ki(t,l))})},mounted:Ho,beforeUpdate(t,e,s){t[ge]=Qe(s),Ho(t,e,s)}};function Ho(t,{value:e,oldValue:s},n){t._modelValue=e;let i;if(N(e))i=Os(e,n.props.value)>-1;else if(Ge(e))i=e.has(n.props.value);else{if(e===s)return;i=bn(e,Ki(t,!0))}t.checked!==i&&(t.checked=i)}const Xt={deep:!0,created(t,{value:e,modifiers:{number:s}},n){const i=Ge(e);ke(t,"change",()=>{const l=Array.prototype.filter.call(t.options,o=>o.selected).map(o=>s?qn(Tn(o)):Tn(o));t[ge](t.multiple?i?new Set(l):l:l[0]),t._assigning=!0,me(()=>{t._assigning=!1})}),t[ge]=Qe(n)},mounted(t,{value:e}){Fo(t,e)},beforeUpdate(t,e,s){t[ge]=Qe(s)},updated(t,{value:e}){t._assigning||Fo(t,e)}};function Fo(t,e){const s=t.multiple,n=N(e);if(!(s&&!n&&!Ge(e))){for(let i=0,l=t.options.length;iString(y)===String(c)):o.selected=Os(e,c)>-1}else o.selected=e.has(c);else if(bn(Tn(o),e)){t.selectedIndex!==i&&(t.selectedIndex=i);return}}!s&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function Tn(t){return"_value"in t?t._value:t.value}function Ki(t,e){const s=e?"_trueValue":"_falseValue";return s in t?t[s]:e}const sc=["ctrl","shift","alt","meta"],oc={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>sc.some(s=>t[`${s}Key`]&&!e.includes(s))},At=(t,e)=>{const s=t._withMods||(t._withMods={}),n=e.join(".");return s[n]||(s[n]=(i,...l)=>{for(let o=0;o{const s=t._withKeys||(t._withKeys={}),n=e.join(".");return s[n]||(s[n]=i=>{if(!("key"in i))return;const l=Ie(i.key);if(e.some(o=>o===l||ic[o]===l))return t(i)})},rc=xt({patchProp:$a},Ra);let Ro;function lc(){return Ro||(Ro=aa(rc))}const ac=(...t)=>{const e=lc().createApp(...t),{mount:s}=e;return e.mount=n=>{const i=dc(n);if(!i)return;const l=e._component;!Y(l)&&!l.render&&!l.template&&(l.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=s(i,!1,cc(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},e};function cc(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function dc(t){return vt(t)?document.querySelector(t):t}function uc(t){return Jo()?(el(t),!0):!1}function Js(t){return typeof t=="function"?t():di(t)}const fc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const hc=Object.prototype.toString,mc=t=>hc.call(t)==="[object Object]",gc=()=>{};function pc(t,e){function s(...n){return new Promise((i,l)=>{Promise.resolve(t(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(i).catch(l)})}return s}const Wi=t=>t();function vc(t=Wi){const e=Z(!0);function s(){e.value=!1}function n(){e.value=!0}const i=(...l)=>{e.value&&t(...l)};return{isActive:Rs(e),pause:s,resume:n,eventFilter:i}}function yc(t){return t||qi()}function Tc(t,e,s={}){const{eventFilter:n=Wi,...i}=s;return fn(t,pc(n,e),i)}function _c(t,e,s={}){const{eventFilter:n,...i}=s,{eventFilter:l,pause:o,resume:c,isActive:d}=vc(n);return{stop:Tc(t,e,{...i,eventFilter:l}),pause:o,resume:c,isActive:d}}function bc(t,e=!0,s){yc()?Wn(t,s):e?t():me(t)}function wc(t){var e;const s=Js(t);return(e=s==null?void 0:s.$el)!=null?e:s}const Yn=fc?window:void 0;function qo(...t){let e,s,n,i;if(typeof t[0]=="string"||Array.isArray(t[0])?([s,n,i]=t,e=Yn):[e,s,n,i]=t,!e)return gc;Array.isArray(s)||(s=[s]),Array.isArray(n)||(n=[n]);const l=[],o=()=>{l.forEach(p=>p()),l.length=0},c=(p,_,O,j)=>(p.addEventListener(_,O,j),()=>p.removeEventListener(_,O,j)),d=fn(()=>[wc(e),Js(i)],([p,_])=>{if(o(),!p)return;const O=mc(_)?{..._}:_;l.push(...s.flatMap(j=>n.map(V=>c(p,j,V,O))))},{immediate:!0,flush:"post"}),y=()=>{d(),o()};return uc(y),y}const Pn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},En="__vueuse_ssr_handlers__",Dc=kc();function kc(){return En in Pn||(Pn[En]=Pn[En]||{}),Pn[En]}function xc(t,e){return Dc[t]||e}function Cc(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}const Sc={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},No="vueuse-storage";function Mc(t,e,s,n={}){var i;const{flush:l="pre",deep:o=!0,listenToStorageChanges:c=!0,writeDefaults:d=!0,mergeDefaults:y=!1,shallow:p,window:_=Yn,eventFilter:O,onError:j=J=>{console.error(J)},initOnMounted:V}=n,K=(p?wl:Z)(typeof e=="function"?e():e);if(!s)try{s=xc("getDefaultStorage",()=>{var J;return(J=Yn)==null?void 0:J.localStorage})()}catch(J){j(J)}if(!s)return K;const ot=Js(e),$=Cc(ot),et=(i=n.serializer)!=null?i:Sc[$],{pause:at,resume:q}=_c(K,()=>Rt(K.value),{flush:l,deep:o,eventFilter:O});_&&c&&bc(()=>{qo(_,"storage",bt),qo(_,No,le),V&&bt()}),V||bt();function ft(J,ct){_&&_.dispatchEvent(new CustomEvent(No,{detail:{key:t,oldValue:J,newValue:ct,storageArea:s}}))}function Rt(J){try{const ct=s.getItem(t);if(J==null)ft(ct,null),s.removeItem(t);else{const wt=et.write(J);ct!==wt&&(s.setItem(t,wt),ft(ct,wt))}}catch(ct){j(ct)}}function Ct(J){const ct=J?J.newValue:s.getItem(t);if(ct==null)return d&&ot!=null&&s.setItem(t,et.write(ot)),ot;if(!J&&y){const wt=et.read(ct);return typeof y=="function"?y(wt,ot):$==="object"&&!Array.isArray(wt)?{...ot,...wt}:wt}else return typeof ct!="string"?ct:et.read(ct)}function bt(J){if(!(J&&J.storageArea!==s)){if(J&&J.key==null){K.value=ot;return}if(!(J&&J.key!==t)){at();try{(J==null?void 0:J.newValue)!==et.write(K.value)&&(K.value=Ct(J))}catch(ct){j(ct)}finally{J?me(q):q()}}}}function le(J){bt(J.detail)}return K}function gs(t,e,s={}){const{window:n=Yn}=s;return Mc(t,e,n==null?void 0:n.localStorage,s)}const Ic=(t,e)=>{const s=t.__vccOpts||t;for(const[n,i]of e)s[n]=i;return s},Ac={name:"App",setup(){const t=Z(!1),e=Z(["","","","","",""]),s=Z(""),n="961031",i=a=>{let u="";for(let h=0;h{try{const u=atob(a);let h="";for(let g=0;g{const a=localStorage.getItem("todo-pin");return a?l(a):n},c=a=>{const u=i(a);localStorage.setItem("todo-pin",u)},d=gs("todo-tasks",[]),y=gs("todo-projects",[]),p=gs("todo-initialized",!1),_=Z(""),O=Z(!1),j=Z(null),V=Z("idle"),K=Z(null),ot=(a,u="info")=>{K.value={message:a,type:u,timestamp:Date.now()},setTimeout(()=>{K.value=null},3e3)},$=Z(""),et=Z(""),at=Z("development"),q=Z("medium"),ft=Z("medium"),Rt=Z("medium"),Ct=Z(""),bt=Z(""),le=Z("all"),J=Z(""),ct=Z(""),wt=Z("tasks");Z(null);const Ae=Z(!1),Te=Z(""),Nt=Z(null),yt=Z(null),st=Z("day"),Q=Z(new Date().toISOString().split("T")[0]),Yt=Z(null),ae=Z(new Date),Jt=Z(!0),qt=Z(!1),dt=Z({id:null,text:"",projectId:"",type:"development",priority:"medium",importance:"medium",urgency:"medium",startTime:"",endTime:"",completed:!1,timerDuration:null}),te=Z("day"),Qt=Z(new Date().toISOString().split("T")[0]),Oe=[{label:"今日",value:"day"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"本年",value:"year"}],Le=[{label:"全部",value:"all"},{label:"待完成",value:"pending"},{label:"已完成",value:"completed"}],Xe=_t(()=>d.value.length),kn=_t(()=>d.value.filter(a=>a.completed).length),_e=_t(()=>d.value.filter(a=>!a.completed).length),Ze=_t(()=>{const u=new Date().toLocaleDateString("en-CA");return d.value.filter(h=>h.startTime?new Date(h.startTime).toLocaleDateString("en-CA")===u:!1).length}),$e=_t(()=>{const u=new Date().toLocaleDateString("en-CA"),h=d.value.filter(v=>v.startTime?new Date(v.startTime).toLocaleDateString("en-CA")===u:!1),g={};return h.forEach(v=>{g[v.projectId]||(g[v.projectId]=0),g[v.projectId]++}),Object.entries(g).map(([v,b])=>({projectId:v,count:b}))}),f=_t(()=>{const u=new Date().toLocaleDateString("en-CA"),h=d.value.filter(v=>v.startTime?new Date(v.startTime).toLocaleDateString("en-CA")===u:!1),g={};return h.forEach(v=>{g[v.type]||(g[v.type]=0),g[v.type]++}),Object.entries(g).map(([v,b])=>({type:v,count:b}))}),m=_t(()=>{const u=new Date().toLocaleDateString("en-CA"),h=d.value.filter(b=>b.startTime?new Date(b.startTime).toLocaleDateString("en-CA")===u:!1);let g=0;return h.forEach(b=>{if(b.startTime&&b.endTime){const H=new Date(b.startTime),W=(new Date(b.endTime)-H)/(1e3*60*60);g+=W}}),d.value.filter(b=>b.timerDuration?new Date(b.createdAt).toISOString().split("T")[0]===u:!1).forEach(b=>{if(b.timerDuration){const H=b.timerDuration/3600;g+=H}}),g.toFixed(1)}),T=_t(()=>{const u=new Date().toLocaleDateString("en-CA"),g=d.value.filter(R=>R.startTime?new Date(R.startTime).toLocaleDateString("en-CA")===u:!1).filter(R=>R.startTime&&R.endTime),v=d.value.filter(R=>R.timerDuration?new Date(R.createdAt).toLocaleDateString("en-CA")===u:!1),b=[...g,...v];if(b.length===0)return"0.0";let H=0;return g.forEach(R=>{const W=new Date(R.startTime),It=(new Date(R.endTime)-W)/(1e3*60*60);H+=It}),v.forEach(R=>{if(R.timerDuration){const W=R.timerDuration/3600;H+=W}}),(H/b.length).toFixed(1)}),M=()=>{const a={tasks:d.value,projects:y.value,exportDate:new Date().toISOString(),version:"1.0.0"},u=new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),h=URL.createObjectURL(u),g=document.createElement("a");g.href=h,g.download=`worktime-data-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(h)},x=()=>{yt.value.click()},C=a=>{const u=a.target.files[0];if(!u)return;const h=new FileReader;h.onload=g=>{try{const v=JSON.parse(g.target.result);v.tasks&&v.projects?confirm("导入数据将覆盖当前所有数据,确定要继续吗?")&&(d.value=v.tasks,y.value=v.projects,p.value=!0,alert("数据导入成功!")):alert("文件格式不正确,请选择正确的数据文件。")}catch{alert("文件读取失败,请检查文件格式。")}},h.readAsText(u),a.target.value=""},P=(a,u)=>{const h=u.target.value;h&&/^\d$/.test(h)?(e.value[a]=h,s.value="",a<5?me(()=>{const g=document.querySelector(`input[ref="pinInput${a+1}"]`);g&&g.focus()}):S()):e.value[a]=""},A=(a,u)=>{u.key==="Backspace"&&!e.value[a]&&a>0&&me(()=>{const h=document.querySelector(`input[ref="pinInput${a-1}"]`);h&&h.focus()})},I=a=>{a.preventDefault();const h=a.clipboardData.getData("text").replace(/\D/g,"").slice(0,6).split("");e.value=[...h,"","","","","",""].slice(0,6),s.value="",h.length===6&&S()},S=()=>{const a=e.value.join(""),u=o();if(a===u)t.value=!0,s.value="",localStorage.setItem("todo-authenticated","true");else{s.value="密码错误,请重试",e.value=["","","","","",""];const h=document.querySelector(".hidden-input");h&&(h.value="",h.focus())}},L=()=>{localStorage.getItem("todo-authenticated")==="true"&&(t.value=!0)};Wn(()=>{L(),t.value||me(()=>{const a=document.querySelector(".hidden-input");a&&a.focus()})});const E=()=>{confirm("确定要清空所有数据吗?此操作不可恢复!")&&(d.value=[],y.value=[],p.value=!1,localStorage.removeItem("todo-tasks"),localStorage.removeItem("todo-projects"),localStorage.removeItem("todo-initialized"),ct.value="",wt.value="tasks",alert("数据已完全清空!页面将重新加载以应用更改。"),setTimeout(()=>{window.location.reload()},1e3))},F=()=>{confirm("确定要清除所有默认数据吗?这将删除所有项目和任务,但保留应用设置。")&&(d.value=[],y.value=[],localStorage.removeItem("todo-tasks"),localStorage.removeItem("todo-projects"),ct.value="",wt.value="tasks",alert("默认数据已清除!现在您可以创建自己的项目了。"))},U=async()=>{try{if((await fetch(`${_.value}/api/health`)).ok)return O.value=!0,!0}catch(a){console.log("服务器连接失败:",a)}return O.value=!1,!1},X=async()=>{if(!O.value)return alert("服务器未连接,无法同步数据"),!1;V.value="syncing";try{const a=await fetch(`${_.value}/api/data`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tasks:d.value,projects:y.value})});if(a.ok){const u=await a.json();return j.value=u.lastUpdated,V.value="success",setTimeout(()=>{V.value="idle"},2e3),!0}else throw new Error("同步失败")}catch(a){return console.error("同步到服务器失败:",a),V.value="error",setTimeout(()=>{V.value="idle"},3e3),!1}},lt=async()=>{if(!O.value)return alert("服务器未连接,无法同步数据"),!1;V.value="syncing";try{const a=await fetch(`${_.value}/api/data`);if(a.ok){const u=await a.json();return d.value=u.tasks||[],y.value=u.projects||[],j.value=u.lastUpdated,V.value="success",setTimeout(()=>{V.value="idle"},2e3),!0}else throw new Error("获取数据失败")}catch(a){return console.error("从服务器同步失败:",a),V.value="error",setTimeout(()=>{V.value="idle"},3e3),!1}},nt=async()=>{if(await U())try{const u=await fetch(`${_.value}/api/last-updated`);if(u.ok){const{lastUpdated:h}=await u.json();h!==j.value?await lt():await X()}}catch(u){console.error("自动同步失败:",u)}},St=_t(()=>{let a=d.value;switch(ct.value&&(a=a.filter(u=>u.projectId===ct.value)),le.value){case"completed":a=a.filter(u=>u.completed);break;case"pending":a=a.filter(u=>!u.completed);break}return J.value&&(a=a.filter(u=>u.type===J.value)),a}),Tt=()=>{if($.value.trim()&&et.value){const a={id:Date.now(),text:$.value.trim(),projectId:et.value,type:at.value,completed:!1,priority:q.value,importance:ft.value,urgency:Rt.value,startTime:Ct.value||null,endTime:bt.value||null,timerRunning:!1,timerStartTime:null,timerDuration:null,createdAt:new Date,editing:!1};d.value.unshift(a),$.value="",et.value="",at.value="development",q.value="medium",ft.value="medium",Rt.value="medium",Ct.value="",bt.value=""}},Vt=()=>{if(Te.value.trim()){const a={id:Date.now().toString(),name:Te.value.trim(),createdAt:new Date};y.value.push(a),Te.value="",Ae.value=!1,y.value.length===1&&(ct.value=a.id)}},Mt=a=>{const u=y.value.find(h=>h.id===a);return u?u.name:"未知项目"},Pe=a=>d.value.filter(u=>u.projectId===a).length,xn=a=>{const u=d.value.find(h=>h.id===a);u&&(u.completed=!u.completed)},jt=a=>{const u=d.value.findIndex(h=>h.id===a);u>-1&&d.value.splice(u,1)},Ut=a=>{dt.value={id:a.id,text:a.text,projectId:a.projectId,type:a.type,priority:a.priority,importance:a.importance,urgency:a.urgency,startTime:a.startTime?Re(new Date(a.startTime)):"",endTime:a.endTime?Re(new Date(a.endTime)):"",completed:a.completed,timerDuration:a.timerDuration},qt.value=!0},Re=a=>{const u=a.getFullYear(),h=String(a.getMonth()+1).padStart(2,"0"),g=String(a.getDate()).padStart(2,"0"),v=String(a.getHours()).padStart(2,"0"),b=String(a.getMinutes()).padStart(2,"0");return`${u}-${h}-${g}T${v}:${b}`},tn=()=>{qt.value=!1,dt.value={id:null,text:"",projectId:"",type:"development",priority:"medium",importance:"medium",urgency:"medium",startTime:"",endTime:"",completed:!1,timerDuration:null}},Bi=()=>{if(!dt.value.text.trim()){ot("任务内容不能为空","error");return}if(!dt.value.projectId){ot("请选择所属项目","error");return}const a=d.value.findIndex(h=>h.id===dt.value.id);if(a===-1){ot("任务不存在","error");return}const u=d.value[a];u.text=dt.value.text.trim(),u.projectId=dt.value.projectId,u.type=dt.value.type,u.priority=dt.value.priority,u.importance=dt.value.importance,u.urgency=dt.value.urgency,u.completed=dt.value.completed,dt.value.startTime?u.startTime=new Date(dt.value.startTime).toISOString():u.startTime=null,dt.value.endTime?u.endTime=new Date(dt.value.endTime).toISOString():u.endTime=null,dt.value.timerDuration!==null&&(u.timerDuration=dt.value.timerDuration),ot("任务编辑成功","success"),tn()},zi=a=>{const h=Re(new Date);a==="start"?dt.value.startTime=h:a==="end"&&(dt.value.endTime=h)},Yi=a=>{a==="start"?dt.value.startTime="":a==="end"&&(dt.value.endTime="")},Ji=()=>{dt.value.timerDuration=null},Qi=a=>({high:"高",medium:"中",low:"低"})[a]||"中",Qs=a=>({requirement:"需求分析",documentation:"文档编写",development:"开发代码",testing:"测试",operation:"运维",other:"其他"})[a]||"其他",Gi=a=>{const u=new Date,h=new Date(a),g=Math.abs(u-h),v=Math.ceil(g/(1e3*60*60*24));return v===1?"今天":v===2?"昨天":v<=7?`${v-1}天前`:h.toLocaleDateString("zh-CN")},Xi=a=>new Date(a).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),Zi=(a,u)=>{const h=new Date(a),v=(new Date(u)-h)/(1e3*60*60);if(v<1)return`${Math.round(v*60)}分钟`;if(v<24)return`${v.toFixed(1)}小时`;{const b=Math.floor(v/24),H=v%24;return`${b}天${H.toFixed(1)}小时`}},Gs=a=>{if(a<60)return`${a}秒`;if(a<3600){const u=Math.floor(a/60),h=a%60;return`${u}分${h}秒`}else{const u=Math.floor(a/3600),h=Math.floor(a%3600/60);return`${u}小时${h}分`}},$i=a=>{if(!a)return"0秒";const u=to(a);return Gs(u)},tr=_t(()=>{const a=new Date(Q.value);switch(st.value){case"day":return a.toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric",weekday:"long"});case"week":const u=new Date(a);u.setDate(a.getDate()-a.getDay());const h=new Date(u);return h.setDate(u.getDate()+6),`${u.toLocaleDateString("zh-CN",{month:"long",day:"numeric"})} - ${h.toLocaleDateString("zh-CN",{month:"long",day:"numeric"})}`;case"month":return a.toLocaleDateString("zh-CN",{year:"numeric",month:"long"});default:return a.toLocaleDateString("zh-CN")}}),er=_t(()=>{const a=new Date(Q.value),u=new Date(a);u.setDate(a.getDate()-a.getDay());const h=[];for(let g=0;g<7;g++){const v=new Date(u);v.setDate(u.getDate()+g),h.push({date:v,name:["周日","周一","周二","周三","周四","周五","周六"][g]})}return h}),nr=_t(()=>{const a=new Date(Q.value),u=a.getFullYear(),h=a.getMonth(),g=new Date(u,h,1),v=new Date(g),b=g.getDay();v.setDate(g.getDate()-b);const H=[];for(let R=0;R<42;R++){const W=new Date(v);W.setDate(v.getDate()+R),H.push({date:W,dayNumber:W.getDate(),isCurrentMonth:W.getMonth()===h})}return H}),Cn=_t(()=>{const u=new Date(Q.value).toLocaleDateString("en-CA");return d.value.filter(h=>h.startTime?new Date(h.startTime).toLocaleDateString("en-CA")===u:!1)}),sr=_t(()=>Cn.value.filter(a=>a.completed)),or=_t(()=>{let a=0;return Cn.value.forEach(u=>{if(u.startTime&&u.endTime){const h=new Date(u.startTime),g=new Date(u.endTime);a+=(g-h)/(1e3*60*60)}else u.timerDuration&&(a+=u.timerDuration/3600)}),a.toFixed(1)}),ir=a=>{a.timerRunning?Zs(a):Xs(a)},Xs=a=>{a.timerRunning=!0,a.timerStartTime=new Date().toISOString(),Nt.value||(Nt.value=setInterval(()=>{d.value=[...d.value]},1e3))},Zs=a=>{a.timerRunning=!1;const u=new Date,h=new Date(a.timerStartTime),g=Math.floor((u-h)/1e3);a.timerDuration=(a.timerDuration||0)+g;const v=!a.startTime,b=!a.endTime;a.startTime||(a.startTime=a.timerStartTime),a.endTime||(a.endTime=u.toISOString()),a.timerStartTime=null,(v||b)&&ot(`已自动为任务"${a.text}"补充时间信息`,"success"),d.value.filter(R=>R.timerRunning).length===0&&Nt.value&&(clearInterval(Nt.value),Nt.value=null)},$s=()=>{d.value.filter(u=>u.timerRunning&&u.timerStartTime).length>0&&(Nt.value||(Nt.value=setInterval(()=>{d.value=[...d.value]},1e3)))},to=a=>{if(!a.timerRunning||!a.timerStartTime)return a.timerDuration||0;const u=new Date,h=new Date(a.timerStartTime),g=Math.floor((u-h)/1e3);return(a.timerDuration||0)+g},rr=()=>{const a=new Date(Q.value);switch(st.value){case"day":a.setDate(a.getDate()-1);break;case"week":a.setDate(a.getDate()-7);break;case"month":a.setMonth(a.getMonth()-1);break}Q.value=a.toISOString().split("T")[0]},lr=()=>{const a=new Date(Q.value);switch(st.value){case"day":a.setDate(a.getDate()+1);break;case"week":a.setDate(a.getDate()+7);break;case"month":a.setMonth(a.getMonth()+1);break}Q.value=a.toISOString().split("T")[0]},ar=a=>Cn.value.filter(u=>u.startTime?new Date(u.startTime).getHours()===a:!1),eo=a=>{const u=new Date(Q.value).toLocaleDateString("en-CA");return d.value.filter(h=>{if(h.startTime){const g=new Date(h.startTime).toLocaleDateString("en-CA"),v=new Date(h.startTime).getHours();return g===u&&v===a}return!1})},cr=a=>{const u=new Date(Q.value).toLocaleDateString("en-CA");return d.value.filter(h=>{if(h.startTime&&h.endTime){const g=new Date(h.startTime).toLocaleDateString("en-CA"),v=new Date(h.endTime).toLocaleDateString("en-CA"),b=new Date(h.startTime).getHours(),H=new Date(h.endTime).getHours(),R=g===u||v===u;let W=!1;return g===u&&v===u?W=a>=b&&a<=H:g===u?W=a>=b:v===u?W=a<=H:W=!0,R&&W}return!1})},dr=a=>{if(!a.startTime||!a.endTime)return{};const u=new Date(a.startTime),h=new Date(a.endTime),g=u.getHours();u.getMinutes(),h.getHours(),h.getMinutes();const v=0,b=(h-u)/(1e3*60*60),H=Math.max(b*100,20),R=(h-u)/(1e3*60),W=Math.max(R*(99/60),40),It=ur(a,g)*70,Gt=b>4;return{position:"absolute",left:`${v}%`,top:`${It}px`,width:`${H}%`,height:`${W}px`,zIndex:10,minWidth:"120px",maxWidth:"calc(100% - 10px)",borderRight:Gt?"2px dashed #3182ce":"none"}},ur=(a,u)=>eo(u).findIndex(g=>g.id===a.id),fr=(a,u)=>{const h=a.toLocaleDateString("en-CA");return d.value.filter(g=>{if(g.startTime){const v=new Date(g.startTime).toLocaleDateString("en-CA"),b=new Date(g.startTime).getHours();return v===h&&b===u}return!1})},no=a=>{const u=a.toLocaleDateString("en-CA");return d.value.filter(h=>h.startTime?new Date(h.startTime).toLocaleDateString("en-CA")===u:!1)},hr=a=>no(a).length,mr=a=>{const u=new Date;return a.toDateString()===u.toDateString()},gr=a=>a.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"}),pr=a=>new Date(a).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"}),vr=_t(()=>{const a=ae.value,u=a.getHours(),h=a.getMinutes();return u+h/60}),yr=a=>{const u=ae.value.getHours();return a===u},Tr=_t(()=>{const a={q1:[],q2:[],q3:[],q4:[]};return d.value.forEach(u=>{const h=u.importance||"medium",g=u.urgency||"medium";h==="high"&&g==="high"?a.q1.push(u):h==="high"&&g==="low"?a.q2.push(u):h==="low"&&g==="high"?a.q3.push(u):a.q4.push(u)}),a}),_r=a=>({q1:"重要且紧急",q2:"重要不紧急",q3:"不重要但紧急",q4:"不重要不紧急"})[a]||"",br=a=>({q1:"立即处理",q2:"计划安排",q3:"委托他人",q4:"删除或延迟"})[a]||"",wr=a=>({q1:"#ff4757",q2:"#2ed573",q3:"#ffa502",q4:"#747d8c"})[a]||"#747d8c",Dr=()=>{const a=en(),u=a.length,h=a.filter(b=>b.completed).length,g=kr(a),v=u>0?Math.round(h/u*100):0;return{totalTasks:u,completedTasks:h,totalHours:g.toFixed(1),completionRate:v}},en=()=>{const a=new Date(Qt.value),u=te.value;return d.value.filter(h=>{if(!h.startTime)return!1;const g=new Date(h.startTime),v=g.toLocaleDateString("en-CA"),b=a.toLocaleDateString("en-CA");switch(u){case"day":return v===b;case"week":const H=new Date(a);H.setDate(a.getDate()-a.getDay());const R=new Date(H);return R.setDate(H.getDate()+6),g>=H&&g<=R;case"month":const W=new Date(a.getFullYear(),a.getMonth(),1),gt=new Date(a.getFullYear(),a.getMonth()+1,0);return g>=W&&g<=gt;case"year":const It=new Date(a.getFullYear(),0,1),Gt=new Date(a.getFullYear(),11,31);return g>=It&&g<=Gt;default:return!1}})},kr=a=>{let u=0;return a.forEach(h=>{if(h.startTime&&h.endTime){const g=new Date(h.startTime),v=new Date(h.endTime);u+=(v-g)/(1e3*60*60)}else h.timerDuration&&(u+=h.timerDuration/3600)}),u},xr=()=>{const a=en(),u={};a.forEach(b=>{const H=Mt(b.projectId);u[H]=(u[H]||0)+1});const h=Object.values(u).reduce((b,H)=>b+H,0),g=["#667eea","#f093fb","#f5576c","#4facfe","#00f2fe","#43e97b"];let v=0;return Object.entries(u).map(([b,H],R)=>{const W=h>0?Math.round(H/h*100):0,gt=H/h*360,It=`${gt/360*502.4} ${502.4}`,Gt=-v*502.4/360;return v+=gt,{name:b,count:H,percentage:W,color:g[R%g.length],dashArray:It,dashOffset:Gt}})},Cr=()=>{const a=en(),u={};a.forEach(b=>{const H=Qs(b.type);u[H]=(u[H]||0)+1});const h=Object.values(u).reduce((b,H)=>b+H,0),g=["#ff6b6b","#4ecdc4","#45b7d1","#96ceb4","#ffeaa7","#dda0dd"];let v=0;return Object.entries(u).map(([b,H],R)=>{const W=h>0?Math.round(H/h*100):0,gt=H/h*360,It=`${gt/360*502.4} ${502.4}`,Gt=-v*502.4/360;return v+=gt,{name:b,count:H,percentage:W,color:g[R%g.length],dashArray:It,dashOffset:Gt}})},ss=()=>{const a=te.value,u=[],h=so();switch(a){case"day":for(let g=0;g<24;g++){qe(g);const b=30+(1-Or(g)/60)*150;u.push({x:60+g/23*700,y:Math.max(b,30)})}break;case"week":for(let g=0;g<7;g++){const b=30+(1-be(g)/h)*150;u.push({x:60+g/6*700,y:Math.max(b,30)})}break;case"month":for(let g=0;g<30;g++){const b=30+(1-be(g)/h)*150;u.push({x:60+g/29*700,y:Math.max(b,30)})}break;case"year":for(let g=0;g<12;g++){const b=30+(1-Sn(g)/h)*150;u.push({x:60+g/11*700,y:Math.max(b,30)})}break}return u},Sr=()=>{const a=ss();if(a.length===0)return"";let u=`M ${a[0].x} ${a[0].y}`;for(let h=1;h{const a=ss();if(a.length===0)return"";let u=`M ${a[0].x} ${a[0].y}`;for(let h=1;h{const a=te.value;let u=0;switch(a){case"day":for(let h=0;h<24;h++)u=Math.max(u,qe(h));break;case"week":for(let h=0;h<7;h++)u=Math.max(u,be(h));break;case"month":for(let h=0;h<30;h++)u=Math.max(u,be(h));break;case"year":for(let h=0;h<12;h++)u=Math.max(u,Sn(h));break}return Math.min(Math.max(u,1),1)},oo=()=>{const a=te.value;let u=0;switch(a){case"day":for(let h=0;h<24;h++)u=Math.max(u,qe(h));break;case"week":for(let h=0;h<7;h++)u=Math.max(u,be(h));break;case"month":for(let h=0;h<30;h++)u=Math.max(u,be(h));break;case"year":for(let h=0;h<12;h++)u=Math.max(u,Sn(h));break}return Math.min(Math.max(u,1),1)},Ir=()=>{switch(te.value){case"day":return["00:00","06:00","12:00","18:00","23:59"];case"week":const u=[],h=["周日","周一","周二","周三","周四","周五","周六"];for(let v=0;v<7;v++){const b=new Date(Q.value);b.setDate(b.getDate()-b.getDay()+v),u.push(h[b.getDay()])}return u;case"month":return["1日","5日","10日","15日","20日","25日","30日"];case"year":return["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];default:return[]}},Ar=()=>{const a=te.value,u=[],h=oo();switch(a){case"day":for(let g=0;g<24;g++){const v=qe(g),b=Math.max(v/h*150,5);u.push({x:60+g/23*700,y:180-b,width:25,height:b,value:v,color:v>0?"#667eea":"#e2e8f0"})}break;case"week":for(let g=0;g<7;g++){const v=be(g),b=Math.max(v/h*150,5);u.push({x:60+g/6*700,y:180-b,width:80,height:b,value:v,color:v>0?"#667eea":"#e2e8f0"})}break;case"month":for(let g=0;g<30;g++){const v=be(g),b=Math.max(v/h*150,5);u.push({x:60+g/29*700,y:180-b,width:20,height:b,value:v,color:v>0?"#667eea":"#e2e8f0"})}break;case"year":for(let g=0;g<12;g++){const v=Sn(g),b=Math.max(v/h*150,5);u.push({x:60+g/11*700,y:180-b,width:50,height:b,value:v,color:v>0?"#667eea":"#e2e8f0"})}break}return u},qe=a=>en().filter(h=>{if(h.startTime&&h.endTime){const g=new Date(h.startTime),v=new Date(h.endTime),b=g.getHours(),H=v.getHours();return b===a||b=a&&a-b>0}else if(h.startTime)return new Date(h.startTime).getHours()===a;return!1}).length,Or=a=>{const u=en();let h=0;return u.forEach(g=>{if(g.startTime&&g.endTime){const v=new Date(g.startTime),b=new Date(g.endTime),H=v.getHours(),R=b.getHours();if(H===a){const W=v.getMinutes();if(R===a){const gt=b.getMinutes();h+=Math.max(0,gt-W)}else h+=60-W}else if(H=a)if(R===a){const W=b.getMinutes();h+=W}else h+=60}else g.startTime&&new Date(g.startTime).getHours()===a&&(h+=30)}),Math.min(h,60)},Pr=a=>{const u=qe(a);return u===0?"#f7fafc":u<=2?"#4facfe":u<=4?"#667eea":"#f093fb"},be=a=>{const u=new Date(Qt.value),h=new Date(u);h.setDate(u.getDate()-a);const g=h.toLocaleDateString("en-CA");return d.value.filter(v=>{if(v.startTime&&v.endTime){const b=new Date(v.startTime),H=new Date(v.endTime),R=b.toLocaleDateString("en-CA"),W=H.toLocaleDateString("en-CA");if(R===g)return!0;if(R=g){const gt=new Date(R),It=new Date(g);if(Math.floor((It-gt)/(1e3*60*60*24))>0)return!0}return!1}else if(v.startTime)return new Date(v.startTime).toLocaleDateString("en-CA")===g;return!1}).length},Sn=a=>{const u=new Date(Qt.value),h=new Date(u.getFullYear(),u.getMonth()-a,1),g=`${h.getFullYear()}-${(h.getMonth()+1).toString().padStart(2,"0")}`;return d.value.filter(v=>{if(v.startTime&&v.endTime){const b=new Date(v.startTime),H=new Date(v.endTime),R=`${b.getFullYear()}-${(b.getMonth()+1).toString().padStart(2,"0")}`,W=`${H.getFullYear()}-${(H.getMonth()+1).toString().padStart(2,"0")}`;if(R===g)return!0;if(R=g){const gt=new Date(b.getFullYear(),b.getMonth(),1),It=new Date(h);if((It.getFullYear()-gt.getFullYear())*12+(It.getMonth()-gt.getMonth())>0)return!0}return!1}else if(v.startTime){const b=new Date(v.startTime);return`${b.getFullYear()}-${(b.getMonth()+1).toString().padStart(2,"0")}`===g}return!1}).length},Er=a=>{Q.value=a.toISOString().split("T")[0],st.value="day"},Mn=()=>{me(()=>{const a=ae.value.getHours(),u=document.querySelector(`[data-hour="${a}"]`);u&&u.scrollIntoView({behavior:"smooth",block:"center"})})},jr=a=>{Yt.value=a},Hr=a=>{Yt.value=null,Ut(a)},Fr=()=>{Jt.value=!Jt.value};Wn(async()=>{p.value||(p.value=!0),$s(),await U(),O.value&&await nt(),setInterval(async()=>{O.value&&await nt()},5*60*1e3),setInterval(()=>{ae.value=new Date},60*1e3),st.value==="day"&&setTimeout(Mn,500)}),Ks(()=>{Nt.value&&(clearInterval(Nt.value),Nt.value=null)});const Lr=(a,u)=>{const h=a.toLocaleDateString("en-CA");return d.value.filter(g=>{if(g.startTime&&g.endTime){const v=new Date(g.startTime).toLocaleDateString("en-CA"),b=new Date(g.endTime).toLocaleDateString("en-CA"),H=new Date(g.startTime).getHours(),R=new Date(g.endTime).getHours(),W=v===h||b===h;let gt=!1;return v===h&&b===h?gt=u>=H&&u<=R:v===h?gt=u>=H:b===h?gt=u<=R:gt=!0,W&>}return!1})},Rr=(a,u,h)=>{if(!a.startTime||!a.endTime)return{};const g=new Date(a.startTime),v=new Date(a.endTime);if(!(g.getHours()===h))return{display:"none"};g.getMinutes(),v.getMinutes(),g.getHours(),v.getHours();const R=0,W=(v-g)/(1e3*60*60),gt=Math.max(W*100,20),It=(v-g)/(1e3*60),Gt=Math.max(It*1,30),qr=io(u,h).findIndex(Vr=>Vr.id===a.id)*60,Nr=W>4;return{position:"absolute",left:`${R}%`,top:`${qr}px`,width:`${gt}%`,height:`${Gt}px`,zIndex:10,minWidth:"80px",maxWidth:"calc(100% - 5px)",borderRight:Nr?"2px dashed #3182ce":"none"}},io=(a,u)=>{const h=a.toLocaleDateString("en-CA");return d.value.filter(g=>{if(g.startTime){const v=new Date(g.startTime).toLocaleDateString("en-CA"),b=new Date(g.startTime).getHours();return v===h&&b===u}return!1})};return{tasks:d,projects:y,newTask:$,newTaskProject:et,newTaskType:at,newTaskPriority:q,newTaskImportance:ft,newTaskUrgency:Rt,newTaskStartTime:Ct,newTaskEndTime:bt,currentFilter:le,currentTypeFilter:J,currentProject:ct,currentMenu:wt,showAddProject:Ae,newProjectName:Te,showEditTaskModal:qt,editingTaskData:dt,filters:Le,totalTasks:Xe,completedTasks:kn,pendingTasks:_e,todayTasks:Ze,projectDistribution:$e,typeDistribution:f,totalWorkHours:m,averageTaskHours:T,filteredTasks:St,addTask:Tt,addProject:Vt,toggleTask:xn,deleteTask:jt,openEditTaskModal:Ut,closeEditTaskModal:tn,saveEditTask:Bi,setCurrentTime:zi,clearTime:Yi,clearTimer:Ji,toggleTimer:ir,startTimer:Xs,stopTimer:Zs,restoreTimerState:$s,getCurrentTimerDuration:to,notification:K,showNotification:ot,exportData:M,importData:x,clearData:E,clearDefaultData:F,handleFileImport:C,getPriorityText:Qi,getTypeText:Qs,getProjectName:Mt,getProjectTaskCount:Pe,formatDate:Gi,formatDateTime:Xi,calculateDuration:Zi,formatDuration:Gs,formatTimer:$i,calendarView:st,selectedDate:Q,selectedTask:Yt,calendarTitle:tr,weekDays:er,monthDays:nr,dayTasks:Cn,completedDayTasks:sr,dayWorkHours:or,previousPeriod:rr,nextPeriod:lr,getTasksForHour:ar,getTasksStartingAtHour:eo,getTasksActiveAtHour:cr,getTasksActiveForDayAndHour:Lr,getTasksStartingForDayAndHour:io,getTaskTimelineStyle:dr,getWeekTaskTimelineStyle:Rr,getTasksForDayAndHour:fr,getTasksForDay:no,getDayTaskCount:hr,isToday:mr,formatDayDate:gr,formatTime:pr,currentTimeLine:vr,isCurrentTimeLine:yr,selectDate:Er,selectTask:jr,editTaskFromCalendar:Hr,scrollToCurrentTime:Mn,quadrantTasks:Tr,getQuadrantTitle:_r,getQuadrantDescription:br,getQuadrantColor:wr,currentTimeDimension:te,timeDimensions:Oe,getOverviewData:Dr,getProjectChartData:xr,getTypeChartData:Cr,getTrendData:ss,getTrendPath:Sr,getTrendCurvePath:Mr,getMaxTaskCount:so,getMaxBarTaskCount:oo,getXAxisLabels:Ir,getTimeDistributionData:Ar,getHourTaskCount:qe,getHourColor:Pr,isFullscreen:Jt,toggleFullscreen:Fr,serverUrl:_,isOnline:O,lastServerUpdate:j,syncStatus:V,checkServerConnection:U,syncToServer:X,syncFromServer:lt,autoSync:nt,isLongTask:a=>(new Date(a.endTime)-new Date(a.startTime))/36e5>6,updateAnalysisData:()=>{},getSelectedDateText:()=>{const a=new Date(Qt.value);switch(te.value){case"day":return a.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"});case"week":const h=new Date(a);h.setDate(a.getDate()-a.getDay());const g=new Date(h);return g.setDate(h.getDate()+6),`${h.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"})} - ${g.toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"})}`;case"month":return a.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit"});case"year":return a.getFullYear().toString();default:return a.toLocaleDateString("zh-CN")}},previousDate:()=>{const a=new Date(Qt.value);a.setDate(a.getDate()-1),Qt.value=a.toISOString().split("T")[0]},nextDate:()=>{const a=new Date(Qt.value);a.setDate(a.getDate()+1),Qt.value=a.toISOString().split("T")[0]},goToToday:()=>{Qt.value=new Date().toISOString().split("T")[0]},fileInput:yt,switchToDayView:()=>{st.value="day",Mn()},switchToWeekView:()=>{st.value="week",Mn()},isAuthenticated:t,pinDigits:e,pinError:s,onPinInput:P,onPinKeydown:A,onPinPaste:I,getStoredPin:o,setStoredPin:c,focusHiddenInput:()=>{me(()=>{const a=document.querySelector(".hidden-input");a&&a.focus()})},onHiddenInput:a=>{const h=a.target.value.replace(/\D/g,"").slice(0,6).split("");e.value=[...h,"","","","","",""].slice(0,6),s.value="",h.length===6&&(S(),a.target.value="")},onHiddenKeydown:a=>{!/^\d$/.test(a.key)&&a.key!=="Backspace"&&a.key!=="Delete"&&a.key!=="Tab"&&a.key!=="Enter"&&!a.ctrlKey&&!a.metaKey&&a.preventDefault(),a.key==="Enter"&&a.target.value.length===6&&(S(),a.target.value="")}}}},Oc={key:0,class:"auth-container"},Pc={class:"auth-card"},Ec={class:"pin-input-container"},jc={class:"pin-input"},Hc=["onUpdate:modelValue"],Fc={key:0,class:"pin-error"},Lc={key:1,class:"app-container"},Rc={class:"header"},qc={class:"header-content"},Nc={class:"header-right"},Vc={class:"notification-content"},Uc={class:"notification-icon"},Kc={class:"notification-message"},Wc={class:"stats"},Bc={class:"stat-item"},zc={class:"stat-number"},Yc={class:"stat-item"},Jc={class:"stat-number"},Qc={class:"stat-item"},Gc={class:"stat-number"},Xc={class:"stat-item"},Zc={class:"stat-number"},$c={class:"menu-nav"},td={key:1,class:"menu-content"},ed={class:"project-section"},nd={class:"project-header"},sd={class:"project-list"},od=["onClick"],id={class:"project-name"},rd={class:"project-count"},ld={class:"modal-actions"},ad={class:"input-group"},cd=["value"],dd={class:"filters"},ud=["onClick"],fd={key:1,class:"todo-list"},hd=["onClick"],md={class:"todo-content"},gd={class:"todo-text"},pd={class:"todo-meta"},vd={class:"todo-time"},yd={key:0},Td={key:1},_d={key:0,class:"todo-duration"},bd={key:0,class:"long-task-indicator"},wd={key:1,class:"todo-timer"},Dd={key:0,class:"timer-running"},kd={key:1,class:"timer-stopped"},xd={class:"todo-actions"},Cd=["onClick","title"],Sd=["onClick"],Md=["onClick"],Id={key:2,class:"empty-state"},Ad={key:0},Od={key:1},Pd={key:2},Ed={key:2,class:"menu-content"},jd={class:"work-analysis"},Hd={class:"analysis-header"},Fd={class:"analysis-title"},Ld={class:"date-range-display"},Rd={class:"analysis-controls"},qd={class:"date-selector"},Nd={class:"date-controls"},Vd={class:"time-dimension-selector"},Ud=["onClick"],Kd={class:"overview-section"},Wd={class:"overview-grid"},Bd={class:"overview-card"},zd={class:"overview-content"},Yd={class:"overview-number"},Jd={class:"overview-card"},Qd={class:"overview-content"},Gd={class:"overview-number"},Xd={class:"overview-card"},Zd={class:"overview-content"},$d={class:"overview-number"},tu={class:"overview-card"},eu={class:"overview-content"},nu={class:"overview-number"},su={class:"charts-section"},ou={class:"charts-grid"},iu={class:"chart-card"},ru={class:"chart-header"},lu={class:"chart-legend"},au={class:"legend-label"},cu={class:"legend-value"},du={class:"pie-chart"},uu={width:"200",height:"200",viewBox:"0 0 200 200"},fu=["stroke","stroke-dasharray","stroke-dashoffset"],hu={class:"chart-card"},mu={class:"chart-header"},gu={class:"chart-legend"},pu={class:"legend-label"},vu={class:"legend-value"},yu={class:"pie-chart"},Tu={width:"200",height:"200",viewBox:"0 0 200 200"},_u=["stroke","stroke-dasharray","stroke-dashoffset"],bu={class:"chart-card full-width"},wu={class:"line-chart"},Du={width:"100%",height:"250",viewBox:"0 0 800 250"},ku=["y1","y2"],xu=["y"],Cu=["x"],Su=["y1","y2"],Mu=["cx","cy"],Iu=["d"],Au=["d"],Ou={class:"chart-card full-width"},Pu={class:"bar-chart"},Eu={width:"100%",height:"250",viewBox:"0 0 800 250"},ju=["y1","y2"],Hu=["y"],Fu=["x"],Lu=["y1","y2"],Ru=["x","y","width","height","fill"],qu=["x","y"],Nu={class:"chart-card full-width"},Vu={class:"time-blocks"},Uu={class:"time-period"},Ku={class:"period-blocks"},Wu={class:"time-label"},Bu={key:0,class:"task-count"},zu={class:"time-period"},Yu={class:"period-blocks"},Ju={class:"time-label"},Qu={key:0,class:"task-count"},Gu={key:3,class:"menu-content"},Xu={class:"quadrant-container"},Zu={class:"quadrant-grid"},$u={class:"quadrant-count"},tf={class:"quadrant-description"},ef={class:"quadrant-tasks"},nf=["onClick"],sf=["onClick"],of={key:0,class:"checkmark"},rf={class:"task-content"},lf={class:"task-text"},af={class:"task-meta"},cf={class:"task-project"},df={class:"task-type"},uf={class:"task-actions"},ff=["onClick"],hf=["onClick"],mf={key:0,class:"empty-quadrant"},gf={class:"quadrant-count"},pf={class:"quadrant-description"},vf={class:"quadrant-tasks"},yf=["onClick"],Tf=["onClick"],_f={key:0,class:"checkmark"},bf={class:"task-content"},wf={class:"task-text"},Df={class:"task-meta"},kf={class:"task-project"},xf={class:"task-type"},Cf={class:"task-actions"},Sf=["onClick"],Mf=["onClick"],If={key:0,class:"empty-quadrant"},Af={class:"quadrant-count"},Of={class:"quadrant-description"},Pf={class:"quadrant-tasks"},Ef=["onClick"],jf=["onClick"],Hf={key:0,class:"checkmark"},Ff={class:"task-content"},Lf={class:"task-text"},Rf={class:"task-meta"},qf={class:"task-project"},Nf={class:"task-type"},Vf={class:"task-actions"},Uf=["onClick"],Kf=["onClick"],Wf={key:0,class:"empty-quadrant"},Bf={class:"quadrant-count"},zf={class:"quadrant-description"},Yf={class:"quadrant-tasks"},Jf=["onClick"],Qf=["onClick"],Gf={key:0,class:"checkmark"},Xf={class:"task-content"},Zf={class:"task-text"},$f={class:"task-meta"},th={class:"task-project"},eh={class:"task-type"},nh={class:"task-actions"},sh=["onClick"],oh=["onClick"],ih={key:0,class:"empty-quadrant"},rh={key:4,class:"menu-content"},lh={class:"calendar-container"},ah={class:"calendar-nav"},ch={class:"calendar-title"},dh={class:"calendar-actions"},uh={class:"calendar-views"},fh={key:0,class:"day-view"},hh={class:"day-header"},mh={class:"day-stats"},gh={class:"stat"},ph={class:"stat"},vh={class:"stat"},yh={class:"day-timeline"},Th=["data-hour"],_h={class:"time-label"},bh={class:"time-content"},wh=["onClick"],Dh={class:"task-time"},kh={class:"task-text"},xh={class:"task-meta"},Ch={class:"task-project"},Sh={class:"task-type"},Mh={key:0,class:"task-duration"},Ih={key:0,class:"long-task-indicator"},Ah={key:1,class:"week-view"},Oh={class:"week-grid"},Ph={class:"week-header"},Eh={class:"day-name"},jh={class:"day-date"},Hh={class:"day-task-count"},Fh={class:"week-body"},Lh=["data-hour"],Rh={class:"time-label"},qh=["onClick"],Nh={class:"task-time"},Vh={class:"task-text"},Uh={key:0,class:"task-duration"},Kh={key:0,class:"long-task-indicator"},Wh={key:2,class:"month-view"},Bh={class:"month-grid"},zh={class:"month-header"},Yh={class:"month-body"},Jh=["onClick"],Qh={class:"day-number"},Gh={class:"day-tasks"},Xh=["onClick"],Zh={key:0,class:"more-tasks"},$h={class:"task-details"},tm={class:"detail-item"},em={class:"detail-item"},nm={class:"detail-item"},sm={class:"detail-item"},om={key:0,class:"detail-item"},im={key:1,class:"detail-item"},rm={key:2,class:"detail-item"},lm={key:3,class:"detail-item"},am={class:"detail-item"},cm={class:"modal-actions"},dm={key:5,class:"menu-content"},um={class:"data-management"},fm={class:"sync-status"},hm={class:"sync-info"},mm={key:0,class:"last-update"},gm={class:"sync-actions"},pm=["disabled"],vm=["disabled"],ym={class:"data-actions"},Tm={class:"modal-header"},_m={class:"modal-body"},bm={class:"edit-section"},wm={class:"form-group"},Dm={class:"form-row"},km={class:"form-group"},xm=["value"],Cm={class:"form-group"},Sm={class:"edit-section"},Mm={class:"form-row"},Im={class:"form-group"},Am={class:"form-group"},Om={class:"form-group"},Pm={class:"edit-section"},Em={class:"form-row"},jm={class:"form-group"},Hm={class:"form-group"},Fm={class:"time-actions"},Lm={key:0,class:"duration-display"},Rm={key:0,class:"edit-section"},qm={class:"timer-info"},Nm={class:"edit-section"},Vm={class:"status-toggle"},Um={class:"toggle-label"},Km={class:"toggle-text"},Wm={class:"modal-actions"};function Bm(t,e,s,n,i,l){return n.isAuthenticated?(w(),D("div",Lc,[r("div",{class:G(["container",{fullscreen:n.isFullscreen}])},[r("div",Rc,[r("div",qc,[e[73]||(e[73]=r("div",{class:"header-left"},[r("h1",null,"📝 滴答清单"),r("p",null,"高效管理您的任务,提升工作效率")],-1)),r("div",Nc,[r("button",{onClick:e[4]||(e[4]=(...o)=>n.toggleFullscreen&&n.toggleFullscreen(...o)),class:"btn btn-secondary fullscreen-btn"},k(n.isFullscreen?"🔄 退出全屏":"⛶ 全屏"),1)])])]),n.notification?(w(),D("div",{key:0,class:G(["notification",n.notification.type])},[r("div",Vc,[r("span",Uc,k(n.notification.type==="success"?"✅":n.notification.type==="error"?"❌":"ℹ️"),1),r("span",Kc,k(n.notification.message),1)])],2)):B("",!0),r("div",Wc,[r("div",Bc,[r("div",zc,k(n.totalTasks),1),e[74]||(e[74]=r("div",{class:"stat-label"},"总任务",-1))]),r("div",Yc,[r("div",Jc,k(n.completedTasks),1),e[75]||(e[75]=r("div",{class:"stat-label"},"已完成",-1))]),r("div",Qc,[r("div",Gc,k(n.pendingTasks),1),e[76]||(e[76]=r("div",{class:"stat-label"},"待完成",-1))]),r("div",Xc,[r("div",Zc,k(n.todayTasks),1),e[77]||(e[77]=r("div",{class:"stat-label"},"今日任务",-1))])]),r("div",$c,[r("button",{onClick:e[5]||(e[5]=o=>n.currentMenu="tasks"),class:G(["menu-btn",{active:n.currentMenu==="tasks"}])}," 📝 任务管理 ",2),r("button",{onClick:e[6]||(e[6]=o=>n.currentMenu="quadrant"),class:G(["menu-btn",{active:n.currentMenu==="quadrant"}])}," 🎯 四象限 ",2),r("button",{onClick:e[7]||(e[7]=o=>n.currentMenu="calendar"),class:G(["menu-btn",{active:n.currentMenu==="calendar"}])}," 📅 日历看板 ",2),r("button",{onClick:e[8]||(e[8]=o=>n.currentMenu="analysis"),class:G(["menu-btn",{active:n.currentMenu==="analysis"}])}," 📊 工作分析 ",2),r("button",{onClick:e[9]||(e[9]=o=>n.currentMenu="data"),class:G(["menu-btn",{active:n.currentMenu==="data"}])}," 💾 数据管理 ",2)]),n.currentMenu==="tasks"?(w(),D("div",td,[r("div",ed,[r("div",nd,[e[79]||(e[79]=r("h3",null,"📁 项目管理",-1)),r("button",{onClick:e[10]||(e[10]=o=>n.showAddProject=!0),class:"btn btn-secondary"},e[78]||(e[78]=[r("span",null,"➕",-1),Ue(" 新建项目 ",-1)]))]),r("div",sd,[(w(!0),D(z,null,tt(n.projects,o=>(w(),D("button",{key:o.id,onClick:c=>n.currentProject=o.id,class:G(["project-item",{active:n.currentProject===o.id}])},[r("span",id,k(o.name),1),r("span",rd,"("+k(n.getProjectTaskCount(o.id))+")",1)],10,od))),128))])]),n.showAddProject?(w(),D("div",{key:0,class:"modal-overlay",onClick:e[16]||(e[16]=o=>n.showAddProject=!1)},[r("div",{class:"modal",onClick:e[15]||(e[15]=At(()=>{},["stop"]))},[e[80]||(e[80]=r("h3",null,"新建项目",-1)),pt(r("input",{"onUpdate:modelValue":e[11]||(e[11]=o=>n.newProjectName=o),onKeyup:e[12]||(e[12]=Lo((...o)=>n.addProject&&n.addProject(...o),["enter"])),placeholder:"输入项目名称...",class:"modal-input"},null,544),[[de,n.newProjectName]]),r("div",ld,[r("button",{onClick:e[13]||(e[13]=o=>n.showAddProject=!1),class:"btn btn-secondary"},"取消"),r("button",{onClick:e[14]||(e[14]=(...o)=>n.addProject&&n.addProject(...o)),class:"btn btn-primary"},"创建")])])])):B("",!0),r("div",ad,[pt(r("input",{"onUpdate:modelValue":e[17]||(e[17]=o=>n.newTask=o),onKeyup:e[18]||(e[18]=Lo((...o)=>n.addTask&&n.addTask(...o),["enter"])),placeholder:"输入新任务...",type:"text"},null,544),[[de,n.newTask]]),pt(r("select",{"onUpdate:modelValue":e[19]||(e[19]=o=>n.newTaskProject=o),class:"btn btn-secondary"},[e[81]||(e[81]=r("option",{value:""},"📁 选择项目",-1)),(w(!0),D(z,null,tt(n.projects,o=>(w(),D("option",{key:o.id,value:o.id}," 📁 "+k(o.name),9,cd))),128))],512),[[Xt,n.newTaskProject]]),pt(r("select",{"onUpdate:modelValue":e[20]||(e[20]=o=>n.newTaskType=o),class:"btn btn-secondary"},e[82]||(e[82]=[fs('',6)]),512),[[Xt,n.newTaskType]]),pt(r("select",{"onUpdate:modelValue":e[21]||(e[21]=o=>n.newTaskPriority=o),class:"btn btn-secondary"},e[83]||(e[83]=[r("option",{value:"low"},"低优先级",-1),r("option",{value:"medium"},"中优先级",-1),r("option",{value:"high"},"高优先级",-1)]),512),[[Xt,n.newTaskPriority]]),pt(r("select",{"onUpdate:modelValue":e[22]||(e[22]=o=>n.newTaskImportance=o),class:"btn btn-secondary"},e[84]||(e[84]=[r("option",{value:"low"},"低重要性",-1),r("option",{value:"medium"},"中重要性",-1),r("option",{value:"high"},"高重要性",-1)]),512),[[Xt,n.newTaskImportance]]),pt(r("select",{"onUpdate:modelValue":e[23]||(e[23]=o=>n.newTaskUrgency=o),class:"btn btn-secondary"},e[85]||(e[85]=[r("option",{value:"low"},"低紧急性",-1),r("option",{value:"medium"},"中紧急性",-1),r("option",{value:"high"},"高紧急性",-1)]),512),[[Xt,n.newTaskUrgency]]),pt(r("input",{"onUpdate:modelValue":e[24]||(e[24]=o=>n.newTaskStartTime=o),type:"datetime-local",class:"btn btn-secondary",style:{"min-width":"180px"}},null,512),[[de,n.newTaskStartTime]]),pt(r("input",{"onUpdate:modelValue":e[25]||(e[25]=o=>n.newTaskEndTime=o),type:"datetime-local",class:"btn btn-secondary",style:{"min-width":"180px"}},null,512),[[de,n.newTaskEndTime]]),r("button",{onClick:e[26]||(e[26]=(...o)=>n.addTask&&n.addTask(...o)),class:"btn btn-primary"},e[86]||(e[86]=[r("span",null,"➕",-1),Ue(" 添加 ",-1)]))]),r("div",dd,[(w(!0),D(z,null,tt(n.filters,o=>(w(),D("button",{key:o.value,onClick:c=>n.currentFilter=o.value,class:G(["filter-btn",{active:n.currentFilter===o.value}])},k(o.label),11,ud))),128)),pt(r("select",{"onUpdate:modelValue":e[27]||(e[27]=o=>n.currentTypeFilter=o),class:"filter-btn",style:{"min-width":"120px"}},e[87]||(e[87]=[fs('',7)]),512),[[Xt,n.currentTypeFilter]]),r("button",{onClick:e[28]||(e[28]=o=>n.currentProject=""),class:G(["filter-btn",{active:n.currentProject===""}])}," 所有项目 ",2)]),n.filteredTasks.length>0?(w(),D("div",fd,[(w(!0),D(z,null,tt(n.filteredTasks,o=>(w(),D("div",{key:o.id,class:G(["todo-item",{completed:o.completed}])},[r("div",{class:G(["todo-checkbox",{checked:o.completed}]),onClick:c=>n.toggleTask(o.id)},null,10,hd),r("div",md,[r("div",gd,[r("span",null,k(o.text),1)]),r("div",pd,[r("span",{class:G(["todo-project",`project-${o.projectId}`])},k(n.getProjectName(o.projectId)),3),r("span",{class:G(["todo-type",`type-${o.type}`])},k(n.getTypeText(o.type)),3),r("span",{class:G(["todo-priority",`priority-${o.priority}`])},k(n.getPriorityText(o.priority)),3),r("span",vd,[o.startTime?(w(),D("span",yd,"🕐 "+k(n.formatDateTime(o.startTime)),1)):B("",!0),o.endTime?(w(),D("span",Td," - "+k(n.formatDateTime(o.endTime)),1)):B("",!0)]),o.startTime&&o.endTime?(w(),D("span",_d,[Ue(" ⏱️ "+k(n.calculateDuration(o.startTime,o.endTime))+" ",1),n.isLongTask(o)?(w(),D("span",bd,"⏱️")):B("",!0)])):B("",!0),o.timerRunning||o.timerDuration?(w(),D("span",wd,[o.timerRunning?(w(),D("span",Dd," ⏱️ "+k(n.formatTimer(o)),1)):o.timerDuration?(w(),D("span",kd," ⏱️ "+k(n.formatDuration(o.timerDuration)),1)):B("",!0)])):B("",!0)])]),r("div",xd,[!o.startTime||!o.endTime?(w(),D("button",{key:0,onClick:c=>n.toggleTimer(o),class:G(["btn-icon",o.timerRunning?"btn-stop":"btn-start"]),title:o.timerRunning?"停止计时":"开始计时"},k(o.timerRunning?"⏹️":"▶️"),11,Cd)):B("",!0),r("button",{onClick:c=>n.openEditTaskModal(o),class:"btn-icon btn-edit",title:"编辑任务"}," ✏️ ",8,Sd),r("button",{onClick:c=>n.deleteTask(o.id),class:"btn-icon btn-delete",title:"删除任务"}," 🗑️ ",8,Md)])],2))),128))])):(w(),D("div",Id,[e[88]||(e[88]=r("h3",null,"🎉 太棒了!",-1)),n.currentFilter==="all"?(w(),D("p",Ad," 您还没有任何任务。开始添加您的第一个任务吧! ")):n.currentFilter==="completed"?(w(),D("p",Od," 还没有完成的任务。继续加油! ")):n.currentFilter==="pending"?(w(),D("p",Pd," 所有任务都已完成!您真是太棒了! ")):B("",!0)]))])):B("",!0),n.currentMenu==="analysis"?(w(),D("div",Ed,[r("div",jd,[r("div",Hd,[r("div",Fd,[e[89]||(e[89]=r("h3",null,"📊 工作分析",-1)),r("div",Ld,k(n.getSelectedDateText()),1)]),r("div",Rd,[r("div",qd,[e[90]||(e[90]=r("label",null,"选择日期:",-1)),r("div",Nd,[r("button",{onClick:e[29]||(e[29]=(...o)=>n.previousDate&&n.previousDate(...o)),class:"date-nav-btn",title:"前一天"},"◀"),pt(r("input",{"onUpdate:modelValue":e[30]||(e[30]=o=>t.analysisSelectedDate=o),type:"date",class:"date-input",onChange:e[31]||(e[31]=(...o)=>n.updateAnalysisData&&n.updateAnalysisData(...o))},null,544),[[de,t.analysisSelectedDate]]),r("button",{onClick:e[32]||(e[32]=(...o)=>n.nextDate&&n.nextDate(...o)),class:"date-nav-btn",title:"后一天"},"▶"),r("button",{onClick:e[33]||(e[33]=(...o)=>n.goToToday&&n.goToToday(...o)),class:"date-nav-btn today-btn",title:"回到今天"},"今天")])]),r("div",Vd,[(w(!0),D(z,null,tt(n.timeDimensions,o=>(w(),D("button",{key:o.value,onClick:c=>n.currentTimeDimension=o.value,class:G(["dimension-btn",{active:n.currentTimeDimension===o.value}])},k(o.label),11,Ud))),128))])])]),r("div",Kd,[r("div",Wd,[r("div",Bd,[e[92]||(e[92]=r("div",{class:"overview-icon"},"📝",-1)),r("div",zd,[r("div",Yd,k(n.getOverviewData().totalTasks),1),e[91]||(e[91]=r("div",{class:"overview-label"},"总任务数",-1))])]),r("div",Jd,[e[94]||(e[94]=r("div",{class:"overview-icon"},"✅",-1)),r("div",Qd,[r("div",Gd,k(n.getOverviewData().completedTasks),1),e[93]||(e[93]=r("div",{class:"overview-label"},"已完成",-1))])]),r("div",Xd,[e[96]||(e[96]=r("div",{class:"overview-icon"},"⏱️",-1)),r("div",Zd,[r("div",$d,k(n.getOverviewData().totalHours)+"h",1),e[95]||(e[95]=r("div",{class:"overview-label"},"工作时长",-1))])]),r("div",tu,[e[98]||(e[98]=r("div",{class:"overview-icon"},"📈",-1)),r("div",eu,[r("div",nu,k(n.getOverviewData().completionRate)+"%",1),e[97]||(e[97]=r("div",{class:"overview-label"},"完成率",-1))])])])]),r("div",su,[r("div",ou,[r("div",iu,[r("div",ru,[e[99]||(e[99]=r("h4",null,"📊 项目占比",-1)),r("div",lu,[(w(!0),D(z,null,tt(n.getProjectChartData(),o=>(w(),D("div",{key:o.name,class:"legend-item"},[r("div",{class:"legend-color",style:Dt({backgroundColor:o.color})},null,4),r("span",au,k(o.name),1),r("span",cu,k(o.percentage)+"%",1)]))),128))])]),r("div",du,[(w(),D("svg",uu,[e[100]||(e[100]=r("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:"#f7fafc","stroke-width":"20"},null,-1)),(w(!0),D(z,null,tt(n.getProjectChartData(),(o,c)=>(w(),D("g",{key:o.name},[r("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:o.color,"stroke-width":"20","stroke-dasharray":o.dashArray,"stroke-dashoffset":o.dashOffset,transform:"rotate(-90 100 100)",class:"pie-segment"},null,8,fu)]))),128)),e[101]||(e[101]=r("text",{x:"100",y:"95","text-anchor":"middle",class:"pie-center-text",fill:"#4a5568","font-size":"12","font-weight":"600"}," 项目 ",-1)),e[102]||(e[102]=r("text",{x:"100",y:"110","text-anchor":"middle",class:"pie-center-text",fill:"#718096","font-size":"10"}," 分布 ",-1))]))])]),r("div",hu,[r("div",mu,[e[103]||(e[103]=r("h4",null,"📊 类型占比",-1)),r("div",gu,[(w(!0),D(z,null,tt(n.getTypeChartData(),o=>(w(),D("div",{key:o.name,class:"legend-item"},[r("div",{class:"legend-color",style:Dt({backgroundColor:o.color})},null,4),r("span",pu,k(o.name),1),r("span",vu,k(o.percentage)+"%",1)]))),128))])]),r("div",yu,[(w(),D("svg",Tu,[e[104]||(e[104]=r("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:"#f7fafc","stroke-width":"20"},null,-1)),(w(!0),D(z,null,tt(n.getTypeChartData(),(o,c)=>(w(),D("g",{key:o.name},[r("circle",{cx:"100",cy:"100",r:"80",fill:"none",stroke:o.color,"stroke-width":"20","stroke-dasharray":o.dashArray,"stroke-dashoffset":o.dashOffset,transform:"rotate(-90 100 100)",class:"pie-segment"},null,8,_u)]))),128)),e[105]||(e[105]=r("text",{x:"100",y:"95","text-anchor":"middle",class:"pie-center-text",fill:"#4a5568","font-size":"12","font-weight":"600"}," 类型 ",-1)),e[106]||(e[106]=r("text",{x:"100",y:"110","text-anchor":"middle",class:"pie-center-text",fill:"#718096","font-size":"10"}," 分布 ",-1))]))])]),r("div",bu,[e[110]||(e[110]=r("div",{class:"chart-header"},[r("h4",null,"📈 活动趋势")],-1)),r("div",wu,[(w(),D("svg",Du,[e[107]||(e[107]=r("defs",null,[r("linearGradient",{id:"lineGradient",x1:"0%",y1:"0%",x2:"0%",y2:"100%"},[r("stop",{offset:"0%",style:{"stop-color":"#667eea","stop-opacity":"0.8"}}),r("stop",{offset:"100%",style:{"stop-color":"#667eea","stop-opacity":"0.1"}})])],-1)),e[108]||(e[108]=r("line",{x1:"60",y1:"30",x2:"60",y2:"180",stroke:"#e2e8f0","stroke-width":"2"},null,-1)),(w(),D(z,null,tt(6,o=>r("g",{key:`y-${o}`},[r("line",{x1:55,y1:30+(o-1)*25,x2:60,y2:30+(o-1)*25,stroke:"#e2e8f0","stroke-width":"1"},null,8,ku),r("text",{x:"50",y:30+(o-1)*25+4,"text-anchor":"end","font-size":"10",fill:"#718096"},k(Math.max(0,n.getMaxTaskCount()-(o-1)*Math.ceil(n.getMaxTaskCount()/5))),9,xu)])),64)),e[109]||(e[109]=r("line",{x1:"60",y1:"180",x2:"760",y2:"180",stroke:"#e2e8f0","stroke-width":"2"},null,-1)),(w(!0),D(z,null,tt(n.getXAxisLabels(),(o,c)=>(w(),D("g",{key:`x-${c}`},[r("text",{x:60+c/(n.getXAxisLabels().length-1)*700,y:"195","text-anchor":"middle","font-size":"10",fill:"#718096"},k(o),9,Cu)]))),128)),(w(),D(z,null,tt(5,o=>r("g",{key:`grid-y-${o}`},[r("line",{x1:"60",y1:30+o*25,x2:"760",y2:30+o*25,stroke:"#f7fafc","stroke-width":"1","stroke-dasharray":"2,2"},null,8,Su)])),64)),(w(!0),D(z,null,tt(n.getTrendData(),(o,c)=>(w(),D("g",{key:c},[r("circle",{cx:o.x,cy:o.y,r:"5",fill:"#667eea",stroke:"white","stroke-width":"2",class:"trend-point"},null,8,Mu)]))),128)),r("path",{d:n.getTrendCurvePath(),fill:"none",stroke:"#667eea","stroke-width":"3",class:"trend-curve"},null,8,Iu),r("path",{d:n.getTrendPath(),fill:"url(#lineGradient)",opacity:"0.3"},null,8,Au)]))])]),r("div",Ou,[e[113]||(e[113]=r("div",{class:"chart-header"},[r("h4",null,"⏰ 时间分布")],-1)),r("div",Pu,[(w(),D("svg",Eu,[e[111]||(e[111]=r("line",{x1:"60",y1:"30",x2:"60",y2:"180",stroke:"#e2e8f0","stroke-width":"2"},null,-1)),(w(),D(z,null,tt(6,o=>r("g",{key:`bar-y-${o}`},[r("line",{x1:55,y1:30+(o-1)*25,x2:60,y2:30+(o-1)*25,stroke:"#e2e8f0","stroke-width":"1"},null,8,ju),r("text",{x:"50",y:30+(o-1)*25+4,"text-anchor":"end","font-size":"10",fill:"#718096"},k(Math.max(0,n.getMaxBarTaskCount()-(o-1)*Math.ceil(n.getMaxBarTaskCount()/5))),9,Hu)])),64)),e[112]||(e[112]=r("line",{x1:"60",y1:"180",x2:"760",y2:"180",stroke:"#e2e8f0","stroke-width":"2"},null,-1)),(w(),D(z,null,tt(24,o=>r("g",{key:`bar-x-${o-1}`},[r("text",{x:60+(o-1)/23*700,y:"195","text-anchor":"middle","font-size":"10",fill:"#718096"},k((o-1).toString().padStart(2,"0"))+":00 ",9,Fu)])),64)),(w(),D(z,null,tt(5,o=>r("g",{key:`bar-grid-y-${o}`},[r("line",{x1:"60",y1:30+o*25,x2:"760",y2:30+o*25,stroke:"#f7fafc","stroke-width":"1","stroke-dasharray":"2,2"},null,8,Lu)])),64)),(w(!0),D(z,null,tt(n.getTimeDistributionData(),(o,c)=>(w(),D("g",{key:c},[r("rect",{x:o.x,y:o.y,width:o.width,height:o.height,fill:o.color,rx:"2",class:"bar-item"},null,8,Ru),r("text",{x:o.x+o.width/2,y:o.y-5,"text-anchor":"middle","font-size":"10",fill:"#4a5568"},k(o.value),9,qu)]))),128))]))])]),r("div",Nu,[e[116]||(e[116]=r("div",{class:"chart-header"},[r("h4",null,"🕐 今日时间块")],-1)),r("div",Vu,[r("div",Uu,[e[114]||(e[114]=r("div",{class:"period-label"},"上午",-1)),r("div",Ku,[(w(),D(z,null,tt(12,o=>r("div",{key:`am-${o}`,class:G(["time-block",{"has-task":n.getHourTaskCount(o-1)>0}]),style:Dt({backgroundColor:n.getHourTaskCount(o-1)>0?n.getHourColor(o-1):"#f7fafc",opacity:n.getHourTaskCount(o-1)>0?.9:.3})},[r("div",Wu,k((o-1).toString().padStart(2,"0"))+":00",1),n.getHourTaskCount(o-1)>0?(w(),D("div",Bu,k(n.getHourTaskCount(o-1))+"个任务 ",1)):B("",!0)],6)),64))])]),r("div",zu,[e[115]||(e[115]=r("div",{class:"period-label"},"下午",-1)),r("div",Yu,[(w(),D(z,null,tt(12,o=>r("div",{key:`pm-${o}`,class:G(["time-block",{"has-task":n.getHourTaskCount(o+11)>0}]),style:Dt({backgroundColor:n.getHourTaskCount(o+11)>0?n.getHourColor(o+11):"#f7fafc",opacity:n.getHourTaskCount(o+11)>0?.9:.3})},[r("div",Ju,k((o+11).toString().padStart(2,"0"))+":00",1),n.getHourTaskCount(o+11)>0?(w(),D("div",Qu,k(n.getHourTaskCount(o+11))+"个任务 ",1)):B("",!0)],6)),64))])])])])])])])])):B("",!0),n.currentMenu==="quadrant"?(w(),D("div",Gu,[r("div",Xu,[e[117]||(e[117]=r("div",{class:"quadrant-header"},[r("h3",null,"🎯 四象限任务管理"),r("p",null,"按照重要性和紧急性对任务进行分类,提高工作效率")],-1)),r("div",Zu,[r("div",{class:"quadrant",style:Dt({borderColor:n.getQuadrantColor("q1")})},[r("div",{class:"quadrant-header",style:Dt({backgroundColor:n.getQuadrantColor("q1")})},[r("h4",null,k(n.getQuadrantTitle("q1")),1),r("span",$u,k(n.quadrantTasks.q1.length)+"个任务",1)],4),r("div",tf,k(n.getQuadrantDescription("q1")),1),r("div",ef,[(w(!0),D(z,null,tt(n.quadrantTasks.q1,o=>(w(),D("div",{key:o.id,class:G(["quadrant-task",{completed:o.completed}]),onClick:c=>n.selectTask(o)},[r("div",{class:"task-checkbox",onClick:At(c=>n.toggleTask(o.id),["stop"])},[o.completed?(w(),D("span",of,"✓")):B("",!0)],8,sf),r("div",rf,[r("div",lf,k(o.text),1),r("div",af,[r("span",cf,k(n.getProjectName(o.projectId)),1),r("span",df,k(n.getTypeText(o.type)),1)])]),r("div",uf,[r("button",{onClick:At(c=>n.openEditTaskModal(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,ff),r("button",{onClick:At(c=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,hf)])],10,nf))),128)),n.quadrantTasks.q1.length===0?(w(),D("div",mf," 暂无任务 ")):B("",!0)])],4),r("div",{class:"quadrant",style:Dt({borderColor:n.getQuadrantColor("q2")})},[r("div",{class:"quadrant-header",style:Dt({backgroundColor:n.getQuadrantColor("q2")})},[r("h4",null,k(n.getQuadrantTitle("q2")),1),r("span",gf,k(n.quadrantTasks.q2.length)+"个任务",1)],4),r("div",pf,k(n.getQuadrantDescription("q2")),1),r("div",vf,[(w(!0),D(z,null,tt(n.quadrantTasks.q2,o=>(w(),D("div",{key:o.id,class:G(["quadrant-task",{completed:o.completed}]),onClick:c=>n.selectTask(o)},[r("div",{class:"task-checkbox",onClick:At(c=>n.toggleTask(o.id),["stop"])},[o.completed?(w(),D("span",_f,"✓")):B("",!0)],8,Tf),r("div",bf,[r("div",wf,k(o.text),1),r("div",Df,[r("span",kf,k(n.getProjectName(o.projectId)),1),r("span",xf,k(n.getTypeText(o.type)),1)])]),r("div",Cf,[r("button",{onClick:At(c=>n.openEditTaskModal(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,Sf),r("button",{onClick:At(c=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,Mf)])],10,yf))),128)),n.quadrantTasks.q2.length===0?(w(),D("div",If," 暂无任务 ")):B("",!0)])],4),r("div",{class:"quadrant",style:Dt({borderColor:n.getQuadrantColor("q3")})},[r("div",{class:"quadrant-header",style:Dt({backgroundColor:n.getQuadrantColor("q3")})},[r("h4",null,k(n.getQuadrantTitle("q3")),1),r("span",Af,k(n.quadrantTasks.q3.length)+"个任务",1)],4),r("div",Of,k(n.getQuadrantDescription("q3")),1),r("div",Pf,[(w(!0),D(z,null,tt(n.quadrantTasks.q3,o=>(w(),D("div",{key:o.id,class:G(["quadrant-task",{completed:o.completed}]),onClick:c=>n.selectTask(o)},[r("div",{class:"task-checkbox",onClick:At(c=>n.toggleTask(o.id),["stop"])},[o.completed?(w(),D("span",Hf,"✓")):B("",!0)],8,jf),r("div",Ff,[r("div",Lf,k(o.text),1),r("div",Rf,[r("span",qf,k(n.getProjectName(o.projectId)),1),r("span",Nf,k(n.getTypeText(o.type)),1)])]),r("div",Vf,[r("button",{onClick:At(c=>n.openEditTaskModal(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,Uf),r("button",{onClick:At(c=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,Kf)])],10,Ef))),128)),n.quadrantTasks.q3.length===0?(w(),D("div",Wf," 暂无任务 ")):B("",!0)])],4),r("div",{class:"quadrant",style:Dt({borderColor:n.getQuadrantColor("q4")})},[r("div",{class:"quadrant-header",style:Dt({backgroundColor:n.getQuadrantColor("q4")})},[r("h4",null,k(n.getQuadrantTitle("q4")),1),r("span",Bf,k(n.quadrantTasks.q4.length)+"个任务",1)],4),r("div",zf,k(n.getQuadrantDescription("q4")),1),r("div",Yf,[(w(!0),D(z,null,tt(n.quadrantTasks.q4,o=>(w(),D("div",{key:o.id,class:G(["quadrant-task",{completed:o.completed}]),onClick:c=>n.selectTask(o)},[r("div",{class:"task-checkbox",onClick:At(c=>n.toggleTask(o.id),["stop"])},[o.completed?(w(),D("span",Gf,"✓")):B("",!0)],8,Qf),r("div",Xf,[r("div",Zf,k(o.text),1),r("div",$f,[r("span",th,k(n.getProjectName(o.projectId)),1),r("span",eh,k(n.getTypeText(o.type)),1)])]),r("div",nh,[r("button",{onClick:At(c=>n.openEditTaskModal(o),["stop"]),class:"btn-icon btn-edit"},"✏️",8,sh),r("button",{onClick:At(c=>n.deleteTask(o.id),["stop"]),class:"btn-icon btn-delete"},"🗑️",8,oh)])],10,Jf))),128)),n.quadrantTasks.q4.length===0?(w(),D("div",ih," 暂无任务 ")):B("",!0)])],4)])])])):B("",!0),n.currentMenu==="calendar"?(w(),D("div",rh,[r("div",lh,[r("div",ah,[r("button",{onClick:e[34]||(e[34]=(...o)=>n.previousPeriod&&n.previousPeriod(...o)),class:"btn btn-secondary"}," ◀️ 上期 "),r("h3",ch,k(n.calendarTitle),1),r("div",dh,[r("button",{onClick:e[35]||(e[35]=(...o)=>n.scrollToCurrentTime&&n.scrollToCurrentTime(...o)),class:"btn btn-secondary current-time-btn",title:"滚动到当前时间"}," 🕐 当前时间 "),r("button",{onClick:e[36]||(e[36]=(...o)=>n.nextPeriod&&n.nextPeriod(...o)),class:"btn btn-secondary"}," 下期 ▶️ ")])]),r("div",uh,[r("button",{onClick:e[37]||(e[37]=(...o)=>n.switchToDayView&&n.switchToDayView(...o)),class:G(["view-btn",{active:n.calendarView==="day"}])}," 日视图 ",2),r("button",{onClick:e[38]||(e[38]=(...o)=>n.switchToWeekView&&n.switchToWeekView(...o)),class:G(["view-btn",{active:n.calendarView==="week"}])}," 周视图 ",2),r("button",{onClick:e[39]||(e[39]=o=>n.calendarView="month"),class:G(["view-btn",{active:n.calendarView==="month"}])}," 月视图 ",2)]),n.calendarView==="day"?(w(),D("div",fh,[r("div",hh,[r("h4",null,k(n.formatDate(n.selectedDate)),1),r("div",mh,[r("span",gh,"任务: "+k(n.dayTasks.length),1),r("span",ph,"已完成: "+k(n.completedDayTasks.length),1),r("span",vh,"工作时长: "+k(n.dayWorkHours)+"小时",1)])]),r("div",yh,[(w(),D(z,null,tt(24,o=>r("div",{key:o,class:G(["time-slot",{"current-time":n.isCurrentTimeLine(o-1)}]),"data-hour":o-1},[r("div",_h,k((o-1).toString().padStart(2,"0"))+":00",1),r("div",bh,[(w(!0),D(z,null,tt(n.getTasksStartingAtHour(o-1),c=>(w(),D("div",{key:c.id,class:G(["timeline-task",{completed:c.completed}]),style:Dt(n.getTaskTimelineStyle(c)),onClick:d=>n.selectTask(c)},[r("div",Dh,k(n.formatTime(c.startTime)),1),r("div",kh,k(c.text),1),r("div",xh,[r("span",Ch,k(n.getProjectName(c.projectId)),1),r("span",Sh,k(n.getTypeText(c.type)),1)]),c.startTime&&c.endTime?(w(),D("div",Mh,[Ue(k(n.calculateDuration(c.startTime,c.endTime))+" ",1),n.isLongTask(c)?(w(),D("span",Ih,"⏱️")):B("",!0)])):B("",!0)],14,wh))),128))])],10,Th)),64))])])):B("",!0),n.calendarView==="week"?(w(),D("div",Ah,[r("div",Oh,[r("div",Ph,[e[118]||(e[118]=r("div",{class:"time-column"},"时间",-1)),(w(!0),D(z,null,tt(n.weekDays,o=>(w(),D("div",{key:o.date,class:G(["day-column",{today:n.isToday(o.date)}])},[r("div",Eh,k(o.name),1),r("div",jh,k(n.formatDayDate(o.date)),1),r("div",Hh,k(n.getDayTaskCount(o.date))+"个任务",1)],2))),128))]),r("div",Fh,[(w(),D(z,null,tt(24,o=>r("div",{key:o,class:G(["time-row",{"current-time":n.isCurrentTimeLine(o-1)}]),"data-hour":o-1},[r("div",Rh,k((o-1).toString().padStart(2,"0"))+":00",1),(w(!0),D(z,null,tt(n.weekDays,c=>(w(),D("div",{key:c.date,class:"day-cell"},[(w(!0),D(z,null,tt(n.getTasksStartingForDayAndHour(c.date,o-1),d=>(w(),D("div",{key:d.id,class:G(["week-task",{completed:d.completed}]),style:Dt(n.getWeekTaskTimelineStyle(d,c.date,o-1)),onClick:y=>n.selectTask(d)},[r("div",Nh,k(n.formatTime(d.startTime)),1),r("div",Vh,k(d.text),1),d.startTime&&d.endTime?(w(),D("div",Uh,[Ue(k(n.calculateDuration(d.startTime,d.endTime))+" ",1),n.isLongTask(d)?(w(),D("span",Kh,"⏱️")):B("",!0)])):B("",!0)],14,qh))),128))]))),128))],10,Lh)),64))])])])):B("",!0),n.calendarView==="month"?(w(),D("div",Wh,[r("div",Bh,[r("div",zh,[(w(),D(z,null,tt(["日","一","二","三","四","五","六"],o=>r("div",{key:o,class:"day-name"},k(o),1)),64))]),r("div",Yh,[(w(!0),D(z,null,tt(n.monthDays,o=>(w(),D("div",{key:o.date,class:G(["month-day",{"other-month":!o.isCurrentMonth,today:n.isToday(o.date),"has-tasks":n.getDayTaskCount(o.date)>0}]),onClick:c=>n.selectDate(o.date)},[r("div",Qh,k(o.dayNumber),1),r("div",Gh,[(w(!0),D(z,null,tt(n.getTasksForDay(o.date).slice(0,3),c=>(w(),D("div",{key:c.id,class:G(["month-task",{completed:c.completed}]),onClick:At(d=>n.selectTask(c),["stop"])},k(c.text),11,Xh))),128)),n.getDayTaskCount(o.date)>3?(w(),D("div",Zh," +"+k(n.getDayTaskCount(o.date)-3)+"个 ",1)):B("",!0)])],10,Jh))),128))])])])):B("",!0),n.selectedTask?(w(),D("div",{key:3,class:"modal-overlay",onClick:e[43]||(e[43]=o=>n.selectedTask=null)},[r("div",{class:"modal task-modal",onClick:e[42]||(e[42]=At(()=>{},["stop"]))},[e[128]||(e[128]=r("h3",null,"任务详情",-1)),r("div",$h,[r("div",tm,[e[119]||(e[119]=r("label",null,"任务内容:",-1)),r("span",null,k(n.selectedTask.text),1)]),r("div",em,[e[120]||(e[120]=r("label",null,"所属项目:",-1)),r("span",null,k(n.getProjectName(n.selectedTask.projectId)),1)]),r("div",nm,[e[121]||(e[121]=r("label",null,"任务类型:",-1)),r("span",null,k(n.getTypeText(n.selectedTask.type)),1)]),r("div",sm,[e[122]||(e[122]=r("label",null,"优先级:",-1)),r("span",null,k(n.getPriorityText(n.selectedTask.priority)),1)]),n.selectedTask.startTime?(w(),D("div",om,[e[123]||(e[123]=r("label",null,"开始时间:",-1)),r("span",null,k(n.formatDateTime(n.selectedTask.startTime)),1)])):B("",!0),n.selectedTask.endTime?(w(),D("div",im,[e[124]||(e[124]=r("label",null,"结束时间:",-1)),r("span",null,k(n.formatDateTime(n.selectedTask.endTime)),1)])):B("",!0),n.selectedTask.startTime&&n.selectedTask.endTime?(w(),D("div",rm,[e[125]||(e[125]=r("label",null,"工作时长:",-1)),r("span",null,k(n.calculateDuration(n.selectedTask.startTime,n.selectedTask.endTime)),1)])):B("",!0),n.selectedTask.timerDuration?(w(),D("div",lm,[e[126]||(e[126]=r("label",null,"计时时长:",-1)),r("span",null,k(n.formatDuration(n.selectedTask.timerDuration)),1)])):B("",!0),r("div",am,[e[127]||(e[127]=r("label",null,"状态:",-1)),r("span",{class:G({completed:n.selectedTask.completed})},k(n.selectedTask.completed?"已完成":"进行中"),3)])]),r("div",cm,[r("button",{onClick:e[40]||(e[40]=o=>n.selectedTask=null),class:"btn btn-secondary"},"关闭"),r("button",{onClick:e[41]||(e[41]=o=>n.editTaskFromCalendar(n.selectedTask)),class:"btn btn-primary"},"编辑")])])])):B("",!0)])])):B("",!0),n.currentMenu==="data"?(w(),D("div",dm,[r("div",um,[e[129]||(e[129]=r("h3",null,"💾 数据管理",-1)),r("div",fm,[r("div",hm,[r("span",{class:G(["sync-indicator",{online:n.isOnline,offline:!n.isOnline}])},k(n.isOnline?"🟢 服务器在线":"🔴 服务器离线"),3),n.lastServerUpdate?(w(),D("span",mm," 最后同步: "+k(n.formatDateTime(n.lastServerUpdate)),1)):B("",!0)]),r("div",gm,[r("button",{onClick:e[44]||(e[44]=(...o)=>n.checkServerConnection&&n.checkServerConnection(...o)),class:"btn btn-secondary"}," 🔄 检查连接 "),r("button",{onClick:e[45]||(e[45]=(...o)=>n.syncToServer&&n.syncToServer(...o)),disabled:!n.isOnline||n.syncStatus==="syncing",class:"btn btn-primary"},k(n.syncStatus==="syncing"?"⏳ 同步中...":"📤 同步到服务器"),9,pm),r("button",{onClick:e[46]||(e[46]=(...o)=>n.syncFromServer&&n.syncFromServer(...o)),disabled:!n.isOnline||n.syncStatus==="syncing",class:"btn btn-primary"},k(n.syncStatus==="syncing"?"⏳ 同步中...":"📥 从服务器同步"),9,vm)])]),r("div",ym,[r("button",{onClick:e[47]||(e[47]=(...o)=>n.exportData&&n.exportData(...o)),class:"btn btn-secondary"}," 📤 导出数据 "),r("button",{onClick:e[48]||(e[48]=(...o)=>n.importData&&n.importData(...o)),class:"btn btn-secondary"}," 📥 导入数据 "),r("button",{onClick:e[49]||(e[49]=(...o)=>n.clearData&&n.clearData(...o)),class:"btn btn-secondary"}," 🗑️ 清空数据 "),r("button",{onClick:e[50]||(e[50]=(...o)=>n.clearDefaultData&&n.clearDefaultData(...o)),class:"btn btn-secondary"}," 🧹 清除默认数据 "),r("input",{ref:"fileInput",type:"file",accept:".json",onChange:e[51]||(e[51]=(...o)=>n.handleFileImport&&n.handleFileImport(...o)),style:{display:"none"}},null,544)])])])):B("",!0),n.showEditTaskModal?(w(),D("div",{key:6,class:"modal-overlay",onClick:e[70]||(e[70]=(...o)=>n.closeEditTaskModal&&n.closeEditTaskModal(...o))},[r("div",{class:"modal edit-task-modal",onClick:e[69]||(e[69]=At(()=>{},["stop"]))},[r("div",Tm,[e[130]||(e[130]=r("h3",null,"✏️ 编辑任务",-1)),r("button",{onClick:e[52]||(e[52]=(...o)=>n.closeEditTaskModal&&n.closeEditTaskModal(...o)),class:"btn-close"},"✕")]),r("div",_m,[r("div",bm,[e[136]||(e[136]=r("h4",null,"📝 基本信息",-1)),r("div",wm,[e[131]||(e[131]=r("label",null,"任务内容:",-1)),pt(r("input",{"onUpdate:modelValue":e[53]||(e[53]=o=>n.editingTaskData.text=o),type:"text",placeholder:"输入任务内容...",class:"form-input"},null,512),[[de,n.editingTaskData.text]])]),r("div",Dm,[r("div",km,[e[133]||(e[133]=r("label",null,"所属项目:",-1)),pt(r("select",{"onUpdate:modelValue":e[54]||(e[54]=o=>n.editingTaskData.projectId=o),class:"form-select"},[e[132]||(e[132]=r("option",{value:""},"📁 选择项目",-1)),(w(!0),D(z,null,tt(n.projects,o=>(w(),D("option",{key:o.id,value:o.id}," 📁 "+k(o.name),9,xm))),128))],512),[[Xt,n.editingTaskData.projectId]])]),r("div",Cm,[e[135]||(e[135]=r("label",null,"任务类型:",-1)),pt(r("select",{"onUpdate:modelValue":e[55]||(e[55]=o=>n.editingTaskData.type=o),class:"form-select"},e[134]||(e[134]=[fs('',6)]),512),[[Xt,n.editingTaskData.type]])])])]),r("div",Sm,[e[143]||(e[143]=r("h4",null,"🎯 优先级设置",-1)),r("div",Mm,[r("div",Im,[e[138]||(e[138]=r("label",null,"优先级:",-1)),pt(r("select",{"onUpdate:modelValue":e[56]||(e[56]=o=>n.editingTaskData.priority=o),class:"form-select"},e[137]||(e[137]=[r("option",{value:"low"},"低优先级",-1),r("option",{value:"medium"},"中优先级",-1),r("option",{value:"high"},"高优先级",-1)]),512),[[Xt,n.editingTaskData.priority]])]),r("div",Am,[e[140]||(e[140]=r("label",null,"重要性:",-1)),pt(r("select",{"onUpdate:modelValue":e[57]||(e[57]=o=>n.editingTaskData.importance=o),class:"form-select"},e[139]||(e[139]=[r("option",{value:"low"},"低重要性",-1),r("option",{value:"medium"},"中重要性",-1),r("option",{value:"high"},"高重要性",-1)]),512),[[Xt,n.editingTaskData.importance]])]),r("div",Om,[e[142]||(e[142]=r("label",null,"紧急性:",-1)),pt(r("select",{"onUpdate:modelValue":e[58]||(e[58]=o=>n.editingTaskData.urgency=o),class:"form-select"},e[141]||(e[141]=[r("option",{value:"low"},"低紧急性",-1),r("option",{value:"medium"},"中紧急性",-1),r("option",{value:"high"},"高紧急性",-1)]),512),[[Xt,n.editingTaskData.urgency]])])])]),r("div",Pm,[e[146]||(e[146]=r("h4",null,"🕐 时间设置",-1)),r("div",Em,[r("div",jm,[e[144]||(e[144]=r("label",null,"开始时间:",-1)),pt(r("input",{"onUpdate:modelValue":e[59]||(e[59]=o=>n.editingTaskData.startTime=o),type:"datetime-local",class:"form-input"},null,512),[[de,n.editingTaskData.startTime]])]),r("div",Hm,[e[145]||(e[145]=r("label",null,"结束时间:",-1)),pt(r("input",{"onUpdate:modelValue":e[60]||(e[60]=o=>n.editingTaskData.endTime=o),type:"datetime-local",class:"form-input"},null,512),[[de,n.editingTaskData.endTime]])])]),r("div",Fm,[r("button",{onClick:e[61]||(e[61]=o=>n.setCurrentTime("start")),class:"btn btn-secondary btn-sm"}," 🕐 设为当前时间 "),r("button",{onClick:e[62]||(e[62]=o=>n.setCurrentTime("end")),class:"btn btn-secondary btn-sm"}," 🕐 设为当前时间 "),r("button",{onClick:e[63]||(e[63]=o=>n.clearTime("start")),class:"btn btn-secondary btn-sm"}," 🗑️ 清除开始时间 "),r("button",{onClick:e[64]||(e[64]=o=>n.clearTime("end")),class:"btn btn-secondary btn-sm"}," 🗑️ 清除结束时间 ")]),n.editingTaskData.startTime&&n.editingTaskData.endTime?(w(),D("div",Lm,[r("span",null,"⏱️ 预计时长: "+k(n.calculateDuration(n.editingTaskData.startTime,n.editingTaskData.endTime)),1)])):B("",!0)]),n.editingTaskData.timerDuration?(w(),D("div",Rm,[e[147]||(e[147]=r("h4",null,"⏱️ 计时器信息",-1)),r("div",qm,[r("span",null,"累计计时: "+k(n.formatDuration(n.editingTaskData.timerDuration)),1),r("button",{onClick:e[65]||(e[65]=(...o)=>n.clearTimer&&n.clearTimer(...o)),class:"btn btn-secondary btn-sm"}," 🗑️ 清除计时 ")])])):B("",!0),r("div",Nm,[e[149]||(e[149]=r("h4",null,"📊 状态设置",-1)),r("div",Vm,[r("label",Um,[pt(r("input",{type:"checkbox","onUpdate:modelValue":e[66]||(e[66]=o=>n.editingTaskData.completed=o),class:"toggle-input"},null,512),[[nc,n.editingTaskData.completed]]),e[148]||(e[148]=r("span",{class:"toggle-slider"},null,-1)),r("span",Km,k(n.editingTaskData.completed?"已完成":"进行中"),1)])])])]),r("div",Wm,[r("button",{onClick:e[67]||(e[67]=(...o)=>n.closeEditTaskModal&&n.closeEditTaskModal(...o)),class:"btn btn-secondary"},"取消"),r("button",{onClick:e[68]||(e[68]=(...o)=>n.saveEditTask&&n.saveEditTask(...o)),class:"btn btn-primary"},"保存")])])])):B("",!0)],2)])):(w(),D("div",Oc,[r("div",Pc,[e[72]||(e[72]=r("div",{class:"auth-header"},[r("h2",null,"🔒 工作时间管理"),r("p",null,"请输入访问密码")],-1)),r("div",Ec,[r("div",jc,[(w(),D(z,null,tt(6,(o,c)=>pt(r("input",{key:c,ref_for:!0,ref:`pinInput${c}`,"onUpdate:modelValue":d=>n.pinDigits[c]=d,type:"text",maxlength:"1",class:"pin-digit",readonly:"",onClick:e[0]||(e[0]=(...d)=>n.focusHiddenInput&&n.focusHiddenInput(...d))},null,8,Hc),[[de,n.pinDigits[c]]])),64))]),r("input",{ref:"hiddenInput",type:"text",class:"hidden-input",onInput:e[1]||(e[1]=(...o)=>n.onHiddenInput&&n.onHiddenInput(...o)),onKeydown:e[2]||(e[2]=(...o)=>n.onHiddenKeydown&&n.onHiddenKeydown(...o)),onPaste:e[3]||(e[3]=(...o)=>n.onPinPaste&&n.onPinPaste(...o)),autocomplete:"off",maxlength:"6"},null,544),n.pinError?(w(),D("div",Fc,k(n.pinError),1)):B("",!0),e[71]||(e[71]=r("div",{class:"pin-hint"}," 默认密码:961031 ",-1))])])]))}const zm=Ic(Ac,[["render",Bm],["__scopeId","data-v-cdf0d653"]]);ac(zm).mount("#app"); diff --git a/dist/assets/index-d9a96dc9.css b/dist/assets/index-d9a96dc9.css deleted file mode 100644 index 678b732..0000000 --- a/dist/assets/index-d9a96dc9.css +++ /dev/null @@ -1 +0,0 @@ -.edit-input[data-v-a88cc1f2]{width:100%;padding:8px 12px;border:2px solid #667eea;border-radius:8px;font-size:1.1rem;font-weight:500;color:#2d3748;background:white}.edit-input[data-v-a88cc1f2]:focus{outline:none;box-shadow:0 0 0 3px #667eea1a}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;color:#333}#app{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:20px;overflow-x:hidden}.container{background:white;border-radius:20px;box-shadow:0 20px 40px #0000001a;padding:30px;width:100%;max-width:800px;min-height:80vh;overflow-x:hidden;transition:all .3s ease}.container.fullscreen{max-width:100%;border-radius:0;box-shadow:none;margin:0;padding:20px;min-height:100vh}.container.fullscreen .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}.container.fullscreen .menu-nav{justify-content:center;gap:15px}.container.fullscreen .menu-btn{min-width:160px}.container.fullscreen .work-analysis .analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.container.fullscreen .calendar-container{max-width:100%}.container.fullscreen .week-view .week-grid{max-width:100%;overflow-x:auto}.container.fullscreen .month-view .month-grid{max-width:100%}.notification{position:fixed;top:20px;right:20px;z-index:1000;background:white;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:12px 16px;min-width:300px;max-width:400px;animation:slideIn .3s ease;border-left:4px solid}.notification.success{border-left-color:#4caf50}.notification.error{border-left-color:#f44336}.notification.info{border-left-color:#2196f3}.notification-content{display:flex;align-items:center;gap:8px}.notification-icon{font-size:16px}.notification-message{flex:1;font-size:14px;color:#333}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.header{margin-bottom:30px}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.header-left{text-align:left}.header-right{display:flex;align-items:center}.fullscreen-btn{background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.3);color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fullscreen-btn:hover{background:rgba(255,255,255,.3);border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.header h1{color:#4a5568;font-size:2.5rem;font-weight:700;margin-bottom:10px}.header p{color:#718096;font-size:1.1rem}.input-group{display:flex;gap:10px;margin-bottom:30px;flex-wrap:wrap}.input-group input{flex:1;min-width:200px;padding:15px 20px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s ease}.input-group select{min-width:120px;white-space:nowrap}.input-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.btn{padding:15px 25px;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.btn-secondary{background:#f7fafc;color:#4a5568;border:2px solid #e2e8f0}.btn-secondary:hover{background:#edf2f7;border-color:#cbd5e0}.todo-list{display:flex;flex-direction:column;gap:15px}.todo-item{display:flex;align-items:flex-start;gap:15px;padding:20px;background:#f7fafc;border-radius:15px;border:2px solid transparent;transition:all .3s ease;position:relative;flex-wrap:wrap}.todo-item:hover{border-color:#e2e8f0;transform:translateY(-2px);box-shadow:0 5px 15px #0000001a}.todo-item.completed{background:#f0fff4;border-color:#9ae6b4}.todo-item.completed .todo-text{text-decoration:line-through;color:#718096}.todo-checkbox{width:24px;height:24px;border:3px solid #cbd5e0;border-radius:50%;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.todo-checkbox.checked{background:#48bb78;border-color:#48bb78}.todo-checkbox.checked:after{content:"✓";color:#fff;font-weight:700;font-size:14px}.todo-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.todo-text{font-size:1.1rem;font-weight:500;color:#2d3748;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.todo-meta{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#718096;flex-wrap:wrap}.todo-priority{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;text-transform:uppercase}.priority-high{background:#fed7d7;color:#c53030}.priority-medium{background:#fef5e7;color:#d69e2e}.priority-low{background:#e6fffa;color:#319795}.todo-type{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;text-transform:uppercase}.type-requirement{background:#e6f3ff;color:#1e40af}.type-documentation{background:#f0f9ff;color:#0369a1}.type-development{background:#f0fdf4;color:#166534}.type-testing{background:#fef3c7;color:#d97706}.type-operation{background:#fdf2f8;color:#be185d}.type-other{background:#f3f4f6;color:#374151}.project-section{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.project-header h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.project-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.project-item{padding:10px 16px;border:2px solid #e2e8f0;background:white;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px}.project-item:hover{border-color:#667eea;color:#667eea}.project-item.active{background:#667eea;color:#fff;border-color:#667eea}.project-name{font-weight:600}.project-count{font-size:.8rem;opacity:.8}.todo-project{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600;background:#e6f3ff;color:#1e40af}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:white;padding:30px;border-radius:15px;box-shadow:0 20px 40px #0003;min-width:400px;max-width:90vw}.modal h3{margin:0 0 20px;color:#2d3748;font-size:1.3rem;font-weight:600}.modal-input{width:100%;padding:15px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;margin-bottom:20px;transition:all .3s ease}.modal-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.todo-actions{display:flex;gap:8px;opacity:0;transition:opacity .3s ease;flex-shrink:0}.todo-item:hover .todo-actions{opacity:1}.btn-icon{width:36px;height:36px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-size:1rem}.btn-edit{background:#ebf8ff;color:#3182ce}.btn-edit:hover{background:#bee3f8}.btn-delete{background:#fed7d7;color:#e53e3e}.btn-delete:hover{background:#feb2b2}.btn-start{background:#f0fdf4;color:#166534}.btn-start:hover{background:#dcfce7}.btn-stop{background:#fef2f2;color:#dc2626}.btn-stop:hover{background:#fee2e2}.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-btn{padding:8px 16px;border:2px solid #e2e8f0;background:white;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500}.filter-btn.active{background:#667eea;color:#fff;border-color:#667eea}.filter-btn:hover{border-color:#667eea;color:#667eea}.filter-btn.active:hover{color:#fff}.stats{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#f7fafc;border-radius:15px;margin-bottom:20px}.stat-item{text-align:center}.stat-number{font-size:1.5rem;font-weight:700;color:#2d3748}.stat-label{font-size:.9rem;color:#718096;margin-top:5px}.empty-state{text-align:center;padding:60px 20px;color:#718096}.empty-state h3{font-size:1.5rem;margin-bottom:10px;color:#4a5568}.empty-state p{font-size:1rem;line-height:1.6}@media (max-width: 768px){.container{margin:10px;padding:20px;min-height:auto;max-width:100%}.header h1{font-size:2rem}.input-group{flex-direction:column}.input-group input,.input-group select{min-width:auto;width:100%}.todo-item{padding:15px;flex-direction:column;align-items:flex-start}.todo-actions{opacity:1;align-self:flex-end}.filters{justify-content:center}.project-header{flex-direction:column;gap:15px;align-items:flex-start}.project-list{justify-content:flex-start}.todo-meta{flex-direction:column;align-items:flex-start;gap:5px}.analysis-grid{grid-template-columns:1fr}.work-analysis,.data-management{padding:15px}.data-actions{flex-direction:column;align-items:stretch}.data-actions .btn{min-width:auto}.menu-nav{flex-direction:column;align-items:stretch}.menu-btn{min-width:auto;width:100%}.calendar-nav{flex-direction:column;gap:15px}.calendar-actions{flex-direction:column;gap:5px}.calendar-title{font-size:1.2rem}.calendar-views{flex-wrap:wrap}.view-btn{flex:1;min-width:80px}.day-stats{flex-direction:column;gap:10px}.time-label{width:60px;font-size:.8rem}.week-header{flex-direction:column}.time-column{width:100%;border-right:none;border-bottom:1px solid rgba(255,255,255,.2)}.day-column{border-right:none;border-bottom:1px solid rgba(255,255,255,.2)}.time-row{flex-direction:column}.day-cell{border-right:none;border-bottom:1px solid #e2e8f0}.month-day{min-height:80px;padding:8px}.month-task{font-size:.7rem;padding:3px 4px}.header-content{flex-direction:column;text-align:center}.header-left{text-align:center}.fullscreen-btn{padding:8px 12px;font-size:.9rem}.container.fullscreen{padding:15px}.container.fullscreen .stats{grid-template-columns:repeat(2,1fr)}.container.fullscreen .work-analysis .analysis-grid{grid-template-columns:1fr}.sync-info{flex-direction:column;align-items:flex-start}.sync-actions{flex-direction:column}.sync-actions .btn{width:100%}.analysis-header{flex-direction:column;align-items:flex-start}.time-dimension-selector{flex-wrap:wrap}.overview-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.chart-card{padding:15px}.time-blocks{grid-template-columns:repeat(12,1fr);height:80px}.time-block{min-width:30px;font-size:.6rem}}@media (max-width: 480px){.container{margin:5px;padding:15px}.header h1{font-size:1.5rem}.header p{font-size:1rem}.project-item{padding:8px 12px;font-size:.8rem}.todo-item{padding:12px}.todo-text{font-size:1rem}.btn{padding:12px 20px;font-size:.9rem}.btn-icon{width:32px;height:32px}}.todo-time{font-size:.85rem;color:#6b7280}.todo-duration{background:#f3f4f6;color:#374151;padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600}.todo-timer{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:600}.timer-running{background:#fef3c7;color:#d97706;animation:pulse 2s infinite}.timer-stopped{background:#e6fffa;color:#319795}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.work-analysis{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0}.work-analysis h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 20px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.analysis-card{background:white;padding:20px;border-radius:12px;border:2px solid #e2e8f0;transition:all .3s ease}.analysis-card:hover{border-color:#667eea;box-shadow:0 5px 15px #0000001a}.analysis-title{font-size:1rem;font-weight:600;color:#2d3748;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #e2e8f0}.analysis-content{display:flex;flex-direction:column;gap:10px}.analysis-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.analysis-label{font-size:.9rem;color:#4a5568;font-weight:500}.analysis-value{font-size:.9rem;color:#2d3748;font-weight:600;background:#e6f3ff;padding:4px 8px;border-radius:6px}.data-management{margin-bottom:30px;padding:20px;background:#f8fafc;border-radius:15px;border:2px solid #e2e8f0}.data-management h3{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 20px}.data-actions{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.data-actions .btn{min-width:120px;justify-content:center}.sync-status{background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:20px}.sync-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px}.sync-indicator{font-weight:600;padding:6px 12px;border-radius:6px;font-size:.9rem}.sync-indicator.online{background:#f0fff4;color:#38a169;border:1px solid #9ae6b4}.sync-indicator.offline{background:#fed7d7;color:#e53e3e;border:1px solid #feb2b2}.last-update{font-size:.9rem;color:#4a5568}.sync-actions{display:flex;gap:10px;flex-wrap:wrap}.sync-actions .btn{min-width:140px;justify-content:center}.sync-actions .btn:disabled{opacity:.6;cursor:not-allowed}.menu-nav{display:flex;gap:10px;margin-bottom:30px;justify-content:center;flex-wrap:wrap}.menu-btn{padding:12px 24px;border:2px solid #e2e8f0;background:white;border-radius:12px;cursor:pointer;transition:all .3s ease;font-size:1rem;font-weight:600;color:#4a5568;min-width:140px}.menu-btn:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px);box-shadow:0 5px 15px #667eea33}.menu-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea;box-shadow:0 5px 15px #667eea4d}.menu-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.calendar-container{max-width:100%;margin:0 auto}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:15px;background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a}.calendar-actions{display:flex;gap:10px;align-items:center}.current-time-btn{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%)!important;color:#fff!important;border-color:#ff4757!important;font-weight:600}.current-time-btn:hover{background:linear-gradient(135deg,#ff4757 0%,#ff6b6b 100%)!important;transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b66}.calendar-title{margin:0;font-size:1.5rem;font-weight:600;color:#2d3748}.calendar-views{display:flex;gap:10px;margin-bottom:20px;justify-content:center}.view-btn{padding:10px 20px;border:2px solid #e2e8f0;background:white;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;color:#4a5568}.view-btn:hover{border-color:#667eea;color:#667eea}.view-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea}.day-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.day-header{padding:20px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.day-header h4{margin:0 0 10px;font-size:1.3rem}.day-stats{display:flex;gap:20px;flex-wrap:wrap}.day-stats .stat{font-size:.9rem;opacity:.9}.day-timeline{max-height:600px;overflow-y:auto}.time-slot{display:flex;border-bottom:1px solid #e2e8f0;min-height:60px;transition:all .3s ease}.time-slot.current-time{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%);border-bottom:2px solid #ff4757;box-shadow:0 2px 8px #ff6b6b4d}.time-slot.current-time .time-label{background:#ff4757;color:#fff;font-weight:600}.time-label{width:80px;padding:10px;background:#f7fafc;border-right:1px solid #e2e8f0;font-size:.9rem;color:#4a5568;display:flex;align-items:center;justify-content:center;font-weight:500}.time-content{flex:1;padding:5px;position:relative}.timeline-task{background:#ebf8ff;border-left:4px solid #3182ce;padding:8px 12px;margin:2px 0;border-radius:6px;cursor:pointer;transition:all .3s ease}.timeline-task:hover{background:#bee3f8;transform:translate(2px)}.timeline-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.task-time{font-size:.8rem;color:#4a5568;font-weight:500}.task-text{font-weight:500;color:#2d3748;margin:2px 0}.task-meta{display:flex;gap:8px;margin-top:4px}.task-meta span{font-size:.75rem;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.7)}.week-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.week-grid{display:flex;flex-direction:column}.week-header{display:flex;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.time-column{width:80px;padding:15px 10px;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2)}.day-column{flex:1;padding:15px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.2)}.day-column.today{background:rgba(255,255,255,.1)}.day-name{font-weight:600;margin-bottom:5px}.day-date{font-size:.9rem;opacity:.9}.day-task-count{font-size:.8rem;opacity:.8;margin-top:5px}.week-body{max-height:600px;overflow-y:auto}.time-row{display:flex;border-bottom:1px solid #e2e8f0;min-height:60px;transition:all .3s ease}.time-row.current-time{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e8e 100%);border-bottom:2px solid #ff4757;box-shadow:0 2px 8px #ff6b6b4d}.time-row.current-time .time-label{background:#ff4757;color:#fff;font-weight:600}.day-cell{flex:1;padding:5px;border-right:1px solid #e2e8f0;position:relative}.week-task{background:#ebf8ff;border-left:3px solid #3182ce;padding:6px 8px;margin:2px 0;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .3s ease}.week-task:hover{background:#bee3f8}.week-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.month-view{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.month-grid{display:flex;flex-direction:column}.month-header{display:grid;grid-template-columns:repeat(7,1fr);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.month-header .day-name{padding:15px 10px;text-align:center;font-weight:600;border-right:1px solid rgba(255,255,255,.2)}.month-body{display:grid;grid-template-columns:repeat(7,1fr)}.month-day{min-height:100px;padding:10px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;cursor:pointer;transition:all .3s ease;position:relative}.month-day:hover{background:#f7fafc}.month-day.other-month{background:#f7fafc;color:#a0aec0}.month-day.today{background:#ebf8ff;border:2px solid #3182ce}.month-day.has-tasks{background:#f0fff4}.day-number{font-weight:600;margin-bottom:8px;color:#2d3748}.day-tasks{display:flex;flex-direction:column;gap:2px}.month-task{background:#ebf8ff;border-left:2px solid #3182ce;padding:4px 6px;border-radius:3px;font-size:.75rem;cursor:pointer;transition:all .3s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-task:hover{background:#bee3f8}.month-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.more-tasks{font-size:.7rem;color:#4a5568;text-align:center;padding:2px;background:#e2e8f0;border-radius:3px}.task-modal{max-width:500px;width:90%}.task-details{margin:20px 0}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0}.detail-item:last-child{border-bottom:none}.detail-item label{font-weight:600;color:#4a5568;min-width:100px}.detail-item span{color:#2d3748;text-align:right}.detail-item span.completed{color:#38a169;font-weight:500}.work-analysis{max-width:1400px;margin:0 auto;padding:20px}.analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.analysis-header h3{margin:0;font-size:1.8rem;color:#2d3748}.time-dimension-selector{display:flex;gap:10px}.dimension-btn{padding:10px 20px;border:2px solid #e2e8f0;background:white;border-radius:8px;cursor:pointer;transition:all .3s ease;font-weight:500;color:#4a5568}.dimension-btn:hover{border-color:#667eea;color:#667eea}.dimension-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:#667eea}.overview-section{margin-bottom:30px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.overview-card{background:white;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;align-items:center;gap:15px;transition:all .3s ease}.overview-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.overview-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.overview-content{flex:1}.overview-number{font-size:2rem;font-weight:700;color:#2d3748;margin-bottom:5px}.overview-label{color:#4a5568;font-size:.9rem}.charts-section{margin-bottom:30px}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px}.chart-card{background:white;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;transition:all .3s ease}.chart-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.chart-card.full-width{grid-column:1 / -1}.chart-header{margin-bottom:20px}.chart-header h4{margin:0 0 15px;font-size:1.2rem;color:#2d3748}.chart-legend{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:5px;font-size:.9rem}.legend-color{width:12px;height:12px;border-radius:2px}.legend-label{color:#4a5568}.legend-value{color:#2d3748;font-weight:600}.pie-chart{display:flex;justify-content:center;align-items:center;height:200px}.line-chart{height:200px;overflow:hidden}.trend-point{transition:all .3s ease}.trend-point:hover{r:6;fill:#764ba2}.bar-chart{height:200px;overflow:hidden}.bar-item{transition:all .3s ease}.bar-item:hover{opacity:.8;transform:scaleY(1.05)}.time-blocks{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;height:120px;overflow-x:auto}.time-block{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:4px;font-size:.7rem;text-align:center;transition:all .3s ease;cursor:pointer;min-width:40px}.time-block:hover{transform:scale(1.05)}.time-block.has-task{border:1px solid rgba(0,0,0,.1)}.time-label{font-weight:600;margin-bottom:2px}.task-count{font-size:.6rem;opacity:.8}.quadrant-container{max-width:1200px;margin:0 auto;padding:20px}.quadrant-header{text-align:center;margin-bottom:30px}.quadrant-header h3{margin:0 0 10px;font-size:1.8rem;color:#2d3748}.quadrant-header p{margin:0;color:#4a5568;font-size:1rem}.quadrant-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}.quadrant{background:white;border-radius:12px;box-shadow:0 2px 10px #0000001a;border:2px solid;overflow:hidden;transition:all .3s ease}.quadrant:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.quadrant .quadrant-header{padding:15px 20px;color:#fff;text-align:left;margin:0}.quadrant .quadrant-header h4{margin:0 0 5px;font-size:1.2rem;font-weight:600}.quadrant-count{font-size:.9rem;opacity:.9}.quadrant-description{padding:10px 20px;background:#f7fafc;color:#4a5568;font-size:.9rem;font-style:italic;border-bottom:1px solid #e2e8f0}.quadrant-tasks{max-height:400px;overflow-y:auto;padding:10px}.quadrant-task{display:flex;align-items:center;padding:12px;margin-bottom:8px;background:#f7fafc;border-radius:8px;cursor:pointer;transition:all .3s ease;border-left:3px solid transparent}.quadrant-task:hover{background:#edf2f7;transform:translate(2px)}.quadrant-task.completed{background:#f0fff4;border-left-color:#38a169;opacity:.8}.quadrant-task.completed .task-text{text-decoration:line-through;color:#38a169}.task-checkbox{width:20px;height:20px;border:2px solid #cbd5e0;border-radius:4px;margin-right:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;flex-shrink:0}.task-checkbox:hover{border-color:#667eea}.task-checkbox .checkmark{color:#667eea;font-weight:700;font-size:14px}.task-content{flex:1;min-width:0}.task-text{font-weight:500;color:#2d3748;margin-bottom:4px;word-break:break-word}.task-meta{display:flex;gap:8px;flex-wrap:wrap}.task-meta span{font-size:.8rem;padding:2px 6px;border-radius:4px;background:#e2e8f0;color:#4a5568}.task-actions{display:flex;gap:5px;opacity:0;transition:opacity .3s ease}.quadrant-task:hover .task-actions{opacity:1}.empty-quadrant{text-align:center;padding:40px 20px;color:#a0aec0;font-style:italic}@media (max-width: 768px){.quadrant-grid{grid-template-columns:1fr;gap:15px}.quadrant-container{padding:15px}.quadrant-header h3{font-size:1.5rem}.quadrant-tasks{max-height:300px}.quadrant-task{padding:10px}.task-meta{flex-direction:column;gap:4px}} diff --git a/dist/index.html b/dist/index.html index 8e78588..be74369 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ 滴答清单 - 高效任务管理 - - + +
diff --git a/node_modules/.vite/deps/_metadata.json b/node_modules/.vite/deps/_metadata.json index bb45ef3..9283418 100644 --- a/node_modules/.vite/deps/_metadata.json +++ b/node_modules/.vite/deps/_metadata.json @@ -1,17 +1,17 @@ { - "hash": "82e16c66", - "browserHash": "24587afd", + "hash": "9ef95769", + "browserHash": "c23b1b70", "optimized": { "@vueuse/core": { "src": "../../@vueuse/core/index.mjs", "file": "@vueuse_core.js", - "fileHash": "b99e778b", + "fileHash": "0f82eab8", "needsInterop": false }, "vue": { "src": "../../vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "1ca6187c", + "fileHash": "dd118165", "needsInterop": false } }, diff --git a/src/App.vue b/src/App.vue index 1b44547..9ec1fbc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,511 +1,703 @@