Files
daywork/intern-log/dist/assets/index-vpp14W9X.js
T

28 lines
341 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();/**
* @vue/shared v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Gi(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const yt={},Ms=[],Mn=()=>{},qu=()=>!1,ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ca=e=>e.startsWith("onUpdate:"),Mt=Object.assign,Yi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},lf=Object.prototype.hasOwnProperty,pt=(e,t)=>lf.call(e,t),We=Array.isArray,ls=e=>Go(e)==="[object Map]",Ls=e=>Go(e)==="[object Set]",Xl=e=>Go(e)==="[object Date]",et=e=>typeof e=="function",Et=e=>typeof e=="string",In=e=>typeof e=="symbol",mt=e=>e!==null&&typeof e=="object",Hu=e=>(mt(e)||et(e))&&et(e.then)&&et(e.catch),zu=Object.prototype.toString,Go=e=>zu.call(e),uf=e=>Go(e).slice(8,-1),Wu=e=>Go(e)==="[object Object]",Ji=e=>Et(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Eo=Gi(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),da=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},cf=/-\w/g,gn=da(e=>e.replace(cf,t=>t.slice(1).toUpperCase())),df=/\B([A-Z])/g,ms=da(e=>e.replace(df,"-$1").toLowerCase()),Gu=da(e=>e.charAt(0).toUpperCase()+e.slice(1)),oi=da(e=>e?`on${Gu(e)}`:""),On=(e,t)=>!Object.is(e,t),Mr=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Yu=(e,t,n,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},fa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ff=e=>{const t=Et(e)?Number(e):NaN;return isNaN(t)?e:t};let Ql;const pa=()=>Ql||(Ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function zn(e){if(We(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=Et(o)?hf(o):zn(o);if(r)for(const i in r)t[i]=r[i]}return t}else if(Et(e)||mt(e))return e}const pf=/;(?![^(]*\))/g,vf=/:([^]+)/,mf=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function hf(e){const t={};return e.replace(mf,n=>n.startsWith("/*")?"":n).split(pf).forEach(n=>{if(n){const o=n.split(vf);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Je(e){let t="";if(Et(e))t=e;else if(We(e))for(let n=0;n<e.length;n++){const o=Je(e[n]);o&&(t+=o+" ")}else if(mt(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const yf="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",gf=Gi(yf);function Ju(e){return!!e||e===""}function bf(e,t,n){if(e.length!==t.length)return!1;let o=!0;for(let r=0;o&&r<e.length;r++)o=cs(e[r],t[r],n);return o}function Zl(e,t,n){if(e.size!==t.size)return!1;const o=Array.from(t),r=new Uint8Array(o.length);for(const i of e){let c=-1;for(let f=0;f<o.length;f++)if(!r[f]&&cs(i,o[f],n)){c=f;break}if(c<0)return!1;r[c]=1}return!0}function wf(e,t,n){let o=ls(e),r=ls(t);if(o||r||(o=Ls(e),r=Ls(t),o||r))return o&&r?Zl(e,t,n):!1;const i=Object.keys(e).length,c=Object.keys(t).length;if(i!==c)return!1;for(const f in e){const v=e.hasOwnProperty(f),b=t.hasOwnProperty(f);if(v&&!b||!v&&b||!cs(e[f],t[f],n))return!1}return String(e)===String(t)}function eu(e,t,n,o){n||(n=[new Map,new Map]);const[r,i]=n;if(r.has(e)||i.has(t))return r.get(e)===t&&i.get(t)===e;r.set(e,t),i.set(t,e);const c=o(e,t,n);return r.delete(e),i.delete(t),c}function cs(e,t,n){if(e===t)return!0;let o=Xl(e),r=Xl(t);return o||r?o&&r?e.getTime()===t.getTime():!1:(o=In(e),r=In(t),o||r?e===t:(o=We(e),r=We(t),o||r?o&&r?eu(e,t,n,bf):!1:(o=mt(e),r=mt(t),o||r?!o||!r?!1:eu(e,t,n,wf):String(e)===String(t))))}function _f(e,t){return e.findIndex(n=>cs(n,t))}const Xu=e=>!!(e&&e.__v_isRef===!0),q=e=>Et(e)?e:e==null?"":We(e)||mt(e)&&(e.toString===zu||!et(e.toString))?Xu(e)?q(e.value):JSON.stringify(e,Qu,2):String(e),Qu=(e,t)=>Xu(t)?Qu(e,t.value):ls(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],i)=>(n[ri(o,i)+" =>"]=r,n),{})}:Ls(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ri(n))}:In(t)?ri(t):mt(t)&&!We(t)&&!Wu(t)?String(t):t,ri=(e,t="")=>{var n;return In(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
* @vue/reactivity v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Bt;class kf{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Bt&&(Bt.active?(this.parent=Bt,this.index=(Bt.scopes||(Bt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const o=this.scopes.slice();for(t=0,n=o.length;t<n;t++)o[t].pause()}for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes){const r=this.scopes.slice();for(t=0,n=r.length;t<n;t++)r[t].resume()}const o=this.effects.slice();for(t=0,n=o.length;t<n;t++)o[t].resume()}}run(t){if(this._active){const n=Bt;try{return Bt=this,t()}finally{Bt=n}}}on(){++this._on===1&&(this.prevScope=Bt,Bt=this)}off(){if(this._on>0&&--this._on===0){if(Bt===this)Bt=this.prevScope;else{let t=Bt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n<o;n++)this.effects[n].stop();for(this.effects.length=0,n=0,o=this.cleanups.length;n<o;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const r=this.scopes.slice();for(n=0,o=r.length;n<o;n++)r[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0}}}function Cf(){return Bt}let _t;const ai=new WeakSet;class Zu{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Bt&&(Bt.active?Bt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ai.has(this)&&(ai.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||tc(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,tu(this),nc(this);const t=_t,n=bn;_t=this,bn=!0;try{return this.fn()}finally{sc(this),_t=t,bn=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Zi(t);this.deps=this.depsTail=void 0,tu(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ai.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){wi(this)&&this.run()}get dirty(){return wi(this)}}let ec=0,To,Ao;function tc(e,t=!1){if(e.flags|=8,t){e.next=Ao,Ao=e;return}e.next=To,To=e}function Xi(){ec++}function Qi(){if(--ec>0)return;if(Ao){let t=Ao;for(Ao=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;To;){let t=To;for(To=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function nc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function sc(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),Zi(o),xf(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function wi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(oc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function oc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Do)||(e.globalVersion=Do,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!wi(e))))return;e.flags|=2;const t=e.dep,n=_t,o=bn;_t=e,bn=!0;try{nc(e);const r=e.fn(e._value);(t.version===0||On(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{_t=n,bn=o,sc(e),e.flags&=-3}}function Zi(e,t=!1){const{dep:n,prevSub:o,nextSub:r}=e;if(o&&(o.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Zi(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function xf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let bn=!0;const rc=[];function jn(){rc.push(bn),bn=!1}function Dn(){const e=rc.pop();bn=e===void 0?!0:e}function tu(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=_t;_t=void 0;try{t()}finally{_t=n}}}let Do=0;class $f{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class el{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!_t||!bn||_t===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==_t)n=this.activeLink=new $f(_t,this),_t.deps?(n.prevDep=_t.depsTail,_t.depsTail.nextDep=n,_t.depsTail=n):_t.deps=_t.depsTail=n,ac(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=_t.depsTail,n.nextDep=void 0,_t.depsTail.nextDep=n,_t.depsTail=n,_t.deps===n&&(_t.deps=o)}return n}trigger(t){this.version++,Do++,this.notify(t)}notify(t){Xi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Qi()}}}function ac(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)ac(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const _i=new WeakMap,js=Symbol(""),ki=Symbol(""),Lo=Symbol("");function Gt(e,t,n){if(bn&&_t){let o=_i.get(e);o||_i.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new el),r.map=o,r.key=n),r.track()}}function qn(e,t,n,o,r,i){const c=_i.get(e);if(!c){Do++;return}const f=v=>{v&&v.trigger()};if(Xi(),t==="clear")c.forEach(f);else{const v=We(e),b=v&&Ji(n);if(v&&n==="length"){const h=Number(o);c.forEach((_,A)=>{(A==="length"||A===Lo||!In(A)&&A>=h)&&f(_)})}else switch((n!==void 0||c.has(void 0))&&f(c.get(n)),b&&f(c.get(Lo)),t){case"add":v?b&&f(c.get("length")):(f(c.get(js)),ls(e)&&f(c.get(ki)));break;case"delete":v||(f(c.get(js)),ls(e)&&f(c.get(ki)));break;case"set":ls(e)&&f(c.get(js));break}}Qi()}function Ys(e){const t=dt(e);return t===e||(Gt(t,"iterate",Lo),fn(e))?t:Ln(e)?us(e)?t.map(n=>ds(vn(n))):t.map(ds):t.map(vn)}function va(e){return Gt(e=dt(e),"iterate",Lo),e}function Tn(e,t){return Ln(e)?ds(us(e)?vn(t):t):vn(t)}const Sf={__proto__:null,[Symbol.iterator](){return ii(this,Symbol.iterator,e=>Tn(this,e))},concat(...e){return Ys(this).concat(...e.map(t=>We(t)?Ys(t):t))},entries(){return ii(this,"entries",e=>(e[1]=Tn(this,e[1]),e))},every(e,t){return Vn(this,"every",e,t,void 0,arguments)},filter(e,t){return Vn(this,"filter",e,t,n=>n.map(o=>Tn(this,o)),arguments)},find(e,t){return Vn(this,"find",e,t,n=>Tn(this,n),arguments)},findIndex(e,t){return Vn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Vn(this,"findLast",e,t,n=>Tn(this,n),arguments)},findLastIndex(e,t){return Vn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Vn(this,"forEach",e,t,void 0,arguments)},includes(...e){return li(this,"includes",e)},indexOf(...e){return li(this,"indexOf",e)},join(e){return Ys(this).join(e)},lastIndexOf(...e){return li(this,"lastIndexOf",e)},map(e,t){return Vn(this,"map",e,t,void 0,arguments)},pop(){return _o(this,"pop")},push(...e){return _o(this,"push",e)},reduce(e,...t){return su(this,"reduce",e,t)},reduceRight(e,...t){return su(this,"reduceRight",e,t)},shift(){return _o(this,"shift")},some(e,t){return Vn(this,"some",e,t,void 0,arguments)},splice(...e){return _o(this,"splice",e)},toReversed(){return Ys(this).toReversed()},toSorted(e){return Ys(this).toSorted(e)},toSpliced(...e){return Ys(this).toSpliced(...e)},unshift(...e){return _o(this,"unshift",e)},values(){return ii(this,"values",e=>Tn(this,e))}};function ii(e,t,n){const o=va(e),r=o[t],i=r.call(o);if(o!==e&&!fn(e)){if(i[Symbol.toStringTag]==="Array Iterator"){const c=Object.create(Object.getPrototypeOf(i));return c.next=()=>nu(i.next(),n),r!==ic[t]&&Object.defineProperties(c,{return:{get(){const f=i.return;return typeof f=="function"?f.bind(i):f}},throw:{get(){const f=i.throw;return typeof f=="function"?f.bind(i):f}}}),c}i._next=i.next,i.next=()=>nu(i._next(),n)}return i}function nu(e,t){return e.done||(e.value=t(e.value)),e}const ic=Array.prototype;function Vn(e,t,n,o,r,i){const c=va(e),f=c!==e&&!fn(e),v=c[t];if(v!==ic[t]){const _=v.apply(e,i);return f?vn(_):_}let b=n;c!==e&&(f?b=function(_,A){return n.call(this,Tn(e,_),A,e)}:n.length>2&&(b=function(_,A){return n.call(this,_,A,e)}));const h=v.call(c,b,o);return f&&r?r(h):h}function su(e,t,n,o){const r=va(e),i=r!==e&&!fn(e);let c=n,f=!1;r!==e&&(i?(f=o.length===0,c=function(b,h,_){return f&&(f=!1,b=Tn(e,b)),n.call(this,b,Tn(e,h),_,e)}):n.length>3&&(c=function(b,h,_){return n.call(this,b,h,_,e)}));const v=r[t](c,...o);return f?Tn(e,v):v}function li(e,t,n){const o=dt(e);Gt(o,"iterate",Lo);const r=o[t](...n);return(r===-1||r===!1)&&ol(n[0])?(n[0]=dt(n[0]),o[t](...n)):r}function _o(e,t,n=[]){jn(),Xi();const o=dt(e)[t].apply(e,n);return Qi(),Dn(),o}const Ef=Gi("__proto__,__v_isRef,__isVue"),lc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(In));function Tf(e){In(e)||(e=String(e));const t=dt(this);return Gt(t,"has",e),t.hasOwnProperty(e)}class uc{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(r?i?Rf:pc:i?fc:dc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const c=We(t);if(!r){let v;if(c&&(v=Sf[n]))return v;if(n==="hasOwnProperty")return Tf}const f=Reflect.get(t,n,Jt(t)?t:o);if((In(n)?lc.has(n):Ef(n))||(r||Gt(t,"get",n),i))return f;if(Jt(f)){const v=c&&Ji(n)?f:f.value;return r&&mt(v)?xi(v):v}return mt(f)?r?xi(f):nl(f):f}}class cc extends uc{constructor(t=!1){super(!1,t)}set(t,n,o,r){let i=t[n];const c=We(t)&&Ji(n);if(!this._isShallow){const b=Ln(i);if(!fn(o)&&!Ln(o)&&(i=dt(i),o=dt(o)),!c&&Jt(i)&&!Jt(o))return b||(i.value=o),!0}const f=c?Number(n)<t.length:pt(t,n),v=Reflect.set(t,n,o,Jt(t)?t:r);return t===dt(r)&&v&&(f?On(o,i)&&qn(t,"set",n,o):qn(t,"add",n,o)),v}deleteProperty(t,n){const o=pt(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&o&&qn(t,"delete",n,void 0),r}has(t,n){const o=Reflect.has(t,n);return(!In(n)||!lc.has(n))&&Gt(t,"has",n),o}ownKeys(t){return Gt(t,"iterate",We(t)?"length":js),Reflect.ownKeys(t)}}class Af extends uc{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Pf=new cc,Of=new Af,Mf=new cc(!0);const Ci=e=>e,$r=e=>Reflect.getPrototypeOf(e);function If(e,t,n){return function(...o){const r=this.__v_raw,i=dt(r),c=ls(i),f=e==="entries"||e===Symbol.iterator&&c,v=e==="keys"&&c,b=r[e](...o),h=n?Ci:t?ds:vn;return!t&&Gt(i,"iterate",v?ki:js),Mt(Object.create(b),{next(){const{value:_,done:A}=b.next();return A?{value:_,done:A}:{value:f?[h(_[0]),h(_[1])]:h(_),done:A}}})}}function Sr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function jf(e,t){const n={get(r){const i=this.__v_raw,c=dt(i),f=dt(r);e||(On(r,f)&&Gt(c,"get",r),Gt(c,"get",f));const{has:v}=$r(c),b=t?Ci:e?ds:vn;if(v.call(c,r))return b(i.get(r));if(v.call(c,f))return b(i.get(f));i!==c&&i.get(r)},get size(){const r=this.__v_raw;return!e&&Gt(dt(r),"iterate",js),r.size},has(r){const i=this.__v_raw,c=dt(i),f=dt(r);return e||(On(r,f)&&Gt(c,"has",r),Gt(c,"has",f)),r===f?i.has(r):i.has(r)||i.has(f)},forEach(r,i){const c=this,f=c.__v_raw,v=dt(f),b=t?Ci:e?ds:vn;return!e&&Gt(v,"iterate",js),f.forEach((h,_)=>r.call(i,b(h),b(_),c))}};return Mt(n,e?{add:Sr("add"),set:Sr("set"),delete:Sr("delete"),clear:Sr("clear")}:{add(r){const i=dt(this),c=$r(i),f=dt(r),v=!t&&!fn(r)&&!Ln(r)?f:r;return c.has.call(i,v)||On(r,v)&&c.has.call(i,r)||On(f,v)&&c.has.call(i,f)||(i.add(v),qn(i,"add",v,v)),this},set(r,i){!t&&!fn(i)&&!Ln(i)&&(i=dt(i));const c=dt(this),{has:f,get:v}=$r(c);let b=f.call(c,r);b||(r=dt(r),b=f.call(c,r));const h=v.call(c,r);return c.set(r,i),b?On(i,h)&&qn(c,"set",r,i):qn(c,"add",r,i),this},delete(r){const i=dt(this),{has:c,get:f}=$r(i);let v=c.call(i,r);v||(r=dt(r),v=c.call(i,r)),f&&f.call(i,r);const b=i.delete(r);return v&&qn(i,"delete",r,void 0),b},clear(){const r=dt(this),i=r.size!==0,c=r.clear();return i&&qn(r,"clear",void 0,void 0),c}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=If(r,e,t)}),n}function tl(e,t){const n=jf(e,t);return(o,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_isShallow"?t:r==="__v_raw"?o:Reflect.get(pt(n,r)&&r in o?n:o,r,i)}const Df={get:tl(!1,!1)},Lf={get:tl(!1,!0)},Kf={get:tl(!0,!1)};const dc=new WeakMap,fc=new WeakMap,pc=new WeakMap,Rf=new WeakMap;function Ff(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function nl(e){return Ln(e)?e:sl(e,!1,Pf,Df,dc)}function Nf(e){return sl(e,!1,Mf,Lf,fc)}function xi(e){return sl(e,!0,Of,Kf,pc)}function sl(e,t,n,o,r){if(!mt(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=r.get(e);if(i)return i;const c=Ff(uf(e));if(c===0)return e;const f=new Proxy(e,c===2?o:n);return r.set(e,f),f}function us(e){return Ln(e)?us(e.__v_raw):!!(e&&e.__v_isReactive)}function Ln(e){return!!(e&&e.__v_isReadonly)}function fn(e){return!!(e&&e.__v_isShallow)}function ol(e){return e?!!e.__v_raw:!1}function dt(e){const t=e&&e.__v_raw;return t?dt(t):e}function Vf(e){return!pt(e,"__v_skip")&&Object.isExtensible(e)&&Yu(e,"__v_skip",!0),e}const vn=e=>mt(e)?nl(e):e,ds=e=>mt(e)?xi(e):e;function Jt(e){return e?e.__v_isRef===!0:!1}function P(e){return Bf(e,!1)}function Bf(e,t){return Jt(e)?e:new Uf(e,t)}class Uf{constructor(t,n){this.dep=new el,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:dt(t),this._value=n?t:vn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||fn(t)||Ln(t);t=o?t:dt(t),On(t,n)&&(this._rawValue=t,this._value=o?t:vn(t),this.dep.trigger())}}function sn(e){return Jt(e)?e.value:e}const qf={get:(e,t,n)=>t==="__v_raw"?e:sn(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Jt(r)&&!Jt(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function vc(e){return us(e)?e:new Proxy(e,qf)}class Hf{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new el(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Do-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&_t!==this)return tc(this,!0),!0}get value(){const t=this.dep.track();return oc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function zf(e,t,n=!1){let o,r;return et(e)?o=e:(o=e.get,r=e.set),new Hf(o,r,n)}const Er={},Br=new WeakMap;let Ts;function Wf(e,t=!1,n=Ts){if(n){let o=Br.get(n);o||Br.set(n,o=[]),o.push(e)}}function Gf(e,t,n=yt){const{immediate:o,deep:r,once:i,scheduler:c,augmentJob:f,call:v}=n,b=E=>r?E:fn(E)||r===!1||r===0?Hn(E,1):Hn(E);let h,_,A,x,M=!1,G=!1;if(Jt(e)?(_=()=>e.value,M=fn(e)):us(e)?(_=()=>b(e),M=!0):We(e)?(G=!0,M=e.some(E=>us(E)||fn(E)),_=()=>e.map(E=>{if(Jt(E))return E.value;if(us(E))return b(E);if(et(E))return v?v(E,2):E()})):et(e)?t?_=v?()=>v(e,2):e:_=()=>{if(A){jn();try{A()}finally{Dn()}}const E=Ts;Ts=h;try{return v?v(e,3,[x]):e(x)}finally{Ts=E}}:_=Mn,t&&r){const E=_,U=r===!0?1/0:r;_=()=>Hn(E(),U)}const oe=Cf(),le=()=>{h.stop(),oe&&oe.active&&Yi(oe.effects,h)};if(i&&t){const E=t;t=(...U)=>{try{return E(...U)}finally{le()}}}let ce=G?new Array(e.length).fill(Er):Er;const Y=E=>{if(!(!(h.flags&1)||!h.dirty&&!E))if(t){const U=h.run();if(E||r||M||(G?U.some((Q,B)=>On(Q,ce[B])):On(U,ce))){const Q=Ts;jn();try{A&&A(),Ts=h;const B=[U,ce===Er?void 0:G&&ce[0]===Er?[]:ce,x];ce=U,v?v(t,3,B):t(...B)}finally{Ts=Q,Dn()}}}else h.run()};return f&&f(Y),h=new Zu(_),h.scheduler=c?()=>c(Y,!1):Y,x=E=>Wf(E,!1,h),A=h.onStop=()=>{const E=Br.get(h);if(E){if(v)v(E,4);else for(const U of E)U();Br.delete(h)}},t?o?Y(!0):ce=h.run():c?c(Y.bind(null,!0),!0):h.run(),le.pause=h.pause.bind(h),le.resume=h.resume.bind(h),le.stop=le,le}function Hn(e,t=1/0,n){if(t<=0||!mt(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Jt(e))Hn(e.value,t,n);else if(We(e))for(let o=0;o<e.length;o++)Hn(e[o],t,n);else if(Ls(e)||ls(e))e.forEach(o=>{Hn(o,t,n)});else if(Wu(e)){for(const o in e)Hn(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Hn(e[o],t,n)}return e}/**
* @vue/runtime-core v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Yo(e,t,n,o){try{return o?e(...o):e()}catch(r){ma(r,t,n)}}function mn(e,t,n,o){if(et(e)){const r=Yo(e,t,n,o);return r&&Hu(r)&&r.catch(i=>{ma(i,t,n)}),r}if(We(e)){const r=[];for(let i=0;i<e.length;i++)r.push(mn(e[i],t,n,o));return r}}function ma(e,t,n,o=!0){const r=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:c}=t&&t.appContext.config||yt;if(t){let f=t.parent;const v=t.proxy,b=`https://vuejs.org/error-reference/#runtime-${n}`;for(;f;){const h=f.ec;if(h){for(let _=0;_<h.length;_++)if(h[_](e,v,b)===!1)return}f=f.parent}if(i){jn(),Yo(i,null,10,[e,v,b]),Dn();return}}Yf(e,n,r,o,c)}function Yf(e,t,n,o=!0,r=!1){if(r)throw e;console.error(e)}const tn=[];let yn=-1;const An=[];let as=null,Js=0;const mc=Promise.resolve();let Ur=null;function Rs(e){const t=Ur||mc;return e?t.then(this?e.bind(this):e):t}function Jf(e){let t=yn+1,n=tn.length;for(;t<n;){const o=t+n>>>1,r=tn[o],i=Ko(r);i<e||i===e&&r.flags&2?t=o+1:n=o}return t}function rl(e){if(!(e.flags&1)){const t=Ko(e),n=tn[tn.length-1];!n||!(e.flags&2)&&t>=Ko(n)?tn.push(e):tn.splice(Jf(t),0,e),e.flags|=1,hc()}}function hc(){Ur||(Ur=mc.then(bc))}function Xf(e){if(!We(e))as&&e.id===-1?as.splice(Js+1,0,e):e.flags&1||(An.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)An.push(e[t]);hc()}function yc(e,t,n,o=yn+1){for(;o<tn.length;o++){const r=tn[o];if(r&&r.flags&2){if(e&&r.id!==e.uid||t!==void 0&&!(r.id>=t))continue;tn.splice(o,1),o=e?o-1:yn,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function gc(e,t,n=0){if(An.length){let o=An,r=0;if(t){o=[];for(let c=0;c<An.length;c++){const f=An[c];(f.i!==void 0?!f.i||f.i.uid<n:t.has(f))?An[r++]=f:o.push(f)}}const i=[...new Set(o)].sort((c,f)=>Ko(c)-Ko(f));if(An.length=r,as){for(let c=0;c<i.length;c++)as.push(i[c]);return}for(as=i,Js=0;Js<as.length;Js++){const c=as[Js];c.flags&4&&(c.flags&=-2),c.flags&8||c(),c.flags&=-2}as=null,Js=0}}let ui=!1;function Qf(e,t){if(ui){e();return}const n=t===void 0?void 0:new Set(An);e(),ui=!0;try{yc(void 0,t),gc(void 0,n,t)}finally{ui=!1}}const Ko=e=>e.id==null?e.flags&2?-1:1/0:e.id;function bc(e){try{for(yn=0;yn<tn.length;yn++){const t=tn[yn];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Yo(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;yn<tn.length;yn++){const t=tn[yn];t&&(t.flags&=-2)}yn=-1,tn.length=0,gc(),Ur=null,(tn.length||An.length)&&bc()}}let dn=null,wc=null;function qr(e){const t=dn;return dn=e,wc=e&&e.type.__scopeId||null,t}function Rn(e,t=dn,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&Gr(-1);const i=qr(t),c=Ds.length;let f;try{f=e(...r)}finally{for(let v=Ds.length;v>c;v--)Gc();qr(i),o._d&&Gr(1)}return f};return o._n=!0,o._c=!0,o._d=!0,o}function Pe(e,t){if(dn===null)return e;const n=_a(dn),o=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[i,c,f,v=yt]=t[r];i&&(et(i)&&(i={mounted:i,updated:i}),i.deep&&Hn(c),o.push({dir:i,instance:n,value:c,oldValue:void 0,arg:f,modifiers:v}))}return e}function $s(e,t,n,o){const r=e.dirs,i=t&&t.dirs;for(let c=0;c<r.length;c++){const f=r[c];i&&(f.oldValue=i[c].value);let v=f.dir[o];v&&(jn(),mn(v,n,8,[e.el,f,e,t]),Dn())}}function Zf(e,t){if(nn){let n=nn.provides;const o=nn.parent&&nn.parent.provides;o===n&&(n=nn.provides=Object.create(o)),n[e]=t}}function Ir(e,t,n=!1){const o=cl();if(o||Qs){let r=Qs?Qs._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(r&&e in r)return r[e];if(arguments.length>1)return n&&et(t)?t.call(o&&o.proxy):t}}const ep=Symbol.for("v-scx"),tp=()=>Ir(ep);function vt(e,t,n){return _c(e,t,n)}function _c(e,t,n=yt){const{immediate:o,deep:r,flush:i,once:c}=n,f=Mt({},n),v=t&&o||!t&&i!=="post";let b;if(Uo){if(i==="sync"){const x=tp();b=x.__watcherHandles||(x.__watcherHandles=[])}else if(!v){const x=()=>{};return x.stop=Mn,x.resume=Mn,x.pause=Mn,x}}const h=nn;f.call=(x,M,G)=>mn(x,h,M,G);let _=!1;i==="post"?f.scheduler=x=>{x.i=h,en(x,h&&h.suspense)}:i!=="sync"&&(_=!0,f.scheduler=(x,M)=>{M?x():rl(x)}),f.augmentJob=x=>{t&&(x.flags|=4),_&&(x.flags|=2,h&&(x.id=h.uid,x.i=h))};const A=Gf(e,t,f);return Uo&&(b?b.push(A):v&&A()),A}function np(e,t,n){const o=this.proxy,r=Et(e)?e.includes(".")?kc(o,e):()=>o[e]:e.bind(o,o);let i;et(t)?i=t:(i=t.handler,n=t);const c=Jo(this),f=_c(r,i.bind(o),n);return c(),f}function kc(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r<n.length&&o;r++)o=o[n[r]];return o}}const os=new WeakMap,Cc=Symbol("_vte"),ha=e=>e.__isTeleport,As=e=>e&&(e.disabled||e.disabled===""),sp=e=>e&&(e.defer||e.defer===""),ou=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ru=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,$i=(e,t)=>{const n=e&&e.to;return Et(n)?t?t(n):null:n},op={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,i,c,f,v,b){const{mc:h,pc:_,pbc:A,o:{insert:x,querySelector:M,createText:G,createComment:oe,parentNode:le}}=b,ce=As(t.props);let{dynamicChildren:Y}=t;const E=(B,te,I)=>{B.shapeFlag&16&&h(B.children,te,I,r,i,c,f,v)},U=(B=t)=>{const te=As(B.props),I=B.target=$i(B.props,M),S=Si(I,B,G,x);I&&(c!=="svg"&&ou(I)?c="svg":c!=="mathml"&&ru(I)&&(c="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(I),te||(E(B,I,S),xo(B,!1)))},Q=B=>{const te=()=>{if(os.get(B)===te){if(os.delete(B),As(B.props)){const I=le(B.el)||n;E(B,I,B.anchor),xo(B,!0)}U(B)}};os.set(B,te),en(te,i)};if(e==null){const B=t.el=G(""),te=t.anchor=G("");if(x(B,n,o),x(te,n,o),sp(t.props)||i&&i.pendingBranch){Q(t);return}ce&&(E(t,n,te),xo(t,!0)),U()}else{t.el=e.el;const B=t.anchor=e.anchor,te=os.get(e);if(te){te.flags|=8,os.delete(e),Q(t);return}t.targetStart=e.targetStart;const I=t.target=e.target,S=t.targetAnchor=e.targetAnchor,O=As(e.props),Z=O?n:I,Oe=O?B:S;if(c==="svg"||ou(I)?c="svg":(c==="mathml"||ru(I))&&(c="mathml"),Y?(A(e.dynamicChildren,Y,Z,r,i,c,f),ul(e,t,!0)):v||_(e,t,Z,Oe,r,i,c,f,!1),ce)O?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tr(t,n,B,b,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Ee=$i(t.props,M);Ee&&(t.target=Ee,Tr(t,Ee,null,b,0))}else O&&Tr(t,I,S,b,1);xo(t,ce)}},remove(e,t,n,{um:o,o:{remove:r}},i){const{shapeFlag:c,children:f,anchor:v,targetStart:b,targetAnchor:h,target:_,props:A}=e,x=As(A),M=i||!x,G=os.get(e);if(G&&(G.flags|=8,os.delete(e)),_&&(r(b),r(h)),i&&r(v),!G&&(x||_)&&c&16)for(let oe=0;oe<f.length;oe++){const le=f[oe];o(le,t,n,M,!!le.dynamicChildren)}},move:Tr,hydrate:rp};function Tr(e,t,n,{o:{insert:o},m:r},i=2){i===0&&(e.targetStart&&o(e.targetStart,t,n),o(e.targetAnchor,t,n),n=e.targetAnchor);const{el:c,anchor:f,shapeFlag:v,children:b,props:h}=e,_=i===2;if(_&&o(c,t,n),!os.has(e)&&(!_||As(h))&&v&16)for(let A=0;A<b.length;A++)r(b[A],t,n,2);_&&o(f,t,n)}function rp(e,t,n,o,r,i,{o:{nextSibling:c,parentNode:f,querySelector:v,insert:b,createText:h}},_){function A(oe,le){let ce=le;for(;ce;){if(ce&&ce.nodeType===8){if(ce.data==="teleport start anchor")t.targetStart=ce;else if(ce.data==="teleport anchor"){t.targetAnchor=ce,oe._lpa=t.targetAnchor&&c(t.targetAnchor);break}}ce=c(ce)}}function x(oe,le){le.anchor=_(c(oe),le,f(oe),n,o,r,i)}const M=t.target=$i(t.props,v),G=As(t.props);if(M){const oe=M._lpa||M.firstChild;t.shapeFlag&16&&(G?(x(e,t),A(M,oe),t.targetAnchor||Si(M,t,h,b,f(e)===M?e:null)):(t.anchor=c(e),A(M,oe),t.targetAnchor||Si(M,t,h,b),_(oe&&c(oe),t,M,n,o,r,i))),xo(t,G)}else G&&t.shapeFlag&16&&(x(e,t),t.targetStart=e,t.targetAnchor=c(e));return t.anchor&&c(t.anchor)}const Kn=op;function xo(e,t){const n=e.ctx;if(n&&n.ut){let o,r;for(t?(o=e.el,r=e.anchor):(o=e.targetStart,r=e.targetAnchor);o&&o!==r;)o.nodeType===1&&o.setAttribute("data-v-owner",n.uid),o=o.nextSibling;n.ut()}}function Si(e,t,n,o,r=null){const i=t.targetStart=n(""),c=t.targetAnchor=n("");return i[Cc]=c,e&&(o(i,e,r),o(c,e,r)),c}const cn=Symbol("_leaveCb"),ko=Symbol("_enterCb");function xc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ln(()=>{e.isMounted=!0}),Oc(()=>{e.isUnmounting=!0}),e}const un=[Function,Array],$c={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:un,onEnter:un,onAfterEnter:un,onEnterCancelled:un,onBeforeLeave:un,onLeave:un,onAfterLeave:un,onLeaveCancelled:un,onBeforeAppear:un,onAppear:un,onAfterAppear:un,onAppearCancelled:un},ap={name:"BaseTransition",props:$c,setup(e,{slots:t}){const n=cl(),o=xc();return()=>{const r=t.default&&al(t.default(),!0),i=r&&r.length?Sc(r):n.subTree?ve():void 0;if(!i)return;const c=dt(e),{mode:f}=c;if(o.isLeaving)return ci(i);const v=Hr(i);if(!v)return ci(i);let b=Ro(v,c,o,n,_=>b=_);v.type!==Yt&&fs(v,b);let h=n.subTree&&Hr(n.subTree);if(h&&h.type!==Yt&&!Ps(h,v)&&Fo(n.subTree)){let _=Ro(h,c,o,n);if(fs(h,_),f==="out-in"&&v.type!==Yt)return o.isLeaving=!0,_.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete _.afterLeave,h=void 0},ci(i);f==="in-out"&&v.type!==Yt?_.delayLeave=(A,x,M)=>{const G=Ec(o,h);G[String(h.key)]=h,A[cn]=()=>{x(),A[cn]=void 0,delete b.delayedLeave,h=void 0},b.delayedLeave=()=>{M(),delete b.delayedLeave,h=void 0}}:h=void 0}else h&&(h=void 0);return i}}};function Sc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Yt){t=n;break}}return t}const ip=ap;function Ec(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Ro(e,t,n,o,r){const{appear:i,mode:c,persisted:f=!1,onBeforeEnter:v,onEnter:b,onAfterEnter:h,onEnterCancelled:_,onBeforeLeave:A,onLeave:x,onAfterLeave:M,onLeaveCancelled:G,onBeforeAppear:oe,onAppear:le,onAfterAppear:ce,onAppearCancelled:Y}=t,E=String(e.key),U=Ec(n,e),Q=(I,S)=>{I&&mn(I,o,9,S)},B=(I,S)=>{const O=S[1];Q(I,S),We(I)?I.every(Z=>Z.length<=1)&&O():I.length<=1&&O()},te={mode:c,persisted:f,beforeEnter(I){let S=v;if(!n.isMounted)if(i)S=oe||v;else return;I[cn]&&I[cn](!0);const O=U[E];if(O&&Ps(e,O)){let Z=O.el[cn];if(!Z){const Oe=Fo(O);Z=Oe&&Oe.el[cn]}Z&&Z()}Q(S,[I])},enter(I){if(U[E]===e)return;let S=b,O=h,Z=_;if(!n.isMounted)if(i)S=le||b,O=ce||h,Z=Y||_;else return;let Oe=!1;I[ko]=be=>{Oe||(Oe=!0,be?Q(Z,[I]):Q(O,[I]),te.delayedLeave&&te.delayedLeave(),I[ko]=void 0)};const Ee=I[ko].bind(null,!1);S?B(S,[I,Ee]):Ee()},leave(I,S){const O=String(e.key);if(I[ko]&&I[ko](!0),n.isUnmounting)return S();Q(A,[I]);let Z=!1;I[cn]=Ee=>{Z||(Z=!0,S(),Ee?Q(G,[I]):Q(M,[I]),I[cn]=void 0,U[O]===e&&delete U[O])};const Oe=I[cn].bind(null,!1);U[O]=e,x?B(x,[I,Oe]):Oe()},clone(I){const S=Ro(I,t,n,o,r);return r&&r(S),S}};return te}function ci(e){if(ya(e))return e=ps(e),e.children=null,e}function Hr(e){if(!ya(e))return ha(e.type)&&e.children?Sc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&et(n.default))return n.default()}}function fs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;fs(ha(n.type)&&Hr(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===je&&We(e.children)){const n=Lc(e.children,!1);n&&fs(n,t)}}function al(e,t=!1,n){let o=[],r=0;for(let i=0;i<e.length;i++){let c=e[i];const f=n==null?c.key:String(n)+String(c.key!=null?c.key:i);c.type===je?(c.patchFlag&128&&r++,o=o.concat(al(c.children,t,f))):(t||c.type!==Yt)&&o.push(f!=null?ps(c,{key:f}):c)}if(r>1)for(let i=0;i<o.length;i++)o[i].patchFlag=-2;return o}function Fo(e){if(e.component)return Fo(e.component.subTree);if(e.type===je){const t=We(e.children)&&Lc(e.children,!1);return t?Fo(t):void 0}if(e.type!==Yt)return e}function Dt(e,t){return et(e)?Mt({name:e.name},t,{setup:e}):e}function Tc(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function au(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const zr=new WeakMap;function Po(e,t,n,o,r=!1){if(We(e)){e.forEach((G,oe)=>Po(G,t&&(We(t)?t[oe]:t),n,o,r));return}if(Oo(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Po(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?_a(o.component):o.el,c=r?null:i,{i:f,r:v}=e,b=t&&t.r,h=f.refs===yt?f.refs={}:f.refs,_=f.setupState,A=dt(_),x=_===yt?qu:G=>au(h,G)?!1:pt(A,G),M=(G,oe)=>!(oe&&au(h,oe));if(b!=null&&b!==v){if(iu(t),Et(b))h[b]=null,x(b)&&(_[b]=null);else if(Jt(b)){const G=t;M(b,G.k)&&(b.value=null),G.k&&(h[G.k]=null)}}if(et(v))Yo(v,f,12,[c,h]);else{const G=Et(v),oe=Jt(v);if(G||oe){const le=()=>{if(e.f){const ce=G?x(v)?_[v]:h[v]:M()||!e.k?v.value:h[e.k];if(r)We(ce)&&Yi(ce,i);else if(We(ce))ce.includes(i)||ce.push(i);else if(G)h[v]=[i],x(v)&&(_[v]=h[v]);else{const Y=[i];M(v,e.k)&&(v.value=Y),e.k&&(h[e.k]=Y)}}else G?(h[v]=c,x(v)&&(_[v]=c)):oe&&(M(v,e.k)&&(v.value=c),e.k&&(h[e.k]=c))};if(c){const ce=()=>{le(),zr.delete(e)};ce.id=-1,zr.set(e,ce),en(ce,n)}else iu(e),le()}}}function iu(e){const t=zr.get(e);t&&(t.flags|=8,zr.delete(e))}pa().requestIdleCallback;pa().cancelIdleCallback;const Oo=e=>!!e.type.__asyncLoader,ya=e=>e.type.__isKeepAlive;function lp(e,t){Ac(e,"a",t)}function up(e,t){Ac(e,"da",t)}function Ac(e,t,n=nn){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ga(t,o,n),n){let r=n.parent;for(;r&&r.parent;)ya(r.parent.vnode)&&cp(o,t,n,r),r=r.parent}}function cp(e,t,n,o){const r=ga(t,e,o,!0);Cn(()=>{Yi(o[t],r)},n)}function ga(e,t,n=nn,o=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...c)=>{jn();const f=Jo(n),v=mn(t,n,e,c);return f(),Dn(),v});return o?r.unshift(i):r.push(i),i}}const Yn=e=>(t,n=nn)=>{(!Uo||e==="sp")&&ga(e,(...o)=>t(...o),n)},dp=Yn("bm"),ln=Yn("m"),fp=Yn("bu"),Pc=Yn("u"),Oc=Yn("bum"),Cn=Yn("um"),pp=Yn("sp"),vp=Yn("rtg"),mp=Yn("rtc");function hp(e,t=nn){ga("ec",e,t)}const yp=Symbol.for("v-ndc");function nt(e,t,n,o){let r;const i=n,c=We(e);if(c||Et(e)){const f=c&&us(e);let v=!1,b=!1;f&&(v=!fn(e),b=Ln(e),e=va(e)),r=new Array(e.length);for(let h=0,_=e.length;h<_;h++)r[h]=t(v?b?ds(vn(e[h])):vn(e[h]):e[h],h,void 0,i)}else if(typeof e=="number")if(!Number.isInteger(e)||e<0)r=[];else{r=new Array(e);for(let f=0;f<e;f++)r[f]=t(f+1,f,void 0,i)}else if(mt(e))if(e[Symbol.iterator])r=Array.from(e,(f,v)=>t(f,v,void 0,i));else{const f=Object.keys(e);r=new Array(f.length);for(let v=0,b=f.length;v<b;v++){const h=f[v];r[v]=t(e[h],h,v,i)}}else r=[];return r}const Ei=e=>e?Qc(e)?_a(e):Ei(e.parent):null,Mo=Mt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ei(e.parent),$root:e=>Ei(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ic(e),$forceUpdate:e=>e.f||(e.f=()=>{rl(e.update)}),$nextTick:e=>e.n||(e.n=Rs.bind(e.proxy)),$watch:e=>np.bind(e)}),di=(e,t)=>e!==yt&&!e.__isScriptSetup&&pt(e,t),gp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:i,accessCache:c,type:f,appContext:v}=e;if(t[0]!=="$"){const A=c[t];if(A!==void 0)switch(A){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(di(o,t))return c[t]=1,o[t];if(r!==yt&&pt(r,t))return c[t]=2,r[t];if(pt(i,t))return c[t]=3,i[t];if(n!==yt&&pt(n,t))return c[t]=4,n[t];Ti&&(c[t]=0)}}const b=Mo[t];let h,_;if(b)return t==="$attrs"&&Gt(e.attrs,"get",""),b(e);if((h=f.__cssModules)&&(h=h[t]))return h;if(n!==yt&&pt(n,t))return c[t]=4,n[t];if(_=v.config.globalProperties,pt(_,t))return _[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:i}=e;return di(r,t)?(r[t]=n,!0):o!==yt&&pt(o,t)?(o[t]=n,!0):pt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:i,type:c}},f){let v;return!!(n[f]||e!==yt&&f[0]!=="$"&&pt(e,f)||di(t,f)||pt(i,f)||pt(o,f)||pt(Mo,f)||pt(r.config.globalProperties,f)||(v=c.__cssModules)&&v[f])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:pt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function lu(e){return We(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ti=!0;function bp(e){const t=Ic(e),n=e.proxy,o=e.ctx;Ti=!1,t.beforeCreate&&uu(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:c,watch:f,provide:v,inject:b,created:h,beforeMount:_,mounted:A,beforeUpdate:x,updated:M,activated:G,deactivated:oe,beforeDestroy:le,beforeUnmount:ce,destroyed:Y,unmounted:E,render:U,renderTracked:Q,renderTriggered:B,errorCaptured:te,serverPrefetch:I,expose:S,inheritAttrs:O,components:Z,directives:Oe,filters:Ee}=t;if(b&&wp(b,o,null),c)for(const He in c){const qe=c[He];et(qe)&&(o[He]=qe.bind(n))}if(r){const He=r.call(n,n);mt(He)&&(e.data=nl(He))}if(Ti=!0,i)for(const He in i){const qe=i[He],Xe=et(qe)?qe.bind(n,n):et(qe.get)?qe.get.bind(n,n):Mn,pe=!et(qe)&&et(qe.set)?qe.set.bind(n):Mn,me=ot({get:Xe,set:pe});Object.defineProperty(o,He,{enumerable:!0,configurable:!0,get:()=>me.value,set:re=>me.value=re})}if(f)for(const He in f)Mc(f[He],o,n,He);if(v){const He=et(v)?v.call(n):v;Reflect.ownKeys(He).forEach(qe=>{Zf(qe,He[qe])})}h&&uu(h,e,"c");function Ae(He,qe){We(qe)?qe.forEach(Xe=>He(Xe.bind(n))):qe&&He(qe.bind(n))}if(Ae(dp,_),Ae(ln,A),Ae(fp,x),Ae(Pc,M),Ae(lp,G),Ae(up,oe),Ae(hp,te),Ae(mp,Q),Ae(vp,B),Ae(Oc,ce),Ae(Cn,E),Ae(pp,I),We(S))if(S.length){const He=e.exposed||(e.exposed={});S.forEach(qe=>{Object.defineProperty(He,qe,{get:()=>n[qe],set:Xe=>n[qe]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});U&&e.render===Mn&&(e.render=U),O!=null&&(e.inheritAttrs=O),Z&&(e.components=Z),Oe&&(e.directives=Oe),I&&Tc(e)}function wp(e,t,n=Mn){We(e)&&(e=Ai(e));for(const o in e){const r=e[o];let i;mt(r)?"default"in r?i=Ir(r.from||o,r.default,!0):i=Ir(r.from||o):i=Ir(r),Jt(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:c=>i.value=c}):t[o]=i}}function uu(e,t,n){mn(We(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mc(e,t,n,o){let r=o.includes(".")?kc(n,o):()=>n[o];if(Et(e)){const i=t[e];et(i)&&vt(r,i)}else if(et(e))vt(r,e.bind(n));else if(mt(e))if(We(e))e.forEach(i=>Mc(i,t,n,o));else{const i=et(e.handler)?e.handler.bind(n):t[e.handler];et(i)&&vt(r,i,e)}}function Ic(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:c}}=e.appContext,f=i.get(t);let v;return f?v=f:!r.length&&!n&&!o?v=t:(v={},r.length&&r.forEach(b=>Wr(v,b,c,!0)),Wr(v,t,c)),mt(t)&&i.set(t,v),v}function Wr(e,t,n,o=!1){const{mixins:r,extends:i}=t;i&&Wr(e,i,n,!0),r&&r.forEach(c=>Wr(e,c,n,!0));for(const c in t)if(!(o&&c==="expose")){const f=_p[c]||n&&n[c];e[c]=f?f(e[c],t[c]):t[c]}return e}const _p={data:cu,props:du,emits:du,methods:$o,computed:$o,beforeCreate:Zt,created:Zt,beforeMount:Zt,mounted:Zt,beforeUpdate:Zt,updated:Zt,beforeDestroy:Zt,beforeUnmount:Zt,destroyed:Zt,unmounted:Zt,activated:Zt,deactivated:Zt,errorCaptured:Zt,serverPrefetch:Zt,components:$o,directives:$o,watch:Cp,provide:cu,inject:kp};function cu(e,t){return t?e?function(){return Mt(et(e)?e.call(this,this):e,et(t)?t.call(this,this):t)}:t:e}function kp(e,t){return $o(Ai(e),Ai(t))}function Ai(e){if(We(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Zt(e,t){return e?[...new Set([].concat(e,t))]:t}function $o(e,t){return e?Mt(Object.create(null),e,t):t}function du(e,t){return e?We(e)&&We(t)?[...new Set([...e,...t])]:Mt(Object.create(null),lu(e),lu(t??{})):t}function Cp(e,t){if(!e)return t;if(!t)return e;const n=Mt(Object.create(null),e);for(const o in t)n[o]=Zt(e[o],t[o]);return n}function jc(){return{app:null,config:{isNativeTag:qu,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let xp=0;function $p(e,t){return function(o,r=null){et(o)||(o=Mt({},o)),r!=null&&!mt(r)&&(r=null);const i=jc(),c=new WeakSet,f=[];let v=!1;const b=i.app={_uid:xp++,_component:o,_props:r,_container:null,_context:i,_instance:null,version:sv,get config(){return i.config},set config(h){},use(h,..._){return c.has(h)||(h&&et(h.install)?(c.add(h),h.install(b,..._)):et(h)&&(c.add(h),h(b,..._))),b},mixin(h){return i.mixins.includes(h)||i.mixins.push(h),b},component(h,_){return _?(i.components[h]=_,b):i.components[h]},directive(h,_){return _?(i.directives[h]=_,b):i.directives[h]},mount(h,_,A){if(!v){const x=b._ceVNode||ke(o,r);return x.appContext=i,A===!0?A="svg":A===!1&&(A=void 0),e(x,h,A),v=!0,b._container=h,h.__vue_app__=b,_a(x.component)}},onUnmount(h){f.push(h)},unmount(){v&&(mn(f,b._instance,16),e(null,b._container),delete b._container.__vue_app__)},provide(h,_){return i.provides[h]=_,b},runWithContext(h){const _=Qs;Qs=b;try{return h()}finally{Qs=_}}};return b}}let Qs=null;const Sp=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${gn(t)}Modifiers`]||e[`${ms(t)}Modifiers`];function Ep(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||yt;let r=n;const i=t.startsWith("update:"),c=i&&Sp(o,t.slice(7));c&&(c.trim&&(r=n.map(h=>Et(h)?h.trim():h)),c.number&&(r=r.map(fa)));let f,v=o[f=oi(t)]||o[f=oi(gn(t))];!v&&i&&(v=o[f=oi(ms(t))]),v&&mn(v,e,6,r);const b=o[f+"Once"];if(b){if(!e.emitted)e.emitted={};else if(e.emitted[f])return;e.emitted[f]=!0,mn(b,e,6,r)}}const Tp=new WeakMap;function Dc(e,t,n=!1){const o=n?Tp:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const i=e.emits;let c={},f=!1;if(!et(e)){const v=b=>{const h=Dc(b,t,!0);h&&(f=!0,Mt(c,h))};!n&&t.mixins.length&&t.mixins.forEach(v),e.extends&&v(e.extends),e.mixins&&e.mixins.forEach(v)}return!i&&!f?(mt(e)&&o.set(e,null),null):(We(i)?i.forEach(v=>c[v]=null):Mt(c,i),mt(e)&&o.set(e,c),c)}function ba(e,t){return!e||!ua(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),pt(e,t[0].toLowerCase()+t.slice(1))||pt(e,ms(t))||pt(e,t))}function fu(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[i],slots:c,attrs:f,emit:v,render:b,renderCache:h,props:_,data:A,setupState:x,ctx:M,inheritAttrs:G}=e,oe=qr(e);let le,ce;try{if(n.shapeFlag&4){const E=r||o,U=E;le=Pn(b.call(U,E,h,_,x,A,M)),ce=f}else{const E=t;le=Pn(E.length>1?E(_,{attrs:f,slots:c,emit:v}):E(_,null)),ce=t.props?f:Ap(f)}}catch(E){Ds.length=0,ma(E,e,1),le=ke(Yt)}let Y=le;if(ce&&G!==!1){const E=Object.keys(ce),{shapeFlag:U}=Y;E.length&&U&7&&(i&&E.some(ca)&&(ce=Pp(ce,i)),Y=ps(Y,ce,!1,!0))}if(n.dirs&&(Y=ps(Y,null,!1,!0),Y.dirs=Y.dirs?Y.dirs.concat(n.dirs):n.dirs),n.transition){const E=ha(Y.type)&&Hr(Y)||Y;fs(E,n.transition)}return le=Y,qr(oe),le}function Lc(e,t=!0){let n;for(let o=0;o<e.length;o++){const r=e[o];if(Vo(r)){if(r.type!==Yt||r.children==="v-if"){if(n)return;n=r}}else return}return n}const Ap=e=>{let t;for(const n in e)(n==="class"||n==="style"||ua(n))&&((t||(t={}))[n]=e[n]);return t},Pp=(e,t)=>{const n={};for(const o in e)(!ca(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Op(e,t,n){const{props:o,children:r,component:i}=e,{props:c,children:f,patchFlag:v}=t,b=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&v>=0){if(v&1024)return!0;if(v&16)return o?pu(o,c,b):!!c;if(v&8){const h=t.dynamicProps;for(let _=0;_<h.length;_++){const A=h[_];if(Kc(c,o,A)&&!ba(b,A))return!0}}}else return(r||f)&&(!f||!f.$stable)?!0:o===c?!1:o?c?pu(o,c,b):!0:!!c;return!1}function pu(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;r<o.length;r++){const i=o[r];if(!pt(e,i)||Kc(t,e,i)&&!ba(n,i))return!0}return!1}function Kc(e,t,n){const o=e[n],r=t[n];return n==="style"&&mt(o)&&mt(r)?!cs(o,r):o!==r}function Mp({vnode:e,parent:t,suspense:n},o){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.suspense.vnode.el=r.el=o,e=r),r===e)(e=t.vnode).el=o,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=o)}const Rc={},Fc=()=>Object.create(Rc),Nc=e=>Object.getPrototypeOf(e)===Rc;function Ip(e,t,n,o=!1){const r={},i=Fc();e.propsDefaults=Object.create(null),Vc(e,t,r,i);for(const c in e.propsOptions[0])c in r||(r[c]=void 0);n?e.props=o?r:Nf(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function jp(e,t,n,o){const{props:r,attrs:i,vnode:{patchFlag:c}}=e,f=dt(r),[v]=e.propsOptions;let b=!1;if((o||c>0)&&!(c&16)){if(c&8){const h=e.vnode.dynamicProps;for(let _=0;_<h.length;_++){let A=h[_];if(ba(e.emitsOptions,A))continue;const x=t[A];if(v)if(pt(i,A))x!==i[A]&&(i[A]=x,b=!0);else{const M=gn(A);r[M]=Pi(v,f,M,x,e,!1)}else x!==i[A]&&(i[A]=x,b=!0)}}}else{Vc(e,t,r,i)&&(b=!0);let h;for(const _ in f)(!t||!pt(t,_)&&((h=ms(_))===_||!pt(t,h)))&&(v?n&&(n[_]!==void 0||n[h]!==void 0)&&(r[_]=Pi(v,f,_,void 0,e,!0)):delete r[_]);if(i!==f)for(const _ in i)(!t||!pt(t,_))&&(delete i[_],b=!0)}b&&qn(e.attrs,"set","")}function Vc(e,t,n,o){const[r,i]=e.propsOptions;let c=!1,f;if(t)for(let v in t){if(Eo(v))continue;const b=t[v];let h;r&&pt(r,h=gn(v))?!i||!i.includes(h)?n[h]=b:(f||(f={}))[h]=b:ba(e.emitsOptions,v)||(!(v in o)||b!==o[v])&&(o[v]=b,c=!0)}if(i){const v=dt(n),b=f||yt;for(let h=0;h<i.length;h++){const _=i[h];n[_]=Pi(r,v,_,b[_],e,!pt(b,_))}}return c}function Pi(e,t,n,o,r,i){const c=e[n];if(c!=null){const f=pt(c,"default");if(f&&o===void 0){const v=c.default;if(c.type!==Function&&!c.skipFactory&&et(v)){const{propsDefaults:b}=r;if(n in b)o=b[n];else{const h=Jo(r);o=b[n]=v.call(null,t),h()}}else o=v;r.ce&&r.ce._setProp(n,o)}c[0]&&(i&&!f?o=!1:c[1]&&(o===""||o===ms(n))&&(o=!0))}return o}const Dp=new WeakMap;function Bc(e,t,n=!1){const o=n?Dp:t.propsCache,r=o.get(e);if(r)return r;const i=e.props,c={},f=[];let v=!1;if(!et(e)){const h=_=>{v=!0;const[A,x]=Bc(_,t,!0);Mt(c,A),x&&f.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!v)return mt(e)&&o.set(e,Ms),Ms;if(We(i))for(let h=0;h<i.length;h++){const _=gn(i[h]);vu(_)&&(c[_]=yt)}else if(i)for(const h in i){const _=gn(h);if(vu(_)){const A=i[h],x=c[_]=We(A)||et(A)?{type:A}:Mt({},A),M=x.type;let G=!1,oe=!0;if(We(M))for(let le=0;le<M.length;++le){const ce=M[le],Y=et(ce)&&ce.name;if(Y==="Boolean"){G=!0;break}else Y==="String"&&(oe=!1)}else G=et(M)&&M.name==="Boolean";x[0]=G,x[1]=oe,(G||pt(x,"default"))&&f.push(_)}}const b=[c,f];return mt(e)&&o.set(e,b),b}function vu(e){return e[0]!=="$"&&!Eo(e)}const il=e=>e==="_"||e==="_ctx"||e==="$stable",ll=e=>We(e)?e.map(Pn):[Pn(e)],Lp=(e,t,n)=>{if(t._n)return t;const o=Rn((...r)=>ll(t(...r)),n);return o._c=!1,o},Uc=(e,t,n)=>{const o=e._ctx;for(const r in e){if(il(r))continue;const i=e[r];if(et(i))t[r]=Lp(r,i,o);else if(i!=null){const c=ll(i);t[r]=()=>c}}},qc=(e,t)=>{const n=ll(t);e.slots.default=()=>n},Hc=(e,t,n)=>{for(const o in t)(n||!il(o))&&(e[o]=t[o])},Kp=(e,t,n)=>{const o=e.slots=Fc();if(e.vnode.shapeFlag&32){const r=t._;r?(Hc(o,t,n),n&&Yu(o,"_",r,!0)):Uc(t,o)}else t&&qc(e,t)},Rp=(e,t,n)=>{const{vnode:o,slots:r}=e;let i=!0,c=yt;if(o.shapeFlag&32){const f=t._;f?n&&f===1?i=!1:Hc(r,t,n):(i=!t.$stable,Uc(t,r)),c=t}else t&&(qc(e,t),c={default:1});if(i)for(const f in r)!il(f)&&c[f]==null&&delete r[f]},en=Up;function Fp(e){return Np(e)}function Np(e,t){const n=pa();n.__VUE__=!0;const{insert:o,remove:r,patchProp:i,createElement:c,createText:f,createComment:v,setText:b,setElementText:h,parentNode:_,nextSibling:A,setScopeId:x=Mn,insertStaticContent:M}=e,G=(g,m,C,j=null,se=null,W=null,we=void 0,_e=null,xe=!!m.dynamicChildren)=>{if(g===m)return;g&&!Ps(g,m)&&(j=xt(g),re(g,se,W,!0),g=null),m.patchFlag===-2&&(xe=!1,m.dynamicChildren=null),m.dynamicChildren&&g&&g.dynamicChildren&&g.dynamicChildren.hasOnce&&(m.dynamicChildren===Ms&&(m.dynamicChildren=[]),m.dynamicChildren.hasOnce=!0);const{type:fe,ref:Ke,shapeFlag:Te}=m;switch(fe){case wa:oe(g,m,C,j);break;case Yt:le(g,m,C,j);break;case jr:g==null&&ce(m,C,j,we);break;case je:Z(g,m,C,j,se,W,we,_e,xe);break;default:Te&1?U(g,m,C,j,se,W,we,_e,xe):Te&6?Oe(g,m,C,j,se,W,we,_e,xe):(Te&64||Te&128)&&fe.process(g,m,C,j,se,W,we,_e,xe,bt)}Ke!=null&&se?Po(Ke,g&&g.ref,W,m||g,!m):Ke==null&&g&&g.ref!=null&&Po(g.ref,null,W,g,!0)},oe=(g,m,C,j)=>{if(g==null)o(m.el=f(m.children),C,j);else{const se=m.el=g.el;m.children!==g.children&&b(se,m.children)}},le=(g,m,C,j)=>{g==null?o(m.el=v(m.children||""),C,j):m.el=g.el},ce=(g,m,C,j)=>{[g.el,g.anchor]=M(g.children,m,C,j,g.el,g.anchor)},Y=({el:g,anchor:m},C,j)=>{let se;for(;g&&g!==m;)se=A(g),o(g,C,j),g=se;o(m,C,j)},E=({el:g,anchor:m})=>{let C;for(;g&&g!==m;)C=A(g),r(g),g=C;r(m)},U=(g,m,C,j,se,W,we,_e,xe)=>{if(m.type==="svg"?we="svg":m.type==="math"&&(we="mathml"),g==null)Q(m,C,j,se,W,we,_e,xe);else{const fe=g.el&&g.el._isVueCE?g.el:null;try{fe&&fe._beginPatch(),I(g,m,se,W,we,_e,xe)}finally{fe&&fe._endPatch()}}},Q=(g,m,C,j,se,W,we,_e)=>{let xe,fe;const{props:Ke,shapeFlag:Te,transition:Be,dirs:ue}=g;if(xe=g.el=c(g.type,W,Ke&&Ke.is,Ke),Te&8?h(xe,g.children):Te&16&&te(g.children,xe,null,j,se,fi(g,W),we,_e),ue&&$s(g,null,j,"created"),B(xe,g,g.scopeId,we,j),Ke){for(const de in Ke)de!=="value"&&!Eo(de)&&i(xe,de,null,Ke[de],W,j);"value"in Ke&&i(xe,"value",null,Ke.value,W),(fe=Ke.onVnodeBeforeMount)&&$n(fe,j,g)}ue&&$s(g,null,j,"beforeMount");const z=Vp(se,Be);z&&Be.beforeEnter(xe),o(xe,m,C),((fe=Ke&&Ke.onVnodeMounted)||z||ue)&&en(()=>{try{fe&&$n(fe,j,g),z&&Be.enter(xe),ue&&$s(g,null,j,"mounted")}finally{}},se)},B=(g,m,C,j,se)=>{if(C&&x(g,C),j)for(let W=0;W<j.length;W++)x(g,j[W]);if(se){let W=se.subTree;if(m===W||Wc(W.type)&&(W.ssContent===m||W.ssFallback===m)){const we=se.vnode;B(g,we,we.scopeId,we.slotScopeIds,se.parent)}}},te=(g,m,C,j,se,W,we,_e,xe=0)=>{for(let fe=xe;fe<g.length;fe++){const Ke=g[fe]=_e?Un(g[fe]):Pn(g[fe]);G(null,Ke,m,C,j,se,W,we,_e)}},I=(g,m,C,j,se,W,we)=>{const _e=m.el=g.el;let{patchFlag:xe,dynamicChildren:fe,dirs:Ke}=m;xe|=g.patchFlag&16;const Te=g.props||yt,Be=m.props||yt;let ue;if(C&&Ss(C,!1),(ue=Be.onVnodeBeforeUpdate)&&$n(ue,C,m,g),Ke&&$s(m,g,C,"beforeUpdate"),C&&Ss(C,!0),fe&&(!g.dynamicChildren||g.dynamicChildren.length!==fe.length)&&(xe=0,we=!1,fe=null),(Te.innerHTML&&Be.innerHTML==null||Te.textContent&&Be.textContent==null)&&h(_e,""),fe?S(g.dynamicChildren,fe,_e,C,j,fi(m,se),W):we||qe(g,m,_e,null,C,j,fi(m,se),W,!1),xe>0){if(xe&16)O(_e,Te,Be,C,se);else if(xe&2&&Te.class!==Be.class&&i(_e,"class",null,Be.class,se),xe&4&&i(_e,"style",Te.style,Be.style,se),xe&8){const z=m.dynamicProps;for(let de=0;de<z.length;de++){const De=z[de],st=Te[De],ht=Be[De];(ht!==st||De==="value")&&i(_e,De,st,ht,se,C)}}xe&1&&g.children!==m.children&&h(_e,m.children)}else!we&&fe==null&&O(_e,Te,Be,C,se);((ue=Be.onVnodeUpdated)||Ke)&&en(()=>{ue&&$n(ue,C,m,g),Ke&&$s(m,g,C,"updated")},j)},S=(g,m,C,j,se,W,we)=>{for(let _e=0;_e<m.length;_e++){const xe=g[_e],fe=m[_e],Ke=xe.el||Oi(xe),Te=Ke&&(xe.type===je||!Ps(xe,fe)||xe.shapeFlag&198)?_(Ke):C;G(xe,fe,Te,null,j,se,W,we,!0)}},O=(g,m,C,j,se)=>{if(m!==C){if(m!==yt)for(const W in m)!Eo(W)&&!(W in C)&&i(g,W,m[W],null,se,j);for(const W in C){if(Eo(W))continue;const we=C[W],_e=m[W];we!==_e&&W!=="value"&&i(g,W,_e,we,se,j)}"value"in C&&i(g,"value",m.value,C.value,se)}},Z=(g,m,C,j,se,W,we,_e,xe)=>{const fe=m.el=g?g.el:f(""),Ke=m.anchor=g?g.anchor:f("");let{patchFlag:Te,dynamicChildren:Be,slotScopeIds:ue}=m;ue&&(_e=_e?_e.concat(ue):ue),g==null?(o(fe,C,j),o(Ke,C,j),te(m.children||[],C,Ke,se,W,we,_e,xe)):Te>0&&Te&64&&Be&&g.dynamicChildren&&g.dynamicChildren.length===Be.length?(S(g.dynamicChildren,Be,C,se,W,we,_e),(m.key!=null||se&&m===se.subTree)&&ul(g,m,!0)):qe(g,m,C,Ke,se,W,we,_e,xe)},Oe=(g,m,C,j,se,W,we,_e,xe)=>{m.slotScopeIds=_e,g==null?m.shapeFlag&512?se.ctx.activate(m,C,j,we,xe):Ee(m,C,j,se,W,we,xe):be(g,m,xe)},Ee=(g,m,C,j,se,W,we)=>{const _e=g.component=Jp(g,j,se);if(ya(g)&&(_e.ctx.renderer=bt),Xp(_e,!1,we),_e.asyncDep){if(se&&se.registerDep(_e,Ae,we,W),!g.el){const xe=_e.subTree=ke(Yt);le(null,xe,m,C),g.placeholder=xe.el}}else Ae(_e,g,m,C,se,W,we)},be=(g,m,C)=>{const j=m.component=g.component;if(Op(g,m,C))if(j.asyncDep&&!j.asyncResolved){m.el=g.el,m.placeholder=g.placeholder,He(j,m,C);return}else j.next=m,j.update();else m.el=g.el,m.placeholder=g.placeholder,j.vnode=m},Ae=(g,m,C,j,se,W,we)=>{const _e=()=>{if(g.isMounted){let{next:Te,bu:Be,u:ue,parent:z,vnode:de}=g;{const Qe=zc(g);if(Qe){Te&&(Te.el=de.el,He(g,Te,we)),Qe.asyncDep.then(()=>{en(()=>{g.isUnmounted||fe()},se)});return}}let De=Te,st;Ss(g,!1),Te?(Te.el=de.el,He(g,Te,we)):Te=de,Be&&Mr(Be),(st=Te.props&&Te.props.onVnodeBeforeUpdate)&&$n(st,z,Te,de),Ss(g,!0);const ht=fu(g),It=g.subTree;g.subTree=ht,G(It,ht,_(It.el),xt(It),g,se,W),Te.el=ht.el,De===null&&Mp(g,ht.el),ue&&en(ue,se),(st=Te.props&&Te.props.onVnodeUpdated)&&en(()=>$n(st,z,Te,de),se)}else{let Te;const{el:Be,props:ue}=m,{bm:z,m:de,parent:De,root:st,type:ht}=g,It=Oo(m);Ss(g,!1),z&&Mr(z),!It&&(Te=ue&&ue.onVnodeBeforeMount)&&$n(Te,De,m),Ss(g,!0);{st.ce&&st.ce._hasShadowRoot()&&st.ce._injectChildStyle(ht,g.parent?g.parent.type:void 0);const Qe=g.subTree=fu(g);G(null,Qe,C,j,g,se,W),m.el=Qe.el}if(de&&en(de,se),!It&&(Te=ue&&ue.onVnodeMounted)){const Qe=m;en(()=>$n(Te,De,Qe),se)}(m.shapeFlag&256||De&&Oo(De.vnode)&&De.vnode.shapeFlag&256)&&g.a&&en(g.a,se),g.isMounted=!0,m=C=j=null}};g.scope.on();const xe=g.effect=new Zu(_e);g.scope.off();const fe=g.update=xe.run.bind(xe),Ke=g.job=xe.runIfDirty.bind(xe);Ke.i=g,Ke.id=g.uid,xe.scheduler=()=>rl(Ke),Ss(g,!0),fe()},He=(g,m,C)=>{m.component=g;const j=g.vnode.props;g.vnode=m,g.next=null,jp(g,m.props,j,C),Rp(g,m.children,C),jn(),yc(g),Dn()},qe=(g,m,C,j,se,W,we,_e,xe=!1)=>{const fe=g&&g.children,Ke=g?g.shapeFlag:0,Te=m.children,{patchFlag:Be,shapeFlag:ue}=m;if(Be>0){if(Be&128){pe(fe,Te,C,j,se,W,we,_e,xe);return}else if(Be&256){Xe(fe,Te,C,j,se,W,we,_e,xe);return}}ue&8?(Ke&16&&Ct(fe,se,W),Te!==fe&&h(C,Te)):Ke&16?ue&16?pe(fe,Te,C,j,se,W,we,_e,xe):Ct(fe,se,W,!0):(Ke&8&&h(C,""),ue&16&&te(Te,C,j,se,W,we,_e,xe))},Xe=(g,m,C,j,se,W,we,_e,xe)=>{g=g||Ms,m=m||Ms;const fe=g.length,Ke=m.length,Te=Math.min(fe,Ke);let Be;for(Be=0;Be<Te;Be++){const ue=m[Be]=xe?Un(m[Be]):Pn(m[Be]);G(g[Be],ue,C,null,se,W,we,_e,xe)}fe>Ke?Ct(g,se,W,!0,!1,Te):te(m,C,j,se,W,we,_e,xe,Te)},pe=(g,m,C,j,se,W,we,_e,xe)=>{let fe=0;const Ke=m.length;let Te=g.length-1,Be=Ke-1;for(;fe<=Te&&fe<=Be;){const ue=g[fe],z=m[fe]=xe?Un(m[fe]):Pn(m[fe]);if(Ps(ue,z))G(ue,z,C,null,se,W,we,_e,xe);else break;fe++}for(;fe<=Te&&fe<=Be;){const ue=g[Te],z=m[Be]=xe?Un(m[Be]):Pn(m[Be]);if(Ps(ue,z))G(ue,z,C,null,se,W,we,_e,xe);else break;Te--,Be--}if(fe>Te){if(fe<=Be){const ue=Be+1,z=ue<Ke?m[ue].el:j;for(;fe<=Be;)G(null,m[fe]=xe?Un(m[fe]):Pn(m[fe]),C,z,se,W,we,_e,xe),fe++}}else if(fe>Be)for(;fe<=Te;)re(g[fe],se,W,!0),fe++;else{const ue=fe,z=fe,de=new Map;for(fe=z;fe<=Be;fe++){const Vt=m[fe]=xe?Un(m[fe]):Pn(m[fe]);Vt.key!=null&&de.set(Vt.key,fe)}let De,st=0;const ht=Be-z+1;let It=!1,Qe=0;const Xt=new Array(ht);for(fe=0;fe<ht;fe++)Xt[fe]=0;for(fe=ue;fe<=Te;fe++){const Vt=g[fe];if(st>=ht){re(Vt,se,W,!0);continue}let jt;if(Vt.key!=null)jt=de.get(Vt.key);else for(De=z;De<=Be;De++)if(Xt[De-z]===0&&Ps(Vt,m[De])){jt=De;break}jt===void 0?re(Vt,se,W,!0):(Xt[jt-z]=fe+1,jt>=Qe?Qe=jt:It=!0,G(Vt,m[jt],C,null,se,W,we,_e,xe),st++)}const ys=It?Bp(Xt):Ms;for(De=ys.length-1,fe=ht-1;fe>=0;fe--){const Vt=z+fe,jt=m[Vt],Ue=m[Vt+1],Jn=Vt+1<Ke?Ue.el||Oi(Ue):j;Xt[fe]===0?G(null,jt,C,Jn,se,W,we,_e,xe):It&&(De<0||fe!==ys[De]?me(jt,C,Jn,2):De--)}}},me=(g,m,C,j,se=null)=>{const{el:W,type:we,transition:_e,children:xe,shapeFlag:fe}=g;if(fe&6){me(g.component.subTree,m,C,j);return}if(fe&128){g.suspense.move(m,C,j);return}if(fe&64){we.move(g,m,C,bt);return}if(we===je){o(W,m,C);for(let Te=0;Te<xe.length;Te++)me(xe[Te],m,C,j);o(g.anchor,m,C);return}if(we===jr){Y(g,m,C);return}if(j!==2&&fe&1&&_e)if(j===0)_e.persisted&&!W[cn]?o(W,m,C):(_e.beforeEnter(W),o(W,m,C),en(()=>_e.enter(W),se));else{const{leave:Te,delayLeave:Be,afterLeave:ue}=_e,z=()=>{g.ctx.isUnmounted?r(W):o(W,m,C)},de=()=>{const De=W._isLeaving||!!W[cn];W._isLeaving&&W[cn](!0),_e.persisted&&!De?z():Te(W,()=>{z(),ue&&ue()})};Be?Be(W,z,de):de()}else o(W,m,C)},re=(g,m,C,j=!1,se=!1)=>{const{type:W,props:we,ref:_e,children:xe,dynamicChildren:fe,shapeFlag:Ke,patchFlag:Te,dirs:Be,cacheIndex:ue,memo:z}=g;if((Te===-2||fe&&fe.hasOnce)&&(se=!1),_e!=null&&(jn(),Po(_e,null,C,g,!0),Dn()),ue!=null&&(!g.ctx||g.ctx===m)&&(m.renderCache[ue]=void 0),Ke&256){m.ctx.deactivate(g);return}const de=Ke&1&&Be,De=!Oo(g);let st;if(De&&(st=we&&we.onVnodeBeforeUnmount)&&$n(st,m,g),Ke&6)ft(g.component,C,j);else{if(Ke&128){g.suspense.unmount(C,j);return}de&&$s(g,null,m,"beforeUnmount"),Ke&64?g.type.remove(g,m,C,bt,j):fe&&!fe.hasOnce&&(W!==je||Te>0&&Te&64)?Ct(fe,m,C,!1,!0):(W===je&&Te&384||!se&&Ke&16)&&Ct(xe,m,C),j&&ae(g)}const ht=z!=null&&ue==null;(De&&(st=we&&we.onVnodeUnmounted)||de||ht)&&en(()=>{st&&$n(st,m,g),de&&$s(g,null,m,"unmounted"),ht&&(g.el=null)},C)},ae=g=>{const{type:m,el:C,anchor:j,transition:se}=g,W=m===je;if(W&&!se){Me(C,j);return}if(m===jr){E(g),se&&!se.persisted&&se.afterLeave&&se.afterLeave();return}const we=W?Fo(g):g,_e=()=>{W?_(C)&&Me(C,j):r(C),se&&!se.persisted&&se.afterLeave&&se.afterLeave()};if(we&&we.shapeFlag&1&&se&&!se.persisted){const{leave:xe,delayLeave:fe}=se,Ke=we.el,Te=()=>xe(Ke,_e);fe?fe(Ke,_e,Te):Te()}else _e()},Me=(g,m)=>{let C;for(;g!==m;)C=A(g),r(g),g=C;r(m)},ft=(g,m,C)=>{const{bum:j,scope:se,job:W,subTree:we,um:_e,m:xe,a:fe}=g;mu(xe),mu(fe),j&&Mr(j),se.stop(),W?(W.flags|=8,re(we,g,m,C)):g.vnode.el&&we&&(we.transition=g.vnode.transition,re(we,g,m,C)),_e&&en(_e,m),en(()=>{g.isUnmounted=!0},m)},Ct=(g,m,C,j=!1,se=!1,W=0)=>{for(let we=W;we<g.length;we++)re(g[we],m,C,j,se)},xt=g=>{if(g.shapeFlag&6)return xt(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const m=A(g.anchor||g.el),C=m&&m[Cc];return C?A(C):m},qt=(g,m,C)=>{const j=g&&m._vnode?void 0:g&&g.component?g.component.uid:Yp();Qf(()=>{g==null?m._vnode&&re(m._vnode,null,null,!0):G(m._vnode||null,g,m,null,null,null,C),m._vnode=g},j)},bt={p:G,um:re,m:me,r:ae,mt:Ee,mc:te,pc:qe,pbc:S,n:xt,o:e};return{render:qt,hydrate:void 0,createApp:$p(qt)}}function fi({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ss({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Vp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ul(e,t,n=!1){const o=e.children,r=t.children;if(We(o)&&We(r))for(let i=0;i<o.length;i++){const c=o[i];let f=r[i];f.shapeFlag&1&&!f.dynamicChildren&&((f.patchFlag<=0||f.patchFlag===32)&&(f=r[i]=Un(r[i]),f.el=c.el),!n&&f.patchFlag!==-2&&ul(c,f)),f.type===wa&&(f.patchFlag===-1&&(f=r[i]=Un(f)),f.el=c.el),f.type===Yt&&!f.el&&(f.el=c.el)}}function Bp(e){const t=e.slice(),n=[0];let o,r,i,c,f;const v=e.length;for(o=0;o<v;o++){const b=e[o];if(b!==0){if(r=n[n.length-1],e[r]<b){t[o]=r,n.push(o);continue}for(i=0,c=n.length-1;i<c;)f=i+c>>1,e[n[f]]<b?i=f+1:c=f;b<e[n[i]]&&(i>0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,c=n[i-1];i-- >0;)n[i]=c,c=t[c];return n}function zc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:zc(t)}function mu(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Oi(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Oi(t.subTree):null}const Wc=e=>e.__isSuspense;function Up(e,t){t&&t.pendingBranch?We(e)?t.effects.push(...e):t.effects.push(e):Xf(e)}const je=Symbol.for("v-fgt"),wa=Symbol.for("v-txt"),Yt=Symbol.for("v-cmt"),jr=Symbol.for("v-stc"),Ds=[];let an=null;function $(e=!1){Ds.push(an=e?null:[])}function Gc(){Ds.pop(),an=Ds[Ds.length-1]||null}let No=1;function Gr(e,t=!1){No+=e,e<0&&an&&t&&(an.hasOnce=!0)}function Yc(e){return e.dynamicChildren=No>0?an||Ms:null,Gc(),No>0&&an&&an.push(e),e}function T(e,t,n,o,r,i){return Yc(l(e,t,n,o,r,i,!0))}function kt(e,t,n,o,r){return Yc(ke(e,t,n,o,r,!0))}function Vo(e){return e?e.__v_isVNode===!0:!1}function Ps(e,t){return e.type===t.type&&e.key===t.key}const Jc=({key:e})=>e??null,Dr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Et(e)||Jt(e)||et(e)?{i:dn,r:e,k:t,f:!!n}:e:null);function l(e,t=null,n=null,o=0,r=null,i=e===je?0:1,c=!1,f=!1){const v={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jc(t),ref:t&&Dr(t),scopeId:wc,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:dn};return f?(Yr(v,n),i&128&&e.normalize(v)):n&&(v.shapeFlag|=Et(n)?8:16),No>0&&!c&&an&&(v.patchFlag>0||i&6)&&v.patchFlag!==32&&an.push(v),v}const ke=qp;function qp(e,t=null,n=null,o=0,r=null,i=!1){if((!e||e===yp)&&(e=Yt),Vo(e)){const f=ps(e,t,!0);return n&&Yr(f,n),No>0&&!i&&an&&(f.shapeFlag&6?an[an.indexOf(e)]=f:an.push(f)),f.patchFlag=-2,f}if(tv(e)&&(e=e.__vccOpts),t){t=Hp(t);let{class:f,style:v}=t;f&&!Et(f)&&(t.class=Je(f)),mt(v)&&(ol(v)&&!We(v)&&(v=Mt({},v)),t.style=zn(v))}const c=Et(e)?1:Wc(e)?128:ha(e)?64:mt(e)?4:et(e)?2:0;return l(e,t,n,o,r,c,i,!0)}function Hp(e){return e?ol(e)||Nc(e)?Mt({},e):e:null}function ps(e,t,n=!1,o=!1){const{props:r,ref:i,patchFlag:c,children:f,transition:v}=e,b=t?Wp(r||{},t):r,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:b,key:b&&Jc(b),ref:t&&t.ref?n&&i?We(i)?i.concat(Dr(t)):[i,Dr(t)]:Dr(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:f,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==je?c===-1?16:c|16:c,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:v,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ps(e.ssContent),ssFallback:e.ssFallback&&ps(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return v&&o&&fs(h,v.clone(h)),h}function gt(e=" ",t=0){return ke(wa,null,e,t)}function zp(e,t){const n=ke(jr,null,e);return n.staticCount=t,n}function ve(e="",t=!1){return t?($(),kt(Yt,null,e)):ke(Yt,null,e)}function Pn(e){return e==null||typeof e=="boolean"?ke(Yt):We(e)?ke(je,null,e.slice()):Vo(e)?Un(e):ke(wa,null,String(e))}function Un(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ps(e)}function Yr(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(We(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Yr(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Nc(t)?t._ctx=dn:r===3&&dn&&(dn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(et(t)){if(o&65){Yr(e,{default:t});return}t={default:t,_ctx:dn},n=32}else t=String(t),o&64?(n=16,t=[gt(t)]):n=8;e.children=t,e.shapeFlag|=n}function Wp(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const r in o)if(r==="class")t.class!==o.class&&(t.class=Je([t.class,o.class]));else if(r==="style")t.style=zn([t.style,o.style]);else if(ua(r)){const i=t[r],c=o[r];c&&i!==c&&!(We(i)&&i.includes(c))?t[r]=i?[].concat(i,c):c:c==null&&i==null&&!ca(r)&&(t[r]=c)}else r!==""&&(t[r]=o[r])}return t}function $n(e,t,n,o=null){mn(e,t,7,[n,o])}const Gp=jc();let Xc=0;function Yp(){return Xc}function Jp(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||Gp,i={uid:Xc++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new kf(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Bc(o,r),emitsOptions:Dc(o,r),emit:null,emitted:null,propsDefaults:yt,inheritAttrs:o.inheritAttrs,ctx:yt,data:yt,props:yt,attrs:yt,slots:yt,refs:yt,setupState:yt,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Ep.bind(null,i),e.ce&&e.ce(i),i}let nn=null;const cl=()=>nn||dn;let Jr,Bo;{const e=pa(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),i=>{r.length>1?r.forEach(c=>c(i)):r[0](i)}};Jr=t("__VUE_INSTANCE_SETTERS__",n=>nn=n),Bo=t("__VUE_SSR_SETTERS__",n=>Uo=n)}const Jo=e=>{const t=nn;return Jr(e),e.scope.on(),()=>{e.scope.off(),Jr(t)}},hu=()=>{nn&&nn.scope.off(),Jr(null)};function Qc(e){return e.vnode.shapeFlag&4}let Uo=!1;function Xp(e,t=!1,n=!1){t&&Bo(t);const{props:o,children:r}=e.vnode,i=Qc(e);Ip(e,o,i,t),Kp(e,r,n||t);const c=i?Qp(e,t):void 0;return t&&Bo(!1),c}function Qp(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,gp);const{setup:o}=n;if(o){jn();const r=e.setupContext=o.length>1?ev(e):null,i=Jo(e),c=Yo(o,e,0,[e.props,r]),f=Hu(c);if(Dn(),i(),(f||e.sp)&&!Oo(e)&&Tc(e),f){if(c.then(hu,hu),t)return c.then(v=>{Bo(!0);try{yu(e,v,t)}finally{Bo(!1)}}).catch(v=>{ma(v,e,0)});e.asyncDep=c}else yu(e,c)}else Zc(e)}function yu(e,t,n){et(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:mt(t)&&(e.setupState=vc(t)),Zc(e)}function Zc(e,t,n){const o=e.type;e.render||(e.render=o.render||Mn);{const r=Jo(e);jn();try{bp(e)}finally{Dn(),r()}}}const Zp={get(e,t){return Gt(e,"get",""),e[t]}};function ev(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Zp),slots:e.slots,emit:e.emit,expose:t}}function _a(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(vc(Vf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Mo)return Mo[n](e)},has(t,n){return n in t||n in Mo}})):e.proxy}function tv(e){return et(e)&&"__vccOpts"in e}const ot=(e,t)=>zf(e,t,Uo);function nv(e,t,n){try{Gr(-1);const o=arguments.length;return o===2?mt(t)&&!We(t)?Vo(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Vo(n)&&(n=[n]),ke(e,t,n))}finally{Gr(1)}}const sv="3.5.44";/**
* @vue/runtime-dom v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Mi;const gu=typeof window<"u"&&window.trustedTypes;if(gu)try{Mi=gu.createPolicy("vue",{createHTML:e=>e})}catch{}const ed=Mi?e=>Mi.createHTML(e):e=>e,ov="http://www.w3.org/2000/svg",rv="http://www.w3.org/1998/Math/MathML",Bn=typeof document<"u"?document:null,bu=Bn&&Bn.createElement("template"),av={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?Bn.createElementNS(ov,e):t==="mathml"?Bn.createElementNS(rv,e):n?Bn.createElement(e,{is:n}):Bn.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>Bn.createTextNode(e),createComment:e=>Bn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Bn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,i){const c=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{bu.innerHTML=ed(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const f=bu.content;if(o==="svg"||o==="mathml"){const v=f.firstChild;for(;v.firstChild;)f.appendChild(v.firstChild);f.removeChild(v)}t.insertBefore(f,n)}return[c?c.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ss="transition",Co="animation",so=Symbol("_vtc"),td={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},nd=Mt({},$c,td),iv=e=>(e.displayName="Transition",e.props=nd,e),hs=iv((e,{slots:t})=>nv(ip,sd(e),t)),Es=(e,t=[])=>{We(e)?e.forEach(n=>n(...t)):e&&e(...t)},wu=e=>e?We(e)?e.some(t=>t.length>1):e.length>1:!1;function sd(e){const t={};for(const Z in e)Z in td||(t[Z]=e[Z]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:c=`${n}-enter-active`,enterToClass:f=`${n}-enter-to`,appearFromClass:v=i,appearActiveClass:b=c,appearToClass:h=f,leaveFromClass:_=`${n}-leave-from`,leaveActiveClass:A=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,M=lv(r),G=M&&M[0],oe=M&&M[1],{onBeforeEnter:le,onEnter:ce,onEnterCancelled:Y,onLeave:E,onLeaveCancelled:U,onBeforeAppear:Q=le,onAppear:B=ce,onAppearCancelled:te=Y}=t,I=(Z,Oe,Ee,be)=>{Z._enterCancelled=be,rs(Z,Oe?h:f),rs(Z,Oe?b:c),Ee&&Ee()},S=(Z,Oe)=>{Z._isLeaving=!1,rs(Z,_),rs(Z,x),rs(Z,A),Oe&&Oe()},O=Z=>(Oe,Ee)=>{const be=Z?B:ce,Ae=()=>I(Oe,Z,Ee);Es(be,[Oe,Ae]),_u(()=>{rs(Oe,Z?v:i),Sn(Oe,Z?h:f),wu(be)||ku(Oe,o,G,Ae)})};return Mt(t,{onBeforeEnter(Z){Es(le,[Z]),Sn(Z,i),Sn(Z,c)},onBeforeAppear(Z){Es(Q,[Z]),Sn(Z,v),Sn(Z,b)},onEnter:O(!1),onAppear:O(!0),onLeave(Z,Oe){Z._isLeaving=!0;const Ee=()=>S(Z,Oe);Sn(Z,_),Z._enterCancelled?(Sn(Z,A),Ii(Z)):(Ii(Z),Sn(Z,A)),_u(()=>{Z._isLeaving&&(rs(Z,_),Sn(Z,x),wu(E)||ku(Z,o,oe,Ee))}),Es(E,[Z,Ee])},onEnterCancelled(Z){I(Z,!1,void 0,!0),Es(Y,[Z])},onAppearCancelled(Z){I(Z,!0,void 0,!0),Es(te,[Z])},onLeaveCancelled(Z){S(Z),Es(U,[Z])}})}function lv(e){if(e==null)return null;if(mt(e))return[pi(e.enter),pi(e.leave)];{const t=pi(e);return[t,t]}}function pi(e){return ff(e)}function Sn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[so]||(e[so]=new Set)).add(t)}function rs(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[so];n&&(n.delete(t),n.size||(e[so]=void 0))}function _u(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let uv=0;function ku(e,t,n,o){const r=e._endId=++uv,i=()=>{r===e._endId&&o()};if(n!=null)return setTimeout(i,n);const{type:c,timeout:f,propCount:v}=od(e,t);if(!c)return o();const b=c+"end";let h=0;const _=()=>{e.removeEventListener(b,A),i()},A=x=>{x.target===e&&++h>=v&&_()};setTimeout(()=>{h<v&&_()},f+1),e.addEventListener(b,A)}function od(e,t){const n=window.getComputedStyle(e),o=M=>(n[M]||"").split(", "),r=o(`${ss}Delay`),i=o(`${ss}Duration`),c=Cu(r,i),f=o(`${Co}Delay`),v=o(`${Co}Duration`),b=Cu(f,v);let h=null,_=0,A=0;t===ss?c>0&&(h=ss,_=c,A=i.length):t===Co?b>0&&(h=Co,_=b,A=v.length):(_=Math.max(c,b),h=_>0?c>b?ss:Co:null,A=h?h===ss?i.length:v.length:0);const x=h===ss&&/\b(?:transform|all)(?:,|$)/.test(o(`${ss}Property`).toString());return{type:h,timeout:_,propCount:A,hasTransform:x}}function Cu(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,o)=>xu(n)+xu(e[o])))}function xu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ii(e){return(e?e.ownerDocument:document).body.offsetHeight}function cv(e,t,n){const o=e[so];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const $u=Symbol("_vod"),rd=Symbol("_vsh"),dv=Symbol(""),fv=/(?:^|;)\s*display\s*:/;function pv(e,t,n){const o=e.style,r=Et(n);let i=!1;if(n&&!r){if(t)if(Et(t))for(const c of t.split(";")){const f=c.slice(0,c.indexOf(":")).trim();n[f]==null&&So(o,f,"")}else for(const c in t)n[c]==null&&So(o,c,"");for(const c in n){c==="display"&&(i=!0);const f=n[c];f!=null?mv(e,c,!Et(t)&&t?t[c]:void 0,f)||So(o,c,f):So(o,c,"")}}else if(r){if(t!==n){const c=o[dv];c&&(n+=";"+c),o.cssText=n,i=fv.test(n)}}else t&&e.removeAttribute("style");$u in e&&((!r||t!==n)&&(e[$u]=i?o.display:""),e[rd]&&(o.display="none"))}const Ar=/\s*!important$/;function So(e,t,n){if(We(n))n.forEach(o=>So(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Ar.test(n)?e.setProperty(t,n.replace(Ar,""),"important"):e.setProperty(t,n);else{const o=vv(e,t);Ar.test(n)?e.setProperty(ms(o),n.replace(Ar,""),"important"):e[o]=n}}const Su=["Webkit","Moz","ms"],vi={};function vv(e,t){const n=vi[t];if(n)return n;let o=gn(t);if(o!=="filter"&&o in e)return vi[t]=o;o=Gu(o);for(let r=0;r<Su.length;r++){const i=Su[r]+o;if(i in e)return vi[t]=i}return t}function mv(e,t,n,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Et(o)&&n===o}const Eu="http://www.w3.org/1999/xlink";function Tu(e,t,n,o,r,i=gf(t)){o&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Eu,t.slice(6,t.length)):e.setAttributeNS(Eu,t,n):n==null||i&&!Ju(n)?e.removeAttribute(t):e.setAttribute(t,i?"":In(n)?String(n):n)}function Au(e,t,n,o,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ed(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const f=i==="OPTION"?e.getAttribute("value")||"":e.value,v=n==null?e.type==="checkbox"?"on":"":String(n);(f!==v||!("_value"in e))&&(e.value=v),n==null&&e.removeAttribute(t),e._value=n;return}let c=!1;if(n===""||n==null){const f=typeof e[t];f==="boolean"?n=Ju(n):n==null&&f==="string"?(n="",c=!0):f==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(r||t)}function Os(e,t,n,o){e.addEventListener(t,n,o)}function hv(e,t,n,o){e.removeEventListener(t,n,o)}const Pu=Symbol("_vei");function yv(e,t,n,o,r=null){const i=e[Pu]||(e[Pu]={}),c=i[t];if(o&&c)c.value=o;else{const[f,v]=wv(t);if(o){const b=i[t]=Cv(o,r);Os(e,f,b,v)}else c&&(hv(e,f,c,v),i[t]=void 0)}}const gv=/(Once|Passive|Capture)$/,bv=/^on:?(?:Once|Passive|Capture)$/;function wv(e){let t,n;for(;(n=e.match(gv))&&!bv.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):ms(e.slice(2)),t]}let mi=0;const _v=Promise.resolve(),kv=()=>mi||(_v.then(()=>mi=0),mi=Date.now());function Cv(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const r=n.value;if(We(r)){const i=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{i.call(o),o._stopped=!0};const c=r.slice(),f=[o];for(let v=0;v<c.length&&!o._stopped;v++){const b=c[v];b&&mn(b,t,5,f)}}else mn(r,t,5,[o])};return n.value=e,n.attached=kv(),n}const Ou=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xv=(e,t,n,o,r,i)=>{const c=r==="svg";t==="class"?cv(e,o,c):t==="style"?pv(e,n,o):ua(t)?ca(t)||yv(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$v(e,t,o,c))?(Au(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Tu(e,t,o,c,i,t!=="value")):e._isVueCE&&(Sv(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Et(o)))?Au(e,gn(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Tu(e,t,o,c))};function $v(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ou(t)&&et(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Ou(t)&&Et(n)?!1:t in e}function Sv(e,t){const n=e._def.props;if(!n)return!1;const o=gn(t);return Array.isArray(n)?n.some(r=>gn(r)===o):Object.keys(n).some(r=>gn(r)===o)}const ad=new WeakMap,id=new WeakMap,Xr=Symbol("_moveCb"),Mu=Symbol("_enterCb"),ji=new WeakMap,Ev=e=>(delete e.props.mode,e),Tv=Ev({name:"TransitionGroup",props:Mt({},nd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=cl(),o=xc();let r,i,c,f;const v=()=>(f===void 0&&(f=r.length>0&&Lv(r[0].el,n.vnode.el,Iu(e))),f);return Pc(()=>{if(ji.delete(n),!v()){r=[],c=void 0;return}const b=Iu(e);r.forEach(Pv);const h=c&&Dv(c,n.vnode.el);c=void 0,r.forEach(A=>Ov(A,h));const _=r.filter(Mv);Ii(n.vnode.el),_.forEach(A=>{const x=A.el,M=x.style;Sn(x,b),M.transform=M.webkitTransform=M.transitionDuration="";const G=x[Xr]=oe=>{oe&&oe.target!==x||(!oe||oe.propertyName.endsWith("transform"))&&(x.removeEventListener("transitionend",G),x[Xr]=null,rs(x,b))};x.addEventListener("transitionend",G)}),r=[]}),()=>{const b=dt(e),h=sd(b);let _=b.tag||je;if(r=[],f=void 0,i)for(let A=0;A<i.length;A++){const x=i[A];x.el&&x.el instanceof Element&&!x.el[rd]&&(r.push(x),fs(x,Ro(x,h,o,n)),ad.set(x,ka(x.el)))}i=t.default?al(t.default()):[];for(let A=0;A<i.length;A++){const x=i[A];x.key!=null&&fs(x,Ro(x,h,o,n))}return r.length&&(c=Iv(n),ji.set(n,v)),ke(_,null,i)}}}),Av=Tv;function Pv(e){const t=e.el;t[Xr]&&t[Xr](),t[Mu]&&t[Mu]()}function Iu(e){return e.moveClass||`${e.name||"v"}-move`}function Ov(e,t){id.set(e,ka(e.el,t))}function Mv(e){const t=ad.get(e),n=id.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const i=e.el,c=i.style,f=i.getBoundingClientRect();let v=1,b=1;return i.offsetWidth&&(v=f.width/i.offsetWidth),i.offsetHeight&&(b=f.height/i.offsetHeight),(!Number.isFinite(v)||v===0)&&(v=1),(!Number.isFinite(b)||b===0)&&(b=1),Math.abs(v-1)<.01&&(v=1),Math.abs(b-1)<.01&&(b=1),c.transform=c.webkitTransform=`translate(${o/v}px,${r/b}px)`,c.transitionDuration="0s",e}}function ka(e,t){const n=e.getBoundingClientRect();return{left:n.left-(t?t.left:0),top:n.top-(t?t.top:0)}}function Iv(e){let t;for(let n=e.parent;n;n=n.parent){const o=ji.get(n);if(o){const r=jv(n.vnode.el,e.vnode.el);r&&(t||(t=[])).push(Mt(ka(r),{item:r,willMove:o}))}}return t}function jv(e,t){const n=e.nodeType===1?e:e.parentNode;for(;t&&t.parentNode!==n;)t=t.parentNode;if(t&&t.nodeType===1)return t}function Dv(e,t){const n=e.find(o=>o.willMove()&&o.item.contains(t));return n&&ka(n.item,n)}function Lv(e,t,n){const o=e.cloneNode(),r=e[so];r&&r.forEach(f=>{f.split(/\s+/).forEach(v=>v&&o.classList.remove(v))}),n.split(/\s+/).forEach(f=>f&&o.classList.add(f)),o.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(o);const{hasTransform:c}=od(o);return i.removeChild(o),c}const Qr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return We(t)?n=>Mr(t,n):t};function Kv(e){e.target.composing=!0}function ju(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Is=Symbol("_assign"),Pr=Symbol("_initialValue");function hi(e,t,n){return t&&(e=e.trim()),n&&(e=fa(e)),e}const Re={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e.parentNode&&(e.type==="text"?e[Pr]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Pr]=e.defaultValue.replace(/\r\n?/g,`
`))),e[Is]=Qr(r);const i=o||r.props&&r.props.type==="number";Os(e,t?"change":"input",c=>{c.target.composing||e[Is](hi(e.value,n,i))}),(n||i)&&Os(e,"change",()=>{e.value=hi(e.value,n,i)}),t||(Os(e,"compositionstart",Kv),Os(e,"compositionend",ju),Os(e,"change",ju))},mounted(e,{value:t,modifiers:{trim:n,number:o}}){const r=t??"",i=e[Pr];delete e[Pr],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Is](hi(e.value,n,o)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:r,number:i}},c){if(e[Is]=Qr(c),e.composing)return;const f=(i||e.type==="number")&&!/^0\d/.test(e.value)?fa(e.value):e.value,v=t??"";if(f===v)return;const b=e.getRootNode();(b instanceof Document||b instanceof ShadowRoot)&&b.activeElement===e&&e.type!=="range"&&(o&&t===n||r&&e.value.trim()===v)||(e.value=v)}},Wn={deep:!0,created(e,{value:t,modifiers:{number:n}},o){e._modelValue=t,Os(e,"change",()=>{const r=Array.prototype.filter.call(e.options,v=>v.selected).map(v=>n?fa(Zr(v)):Zr(v)),i=e.multiple,c=i?Ls(e._modelValue)?new Set(r):r:r[0],f=e._pendingValue=[i,i?We(c)?r.slice():r:c];try{e[Is](c)}finally{Rs(()=>{e._pendingValue===f&&(e._pendingValue=void 0)})}}),e[Is]=Qr(o)},mounted(e,{value:t}){Du(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Is]=Qr(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Rv(t,n[1],n[0]))&&Du(e,t)}};function Rv(e,t,n){if(!n||We(e))return cs(e,t);if(Ls(e)){if(e.size!==t.length)return!1;for(const o of t)if(!e.has(o))return!1;return!0}return!1}function Du(e,t){const n=e.multiple,o=We(t);if(!(n&&!o&&!Ls(t))){for(let r=0,i=e.options.length;r<i;r++){const c=e.options[r],f=Zr(c);if(n)if(o){const v=typeof f;v==="string"||v==="number"?c.selected=t.some(b=>String(b)===String(f)):c.selected=_f(t,f)>-1}else c.selected=t.has(f);else if(cs(Zr(c),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Zr(e){return"_value"in e?e._value:e.value}const Fv=["ctrl","shift","alt","meta"],Nv={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Fv.some(n=>e[`${n}Key`]&&!t.includes(n))},Nt=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(r,...i)=>{for(let c=0;c<t.length;c++){const f=Nv[t[c]];if(f&&f(r,t))return}return e(r,...i)})},Vv={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Ot=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=r=>{if(!("key"in r))return;const i=ms(r.key);if(t.some(c=>c===i||Vv[c]===i))return e(r)})},Bv=Mt({patchProp:xv},av);let Lu;function Uv(){return Lu||(Lu=Fp(Bv))}const qv=(...e)=>{const t=Uv().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=zv(o);if(!r)return;const i=t._component;!et(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const c=n(r,!1,Hv(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),c},t};function Hv(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zv(e){return Et(e)?document.querySelector(e):e}function Tt(e){return'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">'+e+"</svg>"}const Wv={calendar:Tt('<rect x="4" y="5.5" width="16" height="14" rx="2"/><path d="M8.5 3.5v3.5M15.5 3.5v3.5M4 10.5h16"/>'),clock:Tt('<circle cx="12" cy="12" r="8.25"/><path d="M12 7.75V12l2.75 1.75"/>'),"check-circle":Tt('<circle cx="12" cy="12" r="8.25"/><path d="M8.5 12.4l2.4 2.4 4.6-5.2"/>'),edit:Tt('<path d="M4.5 19.5v-3.2L16 4.8a1.9 1.9 0 0 1 2.7 2.7L7.2 19l-2.7.5z"/>'),tag:Tt('<path d="M4.5 5.5a1 1 0 0 1 1-1h5.6l8.4 8.4-6.6 6.6-8.4-8.4V5.5z"/><circle cx="8.8" cy="8.8" r="1.1"/>'),star:Tt('<path d="M12 4l2.5 5.1 5.6.8-4 3.9.9 5.6-5-2.7-5 2.7.9-5.6-4-3.9 5.6-.8L12 4z"/>'),close:Tt('<path d="M6.5 6.5l11 11M17.5 6.5l-11 11"/>'),flag:Tt('<path d="M6.5 21V4"/><path d="M6.5 4.5h10.8l-2.6 3.7 2.6 3.7H6.5"/>'),chart:Tt('<path d="M4.5 19.5h15"/><path d="M7.5 19.5V12M12 19.5V6.5M16.5 19.5V9.5"/>'),export:Tt('<path d="M12 4.5V14M8.25 10.25L12 14l3.75-3.75"/><path d="M5 19.5h14"/>'),"chevron-left":Tt('<path d="M14.5 6l-6 6 6 6"/>'),"chevron-right":Tt('<path d="M9.5 6l6 6-6 6"/>'),"chevron-down":Tt('<path d="M6 9.5l6 6 6-6"/>'),plus:Tt('<path d="M12 5.5v13M5.5 12h13"/>'),search:Tt('<circle cx="11" cy="11" r="6.5"/><path d="M15.8 15.8L20 20"/>'),settings:Tt('<circle cx="12" cy="12" r="3"/><path d="M12 4.5v2.2M12 17.3v2.2M4.5 12h2.2M17.3 12h2.2M6.8 6.8l1.6 1.6M15.6 15.6l1.6 1.6M17.2 6.8l-1.6 1.6M8.4 15.6l-1.6 1.6"/>'),memo:Tt('<path d="M6.5 3.5h7.5L18.5 8v11a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1v-15a1 1 0 0 1 1-1z"/><path d="M14 3.5V8h4.5M9.5 12h5M9.5 15.5h5"/>'),lock:Tt('<rect x="5.5" y="10.5" width="13" height="9.5" rx="1.5"/><path d="M8.5 10.5V8a3.5 3.5 0 0 1 7 0v2.5"/>'),wallet:Tt('<rect x="3.5" y="6" width="17" height="12.5" rx="2"/><path d="M3.5 10h17"/><circle cx="16.4" cy="14.2" r="1.1"/>'),more:Tt('<circle cx="5.4" cy="12" r="1.7"/><circle cx="12" cy="12" r="1.7"/><circle cx="18.6" cy="12" r="1.7"/>'),shield:Tt('<path d="M12 3.5l7.2 2.7v5.1c0 4.7-3.1 7.8-7.2 9.4-4.1-1.6-7.2-4.7-7.2-9.4V6.2z"/><path d="M9.3 12.2l1.9 1.9 3.6-4"/>'),warning:Tt('<path d="M12 4.2L21 19.2H3L12 4.2z"/><path d="M12 10.2v3.6M12 16.4h.01"/>'),plan:Tt('<rect x="4.5" y="4" width="15" height="16.5" rx="2"/><path d="M8.5 9.5l1.4 1.4 2.6-2.9M8.5 15l1.4 1.4 2.6-2.9M15 9.8h.01M15 15.3h.01"/>')},Gv=["innerHTML"],ze=Dt({__name:"Icon",props:{name:{},size:{default:16}},setup(e){const t=e,n=ot(()=>Wv[t.name]||"");return(o,r)=>($(),T("span",{class:"icon",style:zn({width:e.size+"px",height:e.size+"px"}),innerHTML:n.value},null,12,Gv))}}),Yv=["aria-label"],Jv={class:"confirm-body"},Xv={key:0,class:"confirm-badge"},Qv={class:"confirm-text"},Zv={class:"confirm-msg"},em={class:"confirm-btns"},tm=Dt({__name:"ConfirmDialog",props:{open:{type:Boolean},title:{},message:{},confirmText:{default:"确认"},cancelText:{default:"取消"},danger:{type:Boolean,default:!1}},emits:["cancel","confirm"],setup(e,{emit:t}){const n=e,o=t;function r(i){n.open&&i.key==="Escape"&&o("cancel")}return vt(()=>n.open,i=>{i?window.addEventListener("keydown",r):window.removeEventListener("keydown",r)}),Cn(()=>window.removeEventListener("keydown",r)),(i,c)=>($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[e.open?($(),T("div",{key:0,class:"mask",onClick:c[2]||(c[2]=Nt(f=>o("cancel"),["self"]))},[l("div",{class:"dialog confirm-dialog",role:"dialog","aria-label":e.title},[l("div",Jv,[e.danger?($(),T("div",Xv,[ke(ze,{name:"warning",size:22})])):ve("",!0),l("div",Qv,[l("div",{class:Je(["confirm-title",{"is-danger":e.danger}])},q(e.title),3),l("div",Zv,q(e.message),1)])]),l("div",em,[l("button",{class:"btn",onClick:c[0]||(c[0]=f=>o("cancel"))},q(e.cancelText),1),l("button",{class:Je(["btn",e.danger?"btn-danger-solid":"btn-primary"]),onClick:c[1]||(c[1]=f=>o("confirm"))},q(e.confirmText),3)])],8,Yv)])):ve("",!0)]),_:1})]))}}),Kt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},wn=Kt(tm,[["__scopeId","data-v-1f3675f2"]]);var Ku=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function nm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ld={exports:{}};(function(e,t){((n,o)=>{e.exports=o()})(Ku,function(){var n=function(s,a){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(u,d){u.__proto__=d}:function(u,d){for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])}))(s,a)},o=function(){return(o=Object.assign||function(s){for(var a,u=1,d=arguments.length;u<d;u++)for(var p in a=arguments[u])Object.prototype.hasOwnProperty.call(a,p)&&(s[p]=a[p]);return s}).apply(this,arguments)};function r(s,a,u){for(var d,p=0,y=a.length;p<y;p++)!d&&p in a||((d=d||Array.prototype.slice.call(a,0,p))[p]=a[p]);return s.concat(d||Array.prototype.slice.call(a))}var i=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ku,c=Object.keys,f=Array.isArray;function v(s,a){return typeof a=="object"&&c(a).forEach(function(u){s[u]=a[u]}),s}typeof Promise>"u"||i.Promise||(i.Promise=Promise);var b=Object.getPrototypeOf,h={}.hasOwnProperty;function _(s,a){return h.call(s,a)}function A(s,a){typeof a=="function"&&(a=a(b(s))),(typeof Reflect>"u"?c:Reflect.ownKeys)(a).forEach(function(u){M(s,u,a[u])})}var x=Object.defineProperty;function M(s,a,u,d){x(s,a,v(u&&_(u,"get")&&typeof u.get=="function"?{get:u.get,set:u.set,configurable:!0}:{value:u,configurable:!0,writable:!0},d))}function G(s){return{from:function(a){return s.prototype=Object.create(a.prototype),M(s.prototype,"constructor",s),{extend:A.bind(null,s.prototype)}}}}var oe=Object.getOwnPropertyDescriptor,le=[].slice;function ce(s,a,u){return le.call(s,a,u)}function Y(s,a){return a(s)}function E(s){if(!s)throw new Error("Assertion Failed")}function U(s){i.setImmediate?setImmediate(s):setTimeout(s,0)}function Q(s,a){if(typeof a=="string"&&_(s,a))return s[a];if(!a)return s;if(typeof a!="string"){for(var u=[],d=0,p=a.length;d<p;++d){var y=Q(s,a[d]);u.push(y)}return u}var w,k=a.indexOf(".");return k===-1||(w=s[a.substr(0,k)])==null?void 0:Q(w,a.substr(k+1))}function B(s,a,u){if(s&&a!==void 0&&!("isFrozen"in Object&&Object.isFrozen(s)))if(typeof a!="string"&&"length"in a){E(typeof u!="string"&&"length"in u);for(var d=0,p=a.length;d<p;++d)B(s,a[d],u[d])}else{var y=a.indexOf(".");if(y!==-1){var w=a.substr(0,y),y=a.substr(y+1);if(y==="")u===void 0?f(s)&&!isNaN(parseInt(w))?s.splice(w,1):delete s[w]:s[w]=u;else{var k=s[w];if(!k||!_(s,w)){if(u===void 0)return;k=s[w]={}}B(k,y,u)}}else u===void 0?f(s)&&!isNaN(parseInt(a))?s.splice(a,1):delete s[a]:s[a]=u}}function te(s){var a,u={};for(a in s)_(s,a)&&(u[a]=s[a]);return u}var I=[].concat;function S(s){return I.apply([],s)}var re="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(S([8,16,32,64].map(function(s){return["Int","Uint","Float"].map(function(a){return a+s+"Array"})}))).filter(function(s){return i[s]}),O=new Set(re.map(function(s){return i[s]})),Z=null;function Oe(s){return Z=new WeakMap,s=function a(u){if(!u||typeof u!="object")return u;var d=Z.get(u);if(d)return d;if(f(u)){d=[],Z.set(u,d);for(var p=0,y=u.length;p<y;++p)d.push(a(u[p]))}else if(O.has(u.constructor))d=u;else{var w,k=b(u);for(w in d=k===Object.prototype?{}:Object.create(k),Z.set(u,d),u)_(u,w)&&(d[w]=a(u[w]))}return d}(s),Z=null,s}var Ee={}.toString;function be(s){return Ee.call(s).slice(8,-1)}var Ae=typeof Symbol<"u"?Symbol.iterator:"@@iterator",He=typeof Ae=="symbol"?function(s){var a;return s!=null&&(a=s[Ae])&&a.apply(s)}:function(){return null};function qe(s,a){a=s.indexOf(a),0<=a&&s.splice(a,1)}var Xe={};function pe(s){var a,u,d,p;if(arguments.length===1){if(f(s))return s.slice();if(this===Xe&&typeof s=="string")return[s];if(p=He(s))for(u=[];!(d=p.next()).done;)u.push(d.value);else{if(s==null)return[s];if(typeof(a=s.length)!="number")return[s];for(u=new Array(a);a--;)u[a]=s[a]}}else for(a=arguments.length,u=new Array(a);a--;)u[a]=arguments[a];return u}var me=typeof Symbol<"u"?function(s){return s[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},re=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],de=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(re),ae={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function Me(s,a){this.name=s,this.message=a}function ft(s,a){return s+". Errors: "+Object.keys(a).map(function(u){return a[u].toString()}).filter(function(u,d,p){return p.indexOf(u)===d}).join(`
`)}function Ct(s,a,u,d){this.failures=a,this.failedKeys=d,this.successCount=u,this.message=ft(s,a)}function xt(s,a){this.name="BulkError",this.failures=Object.keys(a).map(function(u){return a[u]}),this.failuresByPos=a,this.message=ft(s,this.failures)}G(Me).from(Error).extend({toString:function(){return this.name+": "+this.message}}),G(Ct).from(Me),G(xt).from(Me);var qt=de.reduce(function(s,a){return s[a]=a+"Error",s},{}),bt=Me,Le=de.reduce(function(s,a){var u=a+"Error";function d(p,y){this.name=u,p?typeof p=="string"?(this.message="".concat(p).concat(y?`
`+y:""),this.inner=y||null):typeof p=="object"&&(this.message="".concat(p.name," ").concat(p.message),this.inner=p):(this.message=ae[a]||u,this.inner=null)}return G(d).from(bt),s[a]=d,s},{}),g=(Le.Syntax=SyntaxError,Le.Type=TypeError,Le.Range=RangeError,re.reduce(function(s,a){return s[a+"Error"]=Le[a],s},{}));re=de.reduce(function(s,a){return["Syntax","Type","Range"].indexOf(a)===-1&&(s[a+"Error"]=Le[a]),s},{});function m(){}function C(s){return s}function j(s,a){return s==null||s===C?a:function(u){return a(s(u))}}function se(s,a){return function(){s.apply(this,arguments),a.apply(this,arguments)}}function W(s,a){return s===m?a:function(){var u=s.apply(this,arguments),d=(u!==void 0&&(arguments[0]=u),this.onsuccess),p=this.onerror,y=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?se(d,this.onsuccess):d),p&&(this.onerror=this.onerror?se(p,this.onerror):p),y!==void 0?y:u}}function we(s,a){return s===m?a:function(){s.apply(this,arguments);var u=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,a.apply(this,arguments),u&&(this.onsuccess=this.onsuccess?se(u,this.onsuccess):u),d&&(this.onerror=this.onerror?se(d,this.onerror):d)}}function _e(s,a){return s===m?a:function(){var u=s.apply(this,arguments),d=(v(arguments[0],u),this.onsuccess),p=this.onerror,y=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?se(d,this.onsuccess):d),p&&(this.onerror=this.onerror?se(p,this.onerror):p),u===void 0?y===void 0?void 0:y:v(u,y)}}function xe(s,a){return s===m?a:function(){return a.apply(this,arguments)!==!1&&s.apply(this,arguments)}}function fe(s,a){return s===m?a:function(){var u=s.apply(this,arguments);if(u&&typeof u.then=="function"){for(var d=this,p=arguments.length,y=new Array(p);p--;)y[p]=arguments[p];return u.then(function(){return a.apply(d,y)})}return a.apply(this,arguments)}}re.ModifyError=Ct,re.DexieError=Me,re.BulkError=xt;var Ke=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Te(s){Ke=s}var Be={},ue=100,z=typeof Promise>"u"?[]:(de=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[z=crypto.subtle.digest("SHA-512",new Uint8Array([0])),b(z),de]:[de,b(de),de]),de=z[0],Ws=z[1],Ws=Ws&&Ws.then,De=de&&de.constructor,st=!!z[2],ht=function(s,a){Jn.push([s,a]),Qe&&(queueMicrotask(Kd),Qe=!1)},It=!0,Qe=!0,Xt=[],ys=[],Vt=C,jt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:m,pgp:!1,env:{},finalize:m},Ue=jt,Jn=[],gs=0,er=[];function Ie(s){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var a=this._PSD=Ue;if(typeof s!="function"){if(s!==Be)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Ta(this,this._value)}else this._state=null,this._value=null,++a.ref,function u(d,p){try{p(function(y){if(d._state===null){if(y===d)throw new TypeError("A promise cannot be resolved with itself.");var w=d._lib&&Vs();y&&typeof y.then=="function"?u(d,function(k,L){y instanceof Ie?y._then(k,L):y.then(k,L)}):(d._state=!0,d._value=y,bl(d)),w&&Bs()}},Ta.bind(null,d))}catch(y){Ta(d,y)}}(this,s)}var Ea={get:function(){var s=Ue,a=or;function u(d,p){var y=this,w=!s.global&&(s!==Ue||a!==or),k=w&&!Qn(),L=new Ie(function(J,R){Aa(y,new gl(_l(d,s,w,k),_l(p,s,w,k),J,R,s))});return this._consoleTask&&(L._consoleTask=this._consoleTask),L}return u.prototype=Be,u},set:function(s){M(this,"then",s&&s.prototype===Be?Ea:{get:function(){return s},set:Ea.set})}};function gl(s,a,u,d,p){this.onFulfilled=typeof s=="function"?s:null,this.onRejected=typeof a=="function"?a:null,this.resolve=u,this.reject=d,this.psd=p}function Ta(s,a){var u,d;ys.push(a),s._state===null&&(u=s._lib&&Vs(),a=Vt(a),s._state=!1,s._value=a,d=s,Xt.some(function(p){return p._value===d._value})||Xt.push(d),bl(s),u)&&Bs()}function bl(s){var a=s._listeners;s._listeners=[];for(var u=0,d=a.length;u<d;++u)Aa(s,a[u]);var p=s._PSD;--p.ref||p.finalize(),gs===0&&(++gs,ht(function(){--gs==0&&Pa()},[]))}function Aa(s,a){if(s._state===null)s._listeners.push(a);else{var u=s._state?a.onFulfilled:a.onRejected;if(u===null)return(s._state?a.resolve:a.reject)(s._value);++a.psd.ref,++gs,ht(Ld,[u,s,a])}}function Ld(s,a,u){try{var d,p=a._value;!a._state&&ys.length&&(ys=[]),d=Ke&&a._consoleTask?a._consoleTask.run(function(){return s(p)}):s(p),a._state||ys.indexOf(p)!==-1||(y=>{for(var w=Xt.length;w;)if(Xt[--w]._value===y._value)return Xt.splice(w,1)})(a),u.resolve(d)}catch(y){u.reject(y)}finally{--gs==0&&Pa(),--u.psd.ref||u.psd.finalize()}}function Kd(){bs(jt,function(){Vs()&&Bs()})}function Vs(){var s=It;return Qe=It=!1,s}function Bs(){var s,a,u;do for(;0<Jn.length;)for(s=Jn,Jn=[],u=s.length,a=0;a<u;++a){var d=s[a];d[0].apply(null,d[1])}while(0<Jn.length);Qe=It=!0}function Pa(){for(var s=Xt,a=(Xt=[],s.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),er.slice(0)),u=a.length;u;)a[--u]()}function tr(s){return new Ie(Be,!1,s)}function $t(s,a){var u=Ue;return function(){var d=Vs(),p=Ue;try{return Zn(u,!0),s.apply(this,arguments)}catch(y){a&&a(y)}finally{Zn(p,!1),d&&Bs()}}}A(Ie.prototype,{then:Ea,_then:function(s,a){Aa(this,new gl(null,null,s,a,Ue))},catch:function(s){var a,u;return arguments.length===1?this.then(null,s):(a=s,u=arguments[1],typeof a=="function"?this.then(null,function(d){return(d instanceof a?u:tr)(d)}):this.then(null,function(d){return(d&&d.name===a?u:tr)(d)}))},finally:function(s){return this.then(function(a){return Ie.resolve(s()).then(function(){return a})},function(a){return Ie.resolve(s()).then(function(){return tr(a)})})},timeout:function(s,a){var u=this;return s<1/0?new Ie(function(d,p){var y=setTimeout(function(){return p(new Le.Timeout(a))},s);u.then(d,p).finally(clearTimeout.bind(null,y))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&M(Ie.prototype,Symbol.toStringTag,"Dexie.Promise"),jt.env=wl(),A(Ie,{all:function(){var s=pe.apply(null,arguments).map(rr);return new Ie(function(a,u){s.length===0&&a([]);var d=s.length;s.forEach(function(p,y){return Ie.resolve(p).then(function(w){s[y]=w,--d||a(s)},u)})})},resolve:function(s){return s instanceof Ie?s:s&&typeof s.then=="function"?new Ie(function(a,u){s.then(a,u)}):new Ie(Be,!0,s)},reject:tr,race:function(){var s=pe.apply(null,arguments).map(rr);return new Ie(function(a,u){s.map(function(d){return Ie.resolve(d).then(a,u)})})},PSD:{get:function(){return Ue},set:function(s){return Ue=s}},totalEchoes:{get:function(){return or}},newPSD:Xn,usePSD:bs,scheduler:{get:function(){return ht},set:function(s){ht=s}},rejectionMapper:{get:function(){return Vt},set:function(s){Vt=s}},follow:function(s,a){return new Ie(function(u,d){return Xn(function(p,y){var w=Ue;w.unhandleds=[],w.onunhandled=y,w.finalize=se(function(){var k,L=this;k=function(){L.unhandleds.length===0?p():y(L.unhandleds[0])},er.push(function J(){k(),er.splice(er.indexOf(J),1)}),++gs,ht(function(){--gs==0&&Pa()},[])},w.finalize),s()},a,u,d)})}}),De&&(De.allSettled&&M(Ie,"allSettled",function(){var s=pe.apply(null,arguments).map(rr);return new Ie(function(a){s.length===0&&a([]);var u=s.length,d=new Array(u);s.forEach(function(p,y){return Ie.resolve(p).then(function(w){return d[y]={status:"fulfilled",value:w}},function(w){return d[y]={status:"rejected",reason:w}}).then(function(){return--u||a(d)})})})}),De.any&&typeof AggregateError<"u"&&M(Ie,"any",function(){var s=pe.apply(null,arguments).map(rr);return new Ie(function(a,u){s.length===0&&u(new AggregateError([]));var d=s.length,p=new Array(d);s.forEach(function(y,w){return Ie.resolve(y).then(function(k){return a(k)},function(k){p[w]=k,--d||u(new AggregateError(p))})})})}),De.withResolvers)&&(Ie.withResolvers=De.withResolvers);var Rt={awaits:0,echoes:0,id:0},Rd=0,nr=[],sr=0,or=0,Fd=0;function Xn(s,w,u,d){var p=Ue,y=Object.create(p),w=(y.parent=p,y.ref=0,y.global=!1,y.id=++Fd,jt.env,y.env=st?{Promise:Ie,PromiseProp:{value:Ie,configurable:!0,writable:!0},all:Ie.all,race:Ie.race,allSettled:Ie.allSettled,any:Ie.any,resolve:Ie.resolve,reject:Ie.reject}:{},w&&v(y,w),++p.ref,y.finalize=function(){--this.parent.ref||this.parent.finalize()},bs(y,s,u,d));return y.ref===0&&y.finalize(),w}function Us(){return Rt.id||(Rt.id=++Rd),++Rt.awaits,Rt.echoes+=ue,Rt.id}function Qn(){return!!Rt.awaits&&(--Rt.awaits==0&&(Rt.id=0),Rt.echoes=Rt.awaits*ue,!0)}function rr(s){return Rt.echoes&&s&&s.constructor===De?(Us(),s.then(function(a){return Qn(),a},function(a){return Qn(),At(a)})):s}function Nd(){var s=nr[nr.length-1];nr.pop(),Zn(s,!1)}function Zn(s,a){var u,d,p=Ue;(a?!Rt.echoes||sr++&&s===Ue:!sr||--sr&&s===Ue)||queueMicrotask(a?(function(y){++or,Rt.echoes&&--Rt.echoes!=0||(Rt.echoes=Rt.awaits=Rt.id=0),nr.push(Ue),Zn(y,!0)}).bind(null,s):Nd),s!==Ue&&(Ue=s,p===jt&&(jt.env=wl()),st)&&(u=jt.env.Promise,d=s.env,p.global||s.global)&&(Object.defineProperty(i,"Promise",d.PromiseProp),u.all=d.all,u.race=d.race,u.resolve=d.resolve,u.reject=d.reject,d.allSettled&&(u.allSettled=d.allSettled),d.any)&&(u.any=d.any)}function wl(){var s=i.Promise;return st?{Promise:s,PromiseProp:Object.getOwnPropertyDescriptor(i,"Promise"),all:s.all,race:s.race,allSettled:s.allSettled,any:s.any,resolve:s.resolve,reject:s.reject}:{}}function bs(s,a,u,d,p){var y=Ue;try{return Zn(s,!0),a(u,d,p)}finally{Zn(y,!1)}}function _l(s,a,u,d){return typeof s!="function"?s:function(){var p=Ue;u&&Us(),Zn(a,!0);try{return s.apply(this,arguments)}finally{Zn(p,!1),d&&queueMicrotask(Qn)}}}function Oa(s){Promise===De&&Rt.echoes===0?sr===0?s():enqueueNativeMicroTask(s):setTimeout(s,0)}(""+Ws).indexOf("[native code]")===-1&&(Us=Qn=m);var At=Ie.reject,ws="￿",Fn="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",kl="String expected.",ar="__dbnames",Ma="readonly",Ia="readwrite";function _s(s,a){return s?a?function(){return s.apply(this,arguments)&&a.apply(this,arguments)}:s:a}var Cl={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function ir(s){return typeof s!="string"||/\./.test(s)?function(a){return a}:function(a){return a[s]===void 0&&s in a&&delete(a=Oe(a))[s],a}}function xl(){throw Le.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function at(s,a){try{var u=$l(s),d=$l(a);if(u!==d)return u==="Array"?1:d==="Array"?-1:u==="binary"?1:d==="binary"?-1:u==="string"?1:d==="string"?-1:u==="Date"?1:d!=="Date"?NaN:-1;switch(u){case"number":case"Date":case"string":return a<s?1:s<a?-1:0;case"binary":for(var p=Sl(s),y=Sl(a),w=p.length,k=y.length,L=w<k?w:k,J=0;J<L;++J)if(p[J]!==y[J])return p[J]<y[J]?-1:1;return w===k?0:w<k?-1:1;case"Array":for(var R=s,D=a,K=R.length,H=D.length,N=K<H?K:H,F=0;F<N;++F){var V=at(R[F],D[F]);if(V!==0)return V}return K===H?0:K<H?-1:1}}catch{}return NaN}function $l(s){var a=typeof s;return a=="object"&&(ArrayBuffer.isView(s)||(a=be(s))==="ArrayBuffer")?"binary":a}function Sl(s){return s instanceof Uint8Array?s:ArrayBuffer.isView(s)?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s)}function lr(s,a,u){var d=s.schema.yProps;return d?(a&&0<u.numFailures&&(a=a.filter(function(p,y){return!u.failures[y]})),Promise.all(d.map(function(p){return p=p.updatesTable,a?s.db.table(p).where("k").anyOf(a).delete():s.db.table(p).clear()})).then(function(){return u})):u}El.prototype.execute=function(s){var a=this["@@propmod"];if(a.add!==void 0){var u=a.add;if(f(u))return r(r([],f(s)?s:[],!0),u).sort();if(typeof u=="number")return(Number(s)||0)+u;if(typeof u=="bigint")try{return BigInt(s)+u}catch{return BigInt(0)+u}throw new TypeError("Invalid term ".concat(u))}if(a.remove!==void 0){var d=a.remove;if(f(d))return f(s)?s.filter(function(p){return!d.includes(p)}).sort():[];if(typeof d=="number")return Number(s)-d;if(typeof d=="bigint")try{return BigInt(s)-d}catch{return BigInt(0)-d}throw new TypeError("Invalid subtrahend ".concat(d))}return u=(u=a.replacePrefix)==null?void 0:u[0],u&&typeof s=="string"&&s.startsWith(u)?a.replacePrefix[1]+s.substring(u.length):s};var fo=El;function El(s){this["@@propmod"]=s}function Tl(s,a){for(var u=c(a),d=u.length,p=!1,y=0;y<d;++y){var w=u[y],k=a[w],L=Q(s,w);k instanceof fo?(B(s,w,k.execute(L)),p=!0):L!==k&&(B(s,w,k),p=!0)}return p}wt.prototype._trans=function(s,a,u){var d=this._tx||Ue.trans,p=this.name,y=Ke&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(s==="readonly"?"read":"write"," ").concat(this.name));function w(J,R,D){if(D.schema[p])return a(D.idbtrans,D);throw new Le.NotFound("Table "+p+" not part of transaction")}var k=Vs();try{var L=d&&d.db._novip===this.db._novip?d===Ue.trans?d._promise(s,w,u):Xn(function(){return d._promise(s,w,u)},{trans:d,transless:Ue.transless||Ue}):function J(R,D,K,H){if(R.idbdb&&(R._state.openComplete||Ue.letThrough||R._vip)){var N=R._createTransaction(D,K,R._dbSchema);try{N.create(),R._state.PR1398_maxLoop=3}catch(F){return F.name===qt.InvalidState&&R.isOpen()&&0<--R._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),R.close({disableAutoOpen:!1}),R.open().then(function(){return J(R,D,K,H)})):At(F)}return N._promise(D,function(F,V){return Xn(function(){return Ue.trans=N,H(F,V,N)})}).then(function(F){if(D==="readwrite")try{N.idbtrans.commit()}catch{}return D==="readonly"?F:N._completion.then(function(){return F})})}if(R._state.openComplete)return At(new Le.DatabaseClosed(R._state.dbOpenError));if(!R._state.isBeingOpened){if(!R._state.autoOpen)return At(new Le.DatabaseClosed);R.open().catch(m)}return R._state.dbReadyPromise.then(function(){return J(R,D,K,H)})}(this.db,s,[this.name],w);return y&&(L._consoleTask=y,L=L.catch(function(J){return console.trace(J),At(J)})),L}finally{k&&Bs()}},wt.prototype.get=function(s,a){var u=this;return s&&s.constructor===Object?this.where(s).first(a):s==null?At(new Le.Type("Invalid argument to Table.get()")):this._trans("readonly",function(d){return u.core.get({trans:d,key:s}).then(function(p){return u.hook.reading.fire(p)})}).then(a)},wt.prototype.where=function(s){if(typeof s=="string")return new this.db.WhereClause(this,s);if(f(s))return new this.db.WhereClause(this,"[".concat(s.join("+"),"]"));var a=c(s);if(a.length===1)return this.where(a[0]).equals(s[a[0]]);var u=this.schema.indexes.concat(this.schema.primKey).filter(function(k){if(k.compound&&a.every(function(J){return 0<=k.keyPath.indexOf(J)})){for(var L=0;L<a.length;++L)if(a.indexOf(k.keyPath[L])===-1)return!1;return!0}return!1}).sort(function(k,L){return k.keyPath.length-L.keyPath.length})[0];if(u&&this.db._maxKey!==ws)return w=u.keyPath.slice(0,a.length),this.where(w).equals(w.map(function(k){return s[k]}));!u&&Ke&&console.warn("The query ".concat(JSON.stringify(s)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(a.join("+"),"]"));var d=this.schema.idxByName;function p(k,L){return at(k,L)===0}var w=a.reduce(function(R,L){var J=R[0],R=R[1],D=d[L],K=s[L];return[J||D,J||!D?_s(R,D&&D.multi?function(H){return H=Q(H,L),f(H)&&H.some(function(N){return p(K,N)})}:function(H){return p(K,Q(H,L))}):R]},[null,null]),y=w[0],w=w[1];return y?this.where(y.name).equals(s[y.keyPath]).filter(w):u?this.filter(w):this.where(a).equals("")},wt.prototype.filter=function(s){return this.toCollection().and(s)},wt.prototype.count=function(s){return this.toCollection().count(s)},wt.prototype.offset=function(s){return this.toCollection().offset(s)},wt.prototype.limit=function(s){return this.toCollection().limit(s)},wt.prototype.each=function(s){return this.toCollection().each(s)},wt.prototype.toArray=function(s){return this.toCollection().toArray(s)},wt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},wt.prototype.orderBy=function(s){return new this.db.Collection(new this.db.WhereClause(this,f(s)?"[".concat(s.join("+"),"]"):s))},wt.prototype.reverse=function(){return this.toCollection().reverse()},wt.prototype.mapToClass=function(s){for(var a=this.db,u=this.name,d=((this.schema.mappedClass=s).prototype instanceof xl&&(s=(w=>{var k=R,L=w;if(typeof L!="function"&&L!==null)throw new TypeError("Class extends value "+String(L)+" is not a constructor or null");function J(){this.constructor=k}function R(){return w!==null&&w.apply(this,arguments)||this}return n(k,L),k.prototype=L===null?Object.create(L):(J.prototype=L.prototype,new J),Object.defineProperty(R.prototype,"db",{get:function(){return a},enumerable:!1,configurable:!0}),R.prototype.table=function(){return u},R})(s)),new Set),p=s.prototype;p;p=b(p))Object.getOwnPropertyNames(p).forEach(function(w){return d.add(w)});function y(w){if(!w)return w;var k,L=Object.create(s.prototype);for(k in w)if(!d.has(k))try{L[k]=w[k]}catch{}return L}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=y,this.hook("reading",y),s},wt.prototype.defineClass=function(){return this.mapToClass(function(s){v(this,s)})},wt.prototype.add=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,y=d.keyPath,w=s;return y&&p&&(w=ir(y)(s)),this._trans("readwrite",function(k){return u.core.mutate({trans:k,type:"add",keys:a!=null?[a]:null,values:[w]})}).then(function(k){return k.numFailures?Ie.reject(k.failures[0]):k.lastResult}).then(function(k){if(y)try{B(s,y,k)}catch{}return k})},wt.prototype.upsert=function(s,a){var u=this,d=this.schema.primKey.keyPath;return this._trans("readwrite",function(p){return u.core.get({trans:p,key:s}).then(function(y){var w=y??{};return Tl(w,a),d&&B(w,d,s),u.core.mutate({trans:p,type:"put",values:[w],keys:[s],upsert:!0,updates:{keys:[s],changeSpecs:[a]}}).then(function(k){return k.numFailures?Ie.reject(k.failures[0]):!!y})})})},wt.prototype.update=function(s,a){return typeof s!="object"||f(s)?this.where(":id").equals(s).modify(a):(s=Q(s,this.schema.primKey.keyPath))===void 0?At(new Le.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(s).modify(a)},wt.prototype.put=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,y=d.keyPath,w=s;return y&&p&&(w=ir(y)(s)),this._trans("readwrite",function(k){return u.core.mutate({trans:k,type:"put",values:[w],keys:a!=null?[a]:null})}).then(function(k){return k.numFailures?Ie.reject(k.failures[0]):k.lastResult}).then(function(k){if(y)try{B(s,y,k)}catch{}return k})},wt.prototype.delete=function(s){var a=this;return this._trans("readwrite",function(u){return a.core.mutate({trans:u,type:"delete",keys:[s]}).then(function(d){return lr(a,[s],d)}).then(function(d){return d.numFailures?Ie.reject(d.failures[0]):void 0})})},wt.prototype.clear=function(){var s=this;return this._trans("readwrite",function(a){return s.core.mutate({trans:a,type:"deleteRange",range:Cl}).then(function(u){return lr(s,null,u)})}).then(function(a){return a.numFailures?Ie.reject(a.failures[0]):void 0})},wt.prototype.bulkGet=function(s){var a=this;return this._trans("readonly",function(u){return a.core.getMany({keys:s,trans:u}).then(function(d){return d.map(function(p){return a.hook.reading.fire(p)})})})},wt.prototype.bulkAdd=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,y=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var k=d.schema.primKey,J=k.auto,k=k.keyPath;if(k&&p)throw new Le.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Le.InvalidArgument("Arguments objects and keys must have the same length");var L=s.length,J=k&&J?s.map(ir(k)):s;return d.core.mutate({trans:w,type:"add",keys:p,values:J,wantResults:y}).then(function(R){var D=R.numFailures,K=R.failures;if(D===0)return y?R.results:R.lastResult;throw new xt("".concat(d.name,".bulkAdd(): ").concat(D," of ").concat(L," operations failed"),K)})})},wt.prototype.bulkPut=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,y=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var k=d.schema.primKey,J=k.auto,k=k.keyPath;if(k&&p)throw new Le.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Le.InvalidArgument("Arguments objects and keys must have the same length");var L=s.length,J=k&&J?s.map(ir(k)):s;return d.core.mutate({trans:w,type:"put",keys:p,values:J,wantResults:y}).then(function(R){var D=R.numFailures,K=R.failures;if(D===0)return y?R.results:R.lastResult;throw new xt("".concat(d.name,".bulkPut(): ").concat(D," of ").concat(L," operations failed"),K)})})},wt.prototype.bulkUpdate=function(s){var a=this,u=this.core,d=s.map(function(w){return w.key}),p=s.map(function(w){return w.changes}),y=[];return this._trans("readwrite",function(w){return u.getMany({trans:w,keys:d,cache:"clone"}).then(function(k){var L=[],J=[],R=(s.forEach(function(D,K){var H=D.key,N=D.changes,F=k[K];if(F){for(var V=0,ee=Object.keys(N);V<ee.length;V++){var X=ee[V],ie=N[X];if(X===a.schema.primKey.keyPath){if(at(ie,H)!==0)throw new Le.Constraint("Cannot update primary key in bulkUpdate()")}else B(F,X,ie)}y.push(K),L.push(H),J.push(F)}}),L.length);return u.mutate({trans:w,type:"put",keys:L,values:J,updates:{keys:d,changeSpecs:p}}).then(function(D){var K=D.numFailures,H=D.failures;if(K===0)return R;for(var N=0,F=Object.keys(H);N<F.length;N++){var V,ee=F[N],X=y[Number(ee)];X!=null&&(V=H[ee],delete H[ee],H[X]=V)}throw new xt("".concat(a.name,".bulkUpdate(): ").concat(K," of ").concat(R," operations failed"),H)})})})},wt.prototype.bulkDelete=function(s){var a=this,u=s.length;return this._trans("readwrite",function(d){return a.core.mutate({trans:d,type:"delete",keys:s}).then(function(p){return lr(a,s,p)})}).then(function(d){var p=d.numFailures,y=d.failures;if(p===0)return d.lastResult;throw new xt("".concat(a.name,".bulkDelete(): ").concat(p," of ").concat(u," operations failed"),y)})};var Al=wt;function wt(){}function po(s){function a(w,k){if(k){for(var L=arguments.length,J=new Array(L-1);--L;)J[L-1]=arguments[L];return u[w].subscribe.apply(null,J),s}if(typeof w=="string")return u[w]}var u={};a.addEventType=y;for(var d=1,p=arguments.length;d<p;++d)y(arguments[d]);return a;function y(w,k,L){var J,R;if(typeof w!="object")return k=k||xe,R={subscribers:[],fire:L=L||m,subscribe:function(D){R.subscribers.indexOf(D)===-1&&(R.subscribers.push(D),R.fire=k(R.fire,D))},unsubscribe:function(D){R.subscribers=R.subscribers.filter(function(K){return K!==D}),R.fire=R.subscribers.reduce(k,L)}},u[w]=a[w]=R;c(J=w).forEach(function(D){var K=J[D];if(f(K))y(D,J[D][0],J[D][1]);else{if(K!=="asap")throw new Le.InvalidArgument("Invalid event config");var H=y(D,C,function(){for(var N=arguments.length,F=new Array(N);N--;)F[N]=arguments[N];H.subscribers.forEach(function(V){U(function(){V.apply(null,F)})})})}})}}function vo(s,a){return G(a).from({prototype:s}),a}function qs(s,a){return!(s.filter||s.algorithm||s.or)&&(a?s.justLimit:!s.replayFilter)}function ja(s,a){s.filter=_s(s.filter,a)}function Da(s,a,u){var d=s.replayFilter;s.replayFilter=d?function(){return _s(d(),a())}:a,s.justLimit=u&&!d}function ur(s,a){if(s.isPrimKey)return a.primaryKey;var u=a.getIndexByKeyPath(s.index);if(u)return u;throw new Le.Schema("KeyPath "+s.index+" on object store "+a.name+" is not indexed")}function Pl(s,a,u){var d=ur(s,a.schema);return a.openCursor({trans:u,values:!s.keysOnly,reverse:s.dir==="prev",unique:!!s.unique,query:{index:d,range:s.range}})}function cr(s,a,u,d){var p,y,w=s.replayFilter?_s(s.filter,s.replayFilter()):s.filter;return s.or?(p={},y=function(k,L,J){var R,D;w&&!w(L,J,function(K){return L.stop(K)},function(K){return L.fail(K)})||((D=""+(R=L.primaryKey))=="[object ArrayBuffer]"&&(D=""+new Uint8Array(R)),_(p,D))||(p[D]=!0,a(k,L,J))},Promise.all([s.or._iterate(y,u),Ol(Pl(s,d,u),s.algorithm,y,!s.keysOnly&&s.valueMapper)])):Ol(Pl(s,d,u),_s(s.algorithm,w),a,!s.keysOnly&&s.valueMapper)}function Ol(s,a,u,d){var p=$t(d?function(y,w,k){return u(d(y),w,k)}:u);return s.then(function(y){if(y)return y.start(function(){var w=function(){return y.continue()};a&&!a(y,function(k){return w=k},function(k){y.stop(k),w=m},function(k){y.fail(k),w=m})||p(y.value,y,function(k){return w=k}),w()})})}ct.prototype._read=function(s,a){var u=this._ctx;return u.error?u.table._trans(null,At.bind(null,u.error)):u.table._trans("readonly",s).then(a)},ct.prototype._write=function(s){var a=this._ctx;return a.error?a.table._trans(null,At.bind(null,a.error)):a.table._trans("readwrite",s,"locked")},ct.prototype._addAlgorithm=function(s){var a=this._ctx;a.algorithm=_s(a.algorithm,s)},ct.prototype._iterate=function(s,a){return cr(this._ctx,s,a,this._ctx.table.core)},ct.prototype.clone=function(s){var a=Object.create(this.constructor.prototype),u=Object.create(this._ctx);return s&&v(u,s),a._ctx=u,a},ct.prototype.raw=function(){return this._ctx.valueMapper=null,this},ct.prototype.each=function(s){var a=this._ctx;return this._read(function(u){return cr(a,s,u,a.table.core)})},ct.prototype.count=function(s){var a=this;return this._read(function(u){var d,p=a._ctx,y=p.table.core;return qs(p,!0)?y.count({trans:u,query:{index:ur(p,y.schema),range:p.range}}).then(function(w){return Math.min(w,p.limit)}):(d=0,cr(p,function(){return++d,!1},u,y).then(function(){return d}))}).then(s)},ct.prototype.sortBy=function(s,a){var u=s.split(".").reverse(),d=u[0],p=u.length-1;function y(L,J){return J?y(L[u[J]],J-1):L[d]}var w=this._ctx.dir==="next"?1:-1;function k(L,J){return at(y(L,p),y(J,p))*w}return this.toArray(function(L){return L.slice().sort(k)}).then(a)},ct.prototype.toArray=function(s){var a=this;return this._read(function(u){var d,p,y,w=a._ctx;return qs(w,!0)&&0<w.limit?(d=w.valueMapper,p=ur(w,w.table.core.schema),w.table.core.query({trans:u,limit:w.limit,values:!0,direction:w.dir==="prev"?"prev":void 0,query:{index:p,range:w.range}}).then(function(k){return k=k.result,d?k.map(d):k})):(y=[],cr(w,function(k){return y.push(k)},u,w.table.core).then(function(){return y}))},s)},ct.prototype.offset=function(s){var a=this._ctx;return s<=0||(a.offset+=s,qs(a)?Da(a,function(){var u=s;return function(d,p){return u===0||(u===1?--u:p(function(){d.advance(u),u=0}),!1)}}):Da(a,function(){var u=s;return function(){return--u<0}})),this},ct.prototype.limit=function(s){return this._ctx.limit=Math.min(this._ctx.limit,s),Da(this._ctx,function(){var a=s;return function(u,d,p){return--a<=0&&d(p),0<=a}},!0),this},ct.prototype.until=function(s,a){return ja(this._ctx,function(u,d,p){return!s(u.value)||(d(p),a)}),this},ct.prototype.first=function(s){return this.limit(1).toArray(function(a){return a[0]}).then(s)},ct.prototype.last=function(s){return this.reverse().first(s)},ct.prototype.filter=function(s){var a;return ja(this._ctx,function(u){return s(u.value)}),(a=this._ctx).isMatch=_s(a.isMatch,s),this},ct.prototype.and=function(s){return this.filter(s)},ct.prototype.or=function(s){return new this.db.WhereClause(this._ctx.table,s,this)},ct.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},ct.prototype.desc=function(){return this.reverse()},ct.prototype.eachKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.key,d)})},ct.prototype.eachUniqueKey=function(s){return this._ctx.unique="unique",this.eachKey(s)},ct.prototype.eachPrimaryKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.primaryKey,d)})},ct.prototype.keys=function(s){var a=this._ctx,u=(a.keysOnly=!a.isMatch,[]);return this.each(function(d,p){u.push(p.key)}).then(function(){return u}).then(s)},ct.prototype.primaryKeys=function(s){var a=this._ctx;if(qs(a,!0)&&0<a.limit)return this._read(function(d){var p=ur(a,a.table.core.schema);return a.table.core.query({trans:d,values:!1,limit:a.limit,direction:a.dir==="prev"?"prev":void 0,query:{index:p,range:a.range}})}).then(function(d){return d.result}).then(s);a.keysOnly=!a.isMatch;var u=[];return this.each(function(d,p){u.push(p.primaryKey)}).then(function(){return u}).then(s)},ct.prototype.uniqueKeys=function(s){return this._ctx.unique="unique",this.keys(s)},ct.prototype.firstKey=function(s){return this.limit(1).keys(function(a){return a[0]}).then(s)},ct.prototype.lastKey=function(s){return this.reverse().firstKey(s)},ct.prototype.distinct=function(){var s,a=this._ctx,a=a.index&&a.table.schema.idxByName[a.index];return a&&a.multi&&(s={},ja(this._ctx,function(d){var d=d.primaryKey.toString(),p=_(s,d);return s[d]=!0,!p})),this},ct.prototype.modify=function(s){var a=this,u=this._ctx;return this._write(function(d){function p(F,V){var ee=V.failures;K+=F-V.numFailures;for(var X=0,ie=c(ee);X<ie.length;X++){var he=ie[X];D.push(ee[he])}}var y=typeof s=="function"?s:function(F){return Tl(F,s)},w=u.table.core,R=w.schema.primaryKey,k=R.outbound,L=R.extractKey,J=200,R=a.db._options.modifyChunkSize,D=(R&&(J=typeof R=="object"?R[w.name]||R["*"]||200:R),[]),K=0,H=[],N=s===Ml;return a.clone().primaryKeys().then(function(F){function V(X){var ie=Math.min(J,F.length-X),he=F.slice(X,X+ie);return(N?Promise.resolve([]):w.getMany({trans:d,keys:he,cache:"immutable"})).then(function(ge){var Se=[],Ce=[],Fe=k?[]:null,$e=N?he:[];if(!N)for(var Ne=0;Ne<ie;++Ne){var ye=ge[Ne],Ge={value:Oe(ye),primKey:F[X+Ne]};y.call(Ge,Ge.value,Ge)!==!1&&(Ge.value==null?$e.push(F[X+Ne]):k||at(L(ye),L(Ge.value))===0?(Ce.push(Ge.value),k&&Fe.push(F[X+Ne])):($e.push(F[X+Ne]),Se.push(Ge.value)))}return Promise.resolve(0<Se.length&&w.mutate({trans:d,type:"add",values:Se}).then(function(Ye){for(var tt in Ye.failures)$e.splice(parseInt(tt),1);p(Se.length,Ye)})).then(function(){return(0<Ce.length||ee&&typeof s=="object")&&w.mutate({trans:d,type:"put",keys:Fe,values:Ce,criteria:ee,changeSpec:typeof s!="function"&&s,isAdditionalChunk:0<X}).then(function(Ye){return p(Ce.length,Ye)})}).then(function(){return(0<$e.length||ee&&N)&&w.mutate({trans:d,type:"delete",keys:$e,criteria:ee,isAdditionalChunk:0<X}).then(function(Ye){return lr(u.table,$e,Ye)}).then(function(Ye){return p($e.length,Ye)})}).then(function(){return F.length>X+ie&&V(X+J)})})}var ee=qs(u)&&u.limit===1/0&&(typeof s!="function"||N)&&{index:u.index,range:u.range};return V(0).then(function(){if(0<D.length)throw new Ct("Error modifying one or more objects",D,K,H);return F.length})})})},ct.prototype.delete=function(){var s=this._ctx,a=s.range;return!qs(s)||s.table.schema.yProps||!s.isPrimKey&&a.type!==3?this.modify(Ml):this._write(function(u){var d=s.table.core.schema.primaryKey,p=a;return s.table.core.count({trans:u,query:{index:d,range:p}}).then(function(y){return s.table.core.mutate({trans:u,type:"deleteRange",range:p}).then(function(L){var k=L.failures,L=L.numFailures;if(L)throw new Ct("Could not delete some values",Object.keys(k).map(function(J){return k[J]}),y-L);return y-L})})})};var Vd=ct;function ct(){}var Ml=function(s,a){return a.value=null};function Bd(s,a){return s<a?-1:s===a?0:1}function Ud(s,a){return a<s?-1:s===a?0:1}function on(s,a,u){return s=s instanceof jl?new s.Collection(s):s,s._ctx.error=new(u||TypeError)(a),s}function Hs(s){return new s.Collection(s,function(){return Il("")}).limit(0)}function dr(H,a,u,d){var p,y,w,k,L,J,R,D=u.length;if(!u.every(function(F){return typeof F=="string"}))return on(H,kl);function K(F){p=F==="next"?function(ee){return ee.toUpperCase()}:function(ee){return ee.toLowerCase()},y=F==="next"?function(ee){return ee.toLowerCase()}:function(ee){return ee.toUpperCase()},w=F==="next"?Bd:Ud;var V=u.map(function(ee){return{lower:y(ee),upper:p(ee)}}).sort(function(ee,X){return w(ee.lower,X.lower)});k=V.map(function(ee){return ee.upper}),L=V.map(function(ee){return ee.lower}),R=(J=F)==="next"?"":d}K("next");var H=new H.Collection(H,function(){return es(k[0],L[D-1]+d)}),N=(H._ondirectionchange=function(F){K(F)},0);return H._addAlgorithm(function(F,V,ee){var X=F.key;if(typeof X=="string"){var ie=y(X);if(a(ie,L,N))return!0;for(var he=null,ge=N;ge<D;++ge){var Se=((Ce,Fe,$e,Ne,ye,Ge)=>{for(var Ye=Math.min(Ce.length,Ne.length),tt=-1,rt=0;rt<Ye;++rt){var rn=Fe[rt];if(rn!==Ne[rt])return ye(Ce[rt],$e[rt])<0?Ce.substr(0,rt)+$e[rt]+$e.substr(rt+1):ye(Ce[rt],Ne[rt])<0?Ce.substr(0,rt)+Ne[rt]+$e.substr(rt+1):0<=tt?Ce.substr(0,tt)+Fe[tt]+$e.substr(tt+1):null;ye(Ce[rt],rn)<0&&(tt=rt)}return Ye<Ne.length&&Ge==="next"?Ce+$e.substr(Ce.length):Ye<Ce.length&&Ge==="prev"?Ce.substr(0,$e.length):tt<0?null:Ce.substr(0,tt)+Ne[tt]+$e.substr(tt+1)})(X,ie,k[ge],L[ge],w,J);Se===null&&he===null?N=ge+1:(he===null||0<w(he,Se))&&(he=Se)}V(he!==null?function(){F.continue(he+R)}:ee)}return!1}),H}function es(s,a,u,d){return{type:2,lower:s,upper:a,lowerOpen:u,upperOpen:d}}function Il(s){return{type:1,lower:s,upper:s}}Object.defineProperty(Ft.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Ft.prototype.between=function(s,a,u,d){u=u!==!1,d=d===!0;try{return 0<this._cmp(s,a)||this._cmp(s,a)===0&&(u||d)&&(!u||!d)?Hs(this):new this.Collection(this,function(){return es(s,a,!u,!d)})}catch{return on(this,Fn)}},Ft.prototype.equals=function(s){return s==null?on(this,Fn):new this.Collection(this,function(){return Il(s)})},Ft.prototype.above=function(s){return s==null?on(this,Fn):new this.Collection(this,function(){return es(s,void 0,!0)})},Ft.prototype.aboveOrEqual=function(s){return s==null?on(this,Fn):new this.Collection(this,function(){return es(s,void 0,!1)})},Ft.prototype.below=function(s){return s==null?on(this,Fn):new this.Collection(this,function(){return es(void 0,s,!1,!0)})},Ft.prototype.belowOrEqual=function(s){return s==null?on(this,Fn):new this.Collection(this,function(){return es(void 0,s)})},Ft.prototype.startsWith=function(s){return typeof s!="string"?on(this,kl):this.between(s,s+ws,!0,!0)},Ft.prototype.startsWithIgnoreCase=function(s){return s===""?this.startsWith(s):dr(this,function(a,u){return a.indexOf(u[0])===0},[s],ws)},Ft.prototype.equalsIgnoreCase=function(s){return dr(this,function(a,u){return a===u[0]},[s],"")},Ft.prototype.anyOfIgnoreCase=function(){var s=pe.apply(Xe,arguments);return s.length===0?Hs(this):dr(this,function(a,u){return u.indexOf(a)!==-1},s,"")},Ft.prototype.startsWithAnyOfIgnoreCase=function(){var s=pe.apply(Xe,arguments);return s.length===0?Hs(this):dr(this,function(a,u){return u.some(function(d){return a.indexOf(d)===0})},s,ws)},Ft.prototype.anyOf=function(){var s,a,u=this,d=pe.apply(Xe,arguments),p=this._cmp;try{d.sort(p)}catch{return on(this,Fn)}return d.length===0?Hs(this):((s=new this.Collection(this,function(){return es(d[0],d[d.length-1])}))._ondirectionchange=function(y){p=y==="next"?u._ascending:u._descending,d.sort(p)},a=0,s._addAlgorithm(function(y,w,k){for(var L=y.key;0<p(L,d[a]);)if(++a===d.length)return w(k),!1;return p(L,d[a])===0||(w(function(){y.continue(d[a])}),!1)}),s)},Ft.prototype.notEqual=function(s){return this.inAnyRange([[-1/0,s],[s,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Ft.prototype.noneOf=function(){var s=pe.apply(Xe,arguments);if(s.length===0)return new this.Collection(this);try{s.sort(this._ascending)}catch{return on(this,Fn)}var a=s.reduce(function(u,d){return u?u.concat([[u[u.length-1][1],d]]):[[-1/0,d]]},null);return a.push([s[s.length-1],this.db._maxKey]),this.inAnyRange(a,{includeLowers:!1,includeUppers:!1})},Ft.prototype.inAnyRange=function(s,ee){var u=this,d=this._cmp,p=this._ascending,y=this._descending,w=this._min,k=this._max;if(s.length===0)return Hs(this);if(!s.every(function(X){return X[0]!==void 0&&X[1]!==void 0&&p(X[0],X[1])<=0}))return on(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",Le.InvalidArgument);var L=!ee||ee.includeLowers!==!1,J=ee&&ee.includeUppers===!0,R,D=p;function K(X,ie){return D(X[0],ie[0])}try{(R=s.reduce(function(X,ie){for(var he=0,ge=X.length;he<ge;++he){var Se=X[he];if(d(ie[0],Se[1])<0&&0<d(ie[1],Se[0])){Se[0]=w(Se[0],ie[0]),Se[1]=k(Se[1],ie[1]);break}}return he===ge&&X.push(ie),X},[])).sort(K)}catch{return on(this,Fn)}var H=0,N=J?function(X){return 0<p(X,R[H][1])}:function(X){return 0<=p(X,R[H][1])},F=L?function(X){return 0<y(X,R[H][0])}:function(X){return 0<=y(X,R[H][0])},V=N,ee=new this.Collection(this,function(){return es(R[0][0],R[R.length-1][1],!L,!J)});return ee._ondirectionchange=function(X){D=X==="next"?(V=N,p):(V=F,y),R.sort(K)},ee._addAlgorithm(function(X,ie,he){for(var ge,Se=X.key;V(Se);)if(++H===R.length)return ie(he),!1;return!N(ge=Se)&&!F(ge)||(u._cmp(Se,R[H][1])===0||u._cmp(Se,R[H][0])===0||ie(function(){D===p?X.continue(R[H][0]):X.continue(R[H][1])}),!1)}),ee},Ft.prototype.startsWithAnyOf=function(){var s=pe.apply(Xe,arguments);return s.every(function(a){return typeof a=="string"})?s.length===0?Hs(this):this.inAnyRange(s.map(function(a){return[a,a+ws]})):on(this,"startsWithAnyOf() only works with strings")};var jl=Ft;function Ft(){}function hn(s){return $t(function(a){return mo(a),s(a.target.error),!1})}function mo(s){s.stopPropagation&&s.stopPropagation(),s.preventDefault&&s.preventDefault()}var fr="storagemutated",La="x-storagemutated-1",ts=po(null,fr),qd=(xn.prototype._lock=function(){return E(!Ue.global),++this._reculock,this._reculock!==1||Ue.global||(Ue.lockOwnerFor=this),this},xn.prototype._unlock=function(){if(E(!Ue.global),--this._reculock==0)for(Ue.global||(Ue.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var s=this._blockedFuncs.shift();try{bs(s[1],s[0])}catch{}}return this},xn.prototype._locked=function(){return this._reculock&&Ue.lockOwnerFor!==this},xn.prototype.create=function(s){var a=this;if(this.mode){var u=this.db.idbdb,d=this.db._state.dbOpenError;if(E(!this.idbtrans),!s&&!u)switch(d&&d.name){case"DatabaseClosedError":throw new Le.DatabaseClosed(d);case"MissingAPIError":throw new Le.MissingAPI(d.message,d);default:throw new Le.OpenFailed(d)}if(!this.active)throw new Le.TransactionInactive;E(this._completion._state===null),(s=this.idbtrans=s||(this.db.core||u).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=$t(function(p){mo(p),a._reject(s.error)}),s.onabort=$t(function(p){mo(p),a.active&&a._reject(new Le.Abort(s.error)),a.active=!1,a.on("abort").fire(p)}),s.oncomplete=$t(function(){a.active=!1,a._resolve(),"mutatedParts"in s&&ts.storagemutated.fire(s.mutatedParts)})}return this},xn.prototype._promise=function(s,a,u){var d,p=this;return s==="readwrite"&&this.mode!=="readwrite"?At(new Le.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Ie(function(y,w){p._blockedFuncs.push([function(){p._promise(s,a,u).then(y,w)},Ue])}):u?Xn(function(){var y=new Ie(function(w,k){p._lock();var L=a(w,k,p);L&&L.then&&L.then(w,k)});return y.finally(function(){return p._unlock()}),y._lib=!0,y}):((d=new Ie(function(y,w){var k=a(y,w,p);k&&k.then&&k.then(y,w)}))._lib=!0,d):At(new Le.TransactionInactive)},xn.prototype._root=function(){return this.parent?this.parent._root():this},xn.prototype.waitFor=function(s){var a,u=this._root(),d=Ie.resolve(s),p=(u._waitingFor?u._waitingFor=u._waitingFor.then(function(){return d}):(u._waitingFor=d,u._waitingQueue=[],a=u.idbtrans.objectStore(u.storeNames[0]),function y(){for(++u._spinCount;u._waitingQueue.length;)u._waitingQueue.shift()();u._waitingFor&&(a.get(-1/0).onsuccess=y)}()),u._waitingFor);return new Ie(function(y,w){d.then(function(k){return u._waitingQueue.push($t(y.bind(null,k)))},function(k){return u._waitingQueue.push($t(w.bind(null,k)))}).finally(function(){u._waitingFor===p&&(u._waitingFor=null)})})},xn.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new Le.Abort))},xn.prototype.table=function(s){var a=this._memoizedTables||(this._memoizedTables={});if(_(a,s))return a[s];var u=this.schema[s];if(u)return(u=new this.db.Table(s,u,this)).core=this.db.core.table(s),a[s]=u;throw new Le.NotFound("Table "+s+" not part of transaction")},xn);function xn(){}function Ka(s,a,u,d,p,y,w,k){return{name:s,keyPath:a,unique:u,multi:d,auto:p,compound:y,src:(u&&!w?"&":"")+(d?"*":"")+(p?"++":"")+Dl(a),type:k}}function Dl(s){return typeof s=="string"?s:s?"["+[].join.call(s,"+")+"]":""}function Ra(s,a,u){return{name:s,primKey:a,indexes:u,mappedClass:null,idxByName:(d=function(p){return[p.name,p]},u.reduce(function(p,y,w){return y=d(y,w),y&&(p[y[0]]=y[1]),p},{}))};var d}var ho=function(s){try{return s.only([[]]),ho=function(){return[[]]},[[]]}catch{return ho=function(){return ws},ws}};function Fa(s){return s==null?function(){}:typeof s=="string"?(a=s).split(".").length===1?function(u){return u[a]}:function(u){return Q(u,a)}:function(u){return Q(u,s)};var a}function Ll(s){return[].slice.call(s)}var Hd=0;function yo(s){return s==null?":id":typeof s=="string"?s:"[".concat(s.join("+"),"]")}function zd(s,a,w){function d(V){if(V.type===3)return null;if(V.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var H=V.lower,N=V.upper,F=V.lowerOpen,V=V.upperOpen;return H===void 0?N===void 0?null:a.upperBound(N,!!V):N===void 0?a.lowerBound(H,!!F):a.bound(H,N,!!F,!!V)}function p(K){var H,N,F=K.name;return{name:F,schema:K,mutate:function(V){var ee=V.trans,X=V.type,ie=V.keys,he=V.values,ge=V.range;return new Promise(function(Se,Ce){Se=$t(Se);var Fe=ee.objectStore(F),$e=Fe.keyPath==null,Ne=X==="put"||X==="add";if(!Ne&&X!=="delete"&&X!=="deleteRange")throw new Error("Invalid operation type: "+X);var ye,Ge=(ie||he||{length:1}).length;if(ie&&he&&ie.length!==he.length)throw new Error("Given keys array must have same length as given values array.");if(Ge===0)return Se({numFailures:0,failures:{},results:[],lastResult:void 0});function Ye(Qt){++rn,mo(Qt)}var tt=[],rt=[],rn=0;if(X==="deleteRange"){if(ge.type===4)return Se({numFailures:rn,failures:rt,results:[],lastResult:void 0});ge.type===3?tt.push(ye=Fe.clear()):tt.push(ye=Fe.delete(d(ge)))}else{var $e=Ne?$e?[he,ie]:[he,null]:[ie,null],Ze=$e[0],zt=$e[1];if(Ne)for(var Wt=0;Wt<Ge;++Wt)tt.push(ye=zt&&zt[Wt]!==void 0?Fe[X](Ze[Wt],zt[Wt]):Fe[X](Ze[Wt])),ye.onerror=Ye;else for(Wt=0;Wt<Ge;++Wt)tt.push(ye=Fe[X](Ze[Wt])),ye.onerror=Ye}function xr(Qt){Qt=Qt.target.result,tt.forEach(function(xs,si){return xs.error!=null&&(rt[si]=xs.error)}),Se({numFailures:rn,failures:rt,results:X==="delete"?ie:tt.map(function(xs){return xs.result}),lastResult:Qt})}ye.onerror=function(Qt){Ye(Qt),xr(Qt)},ye.onsuccess=xr})},getMany:function(V){var ee=V.trans,X=V.keys;return new Promise(function(ie,he){ie=$t(ie);for(var ge,Se=ee.objectStore(F),Ce=X.length,Fe=new Array(Ce),$e=0,Ne=0,ye=function(tt){tt=tt.target,Fe[tt._pos]=tt.result,++Ne===$e&&ie(Fe)},Ge=hn(he),Ye=0;Ye<Ce;++Ye)X[Ye]!=null&&((ge=Se.get(X[Ye]))._pos=Ye,ge.onsuccess=ye,ge.onerror=Ge,++$e);$e===0&&ie(Fe)})},get:function(V){var ee=V.trans,X=V.key;return new Promise(function(ie,he){ie=$t(ie);var ge=ee.objectStore(F).get(X);ge.onsuccess=function(Se){return ie(Se.target.result)},ge.onerror=hn(he)})},query:(H=L,N=J,function(V){return new Promise(function(ee,X){ee=$t(ee);var ie,he,ge,Se,Ge=V.trans,Ce=V.values,Fe=V.limit,ye=V.query,$e=($e=V.direction)!=null?$e:"next",Ne=Fe===1/0?void 0:Fe,Ye=ye.index,ye=ye.range,Ge=Ge.objectStore(F),Ge=Ye.isPrimaryKey?Ge:Ge.index(Ye.name),Ye=d(ye);if(Fe===0)return ee({result:[]});N?(ye={query:Ye,count:Ne,direction:$e},(ie=Ce?Ge.getAll(ye):Ge.getAllKeys(ye)).onsuccess=function(tt){return ee({result:tt.target.result})},ie.onerror=hn(X)):H&&$e==="next"?((ie=Ce?Ge.getAll(Ye,Ne):Ge.getAllKeys(Ye,Ne)).onsuccess=function(tt){return ee({result:tt.target.result})},ie.onerror=hn(X)):(he=0,ge=!Ce&&"openKeyCursor"in Ge?Ge.openKeyCursor(Ye,$e):Ge.openCursor(Ye,$e),Se=[],ge.onsuccess=function(){var tt=ge.result;return!tt||(Se.push(Ce?tt.value:tt.primaryKey),++he===Fe)?ee({result:Se}):void tt.continue()},ge.onerror=hn(X))})}),openCursor:function(V){var ee=V.trans,X=V.values,ie=V.query,he=V.reverse,ge=V.unique;return new Promise(function(Se,Ce){Se=$t(Se);var Ne=ie.index,Fe=ie.range,$e=ee.objectStore(F),$e=Ne.isPrimaryKey?$e:$e.index(Ne.name),Ne=he?ge?"prevunique":"prev":ge?"nextunique":"next",ye=!X&&"openKeyCursor"in $e?$e.openKeyCursor(d(Fe),Ne):$e.openCursor(d(Fe),Ne);ye.onerror=hn(Ce),ye.onsuccess=$t(function(Ge){var Ye,tt,rt,rn,Ze=ye.result;Ze?(Ze.___id=++Hd,Ze.done=!1,Ye=Ze.continue.bind(Ze),tt=(tt=Ze.continuePrimaryKey)&&tt.bind(Ze),rt=Ze.advance.bind(Ze),rn=function(){throw new Error("Cursor not stopped")},Ze.trans=ee,Ze.stop=Ze.continue=Ze.continuePrimaryKey=Ze.advance=function(){throw new Error("Cursor not started")},Ze.fail=$t(Ce),Ze.next=function(){var zt=this,Wt=1;return this.start(function(){return Wt--?zt.continue():zt.stop()}).then(function(){return zt})},Ze.start=function(zt){function Wt(){if(ye.result)try{zt()}catch(Qt){Ze.fail(Qt)}else Ze.done=!0,Ze.start=function(){throw new Error("Cursor behind last entry")},Ze.stop()}var xr=new Promise(function(Qt,xs){Qt=$t(Qt),ye.onerror=hn(xs),Ze.fail=xs,Ze.stop=function(si){Ze.stop=Ze.continue=Ze.continuePrimaryKey=Ze.advance=rn,Qt(si)}});return ye.onsuccess=$t(function(Qt){ye.onsuccess=Wt,Wt()}),Ze.continue=Ye,Ze.continuePrimaryKey=tt,Ze.advance=rt,Wt(),xr},Se(Ze)):Se(null)},Ce)})},count:function(V){var ee=V.query,X=V.trans,ie=ee.index,he=ee.range;return new Promise(function(ge,Se){var Ce=X.objectStore(F),Ce=ie.isPrimaryKey?Ce:Ce.index(ie.name),Fe=d(he),Fe=Fe?Ce.count(Fe):Ce.count();Fe.onsuccess=$t(function($e){return ge($e.target.result)}),Fe.onerror=hn(Se)})}}}y=w,k=Ll((w=s).objectStoreNames),R=0<k.length?y.objectStore(k[0]):{};var y,w={schema:{name:w.name,tables:k.map(function(K){return y.objectStore(K)}).map(function(K){var H=K.keyPath,N=K.autoIncrement,V=f(H),F={},V={name:K.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:H==null,compound:V,keyPath:H,autoIncrement:N,unique:!0,extractKey:Fa(H)},indexes:Ll(K.indexNames).map(function(ee){return K.index(ee)}).map(function(he){var ge=he.name,X=he.unique,ie=he.multiEntry,he=he.keyPath,ge={name:ge,compound:f(he),keyPath:he,unique:X,multiEntry:ie,extractKey:Fa(he)};return F[yo(he)]=ge}),getIndexByKeyPath:function(ee){return F[yo(ee)]}};return F[":id"]=V.primaryKey,H!=null&&(F[yo(H)]=V.primaryKey),V})},hasGetAll:0<k.length&&"getAll"in R&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in R},k=w.schema,L=w.hasGetAll,J=w.hasIdb3Features,R=k.tables.map(p),D={};return R.forEach(function(K){return D[K.name]=K}),{stack:"dbcore",transaction:s.transaction.bind(s),table:function(K){if(D[K])return D[K];throw new Error("Table '".concat(K,"' not found"))},MIN_KEY:-1/0,MAX_KEY:ho(a),schema:k}}function Wd(s,a,u,d){return u=u.IDBKeyRange,a=zd(a,u,d),{dbcore:s.dbcore.reduce(function(p,y){return y=y.create,o(o({},p),y(p))},a)}}function pr(s,a){var u=a.db,u=Wd(s._middlewares,u,s._deps,a);s.core=u.dbcore,s.tables.forEach(function(d){var p=d.name;s.core.schema.tables.some(function(y){return y.name===p})&&(d.core=s.core.table(p),s[p]instanceof s.Table)&&(s[p].core=d.core)})}function vr(s,a,u,d){u.forEach(function(p){var y=d[p];a.forEach(function(w){var k=function L(J,R){return oe(J,R)||(J=b(J))&&L(J,R)}(w,p);(!k||"value"in k&&k.value===void 0)&&(w===s.Transaction.prototype||w instanceof s.Transaction?M(w,p,{get:function(){return this.table(p)},set:function(L){x(this,p,{value:L,writable:!0,configurable:!0,enumerable:!0})}}):w[p]=new s.Table(p,y))})})}function Na(s,a){a.forEach(function(u){for(var d in u)u[d]instanceof s.Table&&delete u[d]})}function Gd(s,a){return s._cfg.version-a._cfg.version}function Yd(s,a,u,d){var p=s._dbSchema,y=(u.objectStoreNames.contains("$meta")&&!p.$meta&&(p.$meta=Ra("$meta",Rl("")[0],[]),s._storeNames.push("$meta")),s._createTransaction("readwrite",s._storeNames,p)),w=(y.create(u),y._completion.catch(d),y._reject.bind(y)),k=Ue.transless||Ue;Xn(function(){if(Ue.trans=y,Ue.transless=k,a!==0)return pr(s,u),J=a,((L=y).storeNames.includes("$meta")?L.table("$meta").get("version").then(function(R){return R??J}):Ie.resolve(J)).then(function(V){var D=s,K=V,H=y,N=u,F=[],V=D._versions,ee=D._dbSchema=hr(0,D.idbdb,N);return(V=V.filter(function(X){return X._cfg.version>=K})).length===0?Ie.resolve():(V.forEach(function(X){F.push(function(){var ie,he,ge,Se=ee,Ce=X._cfg.dbschema,Fe=(yr(D,Se,N),yr(D,Ce,N),ee=D._dbSchema=Ce,Va(Se,Ce)),$e=(Fe.add.forEach(function(Ne){Ba(N,Ne[0],Ne[1].primKey,Ne[1].indexes)}),Fe.change.forEach(function(Ne){if(Ne.recreate)throw new Le.Upgrade("Not yet support for changing primary key");var ye=N.objectStore(Ne.name);Ne.add.forEach(function(Ge){return mr(ye,Ge)}),Ne.change.forEach(function(Ge){ye.deleteIndex(Ge.name),mr(ye,Ge)}),Ne.del.forEach(function(Ge){return ye.deleteIndex(Ge)})}),X._cfg.contentUpgrade);if($e&&X._cfg.version>K)return pr(D,N),H._memoizedTables={},ie=te(Ce),Fe.del.forEach(function(Ne){ie[Ne]=Se[Ne]}),Na(D,[D.Transaction.prototype]),vr(D,[D.Transaction.prototype],c(ie),ie),H.schema=ie,(he=me($e))&&Us(),Ce=Ie.follow(function(){var Ne;(ge=$e(H))&&he&&(Ne=Qn.bind(null,null),ge.then(Ne,Ne))}),ge&&typeof ge.then=="function"?Ie.resolve(ge):Ce.then(function(){return ge})}),F.push(function(ie){var he,ge,Se=X._cfg.dbschema;he=Se,ge=ie,[].slice.call(ge.db.objectStoreNames).forEach(function(Ce){return he[Ce]==null&&ge.db.deleteObjectStore(Ce)}),Na(D,[D.Transaction.prototype]),vr(D,[D.Transaction.prototype],D._storeNames,D._dbSchema),H.schema=D._dbSchema}),F.push(function(ie){D.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(D.idbdb.version/10)===X._cfg.version?(D.idbdb.deleteObjectStore("$meta"),delete D._dbSchema.$meta,D._storeNames=D._storeNames.filter(function(he){return he!=="$meta"})):ie.objectStore("$meta").put(X._cfg.version,"version"))})}),function X(){return F.length?Ie.resolve(F.shift()(H.idbtrans)).then(X):Ie.resolve()}().then(function(){Kl(ee,N)}))}).catch(w);var L,J;c(p).forEach(function(R){Ba(u,R,p[R].primKey,p[R].indexes)}),pr(s,u),Ie.follow(function(){return s.on.populate.fire(y)}).catch(w)})}function Jd(s,a){Kl(s._dbSchema,a),a.db.version%10!=0||a.objectStoreNames.contains("$meta")||a.db.createObjectStore("$meta").add(Math.ceil(a.db.version/10-1),"version");var u=hr(0,s.idbdb,a);yr(s,s._dbSchema,a);for(var d=0,p=Va(u,s._dbSchema).change;d<p.length;d++){var y=(w=>{if(w.change.length||w.recreate)return console.warn("Unable to patch indexes of table ".concat(w.name," because it has changes on the type of index or primary key.")),{value:void 0};var k=a.objectStore(w.name);w.add.forEach(function(L){Ke&&console.debug("Dexie upgrade patch: Creating missing index ".concat(w.name,".").concat(L.src)),mr(k,L)})})(p[d]);if(typeof y=="object")return y.value}}function Va(s,a){var u,d={del:[],add:[],change:[]};for(u in s)a[u]||d.del.push(u);for(u in a){var p=s[u],y=a[u];if(p){var w={name:u,def:y,recreate:!1,del:[],add:[],change:[]};if(""+(p.primKey.keyPath||"")!=""+(y.primKey.keyPath||"")||p.primKey.auto!==y.primKey.auto)w.recreate=!0,d.change.push(w);else{var k=p.idxByName,L=y.idxByName,J=void 0;for(J in k)L[J]||w.del.push(J);for(J in L){var R=k[J],D=L[J];R?R.src!==D.src&&w.change.push(D):w.add.push(D)}(0<w.del.length||0<w.add.length||0<w.change.length)&&d.change.push(w)}}else d.add.push([u,y])}return d}function Ba(s,a,u,d){var p=s.db.createObjectStore(a,u.keyPath?{keyPath:u.keyPath,autoIncrement:u.auto}:{autoIncrement:u.auto});d.forEach(function(y){return mr(p,y)})}function Kl(s,a){c(s).forEach(function(u){a.db.objectStoreNames.contains(u)||(Ke&&console.debug("Dexie: Creating missing table",u),Ba(a,u,s[u].primKey,s[u].indexes))})}function mr(s,a){s.createIndex(a.name,a.keyPath,{unique:a.unique,multiEntry:a.multi})}function hr(s,a,u){var d={};return ce(a.objectStoreNames,0).forEach(function(p){for(var y=u.objectStore(p),w=Ka(Dl(J=y.keyPath),J||"",!0,!1,!!y.autoIncrement,J&&typeof J!="string",!0),k=[],L=0;L<y.indexNames.length;++L){var R=y.index(y.indexNames[L]),J=R.keyPath,R=Ka(R.name,J,!!R.unique,!!R.multiEntry,!1,J&&typeof J!="string",!1);k.push(R)}d[p]=Ra(p,w,k)}),d}function yr(s,a,u){for(var d=u.db.objectStoreNames,p=0;p<d.length;++p){var y=d[p],w=u.objectStore(y);s._hasGetAll="getAll"in w;for(var k=0;k<w.indexNames.length;++k){var L,J=w.indexNames[k],R=w.index(J).keyPath,R=typeof R=="string"?R:"["+ce(R).join("+")+"]";a[y]&&(L=a[y].idxByName[R])&&(L.name=J,delete a[y].idxByName[R],a[y].idxByName[J]=L)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&i.WorkerGlobalScope&&i instanceof i.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(s._hasGetAll=!1)}function Rl(s){return s.split(",").map(function(a,u){var p=a.split(":"),d=(d=p[1])==null?void 0:d.trim(),p=(a=p[0].trim()).replace(/([&*]|\+\+)/g,""),y=/^\[/.test(p)?p.match(/^\[(.*)\]$/)[1].split("+"):p;return Ka(p,y||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),f(y),u===0,d)})}zs.prototype._createTableSchema=Ra,zs.prototype._parseIndexSyntax=Rl,zs.prototype._parseStoresSpec=function(s,a){var u=this;c(s).forEach(function(d){if(s[d]!==null){var p=u._parseIndexSyntax(s[d]),y=p.shift();if(!y)throw new Le.Schema("Invalid schema for table "+d+": "+s[d]);if(y.unique=!0,y.multi)throw new Le.Schema("Primary key cannot be multiEntry*");p.forEach(function(w){if(w.auto)throw new Le.Schema("Only primary key can be marked as autoIncrement (++)");if(!w.keyPath)throw new Le.Schema("Index must have a name and cannot be an empty string")}),y=u._createTableSchema(d,y,p),a[d]=y}})},zs.prototype.stores=function(u){var a=this.db,u=(this._cfg.storesSource=this._cfg.storesSource?v(this._cfg.storesSource,u):u,a._versions),d={},p={};return u.forEach(function(y){v(d,y._cfg.storesSource),p=y._cfg.dbschema={},y._parseStoresSpec(d,p)}),a._dbSchema=p,Na(a,[a._allTables,a,a.Transaction.prototype]),vr(a,[a._allTables,a,a.Transaction.prototype,this._cfg.tables],c(p),p),a._storeNames=c(p),this},zs.prototype.upgrade=function(s){return this._cfg.contentUpgrade=fe(this._cfg.contentUpgrade||m,s),this};var Xd=zs;function zs(){}var go=(()=>{var s,a,u;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(s=new Set,a=new FinalizationRegistry(function(d){s.delete(d)}),{toArray:function(){return Array.from(s).map(function(d){return d.deref()}).filter(function(d){return d!==void 0})},add:function(d){var p=new WeakRef(d._novip);s.add(p),a.register(d._novip,p,p),s.size>d._options.maxConnections&&(p=s.values().next().value,s.delete(p),a.unregister(p))},remove:function(d){if(d)for(var p=s.values(),y=p.next();!y.done;){var w=y.value;if(w.deref()===d._novip)return s.delete(w),void a.unregister(w);y=p.next()}}}):(u=[],{toArray:function(){return u},add:function(d){u.push(d._novip)},remove:function(d){d&&(d=u.indexOf(d._novip))!==-1&&u.splice(d,1)}})})();function Ua(s,a){var u=s._dbNamesDB;return u||(u=s._dbNamesDB=new Nn(ar,{addons:[],indexedDB:s,IDBKeyRange:a})).version(1).stores({dbnames:"name"}),u.table("dbnames")}function qa(s){return s&&typeof s.databases=="function"}function Ha(s){return Xn(function(){return Ue.letThrough=!0,s()})}function za(s){return!("from"in s)}var Ht=function(s,a){var u;if(!this)return u=new Ht,s&&"d"in s&&v(u,s),u;v(this,arguments.length?{d:1,from:s,to:1<arguments.length?a:s}:{d:0})};function bo(s,a,u){var d=at(a,u);if(!isNaN(d)){if(0<d)throw RangeError();if(za(s))return v(s,{from:a,to:u,d:1});var d=s.l,p=s.r;if(at(u,s.from)<0)return d?bo(d,a,u):s.l={from:a,to:u,d:1,l:null,r:null},Nl(s);if(0<at(a,s.to))return p?bo(p,a,u):s.r={from:a,to:u,d:1,l:null,r:null},Nl(s);at(a,s.from)<0&&(s.from=a,s.l=null,s.d=p?p.d+1:1),0<at(u,s.to)&&(s.to=u,s.r=null,s.d=s.l?s.l.d+1:1),a=!s.r,d&&!s.l&&wo(s,d),p&&a&&wo(s,p)}}function wo(s,a){za(a)||function u(d,p){var y=p.from,w=p.l,k=p.r;bo(d,y,p.to),w&&u(d,w),k&&u(d,k)}(s,a)}function Fl(s,a){var u=gr(a),d=u.next();if(!d.done)for(var p=d.value,y=gr(s),w=y.next(p.from),k=w.value;!d.done&&!w.done;){if(at(k.from,p.to)<=0&&0<=at(k.to,p.from))return!0;at(p.from,k.from)<0?p=(d=u.next(k.from)).value:k=(w=y.next(p.from)).value}return!1}function gr(s){var a=za(s)?null:{s:0,n:s};return{next:function(u){for(var d=0<arguments.length;a;)switch(a.s){case 0:if(a.s=1,d)for(;a.n.l&&at(u,a.n.from)<0;)a={up:a,n:a.n.l,s:1};else for(;a.n.l;)a={up:a,n:a.n.l,s:1};case 1:if(a.s=2,!d||at(u,a.n.to)<=0)return{value:a.n,done:!1};case 2:if(a.n.r){a.s=3,a={up:a,n:a.n.r,s:0};continue}case 3:a=a.up}return{done:!0}}}}function Nl(s){var a,u,d,p=(((p=s.r)==null?void 0:p.d)||0)-(((p=s.l)==null?void 0:p.d)||0),p=1<p?"r":p<-1?"l":"";p&&(a=p=="r"?"l":"r",u=o({},s),d=s[p],s.from=d.from,s.to=d.to,s[p]=d[p],u[p]=d[a],(s[a]=u).d=Vl(u)),s.d=Vl(s)}function Vl(u){var a=u.r,u=u.l;return(a?u?Math.max(a.d,u.d):a.d:u?u.d:0)+1}function br(s,a){return c(a).forEach(function(u){s[u]?wo(s[u],a[u]):s[u]=function d(p){var y,w,k={};for(y in p)_(p,y)&&(w=p[y],k[y]=!w||typeof w!="object"||O.has(w.constructor)?w:d(w));return k}(a[u])}),s}function Wa(s,a){return s.all||a.all||Object.keys(s).some(function(u){return a[u]&&Fl(a[u],s[u])})}A(Ht.prototype,((de={add:function(s){return wo(this,s),this},addKey:function(s){return bo(this,s,s),this},addKeys:function(s){var a=this;return s.forEach(function(u){return bo(a,u,u)}),this},hasKey:function(s){var a=gr(this).next(s).value;return a&&at(a.from,s)<=0&&0<=at(a.to,s)}})[Ae]=function(){return gr(this)},de));var ks={},Ga={},Ya=!1;function wr(s){br(Ga,s),Ya||(Ya=!0,setTimeout(function(){Ya=!1,Ja(Ga,!(Ga={}))},0))}function Ja(s,a){a===void 0&&(a=!1);var u=new Set;if(s.all)for(var d=0,p=Object.values(ks);d<p.length;d++)Bl(k=p[d],s,u,a);else for(var y in s){var w,k,y=/^idb\:\/\/(.*)\/(.*)\//.exec(y);y&&(w=y[1],y=y[2],k=ks["idb://".concat(w,"/").concat(y)])&&Bl(k,s,u,a)}u.forEach(function(L){return L()})}function Bl(s,a,u,d){for(var p=[],y=0,w=Object.entries(s.queries.query);y<w.length;y++){for(var k=w[y],L=k[0],J=[],R=0,D=k[1];R<D.length;R++){var K=D[R];Wa(a,K.obsSet)?K.subscribers.forEach(function(V){return u.add(V)}):d&&J.push(K)}d&&p.push([L,J])}if(d)for(var H=0,N=p;H<N.length;H++){var F=N[H],L=F[0],J=F[1];s.queries.query[L]=J}}function Qd(s){var a=s._state,u=s._deps.indexedDB;if(a.isBeingOpened||s.idbdb)return a.dbReadyPromise.then(function(){return a.dbOpenError?At(a.dbOpenError):s});a.isBeingOpened=!0,a.dbOpenError=null,a.openComplete=!1;var d=a.openCanceller,p=Math.round(10*s.verno),y=!1;function w(){if(a.openCanceller!==d)throw new Le.DatabaseClosed("db.open() was cancelled")}function k(){return new Ie(function(K,H){if(w(),!u)throw new Le.MissingAPI;var N=s.name,F=a.autoSchema||!p?u.open(N):u.open(N,p);if(!F)throw new Le.MissingAPI;F.onerror=hn(H),F.onblocked=$t(s._fireOnBlocked),F.onupgradeneeded=$t(function(V){var ee;R=F.transaction,a.autoSchema&&!s._options.allowEmptyDB?(F.onerror=mo,R.abort(),F.result.close(),(ee=u.deleteDatabase(N)).onsuccess=ee.onerror=$t(function(){H(new Le.NoSuchDatabase("Database ".concat(N," doesnt exist")))})):(R.onerror=hn(H),ee=V.oldVersion>Math.pow(2,62)?0:V.oldVersion,D=ee<1,s.idbdb=F.result,y&&Jd(s,R),Yd(s,ee/10,R,H))},H),F.onsuccess=$t(function(){R=null;var V,ee,X,ie,he,ge,Se=s.idbdb=F.result,Ce=ce(Se.objectStoreNames);if(0<Ce.length)try{var Fe=Se.transaction((he=Ce).length===1?he[0]:he,"readonly");if(a.autoSchema)ge=Se,ie=Fe,(X=s).verno=ge.version/10,ie=X._dbSchema=hr(0,ge,ie),X._storeNames=ce(ge.objectStoreNames,0),vr(X,[X._allTables],c(ie),ie);else if(yr(s,s._dbSchema,Fe),ee=Fe,((ee=Va(hr(0,(V=s).idbdb,ee),V._dbSchema)).add.length||ee.change.some(function($e){return $e.add.length||$e.change.length}))&&!y)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),Se.close(),p=Se.version+1,y=!0,K(k());pr(s,Fe)}catch{}go.add(s),Se.onversionchange=$t(function($e){a.vcFired=!0,s.on("versionchange").fire($e)}),Se.onclose=$t(function(){s.close({disableAutoOpen:!1})}),D&&(Ce=s._deps,he=N,qa(ge=Ce.indexedDB)||he===ar||Ua(ge,Ce.IDBKeyRange).put({name:he}).catch(m)),K()},H)}).catch(function(K){switch(K==null?void 0:K.name){case"UnknownError":if(0<a.PR1398_maxLoop)return a.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),k();break;case"VersionError":if(0<p)return p=0,k()}return Ie.reject(K)})}var L,J=a.dbReadyResolve,R=null,D=!1;return Ie.race([d,(typeof navigator>"u"?Ie.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(K){function H(){return indexedDB.databases().finally(K)}L=setInterval(H,100),H()}).finally(function(){return clearInterval(L)}):Promise.resolve()).then(k)]).then(function(){return w(),a.onReadyBeingFired=[],Ie.resolve(Ha(function(){return s.on.ready.fire(s.vip)})).then(function K(){var H;if(0<a.onReadyBeingFired.length)return H=a.onReadyBeingFired.reduce(fe,m),a.onReadyBeingFired=[],Ie.resolve(Ha(function(){return H(s.vip)})).then(K)})}).finally(function(){a.openCanceller===d&&(a.onReadyBeingFired=null,a.isBeingOpened=!1)}).catch(function(K){a.dbOpenError=K;try{R&&R.abort()}catch{}return d===a.openCanceller&&s._close(),At(K)}).finally(function(){a.openComplete=!0,J()}).then(function(){var K;return D&&(K={},s.tables.forEach(function(H){H.schema.indexes.forEach(function(N){N.name&&(K["idb://".concat(s.name,"/").concat(H.name,"/").concat(N.name)]=new Ht(-1/0,[[[]]]))}),K["idb://".concat(s.name,"/").concat(H.name,"/")]=K["idb://".concat(s.name,"/").concat(H.name,"/:dels")]=new Ht(-1/0,[[[]]])}),ts(fr).fire(K),Ja(K,!0)),s})}function Xa(s){function a(y){return s.next(y)}var u=p(a),d=p(function(y){return s.throw(y)});function p(y){return function(k){var k=y(k),L=k.value;return k.done?L:L&&typeof L.then=="function"?L.then(u,d):f(L)?Promise.all(L).then(u,d):u(L)}}return p(a)()}function _r(s,a,u){for(var d=f(s)?s.slice():[s],p=0;p<u;++p)d.push(a);return d}var Zd={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(s){return o(o({},s),{table:function(d){var u=s.table(d),d=u.schema,p=Object.create(null),y=[];function w(K,H,N){var X=yo(K),F=p[X]=p[X]||[],V=K==null?0:typeof K=="string"?1:K.length,ee=0<H,X=o(o({},N),{name:ee?"".concat(X,"(virtual-from:").concat(N.name,")"):N.name,lowLevelIndex:N,isVirtual:ee,keyTail:H,keyLength:V,extractKey:Fa(K),unique:!ee&&N.unique});return F.push(X),X.isPrimaryKey||y.push(X),1<V&&w(V===2?K[0]:K.slice(0,V-1),H+1,N),F.sort(function(ie,he){return ie.keyTail-he.keyTail}),X}var k=w(d.primaryKey.keyPath,0,d.primaryKey);p[":id"]=[k];for(var L=0,J=d.indexes;L<J.length;L++){var R=J[L];w(R.keyPath,0,R)}function D(K){var H,N=K.query.index;return N.isVirtual?o(o({},K),{query:{index:N.lowLevelIndex,range:(H=K.query.range,N=N.keyTail,{type:H.type===1?2:H.type,lower:_r(H.lower,H.lowerOpen?s.MAX_KEY:s.MIN_KEY,N),lowerOpen:!0,upper:_r(H.upper,H.upperOpen?s.MIN_KEY:s.MAX_KEY,N),upperOpen:!0})}}):K}return o(o({},u),{schema:o(o({},d),{primaryKey:k,indexes:y,getIndexByKeyPath:function(K){return(K=p[yo(K)])&&K[0]}}),count:function(K){return u.count(D(K))},query:function(K){return u.query(D(K))},openCursor:function(K){var H=K.query.index,N=H.keyTail,F=H.keyLength;return H.isVirtual?u.openCursor(D(K)).then(function(ee){return ee&&V(ee)}):u.openCursor(K);function V(ee){return Object.create(ee,{continue:{value:function(X){X!=null?ee.continue(_r(X,K.reverse?s.MAX_KEY:s.MIN_KEY,N)):K.unique?ee.continue(ee.key.slice(0,F).concat(K.reverse?s.MIN_KEY:s.MAX_KEY,N)):ee.continue()}},continuePrimaryKey:{value:function(X,ie){ee.continuePrimaryKey(_r(X,s.MAX_KEY,N),ie)}},primaryKey:{get:function(){return ee.primaryKey}},key:{get:function(){var X=ee.key;return F===1?X[0]:X.slice(0,F)}},value:{get:function(){return ee.value}}})}}})}})}};function Qa(s,a,u,d){return u=u||{},d=d||"",c(s).forEach(function(p){var y,w,k;_(a,p)?(y=s[p],w=a[p],typeof y=="object"&&typeof w=="object"&&y&&w?(k=be(y))!==be(w)?u[d+p]=a[p]:k==="Object"?Qa(y,w,u,d+p+"."):y!==w&&(u[d+p]=a[p]):y!==w&&(u[d+p]=a[p])):u[d+p]=void 0}),c(a).forEach(function(p){_(s,p)||(u[d+p]=a[p])}),u}function Za(s,a){return a.type==="delete"?a.keys:a.keys||a.values.map(s.extractKey)}var ef={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(s){return o(o({},s),{table:function(a){var u=s.table(a),d=u.schema.primaryKey;return o(o({},u),{mutate:function(p){var y=Ue.trans,w=y.table(a).hook,k=w.deleting,L=w.creating,J=w.updating;switch(p.type){case"add":if(L.fire===m)break;return y._promise("readwrite",function(){return R(p)},!0);case"put":if(L.fire===m&&J.fire===m)break;return y._promise("readwrite",function(){return R(p)},!0);case"delete":if(k.fire===m)break;return y._promise("readwrite",function(){return R(p)},!0);case"deleteRange":if(k.fire===m)break;return y._promise("readwrite",function(){return function D(K,H,N){return u.query({trans:K,values:!1,query:{index:d,range:H},limit:N}).then(function(F){var V=F.result;return R({type:"delete",keys:V,trans:K}).then(function(ee){return 0<ee.numFailures?Promise.reject(ee.failures[0]):V.length<N?{failures:[],numFailures:0,lastResult:void 0}:D(K,o(o({},H),{lower:V[V.length-1],lowerOpen:!0}),N)})})}(p.trans,p.range,1e4)},!0)}return u.mutate(p);function R(D){var K,H,N,F=Ue.trans,V=D.keys||Za(d,D);if(V)return(D=D.type==="add"||D.type==="put"?o(o({},D),{keys:V}):o({},D)).type!=="delete"&&(D.values=r([],D.values)),D.keys&&(D.keys=r([],D.keys)),K=u,N=V,((H=D).type==="add"?Promise.resolve([]):K.getMany({trans:H.trans,keys:N,cache:"immutable"})).then(function(ee){var X=V.map(function(ie,he){var ge,Se,Ce,Fe=ee[he],$e={onerror:null,onsuccess:null};return D.type==="delete"?k.fire.call($e,ie,Fe,F):D.type==="add"||Fe===void 0?(ge=L.fire.call($e,ie,D.values[he],F),ie==null&&ge!=null&&(D.keys[he]=ie=ge,d.outbound||B(D.values[he],d.keyPath,ie))):(ge=Qa(Fe,D.values[he]),(Se=J.fire.call($e,ge,ie,Fe,F))&&(Ce=D.values[he],Object.keys(Se).forEach(function(Ne){_(Ce,Ne)?Ce[Ne]=Se[Ne]:B(Ce,Ne,Se[Ne])}))),$e});return u.mutate(D).then(function(ie){for(var he=ie.failures,ge=ie.results,Se=ie.numFailures,ie=ie.lastResult,Ce=0;Ce<V.length;++Ce){var Fe=(ge||V)[Ce],$e=X[Ce];Fe==null?$e.onerror&&$e.onerror(he[Ce]):$e.onsuccess&&$e.onsuccess(D.type==="put"&&ee[Ce]?D.values[Ce]:Fe)}return{failures:he,results:ge,numFailures:Se,lastResult:ie}}).catch(function(ie){return X.forEach(function(he){return he.onerror&&he.onerror(ie)}),Promise.reject(ie)})});throw new Error("Keys missing")}}})}})}};function Ul(s,a,u){try{if(!a||a.keys.length<s.length)return null;for(var d=[],p=0,y=0;p<a.keys.length&&y<s.length;++p)at(a.keys[p],s[y])===0&&(d.push(u?Oe(a.values[p]):a.values[p]),++y);return d.length===s.length?d:null}catch{return null}}var tf={stack:"dbcore",level:-1,create:function(s){return{table:function(a){var u=s.table(a);return o(o({},u),{getMany:function(d){var p;return d.cache?(p=Ul(d.keys,d.trans._cache,d.cache==="clone"))?Ie.resolve(p):u.getMany(d).then(function(y){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Oe(y):y},y}):u.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),u.mutate(d)}})}}}};function ql(s,a){return s.trans.mode==="readonly"&&!!s.subscr&&!s.trans.explicit&&s.trans.db._options.cache!=="disabled"&&!a.schema.primaryKey.outbound}function Hl(s,a){switch(s){case"query":return a.values&&!a.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var nf={stack:"dbcore",level:0,name:"Observability",create:function(s){var a=s.schema.name,u=new Ht(s.MIN_KEY,s.MAX_KEY);return o(o({},s),{transaction:function(d,p,y){if(Ue.subscr&&p!=="readonly")throw new Le.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Ue.querier));return s.transaction(d,p,y)},table:function(d){function p(V){var F,V=V.query;return[F=V.index,new Ht((F=(V=V.range).lower)!=null?F:s.MIN_KEY,(F=V.upper)!=null?F:s.MAX_KEY)]}var y=s.table(d),w=y.schema,k=w.primaryKey,L=w.indexes,J=k.extractKey,R=k.outbound,D=k.autoIncrement&&L.filter(function(N){return N.compound&&N.keyPath.includes(k.keyPath)}),K=o(o({},y),{mutate:function(N){function F(ye){return ye="idb://".concat(a,"/").concat(d,"/").concat(ye),he[ye]||(he[ye]=new Ht)}var V,ee,X,ie=N.trans,he=N.mutatedParts||(N.mutatedParts={}),ge=F(""),Se=F(":dels"),Ce=N.type,$e=N.type==="deleteRange"?[N.range]:N.type==="delete"?[N.keys]:N.values.length<50?[Za(k,N).filter(function(ye){return ye}),N.values]:[],Fe=$e[0],$e=$e[1],Ne=N.trans._cache;return f(Fe)?(ge.addKeys(Fe),(Ce=Ce==="delete"||Fe.length===$e.length?Ul(Fe,Ne):null)||Se.addKeys(Fe),(Ce||$e)&&(V=F,ee=Ce,X=$e,w.indexes.forEach(function(ye){var Ge=V(ye.name||"");function Ye(rt){return rt!=null?ye.extractKey(rt):null}function tt(rt){ye.multiEntry&&f(rt)?rt.forEach(function(rn){return Ge.addKey(rn)}):Ge.addKey(rt)}(ee||X).forEach(function(rt,zt){var Ze=ee&&Ye(ee[zt]),zt=X&&Ye(X[zt]);at(Ze,zt)!==0&&(Ze!=null&&tt(Ze),zt!=null)&&tt(zt)})}))):Fe?($e={from:(Ne=Fe.lower)!=null?Ne:s.MIN_KEY,to:(Ce=Fe.upper)!=null?Ce:s.MAX_KEY},Se.add($e),ge.add($e)):(ge.add(u),Se.add(u),w.indexes.forEach(function(ye){return F(ye.name).add(u)})),y.mutate(N).then(function(ye){return!Fe||N.type!=="add"&&N.type!=="put"||(ge.addKeys(ye.results),D&&D.forEach(function(Ge){for(var Ye=N.values.map(function(Ze){return Ge.extractKey(Ze)}),tt=Ge.keyPath.findIndex(function(Ze){return Ze===k.keyPath}),rt=0,rn=ye.results.length;rt<rn;++rt)Ye[rt][tt]=ye.results[rt];F(Ge.name).addKeys(Ye)})),ie.mutatedParts=br(ie.mutatedParts||{},he),ye})}}),H={get:function(N){return[k,new Ht(N.key)]},getMany:function(N){return[k,new Ht().addKeys(N.keys)]},count:p,query:p,openCursor:p};return c(H).forEach(function(N){K[N]=function(F){var V=Ue.subscr,ee=!!V,X=ql(Ue,y)&&Hl(N,F)?F.obsSet={}:V;if(ee){var ie,V=function($e){return $e="idb://".concat(a,"/").concat(d,"/").concat($e),X[$e]||(X[$e]=new Ht)},he=V(""),ge=V(":dels"),ee=H[N](F),Se=ee[0],ee=ee[1];if((N==="query"&&Se.isPrimaryKey&&!F.values?ge:V(Se.name||"")).add(ee),!Se.isPrimaryKey){if(N!=="count")return ie=N==="query"&&R&&F.values&&y.query(o(o({},F),{values:!1})),y[N].apply(this,arguments).then(function($e){if(N==="query"){if(R&&F.values)return ie.then(function(Ye){return Ye=Ye.result,he.addKeys(Ye),$e});var Ne=F.values?$e.result.map(J):$e.result;(F.values?he:ge).addKeys(Ne)}else{var ye,Ge;if(N==="openCursor")return Ge=F.values,(ye=$e)&&Object.create(ye,{key:{get:function(){return ge.addKey(ye.primaryKey),ye.key}},primaryKey:{get:function(){var Ye=ye.primaryKey;return ge.addKey(Ye),Ye}},value:{get:function(){return Ge&&he.addKey(ye.primaryKey),ye.value}}})}return $e});ge.add(u)}}return y[N].apply(this,arguments)}}),K}})}};function zl(s,a,u){var d;return u.numFailures===0?a:a.type==="deleteRange"||(d=a.keys?a.keys.length:"values"in a&&a.values?a.values.length:1,u.numFailures===d)?null:(d=o({},a),f(d.keys)&&(d.keys=d.keys.filter(function(p,y){return!(y in u.failures)})),"values"in d&&f(d.values)&&(d.values=d.values.filter(function(p,y){return!(y in u.failures)})),d)}function ei(s,a){return u=s,((d=a).lower===void 0||(d.lowerOpen?0<at(u,d.lower):0<=at(u,d.lower)))&&(u=s,(d=a).upper===void 0||(d.upperOpen?at(u,d.upper)<0:at(u,d.upper)<=0));var u,d}function Wl(s,a,u,d,p,y){var w,k,L,J,R,D,K;return!u||u.length===0||(w=a.query.index,k=w.multiEntry,L=a.query.range,J=d.schema.primaryKey.extractKey,R=w.extractKey,D=(w.lowLevelIndex||w).extractKey,(d=u.reduce(function(H,N){var F=H,V=[];if(N.type==="add"||N.type==="put")for(var ee=new Ht,X=N.values.length-1;0<=X;--X){var ie,he=N.values[X],ge=J(he);!ee.hasKey(ge)&&(ie=R(he),k&&f(ie)?ie.some(function(Ne){return ei(Ne,L)}):ei(ie,L))&&(ee.addKey(ge),V.push(he))}switch(N.type){case"add":var Se=new Ht().addKeys(a.values?H.map(function(ye){return J(ye)}):H),F=H.concat(a.values?V.filter(function(ye){return ye=J(ye),!Se.hasKey(ye)&&(Se.addKey(ye),!0)}):V.map(function(ye){return J(ye)}).filter(function(ye){return!Se.hasKey(ye)&&(Se.addKey(ye),!0)}));break;case"put":var Ce=new Ht().addKeys(N.values.map(function(ye){return J(ye)}));F=H.filter(function(ye){return!Ce.hasKey(a.values?J(ye):ye)}).concat(a.values?V:V.map(function(ye){return J(ye)}));break;case"delete":var Fe=new Ht().addKeys(N.keys);F=H.filter(function(ye){return!Fe.hasKey(a.values?J(ye):ye)});break;case"deleteRange":var $e=N.range;F=H.filter(function(ye){return!ei(J(ye),$e)})}return F},s))===s)?s:(K=function(H,N){return at(D(H),D(N))||at(J(H),J(N))},d.sort(a.direction==="prev"||a.direction==="prevunique"?function(H,N){return K(N,H)}:K),a.limit&&a.limit<1/0&&(d.length>a.limit?d.length=a.limit:s.length===a.limit&&d.length<a.limit&&(p.dirty=!0)),y?Object.freeze(d):d)}function Gl(s,a){return at(s.lower,a.lower)===0&&at(s.upper,a.upper)===0&&!!s.lowerOpen==!!a.lowerOpen&&!!s.upperOpen==!!a.upperOpen}function sf(s,a){return((u,d,p,y)=>{if(u===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((u=at(u,d))===0){if(p&&y)return 0;if(p)return 1;if(y)return-1}return u})(s.lower,a.lower,s.lowerOpen,a.lowerOpen)<=0&&0<=((u,d,p,y)=>{if(u===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((u=at(u,d))===0){if(p&&y)return 0;if(p)return-1;if(y)return 1}return u})(s.upper,a.upper,s.upperOpen,a.upperOpen)}function of(s,a,u,d){s.subscribers.add(u),d.addEventListener("abort",function(){var p,y;s.subscribers.delete(u),s.subscribers.size===0&&(p=s,y=a,setTimeout(function(){p.subscribers.size===0&&qe(y,p)},3e3))})}var rf={stack:"dbcore",level:0,name:"Cache",create:function(s){var a=s.schema.name;return o(o({},s),{transaction:function(u,d,p){var y,w,k=s.transaction(u,d,p);return d==="readwrite"&&(p=(y=new AbortController).signal,k.addEventListener("abort",(w=function(L){return function(){if(y.abort(),d==="readwrite"){for(var J=new Set,R=0,D=u;R<D.length;R++){var K=D[R],H=ks["idb://".concat(a,"/").concat(K)];if(H){var N=s.table(K),F=H.optimisticOps.filter(function(ye){return ye.trans===k});if(k._explicit&&L&&k.mutatedParts)for(var V=0,ee=Object.values(H.queries.query);V<ee.length;V++)for(var X=0,ie=(Se=ee[V]).slice();X<ie.length;X++)Wa((Ce=ie[X]).obsSet,k.mutatedParts)&&(qe(Se,Ce),Ce.subscribers.forEach(function(ye){return J.add(ye)}));else if(0<F.length){H.optimisticOps=H.optimisticOps.filter(function(ye){return ye.trans!==k});for(var he=0,ge=Object.values(H.queries.query);he<ge.length;he++)for(var Se,Ce,Fe,$e=0,Ne=(Se=ge[he]).slice();$e<Ne.length;$e++)(Ce=Ne[$e]).res!=null&&k.mutatedParts&&(L&&!Ce.dirty?(Fe=Object.isFrozen(Ce.res),Fe=Wl(Ce.res,Ce.req,F,N,Ce,Fe),Ce.dirty?(qe(Se,Ce),Ce.subscribers.forEach(function(ye){return J.add(ye)})):Fe!==Ce.res&&(Ce.res=Fe,Ce.promise=Ie.resolve({result:Fe}))):(Ce.dirty&&qe(Se,Ce),Ce.subscribers.forEach(function(ye){return J.add(ye)})))}}}J.forEach(function(ye){return ye()})}}})(!1),{signal:p}),k.addEventListener("error",w(!1),{signal:p}),k.addEventListener("complete",w(!0),{signal:p})),k},table:function(u){var d=s.table(u),p=d.schema.primaryKey;return o(o({},d),{mutate:function(y){var w,k=Ue.trans;return!p.outbound&&k.db._options.cache!=="disabled"&&!k.explicit&&k.idbtrans.mode==="readwrite"&&(w=ks["idb://".concat(a,"/").concat(u)])?(k=d.mutate(y),y.type!=="add"&&y.type!=="put"||!(50<=y.values.length||Za(p,y).some(function(L){return L==null}))?(w.optimisticOps.push(y),y.mutatedParts&&wr(y.mutatedParts),k.then(function(L){0<L.numFailures&&(qe(w.optimisticOps,y),(L=zl(0,y,L))&&w.optimisticOps.push(L),y.mutatedParts)&&wr(y.mutatedParts)}),k.catch(function(){qe(w.optimisticOps,y),y.mutatedParts&&wr(y.mutatedParts)})):k.then(function(L){var J=zl(0,o(o({},y),{values:y.values.map(function(R,D){var K;return L.failures[D]?R:(B(K=(K=p.keyPath)!=null&&K.includes(".")?Oe(R):o({},R),p.keyPath,L.results[D]),K)})}),L);w.optimisticOps.push(J),queueMicrotask(function(){return y.mutatedParts&&wr(y.mutatedParts)})}),k):d.mutate(y)},query:function(y){var w,k,L,J,R,D,K;return ql(Ue,d)&&Hl("query",y)?(w=((L=Ue.trans)==null?void 0:L.db._options.cache)==="immutable",k=(L=Ue).requery,L=L.signal,D=((H,N,F,V)=>{var ee=ks["idb://".concat(H,"/").concat(N)];if(!ee)return[];if(!(H=ee.queries[F]))return[null,!1,ee,null];var X=H[(V.query?V.query.index.name:null)||""];if(!X)return[null,!1,ee,null];switch(F){case"query":var ie=(he=V.direction)!=null?he:"next",he=X.find(function(ge){var Se;return ge.req.limit===V.limit&&ge.req.values===V.values&&((Se=ge.req.direction)!=null?Se:"next")===ie&&Gl(ge.req.query.range,V.query.range)});return he?[he,!0,ee,X]:[X.find(function(ge){var Se;return("limit"in ge.req?ge.req.limit:1/0)>=V.limit&&((Se=ge.req.direction)!=null?Se:"next")===ie&&(!V.values||ge.req.values)&&sf(ge.req.query.range,V.query.range)}),!1,ee,X];case"count":return he=X.find(function(ge){return Gl(ge.req.query.range,V.query.range)}),[he,!!he,ee,X]}})(a,u,"query",y),K=D[0],J=D[2],R=D[3],K&&D[1]?K.obsSet=y.obsSet:(D=d.query(y).then(function(H){var N=H.result;if(K&&(K.res=N),w){for(var F=0,V=N.length;F<V;++F)Object.freeze(N[F]);Object.freeze(N)}return H}).catch(function(H){return R&&K&&qe(R,K),Promise.reject(H)}),K={obsSet:y.obsSet,promise:D,subscribers:new Set,type:"query",req:y,dirty:!1},R?R.push(K):(R=[K],(J=J||(ks["idb://".concat(a,"/").concat(u)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[y.query.index.name||""]=R)),of(K,R,k,L),K.promise.then(function(H){return H=Wl(H.result,y,J==null?void 0:J.optimisticOps,d,K,w),{result:w?H:Oe(H)}})):d.query(y)}})}})}};function kr(s,a){return new Proxy(s,{get:function(u,d,p){return d==="db"?a:Reflect.get(u,d,p)}})}Pt.prototype.version=function(s){if(isNaN(s)||s<.1)throw new Le.Type("Given version is not a positive number");if(s=Math.round(10*s)/10,this.idbdb||this._state.isBeingOpened)throw new Le.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,s);var a=this._versions,u=a.filter(function(d){return d._cfg.version===s})[0];return u||(u=new this.Version(s),a.push(u),a.sort(Gd),u.stores({}),this._state.autoSchema=!1),u},Pt.prototype._whenReady=function(s){var a=this;return this.idbdb&&(this._state.openComplete||Ue.letThrough||this._vip)?s():new Ie(function(u,d){if(a._state.openComplete)return d(new Le.DatabaseClosed(a._state.dbOpenError));if(!a._state.isBeingOpened){if(!a._state.autoOpen)return void d(new Le.DatabaseClosed);a.open().catch(m)}a._state.dbReadyPromise.then(u,d)}).then(s)},Pt.prototype.use=function(p){var a=p.stack,u=p.create,d=p.level,p=p.name,y=(p&&this.unuse({stack:a,name:p}),this._middlewares[a]||(this._middlewares[a]=[]));return y.push({stack:a,create:u,level:d??10,name:p}),y.sort(function(w,k){return w.level-k.level}),this},Pt.prototype.unuse=function(s){var a=s.stack,u=s.name,d=s.create;return a&&this._middlewares[a]&&(this._middlewares[a]=this._middlewares[a].filter(function(p){return d?p.create!==d:!!u&&p.name!==u})),this},Pt.prototype.open=function(){var s=this;return bs(jt,function(){return Qd(s)})},Pt.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var s=this._state;if(go.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}s.isBeingOpened||(s.dbReadyPromise=new Ie(function(a){s.dbReadyResolve=a}),s.openCanceller=new Ie(function(a,u){s.cancelOpen=u}))},Pt.prototype.close=function(a){var a=(a===void 0?{disableAutoOpen:!0}:a).disableAutoOpen,u=this._state;a?(u.isBeingOpened&&u.cancelOpen(new Le.DatabaseClosed),this._close(),u.autoOpen=!1,u.dbOpenError=new Le.DatabaseClosed):(this._close(),u.autoOpen=this._options.autoOpen||u.isBeingOpened,u.openComplete=!1,u.dbOpenError=null)},Pt.prototype.delete=function(s){var a=this,u=(s===void 0&&(s={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),d=this._state;return new Ie(function(p,y){function w(){a.close(s);var k=a._deps.indexedDB.deleteDatabase(a.name);k.onsuccess=$t(function(){var L,J,R;L=a._deps,J=a.name,qa(R=L.indexedDB)||J===ar||Ua(R,L.IDBKeyRange).delete(J).catch(m),p()}),k.onerror=hn(y),k.onblocked=a._fireOnBlocked}if(u)throw new Le.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(w):w()})},Pt.prototype.backendDB=function(){return this.idbdb},Pt.prototype.isOpen=function(){return this.idbdb!==null},Pt.prototype.hasBeenClosed=function(){var s=this._state.dbOpenError;return s&&s.name==="DatabaseClosed"},Pt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Pt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Pt.prototype,"tables",{get:function(){var s=this;return c(this._allTables).map(function(a){return s._allTables[a]})},enumerable:!1,configurable:!0}),Pt.prototype.transaction=function(){var s=(function(a,u,d){var p=arguments.length;if(p<2)throw new Le.InvalidArgument("Too few arguments");for(var y=new Array(p-1);--p;)y[p-1]=arguments[p];return d=y.pop(),[a,S(y),d]}).apply(this,arguments);return this._transaction.apply(this,s)},Pt.prototype._transaction=function(s,a,u){var d,p,y=this,w=Ue.trans,k=(w&&w.db===this&&s.indexOf("!")===-1||(w=null),s.indexOf("?")!==-1);s=s.replace("!","").replace("?","");try{if(p=a.map(function(J){if(J=J instanceof y.Table?J.name:J,typeof J!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return J}),s=="r"||s===Ma)d=Ma;else{if(s!="rw"&&s!=Ia)throw new Le.InvalidArgument("Invalid transaction mode: "+s);d=Ia}if(w){if(w.mode===Ma&&d===Ia){if(!k)throw new Le.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");w=null}w&&p.forEach(function(J){if(w&&w.storeNames.indexOf(J)===-1){if(!k)throw new Le.SubTransaction("Table "+J+" not included in parent transaction.");w=null}}),k&&w&&!w.active&&(w=null)}}catch(J){return w?w._promise(null,function(R,D){D(J)}):At(J)}var L=(function J(R,D,K,H,N){return Ie.resolve().then(function(){var X=Ue.transless||Ue,F=R._createTransaction(D,K,R._dbSchema,H),X=(F.explicit=!0,{trans:F,transless:X});if(H)F.idbtrans=H.idbtrans;else try{F.create(),F.idbtrans._explicit=!0,R._state.PR1398_maxLoop=3}catch(ie){return ie.name===qt.InvalidState&&R.isOpen()&&0<--R._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),R.close({disableAutoOpen:!1}),R.open().then(function(){return J(R,D,K,null,N)})):At(ie)}var V,ee=me(N),X=(ee&&Us(),Ie.follow(function(){var ie;(V=N.call(F,F))&&(ee?(ie=Qn.bind(null,null),V.then(ie,ie)):typeof V.next=="function"&&typeof V.throw=="function"&&(V=Xa(V)))},X));return(V&&typeof V.then=="function"?Ie.resolve(V).then(function(ie){return F.active?ie:At(new Le.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):X.then(function(){return V})).then(function(ie){return H&&F._resolve(),F._completion.then(function(){return ie})}).catch(function(ie){return F._reject(ie),At(ie)})})}).bind(null,this,d,p,w,u);return w?w._promise(d,L,"lock"):Ue.trans?bs(Ue.transless,function(){return y._whenReady(L)}):this._whenReady(L)},Pt.prototype.table=function(s){if(_(this._allTables,s))return this._allTables[s];throw new Le.InvalidTable("Table ".concat(s," does not exist"))};var Nn=Pt;function Pt(s,a){var u,d,p,y,w,k=this,L=(this._middlewares={},this.verno=0,Pt.dependencies),L=(this._options=a=o({addons:Pt.addons,autoOpen:!0,indexedDB:L.indexedDB,IDBKeyRange:L.IDBKeyRange,cache:"cloned",maxConnections:1e3},a),this._deps={indexedDB:a.indexedDB,IDBKeyRange:a.IDBKeyRange},a.addons),J=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:m,dbReadyPromise:null,cancelOpen:m,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:a.autoOpen}),R=(J.dbReadyPromise=new Ie(function(D){J.dbReadyResolve=D}),J.openCanceller=new Ie(function(D,K){J.cancelOpen=K}),this._state=J,this.name=s,this.on=po(this,"populate","blocked","versionchange","close",{ready:[fe,m]}),this.once=function(D,K){var H=function(){for(var N=[],F=0;F<arguments.length;F++)N[F]=arguments[F];k.on(D).unsubscribe(H),K.apply(k,N)};return k.on(D,H)},this.on.ready.subscribe=Y(this.on.ready.subscribe,function(D){return function(K,H){Pt.vip(function(){var N,F=k._state;F.openComplete?(F.dbOpenError||Ie.resolve().then(K),H&&D(K)):F.onReadyBeingFired?(F.onReadyBeingFired.push(K),H&&D(K)):(D(K),N=k,H||D(function V(){N.on.ready.unsubscribe(K),N.on.ready.unsubscribe(V)}))})}}),this.Collection=(u=this,vo(Vd.prototype,function(V,F){this.db=u;var H=Cl,N=null;if(F)try{H=F()}catch(X){N=X}var F=V._ctx,V=F.table,ee=V.hook.reading.fire;this._ctx={table:V,index:F.index,isPrimKey:!F.index||V.schema.primKey.keyPath&&F.index===V.schema.primKey.name,range:H,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:N,or:F.or,valueMapper:ee!==C?ee:null}})),this.Table=(d=this,vo(Al.prototype,function(D,K,H){this.db=d,this._tx=H,this.name=D,this.schema=K,this.hook=d._allTables[D]?d._allTables[D].hook:po(null,{creating:[W,m],reading:[j,C],updating:[_e,m],deleting:[we,m]})})),this.Transaction=(p=this,vo(qd.prototype,function(D,K,H,N,F){var V=this;D!=="readonly"&&K.forEach(function(ee){ee=(ee=H[ee])==null?void 0:ee.yProps,ee&&(K=K.concat(ee.map(function(X){return X.updatesTable})))}),this.db=p,this.mode=D,this.storeNames=K,this.schema=H,this.chromeTransactionDurability=N,this.idbtrans=null,this.on=po(this,"complete","error","abort"),this.parent=F||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Ie(function(ee,X){V._resolve=ee,V._reject=X}),this._completion.then(function(){V.active=!1,V.on.complete.fire()},function(ee){var X=V.active;return V.active=!1,V.on.error.fire(ee),V.parent?V.parent._reject(ee):X&&V.idbtrans&&V.idbtrans.abort(),At(ee)})})),this.Version=(y=this,vo(Xd.prototype,function(D){this.db=y,this._cfg={version:D,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(w=this,vo(jl.prototype,function(D,K,H){if(this.db=w,this._ctx={table:D,index:K===":id"?null:K,or:H},this._cmp=this._ascending=at,this._descending=function(N,F){return at(F,N)},this._max=function(N,F){return 0<at(N,F)?N:F},this._min=function(N,F){return at(N,F)<0?N:F},this._IDBKeyRange=w._deps.IDBKeyRange,!this._IDBKeyRange)throw new Le.MissingAPI})),this.on("versionchange",function(D){0<D.newVersion?console.warn("Another connection wants to upgrade database '".concat(k.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(k.name,"'. Closing db now to resume the delete request.")),k.close({disableAutoOpen:!1})}),this.on("blocked",function(D){!D.newVersion||D.newVersion<D.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(D.oldVersion/10))}),this._maxKey=ho(a.IDBKeyRange),this._createTransaction=function(D,K,H,N){return new k.Transaction(D,K,H,k._options.chromeTransactionDurability,N)},this._fireOnBlocked=function(D){k.on("blocked").fire(D),go.toArray().filter(function(K){return K.name===k.name&&K!==k&&!K._state.vcFired}).map(function(K){return K.on("versionchange").fire(D)})},this.use(tf),this.use(rf),this.use(nf),this.use(Zd),this.use(ef),new Proxy(this,{get:function(D,K,H){var N;return K==="_vip"||(K==="table"?function(F){return kr(k.table(F),R)}:(N=Reflect.get(D,K,H))instanceof Al?kr(N,R):K==="tables"?N.map(function(F){return kr(F,R)}):K==="_createTransaction"?function(){return kr(N.apply(this,arguments),R)}:N)}}));this.vip=R,L.forEach(function(D){return D(k)})}var Cr,Ws=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",af=(ti.prototype.subscribe=function(s,a,u){return this._subscribe(s&&typeof s!="function"?s:{next:s,error:a,complete:u})},ti.prototype[Ws]=function(){return this},ti);function ti(s){this._subscribe=s}try{Cr={indexedDB:i.indexedDB||i.mozIndexedDB||i.webkitIndexedDB||i.msIndexedDB,IDBKeyRange:i.IDBKeyRange||i.webkitIDBKeyRange}}catch{Cr={indexedDB:null,IDBKeyRange:null}}function Yl(s){var a,u=!1,d=new af(function(p){var y=me(s),w,k=!1,L={},J={},R={get closed(){return k},unsubscribe:function(){k||(k=!0,w&&w.abort(),D&&ts.storagemutated.unsubscribe(N))}},D=(p.start&&p.start(R),!1),K=function(){return Oa(F)};function H(){return Wa(J,L)}var N=function(V){br(L,V),H()&&K()},F=function(){var V,ee,X;!k&&Cr.indexedDB&&(L={},V={},w&&w.abort(),w=new AbortController,X=(ie=>{var he=Vs();try{y&&Us();var ge=Xn(s,ie);return ge=y?ge.finally(Qn):ge}finally{he&&Bs()}})(ee={subscr:V,signal:w.signal,requery:K,querier:s,trans:null}),D||(ts.storagemutated.subscribe(N),D=!0),Promise.resolve(X).then(function(ie){u=!0,a=ie,k||ee.signal.aborted||(H()||(J=V,H())?K():(L={},Oa(function(){return!k&&p.next&&p.next(ie)})))},function(ie){u=!1,["DatabaseClosedError","AbortError"].includes(ie==null?void 0:ie.name)||k||Oa(function(){k||p.error&&p.error(ie)})}))};return setTimeout(K,0),R});return d.hasValue=function(){return u},d.getValue=function(){return a},d}var Cs=Nn;function ni(s){var a=ns;try{ns=!0,ts.storagemutated.fire(s),Ja(s,!0)}finally{ns=a}}A(Cs,o(o({},re),{delete:function(s){return new Cs(s,{addons:[]}).delete()},exists:function(s){return new Cs(s,{addons:[]}).open().then(function(a){return a.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(s){try{return a=Cs.dependencies,u=a.indexedDB,a=a.IDBKeyRange,(qa(u)?Promise.resolve(u.databases()).then(function(d){return d.map(function(p){return p.name}).filter(function(p){return p!==ar})}):Ua(u,a).toCollection().primaryKeys()).then(s)}catch{return At(new Le.MissingAPI)}var a,u},defineClass:function(){return function(s){v(this,s)}},ignoreTransaction:function(s){return Ue.trans?bs(Ue.transless||jt,s):s()},vip:Ha,async:function(s){return function(){try{var a=Xa(s.apply(this,arguments));return a&&typeof a.then=="function"?a:Ie.resolve(a)}catch(u){return At(u)}}},spawn:function(s,a,u){try{var d=Xa(s.apply(u,a||[]));return d&&typeof d.then=="function"?d:Ie.resolve(d)}catch(p){return At(p)}},currentTransaction:{get:function(){return Ue.trans||null}},waitFor:function(s,a){return s=Ie.resolve(typeof s=="function"?Cs.ignoreTransaction(s):s).timeout(a||6e4),Ue.trans?Ue.trans.waitFor(s):s},Promise:Ie,debug:{get:function(){return Ke},set:function(s){Te(s)}},derive:G,extend:v,props:A,override:Y,Events:po,on:ts,liveQuery:Yl,extendObservabilitySet:br,getByKeyPath:Q,setByKeyPath:B,delByKeyPath:function(s,a){typeof a=="string"?B(s,a,void 0):"length"in a&&[].map.call(a,function(u){B(s,u,void 0)})},shallowClone:te,deepClone:Oe,getObjectDiff:Qa,cmp:at,asap:U,minKey:-1/0,addons:[],connections:{get:go.toArray},errnames:qt,dependencies:Cr,cache:ks,semVer:"4.4.6",version:"4.4.6".split(".").map(function(s){return parseInt(s)}).reduce(function(s,a,u){return s+a/Math.pow(10,2*u)})})),Cs.maxKey=ho(Cs.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(ts(fr,function(s){ns||(s=new CustomEvent(La,{detail:s}),ns=!0,dispatchEvent(s),ns=!1)}),addEventListener(La,function(s){s=s.detail,ns||ni(s)}));var Gs,ns=!1,Jl=function(){};return typeof BroadcastChannel<"u"&&((Jl=function(){(Gs=new BroadcastChannel(La)).onmessage=function(s){return s.data&&ni(s.data)}})(),typeof Gs.unref=="function"&&Gs.unref(),ts(fr,function(s){ns||Gs.postMessage(s)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(s){if(!Nn.disableBfCache&&s.persisted){Ke&&console.debug("Dexie: handling persisted pagehide"),Gs!=null&&Gs.close();for(var a=0,u=go.toArray();a<u.length;a++)u[a].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(s){!Nn.disableBfCache&&s.persisted&&(Ke&&console.debug("Dexie: handling persisted pageshow"),Jl(),ni({all:new Ht(-1/0,[[]])}))})),Ie.rejectionMapper=function(s,a){return!s||s instanceof Me||s instanceof TypeError||s instanceof SyntaxError||!s.name||!g[s.name]?s:(a=new g[s.name](a||s.message,s),"stack"in s&&M(a,"stack",{get:function(){return this.inner.stack}}),a)},Te(Ke),o(Nn,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Nn,Entity:xl,PropModification:fo,RangeSet:Ht,add:function(s){return new fo({add:s})},cmp:at,default:Nn,liveQuery:Yl,mergeRanges:wo,rangesOverlap:Fl,remove:function(s){return new fo({remove:s})},replacePrefix:function(s,a){return new fo({replacePrefix:[s,a]})}}),{default:Nn}),Nn})})(ld);var sm=ld.exports;const Di=nm(sm),Ru=Symbol.for("Dexie"),ea=globalThis[Ru]||(globalThis[Ru]=Di);if(Di.semVer!==ea.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Di.semVer} and ${ea.semVer}`);const{liveQuery:om,mergeRanges:e$,rangesOverlap:t$,RangeSet:n$,cmp:s$,Entity:o$,PropModification:r$,replacePrefix:a$,add:i$,remove:l$,DexieYProvider:u$}=ea;class rm extends ea{constructor(t="intern_worklog"){super(t),this.version(1).stores({project:"++id, &name, archived",work_log:"++id, &date",log_item:"++id, work_log_id, project_id, category",attendance:"++id, &date",weekly_note:"++id, &week_start",setting:"key"}),this.version(2).stores({memo:"++id, updated_at",credential:"++id, system, updated_at"}),this.version(3).stores({transaction:"++id, date, type, category"}),this.version(4).stores({sync_mirror:"++id, table, uuid",tombstone:"++id, table, uuid, deleted_at"}),this.version(5).stores({plan:"++id, date, status"}).upgrade(async n=>{const o={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};await n.table("log_item").toCollection().modify(r=>{r.category&&o[r.category]&&(r.category=o[r.category])})}),this.version(6).stores({plan:"++id, date, status, goal_id",goal:"++id, start_date"})}}let ne;function am(e){ne=e}function dl(){ne&&ne.close(),ne=void 0}const im=6,Fu=["公司","客户现场","出差","居家办公"],lm={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};function qo(e){return lm[e]||e}function Io(e){return e<10?"0"+e:String(e)}function Gn(e){return e.getFullYear()+"-"+Io(e.getMonth()+1)+"-"+Io(e.getDate())}function it(){return Gn(new Date)}function lt(){const e=new Date;return Gn(e)+"T"+Io(e.getHours())+":"+Io(e.getMinutes())+":"+Io(e.getSeconds())}function _n(e){if(!e)return"--:--";const t=e.indexOf("T");return t>=0?e.slice(t+1,t+6):e.slice(0,5)}function Fs(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}function Ut(e,t){const n=Fs(e);return n.setDate(n.getDate()+t),Gn(n)}function ta(e,t){const n=Fs(e),o=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const r=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(o,r)),Gn(n)}function Zs(e){const t=Fs(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),Gn(t)}function um(e){const t=Fs(e).getDay();return t===0||t===6}function cm(e,t){return Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)}function ud(e){const t=Fs(e),n=["周日","周一","周二","周三","周四","周五","周六"];return t.getFullYear()+" 年 "+(t.getMonth()+1)+" 月 "+t.getDate()+" 日 "+n[t.getDay()]}const dm=15e4;function Li(e){const t=new Uint8Array(e);let n="";for(let o=0;o<t.length;o++)n+=String.fromCharCode(t[o]);return btoa(n)}function Ki(e){const t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}function fm(){return Li(crypto.getRandomValues(new Uint8Array(16)).buffer)}async function na(e,t){const n=new TextEncoder,o=await crypto.subtle.importKey("raw",n.encode(e),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:Ki(t),iterations:dm,hash:"SHA-256"},o,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function sa(e,t){const n=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.encrypt({name:"AES-GCM",iv:n},e,new TextEncoder().encode(t));return Li(n.buffer)+":"+Li(o)}async function Ca(e,t){const n=t.split(":");if(n.length!==2)throw new Error("密文格式错误");const o=await crypto.subtle.decrypt({name:"AES-GCM",iv:Ki(n[0])},e,Ki(n[1]));return new TextDecoder().decode(o)}async function fl(){await wd()}const cd="intern-log-vault-verify",oo="enc:v1:";let Ks=null;function pm(){return Ks!==null}function oa(){Ks=null}async function dd(){return await St("pwd_salt","")!==""}async function vm(e){if(e.length<6)throw new Error("主密码至少 6 位");if(await dd())throw new Error("主密码已设置");const t=fm(),n=await na(e,t),o=await sa(n,cd);await Lt("pwd_salt",t),await Lt("pwd_verifier",o),Ks=n}async function mm(e){const t=await St("pwd_salt","");if(!t)throw new Error("主密码尚未设置");const n=await na(e,t),o=await St("pwd_verifier","");try{await Ca(n,o)}catch{throw new Error("主密码不正确")}Ks=n}async function fd(){if(!Ks)throw new Error("密码库未解锁");return Ks}async function hm(e){const t=await fd();return oo+await sa(t,e)}async function ym(e){if(!e)return"";if(!e.startsWith(oo))return e;const t=await fd();return Ca(t,e.slice(oo.length))}async function gm(){return ne.credential.orderBy("system").toArray()}async function bm(e,t){const n=await hm(e.password),o={system:e.system.trim(),account:e.account.trim(),password:n,remark:e.remark.trim()};t?await ne.credential.update(t,{...o,updated_at:lt()}):await ne.credential.add({...o,created_at:lt(),updated_at:lt()}),await fl()}async function wm(e){await ne.credential.delete(e),await fl()}async function yi(e){const t=await ne.credential.get(e);if(!t)throw new Error("记录不存在");return ym(t.password)}async function _m(e,t){if(!e)throw new Error("请输入旧主密码");if(t.length<6)throw new Error("新主密码至少 6 位");if(t===e)throw new Error("新主密码不能与旧主密码相同");const n=await St("pwd_salt","");if(!n)throw new Error("密码库尚未初始化");const o=await na(e,n),r=await St("pwd_verifier","");try{await Ca(o,r)}catch{throw new Error("旧主密码不正确")}const i=await na(t,n),c=await ne.credential.toArray();let f=0;for(const v of c){if(v.id==null)continue;const b=await km(v.password,o),h=oo+await sa(i,b);await ne.credential.update(v.id,{password:h}),f++}return await Lt("pwd_verifier",await sa(i,cd)),Ks=i,await fl(),f}async function km(e,t){return e?e.startsWith(oo)?Ca(t,e.slice(oo.length)):e:""}const Cm="https://daywk.linyux.cn",xm="dsh_sync_base",Ri="dsh_sync_token";function pd(e){try{return localStorage.getItem(e)||""}catch{return""}}function $m(e,t){try{localStorage.setItem(e,t)}catch{}}function Sm(e){try{localStorage.removeItem(e)}catch{}}async function Ns(){return pd(xm)||Cm}function xa(){const e=pd(Ri);if(!e)return"";try{return e}catch{return""}}function Ho(e){e?$m(Ri,e):Sm(Ri)}const Em="intern_worklog",pl="dsh_session_user";function zo(){try{const e=localStorage.getItem(pl);if(!e)return null;const t=JSON.parse(e);if(t&&t.userId&&t.username)return t}catch{}return null}function Tm(e){localStorage.setItem(pl,JSON.stringify(e))}function vd(){localStorage.removeItem(pl)}const vl="dsh_cloud_creds";function md(e,t){localStorage.setItem(vl,JSON.stringify({username:e,password:t}))}function pn(){try{const e=localStorage.getItem(vl);if(!e)return null;const t=JSON.parse(e);if(t&&t.username&&t.password)return t}catch{}return null}function Am(){localStorage.removeItem(vl)}let ra=null;function aa(e){ra===e&&ne||(ne&&dl(),am(new rm(Em+"_"+e)),ra=e)}async function Pm(e,t,n){const o=await Ns();let r;try{r=await fetch(o+"/api/auth/"+e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t.trim(),password:n})})}catch{throw new Error("无法连接同步服务器:请检查网络后重试")}const i=await r.json().catch(()=>({}));if(!r.ok){const c=i&&i.error||"服务返回 "+r.status;throw e==="register"&&r.status===409?new Error("云端已有同名账号且密码一致,直接登录即可"):new Error(String(c))}if(!i.userId||!i.username)throw new Error("登录响应异常");return{userId:String(i.userId),username:String(i.username)}}async function ml(e,t,n){const o=await Pm(n,e,t);aa(o.userId);const r={userId:o.userId,username:o.username};return Tm(r),md(o.username,t),r}async function Om(e,t){const n=(e||"").trim();if(!n||!t)throw new Error("请输入用户名与密码");return ml(n,t,"login")}async function Mm(e,t,n){const o=(e||"").trim();if(o.length<2||o.length>20)throw new Error("用户名需 2 到 20 个字符");if(t.length<6)throw new Error("登录密码至少 6 位");return ml(o,t,"register")}async function Im(){const e=pn();if(!e)return null;try{return await ml(e.username,e.password,"login")}catch{return null}}async function jm(){oa(),dl(),ra=null,vd()}function Dm(){oa(),dl(),ra=null,vd(),Am()}async function Lm(e,t){if(!zo())throw new Error("未登录");if(t.length<6)throw new Error("新密码至少 6 位");const o=pn();if(!o||o.password!==e)throw new Error("旧密码不正确");const r=await Ns();let i;try{i=await fetch(r+"/api/auth/password",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+hd()},body:JSON.stringify({oldPassword:e,newPassword:t})})}catch{throw new Error("无法连接同步服务器")}if(!i.ok){const c=await i.json().catch(()=>({}));throw new Error(c&&c.error||"修改失败 "+i.status)}md(o.username,t)}async function Km(){if(!zo())throw new Error("未登录");const t=await Ns();let n;try{n=await fetch(t+"/api/auth/delete",{method:"POST",headers:{Authorization:"Bearer "+hd()}})}catch{throw new Error("无法连接同步服务器")}if(!n.ok){const o=await n.json().catch(()=>({}));throw new Error(o&&o.error||"删除失败 "+n.status)}Dm()}function hd(){return xa()}const Fi=P(null),Ni=P(null),uo=P(0);function is(){uo.value++}const yd=P(0);function Rm(){yd.value++}const eo=P(""),ro=["project","work_log","log_item","attendance","weekly_note","setting","memo","credential","goal","transaction","plan"],Xs=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);function Lr(e){return JSON.stringify(e)}async function Fm(e){return ne.table(e).toArray()}function Kr(e,t){return e==="setting"?t.key:t.id}async function Nm(){for(const e of ro){const t=ne.table(e),n=await t.toArray();for(const o of n){if(e==="setting"&&Xs.has(o.key))continue;const r={};o.uuid||(r.uuid=Vm()),!o.updated_at&&o.created_at&&(r.updated_at=o.created_at),Object.keys(r).length&&await t.update(Kr(e,o),r)}}}function Vm(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"u"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}async function Bm(){return pn()!=null}async function Um(){try{return localStorage.getItem("dsh_last_sync")||""}catch{return""}}async function qm(e){try{localStorage.setItem("dsh_last_sync",e)}catch{}}async function gd(e,t){const n=await fetch(e+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t.username.trim(),password:t.password})});if(!n.ok)throw new Error("云端账号或密码不正确");const o=await n.json();if(!o||!o.token)throw new Error("云端登录异常");return String(o.token)}async function Hm(e,t){let n=xa();return n||(n=await gd(e,t),Ho(n),n)}async function bd(){const e=pn();if(!e)throw new Error("未登录");const t=await Ns(),n=await fetch(t+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e.username,password:e.password})});if(!n.ok)throw new Error("云端账号校验失败:"+n.status)}async function Vi(){const e=pn();if(!e)throw new Error("未登录,无法同步");return Cd({baseUrl:await Ns(),username:e.username,password:e.password})}async function wd(){try{await Vi()}catch(e){eo.value=e instanceof Error?e.message:String(e);try{await Vi()}catch{}}}function _d(e,t,n){const o={};for(const r of Object.keys(t))r!=="id"&&(o[r]=t[r]);if(e==="log_item"){delete o.work_log_id,delete o.project_id;const r=t.work_log_id?n.workLog.get(t.work_log_id):null;r&&r.uuid&&(o.wuuid=r.uuid);const i=t.project_id?n.project.get(t.project_id):null;i&&i.uuid&&(o.puuid=i.uuid)}if(e==="plan"){delete o.goal_id;const r=t.goal_id?n.goal.get(t.goal_id):null;r&&r.uuid&&(o.guuid=r.uuid)}return o}async function kd(){const e=await ne.work_log.toArray(),t=await ne.project.toArray(),n=await ne.goal.toArray();return{workLog:new Map(e.map(o=>[o.id,o])),project:new Map(t.map(o=>[o.id,o])),goal:new Map(n.map(o=>[o.id,o]))}}let jo=!1,Rr=!1,Bi=!1,to=null,En=null,Ui="",qi=!1,Fr=null;async function no(){if(jo){Rr=!0;return}try{if(!await Bm())return;await Cd(await zm()),eo.value=""}catch(e){eo.value=e instanceof Error?e.message:String(e)}}async function zm(){const e=pn();if(!e)throw new Error("未登录,无法同步");return{baseUrl:await Ns(),username:e.username,password:e.password}}function Wm(){if(qi)return;qi=!0,Fr=om(async()=>{const t={};for(const n of ro)t[n]=await ne.table(n).count();return t}).subscribe({next:()=>{Bi||jo||(to&&globalThis.clearTimeout(to),to=globalThis.setTimeout(()=>{no()},3e3))},error:()=>{}})}function Gm(){Fr&&(Fr.unsubscribe(),Fr=null),En&&(En.close(),En=null,Ui=""),to&&(globalThis.clearTimeout(to),to=null),qi=!1}function Ym(e,t){const n=e+"|"+t;if(!(En&&Ui===n)){En&&(En.close(),En=null);try{En=new EventSource(e+"/api/events?token="+encodeURIComponent(t)),Ui=n,En.onmessage=()=>{no()}}catch{En=null}}}async function Cd(e){if(jo)return Rr=!0,{pushed:0,pulled:0,removed:0,errors:0,at:""};jo=!0,Bi=!0;try{const t=await Hi(e);return Rr&&(Rr=!1,globalThis.setTimeout(()=>{no()},800)),t}finally{jo=!1,Bi=!1}}async function Hi(e,t=!1){var Q;const n=e.baseUrl.trim().replace(/\/+$/,"");if(!n)throw new Error("请先配置同步服务地址");await Nm();const o=await kd(),r=await ne.sync_mirror.toArray(),i=new Map;for(const B of r)i.set(B.table+"|"+B.uuid,B);const c={},f=[];let v=0;for(const B of ro){let te=await Fm(B);B==="setting"&&(te=te.filter(S=>!Xs.has(S.key)));const I=new Map;for(const S of te)I.set(S.uuid,S);for(const[S,O]of I){const Z=_d(B,O,o),Oe=Lr(Z),Ee=i.get(B+"|"+S);(!Ee||Ee.hash!==Oe)&&(c[B]=c[B]||[],c[B].push(Z),v++)}for(const[S,O]of i)S.startsWith(B+"|")&&!I.has(O.uuid)&&f.push({table:B,uuid:O.uuid,deleted_at:lt()});c[B]=c[B]||[]}f.push(...eh());const b=await Hm(n,e),h=B=>fetch(n+"/api/sync",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+B},body:JSON.stringify({device:"client",tables:c,tombstones:f})});let _=await h(b);if(_.status===401){Ho("");const B=await gd(n,e);Ho(B),_=await h(B)}if(!_.ok)throw new Error("同步服务返回 "+_.status);const A=await _.json(),x=String(A.dataEpoch||""),M="dsh_sync_epoch_"+(((Q=pn())==null?void 0:Q.username)||"anon"),G=x?localStorage.getItem(M):null;if(!t&&G&&x&&G!==x)return await ne.sync_mirror.clear(),localStorage.setItem(M,x),Hi(e,!0);const oe=A.tables||{},le=A.tombstones||[],ce=ro.reduce((B,te)=>B+(oe[te]||[]).length,0),Y=r.length-f.length;if(!t&&ce<Y)return await ne.sync_mirror.clear(),Hi(e,!0);const E=await Qm(oe,le);Ym(n,xa()||b);const U=lt();return await qm(U),x&&localStorage.setItem(M,x),(E.changed>0||E.removed>0||v>0)&&is(),{pushed:v,pulled:E.changed,removed:E.removed,errors:0,at:U}}function xd(){var t;return"dsh_idmap_"+(((t=pn())==null?void 0:t.username)||"anon")}function Jm(){try{const e=localStorage.getItem(xd());if(e)return JSON.parse(e)}catch{}return{}}function Xm(e){try{localStorage.setItem(xd(),JSON.stringify(e))}catch{}}async function Qm(e,t){const n=Jm(),o=new Set(t.map(x=>x.table+"|"+x.uuid)),r=new Map;for(const x of await ne.sync_mirror.toArray())r.set(x.table+"|"+x.uuid,x);const i=new Set(Array.from(r.keys()).map(x=>x.split("|")[1]));let c=0,f=0;const v={},b={},h={};for(const x of ro){const M=ne.table(x),G=await M.toArray(),oe=new Map(G.map(S=>[Kr(x,S),S])),le=new Map(G.filter(S=>S.uuid).map(S=>[S.uuid,S])),ce=(e[x]||[]).filter(S=>S&&typeof S=="object"&&S.uuid).filter(S=>!o.has(x+"|"+S.uuid)),Y=ce.filter(S=>!(x==="setting"&&Xs.has(S.key))),E=ce.filter(S=>x==="setting"&&Xs.has(S.key));for(const S of E)Zm(x,S.uuid);const U=x==="setting"?[]:G.filter(S=>S.uuid&&!i.has(S.uuid)&&!o.has(x+"|"+S.uuid)),Q={v:Math.max(0,...G.map(S=>Number(S.id)||0))};Y.length;const B=[];for(const S of Y){const O={...S};if(x==="log_item"){const Ee=O.wuuid?v[O.wuuid]:void 0;if(!Ee)continue;O.work_log_id=Ee,delete O.wuuid,O.project_id=O.puuid?b[O.puuid]??null:null,delete O.puuid}if(x==="plan")if(O.guuid){const Ee=h[O.guuid];O.goal_id=Ee??null,delete O.guuid}else O.goal_id=null;let Z=Kr(x,S);if(x==="setting")Z=S.key;else{const Ee=n[x]&&n[x][S.uuid],be=le.get(S.uuid);be&&be.id!=null?Z=be.id:typeof Ee=="number"?Z=Ee:Z=++Q.v}const Oe={...O,id:Z};x==="setting"&&Xs.has(Oe.key)||(B.push(Oe),x==="work_log"&&(v[S.uuid]=Z),x==="project"&&(b[S.uuid]=Z),x==="goal"&&(h[S.uuid]=Z))}const te=B.concat(U);for(const S of te){const O=oe.get(Kr(x,S));(!O||Lr(O)!==Lr(S))&&c++}f+=G.filter(S=>S.uuid&&!B.some(O=>O.uuid===S.uuid)&&!o.has(x+"|"+S.uuid)).length,await M.clear(),te.length&&await M.bulkPut(te);const I={};for(const S of te)S.uuid&&(I[S.uuid]=S.id);n[x]=I}Xm(n);const _=await kd(),A=[];for(const x of ro){const M=await ne.table(x).toArray();for(const G of M)x==="setting"&&Xs.has(G.key)||G.uuid&&A.push({table:x,uuid:G.uuid,hash:Lr(_d(x,G,_))})}return await ne.sync_mirror.clear(),A.length&&await ne.sync_mirror.bulkAdd(A.map(x=>({...x}))),await ne.tombstone.clear(),{changed:c,removed:f+ia.length}}const ia=[];function Zm(e,t){ia.some(n=>n.table===e&&n.uuid===t)||ia.push({table:e,uuid:t,deleted_at:lt()})}function eh(){return ia.splice(0)}const th=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);async function ut(){await wd()}async function St(e,t){const n=await ne.setting.get(e);return n?n.value:t}async function Lt(e,t){await ne.setting.put({key:e,value:t}),th.has(e)||await ut()}async function vs(){const e=await Promise.all([St("work_start","09:00"),St("work_end","18:00"),St("grace_minutes","10"),St("lunch_minutes","60"),St("remind_weekly","friday")]);return{work_start:e[0],work_end:e[1],grace_minutes:Number(e[2])||0,lunch_minutes:Number(e[3])||0,remind_weekly:e[4]}}async function nh(){return St("last_location","")}async function sh(e,t){const n=t.trim();await Lt("last_location",n),n&&await la(n);let o=!1;const r=await kn(e);r&&r.id?(r.location||"")!==n&&(await ne.attendance.update(r.id,{location:n||null}),o=!0):n&&(await ne.attendance.add({date:e,clock_in_at:null,clock_out_at:null,kind:"normal",note:null,location:n,created_at:lt()}),o=!0),o&&await ut()}async function hl(){const e=await St("location_presets","");if(!e)return Fu.slice();try{const t=JSON.parse(e);if(Array.isArray(t))return t.filter(n=>typeof n=="string"&&n.trim()).map(n=>n.trim())}catch{}return Fu.slice()}async function $d(e){const t=Array.from(new Set(e.map(n=>n.trim()).filter(Boolean)));await Lt("location_presets",JSON.stringify(t))}async function la(e){const t=e.trim();if(!t)return;const n=await hl();n.includes(t)||await $d([...n,t])}async function ao(e=!1){const t=await ne.project.orderBy("name").toArray();return e?t:t.filter(n=>n.archived!==1)}async function oh(e){await ne.project.add({name:e.trim(),archived:0,created_at:lt()}),await ut()}async function rh(e,t){await ne.project.update(e,{name:t.trim()}),await ut()}async function ah(e,t){await ne.project.update(e,{archived:t?1:0}),await ut()}async function kn(e){return ne.attendance.where("date").equals(e).first()}async function Sd(e,t){const n=((t===void 0?await St("last_location",""):t)||"").trim();let o=!1;const r=await kn(e);if(r&&r.id){if(!r.clock_in_at){const i={clock_in_at:lt()};n&&(i.location=n),await ne.attendance.update(r.id,i),o=!0}n&&(await St("last_location","")!==n&&await Lt("last_location",n),await la(n)),o&&await ut();return}await ne.attendance.add({date:e,clock_in_at:lt(),clock_out_at:null,kind:"normal",note:null,location:n||null,created_at:lt()}),n&&(await Lt("last_location",n),await la(n)),await ut()}async function ih(e){const t=await kn(e);t&&t.id&&t.clock_in_at&&!t.clock_out_at&&(await ne.attendance.update(t.id,{clock_out_at:lt()}),await ut())}async function lh(){const e=new Date,t=Gn(e);let n="";if(e.getHours()<4){const o=await kn(Ut(t,-1));o&&o.id&&o.clock_in_at&&!o.clock_out_at&&(await ne.attendance.update(o.id,{clock_out_at:lt()}),n=o.date)}if(!n){const o=await kn(t);o&&o.id&&o.clock_in_at&&!o.clock_out_at&&(await ne.attendance.update(o.id,{clock_out_at:lt()}),n=o.date)}if(!n)throw new Error("没有进行中的打卡");return await ut(),n}async function uh(e,t,n,o,r){(r||"").trim()&&await la(r);const i=await kn(e),c={date:e,clock_in_at:t,clock_out_at:n,kind:"makeup",note:o||null,location:(r||"").trim()||null,created_at:lt()};i&&i.id?await ne.attendance.update(i.id,c):await ne.attendance.add(c),await ut()}async function ch(e,t,n){const o=(n||"").trim();if(!o)return;const r=await kn(e);r&&r.id&&(await ne.attendance.update(r.id,{[t]:e+"T"+o+":00"}),await ut())}async function Xo(e,t){return ne.attendance.where("date").between(e,t,!0,!0).toArray()}async function dh(e,t){const n=await kn(e);if(t){const o={date:e,kind:"leave",clock_in_at:null,clock_out_at:null,created_at:lt()};n&&n.id?await ne.attendance.update(n.id,o):await ne.attendance.add({...o,note:null,location:null})}else n&&n.id&&await ne.attendance.update(n.id,{kind:"normal"});await ut()}async function fh(e){const t=await ne.work_log.where("date").equals(e).first();return t||{id:await ne.work_log.add({date:e,created_at:lt()}),date:e,created_at:lt()}}async function ph(e){return ne.work_log.where("date").equals(e).first()}async function vh(e){const t=await ph(e);return!t||!t.id?[]:(await ne.log_item.where("work_log_id").equals(t.id).toArray()).sort((o,r)=>r.id-o.id)}async function mh(e,t){const n=await ne.work_log.where("date").equals(e).first();let o;n&&n.id?o=n:o=await fh(e),await ne.table("log_item").add({work_log_id:o.id,content:t.content,project_id:t.project_id,category:t.category,minutes:t.minutes,is_milestone:0,needs_followup:0,takeaway:t.takeaway,remark:t.remark,sort_order:0,created_at:lt()});const r=t.project_id?String(t.project_id):"";await St("last_project","")!==r&&await Lt("last_project",r),await St("last_category","")!==t.category&&await Lt("last_category",t.category),await ut()}async function gi(e,t){await ne.table("log_item").update(e,t),await ut()}async function hh(e){await ne.table("log_item").delete(e),await ut()}async function Qo(e,t){const n=await ne.work_log.where("date").between(e,t,!0,!0).toArray();if(!n.length)return[];const o=new Map(n.map(i=>[i.id,i.date]));return(await ne.table("log_item").where("work_log_id").anyOf(n.map(i=>i.id)).toArray()).map(i=>({...i,date:o.get(i.work_log_id)||""})).sort((i,c)=>i.date===c.date?i.id-c.id:i.date<c.date?-1:1)}async function yl(e){return ne.weekly_note.where("week_start").equals(e).first()}async function yh(e,t){const n=await yl(e);n&&n.id?await ne.weekly_note.update(n.id,t):await ne.weekly_note.add({week_start:e,highlights:t.highlights??null,challenges:t.challenges??null,plan_next:t.plan_next??null,created_at:lt()}),await ut()}async function gh(e,t){return ne.weekly_note.where("week_start").between(e,t,!0,!0).toArray()}async function bh(e){return(await ne.plan.where("date").equals(e).toArray()).sort((n,o)=>n.start_time<o.start_time?-1:1)}async function wh(){const e=await ne.plan.filter(t=>!!t.timer_started_at).toArray();return e.length?e[0]:null}async function _h(e){const t=lt();await ne.plan.add({date:e.date,start_time:e.start_time,end_time:e.end_time,title:e.title.trim(),kind:e.kind.trim()||"其他",note:e.note||null,status:"todo",actual_minutes:0,timer_started_at:null,uuid:"",created_at:t,updated_at:t}),await ut()}async function kh(e,t){await ne.plan.update(e,{...t,updated_at:lt()}),await ut()}async function Ch(e){await ne.plan.delete(e),await ut()}async function xh(e,t){const n=await ne.plan.get(e);n&&(t!=="todo"&&n.timer_started_at&&await $a(e),await ne.plan.update(e,{status:t,updated_at:lt()}),await ut())}async function $h(e){const t=await ne.plan.filter(n=>!!n.timer_started_at).toArray();for(const n of t)n.id!==e&&await $a(n.id);await ne.plan.update(e,{timer_started_at:lt(),updated_at:lt()}),await ut()}async function $a(e){const t=await ne.plan.get(e);if(!t||!t.timer_started_at)return;const n=Math.max(0,Math.round((Date.now()-new Date(t.timer_started_at).getTime())/6e4));await ne.plan.update(e,{actual_minutes:(t.actual_minutes||0)+n,timer_started_at:null,updated_at:lt()}),await ut()}const Sh=366;function Eh(e,t){const n=[];let o=e,r=0;for(;o<=t&&r<Sh;)n.push(o),o=Ut(o,1),r++;return n}async function Th(){const e=await ne.goal.toArray(),t=[];for(const n of e){const o=await ne.plan.where("goal_id").equals(n.id).toArray();t.push({goalId:n.id,done:o.filter(r=>r.status==="done").length,total:o.length})}return t}async function Ah(){return(await ne.goal.toArray()).sort((t,n)=>t.start_date<n.start_date?-1:1)}async function Ph(e){const t=lt(),n=await ne.goal.add({title:e.title.trim(),kind:e.kind.trim()||"其他",start_date:e.start_date,end_date:e.end_date,note:e.note||null,uuid:"",created_at:t,updated_at:t});await ne.goal.get(n);const o=Eh(e.start_date,e.end_date);for(const r of o)await ne.plan.add({date:r,start_time:"08:00",end_time:"09:00",title:e.title.trim(),kind:e.kind.trim()||"其他",note:e.note||null,status:"todo",actual_minutes:0,timer_started_at:null,goal_id:n,uuid:"",created_at:t,updated_at:t});await ut()}async function Oh(e,t){if(!await ne.goal.get(e))return;const o={...t,updated_at:lt()};await ne.goal.update(e,o);const r=await ne.plan.where("goal_id").equals(e).toArray();for(const i of r)i.status!=="done"&&await ne.plan.update(i.id,{...t.title!==void 0?{title:t.title.trim()}:{},...t.kind!==void 0?{kind:t.kind}:{},...t.note!==void 0?{note:t.note||null}:{},updated_at:lt()});await ut()}async function Mh(e){const t=await ne.plan.where("goal_id").equals(e).toArray();for(const n of t)await ne.plan.delete(n.id);await ne.goal.delete(e),await ut()}async function Ih(){return(await ne.memo.toArray()).sort((t,n)=>t.updated_at<n.updated_at?1:-1)}async function jh(e,t){const n=lt(),o=await ne.memo.add({title:e.trim(),content:t,created_at:n,updated_at:n});return await ut(),{id:o,title:e.trim(),content:t,created_at:n,updated_at:n}}async function Dh(e,t,n){await ne.memo.update(e,{title:t.trim(),content:n,updated_at:lt()}),await ut()}async function Lh(e){await ne.memo.delete(e),await ut()}async function Kh(e,t=8){const n=e.trim().toLowerCase();if(!n)return[];const o=await ne.work_log.toArray(),r=new Map(o.map(c=>[c.id,c.date]));return(await ne.table("log_item").toArray()).filter(c=>((c.content||"")+" "+(c.takeaway||"")+" "+(c.remark||"")).toLowerCase().includes(n)).sort((c,f)=>f.id-c.id).slice(0,t).map(c=>({...c,date:r.get(c.work_log_id)||""}))}async function Rh(e,t=4){const n=e.trim().toLowerCase();return n?(await ne.memo.toArray()).filter(r=>((r.title||"")+" "+(r.content||"")).toLowerCase().includes(n)).sort((r,i)=>r.updated_at<i.updated_at?1:-1).slice(0,t):[]}async function Fh(e,t){return ne.table("transaction").where("date").between(e,t,!0,!0).toArray()}async function Nh(e){await ne.table("transaction").add({...e,created_at:lt()}),await ut()}async function Vh(e,t){await ne.table("transaction").update(e,{...t}),await ut()}async function Bh(e){await ne.table("transaction").delete(e),await ut()}async function Uh(e,t){await ne.table("transaction").update(e,{reimbursed:1}),await ut()}async function qh(){const e=await Promise.all([ne.project.toArray(),ne.work_log.toArray(),ne.table("log_item").toArray(),ne.attendance.toArray(),ne.weekly_note.toArray(),ne.setting.toArray(),ne.memo.toArray(),ne.credential.toArray(),ne.table("transaction").toArray(),ne.plan.toArray(),ne.goal.toArray()]);return JSON.stringify({schema_version:im,exported_at:lt(),data:{project:e[0],work_log:e[1],log_item:e[2],attendance:e[3],weekly_note:e[4],setting:e[5],memo:e[6],credential:e[7],transaction:e[8],plan:e[9],goal:e[10]}},null,2)}async function Hh(e){let t=null;try{t=JSON.parse(e)}catch{throw new Error("不是有效的 JSON 文件")}if(!t||t.schema_version!==1&&t.schema_version!==2&&t.schema_version!==3&&t.schema_version!==4&&t.schema_version!==5||!t.data)throw new Error("文件格式或 schema 版本不匹配");const n=t.data,o=ne.table("log_item"),r=ne.table("transaction"),i=ne.plan,c=ne.goal;await ne.transaction("rw",[ne.project,ne.work_log,o,ne.attendance,ne.weekly_note,ne.setting,ne.memo,ne.credential,r,c,i],async()=>{await Promise.all([ne.project.clear(),ne.work_log.clear(),o.clear(),ne.attendance.clear(),ne.weekly_note.clear(),ne.setting.clear(),ne.memo.clear(),ne.credential.clear(),r.clear(),c.clear(),i.clear()]),n.project&&n.project.length&&await ne.project.bulkAdd(n.project),n.work_log&&n.work_log.length&&await ne.work_log.bulkAdd(n.work_log),n.log_item&&n.log_item.length&&await o.bulkAdd(n.log_item),n.attendance&&n.attendance.length&&await ne.attendance.bulkAdd(n.attendance),n.weekly_note&&n.weekly_note.length&&await ne.weekly_note.bulkAdd(n.weekly_note),n.setting&&n.setting.length&&await ne.setting.bulkAdd(n.setting),n.memo&&n.memo.length&&await ne.memo.bulkAdd(n.memo),n.credential&&n.credential.length&&await ne.credential.bulkAdd(n.credential),n.transaction&&n.transaction.length&&await r.bulkAdd(n.transaction),n.goal&&n.goal.length&&await c.bulkAdd(n.goal),n.plan&&n.plan.length&&await i.bulkAdd(n.plan)}),await ut()}const zh=["制度学习","产品学习","打杂","项目实操","售后服务"],Wh=["餐饮","交通","住房","通讯","学习","娱乐","其他"],Gh=["工资","报销","其他"],Ed="log_categories",Td="ledger_expense_categories",Ad="ledger_income_categories";function Pd(e,t){if(!e)return t.slice();try{const n=JSON.parse(e);if(Array.isArray(n)){const o=n.filter(r=>typeof r=="string"&&r.trim()).map(r=>r.trim());if(o.length)return Array.from(new Set(o))}}catch{}return t.slice()}async function Zo(){return Pd(await St(Ed,""),zh)}async function Yh(e){await Lt(Ed,JSON.stringify(e))}async function Wo(e){return Pd(await St(e==="expense"?Td:Ad,""),e==="expense"?Wh:Gh)}async function zi(e,t){await Lt(e==="expense"?Td:Ad,JSON.stringify(t))}const Jh={class:"dialog",role:"dialog","aria-label":"编辑工作记录"},Xh={class:"dialog-head"},Qh={class:"dialog-title"},Zh={key:0,class:"muted dialog-sub"},ey={class:"dialog-body"},ty={class:"form-grid"},ny={class:"field span2"},sy={key:0,class:"form-error"},oy={class:"field"},ry=["value"],ay={class:"field"},iy=["value"],ly={class:"field"},uy={class:"min-chips"},cy=["onClick"],dy={class:"field"},fy={class:"field span2"},py={class:"field"},vy={class:"field"},my={class:"dialog-btns"},hy=Dt({__name:"EditLogDialog",props:{open:{type:Boolean},item:{},projects:{},date:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=P([]);Zo().then(ce=>{n.value=ce});const o=e,r=t,i=P(""),c=P(null),f=P("dev"),v=P(null),b=P(""),h=P(""),_=P(0),A=P(0),x=P(""),M=P(null),G=ot(()=>{var E;const ce=o.projects.filter(U=>U.archived!==1),Y=(E=o.item)==null?void 0:E.project_id;if(Y&&!ce.some(U=>U.id===Y)){const U=o.projects.find(B=>B.id===Y),Q=ce.slice();return U&&Q.unshift({...U,name:U.name+"(已归档)"}),Q}return ce});function oe(ce){o.open&&ce.key==="Escape"&&r("cancel")}vt(()=>o.open,async ce=>{var Y;if(ce){const E=o.item;i.value=(E==null?void 0:E.content)??"",c.value=(E==null?void 0:E.project_id)??null,f.value=(E==null?void 0:E.category)??"dev",v.value=(E==null?void 0:E.minutes)??null,b.value=(E==null?void 0:E.takeaway)??"",h.value=(E==null?void 0:E.remark)??"",_.value=(E==null?void 0:E.is_milestone)??0,A.value=(E==null?void 0:E.needs_followup)??0,x.value="",window.addEventListener("keydown",oe),await Rs(),(Y=M.value)==null||Y.focus()}else window.removeEventListener("keydown",oe)}),Cn(()=>window.removeEventListener("keydown",oe)),vt(i,()=>{x.value&&(x.value="")});function le(){const ce=i.value.trim();if(!ce){x.value="请填写工作内容";return}if(!o.item||!o.item.id){r("save",{id:0,content:ce,project_id:c.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:b.value.trim()||null,remark:h.value.trim()||null,is_milestone:_.value,needs_followup:A.value});return}r("save",{id:o.item.id,content:ce,project_id:c.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:b.value.trim()||null,remark:h.value.trim()||null,is_milestone:_.value?1:0,needs_followup:A.value?1:0})}return(ce,Y)=>($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[e.open?($(),T("div",{key:0,class:"mask",onClick:Y[10]||(Y[10]=Nt(E=>r("cancel"),["self"]))},[l("div",Jh,[l("div",Xh,[l("div",null,[l("div",Qh,q(e.item?"编辑工作记录":"添加工作记录"),1),e.date?($(),T("div",Zh,q(e.date),1)):ve("",!0)]),l("button",{class:"icon-btn",title:"关闭",onClick:Y[0]||(Y[0]=E=>r("cancel"))},[ke(ze,{name:"close",size:16})])]),l("div",ey,[l("div",ty,[l("div",ny,[Y[11]||(Y[11]=l("label",null,"工作内容(必填)",-1)),Pe(l("input",{ref_key:"contentInput",ref:M,class:Je(["input",{invalid:x.value}]),"onUpdate:modelValue":Y[1]||(Y[1]=E=>i.value=E),onKeydown:Ot(le,["enter"])},null,34),[[Re,i.value]]),x.value?($(),T("div",sy,q(x.value),1)):ve("",!0)]),l("div",oy,[Y[13]||(Y[13]=l("label",null,"所属项目",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":Y[2]||(Y[2]=E=>c.value=E)},[Y[12]||(Y[12]=l("option",{value:null},"无项目",-1)),($(!0),T(je,null,nt(G.value,E=>($(),T("option",{key:E.id,value:E.id},q(E.name),9,ry))),128))],512),[[Wn,c.value]])]),l("div",ay,[Y[14]||(Y[14]=l("label",null,"工作分类",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":Y[3]||(Y[3]=E=>f.value=E)},[($(!0),T(je,null,nt(n.value,E=>($(),T("option",{key:E,value:E},q(E),9,iy))),128))],512),[[Wn,f.value]])]),l("div",ly,[Y[15]||(Y[15]=l("label",null,"耗时(分钟)",-1)),Pe(l("input",{class:"input",type:"number",min:"0","onUpdate:modelValue":Y[4]||(Y[4]=E=>v.value=E),placeholder:"选填"},null,512),[[Re,v.value,void 0,{number:!0}]]),l("div",uy,[($(),T(je,null,nt([15,30,60,90,120],E=>l("button",{key:E,type:"button",class:Je(["min-chip",{on:v.value===E}]),onClick:U=>v.value=v.value===E?null:E},q(E)+"分",11,cy)),64))])]),l("div",dy,[Y[16]||(Y[16]=l("label",null,"主要收获",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":Y[5]||(Y[5]=E=>b.value=E),placeholder:"一句话:学到了什么"},null,512),[[Re,b.value]])]),l("div",fy,[Y[17]||(Y[17]=l("label",null,"备注",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":Y[6]||(Y[6]=E=>h.value=E),placeholder:"背景、链接、未决事项(选填)"},null,512),[[Re,h.value]])]),l("div",py,[Y[18]||(Y[18]=l("label",null,"成果标记",-1)),l("button",{class:Je(["toggle-btn",{on:_.value===1}]),onClick:Y[7]||(Y[7]=E=>_.value=_.value===1?0:1)},q(_.value===1?"已标记为成果":"未标记"),3)]),l("div",vy,[Y[19]||(Y[19]=l("label",null,"待跟进",-1)),l("button",{class:Je(["toggle-btn",{onwarn:A.value===1}]),onClick:Y[8]||(Y[8]=E=>A.value=A.value===1?0:1)},q(A.value===1?"需要跟进":"无需跟进"),3)])])]),l("div",my,[l("button",{class:"btn btn-sm",onClick:Y[9]||(Y[9]=E=>r("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:le},q(e.item?"保存修改":"添加"),1)])])])):ve("",!0)]),_:1})]))}}),yy=Kt(hy,[["__scopeId","data-v-91c30038"]]);function Or(e){const t=e.split(":");return Number(t[0])*60+Number(t[1])}function co(e,t,n,o){if(e&&e.kind==="leave")return{status:"leave",label:"请假",makeup:!1,workedMinutes:null};if(um(t))return{status:"rest",label:"休息日",makeup:!1,workedMinutes:null};if(!e||!e.clock_in_at)return o?{status:"none",label:"未打卡",makeup:!1,workedMinutes:null}:{status:"absent",label:"缺勤",makeup:!!(e&&e.kind==="makeup"),workedMinutes:null};const r=e.kind==="makeup";if(!e.clock_out_at)return{status:"incomplete",label:o?"进行中":"未完成",makeup:r,workedMinutes:null};const i=Or(_n(e.clock_in_at)),c=Or(_n(e.clock_out_at)),f=Or(n.work_start),v=Or(n.work_end);let b="normal";!r&&i>f+n.grace_minutes?b="late":!r&&c<v&&(b="early");const h=cm(e.clock_in_at,e.clock_out_at),_=Math.max(0,h-n.lunch_minutes);return{status:b,label:r?"补卡":b==="late"?"迟到":b==="early"?"早退":"正常",makeup:r,workedMinutes:_}}const Nr=P([]);let gy=0;function Ve(e){const t=++gy;Nr.value.push({id:t,text:e}),setTimeout(()=>{Nr.value=Nr.value.filter(n=>n.id!==t)},2e3)}function by(){return Nr}const wy={class:"day-panel"},_y={class:"dp-head"},ky={class:"dp-date"},Cy={class:"card sec"},xy={class:"att-grid"},$y={class:"att-cell"},Sy={key:0,class:"edit-row"},Ey={key:1,class:"att-val"},Ty={class:"att-cell"},Ay={key:0,class:"edit-row"},Py={key:1,class:"att-val"},Oy={class:"att-cell"},My=["list"],Iy=["id"],jy=["value"],Dy={class:"att-cell"},Ly={class:"att-val status-val"},Ky={key:0,class:"tag"},Ry={key:1,class:"muted"},Fy={key:0,class:"att-note muted"},Ny={class:"att-actions"},Vy=["disabled"],By=["disabled"],Uy=["disabled"],qy=["disabled"],Hy={key:0,class:"card sec makeup"},zy={class:"form-grid"},Wy={class:"field"},Gy={class:"field"},Yy={class:"field span2"},Jy=["list"],Xy={class:"field span2"},Qy={key:0,class:"form-error"},Zy={class:"form-footer"},eg={class:"list-sec"},tg={class:"sec-head"},ng={class:"sec-title"},sg={key:0,class:"empty muted"},og={class:"item-main"},rg={class:"tag"},ag=["onClick"],ig={key:0,class:"muted item-meta"},lg={key:1,class:"muted num item-meta"},ug=["onClick"],cg=["onClick"],dg=["onClick"],fg=["onClick"],pg={key:0,class:"item-sub"},vg={key:0,class:"muted2"},mg={key:1,class:"muted"},hg={key:1,class:"dp-foot muted num"},yg=Dt({__name:"DayPanel",props:{date:{}},setup(e){const t=P([]);Zo().then(g=>{t.value=g});const n=e,o=P(!0),r=P(null),i=P(void 0),c=P([]),f=P([]),v=P(""),b=P([]),h=ot(()=>"loc-list-"+n.date),_=ot(()=>n.date===it());async function A(){o.value=!0,r.value=await vs(),i.value=await kn(n.date),c.value=await vh(n.date),f.value=await ao(!0),b.value=await hl(),v.value=i.value&&i.value.location||await nh(),o.value=!1}ln(A),vt(()=>n.date,A),vt(uo,()=>{A()});function x(g){if(!g)return"";const m=f.value.find(C=>C.id===g);return m?m.name:"已删除项目"}const M=ot(()=>r.value?co(i.value,n.date,r.value,_.value):null),G=ot(()=>c.value.reduce((g,m)=>g+(m.minutes||0),0)),oe=P(!1);async function le(){oe.value||(oe.value=!0,await Sd(n.date,v.value),await A(),is(),Ve("上班打卡成功"),oe.value=!1)}async function ce(){oe.value||(oe.value=!0,await ih(n.date),await A(),is(),Ve("下班打卡成功"),oe.value=!1)}async function Y(){await sh(n.date,v.value),is(),Ve("地点已更新")}const E=P(!1),U=ot(()=>{var g;return((g=i.value)==null?void 0:g.kind)==="leave"});function Q(){if(i.value&&i.value.clock_in_at){E.value=!0;return}B(!0)}async function B(g){E.value=!1,await dh(n.date,g),await A(),is(),Ve(g?"已标记为休假":"已取消休假")}const te=P(null),I=P(""),S=P(null);vt(te,async g=>{var m;g&&(await Rs(),(m=S.value)==null||m.focus())});function O(g){var C,j;const m=g==="in"?(C=i.value)==null?void 0:C.clock_in_at:(j=i.value)==null?void 0:j.clock_out_at;te.value=g,I.value=m?_n(m):g==="in"?"09:00":"18:00"}function Z(){te.value=null}async function Oe(){const g=te.value;g&&(te.value=null,I.value&&(await ch(n.date,g==="in"?"clock_in_at":"clock_out_at",I.value),await A(),is(),Ve("打卡时间已修改")))}const Ee=P(!1),be=P("09:00"),Ae=P("18:00"),He=P(""),qe=P(""),Xe=P("");function pe(){qe.value=v.value,Xe.value="",Ee.value=!Ee.value}async function me(){if(!be.value||!Ae.value){Xe.value="请填写上班与下班时间";return}await uh(n.date,n.date+"T"+be.value+":00",n.date+"T"+Ae.value+":00",He.value.trim(),qe.value),Ee.value=!1,He.value="",Xe.value="",await A(),is(),Ve("补卡已保存")}const re=P(null),ae=P(!1);function Me(g){re.value=g,ae.value=!0}function ft(){re.value=null,ae.value=!0}async function Ct(g){g.id?(await gi(g.id,{content:g.content,project_id:g.project_id,category:g.category,minutes:g.minutes,takeaway:g.takeaway,remark:g.remark,is_milestone:g.is_milestone,needs_followup:g.needs_followup}),Ve("记录已更新")):(await mh(n.date,{content:g.content,project_id:g.project_id,category:g.category,minutes:g.minutes,takeaway:g.takeaway,remark:g.remark}),Ve("记录已添加")),re.value=null,ae.value=!1,await A()}async function xt(g){await gi(g.id,{is_milestone:g.is_milestone?0:1}),await A()}async function qt(g){await gi(g.id,{needs_followup:g.needs_followup?0:1}),await A()}const bt=P(null);async function Le(){bt.value&&bt.value.id&&await hh(bt.value.id),bt.value=null,await A(),Ve("记录已删除")}return(g,m)=>($(),T("div",wy,[l("div",_y,[l("div",ky,q(sn(ud)(e.date)),1)]),l("div",Cy,[m[19]||(m[19]=l("div",{class:"sec-title"},"出勤信息",-1)),l("div",xy,[l("div",$y,[m[15]||(m[15]=l("label",null,"上班时间",-1)),te.value==="in"?($(),T("div",Sy,[Pe(l("input",{ref_key:"timeInput",ref:S,type:"time",class:"input time-input","onUpdate:modelValue":m[0]||(m[0]=C=>I.value=C),onKeydown:[Ot(Oe,["enter"]),Ot(Z,["esc"])]},null,544),[[Re,I.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Oe},"确认"),l("button",{class:"btn btn-sm",onClick:Z},"取消")])):($(),T("div",Ey,[l("span",{class:Je(["num",{"val-empty":!(i.value&&i.value.clock_in_at)}])},q(i.value&&i.value.clock_in_at?sn(_n)(i.value.clock_in_at):"未打卡"),3),i.value&&i.value.id?($(),T("button",{key:0,class:"icon-btn",title:"修改上班时间",onClick:m[1]||(m[1]=C=>O("in"))},[ke(ze,{name:"edit",size:13})])):ve("",!0)]))]),l("div",Ty,[m[16]||(m[16]=l("label",null,"下班时间",-1)),te.value==="out"?($(),T("div",Ay,[Pe(l("input",{ref_key:"timeInput",ref:S,type:"time",class:"input time-input","onUpdate:modelValue":m[2]||(m[2]=C=>I.value=C),onKeydown:[Ot(Oe,["enter"]),Ot(Z,["esc"])]},null,544),[[Re,I.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Oe},"确认"),l("button",{class:"btn btn-sm",onClick:Z},"取消")])):($(),T("div",Py,[l("span",{class:Je(["num",{"val-empty":!(i.value&&i.value.clock_out_at)}])},q(i.value&&i.value.clock_out_at?sn(_n)(i.value.clock_out_at):"未打卡"),3),i.value&&i.value.id?($(),T("button",{key:0,class:"icon-btn",title:"修改下班时间",onClick:m[3]||(m[3]=C=>O("out"))},[ke(ze,{name:"edit",size:13})])):ve("",!0)]))]),l("div",Oy,[m[17]||(m[17]=l("label",null,"上班地点",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":m[4]||(m[4]=C=>v.value=C),list:h.value,placeholder:"可直接输入",title:"上班地点,可自由输入",onChange:Y},null,40,My),[[Re,v.value]]),l("datalist",{id:h.value},[($(!0),T(je,null,nt(b.value,C=>($(),T("option",{key:C,value:C},null,8,jy))),128))],8,Iy)]),l("div",Dy,[m[18]||(m[18]=l("label",null,"考勤状态",-1)),l("div",Ly,[M.value?($(),T(je,{key:0},[l("span",{class:Je(["dot",M.value.status])},null,2),l("span",null,q(M.value.label),1),i.value&&i.value.kind==="makeup"?($(),T("span",Ky,"补卡")):ve("",!0)],64)):($(),T("span",Ry,"--"))])])]),i.value&&i.value.note?($(),T("div",Fy,"补卡说明:"+q(i.value.note),1)):ve("",!0),l("div",Ny,[_.value&&(!i.value||!i.value.clock_in_at)?($(),T("button",{key:0,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:le},"上班打卡",8,Vy)):_.value&&i.value&&i.value.clock_in_at&&!i.value.clock_out_at?($(),T("button",{key:1,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ce},"下班打卡",8,By)):ve("",!0),!_.value&&(!i.value||!i.value.clock_in_at)?($(),T("button",{key:2,class:"btn btn-sm",onClick:pe},"补卡")):ve("",!0),U.value?($(),T("button",{key:4,class:"btn btn-sm",disabled:oe.value,onClick:m[5]||(m[5]=C=>B(!1))},"取消休假",8,qy)):($(),T("button",{key:3,class:"btn btn-sm",disabled:oe.value,onClick:Q},"标记休假",8,Uy))])]),Ee.value?($(),T("div",Hy,[m[24]||(m[24]=l("div",{class:"sec-title"},"补卡登记",-1)),l("div",zy,[l("div",Wy,[m[20]||(m[20]=l("label",null,"上班时间",-1)),Pe(l("input",{type:"time",class:"input","onUpdate:modelValue":m[6]||(m[6]=C=>be.value=C)},null,512),[[Re,be.value]])]),l("div",Gy,[m[21]||(m[21]=l("label",null,"下班时间",-1)),Pe(l("input",{type:"time",class:"input","onUpdate:modelValue":m[7]||(m[7]=C=>Ae.value=C)},null,512),[[Re,Ae.value]])]),l("div",Yy,[m[22]||(m[22]=l("label",null,"上班地点",-1)),Pe(l("input",{class:"input",list:h.value,"onUpdate:modelValue":m[8]||(m[8]=C=>qe.value=C),placeholder:"可直接输入"},null,8,Jy),[[Re,qe.value]])]),l("div",Xy,[m[23]||(m[23]=l("label",null,"补卡原因",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":m[9]||(m[9]=C=>He.value=C),placeholder:"如:外出拜访客户忘记打卡"},null,512),[[Re,He.value]])])]),Xe.value?($(),T("div",Qy,q(Xe.value),1)):ve("",!0),l("div",Zy,[l("button",{class:"btn btn-sm",onClick:m[10]||(m[10]=C=>Ee.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:me},"保存补卡")])])):ve("",!0),l("div",eg,[l("div",tg,[l("span",ng,"工作记录("+q(c.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:ft},[ke(ze,{name:"plus",size:14}),m[25]||(m[25]=gt(" 添加记录",-1))])]),!c.value.length&&!o.value?($(),T("div",sg,"暂无记录")):ve("",!0),($(!0),T(je,null,nt(c.value,C=>($(),T("div",{key:C.id,class:"item"},[l("div",og,[l("span",rg,q(sn(qo)(C.category)),1),l("span",{class:"item-content",title:"点击编辑",onClick:j=>Me(C)},q(C.content),9,ag),C.project_id?($(),T("span",ig,q(x(C.project_id)),1)):ve("",!0),C.minutes?($(),T("span",lg,q(C.minutes)+" 分钟",1)):ve("",!0),m[26]||(m[26]=l("span",{class:"flex1"},null,-1)),l("button",{class:"icon-btn",title:"编辑完整信息",onClick:j=>Me(C)},[ke(ze,{name:"edit",size:14})],8,ug),l("button",{class:Je(["icon-btn",{active:C.is_milestone===1}]),title:"成果标记",onClick:j=>xt(C)},[ke(ze,{name:"star",size:14})],10,cg),l("button",{class:Je(["icon-btn",{"active-warn":C.needs_followup===1}]),title:"待跟进",onClick:j=>qt(C)},[ke(ze,{name:"flag",size:14})],10,dg),l("button",{class:"icon-btn",title:"删除",onClick:j=>bt.value=C},[ke(ze,{name:"close",size:14})],8,fg)]),C.takeaway||C.remark?($(),T("div",pg,[C.takeaway?($(),T("div",vg,"收获:"+q(C.takeaway),1)):ve("",!0),C.remark?($(),T("div",mg,"备注:"+q(C.remark),1)):ve("",!0)])):ve("",!0)]))),128)),c.value.length?($(),T("div",hg,[gt(" 共 "+q(c.value.length)+" 条事项 ",1),G.value?($(),T(je,{key:0},[gt(" · "+q((G.value/60).toFixed(1))+" 小时",1)],64)):ve("",!0)])):ve("",!0)]),ke(wn,{open:!!bt.value,title:"删除确认",message:bt.value?"将删除工作记录「"+bt.value.content+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:m[11]||(m[11]=C=>bt.value=null),onConfirm:Le},null,8,["open","message"]),ke(wn,{open:E.value,title:"标记休假确认",message:"该日已有打卡记录,标记休假将清空上下班时间。是否继续?","confirm-text":"标记休假",danger:"",onCancel:m[12]||(m[12]=C=>E.value=!1),onConfirm:m[13]||(m[13]=C=>B(!0))},null,8,["open"]),ke(yy,{open:ae.value,item:re.value,projects:f.value,date:e.date,onCancel:m[14]||(m[14]=C=>ae.value=!1),onSave:Ct},null,8,["open","item","projects","date"])]))}}),Od=Kt(yg,[["__scopeId","data-v-81276f4c"]]),gg={class:"cal-page"},bg={class:"cal-toolbar"},wg={class:"cal-title num"},_g=["disabled"],kg={class:"card cal-card"},Cg={class:"cal-head"},xg={class:"cal-grid"},$g=["title","onClick"],Sg={class:"cal-marks"},Eg={key:0,class:"drawer"},Tg={class:"drawer-head"},Ag={class:"drawer-body"},Pg=Dt({__name:"CalendarView",setup(e){const t=P(it()),n=ot(()=>Number(t.value.slice(0,4))),o=ot(()=>Number(t.value.slice(5,7))-1),r=ot(()=>n.value+" 年 "+(o.value+1)+" 月"),i=["一","二","三","四","五","六","日"],c=ot(()=>{const E=(new Date(n.value,o.value,1).getDay()+6)%7,U=new Date(n.value,o.value+1,0).getDate(),Q=[];for(let B=0;B<E;B++)Q.push({date:"",inMonth:!1,weekend:!1});for(let B=1;B<=U;B++){const te=new Date(n.value,o.value,B),I=te.getDay();Q.push({date:Gn(te),inMonth:!0,weekend:I===0||I===6})}return Q}),f=P(new Map),v=it();async function b(){var S;const Y=Gn(new Date(n.value,o.value,1)),E=Gn(new Date(n.value,o.value+1,0)),U=await Promise.all([vs(),Xo(Y,E),Qo(Y,E)]),Q=U[0],B=new Map(U[1].map(O=>[O.date,O])),te=U[2],I=new Map;for(const O of c.value){if(!O.inMonth)continue;const Z=co(B.get(O.date),O.date,Q,O.date===v),Oe=te.filter(Ee=>Ee.date===O.date);I.set(O.date,{status:Z.status,label:Z.label,location:((S=B.get(O.date))==null?void 0:S.location)||"",hasLog:Oe.length>0,hasMilestone:Oe.some(Ee=>Ee.is_milestone===1)})}f.value=I}vt([n,o],b,{immediate:!0}),vt(uo,()=>{b()});function h(Y){var E;return((E=f.value.get(Y))==null?void 0:E.status)??""}function _(Y){const E=f.value.get(Y);return E?Y+" · "+E.label+(E.location?" · "+E.location:""):Y}function A(Y){var E;return!!((E=f.value.get(Y))!=null&&E.hasLog)}function x(Y){var E;return!!((E=f.value.get(Y))!=null&&E.hasMilestone)}function M(){t.value=ta(t.value,-1)}function G(){t.value=ta(t.value,1)}function oe(){t.value=it()}const le=P(null);function ce(Y,E){E&&(le.value=Y)}return vt(Fi,Y=>{Y&&(t.value=Y,le.value=Y,Fi.value=null)},{immediate:!0}),(Y,E)=>($(),T("div",gg,[l("div",bg,[l("button",{class:"icon-btn",title:"上一月",onClick:M},[ke(ze,{name:"chevron-left",size:16})]),l("span",wg,q(r.value),1),l("button",{class:"icon-btn",title:"下一月",onClick:G},[ke(ze,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",disabled:t.value===sn(v),onClick:oe},"回到本月",8,_g)]),l("div",kg,[l("div",Cg,[($(),T(je,null,nt(i,U=>l("span",{key:U,class:"cal-week"},q(U),1)),64))]),l("div",xg,[($(!0),T(je,null,nt(c.value,(U,Q)=>($(),T("button",{key:Q,class:Je(["cal-cell",{blank:!U.inMonth,weekend:U.weekend,selected:le.value===U.date,"is-today":U.date===sn(v)}]),title:U.inMonth?_(U.date):void 0,onClick:B=>ce(U.date,U.inMonth)},[U.inMonth?($(),T(je,{key:0},[l("span",{class:Je(["daynum num",{today:U.date===sn(v)}])},q(Number(U.date.slice(8,10))),3),l("span",Sg,[h(U.date)?($(),T("span",{key:0,class:Je(["dot",h(U.date)])},null,2)):ve("",!0),A(U.date)?($(),kt(ze,{key:1,name:"check-circle",size:12,class:"mark-log"})):ve("",!0),x(U.date)?($(),kt(ze,{key:2,name:"star",size:12,class:"mark-star"})):ve("",!0)])],64)):ve("",!0)],10,$g))),128))])]),ke(hs,{name:"drawer"},{default:Rn(()=>[le.value?($(),T("aside",Eg,[l("div",Tg,[E[1]||(E[1]=l("span",{class:"drawer-title"},"当日详情",-1)),l("button",{class:"icon-btn",onClick:E[0]||(E[0]=U=>le.value=null)},[ke(ze,{name:"close",size:16})])]),l("div",Ag,[ke(Od,{date:le.value},null,8,["date"])])])):ve("",!0)]),_:1})]))}}),Og=Kt(Pg,[["__scopeId","data-v-abd71a5b"]]),Mg="modulepreload",Ig=function(e,t){return new URL(e,t).href},Nu={},Md=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){const c=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),v=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));r=Promise.allSettled(n.map(b=>{if(b=Ig(b,o),b in Nu)return;Nu[b]=!0;const h=b.endsWith(".css"),_=h?'[rel="stylesheet"]':"";if(!!o)for(let M=c.length-1;M>=0;M--){const G=c[M];if(G.href===b&&(!h||G.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${_}`))return;const x=document.createElement("link");if(x.rel=h?"stylesheet":Mg,h||(x.as="script"),x.crossOrigin="",x.href=b,v&&x.setAttribute("nonce",v),document.head.appendChild(x),h)return new Promise((M,G)=>{x.addEventListener("load",M),x.addEventListener("error",()=>G(new Error(`Unable to preload CSS for ${b}`)))})}))}function i(c){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=c,window.dispatchEvent(f),!f.defaultPrevented)throw c}return r.then(c=>{for(const f of c||[])f.status==="rejected"&&i(f.reason);return t().catch(i)})};/*! Capacitor: https://capacitorjs.com/ - MIT License */const jg=e=>{const t=new Map;t.set("web",{name:"web"});const n=e.CapacitorPlatforms||{currentPlatform:{name:"web"},platforms:t},o=(i,c)=>{n.platforms.set(i,c)},r=i=>{n.platforms.has(i)&&(n.currentPlatform=n.platforms.get(i))};return n.addPlatform=o,n.setPlatform=r,n},Dg=e=>e.CapacitorPlatforms=jg(e),Id=Dg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});Id.addPlatform;Id.setPlatform;var io;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(io||(io={}));class bi extends Error{constructor(t,n,o){super(t),this.message=t,this.code=n,this.data=o}}const Lg=e=>{var t,n;return e!=null&&e.androidBridge?"android":!((n=(t=e==null?void 0:e.webkit)===null||t===void 0?void 0:t.messageHandlers)===null||n===void 0)&&n.bridge?"ios":"web"},Kg=e=>{var t,n,o,r,i;const c=e.CapacitorCustomPlatform||null,f=e.Capacitor||{},v=f.Plugins=f.Plugins||{},b=e.CapacitorPlatforms,h=()=>c!==null?c.name:Lg(e),_=((t=b==null?void 0:b.currentPlatform)===null||t===void 0?void 0:t.getPlatform)||h,A=()=>_()!=="web",x=((n=b==null?void 0:b.currentPlatform)===null||n===void 0?void 0:n.isNativePlatform)||A,M=B=>{const te=E.get(B);return!!(te!=null&&te.platforms.has(_())||le(B))},G=((o=b==null?void 0:b.currentPlatform)===null||o===void 0?void 0:o.isPluginAvailable)||M,oe=B=>{var te;return(te=f.PluginHeaders)===null||te===void 0?void 0:te.find(I=>I.name===B)},le=((r=b==null?void 0:b.currentPlatform)===null||r===void 0?void 0:r.getPluginHeader)||oe,ce=B=>e.console.error(B),Y=(B,te,I)=>Promise.reject(`${I} does not have an implementation of "${te}".`),E=new Map,U=(B,te={})=>{const I=E.get(B);if(I)return console.warn(`Capacitor plugin "${B}" already registered. Cannot register plugins twice.`),I.proxy;const S=_(),O=le(B);let Z;const Oe=async()=>(!Z&&S in te?Z=typeof te[S]=="function"?Z=await te[S]():Z=te[S]:c!==null&&!Z&&"web"in te&&(Z=typeof te.web=="function"?Z=await te.web():Z=te.web),Z),Ee=(pe,me)=>{var re,ae;if(O){const Me=O==null?void 0:O.methods.find(ft=>me===ft.name);if(Me)return Me.rtype==="promise"?ft=>f.nativePromise(B,me.toString(),ft):(ft,Ct)=>f.nativeCallback(B,me.toString(),ft,Ct);if(pe)return(re=pe[me])===null||re===void 0?void 0:re.bind(pe)}else{if(pe)return(ae=pe[me])===null||ae===void 0?void 0:ae.bind(pe);throw new bi(`"${B}" plugin is not implemented on ${S}`,io.Unimplemented)}},be=pe=>{let me;const re=(...ae)=>{const Me=Oe().then(ft=>{const Ct=Ee(ft,pe);if(Ct){const xt=Ct(...ae);return me=xt==null?void 0:xt.remove,xt}else throw new bi(`"${B}.${pe}()" is not implemented on ${S}`,io.Unimplemented)});return pe==="addListener"&&(Me.remove=async()=>me()),Me};return re.toString=()=>`${pe.toString()}() { [capacitor code] }`,Object.defineProperty(re,"name",{value:pe,writable:!1,configurable:!1}),re},Ae=be("addListener"),He=be("removeListener"),qe=(pe,me)=>{const re=Ae({eventName:pe},me),ae=async()=>{const ft=await re;He({eventName:pe,callbackId:ft},me)},Me=new Promise(ft=>re.then(()=>ft({remove:ae})));return Me.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await ae()},Me},Xe=new Proxy({},{get(pe,me){switch(me){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return O?qe:Ae;case"removeListener":return He;default:return be(me)}}});return v[B]=Xe,E.set(B,{name:B,proxy:Xe,platforms:new Set([...Object.keys(te),...O?[S]:[]])}),Xe},Q=((i=b==null?void 0:b.currentPlatform)===null||i===void 0?void 0:i.registerPlugin)||U;return f.convertFileSrc||(f.convertFileSrc=B=>B),f.getPlatform=_,f.handleError=ce,f.isNativePlatform=x,f.isPluginAvailable=G,f.pluginMethodNoop=Y,f.registerPlugin=Q,f.Exception=bi,f.DEBUG=!!f.DEBUG,f.isLoggingEnabled=!!f.isLoggingEnabled,f.platform=f.getPlatform(),f.isNative=f.isNativePlatform(),f},Rg=e=>e.Capacitor=Kg(e),lo=Rg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),jd=lo.registerPlugin;lo.Plugins;class Dd{constructor(t){this.listeners={},this.retainedEventArguments={},this.windowListeners={},t&&(console.warn(`Capacitor WebPlugin "${t.name}" config object was deprecated in v3 and will be removed in v4.`),this.config=t)}addListener(t,n){let o=!1;this.listeners[t]||(this.listeners[t]=[],o=!0),this.listeners[t].push(n);const i=this.windowListeners[t];i&&!i.registered&&this.addWindowListener(i),o&&this.sendRetainedArgumentsForEvent(t);const c=async()=>this.removeListener(t,n);return Promise.resolve({remove:c})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,n,o){const r=this.listeners[t];if(!r){if(o){let i=this.retainedEventArguments[t];i||(i=[]),i.push(n),this.retainedEventArguments[t]=i}return}r.forEach(i=>i(n))}hasListeners(t){return!!this.listeners[t].length}registerWindowListener(t,n){this.windowListeners[n]={registered:!1,windowEventName:t,pluginEventName:n,handler:o=>{this.notifyListeners(n,o)}}}unimplemented(t="not implemented"){return new lo.Exception(t,io.Unimplemented)}unavailable(t="not available"){return new lo.Exception(t,io.Unavailable)}async removeListener(t,n){const o=this.listeners[t];if(!o)return;const r=o.indexOf(n);this.listeners[t].splice(r,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const n=this.retainedEventArguments[t];n&&(delete this.retainedEventArguments[t],n.forEach(o=>{this.notifyListeners(t,o)}))}}const Vu=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),Bu=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Fg extends Dd{async getCookies(){const t=document.cookie,n={};return t.split(";").forEach(o=>{if(o.length<=0)return;let[r,i]=o.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");r=Bu(r).trim(),i=Bu(i).trim(),n[r]=i}),n}async setCookie(t){try{const n=Vu(t.key),o=Vu(t.value),r=`; expires=${(t.expires||"").replace("expires=","")}`,i=(t.path||"/").replace("path=",""),c=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${o||""}${r}; path=${i}; ${c};`}catch(n){return Promise.reject(n)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(n){return Promise.reject(n)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const n of t)document.cookie=n.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}jd("CapacitorCookies",{web:()=>new Fg});const Ng=async e=>new Promise((t,n)=>{const o=new FileReader;o.onload=()=>{const r=o.result;t(r.indexOf(",")>=0?r.split(",")[1]:r)},o.onerror=r=>n(r),o.readAsDataURL(e)}),Vg=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(r=>r.toLocaleLowerCase()).reduce((r,i,c)=>(r[i]=e[t[c]],r),{})},Bg=(e,t=!0)=>e?Object.entries(e).reduce((o,r)=>{const[i,c]=r;let f,v;return Array.isArray(c)?(v="",c.forEach(b=>{f=t?encodeURIComponent(b):b,v+=`${i}=${f}&`}),v.slice(0,-1)):(f=t?encodeURIComponent(c):c,v=`${i}=${f}`),`${o}&${v}`},"").substr(1):null,Ug=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),r=Vg(e.headers)["content-type"]||"";if(typeof e.data=="string")n.body=e.data;else if(r.includes("application/x-www-form-urlencoded")){const i=new URLSearchParams;for(const[c,f]of Object.entries(e.data||{}))i.set(c,f);n.body=i.toString()}else if(r.includes("multipart/form-data")||e.data instanceof FormData){const i=new FormData;if(e.data instanceof FormData)e.data.forEach((f,v)=>{i.append(v,f)});else for(const f of Object.keys(e.data))i.append(f,e.data[f]);n.body=i;const c=new Headers(n.headers);c.delete("content-type"),n.headers=c}else(r.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class qg extends Dd{async request(t){const n=Ug(t,t.webFetchExtra),o=Bg(t.params,t.shouldEncodeUrlParams),r=o?`${t.url}?${o}`:t.url,i=await fetch(r,n),c=i.headers.get("content-type")||"";let{responseType:f="text"}=i.ok?t:{};c.includes("application/json")&&(f="json");let v,b;switch(f){case"arraybuffer":case"blob":b=await i.blob(),v=await Ng(b);break;case"json":v=await i.json();break;case"document":case"text":default:v=await i.text()}const h={};return i.headers.forEach((_,A)=>{h[A]=_}),{data:v,headers:h,status:i.status,url:i.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}jd("CapacitorHttp",{web:()=>new qg});async function Sa(e,t){const n=window;if(n.electronAPI&&n.electronAPI.saveFile){const c=await n.electronAPI.saveFile(e,t);return c&&c.saved?c.path:""}if(lo.isNativePlatform()){const{Filesystem:c,Directory:f,Encoding:v}=await Md(async()=>{const{Filesystem:b,Directory:h,Encoding:_}=await import("./index-CrEWT5E8.js");return{Filesystem:b,Directory:h,Encoding:_}},[],import.meta.url);try{return(await c.writeFile({path:e,data:t,directory:f.Documents,encoding:v.UTF8,recursive:!0})).uri}catch{return(await c.writeFile({path:e,data:t,directory:f.Cache,encoding:v.UTF8,recursive:!0})).uri}}const o=new Blob([t],{type:"text/plain;charset=utf-8"}),r=URL.createObjectURL(o),i=document.createElement("a");return i.href=r,i.download=e,i.click(),window.setTimeout(()=>URL.revokeObjectURL(r),1e4),""}const Hg=Object.freeze(Object.defineProperty({__proto__:null,downloadText:Sa},Symbol.toStringTag,{value:"Module"})),zg={class:"detail-page"},Wg={class:"card toolbar"},Gg={class:"nav-row"},Yg=["value"],Jg=["disabled"],Xg={class:"exp-row"},Qg={class:"seg"},Zg=["disabled"],eb=Dt({__name:"TodayView",setup(e){const t=P(it()),n=ot(()=>t.value===it());function o(){t.value=Ut(t.value,-1)}function r(){t.value=Ut(t.value,1)}function i(){t.value=it()}const c=P("day"),f=P(it()),v=P(it()),b=P(!1);function h(){if(c.value==="day")return{start:t.value,end:t.value,label:t.value};if(c.value==="week"){const x=Zs(f.value);return{start:x,end:Ut(x,6),label:x+"_"+Ut(x,6)}}if(c.value==="month"){const x=f.value.slice(0,4),M=f.value.slice(5,7),G=new Date(Number(x),Number(M),0).getDate();return{start:x+"-"+M+"-01",end:x+"-"+M+"-"+G,label:x+"-"+M}}return{start:f.value,end:v.value,label:f.value+"_"+v.value}}async function _(){if(!b.value){b.value=!0;try{const{start:x,end:M,label:G}=h(),[oe,le,ce,Y]=await Promise.all([vs(),Xo(x,M),Qo(x,M),ao(!0)]),E=new Map(Y.map(I=>[I.id,I.name])),U=["# 工作详情 "+G,""],Q=["周日","周一","周二","周三","周四","周五","周六"];let B=x,te=0;for(;B<=M&&te<400;){const I=ce.filter(O=>O.date===B),S=le.find(O=>O.date===B);if(S||I.length){if(U.push("## "+B+" "+Q[new Date(B+"T00:00:00").getDay()],""),S&&(S.clock_in_at||S.kind==="makeup")){const O=co(S,B,oe,B===it()),Z=[_n(S.clock_in_at),"–",_n(S.clock_out_at),"·",O.label];S.location&&Z.push("· 地点:"+S.location),U.push("考勤:"+Z.join(" "),"")}for(const O of I){const Z=O.project_id&&E.get(O.project_id)||"",Oe="- 【"+qo(O.category)+"】"+O.content+(O.minutes?"("+O.minutes+" 分钟)":"")+(Z?" @"+Z:"");U.push(Oe),O.takeaway&&U.push(" - 收获:"+O.takeaway),O.needs_followup===1&&O.remark?U.push(" - 待跟进:"+O.remark):O.remark&&U.push(" - 备注:"+O.remark)}U.push("")}B=Ut(B,1),te++}await Sa("工作详情_"+G+".md",U.join(`
`)),Ve("已导出 Markdown")}finally{b.value=!1}}}function A(x){const M=x.target.value;M&&(t.value=M)}return vt(t,x=>{f.value=x,c.value==="custom"&&(v.value=x)}),(x,M)=>($(),T("div",zg,[l("div",Wg,[l("div",Gg,[l("button",{class:"icon-btn",title:"前一天",onClick:o},[ke(ze,{name:"chevron-left",size:16})]),l("span",{class:Je(["date-title num",{"is-today":n.value}])},q(sn(ud)(t.value)),3),l("button",{class:"icon-btn",title:"后一天",onClick:r},[ke(ze,{name:"chevron-right",size:16})]),l("input",{type:"date",class:"input w-date",value:t.value,onChange:A},null,40,Yg),l("button",{class:"btn btn-sm",disabled:n.value,onClick:i},"回到今天",8,Jg)]),M[7]||(M[7]=l("div",{class:"tool-sep"},null,-1)),l("div",Xg,[M[6]||(M[6]=l("span",{class:"muted exp-label"},"导出",-1)),l("div",Qg,[l("button",{class:Je(["seg-btn",{active:c.value==="day"}]),onClick:M[0]||(M[0]=G=>c.value="day")},"指定日",2),l("button",{class:Je(["seg-btn",{active:c.value==="week"}]),onClick:M[1]||(M[1]=G=>c.value="week")},"当周",2),l("button",{class:Je(["seg-btn",{active:c.value==="month"}]),onClick:M[2]||(M[2]=G=>c.value="month")},"当月",2),l("button",{class:Je(["seg-btn",{active:c.value==="custom"}]),onClick:M[3]||(M[3]=G=>c.value="custom")},"自定义",2)]),c.value!=="day"?Pe(($(),T("input",{key:0,class:"input w-exp",type:"date","onUpdate:modelValue":M[4]||(M[4]=G=>f.value=G)},null,512)),[[Re,f.value]]):ve("",!0),c.value==="custom"?Pe(($(),T("input",{key:1,class:"input w-exp",type:"date","onUpdate:modelValue":M[5]||(M[5]=G=>v.value=G)},null,512)),[[Re,v.value]]):ve("",!0),l("button",{class:"btn btn-sm",disabled:b.value,onClick:_},"导出 Markdown",8,Zg)])]),ke(Od,{date:t.value},null,8,["date"])]))}}),tb=Kt(eb,[["__scopeId","data-v-2bb84c76"]]),nb={class:"plan-page"},sb={class:"blk-head"},ob={key:0,class:"card empty muted"},rb={class:"goal-main"},ab={class:"goal-line"},ib={class:"tag"},lb={class:"goal-name"},ub={class:"muted num goal-range"},cb={class:"goal-bar"},db={class:"muted num goal-meta"},fb={class:"goal-ops"},pb=["onClick"],vb=["onClick"],mb={class:"blk-head day-head"},hb={class:"blk-head-text"},yb={class:"muted blk-sub num"},gb={class:"day-ops"},bb={class:"card list-card"},wb={key:0,class:"empty muted"},_b={class:"pi-time num"},kb={class:"muted"},Cb={class:"pi-main"},xb={class:"pi-title"},$b={class:"tag"},Sb={key:0,class:"tag tag-goal"},Eb={key:1,class:"state-done"},Tb={key:2,class:"state-skip"},Ab={key:0,class:"muted pi-note"},Pb={class:"muted pi-meta num"},Ob={key:0,class:"timer-live"},Mb={class:"pi-ops"},Ib=["onClick"],jb=["onClick"],Db=["onClick"],Lb=["onClick"],Kb=["onClick"],Rb=["onClick"],Fb={class:"dialog",role:"dialog","aria-label":"计划"},Nb={class:"dialog-head"},Vb={class:"dialog-title"},Bb={class:"dialog-body"},Ub={class:"form-row"},qb={class:"form-row"},Hb=["value"],zb={class:"form-row two"},Wb={class:"form-row"},Gb={key:0,class:"form-error"},Yb={class:"dialog-btns"},Jb={class:"dialog",role:"dialog","aria-label":"长期计划"},Xb={class:"dialog-head"},Qb={class:"dialog-title"},Zb={class:"dialog-body"},ew={class:"form-row"},tw={class:"form-row"},nw=["value"],sw={class:"form-row two"},ow={class:"form-row"},rw={key:0,class:"form-error"},aw={class:"dialog-btns"},iw=Dt({__name:"PlanView",setup(e){const t=P([]),n=P({}),o=P(!1),r=P(null),i=P(""),c=P("学习"),f=P(it()),v=P(Ut(it(),6)),b=P(""),h=P(""),_=P(null);function A(){r.value=null,i.value="",c.value="学习",f.value=it(),v.value=Ut(it(),6),b.value="",h.value="",o.value=!0}function x(m){r.value=m,i.value=m.title,c.value=m.kind,f.value=m.start_date,v.value=m.end_date,b.value=m.note||"",h.value="",o.value=!0}async function M(){if(!i.value.trim()){h.value="请填写计划名称";return}if(v.value<f.value){h.value="结束日期不能早于开始日期";return}r.value?(await Oh(r.value.id,{title:i.value.trim(),kind:c.value,note:b.value}),Ve("长期计划已更新")):(await Ph({title:i.value,kind:c.value,start_date:f.value,end_date:v.value,note:b.value}),Ve("长期计划已创建,已生成每日任务")),o.value=!1,await Q()}async function G(){_.value&&(await Mh(_.value.id),Ve("已删除长期计划及其每日任务"),_.value=null,await Q())}const oe=P(it()),le=P([]),ce=P(!0),Y=P(Date.now());let E=null;const U=ot(()=>oe.value===it());async function Q(){ce.value=!0;const[m,C,j]=await Promise.all([bh(oe.value),Ah(),Th()]);le.value=m,t.value=C;const se={};for(const W of j)se[String(W.goalId)]={done:W.done,total:W.total};n.value=se,ce.value=!1}vt(oe,Q),vt(uo,Q),ln(()=>{Q(),E=window.setInterval(()=>{Y.value=Date.now()},3e4)}),Cn(()=>{E&&window.clearInterval(E)});function B(){oe.value=Ut(oe.value,-1)}function te(){oe.value=Ut(oe.value,1)}function I(){oe.value=it()}const S=ot(()=>{const m=le.value.length,C=le.value.filter(_e=>_e.status==="done").length,j=le.value.reduce((_e,xe)=>_e+O(xe),0),se=le.value.reduce((_e,xe)=>_e+(xe.actual_minutes||0),0);let W=0;const we=Oe.value;if(we){const _e=le.value.find(xe=>xe.id===we);_e&&(W=Ee(_e))}return{total:m,done:C,plannedMin:j,actualMin:se+W}});function O(m){const[C,j]=m.start_time.split(":").map(Number),[se,W]=m.end_time.split(":").map(Number);return Math.max(0,se*60+W-(C*60+j))}function Z(m){return m<60?m+" 分钟":Math.floor(m/60)+" 小时 "+m%60+" 分"}const Oe=ot(()=>{const m=le.value.find(C=>!!C.timer_started_at);return m?m.id:null});function Ee(m){if(!m.timer_started_at)return m.actual_minutes||0;const C=Math.max(0,Math.round((Y.value-new Date(m.timer_started_at).getTime())/6e4));return(m.actual_minutes||0)+C}async function be(m){m.timer_started_at?(await $a(m.id),Ve("已停止计时:"+m.title)):(await $h(m.id),Ve("开始计时:"+m.title)),Rm(),await Q()}async function Ae(m,C){await xh(m.id,C),await Q()}const He=P(!1),qe=P(null),Xe=P(""),pe=P("学习"),me=P("09:00"),re=P("10:00"),ae=P(""),Me=P(""),ft=["学习","健身","自律","工作","阅读","其他"];function Ct(){qe.value=null,Xe.value="",pe.value="学习",me.value="09:00",re.value="10:00",ae.value="",Me.value="",He.value=!0}function xt(m){qe.value=m.id,Xe.value=m.title,pe.value=m.kind,me.value=m.start_time,re.value=m.end_time,ae.value=m.note||"",Me.value="",He.value=!0}async function qt(){if(!Xe.value.trim()){Me.value="请填写计划内容";return}if(re.value<=me.value){Me.value="结束时间需晚于开始时间";return}qe.value?(await kh(qe.value,{title:Xe.value.trim(),kind:pe.value,start_time:me.value,end_time:re.value,note:ae.value}),Ve("计划已更新")):(await _h({date:oe.value,start_time:me.value,end_time:re.value,title:Xe.value,kind:pe.value,note:ae.value}),Ve("计划已添加")),He.value=!1,await Q()}async function bt(m){await Ch(m.id),Ve("已删除"),await Q()}const Le=["周日","周一","周二","周三","周四","周五","周六"];function g(m){return Le[Fs(m).getDay()]}return(m,C)=>($(),T("div",nb,[l("div",sb,[C[18]||(C[18]=l("div",{class:"blk-head-text"},[l("div",{class:"blk-title"},"长期计划"),l("div",{class:"muted blk-sub"},"跨越多天的目标,自动落实到每一天")],-1)),l("button",{class:"btn btn-sm",onClick:A},[ke(ze,{name:"plus",size:14}),C[17]||(C[17]=gt(" 新建长期计划",-1))])]),t.value.length?ve("",!0):($(),T("div",ob," 暂无长期计划。创建一个跨越多天的目标(如「产品文档学习」),系统会自动生成每天的打卡任务。 ")),($(!0),T(je,null,nt(t.value,j=>($(),T("div",{key:j.id,class:"card goal-card"},[l("div",rb,[l("div",ab,[l("span",ib,q(j.kind),1),l("span",lb,q(j.title),1),l("span",ub,q(j.start_date.slice(5))+" ~ "+q(j.end_date.slice(5)),1)]),l("div",cb,[l("span",{class:"goal-bar-fill",style:zn({width:(n.value[String(j.id)]?Math.round(n.value[String(j.id)].done/Math.max(1,n.value[String(j.id)].total)*100):0)+"%",background:n.value[String(j.id)]&&n.value[String(j.id)].done>=n.value[String(j.id)].total&&n.value[String(j.id)].total>0?"var(--ok)":"var(--accent)"})},null,4)]),l("div",db,[gt(q(n.value[String(j.id)]?n.value[String(j.id)].done+"/"+n.value[String(j.id)].total+" 天已完成":"0/"+(n.value[String(j.id)]?n.value[String(j.id)].total:0)+" 天")+" ",1),j.note?($(),T(je,{key:0},[gt(" · "+q(j.note),1)],64)):ve("",!0)])]),l("div",fb,[l("button",{class:"icon-btn",title:"编辑",onClick:se=>x(j)},[ke(ze,{name:"edit",size:14})],8,pb),l("button",{class:"icon-btn",title:"删除",onClick:se=>_.value=j},[ke(ze,{name:"close",size:14})],8,vb)])]))),128)),l("div",mb,[l("div",hb,[C[21]||(C[21]=l("div",{class:"blk-title"},"每日安排",-1)),l("div",yb,[gt(" 共 "+q(S.value.total)+" 项 · 完成 "+q(S.value.done)+" 项 · 计划 "+q(Z(S.value.plannedMin))+" · 实际投入 "+q(Z(S.value.actualMin))+" ",1),Oe.value?($(),T(je,{key:0},[C[19]||(C[19]=gt(" · ",-1)),C[20]||(C[20]=l("span",{class:"timer-live"},"计时中",-1))],64)):ve("",!0)])]),l("div",gb,[l("button",{class:"icon-btn",title:"前一天",onClick:B},[ke(ze,{name:"chevron-left",size:16})]),l("span",{class:Je(["date-chip num",{today:U.value}])},q(oe.value.slice(5))+" "+q(g(oe.value)),3),l("button",{class:"icon-btn",title:"后一天",onClick:te},[ke(ze,{name:"chevron-right",size:16})]),l("button",{class:Je(["btn btn-sm",{"btn-primary":!U.value}]),onClick:I},"今天",2),l("button",{class:"btn btn-primary btn-sm",onClick:Ct},[ke(ze,{name:"plus",size:14}),C[22]||(C[22]=gt(" 添加计划",-1))])])]),l("div",bb,[!ce.value&&!le.value.length?($(),T("div",wb,"今天还没有计划,点「添加计划」开始规划。")):ve("",!0),($(!0),T(je,null,nt(le.value,j=>($(),T("div",{key:j.id,class:Je(["plan-item",{done:j.status==="done",skip:j.status==="skip",running:!!j.timer_started_at}])},[l("div",_b,[gt(q(j.start_time),1),l("span",kb," - "+q(j.end_time),1)]),l("div",Cb,[l("div",xb,[l("span",$b,q(j.kind),1),j.goal_id?($(),T("span",Sb,"长期")):ve("",!0),l("span",{class:Je(["pi-text",{strike:j.status==="done"}])},q(j.title),3),j.status==="done"?($(),T("span",Eb,"已完成")):j.status==="skip"?($(),T("span",Tb,"已跳过")):ve("",!0)]),j.note?($(),T("div",Ab,q(j.note),1)):ve("",!0),l("div",Pb,[j.timer_started_at?($(),T("span",Ob,"计时中 · 已 "+q(Ee(j))+" 分钟",1)):j.actual_minutes>0?($(),T(je,{key:1},[gt("实际投入 "+q(j.actual_minutes)+" 分钟",1)],64)):ve("",!0)])]),l("div",Mb,[j.status!=="done"?($(),T("button",{key:0,class:Je(["btn btn-xs",{"timer-on":!!j.timer_started_at}]),onClick:se=>be(j)},q(j.timer_started_at?"停止计时":"计时"),11,Ib)):ve("",!0),j.status!=="done"?($(),T("button",{key:1,class:"btn btn-xs",onClick:se=>Ae(j,"done")},"完成",8,jb)):ve("",!0),j.status==="todo"?($(),T("button",{key:2,class:"btn btn-xs",onClick:se=>Ae(j,"skip")},"跳过",8,Db)):ve("",!0),j.status!=="todo"?($(),T("button",{key:3,class:"btn btn-xs",onClick:se=>Ae(j,"todo")},"恢复",8,Lb)):ve("",!0),l("button",{class:"icon-btn",title:"编辑",onClick:se=>xt(j)},[ke(ze,{name:"edit",size:14})],8,Kb),l("button",{class:"icon-btn",title:"删除",onClick:se=>bt(j)},[ke(ze,{name:"close",size:14})],8,Rb)])],2))),128))]),($(),kt(Kn,{to:"body"},[He.value?($(),T("div",{key:0,class:"mask",onClick:C[7]||(C[7]=Nt(j=>He.value=!1,["self"]))},[l("div",Fb,[l("div",Nb,[l("span",Vb,q(qe.value?"编辑计划":"添加计划"),1),l("button",{class:"icon-btn",onClick:C[0]||(C[0]=j=>He.value=!1)},[ke(ze,{name:"close",size:16})])]),l("div",Bb,[l("div",Ub,[C[23]||(C[23]=l("label",null,"计划内容(学什么、做什么)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":C[1]||(C[1]=j=>Xe.value=j),placeholder:"如:产品文档第三章 / 晨跑 5 公里",onKeydown:Ot(qt,["enter"])},null,544),[[Re,Xe.value]])]),l("div",qb,[C[24]||(C[24]=l("label",null,"类别",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":C[2]||(C[2]=j=>pe.value=j)},[($(),T(je,null,nt(ft,j=>l("option",{key:j,value:j},q(j),9,Hb)),64))],512),[[Wn,pe.value]])]),l("div",zb,[l("div",null,[C[25]||(C[25]=l("label",null,"开始时间",-1)),Pe(l("input",{class:"input",type:"time","onUpdate:modelValue":C[3]||(C[3]=j=>me.value=j)},null,512),[[Re,me.value]])]),l("div",null,[C[26]||(C[26]=l("label",null,"结束时间",-1)),Pe(l("input",{class:"input",type:"time","onUpdate:modelValue":C[4]||(C[4]=j=>re.value=j)},null,512),[[Re,re.value]])])]),l("div",Wb,[C[27]||(C[27]=l("label",null,"备注(选填)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":C[5]||(C[5]=j=>ae.value=j),placeholder:"目标、资料、提醒等",onKeydown:Ot(qt,["enter"])},null,544),[[Re,ae.value]])]),Me.value?($(),T("div",Gb,q(Me.value),1)):ve("",!0)]),l("div",Yb,[l("button",{class:"btn btn-sm",onClick:C[6]||(C[6]=j=>He.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:qt},q(qe.value?"保存":"添加"),1)])])])):ve("",!0)])),($(),kt(Kn,{to:"body"},[o.value?($(),T("div",{key:0,class:"mask",onClick:C[15]||(C[15]=Nt(j=>o.value=!1,["self"]))},[l("div",Jb,[l("div",Xb,[l("span",Qb,q(r.value?"编辑长期计划":"新建长期计划"),1),l("button",{class:"icon-btn",onClick:C[8]||(C[8]=j=>o.value=!1)},[ke(ze,{name:"close",size:16})])]),l("div",Zb,[l("div",ew,[C[28]||(C[28]=l("label",null,"计划名称(落实为每天一条任务)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":C[9]||(C[9]=j=>i.value=j),placeholder:"如:产品文档学习 / 健身月计划"},null,512),[[Re,i.value]])]),l("div",tw,[C[29]||(C[29]=l("label",null,"类别",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":C[10]||(C[10]=j=>c.value=j)},[($(),T(je,null,nt(ft,j=>l("option",{key:j,value:j},q(j),9,nw)),64))],512),[[Wn,c.value]])]),l("div",sw,[l("div",null,[C[30]||(C[30]=l("label",null,"开始日期",-1)),Pe(l("input",{class:"input",type:"date","onUpdate:modelValue":C[11]||(C[11]=j=>f.value=j)},null,512),[[Re,f.value]])]),l("div",null,[C[31]||(C[31]=l("label",null,"结束日期",-1)),Pe(l("input",{class:"input",type:"date","onUpdate:modelValue":C[12]||(C[12]=j=>v.value=j)},null,512),[[Re,v.value]])])]),l("div",ow,[C[32]||(C[32]=l("label",null,"备注(选填)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":C[13]||(C[13]=j=>b.value=j)},null,512),[[Re,b.value]])]),h.value?($(),T("div",rw,q(h.value),1)):ve("",!0),C[33]||(C[33]=l("div",{class:"muted goal-hint"},"创建后区间内每一天都会生成一条任务,可在每日安排中逐日打卡与计时。",-1))]),l("div",aw,[l("button",{class:"btn btn-sm",onClick:C[14]||(C[14]=j=>o.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:M},q(r.value?"保存":"创建"),1)])])])):ve("",!0)])),ke(wn,{open:!!_.value,title:"删除长期计划",message:_.value?"将删除「"+_.value.title+"」及其全部每日任务(含已完成记录),不可恢复。":"","confirm-text":"删除",danger:"",onCancel:C[16]||(C[16]=j=>_.value=null),onConfirm:G},null,8,["open","message"])]))}}),lw=Kt(iw,[["__scopeId","data-v-ffd19b28"]]),uw={class:"stats"},cw={class:"cards"},dw={class:"card stat-card"},fw={class:"stat-num num"},pw={class:"card stat-card"},vw={class:"stat-num num"},mw={class:"card stat-card"},hw={class:"stat-num num"},yw={class:"card stat-card"},gw={class:"stat-num num"},bw={class:"card section"},ww={class:"heat"},_w=["title"],kw={class:"two-col"},Cw={class:"card section"},xw={class:"bar-label"},$w={class:"bar-track"},Sw={class:"muted num bar-num"},Ew={key:0,class:"muted"},Tw={class:"card section"},Aw={class:"bar-label"},Pw={class:"bar-track"},Ow={class:"muted num bar-num"},Mw={key:0,class:"muted"},Iw={class:"card section"},jw={class:"bar-label loc-label"},Dw={class:"bar-track"},Lw={class:"muted num bar-num"},Kw={key:0,class:"muted"},Rw=Dt({__name:"StatsView",setup(e){const t=P({attendDays:0,totalHours:"0",itemCount:0,streak:0}),n=P([]),o=P([]),r=P([]),i=P([]);async function c(){const b=it(),h="2000-01-01",_=await Promise.all([vs(),Xo(h,b),Qo(h,b),ao(!0)]),A=_[0],x=_[1],M=_[2],G=_[3],oe=x.filter(be=>be.clock_in_at||be.kind==="makeup");let le=0;for(const be of oe){const Ae=co(be,be.date,A,be.date===b);le+=Ae.workedMinutes??0}const ce=new Set(M.map(be=>be.date));let Y=0,E=b;for(ce.has(E)||(E=Ut(b,-1));ce.has(E);)Y++,E=Ut(E,-1);t.value={attendDays:oe.length,totalHours:(le/60).toFixed(1),itemCount:M.length,streak:Y};const U=new Map;for(const be of oe){const Ae=be.location||"未记录";U.set(Ae,(U.get(Ae)||0)+1)}i.value=Array.from(U.entries()).map(be=>({name:be[0],count:be[1],percent:Math.round(be[1]/(oe.length||1)*100)})).sort((be,Ae)=>Ae.count-be.count);const Q=M.length||1,B=await Zo(),te=new Map;for(const be of M)te.set(be.category,(te.get(be.category)||0)+1);const I=new Set(B);for(const be of te.keys())I.has(be)||B.push(be);o.value=B.map(be=>{const Ae=te.get(be)||0;return{key:be,label:be,count:Ae,percent:Math.round(Ae/Q*100)}}).filter(be=>be.count>0).sort((be,Ae)=>Ae.count-be.count);const S=new Map(G.map(be=>[be.id,be.name])),O=new Map;for(const be of M){const Ae=be.project_id?S.get(be.project_id)||"已删除项目":"无项目";O.set(Ae,(O.get(Ae)||0)+1)}r.value=Array.from(O.entries()).map(be=>({name:be[0],count:be[1],percent:Math.round(be[1]/Q*100)})).sort((be,Ae)=>Ae.count-be.count);const Z=new Map;for(const be of M)Z.set(be.date,(Z.get(be.date)||0)+1);const Oe=Zs(b),Ee=[];for(let be=11;be>=0;be--){const Ae=Ut(Oe,-7*be),He=[];for(let qe=0;qe<7;qe++){const Xe=Ut(Ae,qe);He.push({date:Xe,count:Z.get(Xe)||0})}Ee.push(He)}n.value=Ee}ln(async()=>{await c()}),vt(uo,()=>{c()});function f(b){return b===0?0:b===1?1:b<=3?2:b<=5?3:4}function v(b,h){return b+" · "+(h?h+" 条":"无记录")}return(b,h)=>($(),T("div",uw,[l("div",cw,[l("div",dw,[h[0]||(h[0]=l("div",{class:"muted"},"出勤天数",-1)),l("div",fw,q(t.value.attendDays),1)]),l("div",pw,[h[1]||(h[1]=l("div",{class:"muted"},"累计工时(小时)",-1)),l("div",vw,q(t.value.totalHours),1)]),l("div",mw,[h[2]||(h[2]=l("div",{class:"muted"},"记录条数",-1)),l("div",hw,q(t.value.itemCount),1)]),l("div",yw,[h[3]||(h[3]=l("div",{class:"muted"},"连续记录(天)",-1)),l("div",gw,q(t.value.streak),1)])]),l("div",bw,[h[4]||(h[4]=l("div",{class:"section-title"},"记录热力图(近 12 周)",-1)),l("div",ww,[($(!0),T(je,null,nt(n.value,(_,A)=>($(),T("div",{key:A,class:"heat-col"},[($(!0),T(je,null,nt(_,x=>($(),T("span",{key:x.date,class:Je(["heat-cell","lv"+f(x.count)]),title:v(x.date,x.count)},null,10,_w))),128))]))),128))]),h[5]||(h[5]=zp('<div class="heat-legend muted" data-v-5469ae68><span data-v-5469ae68>少</span><span class="heat-cell lv0" data-v-5469ae68></span><span class="heat-cell lv1" data-v-5469ae68></span><span class="heat-cell lv2" data-v-5469ae68></span><span class="heat-cell lv3" data-v-5469ae68></span><span class="heat-cell lv4" data-v-5469ae68></span><span data-v-5469ae68>多</span></div>',1))]),l("div",kw,[l("div",Cw,[h[6]||(h[6]=l("div",{class:"section-title"},"分类分布",-1)),($(!0),T(je,null,nt(o.value,_=>($(),T("div",{key:_.key,class:"bar-row"},[l("span",xw,q(_.label),1),l("span",$w,[l("span",{class:"bar-fill",style:zn({width:_.percent+"%"})},null,4)]),l("span",Sw,q(_.count)+" 条 · "+q(_.percent)+"%",1)]))),128)),o.value.length?ve("",!0):($(),T("div",Ew,"暂无数据"))]),l("div",Tw,[h[7]||(h[7]=l("div",{class:"section-title"},"项目投入",-1)),($(!0),T(je,null,nt(r.value,_=>($(),T("div",{key:_.name,class:"bar-row"},[l("span",Aw,q(_.name),1),l("span",Pw,[l("span",{class:"bar-fill",style:zn({width:_.percent+"%"})},null,4)]),l("span",Ow,q(_.count)+" 条 · "+q(_.percent)+"%",1)]))),128)),r.value.length?ve("",!0):($(),T("div",Mw,"暂无数据"))])]),l("div",Iw,[h[8]||(h[8]=l("div",{class:"section-title"},"地点分布(按出勤天)",-1)),($(!0),T(je,null,nt(i.value,_=>($(),T("div",{key:_.name,class:"bar-row"},[l("span",jw,q(_.name),1),l("span",Dw,[l("span",{class:"bar-fill",style:zn({width:_.percent+"%"})},null,4)]),l("span",Lw,q(_.count)+" 天 · "+q(_.percent)+"%",1)]))),128)),i.value.length?ve("",!0):($(),T("div",Kw,"暂无数据"))])]))}}),Fw=Kt(Rw,[["__scopeId","data-v-5469ae68"]]);async function Nw(e,t,n){const o=it(),r=await Promise.all([vs(),Xo(e,t),Qo(e,t),ao(!0),gh(e,t),Zo()]),i=r[0],c=r[1],f=r[2],v=r[3],b=r[4],h=r[5];let _=0,A=0,x=0;for(const O of c){(O.clock_in_at||O.kind==="makeup")&&_++,O.kind==="makeup"&&x++;const Z=co(O,O.date,i,O.date===o);A+=Z.workedMinutes??0}const M=new Map;for(const O of c){if(!(O.clock_in_at||O.kind==="makeup"))continue;const Z=O.location||"未记录";M.set(Z,(M.get(Z)||0)+1)}const G=Array.from(M.entries()).map(O=>({name:O[0],count:O[1]})).sort((O,Z)=>Z.count-O.count),oe=f.length||1,le=new Map;for(const O of f)le.set(O.category,(le.get(O.category)||0)+1);const ce=new Set(h);for(const O of le.keys())ce.has(O)||h.push(O);const Y=h.map(O=>{const Z=le.get(O)||0;return{key:O,label:O,count:Z,percent:Math.round(Z/oe*100)}}).filter(O=>O.count>0).sort((O,Z)=>Z.count-O.count),E=new Map(v.map(O=>[O.id,O.name])),U=new Map;for(const O of f){const Z=O.project_id?E.get(O.project_id)||"已删除项目":"无项目";U.set(Z,(U.get(Z)||0)+1)}const Q=Array.from(U.entries()).map(O=>({name:O[0],count:O[1]})).sort((O,Z)=>Z.count-O.count),B=f.filter(O=>O.is_milestone===1).map(O=>({date:O.date,content:O.content})),te=f.filter(O=>O.needs_followup===1).map(O=>({date:O.date,content:O.content,remark:O.remark||""})),I=f.filter(O=>!!O.takeaway).map(O=>({date:O.date,text:O.takeaway})),S=b.map(O=>({weekStart:O.week_start,highlights:O.highlights||"",challenges:O.challenges||"",plan_next:O.plan_next||""}));return{range:{start:e,end:t,label:n},attendDays:_,totalHours:(A/60).toFixed(1),makeupCount:x,leaveCount:c.filter(O=>O.kind==="leave").length,itemCount:f.length,categoryStats:Y,projectStats:Q,locationStats:G,milestones:B,followups:te,takeaways:I,weekNotes:S}}function Vw(e){const t=[];t.push("# 实习工作总结("+e.range.start+" ~ "+e.range.end+")"),t.push(""),t.push("## 一、考勤概况"),t.push(""),t.push("出勤 "+e.attendDays+" 天,累计工时 "+e.totalHours+" 小时,补卡 "+e.makeupCount+" 次"+(e.leaveCount?",请假 "+e.leaveCount+" 天":""));const n=e.locationStats.filter(o=>o.name!=="未记录");n.length&&t.push("其中:"+n.map(o=>o.name+" "+o.count+" 天").join(",")),t.push(""),t.push("## 二、工作内容分布"),t.push(""),t.push(e.categoryStats.length?e.categoryStats.map(o=>o.label+" "+o.percent+"%("+o.count+" 条)").join(","):"(无记录)"),t.push(""),t.push("## 三、项目投入"),t.push(""),t.push(e.projectStats.length?e.projectStats.map(o=>o.name+" "+o.count+" 条").join(","):"(无记录)"),t.push(""),t.push("## 四、主要成果"),t.push(""),e.milestones.length?e.milestones.forEach((o,r)=>t.push(r+1+". 【成果】"+o.content+"("+o.date+")")):t.push("(无)"),t.push(""),t.push("## 五、待跟进事项"),t.push(""),e.followups.length?e.followups.forEach(o=>t.push("- 【待跟进】"+o.content+(o.remark?"("+o.date+" 备注:"+o.remark+")":"("+o.date+")"))):t.push("(无)"),t.push(""),t.push("## 六、学习与成长"),t.push(""),e.takeaways.length?e.takeaways.forEach(o=>t.push("- "+o.text+"("+o.date+")")):t.push("(无)");for(const o of e.weekNotes)t.push(""),t.push("### 周记("+o.weekStart+" 起)"),t.push(""),t.push("- 本周亮点:"+(o.highlights||"(无)")),t.push("- 踩的坑:"+(o.challenges||"(无)")),t.push("- 下周计划:"+(o.plan_next||"(无)"));return t.push(""),t.join(`
`)}async function Wi(e){try{await navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}}async function Bw(e){const t=await Promise.all([St("ai_base_url",""),St("ai_api_key",""),St("ai_model","")]),n=t[0].trim().replace(/\/+$/,""),o=t[1].trim(),r=t[2].trim();if(!n||!r)throw new Error("请先在设置页配置 AI 接口地址与模型名称");const i=n+"/chat/completions",c={"Content-Type":"application/json"};o&&(c.Authorization="Bearer "+o);const v=JSON.stringify({model:r,messages:[{role:"system",content:"你是一名严谨的中文助理。请将用户提供的工作总结 Markdown 草稿润色为通顺、专业、简洁的工作总结。要求:保留原有章节结构与全部事实数据(数字、日期、条目),不得虚构或遗漏内容,只输出 Markdown 正文。"},{role:"user",content:e}],temperature:.3});let b;try{b=await fetch(i,{method:"POST",headers:c,body:v})}catch{throw new Error("无法访问 AI 接口:请检查地址是否正确、服务端是否允许浏览器跨域访问")}if(!b.ok){let A="接口返回 "+b.status;try{const x=await b.json();x&&x.error&&x.error.message&&(A+=":"+x.error.message)}catch{}throw new Error(A)}const h=await b.json(),_=h&&h.choices&&h.choices[0]&&h.choices[0].message&&h.choices[0].message.content;if(!_)throw new Error("接口未返回内容");return String(_)}const Uw={class:"report"},qw={class:"report-toolbar"},Hw={class:"seg"},zw=["onClick"],Ww=["disabled"],Gw=["disabled"],Yw={key:0,class:"ai-error"},Jw={class:"report-grid"},Xw={class:"report-left"},Qw={class:"card section"},Zw={class:"section-title"},e_={class:"muted note-saved"},t_={class:"card section"},n_={class:"report-right"},s_={key:0,class:"card section"},o_={class:"sum-row"},r_={class:"num"},a_={class:"sum-row"},i_={class:"num"},l_={class:"sum-row"},u_={class:"num"},c_={class:"sum-row"},d_={class:"num"},f_={class:"sum-row"},p_={class:"num"},v_={class:"muted"},m_={class:"num"},h_={key:0,class:"muted sum-empty"},y_={class:"muted"},g_={key:1,class:"muted sum-empty"},b_={class:"muted"},w_={key:2,class:"muted sum-empty"},__={class:"muted"},k_={key:3,class:"muted sum-empty"},C_=Dt({__name:"ReportView",setup(e){const t=[{key:"week",label:"本周"},{key:"month",label:"本月"},{key:"all",label:"全部"},{key:"custom",label:"自定义"}],n=P("week"),o=P(Zs(it())),r=P(it()),i=P(null),c=P(""),f=P(!1),v=P(!1),b=P(null),h=P(""),_=P(Zs(it())),A=P(""),x=P(""),M=P(""),G=P(!1);async function oe(){const te=await yl(_.value);A.value=(te==null?void 0:te.highlights)||"",x.value=(te==null?void 0:te.challenges)||"",M.value=(te==null?void 0:te.plan_next)||"",G.value=!1}async function le(){await yh(_.value,{highlights:A.value.trim()||null,challenges:x.value.trim()||null,plan_next:M.value.trim()||null}),G.value=!0,await Y()}function ce(te){const I=it();if(te==="week"){const S=Zs(I);return{start:S,end:Ut(S,6),label:"本周"}}if(te==="month"){const S=I.slice(0,7);return{start:S+"-01",end:I,label:S+" 本月"}}return te==="all"?{start:"2000-01-01",end:I,label:"全部实习期"}:{start:o.value,end:r.value,label:o.value+" ~ "+r.value}}async function Y(){f.value=!0;const te=ce(n.value),I=await Nw(te.start,te.end,te.label);i.value=I,c.value=Vw(I),f.value=!1}vt(n,Y),vt([o,r],()=>{n.value==="custom"&&Y()}),ln(async()=>{await oe(),await Y()});async function E(){const te=it().replace(/-/g,""),I=await Sa("实习工作总结_"+te+".md",c.value);Ve(I?"总结已导出到:"+I:"总结已导出到系统下载目录")}async function U(){await Wi(c.value),Ve("总结已复制到剪贴板")}async function Q(){if(v.value)return;h.value="";const te=c.value.trim();if(!te){h.value="当前草稿为空,无法润色";return}v.value=!0;try{b.value=c.value,c.value=await Bw(te),Ve("AI 润色完成")}catch(I){b.value=null,h.value=I instanceof Error?I.message:"润色失败"}v.value=!1}function B(){b.value!==null&&(c.value=b.value),b.value=null}return(te,I)=>($(),T("div",Uw,[l("div",qw,[l("div",Hw,[($(),T(je,null,nt(t,S=>l("button",{key:S.key,class:Je(["seg-btn",{active:n.value===S.key}]),onClick:O=>n.value=S.key},q(S.label),11,zw)),64))]),n.value==="custom"?($(),T(je,{key:0},[Pe(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":I[0]||(I[0]=S=>o.value=S)},null,512),[[Re,o.value]]),I[6]||(I[6]=l("span",{class:"muted"},"至",-1)),Pe(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":I[1]||(I[1]=S=>r.value=S)},null,512),[[Re,r.value]])],64)):ve("",!0),I[10]||(I[10]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",disabled:v.value,onClick:Q},[ke(ze,{name:"edit",size:14}),I[7]||(I[7]=gt("AI 润色 ",-1))],8,Ww),b.value!==null?($(),T("button",{key:1,class:"btn btn-sm",onClick:B},"还原润色前")):ve("",!0),l("button",{class:"btn btn-sm",disabled:f.value,onClick:Y},[ke(ze,{name:"edit",size:14}),I[8]||(I[8]=gt("重新生成 ",-1))],8,Gw),l("button",{class:"btn btn-sm",onClick:U},"复制"),l("button",{class:"btn btn-primary btn-sm",onClick:E},[ke(ze,{name:"export",size:14}),I[9]||(I[9]=gt("导出 Markdown ",-1))])]),h.value?($(),T("div",Yw,q(h.value),1)):ve("",!0),l("div",Jw,[l("div",Xw,[l("div",Qw,[l("div",Zw,"本周周记("+q(_.value)+" 起)",1),I[11]||(I[11]=l("label",{class:"note-label muted"},"本周亮点",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":I[2]||(I[2]=S=>A.value=S),placeholder:"本周最有价值的一件事",onBlur:le},null,544),[[Re,A.value]]),I[12]||(I[12]=l("label",{class:"note-label muted"},"踩的坑",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":I[3]||(I[3]=S=>x.value=S),placeholder:"遇到的问题与教训",onBlur:le},null,544),[[Re,x.value]]),I[13]||(I[13]=l("label",{class:"note-label muted"},"下周计划",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":I[4]||(I[4]=S=>M.value=S),placeholder:"下周准备做什么",onBlur:le},null,544),[[Re,M.value]]),l("div",e_,q(G.value?"已保存":"失焦自动保存"),1)]),l("div",t_,[I[14]||(I[14]=l("div",{class:"section-title"},"总结草稿(可编辑)",-1)),Pe(l("textarea",{class:"textarea md-editor","onUpdate:modelValue":I[5]||(I[5]=S=>c.value=S),spellcheck:"false"},null,512),[[Re,c.value]])])]),l("div",n_,[i.value?($(),T("div",s_,[I[20]||(I[20]=l("div",{class:"section-title"},"数据摘要",-1)),l("div",o_,[I[15]||(I[15]=l("span",{class:"muted"},"出勤",-1)),l("span",r_,q(i.value.attendDays)+" 天",1)]),l("div",a_,[I[16]||(I[16]=l("span",{class:"muted"},"工时",-1)),l("span",i_,q(i.value.totalHours)+" 小时",1)]),l("div",l_,[I[17]||(I[17]=l("span",{class:"muted"},"补卡",-1)),l("span",u_,q(i.value.makeupCount)+" 次",1)]),l("div",c_,[I[18]||(I[18]=l("span",{class:"muted"},"请假",-1)),l("span",d_,q(i.value.leaveCount)+" 天",1)]),l("div",f_,[I[19]||(I[19]=l("span",{class:"muted"},"记录",-1)),l("span",p_,q(i.value.itemCount)+" 条",1)]),I[21]||(I[21]=l("div",{class:"section-sub"},"分类分布",-1)),($(!0),T(je,null,nt(i.value.categoryStats,S=>($(),T("div",{key:S.key,class:"sum-row"},[l("span",v_,q(S.label),1),l("span",m_,q(S.count)+" 条 · "+q(S.percent)+"%",1)]))),128)),i.value.categoryStats.length?ve("",!0):($(),T("div",h_,"(无)")),I[22]||(I[22]=l("div",{class:"section-sub"},"主要成果",-1)),($(!0),T(je,null,nt(i.value.milestones,(S,O)=>($(),T("div",{key:"m"+O,class:"sum-item"},[gt(q(S.content),1),l("span",y_,"("+q(S.date)+")",1)]))),128)),i.value.milestones.length?ve("",!0):($(),T("div",g_,"(无)")),I[23]||(I[23]=l("div",{class:"section-sub"},"待跟进",-1)),($(!0),T(je,null,nt(i.value.followups,(S,O)=>($(),T("div",{key:"f"+O,class:"sum-item"},[gt(q(S.content),1),l("span",b_,"("+q(S.date)+")",1)]))),128)),i.value.followups.length?ve("",!0):($(),T("div",w_,"(无)")),I[24]||(I[24]=l("div",{class:"section-sub"},"学习与成长",-1)),($(!0),T(je,null,nt(i.value.takeaways,(S,O)=>($(),T("div",{key:"t"+O,class:"sum-item"},[gt(q(S.text),1),l("span",__,"("+q(S.date)+")",1)]))),128)),i.value.takeaways.length?ve("",!0):($(),T("div",k_,"(无)"))])):ve("",!0)])])]))}}),x_=Kt(C_,[["__scopeId","data-v-7e1b08ed"]]),$_=["aria-label"],S_={class:"dialog-head"},E_={class:"dialog-title"},T_={class:"dialog-body"},A_={class:"form-grid"},P_={class:"field span2"},O_={class:"seg"},M_={class:"field"},I_={class:"field"},j_={class:"field"},D_=["value"],L_={class:"add-cat"},K_=["onKeydown"],R_={key:0,class:"field"},F_={class:"seg"},N_={class:"field span2"},V_={key:0,class:"form-error"},B_={class:"dialog-btns"},U_=Dt({__name:"TransactionDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=P("expense"),i=P(""),c=P(""),f=P(""),v=P(""),b=P(!1),h=P(!1),_=P(""),A=P(null);function x(E){n.open&&E.key==="Escape"&&o("cancel")}vt(()=>n.open,async E=>{var U;E?(await G(),r.value=n.initial.type==="income"?"income":"expense",i.value=n.initial.category,c.value=n.initial.amountYuan,f.value=n.initial.date,v.value=n.initial.note,b.value=n.initial.reimbursable===1,h.value=n.initial.reimbursed===1,_.value="",window.addEventListener("keydown",x),await Rs(),(U=A.value)==null||U.focus()):window.removeEventListener("keydown",x)}),Cn(()=>window.removeEventListener("keydown",x)),vt(r,async()=>{await G(),i.value=M.value[0]||""});const M=P([]);async function G(){M.value=await Wo(r.value)}const oe=P("");async function le(){const E=oe.value.trim();if(E){if(M.value.includes(E)){oe.value="";return}M.value.push(E),await zi(r.value,M.value),i.value=E,oe.value=""}}function ce(){return i.value&&M.value.includes(i.value)?i.value:M.value[0]}function Y(){const E=String(c.value??"").trim(),U=Number(E);if(!E||!isFinite(U)||U<=0){_.value="请填写大于 0 的金额";return}if(!f.value){_.value="请选择日期";return}const Q=r.value==="expense"&&b.value?1:0;o("save",{type:r.value,category:ce(),amount:Math.round(U*100),date:f.value,note:String(v.value??"").trim(),reimbursable:Q,reimbursed:Q&&h.value?1:0})}return(E,U)=>($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[e.open?($(),T("div",{key:0,class:"mask",onClick:U[12]||(U[12]=Nt(Q=>o("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",S_,[l("span",E_,q(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:U[0]||(U[0]=Q=>o("cancel"))},[ke(ze,{name:"close",size:16})])]),l("div",T_,[l("div",A_,[l("div",P_,[U[13]||(U[13]=l("label",null,"类型",-1)),l("div",O_,[l("button",{class:Je(["seg-btn",{active:r.value==="expense"}]),onClick:U[1]||(U[1]=Q=>r.value="expense")},"支出",2),l("button",{class:Je(["seg-btn",{active:r.value==="income"}]),onClick:U[2]||(U[2]=Q=>r.value="income")},"收入",2)])]),l("div",M_,[U[14]||(U[14]=l("label",null,"金额(元,必填)",-1)),Pe(l("input",{ref_key:"amountInput",ref:A,class:Je(["input",{invalid:_.value}]),"onUpdate:modelValue":U[3]||(U[3]=Q=>c.value=Q),type:"number",min:"0",step:"0.01",placeholder:"0.00"},null,2),[[Re,c.value]])]),l("div",I_,[U[15]||(U[15]=l("label",null,"日期(必填)",-1)),Pe(l("input",{class:"input",type:"date","onUpdate:modelValue":U[4]||(U[4]=Q=>f.value=Q)},null,512),[[Re,f.value]])]),l("div",j_,[U[16]||(U[16]=l("label",null,"分类(可直接新增)",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":U[5]||(U[5]=Q=>i.value=Q)},[($(!0),T(je,null,nt(M.value,Q=>($(),T("option",{key:Q,value:Q},q(Q),9,D_))),128))],512),[[Wn,i.value]]),l("div",L_,[Pe(l("input",{class:"input add-cat-input","onUpdate:modelValue":U[6]||(U[6]=Q=>oe.value=Q),placeholder:"新增分类名",onKeydown:Ot(Nt(le,["prevent"]),["enter"])},null,40,K_),[[Re,oe.value]]),l("button",{class:"btn btn-xs",type:"button",onClick:le},"添加")])]),r.value==="expense"?($(),T("div",R_,[U[17]||(U[17]=l("label",null,"报销状态",-1)),l("div",F_,[l("button",{class:Je(["seg-btn",{active:!b.value}]),onClick:U[7]||(U[7]=Q=>{b.value=!1,h.value=!1})},"无需报销",2),l("button",{class:Je(["seg-btn",{active:b.value&&!h.value}]),onClick:U[8]||(U[8]=Q=>{b.value=!0,h.value=!1})},"待报销",2),l("button",{class:Je(["seg-btn",{active:b.value&&h.value}]),onClick:U[9]||(U[9]=Q=>{b.value=!0,h.value=!0})},"已报销",2)])])):ve("",!0),l("div",N_,[U[18]||(U[18]=l("label",null,"备注",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":U[10]||(U[10]=Q=>v.value=Q),placeholder:"选填"},null,512),[[Re,v.value]])])]),_.value?($(),T("div",V_,q(_.value),1)):ve("",!0)]),l("div",B_,[l("button",{class:"btn btn-sm",onClick:U[11]||(U[11]=Q=>o("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:Y},"保存")])],8,$_)])):ve("",!0)]),_:1})]))}}),q_=Kt(U_,[["__scopeId","data-v-1b57c1af"]]),H_={class:"ledger-page"},z_={class:"ledger-toolbar"},W_={class:"month-title num"},G_=["value"],Y_={class:"cards"},J_={class:"card stat-card stat-income"},X_={class:"stat-num num amt-income"},Q_={class:"card stat-card stat-expense"},Z_={class:"stat-num num"},e1={class:"card stat-card stat-balance"},t1={class:"card stat-card stat-pending"},n1={class:"stat-num num amt-warn"},s1={key:0,class:"card sec"},o1={class:"bar-label"},r1={class:"bar-track"},a1={class:"muted num bar-num"},i1={key:1,class:"card section"},l1={class:"form-error"},u1={class:"card table-card"},c1={class:"tx-table"},d1={class:"num","data-label":"日期"},f1={"data-label":"分类"},p1={class:"tag"},v1={class:"td-note","data-label":"备注"},m1={"data-label":"报销"},h1={key:0,class:"muted"},y1={key:1,class:"tx-done"},g1={key:2,class:"tx-pending"},b1={class:"ops-cell"},w1={class:"ops"},_1=["onClick"],k1=["onClick"],C1=["onClick"],x1={key:0},$1={class:"muted table-note num"},S1=Dt({__name:"LedgerView",setup(e){const t=P(it()),n=P([]),o=P(!0),r=P("");it();const i=P(""),c=P(""),f=P(!1),v=P(null),b=P({type:"expense",category:"",amountYuan:"",date:it(),note:"",reimbursable:0,reimbursed:0}),h=P(null),_=ot(()=>t.value.slice(0,7)+"-01"),A=ot(()=>{const pe=Number(t.value.slice(0,4)),me=Number(t.value.slice(5,7))-1,re=new Date(pe,me+1,0).getDate();return t.value.slice(0,7)+"-"+(re<10?"0"+re:String(re))}),x=ot(()=>Number(t.value.slice(0,4))+" 年 "+Number(t.value.slice(5,7))+" 月");async function M(){o.value=!0;try{n.value=await Fh(_.value,A.value),c.value=""}catch(pe){c.value="账目加载失败:"+(pe instanceof Error?pe.stack||pe.message:String(pe)),Ve("账目加载失败")}o.value=!1}ln(M),vt(t,M);const G=P([]),oe=P([]);async function le(){G.value=await Wo("expense"),oe.value=await Wo("income")}le();const ce=ot(()=>n.value.slice().sort((pe,me)=>pe.date===me.date?me.id-pe.id:pe.date<me.date?1:-1)),Y=ot(()=>{let pe=0,me=0,re=0;for(const ae of n.value)ae.type==="income"?pe+=ae.amount:(me+=ae.amount,ae.reimbursable===1&&ae.reimbursed!==1&&(re+=ae.amount));return{income:pe,expense:me,pending:re,balance:pe-me}}),E=P("all"),U=P("all"),Q=P("all");vt(t,()=>{Q.value="all"});const B=ot(()=>Array.from(new Set(n.value.map(pe=>pe.category))).sort((pe,me)=>pe.localeCompare(me,"zh"))),te=ot(()=>ce.value.filter(pe=>!(E.value!=="all"&&pe.type!==E.value||Q.value!=="all"&&pe.category!==Q.value||U.value==="pending"&&!(pe.type==="expense"&&pe.reimbursable===1&&pe.reimbursed!==1)||U.value==="done"&&!(pe.reimbursable===1&&pe.reimbursed===1)))),I=ot(()=>{const pe=new Map;let me=0;for(const ae of n.value)ae.type==="expense"&&(pe.set(ae.category,(pe.get(ae.category)||0)+ae.amount),me+=ae.amount);const re=me||1;return Array.from(pe.entries()).map(ae=>({name:ae[0],amount:ae[1],percent:Math.round(ae[1]/re*100)})).sort((ae,Me)=>Me.amount-ae.amount)});function S(pe){return(pe/100).toFixed(2)}function O(pe){return(pe.type==="income"?"+":"-")+S(pe.amount)}function Z(){t.value=ta(t.value,-1)}function Oe(){t.value=ta(t.value,1)}function Ee(){t.value=it()}vt(r,()=>{i.value&&(i.value="")});async function be(pe){await Uh(pe.id),await M(),Ve("已标记为已报销")}function Ae(pe){v.value=pe.id,b.value={type:pe.type,category:pe.category,amountYuan:S(pe.amount),date:pe.date,note:pe.note||"",reimbursable:pe.reimbursable,reimbursed:pe.reimbursed},f.value=!0}function He(){v.value=null,b.value={type:"expense",category:G.value[0]||"",amountYuan:"",date:it(),note:"",reimbursable:0,reimbursed:0},f.value=!0}async function qe(pe){if(v.value){await Vh(v.value,pe),f.value=!1,await M(),Ve("账目已更新");return}await Nh({type:pe.type,category:pe.category,amount:pe.amount,date:pe.date,note:pe.note,reimbursable:pe.reimbursable,reimbursed:pe.reimbursed}),f.value=!1,await M(),Ve("已记一笔")}async function Xe(){h.value&&h.value.id&&await Bh(h.value.id),h.value=null,await M(),Ve("账目已删除")}return(pe,me)=>($(),T("div",H_,[l("div",z_,[l("button",{class:"icon-btn",onClick:Z},[ke(ze,{name:"chevron-left",size:16})]),l("span",W_,q(x.value),1),l("button",{class:"icon-btn",onClick:Oe},[ke(ze,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",onClick:Ee},"回到本月"),me[9]||(me[9]=l("span",{class:"flex1"},null,-1)),Pe(l("select",{class:"select w-filter","onUpdate:modelValue":me[0]||(me[0]=re=>E.value=re)},[...me[5]||(me[5]=[l("option",{value:"all"},"全部类型",-1),l("option",{value:"expense"},"仅支出",-1),l("option",{value:"income"},"仅收入",-1)])],512),[[Wn,E.value]]),Pe(l("select",{class:"select w-filter","onUpdate:modelValue":me[1]||(me[1]=re=>Q.value=re)},[me[6]||(me[6]=l("option",{value:"all"},"全部分类",-1)),($(!0),T(je,null,nt(B.value,re=>($(),T("option",{key:re,value:re},q(re),9,G_))),128))],512),[[Wn,Q.value]]),Pe(l("select",{class:"select w-filter","onUpdate:modelValue":me[2]||(me[2]=re=>U.value=re)},[...me[7]||(me[7]=[l("option",{value:"all"},"全部报销",-1),l("option",{value:"pending"},"待报销",-1),l("option",{value:"done"},"已报销",-1)])],512),[[Wn,U.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:He},[ke(ze,{name:"plus",size:14}),me[8]||(me[8]=gt(" 记一笔",-1))])]),l("div",Y_,[l("div",J_,[me[10]||(me[10]=l("div",{class:"muted"},"本月收入(元)",-1)),l("div",X_,q(S(Y.value.income)),1)]),l("div",Q_,[me[11]||(me[11]=l("div",{class:"muted"},"本月支出(元)",-1)),l("div",Z_,q(S(Y.value.expense)),1)]),l("div",e1,[me[12]||(me[12]=l("div",{class:"muted"},"本月结余(元)",-1)),l("div",{class:Je(["stat-num num",{"amt-income":Y.value.balance>=0,"amt-expense":Y.value.balance<0}])},q(S(Y.value.balance)),3)]),l("div",t1,[me[13]||(me[13]=l("div",{class:"muted"},"待报销(元)",-1)),l("div",n1,q(S(Y.value.pending)),1)])]),I.value.length?($(),T("div",s1,[me[14]||(me[14]=l("div",{class:"sec-title"},"本月支出分类",-1)),($(!0),T(je,null,nt(I.value,re=>($(),T("div",{key:re.name,class:"bar-row"},[l("span",o1,q(re.name),1),l("span",r1,[l("span",{class:"bar-fill",style:zn({width:re.percent+"%"})},null,4)]),l("span",a1,q(S(re.amount))+" 元 · "+q(re.percent)+"%",1)]))),128))])):ve("",!0),c.value?($(),T("div",i1,[l("div",l1,q(c.value),1),me[15]||(me[15]=l("div",{class:"muted loc-note"},"请将上方完整错误文字发送给开发者",-1))])):ve("",!0),l("div",u1,[l("table",c1,[me[17]||(me[17]=l("thead",null,[l("tr",null,[l("th",null,"日期"),l("th",null,"分类"),l("th",null,"金额(元)"),l("th",null,"备注"),l("th",null,"报销"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),T(je,null,nt(te.value,re=>($(),T("tr",{key:re.id},[l("td",d1,q(re.date),1),l("td",f1,[l("span",p1,q(re.category),1)]),l("td",{class:Je(["num",re.type==="income"?"amt-income":"amt-expense"]),"data-label":"金额"},q(O(re)),3),l("td",v1,q(re.note||"--"),1),l("td",m1,[re.type!=="expense"||re.reimbursable!==1?($(),T("span",h1,"--")):re.reimbursed===1?($(),T("span",y1,"已报销")):($(),T("span",g1,"待报销"))]),l("td",b1,[l("div",w1,[re.type==="expense"&&re.reimbursable===1&&re.reimbursed!==1?($(),T("button",{key:0,class:"btn btn-xs",onClick:ae=>be(re)},"标记已报销",8,_1)):ve("",!0),l("button",{class:"btn btn-xs",onClick:ae=>Ae(re)},"编辑",8,k1),l("button",{class:"btn btn-xs",onClick:ae=>h.value=re},"删除",8,C1)])])]))),128)),!te.value.length&&!o.value?($(),T("tr",x1,[...me[16]||(me[16]=[l("td",{colspan:"6",class:"empty muted"},"本月暂无账目",-1)])])):ve("",!0)])])]),l("div",$1,"本月 "+q(n.value.length)+" 条 · 当前筛选 "+q(te.value.length)+" 条",1),ke(q_,{open:f.value,title:v.value?"编辑账目":"记一笔",initial:b.value,onCancel:me[3]||(me[3]=re=>f.value=!1),onSave:qe},null,8,["open","title","initial"]),ke(wn,{open:!!h.value,title:"删除确认",message:h.value?"将删除 "+h.value.date+" 的账目("+h.value.category+" "+S(h.value.amount)+" 元)。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:me[4]||(me[4]=re=>h.value=null),onConfirm:Xe},null,8,["open","message"])]))}}),E1=Kt(S1,[["__scopeId","data-v-d74b18a8"]]),T1={class:"memo-page"},A1={class:"card memo-list"},P1={class:"pane-head"},O1={class:"pane-title"},M1={class:"memo-scroll"},I1=["onClick"],j1={class:"memo-item-title"},D1={class:"muted memo-item-sub"},L1={class:"muted num memo-item-time"},K1={key:0,class:"muted empty"},R1={class:"card memo-editor"},F1={class:"editor-foot"},N1={class:"muted foot-info"},V1=["disabled"],B1=["disabled"],U1={key:1,class:"empty muted editor-empty"},q1=Dt({__name:"MemoView",setup(e){const t=P([]),n=P(null),o=P(!1),r=P(""),i=P(""),c=P(null),f=P(null);async function v(){if(t.value=await Ih(),n.value&&n.value.id){const Q=t.value.find(B=>B.id===n.value.id);Q&&(n.value=Q)}}ln(async()=>{await v(),t.value.length&&_(t.value[0]),window.addEventListener("keydown",b)}),Cn(()=>window.removeEventListener("keydown",b)),vt(Ni,async Q=>{if(!Q)return;t.value.length||await v();const B=t.value.find(te=>te.id===Q);Ni.value=null,B&&A(B)},{immediate:!0});function b(Q){(Q.ctrlKey||Q.metaKey)&&Q.key.toLowerCase()==="s"&&o.value&&h.value&&(Q.preventDefault(),oe())}const h=ot(()=>{if(!o.value)return!1;const Q=n.value?n.value.title:"",B=n.value?n.value.content:"";return r.value!==Q||i.value!==B});function _(Q){n.value=Q,o.value=!0,r.value=Q.title,i.value=Q.content}function A(Q){if(!(o.value&&n.value&&n.value.id===Q.id)){if(h.value){f.value={type:"select",memo:Q};return}_(Q)}}function x(){if(h.value){f.value={type:"new"};return}M()}function M(){n.value=null,o.value=!0,r.value="",i.value=""}function G(){n.value?_(n.value):M()}async function oe(){if(!r.value.trim()&&!i.value.trim()){Ve("标题与内容不能都为空");return}if(n.value&&n.value.id)await Dh(n.value.id,r.value,i.value),Ve("备忘已保存");else{const Q=await jh(r.value,i.value);n.value=Q,r.value=Q.title,i.value=Q.content,Ve("备忘已创建")}await v()}function le(){n.value&&n.value.id&&(c.value=n.value)}async function ce(){c.value&&c.value.id&&(await Lh(c.value.id),Ve("备忘已删除")),c.value=null,await v(),M()}function Y(){const Q=f.value;f.value=null,Q&&(Q.type==="select"?_(Q.memo):M())}function E(Q){return(Q.content||"").replace(/\s+/g," ").slice(0,30)}function U(Q){return Q.replace("T"," ").slice(0,16)}return(Q,B)=>($(),T("div",T1,[l("aside",A1,[l("div",P1,[l("span",O1,"备忘录("+q(t.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:x},"新建")]),l("div",M1,[($(!0),T(je,null,nt(t.value,te=>($(),T("div",{key:te.id,class:Je(["memo-item",{active:o.value&&n.value&&n.value.id===te.id}]),onClick:I=>A(te)},[l("div",j1,q(te.title||"无标题"),1),l("div",D1,q(E(te)||"空"),1),l("div",L1,q(U(te.updated_at)),1)],10,I1))),128)),t.value.length?ve("",!0):($(),T("div",K1,"暂无备忘"))])]),l("section",R1,[o.value?($(),T(je,{key:0},[Pe(l("input",{class:"input title-input","onUpdate:modelValue":B[0]||(B[0]=te=>r.value=te),placeholder:"标题"},null,512),[[Re,r.value]]),Pe(l("textarea",{class:"textarea content-textarea","onUpdate:modelValue":B[1]||(B[1]=te=>i.value=te),placeholder:"内容"},null,512),[[Re,i.value]]),l("div",F1,[l("span",N1,[h.value?($(),T(je,{key:0},[gt("有未保存修改")],64)):n.value&&n.value.id?($(),T(je,{key:1},[gt("更新于 "+q(U(n.value.updated_at)),1)],64)):($(),T(je,{key:2},[gt("新备忘")],64))]),B[4]||(B[4]=l("span",{class:"flex1"},null,-1)),n.value&&n.value.id?($(),T("button",{key:0,class:"btn btn-sm",onClick:le},"删除")):ve("",!0),l("button",{class:"btn btn-sm",disabled:!h.value,onClick:G},"放弃修改",8,V1),l("button",{class:"btn btn-primary btn-sm",disabled:!h.value,onClick:oe},"保存",8,B1)])],64)):($(),T("div",U1,"选择左侧备忘,或点击右上角新建"))]),ke(wn,{open:!!c.value,title:"删除确认",message:c.value?"将删除备忘「"+(c.value.title||"无标题")+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:B[2]||(B[2]=te=>c.value=null),onConfirm:ce},null,8,["open","message"]),ke(wn,{open:!!f.value,title:"未保存提示",message:"当前备忘有未保存的修改,继续操作将丢失这些修改。","confirm-text":"放弃修改并继续",onCancel:B[3]||(B[3]=te=>f.value=null),onConfirm:Y},null,8,["open"])]))}}),H1=Kt(q1,[["__scopeId","data-v-a0931fc7"]]),z1=["aria-label"],W1={class:"dialog-head"},G1={class:"dialog-title"},Y1={class:"dialog-body"},J1={class:"form-grid"},X1={class:"field span2"},Q1={class:"field span2"},Z1={class:"field span2"},e0={class:"pwd-row"},t0={class:"field span2"},n0={key:0,class:"form-error"},s0={class:"dialog-btns"},o0=Dt({__name:"CredentialDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=P(""),i=P(""),c=P(""),f=P(""),v=P(""),b=P(null);function h(x){n.open&&x.key==="Escape"&&o("cancel")}vt(()=>n.open,async x=>{var M;x?(r.value=n.initial.system,i.value=n.initial.account,c.value=n.initial.password,f.value=n.initial.remark,v.value="",window.addEventListener("keydown",h),await Rs(),(M=b.value)==null||M.focus()):window.removeEventListener("keydown",h)}),Cn(()=>window.removeEventListener("keydown",h));function _(){const x="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",M="!@#$%^&*",G=crypto.getRandomValues(new Uint8Array(14));let oe="";for(let le=0;le<G.length;le++)oe+=x[G[le]%x.length];oe+=M[crypto.getRandomValues(new Uint8Array(1))[0]%M.length],c.value=oe,v.value=""}function A(){if(!r.value.trim()||!i.value.trim()||!c.value){v.value="系统名称、账号、密码为必填项";return}o("save",{system:r.value.trim(),account:i.value.trim(),password:c.value,remark:f.value.trim()})}return(x,M)=>($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[e.open?($(),T("div",{key:0,class:"mask",onClick:M[6]||(M[6]=Nt(G=>o("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",W1,[l("span",G1,q(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:M[0]||(M[0]=G=>o("cancel"))},[ke(ze,{name:"close",size:16})])]),l("div",Y1,[l("div",J1,[l("div",X1,[M[7]||(M[7]=l("label",null,"系统名称(必填)",-1)),Pe(l("input",{ref_key:"systemInput",ref:b,class:"input","onUpdate:modelValue":M[1]||(M[1]=G=>r.value=G),placeholder:"如:企业邮箱 / OA / VPN"},null,512),[[Re,r.value]])]),l("div",Q1,[M[8]||(M[8]=l("label",null,"账号(必填)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":M[2]||(M[2]=G=>i.value=G),placeholder:"用户名、工号或邮箱"},null,512),[[Re,i.value]])]),l("div",Z1,[M[9]||(M[9]=l("label",null,"密码(必填)",-1)),l("div",e0,[Pe(l("input",{class:"input","onUpdate:modelValue":M[3]||(M[3]=G=>c.value=G),placeholder:"输入或点击生成"},null,512),[[Re,c.value]]),l("button",{class:"btn btn-sm",onClick:_},"生成")])]),l("div",t0,[M[10]||(M[10]=l("label",null,"备注",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":M[4]||(M[4]=G=>f.value=G),placeholder:"用途、到期时间、负责人等(选填)"},null,512),[[Re,f.value]])])]),v.value?($(),T("div",n0,q(v.value),1)):ve("",!0)]),l("div",s0,[l("button",{class:"btn btn-sm",onClick:M[5]||(M[5]=G=>o("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:A},"保存")])],8,z1)])):ve("",!0)]),_:1})]))}}),r0=Kt(o0,[["__scopeId","data-v-2eafe20e"]]),a0={class:"vault-page"},i0={key:0,class:"empty muted"},l0={key:1,class:"card lock-card"},u0={class:"lock-badge"},c0={key:0,class:"form-error"},d0=["disabled"],f0={key:0,class:"form-error"},p0=["disabled"],v0={class:"vault-toolbar"},m0={class:"search-wrap"},h0={class:"card table-card"},y0={class:"cred-table"},g0={class:"td-system"},b0=["onClick"],w0={class:"pwd-cell"},_0={class:"num pwd-text"},k0=["onClick"],C0=["onClick"],x0={class:"td-remark"},$0={class:"td-ops"},S0={class:"ops"},E0=["onClick"],T0=["onClick"],A0={key:0},P0={class:"muted table-note num"},O0={class:"dialog pwd-dialog"},M0={class:"dialog-head"},I0={class:"dialog-body"},j0={class:"vp-field"},D0={class:"vp-field"},L0={class:"vp-field"},K0={key:0,class:"form-error"},R0={class:"dialog-btns"},F0=5*60*1e3,N0=Dt({__name:"VaultView",setup(e){const t=P(null),n=P(pm()),o=P(!1),r=P(""),i=P(""),c=P(""),f=P(""),v=P(""),b=P([]),h=P(""),_=P({}),A=P(!1),x=P(null),M=P({system:"",account:"",password:"",remark:""}),G=P(null),oe=P(!1),le=P(""),ce=P(""),Y=P(""),E=P("");async function U(){b.value=await gm(),_.value={}}let Q=null;function B(){Q!==null&&window.clearTimeout(Q),Q=window.setTimeout(()=>{n.value&&(oa(),n.value=!1,b.value=[],_.value={},Ve("长时间未操作,密码库已自动锁定"))},F0)}function te(){n.value&&B()}ln(async()=>{t.value=await dd(),window.addEventListener("click",te),window.addEventListener("keydown",te),n.value&&B()}),Cn(()=>{window.removeEventListener("click",te),window.removeEventListener("keydown",te),Q!==null&&window.clearTimeout(Q)});const I=ot(()=>{const re=h.value.trim().toLowerCase();return re?b.value.filter(ae=>(ae.system+" "+ae.account+" "+(ae.remark||"")).toLowerCase().includes(re)):b.value});async function S(){if(!o.value){if(c.value="",!r.value){c.value="请输入主密码";return}if(r.value.length<6){c.value="主密码至少 6 位";return}if(r.value!==i.value){c.value="两次输入的主密码不一致";return}o.value=!0;try{await vm(r.value),r.value="",i.value="",n.value=!0,B(),await U(),Ve("主密码已设置,密码库已解锁")}catch(re){c.value=re instanceof Error?re.message:"设置失败"}o.value=!1}}async function O(){if(!o.value){if(v.value="",!f.value){v.value="请输入主密码";return}o.value=!0;try{await mm(f.value),f.value="",n.value=!0,B(),await U()}catch(re){v.value=re instanceof Error?re.message:"解锁失败"}o.value=!1}}function Z(){oa(),n.value=!1,b.value=[],_.value={},Q!==null&&window.clearTimeout(Q),Ve("密码库已锁定")}async function Oe(re){const ae=re.id;if(_.value[ae]){_.value[ae]=!1;return}try{re.passwordPlain=await yi(ae),_.value[ae]=!0}catch(Me){Ve(Me instanceof Error?Me.message:"解密失败")}}async function Ee(re){try{const ae=await yi(re.id);await Wi(ae),Ve("密码已复制")}catch(ae){Ve(ae instanceof Error?ae.message:"复制失败")}}async function be(re){await Wi(re.account),Ve("账号已复制")}function Ae(){x.value=null,M.value={system:"",account:"",password:"",remark:""},A.value=!0}async function He(re){try{const ae=await yi(re.id);x.value=re.id,M.value={system:re.system,account:re.account,password:ae,remark:re.remark||""},A.value=!0}catch(ae){Ve(ae instanceof Error?ae.message:"解密失败")}}async function qe(re){const ae=x.value??void 0;await bm(re,ae),A.value=!1,await U(),Ve(ae?"账号已更新":"账号已添加")}async function Xe(){G.value&&G.value.id&&(await wm(G.value.id),Ve("账号已删除")),G.value=null,await U()}function pe(){le.value="",ce.value="",Y.value="",E.value="",oe.value=!0}async function me(){E.value="";try{const re=await _m(le.value,ce.value);oe.value=!1,le.value="",ce.value="",Y.value="",Ve("主密码已修改,"+re+" 条账号密码已重新加密")}catch(re){E.value=re instanceof Error?re.message:"修改失败"}}return(re,ae)=>($(),T("div",a0,[t.value===null?($(),T("div",i0,"加载中")):n.value?($(),T(je,{key:2},[l("div",v0,[l("div",m0,[ke(ze,{name:"search",size:14,class:"search-icon"}),Pe(l("input",{class:"input","onUpdate:modelValue":ae[3]||(ae[3]=Me=>h.value=Me),placeholder:"搜索系统名称、账号或备注"},null,512),[[Re,h.value]])]),ae[16]||(ae[16]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",onClick:pe},"修改主密码"),l("button",{class:"btn btn-sm",onClick:Z},"锁定"),l("button",{class:"btn btn-primary btn-sm",onClick:Ae},"新增账号")]),l("div",h0,[l("table",y0,[ae[18]||(ae[18]=l("thead",null,[l("tr",null,[l("th",null,"系统名称"),l("th",null,"账号"),l("th",null,"密码"),l("th",null,"备注"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),T(je,null,nt(I.value,Me=>($(),T("tr",{key:Me.id},[l("td",g0,q(Me.system),1),l("td",null,[l("span",{class:"copyable",title:"点击复制账号",onClick:ft=>be(Me)},q(Me.account),9,b0)]),l("td",null,[l("div",w0,[l("span",_0,q(_.value[Me.id]?Me.passwordPlain:"........"),1),l("button",{class:"btn btn-xs",onClick:ft=>Oe(Me)},q(_.value[Me.id]?"隐藏":"显示"),9,k0),l("button",{class:"btn btn-xs",onClick:ft=>Ee(Me)},"复制",8,C0)])]),l("td",x0,q(Me.remark||"--"),1),l("td",$0,[l("div",S0,[l("button",{class:"btn btn-xs",onClick:ft=>He(Me)},"编辑",8,E0),l("button",{class:"btn btn-xs",onClick:ft=>G.value=Me},"删除",8,T0)])])]))),128)),I.value.length?ve("",!0):($(),T("tr",A0,[...ae[17]||(ae[17]=[l("td",{colspan:"5",class:"empty muted"},"暂无账号,点击右上角新增",-1)])]))])])]),l("div",P0,"共 "+q(b.value.length)+" 条账号记录 · 密码以 AES-256-GCM 加密,服务器仅存密文",1)],64)):($(),T("div",l0,[l("div",u0,[ke(ze,{name:"lock",size:26})]),t.value===!1?($(),T(je,{key:0},[ae[12]||(ae[12]=l("div",{class:"lock-title"},"设置主密码",-1)),ae[13]||(ae[13]=l("div",{class:"muted lock-tip"},"主密码用于加密保存在本机的账号密码,遗忘后无法找回,请务必牢记",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[0]||(ae[0]=Me=>r.value=Me),placeholder:"设置主密码(至少 6 位)",onKeydown:Ot(S,["enter"])},null,544),[[Re,r.value]]),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[1]||(ae[1]=Me=>i.value=Me),placeholder:"再次输入主密码",onKeydown:Ot(S,["enter"])},null,544),[[Re,i.value]]),c.value?($(),T("div",c0,q(c.value),1)):ve("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:S},"完成设置并解锁",8,d0)],64)):($(),T(je,{key:1},[ae[14]||(ae[14]=l("div",{class:"lock-title"},"密码库已锁定",-1)),ae[15]||(ae[15]=l("div",{class:"muted lock-tip"},"输入主密码解锁后查看与复制密码",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[2]||(ae[2]=Me=>f.value=Me),placeholder:"主密码",onKeydown:Ot(O,["enter"])},null,544),[[Re,f.value]]),v.value?($(),T("div",f0,q(v.value),1)):ve("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:O},"解锁",8,p0)],64))])),ke(r0,{open:A.value,title:x.value?"编辑账号":"新增账号",initial:M.value,onCancel:ae[4]||(ae[4]=Me=>A.value=!1),onSave:qe},null,8,["open","title","initial"]),ke(wn,{open:!!G.value,title:"删除确认",message:G.value?"将删除系统「"+G.value.system+"」的账号记录。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:ae[5]||(ae[5]=Me=>G.value=null),onConfirm:Xe},null,8,["open","message"]),($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[oe.value?($(),T("div",{key:0,class:"mask",onClick:ae[11]||(ae[11]=Nt(Me=>oe.value=!1,["self"]))},[l("div",O0,[l("div",M0,[ae[19]||(ae[19]=l("span",{class:"dialog-title"},"修改主密码",-1)),l("button",{class:"icon-btn",title:"关闭",onClick:ae[6]||(ae[6]=Me=>oe.value=!1)},[ke(ze,{name:"close",size:16})])]),l("div",I0,[l("div",j0,[ae[20]||(ae[20]=l("label",null,"旧主密码",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[7]||(ae[7]=Me=>le.value=Me)},null,512),[[Re,le.value]])]),l("div",D0,[ae[21]||(ae[21]=l("label",null,"新主密码(至少 6 位)",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[8]||(ae[8]=Me=>ce.value=Me)},null,512),[[Re,ce.value]])]),l("div",L0,[ae[22]||(ae[22]=l("label",null,"确认新主密码",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":ae[9]||(ae[9]=Me=>Y.value=Me)},null,512),[[Re,Y.value]])]),E.value?($(),T("div",K0,q(E.value),1)):ve("",!0),ae[23]||(ae[23]=l("div",{class:"muted vp-tip"},"确认后所有账号密码将使用新主密码重新加密",-1))]),l("div",R0,[l("button",{class:"btn btn-sm",onClick:ae[10]||(ae[10]=Me=>oe.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:me},"确认修改")])])])):ve("",!0)]),_:1})]))]))}}),V0=Kt(N0,[["__scopeId","data-v-6d2745bc"]]),B0=["aria-label"],U0={class:"dialog-head"},q0={class:"dialog-title"},H0={class:"dialog-body"},z0={class:"field"},W0={key:0},G0=["placeholder"],Y0={key:1,class:"form-error"},J0={class:"dialog-btns"},X0=Dt({__name:"InputDialog",props:{open:{type:Boolean},title:{},label:{default:""},placeholder:{default:""},initial:{default:""},confirmText:{default:"确定"},validate:{}},emits:["cancel","confirm"],setup(e,{emit:t}){const n=e,o=t,r=P(""),i=P(""),c=P(null);function f(b){n.open&&b.key==="Escape"&&o("cancel")}vt(()=>n.open,async b=>{var h,_;b?(r.value=n.initial,i.value="",window.addEventListener("keydown",f),await Rs(),(h=c.value)==null||h.focus(),(_=c.value)==null||_.select()):window.removeEventListener("keydown",f)}),Cn(()=>window.removeEventListener("keydown",f));function v(){const b=r.value.trim();if(!b){i.value="请输入内容";return}const h=n.validate?n.validate(b):null;if(h){i.value=h;return}o("confirm",b)}return(b,h)=>($(),kt(Kn,{to:"body"},[ke(hs,{name:"modal"},{default:Rn(()=>[e.open?($(),T("div",{key:0,class:"mask",onClick:h[3]||(h[3]=Nt(_=>o("cancel"),["self"]))},[l("div",{class:"dialog input-dialog",role:"dialog","aria-label":e.title},[l("div",U0,[l("span",q0,q(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:h[0]||(h[0]=_=>o("cancel"))},[ke(ze,{name:"close",size:16})])]),l("div",H0,[l("div",z0,[e.label?($(),T("label",W0,q(e.label),1)):ve("",!0),Pe(l("input",{ref_key:"input",ref:c,class:Je(["input",{invalid:i.value}]),"onUpdate:modelValue":h[1]||(h[1]=_=>r.value=_),placeholder:e.placeholder,maxlength:"20",onKeydown:Ot(v,["enter"])},null,42,G0),[[Re,r.value]]),i.value?($(),T("div",Y0,q(i.value),1)):ve("",!0)])]),l("div",J0,[l("button",{class:"btn btn-sm",onClick:h[2]||(h[2]=_=>o("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:v},q(e.confirmText),1)])],8,B0)])):ve("",!0)]),_:1})]))}}),Q0=Kt(X0,[["__scopeId","data-v-4b14ba4f"]]);function Z0(e){return'"'+(e==null?"":String(e)).replace(/"/g,'""')+'"'}async function Uu(e,t){const o="\uFEFF"+t.map(f=>f.map(Z0).join(",")).join(`\r
`);if(lo.isNativePlatform()){const{downloadText:f}=await Md(async()=>{const{downloadText:v}=await Promise.resolve().then(()=>Hg);return{downloadText:v}},void 0,import.meta.url);return f(e,o)}const r=new Blob([o],{type:"text/csv;charset=utf-8"}),i=URL.createObjectURL(r),c=document.createElement("a");return c.href=i,c.download=e,c.click(),window.setTimeout(()=>URL.revokeObjectURL(i),1e4),""}const ek={class:"settings"},tk={class:"card section"},nk={class:"muted acc-line"},sk={class:"ai-grid"},ok={class:"rule-item"},rk={class:"rule-item"},ak={class:"rule-item"},ik={key:0,class:"form-error"},lk={class:"rule-save"},uk={class:"card section"},ck={class:"rule-grid"},dk={class:"rule-item"},fk={class:"rule-item"},pk={class:"rule-item"},vk={class:"rule-item"},mk={class:"rule-item"},hk={class:"card section"},yk={class:"proj-add"},gk={key:0,class:"muted proj-tip"},bk=["onKeydown"],wk=["onClick"],_k=["onClick"],kk=["onClick"],Ck={key:1,class:"muted"},xk={class:"card section"},$k={class:"card section"},Sk={class:"muted acc-line"},Ek={class:"rule-save"},Tk=["disabled"],Ak={key:0,class:"muted acc-line"},Pk={key:1,class:"form-error"},Ok={key:2,class:"form-error"},Mk={class:"card section"},Ik={class:"ai-grid"},jk={class:"rule-item"},Dk={class:"rule-item"},Lk={class:"rule-item"},Kk={class:"card section"},Rk={class:"cat-block"},Fk={class:"cat-head"},Nk={class:"cat-chips"},Vk=["onClick"],Bk=["onClick"],Uk={class:"cat-block"},qk={class:"cat-head"},Hk={class:"cat-chips"},zk=["onClick"],Wk=["onClick"],Gk={class:"cat-block"},Yk={class:"cat-head"},Jk={class:"cat-chips"},Xk=["onClick"],Qk=["onClick"],Zk={class:"card section"},eC={class:"backup-row"},tC={key:0,class:"import-error"},nC=Dt({__name:"SettingsView",setup(e){var Be;const t=P({work_start:"09:00",work_end:"18:00",grace_minutes:10,lunch_minutes:60,remind_weekly:"friday"}),n=P([]),o=P(""),r=P(""),i=P(""),c=P(""),f=P(""),v=P(""),b=P(null),h=P(""),_=P([]),A=P([]),x=P([]);async function M(){_.value=await Zo(),A.value=await Wo("expense"),x.value=await Wo("income")}const G=P({open:!1,kind:"log",index:-1,initial:""}),oe=P(null);function le(ue){return ue==="log"?_.value:ue==="expense"?A.value:x.value}async function ce(ue,z){ue==="log"?(_.value=z,await Yh(z)):ue==="expense"?(A.value=z,await zi("expense",z)):(x.value=z,await zi("income",z))}function Y(ue){G.value={open:!0,kind:ue,index:-1,initial:""}}function E(ue,z,de){G.value={open:!0,kind:ue,index:z,initial:de}}function U(ue){const{kind:z,index:de}=G.value,De=le(z);return De.includes(ue)&&!(de>=0&&De[de]===ue)?"该分类已存在":null}async function Q(ue){const{kind:z,index:de}=G.value;de>=0?(await ce(z,le(z).map((De,st)=>st===de?ue:De)),Ve("分类已更新(历史记录自动跟随显示)")):(await ce(z,[...le(z),ue]),Ve("分类已添加")),G.value.open=!1}function B(ue,z){const de=le(ue);if(de.length<=1){Ve("至少保留一个分类");return}oe.value={kind:ue,index:z,name:de[z]}}async function te(){if(!oe.value)return;const{kind:ue,index:z}=oe.value;await ce(ue,le(ue).filter((de,De)=>De!==z)),Ve("分类已删除"),oe.value=null}const I=P(null),S=P(null),O=P(""),Z=P(((Be=zo())==null?void 0:Be.username)||""),Oe=P(""),Ee=P(""),be=P(""),Ae=P(""),He=P(!1),qe="0.7.0",Xe=P(""),pe=P(""),me=P(""),re=P(""),ae=P(!1),Me=P("");async function ft(){var ue;Xe.value=((ue=pn())==null?void 0:ue.username)||"",Me.value=await Um(),re.value=eo.value}vt(eo,ue=>{re.value=ue});async function Ct(){me.value="";try{await bd(),Ve("云端绑定已重建")}catch(ue){me.value=ue instanceof Error?ue.message:"绑定失败"}}async function xt(){if(!ae.value){me.value="",re.value=eo.value,ae.value=!0;try{const ue=await Vi();Me.value=ue.at,pe.value="推送 "+ue.pushed+" 条 · 拉取 "+ue.pulled+" 条 · 删除 "+ue.removed+" 条",re.value="",Ve("同步完成")}catch(ue){me.value=ue instanceof Error?ue.message:"同步失败"}ae.value=!1}}async function qt(){if(Ae.value="",Ee.value!==be.value){Ae.value="两次输入的新密码不一致";return}try{await Lm(Oe.value,Ee.value),Oe.value="",Ee.value="",be.value="",Ve("登录密码已修改")}catch(ue){Ae.value=ue instanceof Error?ue.message:"修改失败"}}async function bt(){await Km(),window.location.reload()}async function Le(){t.value=await vs(),n.value=await ao(!0),i.value=(await hl()).join(`
`),c.value=await St("ai_base_url",""),f.value=await St("ai_api_key",""),v.value=await St("ai_model",""),await ft(),await M()}async function g(){await Lt("ai_base_url",c.value.trim()),await Lt("ai_api_key",f.value.trim()),await Lt("ai_model",v.value.trim()),Ve("AI 配置已保存")}async function m(){const ue=it(),z=await Promise.all([Qo("2000-01-01",ue),ao(!0)]),de=z[0],De=z[1],st=new Map(De.map(Qe=>[Qe.id,Qe.name])),ht=[["日期","分类","项目","内容","耗时(分钟)","成果","待跟进","收获","备注"]];for(const Qe of de)ht.push([Qe.date,qo(Qe.category),Qe.project_id&&st.get(Qe.project_id)||"",Qe.content,Qe.minutes==null?"":Qe.minutes,Qe.is_milestone?"是":"",Qe.needs_followup?"是":"",Qe.takeaway||"",Qe.remark||""]);const It=await Uu("工作记录_"+ue.replace(/-/g,"")+".csv",ht);Ve(It?"CSV 已导出到:"+It:"CSV 已导出到系统下载目录")}async function C(){const ue=it(),z=await Promise.all([vs(),Xo("2000-01-01",ue)]),de=z[0],De=z[1],st=["周日","周一","周二","周三","周四","周五","周六"],ht=[["日期","星期","状态","上班时间","下班时间","地点","类型","说明"]];for(const Qe of De){const Xt=co(Qe,Qe.date,de,Qe.date===ue);ht.push([Qe.date,st[Fs(Qe.date).getDay()],Xt.label,Qe.clock_in_at?_n(Qe.clock_in_at):"",Qe.clock_out_at?_n(Qe.clock_out_at):"",Qe.location||"",Qe.kind==="makeup"?"补卡":Qe.kind==="leave"?"休假":"正常",Qe.note||""])}const It=await Uu("考勤记录_"+ue.replace(/-/g,"")+".csv",ht);Ve(It?"CSV 已导出到:"+It:"CSV 已导出到系统下载目录")}ln(Le);async function j(){await Lt("work_start",t.value.work_start),await Lt("work_end",t.value.work_end),await Lt("grace_minutes",String(t.value.grace_minutes)),await Lt("lunch_minutes",String(t.value.lunch_minutes)),await Lt("remind_weekly",t.value.remind_weekly),Ve("打卡规则已保存")}async function se(){await $d(i.value.split(`
`)),Ve("常用地点已保存")}async function W(){const ue=o.value.trim();if(ue){try{await oh(ue),r.value="",o.value=""}catch{r.value="项目名已存在"}await Le()}}function we(ue){b.value=ue.id,h.value=ue.name}async function _e(ue){const z=h.value.trim();if(z)try{await rh(ue.id,z),r.value=""}catch{r.value="项目名已存在"}b.value=null,await Le()}async function xe(ue){await ah(ue.id,ue.archived!==1),await Le()}async function fe(){try{const ue=await qh(),z=await Sa("实习日志备份_"+it().replace(/-/g,"")+".json",ue);Ve(z?"备份已导出到:"+z:"备份已导出到系统下载目录")}catch(ue){Ve("导出失败:"+(ue instanceof Error?ue.message:String(ue)))}}function Ke(ue){const z=ue.target,de=z.files&&z.files[0];if(O.value="",!de)return;const De=de.name;de.text().then(st=>{S.value={name:De,text:st}}),z.value=""}async function Te(){if(S.value)try{await Hh(S.value.text),S.value=null,O.value="",await Le(),Ve("数据导入完成")}catch(ue){S.value=null,O.value=ue instanceof Error?ue.message:"导入失败"}}return(ue,z)=>($(),T("div",ek,[l("div",tk,[z[27]||(z[27]=l("div",{class:"section-title"},"账号与隐私",-1)),l("div",nk,"v"+q(sn(qe))+" · 当前账号 "+q(Z.value)+" · 登录密码仅存 PBKDF2 哈希",1),l("div",sk,[l("div",ok,[z[24]||(z[24]=l("label",null,"旧登录密码",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":z[0]||(z[0]=de=>Oe.value=de)},null,512),[[Re,Oe.value]])]),l("div",rk,[z[25]||(z[25]=l("label",null,"新登录密码(至少 6 位)",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":z[1]||(z[1]=de=>Ee.value=de)},null,512),[[Re,Ee.value]])]),l("div",ak,[z[26]||(z[26]=l("label",null,"确认新登录密码",-1)),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":z[2]||(z[2]=de=>be.value=de)},null,512),[[Re,be.value]])])]),Ae.value?($(),T("div",ik,q(Ae.value),1)):ve("",!0),l("div",lk,[l("button",{class:"btn btn-primary btn-sm",onClick:qt},"修改登录密码"),l("button",{class:"btn btn-sm btn-danger",onClick:z[3]||(z[3]=de=>He.value=!0)},"删除此用户及全部数据")])]),l("div",uk,[z[34]||(z[34]=l("div",{class:"section-title"},"打卡规则",-1)),l("div",ck,[l("div",dk,[z[28]||(z[28]=l("label",null,"上班时间",-1)),Pe(l("input",{type:"time",class:"input","onUpdate:modelValue":z[4]||(z[4]=de=>t.value.work_start=de)},null,512),[[Re,t.value.work_start]])]),l("div",fk,[z[29]||(z[29]=l("label",null,"下班时间",-1)),Pe(l("input",{type:"time",class:"input","onUpdate:modelValue":z[5]||(z[5]=de=>t.value.work_end=de)},null,512),[[Re,t.value.work_end]])]),l("div",pk,[z[30]||(z[30]=l("label",null,"迟到宽限(分钟)",-1)),Pe(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":z[6]||(z[6]=de=>t.value.grace_minutes=de)},null,512),[[Re,t.value.grace_minutes,void 0,{number:!0}]])]),l("div",vk,[z[31]||(z[31]=l("label",null,"午休扣除(分钟)",-1)),Pe(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":z[7]||(z[7]=de=>t.value.lunch_minutes=de)},null,512),[[Re,t.value.lunch_minutes,void 0,{number:!0}]])]),l("div",mk,[z[33]||(z[33]=l("label",null,"周记提醒",-1)),Pe(l("select",{class:"select","onUpdate:modelValue":z[8]||(z[8]=de=>t.value.remind_weekly=de)},[...z[32]||(z[32]=[l("option",{value:"friday"},"每周五提醒",-1),l("option",{value:"off"},"关闭",-1)])],512),[[Wn,t.value.remind_weekly]])])]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:j},"保存规则")])]),l("div",hk,[z[35]||(z[35]=l("div",{class:"section-title"},"项目管理",-1)),l("div",yk,[Pe(l("input",{class:"input","onUpdate:modelValue":z[9]||(z[9]=de=>o.value=de),placeholder:"新项目名称",onKeydown:Ot(W,["enter"])},null,544),[[Re,o.value]]),l("button",{class:"btn btn-sm",onClick:W},"添加")]),r.value?($(),T("div",gk,q(r.value),1)):ve("",!0),($(!0),T(je,null,nt(n.value,de=>($(),T("div",{key:de.id,class:"proj-row"},[b.value===de.id?($(),T(je,{key:0},[Pe(l("input",{class:"input","onUpdate:modelValue":z[10]||(z[10]=De=>h.value=De),onKeydown:Ot(De=>_e(de),["enter"])},null,40,bk),[[Re,h.value]]),l("button",{class:"btn btn-sm",onClick:De=>_e(de)},"保存",8,wk),l("button",{class:"btn btn-sm",onClick:z[11]||(z[11]=De=>b.value=null)},"取消")],64)):($(),T(je,{key:1},[l("span",{class:Je(["proj-name",{archived:de.archived===1}])},q(de.name),3),l("button",{class:"icon-btn",title:"重命名",onClick:De=>we(de)},[ke(ze,{name:"edit",size:14})],8,_k),l("button",{class:"btn btn-sm",onClick:De=>xe(de)},q(de.archived===1?"恢复":"归档"),9,kk)],64))]))),128)),n.value.length?ve("",!0):($(),T("div",Ck,"暂无项目,先添加一个"))]),l("div",xk,[z[37]||(z[37]=l("div",{class:"section-title"},"常用地点",-1)),Pe(l("textarea",{class:"textarea","onUpdate:modelValue":z[12]||(z[12]=de=>i.value=de),placeholder:"每行一个地点,如:公司、客户现场、出差、居家办公"},null,512),[[Re,i.value]]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:se},"保存地点"),z[36]||(z[36]=l("span",{class:"muted loc-note"},"打卡时可直接输入新地点,保存后自动加入列表",-1))])]),l("div",$k,[z[38]||(z[38]=l("div",{class:"section-title"},"多端数据同步",-1)),l("div",Sk,"云端账号:"+q(Xe.value||"未绑定")+" · 数据存于服务器,其他端变更秒级自动刷新",1),l("div",Ek,[l("button",{class:"btn btn-primary btn-sm",disabled:ae.value,onClick:xt},q(ae.value?"同步中":"立即同步"),9,Tk),l("button",{class:"btn btn-sm",onClick:Ct},"重新校验连接")]),pe.value?($(),T("div",Ak,"上次同步:"+q(Me.value||"--")+" · "+q(pe.value),1)):ve("",!0),me.value?($(),T("div",Pk,q(me.value),1)):ve("",!0),re.value?($(),T("div",Ok,"最近自动同步失败:"+q(re.value)+"(可点「立即同步」重试)",1)):ve("",!0)]),l("div",Mk,[z[43]||(z[43]=l("div",{class:"section-title"},"AI 润色配置(可选)",-1)),l("div",Ik,[l("div",jk,[z[39]||(z[39]=l("label",null,"接口地址(OpenAI 兼容,到 /v1 为止)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":z[13]||(z[13]=de=>c.value=de),placeholder:"https://api.example.com/v1"},null,512),[[Re,c.value]])]),l("div",Dk,[z[40]||(z[40]=l("label",null,"API Key",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":z[14]||(z[14]=de=>f.value=de),placeholder:"sk-..."},null,512),[[Re,f.value]])]),l("div",Lk,[z[41]||(z[41]=l("label",null,"模型名称",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":z[15]||(z[15]=de=>v.value=de),placeholder:"如:deepseek-chat"},null,512),[[Re,v.value]])])]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:g},"保存 AI 配置"),z[42]||(z[42]=l("span",{class:"muted loc-note"},"配置仅保存在本机;总结页「AI 润色」需此处先配置",-1))])]),l("div",Kk,[z[47]||(z[47]=l("div",{class:"section-title"},"工作分类",-1)),l("div",Rk,[l("div",Fk,[z[44]||(z[44]=l("span",{class:"muted"},"工作记录分类",-1)),l("button",{class:"btn btn-xs",onClick:z[16]||(z[16]=de=>Y("log"))},"添加")]),l("div",Nk,[($(!0),T(je,null,nt(_.value,(de,De)=>($(),T("span",{key:de+De,class:"cat-chip"},[gt(q(de)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:st=>E("log",De,de)},"改",8,Vk),l("button",{class:"chip-btn",title:"删除",onClick:st=>B("log",De)},"删",8,Bk)]))),128))])]),l("div",Uk,[l("div",qk,[z[45]||(z[45]=l("span",{class:"muted"},"记账支出分类",-1)),l("button",{class:"btn btn-xs",onClick:z[17]||(z[17]=de=>Y("expense"))},"添加")]),l("div",Hk,[($(!0),T(je,null,nt(A.value,(de,De)=>($(),T("span",{key:de+De,class:"cat-chip"},[gt(q(de)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:st=>E("expense",De,de)},"改",8,zk),l("button",{class:"chip-btn",title:"删除",onClick:st=>B("expense",De)},"删",8,Wk)]))),128))])]),l("div",Gk,[l("div",Yk,[z[46]||(z[46]=l("span",{class:"muted"},"记账收入分类",-1)),l("button",{class:"btn btn-xs",onClick:z[18]||(z[18]=de=>Y("income"))},"添加")]),l("div",Jk,[($(!0),T(je,null,nt(x.value,(de,De)=>($(),T("span",{key:de+De,class:"cat-chip"},[gt(q(de)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:st=>E("income",De,de)},"改",8,Xk),l("button",{class:"chip-btn",title:"删除",onClick:st=>B("income",De)},"删",8,Qk)]))),128))])])]),l("div",Zk,[z[48]||(z[48]=l("div",{class:"section-title"},"数据备份",-1)),l("div",eC,[l("button",{class:"btn btn-sm",onClick:fe},"导出 JSON 备份"),l("button",{class:"btn btn-sm",onClick:z[19]||(z[19]=de=>{var De;return(De=I.value)==null?void 0:De.click()})},"导入 JSON 备份"),l("button",{class:"btn btn-sm",onClick:m},"导出工作记录 CSV"),l("button",{class:"btn btn-sm",onClick:C},"导出考勤 CSV"),l("input",{ref_key:"fileInput",ref:I,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:Ke},null,544)]),O.value?($(),T("div",tC,q(O.value),1)):ve("",!0),z[49]||(z[49]=l("div",{class:"muted backup-note"},"数据保存在云端服务器;导出的 JSON 备份用于跨设备迁移或灾后恢复。",-1))]),ke(Q0,{open:G.value.open,title:G.value.index>=0?"修改分类名称":"添加分类",label:"分类名称",placeholder:"如:制度学习 / 差旅交通",initial:G.value.initial,validate:U,"confirm-text":"保存",onCancel:z[20]||(z[20]=de=>G.value.open=!1),onConfirm:Q},null,8,["open","title","initial"]),ke(wn,{open:!!oe.value,title:"删除分类",message:oe.value?"将删除分类「"+oe.value.name+"」。历史记录不受影响,仍按原分类展示。":"","confirm-text":"删除",danger:"",onCancel:z[21]||(z[21]=de=>oe.value=null),onConfirm:te},null,8,["open","message"]),ke(wn,{open:!!S.value,title:"导入确认",message:S.value?"将从文件「"+S.value.name+"」导入备份。现有全部数据将被覆盖,且不可恢复,请先确认已导出当前备份。":"","confirm-text":"覆盖导入",danger:"",onCancel:z[22]||(z[22]=de=>S.value=null),onConfirm:Te},null,8,["open","message"]),ke(wn,{open:He.value,title:"删除用户确认",message:"将永久删除云端账号「"+Z.value+"」及其服务器上的全部数据:工作日志、考勤、备忘录、账号密码库都将被清除,任何设备都无法再取回,且不可恢复。请确认。","confirm-text":"永久删除",danger:"",onCancel:z[23]||(z[23]=de=>He.value=!1),onConfirm:bt},null,8,["open","message"])]))}}),sC=Kt(nC,[["__scopeId","data-v-10f77319"]]),oC={class:"tp-main"},rC={class:"tp-title"},aC={class:"tp-meta"},iC={class:"tp-time num"},lC=Dt({__name:"TimerPanel",setup(e){const t=P(null),n=P(Date.now());let o=null,r=null;async function i(){try{t.value=await wh()}catch{}}const c=ot(()=>{const h=t.value;if(!h||!h.timer_started_at)return 0;const _=(h.actual_minutes||0)*60,A=Math.max(0,Math.floor((n.value-new Date(h.timer_started_at).getTime())/1e3));return _+A}),f=ot(()=>{const h=c.value,_=Math.floor(h/3600),A=Math.floor(h%3600/60),x=h%60,M=G=>String(G).padStart(2,"0");return _>0?_+":"+M(A)+":"+M(x):A+":"+M(x)});async function v(){const h=t.value;h&&(await $a(h.id),Ve("已停止计时:"+h.title),await i())}function b(){location.hash="#/plan"}return vt(yd,()=>{i()}),ln(()=>{i(),o=window.setInterval(()=>{i()},15e3),r=window.setInterval(()=>{n.value=Date.now()},1e3),window.addEventListener("focus",i)}),Cn(()=>{o!==null&&window.clearInterval(o),r!==null&&window.clearInterval(r),window.removeEventListener("focus",i)}),(h,_)=>($(),kt(hs,{name:"tp"},{default:Rn(()=>[t.value&&t.value.timer_started_at?($(),T("div",{key:0,class:"tp",onClick:b,title:"点击查看计划页"},[_[0]||(_[0]=l("span",{class:"tp-pulse"},null,-1)),l("span",oC,[l("span",rC,q(t.value.title),1),l("span",aC,q(t.value.kind)+" · 计时中",1)]),l("span",iC,q(f.value),1),l("span",{class:"tp-stop",role:"button",title:"停止计时",onClick:Nt(v,["stop"])},"停止")])):ve("",!0)]),_:1}))}}),uC=Kt(lC,[["__scopeId","data-v-a8f9ed22"]]),cC={class:"admin-page"},dC={class:"card table-card"},fC={class:"toolbar"},pC={key:0,class:"form-error tb-error"},vC={class:"admin-table"},mC={class:"td-name","data-label":"用户名"},hC={"data-label":"角色"},yC={key:0,class:"role-badge"},gC={key:1,class:"muted"},bC={class:"muted num","data-label":"创建时间"},wC={class:"muted num","data-label":"数据量"},_C={class:"td-ops"},kC={class:"ops"},CC=["onClick"],xC=["disabled","onClick"],$C={key:0},SC={key:1,class:"muted load-line"},EC={class:"dialog",role:"dialog","aria-label":"新增用户"},TC={class:"dialog-head"},AC={class:"dialog-body"},PC={class:"form-row"},OC={class:"form-row"},MC={class:"form-row"},IC={key:0,class:"form-error"},jC={class:"dialog-btns"},DC=["disabled"],LC={class:"dialog",role:"dialog","aria-label":"重置密码"},KC={class:"dialog-head"},RC={class:"dialog-title"},FC={class:"dialog-body"},NC={class:"form-row"},VC={key:0,class:"form-error"},BC={class:"dialog-btns"},UC=["disabled"],qC=Dt({__name:"UserAdminView",setup(e){const t=P([]),n=P(""),o=P(!0),r=P("");async function i(I,S){const O=await Ns();let Z=xa();if(!Z){const Ee=pn(),be=await fetch(O+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ee==null?void 0:Ee.username,password:Ee==null?void 0:Ee.password})});if(be.ok){const Ae=await be.json();Z=String(Ae.token||""),Ho(Z)}}const Oe=await fetch(O+I,{method:S?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Z},body:S?JSON.stringify(S):void 0});if(Oe.status===401&&pn()){const Ee=pn(),be=await fetch(O+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ee==null?void 0:Ee.username,password:Ee==null?void 0:Ee.password})});if(be.ok){const Ae=await be.json();Z=String(Ae.token||""),Ho(Z);const He=await fetch(O+I,{method:S?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Z},body:S?JSON.stringify(S):void 0});return{ok:He.ok,status:He.status,data:await He.json().catch(()=>({}))}}}return{ok:Oe.ok,status:Oe.status,data:await Oe.json().catch(()=>({}))}}async function c(){o.value=!0,r.value="";const I=await i("/api/admin/users");if(!I.ok){o.value=!1,r.value=I.data&&I.data.error||"加载失败 "+I.status;return}t.value=I.data.users||[],n.value=I.data.me||"",o.value=!1}function f(I){return I<=0?"--":I<1024?I+" B":I<1024*1024?(I/1024).toFixed(1)+" KB":(I/1024/1024).toFixed(2)+" MB"}function v(I){return(I||"").slice(0,10)}const b=P(!1),h=P(""),_=P(""),A=P(""),x=P(""),M=P(!1);function G(){b.value=!0,x.value="",h.value="",_.value="",A.value=""}async function oe(){const I=h.value.trim();if(_.value!==A.value){x.value="两次输入的密码不一致";return}if(_.value.length<6){x.value="密码至少 6 位";return}M.value=!0;const S=await i("/api/admin/users/create",{username:I,password:_.value});if(M.value=!1,!S.ok){x.value=S.data&&S.data.error||"创建失败 "+S.status;return}Ve("用户「"+I+"」已创建"),b.value=!1,await c()}const le=P(null),ce=P(""),Y=P(""),E=P(!1);function U(I){le.value=I,ce.value="",Y.value=""}async function Q(){if(!le.value)return;if(ce.value.length<6){Y.value="密码至少 6 位";return}E.value=!0;const I=await i("/api/admin/users/password",{userId:le.value.id,newPassword:ce.value});if(E.value=!1,!I.ok){Y.value=I.data&&I.data.error||"重置失败 "+I.status;return}Ve("已重置「"+le.value.username+"」的登录密码"),le.value=null}const B=P(null);async function te(){if(!B.value)return;const I=await i("/api/admin/users/delete",{userId:B.value.id});if(!I.ok){B.value=null,Ve(I.data&&I.data.error||"删除失败");return}Ve("已删除账号「"+B.value.username+"」及其全部云端数据"),B.value=null,await c()}return ln(c),(I,S)=>($(),T("div",cC,[l("div",dC,[l("div",fC,[S[12]||(S[12]=l("div",{class:"head-wrap"},[l("div",{class:"tb-title"},"用户管理"),l("div",{class:"muted tb-sub"},"云端账号统一管理 · 管理员:xionglin")],-1)),l("button",{class:"btn btn-primary btn-sm",onClick:G},[ke(ze,{name:"plus",size:14}),S[11]||(S[11]=gt(" 新增用户 ",-1))])]),r.value?($(),T("div",pC,q(r.value),1)):ve("",!0),l("table",vC,[S[14]||(S[14]=l("thead",null,[l("tr",null,[l("th",null,"用户名"),l("th",null,"角色"),l("th",null,"创建时间"),l("th",null,"数据量"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),T(je,null,nt(t.value,O=>($(),T("tr",{key:O.id},[l("td",mC,q(O.username),1),l("td",hC,[O.role==="admin"?($(),T("span",yC,"管理员")):($(),T("span",gC,"普通用户"))]),l("td",bC,q(v(O.created_at)),1),l("td",wC,q(f(O.data_bytes)),1),l("td",_C,[l("div",kC,[l("button",{class:"btn btn-xs",onClick:Z=>U(O)},"重置密码",8,CC),l("button",{class:"btn btn-xs btn-danger",disabled:O.id===n.value,onClick:Z=>B.value=O},"删除",8,xC)])])]))),128)),!o.value&&!t.value.length?($(),T("tr",$C,[...S[13]||(S[13]=[l("td",{colspan:"5",class:"empty muted"},"加载结果为空",-1)])])):ve("",!0)])]),o.value?($(),T("div",SC,"加载中")):ve("",!0)]),S[20]||(S[20]=l("div",{class:"muted admin-note"},"重置密码立即生效;删除账号将移除其全部云端数据,不可恢复。自己的账号不能删除。",-1)),($(),kt(Kn,{to:"body"},[b.value?($(),T("div",{key:0,class:"mask",onClick:S[5]||(S[5]=Nt(O=>b.value=!1,["self"]))},[l("div",EC,[l("div",TC,[S[15]||(S[15]=l("span",{class:"dialog-title"},"新增用户",-1)),l("button",{class:"icon-btn",onClick:S[0]||(S[0]=O=>b.value=!1)},[ke(ze,{name:"close",size:16})])]),l("div",AC,[l("div",PC,[S[16]||(S[16]=l("label",null,"用户名(2 到 20 个字符)",-1)),Pe(l("input",{class:"input","onUpdate:modelValue":S[1]||(S[1]=O=>h.value=O),placeholder:"如:xiaowang"},null,512),[[Re,h.value]])]),l("div",OC,[S[17]||(S[17]=l("label",null,"初始登录密码(至少 6 位)",-1)),Pe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[2]||(S[2]=O=>_.value=O),placeholder:"转发给使用者,登录后可自行修改"},null,512),[[Re,_.value]])]),l("div",MC,[S[18]||(S[18]=l("label",null,"确认密码",-1)),Pe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[3]||(S[3]=O=>A.value=O),onKeydown:Ot(oe,["enter"])},null,544),[[Re,A.value]])]),x.value?($(),T("div",IC,q(x.value),1)):ve("",!0)]),l("div",jC,[l("button",{class:"btn btn-sm",onClick:S[4]||(S[4]=O=>b.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:M.value||!h.value.trim(),onClick:oe},q(M.value?"创建中":"创建"),9,DC)])])])):ve("",!0)])),($(),kt(Kn,{to:"body"},[le.value?($(),T("div",{key:0,class:"mask",onClick:S[9]||(S[9]=Nt(O=>le.value=null,["self"]))},[l("div",LC,[l("div",KC,[l("span",RC,"重置「"+q(le.value.username)+"」的登录密码",1),l("button",{class:"icon-btn",onClick:S[6]||(S[6]=O=>le.value=null)},[ke(ze,{name:"close",size:16})])]),l("div",FC,[l("div",NC,[S[19]||(S[19]=l("label",null,"新登录密码(至少 6 位)",-1)),Pe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[7]||(S[7]=O=>ce.value=O),onKeydown:Ot(Q,["enter"])},null,544),[[Re,ce.value]])]),Y.value?($(),T("div",VC,q(Y.value),1)):ve("",!0)]),l("div",BC,[l("button",{class:"btn btn-sm",onClick:S[8]||(S[8]=O=>le.value=null)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:E.value,onClick:Q},q(E.value?"提交中":"重置"),9,UC)])])])):ve("",!0)])),ke(wn,{open:!!B.value,title:"删除用户确认",message:B.value?"将永久删除云端账号「"+B.value.username+"」及其服务器上的全部数据,不可恢复。请确认。":"","confirm-text":"永久删除",danger:"",onCancel:S[10]||(S[10]=O=>B.value=null),onConfirm:te},null,8,["open","message"])]))}}),HC=Kt(qC,[["__scopeId","data-v-2d48d2c9"]]),zC={class:"login-page"},WC={class:"card login-card"},GC={class:"login-brand"},YC={class:"brand-icon"},JC={class:"seg"},XC=["placeholder"],QC={key:1,class:"form-error"},ZC=["disabled"],ex=Dt({__name:"LoginView",emits:["login"],setup(e,{emit:t}){const n=t,o=P("login"),r=P(""),i=P(""),c=P(""),f=P(""),v=P(!1);function b(_){o.value=_,f.value="",c.value=""}async function h(){if(!v.value){f.value="",v.value=!0;try{let _;if(o.value==="login")_=await Om(r.value,i.value);else{if(i.value.length<6){f.value="登录密码至少 6 位",v.value=!1;return}if(i.value!==c.value){f.value="两次输入的密码不一致",v.value=!1;return}_=await Mm(r.value,i.value)}n("login",_)}catch(_){f.value=_ instanceof Error?_.message:"操作失败"}v.value=!1}}return(_,A)=>($(),T("div",zC,[l("div",WC,[l("div",GC,[l("div",YC,[ke(ze,{name:"calendar",size:22})]),A[5]||(A[5]=l("div",{class:"login-title"},"实习工作日志",-1)),A[6]||(A[6]=l("div",{class:"muted login-sub"},"打卡 · 记录 · 总结 · 备忘录 · 密码库",-1)),A[7]||(A[7]=l("div",{class:"muted login-sub"},"数据保存在云端服务器,所有设备登录同一账号即可实时同步",-1))]),l("div",JC,[l("button",{class:Je(["seg-btn",{active:o.value==="login"}]),onClick:A[0]||(A[0]=x=>b("login"))},"登录",2),l("button",{class:Je(["seg-btn",{active:o.value==="create"}]),onClick:A[1]||(A[1]=x=>b("create"))},"创建用户",2)]),Pe(l("input",{class:"input","onUpdate:modelValue":A[2]||(A[2]=x=>r.value=x),placeholder:"用户名(2 到 20 个字符)",onKeydown:Ot(h,["enter"])},null,544),[[Re,r.value]]),Pe(l("input",{type:"password",class:"input","onUpdate:modelValue":A[3]||(A[3]=x=>i.value=x),placeholder:o.value==="login"?"登录密码":"设置登录密码(至少 6 位)",onKeydown:Ot(h,["enter"])},null,40,XC),[[Re,i.value]]),o.value==="create"?Pe(($(),T("input",{key:0,type:"password",class:"input","onUpdate:modelValue":A[4]||(A[4]=x=>c.value=x),placeholder:"再次输入密码",onKeydown:Ot(h,["enter"])},null,544)),[[Re,c.value]]):ve("",!0),f.value?($(),T("div",QC,q(f.value),1)):ve("",!0),l("button",{class:"btn btn-primary login-btn",disabled:v.value,onClick:h},q(o.value==="login"?"登录":"创建并进入"),9,ZC),A[8]||(A[8]=l("div",{class:"muted login-note"}," 登录密码仅服务器保存哈希;本机保存加密的自动登录凭据,登录后无需重复输入 ",-1))])]))}}),tx=Kt(ex,[["__scopeId","data-v-e9c1c40d"]]),nx={key:1,class:"app"},sx={class:"side"},ox={class:"brand-mark"},rx={class:"side-nav"},ax={key:0,class:"nav-group"},ix=["data-tip","onClick"],lx={class:"nav-label"},ux={class:"side-foot"},cx={class:"avatar"},dx={class:"foot-name"},fx={class:"main"},px={class:"topbar"},vx={class:"title"},mx={class:"gsearch"},hx={key:0,class:"gs-panel"},yx={key:0,class:"gs-group muted"},gx=["onMousedown"],bx={class:"tag"},wx={class:"gs-text"},_x={class:"muted num gs-date"},kx={key:1,class:"gs-group muted"},Cx=["onMousedown"],xx={class:"gs-text"},$x={class:"muted gs-sub"},Sx={key:1,class:"gs-empty muted"},Ex={class:"topbar-actions"},Tx=["disabled"],Ax={class:"num"},Px={class:"content"},Ox={class:"content-inner"},Mx={class:"tabbar"},Ix=["onClick"],jx={class:"sheet-user num"},Dx=["onClick"],Lx={class:"sheet-name"},Kx={class:"msw"},Rx={class:"msw-bar"},Fx={class:"msw-results"},Nx={key:0,class:"gs-group muted"},Vx=["onMousedown"],Bx={class:"tag"},Ux={class:"gs-text"},qx={class:"muted num gs-date"},Hx={key:1,class:"gs-group muted"},zx=["onMousedown"],Wx={class:"gs-text"},Gx={class:"muted gs-sub"},Yx={key:1,class:"gs-empty muted"},Jx={class:"toast-wrap"},Xx=Dt({__name:"App",setup(e){const t=by(),n=P(zo());async function o(g){n.value=g,aa(g.userId),location.hash="#/calendar",U.value="calendar",await Me(),await Le(),c();try{await bd(),await no()}catch{}Ve("欢迎,"+g.username);const m=sessionStorage.getItem("dsh_migrate_toast");m&&(sessionStorage.removeItem("dsh_migrate_toast"),Ve("已迁移原有数据 "+m+" 条"))}async function r(){Ae.value=!1,Ee.value=!1,Gm(),i!==null&&(window.clearInterval(i),i=null),await jm(),n.value=null,U.value="calendar",location.hash="#/calendar",Ve("已退出登录")}let i=null;function c(){Wm(),i!==null&&window.clearInterval(i),i=window.setInterval(()=>{no()},60*1e3),no()}const f=P(null),v=P(""),b=P(!1),h=P({logs:[],memos:[]});let _=null;const A=ot(()=>!!(h.value.logs.length||h.value.memos.length));function x(){_&&window.clearTimeout(_);const g=v.value;_=window.setTimeout(async()=>{const m=g.trim();if(!m){h.value={logs:[],memos:[]};return}const C=await Promise.all([Kh(m,8),Rh(m,4)]);h.value={logs:C[0],memos:C[1]}},200)}function M(){v.value="",h.value={logs:[],memos:[]},b.value=!1}function G(g){Fi.value=g.date,Q("calendar"),M()}function oe(g){Ni.value=g.id,Q("memo"),M()}function le(){window.setTimeout(()=>{b.value=!1},150)}function ce(g){var m;(g.ctrlKey||g.metaKey)&&g.key.toLowerCase()==="k"&&(g.preventDefault(),(m=f.value)==null||m.focus())}const Y=[{key:"calendar",name:"日历",icon:"calendar",group:"记录"},{key:"today",name:"详情",icon:"edit",group:"记录"},{key:"plan",name:"计划",icon:"plan",group:"记录"},{key:"ledger",name:"记账",icon:"wallet",group:"工具"},{key:"memo",name:"备忘录",icon:"memo",group:"工具"},{key:"stats",name:"统计",icon:"chart",group:"分析"},{key:"report",name:"总结",icon:"export",group:"分析"},{key:"vault",name:"密码库",icon:"lock",group:"系统"},{key:"settings",name:"设置",icon:"settings",group:"系统"},{key:"admin",name:"用户管理",icon:"shield",group:"系统"}];function E(){var m;const g=(location.hash||"").replace("#/","");return!Y.some(C=>C.key===g)||g==="admin"&&(((m=zo())==null?void 0:m.username)||"")!=="xionglin"?"calendar":g}const U=P(E());window.addEventListener("hashchange",()=>{U.value=E()});function Q(g){location.hash="#/"+g}const B=ot(()=>Y.find(g=>g.key===U.value)||Y[0]),te=ot(()=>{var g;return(((g=n.value)==null?void 0:g.username)||"")==="xionglin"}),I=ot(()=>te.value?Y:Y.filter(g=>g.key!=="admin")),S=ot(()=>{const g=Y.filter(m=>!Z.includes(m.key));return te.value?g:g.filter(m=>m.key!=="admin")}),O=ot(()=>S.value.some(g=>g.key===U.value));vt([te,U],()=>{U.value==="admin"&&!te.value&&Q("calendar")},{immediate:!0});const Z=["calendar","today","plan","ledger"],Oe=Y.filter(g=>Z.includes(g.key)),Ee=P(!1);function be(g){Ee.value=!1,Q(g)}const Ae=P(!1),He=P(null);function qe(){Ae.value=!0,window.setTimeout(()=>{var g;return(g=He.value)==null?void 0:g.focus()},60)}function Xe(g){G(g),Ae.value=!1}function pe(g){oe(g),Ae.value=!1}const me=P(it()),re=P(void 0),ae=P(!1);async function Me(){if(re.value=await kn(me.value),ae.value=!1,new Date().getHours()<4){const m=await kn(Ut(me.value,-1));ae.value=!!(m&&m.clock_in_at&&!m.clock_out_at)}}const ft=ot(()=>{const g=re.value;return g&&g.clock_in_at&&!g.clock_out_at?!0:ae.value&&!(g&&g.clock_in_at)}),Ct=ot(()=>{const g=re.value;return!!(g&&g.clock_in_at&&g.clock_out_at)}),xt=ot(()=>{const g=re.value;return ft.value?"下班打卡":Ct.value?"已打卡 "+_n(g==null?void 0:g.clock_in_at)+" - "+_n(g==null?void 0:g.clock_out_at):"上班打卡"});async function qt(){if(ft.value)try{await lh()}catch{}else await Sd(me.value);await Me(),is()}vt(uo,()=>{n.value&&Me()});const bt=P(!1);async function Le(){if((await vs()).remind_weekly==="off"){bt.value=!1;return}const m=new Date().getDay();if(m===5||m===6||m===0){const C=await yl(Zs(me.value));bt.value=!C||!C.highlights&&!C.challenges&&!C.plan_next}else bt.value=!1}return ln(async()=>{window.addEventListener("keydown",ce),n.value&&(aa(n.value.userId),await Me(),await Le(),c())}),(g,m)=>{var C,j,se;return n.value?($(),T("div",nx,[l("nav",sx,[l("div",{class:"brand",onClick:m[0]||(m[0]=W=>Q("calendar"))},[l("span",ox,[ke(ze,{name:"calendar",size:15})]),m[12]||(m[12]=l("span",{class:"brand-name"},"实习工作日志",-1))]),l("div",rx,[($(!0),T(je,null,nt(I.value,(W,we)=>($(),T(je,{key:W.key},[we===0||W.group!==I.value[we-1].group?($(),T("div",ax,q(W.group),1)):ve("",!0),l("button",{class:Je(["nav-btn",{active:U.value===W.key}]),"data-tip":W.name,onClick:_e=>Q(W.key)},[ke(ze,{name:W.icon,size:17},null,8,["name"]),l("span",lx,q(W.name),1)],10,ix)],64))),128))]),l("div",ux,[l("span",cx,q((((C=n.value)==null?void 0:C.username)||"用户").slice(0,1).toUpperCase()),1),l("span",dx,q((j=n.value)==null?void 0:j.username),1),l("button",{class:"icon-btn",title:"退出登录",onClick:r},[ke(ze,{name:"export",size:15})])])]),l("div",fx,[l("header",px,[l("span",vx,q(B.value.name),1),l("button",{class:"mob-search-btn",title:"搜索",onClick:qe},[ke(ze,{name:"search",size:16})]),l("div",mx,[ke(ze,{name:"search",size:14,class:"gs-icon"}),Pe(l("input",{ref_key:"gsInput",ref:f,class:"input gs-input","onUpdate:modelValue":m[1]||(m[1]=W=>v.value=W),placeholder:"搜索工作记录与备忘录(Ctrl+K)",onInput:x,onFocus:m[2]||(m[2]=W=>b.value=!0),onBlur:le,onKeydown:Ot(M,["esc"])},null,544),[[Re,v.value]]),b.value&&v.value.trim()?($(),T("div",hx,[A.value?($(),T(je,{key:0},[h.value.logs.length?($(),T("div",yx,"工作记录")):ve("",!0),($(!0),T(je,null,nt(h.value.logs,W=>($(),T("div",{key:"l"+W.id,class:"gs-item",onMousedown:Nt(we=>G(W),["prevent"])},[l("span",bx,q(sn(qo)(W.category)),1),l("span",wx,q(W.content),1),l("span",_x,q(W.date),1)],40,gx))),128)),h.value.memos.length?($(),T("div",kx,"备忘录")):ve("",!0),($(!0),T(je,null,nt(h.value.memos,W=>($(),T("div",{key:"m"+W.id,class:"gs-item",onMousedown:Nt(we=>oe(W),["prevent"])},[l("span",xx,q(W.title||"无标题"),1),l("span",$x,q(W.content),1)],40,Cx))),128))],64)):($(),T("div",Sx,"无匹配结果"))])):ve("",!0)]),m[14]||(m[14]=l("span",{class:"flex1"},null,-1)),l("div",Ex,[bt.value?($(),T("button",{key:0,class:"week-tip",onClick:m[3]||(m[3]=W=>Q("report"))},[...m[13]||(m[13]=[l("span",{class:"dot",style:{background:"var(--warn)"}},null,-1),gt(" 填写本周周记 ",-1)])])):ve("",!0),l("button",{class:"btn btn-primary",disabled:Ct.value,onClick:qt},[ke(ze,{name:Ct.value?"check-circle":"clock",size:14},null,8,["name"]),l("span",Ax,q(xt.value),1)],8,Tx)])]),l("main",Px,[l("div",Ox,[U.value==="calendar"?($(),kt(Og,{key:0})):U.value==="today"?($(),kt(tb,{key:1})):U.value==="plan"?($(),kt(lw,{key:2})):U.value==="stats"?($(),kt(Fw,{key:3})):U.value==="report"?($(),kt(x_,{key:4})):U.value==="ledger"?($(),kt(E1,{key:5})):U.value==="memo"?($(),kt(H1,{key:6})):U.value==="vault"?($(),kt(V0,{key:7})):U.value==="admin"?($(),kt(HC,{key:8})):($(),kt(sC,{key:9}))])]),l("nav",Mx,[($(!0),T(je,null,nt(sn(Oe),W=>($(),T("button",{key:W.key,class:Je(["tab-btn",{active:U.value===W.key}]),onClick:we=>Q(W.key)},[ke(ze,{name:W.icon,size:20},null,8,["name"]),l("span",null,q(W.name),1)],10,Ix))),128)),l("button",{class:Je(["tab-btn",{active:O.value}]),onClick:m[4]||(m[4]=W=>Ee.value=!0)},[ke(ze,{name:"more",size:20}),m[15]||(m[15]=l("span",null,"更多",-1))],2)]),Ee.value?($(),T("div",{key:0,class:"sheet-mask",onClick:m[7]||(m[7]=W=>Ee.value=!1)},[l("div",{class:"more-sheet",onClick:m[6]||(m[6]=Nt(()=>{},["stop"]))},[m[17]||(m[17]=l("div",{class:"sheet-handle"},null,-1)),l("div",jx,q((se=n.value)==null?void 0:se.username),1),($(!0),T(je,null,nt(S.value,W=>($(),T("button",{key:W.key,class:"sheet-row",onClick:we=>be(W.key)},[ke(ze,{name:W.icon,size:18},null,8,["name"]),l("span",Lx,q(W.name),1),ke(ze,{name:"chevron-right",size:14,class:"sheet-go"})],8,Dx))),128)),m[18]||(m[18]=l("div",{class:"sheet-divider"},null,-1)),l("button",{class:"sheet-row sheet-danger",onClick:m[5]||(m[5]=W=>{Ee.value=!1,r()})},[ke(ze,{name:"close",size:18}),m[16]||(m[16]=l("span",{class:"sheet-name"},"退出登录",-1))])])])):ve("",!0),Ae.value?($(),T("div",{key:1,class:"msw-mask",onClick:m[11]||(m[11]=Nt(W=>Ae.value=!1,["self"]))},[l("div",Kx,[l("div",Rx,[ke(ze,{name:"search",size:16,class:"msw-icon"}),Pe(l("input",{ref_key:"msInput",ref:He,class:"msw-input","onUpdate:modelValue":m[8]||(m[8]=W=>v.value=W),placeholder:"搜索工作记录与备忘录",onInput:x,onKeydown:m[9]||(m[9]=Ot(W=>Ae.value=!1,["esc"]))},null,544),[[Re,v.value]]),l("button",{class:"icon-btn",onClick:m[10]||(m[10]=W=>{M(),Ae.value=!1})},[ke(ze,{name:"close",size:16})])]),l("div",Fx,[A.value?($(),T(je,{key:0},[h.value.logs.length?($(),T("div",Nx,"工作记录")):ve("",!0),($(!0),T(je,null,nt(h.value.logs,W=>($(),T("div",{key:"l"+W.id,class:"msw-item",onMousedown:Nt(we=>Xe(W),["prevent"])},[l("span",Bx,q(sn(qo)(W.category)),1),l("span",Ux,q(W.content),1),l("span",qx,q(W.date),1)],40,Vx))),128)),h.value.memos.length?($(),T("div",Hx,"备忘录")):ve("",!0),($(!0),T(je,null,nt(h.value.memos,W=>($(),T("div",{key:"m"+W.id,class:"msw-item",onMousedown:Nt(we=>pe(W),["prevent"])},[l("span",Wx,q(W.title||"无标题"),1),l("span",Gx,q(W.content),1)],40,zx))),128))],64)):v.value.trim()?($(),T("div",Yx,"无匹配结果")):ve("",!0)])])])):ve("",!0)]),n.value?($(),kt(uC,{key:0})):ve("",!0),l("div",Jx,[ke(Av,{name:"toast"},{default:Rn(()=>[($(!0),T(je,null,nt(sn(t),W=>($(),T("div",{key:W.id,class:"toast"},q(W.text),1))),128))]),_:1})])])):($(),kt(tx,{key:0,onLogin:o}))}}}),Qx=Kt(Xx,[["__scopeId","data-v-7d26fba6"]]);function Vr(e,t){try{let n=document.getElementById("fatal-overlay");n||(n=document.createElement("div"),n.id="fatal-overlay",n.style.cssText="position:fixed;inset:0;z-index:99999;background:#FFFFFF;color:#1D2129;padding:20px;overflow:auto;font:13px/1.7 -apple-system,PingFang SC,Microsoft YaHei,sans-serif;",n.addEventListener("click",i=>{i.target===n&&n.parentElement&&n.parentElement.removeChild(n)}),document.body.appendChild(n));const o=document.createElement("div");o.style.cssText="border:1px solid #E5484D;border-radius:8px;padding:12px;margin-bottom:12px;word-break:break-all;white-space:pre-wrap;",o.textContent=e+`
`+t;const r=document.createElement("button");r.textContent="重新加载",r.style.cssText="margin:-4px 0 12px;padding:6px 16px;border:1px solid #E5484D;border-radius:6px;background:#FFFFFF;color:#E5484D;font-size:13px;cursor:pointer;",r.addEventListener("click",()=>{try{location.reload()}catch{}}),n.appendChild(o),n.appendChild(r)}catch{}}async function Zx(){const e=await Im();e&&aa(e.userId);const t=qv(Qx);t.config.errorHandler=(n,o,r)=>{const i=n;Vr("应用内部错误(点击空白处关闭,请将以下内容发送给开发者)",i&&(i.stack||i.message)||String(n)+`
触发位置: `+r)},window.addEventListener("unhandledrejection",n=>{const o=n.reason;Vr("未处理的异步错误(点击空白处关闭)",o&&(o.stack||o.message)||String(n.reason))}),window.addEventListener("error",n=>{n.message&&n.message!=="ResizeObserver loop limit exceeded"&&Vr("运行错误(点击空白处关闭)",n.message)}),t.mount("#app"),"serviceWorker"in navigator&&location.protocol.startsWith("http")&&window.addEventListener("load",()=>{navigator.serviceWorker.register("sw.js").catch(()=>{})})}Zx().catch(e=>{Vr("无法启动:连接同步服务器失败",e&&(e.stack||e.message)||String(e))});export{Dd as W,Md as _,Ug as b,jd as r};