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

28 lines
352 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 l of r)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function n(r){const l={};return r.integrity&&(l.integrity=r.integrity),r.referrerPolicy&&(l.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?l.credentials="include":r.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(r){if(r.ep)return;r.ep=!0;const l=n(r);fetch(r.href,l)}})();/**
* @vue/shared v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Ji(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const $t={},Ms=[],Dn=()=>{},Zu=()=>!1,ca=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),da=e=>e.startsWith("onUpdate:"),Rt=Object.assign,Xi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},gf=Object.prototype.hasOwnProperty,yt=(e,t)=>gf.call(e,t),Ge=Array.isArray,is=e=>Wo(e)==="[object Map]",Ls=e=>Wo(e)==="[object Set]",eu=e=>Wo(e)==="[object Date]",rt=e=>typeof e=="function",Ot=e=>typeof e=="string",Ln=e=>typeof e=="symbol",_t=e=>e!==null&&typeof e=="object",ec=e=>(_t(e)||rt(e))&&rt(e.then)&&rt(e.catch),tc=Object.prototype.toString,Wo=e=>tc.call(e),bf=e=>Wo(e).slice(8,-1),nc=e=>Wo(e)==="[object Object]",Qi=e=>Ot(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Eo=Ji(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fa=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},wf=/-\w/g,kn=fa(e=>e.replace(wf,t=>t.slice(1).toUpperCase())),_f=/\B([A-Z])/g,hs=fa(e=>e.replace(_f,"-$1").toLowerCase()),sc=fa(e=>e.charAt(0).toUpperCase()+e.slice(1)),ri=fa(e=>e?`on${sc(e)}`:""),jn=(e,t)=>!Object.is(e,t),Mr=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},oc=(e,t,n,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},pa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},kf=e=>{const t=Ot(e)?Number(e):NaN;return isNaN(t)?e:t};let tu;const va=()=>tu||(tu=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function pn(e){if(Ge(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=Ot(o)?Sf(o):pn(o);if(r)for(const l in r)t[l]=r[l]}return t}else if(Ot(e)||_t(e))return e}const Cf=/;(?![^(]*\))/g,xf=/:([^]+)/,$f=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function Sf(e){const t={};return e.replace($f,n=>n.startsWith("/*")?"":n).split(Cf).forEach(n=>{if(n){const o=n.split(xf);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function ze(e){let t="";if(Ot(e))t=e;else if(Ge(e))for(let n=0;n<e.length;n++){const o=ze(e[n]);o&&(t+=o+" ")}else if(_t(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Ef="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",Af=Ji(Ef);function rc(e){return!!e||e===""}function Tf(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 nu(e,t,n){if(e.size!==t.size)return!1;const o=Array.from(t),r=new Uint8Array(o.length);for(const l of e){let u=-1;for(let f=0;f<o.length;f++)if(!r[f]&&cs(l,o[f],n)){u=f;break}if(u<0)return!1;r[u]=1}return!0}function Pf(e,t,n){let o=is(e),r=is(t);if(o||r||(o=Ls(e),r=Ls(t),o||r))return o&&r?nu(e,t,n):!1;const l=Object.keys(e).length,u=Object.keys(t).length;if(l!==u)return!1;for(const f in e){const v=e.hasOwnProperty(f),y=t.hasOwnProperty(f);if(v&&!y||!v&&y||!cs(e[f],t[f],n))return!1}return String(e)===String(t)}function su(e,t,n,o){n||(n=[new Map,new Map]);const[r,l]=n;if(r.has(e)||l.has(t))return r.get(e)===t&&l.get(t)===e;r.set(e,t),l.set(t,e);const u=o(e,t,n);return r.delete(e),l.delete(t),u}function cs(e,t,n){if(e===t)return!0;let o=eu(e),r=eu(t);return o||r?o&&r?e.getTime()===t.getTime():!1:(o=Ln(e),r=Ln(t),o||r?e===t:(o=Ge(e),r=Ge(t),o||r?o&&r?su(e,t,n,Tf):!1:(o=_t(e),r=_t(t),o||r?!o||!r?!1:su(e,t,n,Pf):String(e)===String(t))))}function Of(e,t){return e.findIndex(n=>cs(n,t))}const ac=e=>!!(e&&e.__v_isRef===!0),F=e=>Ot(e)?e:e==null?"":Ge(e)||_t(e)&&(e.toString===tc||!rt(e.toString))?ac(e)?F(e.value):JSON.stringify(e,ic,2):String(e),ic=(e,t)=>ac(t)?ic(e,t.value):is(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],l)=>(n[ai(o,l)+" =>"]=r,n),{})}:Ls(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ai(n))}:Ln(t)?ai(t):_t(t)&&!Ge(t)&&!nc(t)?String(t):t,ai=(e,t="")=>{var n;return Ln(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 zt;class Mf{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&&zt&&(zt.active?(this.parent=zt,this.index=(zt.scopes||(zt.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=zt;try{return zt=this,t()}finally{zt=n}}}on(){++this._on===1&&(this.prevScope=zt,zt=this)}off(){if(this._on>0&&--this._on===0){if(zt===this)zt=this.prevScope;else{let t=zt;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 If(){return zt}let Et;const ii=new WeakSet;class lc{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,zt&&(zt.active?zt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ii.has(this)&&(ii.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||cc(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ou(this),dc(this);const t=Et,n=Cn;Et=this,Cn=!0;try{return this.fn()}finally{fc(this),Et=t,Cn=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)tl(t);this.deps=this.depsTail=void 0,ou(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ii.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){_i(this)&&this.run()}get dirty(){return _i(this)}}let uc=0,Ao,To;function cc(e,t=!1){if(e.flags|=8,t){e.next=To,To=e;return}e.next=Ao,Ao=e}function Zi(){uc++}function el(){if(--uc>0)return;if(To){let t=To;for(To=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Ao;){let t=Ao;for(Ao=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 dc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fc(e){let t,n=e.depsTail,o=n;for(;o;){const r=o.prevDep;o.version===-1?(o===n&&(n=r),tl(o),jf(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=r}e.deps=t,e.depsTail=n}function _i(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(pc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function pc(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||!_i(e))))return;e.flags|=2;const t=e.dep,n=Et,o=Cn;Et=e,Cn=!0;try{dc(e);const r=e.fn(e._value);(t.version===0||jn(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Et=n,Cn=o,fc(e),e.flags&=-3}}function tl(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 l=n.computed.deps;l;l=l.nextDep)tl(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function jf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Cn=!0;const vc=[];function Rn(){vc.push(Cn),Cn=!1}function Kn(){const e=vc.pop();Cn=e===void 0?!0:e}function ou(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Et;Et=void 0;try{t()}finally{Et=n}}}let Do=0;class Df{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 nl{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(!Et||!Cn||Et===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Et)n=this.activeLink=new Df(Et,this),Et.deps?(n.prevDep=Et.depsTail,Et.depsTail.nextDep=n,Et.depsTail=n):Et.deps=Et.depsTail=n,mc(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=Et.depsTail,n.nextDep=void 0,Et.depsTail.nextDep=n,Et.depsTail=n,Et.deps===n&&(Et.deps=o)}return n}trigger(t){this.version++,Do++,this.notify(t)}notify(t){Zi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{el()}}}function mc(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)mc(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ki=new WeakMap,js=Symbol(""),Ci=Symbol(""),Lo=Symbol("");function Xt(e,t,n){if(Cn&&Et){let o=ki.get(e);o||ki.set(e,o=new Map);let r=o.get(n);r||(o.set(n,r=new nl),r.map=o,r.key=n),r.track()}}function Hn(e,t,n,o,r,l){const u=ki.get(e);if(!u){Do++;return}const f=v=>{v&&v.trigger()};if(Zi(),t==="clear")u.forEach(f);else{const v=Ge(e),y=v&&Qi(n);if(v&&n==="length"){const m=Number(o);u.forEach((w,T)=>{(T==="length"||T===Lo||!Ln(T)&&T>=m)&&f(w)})}else switch((n!==void 0||u.has(void 0))&&f(u.get(n)),y&&f(u.get(Lo)),t){case"add":v?y&&f(u.get("length")):(f(u.get(js)),is(e)&&f(u.get(Ci)));break;case"delete":v||(f(u.get(js)),is(e)&&f(u.get(Ci)));break;case"set":is(e)&&f(u.get(js));break}}el()}function Ys(e){const t=mt(e);return t===e||(Xt(t,"iterate",Lo),mn(e))?t:Nn(e)?ls(e)?t.map(n=>ds(yn(n))):t.map(ds):t.map(yn)}function ma(e){return Xt(e=mt(e),"iterate",Lo),e}function On(e,t){return Nn(e)?ds(ls(e)?yn(t):t):yn(t)}const Lf={__proto__:null,[Symbol.iterator](){return li(this,Symbol.iterator,e=>On(this,e))},concat(...e){return Ys(this).concat(...e.map(t=>Ge(t)?Ys(t):t))},entries(){return li(this,"entries",e=>(e[1]=On(this,e[1]),e))},every(e,t){return Bn(this,"every",e,t,void 0,arguments)},filter(e,t){return Bn(this,"filter",e,t,n=>n.map(o=>On(this,o)),arguments)},find(e,t){return Bn(this,"find",e,t,n=>On(this,n),arguments)},findIndex(e,t){return Bn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Bn(this,"findLast",e,t,n=>On(this,n),arguments)},findLastIndex(e,t){return Bn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Bn(this,"forEach",e,t,void 0,arguments)},includes(...e){return ui(this,"includes",e)},indexOf(...e){return ui(this,"indexOf",e)},join(e){return Ys(this).join(e)},lastIndexOf(...e){return ui(this,"lastIndexOf",e)},map(e,t){return Bn(this,"map",e,t,void 0,arguments)},pop(){return _o(this,"pop")},push(...e){return _o(this,"push",e)},reduce(e,...t){return au(this,"reduce",e,t)},reduceRight(e,...t){return au(this,"reduceRight",e,t)},shift(){return _o(this,"shift")},some(e,t){return Bn(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 li(this,"values",e=>On(this,e))}};function li(e,t,n){const o=ma(e),r=o[t],l=r.call(o);if(o!==e&&!mn(e)){if(l[Symbol.toStringTag]==="Array Iterator"){const u=Object.create(Object.getPrototypeOf(l));return u.next=()=>ru(l.next(),n),r!==hc[t]&&Object.defineProperties(u,{return:{get(){const f=l.return;return typeof f=="function"?f.bind(l):f}},throw:{get(){const f=l.throw;return typeof f=="function"?f.bind(l):f}}}),u}l._next=l.next,l.next=()=>ru(l._next(),n)}return l}function ru(e,t){return e.done||(e.value=t(e.value)),e}const hc=Array.prototype;function Bn(e,t,n,o,r,l){const u=ma(e),f=u!==e&&!mn(e),v=u[t];if(v!==hc[t]){const w=v.apply(e,l);return f?yn(w):w}let y=n;u!==e&&(f?y=function(w,T){return n.call(this,On(e,w),T,e)}:n.length>2&&(y=function(w,T){return n.call(this,w,T,e)}));const m=v.call(u,y,o);return f&&r?r(m):m}function au(e,t,n,o){const r=ma(e),l=r!==e&&!mn(e);let u=n,f=!1;r!==e&&(l?(f=o.length===0,u=function(y,m,w){return f&&(f=!1,y=On(e,y)),n.call(this,y,On(e,m),w,e)}):n.length>3&&(u=function(y,m,w){return n.call(this,y,m,w,e)}));const v=r[t](u,...o);return f?On(e,v):v}function ui(e,t,n){const o=mt(e);Xt(o,"iterate",Lo);const r=o[t](...n);return(r===-1||r===!1)&&al(n[0])?(n[0]=mt(n[0]),o[t](...n)):r}function _o(e,t,n=[]){Rn(),Zi();const o=mt(e)[t].apply(e,n);return el(),Kn(),o}const Rf=Ji("__proto__,__v_isRef,__isVue"),yc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ln));function Kf(e){Ln(e)||(e=String(e));const t=mt(this);return Xt(t,"has",e),t.hasOwnProperty(e)}class gc{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,l=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return l;if(n==="__v_raw")return o===(r?l?Gf:kc:l?_c:wc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const u=Ge(t);if(!r){let v;if(u&&(v=Lf[n]))return v;if(n==="hasOwnProperty")return Kf}const f=Reflect.get(t,n,Zt(t)?t:o);if((Ln(n)?yc.has(n):Rf(n))||(r||Xt(t,"get",n),l))return f;if(Zt(f)){const v=u&&Qi(n)?f:f.value;return r&&_t(v)?$i(v):v}return _t(f)?r?$i(f):ol(f):f}}class bc extends gc{constructor(t=!1){super(!1,t)}set(t,n,o,r){let l=t[n];const u=Ge(t)&&Qi(n);if(!this._isShallow){const y=Nn(l);if(!mn(o)&&!Nn(o)&&(l=mt(l),o=mt(o)),!u&&Zt(l)&&!Zt(o))return y||(l.value=o),!0}const f=u?Number(n)<t.length:yt(t,n),v=Reflect.set(t,n,o,Zt(t)?t:r);return t===mt(r)&&v&&(f?jn(o,l)&&Hn(t,"set",n,o):Hn(t,"add",n,o)),v}deleteProperty(t,n){const o=yt(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&o&&Hn(t,"delete",n,void 0),r}has(t,n){const o=Reflect.has(t,n);return(!Ln(n)||!yc.has(n))&&Xt(t,"has",n),o}ownKeys(t){return Xt(t,"iterate",Ge(t)?"length":js),Reflect.ownKeys(t)}}class Nf extends gc{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Ff=new bc,Vf=new Nf,Bf=new bc(!0);const xi=e=>e,$r=e=>Reflect.getPrototypeOf(e);function Uf(e,t,n){return function(...o){const r=this.__v_raw,l=mt(r),u=is(l),f=e==="entries"||e===Symbol.iterator&&u,v=e==="keys"&&u,y=r[e](...o),m=n?xi:t?ds:yn;return!t&&Xt(l,"iterate",v?Ci:js),Rt(Object.create(y),{next(){const{value:w,done:T}=y.next();return T?{value:w,done:T}:{value:f?[m(w[0]),m(w[1])]:m(w),done:T}}})}}function Sr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qf(e,t){const n={get(r){const l=this.__v_raw,u=mt(l),f=mt(r);e||(jn(r,f)&&Xt(u,"get",r),Xt(u,"get",f));const{has:v}=$r(u),y=t?xi:e?ds:yn;if(v.call(u,r))return y(l.get(r));if(v.call(u,f))return y(l.get(f));l!==u&&l.get(r)},get size(){const r=this.__v_raw;return!e&&Xt(mt(r),"iterate",js),r.size},has(r){const l=this.__v_raw,u=mt(l),f=mt(r);return e||(jn(r,f)&&Xt(u,"has",r),Xt(u,"has",f)),r===f?l.has(r):l.has(r)||l.has(f)},forEach(r,l){const u=this,f=u.__v_raw,v=mt(f),y=t?xi:e?ds:yn;return!e&&Xt(v,"iterate",js),f.forEach((m,w)=>r.call(l,y(m),y(w),u))}};return Rt(n,e?{add:Sr("add"),set:Sr("set"),delete:Sr("delete"),clear:Sr("clear")}:{add(r){const l=mt(this),u=$r(l),f=mt(r),v=!t&&!mn(r)&&!Nn(r)?f:r;return u.has.call(l,v)||jn(r,v)&&u.has.call(l,r)||jn(f,v)&&u.has.call(l,f)||(l.add(v),Hn(l,"add",v,v)),this},set(r,l){!t&&!mn(l)&&!Nn(l)&&(l=mt(l));const u=mt(this),{has:f,get:v}=$r(u);let y=f.call(u,r);y||(r=mt(r),y=f.call(u,r));const m=v.call(u,r);return u.set(r,l),y?jn(l,m)&&Hn(u,"set",r,l):Hn(u,"add",r,l),this},delete(r){const l=mt(this),{has:u,get:f}=$r(l);let v=u.call(l,r);v||(r=mt(r),v=u.call(l,r)),f&&f.call(l,r);const y=l.delete(r);return v&&Hn(l,"delete",r,void 0),y},clear(){const r=mt(this),l=r.size!==0,u=r.clear();return l&&Hn(r,"clear",void 0,void 0),u}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Uf(r,e,t)}),n}function sl(e,t){const n=qf(e,t);return(o,r,l)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_isShallow"?t:r==="__v_raw"?o:Reflect.get(yt(n,r)&&r in o?n:o,r,l)}const Hf={get:sl(!1,!1)},zf={get:sl(!1,!0)},Wf={get:sl(!0,!1)};const wc=new WeakMap,_c=new WeakMap,kc=new WeakMap,Gf=new WeakMap;function Yf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ol(e){return Nn(e)?e:rl(e,!1,Ff,Hf,wc)}function Jf(e){return rl(e,!1,Bf,zf,_c)}function $i(e){return rl(e,!0,Vf,Wf,kc)}function rl(e,t,n,o,r){if(!_t(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const l=r.get(e);if(l)return l;const u=Yf(bf(e));if(u===0)return e;const f=new Proxy(e,u===2?o:n);return r.set(e,f),f}function ls(e){return Nn(e)?ls(e.__v_raw):!!(e&&e.__v_isReactive)}function Nn(e){return!!(e&&e.__v_isReadonly)}function mn(e){return!!(e&&e.__v_isShallow)}function al(e){return e?!!e.__v_raw:!1}function mt(e){const t=e&&e.__v_raw;return t?mt(t):e}function Xf(e){return!yt(e,"__v_skip")&&Object.isExtensible(e)&&oc(e,"__v_skip",!0),e}const yn=e=>_t(e)?ol(e):e,ds=e=>_t(e)?$i(e):e;function Zt(e){return e?e.__v_isRef===!0:!1}function P(e){return Qf(e,!1)}function Qf(e,t){return Zt(e)?e:new Zf(e,t)}class Zf{constructor(t,n){this.dep=new nl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:mt(t),this._value=n?t:yn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||mn(t)||Nn(t);t=o?t:mt(t),jn(t,n)&&(this._rawValue=t,this._value=o?t:yn(t),this.dep.trigger())}}function Wt(e){return Zt(e)?e.value:e}const ep={get:(e,t,n)=>t==="__v_raw"?e:Wt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Zt(r)&&!Zt(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Cc(e){return ls(e)?e:new Proxy(e,ep)}class tp{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new nl(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)&&Et!==this)return cc(this,!0),!0}get value(){const t=this.dep.track();return pc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function np(e,t,n=!1){let o,r;return rt(e)?o=e:(o=e.get,r=e.set),new tp(o,r,n)}const Er={},Br=new WeakMap;let Es;function sp(e,t=!1,n=Es){if(n){let o=Br.get(n);o||Br.set(n,o=[]),o.push(e)}}function op(e,t,n=$t){const{immediate:o,deep:r,once:l,scheduler:u,augmentJob:f,call:v}=n,y=S=>r?S:mn(S)||r===!1||r===0?zn(S,1):zn(S);let m,w,T,$,I=!1,J=!1;if(Zt(e)?(w=()=>e.value,I=mn(e)):ls(e)?(w=()=>y(e),I=!0):Ge(e)?(J=!0,I=e.some(S=>ls(S)||mn(S)),w=()=>e.map(S=>{if(Zt(S))return S.value;if(ls(S))return y(S);if(rt(S))return v?v(S,2):S()})):rt(e)?t?w=v?()=>v(e,2):e:w=()=>{if(T){Rn();try{T()}finally{Kn()}}const S=Es;Es=m;try{return v?v(e,3,[$]):e($)}finally{Es=S}}:w=Dn,t&&r){const S=w,M=r===!0?1/0:r;w=()=>zn(S(),M)}const ae=If(),de=()=>{m.stop(),ae&&ae.active&&Xi(ae.effects,m)};if(l&&t){const S=t;t=(...M)=>{try{return S(...M)}finally{de()}}}let ue=J?new Array(e.length).fill(Er):Er;const G=S=>{if(!(!(m.flags&1)||!m.dirty&&!S))if(t){const M=m.run();if(S||r||I||(J?M.some((ee,q)=>jn(ee,ue[q])):jn(M,ue))){const ee=Es;Rn();try{T&&T(),Es=m;const q=[M,ue===Er?void 0:J&&ue[0]===Er?[]:ue,$];ue=M,v?v(t,3,q):t(...q)}finally{Es=ee,Kn()}}}else m.run()};return f&&f(G),m=new lc(w),m.scheduler=u?()=>u(G,!1):G,$=S=>sp(S,!1,m),T=m.onStop=()=>{const S=Br.get(m);if(S){if(v)v(S,4);else for(const M of S)M();Br.delete(m)}},t?o?G(!0):ue=m.run():u?u(G.bind(null,!0),!0):m.run(),de.pause=m.pause.bind(m),de.resume=m.resume.bind(m),de.stop=de,de}function zn(e,t=1/0,n){if(t<=0||!_t(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Zt(e))zn(e.value,t,n);else if(Ge(e))for(let o=0;o<e.length;o++)zn(e[o],t,n);else if(Ls(e)||is(e))e.forEach(o=>{zn(o,t,n)});else if(nc(e)){for(const o in e)zn(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&zn(e[o],t,n)}return e}/**
* @vue/runtime-core v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Go(e,t,n,o){try{return o?e(...o):e()}catch(r){ha(r,t,n)}}function gn(e,t,n,o){if(rt(e)){const r=Go(e,t,n,o);return r&&ec(r)&&r.catch(l=>{ha(l,t,n)}),r}if(Ge(e)){const r=[];for(let l=0;l<e.length;l++)r.push(gn(e[l],t,n,o));return r}}function ha(e,t,n,o=!0){const r=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:u}=t&&t.appContext.config||$t;if(t){let f=t.parent;const v=t.proxy,y=`https://vuejs.org/error-reference/#runtime-${n}`;for(;f;){const m=f.ec;if(m){for(let w=0;w<m.length;w++)if(m[w](e,v,y)===!1)return}f=f.parent}if(l){Rn(),Go(l,null,10,[e,v,y]),Kn();return}}rp(e,n,r,o,u)}function rp(e,t,n,o=!0,r=!1){if(r)throw e;console.error(e)}const sn=[];let _n=-1;const Mn=[];let as=null,Js=0;const xc=Promise.resolve();let Ur=null;function Ks(e){const t=Ur||xc;return e?t.then(this?e.bind(this):e):t}function ap(e){let t=_n+1,n=sn.length;for(;t<n;){const o=t+n>>>1,r=sn[o],l=Ro(r);l<e||l===e&&r.flags&2?t=o+1:n=o}return t}function il(e){if(!(e.flags&1)){const t=Ro(e),n=sn[sn.length-1];!n||!(e.flags&2)&&t>=Ro(n)?sn.push(e):sn.splice(ap(t),0,e),e.flags|=1,$c()}}function $c(){Ur||(Ur=xc.then(Ac))}function ip(e){if(!Ge(e))as&&e.id===-1?as.splice(Js+1,0,e):e.flags&1||(Mn.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)Mn.push(e[t]);$c()}function Sc(e,t,n,o=_n+1){for(;o<sn.length;o++){const r=sn[o];if(r&&r.flags&2){if(e&&r.id!==e.uid||t!==void 0&&!(r.id>=t))continue;sn.splice(o,1),o=e?o-1:_n,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Ec(e,t,n=0){if(Mn.length){let o=Mn,r=0;if(t){o=[];for(let u=0;u<Mn.length;u++){const f=Mn[u];(f.i!==void 0?!f.i||f.i.uid<n:t.has(f))?Mn[r++]=f:o.push(f)}}const l=[...new Set(o)].sort((u,f)=>Ro(u)-Ro(f));if(Mn.length=r,as){for(let u=0;u<l.length;u++)as.push(l[u]);return}for(as=l,Js=0;Js<as.length;Js++){const u=as[Js];u.flags&4&&(u.flags&=-2),u.flags&8||u(),u.flags&=-2}as=null,Js=0}}let ci=!1;function lp(e,t){if(ci){e();return}const n=t===void 0?void 0:new Set(Mn);e(),ci=!0;try{Sc(void 0,t),Ec(void 0,n,t)}finally{ci=!1}}const Ro=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Ac(e){try{for(_n=0;_n<sn.length;_n++){const t=sn[_n];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Go(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;_n<sn.length;_n++){const t=sn[_n];t&&(t.flags&=-2)}_n=-1,sn.length=0,Ec(),Ur=null,(sn.length||Mn.length)&&Ac()}}let vn=null,Tc=null;function qr(e){const t=vn;return vn=e,Tc=e&&e.type.__scopeId||null,t}function Sn(e,t=vn,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&Gr(-1);const l=qr(t),u=Ds.length;let f;try{f=e(...r)}finally{for(let v=Ds.length;v>u;v--)sd();qr(l),o._d&&Gr(1)}return f};return o._n=!0,o._c=!0,o._d=!0,o}function Pe(e,t){if(vn===null)return e;const n=ka(vn),o=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[l,u,f,v=$t]=t[r];l&&(rt(l)&&(l={mounted:l,updated:l}),l.deep&&zn(u),o.push({dir:l,instance:n,value:u,oldValue:void 0,arg:f,modifiers:v}))}return e}function xs(e,t,n,o){const r=e.dirs,l=t&&t.dirs;for(let u=0;u<r.length;u++){const f=r[u];l&&(f.oldValue=l[u].value);let v=f.dir[o];v&&(Rn(),gn(v,n,8,[e.el,f,e,t]),Kn())}}function up(e,t){if(on){let n=on.provides;const o=on.parent&&on.parent.provides;o===n&&(n=on.provides=Object.create(o)),n[e]=t}}function Ir(e,t,n=!1){const o=fl();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&&rt(t)?t.call(o&&o.proxy):t}}const cp=Symbol.for("v-scx"),dp=()=>Ir(cp);function pt(e,t,n){return Pc(e,t,n)}function Pc(e,t,n=$t){const{immediate:o,deep:r,flush:l,once:u}=n,f=Rt({},n),v=t&&o||!t&&l!=="post";let y;if(Uo){if(l==="sync"){const $=dp();y=$.__watcherHandles||($.__watcherHandles=[])}else if(!v){const $=()=>{};return $.stop=Dn,$.resume=Dn,$.pause=Dn,$}}const m=on;f.call=($,I,J)=>gn($,m,I,J);let w=!1;l==="post"?f.scheduler=$=>{$.i=m,nn($,m&&m.suspense)}:l!=="sync"&&(w=!0,f.scheduler=($,I)=>{I?$():il($)}),f.augmentJob=$=>{t&&($.flags|=4),w&&($.flags|=2,m&&($.id=m.uid,$.i=m))};const T=op(e,t,f);return Uo&&(y?y.push(T):v&&T()),T}function fp(e,t,n){const o=this.proxy,r=Ot(e)?e.includes(".")?Oc(o,e):()=>o[e]:e.bind(o,o);let l;rt(t)?l=t:(l=t.handler,n=t);const u=Yo(this),f=Pc(r,l.bind(o),n);return u(),f}function Oc(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,Mc=Symbol("_vte"),ya=e=>e.__isTeleport,Ts=e=>e&&(e.disabled||e.disabled===""),pp=e=>e&&(e.defer||e.defer===""),iu=e=>typeof SVGElement<"u"&&e instanceof SVGElement,lu=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Si=(e,t)=>{const n=e&&e.to;return Ot(n)?t?t(n):null:n},vp={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,l,u,f,v,y){const{mc:m,pc:w,pbc:T,o:{insert:$,querySelector:I,createText:J,createComment:ae,parentNode:de}}=y,ue=Ts(t.props);let{dynamicChildren:G}=t;const S=(q,oe,j)=>{q.shapeFlag&16&&m(q.children,oe,j,r,l,u,f,v)},M=(q=t)=>{const oe=Ts(q.props),j=q.target=Si(q.props,I),A=Ei(j,q,J,$);j&&(u!=="svg"&&iu(j)?u="svg":u!=="mathml"&&lu(j)&&(u="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(j),oe||(S(q,j,A),xo(q,!1)))},ee=q=>{const oe=()=>{if(os.get(q)===oe){if(os.delete(q),Ts(q.props)){const j=de(q.el)||n;S(q,j,q.anchor),xo(q,!0)}M(q)}};os.set(q,oe),nn(oe,l)};if(e==null){const q=t.el=J(""),oe=t.anchor=J("");if($(q,n,o),$(oe,n,o),pp(t.props)||l&&l.pendingBranch){ee(t);return}ue&&(S(t,n,oe),xo(t,!0)),M()}else{t.el=e.el;const q=t.anchor=e.anchor,oe=os.get(e);if(oe){oe.flags|=8,os.delete(e),ee(t);return}t.targetStart=e.targetStart;const j=t.target=e.target,A=t.targetAnchor=e.targetAnchor,O=Ts(e.props),ne=O?n:j,Ie=O?q:A;if(u==="svg"||iu(j)?u="svg":(u==="mathml"||lu(j))&&(u="mathml"),G?(T(e.dynamicChildren,G,ne,r,l,u,f),dl(e,t,!0)):v||w(e,t,ne,Ie,r,l,u,f,!1),ue)O?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ar(t,n,q,y,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Se=Si(t.props,I);Se&&(t.target=Se,Ar(t,Se,null,y,0))}else O&&Ar(t,j,A,y,1);xo(t,ue)}},remove(e,t,n,{um:o,o:{remove:r}},l){const{shapeFlag:u,children:f,anchor:v,targetStart:y,targetAnchor:m,target:w,props:T}=e,$=Ts(T),I=l||!$,J=os.get(e);if(J&&(J.flags|=8,os.delete(e)),w&&(r(y),r(m)),l&&r(v),!J&&($||w)&&u&16)for(let ae=0;ae<f.length;ae++){const de=f[ae];o(de,t,n,I,!!de.dynamicChildren)}},move:Ar,hydrate:mp};function Ar(e,t,n,{o:{insert:o},m:r},l=2){l===0&&(e.targetStart&&o(e.targetStart,t,n),o(e.targetAnchor,t,n),n=e.targetAnchor);const{el:u,anchor:f,shapeFlag:v,children:y,props:m}=e,w=l===2;if(w&&o(u,t,n),!os.has(e)&&(!w||Ts(m))&&v&16)for(let T=0;T<y.length;T++)r(y[T],t,n,2);w&&o(f,t,n)}function mp(e,t,n,o,r,l,{o:{nextSibling:u,parentNode:f,querySelector:v,insert:y,createText:m}},w){function T(ae,de){let ue=de;for(;ue;){if(ue&&ue.nodeType===8){if(ue.data==="teleport start anchor")t.targetStart=ue;else if(ue.data==="teleport anchor"){t.targetAnchor=ue,ae._lpa=t.targetAnchor&&u(t.targetAnchor);break}}ue=u(ue)}}function $(ae,de){de.anchor=w(u(ae),de,f(ae),n,o,r,l)}const I=t.target=Si(t.props,v),J=Ts(t.props);if(I){const ae=I._lpa||I.firstChild;t.shapeFlag&16&&(J?($(e,t),T(I,ae),t.targetAnchor||Ei(I,t,m,y,f(e)===I?e:null)):(t.anchor=u(e),T(I,ae),t.targetAnchor||Ei(I,t,m,y),w(ae&&u(ae),t,I,n,o,r,l))),xo(t,J)}else J&&t.shapeFlag&16&&($(e,t),t.targetStart=e,t.targetAnchor=u(e));return t.anchor&&u(t.anchor)}const $n=vp;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 Ei(e,t,n,o,r=null){const l=t.targetStart=n(""),u=t.targetAnchor=n("");return l[Mc]=u,e&&(o(l,e,r),o(u,e,r)),u}const fn=Symbol("_leaveCb"),ko=Symbol("_enterCb");function Ic(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return cn(()=>{e.isMounted=!0}),Fc(()=>{e.isUnmounting=!0}),e}const dn=[Function,Array],jc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:dn,onEnter:dn,onAfterEnter:dn,onEnterCancelled:dn,onBeforeLeave:dn,onLeave:dn,onAfterLeave:dn,onLeaveCancelled:dn,onBeforeAppear:dn,onAppear:dn,onAfterAppear:dn,onAppearCancelled:dn},hp={name:"BaseTransition",props:jc,setup(e,{slots:t}){const n=fl(),o=Ic();return()=>{const r=t.default&&ll(t.default(),!0),l=r&&r.length?Dc(r):n.subTree?me():void 0;if(!l)return;const u=mt(e),{mode:f}=u;if(o.isLeaving)return di(l);const v=Hr(l);if(!v)return di(l);let y=Ko(v,u,o,n,w=>y=w);v.type!==Qt&&fs(v,y);let m=n.subTree&&Hr(n.subTree);if(m&&m.type!==Qt&&!Ps(m,v)&&No(n.subTree)){let w=Ko(m,u,o,n);if(fs(m,w),f==="out-in"&&v.type!==Qt)return o.isLeaving=!0,w.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete w.afterLeave,m=void 0},di(l);f==="in-out"&&v.type!==Qt?w.delayLeave=(T,$,I)=>{const J=Lc(o,m);J[String(m.key)]=m,T[fn]=()=>{$(),T[fn]=void 0,delete y.delayedLeave,m=void 0},y.delayedLeave=()=>{I(),delete y.delayedLeave,m=void 0}}:m=void 0}else m&&(m=void 0);return l}}};function Dc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Qt){t=n;break}}return t}const yp=hp;function Lc(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 Ko(e,t,n,o,r){const{appear:l,mode:u,persisted:f=!1,onBeforeEnter:v,onEnter:y,onAfterEnter:m,onEnterCancelled:w,onBeforeLeave:T,onLeave:$,onAfterLeave:I,onLeaveCancelled:J,onBeforeAppear:ae,onAppear:de,onAfterAppear:ue,onAppearCancelled:G}=t,S=String(e.key),M=Lc(n,e),ee=(j,A)=>{j&&gn(j,o,9,A)},q=(j,A)=>{const O=A[1];ee(j,A),Ge(j)?j.every(ne=>ne.length<=1)&&O():j.length<=1&&O()},oe={mode:u,persisted:f,beforeEnter(j){let A=v;if(!n.isMounted)if(l)A=ae||v;else return;j[fn]&&j[fn](!0);const O=M[S];if(O&&Ps(e,O)){let ne=O.el[fn];if(!ne){const Ie=No(O);ne=Ie&&Ie.el[fn]}ne&&ne()}ee(A,[j])},enter(j){if(M[S]===e)return;let A=y,O=m,ne=w;if(!n.isMounted)if(l)A=de||y,O=ue||m,ne=G||w;else return;let Ie=!1;j[ko]=_e=>{Ie||(Ie=!0,_e?ee(ne,[j]):ee(O,[j]),oe.delayedLeave&&oe.delayedLeave(),j[ko]=void 0)};const Se=j[ko].bind(null,!1);A?q(A,[j,Se]):Se()},leave(j,A){const O=String(e.key);if(j[ko]&&j[ko](!0),n.isUnmounting)return A();ee(T,[j]);let ne=!1;j[fn]=Se=>{ne||(ne=!0,A(),Se?ee(J,[j]):ee(I,[j]),j[fn]=void 0,M[O]===e&&delete M[O])};const Ie=j[fn].bind(null,!1);M[O]=e,$?q($,[j,Ie]):Ie()},clone(j){const A=Ko(j,t,n,o,r);return r&&r(A),A}};return oe}function di(e){if(ga(e))return e=ps(e),e.children=null,e}function Hr(e){if(!ga(e))return ya(e.type)&&e.children?Dc(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&&rt(n.default))return n.default()}}function fs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;fs(ya(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===Oe&&Ge(e.children)){const n=Hc(e.children,!1);n&&fs(n,t)}}function ll(e,t=!1,n){let o=[],r=0;for(let l=0;l<e.length;l++){let u=e[l];const f=n==null?u.key:String(n)+String(u.key!=null?u.key:l);u.type===Oe?(u.patchFlag&128&&r++,o=o.concat(ll(u.children,t,f))):(t||u.type!==Qt)&&o.push(f!=null?ps(u,{key:f}):u)}if(r>1)for(let l=0;l<o.length;l++)o[l].patchFlag=-2;return o}function No(e){if(e.component)return No(e.component.subTree);if(e.type===Oe){const t=Ge(e.children)&&Hc(e.children,!1);return t?No(t):void 0}if(e.type!==Qt)return e}function Kt(e,t){return rt(e)?Rt({name:e.name},t,{setup:e}):e}function Rc(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function uu(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(Ge(e)){e.forEach((J,ae)=>Po(J,t&&(Ge(t)?t[ae]: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 l=o.shapeFlag&4?ka(o.component):o.el,u=r?null:l,{i:f,r:v}=e,y=t&&t.r,m=f.refs===$t?f.refs={}:f.refs,w=f.setupState,T=mt(w),$=w===$t?Zu:J=>uu(m,J)?!1:yt(T,J),I=(J,ae)=>!(ae&&uu(m,ae));if(y!=null&&y!==v){if(cu(t),Ot(y))m[y]=null,$(y)&&(w[y]=null);else if(Zt(y)){const J=t;I(y,J.k)&&(y.value=null),J.k&&(m[J.k]=null)}}if(rt(v))Go(v,f,12,[u,m]);else{const J=Ot(v),ae=Zt(v);if(J||ae){const de=()=>{if(e.f){const ue=J?$(v)?w[v]:m[v]:I()||!e.k?v.value:m[e.k];if(r)Ge(ue)&&Xi(ue,l);else if(Ge(ue))ue.includes(l)||ue.push(l);else if(J)m[v]=[l],$(v)&&(w[v]=m[v]);else{const G=[l];I(v,e.k)&&(v.value=G),e.k&&(m[e.k]=G)}}else J?(m[v]=u,$(v)&&(w[v]=u)):ae&&(I(v,e.k)&&(v.value=u),e.k&&(m[e.k]=u))};if(u){const ue=()=>{de(),zr.delete(e)};ue.id=-1,zr.set(e,ue),nn(ue,n)}else cu(e),de()}}}function cu(e){const t=zr.get(e);t&&(t.flags|=8,zr.delete(e))}va().requestIdleCallback;va().cancelIdleCallback;const Oo=e=>!!e.type.__asyncLoader,ga=e=>e.type.__isKeepAlive;function gp(e,t){Kc(e,"a",t)}function bp(e,t){Kc(e,"da",t)}function Kc(e,t,n=on){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(ba(t,o,n),n){let r=n.parent;for(;r&&r.parent;)ga(r.parent.vnode)&&wp(o,t,n,r),r=r.parent}}function wp(e,t,n,o){const r=ba(t,e,o,!0);bn(()=>{Xi(o[t],r)},n)}function ba(e,t,n=on,o=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...u)=>{Rn();const f=Yo(n),v=gn(t,n,e,u);return f(),Kn(),v});return o?r.unshift(l):r.push(l),l}}const Yn=e=>(t,n=on)=>{(!Uo||e==="sp")&&ba(e,(...o)=>t(...o),n)},_p=Yn("bm"),cn=Yn("m"),kp=Yn("bu"),Nc=Yn("u"),Fc=Yn("bum"),bn=Yn("um"),Cp=Yn("sp"),xp=Yn("rtg"),$p=Yn("rtc");function Sp(e,t=on){ba("ec",e,t)}const Ep=Symbol.for("v-ndc");function st(e,t,n,o){let r;const l=n,u=Ge(e);if(u||Ot(e)){const f=u&&ls(e);let v=!1,y=!1;f&&(v=!mn(e),y=Nn(e),e=ma(e)),r=new Array(e.length);for(let m=0,w=e.length;m<w;m++)r[m]=t(v?y?ds(yn(e[m])):yn(e[m]):e[m],m,void 0,l)}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,l)}else if(_t(e))if(e[Symbol.iterator])r=Array.from(e,(f,v)=>t(f,v,void 0,l));else{const f=Object.keys(e);r=new Array(f.length);for(let v=0,y=f.length;v<y;v++){const m=f[v];r[v]=t(e[m],m,v,l)}}else r=[];return r}const Ai=e=>e?ld(e)?ka(e):Ai(e.parent):null,Mo=Rt(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=>Ai(e.parent),$root:e=>Ai(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Bc(e),$forceUpdate:e=>e.f||(e.f=()=>{il(e.update)}),$nextTick:e=>e.n||(e.n=Ks.bind(e.proxy)),$watch:e=>fp.bind(e)}),fi=(e,t)=>e!==$t&&!e.__isScriptSetup&&yt(e,t),Ap={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:l,accessCache:u,type:f,appContext:v}=e;if(t[0]!=="$"){const T=u[t];if(T!==void 0)switch(T){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return l[t]}else{if(fi(o,t))return u[t]=1,o[t];if(r!==$t&&yt(r,t))return u[t]=2,r[t];if(yt(l,t))return u[t]=3,l[t];if(n!==$t&&yt(n,t))return u[t]=4,n[t];Ti&&(u[t]=0)}}const y=Mo[t];let m,w;if(y)return t==="$attrs"&&Xt(e.attrs,"get",""),y(e);if((m=f.__cssModules)&&(m=m[t]))return m;if(n!==$t&&yt(n,t))return u[t]=4,n[t];if(w=v.config.globalProperties,yt(w,t))return w[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:l}=e;return fi(r,t)?(r[t]=n,!0):o!==$t&&yt(o,t)?(o[t]=n,!0):yt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,props:l,type:u}},f){let v;return!!(n[f]||e!==$t&&f[0]!=="$"&&yt(e,f)||fi(t,f)||yt(l,f)||yt(o,f)||yt(Mo,f)||yt(r.config.globalProperties,f)||(v=u.__cssModules)&&v[f])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:yt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function du(e){return Ge(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ti=!0;function Tp(e){const t=Bc(e),n=e.proxy,o=e.ctx;Ti=!1,t.beforeCreate&&fu(t.beforeCreate,e,"bc");const{data:r,computed:l,methods:u,watch:f,provide:v,inject:y,created:m,beforeMount:w,mounted:T,beforeUpdate:$,updated:I,activated:J,deactivated:ae,beforeDestroy:de,beforeUnmount:ue,destroyed:G,unmounted:S,render:M,renderTracked:ee,renderTriggered:q,errorCaptured:oe,serverPrefetch:j,expose:A,inheritAttrs:O,components:ne,directives:Ie,filters:Se}=t;if(y&&Pp(y,o,null),u)for(const qe in u){const Ue=u[qe];rt(Ue)&&(o[qe]=Ue.bind(n))}if(r){const qe=r.call(n,n);_t(qe)&&(e.data=ol(qe))}if(Ti=!0,l)for(const qe in l){const Ue=l[qe],tt=rt(Ue)?Ue.bind(n,n):rt(Ue.get)?Ue.get.bind(n,n):Dn,Ye=!rt(Ue)&&rt(Ue.set)?Ue.set.bind(n):Dn,We=nt({get:tt,set:Ye});Object.defineProperty(o,qe,{enumerable:!0,configurable:!0,get:()=>We.value,set:le=>We.value=le})}if(f)for(const qe in f)Vc(f[qe],o,n,qe);if(v){const qe=rt(v)?v.call(n):v;Reflect.ownKeys(qe).forEach(Ue=>{up(Ue,qe[Ue])})}m&&fu(m,e,"c");function Me(qe,Ue){Ge(Ue)?Ue.forEach(tt=>qe(tt.bind(n))):Ue&&qe(Ue.bind(n))}if(Me(_p,w),Me(cn,T),Me(kp,$),Me(Nc,I),Me(gp,J),Me(bp,ae),Me(Sp,oe),Me($p,ee),Me(xp,q),Me(Fc,ue),Me(bn,S),Me(Cp,j),Ge(A))if(A.length){const qe=e.exposed||(e.exposed={});A.forEach(Ue=>{Object.defineProperty(qe,Ue,{get:()=>n[Ue],set:tt=>n[Ue]=tt,enumerable:!0})})}else e.exposed||(e.exposed={});M&&e.render===Dn&&(e.render=M),O!=null&&(e.inheritAttrs=O),ne&&(e.components=ne),Ie&&(e.directives=Ie),j&&Rc(e)}function Pp(e,t,n=Dn){Ge(e)&&(e=Pi(e));for(const o in e){const r=e[o];let l;_t(r)?"default"in r?l=Ir(r.from||o,r.default,!0):l=Ir(r.from||o):l=Ir(r),Zt(l)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:u=>l.value=u}):t[o]=l}}function fu(e,t,n){gn(Ge(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Vc(e,t,n,o){let r=o.includes(".")?Oc(n,o):()=>n[o];if(Ot(e)){const l=t[e];rt(l)&&pt(r,l)}else if(rt(e))pt(r,e.bind(n));else if(_t(e))if(Ge(e))e.forEach(l=>Vc(l,t,n,o));else{const l=rt(e.handler)?e.handler.bind(n):t[e.handler];rt(l)&&pt(r,l,e)}}function Bc(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:u}}=e.appContext,f=l.get(t);let v;return f?v=f:!r.length&&!n&&!o?v=t:(v={},r.length&&r.forEach(y=>Wr(v,y,u,!0)),Wr(v,t,u)),_t(t)&&l.set(t,v),v}function Wr(e,t,n,o=!1){const{mixins:r,extends:l}=t;l&&Wr(e,l,n,!0),r&&r.forEach(u=>Wr(e,u,n,!0));for(const u in t)if(!(o&&u==="expose")){const f=Op[u]||n&&n[u];e[u]=f?f(e[u],t[u]):t[u]}return e}const Op={data:pu,props:vu,emits:vu,methods:$o,computed:$o,beforeCreate:tn,created:tn,beforeMount:tn,mounted:tn,beforeUpdate:tn,updated:tn,beforeDestroy:tn,beforeUnmount:tn,destroyed:tn,unmounted:tn,activated:tn,deactivated:tn,errorCaptured:tn,serverPrefetch:tn,components:$o,directives:$o,watch:Ip,provide:pu,inject:Mp};function pu(e,t){return t?e?function(){return Rt(rt(e)?e.call(this,this):e,rt(t)?t.call(this,this):t)}:t:e}function Mp(e,t){return $o(Pi(e),Pi(t))}function Pi(e){if(Ge(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function tn(e,t){return e?[...new Set([].concat(e,t))]:t}function $o(e,t){return e?Rt(Object.create(null),e,t):t}function vu(e,t){return e?Ge(e)&&Ge(t)?[...new Set([...e,...t])]:Rt(Object.create(null),du(e),du(t??{})):t}function Ip(e,t){if(!e)return t;if(!t)return e;const n=Rt(Object.create(null),e);for(const o in t)n[o]=tn(e[o],t[o]);return n}function Uc(){return{app:null,config:{isNativeTag:Zu,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 jp=0;function Dp(e,t){return function(o,r=null){rt(o)||(o=Rt({},o)),r!=null&&!_t(r)&&(r=null);const l=Uc(),u=new WeakSet,f=[];let v=!1;const y=l.app={_uid:jp++,_component:o,_props:r,_container:null,_context:l,_instance:null,version:fv,get config(){return l.config},set config(m){},use(m,...w){return u.has(m)||(m&&rt(m.install)?(u.add(m),m.install(y,...w)):rt(m)&&(u.add(m),m(y,...w))),y},mixin(m){return l.mixins.includes(m)||l.mixins.push(m),y},component(m,w){return w?(l.components[m]=w,y):l.components[m]},directive(m,w){return w?(l.directives[m]=w,y):l.directives[m]},mount(m,w,T){if(!v){const $=y._ceVNode||be(o,r);return $.appContext=l,T===!0?T="svg":T===!1&&(T=void 0),e($,m,T),v=!0,y._container=m,m.__vue_app__=y,ka($.component)}},onUnmount(m){f.push(m)},unmount(){v&&(gn(f,y._instance,16),e(null,y._container),delete y._container.__vue_app__)},provide(m,w){return l.provides[m]=w,y},runWithContext(m){const w=Qs;Qs=y;try{return m()}finally{Qs=w}}};return y}}let Qs=null;const Lp=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${kn(t)}Modifiers`]||e[`${hs(t)}Modifiers`];function Rp(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||$t;let r=n;const l=t.startsWith("update:"),u=l&&Lp(o,t.slice(7));u&&(u.trim&&(r=n.map(m=>Ot(m)?m.trim():m)),u.number&&(r=r.map(pa)));let f,v=o[f=ri(t)]||o[f=ri(kn(t))];!v&&l&&(v=o[f=ri(hs(t))]),v&&gn(v,e,6,r);const y=o[f+"Once"];if(y){if(!e.emitted)e.emitted={};else if(e.emitted[f])return;e.emitted[f]=!0,gn(y,e,6,r)}}const Kp=new WeakMap;function qc(e,t,n=!1){const o=n?Kp:t.emitsCache,r=o.get(e);if(r!==void 0)return r;const l=e.emits;let u={},f=!1;if(!rt(e)){const v=y=>{const m=qc(y,t,!0);m&&(f=!0,Rt(u,m))};!n&&t.mixins.length&&t.mixins.forEach(v),e.extends&&v(e.extends),e.mixins&&e.mixins.forEach(v)}return!l&&!f?(_t(e)&&o.set(e,null),null):(Ge(l)?l.forEach(v=>u[v]=null):Rt(u,l),_t(e)&&o.set(e,u),u)}function wa(e,t){return!e||!ca(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),yt(e,t[0].toLowerCase()+t.slice(1))||yt(e,hs(t))||yt(e,t))}function mu(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[l],slots:u,attrs:f,emit:v,render:y,renderCache:m,props:w,data:T,setupState:$,ctx:I,inheritAttrs:J}=e,ae=qr(e);let de,ue;try{if(n.shapeFlag&4){const S=r||o,M=S;de=In(y.call(M,S,m,w,$,T,I)),ue=f}else{const S=t;de=In(S.length>1?S(w,{attrs:f,slots:u,emit:v}):S(w,null)),ue=t.props?f:Np(f)}}catch(S){Ds.length=0,ha(S,e,1),de=be(Qt)}let G=de;if(ue&&J!==!1){const S=Object.keys(ue),{shapeFlag:M}=G;S.length&&M&7&&(l&&S.some(da)&&(ue=Fp(ue,l)),G=ps(G,ue,!1,!0))}if(n.dirs&&(G=ps(G,null,!1,!0),G.dirs=G.dirs?G.dirs.concat(n.dirs):n.dirs),n.transition){const S=ya(G.type)&&Hr(G)||G;fs(S,n.transition)}return de=G,qr(ae),de}function Hc(e,t=!0){let n;for(let o=0;o<e.length;o++){const r=e[o];if(Vo(r)){if(r.type!==Qt||r.children==="v-if"){if(n)return;n=r}}else return}return n}const Np=e=>{let t;for(const n in e)(n==="class"||n==="style"||ca(n))&&((t||(t={}))[n]=e[n]);return t},Fp=(e,t)=>{const n={};for(const o in e)(!da(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Vp(e,t,n){const{props:o,children:r,component:l}=e,{props:u,children:f,patchFlag:v}=t,y=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&v>=0){if(v&1024)return!0;if(v&16)return o?hu(o,u,y):!!u;if(v&8){const m=t.dynamicProps;for(let w=0;w<m.length;w++){const T=m[w];if(zc(u,o,T)&&!wa(y,T))return!0}}}else return(r||f)&&(!f||!f.$stable)?!0:o===u?!1:o?u?hu(o,u,y):!0:!!u;return!1}function hu(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 l=o[r];if(!yt(e,l)||zc(t,e,l)&&!wa(n,l))return!0}return!1}function zc(e,t,n){const o=e[n],r=t[n];return n==="style"&&_t(o)&&_t(r)?!cs(o,r):o!==r}function Bp({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 Wc={},Gc=()=>Object.create(Wc),Yc=e=>Object.getPrototypeOf(e)===Wc;function Up(e,t,n,o=!1){const r={},l=Gc();e.propsDefaults=Object.create(null),Jc(e,t,r,l);for(const u in e.propsOptions[0])u in r||(r[u]=void 0);n?e.props=o?r:Jf(r):e.type.props?e.props=r:e.props=l,e.attrs=l}function qp(e,t,n,o){const{props:r,attrs:l,vnode:{patchFlag:u}}=e,f=mt(r),[v]=e.propsOptions;let y=!1;if((o||u>0)&&!(u&16)){if(u&8){const m=e.vnode.dynamicProps;for(let w=0;w<m.length;w++){let T=m[w];if(wa(e.emitsOptions,T))continue;const $=t[T];if(v)if(yt(l,T))$!==l[T]&&(l[T]=$,y=!0);else{const I=kn(T);r[I]=Oi(v,f,I,$,e,!1)}else $!==l[T]&&(l[T]=$,y=!0)}}}else{Jc(e,t,r,l)&&(y=!0);let m;for(const w in f)(!t||!yt(t,w)&&((m=hs(w))===w||!yt(t,m)))&&(v?n&&(n[w]!==void 0||n[m]!==void 0)&&(r[w]=Oi(v,f,w,void 0,e,!0)):delete r[w]);if(l!==f)for(const w in l)(!t||!yt(t,w))&&(delete l[w],y=!0)}y&&Hn(e.attrs,"set","")}function Jc(e,t,n,o){const[r,l]=e.propsOptions;let u=!1,f;if(t)for(let v in t){if(Eo(v))continue;const y=t[v];let m;r&&yt(r,m=kn(v))?!l||!l.includes(m)?n[m]=y:(f||(f={}))[m]=y:wa(e.emitsOptions,v)||(!(v in o)||y!==o[v])&&(o[v]=y,u=!0)}if(l){const v=mt(n),y=f||$t;for(let m=0;m<l.length;m++){const w=l[m];n[w]=Oi(r,v,w,y[w],e,!yt(y,w))}}return u}function Oi(e,t,n,o,r,l){const u=e[n];if(u!=null){const f=yt(u,"default");if(f&&o===void 0){const v=u.default;if(u.type!==Function&&!u.skipFactory&&rt(v)){const{propsDefaults:y}=r;if(n in y)o=y[n];else{const m=Yo(r);o=y[n]=v.call(null,t),m()}}else o=v;r.ce&&r.ce._setProp(n,o)}u[0]&&(l&&!f?o=!1:u[1]&&(o===""||o===hs(n))&&(o=!0))}return o}const Hp=new WeakMap;function Xc(e,t,n=!1){const o=n?Hp:t.propsCache,r=o.get(e);if(r)return r;const l=e.props,u={},f=[];let v=!1;if(!rt(e)){const m=w=>{v=!0;const[T,$]=Xc(w,t,!0);Rt(u,T),$&&f.push(...$)};!n&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!l&&!v)return _t(e)&&o.set(e,Ms),Ms;if(Ge(l))for(let m=0;m<l.length;m++){const w=kn(l[m]);yu(w)&&(u[w]=$t)}else if(l)for(const m in l){const w=kn(m);if(yu(w)){const T=l[m],$=u[w]=Ge(T)||rt(T)?{type:T}:Rt({},T),I=$.type;let J=!1,ae=!0;if(Ge(I))for(let de=0;de<I.length;++de){const ue=I[de],G=rt(ue)&&ue.name;if(G==="Boolean"){J=!0;break}else G==="String"&&(ae=!1)}else J=rt(I)&&I.name==="Boolean";$[0]=J,$[1]=ae,(J||yt($,"default"))&&f.push(w)}}const y=[u,f];return _t(e)&&o.set(e,y),y}function yu(e){return e[0]!=="$"&&!Eo(e)}const ul=e=>e==="_"||e==="_ctx"||e==="$stable",cl=e=>Ge(e)?e.map(In):[In(e)],zp=(e,t,n)=>{if(t._n)return t;const o=Sn((...r)=>cl(t(...r)),n);return o._c=!1,o},Qc=(e,t,n)=>{const o=e._ctx;for(const r in e){if(ul(r))continue;const l=e[r];if(rt(l))t[r]=zp(r,l,o);else if(l!=null){const u=cl(l);t[r]=()=>u}}},Zc=(e,t)=>{const n=cl(t);e.slots.default=()=>n},ed=(e,t,n)=>{for(const o in t)(n||!ul(o))&&(e[o]=t[o])},Wp=(e,t,n)=>{const o=e.slots=Gc();if(e.vnode.shapeFlag&32){const r=t._;r?(ed(o,t,n),n&&oc(o,"_",r,!0)):Qc(t,o)}else t&&Zc(e,t)},Gp=(e,t,n)=>{const{vnode:o,slots:r}=e;let l=!0,u=$t;if(o.shapeFlag&32){const f=t._;f?n&&f===1?l=!1:ed(r,t,n):(l=!t.$stable,Qc(t,r)),u=t}else t&&(Zc(e,t),u={default:1});if(l)for(const f in r)!ul(f)&&u[f]==null&&delete r[f]},nn=Zp;function Yp(e){return Jp(e)}function Jp(e,t){const n=va();n.__VUE__=!0;const{insert:o,remove:r,patchProp:l,createElement:u,createText:f,createComment:v,setText:y,setElementText:m,parentNode:w,nextSibling:T,setScopeId:$=Dn,insertStaticContent:I}=e,J=(_,g,C,D=null,re=null,pe=null,xe=void 0,we=null,ke=!!g.dynamicChildren)=>{if(_===g)return;_&&!Ps(_,g)&&(D=Te(_),le(_,re,pe,!0),_=null),g.patchFlag===-2&&(ke=!1,g.dynamicChildren=null),g.dynamicChildren&&_&&_.dynamicChildren&&_.dynamicChildren.hasOnce&&(g.dynamicChildren===Ms&&(g.dynamicChildren=[]),g.dynamicChildren.hasOnce=!0);const{type:ve,ref:Re,shapeFlag:V}=g;switch(ve){case _a:ae(_,g,C,D);break;case Qt:de(_,g,C,D);break;case jr:_==null&&ue(g,C,D,xe);break;case Oe:ne(_,g,C,D,re,pe,xe,we,ke);break;default:V&1?M(_,g,C,D,re,pe,xe,we,ke):V&6?Ie(_,g,C,D,re,pe,xe,we,ke):(V&64||V&128)&&ve.process(_,g,C,D,re,pe,xe,we,ke,xt)}Re!=null&&re?Po(Re,_&&_.ref,pe,g||_,!g):Re==null&&_&&_.ref!=null&&Po(_.ref,null,pe,_,!0)},ae=(_,g,C,D)=>{if(_==null)o(g.el=f(g.children),C,D);else{const re=g.el=_.el;g.children!==_.children&&y(re,g.children)}},de=(_,g,C,D)=>{_==null?o(g.el=v(g.children||""),C,D):g.el=_.el},ue=(_,g,C,D)=>{[_.el,_.anchor]=I(_.children,g,C,D,_.el,_.anchor)},G=({el:_,anchor:g},C,D)=>{let re;for(;_&&_!==g;)re=T(_),o(_,C,D),_=re;o(g,C,D)},S=({el:_,anchor:g})=>{let C;for(;_&&_!==g;)C=T(_),r(_),_=C;r(g)},M=(_,g,C,D,re,pe,xe,we,ke)=>{if(g.type==="svg"?xe="svg":g.type==="math"&&(xe="mathml"),_==null)ee(g,C,D,re,pe,xe,we,ke);else{const ve=_.el&&_.el._isVueCE?_.el:null;try{ve&&ve._beginPatch(),j(_,g,re,pe,xe,we,ke)}finally{ve&&ve._endPatch()}}},ee=(_,g,C,D,re,pe,xe,we)=>{let ke,ve;const{props:Re,shapeFlag:V,transition:te,dirs:R}=_;if(ke=_.el=u(_.type,pe,Re&&Re.is,Re),V&8?m(ke,_.children):V&16&&oe(_.children,ke,null,D,re,pi(_,pe),xe,we),R&&xs(_,null,D,"created"),q(ke,_,_.scopeId,xe,D),Re){for(const fe in Re)fe!=="value"&&!Eo(fe)&&l(ke,fe,null,Re[fe],pe,D);"value"in Re&&l(ke,"value",null,Re.value,pe),(ve=Re.onVnodeBeforeMount)&&An(ve,D,_)}R&&xs(_,null,D,"beforeMount");const L=Xp(re,te);L&&te.beforeEnter(ke),o(ke,g,C),((ve=Re&&Re.onVnodeMounted)||L||R)&&nn(()=>{try{ve&&An(ve,D,_),L&&te.enter(ke),R&&xs(_,null,D,"mounted")}finally{}},re)},q=(_,g,C,D,re)=>{if(C&&$(_,C),D)for(let pe=0;pe<D.length;pe++)$(_,D[pe]);if(re){let pe=re.subTree;if(g===pe||nd(pe.type)&&(pe.ssContent===g||pe.ssFallback===g)){const xe=re.vnode;q(_,xe,xe.scopeId,xe.slotScopeIds,re.parent)}}},oe=(_,g,C,D,re,pe,xe,we,ke=0)=>{for(let ve=ke;ve<_.length;ve++){const Re=_[ve]=we?qn(_[ve]):In(_[ve]);J(null,Re,g,C,D,re,pe,xe,we)}},j=(_,g,C,D,re,pe,xe)=>{const we=g.el=_.el;let{patchFlag:ke,dynamicChildren:ve,dirs:Re}=g;ke|=_.patchFlag&16;const V=_.props||$t,te=g.props||$t;let R;if(C&&$s(C,!1),(R=te.onVnodeBeforeUpdate)&&An(R,C,g,_),Re&&xs(g,_,C,"beforeUpdate"),C&&$s(C,!0),ve&&(!_.dynamicChildren||_.dynamicChildren.length!==ve.length)&&(ke=0,xe=!1,ve=null),(V.innerHTML&&te.innerHTML==null||V.textContent&&te.textContent==null)&&m(we,""),ve?A(_.dynamicChildren,ve,we,C,D,pi(g,re),pe):xe||Ue(_,g,we,null,C,D,pi(g,re),pe,!1),ke>0){if(ke&16)O(we,V,te,C,re);else if(ke&2&&V.class!==te.class&&l(we,"class",null,te.class,re),ke&4&&l(we,"style",V.style,te.style,re),ke&8){const L=g.dynamicProps;for(let fe=0;fe<L.length;fe++){const je=L[fe],Je=V[je],ft=te[je];(ft!==Je||je==="value")&&l(we,je,Je,ft,re,C)}}ke&1&&_.children!==g.children&&m(we,g.children)}else!xe&&ve==null&&O(we,V,te,C,re);((R=te.onVnodeUpdated)||Re)&&nn(()=>{R&&An(R,C,g,_),Re&&xs(g,_,C,"updated")},D)},A=(_,g,C,D,re,pe,xe)=>{for(let we=0;we<g.length;we++){const ke=_[we],ve=g[we],Re=ke.el||Mi(ke),V=Re&&(ke.type===Oe||!Ps(ke,ve)||ke.shapeFlag&198)?w(Re):C;J(ke,ve,V,null,D,re,pe,xe,!0)}},O=(_,g,C,D,re)=>{if(g!==C){if(g!==$t)for(const pe in g)!Eo(pe)&&!(pe in C)&&l(_,pe,g[pe],null,re,D);for(const pe in C){if(Eo(pe))continue;const xe=C[pe],we=g[pe];xe!==we&&pe!=="value"&&l(_,pe,we,xe,re,D)}"value"in C&&l(_,"value",g.value,C.value,re)}},ne=(_,g,C,D,re,pe,xe,we,ke)=>{const ve=g.el=_?_.el:f(""),Re=g.anchor=_?_.anchor:f("");let{patchFlag:V,dynamicChildren:te,slotScopeIds:R}=g;R&&(we=we?we.concat(R):R),_==null?(o(ve,C,D),o(Re,C,D),oe(g.children||[],C,Re,re,pe,xe,we,ke)):V>0&&V&64&&te&&_.dynamicChildren&&_.dynamicChildren.length===te.length?(A(_.dynamicChildren,te,C,re,pe,xe,we),(g.key!=null||re&&g===re.subTree)&&dl(_,g,!0)):Ue(_,g,C,Re,re,pe,xe,we,ke)},Ie=(_,g,C,D,re,pe,xe,we,ke)=>{g.slotScopeIds=we,_==null?g.shapeFlag&512?re.ctx.activate(g,C,D,xe,ke):Se(g,C,D,re,pe,xe,ke):_e(_,g,ke)},Se=(_,g,C,D,re,pe,xe)=>{const we=_.component=rv(_,D,re);if(ga(_)&&(we.ctx.renderer=xt),av(we,!1,xe),we.asyncDep){if(re&&re.registerDep(we,Me,xe,pe),!_.el){const ke=we.subTree=be(Qt);de(null,ke,g,C),_.placeholder=ke.el}}else Me(we,_,g,C,re,pe,xe)},_e=(_,g,C)=>{const D=g.component=_.component;if(Vp(_,g,C))if(D.asyncDep&&!D.asyncResolved){g.el=_.el,g.placeholder=_.placeholder,qe(D,g,C);return}else D.next=g,D.update();else g.el=_.el,g.placeholder=_.placeholder,D.vnode=g},Me=(_,g,C,D,re,pe,xe)=>{const we=()=>{if(_.isMounted){let{next:V,bu:te,u:R,parent:L,vnode:fe}=_;{const Ze=td(_);if(Ze){V&&(V.el=fe.el,qe(_,V,xe)),Ze.asyncDep.then(()=>{nn(()=>{_.isUnmounted||ve()},re)});return}}let je=V,Je;$s(_,!1),V?(V.el=fe.el,qe(_,V,xe)):V=fe,te&&Mr(te),(Je=V.props&&V.props.onVnodeBeforeUpdate)&&An(Je,L,V,fe),$s(_,!0);const ft=mu(_),It=_.subTree;_.subTree=ft,J(It,ft,w(It.el),Te(It),_,re,pe),V.el=ft.el,je===null&&Bp(_,ft.el),R&&nn(R,re),(Je=V.props&&V.props.onVnodeUpdated)&&nn(()=>An(Je,L,V,fe),re)}else{let V;const{el:te,props:R}=g,{bm:L,m:fe,parent:je,root:Je,type:ft}=_,It=Oo(g);$s(_,!1),L&&Mr(L),!It&&(V=R&&R.onVnodeBeforeMount)&&An(V,je,g),$s(_,!0);{Je.ce&&Je.ce._hasShadowRoot()&&Je.ce._injectChildStyle(ft,_.parent?_.parent.type:void 0);const Ze=_.subTree=mu(_);J(null,Ze,C,D,_,re,pe),g.el=Ze.el}if(fe&&nn(fe,re),!It&&(V=R&&R.onVnodeMounted)){const Ze=g;nn(()=>An(V,je,Ze),re)}(g.shapeFlag&256||je&&Oo(je.vnode)&&je.vnode.shapeFlag&256)&&_.a&&nn(_.a,re),_.isMounted=!0,g=C=D=null}};_.scope.on();const ke=_.effect=new lc(we);_.scope.off();const ve=_.update=ke.run.bind(ke),Re=_.job=ke.runIfDirty.bind(ke);Re.i=_,Re.id=_.uid,ke.scheduler=()=>il(Re),$s(_,!0),ve()},qe=(_,g,C)=>{g.component=_;const D=_.vnode.props;_.vnode=g,_.next=null,qp(_,g.props,D,C),Gp(_,g.children,C),Rn(),Sc(_),Kn()},Ue=(_,g,C,D,re,pe,xe,we,ke=!1)=>{const ve=_&&_.children,Re=_?_.shapeFlag:0,V=g.children,{patchFlag:te,shapeFlag:R}=g;if(te>0){if(te&128){Ye(ve,V,C,D,re,pe,xe,we,ke);return}else if(te&256){tt(ve,V,C,D,re,pe,xe,we,ke);return}}R&8?(Re&16&&it(ve,re,pe),V!==ve&&m(C,V)):Re&16?R&16?Ye(ve,V,C,D,re,pe,xe,we,ke):it(ve,re,pe,!0):(Re&8&&m(C,""),R&16&&oe(V,C,D,re,pe,xe,we,ke))},tt=(_,g,C,D,re,pe,xe,we,ke)=>{_=_||Ms,g=g||Ms;const ve=_.length,Re=g.length,V=Math.min(ve,Re);let te;for(te=0;te<V;te++){const R=g[te]=ke?qn(g[te]):In(g[te]);J(_[te],R,C,null,re,pe,xe,we,ke)}ve>Re?it(_,re,pe,!0,!1,V):oe(g,C,D,re,pe,xe,we,ke,V)},Ye=(_,g,C,D,re,pe,xe,we,ke)=>{let ve=0;const Re=g.length;let V=_.length-1,te=Re-1;for(;ve<=V&&ve<=te;){const R=_[ve],L=g[ve]=ke?qn(g[ve]):In(g[ve]);if(Ps(R,L))J(R,L,C,null,re,pe,xe,we,ke);else break;ve++}for(;ve<=V&&ve<=te;){const R=_[V],L=g[te]=ke?qn(g[te]):In(g[te]);if(Ps(R,L))J(R,L,C,null,re,pe,xe,we,ke);else break;V--,te--}if(ve>V){if(ve<=te){const R=te+1,L=R<Re?g[R].el:D;for(;ve<=te;)J(null,g[ve]=ke?qn(g[ve]):In(g[ve]),C,L,re,pe,xe,we,ke),ve++}}else if(ve>te)for(;ve<=V;)le(_[ve],re,pe,!0),ve++;else{const R=ve,L=ve,fe=new Map;for(ve=L;ve<=te;ve++){const bt=g[ve]=ke?qn(g[ve]):In(g[ve]);bt.key!=null&&fe.set(bt.key,ve)}let je,Je=0;const ft=te-L+1;let It=!1,Ze=0;const et=new Array(ft);for(ve=0;ve<ft;ve++)et[ve]=0;for(ve=R;ve<=V;ve++){const bt=_[ve];if(Je>=ft){le(bt,re,pe,!0);continue}let wt;if(bt.key!=null)wt=fe.get(bt.key);else for(je=L;je<=te;je++)if(et[je-L]===0&&Ps(bt,g[je])){wt=je;break}wt===void 0?le(bt,re,pe,!0):(et[wt-L]=ve+1,wt>=Ze?Ze=wt:It=!0,J(bt,g[wt],C,null,re,pe,xe,we,ke),Je++)}const Bt=It?Qp(et):Ms;for(je=Bt.length-1,ve=ft-1;ve>=0;ve--){const bt=L+ve,wt=g[bt],Ne=g[bt+1],rn=bt+1<Re?Ne.el||Mi(Ne):D;et[ve]===0?J(null,wt,C,rn,re,pe,xe,we,ke):It&&(je<0||ve!==Bt[je]?We(wt,C,rn,2):je--)}}},We=(_,g,C,D,re=null)=>{const{el:pe,type:xe,transition:we,children:ke,shapeFlag:ve}=_;if(ve&6){We(_.component.subTree,g,C,D);return}if(ve&128){_.suspense.move(g,C,D);return}if(ve&64){xe.move(_,g,C,xt);return}if(xe===Oe){o(pe,g,C);for(let V=0;V<ke.length;V++)We(ke[V],g,C,D);o(_.anchor,g,C);return}if(xe===jr){G(_,g,C);return}if(D!==2&&ve&1&&we)if(D===0)we.persisted&&!pe[fn]?o(pe,g,C):(we.beforeEnter(pe),o(pe,g,C),nn(()=>we.enter(pe),re));else{const{leave:V,delayLeave:te,afterLeave:R}=we,L=()=>{_.ctx.isUnmounted?r(pe):o(pe,g,C)},fe=()=>{const je=pe._isLeaving||!!pe[fn];pe._isLeaving&&pe[fn](!0),we.persisted&&!je?L():V(pe,()=>{L(),R&&R()})};te?te(pe,L,fe):fe()}else o(pe,g,C)},le=(_,g,C,D=!1,re=!1)=>{const{type:pe,props:xe,ref:we,children:ke,dynamicChildren:ve,shapeFlag:Re,patchFlag:V,dirs:te,cacheIndex:R,memo:L}=_;if((V===-2||ve&&ve.hasOnce)&&(re=!1),we!=null&&(Rn(),Po(we,null,C,_,!0),Kn()),R!=null&&(!_.ctx||_.ctx===g)&&(g.renderCache[R]=void 0),Re&256){g.ctx.deactivate(_);return}const fe=Re&1&&te,je=!Oo(_);let Je;if(je&&(Je=xe&&xe.onVnodeBeforeUnmount)&&An(Je,g,_),Re&6)lt(_.component,C,D);else{if(Re&128){_.suspense.unmount(C,D);return}fe&&xs(_,null,g,"beforeUnmount"),Re&64?_.type.remove(_,g,C,xt,D):ve&&!ve.hasOnce&&(pe!==Oe||V>0&&V&64)?it(ve,g,C,!1,!0):(pe===Oe&&V&384||!re&&Re&16)&&it(ke,g,C),D&&Q(_)}const ft=L!=null&&R==null;(je&&(Je=xe&&xe.onVnodeUnmounted)||fe||ft)&&nn(()=>{Je&&An(Je,g,_),fe&&xs(_,null,g,"unmounted"),ft&&(_.el=null)},C)},Q=_=>{const{type:g,el:C,anchor:D,transition:re}=_,pe=g===Oe;if(pe&&!re){Ae(C,D);return}if(g===jr){S(_),re&&!re.persisted&&re.afterLeave&&re.afterLeave();return}const xe=pe?No(_):_,we=()=>{pe?w(C)&&Ae(C,D):r(C),re&&!re.persisted&&re.afterLeave&&re.afterLeave()};if(xe&&xe.shapeFlag&1&&re&&!re.persisted){const{leave:ke,delayLeave:ve}=re,Re=xe.el,V=()=>ke(Re,we);ve?ve(Re,we,V):V()}else we()},Ae=(_,g)=>{let C;for(;_!==g;)C=T(_),r(_),_=C;r(g)},lt=(_,g,C)=>{const{bum:D,scope:re,job:pe,subTree:xe,um:we,m:ke,a:ve}=_;gu(ke),gu(ve),D&&Mr(D),re.stop(),pe?(pe.flags|=8,le(xe,_,g,C)):_.vnode.el&&xe&&(xe.transition=_.vnode.transition,le(xe,_,g,C)),we&&nn(we,g),nn(()=>{_.isUnmounted=!0},g)},it=(_,g,C,D=!1,re=!1,pe=0)=>{for(let xe=pe;xe<_.length;xe++)le(_[xe],g,C,D,re)},Te=_=>{if(_.shapeFlag&6)return Te(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const g=T(_.anchor||_.el),C=g&&g[Mc];return C?T(C):g},kt=(_,g,C)=>{const D=_&&g._vnode?void 0:_&&_.component?_.component.uid:ov();lp(()=>{_==null?g._vnode&&le(g._vnode,null,null,!0):J(g._vnode||null,_,g,null,null,null,C),g._vnode=_},D)},xt={p:J,um:le,m:We,r:Q,mt:Se,mc:oe,pc:Ue,pbc:A,n:Te,o:e};return{render:kt,hydrate:void 0,createApp:Dp(kt)}}function pi({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 $s({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Xp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function dl(e,t,n=!1){const o=e.children,r=t.children;if(Ge(o)&&Ge(r))for(let l=0;l<o.length;l++){const u=o[l];let f=r[l];f.shapeFlag&1&&!f.dynamicChildren&&((f.patchFlag<=0||f.patchFlag===32)&&(f=r[l]=qn(r[l]),f.el=u.el),!n&&f.patchFlag!==-2&&dl(u,f)),f.type===_a&&(f.patchFlag===-1&&(f=r[l]=qn(f)),f.el=u.el),f.type===Qt&&!f.el&&(f.el=u.el)}}function Qp(e){const t=e.slice(),n=[0];let o,r,l,u,f;const v=e.length;for(o=0;o<v;o++){const y=e[o];if(y!==0){if(r=n[n.length-1],e[r]<y){t[o]=r,n.push(o);continue}for(l=0,u=n.length-1;l<u;)f=l+u>>1,e[n[f]]<y?l=f+1:u=f;y<e[n[l]]&&(l>0&&(t[o]=n[l-1]),n[l]=o)}}for(l=n.length,u=n[l-1];l-- >0;)n[l]=u,u=t[u];return n}function td(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:td(t)}function gu(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Mi(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Mi(t.subTree):null}const nd=e=>e.__isSuspense;function Zp(e,t){t&&t.pendingBranch?Ge(e)?t.effects.push(...e):t.effects.push(e):ip(e)}const Oe=Symbol.for("v-fgt"),_a=Symbol.for("v-txt"),Qt=Symbol.for("v-cmt"),jr=Symbol.for("v-stc"),Ds=[];let un=null;function x(e=!1){Ds.push(un=e?null:[])}function sd(){Ds.pop(),un=Ds[Ds.length-1]||null}let Fo=1;function Gr(e,t=!1){Fo+=e,e<0&&un&&t&&(un.hasOnce=!0)}function od(e){return e.dynamicChildren=Fo>0?un||Ms:null,sd(),Fo>0&&un&&un.push(e),e}function E(e,t,n,o,r,l){return od(i(e,t,n,o,r,l,!0))}function Ct(e,t,n,o,r){return od(be(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 rd=({key:e})=>e??null,Dr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ot(e)||Zt(e)||rt(e)?{i:vn,r:e,k:t,f:!!n}:e:null);function i(e,t=null,n=null,o=0,r=null,l=e===Oe?0:1,u=!1,f=!1){const v={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rd(t),ref:t&&Dr(t),scopeId:Tc,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:l,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:vn};return f?(Yr(v,n),l&128&&e.normalize(v)):n&&(v.shapeFlag|=Ot(n)?8:16),Fo>0&&!u&&un&&(v.patchFlag>0||l&6)&&v.patchFlag!==32&&un.push(v),v}const be=ev;function ev(e,t=null,n=null,o=0,r=null,l=!1){if((!e||e===Ep)&&(e=Qt),Vo(e)){const f=ps(e,t,!0);return n&&Yr(f,n),Fo>0&&!l&&un&&(f.shapeFlag&6?un[un.indexOf(e)]=f:un.push(f)),f.patchFlag=-2,f}if(cv(e)&&(e=e.__vccOpts),t){t=tv(t);let{class:f,style:v}=t;f&&!Ot(f)&&(t.class=ze(f)),_t(v)&&(al(v)&&!Ge(v)&&(v=Rt({},v)),t.style=pn(v))}const u=Ot(e)?1:nd(e)?128:ya(e)?64:_t(e)?4:rt(e)?2:0;return i(e,t,n,o,r,u,l,!0)}function tv(e){return e?al(e)||Yc(e)?Rt({},e):e:null}function ps(e,t,n=!1,o=!1){const{props:r,ref:l,patchFlag:u,children:f,transition:v}=e,y=t?nv(r||{},t):r,m={__v_isVNode:!0,__v_skip:!0,type:e.type,props:y,key:y&&rd(y),ref:t&&t.ref?n&&l?Ge(l)?l.concat(Dr(t)):[l,Dr(t)]:Dr(t):l,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!==Oe?u===-1?16:u|16:u,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(m,v.clone(m)),m}function At(e=" ",t=0){return be(_a,null,e,t)}function ad(e,t){const n=be(jr,null,e);return n.staticCount=t,n}function me(e="",t=!1){return t?(x(),Ct(Qt,null,e)):be(Qt,null,e)}function In(e){return e==null||typeof e=="boolean"?be(Qt):Ge(e)?be(Oe,null,e.slice()):Vo(e)?qn(e):be(_a,null,String(e))}function qn(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(Ge(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&&!Yc(t)?t._ctx=vn:r===3&&vn&&(vn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(rt(t)){if(o&65){Yr(e,{default:t});return}t={default:t,_ctx:vn},n=32}else t=String(t),o&64?(n=16,t=[At(t)]):n=8;e.children=t,e.shapeFlag|=n}function nv(...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=ze([t.class,o.class]));else if(r==="style")t.style=pn([t.style,o.style]);else if(ca(r)){const l=t[r],u=o[r];u&&l!==u&&!(Ge(l)&&l.includes(u))?t[r]=l?[].concat(l,u):u:u==null&&l==null&&!da(r)&&(t[r]=u)}else r!==""&&(t[r]=o[r])}return t}function An(e,t,n,o=null){gn(e,t,7,[n,o])}const sv=Uc();let id=0;function ov(){return id}function rv(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||sv,l={uid:id++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Mf(!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:Xc(o,r),emitsOptions:qc(o,r),emit:null,emitted:null,propsDefaults:$t,inheritAttrs:o.inheritAttrs,ctx:$t,data:$t,props:$t,attrs:$t,slots:$t,refs:$t,setupState:$t,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 l.ctx={_:l},l.root=t?t.root:l,l.emit=Rp.bind(null,l),e.ce&&e.ce(l),l}let on=null;const fl=()=>on||vn;let Jr,Bo;{const e=va(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),l=>{r.length>1?r.forEach(u=>u(l)):r[0](l)}};Jr=t("__VUE_INSTANCE_SETTERS__",n=>on=n),Bo=t("__VUE_SSR_SETTERS__",n=>Uo=n)}const Yo=e=>{const t=on;return Jr(e),e.scope.on(),()=>{e.scope.off(),Jr(t)}},bu=()=>{on&&on.scope.off(),Jr(null)};function ld(e){return e.vnode.shapeFlag&4}let Uo=!1;function av(e,t=!1,n=!1){t&&Bo(t);const{props:o,children:r}=e.vnode,l=ld(e);Up(e,o,l,t),Wp(e,r,n||t);const u=l?iv(e,t):void 0;return t&&Bo(!1),u}function iv(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ap);const{setup:o}=n;if(o){Rn();const r=e.setupContext=o.length>1?uv(e):null,l=Yo(e),u=Go(o,e,0,[e.props,r]),f=ec(u);if(Kn(),l(),(f||e.sp)&&!Oo(e)&&Rc(e),f){if(u.then(bu,bu),t)return u.then(v=>{Bo(!0);try{wu(e,v,t)}finally{Bo(!1)}}).catch(v=>{ha(v,e,0)});e.asyncDep=u}else wu(e,u)}else ud(e)}function wu(e,t,n){rt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:_t(t)&&(e.setupState=Cc(t)),ud(e)}function ud(e,t,n){const o=e.type;e.render||(e.render=o.render||Dn);{const r=Yo(e);Rn();try{Tp(e)}finally{Kn(),r()}}}const lv={get(e,t){return Xt(e,"get",""),e[t]}};function uv(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,lv),slots:e.slots,emit:e.emit,expose:t}}function ka(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Cc(Xf(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 cv(e){return rt(e)&&"__vccOpts"in e}const nt=(e,t)=>np(e,t,Uo);function dv(e,t,n){try{Gr(-1);const o=arguments.length;return o===2?_t(t)&&!Ge(t)?Vo(t)?be(e,null,[t]):be(e,t):be(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Vo(n)&&(n=[n]),be(e,t,n))}finally{Gr(1)}}const fv="3.5.44";/**
* @vue/runtime-dom v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Ii;const _u=typeof window<"u"&&window.trustedTypes;if(_u)try{Ii=_u.createPolicy("vue",{createHTML:e=>e})}catch{}const cd=Ii?e=>Ii.createHTML(e):e=>e,pv="http://www.w3.org/2000/svg",vv="http://www.w3.org/1998/Math/MathML",Un=typeof document<"u"?document:null,ku=Un&&Un.createElement("template"),mv={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"?Un.createElementNS(pv,e):t==="mathml"?Un.createElementNS(vv,e):n?Un.createElement(e,{is:n}):Un.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>Un.createTextNode(e),createComment:e=>Un.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Un.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,l){const u=n?n.previousSibling:t.lastChild;if(r&&(r===l||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===l||!(r=r.nextSibling)););else{ku.innerHTML=cd(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const f=ku.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[u?u.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ss="transition",Co="animation",oo=Symbol("_vtc"),dd={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},fd=Rt({},jc,dd),hv=e=>(e.displayName="Transition",e.props=fd,e),Jn=hv((e,{slots:t})=>dv(yp,pd(e),t)),Ss=(e,t=[])=>{Ge(e)?e.forEach(n=>n(...t)):e&&e(...t)},Cu=e=>e?Ge(e)?e.some(t=>t.length>1):e.length>1:!1;function pd(e){const t={};for(const ne in e)ne in dd||(t[ne]=e[ne]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:l=`${n}-enter-from`,enterActiveClass:u=`${n}-enter-active`,enterToClass:f=`${n}-enter-to`,appearFromClass:v=l,appearActiveClass:y=u,appearToClass:m=f,leaveFromClass:w=`${n}-leave-from`,leaveActiveClass:T=`${n}-leave-active`,leaveToClass:$=`${n}-leave-to`}=e,I=yv(r),J=I&&I[0],ae=I&&I[1],{onBeforeEnter:de,onEnter:ue,onEnterCancelled:G,onLeave:S,onLeaveCancelled:M,onBeforeAppear:ee=de,onAppear:q=ue,onAppearCancelled:oe=G}=t,j=(ne,Ie,Se,_e)=>{ne._enterCancelled=_e,rs(ne,Ie?m:f),rs(ne,Ie?y:u),Se&&Se()},A=(ne,Ie)=>{ne._isLeaving=!1,rs(ne,w),rs(ne,$),rs(ne,T),Ie&&Ie()},O=ne=>(Ie,Se)=>{const _e=ne?q:ue,Me=()=>j(Ie,ne,Se);Ss(_e,[Ie,Me]),xu(()=>{rs(Ie,ne?v:l),Tn(Ie,ne?m:f),Cu(_e)||$u(Ie,o,J,Me)})};return Rt(t,{onBeforeEnter(ne){Ss(de,[ne]),Tn(ne,l),Tn(ne,u)},onBeforeAppear(ne){Ss(ee,[ne]),Tn(ne,v),Tn(ne,y)},onEnter:O(!1),onAppear:O(!0),onLeave(ne,Ie){ne._isLeaving=!0;const Se=()=>A(ne,Ie);Tn(ne,w),ne._enterCancelled?(Tn(ne,T),ji(ne)):(ji(ne),Tn(ne,T)),xu(()=>{ne._isLeaving&&(rs(ne,w),Tn(ne,$),Cu(S)||$u(ne,o,ae,Se))}),Ss(S,[ne,Se])},onEnterCancelled(ne){j(ne,!1,void 0,!0),Ss(G,[ne])},onAppearCancelled(ne){j(ne,!0,void 0,!0),Ss(oe,[ne])},onLeaveCancelled(ne){A(ne),Ss(M,[ne])}})}function yv(e){if(e==null)return null;if(_t(e))return[vi(e.enter),vi(e.leave)];{const t=vi(e);return[t,t]}}function vi(e){return kf(e)}function Tn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[oo]||(e[oo]=new Set)).add(t)}function rs(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[oo];n&&(n.delete(t),n.size||(e[oo]=void 0))}function xu(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let gv=0;function $u(e,t,n,o){const r=e._endId=++gv,l=()=>{r===e._endId&&o()};if(n!=null)return setTimeout(l,n);const{type:u,timeout:f,propCount:v}=vd(e,t);if(!u)return o();const y=u+"end";let m=0;const w=()=>{e.removeEventListener(y,T),l()},T=$=>{$.target===e&&++m>=v&&w()};setTimeout(()=>{m<v&&w()},f+1),e.addEventListener(y,T)}function vd(e,t){const n=window.getComputedStyle(e),o=I=>(n[I]||"").split(", "),r=o(`${ss}Delay`),l=o(`${ss}Duration`),u=Su(r,l),f=o(`${Co}Delay`),v=o(`${Co}Duration`),y=Su(f,v);let m=null,w=0,T=0;t===ss?u>0&&(m=ss,w=u,T=l.length):t===Co?y>0&&(m=Co,w=y,T=v.length):(w=Math.max(u,y),m=w>0?u>y?ss:Co:null,T=m?m===ss?l.length:v.length:0);const $=m===ss&&/\b(?:transform|all)(?:,|$)/.test(o(`${ss}Property`).toString());return{type:m,timeout:w,propCount:T,hasTransform:$}}function Su(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,o)=>Eu(n)+Eu(e[o])))}function Eu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ji(e){return(e?e.ownerDocument:document).body.offsetHeight}function bv(e,t,n){const o=e[oo];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Au=Symbol("_vod"),md=Symbol("_vsh"),wv=Symbol(""),_v=/(?:^|;)\s*display\s*:/;function kv(e,t,n){const o=e.style,r=Ot(n);let l=!1;if(n&&!r){if(t)if(Ot(t))for(const u of t.split(";")){const f=u.slice(0,u.indexOf(":")).trim();n[f]==null&&So(o,f,"")}else for(const u in t)n[u]==null&&So(o,u,"");for(const u in n){u==="display"&&(l=!0);const f=n[u];f!=null?xv(e,u,!Ot(t)&&t?t[u]:void 0,f)||So(o,u,f):So(o,u,"")}}else if(r){if(t!==n){const u=o[wv];u&&(n+=";"+u),o.cssText=n,l=_v.test(n)}}else t&&e.removeAttribute("style");Au in e&&((!r||t!==n)&&(e[Au]=l?o.display:""),e[md]&&(o.display="none"))}const Tr=/\s*!important$/;function So(e,t,n){if(Ge(n))n.forEach(o=>So(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Tr.test(n)?e.setProperty(t,n.replace(Tr,""),"important"):e.setProperty(t,n);else{const o=Cv(e,t);Tr.test(n)?e.setProperty(hs(o),n.replace(Tr,""),"important"):e[o]=n}}const Tu=["Webkit","Moz","ms"],mi={};function Cv(e,t){const n=mi[t];if(n)return n;let o=kn(t);if(o!=="filter"&&o in e)return mi[t]=o;o=sc(o);for(let r=0;r<Tu.length;r++){const l=Tu[r]+o;if(l in e)return mi[t]=l}return t}function xv(e,t,n,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Ot(o)&&n===o}const Pu="http://www.w3.org/1999/xlink";function Ou(e,t,n,o,r,l=Af(t)){o&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Pu,t.slice(6,t.length)):e.setAttributeNS(Pu,t,n):n==null||l&&!rc(n)?e.removeAttribute(t):e.setAttribute(t,l?"":Ln(n)?String(n):n)}function Mu(e,t,n,o,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?cd(n):n);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const f=l==="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 u=!1;if(n===""||n==null){const f=typeof e[t];f==="boolean"?n=rc(n):n==null&&f==="string"?(n="",u=!0):f==="number"&&(n=0,u=!0)}try{e[t]=n}catch{}u&&e.removeAttribute(r||t)}function Os(e,t,n,o){e.addEventListener(t,n,o)}function $v(e,t,n,o){e.removeEventListener(t,n,o)}const Iu=Symbol("_vei");function Sv(e,t,n,o,r=null){const l=e[Iu]||(e[Iu]={}),u=l[t];if(o&&u)u.value=o;else{const[f,v]=Tv(t);if(o){const y=l[t]=Mv(o,r);Os(e,f,y,v)}else u&&($v(e,f,u,v),l[t]=void 0)}}const Ev=/(Once|Passive|Capture)$/,Av=/^on:?(?:Once|Passive|Capture)$/;function Tv(e){let t,n;for(;(n=e.match(Ev))&&!Av.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):hs(e.slice(2)),t]}let hi=0;const Pv=Promise.resolve(),Ov=()=>hi||(Pv.then(()=>hi=0),hi=Date.now());function Mv(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;const r=n.value;if(Ge(r)){const l=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{l.call(o),o._stopped=!0};const u=r.slice(),f=[o];for(let v=0;v<u.length&&!o._stopped;v++){const y=u[v];y&&gn(y,t,5,f)}}else gn(r,t,5,[o])};return n.value=e,n.attached=Ov(),n}const ju=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Iv=(e,t,n,o,r,l)=>{const u=r==="svg";t==="class"?bv(e,o,u):t==="style"?kv(e,n,o):ca(t)?da(t)||Sv(e,t,n,o,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):jv(e,t,o,u))?(Mu(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ou(e,t,o,u,l,t!=="value")):e._isVueCE&&(Dv(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ot(o)))?Mu(e,kn(t),o,l,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Ou(e,t,o,u))};function jv(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ju(t)&&rt(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 ju(t)&&Ot(n)?!1:t in e}function Dv(e,t){const n=e._def.props;if(!n)return!1;const o=kn(t);return Array.isArray(n)?n.some(r=>kn(r)===o):Object.keys(n).some(r=>kn(r)===o)}const hd=new WeakMap,yd=new WeakMap,Xr=Symbol("_moveCb"),Du=Symbol("_enterCb"),Di=new WeakMap,Lv=e=>(delete e.props.mode,e),Rv=Lv({name:"TransitionGroup",props:Rt({},fd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=fl(),o=Ic();let r,l,u,f;const v=()=>(f===void 0&&(f=r.length>0&&Hv(r[0].el,n.vnode.el,Lu(e))),f);return Nc(()=>{if(Di.delete(n),!v()){r=[],u=void 0;return}const y=Lu(e);r.forEach(Nv);const m=u&&qv(u,n.vnode.el);u=void 0,r.forEach(T=>Fv(T,m));const w=r.filter(Vv);ji(n.vnode.el),w.forEach(T=>{const $=T.el,I=$.style;Tn($,y),I.transform=I.webkitTransform=I.transitionDuration="";const J=$[Xr]=ae=>{ae&&ae.target!==$||(!ae||ae.propertyName.endsWith("transform"))&&($.removeEventListener("transitionend",J),$[Xr]=null,rs($,y))};$.addEventListener("transitionend",J)}),r=[]}),()=>{const y=mt(e),m=pd(y);let w=y.tag||Oe;if(r=[],f=void 0,l)for(let T=0;T<l.length;T++){const $=l[T];$.el&&$.el instanceof Element&&!$.el[md]&&(r.push($),fs($,Ko($,m,o,n)),hd.set($,Ca($.el)))}l=t.default?ll(t.default()):[];for(let T=0;T<l.length;T++){const $=l[T];$.key!=null&&fs($,Ko($,m,o,n))}return r.length&&(u=Bv(n),Di.set(n,v)),be(w,null,l)}}}),Kv=Rv;function Nv(e){const t=e.el;t[Xr]&&t[Xr](),t[Du]&&t[Du]()}function Lu(e){return e.moveClass||`${e.name||"v"}-move`}function Fv(e,t){yd.set(e,Ca(e.el,t))}function Vv(e){const t=hd.get(e),n=yd.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const l=e.el,u=l.style,f=l.getBoundingClientRect();let v=1,y=1;return l.offsetWidth&&(v=f.width/l.offsetWidth),l.offsetHeight&&(y=f.height/l.offsetHeight),(!Number.isFinite(v)||v===0)&&(v=1),(!Number.isFinite(y)||y===0)&&(y=1),Math.abs(v-1)<.01&&(v=1),Math.abs(y-1)<.01&&(y=1),u.transform=u.webkitTransform=`translate(${o/v}px,${r/y}px)`,u.transitionDuration="0s",e}}function Ca(e,t){const n=e.getBoundingClientRect();return{left:n.left-(t?t.left:0),top:n.top-(t?t.top:0)}}function Bv(e){let t;for(let n=e.parent;n;n=n.parent){const o=Di.get(n);if(o){const r=Uv(n.vnode.el,e.vnode.el);r&&(t||(t=[])).push(Rt(Ca(r),{item:r,willMove:o}))}}return t}function Uv(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 qv(e,t){const n=e.find(o=>o.willMove()&&o.item.contains(t));return n&&Ca(n.item,n)}function Hv(e,t,n){const o=e.cloneNode(),r=e[oo];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 l=t.nodeType===1?t:t.parentNode;l.appendChild(o);const{hasTransform:u}=vd(o);return l.removeChild(o),u}const Qr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ge(t)?n=>Mr(t,n):t};function zv(e){e.target.composing=!0}function Ru(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Is=Symbol("_assign"),Pr=Symbol("_initialValue");function yi(e,t,n){return t&&(e=e.trim()),n&&(e=pa(e)),e}const Le={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 l=o||r.props&&r.props.type==="number";Os(e,t?"change":"input",u=>{u.target.composing||e[Is](yi(e.value,n,l))}),(n||l)&&Os(e,"change",()=>{e.value=yi(e.value,n,l)}),t||(Os(e,"compositionstart",zv),Os(e,"compositionend",Ru),Os(e,"change",Ru))},mounted(e,{value:t,modifiers:{trim:n,number:o}}){const r=t??"",l=e[Pr];delete e[Pr],l!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==l?e[Is](yi(e.value,n,o)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:r,number:l}},u){if(e[Is]=Qr(u),e.composing)return;const f=(l||e.type==="number")&&!/^0\d/.test(e.value)?pa(e.value):e.value,v=t??"";if(f===v)return;const y=e.getRootNode();(y instanceof Document||y instanceof ShadowRoot)&&y.activeElement===e&&e.type!=="range"&&(o&&t===n||r&&e.value.trim()===v)||(e.value=v)}},vs={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?pa(Zr(v)):Zr(v)),l=e.multiple,u=l?Ls(e._modelValue)?new Set(r):r:r[0],f=e._pendingValue=[l,l?Ge(u)?r.slice():r:u];try{e[Is](u)}finally{Ks(()=>{e._pendingValue===f&&(e._pendingValue=void 0)})}}),e[Is]=Qr(o)},mounted(e,{value:t}){Ku(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||!Wv(t,n[1],n[0]))&&Ku(e,t)}};function Wv(e,t,n){if(!n||Ge(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 Ku(e,t){const n=e.multiple,o=Ge(t);if(!(n&&!o&&!Ls(t))){for(let r=0,l=e.options.length;r<l;r++){const u=e.options[r],f=Zr(u);if(n)if(o){const v=typeof f;v==="string"||v==="number"?u.selected=t.some(y=>String(y)===String(f)):u.selected=Of(t,f)>-1}else u.selected=t.has(f);else if(cs(Zr(u),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 Gv=["ctrl","shift","alt","meta"],Yv={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)=>Gv.some(n=>e[`${n}Key`]&&!t.includes(n))},Ut=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(r,...l)=>{for(let u=0;u<t.length;u++){const f=Yv[t[u]];if(f&&f(r,t))return}return e(r,...l)})},Jv={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Lt=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=r=>{if(!("key"in r))return;const l=hs(r.key);if(t.some(u=>u===l||Jv[u]===l))return e(r)})},Xv=Rt({patchProp:Iv},mv);let Nu;function Qv(){return Nu||(Nu=Yp(Xv))}const Zv=(...e)=>{const t=Qv().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=tm(o);if(!r)return;const l=t._component;!rt(l)&&!l.render&&!l.template&&(l.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const u=n(r,!1,em(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),u},t};function em(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function tm(e){return Ot(e)?document.querySelector(e):e}function Mt(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 nm={calendar:Mt('<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:Mt('<circle cx="12" cy="12" r="8.25"/><path d="M12 7.75V12l2.75 1.75"/>'),"check-circle":Mt('<circle cx="12" cy="12" r="8.25"/><path d="M8.5 12.4l2.4 2.4 4.6-5.2"/>'),edit:Mt('<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:Mt('<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:Mt('<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:Mt('<path d="M6.5 6.5l11 11M17.5 6.5l-11 11"/>'),flag:Mt('<path d="M6.5 21V4"/><path d="M6.5 4.5h10.8l-2.6 3.7 2.6 3.7H6.5"/>'),chart:Mt('<path d="M4.5 19.5h15"/><path d="M7.5 19.5V12M12 19.5V6.5M16.5 19.5V9.5"/>'),export:Mt('<path d="M12 4.5V14M8.25 10.25L12 14l3.75-3.75"/><path d="M5 19.5h14"/>'),"chevron-left":Mt('<path d="M14.5 6l-6 6 6 6"/>'),"chevron-right":Mt('<path d="M9.5 6l6 6-6 6"/>'),"chevron-down":Mt('<path d="M6 9.5l6 6 6-6"/>'),plus:Mt('<path d="M12 5.5v13M5.5 12h13"/>'),search:Mt('<circle cx="11" cy="11" r="6.5"/><path d="M15.8 15.8L20 20"/>'),settings:Mt('<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:Mt('<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:Mt('<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:Mt('<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:Mt('<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:Mt('<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:Mt('<path d="M12 4.2L21 19.2H3L12 4.2z"/><path d="M12 10.2v3.6M12 16.4h.01"/>'),plan:Mt('<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"/>')},sm=["innerHTML"],He=Kt({__name:"Icon",props:{name:{},size:{default:16}},setup(e){const t=e,n=nt(()=>nm[t.name]||"");return(o,r)=>(x(),E("span",{class:"icon",style:pn({width:e.size+"px",height:e.size+"px"}),innerHTML:n.value},null,12,sm))}}),om=["aria-label"],rm={class:"confirm-body"},am={key:0,class:"confirm-badge"},im={class:"confirm-text"},lm={class:"confirm-msg"},um={class:"confirm-btns"},cm=Kt({__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(l){n.open&&l.key==="Escape"&&o("cancel")}return pt(()=>n.open,l=>{l?window.addEventListener("keydown",r):window.removeEventListener("keydown",r)}),bn(()=>window.removeEventListener("keydown",r)),(l,u)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:u[2]||(u[2]=Ut(f=>o("cancel"),["self"]))},[i("div",{class:"dialog confirm-dialog",role:"dialog","aria-label":e.title},[i("div",rm,[e.danger?(x(),E("div",am,[be(He,{name:"warning",size:22})])):me("",!0),i("div",im,[i("div",{class:ze(["confirm-title",{"is-danger":e.danger}])},F(e.title),3),i("div",lm,F(e.message),1)])]),i("div",um,[i("button",{class:"btn",onClick:u[0]||(u[0]=f=>o("cancel"))},F(e.cancelText),1),i("button",{class:ze(["btn",e.danger?"btn-danger-solid":"btn-primary"]),onClick:u[1]||(u[1]=f=>o("confirm"))},F(e.confirmText),3)])],8,om)])):me("",!0)]),_:1})]))}}),Vt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},xn=Vt(cm,[["__scopeId","data-v-1f3675f2"]]);var Fu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function dm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gd={exports:{}};(function(e,t){((n,o)=>{e.exports=o()})(Fu,function(){var n=function(s,a){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(c,d){c.__proto__=d}:function(c,d){for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(c[p]=d[p])}))(s,a)},o=function(){return(o=Object.assign||function(s){for(var a,c=1,d=arguments.length;c<d;c++)for(var p in a=arguments[c])Object.prototype.hasOwnProperty.call(a,p)&&(s[p]=a[p]);return s}).apply(this,arguments)};function r(s,a,c){for(var d,p=0,h=a.length;p<h;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 l=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Fu,u=Object.keys,f=Array.isArray;function v(s,a){return typeof a=="object"&&u(a).forEach(function(c){s[c]=a[c]}),s}typeof Promise>"u"||l.Promise||(l.Promise=Promise);var y=Object.getPrototypeOf,m={}.hasOwnProperty;function w(s,a){return m.call(s,a)}function T(s,a){typeof a=="function"&&(a=a(y(s))),(typeof Reflect>"u"?u:Reflect.ownKeys)(a).forEach(function(c){I(s,c,a[c])})}var $=Object.defineProperty;function I(s,a,c,d){$(s,a,v(c&&w(c,"get")&&typeof c.get=="function"?{get:c.get,set:c.set,configurable:!0}:{value:c,configurable:!0,writable:!0},d))}function J(s){return{from:function(a){return s.prototype=Object.create(a.prototype),I(s.prototype,"constructor",s),{extend:T.bind(null,s.prototype)}}}}var ae=Object.getOwnPropertyDescriptor,de=[].slice;function ue(s,a,c){return de.call(s,a,c)}function G(s,a){return a(s)}function S(s){if(!s)throw new Error("Assertion Failed")}function M(s){l.setImmediate?setImmediate(s):setTimeout(s,0)}function ee(s,a){if(typeof a=="string"&&w(s,a))return s[a];if(!a)return s;if(typeof a!="string"){for(var c=[],d=0,p=a.length;d<p;++d){var h=ee(s,a[d]);c.push(h)}return c}var b,k=a.indexOf(".");return k===-1||(b=s[a.substr(0,k)])==null?void 0:ee(b,a.substr(k+1))}function q(s,a,c){if(s&&a!==void 0&&!("isFrozen"in Object&&Object.isFrozen(s)))if(typeof a!="string"&&"length"in a){S(typeof c!="string"&&"length"in c);for(var d=0,p=a.length;d<p;++d)q(s,a[d],c[d])}else{var h=a.indexOf(".");if(h!==-1){var b=a.substr(0,h),h=a.substr(h+1);if(h==="")c===void 0?f(s)&&!isNaN(parseInt(b))?s.splice(b,1):delete s[b]:s[b]=c;else{var k=s[b];if(!k||!w(s,b)){if(c===void 0)return;k=s[b]={}}q(k,h,c)}}else c===void 0?f(s)&&!isNaN(parseInt(a))?s.splice(a,1):delete s[a]:s[a]=c}}function oe(s){var a,c={};for(a in s)w(s,a)&&(c[a]=s[a]);return c}var j=[].concat;function A(s){return j.apply([],s)}var le="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(A([8,16,32,64].map(function(s){return["Int","Uint","Float"].map(function(a){return a+s+"Array"})}))).filter(function(s){return l[s]}),O=new Set(le.map(function(s){return l[s]})),ne=null;function Ie(s){return ne=new WeakMap,s=function a(c){if(!c||typeof c!="object")return c;var d=ne.get(c);if(d)return d;if(f(c)){d=[],ne.set(c,d);for(var p=0,h=c.length;p<h;++p)d.push(a(c[p]))}else if(O.has(c.constructor))d=c;else{var b,k=y(c);for(b in d=k===Object.prototype?{}:Object.create(k),ne.set(c,d),c)w(c,b)&&(d[b]=a(c[b]))}return d}(s),ne=null,s}var Se={}.toString;function _e(s){return Se.call(s).slice(8,-1)}var Me=typeof Symbol<"u"?Symbol.iterator:"@@iterator",qe=typeof Me=="symbol"?function(s){var a;return s!=null&&(a=s[Me])&&a.apply(s)}:function(){return null};function Ue(s,a){a=s.indexOf(a),0<=a&&s.splice(a,1)}var tt={};function Ye(s){var a,c,d,p;if(arguments.length===1){if(f(s))return s.slice();if(this===tt&&typeof s=="string")return[s];if(p=qe(s))for(c=[];!(d=p.next()).done;)c.push(d.value);else{if(s==null)return[s];if(typeof(a=s.length)!="number")return[s];for(c=new Array(a);a--;)c[a]=s[a]}}else for(a=arguments.length,c=new Array(a);a--;)c[a]=arguments[a];return c}var We=typeof Symbol<"u"?function(s){return s[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},le=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],fe=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(le),Q={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 Ae(s,a){this.name=s,this.message=a}function lt(s,a){return s+". Errors: "+Object.keys(a).map(function(c){return a[c].toString()}).filter(function(c,d,p){return p.indexOf(c)===d}).join(`
`)}function it(s,a,c,d){this.failures=a,this.failedKeys=d,this.successCount=c,this.message=lt(s,a)}function Te(s,a){this.name="BulkError",this.failures=Object.keys(a).map(function(c){return a[c]}),this.failuresByPos=a,this.message=lt(s,this.failures)}J(Ae).from(Error).extend({toString:function(){return this.name+": "+this.message}}),J(it).from(Ae),J(Te).from(Ae);var kt=fe.reduce(function(s,a){return s[a]=a+"Error",s},{}),xt=Ae,Ke=fe.reduce(function(s,a){var c=a+"Error";function d(p,h){this.name=c,p?typeof p=="string"?(this.message="".concat(p).concat(h?`
`+h:""),this.inner=h||null):typeof p=="object"&&(this.message="".concat(p.name," ").concat(p.message),this.inner=p):(this.message=Q[a]||c,this.inner=null)}return J(d).from(xt),s[a]=d,s},{}),_=(Ke.Syntax=SyntaxError,Ke.Type=TypeError,Ke.Range=RangeError,le.reduce(function(s,a){return s[a+"Error"]=Ke[a],s},{}));le=fe.reduce(function(s,a){return["Syntax","Type","Range"].indexOf(a)===-1&&(s[a+"Error"]=Ke[a]),s},{});function g(){}function C(s){return s}function D(s,a){return s==null||s===C?a:function(c){return a(s(c))}}function re(s,a){return function(){s.apply(this,arguments),a.apply(this,arguments)}}function pe(s,a){return s===g?a:function(){var c=s.apply(this,arguments),d=(c!==void 0&&(arguments[0]=c),this.onsuccess),p=this.onerror,h=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?re(d,this.onsuccess):d),p&&(this.onerror=this.onerror?re(p,this.onerror):p),h!==void 0?h:c}}function xe(s,a){return s===g?a:function(){s.apply(this,arguments);var c=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,a.apply(this,arguments),c&&(this.onsuccess=this.onsuccess?re(c,this.onsuccess):c),d&&(this.onerror=this.onerror?re(d,this.onerror):d)}}function we(s,a){return s===g?a:function(){var c=s.apply(this,arguments),d=(v(arguments[0],c),this.onsuccess),p=this.onerror,h=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?re(d,this.onsuccess):d),p&&(this.onerror=this.onerror?re(p,this.onerror):p),c===void 0?h===void 0?void 0:h:v(c,h)}}function ke(s,a){return s===g?a:function(){return a.apply(this,arguments)!==!1&&s.apply(this,arguments)}}function ve(s,a){return s===g?a:function(){var c=s.apply(this,arguments);if(c&&typeof c.then=="function"){for(var d=this,p=arguments.length,h=new Array(p);p--;)h[p]=arguments[p];return c.then(function(){return a.apply(d,h)})}return a.apply(this,arguments)}}le.ModifyError=it,le.DexieError=Ae,le.BulkError=Te;var Re=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function V(s){Re=s}var te={},R=100,L=typeof Promise>"u"?[]:(fe=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[L=crypto.subtle.digest("SHA-512",new Uint8Array([0])),y(L),fe]:[fe,y(fe),fe]),fe=L[0],Ws=L[1],Ws=Ws&&Ws.then,je=fe&&fe.constructor,Je=!!L[2],ft=function(s,a){rn.push([s,a]),Ze&&(queueMicrotask(Wd),Ze=!1)},It=!0,Ze=!0,et=[],Bt=[],bt=C,wt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:g,pgp:!1,env:{},finalize:g},Ne=wt,rn=[],ys=0,er=[];function De(s){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var a=this._PSD=Ne;if(typeof s!="function"){if(s!==te)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 c(d,p){try{p(function(h){if(d._state===null){if(h===d)throw new TypeError("A promise cannot be resolved with itself.");var b=d._lib&&Vs();h&&typeof h.then=="function"?c(d,function(k,N){h instanceof De?h._then(k,N):h.then(k,N)}):(d._state=!0,d._value=h,kl(d)),b&&Bs()}},Ta.bind(null,d))}catch(h){Ta(d,h)}}(this,s)}var Aa={get:function(){var s=Ne,a=or;function c(d,p){var h=this,b=!s.global&&(s!==Ne||a!==or),k=b&&!Qn(),N=new De(function(X,U){Pa(h,new _l(xl(d,s,b,k),xl(p,s,b,k),X,U,s))});return this._consoleTask&&(N._consoleTask=this._consoleTask),N}return c.prototype=te,c},set:function(s){I(this,"then",s&&s.prototype===te?Aa:{get:function(){return s},set:Aa.set})}};function _l(s,a,c,d,p){this.onFulfilled=typeof s=="function"?s:null,this.onRejected=typeof a=="function"?a:null,this.resolve=c,this.reject=d,this.psd=p}function Ta(s,a){var c,d;Bt.push(a),s._state===null&&(c=s._lib&&Vs(),a=bt(a),s._state=!1,s._value=a,d=s,et.some(function(p){return p._value===d._value})||et.push(d),kl(s),c)&&Bs()}function kl(s){var a=s._listeners;s._listeners=[];for(var c=0,d=a.length;c<d;++c)Pa(s,a[c]);var p=s._PSD;--p.ref||p.finalize(),ys===0&&(++ys,ft(function(){--ys==0&&Oa()},[]))}function Pa(s,a){if(s._state===null)s._listeners.push(a);else{var c=s._state?a.onFulfilled:a.onRejected;if(c===null)return(s._state?a.resolve:a.reject)(s._value);++a.psd.ref,++ys,ft(zd,[c,s,a])}}function zd(s,a,c){try{var d,p=a._value;!a._state&&Bt.length&&(Bt=[]),d=Re&&a._consoleTask?a._consoleTask.run(function(){return s(p)}):s(p),a._state||Bt.indexOf(p)!==-1||(h=>{for(var b=et.length;b;)if(et[--b]._value===h._value)return et.splice(b,1)})(a),c.resolve(d)}catch(h){c.reject(h)}finally{--ys==0&&Oa(),--c.psd.ref||c.psd.finalize()}}function Wd(){gs(wt,function(){Vs()&&Bs()})}function Vs(){var s=It;return Ze=It=!1,s}function Bs(){var s,a,c;do for(;0<rn.length;)for(s=rn,rn=[],c=s.length,a=0;a<c;++a){var d=s[a];d[0].apply(null,d[1])}while(0<rn.length);Ze=It=!0}function Oa(){for(var s=et,a=(et=[],s.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),er.slice(0)),c=a.length;c;)a[--c]()}function tr(s){return new De(te,!1,s)}function Pt(s,a){var c=Ne;return function(){var d=Vs(),p=Ne;try{return Zn(c,!0),s.apply(this,arguments)}catch(h){a&&a(h)}finally{Zn(p,!1),d&&Bs()}}}T(De.prototype,{then:Aa,_then:function(s,a){Pa(this,new _l(null,null,s,a,Ne))},catch:function(s){var a,c;return arguments.length===1?this.then(null,s):(a=s,c=arguments[1],typeof a=="function"?this.then(null,function(d){return(d instanceof a?c:tr)(d)}):this.then(null,function(d){return(d&&d.name===a?c:tr)(d)}))},finally:function(s){return this.then(function(a){return De.resolve(s()).then(function(){return a})},function(a){return De.resolve(s()).then(function(){return tr(a)})})},timeout:function(s,a){var c=this;return s<1/0?new De(function(d,p){var h=setTimeout(function(){return p(new Ke.Timeout(a))},s);c.then(d,p).finally(clearTimeout.bind(null,h))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&I(De.prototype,Symbol.toStringTag,"Dexie.Promise"),wt.env=Cl(),T(De,{all:function(){var s=Ye.apply(null,arguments).map(rr);return new De(function(a,c){s.length===0&&a([]);var d=s.length;s.forEach(function(p,h){return De.resolve(p).then(function(b){s[h]=b,--d||a(s)},c)})})},resolve:function(s){return s instanceof De?s:s&&typeof s.then=="function"?new De(function(a,c){s.then(a,c)}):new De(te,!0,s)},reject:tr,race:function(){var s=Ye.apply(null,arguments).map(rr);return new De(function(a,c){s.map(function(d){return De.resolve(d).then(a,c)})})},PSD:{get:function(){return Ne},set:function(s){return Ne=s}},totalEchoes:{get:function(){return or}},newPSD:Xn,usePSD:gs,scheduler:{get:function(){return ft},set:function(s){ft=s}},rejectionMapper:{get:function(){return bt},set:function(s){bt=s}},follow:function(s,a){return new De(function(c,d){return Xn(function(p,h){var b=Ne;b.unhandleds=[],b.onunhandled=h,b.finalize=re(function(){var k,N=this;k=function(){N.unhandleds.length===0?p():h(N.unhandleds[0])},er.push(function X(){k(),er.splice(er.indexOf(X),1)}),++ys,ft(function(){--ys==0&&Oa()},[])},b.finalize),s()},a,c,d)})}}),je&&(je.allSettled&&I(De,"allSettled",function(){var s=Ye.apply(null,arguments).map(rr);return new De(function(a){s.length===0&&a([]);var c=s.length,d=new Array(c);s.forEach(function(p,h){return De.resolve(p).then(function(b){return d[h]={status:"fulfilled",value:b}},function(b){return d[h]={status:"rejected",reason:b}}).then(function(){return--c||a(d)})})})}),je.any&&typeof AggregateError<"u"&&I(De,"any",function(){var s=Ye.apply(null,arguments).map(rr);return new De(function(a,c){s.length===0&&c(new AggregateError([]));var d=s.length,p=new Array(d);s.forEach(function(h,b){return De.resolve(h).then(function(k){return a(k)},function(k){p[b]=k,--d||c(new AggregateError(p))})})})}),je.withResolvers)&&(De.withResolvers=je.withResolvers);var qt={awaits:0,echoes:0,id:0},Gd=0,nr=[],sr=0,or=0,Yd=0;function Xn(s,b,c,d){var p=Ne,h=Object.create(p),b=(h.parent=p,h.ref=0,h.global=!1,h.id=++Yd,wt.env,h.env=Je?{Promise:De,PromiseProp:{value:De,configurable:!0,writable:!0},all:De.all,race:De.race,allSettled:De.allSettled,any:De.any,resolve:De.resolve,reject:De.reject}:{},b&&v(h,b),++p.ref,h.finalize=function(){--this.parent.ref||this.parent.finalize()},gs(h,s,c,d));return h.ref===0&&h.finalize(),b}function Us(){return qt.id||(qt.id=++Gd),++qt.awaits,qt.echoes+=R,qt.id}function Qn(){return!!qt.awaits&&(--qt.awaits==0&&(qt.id=0),qt.echoes=qt.awaits*R,!0)}function rr(s){return qt.echoes&&s&&s.constructor===je?(Us(),s.then(function(a){return Qn(),a},function(a){return Qn(),jt(a)})):s}function Jd(){var s=nr[nr.length-1];nr.pop(),Zn(s,!1)}function Zn(s,a){var c,d,p=Ne;(a?!qt.echoes||sr++&&s===Ne:!sr||--sr&&s===Ne)||queueMicrotask(a?(function(h){++or,qt.echoes&&--qt.echoes!=0||(qt.echoes=qt.awaits=qt.id=0),nr.push(Ne),Zn(h,!0)}).bind(null,s):Jd),s!==Ne&&(Ne=s,p===wt&&(wt.env=Cl()),Je)&&(c=wt.env.Promise,d=s.env,p.global||s.global)&&(Object.defineProperty(l,"Promise",d.PromiseProp),c.all=d.all,c.race=d.race,c.resolve=d.resolve,c.reject=d.reject,d.allSettled&&(c.allSettled=d.allSettled),d.any)&&(c.any=d.any)}function Cl(){var s=l.Promise;return Je?{Promise:s,PromiseProp:Object.getOwnPropertyDescriptor(l,"Promise"),all:s.all,race:s.race,allSettled:s.allSettled,any:s.any,resolve:s.resolve,reject:s.reject}:{}}function gs(s,a,c,d,p){var h=Ne;try{return Zn(s,!0),a(c,d,p)}finally{Zn(h,!1)}}function xl(s,a,c,d){return typeof s!="function"?s:function(){var p=Ne;c&&Us(),Zn(a,!0);try{return s.apply(this,arguments)}finally{Zn(p,!1),d&&queueMicrotask(Qn)}}}function Ma(s){Promise===je&&qt.echoes===0?sr===0?s():enqueueNativeMicroTask(s):setTimeout(s,0)}(""+Ws).indexOf("[native code]")===-1&&(Us=Qn=g);var jt=De.reject,bs="￿",Fn="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",$l="String expected.",ar="__dbnames",Ia="readonly",ja="readwrite";function ws(s,a){return s?a?function(){return s.apply(this,arguments)&&a.apply(this,arguments)}:s:a}var Sl={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=Ie(a))[s],a}}function El(){throw Ke.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function dt(s,a){try{var c=Al(s),d=Al(a);if(c!==d)return c==="Array"?1:d==="Array"?-1:c==="binary"?1:d==="binary"?-1:c==="string"?1:d==="string"?-1:c==="Date"?1:d!=="Date"?NaN:-1;switch(c){case"number":case"Date":case"string":return a<s?1:s<a?-1:0;case"binary":for(var p=Tl(s),h=Tl(a),b=p.length,k=h.length,N=b<k?b:k,X=0;X<N;++X)if(p[X]!==h[X])return p[X]<h[X]?-1:1;return b===k?0:b<k?-1:1;case"Array":for(var U=s,K=a,B=U.length,Y=K.length,z=B<Y?B:Y,H=0;H<z;++H){var W=dt(U[H],K[H]);if(W!==0)return W}return B===Y?0:B<Y?-1:1}}catch{}return NaN}function Al(s){var a=typeof s;return a=="object"&&(ArrayBuffer.isView(s)||(a=_e(s))==="ArrayBuffer")?"binary":a}function Tl(s){return s instanceof Uint8Array?s:ArrayBuffer.isView(s)?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s)}function lr(s,a,c){var d=s.schema.yProps;return d?(a&&0<c.numFailures&&(a=a.filter(function(p,h){return!c.failures[h]})),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 c})):c}Pl.prototype.execute=function(s){var a=this["@@propmod"];if(a.add!==void 0){var c=a.add;if(f(c))return r(r([],f(s)?s:[],!0),c).sort();if(typeof c=="number")return(Number(s)||0)+c;if(typeof c=="bigint")try{return BigInt(s)+c}catch{return BigInt(0)+c}throw new TypeError("Invalid term ".concat(c))}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 c=(c=a.replacePrefix)==null?void 0:c[0],c&&typeof s=="string"&&s.startsWith(c)?a.replacePrefix[1]+s.substring(c.length):s};var fo=Pl;function Pl(s){this["@@propmod"]=s}function Ol(s,a){for(var c=u(a),d=c.length,p=!1,h=0;h<d;++h){var b=c[h],k=a[b],N=ee(s,b);k instanceof fo?(q(s,b,k.execute(N)),p=!0):N!==k&&(q(s,b,k),p=!0)}return p}St.prototype._trans=function(s,a,c){var d=this._tx||Ne.trans,p=this.name,h=Re&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(s==="readonly"?"read":"write"," ").concat(this.name));function b(X,U,K){if(K.schema[p])return a(K.idbtrans,K);throw new Ke.NotFound("Table "+p+" not part of transaction")}var k=Vs();try{var N=d&&d.db._novip===this.db._novip?d===Ne.trans?d._promise(s,b,c):Xn(function(){return d._promise(s,b,c)},{trans:d,transless:Ne.transless||Ne}):function X(U,K,B,Y){if(U.idbdb&&(U._state.openComplete||Ne.letThrough||U._vip)){var z=U._createTransaction(K,B,U._dbSchema);try{z.create(),U._state.PR1398_maxLoop=3}catch(H){return H.name===kt.InvalidState&&U.isOpen()&&0<--U._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),U.close({disableAutoOpen:!1}),U.open().then(function(){return X(U,K,B,Y)})):jt(H)}return z._promise(K,function(H,W){return Xn(function(){return Ne.trans=z,Y(H,W,z)})}).then(function(H){if(K==="readwrite")try{z.idbtrans.commit()}catch{}return K==="readonly"?H:z._completion.then(function(){return H})})}if(U._state.openComplete)return jt(new Ke.DatabaseClosed(U._state.dbOpenError));if(!U._state.isBeingOpened){if(!U._state.autoOpen)return jt(new Ke.DatabaseClosed);U.open().catch(g)}return U._state.dbReadyPromise.then(function(){return X(U,K,B,Y)})}(this.db,s,[this.name],b);return h&&(N._consoleTask=h,N=N.catch(function(X){return console.trace(X),jt(X)})),N}finally{k&&Bs()}},St.prototype.get=function(s,a){var c=this;return s&&s.constructor===Object?this.where(s).first(a):s==null?jt(new Ke.Type("Invalid argument to Table.get()")):this._trans("readonly",function(d){return c.core.get({trans:d,key:s}).then(function(p){return c.hook.reading.fire(p)})}).then(a)},St.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=u(s);if(a.length===1)return this.where(a[0]).equals(s[a[0]]);var c=this.schema.indexes.concat(this.schema.primKey).filter(function(k){if(k.compound&&a.every(function(X){return 0<=k.keyPath.indexOf(X)})){for(var N=0;N<a.length;++N)if(a.indexOf(k.keyPath[N])===-1)return!1;return!0}return!1}).sort(function(k,N){return k.keyPath.length-N.keyPath.length})[0];if(c&&this.db._maxKey!==bs)return b=c.keyPath.slice(0,a.length),this.where(b).equals(b.map(function(k){return s[k]}));!c&&Re&&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,N){return dt(k,N)===0}var b=a.reduce(function(U,N){var X=U[0],U=U[1],K=d[N],B=s[N];return[X||K,X||!K?ws(U,K&&K.multi?function(Y){return Y=ee(Y,N),f(Y)&&Y.some(function(z){return p(B,z)})}:function(Y){return p(B,ee(Y,N))}):U]},[null,null]),h=b[0],b=b[1];return h?this.where(h.name).equals(s[h.keyPath]).filter(b):c?this.filter(b):this.where(a).equals("")},St.prototype.filter=function(s){return this.toCollection().and(s)},St.prototype.count=function(s){return this.toCollection().count(s)},St.prototype.offset=function(s){return this.toCollection().offset(s)},St.prototype.limit=function(s){return this.toCollection().limit(s)},St.prototype.each=function(s){return this.toCollection().each(s)},St.prototype.toArray=function(s){return this.toCollection().toArray(s)},St.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},St.prototype.orderBy=function(s){return new this.db.Collection(new this.db.WhereClause(this,f(s)?"[".concat(s.join("+"),"]"):s))},St.prototype.reverse=function(){return this.toCollection().reverse()},St.prototype.mapToClass=function(s){for(var a=this.db,c=this.name,d=((this.schema.mappedClass=s).prototype instanceof El&&(s=(b=>{var k=U,N=b;if(typeof N!="function"&&N!==null)throw new TypeError("Class extends value "+String(N)+" is not a constructor or null");function X(){this.constructor=k}function U(){return b!==null&&b.apply(this,arguments)||this}return n(k,N),k.prototype=N===null?Object.create(N):(X.prototype=N.prototype,new X),Object.defineProperty(U.prototype,"db",{get:function(){return a},enumerable:!1,configurable:!0}),U.prototype.table=function(){return c},U})(s)),new Set),p=s.prototype;p;p=y(p))Object.getOwnPropertyNames(p).forEach(function(b){return d.add(b)});function h(b){if(!b)return b;var k,N=Object.create(s.prototype);for(k in b)if(!d.has(k))try{N[k]=b[k]}catch{}return N}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=h,this.hook("reading",h),s},St.prototype.defineClass=function(){return this.mapToClass(function(s){v(this,s)})},St.prototype.add=function(s,a){var c=this,d=this.schema.primKey,p=d.auto,h=d.keyPath,b=s;return h&&p&&(b=ir(h)(s)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"add",keys:a!=null?[a]:null,values:[b]})}).then(function(k){return k.numFailures?De.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{q(s,h,k)}catch{}return k})},St.prototype.upsert=function(s,a){var c=this,d=this.schema.primKey.keyPath;return this._trans("readwrite",function(p){return c.core.get({trans:p,key:s}).then(function(h){var b=h??{};return Ol(b,a),d&&q(b,d,s),c.core.mutate({trans:p,type:"put",values:[b],keys:[s],upsert:!0,updates:{keys:[s],changeSpecs:[a]}}).then(function(k){return k.numFailures?De.reject(k.failures[0]):!!h})})})},St.prototype.update=function(s,a){return typeof s!="object"||f(s)?this.where(":id").equals(s).modify(a):(s=ee(s,this.schema.primKey.keyPath))===void 0?jt(new Ke.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(s).modify(a)},St.prototype.put=function(s,a){var c=this,d=this.schema.primKey,p=d.auto,h=d.keyPath,b=s;return h&&p&&(b=ir(h)(s)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"put",values:[b],keys:a!=null?[a]:null})}).then(function(k){return k.numFailures?De.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{q(s,h,k)}catch{}return k})},St.prototype.delete=function(s){var a=this;return this._trans("readwrite",function(c){return a.core.mutate({trans:c,type:"delete",keys:[s]}).then(function(d){return lr(a,[s],d)}).then(function(d){return d.numFailures?De.reject(d.failures[0]):void 0})})},St.prototype.clear=function(){var s=this;return this._trans("readwrite",function(a){return s.core.mutate({trans:a,type:"deleteRange",range:Sl}).then(function(c){return lr(s,null,c)})}).then(function(a){return a.numFailures?De.reject(a.failures[0]):void 0})},St.prototype.bulkGet=function(s){var a=this;return this._trans("readonly",function(c){return a.core.getMany({keys:s,trans:c}).then(function(d){return d.map(function(p){return a.hook.reading.fire(p)})})})},St.prototype.bulkAdd=function(s,a,c){var d=this,p=Array.isArray(a)?a:void 0,h=(c=c||(p?void 0:a))?c.allKeys:void 0;return this._trans("readwrite",function(b){var k=d.schema.primKey,X=k.auto,k=k.keyPath;if(k&&p)throw new Ke.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Ke.InvalidArgument("Arguments objects and keys must have the same length");var N=s.length,X=k&&X?s.map(ir(k)):s;return d.core.mutate({trans:b,type:"add",keys:p,values:X,wantResults:h}).then(function(U){var K=U.numFailures,B=U.failures;if(K===0)return h?U.results:U.lastResult;throw new Te("".concat(d.name,".bulkAdd(): ").concat(K," of ").concat(N," operations failed"),B)})})},St.prototype.bulkPut=function(s,a,c){var d=this,p=Array.isArray(a)?a:void 0,h=(c=c||(p?void 0:a))?c.allKeys:void 0;return this._trans("readwrite",function(b){var k=d.schema.primKey,X=k.auto,k=k.keyPath;if(k&&p)throw new Ke.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Ke.InvalidArgument("Arguments objects and keys must have the same length");var N=s.length,X=k&&X?s.map(ir(k)):s;return d.core.mutate({trans:b,type:"put",keys:p,values:X,wantResults:h}).then(function(U){var K=U.numFailures,B=U.failures;if(K===0)return h?U.results:U.lastResult;throw new Te("".concat(d.name,".bulkPut(): ").concat(K," of ").concat(N," operations failed"),B)})})},St.prototype.bulkUpdate=function(s){var a=this,c=this.core,d=s.map(function(b){return b.key}),p=s.map(function(b){return b.changes}),h=[];return this._trans("readwrite",function(b){return c.getMany({trans:b,keys:d,cache:"clone"}).then(function(k){var N=[],X=[],U=(s.forEach(function(K,B){var Y=K.key,z=K.changes,H=k[B];if(H){for(var W=0,se=Object.keys(z);W<se.length;W++){var Z=se[W],ce=z[Z];if(Z===a.schema.primKey.keyPath){if(dt(ce,Y)!==0)throw new Ke.Constraint("Cannot update primary key in bulkUpdate()")}else q(H,Z,ce)}h.push(B),N.push(Y),X.push(H)}}),N.length);return c.mutate({trans:b,type:"put",keys:N,values:X,updates:{keys:d,changeSpecs:p}}).then(function(K){var B=K.numFailures,Y=K.failures;if(B===0)return U;for(var z=0,H=Object.keys(Y);z<H.length;z++){var W,se=H[z],Z=h[Number(se)];Z!=null&&(W=Y[se],delete Y[se],Y[Z]=W)}throw new Te("".concat(a.name,".bulkUpdate(): ").concat(B," of ").concat(U," operations failed"),Y)})})})},St.prototype.bulkDelete=function(s){var a=this,c=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,h=d.failures;if(p===0)return d.lastResult;throw new Te("".concat(a.name,".bulkDelete(): ").concat(p," of ").concat(c," operations failed"),h)})};var Ml=St;function St(){}function po(s){function a(b,k){if(k){for(var N=arguments.length,X=new Array(N-1);--N;)X[N-1]=arguments[N];return c[b].subscribe.apply(null,X),s}if(typeof b=="string")return c[b]}var c={};a.addEventType=h;for(var d=1,p=arguments.length;d<p;++d)h(arguments[d]);return a;function h(b,k,N){var X,U;if(typeof b!="object")return k=k||ke,U={subscribers:[],fire:N=N||g,subscribe:function(K){U.subscribers.indexOf(K)===-1&&(U.subscribers.push(K),U.fire=k(U.fire,K))},unsubscribe:function(K){U.subscribers=U.subscribers.filter(function(B){return B!==K}),U.fire=U.subscribers.reduce(k,N)}},c[b]=a[b]=U;u(X=b).forEach(function(K){var B=X[K];if(f(B))h(K,X[K][0],X[K][1]);else{if(B!=="asap")throw new Ke.InvalidArgument("Invalid event config");var Y=h(K,C,function(){for(var z=arguments.length,H=new Array(z);z--;)H[z]=arguments[z];Y.subscribers.forEach(function(W){M(function(){W.apply(null,H)})})})}})}}function vo(s,a){return J(a).from({prototype:s}),a}function qs(s,a){return!(s.filter||s.algorithm||s.or)&&(a?s.justLimit:!s.replayFilter)}function Da(s,a){s.filter=ws(s.filter,a)}function La(s,a,c){var d=s.replayFilter;s.replayFilter=d?function(){return ws(d(),a())}:a,s.justLimit=c&&!d}function ur(s,a){if(s.isPrimKey)return a.primaryKey;var c=a.getIndexByKeyPath(s.index);if(c)return c;throw new Ke.Schema("KeyPath "+s.index+" on object store "+a.name+" is not indexed")}function Il(s,a,c){var d=ur(s,a.schema);return a.openCursor({trans:c,values:!s.keysOnly,reverse:s.dir==="prev",unique:!!s.unique,query:{index:d,range:s.range}})}function cr(s,a,c,d){var p,h,b=s.replayFilter?ws(s.filter,s.replayFilter()):s.filter;return s.or?(p={},h=function(k,N,X){var U,K;b&&!b(N,X,function(B){return N.stop(B)},function(B){return N.fail(B)})||((K=""+(U=N.primaryKey))=="[object ArrayBuffer]"&&(K=""+new Uint8Array(U)),w(p,K))||(p[K]=!0,a(k,N,X))},Promise.all([s.or._iterate(h,c),jl(Il(s,d,c),s.algorithm,h,!s.keysOnly&&s.valueMapper)])):jl(Il(s,d,c),ws(s.algorithm,b),a,!s.keysOnly&&s.valueMapper)}function jl(s,a,c,d){var p=Pt(d?function(h,b,k){return c(d(h),b,k)}:c);return s.then(function(h){if(h)return h.start(function(){var b=function(){return h.continue()};a&&!a(h,function(k){return b=k},function(k){h.stop(k),b=g},function(k){h.fail(k),b=g})||p(h.value,h,function(k){return b=k}),b()})})}vt.prototype._read=function(s,a){var c=this._ctx;return c.error?c.table._trans(null,jt.bind(null,c.error)):c.table._trans("readonly",s).then(a)},vt.prototype._write=function(s){var a=this._ctx;return a.error?a.table._trans(null,jt.bind(null,a.error)):a.table._trans("readwrite",s,"locked")},vt.prototype._addAlgorithm=function(s){var a=this._ctx;a.algorithm=ws(a.algorithm,s)},vt.prototype._iterate=function(s,a){return cr(this._ctx,s,a,this._ctx.table.core)},vt.prototype.clone=function(s){var a=Object.create(this.constructor.prototype),c=Object.create(this._ctx);return s&&v(c,s),a._ctx=c,a},vt.prototype.raw=function(){return this._ctx.valueMapper=null,this},vt.prototype.each=function(s){var a=this._ctx;return this._read(function(c){return cr(a,s,c,a.table.core)})},vt.prototype.count=function(s){var a=this;return this._read(function(c){var d,p=a._ctx,h=p.table.core;return qs(p,!0)?h.count({trans:c,query:{index:ur(p,h.schema),range:p.range}}).then(function(b){return Math.min(b,p.limit)}):(d=0,cr(p,function(){return++d,!1},c,h).then(function(){return d}))}).then(s)},vt.prototype.sortBy=function(s,a){var c=s.split(".").reverse(),d=c[0],p=c.length-1;function h(N,X){return X?h(N[c[X]],X-1):N[d]}var b=this._ctx.dir==="next"?1:-1;function k(N,X){return dt(h(N,p),h(X,p))*b}return this.toArray(function(N){return N.slice().sort(k)}).then(a)},vt.prototype.toArray=function(s){var a=this;return this._read(function(c){var d,p,h,b=a._ctx;return qs(b,!0)&&0<b.limit?(d=b.valueMapper,p=ur(b,b.table.core.schema),b.table.core.query({trans:c,limit:b.limit,values:!0,direction:b.dir==="prev"?"prev":void 0,query:{index:p,range:b.range}}).then(function(k){return k=k.result,d?k.map(d):k})):(h=[],cr(b,function(k){return h.push(k)},c,b.table.core).then(function(){return h}))},s)},vt.prototype.offset=function(s){var a=this._ctx;return s<=0||(a.offset+=s,qs(a)?La(a,function(){var c=s;return function(d,p){return c===0||(c===1?--c:p(function(){d.advance(c),c=0}),!1)}}):La(a,function(){var c=s;return function(){return--c<0}})),this},vt.prototype.limit=function(s){return this._ctx.limit=Math.min(this._ctx.limit,s),La(this._ctx,function(){var a=s;return function(c,d,p){return--a<=0&&d(p),0<=a}},!0),this},vt.prototype.until=function(s,a){return Da(this._ctx,function(c,d,p){return!s(c.value)||(d(p),a)}),this},vt.prototype.first=function(s){return this.limit(1).toArray(function(a){return a[0]}).then(s)},vt.prototype.last=function(s){return this.reverse().first(s)},vt.prototype.filter=function(s){var a;return Da(this._ctx,function(c){return s(c.value)}),(a=this._ctx).isMatch=ws(a.isMatch,s),this},vt.prototype.and=function(s){return this.filter(s)},vt.prototype.or=function(s){return new this.db.WhereClause(this._ctx.table,s,this)},vt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},vt.prototype.desc=function(){return this.reverse()},vt.prototype.eachKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(c,d){s(d.key,d)})},vt.prototype.eachUniqueKey=function(s){return this._ctx.unique="unique",this.eachKey(s)},vt.prototype.eachPrimaryKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(c,d){s(d.primaryKey,d)})},vt.prototype.keys=function(s){var a=this._ctx,c=(a.keysOnly=!a.isMatch,[]);return this.each(function(d,p){c.push(p.key)}).then(function(){return c}).then(s)},vt.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 c=[];return this.each(function(d,p){c.push(p.primaryKey)}).then(function(){return c}).then(s)},vt.prototype.uniqueKeys=function(s){return this._ctx.unique="unique",this.keys(s)},vt.prototype.firstKey=function(s){return this.limit(1).keys(function(a){return a[0]}).then(s)},vt.prototype.lastKey=function(s){return this.reverse().firstKey(s)},vt.prototype.distinct=function(){var s,a=this._ctx,a=a.index&&a.table.schema.idxByName[a.index];return a&&a.multi&&(s={},Da(this._ctx,function(d){var d=d.primaryKey.toString(),p=w(s,d);return s[d]=!0,!p})),this},vt.prototype.modify=function(s){var a=this,c=this._ctx;return this._write(function(d){function p(H,W){var se=W.failures;B+=H-W.numFailures;for(var Z=0,ce=u(se);Z<ce.length;Z++){var he=ce[Z];K.push(se[he])}}var h=typeof s=="function"?s:function(H){return Ol(H,s)},b=c.table.core,U=b.schema.primaryKey,k=U.outbound,N=U.extractKey,X=200,U=a.db._options.modifyChunkSize,K=(U&&(X=typeof U=="object"?U[b.name]||U["*"]||200:U),[]),B=0,Y=[],z=s===Dl;return a.clone().primaryKeys().then(function(H){function W(Z){var ce=Math.min(X,H.length-Z),he=H.slice(Z,Z+ce);return(z?Promise.resolve([]):b.getMany({trans:d,keys:he,cache:"immutable"})).then(function(ge){var Ee=[],Ce=[],Fe=k?[]:null,$e=z?he:[];if(!z)for(var Be=0;Be<ce;++Be){var ye=ge[Be],Xe={value:Ie(ye),primKey:H[Z+Be]};h.call(Xe,Xe.value,Xe)!==!1&&(Xe.value==null?$e.push(H[Z+Be]):k||dt(N(ye),N(Xe.value))===0?(Ce.push(Xe.value),k&&Fe.push(H[Z+Be])):($e.push(H[Z+Be]),Ee.push(Xe.value)))}return Promise.resolve(0<Ee.length&&b.mutate({trans:d,type:"add",values:Ee}).then(function(Qe){for(var at in Qe.failures)$e.splice(parseInt(at),1);p(Ee.length,Qe)})).then(function(){return(0<Ce.length||se&&typeof s=="object")&&b.mutate({trans:d,type:"put",keys:Fe,values:Ce,criteria:se,changeSpec:typeof s!="function"&&s,isAdditionalChunk:0<Z}).then(function(Qe){return p(Ce.length,Qe)})}).then(function(){return(0<$e.length||se&&z)&&b.mutate({trans:d,type:"delete",keys:$e,criteria:se,isAdditionalChunk:0<Z}).then(function(Qe){return lr(c.table,$e,Qe)}).then(function(Qe){return p($e.length,Qe)})}).then(function(){return H.length>Z+ce&&W(Z+X)})})}var se=qs(c)&&c.limit===1/0&&(typeof s!="function"||z)&&{index:c.index,range:c.range};return W(0).then(function(){if(0<K.length)throw new it("Error modifying one or more objects",K,B,Y);return H.length})})})},vt.prototype.delete=function(){var s=this._ctx,a=s.range;return!qs(s)||s.table.schema.yProps||!s.isPrimKey&&a.type!==3?this.modify(Dl):this._write(function(c){var d=s.table.core.schema.primaryKey,p=a;return s.table.core.count({trans:c,query:{index:d,range:p}}).then(function(h){return s.table.core.mutate({trans:c,type:"deleteRange",range:p}).then(function(N){var k=N.failures,N=N.numFailures;if(N)throw new it("Could not delete some values",Object.keys(k).map(function(X){return k[X]}),h-N);return h-N})})})};var Xd=vt;function vt(){}var Dl=function(s,a){return a.value=null};function Qd(s,a){return s<a?-1:s===a?0:1}function Zd(s,a){return a<s?-1:s===a?0:1}function an(s,a,c){return s=s instanceof Rl?new s.Collection(s):s,s._ctx.error=new(c||TypeError)(a),s}function Hs(s){return new s.Collection(s,function(){return Ll("")}).limit(0)}function dr(Y,a,c,d){var p,h,b,k,N,X,U,K=c.length;if(!c.every(function(H){return typeof H=="string"}))return an(Y,$l);function B(H){p=H==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},h=H==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},b=H==="next"?Qd:Zd;var W=c.map(function(se){return{lower:h(se),upper:p(se)}}).sort(function(se,Z){return b(se.lower,Z.lower)});k=W.map(function(se){return se.upper}),N=W.map(function(se){return se.lower}),U=(X=H)==="next"?"":d}B("next");var Y=new Y.Collection(Y,function(){return es(k[0],N[K-1]+d)}),z=(Y._ondirectionchange=function(H){B(H)},0);return Y._addAlgorithm(function(H,W,se){var Z=H.key;if(typeof Z=="string"){var ce=h(Z);if(a(ce,N,z))return!0;for(var he=null,ge=z;ge<K;++ge){var Ee=((Ce,Fe,$e,Be,ye,Xe)=>{for(var Qe=Math.min(Ce.length,Be.length),at=-1,ct=0;ct<Qe;++ct){var ln=Fe[ct];if(ln!==Be[ct])return ye(Ce[ct],$e[ct])<0?Ce.substr(0,ct)+$e[ct]+$e.substr(ct+1):ye(Ce[ct],Be[ct])<0?Ce.substr(0,ct)+Be[ct]+$e.substr(ct+1):0<=at?Ce.substr(0,at)+Fe[at]+$e.substr(at+1):null;ye(Ce[ct],ln)<0&&(at=ct)}return Qe<Be.length&&Xe==="next"?Ce+$e.substr(Ce.length):Qe<Ce.length&&Xe==="prev"?Ce.substr(0,$e.length):at<0?null:Ce.substr(0,at)+Be[at]+$e.substr(at+1)})(Z,ce,k[ge],N[ge],b,X);Ee===null&&he===null?z=ge+1:(he===null||0<b(he,Ee))&&(he=Ee)}W(he!==null?function(){H.continue(he+U)}:se)}return!1}),Y}function es(s,a,c,d){return{type:2,lower:s,upper:a,lowerOpen:c,upperOpen:d}}function Ll(s){return{type:1,lower:s,upper:s}}Object.defineProperty(Ht.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Ht.prototype.between=function(s,a,c,d){c=c!==!1,d=d===!0;try{return 0<this._cmp(s,a)||this._cmp(s,a)===0&&(c||d)&&(!c||!d)?Hs(this):new this.Collection(this,function(){return es(s,a,!c,!d)})}catch{return an(this,Fn)}},Ht.prototype.equals=function(s){return s==null?an(this,Fn):new this.Collection(this,function(){return Ll(s)})},Ht.prototype.above=function(s){return s==null?an(this,Fn):new this.Collection(this,function(){return es(s,void 0,!0)})},Ht.prototype.aboveOrEqual=function(s){return s==null?an(this,Fn):new this.Collection(this,function(){return es(s,void 0,!1)})},Ht.prototype.below=function(s){return s==null?an(this,Fn):new this.Collection(this,function(){return es(void 0,s,!1,!0)})},Ht.prototype.belowOrEqual=function(s){return s==null?an(this,Fn):new this.Collection(this,function(){return es(void 0,s)})},Ht.prototype.startsWith=function(s){return typeof s!="string"?an(this,$l):this.between(s,s+bs,!0,!0)},Ht.prototype.startsWithIgnoreCase=function(s){return s===""?this.startsWith(s):dr(this,function(a,c){return a.indexOf(c[0])===0},[s],bs)},Ht.prototype.equalsIgnoreCase=function(s){return dr(this,function(a,c){return a===c[0]},[s],"")},Ht.prototype.anyOfIgnoreCase=function(){var s=Ye.apply(tt,arguments);return s.length===0?Hs(this):dr(this,function(a,c){return c.indexOf(a)!==-1},s,"")},Ht.prototype.startsWithAnyOfIgnoreCase=function(){var s=Ye.apply(tt,arguments);return s.length===0?Hs(this):dr(this,function(a,c){return c.some(function(d){return a.indexOf(d)===0})},s,bs)},Ht.prototype.anyOf=function(){var s,a,c=this,d=Ye.apply(tt,arguments),p=this._cmp;try{d.sort(p)}catch{return an(this,Fn)}return d.length===0?Hs(this):((s=new this.Collection(this,function(){return es(d[0],d[d.length-1])}))._ondirectionchange=function(h){p=h==="next"?c._ascending:c._descending,d.sort(p)},a=0,s._addAlgorithm(function(h,b,k){for(var N=h.key;0<p(N,d[a]);)if(++a===d.length)return b(k),!1;return p(N,d[a])===0||(b(function(){h.continue(d[a])}),!1)}),s)},Ht.prototype.notEqual=function(s){return this.inAnyRange([[-1/0,s],[s,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Ht.prototype.noneOf=function(){var s=Ye.apply(tt,arguments);if(s.length===0)return new this.Collection(this);try{s.sort(this._ascending)}catch{return an(this,Fn)}var a=s.reduce(function(c,d){return c?c.concat([[c[c.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})},Ht.prototype.inAnyRange=function(s,se){var c=this,d=this._cmp,p=this._ascending,h=this._descending,b=this._min,k=this._max;if(s.length===0)return Hs(this);if(!s.every(function(Z){return Z[0]!==void 0&&Z[1]!==void 0&&p(Z[0],Z[1])<=0}))return an(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",Ke.InvalidArgument);var N=!se||se.includeLowers!==!1,X=se&&se.includeUppers===!0,U,K=p;function B(Z,ce){return K(Z[0],ce[0])}try{(U=s.reduce(function(Z,ce){for(var he=0,ge=Z.length;he<ge;++he){var Ee=Z[he];if(d(ce[0],Ee[1])<0&&0<d(ce[1],Ee[0])){Ee[0]=b(Ee[0],ce[0]),Ee[1]=k(Ee[1],ce[1]);break}}return he===ge&&Z.push(ce),Z},[])).sort(B)}catch{return an(this,Fn)}var Y=0,z=X?function(Z){return 0<p(Z,U[Y][1])}:function(Z){return 0<=p(Z,U[Y][1])},H=N?function(Z){return 0<h(Z,U[Y][0])}:function(Z){return 0<=h(Z,U[Y][0])},W=z,se=new this.Collection(this,function(){return es(U[0][0],U[U.length-1][1],!N,!X)});return se._ondirectionchange=function(Z){K=Z==="next"?(W=z,p):(W=H,h),U.sort(B)},se._addAlgorithm(function(Z,ce,he){for(var ge,Ee=Z.key;W(Ee);)if(++Y===U.length)return ce(he),!1;return!z(ge=Ee)&&!H(ge)||(c._cmp(Ee,U[Y][1])===0||c._cmp(Ee,U[Y][0])===0||ce(function(){K===p?Z.continue(U[Y][0]):Z.continue(U[Y][1])}),!1)}),se},Ht.prototype.startsWithAnyOf=function(){var s=Ye.apply(tt,arguments);return s.every(function(a){return typeof a=="string"})?s.length===0?Hs(this):this.inAnyRange(s.map(function(a){return[a,a+bs]})):an(this,"startsWithAnyOf() only works with strings")};var Rl=Ht;function Ht(){}function wn(s){return Pt(function(a){return mo(a),s(a.target.error),!1})}function mo(s){s.stopPropagation&&s.stopPropagation(),s.preventDefault&&s.preventDefault()}var fr="storagemutated",Ra="x-storagemutated-1",ts=po(null,fr),ef=(En.prototype._lock=function(){return S(!Ne.global),++this._reculock,this._reculock!==1||Ne.global||(Ne.lockOwnerFor=this),this},En.prototype._unlock=function(){if(S(!Ne.global),--this._reculock==0)for(Ne.global||(Ne.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var s=this._blockedFuncs.shift();try{gs(s[1],s[0])}catch{}}return this},En.prototype._locked=function(){return this._reculock&&Ne.lockOwnerFor!==this},En.prototype.create=function(s){var a=this;if(this.mode){var c=this.db.idbdb,d=this.db._state.dbOpenError;if(S(!this.idbtrans),!s&&!c)switch(d&&d.name){case"DatabaseClosedError":throw new Ke.DatabaseClosed(d);case"MissingAPIError":throw new Ke.MissingAPI(d.message,d);default:throw new Ke.OpenFailed(d)}if(!this.active)throw new Ke.TransactionInactive;S(this._completion._state===null),(s=this.idbtrans=s||(this.db.core||c).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Pt(function(p){mo(p),a._reject(s.error)}),s.onabort=Pt(function(p){mo(p),a.active&&a._reject(new Ke.Abort(s.error)),a.active=!1,a.on("abort").fire(p)}),s.oncomplete=Pt(function(){a.active=!1,a._resolve(),"mutatedParts"in s&&ts.storagemutated.fire(s.mutatedParts)})}return this},En.prototype._promise=function(s,a,c){var d,p=this;return s==="readwrite"&&this.mode!=="readwrite"?jt(new Ke.ReadOnly("Transaction is readonly")):this.active?this._locked()?new De(function(h,b){p._blockedFuncs.push([function(){p._promise(s,a,c).then(h,b)},Ne])}):c?Xn(function(){var h=new De(function(b,k){p._lock();var N=a(b,k,p);N&&N.then&&N.then(b,k)});return h.finally(function(){return p._unlock()}),h._lib=!0,h}):((d=new De(function(h,b){var k=a(h,b,p);k&&k.then&&k.then(h,b)}))._lib=!0,d):jt(new Ke.TransactionInactive)},En.prototype._root=function(){return this.parent?this.parent._root():this},En.prototype.waitFor=function(s){var a,c=this._root(),d=De.resolve(s),p=(c._waitingFor?c._waitingFor=c._waitingFor.then(function(){return d}):(c._waitingFor=d,c._waitingQueue=[],a=c.idbtrans.objectStore(c.storeNames[0]),function h(){for(++c._spinCount;c._waitingQueue.length;)c._waitingQueue.shift()();c._waitingFor&&(a.get(-1/0).onsuccess=h)}()),c._waitingFor);return new De(function(h,b){d.then(function(k){return c._waitingQueue.push(Pt(h.bind(null,k)))},function(k){return c._waitingQueue.push(Pt(b.bind(null,k)))}).finally(function(){c._waitingFor===p&&(c._waitingFor=null)})})},En.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new Ke.Abort))},En.prototype.table=function(s){var a=this._memoizedTables||(this._memoizedTables={});if(w(a,s))return a[s];var c=this.schema[s];if(c)return(c=new this.db.Table(s,c,this)).core=this.db.core.table(s),a[s]=c;throw new Ke.NotFound("Table "+s+" not part of transaction")},En);function En(){}function Ka(s,a,c,d,p,h,b,k){return{name:s,keyPath:a,unique:c,multi:d,auto:p,compound:h,src:(c&&!b?"&":"")+(d?"*":"")+(p?"++":"")+Kl(a),type:k}}function Kl(s){return typeof s=="string"?s:s?"["+[].join.call(s,"+")+"]":""}function Na(s,a,c){return{name:s,primKey:a,indexes:c,mappedClass:null,idxByName:(d=function(p){return[p.name,p]},c.reduce(function(p,h,b){return h=d(h,b),h&&(p[h[0]]=h[1]),p},{}))};var d}var ho=function(s){try{return s.only([[]]),ho=function(){return[[]]},[[]]}catch{return ho=function(){return bs},bs}};function Fa(s){return s==null?function(){}:typeof s=="string"?(a=s).split(".").length===1?function(c){return c[a]}:function(c){return ee(c,a)}:function(c){return ee(c,s)};var a}function Nl(s){return[].slice.call(s)}var tf=0;function yo(s){return s==null?":id":typeof s=="string"?s:"[".concat(s.join("+"),"]")}function nf(s,a,b){function d(W){if(W.type===3)return null;if(W.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var Y=W.lower,z=W.upper,H=W.lowerOpen,W=W.upperOpen;return Y===void 0?z===void 0?null:a.upperBound(z,!!W):z===void 0?a.lowerBound(Y,!!H):a.bound(Y,z,!!H,!!W)}function p(B){var Y,z,H=B.name;return{name:H,schema:B,mutate:function(W){var se=W.trans,Z=W.type,ce=W.keys,he=W.values,ge=W.range;return new Promise(function(Ee,Ce){Ee=Pt(Ee);var Fe=se.objectStore(H),$e=Fe.keyPath==null,Be=Z==="put"||Z==="add";if(!Be&&Z!=="delete"&&Z!=="deleteRange")throw new Error("Invalid operation type: "+Z);var ye,Xe=(ce||he||{length:1}).length;if(ce&&he&&ce.length!==he.length)throw new Error("Given keys array must have same length as given values array.");if(Xe===0)return Ee({numFailures:0,failures:{},results:[],lastResult:void 0});function Qe(en){++ln,mo(en)}var at=[],ct=[],ln=0;if(Z==="deleteRange"){if(ge.type===4)return Ee({numFailures:ln,failures:ct,results:[],lastResult:void 0});ge.type===3?at.push(ye=Fe.clear()):at.push(ye=Fe.delete(d(ge)))}else{var $e=Be?$e?[he,ce]:[he,null]:[ce,null],ot=$e[0],Yt=$e[1];if(Be)for(var Jt=0;Jt<Xe;++Jt)at.push(ye=Yt&&Yt[Jt]!==void 0?Fe[Z](ot[Jt],Yt[Jt]):Fe[Z](ot[Jt])),ye.onerror=Qe;else for(Jt=0;Jt<Xe;++Jt)at.push(ye=Fe[Z](ot[Jt])),ye.onerror=Qe}function xr(en){en=en.target.result,at.forEach(function(Cs,oi){return Cs.error!=null&&(ct[oi]=Cs.error)}),Ee({numFailures:ln,failures:ct,results:Z==="delete"?ce:at.map(function(Cs){return Cs.result}),lastResult:en})}ye.onerror=function(en){Qe(en),xr(en)},ye.onsuccess=xr})},getMany:function(W){var se=W.trans,Z=W.keys;return new Promise(function(ce,he){ce=Pt(ce);for(var ge,Ee=se.objectStore(H),Ce=Z.length,Fe=new Array(Ce),$e=0,Be=0,ye=function(at){at=at.target,Fe[at._pos]=at.result,++Be===$e&&ce(Fe)},Xe=wn(he),Qe=0;Qe<Ce;++Qe)Z[Qe]!=null&&((ge=Ee.get(Z[Qe]))._pos=Qe,ge.onsuccess=ye,ge.onerror=Xe,++$e);$e===0&&ce(Fe)})},get:function(W){var se=W.trans,Z=W.key;return new Promise(function(ce,he){ce=Pt(ce);var ge=se.objectStore(H).get(Z);ge.onsuccess=function(Ee){return ce(Ee.target.result)},ge.onerror=wn(he)})},query:(Y=N,z=X,function(W){return new Promise(function(se,Z){se=Pt(se);var ce,he,ge,Ee,Xe=W.trans,Ce=W.values,Fe=W.limit,ye=W.query,$e=($e=W.direction)!=null?$e:"next",Be=Fe===1/0?void 0:Fe,Qe=ye.index,ye=ye.range,Xe=Xe.objectStore(H),Xe=Qe.isPrimaryKey?Xe:Xe.index(Qe.name),Qe=d(ye);if(Fe===0)return se({result:[]});z?(ye={query:Qe,count:Be,direction:$e},(ce=Ce?Xe.getAll(ye):Xe.getAllKeys(ye)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=wn(Z)):Y&&$e==="next"?((ce=Ce?Xe.getAll(Qe,Be):Xe.getAllKeys(Qe,Be)).onsuccess=function(at){return se({result:at.target.result})},ce.onerror=wn(Z)):(he=0,ge=!Ce&&"openKeyCursor"in Xe?Xe.openKeyCursor(Qe,$e):Xe.openCursor(Qe,$e),Ee=[],ge.onsuccess=function(){var at=ge.result;return!at||(Ee.push(Ce?at.value:at.primaryKey),++he===Fe)?se({result:Ee}):void at.continue()},ge.onerror=wn(Z))})}),openCursor:function(W){var se=W.trans,Z=W.values,ce=W.query,he=W.reverse,ge=W.unique;return new Promise(function(Ee,Ce){Ee=Pt(Ee);var Be=ce.index,Fe=ce.range,$e=se.objectStore(H),$e=Be.isPrimaryKey?$e:$e.index(Be.name),Be=he?ge?"prevunique":"prev":ge?"nextunique":"next",ye=!Z&&"openKeyCursor"in $e?$e.openKeyCursor(d(Fe),Be):$e.openCursor(d(Fe),Be);ye.onerror=wn(Ce),ye.onsuccess=Pt(function(Xe){var Qe,at,ct,ln,ot=ye.result;ot?(ot.___id=++tf,ot.done=!1,Qe=ot.continue.bind(ot),at=(at=ot.continuePrimaryKey)&&at.bind(ot),ct=ot.advance.bind(ot),ln=function(){throw new Error("Cursor not stopped")},ot.trans=se,ot.stop=ot.continue=ot.continuePrimaryKey=ot.advance=function(){throw new Error("Cursor not started")},ot.fail=Pt(Ce),ot.next=function(){var Yt=this,Jt=1;return this.start(function(){return Jt--?Yt.continue():Yt.stop()}).then(function(){return Yt})},ot.start=function(Yt){function Jt(){if(ye.result)try{Yt()}catch(en){ot.fail(en)}else ot.done=!0,ot.start=function(){throw new Error("Cursor behind last entry")},ot.stop()}var xr=new Promise(function(en,Cs){en=Pt(en),ye.onerror=wn(Cs),ot.fail=Cs,ot.stop=function(oi){ot.stop=ot.continue=ot.continuePrimaryKey=ot.advance=ln,en(oi)}});return ye.onsuccess=Pt(function(en){ye.onsuccess=Jt,Jt()}),ot.continue=Qe,ot.continuePrimaryKey=at,ot.advance=ct,Jt(),xr},Ee(ot)):Ee(null)},Ce)})},count:function(W){var se=W.query,Z=W.trans,ce=se.index,he=se.range;return new Promise(function(ge,Ee){var Ce=Z.objectStore(H),Ce=ce.isPrimaryKey?Ce:Ce.index(ce.name),Fe=d(he),Fe=Fe?Ce.count(Fe):Ce.count();Fe.onsuccess=Pt(function($e){return ge($e.target.result)}),Fe.onerror=wn(Ee)})}}}h=b,k=Nl((b=s).objectStoreNames),U=0<k.length?h.objectStore(k[0]):{};var h,b={schema:{name:b.name,tables:k.map(function(B){return h.objectStore(B)}).map(function(B){var Y=B.keyPath,z=B.autoIncrement,W=f(Y),H={},W={name:B.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:Y==null,compound:W,keyPath:Y,autoIncrement:z,unique:!0,extractKey:Fa(Y)},indexes:Nl(B.indexNames).map(function(se){return B.index(se)}).map(function(he){var ge=he.name,Z=he.unique,ce=he.multiEntry,he=he.keyPath,ge={name:ge,compound:f(he),keyPath:he,unique:Z,multiEntry:ce,extractKey:Fa(he)};return H[yo(he)]=ge}),getIndexByKeyPath:function(se){return H[yo(se)]}};return H[":id"]=W.primaryKey,Y!=null&&(H[yo(Y)]=W.primaryKey),W})},hasGetAll:0<k.length&&"getAll"in U&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in U},k=b.schema,N=b.hasGetAll,X=b.hasIdb3Features,U=k.tables.map(p),K={};return U.forEach(function(B){return K[B.name]=B}),{stack:"dbcore",transaction:s.transaction.bind(s),table:function(B){if(K[B])return K[B];throw new Error("Table '".concat(B,"' not found"))},MIN_KEY:-1/0,MAX_KEY:ho(a),schema:k}}function sf(s,a,c,d){return c=c.IDBKeyRange,a=nf(a,c,d),{dbcore:s.dbcore.reduce(function(p,h){return h=h.create,o(o({},p),h(p))},a)}}function pr(s,a){var c=a.db,c=sf(s._middlewares,c,s._deps,a);s.core=c.dbcore,s.tables.forEach(function(d){var p=d.name;s.core.schema.tables.some(function(h){return h.name===p})&&(d.core=s.core.table(p),s[p]instanceof s.Table)&&(s[p].core=d.core)})}function vr(s,a,c,d){c.forEach(function(p){var h=d[p];a.forEach(function(b){var k=function N(X,U){return ae(X,U)||(X=y(X))&&N(X,U)}(b,p);(!k||"value"in k&&k.value===void 0)&&(b===s.Transaction.prototype||b instanceof s.Transaction?I(b,p,{get:function(){return this.table(p)},set:function(N){$(this,p,{value:N,writable:!0,configurable:!0,enumerable:!0})}}):b[p]=new s.Table(p,h))})})}function Va(s,a){a.forEach(function(c){for(var d in c)c[d]instanceof s.Table&&delete c[d]})}function of(s,a){return s._cfg.version-a._cfg.version}function rf(s,a,c,d){var p=s._dbSchema,h=(c.objectStoreNames.contains("$meta")&&!p.$meta&&(p.$meta=Na("$meta",Vl("")[0],[]),s._storeNames.push("$meta")),s._createTransaction("readwrite",s._storeNames,p)),b=(h.create(c),h._completion.catch(d),h._reject.bind(h)),k=Ne.transless||Ne;Xn(function(){if(Ne.trans=h,Ne.transless=k,a!==0)return pr(s,c),X=a,((N=h).storeNames.includes("$meta")?N.table("$meta").get("version").then(function(U){return U??X}):De.resolve(X)).then(function(W){var K=s,B=W,Y=h,z=c,H=[],W=K._versions,se=K._dbSchema=hr(0,K.idbdb,z);return(W=W.filter(function(Z){return Z._cfg.version>=B})).length===0?De.resolve():(W.forEach(function(Z){H.push(function(){var ce,he,ge,Ee=se,Ce=Z._cfg.dbschema,Fe=(yr(K,Ee,z),yr(K,Ce,z),se=K._dbSchema=Ce,Ba(Ee,Ce)),$e=(Fe.add.forEach(function(Be){Ua(z,Be[0],Be[1].primKey,Be[1].indexes)}),Fe.change.forEach(function(Be){if(Be.recreate)throw new Ke.Upgrade("Not yet support for changing primary key");var ye=z.objectStore(Be.name);Be.add.forEach(function(Xe){return mr(ye,Xe)}),Be.change.forEach(function(Xe){ye.deleteIndex(Xe.name),mr(ye,Xe)}),Be.del.forEach(function(Xe){return ye.deleteIndex(Xe)})}),Z._cfg.contentUpgrade);if($e&&Z._cfg.version>B)return pr(K,z),Y._memoizedTables={},ce=oe(Ce),Fe.del.forEach(function(Be){ce[Be]=Ee[Be]}),Va(K,[K.Transaction.prototype]),vr(K,[K.Transaction.prototype],u(ce),ce),Y.schema=ce,(he=We($e))&&Us(),Ce=De.follow(function(){var Be;(ge=$e(Y))&&he&&(Be=Qn.bind(null,null),ge.then(Be,Be))}),ge&&typeof ge.then=="function"?De.resolve(ge):Ce.then(function(){return ge})}),H.push(function(ce){var he,ge,Ee=Z._cfg.dbschema;he=Ee,ge=ce,[].slice.call(ge.db.objectStoreNames).forEach(function(Ce){return he[Ce]==null&&ge.db.deleteObjectStore(Ce)}),Va(K,[K.Transaction.prototype]),vr(K,[K.Transaction.prototype],K._storeNames,K._dbSchema),Y.schema=K._dbSchema}),H.push(function(ce){K.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(K.idbdb.version/10)===Z._cfg.version?(K.idbdb.deleteObjectStore("$meta"),delete K._dbSchema.$meta,K._storeNames=K._storeNames.filter(function(he){return he!=="$meta"})):ce.objectStore("$meta").put(Z._cfg.version,"version"))})}),function Z(){return H.length?De.resolve(H.shift()(Y.idbtrans)).then(Z):De.resolve()}().then(function(){Fl(se,z)}))}).catch(b);var N,X;u(p).forEach(function(U){Ua(c,U,p[U].primKey,p[U].indexes)}),pr(s,c),De.follow(function(){return s.on.populate.fire(h)}).catch(b)})}function af(s,a){Fl(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 c=hr(0,s.idbdb,a);yr(s,s._dbSchema,a);for(var d=0,p=Ba(c,s._dbSchema).change;d<p.length;d++){var h=(b=>{if(b.change.length||b.recreate)return console.warn("Unable to patch indexes of table ".concat(b.name," because it has changes on the type of index or primary key.")),{value:void 0};var k=a.objectStore(b.name);b.add.forEach(function(N){Re&&console.debug("Dexie upgrade patch: Creating missing index ".concat(b.name,".").concat(N.src)),mr(k,N)})})(p[d]);if(typeof h=="object")return h.value}}function Ba(s,a){var c,d={del:[],add:[],change:[]};for(c in s)a[c]||d.del.push(c);for(c in a){var p=s[c],h=a[c];if(p){var b={name:c,def:h,recreate:!1,del:[],add:[],change:[]};if(""+(p.primKey.keyPath||"")!=""+(h.primKey.keyPath||"")||p.primKey.auto!==h.primKey.auto)b.recreate=!0,d.change.push(b);else{var k=p.idxByName,N=h.idxByName,X=void 0;for(X in k)N[X]||b.del.push(X);for(X in N){var U=k[X],K=N[X];U?U.src!==K.src&&b.change.push(K):b.add.push(K)}(0<b.del.length||0<b.add.length||0<b.change.length)&&d.change.push(b)}}else d.add.push([c,h])}return d}function Ua(s,a,c,d){var p=s.db.createObjectStore(a,c.keyPath?{keyPath:c.keyPath,autoIncrement:c.auto}:{autoIncrement:c.auto});d.forEach(function(h){return mr(p,h)})}function Fl(s,a){u(s).forEach(function(c){a.db.objectStoreNames.contains(c)||(Re&&console.debug("Dexie: Creating missing table",c),Ua(a,c,s[c].primKey,s[c].indexes))})}function mr(s,a){s.createIndex(a.name,a.keyPath,{unique:a.unique,multiEntry:a.multi})}function hr(s,a,c){var d={};return ue(a.objectStoreNames,0).forEach(function(p){for(var h=c.objectStore(p),b=Ka(Kl(X=h.keyPath),X||"",!0,!1,!!h.autoIncrement,X&&typeof X!="string",!0),k=[],N=0;N<h.indexNames.length;++N){var U=h.index(h.indexNames[N]),X=U.keyPath,U=Ka(U.name,X,!!U.unique,!!U.multiEntry,!1,X&&typeof X!="string",!1);k.push(U)}d[p]=Na(p,b,k)}),d}function yr(s,a,c){for(var d=c.db.objectStoreNames,p=0;p<d.length;++p){var h=d[p],b=c.objectStore(h);s._hasGetAll="getAll"in b;for(var k=0;k<b.indexNames.length;++k){var N,X=b.indexNames[k],U=b.index(X).keyPath,U=typeof U=="string"?U:"["+ue(U).join("+")+"]";a[h]&&(N=a[h].idxByName[U])&&(N.name=X,delete a[h].idxByName[U],a[h].idxByName[X]=N)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&l.WorkerGlobalScope&&l instanceof l.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(s._hasGetAll=!1)}function Vl(s){return s.split(",").map(function(a,c){var p=a.split(":"),d=(d=p[1])==null?void 0:d.trim(),p=(a=p[0].trim()).replace(/([&*]|\+\+)/g,""),h=/^\[/.test(p)?p.match(/^\[(.*)\]$/)[1].split("+"):p;return Ka(p,h||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),f(h),c===0,d)})}zs.prototype._createTableSchema=Na,zs.prototype._parseIndexSyntax=Vl,zs.prototype._parseStoresSpec=function(s,a){var c=this;u(s).forEach(function(d){if(s[d]!==null){var p=c._parseIndexSyntax(s[d]),h=p.shift();if(!h)throw new Ke.Schema("Invalid schema for table "+d+": "+s[d]);if(h.unique=!0,h.multi)throw new Ke.Schema("Primary key cannot be multiEntry*");p.forEach(function(b){if(b.auto)throw new Ke.Schema("Only primary key can be marked as autoIncrement (++)");if(!b.keyPath)throw new Ke.Schema("Index must have a name and cannot be an empty string")}),h=c._createTableSchema(d,h,p),a[d]=h}})},zs.prototype.stores=function(c){var a=this.db,c=(this._cfg.storesSource=this._cfg.storesSource?v(this._cfg.storesSource,c):c,a._versions),d={},p={};return c.forEach(function(h){v(d,h._cfg.storesSource),p=h._cfg.dbschema={},h._parseStoresSpec(d,p)}),a._dbSchema=p,Va(a,[a._allTables,a,a.Transaction.prototype]),vr(a,[a._allTables,a,a.Transaction.prototype,this._cfg.tables],u(p),p),a._storeNames=u(p),this},zs.prototype.upgrade=function(s){return this._cfg.contentUpgrade=ve(this._cfg.contentUpgrade||g,s),this};var lf=zs;function zs(){}var go=(()=>{var s,a,c;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(),h=p.next();!h.done;){var b=h.value;if(b.deref()===d._novip)return s.delete(b),void a.unregister(b);h=p.next()}}}):(c=[],{toArray:function(){return c},add:function(d){c.push(d._novip)},remove:function(d){d&&(d=c.indexOf(d._novip))!==-1&&c.splice(d,1)}})})();function qa(s,a){var c=s._dbNamesDB;return c||(c=s._dbNamesDB=new Vn(ar,{addons:[],indexedDB:s,IDBKeyRange:a})).version(1).stores({dbnames:"name"}),c.table("dbnames")}function Ha(s){return s&&typeof s.databases=="function"}function za(s){return Xn(function(){return Ne.letThrough=!0,s()})}function Wa(s){return!("from"in s)}var Gt=function(s,a){var c;if(!this)return c=new Gt,s&&"d"in s&&v(c,s),c;v(this,arguments.length?{d:1,from:s,to:1<arguments.length?a:s}:{d:0})};function bo(s,a,c){var d=dt(a,c);if(!isNaN(d)){if(0<d)throw RangeError();if(Wa(s))return v(s,{from:a,to:c,d:1});var d=s.l,p=s.r;if(dt(c,s.from)<0)return d?bo(d,a,c):s.l={from:a,to:c,d:1,l:null,r:null},Ul(s);if(0<dt(a,s.to))return p?bo(p,a,c):s.r={from:a,to:c,d:1,l:null,r:null},Ul(s);dt(a,s.from)<0&&(s.from=a,s.l=null,s.d=p?p.d+1:1),0<dt(c,s.to)&&(s.to=c,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){Wa(a)||function c(d,p){var h=p.from,b=p.l,k=p.r;bo(d,h,p.to),b&&c(d,b),k&&c(d,k)}(s,a)}function Bl(s,a){var c=gr(a),d=c.next();if(!d.done)for(var p=d.value,h=gr(s),b=h.next(p.from),k=b.value;!d.done&&!b.done;){if(dt(k.from,p.to)<=0&&0<=dt(k.to,p.from))return!0;dt(p.from,k.from)<0?p=(d=c.next(k.from)).value:k=(b=h.next(p.from)).value}return!1}function gr(s){var a=Wa(s)?null:{s:0,n:s};return{next:function(c){for(var d=0<arguments.length;a;)switch(a.s){case 0:if(a.s=1,d)for(;a.n.l&&dt(c,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||dt(c,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 Ul(s){var a,c,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",c=o({},s),d=s[p],s.from=d.from,s.to=d.to,s[p]=d[p],c[p]=d[a],(s[a]=c).d=ql(c)),s.d=ql(s)}function ql(c){var a=c.r,c=c.l;return(a?c?Math.max(a.d,c.d):a.d:c?c.d:0)+1}function br(s,a){return u(a).forEach(function(c){s[c]?wo(s[c],a[c]):s[c]=function d(p){var h,b,k={};for(h in p)w(p,h)&&(b=p[h],k[h]=!b||typeof b!="object"||O.has(b.constructor)?b:d(b));return k}(a[c])}),s}function Ga(s,a){return s.all||a.all||Object.keys(s).some(function(c){return a[c]&&Bl(a[c],s[c])})}T(Gt.prototype,((fe={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(c){return bo(a,c,c)}),this},hasKey:function(s){var a=gr(this).next(s).value;return a&&dt(a.from,s)<=0&&0<=dt(a.to,s)}})[Me]=function(){return gr(this)},fe));var _s={},Ya={},Ja=!1;function wr(s){br(Ya,s),Ja||(Ja=!0,setTimeout(function(){Ja=!1,Xa(Ya,!(Ya={}))},0))}function Xa(s,a){a===void 0&&(a=!1);var c=new Set;if(s.all)for(var d=0,p=Object.values(_s);d<p.length;d++)Hl(k=p[d],s,c,a);else for(var h in s){var b,k,h=/^idb\:\/\/(.*)\/(.*)\//.exec(h);h&&(b=h[1],h=h[2],k=_s["idb://".concat(b,"/").concat(h)])&&Hl(k,s,c,a)}c.forEach(function(N){return N()})}function Hl(s,a,c,d){for(var p=[],h=0,b=Object.entries(s.queries.query);h<b.length;h++){for(var k=b[h],N=k[0],X=[],U=0,K=k[1];U<K.length;U++){var B=K[U];Ga(a,B.obsSet)?B.subscribers.forEach(function(W){return c.add(W)}):d&&X.push(B)}d&&p.push([N,X])}if(d)for(var Y=0,z=p;Y<z.length;Y++){var H=z[Y],N=H[0],X=H[1];s.queries.query[N]=X}}function uf(s){var a=s._state,c=s._deps.indexedDB;if(a.isBeingOpened||s.idbdb)return a.dbReadyPromise.then(function(){return a.dbOpenError?jt(a.dbOpenError):s});a.isBeingOpened=!0,a.dbOpenError=null,a.openComplete=!1;var d=a.openCanceller,p=Math.round(10*s.verno),h=!1;function b(){if(a.openCanceller!==d)throw new Ke.DatabaseClosed("db.open() was cancelled")}function k(){return new De(function(B,Y){if(b(),!c)throw new Ke.MissingAPI;var z=s.name,H=a.autoSchema||!p?c.open(z):c.open(z,p);if(!H)throw new Ke.MissingAPI;H.onerror=wn(Y),H.onblocked=Pt(s._fireOnBlocked),H.onupgradeneeded=Pt(function(W){var se;U=H.transaction,a.autoSchema&&!s._options.allowEmptyDB?(H.onerror=mo,U.abort(),H.result.close(),(se=c.deleteDatabase(z)).onsuccess=se.onerror=Pt(function(){Y(new Ke.NoSuchDatabase("Database ".concat(z," doesnt exist")))})):(U.onerror=wn(Y),se=W.oldVersion>Math.pow(2,62)?0:W.oldVersion,K=se<1,s.idbdb=H.result,h&&af(s,U),rf(s,se/10,U,Y))},Y),H.onsuccess=Pt(function(){U=null;var W,se,Z,ce,he,ge,Ee=s.idbdb=H.result,Ce=ue(Ee.objectStoreNames);if(0<Ce.length)try{var Fe=Ee.transaction((he=Ce).length===1?he[0]:he,"readonly");if(a.autoSchema)ge=Ee,ce=Fe,(Z=s).verno=ge.version/10,ce=Z._dbSchema=hr(0,ge,ce),Z._storeNames=ue(ge.objectStoreNames,0),vr(Z,[Z._allTables],u(ce),ce);else if(yr(s,s._dbSchema,Fe),se=Fe,((se=Ba(hr(0,(W=s).idbdb,se),W._dbSchema)).add.length||se.change.some(function($e){return $e.add.length||$e.change.length}))&&!h)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."),Ee.close(),p=Ee.version+1,h=!0,B(k());pr(s,Fe)}catch{}go.add(s),Ee.onversionchange=Pt(function($e){a.vcFired=!0,s.on("versionchange").fire($e)}),Ee.onclose=Pt(function(){s.close({disableAutoOpen:!1})}),K&&(Ce=s._deps,he=z,Ha(ge=Ce.indexedDB)||he===ar||qa(ge,Ce.IDBKeyRange).put({name:he}).catch(g)),B()},Y)}).catch(function(B){switch(B==null?void 0:B.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 De.reject(B)})}var N,X=a.dbReadyResolve,U=null,K=!1;return De.race([d,(typeof navigator>"u"?De.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(B){function Y(){return indexedDB.databases().finally(B)}N=setInterval(Y,100),Y()}).finally(function(){return clearInterval(N)}):Promise.resolve()).then(k)]).then(function(){return b(),a.onReadyBeingFired=[],De.resolve(za(function(){return s.on.ready.fire(s.vip)})).then(function B(){var Y;if(0<a.onReadyBeingFired.length)return Y=a.onReadyBeingFired.reduce(ve,g),a.onReadyBeingFired=[],De.resolve(za(function(){return Y(s.vip)})).then(B)})}).finally(function(){a.openCanceller===d&&(a.onReadyBeingFired=null,a.isBeingOpened=!1)}).catch(function(B){a.dbOpenError=B;try{U&&U.abort()}catch{}return d===a.openCanceller&&s._close(),jt(B)}).finally(function(){a.openComplete=!0,X()}).then(function(){var B;return K&&(B={},s.tables.forEach(function(Y){Y.schema.indexes.forEach(function(z){z.name&&(B["idb://".concat(s.name,"/").concat(Y.name,"/").concat(z.name)]=new Gt(-1/0,[[[]]]))}),B["idb://".concat(s.name,"/").concat(Y.name,"/")]=B["idb://".concat(s.name,"/").concat(Y.name,"/:dels")]=new Gt(-1/0,[[[]]])}),ts(fr).fire(B),Xa(B,!0)),s})}function Qa(s){function a(h){return s.next(h)}var c=p(a),d=p(function(h){return s.throw(h)});function p(h){return function(k){var k=h(k),N=k.value;return k.done?N:N&&typeof N.then=="function"?N.then(c,d):f(N)?Promise.all(N).then(c,d):c(N)}}return p(a)()}function _r(s,a,c){for(var d=f(s)?s.slice():[s],p=0;p<c;++p)d.push(a);return d}var cf={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(s){return o(o({},s),{table:function(d){var c=s.table(d),d=c.schema,p=Object.create(null),h=[];function b(B,Y,z){var Z=yo(B),H=p[Z]=p[Z]||[],W=B==null?0:typeof B=="string"?1:B.length,se=0<Y,Z=o(o({},z),{name:se?"".concat(Z,"(virtual-from:").concat(z.name,")"):z.name,lowLevelIndex:z,isVirtual:se,keyTail:Y,keyLength:W,extractKey:Fa(B),unique:!se&&z.unique});return H.push(Z),Z.isPrimaryKey||h.push(Z),1<W&&b(W===2?B[0]:B.slice(0,W-1),Y+1,z),H.sort(function(ce,he){return ce.keyTail-he.keyTail}),Z}var k=b(d.primaryKey.keyPath,0,d.primaryKey);p[":id"]=[k];for(var N=0,X=d.indexes;N<X.length;N++){var U=X[N];b(U.keyPath,0,U)}function K(B){var Y,z=B.query.index;return z.isVirtual?o(o({},B),{query:{index:z.lowLevelIndex,range:(Y=B.query.range,z=z.keyTail,{type:Y.type===1?2:Y.type,lower:_r(Y.lower,Y.lowerOpen?s.MAX_KEY:s.MIN_KEY,z),lowerOpen:!0,upper:_r(Y.upper,Y.upperOpen?s.MIN_KEY:s.MAX_KEY,z),upperOpen:!0})}}):B}return o(o({},c),{schema:o(o({},d),{primaryKey:k,indexes:h,getIndexByKeyPath:function(B){return(B=p[yo(B)])&&B[0]}}),count:function(B){return c.count(K(B))},query:function(B){return c.query(K(B))},openCursor:function(B){var Y=B.query.index,z=Y.keyTail,H=Y.keyLength;return Y.isVirtual?c.openCursor(K(B)).then(function(se){return se&&W(se)}):c.openCursor(B);function W(se){return Object.create(se,{continue:{value:function(Z){Z!=null?se.continue(_r(Z,B.reverse?s.MAX_KEY:s.MIN_KEY,z)):B.unique?se.continue(se.key.slice(0,H).concat(B.reverse?s.MIN_KEY:s.MAX_KEY,z)):se.continue()}},continuePrimaryKey:{value:function(Z,ce){se.continuePrimaryKey(_r(Z,s.MAX_KEY,z),ce)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var Z=se.key;return H===1?Z[0]:Z.slice(0,H)}},value:{get:function(){return se.value}}})}}})}})}};function Za(s,a,c,d){return c=c||{},d=d||"",u(s).forEach(function(p){var h,b,k;w(a,p)?(h=s[p],b=a[p],typeof h=="object"&&typeof b=="object"&&h&&b?(k=_e(h))!==_e(b)?c[d+p]=a[p]:k==="Object"?Za(h,b,c,d+p+"."):h!==b&&(c[d+p]=a[p]):h!==b&&(c[d+p]=a[p])):c[d+p]=void 0}),u(a).forEach(function(p){w(s,p)||(c[d+p]=a[p])}),c}function ei(s,a){return a.type==="delete"?a.keys:a.keys||a.values.map(s.extractKey)}var df={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(s){return o(o({},s),{table:function(a){var c=s.table(a),d=c.schema.primaryKey;return o(o({},c),{mutate:function(p){var h=Ne.trans,b=h.table(a).hook,k=b.deleting,N=b.creating,X=b.updating;switch(p.type){case"add":if(N.fire===g)break;return h._promise("readwrite",function(){return U(p)},!0);case"put":if(N.fire===g&&X.fire===g)break;return h._promise("readwrite",function(){return U(p)},!0);case"delete":if(k.fire===g)break;return h._promise("readwrite",function(){return U(p)},!0);case"deleteRange":if(k.fire===g)break;return h._promise("readwrite",function(){return function K(B,Y,z){return c.query({trans:B,values:!1,query:{index:d,range:Y},limit:z}).then(function(H){var W=H.result;return U({type:"delete",keys:W,trans:B}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):W.length<z?{failures:[],numFailures:0,lastResult:void 0}:K(B,o(o({},Y),{lower:W[W.length-1],lowerOpen:!0}),z)})})}(p.trans,p.range,1e4)},!0)}return c.mutate(p);function U(K){var B,Y,z,H=Ne.trans,W=K.keys||ei(d,K);if(W)return(K=K.type==="add"||K.type==="put"?o(o({},K),{keys:W}):o({},K)).type!=="delete"&&(K.values=r([],K.values)),K.keys&&(K.keys=r([],K.keys)),B=c,z=W,((Y=K).type==="add"?Promise.resolve([]):B.getMany({trans:Y.trans,keys:z,cache:"immutable"})).then(function(se){var Z=W.map(function(ce,he){var ge,Ee,Ce,Fe=se[he],$e={onerror:null,onsuccess:null};return K.type==="delete"?k.fire.call($e,ce,Fe,H):K.type==="add"||Fe===void 0?(ge=N.fire.call($e,ce,K.values[he],H),ce==null&&ge!=null&&(K.keys[he]=ce=ge,d.outbound||q(K.values[he],d.keyPath,ce))):(ge=Za(Fe,K.values[he]),(Ee=X.fire.call($e,ge,ce,Fe,H))&&(Ce=K.values[he],Object.keys(Ee).forEach(function(Be){w(Ce,Be)?Ce[Be]=Ee[Be]:q(Ce,Be,Ee[Be])}))),$e});return c.mutate(K).then(function(ce){for(var he=ce.failures,ge=ce.results,Ee=ce.numFailures,ce=ce.lastResult,Ce=0;Ce<W.length;++Ce){var Fe=(ge||W)[Ce],$e=Z[Ce];Fe==null?$e.onerror&&$e.onerror(he[Ce]):$e.onsuccess&&$e.onsuccess(K.type==="put"&&se[Ce]?K.values[Ce]:Fe)}return{failures:he,results:ge,numFailures:Ee,lastResult:ce}}).catch(function(ce){return Z.forEach(function(he){return he.onerror&&he.onerror(ce)}),Promise.reject(ce)})});throw new Error("Keys missing")}}})}})}};function zl(s,a,c){try{if(!a||a.keys.length<s.length)return null;for(var d=[],p=0,h=0;p<a.keys.length&&h<s.length;++p)dt(a.keys[p],s[h])===0&&(d.push(c?Ie(a.values[p]):a.values[p]),++h);return d.length===s.length?d:null}catch{return null}}var ff={stack:"dbcore",level:-1,create:function(s){return{table:function(a){var c=s.table(a);return o(o({},c),{getMany:function(d){var p;return d.cache?(p=zl(d.keys,d.trans._cache,d.cache==="clone"))?De.resolve(p):c.getMany(d).then(function(h){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Ie(h):h},h}):c.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),c.mutate(d)}})}}}};function Wl(s,a){return s.trans.mode==="readonly"&&!!s.subscr&&!s.trans.explicit&&s.trans.db._options.cache!=="disabled"&&!a.schema.primaryKey.outbound}function Gl(s,a){switch(s){case"query":return a.values&&!a.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var pf={stack:"dbcore",level:0,name:"Observability",create:function(s){var a=s.schema.name,c=new Gt(s.MIN_KEY,s.MAX_KEY);return o(o({},s),{transaction:function(d,p,h){if(Ne.subscr&&p!=="readonly")throw new Ke.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Ne.querier));return s.transaction(d,p,h)},table:function(d){function p(W){var H,W=W.query;return[H=W.index,new Gt((H=(W=W.range).lower)!=null?H:s.MIN_KEY,(H=W.upper)!=null?H:s.MAX_KEY)]}var h=s.table(d),b=h.schema,k=b.primaryKey,N=b.indexes,X=k.extractKey,U=k.outbound,K=k.autoIncrement&&N.filter(function(z){return z.compound&&z.keyPath.includes(k.keyPath)}),B=o(o({},h),{mutate:function(z){function H(ye){return ye="idb://".concat(a,"/").concat(d,"/").concat(ye),he[ye]||(he[ye]=new Gt)}var W,se,Z,ce=z.trans,he=z.mutatedParts||(z.mutatedParts={}),ge=H(""),Ee=H(":dels"),Ce=z.type,$e=z.type==="deleteRange"?[z.range]:z.type==="delete"?[z.keys]:z.values.length<50?[ei(k,z).filter(function(ye){return ye}),z.values]:[],Fe=$e[0],$e=$e[1],Be=z.trans._cache;return f(Fe)?(ge.addKeys(Fe),(Ce=Ce==="delete"||Fe.length===$e.length?zl(Fe,Be):null)||Ee.addKeys(Fe),(Ce||$e)&&(W=H,se=Ce,Z=$e,b.indexes.forEach(function(ye){var Xe=W(ye.name||"");function Qe(ct){return ct!=null?ye.extractKey(ct):null}function at(ct){ye.multiEntry&&f(ct)?ct.forEach(function(ln){return Xe.addKey(ln)}):Xe.addKey(ct)}(se||Z).forEach(function(ct,Yt){var ot=se&&Qe(se[Yt]),Yt=Z&&Qe(Z[Yt]);dt(ot,Yt)!==0&&(ot!=null&&at(ot),Yt!=null)&&at(Yt)})}))):Fe?($e={from:(Be=Fe.lower)!=null?Be:s.MIN_KEY,to:(Ce=Fe.upper)!=null?Ce:s.MAX_KEY},Ee.add($e),ge.add($e)):(ge.add(c),Ee.add(c),b.indexes.forEach(function(ye){return H(ye.name).add(c)})),h.mutate(z).then(function(ye){return!Fe||z.type!=="add"&&z.type!=="put"||(ge.addKeys(ye.results),K&&K.forEach(function(Xe){for(var Qe=z.values.map(function(ot){return Xe.extractKey(ot)}),at=Xe.keyPath.findIndex(function(ot){return ot===k.keyPath}),ct=0,ln=ye.results.length;ct<ln;++ct)Qe[ct][at]=ye.results[ct];H(Xe.name).addKeys(Qe)})),ce.mutatedParts=br(ce.mutatedParts||{},he),ye})}}),Y={get:function(z){return[k,new Gt(z.key)]},getMany:function(z){return[k,new Gt().addKeys(z.keys)]},count:p,query:p,openCursor:p};return u(Y).forEach(function(z){B[z]=function(H){var W=Ne.subscr,se=!!W,Z=Wl(Ne,h)&&Gl(z,H)?H.obsSet={}:W;if(se){var ce,W=function($e){return $e="idb://".concat(a,"/").concat(d,"/").concat($e),Z[$e]||(Z[$e]=new Gt)},he=W(""),ge=W(":dels"),se=Y[z](H),Ee=se[0],se=se[1];if((z==="query"&&Ee.isPrimaryKey&&!H.values?ge:W(Ee.name||"")).add(se),!Ee.isPrimaryKey){if(z!=="count")return ce=z==="query"&&U&&H.values&&h.query(o(o({},H),{values:!1})),h[z].apply(this,arguments).then(function($e){if(z==="query"){if(U&&H.values)return ce.then(function(Qe){return Qe=Qe.result,he.addKeys(Qe),$e});var Be=H.values?$e.result.map(X):$e.result;(H.values?he:ge).addKeys(Be)}else{var ye,Xe;if(z==="openCursor")return Xe=H.values,(ye=$e)&&Object.create(ye,{key:{get:function(){return ge.addKey(ye.primaryKey),ye.key}},primaryKey:{get:function(){var Qe=ye.primaryKey;return ge.addKey(Qe),Qe}},value:{get:function(){return Xe&&he.addKey(ye.primaryKey),ye.value}}})}return $e});ge.add(c)}}return h[z].apply(this,arguments)}}),B}})}};function Yl(s,a,c){var d;return c.numFailures===0?a:a.type==="deleteRange"||(d=a.keys?a.keys.length:"values"in a&&a.values?a.values.length:1,c.numFailures===d)?null:(d=o({},a),f(d.keys)&&(d.keys=d.keys.filter(function(p,h){return!(h in c.failures)})),"values"in d&&f(d.values)&&(d.values=d.values.filter(function(p,h){return!(h in c.failures)})),d)}function ti(s,a){return c=s,((d=a).lower===void 0||(d.lowerOpen?0<dt(c,d.lower):0<=dt(c,d.lower)))&&(c=s,(d=a).upper===void 0||(d.upperOpen?dt(c,d.upper)<0:dt(c,d.upper)<=0));var c,d}function Jl(s,a,c,d,p,h){var b,k,N,X,U,K,B;return!c||c.length===0||(b=a.query.index,k=b.multiEntry,N=a.query.range,X=d.schema.primaryKey.extractKey,U=b.extractKey,K=(b.lowLevelIndex||b).extractKey,(d=c.reduce(function(Y,z){var H=Y,W=[];if(z.type==="add"||z.type==="put")for(var se=new Gt,Z=z.values.length-1;0<=Z;--Z){var ce,he=z.values[Z],ge=X(he);!se.hasKey(ge)&&(ce=U(he),k&&f(ce)?ce.some(function(Be){return ti(Be,N)}):ti(ce,N))&&(se.addKey(ge),W.push(he))}switch(z.type){case"add":var Ee=new Gt().addKeys(a.values?Y.map(function(ye){return X(ye)}):Y),H=Y.concat(a.values?W.filter(function(ye){return ye=X(ye),!Ee.hasKey(ye)&&(Ee.addKey(ye),!0)}):W.map(function(ye){return X(ye)}).filter(function(ye){return!Ee.hasKey(ye)&&(Ee.addKey(ye),!0)}));break;case"put":var Ce=new Gt().addKeys(z.values.map(function(ye){return X(ye)}));H=Y.filter(function(ye){return!Ce.hasKey(a.values?X(ye):ye)}).concat(a.values?W:W.map(function(ye){return X(ye)}));break;case"delete":var Fe=new Gt().addKeys(z.keys);H=Y.filter(function(ye){return!Fe.hasKey(a.values?X(ye):ye)});break;case"deleteRange":var $e=z.range;H=Y.filter(function(ye){return!ti(X(ye),$e)})}return H},s))===s)?s:(B=function(Y,z){return dt(K(Y),K(z))||dt(X(Y),X(z))},d.sort(a.direction==="prev"||a.direction==="prevunique"?function(Y,z){return B(z,Y)}:B),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)),h?Object.freeze(d):d)}function Xl(s,a){return dt(s.lower,a.lower)===0&&dt(s.upper,a.upper)===0&&!!s.lowerOpen==!!a.lowerOpen&&!!s.upperOpen==!!a.upperOpen}function vf(s,a){return((c,d,p,h)=>{if(c===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((c=dt(c,d))===0){if(p&&h)return 0;if(p)return 1;if(h)return-1}return c})(s.lower,a.lower,s.lowerOpen,a.lowerOpen)<=0&&0<=((c,d,p,h)=>{if(c===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((c=dt(c,d))===0){if(p&&h)return 0;if(p)return-1;if(h)return 1}return c})(s.upper,a.upper,s.upperOpen,a.upperOpen)}function mf(s,a,c,d){s.subscribers.add(c),d.addEventListener("abort",function(){var p,h;s.subscribers.delete(c),s.subscribers.size===0&&(p=s,h=a,setTimeout(function(){p.subscribers.size===0&&Ue(h,p)},3e3))})}var hf={stack:"dbcore",level:0,name:"Cache",create:function(s){var a=s.schema.name;return o(o({},s),{transaction:function(c,d,p){var h,b,k=s.transaction(c,d,p);return d==="readwrite"&&(p=(h=new AbortController).signal,k.addEventListener("abort",(b=function(N){return function(){if(h.abort(),d==="readwrite"){for(var X=new Set,U=0,K=c;U<K.length;U++){var B=K[U],Y=_s["idb://".concat(a,"/").concat(B)];if(Y){var z=s.table(B),H=Y.optimisticOps.filter(function(ye){return ye.trans===k});if(k._explicit&&N&&k.mutatedParts)for(var W=0,se=Object.values(Y.queries.query);W<se.length;W++)for(var Z=0,ce=(Ee=se[W]).slice();Z<ce.length;Z++)Ga((Ce=ce[Z]).obsSet,k.mutatedParts)&&(Ue(Ee,Ce),Ce.subscribers.forEach(function(ye){return X.add(ye)}));else if(0<H.length){Y.optimisticOps=Y.optimisticOps.filter(function(ye){return ye.trans!==k});for(var he=0,ge=Object.values(Y.queries.query);he<ge.length;he++)for(var Ee,Ce,Fe,$e=0,Be=(Ee=ge[he]).slice();$e<Be.length;$e++)(Ce=Be[$e]).res!=null&&k.mutatedParts&&(N&&!Ce.dirty?(Fe=Object.isFrozen(Ce.res),Fe=Jl(Ce.res,Ce.req,H,z,Ce,Fe),Ce.dirty?(Ue(Ee,Ce),Ce.subscribers.forEach(function(ye){return X.add(ye)})):Fe!==Ce.res&&(Ce.res=Fe,Ce.promise=De.resolve({result:Fe}))):(Ce.dirty&&Ue(Ee,Ce),Ce.subscribers.forEach(function(ye){return X.add(ye)})))}}}X.forEach(function(ye){return ye()})}}})(!1),{signal:p}),k.addEventListener("error",b(!1),{signal:p}),k.addEventListener("complete",b(!0),{signal:p})),k},table:function(c){var d=s.table(c),p=d.schema.primaryKey;return o(o({},d),{mutate:function(h){var b,k=Ne.trans;return!p.outbound&&k.db._options.cache!=="disabled"&&!k.explicit&&k.idbtrans.mode==="readwrite"&&(b=_s["idb://".concat(a,"/").concat(c)])?(k=d.mutate(h),h.type!=="add"&&h.type!=="put"||!(50<=h.values.length||ei(p,h).some(function(N){return N==null}))?(b.optimisticOps.push(h),h.mutatedParts&&wr(h.mutatedParts),k.then(function(N){0<N.numFailures&&(Ue(b.optimisticOps,h),(N=Yl(0,h,N))&&b.optimisticOps.push(N),h.mutatedParts)&&wr(h.mutatedParts)}),k.catch(function(){Ue(b.optimisticOps,h),h.mutatedParts&&wr(h.mutatedParts)})):k.then(function(N){var X=Yl(0,o(o({},h),{values:h.values.map(function(U,K){var B;return N.failures[K]?U:(q(B=(B=p.keyPath)!=null&&B.includes(".")?Ie(U):o({},U),p.keyPath,N.results[K]),B)})}),N);b.optimisticOps.push(X),queueMicrotask(function(){return h.mutatedParts&&wr(h.mutatedParts)})}),k):d.mutate(h)},query:function(h){var b,k,N,X,U,K,B;return Wl(Ne,d)&&Gl("query",h)?(b=((N=Ne.trans)==null?void 0:N.db._options.cache)==="immutable",k=(N=Ne).requery,N=N.signal,K=((Y,z,H,W)=>{var se=_s["idb://".concat(Y,"/").concat(z)];if(!se)return[];if(!(Y=se.queries[H]))return[null,!1,se,null];var Z=Y[(W.query?W.query.index.name:null)||""];if(!Z)return[null,!1,se,null];switch(H){case"query":var ce=(he=W.direction)!=null?he:"next",he=Z.find(function(ge){var Ee;return ge.req.limit===W.limit&&ge.req.values===W.values&&((Ee=ge.req.direction)!=null?Ee:"next")===ce&&Xl(ge.req.query.range,W.query.range)});return he?[he,!0,se,Z]:[Z.find(function(ge){var Ee;return("limit"in ge.req?ge.req.limit:1/0)>=W.limit&&((Ee=ge.req.direction)!=null?Ee:"next")===ce&&(!W.values||ge.req.values)&&vf(ge.req.query.range,W.query.range)}),!1,se,Z];case"count":return he=Z.find(function(ge){return Xl(ge.req.query.range,W.query.range)}),[he,!!he,se,Z]}})(a,c,"query",h),B=K[0],X=K[2],U=K[3],B&&K[1]?B.obsSet=h.obsSet:(K=d.query(h).then(function(Y){var z=Y.result;if(B&&(B.res=z),b){for(var H=0,W=z.length;H<W;++H)Object.freeze(z[H]);Object.freeze(z)}return Y}).catch(function(Y){return U&&B&&Ue(U,B),Promise.reject(Y)}),B={obsSet:h.obsSet,promise:K,subscribers:new Set,type:"query",req:h,dirty:!1},U?U.push(B):(U=[B],(X=X||(_s["idb://".concat(a,"/").concat(c)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[h.query.index.name||""]=U)),mf(B,U,k,N),B.promise.then(function(Y){return Y=Jl(Y.result,h,X==null?void 0:X.optimisticOps,d,B,b),{result:b?Y:Ie(Y)}})):d.query(h)}})}})}};function kr(s,a){return new Proxy(s,{get:function(c,d,p){return d==="db"?a:Reflect.get(c,d,p)}})}Dt.prototype.version=function(s){if(isNaN(s)||s<.1)throw new Ke.Type("Given version is not a positive number");if(s=Math.round(10*s)/10,this.idbdb||this._state.isBeingOpened)throw new Ke.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,s);var a=this._versions,c=a.filter(function(d){return d._cfg.version===s})[0];return c||(c=new this.Version(s),a.push(c),a.sort(of),c.stores({}),this._state.autoSchema=!1),c},Dt.prototype._whenReady=function(s){var a=this;return this.idbdb&&(this._state.openComplete||Ne.letThrough||this._vip)?s():new De(function(c,d){if(a._state.openComplete)return d(new Ke.DatabaseClosed(a._state.dbOpenError));if(!a._state.isBeingOpened){if(!a._state.autoOpen)return void d(new Ke.DatabaseClosed);a.open().catch(g)}a._state.dbReadyPromise.then(c,d)}).then(s)},Dt.prototype.use=function(p){var a=p.stack,c=p.create,d=p.level,p=p.name,h=(p&&this.unuse({stack:a,name:p}),this._middlewares[a]||(this._middlewares[a]=[]));return h.push({stack:a,create:c,level:d??10,name:p}),h.sort(function(b,k){return b.level-k.level}),this},Dt.prototype.unuse=function(s){var a=s.stack,c=s.name,d=s.create;return a&&this._middlewares[a]&&(this._middlewares[a]=this._middlewares[a].filter(function(p){return d?p.create!==d:!!c&&p.name!==c})),this},Dt.prototype.open=function(){var s=this;return gs(wt,function(){return uf(s)})},Dt.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 De(function(a){s.dbReadyResolve=a}),s.openCanceller=new De(function(a,c){s.cancelOpen=c}))},Dt.prototype.close=function(a){var a=(a===void 0?{disableAutoOpen:!0}:a).disableAutoOpen,c=this._state;a?(c.isBeingOpened&&c.cancelOpen(new Ke.DatabaseClosed),this._close(),c.autoOpen=!1,c.dbOpenError=new Ke.DatabaseClosed):(this._close(),c.autoOpen=this._options.autoOpen||c.isBeingOpened,c.openComplete=!1,c.dbOpenError=null)},Dt.prototype.delete=function(s){var a=this,c=(s===void 0&&(s={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),d=this._state;return new De(function(p,h){function b(){a.close(s);var k=a._deps.indexedDB.deleteDatabase(a.name);k.onsuccess=Pt(function(){var N,X,U;N=a._deps,X=a.name,Ha(U=N.indexedDB)||X===ar||qa(U,N.IDBKeyRange).delete(X).catch(g),p()}),k.onerror=wn(h),k.onblocked=a._fireOnBlocked}if(c)throw new Ke.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(b):b()})},Dt.prototype.backendDB=function(){return this.idbdb},Dt.prototype.isOpen=function(){return this.idbdb!==null},Dt.prototype.hasBeenClosed=function(){var s=this._state.dbOpenError;return s&&s.name==="DatabaseClosed"},Dt.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Dt.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Dt.prototype,"tables",{get:function(){var s=this;return u(this._allTables).map(function(a){return s._allTables[a]})},enumerable:!1,configurable:!0}),Dt.prototype.transaction=function(){var s=(function(a,c,d){var p=arguments.length;if(p<2)throw new Ke.InvalidArgument("Too few arguments");for(var h=new Array(p-1);--p;)h[p-1]=arguments[p];return d=h.pop(),[a,A(h),d]}).apply(this,arguments);return this._transaction.apply(this,s)},Dt.prototype._transaction=function(s,a,c){var d,p,h=this,b=Ne.trans,k=(b&&b.db===this&&s.indexOf("!")===-1||(b=null),s.indexOf("?")!==-1);s=s.replace("!","").replace("?","");try{if(p=a.map(function(X){if(X=X instanceof h.Table?X.name:X,typeof X!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return X}),s=="r"||s===Ia)d=Ia;else{if(s!="rw"&&s!=ja)throw new Ke.InvalidArgument("Invalid transaction mode: "+s);d=ja}if(b){if(b.mode===Ia&&d===ja){if(!k)throw new Ke.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");b=null}b&&p.forEach(function(X){if(b&&b.storeNames.indexOf(X)===-1){if(!k)throw new Ke.SubTransaction("Table "+X+" not included in parent transaction.");b=null}}),k&&b&&!b.active&&(b=null)}}catch(X){return b?b._promise(null,function(U,K){K(X)}):jt(X)}var N=(function X(U,K,B,Y,z){return De.resolve().then(function(){var Z=Ne.transless||Ne,H=U._createTransaction(K,B,U._dbSchema,Y),Z=(H.explicit=!0,{trans:H,transless:Z});if(Y)H.idbtrans=Y.idbtrans;else try{H.create(),H.idbtrans._explicit=!0,U._state.PR1398_maxLoop=3}catch(ce){return ce.name===kt.InvalidState&&U.isOpen()&&0<--U._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),U.close({disableAutoOpen:!1}),U.open().then(function(){return X(U,K,B,null,z)})):jt(ce)}var W,se=We(z),Z=(se&&Us(),De.follow(function(){var ce;(W=z.call(H,H))&&(se?(ce=Qn.bind(null,null),W.then(ce,ce)):typeof W.next=="function"&&typeof W.throw=="function"&&(W=Qa(W)))},Z));return(W&&typeof W.then=="function"?De.resolve(W).then(function(ce){return H.active?ce:jt(new Ke.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):Z.then(function(){return W})).then(function(ce){return Y&&H._resolve(),H._completion.then(function(){return ce})}).catch(function(ce){return H._reject(ce),jt(ce)})})}).bind(null,this,d,p,b,c);return b?b._promise(d,N,"lock"):Ne.trans?gs(Ne.transless,function(){return h._whenReady(N)}):this._whenReady(N)},Dt.prototype.table=function(s){if(w(this._allTables,s))return this._allTables[s];throw new Ke.InvalidTable("Table ".concat(s," does not exist"))};var Vn=Dt;function Dt(s,a){var c,d,p,h,b,k=this,N=(this._middlewares={},this.verno=0,Dt.dependencies),N=(this._options=a=o({addons:Dt.addons,autoOpen:!0,indexedDB:N.indexedDB,IDBKeyRange:N.IDBKeyRange,cache:"cloned",maxConnections:1e3},a),this._deps={indexedDB:a.indexedDB,IDBKeyRange:a.IDBKeyRange},a.addons),X=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:g,dbReadyPromise:null,cancelOpen:g,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:a.autoOpen}),U=(X.dbReadyPromise=new De(function(K){X.dbReadyResolve=K}),X.openCanceller=new De(function(K,B){X.cancelOpen=B}),this._state=X,this.name=s,this.on=po(this,"populate","blocked","versionchange","close",{ready:[ve,g]}),this.once=function(K,B){var Y=function(){for(var z=[],H=0;H<arguments.length;H++)z[H]=arguments[H];k.on(K).unsubscribe(Y),B.apply(k,z)};return k.on(K,Y)},this.on.ready.subscribe=G(this.on.ready.subscribe,function(K){return function(B,Y){Dt.vip(function(){var z,H=k._state;H.openComplete?(H.dbOpenError||De.resolve().then(B),Y&&K(B)):H.onReadyBeingFired?(H.onReadyBeingFired.push(B),Y&&K(B)):(K(B),z=k,Y||K(function W(){z.on.ready.unsubscribe(B),z.on.ready.unsubscribe(W)}))})}}),this.Collection=(c=this,vo(Xd.prototype,function(W,H){this.db=c;var Y=Sl,z=null;if(H)try{Y=H()}catch(Z){z=Z}var H=W._ctx,W=H.table,se=W.hook.reading.fire;this._ctx={table:W,index:H.index,isPrimKey:!H.index||W.schema.primKey.keyPath&&H.index===W.schema.primKey.name,range:Y,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:z,or:H.or,valueMapper:se!==C?se:null}})),this.Table=(d=this,vo(Ml.prototype,function(K,B,Y){this.db=d,this._tx=Y,this.name=K,this.schema=B,this.hook=d._allTables[K]?d._allTables[K].hook:po(null,{creating:[pe,g],reading:[D,C],updating:[we,g],deleting:[xe,g]})})),this.Transaction=(p=this,vo(ef.prototype,function(K,B,Y,z,H){var W=this;K!=="readonly"&&B.forEach(function(se){se=(se=Y[se])==null?void 0:se.yProps,se&&(B=B.concat(se.map(function(Z){return Z.updatesTable})))}),this.db=p,this.mode=K,this.storeNames=B,this.schema=Y,this.chromeTransactionDurability=z,this.idbtrans=null,this.on=po(this,"complete","error","abort"),this.parent=H||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 De(function(se,Z){W._resolve=se,W._reject=Z}),this._completion.then(function(){W.active=!1,W.on.complete.fire()},function(se){var Z=W.active;return W.active=!1,W.on.error.fire(se),W.parent?W.parent._reject(se):Z&&W.idbtrans&&W.idbtrans.abort(),jt(se)})})),this.Version=(h=this,vo(lf.prototype,function(K){this.db=h,this._cfg={version:K,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(b=this,vo(Rl.prototype,function(K,B,Y){if(this.db=b,this._ctx={table:K,index:B===":id"?null:B,or:Y},this._cmp=this._ascending=dt,this._descending=function(z,H){return dt(H,z)},this._max=function(z,H){return 0<dt(z,H)?z:H},this._min=function(z,H){return dt(z,H)<0?z:H},this._IDBKeyRange=b._deps.IDBKeyRange,!this._IDBKeyRange)throw new Ke.MissingAPI})),this.on("versionchange",function(K){0<K.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(K){!K.newVersion||K.newVersion<K.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(K.oldVersion/10))}),this._maxKey=ho(a.IDBKeyRange),this._createTransaction=function(K,B,Y,z){return new k.Transaction(K,B,Y,k._options.chromeTransactionDurability,z)},this._fireOnBlocked=function(K){k.on("blocked").fire(K),go.toArray().filter(function(B){return B.name===k.name&&B!==k&&!B._state.vcFired}).map(function(B){return B.on("versionchange").fire(K)})},this.use(ff),this.use(hf),this.use(pf),this.use(cf),this.use(df),new Proxy(this,{get:function(K,B,Y){var z;return B==="_vip"||(B==="table"?function(H){return kr(k.table(H),U)}:(z=Reflect.get(K,B,Y))instanceof Ml?kr(z,U):B==="tables"?z.map(function(H){return kr(H,U)}):B==="_createTransaction"?function(){return kr(z.apply(this,arguments),U)}:z)}}));this.vip=U,N.forEach(function(K){return K(k)})}var Cr,Ws=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",yf=(ni.prototype.subscribe=function(s,a,c){return this._subscribe(s&&typeof s!="function"?s:{next:s,error:a,complete:c})},ni.prototype[Ws]=function(){return this},ni);function ni(s){this._subscribe=s}try{Cr={indexedDB:l.indexedDB||l.mozIndexedDB||l.webkitIndexedDB||l.msIndexedDB,IDBKeyRange:l.IDBKeyRange||l.webkitIDBKeyRange}}catch{Cr={indexedDB:null,IDBKeyRange:null}}function Ql(s){var a,c=!1,d=new yf(function(p){var h=We(s),b,k=!1,N={},X={},U={get closed(){return k},unsubscribe:function(){k||(k=!0,b&&b.abort(),K&&ts.storagemutated.unsubscribe(z))}},K=(p.start&&p.start(U),!1),B=function(){return Ma(H)};function Y(){return Ga(X,N)}var z=function(W){br(N,W),Y()&&B()},H=function(){var W,se,Z;!k&&Cr.indexedDB&&(N={},W={},b&&b.abort(),b=new AbortController,Z=(ce=>{var he=Vs();try{h&&Us();var ge=Xn(s,ce);return ge=h?ge.finally(Qn):ge}finally{he&&Bs()}})(se={subscr:W,signal:b.signal,requery:B,querier:s,trans:null}),K||(ts.storagemutated.subscribe(z),K=!0),Promise.resolve(Z).then(function(ce){c=!0,a=ce,k||se.signal.aborted||(Y()||(X=W,Y())?B():(N={},Ma(function(){return!k&&p.next&&p.next(ce)})))},function(ce){c=!1,["DatabaseClosedError","AbortError"].includes(ce==null?void 0:ce.name)||k||Ma(function(){k||p.error&&p.error(ce)})}))};return setTimeout(B,0),U});return d.hasValue=function(){return c},d.getValue=function(){return a},d}var ks=Vn;function si(s){var a=ns;try{ns=!0,ts.storagemutated.fire(s),Xa(s,!0)}finally{ns=a}}T(ks,o(o({},le),{delete:function(s){return new ks(s,{addons:[]}).delete()},exists:function(s){return new ks(s,{addons:[]}).open().then(function(a){return a.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(s){try{return a=ks.dependencies,c=a.indexedDB,a=a.IDBKeyRange,(Ha(c)?Promise.resolve(c.databases()).then(function(d){return d.map(function(p){return p.name}).filter(function(p){return p!==ar})}):qa(c,a).toCollection().primaryKeys()).then(s)}catch{return jt(new Ke.MissingAPI)}var a,c},defineClass:function(){return function(s){v(this,s)}},ignoreTransaction:function(s){return Ne.trans?gs(Ne.transless||wt,s):s()},vip:za,async:function(s){return function(){try{var a=Qa(s.apply(this,arguments));return a&&typeof a.then=="function"?a:De.resolve(a)}catch(c){return jt(c)}}},spawn:function(s,a,c){try{var d=Qa(s.apply(c,a||[]));return d&&typeof d.then=="function"?d:De.resolve(d)}catch(p){return jt(p)}},currentTransaction:{get:function(){return Ne.trans||null}},waitFor:function(s,a){return s=De.resolve(typeof s=="function"?ks.ignoreTransaction(s):s).timeout(a||6e4),Ne.trans?Ne.trans.waitFor(s):s},Promise:De,debug:{get:function(){return Re},set:function(s){V(s)}},derive:J,extend:v,props:T,override:G,Events:po,on:ts,liveQuery:Ql,extendObservabilitySet:br,getByKeyPath:ee,setByKeyPath:q,delByKeyPath:function(s,a){typeof a=="string"?q(s,a,void 0):"length"in a&&[].map.call(a,function(c){q(s,c,void 0)})},shallowClone:oe,deepClone:Ie,getObjectDiff:Za,cmp:dt,asap:M,minKey:-1/0,addons:[],connections:{get:go.toArray},errnames:kt,dependencies:Cr,cache:_s,semVer:"4.4.6",version:"4.4.6".split(".").map(function(s){return parseInt(s)}).reduce(function(s,a,c){return s+a/Math.pow(10,2*c)})})),ks.maxKey=ho(ks.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(ts(fr,function(s){ns||(s=new CustomEvent(Ra,{detail:s}),ns=!0,dispatchEvent(s),ns=!1)}),addEventListener(Ra,function(s){s=s.detail,ns||si(s)}));var Gs,ns=!1,Zl=function(){};return typeof BroadcastChannel<"u"&&((Zl=function(){(Gs=new BroadcastChannel(Ra)).onmessage=function(s){return s.data&&si(s.data)}})(),typeof Gs.unref=="function"&&Gs.unref(),ts(fr,function(s){ns||Gs.postMessage(s)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(s){if(!Vn.disableBfCache&&s.persisted){Re&&console.debug("Dexie: handling persisted pagehide"),Gs!=null&&Gs.close();for(var a=0,c=go.toArray();a<c.length;a++)c[a].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(s){!Vn.disableBfCache&&s.persisted&&(Re&&console.debug("Dexie: handling persisted pageshow"),Zl(),si({all:new Gt(-1/0,[[]])}))})),De.rejectionMapper=function(s,a){return!s||s instanceof Ae||s instanceof TypeError||s instanceof SyntaxError||!s.name||!_[s.name]?s:(a=new _[s.name](a||s.message,s),"stack"in s&&I(a,"stack",{get:function(){return this.inner.stack}}),a)},V(Re),o(Vn,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Vn,Entity:El,PropModification:fo,RangeSet:Gt,add:function(s){return new fo({add:s})},cmp:dt,default:Vn,liveQuery:Ql,mergeRanges:wo,rangesOverlap:Bl,remove:function(s){return new fo({remove:s})},replacePrefix:function(s,a){return new fo({replacePrefix:[s,a]})}}),{default:Vn}),Vn})})(gd);var fm=gd.exports;const Li=dm(fm),Vu=Symbol.for("Dexie"),ea=globalThis[Vu]||(globalThis[Vu]=Li);if(Li.semVer!==ea.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Li.semVer} and ${ea.semVer}`);const{liveQuery:pm,mergeRanges:Y$,rangesOverlap:J$,RangeSet:X$,cmp:Q$,Entity:Z$,PropModification:eS,replacePrefix:tS,add:nS,remove:sS,DexieYProvider:oS}=ea;class vm 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 ie;function mm(e){ie=e}function pl(){ie&&ie.close(),ie=void 0}const hm=6,Bu=["公司","客户现场","出差","居家办公"],ym={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};function qo(e){return ym[e]||e}function Io(e){return e<10?"0"+e:String(e)}function us(e){return e.getFullYear()+"-"+Io(e.getMonth()+1)+"-"+Io(e.getDate())}function ut(){return us(new Date)}function gt(){const e=new Date;return us(e)+"T"+Io(e.getHours())+":"+Io(e.getMinutes())+":"+Io(e.getSeconds())}function Wn(e){if(!e)return"--:--";const t=e.indexOf("T");return t>=0?e.slice(t+1,t+6):e.slice(0,5)}function Gn(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}function Ft(e,t){const n=Gn(e);return n.setDate(n.getDate()+t),us(n)}function Ho(e,t){const n=Gn(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)),us(n)}function Zs(e){const t=Gn(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),us(t)}function gm(e){const t=Gn(e).getDay();return t===0||t===6}function bm(e,t){return Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)}function bd(e){const t=Gn(e),n=["周日","周一","周二","周三","周四","周五","周六"];return t.getFullYear()+" 年 "+(t.getMonth()+1)+" 月 "+t.getDate()+" 日 "+n[t.getDay()]}const wm=15e4;function Ri(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 _m(){return Ri(crypto.getRandomValues(new Uint8Array(16)).buffer)}async function ta(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:wm,hash:"SHA-256"},o,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function na(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 Ri(n.buffer)+":"+Ri(o)}async function xa(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 vl(){await Pd()}const wd="intern-log-vault-verify",ro="enc:v1:";let Rs=null;function km(){return Rs!==null}function sa(){Rs=null}async function _d(){return await Tt("pwd_salt","")!==""}async function Cm(e){if(e.length<6)throw new Error("主密码至少 6 位");if(await _d())throw new Error("主密码已设置");const t=_m(),n=await ta(e,t),o=await na(n,wd);await Nt("pwd_salt",t),await Nt("pwd_verifier",o),Rs=n}async function xm(e){const t=await Tt("pwd_salt","");if(!t)throw new Error("主密码尚未设置");const n=await ta(e,t),o=await Tt("pwd_verifier","");try{await xa(n,o)}catch{throw new Error("主密码不正确")}Rs=n}async function kd(){if(!Rs)throw new Error("密码库未解锁");return Rs}async function $m(e){const t=await kd();return ro+await na(t,e)}async function Sm(e){if(!e)return"";if(!e.startsWith(ro))return e;const t=await kd();return xa(t,e.slice(ro.length))}async function Em(){return ie.credential.orderBy("system").toArray()}async function Am(e,t){const n=await $m(e.password),o={system:e.system.trim(),account:e.account.trim(),password:n,remark:e.remark.trim()};t?await ie.credential.update(t,{...o,updated_at:gt()}):await ie.credential.add({...o,created_at:gt(),updated_at:gt()}),await vl()}async function Tm(e){await ie.credential.delete(e),await vl()}async function gi(e){const t=await ie.credential.get(e);if(!t)throw new Error("记录不存在");return Sm(t.password)}async function Pm(e,t){if(!e)throw new Error("请输入旧主密码");if(t.length<6)throw new Error("新主密码至少 6 位");if(t===e)throw new Error("新主密码不能与旧主密码相同");const n=await Tt("pwd_salt","");if(!n)throw new Error("密码库尚未初始化");const o=await ta(e,n),r=await Tt("pwd_verifier","");try{await xa(o,r)}catch{throw new Error("旧主密码不正确")}const l=await ta(t,n),u=await ie.credential.toArray();let f=0;for(const v of u){if(v.id==null)continue;const y=await Om(v.password,o),m=ro+await na(l,y);await ie.credential.update(v.id,{password:m}),f++}return await Nt("pwd_verifier",await na(l,wd)),Rs=l,await vl(),f}async function Om(e,t){return e?e.startsWith(ro)?xa(t,e.slice(ro.length)):e:""}const Mm="https://daywk.linyux.cn",Im="dsh_sync_base",Ni="dsh_sync_token";function Cd(e){try{return localStorage.getItem(e)||""}catch{return""}}function jm(e,t){try{localStorage.setItem(e,t)}catch{}}function Dm(e){try{localStorage.removeItem(e)}catch{}}async function Ns(){return Cd(Im)||Mm}function $a(){const e=Cd(Ni);if(!e)return"";try{return e}catch{return""}}function zo(e){e?jm(Ni,e):Dm(Ni)}const Lm="intern_worklog",ml="dsh_session_user";function eo(){try{const e=localStorage.getItem(ml);if(!e)return null;const t=JSON.parse(e);if(t&&t.userId&&t.username)return t}catch{}return null}function Rm(e){localStorage.setItem(ml,JSON.stringify(e))}function xd(){localStorage.removeItem(ml)}const hl="dsh_cloud_creds";function $d(e,t){localStorage.setItem(hl,JSON.stringify({username:e,password:t}))}function hn(){try{const e=localStorage.getItem(hl);if(!e)return null;const t=JSON.parse(e);if(t&&t.username&&t.password)return t}catch{}return null}function Km(){localStorage.removeItem(hl)}let oa=null;function ra(e){oa===e&&ie||(ie&&pl(),mm(new vm(Lm+"_"+e)),oa=e)}async function Nm(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 l=await r.json().catch(()=>({}));if(!r.ok){const u=l&&l.error||"服务返回 "+r.status;throw e==="register"&&r.status===409?new Error("云端已有同名账号且密码一致,直接登录即可"):new Error(String(u))}if(!l.userId||!l.username)throw new Error("登录响应异常");return{userId:String(l.userId),username:String(l.username)}}async function yl(e,t,n){const o=await Nm(n,e,t);ra(o.userId);const r={userId:o.userId,username:o.username};return Rm(r),$d(o.username,t),r}async function Fm(e,t){const n=(e||"").trim();if(!n||!t)throw new Error("请输入用户名与密码");return yl(n,t,"login")}async function Vm(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 yl(o,t,"register")}async function Bm(){const e=hn();if(!e)return null;try{return await yl(e.username,e.password,"login")}catch{return null}}async function Um(){sa(),pl(),oa=null,xd()}function qm(){sa(),pl(),oa=null,xd(),Km()}async function Hm(e,t){if(!eo())throw new Error("未登录");if(t.length<6)throw new Error("新密码至少 6 位");const o=hn();if(!o||o.password!==e)throw new Error("旧密码不正确");const r=await Ns();let l;try{l=await fetch(r+"/api/auth/password",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Sd()},body:JSON.stringify({oldPassword:e,newPassword:t})})}catch{throw new Error("无法连接同步服务器")}if(!l.ok){const u=await l.json().catch(()=>({}));throw new Error(u&&u.error||"修改失败 "+l.status)}$d(o.username,t)}async function zm(){if(!eo())throw new Error("未登录");const t=await Ns();let n;try{n=await fetch(t+"/api/auth/delete",{method:"POST",headers:{Authorization:"Bearer "+Sd()}})}catch{throw new Error("无法连接同步服务器")}if(!n.ok){const o=await n.json().catch(()=>({}));throw new Error(o&&o.error||"删除失败 "+n.status)}qm()}function Sd(){return $a()}const Fi=P(null),Vi=P(null),Jo=P(0);function As(){Jo.value++}const Ed=P(0);function Wm(){Ed.value++}const to=P(""),ao=["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 Gm(e){return ie.table(e).toArray()}function Rr(e,t){return e==="setting"?t.key:t.id}async function Ym(){for(const e of ao){const t=ie.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=Jm()),!o.updated_at&&o.created_at&&(r.updated_at=o.created_at),Object.keys(r).length&&await t.update(Rr(e,o),r)}}}function Jm(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"u"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}async function Xm(){return hn()!=null}async function Qm(){try{return localStorage.getItem("dsh_last_sync")||""}catch{return""}}async function Zm(e){try{localStorage.setItem("dsh_last_sync",e)}catch{}}async function Ad(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 eh(e,t){let n=$a();return n||(n=await Ad(e,t),zo(n),n)}async function Td(){const e=hn();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 Bi(){const e=hn();if(!e)throw new Error("未登录,无法同步");return Id({baseUrl:await Ns(),username:e.username,password:e.password})}async function Pd(){try{await Bi()}catch(e){to.value=e instanceof Error?e.message:String(e);try{await Bi()}catch{}}}function Od(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 l=t.project_id?n.project.get(t.project_id):null;l&&l.uuid&&(o.puuid=l.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 Md(){const e=await ie.work_log.toArray(),t=await ie.project.toArray(),n=await ie.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,Kr=!1,Ui=!1,no=null,Pn=null,qi="",Hi=!1,Nr=null;async function so(){if(jo){Kr=!0;return}try{if(!await Xm())return;await Id(await th()),to.value=""}catch(e){to.value=e instanceof Error?e.message:String(e)}}async function th(){const e=hn();if(!e)throw new Error("未登录,无法同步");return{baseUrl:await Ns(),username:e.username,password:e.password}}function nh(){if(Hi)return;Hi=!0,Nr=pm(async()=>{const t={};for(const n of ao)t[n]=await ie.table(n).count();return t}).subscribe({next:()=>{Ui||jo||(no&&globalThis.clearTimeout(no),no=globalThis.setTimeout(()=>{so()},3e3))},error:()=>{}})}function sh(){Nr&&(Nr.unsubscribe(),Nr=null),Pn&&(Pn.close(),Pn=null,qi=""),no&&(globalThis.clearTimeout(no),no=null),Hi=!1}function oh(e,t){const n=e+"|"+t;if(!(Pn&&qi===n)){Pn&&(Pn.close(),Pn=null);try{Pn=new EventSource(e+"/api/events?token="+encodeURIComponent(t)),qi=n,Pn.onmessage=()=>{so()}}catch{Pn=null}}}async function Id(e){if(jo)return Kr=!0,{pushed:0,pulled:0,removed:0,errors:0,at:""};jo=!0,Ui=!0;try{const t=await zi(e);return Kr&&(Kr=!1,globalThis.setTimeout(()=>{so()},800)),t}finally{jo=!1,Ui=!1}}async function zi(e,t=!1){var ee;const n=e.baseUrl.trim().replace(/\/+$/,"");if(!n)throw new Error("请先配置同步服务地址");await Ym();const o=await Md(),r=await ie.sync_mirror.toArray(),l=new Map;for(const q of r)l.set(q.table+"|"+q.uuid,q);const u={},f=[];let v=0;for(const q of ao){let oe=await Gm(q);q==="setting"&&(oe=oe.filter(A=>!Xs.has(A.key)));const j=new Map;for(const A of oe)j.set(A.uuid,A);for(const[A,O]of j){const ne=Od(q,O,o),Ie=Lr(ne),Se=l.get(q+"|"+A);(!Se||Se.hash!==Ie)&&(u[q]=u[q]||[],u[q].push(ne),v++)}for(const[A,O]of l)A.startsWith(q+"|")&&!j.has(O.uuid)&&f.push({table:q,uuid:O.uuid,deleted_at:gt()});u[q]=u[q]||[]}f.push(...uh());const y=await eh(n,e),m=q=>fetch(n+"/api/sync",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+q},body:JSON.stringify({device:"client",tables:u,tombstones:f})});let w=await m(y);if(w.status===401){zo("");const q=await Ad(n,e);zo(q),w=await m(q)}if(!w.ok)throw new Error("同步服务返回 "+w.status);const T=await w.json(),$=String(T.dataEpoch||""),I="dsh_sync_epoch_"+(((ee=hn())==null?void 0:ee.username)||"anon"),J=$?localStorage.getItem(I):null;if(!t&&J&&$&&J!==$)return await ie.sync_mirror.clear(),localStorage.setItem(I,$),zi(e,!0);const ae=T.tables||{},de=T.tombstones||[],ue=ao.reduce((q,oe)=>q+(ae[oe]||[]).length,0),G=r.length-f.length;if(!t&&ue<G)return await ie.sync_mirror.clear(),zi(e,!0);const S=await ih(ae,de);oh(n,$a()||y);const M=gt();return await Zm(M),$&&localStorage.setItem(I,$),(S.changed>0||S.removed>0||v>0)&&As(),{pushed:v,pulled:S.changed,removed:S.removed,errors:0,at:M}}function jd(){var t;return"dsh_idmap_"+(((t=hn())==null?void 0:t.username)||"anon")}function rh(){try{const e=localStorage.getItem(jd());if(e)return JSON.parse(e)}catch{}return{}}function ah(e){try{localStorage.setItem(jd(),JSON.stringify(e))}catch{}}async function ih(e,t){const n=rh(),o=new Set(t.map($=>$.table+"|"+$.uuid)),r=new Map;for(const $ of await ie.sync_mirror.toArray())r.set($.table+"|"+$.uuid,$);const l=new Set(Array.from(r.keys()).map($=>$.split("|")[1]));let u=0,f=0;const v={},y={},m={};for(const $ of ao){const I=ie.table($),J=await I.toArray(),ae=new Map(J.map(A=>[Rr($,A),A])),de=new Map(J.filter(A=>A.uuid).map(A=>[A.uuid,A])),ue=(e[$]||[]).filter(A=>A&&typeof A=="object"&&A.uuid).filter(A=>!o.has($+"|"+A.uuid)),G=ue.filter(A=>!($==="setting"&&Xs.has(A.key))),S=ue.filter(A=>$==="setting"&&Xs.has(A.key));for(const A of S)lh($,A.uuid);const M=$==="setting"?[]:J.filter(A=>A.uuid&&!l.has(A.uuid)&&!o.has($+"|"+A.uuid)),ee={v:Math.max(0,...J.map(A=>Number(A.id)||0))};G.length;const q=[];for(const A of G){const O={...A};if($==="log_item"){const Se=O.wuuid?v[O.wuuid]:void 0;if(!Se)continue;O.work_log_id=Se,delete O.wuuid,O.project_id=O.puuid?y[O.puuid]??null:null,delete O.puuid}if($==="plan")if(O.guuid){const Se=m[O.guuid];O.goal_id=Se??null,delete O.guuid}else O.goal_id=null;let ne=Rr($,A);if($==="setting")ne=A.key;else{const Se=n[$]&&n[$][A.uuid],_e=de.get(A.uuid);_e&&_e.id!=null?ne=_e.id:typeof Se=="number"?ne=Se:ne=++ee.v}const Ie={...O,id:ne};$==="setting"&&Xs.has(Ie.key)||(q.push(Ie),$==="work_log"&&(v[A.uuid]=ne),$==="project"&&(y[A.uuid]=ne),$==="goal"&&(m[A.uuid]=ne))}const oe=q.concat(M);for(const A of oe){const O=ae.get(Rr($,A));(!O||Lr(O)!==Lr(A))&&u++}f+=J.filter(A=>A.uuid&&!q.some(O=>O.uuid===A.uuid)&&!o.has($+"|"+A.uuid)).length,await I.clear(),oe.length&&await I.bulkPut(oe);const j={};for(const A of oe)A.uuid&&(j[A.uuid]=A.id);n[$]=j}ah(n);const w=await Md(),T=[];for(const $ of ao){const I=await ie.table($).toArray();for(const J of I)$==="setting"&&Xs.has(J.key)||J.uuid&&T.push({table:$,uuid:J.uuid,hash:Lr(Od($,J,w))})}return await ie.sync_mirror.clear(),T.length&&await ie.sync_mirror.bulkAdd(T.map($=>({...$}))),await ie.tombstone.clear(),{changed:u,removed:f+aa.length}}const aa=[];function lh(e,t){aa.some(n=>n.table===e&&n.uuid===t)||aa.push({table:e,uuid:t,deleted_at:gt()})}function uh(){return aa.splice(0)}const ch=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);async function ht(){await Pd()}async function Tt(e,t){const n=await ie.setting.get(e);return n?n.value:t}async function Nt(e,t){await ie.setting.put({key:e,value:t}),ch.has(e)||await ht()}async function ms(){const e=await Promise.all([Tt("work_start","09:00"),Tt("work_end","18:00"),Tt("grace_minutes","10"),Tt("lunch_minutes","60"),Tt("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 dh(){return Tt("last_location","")}async function fh(e,t){const n=t.trim();await Nt("last_location",n),n&&await ia(n);let o=!1;const r=await Fs(e);r&&r.id?(r.location||"")!==n&&(await ie.attendance.update(r.id,{location:n||null}),o=!0):n&&(await ie.attendance.add({date:e,clock_in_at:null,clock_out_at:null,kind:"normal",note:null,location:n,created_at:gt()}),o=!0),o&&await ht()}async function gl(){const e=await Tt("location_presets","");if(!e)return Bu.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 Bu.slice()}async function Dd(e){const t=Array.from(new Set(e.map(n=>n.trim()).filter(Boolean)));await Nt("location_presets",JSON.stringify(t))}async function ia(e){const t=e.trim();if(!t)return;const n=await gl();n.includes(t)||await Dd([...n,t])}async function io(e=!1){const t=await ie.project.orderBy("name").toArray();return e?t:t.filter(n=>n.archived!==1)}async function ph(e){await ie.project.add({name:e.trim(),archived:0,created_at:gt()}),await ht()}async function vh(e,t){await ie.project.update(e,{name:t.trim()}),await ht()}async function mh(e,t){await ie.project.update(e,{archived:t?1:0}),await ht()}async function Fs(e){return ie.attendance.where("date").equals(e).first()}async function hh(e,t){const n=((t===void 0?await Tt("last_location",""):t)||"").trim();let o=!1;const r=await Fs(e);if(r&&r.id){if(!r.clock_in_at){const l={clock_in_at:gt()};n&&(l.location=n),await ie.attendance.update(r.id,l),o=!0}n&&(await Tt("last_location","")!==n&&await Nt("last_location",n),await ia(n)),o&&await ht();return}await ie.attendance.add({date:e,clock_in_at:gt(),clock_out_at:null,kind:"normal",note:null,location:n||null,created_at:gt()}),n&&(await Nt("last_location",n),await ia(n)),await ht()}async function yh(e){const t=await Fs(e);t&&t.id&&t.clock_in_at&&!t.clock_out_at&&(await ie.attendance.update(t.id,{clock_out_at:gt()}),await ht())}async function gh(e,t,n,o,r){(r||"").trim()&&await ia(r);const l=await Fs(e),u={date:e,clock_in_at:t,clock_out_at:n,kind:"makeup",note:o||null,location:(r||"").trim()||null,created_at:gt()};l&&l.id?await ie.attendance.update(l.id,u):await ie.attendance.add(u),await ht()}async function bh(e,t,n){const o=(n||"").trim();if(!o)return;const r=await Fs(e);r&&r.id&&(await ie.attendance.update(r.id,{[t]:e+"T"+o+":00"}),await ht())}async function Xo(e,t){return ie.attendance.where("date").between(e,t,!0,!0).toArray()}async function wh(e,t){const n=await Fs(e);if(t){const o={date:e,kind:"leave",clock_in_at:null,clock_out_at:null,created_at:gt()};n&&n.id?await ie.attendance.update(n.id,o):await ie.attendance.add({...o,note:null,location:null})}else n&&n.id&&await ie.attendance.update(n.id,{kind:"normal"});await ht()}async function _h(e){const t=await ie.work_log.where("date").equals(e).first();return t||{id:await ie.work_log.add({date:e,created_at:gt()}),date:e,created_at:gt()}}async function kh(e){return ie.work_log.where("date").equals(e).first()}async function Ch(e){const t=await kh(e);return!t||!t.id?[]:(await ie.log_item.where("work_log_id").equals(t.id).toArray()).sort((o,r)=>r.id-o.id)}async function xh(e,t){const n=await ie.work_log.where("date").equals(e).first();let o;n&&n.id?o=n:o=await _h(e),await ie.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:gt()});const r=t.project_id?String(t.project_id):"";await Tt("last_project","")!==r&&await Nt("last_project",r),await Tt("last_category","")!==t.category&&await Nt("last_category",t.category),await ht()}async function bi(e,t){await ie.table("log_item").update(e,t),await ht()}async function $h(e){await ie.table("log_item").delete(e),await ht()}async function Qo(e,t){const n=await ie.work_log.where("date").between(e,t,!0,!0).toArray();if(!n.length)return[];const o=new Map(n.map(l=>[l.id,l.date]));return(await ie.table("log_item").where("work_log_id").anyOf(n.map(l=>l.id)).toArray()).map(l=>({...l,date:o.get(l.work_log_id)||""})).sort((l,u)=>l.date===u.date?l.id-u.id:l.date<u.date?-1:1)}async function bl(e){return ie.weekly_note.where("week_start").equals(e).first()}async function Sh(e,t){const n=await bl(e);n&&n.id?await ie.weekly_note.update(n.id,t):await ie.weekly_note.add({week_start:e,highlights:t.highlights??null,challenges:t.challenges??null,plan_next:t.plan_next??null,created_at:gt()}),await ht()}async function Eh(e,t){return ie.weekly_note.where("week_start").between(e,t,!0,!0).toArray()}async function Ah(e){return(await ie.plan.where("date").equals(e).toArray()).sort((n,o)=>n.start_time<o.start_time?-1:1)}async function Th(){const e=await ie.plan.filter(t=>!!t.timer_started_at).toArray();return e.length?e[0]:null}async function Ph(e){const t=gt();await ie.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 ht()}async function Oh(e,t){await ie.plan.update(e,{...t,updated_at:gt()}),await ht()}async function Mh(e){await ie.plan.delete(e),await ht()}async function Ih(e,t){const n=await ie.plan.get(e);n&&(t!=="todo"&&n.timer_started_at&&await Sa(e),await ie.plan.update(e,{status:t,updated_at:gt()}),await ht())}async function jh(e){const t=await ie.plan.filter(n=>!!n.timer_started_at).toArray();for(const n of t)n.id!==e&&await Sa(n.id);await ie.plan.update(e,{timer_started_at:gt(),updated_at:gt()}),await ht()}async function Sa(e){const t=await ie.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 ie.plan.update(e,{actual_minutes:(t.actual_minutes||0)+n,timer_started_at:null,updated_at:gt()}),await ht()}const Dh=366;function Lh(e,t){const n=[];let o=e,r=0;for(;o<=t&&r<Dh;)n.push(o),o=Ft(o,1),r++;return n}async function Rh(){const e=await ie.goal.toArray(),t=[];for(const n of e){const o=await ie.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 Kh(){return(await ie.goal.toArray()).sort((t,n)=>t.start_date<n.start_date?-1:1)}async function Nh(e){const t=gt(),n=await ie.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 ie.goal.get(n);const o=Lh(e.start_date,e.end_date);for(const r of o)await ie.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 ht()}async function Fh(e,t){if(!await ie.goal.get(e))return;const o={...t,updated_at:gt()};await ie.goal.update(e,o);const r=await ie.plan.where("goal_id").equals(e).toArray();for(const l of r)l.status!=="done"&&await ie.plan.update(l.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:gt()});await ht()}async function Vh(e){const t=await ie.plan.where("goal_id").equals(e).toArray();for(const n of t)await ie.plan.delete(n.id);await ie.goal.delete(e),await ht()}async function Bh(){return(await ie.memo.toArray()).sort((t,n)=>t.updated_at<n.updated_at?1:-1)}async function Uh(e,t){const n=gt(),o=await ie.memo.add({title:e.trim(),content:t,created_at:n,updated_at:n});return await ht(),{id:o,title:e.trim(),content:t,created_at:n,updated_at:n}}async function qh(e,t,n){await ie.memo.update(e,{title:t.trim(),content:n,updated_at:gt()}),await ht()}async function Hh(e){await ie.memo.delete(e),await ht()}async function zh(e,t=8){const n=e.trim().toLowerCase();if(!n)return[];const o=await ie.work_log.toArray(),r=new Map(o.map(u=>[u.id,u.date]));return(await ie.table("log_item").toArray()).filter(u=>((u.content||"")+" "+(u.takeaway||"")+" "+(u.remark||"")).toLowerCase().includes(n)).sort((u,f)=>f.id-u.id).slice(0,t).map(u=>({...u,date:r.get(u.work_log_id)||""}))}async function Wh(e,t=4){const n=e.trim().toLowerCase();return n?(await ie.memo.toArray()).filter(r=>((r.title||"")+" "+(r.content||"")).toLowerCase().includes(n)).sort((r,l)=>r.updated_at<l.updated_at?1:-1).slice(0,t):[]}async function Gh(e,t){return ie.table("transaction").where("date").between(e,t,!0,!0).toArray()}async function Yh(e){await ie.table("transaction").add({...e,created_at:gt()}),await ht()}async function Jh(e,t){await ie.table("transaction").update(e,{...t}),await ht()}async function Xh(e){await ie.table("transaction").delete(e),await ht()}async function Qh(e,t){await ie.table("transaction").update(e,{reimbursed:1}),await ht()}async function Zh(){const e=await ie.table("transaction").toArray(),t=new Set;for(const n of e)n&&n.date&&t.add(n.date.slice(0,7));return Array.from(t).sort((n,o)=>n<o?1:-1)}async function Uu(e){return ie.table("transaction").where("date").below(e).count()}async function ey(){const e=await Promise.all([ie.project.toArray(),ie.work_log.toArray(),ie.table("log_item").toArray(),ie.attendance.toArray(),ie.weekly_note.toArray(),ie.setting.toArray(),ie.memo.toArray(),ie.credential.toArray(),ie.table("transaction").toArray(),ie.plan.toArray(),ie.goal.toArray()]);return JSON.stringify({schema_version:hm,exported_at:gt(),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 ty(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=ie.table("log_item"),r=ie.table("transaction"),l=ie.plan,u=ie.goal;await ie.transaction("rw",[ie.project,ie.work_log,o,ie.attendance,ie.weekly_note,ie.setting,ie.memo,ie.credential,r,u,l],async()=>{await Promise.all([ie.project.clear(),ie.work_log.clear(),o.clear(),ie.attendance.clear(),ie.weekly_note.clear(),ie.setting.clear(),ie.memo.clear(),ie.credential.clear(),r.clear(),u.clear(),l.clear()]),n.project&&n.project.length&&await ie.project.bulkAdd(n.project),n.work_log&&n.work_log.length&&await ie.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 ie.attendance.bulkAdd(n.attendance),n.weekly_note&&n.weekly_note.length&&await ie.weekly_note.bulkAdd(n.weekly_note),n.setting&&n.setting.length&&await ie.setting.bulkAdd(n.setting),n.memo&&n.memo.length&&await ie.memo.bulkAdd(n.memo),n.credential&&n.credential.length&&await ie.credential.bulkAdd(n.credential),n.transaction&&n.transaction.length&&await r.bulkAdd(n.transaction),n.goal&&n.goal.length&&await u.bulkAdd(n.goal),n.plan&&n.plan.length&&await l.bulkAdd(n.plan)}),await ht()}const ny=["制度学习","产品学习","打杂","项目实操","售后服务"],sy=["餐饮","交通","住房","通讯","学习","娱乐","其他"],oy=["工资","报销","其他"],Ld="log_categories",Rd="ledger_expense_categories",Kd="ledger_income_categories";function Nd(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 Nd(await Tt(Ld,""),ny)}async function ry(e){await Nt(Ld,JSON.stringify(e))}async function la(e){return Nd(await Tt(e==="expense"?Rd:Kd,""),e==="expense"?sy:oy)}async function Wi(e,t){await Nt(e==="expense"?Rd:Kd,JSON.stringify(t))}const ay={class:"dialog",role:"dialog","aria-label":"编辑工作记录"},iy={class:"dialog-head"},ly={class:"dialog-title"},uy={key:0,class:"muted dialog-sub"},cy={class:"dialog-body"},dy={class:"form-grid"},fy={class:"field span2"},py={key:0,class:"form-error"},vy={class:"field"},my=["value"],hy={class:"field"},yy=["value"],gy={class:"field"},by={class:"min-chips"},wy=["onClick"],_y={class:"field"},ky={class:"field span2"},Cy={class:"field"},xy={class:"field"},$y={class:"dialog-btns"},Sy=Kt({__name:"EditLogDialog",props:{open:{type:Boolean},item:{},projects:{},date:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=P([]);Zo().then(ue=>{n.value=ue});const o=e,r=t,l=P(""),u=P(null),f=P("dev"),v=P(null),y=P(""),m=P(""),w=P(0),T=P(0),$=P(""),I=P(null),J=nt(()=>{var S;const ue=o.projects.filter(M=>M.archived!==1),G=(S=o.item)==null?void 0:S.project_id;if(G&&!ue.some(M=>M.id===G)){const M=o.projects.find(q=>q.id===G),ee=ue.slice();return M&&ee.unshift({...M,name:M.name+"(已归档)"}),ee}return ue});function ae(ue){o.open&&ue.key==="Escape"&&r("cancel")}pt(()=>o.open,async ue=>{var G;if(ue){const S=o.item;l.value=(S==null?void 0:S.content)??"",u.value=(S==null?void 0:S.project_id)??null,f.value=(S==null?void 0:S.category)??"dev",v.value=(S==null?void 0:S.minutes)??null,y.value=(S==null?void 0:S.takeaway)??"",m.value=(S==null?void 0:S.remark)??"",w.value=(S==null?void 0:S.is_milestone)??0,T.value=(S==null?void 0:S.needs_followup)??0,$.value="",window.addEventListener("keydown",ae),await Ks(),(G=I.value)==null||G.focus()}else window.removeEventListener("keydown",ae)}),bn(()=>window.removeEventListener("keydown",ae)),pt(l,()=>{$.value&&($.value="")});function de(){const ue=l.value.trim();if(!ue){$.value="请填写工作内容";return}if(!o.item||!o.item.id){r("save",{id:0,content:ue,project_id:u.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:y.value.trim()||null,remark:m.value.trim()||null,is_milestone:w.value,needs_followup:T.value});return}r("save",{id:o.item.id,content:ue,project_id:u.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:y.value.trim()||null,remark:m.value.trim()||null,is_milestone:w.value?1:0,needs_followup:T.value?1:0})}return(ue,G)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:G[10]||(G[10]=Ut(S=>r("cancel"),["self"]))},[i("div",ay,[i("div",iy,[i("div",null,[i("div",ly,F(e.item?"编辑工作记录":"添加工作记录"),1),e.date?(x(),E("div",uy,F(e.date),1)):me("",!0)]),i("button",{class:"icon-btn",title:"关闭",onClick:G[0]||(G[0]=S=>r("cancel"))},[be(He,{name:"close",size:16})])]),i("div",cy,[i("div",dy,[i("div",fy,[G[11]||(G[11]=i("label",null,"工作内容(必填)",-1)),Pe(i("input",{ref_key:"contentInput",ref:I,class:ze(["input",{invalid:$.value}]),"onUpdate:modelValue":G[1]||(G[1]=S=>l.value=S),onKeydown:Lt(de,["enter"])},null,34),[[Le,l.value]]),$.value?(x(),E("div",py,F($.value),1)):me("",!0)]),i("div",vy,[G[13]||(G[13]=i("label",null,"所属项目",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":G[2]||(G[2]=S=>u.value=S)},[G[12]||(G[12]=i("option",{value:null},"无项目",-1)),(x(!0),E(Oe,null,st(J.value,S=>(x(),E("option",{key:S.id,value:S.id},F(S.name),9,my))),128))],512),[[vs,u.value]])]),i("div",hy,[G[14]||(G[14]=i("label",null,"工作分类",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":G[3]||(G[3]=S=>f.value=S)},[(x(!0),E(Oe,null,st(n.value,S=>(x(),E("option",{key:S,value:S},F(S),9,yy))),128))],512),[[vs,f.value]])]),i("div",gy,[G[15]||(G[15]=i("label",null,"耗时(分钟)",-1)),Pe(i("input",{class:"input",type:"number",min:"0","onUpdate:modelValue":G[4]||(G[4]=S=>v.value=S),placeholder:"选填"},null,512),[[Le,v.value,void 0,{number:!0}]]),i("div",by,[(x(),E(Oe,null,st([15,30,60,90,120],S=>i("button",{key:S,type:"button",class:ze(["min-chip",{on:v.value===S}]),onClick:M=>v.value=v.value===S?null:S},F(S)+"分",11,wy)),64))])]),i("div",_y,[G[16]||(G[16]=i("label",null,"主要收获",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":G[5]||(G[5]=S=>y.value=S),placeholder:"一句话:学到了什么"},null,512),[[Le,y.value]])]),i("div",ky,[G[17]||(G[17]=i("label",null,"备注",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":G[6]||(G[6]=S=>m.value=S),placeholder:"背景、链接、未决事项(选填)"},null,512),[[Le,m.value]])]),i("div",Cy,[G[18]||(G[18]=i("label",null,"成果标记",-1)),i("button",{class:ze(["toggle-btn",{on:w.value===1}]),onClick:G[7]||(G[7]=S=>w.value=w.value===1?0:1)},F(w.value===1?"已标记为成果":"未标记"),3)]),i("div",xy,[G[19]||(G[19]=i("label",null,"待跟进",-1)),i("button",{class:ze(["toggle-btn",{onwarn:T.value===1}]),onClick:G[8]||(G[8]=S=>T.value=T.value===1?0:1)},F(T.value===1?"需要跟进":"无需跟进"),3)])])]),i("div",$y,[i("button",{class:"btn btn-sm",onClick:G[9]||(G[9]=S=>r("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:de},F(e.item?"保存修改":"添加"),1)])])])):me("",!0)]),_:1})]))}}),Ey=Vt(Sy,[["__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(gm(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 l=Or(Wn(e.clock_in_at)),u=Or(Wn(e.clock_out_at)),f=Or(n.work_start),v=Or(n.work_end);let y="normal";!r&&l>f+n.grace_minutes?y="late":!r&&u<v&&(y="early");const m=bm(e.clock_in_at,e.clock_out_at),w=Math.max(0,m-n.lunch_minutes);return{status:y,label:r?"补卡":y==="late"?"迟到":y==="early"?"早退":"正常",makeup:r,workedMinutes:w}}const Fr=P([]);let Ay=0;function Ve(e){const t=++Ay;Fr.value.push({id:t,text:e}),setTimeout(()=>{Fr.value=Fr.value.filter(n=>n.id!==t)},2e3)}function Ty(){return Fr}const Py={class:"day-panel"},Oy={class:"dp-head"},My={class:"dp-date"},Iy={class:"card sec"},jy={class:"att-grid"},Dy={class:"att-cell"},Ly={key:0,class:"edit-row"},Ry={key:1,class:"att-val"},Ky={class:"att-cell"},Ny={key:0,class:"edit-row"},Fy={key:1,class:"att-val"},Vy={class:"att-cell"},By=["list"],Uy=["id"],qy=["value"],Hy={class:"att-cell"},zy={class:"att-val status-val"},Wy={key:0,class:"tag"},Gy={key:1,class:"muted"},Yy={key:0,class:"att-note muted"},Jy={class:"att-actions"},Xy=["disabled"],Qy=["disabled"],Zy=["disabled"],eg=["disabled"],tg={key:0,class:"card sec makeup"},ng={class:"form-grid"},sg={class:"field"},og={class:"field"},rg={class:"field span2"},ag=["list"],ig={class:"field span2"},lg={key:0,class:"form-error"},ug={class:"form-footer"},cg={class:"list-sec"},dg={class:"sec-head"},fg={class:"sec-title"},pg={key:0,class:"empty muted"},vg={class:"item-main"},mg={class:"tag"},hg=["onClick"],yg={key:0,class:"muted item-meta"},gg={key:1,class:"muted num item-meta"},bg=["onClick"],wg=["onClick"],_g=["onClick"],kg=["onClick"],Cg={key:0,class:"item-sub"},xg={key:0,class:"muted2"},$g={key:1,class:"muted"},Sg={key:1,class:"dp-foot muted num"},Eg=Kt({__name:"DayPanel",props:{date:{}},setup(e){const t=P([]);Zo().then(_=>{t.value=_});const n=e,o=P(!0),r=P(null),l=P(void 0),u=P([]),f=P([]),v=P(""),y=P([]),m=nt(()=>"loc-list-"+n.date),w=nt(()=>n.date===ut());async function T(){o.value=!0,r.value=await ms(),l.value=await Fs(n.date),u.value=await Ch(n.date),f.value=await io(!0),y.value=await gl(),v.value=l.value&&l.value.location||await dh(),o.value=!1}cn(T),pt(()=>n.date,T),pt(Jo,()=>{T()});function $(_){if(!_)return"";const g=f.value.find(C=>C.id===_);return g?g.name:"已删除项目"}const I=nt(()=>r.value?co(l.value,n.date,r.value,w.value):null),J=nt(()=>u.value.reduce((_,g)=>_+(g.minutes||0),0)),ae=P(!1);async function de(){ae.value||(ae.value=!0,await hh(n.date,v.value),await T(),As(),Ve("上班打卡成功"),ae.value=!1)}async function ue(){ae.value||(ae.value=!0,await yh(n.date),await T(),As(),Ve("下班打卡成功"),ae.value=!1)}async function G(){await fh(n.date,v.value),As(),Ve("地点已更新")}const S=P(!1),M=nt(()=>{var _;return((_=l.value)==null?void 0:_.kind)==="leave"});function ee(){if(l.value&&l.value.clock_in_at){S.value=!0;return}q(!0)}async function q(_){S.value=!1,await wh(n.date,_),await T(),As(),Ve(_?"已标记为休假":"已取消休假")}const oe=P(null),j=P(""),A=P(null);pt(oe,async _=>{var g;_&&(await Ks(),(g=A.value)==null||g.focus())});function O(_){var C,D;const g=_==="in"?(C=l.value)==null?void 0:C.clock_in_at:(D=l.value)==null?void 0:D.clock_out_at;oe.value=_,j.value=g?Wn(g):_==="in"?"09:00":"18:00"}function ne(){oe.value=null}async function Ie(){const _=oe.value;_&&(oe.value=null,j.value&&(await bh(n.date,_==="in"?"clock_in_at":"clock_out_at",j.value),await T(),As(),Ve("打卡时间已修改")))}const Se=P(!1),_e=P("09:00"),Me=P("18:00"),qe=P(""),Ue=P(""),tt=P("");function Ye(){Ue.value=v.value,tt.value="",Se.value=!Se.value}async function We(){if(!_e.value||!Me.value){tt.value="请填写上班与下班时间";return}await gh(n.date,n.date+"T"+_e.value+":00",n.date+"T"+Me.value+":00",qe.value.trim(),Ue.value),Se.value=!1,qe.value="",tt.value="",await T(),As(),Ve("补卡已保存")}const le=P(null),Q=P(!1);function Ae(_){le.value=_,Q.value=!0}function lt(){le.value=null,Q.value=!0}async function it(_){_.id?(await bi(_.id,{content:_.content,project_id:_.project_id,category:_.category,minutes:_.minutes,takeaway:_.takeaway,remark:_.remark,is_milestone:_.is_milestone,needs_followup:_.needs_followup}),Ve("记录已更新")):(await xh(n.date,{content:_.content,project_id:_.project_id,category:_.category,minutes:_.minutes,takeaway:_.takeaway,remark:_.remark}),Ve("记录已添加")),le.value=null,Q.value=!1,await T()}async function Te(_){await bi(_.id,{is_milestone:_.is_milestone?0:1}),await T()}async function kt(_){await bi(_.id,{needs_followup:_.needs_followup?0:1}),await T()}const xt=P(null);async function Ke(){xt.value&&xt.value.id&&await $h(xt.value.id),xt.value=null,await T(),Ve("记录已删除")}return(_,g)=>(x(),E("div",Py,[i("div",Oy,[i("div",My,F(Wt(bd)(e.date)),1)]),i("div",Iy,[g[19]||(g[19]=i("div",{class:"sec-title"},"出勤信息",-1)),i("div",jy,[i("div",Dy,[g[15]||(g[15]=i("label",null,"上班时间",-1)),oe.value==="in"?(x(),E("div",Ly,[Pe(i("input",{ref_key:"timeInput",ref:A,type:"time",class:"input time-input","onUpdate:modelValue":g[0]||(g[0]=C=>j.value=C),onKeydown:[Lt(Ie,["enter"]),Lt(ne,["esc"])]},null,544),[[Le,j.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:Ie},"确认"),i("button",{class:"btn btn-sm",onClick:ne},"取消")])):(x(),E("div",Ry,[i("span",{class:ze(["num",{"val-empty":!(l.value&&l.value.clock_in_at)}])},F(l.value&&l.value.clock_in_at?Wt(Wn)(l.value.clock_in_at):"未打卡"),3),l.value&&l.value.id?(x(),E("button",{key:0,class:"icon-btn",title:"修改上班时间",onClick:g[1]||(g[1]=C=>O("in"))},[be(He,{name:"edit",size:13})])):me("",!0)]))]),i("div",Ky,[g[16]||(g[16]=i("label",null,"下班时间",-1)),oe.value==="out"?(x(),E("div",Ny,[Pe(i("input",{ref_key:"timeInput",ref:A,type:"time",class:"input time-input","onUpdate:modelValue":g[2]||(g[2]=C=>j.value=C),onKeydown:[Lt(Ie,["enter"]),Lt(ne,["esc"])]},null,544),[[Le,j.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:Ie},"确认"),i("button",{class:"btn btn-sm",onClick:ne},"取消")])):(x(),E("div",Fy,[i("span",{class:ze(["num",{"val-empty":!(l.value&&l.value.clock_out_at)}])},F(l.value&&l.value.clock_out_at?Wt(Wn)(l.value.clock_out_at):"未打卡"),3),l.value&&l.value.id?(x(),E("button",{key:0,class:"icon-btn",title:"修改下班时间",onClick:g[3]||(g[3]=C=>O("out"))},[be(He,{name:"edit",size:13})])):me("",!0)]))]),i("div",Vy,[g[17]||(g[17]=i("label",null,"上班地点",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":g[4]||(g[4]=C=>v.value=C),list:m.value,placeholder:"可直接输入",title:"上班地点,可自由输入",onChange:G},null,40,By),[[Le,v.value]]),i("datalist",{id:m.value},[(x(!0),E(Oe,null,st(y.value,C=>(x(),E("option",{key:C,value:C},null,8,qy))),128))],8,Uy)]),i("div",Hy,[g[18]||(g[18]=i("label",null,"考勤状态",-1)),i("div",zy,[I.value?(x(),E(Oe,{key:0},[i("span",{class:ze(["dot",I.value.status])},null,2),i("span",null,F(I.value.label),1),l.value&&l.value.kind==="makeup"?(x(),E("span",Wy,"补卡")):me("",!0)],64)):(x(),E("span",Gy,"--"))])])]),l.value&&l.value.note?(x(),E("div",Yy,"补卡说明:"+F(l.value.note),1)):me("",!0),i("div",Jy,[w.value&&(!l.value||!l.value.clock_in_at)?(x(),E("button",{key:0,class:"btn btn-primary btn-sm",disabled:ae.value,onClick:de},"上班打卡",8,Xy)):w.value&&l.value&&l.value.clock_in_at&&!l.value.clock_out_at?(x(),E("button",{key:1,class:"btn btn-primary btn-sm",disabled:ae.value,onClick:ue},"下班打卡",8,Qy)):me("",!0),!w.value&&(!l.value||!l.value.clock_in_at)?(x(),E("button",{key:2,class:"btn btn-sm",onClick:Ye},"补卡")):me("",!0),M.value?(x(),E("button",{key:4,class:"btn btn-sm",disabled:ae.value,onClick:g[5]||(g[5]=C=>q(!1))},"取消休假",8,eg)):(x(),E("button",{key:3,class:"btn btn-sm",disabled:ae.value,onClick:ee},"标记休假",8,Zy))])]),Se.value?(x(),E("div",tg,[g[24]||(g[24]=i("div",{class:"sec-title"},"补卡登记",-1)),i("div",ng,[i("div",sg,[g[20]||(g[20]=i("label",null,"上班时间",-1)),Pe(i("input",{type:"time",class:"input","onUpdate:modelValue":g[6]||(g[6]=C=>_e.value=C)},null,512),[[Le,_e.value]])]),i("div",og,[g[21]||(g[21]=i("label",null,"下班时间",-1)),Pe(i("input",{type:"time",class:"input","onUpdate:modelValue":g[7]||(g[7]=C=>Me.value=C)},null,512),[[Le,Me.value]])]),i("div",rg,[g[22]||(g[22]=i("label",null,"上班地点",-1)),Pe(i("input",{class:"input",list:m.value,"onUpdate:modelValue":g[8]||(g[8]=C=>Ue.value=C),placeholder:"可直接输入"},null,8,ag),[[Le,Ue.value]])]),i("div",ig,[g[23]||(g[23]=i("label",null,"补卡原因",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":g[9]||(g[9]=C=>qe.value=C),placeholder:"如:外出拜访客户忘记打卡"},null,512),[[Le,qe.value]])])]),tt.value?(x(),E("div",lg,F(tt.value),1)):me("",!0),i("div",ug,[i("button",{class:"btn btn-sm",onClick:g[10]||(g[10]=C=>Se.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:We},"保存补卡")])])):me("",!0),i("div",cg,[i("div",dg,[i("span",fg,"工作记录("+F(u.value.length)+")",1),i("button",{class:"btn btn-primary btn-sm",onClick:lt},[be(He,{name:"plus",size:14}),g[25]||(g[25]=At(" 添加记录",-1))])]),!u.value.length&&!o.value?(x(),E("div",pg,"暂无记录")):me("",!0),(x(!0),E(Oe,null,st(u.value,C=>(x(),E("div",{key:C.id,class:"item"},[i("div",vg,[i("span",mg,F(Wt(qo)(C.category)),1),i("span",{class:"item-content",title:"点击编辑",onClick:D=>Ae(C)},F(C.content),9,hg),C.project_id?(x(),E("span",yg,F($(C.project_id)),1)):me("",!0),C.minutes?(x(),E("span",gg,F(C.minutes)+" 分钟",1)):me("",!0),g[26]||(g[26]=i("span",{class:"flex1"},null,-1)),i("button",{class:"icon-btn",title:"编辑完整信息",onClick:D=>Ae(C)},[be(He,{name:"edit",size:14})],8,bg),i("button",{class:ze(["icon-btn",{active:C.is_milestone===1}]),title:"成果标记",onClick:D=>Te(C)},[be(He,{name:"star",size:14})],10,wg),i("button",{class:ze(["icon-btn",{"active-warn":C.needs_followup===1}]),title:"待跟进",onClick:D=>kt(C)},[be(He,{name:"flag",size:14})],10,_g),i("button",{class:"icon-btn",title:"删除",onClick:D=>xt.value=C},[be(He,{name:"close",size:14})],8,kg)]),C.takeaway||C.remark?(x(),E("div",Cg,[C.takeaway?(x(),E("div",xg,"收获:"+F(C.takeaway),1)):me("",!0),C.remark?(x(),E("div",$g,"备注:"+F(C.remark),1)):me("",!0)])):me("",!0)]))),128)),u.value.length?(x(),E("div",Sg,[At(" 共 "+F(u.value.length)+" 条事项 ",1),J.value?(x(),E(Oe,{key:0},[At(" · "+F((J.value/60).toFixed(1))+" 小时",1)],64)):me("",!0)])):me("",!0)]),be(xn,{open:!!xt.value,title:"删除确认",message:xt.value?"将删除工作记录「"+xt.value.content+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:g[11]||(g[11]=C=>xt.value=null),onConfirm:Ke},null,8,["open","message"]),be(xn,{open:S.value,title:"标记休假确认",message:"该日已有打卡记录,标记休假将清空上下班时间。是否继续?","confirm-text":"标记休假",danger:"",onCancel:g[12]||(g[12]=C=>S.value=!1),onConfirm:g[13]||(g[13]=C=>q(!0))},null,8,["open"]),be(Ey,{open:Q.value,item:le.value,projects:f.value,date:e.date,onCancel:g[14]||(g[14]=C=>Q.value=!1),onSave:it},null,8,["open","item","projects","date"])]))}}),Fd=Vt(Eg,[["__scopeId","data-v-81276f4c"]]),Ag={class:"cal-page"},Tg={class:"cal-toolbar"},Pg={class:"cal-title num"},Og=["disabled"],Mg={class:"card cal-card"},Ig={class:"cal-head"},jg={class:"cal-grid"},Dg=["title","onClick"],Lg={class:"cal-marks"},Rg={key:0,class:"drawer"},Kg={class:"drawer-head"},Ng={class:"drawer-body"},Fg=Kt({__name:"CalendarView",setup(e){const t=P(ut()),n=nt(()=>Number(t.value.slice(0,4))),o=nt(()=>Number(t.value.slice(5,7))-1),r=nt(()=>n.value+" 年 "+(o.value+1)+" 月"),l=["一","二","三","四","五","六","日"],u=nt(()=>{const S=(new Date(n.value,o.value,1).getDay()+6)%7,M=new Date(n.value,o.value+1,0).getDate(),ee=[];for(let q=0;q<S;q++)ee.push({date:"",inMonth:!1,weekend:!1});for(let q=1;q<=M;q++){const oe=new Date(n.value,o.value,q),j=oe.getDay();ee.push({date:us(oe),inMonth:!0,weekend:j===0||j===6})}return ee}),f=P(new Map),v=ut();async function y(){var A;const G=us(new Date(n.value,o.value,1)),S=us(new Date(n.value,o.value+1,0)),M=await Promise.all([ms(),Xo(G,S),Qo(G,S)]),ee=M[0],q=new Map(M[1].map(O=>[O.date,O])),oe=M[2],j=new Map;for(const O of u.value){if(!O.inMonth)continue;const ne=co(q.get(O.date),O.date,ee,O.date===v),Ie=oe.filter(Se=>Se.date===O.date);j.set(O.date,{status:ne.status,label:ne.label,location:((A=q.get(O.date))==null?void 0:A.location)||"",hasLog:Ie.length>0,hasMilestone:Ie.some(Se=>Se.is_milestone===1)})}f.value=j}pt([n,o],y,{immediate:!0}),pt(Jo,()=>{y()});function m(G){var S;return((S=f.value.get(G))==null?void 0:S.status)??""}function w(G){const S=f.value.get(G);return S?G+" · "+S.label+(S.location?" · "+S.location:""):G}function T(G){var S;return!!((S=f.value.get(G))!=null&&S.hasLog)}function $(G){var S;return!!((S=f.value.get(G))!=null&&S.hasMilestone)}function I(){t.value=Ho(t.value,-1)}function J(){t.value=Ho(t.value,1)}function ae(){t.value=ut()}const de=P(null);function ue(G,S){S&&(de.value=G)}return pt(Fi,G=>{G&&(t.value=G,de.value=G,Fi.value=null)},{immediate:!0}),(G,S)=>(x(),E("div",Ag,[i("div",Tg,[i("button",{class:"icon-btn",title:"上一月",onClick:I},[be(He,{name:"chevron-left",size:16})]),i("span",Pg,F(r.value),1),i("button",{class:"icon-btn",title:"下一月",onClick:J},[be(He,{name:"chevron-right",size:16})]),i("button",{class:"btn btn-sm",disabled:t.value===Wt(v),onClick:ae},"回到本月",8,Og)]),i("div",Mg,[i("div",Ig,[(x(),E(Oe,null,st(l,M=>i("span",{key:M,class:"cal-week"},F(M),1)),64))]),i("div",jg,[(x(!0),E(Oe,null,st(u.value,(M,ee)=>(x(),E("button",{key:ee,class:ze(["cal-cell",{blank:!M.inMonth,weekend:M.weekend,selected:de.value===M.date,"is-today":M.date===Wt(v)}]),title:M.inMonth?w(M.date):void 0,onClick:q=>ue(M.date,M.inMonth)},[M.inMonth?(x(),E(Oe,{key:0},[i("span",{class:ze(["daynum num",{today:M.date===Wt(v)}])},F(Number(M.date.slice(8,10))),3),i("span",Lg,[m(M.date)?(x(),E("span",{key:0,class:ze(["dot",m(M.date)])},null,2)):me("",!0),T(M.date)?(x(),Ct(He,{key:1,name:"check-circle",size:12,class:"mark-log"})):me("",!0),$(M.date)?(x(),Ct(He,{key:2,name:"star",size:12,class:"mark-star"})):me("",!0)])],64)):me("",!0)],10,Dg))),128))])]),be(Jn,{name:"drawer"},{default:Sn(()=>[de.value?(x(),E("aside",Rg,[i("div",Kg,[S[1]||(S[1]=i("span",{class:"drawer-title"},"当日详情",-1)),i("button",{class:"icon-btn",onClick:S[0]||(S[0]=M=>de.value=null)},[be(He,{name:"close",size:16})])]),i("div",Ng,[be(Fd,{date:de.value},null,8,["date"])])])):me("",!0)]),_:1})]))}}),Vg=Vt(Fg,[["__scopeId","data-v-abd71a5b"]]),Bg="modulepreload",Ug=function(e,t){return new URL(e,t).href},qu={},Vd=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){const u=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(y=>{if(y=Ug(y,o),y in qu)return;qu[y]=!0;const m=y.endsWith(".css"),w=m?'[rel="stylesheet"]':"";if(!!o)for(let I=u.length-1;I>=0;I--){const J=u[I];if(J.href===y&&(!m||J.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${y}"]${w}`))return;const $=document.createElement("link");if($.rel=m?"stylesheet":Bg,m||($.as="script"),$.crossOrigin="",$.href=y,v&&$.setAttribute("nonce",v),document.head.appendChild($),m)return new Promise((I,J)=>{$.addEventListener("load",I),$.addEventListener("error",()=>J(new Error(`Unable to preload CSS for ${y}`)))})}))}function l(u){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=u,window.dispatchEvent(f),!f.defaultPrevented)throw u}return r.then(u=>{for(const f of u||[])f.status==="rejected"&&l(f.reason);return t().catch(l)})};/*! Capacitor: https://capacitorjs.com/ - MIT License */const qg=e=>{const t=new Map;t.set("web",{name:"web"});const n=e.CapacitorPlatforms||{currentPlatform:{name:"web"},platforms:t},o=(l,u)=>{n.platforms.set(l,u)},r=l=>{n.platforms.has(l)&&(n.currentPlatform=n.platforms.get(l))};return n.addPlatform=o,n.setPlatform=r,n},Hg=e=>e.CapacitorPlatforms=qg(e),Bd=Hg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});Bd.addPlatform;Bd.setPlatform;var lo;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(lo||(lo={}));class wi extends Error{constructor(t,n,o){super(t),this.message=t,this.code=n,this.data=o}}const zg=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"},Wg=e=>{var t,n,o,r,l;const u=e.CapacitorCustomPlatform||null,f=e.Capacitor||{},v=f.Plugins=f.Plugins||{},y=e.CapacitorPlatforms,m=()=>u!==null?u.name:zg(e),w=((t=y==null?void 0:y.currentPlatform)===null||t===void 0?void 0:t.getPlatform)||m,T=()=>w()!=="web",$=((n=y==null?void 0:y.currentPlatform)===null||n===void 0?void 0:n.isNativePlatform)||T,I=q=>{const oe=S.get(q);return!!(oe!=null&&oe.platforms.has(w())||de(q))},J=((o=y==null?void 0:y.currentPlatform)===null||o===void 0?void 0:o.isPluginAvailable)||I,ae=q=>{var oe;return(oe=f.PluginHeaders)===null||oe===void 0?void 0:oe.find(j=>j.name===q)},de=((r=y==null?void 0:y.currentPlatform)===null||r===void 0?void 0:r.getPluginHeader)||ae,ue=q=>e.console.error(q),G=(q,oe,j)=>Promise.reject(`${j} does not have an implementation of "${oe}".`),S=new Map,M=(q,oe={})=>{const j=S.get(q);if(j)return console.warn(`Capacitor plugin "${q}" already registered. Cannot register plugins twice.`),j.proxy;const A=w(),O=de(q);let ne;const Ie=async()=>(!ne&&A in oe?ne=typeof oe[A]=="function"?ne=await oe[A]():ne=oe[A]:u!==null&&!ne&&"web"in oe&&(ne=typeof oe.web=="function"?ne=await oe.web():ne=oe.web),ne),Se=(Ye,We)=>{var le,Q;if(O){const Ae=O==null?void 0:O.methods.find(lt=>We===lt.name);if(Ae)return Ae.rtype==="promise"?lt=>f.nativePromise(q,We.toString(),lt):(lt,it)=>f.nativeCallback(q,We.toString(),lt,it);if(Ye)return(le=Ye[We])===null||le===void 0?void 0:le.bind(Ye)}else{if(Ye)return(Q=Ye[We])===null||Q===void 0?void 0:Q.bind(Ye);throw new wi(`"${q}" plugin is not implemented on ${A}`,lo.Unimplemented)}},_e=Ye=>{let We;const le=(...Q)=>{const Ae=Ie().then(lt=>{const it=Se(lt,Ye);if(it){const Te=it(...Q);return We=Te==null?void 0:Te.remove,Te}else throw new wi(`"${q}.${Ye}()" is not implemented on ${A}`,lo.Unimplemented)});return Ye==="addListener"&&(Ae.remove=async()=>We()),Ae};return le.toString=()=>`${Ye.toString()}() { [capacitor code] }`,Object.defineProperty(le,"name",{value:Ye,writable:!1,configurable:!1}),le},Me=_e("addListener"),qe=_e("removeListener"),Ue=(Ye,We)=>{const le=Me({eventName:Ye},We),Q=async()=>{const lt=await le;qe({eventName:Ye,callbackId:lt},We)},Ae=new Promise(lt=>le.then(()=>lt({remove:Q})));return Ae.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await Q()},Ae},tt=new Proxy({},{get(Ye,We){switch(We){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return O?Ue:Me;case"removeListener":return qe;default:return _e(We)}}});return v[q]=tt,S.set(q,{name:q,proxy:tt,platforms:new Set([...Object.keys(oe),...O?[A]:[]])}),tt},ee=((l=y==null?void 0:y.currentPlatform)===null||l===void 0?void 0:l.registerPlugin)||M;return f.convertFileSrc||(f.convertFileSrc=q=>q),f.getPlatform=w,f.handleError=ue,f.isNativePlatform=$,f.isPluginAvailable=J,f.pluginMethodNoop=G,f.registerPlugin=ee,f.Exception=wi,f.DEBUG=!!f.DEBUG,f.isLoggingEnabled=!!f.isLoggingEnabled,f.platform=f.getPlatform(),f.isNative=f.isNativePlatform(),f},Gg=e=>e.Capacitor=Wg(e),uo=Gg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),Ud=uo.registerPlugin;uo.Plugins;class qd{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 l=this.windowListeners[t];l&&!l.registered&&this.addWindowListener(l),o&&this.sendRetainedArgumentsForEvent(t);const u=async()=>this.removeListener(t,n);return Promise.resolve({remove:u})}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 l=this.retainedEventArguments[t];l||(l=[]),l.push(n),this.retainedEventArguments[t]=l}return}r.forEach(l=>l(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 uo.Exception(t,lo.Unimplemented)}unavailable(t="not available"){return new uo.Exception(t,lo.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 Hu=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),zu=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Yg extends qd{async getCookies(){const t=document.cookie,n={};return t.split(";").forEach(o=>{if(o.length<=0)return;let[r,l]=o.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");r=zu(r).trim(),l=zu(l).trim(),n[r]=l}),n}async setCookie(t){try{const n=Hu(t.key),o=Hu(t.value),r=`; expires=${(t.expires||"").replace("expires=","")}`,l=(t.path||"/").replace("path=",""),u=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${o||""}${r}; path=${l}; ${u};`}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)}}}Ud("CapacitorCookies",{web:()=>new Yg});const Jg=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)}),Xg=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(r=>r.toLocaleLowerCase()).reduce((r,l,u)=>(r[l]=e[t[u]],r),{})},Qg=(e,t=!0)=>e?Object.entries(e).reduce((o,r)=>{const[l,u]=r;let f,v;return Array.isArray(u)?(v="",u.forEach(y=>{f=t?encodeURIComponent(y):y,v+=`${l}=${f}&`}),v.slice(0,-1)):(f=t?encodeURIComponent(u):u,v=`${l}=${f}`),`${o}&${v}`},"").substr(1):null,Zg=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),r=Xg(e.headers)["content-type"]||"";if(typeof e.data=="string")n.body=e.data;else if(r.includes("application/x-www-form-urlencoded")){const l=new URLSearchParams;for(const[u,f]of Object.entries(e.data||{}))l.set(u,f);n.body=l.toString()}else if(r.includes("multipart/form-data")||e.data instanceof FormData){const l=new FormData;if(e.data instanceof FormData)e.data.forEach((f,v)=>{l.append(v,f)});else for(const f of Object.keys(e.data))l.append(f,e.data[f]);n.body=l;const u=new Headers(n.headers);u.delete("content-type"),n.headers=u}else(r.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class eb extends qd{async request(t){const n=Zg(t,t.webFetchExtra),o=Qg(t.params,t.shouldEncodeUrlParams),r=o?`${t.url}?${o}`:t.url,l=await fetch(r,n),u=l.headers.get("content-type")||"";let{responseType:f="text"}=l.ok?t:{};u.includes("application/json")&&(f="json");let v,y;switch(f){case"arraybuffer":case"blob":y=await l.blob(),v=await Jg(y);break;case"json":v=await l.json();break;case"document":case"text":default:v=await l.text()}const m={};return l.headers.forEach((w,T)=>{m[T]=w}),{data:v,headers:m,status:l.status,url:l.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"}))}}Ud("CapacitorHttp",{web:()=>new eb});async function Ea(e,t){const n=window;if(n.electronAPI&&n.electronAPI.saveFile){const u=await n.electronAPI.saveFile(e,t);return u&&u.saved?u.path:""}if(uo.isNativePlatform()){const{Filesystem:u,Directory:f,Encoding:v}=await Vd(async()=>{const{Filesystem:y,Directory:m,Encoding:w}=await import("./index-C9urKISR.js");return{Filesystem:y,Directory:m,Encoding:w}},[],import.meta.url);try{return(await u.writeFile({path:e,data:t,directory:f.Documents,encoding:v.UTF8,recursive:!0})).uri}catch{return(await u.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),l=document.createElement("a");return l.href=r,l.download=e,l.click(),window.setTimeout(()=>URL.revokeObjectURL(r),1e4),""}const tb=Object.freeze(Object.defineProperty({__proto__:null,downloadText:Ea},Symbol.toStringTag,{value:"Module"})),nb={class:"detail-page"},sb={class:"card toolbar"},ob={class:"nav-row"},rb=["value"],ab=["disabled"],ib={class:"exp-row"},lb={class:"seg"},ub=["disabled"],cb=Kt({__name:"TodayView",setup(e){const t=P(ut()),n=nt(()=>t.value===ut());function o(){t.value=Ft(t.value,-1)}function r(){t.value=Ft(t.value,1)}function l(){t.value=ut()}const u=P("day"),f=P(ut()),v=P(ut()),y=P(!1);function m(){if(u.value==="day")return{start:t.value,end:t.value,label:t.value};if(u.value==="week"){const $=Zs(f.value);return{start:$,end:Ft($,6),label:$+"_"+Ft($,6)}}if(u.value==="month"){const $=f.value.slice(0,4),I=f.value.slice(5,7),J=new Date(Number($),Number(I),0).getDate();return{start:$+"-"+I+"-01",end:$+"-"+I+"-"+J,label:$+"-"+I}}return{start:f.value,end:v.value,label:f.value+"_"+v.value}}async function w(){if(!y.value){y.value=!0;try{const{start:$,end:I,label:J}=m(),[ae,de,ue,G]=await Promise.all([ms(),Xo($,I),Qo($,I),io(!0)]),S=new Map(G.map(j=>[j.id,j.name])),M=["# 工作详情 "+J,""],ee=["周日","周一","周二","周三","周四","周五","周六"];let q=$,oe=0;for(;q<=I&&oe<400;){const j=ue.filter(O=>O.date===q),A=de.find(O=>O.date===q);if(A||j.length){if(M.push("## "+q+" "+ee[new Date(q+"T00:00:00").getDay()],""),A&&(A.clock_in_at||A.kind==="makeup")){const O=co(A,q,ae,q===ut()),ne=[Wn(A.clock_in_at),"–",Wn(A.clock_out_at),"·",O.label];A.location&&ne.push("· 地点:"+A.location),M.push("考勤:"+ne.join(" "),"")}for(const O of j){const ne=O.project_id&&S.get(O.project_id)||"",Ie="- 【"+qo(O.category)+"】"+O.content+(O.minutes?"("+O.minutes+" 分钟)":"")+(ne?" @"+ne:"");M.push(Ie),O.takeaway&&M.push(" - 收获:"+O.takeaway),O.needs_followup===1&&O.remark?M.push(" - 待跟进:"+O.remark):O.remark&&M.push(" - 备注:"+O.remark)}M.push("")}q=Ft(q,1),oe++}await Ea("工作详情_"+J+".md",M.join(`
`)),Ve("已导出 Markdown")}finally{y.value=!1}}}function T($){const I=$.target.value;I&&(t.value=I)}return pt(t,$=>{f.value=$,u.value==="custom"&&(v.value=$)}),($,I)=>(x(),E("div",nb,[i("div",sb,[i("div",ob,[i("button",{class:"icon-btn",title:"前一天",onClick:o},[be(He,{name:"chevron-left",size:16})]),i("span",{class:ze(["date-title num",{"is-today":n.value}])},F(Wt(bd)(t.value)),3),i("button",{class:"icon-btn",title:"后一天",onClick:r},[be(He,{name:"chevron-right",size:16})]),i("input",{type:"date",class:"input w-date",value:t.value,onChange:T},null,40,rb),i("button",{class:"btn btn-sm",disabled:n.value,onClick:l},"回到今天",8,ab)]),I[7]||(I[7]=i("div",{class:"tool-sep"},null,-1)),i("div",ib,[I[6]||(I[6]=i("span",{class:"muted exp-label"},"导出",-1)),i("div",lb,[i("button",{class:ze(["seg-btn",{active:u.value==="day"}]),onClick:I[0]||(I[0]=J=>u.value="day")},"指定日",2),i("button",{class:ze(["seg-btn",{active:u.value==="week"}]),onClick:I[1]||(I[1]=J=>u.value="week")},"当周",2),i("button",{class:ze(["seg-btn",{active:u.value==="month"}]),onClick:I[2]||(I[2]=J=>u.value="month")},"当月",2),i("button",{class:ze(["seg-btn",{active:u.value==="custom"}]),onClick:I[3]||(I[3]=J=>u.value="custom")},"自定义",2)]),u.value!=="day"?Pe((x(),E("input",{key:0,class:"input w-exp",type:"date","onUpdate:modelValue":I[4]||(I[4]=J=>f.value=J)},null,512)),[[Le,f.value]]):me("",!0),u.value==="custom"?Pe((x(),E("input",{key:1,class:"input w-exp",type:"date","onUpdate:modelValue":I[5]||(I[5]=J=>v.value=J)},null,512)),[[Le,v.value]]):me("",!0),i("button",{class:"btn btn-sm",disabled:y.value,onClick:w},"导出 Markdown",8,ub)])]),be(Fd,{date:t.value},null,8,["date"])]))}}),db=Vt(cb,[["__scopeId","data-v-2bb84c76"]]),fb={class:"plan-page"},pb={class:"blk-head"},vb={key:0,class:"card empty muted"},mb={class:"goal-main"},hb={class:"goal-line"},yb={class:"tag"},gb={class:"goal-name"},bb={class:"muted num goal-range"},wb={class:"goal-bar"},_b={class:"muted num goal-meta"},kb={class:"goal-ops"},Cb=["onClick"],xb=["onClick"],$b={class:"blk-head day-head"},Sb={class:"blk-head-text"},Eb={class:"muted blk-sub num"},Ab={class:"day-ops"},Tb={class:"card list-card"},Pb={key:0,class:"empty muted"},Ob={class:"pi-time num"},Mb={class:"muted"},Ib={class:"pi-main"},jb={class:"pi-title"},Db={class:"tag"},Lb={key:0,class:"tag tag-goal"},Rb={key:1,class:"state-done"},Kb={key:2,class:"state-skip"},Nb={key:0,class:"muted pi-note"},Fb={class:"muted pi-meta num"},Vb={key:0,class:"timer-live"},Bb={class:"pi-ops"},Ub=["onClick"],qb=["onClick"],Hb=["onClick"],zb=["onClick"],Wb=["onClick"],Gb=["onClick"],Yb={class:"dialog",role:"dialog","aria-label":"计划"},Jb={class:"dialog-head"},Xb={class:"dialog-title"},Qb={class:"dialog-body"},Zb={class:"form-row"},ew={class:"form-row"},tw=["value"],nw={class:"form-row two"},sw={class:"form-row"},ow={key:0,class:"form-error"},rw={class:"dialog-btns"},aw={class:"dialog",role:"dialog","aria-label":"长期计划"},iw={class:"dialog-head"},lw={class:"dialog-title"},uw={class:"dialog-body"},cw={class:"form-row"},dw={class:"form-row"},fw=["value"],pw={class:"form-row two"},vw={class:"form-row"},mw={key:0,class:"form-error"},hw={class:"dialog-btns"},yw=Kt({__name:"PlanView",setup(e){const t=P([]),n=P({}),o=P(!1),r=P(null),l=P(""),u=P("学习"),f=P(ut()),v=P(Ft(ut(),6)),y=P(""),m=P(""),w=P(null);function T(){r.value=null,l.value="",u.value="学习",f.value=ut(),v.value=Ft(ut(),6),y.value="",m.value="",o.value=!0}function $(g){r.value=g,l.value=g.title,u.value=g.kind,f.value=g.start_date,v.value=g.end_date,y.value=g.note||"",m.value="",o.value=!0}async function I(){if(!l.value.trim()){m.value="请填写计划名称";return}if(v.value<f.value){m.value="结束日期不能早于开始日期";return}r.value?(await Fh(r.value.id,{title:l.value.trim(),kind:u.value,note:y.value}),Ve("长期计划已更新")):(await Nh({title:l.value,kind:u.value,start_date:f.value,end_date:v.value,note:y.value}),Ve("长期计划已创建,已生成每日任务")),o.value=!1,await ee()}async function J(){w.value&&(await Vh(w.value.id),Ve("已删除长期计划及其每日任务"),w.value=null,await ee())}const ae=P(ut()),de=P([]),ue=P(!0),G=P(Date.now());let S=null;const M=nt(()=>ae.value===ut());async function ee(){ue.value=!0;const[g,C,D]=await Promise.all([Ah(ae.value),Kh(),Rh()]);de.value=g,t.value=C;const re={};for(const pe of D)re[String(pe.goalId)]={done:pe.done,total:pe.total};n.value=re,ue.value=!1}pt(ae,ee),pt(Jo,ee),cn(()=>{ee(),S=window.setInterval(()=>{G.value=Date.now()},3e4)}),bn(()=>{S&&window.clearInterval(S)});function q(){ae.value=Ft(ae.value,-1)}function oe(){ae.value=Ft(ae.value,1)}function j(){ae.value=ut()}const A=nt(()=>{const g=de.value.length,C=de.value.filter(we=>we.status==="done").length,D=de.value.reduce((we,ke)=>we+O(ke),0),re=de.value.reduce((we,ke)=>we+(ke.actual_minutes||0),0);let pe=0;const xe=Ie.value;if(xe){const we=de.value.find(ke=>ke.id===xe);we&&(pe=Se(we))}return{total:g,done:C,plannedMin:D,actualMin:re+pe}});function O(g){const[C,D]=g.start_time.split(":").map(Number),[re,pe]=g.end_time.split(":").map(Number);return Math.max(0,re*60+pe-(C*60+D))}function ne(g){return g<60?g+" 分钟":Math.floor(g/60)+" 小时 "+g%60+" 分"}const Ie=nt(()=>{const g=de.value.find(C=>!!C.timer_started_at);return g?g.id:null});function Se(g){if(!g.timer_started_at)return g.actual_minutes||0;const C=Math.max(0,Math.round((G.value-new Date(g.timer_started_at).getTime())/6e4));return(g.actual_minutes||0)+C}async function _e(g){g.timer_started_at?(await Sa(g.id),Ve("已停止计时:"+g.title)):(await jh(g.id),Ve("开始计时:"+g.title)),Wm(),await ee()}async function Me(g,C){await Ih(g.id,C),await ee()}const qe=P(!1),Ue=P(null),tt=P(""),Ye=P("学习"),We=P("09:00"),le=P("10:00"),Q=P(""),Ae=P(""),lt=["学习","健身","自律","工作","阅读","其他"];function it(){Ue.value=null,tt.value="",Ye.value="学习",We.value="09:00",le.value="10:00",Q.value="",Ae.value="",qe.value=!0}function Te(g){Ue.value=g.id,tt.value=g.title,Ye.value=g.kind,We.value=g.start_time,le.value=g.end_time,Q.value=g.note||"",Ae.value="",qe.value=!0}async function kt(){if(!tt.value.trim()){Ae.value="请填写计划内容";return}if(le.value<=We.value){Ae.value="结束时间需晚于开始时间";return}Ue.value?(await Oh(Ue.value,{title:tt.value.trim(),kind:Ye.value,start_time:We.value,end_time:le.value,note:Q.value}),Ve("计划已更新")):(await Ph({date:ae.value,start_time:We.value,end_time:le.value,title:tt.value,kind:Ye.value,note:Q.value}),Ve("计划已添加")),qe.value=!1,await ee()}async function xt(g){await Mh(g.id),Ve("已删除"),await ee()}const Ke=["周日","周一","周二","周三","周四","周五","周六"];function _(g){return Ke[Gn(g).getDay()]}return(g,C)=>(x(),E("div",fb,[i("div",pb,[C[18]||(C[18]=i("div",{class:"blk-head-text"},[i("div",{class:"blk-title"},"长期计划"),i("div",{class:"muted blk-sub"},"跨越多天的目标,自动落实到每一天")],-1)),i("button",{class:"btn btn-sm",onClick:T},[be(He,{name:"plus",size:14}),C[17]||(C[17]=At(" 新建长期计划",-1))])]),t.value.length?me("",!0):(x(),E("div",vb," 暂无长期计划。创建一个跨越多天的目标(如「产品文档学习」),系统会自动生成每天的打卡任务。 ")),(x(!0),E(Oe,null,st(t.value,D=>(x(),E("div",{key:D.id,class:"card goal-card"},[i("div",mb,[i("div",hb,[i("span",yb,F(D.kind),1),i("span",gb,F(D.title),1),i("span",bb,F(D.start_date.slice(5))+" ~ "+F(D.end_date.slice(5)),1)]),i("div",wb,[i("span",{class:"goal-bar-fill",style:pn({width:(n.value[String(D.id)]?Math.round(n.value[String(D.id)].done/Math.max(1,n.value[String(D.id)].total)*100):0)+"%",background:n.value[String(D.id)]&&n.value[String(D.id)].done>=n.value[String(D.id)].total&&n.value[String(D.id)].total>0?"var(--ok)":"var(--accent)"})},null,4)]),i("div",_b,[At(F(n.value[String(D.id)]?n.value[String(D.id)].done+"/"+n.value[String(D.id)].total+" 天已完成":"0/"+(n.value[String(D.id)]?n.value[String(D.id)].total:0)+" 天")+" ",1),D.note?(x(),E(Oe,{key:0},[At(" · "+F(D.note),1)],64)):me("",!0)])]),i("div",kb,[i("button",{class:"icon-btn",title:"编辑",onClick:re=>$(D)},[be(He,{name:"edit",size:14})],8,Cb),i("button",{class:"icon-btn",title:"删除",onClick:re=>w.value=D},[be(He,{name:"close",size:14})],8,xb)])]))),128)),i("div",$b,[i("div",Sb,[C[21]||(C[21]=i("div",{class:"blk-title"},"每日安排",-1)),i("div",Eb,[At(" 共 "+F(A.value.total)+" 项 · 完成 "+F(A.value.done)+" 项 · 计划 "+F(ne(A.value.plannedMin))+" · 实际投入 "+F(ne(A.value.actualMin))+" ",1),Ie.value?(x(),E(Oe,{key:0},[C[19]||(C[19]=At(" · ",-1)),C[20]||(C[20]=i("span",{class:"timer-live"},"计时中",-1))],64)):me("",!0)])]),i("div",Ab,[i("button",{class:"icon-btn",title:"前一天",onClick:q},[be(He,{name:"chevron-left",size:16})]),i("span",{class:ze(["date-chip num",{today:M.value}])},F(ae.value.slice(5))+" "+F(_(ae.value)),3),i("button",{class:"icon-btn",title:"后一天",onClick:oe},[be(He,{name:"chevron-right",size:16})]),i("button",{class:ze(["btn btn-sm",{"btn-primary":!M.value}]),onClick:j},"今天",2),i("button",{class:"btn btn-primary btn-sm",onClick:it},[be(He,{name:"plus",size:14}),C[22]||(C[22]=At(" 添加计划",-1))])])]),i("div",Tb,[!ue.value&&!de.value.length?(x(),E("div",Pb,"今天还没有计划,点「添加计划」开始规划。")):me("",!0),(x(!0),E(Oe,null,st(de.value,D=>(x(),E("div",{key:D.id,class:ze(["plan-item",{done:D.status==="done",skip:D.status==="skip",running:!!D.timer_started_at}])},[i("div",Ob,[At(F(D.start_time),1),i("span",Mb," - "+F(D.end_time),1)]),i("div",Ib,[i("div",jb,[i("span",Db,F(D.kind),1),D.goal_id?(x(),E("span",Lb,"长期")):me("",!0),i("span",{class:ze(["pi-text",{strike:D.status==="done"}])},F(D.title),3),D.status==="done"?(x(),E("span",Rb,"已完成")):D.status==="skip"?(x(),E("span",Kb,"已跳过")):me("",!0)]),D.note?(x(),E("div",Nb,F(D.note),1)):me("",!0),i("div",Fb,[D.timer_started_at?(x(),E("span",Vb,"计时中 · 已 "+F(Se(D))+" 分钟",1)):D.actual_minutes>0?(x(),E(Oe,{key:1},[At("实际投入 "+F(D.actual_minutes)+" 分钟",1)],64)):me("",!0)])]),i("div",Bb,[D.status!=="done"?(x(),E("button",{key:0,class:ze(["btn btn-xs",{"timer-on":!!D.timer_started_at}]),onClick:re=>_e(D)},F(D.timer_started_at?"停止计时":"计时"),11,Ub)):me("",!0),D.status!=="done"?(x(),E("button",{key:1,class:"btn btn-xs",onClick:re=>Me(D,"done")},"完成",8,qb)):me("",!0),D.status==="todo"?(x(),E("button",{key:2,class:"btn btn-xs",onClick:re=>Me(D,"skip")},"跳过",8,Hb)):me("",!0),D.status!=="todo"?(x(),E("button",{key:3,class:"btn btn-xs",onClick:re=>Me(D,"todo")},"恢复",8,zb)):me("",!0),i("button",{class:"icon-btn",title:"编辑",onClick:re=>Te(D)},[be(He,{name:"edit",size:14})],8,Wb),i("button",{class:"icon-btn",title:"删除",onClick:re=>xt(D)},[be(He,{name:"close",size:14})],8,Gb)])],2))),128))]),(x(),Ct($n,{to:"body"},[qe.value?(x(),E("div",{key:0,class:"mask",onClick:C[7]||(C[7]=Ut(D=>qe.value=!1,["self"]))},[i("div",Yb,[i("div",Jb,[i("span",Xb,F(Ue.value?"编辑计划":"添加计划"),1),i("button",{class:"icon-btn",onClick:C[0]||(C[0]=D=>qe.value=!1)},[be(He,{name:"close",size:16})])]),i("div",Qb,[i("div",Zb,[C[23]||(C[23]=i("label",null,"计划内容(学什么、做什么)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":C[1]||(C[1]=D=>tt.value=D),placeholder:"如:产品文档第三章 / 晨跑 5 公里",onKeydown:Lt(kt,["enter"])},null,544),[[Le,tt.value]])]),i("div",ew,[C[24]||(C[24]=i("label",null,"类别",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":C[2]||(C[2]=D=>Ye.value=D)},[(x(),E(Oe,null,st(lt,D=>i("option",{key:D,value:D},F(D),9,tw)),64))],512),[[vs,Ye.value]])]),i("div",nw,[i("div",null,[C[25]||(C[25]=i("label",null,"开始时间",-1)),Pe(i("input",{class:"input",type:"time","onUpdate:modelValue":C[3]||(C[3]=D=>We.value=D)},null,512),[[Le,We.value]])]),i("div",null,[C[26]||(C[26]=i("label",null,"结束时间",-1)),Pe(i("input",{class:"input",type:"time","onUpdate:modelValue":C[4]||(C[4]=D=>le.value=D)},null,512),[[Le,le.value]])])]),i("div",sw,[C[27]||(C[27]=i("label",null,"备注(选填)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":C[5]||(C[5]=D=>Q.value=D),placeholder:"目标、资料、提醒等",onKeydown:Lt(kt,["enter"])},null,544),[[Le,Q.value]])]),Ae.value?(x(),E("div",ow,F(Ae.value),1)):me("",!0)]),i("div",rw,[i("button",{class:"btn btn-sm",onClick:C[6]||(C[6]=D=>qe.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:kt},F(Ue.value?"保存":"添加"),1)])])])):me("",!0)])),(x(),Ct($n,{to:"body"},[o.value?(x(),E("div",{key:0,class:"mask",onClick:C[15]||(C[15]=Ut(D=>o.value=!1,["self"]))},[i("div",aw,[i("div",iw,[i("span",lw,F(r.value?"编辑长期计划":"新建长期计划"),1),i("button",{class:"icon-btn",onClick:C[8]||(C[8]=D=>o.value=!1)},[be(He,{name:"close",size:16})])]),i("div",uw,[i("div",cw,[C[28]||(C[28]=i("label",null,"计划名称(落实为每天一条任务)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":C[9]||(C[9]=D=>l.value=D),placeholder:"如:产品文档学习 / 健身月计划"},null,512),[[Le,l.value]])]),i("div",dw,[C[29]||(C[29]=i("label",null,"类别",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":C[10]||(C[10]=D=>u.value=D)},[(x(),E(Oe,null,st(lt,D=>i("option",{key:D,value:D},F(D),9,fw)),64))],512),[[vs,u.value]])]),i("div",pw,[i("div",null,[C[30]||(C[30]=i("label",null,"开始日期",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":C[11]||(C[11]=D=>f.value=D)},null,512),[[Le,f.value]])]),i("div",null,[C[31]||(C[31]=i("label",null,"结束日期",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":C[12]||(C[12]=D=>v.value=D)},null,512),[[Le,v.value]])])]),i("div",vw,[C[32]||(C[32]=i("label",null,"备注(选填)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":C[13]||(C[13]=D=>y.value=D)},null,512),[[Le,y.value]])]),m.value?(x(),E("div",mw,F(m.value),1)):me("",!0),C[33]||(C[33]=i("div",{class:"muted goal-hint"},"创建后区间内每一天都会生成一条任务,可在每日安排中逐日打卡与计时。",-1))]),i("div",hw,[i("button",{class:"btn btn-sm",onClick:C[14]||(C[14]=D=>o.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:I},F(r.value?"保存":"创建"),1)])])])):me("",!0)])),be(xn,{open:!!w.value,title:"删除长期计划",message:w.value?"将删除「"+w.value.title+"」及其全部每日任务(含已完成记录),不可恢复。":"","confirm-text":"删除",danger:"",onCancel:C[16]||(C[16]=D=>w.value=null),onConfirm:J},null,8,["open","message"])]))}}),gw=Vt(yw,[["__scopeId","data-v-ffd19b28"]]),bw={class:"stats"},ww={class:"cards"},_w={class:"card stat-card"},kw={class:"stat-num num"},Cw={class:"card stat-card"},xw={class:"stat-num num"},$w={class:"card stat-card"},Sw={class:"stat-num num"},Ew={class:"card stat-card"},Aw={class:"stat-num num"},Tw={class:"card section"},Pw={class:"heat"},Ow=["title"],Mw={class:"two-col"},Iw={class:"card section"},jw={class:"bar-label"},Dw={class:"bar-track"},Lw={class:"muted num bar-num"},Rw={key:0,class:"muted"},Kw={class:"card section"},Nw={class:"bar-label"},Fw={class:"bar-track"},Vw={class:"muted num bar-num"},Bw={key:0,class:"muted"},Uw={class:"card section"},qw={class:"bar-label loc-label"},Hw={class:"bar-track"},zw={class:"muted num bar-num"},Ww={key:0,class:"muted"},Gw=Kt({__name:"StatsView",setup(e){const t=P({attendDays:0,totalHours:"0",itemCount:0,streak:0}),n=P([]),o=P([]),r=P([]),l=P([]);async function u(){const y=ut(),m="2000-01-01",w=await Promise.all([ms(),Xo(m,y),Qo(m,y),io(!0)]),T=w[0],$=w[1],I=w[2],J=w[3],ae=$.filter(_e=>_e.clock_in_at||_e.kind==="makeup");let de=0;for(const _e of ae){const Me=co(_e,_e.date,T,_e.date===y);de+=Me.workedMinutes??0}const ue=new Set(I.map(_e=>_e.date));let G=0,S=y;for(ue.has(S)||(S=Ft(y,-1));ue.has(S);)G++,S=Ft(S,-1);t.value={attendDays:ae.length,totalHours:(de/60).toFixed(1),itemCount:I.length,streak:G};const M=new Map;for(const _e of ae){const Me=_e.location||"未记录";M.set(Me,(M.get(Me)||0)+1)}l.value=Array.from(M.entries()).map(_e=>({name:_e[0],count:_e[1],percent:Math.round(_e[1]/(ae.length||1)*100)})).sort((_e,Me)=>Me.count-_e.count);const ee=I.length||1,q=await Zo(),oe=new Map;for(const _e of I)oe.set(_e.category,(oe.get(_e.category)||0)+1);const j=new Set(q);for(const _e of oe.keys())j.has(_e)||q.push(_e);o.value=q.map(_e=>{const Me=oe.get(_e)||0;return{key:_e,label:_e,count:Me,percent:Math.round(Me/ee*100)}}).filter(_e=>_e.count>0).sort((_e,Me)=>Me.count-_e.count);const A=new Map(J.map(_e=>[_e.id,_e.name])),O=new Map;for(const _e of I){const Me=_e.project_id?A.get(_e.project_id)||"已删除项目":"无项目";O.set(Me,(O.get(Me)||0)+1)}r.value=Array.from(O.entries()).map(_e=>({name:_e[0],count:_e[1],percent:Math.round(_e[1]/ee*100)})).sort((_e,Me)=>Me.count-_e.count);const ne=new Map;for(const _e of I)ne.set(_e.date,(ne.get(_e.date)||0)+1);const Ie=Zs(y),Se=[];for(let _e=11;_e>=0;_e--){const Me=Ft(Ie,-7*_e),qe=[];for(let Ue=0;Ue<7;Ue++){const tt=Ft(Me,Ue);qe.push({date:tt,count:ne.get(tt)||0})}Se.push(qe)}n.value=Se}cn(async()=>{await u()}),pt(Jo,()=>{u()});function f(y){return y===0?0:y===1?1:y<=3?2:y<=5?3:4}function v(y,m){return y+" · "+(m?m+" 条":"无记录")}return(y,m)=>(x(),E("div",bw,[i("div",ww,[i("div",_w,[m[0]||(m[0]=i("div",{class:"muted"},"出勤天数",-1)),i("div",kw,F(t.value.attendDays),1)]),i("div",Cw,[m[1]||(m[1]=i("div",{class:"muted"},"累计工时(小时)",-1)),i("div",xw,F(t.value.totalHours),1)]),i("div",$w,[m[2]||(m[2]=i("div",{class:"muted"},"记录条数",-1)),i("div",Sw,F(t.value.itemCount),1)]),i("div",Ew,[m[3]||(m[3]=i("div",{class:"muted"},"连续记录(天)",-1)),i("div",Aw,F(t.value.streak),1)])]),i("div",Tw,[m[4]||(m[4]=i("div",{class:"section-title"},"记录热力图(近 12 周)",-1)),i("div",Pw,[(x(!0),E(Oe,null,st(n.value,(w,T)=>(x(),E("div",{key:T,class:"heat-col"},[(x(!0),E(Oe,null,st(w,$=>(x(),E("span",{key:$.date,class:ze(["heat-cell","lv"+f($.count)]),title:v($.date,$.count)},null,10,Ow))),128))]))),128))]),m[5]||(m[5]=ad('<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))]),i("div",Mw,[i("div",Iw,[m[6]||(m[6]=i("div",{class:"section-title"},"分类分布",-1)),(x(!0),E(Oe,null,st(o.value,w=>(x(),E("div",{key:w.key,class:"bar-row"},[i("span",jw,F(w.label),1),i("span",Dw,[i("span",{class:"bar-fill",style:pn({width:w.percent+"%"})},null,4)]),i("span",Lw,F(w.count)+" 条 · "+F(w.percent)+"%",1)]))),128)),o.value.length?me("",!0):(x(),E("div",Rw,"暂无数据"))]),i("div",Kw,[m[7]||(m[7]=i("div",{class:"section-title"},"项目投入",-1)),(x(!0),E(Oe,null,st(r.value,w=>(x(),E("div",{key:w.name,class:"bar-row"},[i("span",Nw,F(w.name),1),i("span",Fw,[i("span",{class:"bar-fill",style:pn({width:w.percent+"%"})},null,4)]),i("span",Vw,F(w.count)+" 条 · "+F(w.percent)+"%",1)]))),128)),r.value.length?me("",!0):(x(),E("div",Bw,"暂无数据"))])]),i("div",Uw,[m[8]||(m[8]=i("div",{class:"section-title"},"地点分布(按出勤天)",-1)),(x(!0),E(Oe,null,st(l.value,w=>(x(),E("div",{key:w.name,class:"bar-row"},[i("span",qw,F(w.name),1),i("span",Hw,[i("span",{class:"bar-fill",style:pn({width:w.percent+"%"})},null,4)]),i("span",zw,F(w.count)+" 天 · "+F(w.percent)+"%",1)]))),128)),l.value.length?me("",!0):(x(),E("div",Ww,"暂无数据"))])]))}}),Yw=Vt(Gw,[["__scopeId","data-v-5469ae68"]]);async function Jw(e,t,n){const o=ut(),r=await Promise.all([ms(),Xo(e,t),Qo(e,t),io(!0),Eh(e,t),Zo()]),l=r[0],u=r[1],f=r[2],v=r[3],y=r[4],m=r[5];let w=0,T=0,$=0;for(const O of u){(O.clock_in_at||O.kind==="makeup")&&w++,O.kind==="makeup"&&$++;const ne=co(O,O.date,l,O.date===o);T+=ne.workedMinutes??0}const I=new Map;for(const O of u){if(!(O.clock_in_at||O.kind==="makeup"))continue;const ne=O.location||"未记录";I.set(ne,(I.get(ne)||0)+1)}const J=Array.from(I.entries()).map(O=>({name:O[0],count:O[1]})).sort((O,ne)=>ne.count-O.count),ae=f.length||1,de=new Map;for(const O of f)de.set(O.category,(de.get(O.category)||0)+1);const ue=new Set(m);for(const O of de.keys())ue.has(O)||m.push(O);const G=m.map(O=>{const ne=de.get(O)||0;return{key:O,label:O,count:ne,percent:Math.round(ne/ae*100)}}).filter(O=>O.count>0).sort((O,ne)=>ne.count-O.count),S=new Map(v.map(O=>[O.id,O.name])),M=new Map;for(const O of f){const ne=O.project_id?S.get(O.project_id)||"已删除项目":"无项目";M.set(ne,(M.get(ne)||0)+1)}const ee=Array.from(M.entries()).map(O=>({name:O[0],count:O[1]})).sort((O,ne)=>ne.count-O.count),q=f.filter(O=>O.is_milestone===1).map(O=>({date:O.date,content:O.content})),oe=f.filter(O=>O.needs_followup===1).map(O=>({date:O.date,content:O.content,remark:O.remark||""})),j=f.filter(O=>!!O.takeaway).map(O=>({date:O.date,text:O.takeaway})),A=y.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:w,totalHours:(T/60).toFixed(1),makeupCount:$,leaveCount:u.filter(O=>O.kind==="leave").length,itemCount:f.length,categoryStats:G,projectStats:ee,locationStats:J,milestones:q,followups:oe,takeaways:j,weekNotes:A}}function Xw(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 Gi(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 Qw(e){const t=await Promise.all([Tt("ai_base_url",""),Tt("ai_api_key",""),Tt("ai_model","")]),n=t[0].trim().replace(/\/+$/,""),o=t[1].trim(),r=t[2].trim();if(!n||!r)throw new Error("请先在设置页配置 AI 接口地址与模型名称");const l=n+"/chat/completions",u={"Content-Type":"application/json"};o&&(u.Authorization="Bearer "+o);const v=JSON.stringify({model:r,messages:[{role:"system",content:"你是一名严谨的中文助理。请将用户提供的工作总结 Markdown 草稿润色为通顺、专业、简洁的工作总结。要求:保留原有章节结构与全部事实数据(数字、日期、条目),不得虚构或遗漏内容,只输出 Markdown 正文。"},{role:"user",content:e}],temperature:.3});let y;try{y=await fetch(l,{method:"POST",headers:u,body:v})}catch{throw new Error("无法访问 AI 接口:请检查地址是否正确、服务端是否允许浏览器跨域访问")}if(!y.ok){let T="接口返回 "+y.status;try{const $=await y.json();$&&$.error&&$.error.message&&(T+=":"+$.error.message)}catch{}throw new Error(T)}const m=await y.json(),w=m&&m.choices&&m.choices[0]&&m.choices[0].message&&m.choices[0].message.content;if(!w)throw new Error("接口未返回内容");return String(w)}const Zw={class:"report"},e_={class:"report-toolbar"},t_={class:"seg"},n_=["onClick"],s_=["disabled"],o_=["disabled"],r_={key:0,class:"ai-error"},a_={class:"report-grid"},i_={class:"report-left"},l_={class:"card section"},u_={class:"section-title"},c_={class:"muted note-saved"},d_={class:"card section"},f_={class:"report-right"},p_={key:0,class:"card section"},v_={class:"sum-row"},m_={class:"num"},h_={class:"sum-row"},y_={class:"num"},g_={class:"sum-row"},b_={class:"num"},w_={class:"sum-row"},__={class:"num"},k_={class:"sum-row"},C_={class:"num"},x_={class:"muted"},$_={class:"num"},S_={key:0,class:"muted sum-empty"},E_={class:"muted"},A_={key:1,class:"muted sum-empty"},T_={class:"muted"},P_={key:2,class:"muted sum-empty"},O_={class:"muted"},M_={key:3,class:"muted sum-empty"},I_=Kt({__name:"ReportView",setup(e){const t=[{key:"week",label:"本周"},{key:"month",label:"本月"},{key:"all",label:"全部"},{key:"custom",label:"自定义"}],n=P("week"),o=P(Zs(ut())),r=P(ut()),l=P(null),u=P(""),f=P(!1),v=P(!1),y=P(null),m=P(""),w=P(Zs(ut())),T=P(""),$=P(""),I=P(""),J=P(!1);async function ae(){const oe=await bl(w.value);T.value=(oe==null?void 0:oe.highlights)||"",$.value=(oe==null?void 0:oe.challenges)||"",I.value=(oe==null?void 0:oe.plan_next)||"",J.value=!1}async function de(){await Sh(w.value,{highlights:T.value.trim()||null,challenges:$.value.trim()||null,plan_next:I.value.trim()||null}),J.value=!0,await G()}function ue(oe){const j=ut();if(oe==="week"){const A=Zs(j);return{start:A,end:Ft(A,6),label:"本周"}}if(oe==="month"){const A=j.slice(0,7);return{start:A+"-01",end:j,label:A+" 本月"}}return oe==="all"?{start:"2000-01-01",end:j,label:"全部实习期"}:{start:o.value,end:r.value,label:o.value+" ~ "+r.value}}async function G(){f.value=!0;const oe=ue(n.value),j=await Jw(oe.start,oe.end,oe.label);l.value=j,u.value=Xw(j),f.value=!1}pt(n,G),pt([o,r],()=>{n.value==="custom"&&G()}),cn(async()=>{await ae(),await G()});async function S(){const oe=ut().replace(/-/g,""),j=await Ea("实习工作总结_"+oe+".md",u.value);Ve(j?"总结已导出到:"+j:"总结已导出到系统下载目录")}async function M(){await Gi(u.value),Ve("总结已复制到剪贴板")}async function ee(){if(v.value)return;m.value="";const oe=u.value.trim();if(!oe){m.value="当前草稿为空,无法润色";return}v.value=!0;try{y.value=u.value,u.value=await Qw(oe),Ve("AI 润色完成")}catch(j){y.value=null,m.value=j instanceof Error?j.message:"润色失败"}v.value=!1}function q(){y.value!==null&&(u.value=y.value),y.value=null}return(oe,j)=>(x(),E("div",Zw,[i("div",e_,[i("div",t_,[(x(),E(Oe,null,st(t,A=>i("button",{key:A.key,class:ze(["seg-btn",{active:n.value===A.key}]),onClick:O=>n.value=A.key},F(A.label),11,n_)),64))]),n.value==="custom"?(x(),E(Oe,{key:0},[Pe(i("input",{type:"date",class:"input w-date","onUpdate:modelValue":j[0]||(j[0]=A=>o.value=A)},null,512),[[Le,o.value]]),j[6]||(j[6]=i("span",{class:"muted"},"至",-1)),Pe(i("input",{type:"date",class:"input w-date","onUpdate:modelValue":j[1]||(j[1]=A=>r.value=A)},null,512),[[Le,r.value]])],64)):me("",!0),j[10]||(j[10]=i("span",{class:"flex1"},null,-1)),i("button",{class:"btn btn-sm",disabled:v.value,onClick:ee},[be(He,{name:"edit",size:14}),j[7]||(j[7]=At("AI 润色 ",-1))],8,s_),y.value!==null?(x(),E("button",{key:1,class:"btn btn-sm",onClick:q},"还原润色前")):me("",!0),i("button",{class:"btn btn-sm",disabled:f.value,onClick:G},[be(He,{name:"edit",size:14}),j[8]||(j[8]=At("重新生成 ",-1))],8,o_),i("button",{class:"btn btn-sm",onClick:M},"复制"),i("button",{class:"btn btn-primary btn-sm",onClick:S},[be(He,{name:"export",size:14}),j[9]||(j[9]=At("导出 Markdown ",-1))])]),m.value?(x(),E("div",r_,F(m.value),1)):me("",!0),i("div",a_,[i("div",i_,[i("div",l_,[i("div",u_,"本周周记("+F(w.value)+" 起)",1),j[11]||(j[11]=i("label",{class:"note-label muted"},"本周亮点",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":j[2]||(j[2]=A=>T.value=A),placeholder:"本周最有价值的一件事",onBlur:de},null,544),[[Le,T.value]]),j[12]||(j[12]=i("label",{class:"note-label muted"},"踩的坑",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":j[3]||(j[3]=A=>$.value=A),placeholder:"遇到的问题与教训",onBlur:de},null,544),[[Le,$.value]]),j[13]||(j[13]=i("label",{class:"note-label muted"},"下周计划",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":j[4]||(j[4]=A=>I.value=A),placeholder:"下周准备做什么",onBlur:de},null,544),[[Le,I.value]]),i("div",c_,F(J.value?"已保存":"失焦自动保存"),1)]),i("div",d_,[j[14]||(j[14]=i("div",{class:"section-title"},"总结草稿(可编辑)",-1)),Pe(i("textarea",{class:"textarea md-editor","onUpdate:modelValue":j[5]||(j[5]=A=>u.value=A),spellcheck:"false"},null,512),[[Le,u.value]])])]),i("div",f_,[l.value?(x(),E("div",p_,[j[20]||(j[20]=i("div",{class:"section-title"},"数据摘要",-1)),i("div",v_,[j[15]||(j[15]=i("span",{class:"muted"},"出勤",-1)),i("span",m_,F(l.value.attendDays)+" 天",1)]),i("div",h_,[j[16]||(j[16]=i("span",{class:"muted"},"工时",-1)),i("span",y_,F(l.value.totalHours)+" 小时",1)]),i("div",g_,[j[17]||(j[17]=i("span",{class:"muted"},"补卡",-1)),i("span",b_,F(l.value.makeupCount)+" 次",1)]),i("div",w_,[j[18]||(j[18]=i("span",{class:"muted"},"请假",-1)),i("span",__,F(l.value.leaveCount)+" 天",1)]),i("div",k_,[j[19]||(j[19]=i("span",{class:"muted"},"记录",-1)),i("span",C_,F(l.value.itemCount)+" 条",1)]),j[21]||(j[21]=i("div",{class:"section-sub"},"分类分布",-1)),(x(!0),E(Oe,null,st(l.value.categoryStats,A=>(x(),E("div",{key:A.key,class:"sum-row"},[i("span",x_,F(A.label),1),i("span",$_,F(A.count)+" 条 · "+F(A.percent)+"%",1)]))),128)),l.value.categoryStats.length?me("",!0):(x(),E("div",S_,"(无)")),j[22]||(j[22]=i("div",{class:"section-sub"},"主要成果",-1)),(x(!0),E(Oe,null,st(l.value.milestones,(A,O)=>(x(),E("div",{key:"m"+O,class:"sum-item"},[At(F(A.content),1),i("span",E_,"("+F(A.date)+")",1)]))),128)),l.value.milestones.length?me("",!0):(x(),E("div",A_,"(无)")),j[23]||(j[23]=i("div",{class:"section-sub"},"待跟进",-1)),(x(!0),E(Oe,null,st(l.value.followups,(A,O)=>(x(),E("div",{key:"f"+O,class:"sum-item"},[At(F(A.content),1),i("span",T_,"("+F(A.date)+")",1)]))),128)),l.value.followups.length?me("",!0):(x(),E("div",P_,"(无)")),j[24]||(j[24]=i("div",{class:"section-sub"},"学习与成长",-1)),(x(!0),E(Oe,null,st(l.value.takeaways,(A,O)=>(x(),E("div",{key:"t"+O,class:"sum-item"},[At(F(A.text),1),i("span",O_,"("+F(A.date)+")",1)]))),128)),l.value.takeaways.length?me("",!0):(x(),E("div",M_,"(无)"))])):me("",!0)])])]))}}),j_=Vt(I_,[["__scopeId","data-v-7e1b08ed"]]),D_=["aria-label"],L_={class:"dialog-head"},R_={class:"dialog-title"},K_={class:"dialog-body"},N_={class:"form-grid"},F_={class:"field span2"},V_={class:"seg"},B_={class:"field"},U_={class:"field"},q_={class:"field"},H_=["value"],z_={class:"add-cat"},W_=["onKeydown"],G_={key:0,class:"field span2"},Y_={class:"seg"},J_={class:"field span2"},X_={key:0,class:"form-error"},Q_={class:"dialog-btns"},Z_=Kt({__name:"TransactionDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=P("expense"),l=P(""),u=P(""),f=P(""),v=P(""),y=P(!1),m=P(!1),w=P(""),T=P(null);function $(S){n.open&&S.key==="Escape"&&o("cancel")}pt(()=>n.open,async S=>{var M;S?(await J(),r.value=n.initial.type==="income"?"income":"expense",l.value=n.initial.category,u.value=n.initial.amountYuan,f.value=n.initial.date,v.value=n.initial.note,y.value=n.initial.reimbursable===1,m.value=n.initial.reimbursed===1,w.value="",window.addEventListener("keydown",$),await Ks(),(M=T.value)==null||M.focus()):window.removeEventListener("keydown",$)}),bn(()=>window.removeEventListener("keydown",$)),pt(r,async()=>{await J(),l.value=I.value[0]||""});const I=P([]);async function J(){I.value=await la(r.value)}const ae=P("");async function de(){const S=ae.value.trim();if(S){if(I.value.includes(S)){ae.value="";return}I.value.push(S),await Wi(r.value,I.value),l.value=S,ae.value=""}}function ue(){return l.value&&I.value.includes(l.value)?l.value:I.value[0]}function G(){const S=String(u.value??"").trim(),M=Number(S);if(!S||!isFinite(M)||M<=0){w.value="请填写大于 0 的金额";return}if(!f.value){w.value="请选择日期";return}const ee=r.value==="expense"&&y.value?1:0;o("save",{type:r.value,category:ue(),amount:Math.round(M*100),date:f.value,note:String(v.value??"").trim(),reimbursable:ee,reimbursed:ee&&m.value?1:0})}return(S,M)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:M[12]||(M[12]=Ut(ee=>o("cancel"),["self"]))},[i("div",{class:"dialog",role:"dialog","aria-label":e.title},[i("div",L_,[i("span",R_,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:M[0]||(M[0]=ee=>o("cancel"))},[be(He,{name:"close",size:16})])]),i("div",K_,[i("div",N_,[i("div",F_,[M[13]||(M[13]=i("label",null,"类型",-1)),i("div",V_,[i("button",{class:ze(["seg-btn",{active:r.value==="expense"}]),onClick:M[1]||(M[1]=ee=>r.value="expense")},"支出",2),i("button",{class:ze(["seg-btn",{active:r.value==="income"}]),onClick:M[2]||(M[2]=ee=>r.value="income")},"收入",2)])]),i("div",B_,[M[14]||(M[14]=i("label",null,"金额(元)",-1)),Pe(i("input",{ref_key:"amountInput",ref:T,class:ze(["input amt-input",{invalid:w.value}]),"onUpdate:modelValue":M[3]||(M[3]=ee=>u.value=ee),type:"number",min:"0",step:"0.01",placeholder:"0.00",inputmode:"decimal"},null,2),[[Le,u.value]])]),i("div",U_,[M[15]||(M[15]=i("label",null,"日期",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":M[4]||(M[4]=ee=>f.value=ee)},null,512),[[Le,f.value]])]),i("div",q_,[M[16]||(M[16]=i("label",null,"分类",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":M[5]||(M[5]=ee=>l.value=ee)},[(x(!0),E(Oe,null,st(I.value,ee=>(x(),E("option",{key:ee,value:ee},F(ee),9,H_))),128))],512),[[vs,l.value]]),i("div",z_,[Pe(i("input",{class:"input add-cat-input","onUpdate:modelValue":M[6]||(M[6]=ee=>ae.value=ee),placeholder:"新增分类名",onKeydown:Lt(Ut(de,["prevent"]),["enter"])},null,40,W_),[[Le,ae.value]]),i("button",{class:"btn btn-xs",type:"button",onClick:de},"添加")])]),r.value==="expense"?(x(),E("div",G_,[M[17]||(M[17]=i("label",null,"报销状态",-1)),i("div",Y_,[i("button",{class:ze(["seg-btn",{active:!y.value}]),onClick:M[7]||(M[7]=ee=>{y.value=!1,m.value=!1})},"无需报销",2),i("button",{class:ze(["seg-btn",{active:y.value&&!m.value}]),onClick:M[8]||(M[8]=ee=>{y.value=!0,m.value=!1})},"待报销",2),i("button",{class:ze(["seg-btn",{active:y.value&&m.value}]),onClick:M[9]||(M[9]=ee=>{y.value=!0,m.value=!0})},"已报销",2)])])):me("",!0),i("div",J_,[M[18]||(M[18]=i("label",null,"备注",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":M[10]||(M[10]=ee=>v.value=ee),placeholder:"选填"},null,512),[[Le,v.value]])])]),w.value?(x(),E("div",X_,F(w.value),1)):me("",!0)]),i("div",Q_,[i("button",{class:"btn btn-sm",onClick:M[11]||(M[11]=ee=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:G},"保存")])],8,D_)])):me("",!0)]),_:1})]))}}),e1=Vt(Z_,[["__scopeId","data-v-e9a4e878"]]);function wl(e,t){return Ho(e,t-1)}function Hd(e,t){return Ft(Ho(e,t),-1)}function Wu(e,t){if(!e||t<e)return 0;let n=(Number(t.slice(0,4))-Number(e.slice(0,4)))*12+(Number(t.slice(5,7))-Number(e.slice(5,7)))+1;return n<1&&(n=1),n>1&&t<wl(e,n)&&n--,n}function t1(e){return Number(e.slice(5,7))+"."+Number(e.slice(8,10))}function ua(e,t){return e.slice(0,4)===t.slice(0,4)?t1(e):e.split("-").join(".")}function Yi(e,t){return ua(e,t)+" – "+ua(t,e)}const n1={class:"dialog period-dialog",role:"dialog","aria-label":"统计周期"},s1={class:"dialog-head"},o1={class:"dialog-body"},r1={class:"seg seg-row"},a1={key:0,class:"pane"},i1=["onClick"],l1={key:0,class:"hint"},u1={key:1,class:"pane"},c1={class:"anchor-row"},d1=["disabled"],f1={key:0,class:"hint"},p1={key:1,class:"hint"},v1={class:"muted num"},m1=["onClick"],h1={class:"muted num"},y1={key:2,class:"pane"},g1={class:"custom-grid"},b1={class:"field"},w1={class:"field"},_1={key:0,class:"form-error"},k1={class:"dialog-btns"},C1=Kt({__name:"PeriodDialog",props:{open:{type:Boolean},mode:{},anchor:{default:""},month:{},cycleSel:{},customStart:{},customEnd:{},cycleCount:{},hasBefore:{type:Boolean},months:{default:()=>[]}},emits:["close","apply","saveAnchor"],setup(e,{emit:t}){const n=e,o=t,r=P(n.mode),l=P(n.month.slice(0,7)),u=P(n.cycleSel),f=P(n.customStart),v=P(n.customEnd),y=P(n.anchor),m=P("");function w(G){G.key==="Escape"&&o("close")}pt(()=>n.open,G=>{G?(r.value=n.mode,l.value=n.month.slice(0,7),u.value=n.cycleSel,f.value=n.customStart,v.value=n.customEnd,y.value=n.anchor,m.value="",window.addEventListener("keydown",w)):window.removeEventListener("keydown",w)}),pt(()=>[n.anchor,n.cycleSel],()=>{y.value=n.anchor,u.value=n.cycleSel}),bn(()=>window.removeEventListener("keydown",w));const T=nt(()=>{const G=new Set(n.months);return G.add(l.value),G.add(ut().slice(0,7)),Array.from(G).sort((S,M)=>S<M?1:-1)}),$=nt(()=>n.anchor?ua(Ft(n.anchor,-1),n.anchor):"");function I(G){return G.slice(0,4)+" 年 "+Number(G.slice(5,7))+" 月"}function J(G){l.value=G,o("apply",{mode:"month",month:G}),o("close")}function ae(G){u.value=G,o("apply",{mode:"cycle",cycle:G}),o("close")}function de(){y.value&&o("saveAnchor",y.value)}function ue(){if(!f.value||!v.value){m.value="请选择开始和结束日期";return}if(f.value>v.value){m.value="开始日期不能晚于结束日期";return}m.value="",o("apply",{mode:"custom",customStart:f.value,customEnd:v.value}),o("close")}return(G,S)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:S[9]||(S[9]=Ut(M=>o("close"),["self"]))},[i("div",n1,[i("div",s1,[S[10]||(S[10]=i("span",{class:"dialog-title"},"统计周期",-1)),i("button",{class:"icon-btn",title:"关闭",onClick:S[0]||(S[0]=M=>o("close"))},[be(He,{name:"close",size:16})])]),i("div",o1,[i("div",r1,[i("button",{class:ze(["seg-btn",{active:r.value==="month"}]),onClick:S[1]||(S[1]=M=>r.value="month")},"按月",2),i("button",{class:ze(["seg-btn",{active:r.value==="cycle"}]),onClick:S[2]||(S[2]=M=>r.value="cycle")},"按期",2),i("button",{class:ze(["seg-btn",{active:r.value==="custom"}]),onClick:S[3]||(S[3]=M=>r.value="custom")},"自定义",2)]),r.value==="month"?(x(),E("div",a1,[(x(!0),E(Oe,null,st(T.value,M=>(x(),E("button",{key:M,class:ze(["opt",{active:M===l.value}]),onClick:ee=>J(M)},[i("span",null,F(I(M)),1),M===l.value?(x(),Ct(He,{key:0,name:"check-circle",size:15})):me("",!0)],10,i1))),128)),T.value.length?me("",!0):(x(),E("div",l1,"还没有账目记录"))])):r.value==="cycle"?(x(),E("div",u1,[i("div",c1,[S[11]||(S[11]=i("span",{class:"anchor-label"},"账期起点",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":S[4]||(S[4]=M=>y.value=M)},null,512),[[Le,y.value]]),i("button",{class:"btn btn-sm",disabled:!y.value||y.value===e.anchor,onClick:de},"保存",8,d1)]),y.value?y.value!==e.anchor?(x(),E("div",p1,"起点已修改,保存后按新起点重新切分")):me("",!0):(x(),E("div",f1,"填写实习开始日期并保存,自动切分为第 1、2、3…期(每期到下月同日前一天)")),e.anchor?(x(),E(Oe,{key:2},[e.hasBefore?(x(),E("button",{key:0,class:ze(["opt",{active:u.value==="before"}]),onClick:S[5]||(S[5]=M=>ae("before"))},[S[12]||(S[12]=i("span",null,"起点前",-1)),i("span",v1,"~ "+F($.value),1)],2)):me("",!0),(x(!0),E(Oe,null,st(e.cycleCount,M=>(x(),E("button",{key:M,class:ze(["opt",{active:u.value===M}]),onClick:ee=>ae(M)},[i("span",null,"第 "+F(M)+" 期",1),i("span",h1,F(Wt(Yi)(Wt(wl)(e.anchor,M),Wt(Hd)(e.anchor,M))),1)],10,m1))),128))],64)):me("",!0)])):(x(),E("div",y1,[i("div",g1,[i("div",b1,[S[13]||(S[13]=i("label",null,"开始日期",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":S[6]||(S[6]=M=>f.value=M)},null,512),[[Le,f.value]])]),i("div",w1,[S[14]||(S[14]=i("label",null,"结束日期",-1)),Pe(i("input",{class:"input",type:"date","onUpdate:modelValue":S[7]||(S[7]=M=>v.value=M)},null,512),[[Le,v.value]])])]),m.value?(x(),E("div",_1,F(m.value),1)):me("",!0),i("button",{class:"btn btn-primary apply-btn",onClick:ue},"应用区间")]))]),i("div",k1,[i("button",{class:"btn btn-sm",onClick:S[8]||(S[8]=M=>o("close"))},"关闭")])])])):me("",!0)]),_:1})]))}}),x1=Vt(C1,[["__scopeId","data-v-6269639e"]]),$1={class:"ledger-page"},S1={class:"ledger-toolbar"},E1=["disabled"],A1={class:"num"},T1=["disabled"],P1={class:"cards"},O1={class:"card stat-card stat-income"},M1={class:"stat-num num amt-income"},I1={class:"card stat-card stat-expense"},j1={class:"stat-num num"},D1={class:"card stat-card stat-balance"},L1={class:"card stat-card stat-pending"},R1={class:"stat-num num amt-warn"},K1={class:"card sec chart-sec"},N1={key:0,class:"chart-hint muted"},F1={key:1,class:"chart-wrap"},V1={class:"chart"},B1=["title"],U1={class:"chart-bars"},q1={class:"chart-axis"},H1={key:2,class:"empty muted"},z1={key:0,class:"card sec"},W1={class:"sec-head"},G1={class:"seg"},Y1={class:"chip-row"},J1=["onClick"],X1={key:0,class:"sel-strip"},Q1={class:"num"},Z1=["title"],e0={class:"bar-label"},t0={class:"bar-track"},n0={class:"bar-amt num"},s0={class:"bar-pct num muted"},o0={key:1,class:"card section"},r0={class:"form-error"},a0={class:"card table-card"},i0={class:"tx-table"},l0={class:"num","data-label":"日期"},u0={"data-label":"分类"},c0={class:"tag"},d0={class:"td-note","data-label":"备注"},f0={"data-label":"报销"},p0={key:0,class:"muted"},v0={key:1,class:"tx-done"},m0={key:2,class:"tx-pending"},h0={class:"ops-cell"},y0={class:"ops"},g0=["onClick"],b0=["onClick"],w0=["onClick"],_0={key:0},k0={class:"muted table-note num"},Gu="dsh_ledger_mode",Yu="dsh_ledger_cycle",Ju="dsh_ledger_cstart",Xu="dsh_ledger_cend",C0="0000-01-01",x0=Kt({__name:"LedgerView",setup(e){const t=["#3370FF","#23A757","#7A5AF8","#0EA5A0","#E8842C","#D96D5A","#5B7A99","#B56CC6"];function n(V){let te=0;for(let R=0;R<V.length;R++)te=te*31+V.charCodeAt(R)>>>0;return t[te%t.length]}function o(V){return(V/100).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}const r=P("month"),l=P(ut()),u=P(1),f=P(ut().slice(0,7)+"-01"),v=P(ut()),y=P(""),m=P(!1),w=P([]),T=P([]),$=P(!0),I=P(""),J=P(!1),ae=P(null),de=P({type:"expense",category:"",amountYuan:"",date:ut(),note:"",reimbursable:0,reimbursed:0}),ue=P(null),G=P(!1);function S(V){const te=Number(V.slice(0,4)),R=Number(V.slice(5,7))-1,L=new Date(te,R+1,0).getDate();return V+"-"+(L<10?"0"+L:String(L))}const M=nt(()=>y.value?Math.max(1,Wu(y.value,ut())):1),ee=nt(()=>r.value==="month"?l.value.slice(0,7)+"-01":r.value==="custom"?f.value:y.value?u.value==="before"?C0:wl(y.value,u.value):l.value.slice(0,7)+"-01"),q=nt(()=>r.value==="month"?S(l.value.slice(0,7)):r.value==="custom"?v.value:y.value?u.value==="before"?Ft(y.value,-1):Hd(y.value,u.value):S(l.value.slice(0,7))),oe=nt(()=>r.value==="month"?Number(l.value.slice(0,4))+" 年 "+Number(l.value.slice(5,7))+" 月":r.value==="custom"?Yi(ee.value,q.value):y.value?u.value==="before"?"起点前 · ~ "+ua(Ft(y.value,-1),y.value):"第 "+u.value+" 期 · "+Yi(ee.value,q.value):"按期统计 · 设置起点"),j=nt(()=>r.value==="month"?!0:r.value==="cycle"&&y.value?u.value==="before"?!1:u.value>1||m.value:!1),A=nt(()=>r.value==="month"?!0:r.value==="cycle"&&y.value?u.value==="before"?!0:u.value<M.value:!1);function O(V){if(r.value==="month"){l.value=Ho(l.value,V);return}if(r.value!=="cycle"||!y.value)return;if(u.value==="before"){V===1&&(u.value=1);return}const te=Number(u.value)+V;if(!(te>M.value)){if(te<1){m.value&&(u.value="before");return}u.value=te}}const ne=nt(()=>r.value==="month"?l.value.slice(0,7)!==ut().slice(0,7):r.value==="cycle"?!!y.value&&u.value!==M.value:!1);function Ie(){r.value==="cycle"?u.value=M.value:l.value=ut()}async function Se(){$.value=!0;try{T.value=await Gh(ee.value,q.value),I.value=""}catch(V){I.value="账目加载失败:"+(V instanceof Error?V.stack||V.message:String(V)),Ve("账目加载失败")}$.value=!1}cn(async()=>{const V=localStorage.getItem(Gu);(V==="month"||V==="cycle"||V==="custom")&&(r.value=V);const te=localStorage.getItem(Ju),R=localStorage.getItem(Xu);te&&R&&te<=R&&(f.value=te,v.value=R);const L=localStorage.getItem(Yu);L==="before"?u.value="before":L&&Number(L)>=1&&(u.value=Number(L)),y.value=await Tt("ledger.anchor",""),u.value!=="before"&&u.value>M.value&&(u.value=M.value),await Se()}),pt([ee,q],()=>{it.value=[],Se()}),pt(r,V=>localStorage.setItem(Gu,V)),pt(u,V=>localStorage.setItem(Yu,String(V))),pt([f,v],([V,te])=>{localStorage.setItem(Ju,V),localStorage.setItem(Xu,te)});async function _e(){try{w.value=await Zh(),m.value=y.value?await Uu(y.value)>0:!1}catch{}G.value=!0}function Me(V){r.value=V.mode,V.month&&(l.value=V.month+"-01"),V.cycle!==void 0&&(u.value=V.cycle),V.customStart&&(f.value=V.customStart),V.customEnd&&(v.value=V.customEnd)}async function qe(V){y.value=V,await Nt("ledger.anchor",V),r.value="cycle",u.value=Math.max(1,Wu(V,ut()));try{m.value=await Uu(V)>0}catch{}Ve("账期起点已保存,已按新起点切分期数")}const Ue=P([]);async function tt(){Ue.value=await la("expense")}tt();const Ye=nt(()=>T.value.slice().sort((V,te)=>V.date===te.date?te.id-V.id:V.date<te.date?1:-1)),We=nt(()=>{let V=0,te=0,R=0;for(const L of T.value)L.type==="income"?V+=L.amount:(te+=L.amount,L.reimbursable===1&&L.reimbursed!==1&&(R+=L.amount));return{income:V,expense:te,pending:R,balance:V-te}}),le=P(""),Q=nt(()=>{le.value="";const V=[],te=ee.value,R=q.value;if(!te||!R||te>R)return V;const L=Math.round((Gn(R).getTime()-Gn(te).getTime())/864e5)+1,fe=new Map,je=new Map;for(const et of T.value){const Bt=fe.get(et.date)||{i:0,e:0};et.type==="income"?Bt.i+=et.amount:Bt.e+=et.amount,fe.set(et.date,Bt);const bt=et.date.slice(0,7),wt=je.get(bt)||{i:0,e:0};et.type==="income"?wt.i+=et.amount:wt.e+=et.amount,je.set(bt,wt)}let Je=[],ft="day";if(L<=92){let et=te,Bt=0;for(;et<=R&&Bt<4e3;)Je.push(et),et=Ft(et,1),Bt++}else{ft="month";let et=te.slice(0,7);const Bt=R.slice(0,7);let bt=0;for(;et<=Bt&&bt<600;){Je.push(et);const wt=Number(et.slice(0,4)),Ne=Number(et.slice(5,7))-1,rn=new Date(wt,Ne+1,1);et=rn.getFullYear()+"-"+(rn.getMonth()+1<10?"0"+(rn.getMonth()+1):String(rn.getMonth()+1)),bt++}}if(!Je.length)return V;Je.length>120&&(ft==="day"?le.value="时间跨度较长,仅展示最近 120 天":le.value="时间跨度较长,仅展示最近 120 个月",Je=Je.slice(-120));const It=ft==="day"?fe:je,Ze=Math.max(1,Math.ceil(Je.length/8));return Je.forEach((et,Bt)=>{const bt=It.get(et)||{i:0,e:0};let wt="",Ne="";ft==="day"?(wt=Number(et.slice(5,7))+"."+Number(et.slice(8,10)),Ne=et+" · 支出 "+o(bt.e)+" · 收入 "+o(bt.i)):(wt=et.slice(2,4)+"."+Number(et.slice(5,7)),Ne=Number(et.slice(0,4))+" 年 "+Number(et.slice(5,7))+" 月 · 支出 "+o(bt.e)+" · 收入 "+o(bt.i)),V.push({label:wt,tip:Ne,income:bt.i,expense:bt.e,showLabel:Bt%Ze===0||Bt===Je.length-1})}),V}),Ae=nt(()=>{let V=0;for(const te of Q.value)V=Math.max(V,te.income,te.expense);return V||1}),lt=P("expense"),it=P([]);pt(lt,()=>{it.value=[]});function Te(V){const te=it.value.indexOf(V);te>=0?it.value.splice(te,1):it.value=[...it.value,V]}const kt=nt(()=>{const V=new Map;for(const te of T.value){if(te.type!==lt.value)continue;const R=V.get(te.category)||{name:te.category,amount:0,count:0};R.amount+=te.amount,R.count++,V.set(te.category,R)}return Array.from(V.values()).sort((te,R)=>R.amount-te.amount)}),xt=nt(()=>kt.value.reduce((V,te)=>V+te.amount,0)),Ke=nt(()=>kt.value.map(V=>({...V,color:n(V.name),percent:xt.value?Math.round(V.amount/xt.value*100):0,dim:it.value.length>0&&!it.value.includes(V.name)}))),_=nt(()=>{if(!it.value.length)return null;let V=0,te=0;for(const R of T.value)R.type!==lt.value||!it.value.includes(R.category)||(V+=R.amount,te++);return{cats:it.value.length,count:te,amount:V,percent:xt.value?Math.round(V/xt.value*100):0}}),g=P("all"),C=P("all"),D=nt(()=>Ye.value.filter(V=>!(g.value!=="all"&&V.type!==g.value||it.value.length&&!it.value.includes(V.category)||C.value==="pending"&&!(V.type==="expense"&&V.reimbursable===1&&V.reimbursed!==1)||C.value==="done"&&!(V.reimbursable===1&&V.reimbursed===1))));function re(V){return o(V)}function pe(V){return(V.type==="income"?"+":"-")+o(V.amount)}async function xe(V){await Qh(V.id),await Se(),Ve("已标记为已报销")}function we(V){ae.value=V.id,de.value={type:V.type,category:V.category,amountYuan:re(V.amount).replace(/,/g,""),date:V.date,note:V.note||"",reimbursable:V.reimbursable,reimbursed:V.reimbursed},J.value=!0}function ke(){ae.value=null,de.value={type:"expense",category:Ue.value[0]||"",amountYuan:"",date:ut(),note:"",reimbursable:0,reimbursed:0},J.value=!0}async function ve(V){if(ae.value){await Jh(ae.value,V),J.value=!1,await Se(),Ve("账目已更新");return}await Yh({type:V.type,category:V.category,amount:V.amount,date:V.date,note:V.note,reimbursable:V.reimbursable,reimbursed:V.reimbursed}),J.value=!1,await Se(),Ve("已记一笔")}async function Re(){ue.value&&ue.value.id&&await Xh(ue.value.id),ue.value=null,await Se(),Ve("账目已删除")}return(V,te)=>(x(),E("div",$1,[i("div",S1,[r.value!=="custom"?(x(),E("button",{key:0,class:"icon-btn",disabled:!j.value,title:"上一周期",onClick:te[0]||(te[0]=R=>O(-1))},[be(He,{name:"chevron-left",size:16})],8,E1)):me("",!0),i("button",{class:"period-title",title:"选择统计周期",onClick:_e},[i("span",A1,F(oe.value),1),be(He,{name:"chevron-down",size:14})]),r.value!=="custom"?(x(),E("button",{key:1,class:"icon-btn",disabled:!A.value,title:"下一周期",onClick:te[1]||(te[1]=R=>O(1))},[be(He,{name:"chevron-right",size:16})],8,T1)):me("",!0),ne.value?(x(),E("button",{key:2,class:"btn btn-sm",onClick:Ie},F(r.value==="cycle"?"回到本期":"回到本月"),1)):me("",!0),te[13]||(te[13]=i("span",{class:"flex1"},null,-1)),Pe(i("select",{class:"select w-filter","onUpdate:modelValue":te[2]||(te[2]=R=>g.value=R)},[...te[10]||(te[10]=[i("option",{value:"all"},"全部类型",-1),i("option",{value:"expense"},"仅支出",-1),i("option",{value:"income"},"仅收入",-1)])],512),[[vs,g.value]]),Pe(i("select",{class:"select w-filter","onUpdate:modelValue":te[3]||(te[3]=R=>C.value=R)},[...te[11]||(te[11]=[i("option",{value:"all"},"全部报销",-1),i("option",{value:"pending"},"待报销",-1),i("option",{value:"done"},"已报销",-1)])],512),[[vs,C.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:ke},[be(He,{name:"plus",size:14}),te[12]||(te[12]=At(" 记一笔",-1))])]),i("div",P1,[i("div",O1,[te[14]||(te[14]=i("div",{class:"muted"},"本期收入(元)",-1)),i("div",M1,F(re(We.value.income)),1)]),i("div",I1,[te[15]||(te[15]=i("div",{class:"muted"},"本期支出(元)",-1)),i("div",j1,F(re(We.value.expense)),1)]),i("div",D1,[te[16]||(te[16]=i("div",{class:"muted"},"本期结余(元)",-1)),i("div",{class:ze(["stat-num num",{"amt-income":We.value.balance>=0,"amt-expense":We.value.balance<0}])},F(re(We.value.balance)),3)]),i("div",L1,[te[17]||(te[17]=i("div",{class:"muted"},"待报销(元)",-1)),i("div",R1,F(re(We.value.pending)),1)])]),i("div",K1,[te[18]||(te[18]=ad('<div class="sec-head" data-v-f021b1ed><span class="sec-title" data-v-f021b1ed>每日收支</span><span class="legend muted" data-v-f021b1ed><i class="lg" style="background:var(--ok);" data-v-f021b1ed></i>收入 <i class="lg" style="background:var(--text-3);" data-v-f021b1ed></i>支出 </span></div>',1)),le.value?(x(),E("div",N1,F(le.value),1)):me("",!0),Q.value.length?(x(),E("div",F1,[i("div",V1,[(x(!0),E(Oe,null,st(Q.value,(R,L)=>(x(),E("div",{key:L,class:"chart-col",title:R.tip},[i("div",U1,[i("div",{class:"cbar cbar-income",style:pn({height:Math.round(R.income/Ae.value*100)+"%"})},null,4),i("div",{class:"cbar cbar-expense",style:pn({height:Math.round(R.expense/Ae.value*100)+"%"})},null,4)])],8,B1))),128))]),i("div",q1,[(x(!0),E(Oe,null,st(Q.value,(R,L)=>(x(),E("span",{key:L,class:"chart-label num"},F(R.showLabel?R.label:""),1))),128))])])):(x(),E("div",H1,"本周期暂无账目"))]),kt.value.length?(x(),E("div",z1,[i("div",W1,[te[19]||(te[19]=i("span",{class:"sec-title"},"分类统计",-1)),i("div",G1,[i("button",{class:ze(["seg-btn",{active:lt.value==="expense"}]),onClick:te[4]||(te[4]=R=>lt.value="expense")},"支出",2),i("button",{class:ze(["seg-btn",{active:lt.value==="income"}]),onClick:te[5]||(te[5]=R=>lt.value="income")},"收入",2)])]),i("div",Y1,[i("button",{class:ze(["chip",{active:!it.value.length}]),onClick:te[6]||(te[6]=R=>it.value=[])},"全部",2),(x(!0),E(Oe,null,st(kt.value,R=>(x(),E("button",{key:R.name,class:ze(["chip",{active:it.value.includes(R.name)}]),onClick:L=>Te(R.name)},F(R.name),11,J1))),128))]),_.value?(x(),E("div",X1,[i("span",null,"已选 "+F(_.value.cats)+" 类 · "+F(_.value.count)+" 笔",1),i("span",Q1,F(re(_.value.amount))+" 元 · 占本期"+F(lt.value==="expense"?"支出":"收入")+" "+F(_.value.percent)+"%",1)])):me("",!0),(x(!0),E(Oe,null,st(Ke.value,R=>(x(),E("div",{key:R.name,class:ze(["bar-row",{dim:R.dim}]),title:R.count+" 笔"},[i("i",{class:"cat-dot",style:pn({background:R.color})},null,4),i("span",e0,F(R.name),1),i("span",t0,[i("span",{class:"bar-fill",style:pn({width:R.percent+"%",background:R.color})},null,4)]),i("span",n0,F(re(R.amount)),1),i("span",s0,F(R.percent)+"%",1)],10,Z1))),128))])):me("",!0),I.value?(x(),E("div",o0,[i("div",r0,F(I.value),1),te[20]||(te[20]=i("div",{class:"muted loc-note"},"请将上方完整错误文字发送给开发者",-1))])):me("",!0),i("div",a0,[i("table",i0,[te[22]||(te[22]=i("thead",null,[i("tr",null,[i("th",null,"日期"),i("th",null,"分类"),i("th",null,"金额(元)"),i("th",null,"备注"),i("th",null,"报销"),i("th",{class:"th-ops"},"操作")])],-1)),i("tbody",null,[(x(!0),E(Oe,null,st(D.value,R=>(x(),E("tr",{key:R.id},[i("td",l0,F(R.date),1),i("td",u0,[i("span",c0,F(R.category),1)]),i("td",{class:ze(["num",R.type==="income"?"amt-income":"amt-expense"]),"data-label":"金额"},F(pe(R)),3),i("td",d0,F(R.note||"--"),1),i("td",f0,[R.type!=="expense"||R.reimbursable!==1?(x(),E("span",p0,"--")):R.reimbursed===1?(x(),E("span",v0,"已报销")):(x(),E("span",m0,"待报销"))]),i("td",h0,[i("div",y0,[R.type==="expense"&&R.reimbursable===1&&R.reimbursed!==1?(x(),E("button",{key:0,class:"btn btn-xs",onClick:L=>xe(R)},"标记已报销",8,g0)):me("",!0),i("button",{class:"btn btn-xs",onClick:L=>we(R)},"编辑",8,b0),i("button",{class:"btn btn-xs",onClick:L=>ue.value=R},"删除",8,w0)])])]))),128)),!D.value.length&&!$.value?(x(),E("tr",_0,[...te[21]||(te[21]=[i("td",{colspan:"6",class:"empty muted"},"该周期暂无账目",-1)])])):me("",!0)])])]),i("div",k0,"本期 "+F(T.value.length)+" 条 · 当前筛选 "+F(D.value.length)+" 条",1),be(e1,{open:J.value,title:ae.value?"编辑账目":"记一笔",initial:de.value,onCancel:te[7]||(te[7]=R=>J.value=!1),onSave:ve},null,8,["open","title","initial"]),be(x1,{open:G.value,mode:r.value,anchor:y.value,month:l.value,"cycle-sel":u.value,"custom-start":f.value,"custom-end":v.value,"cycle-count":M.value,"has-before":m.value,months:w.value,onClose:te[8]||(te[8]=R=>G.value=!1),onApply:Me,onSaveAnchor:qe},null,8,["open","mode","anchor","month","cycle-sel","custom-start","custom-end","cycle-count","has-before","months"]),be(xn,{open:!!ue.value,title:"删除确认",message:ue.value?"将删除 "+ue.value.date+" 的账目("+ue.value.category+" "+re(ue.value.amount)+" 元)。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:te[9]||(te[9]=R=>ue.value=null),onConfirm:Re},null,8,["open","message"])]))}}),$0=Vt(x0,[["__scopeId","data-v-f021b1ed"]]),S0={class:"memo-page"},E0={class:"card memo-list"},A0={class:"pane-head"},T0={class:"pane-title"},P0={class:"memo-scroll"},O0=["onClick"],M0={class:"memo-item-title"},I0={class:"muted memo-item-sub"},j0={class:"muted num memo-item-time"},D0={key:0,class:"muted empty"},L0={class:"card memo-editor"},R0={class:"editor-foot"},K0={class:"muted foot-info"},N0=["disabled"],F0=["disabled"],V0={key:1,class:"empty muted editor-empty"},B0=Kt({__name:"MemoView",setup(e){const t=P([]),n=P(null),o=P(!1),r=P(""),l=P(""),u=P(null),f=P(null);async function v(){if(t.value=await Bh(),n.value&&n.value.id){const ee=t.value.find(q=>q.id===n.value.id);ee&&(n.value=ee)}}cn(async()=>{await v(),t.value.length&&w(t.value[0]),window.addEventListener("keydown",y)}),bn(()=>window.removeEventListener("keydown",y)),pt(Vi,async ee=>{if(!ee)return;t.value.length||await v();const q=t.value.find(oe=>oe.id===ee);Vi.value=null,q&&T(q)},{immediate:!0});function y(ee){(ee.ctrlKey||ee.metaKey)&&ee.key.toLowerCase()==="s"&&o.value&&m.value&&(ee.preventDefault(),ae())}const m=nt(()=>{if(!o.value)return!1;const ee=n.value?n.value.title:"",q=n.value?n.value.content:"";return r.value!==ee||l.value!==q});function w(ee){n.value=ee,o.value=!0,r.value=ee.title,l.value=ee.content}function T(ee){if(!(o.value&&n.value&&n.value.id===ee.id)){if(m.value){f.value={type:"select",memo:ee};return}w(ee)}}function $(){if(m.value){f.value={type:"new"};return}I()}function I(){n.value=null,o.value=!0,r.value="",l.value=""}function J(){n.value?w(n.value):I()}async function ae(){if(!r.value.trim()&&!l.value.trim()){Ve("标题与内容不能都为空");return}if(n.value&&n.value.id)await qh(n.value.id,r.value,l.value),Ve("备忘已保存");else{const ee=await Uh(r.value,l.value);n.value=ee,r.value=ee.title,l.value=ee.content,Ve("备忘已创建")}await v()}function de(){n.value&&n.value.id&&(u.value=n.value)}async function ue(){u.value&&u.value.id&&(await Hh(u.value.id),Ve("备忘已删除")),u.value=null,await v(),I()}function G(){const ee=f.value;f.value=null,ee&&(ee.type==="select"?w(ee.memo):I())}function S(ee){return(ee.content||"").replace(/\s+/g," ").slice(0,30)}function M(ee){return ee.replace("T"," ").slice(0,16)}return(ee,q)=>(x(),E("div",S0,[i("aside",E0,[i("div",A0,[i("span",T0,"备忘录("+F(t.value.length)+")",1),i("button",{class:"btn btn-primary btn-sm",onClick:$},"新建")]),i("div",P0,[(x(!0),E(Oe,null,st(t.value,oe=>(x(),E("div",{key:oe.id,class:ze(["memo-item",{active:o.value&&n.value&&n.value.id===oe.id}]),onClick:j=>T(oe)},[i("div",M0,F(oe.title||"无标题"),1),i("div",I0,F(S(oe)||"空"),1),i("div",j0,F(M(oe.updated_at)),1)],10,O0))),128)),t.value.length?me("",!0):(x(),E("div",D0,"暂无备忘"))])]),i("section",L0,[o.value?(x(),E(Oe,{key:0},[Pe(i("input",{class:"input title-input","onUpdate:modelValue":q[0]||(q[0]=oe=>r.value=oe),placeholder:"标题"},null,512),[[Le,r.value]]),Pe(i("textarea",{class:"textarea content-textarea","onUpdate:modelValue":q[1]||(q[1]=oe=>l.value=oe),placeholder:"内容"},null,512),[[Le,l.value]]),i("div",R0,[i("span",K0,[m.value?(x(),E(Oe,{key:0},[At("有未保存修改")],64)):n.value&&n.value.id?(x(),E(Oe,{key:1},[At("更新于 "+F(M(n.value.updated_at)),1)],64)):(x(),E(Oe,{key:2},[At("新备忘")],64))]),q[4]||(q[4]=i("span",{class:"flex1"},null,-1)),n.value&&n.value.id?(x(),E("button",{key:0,class:"btn btn-sm",onClick:de},"删除")):me("",!0),i("button",{class:"btn btn-sm",disabled:!m.value,onClick:J},"放弃修改",8,N0),i("button",{class:"btn btn-primary btn-sm",disabled:!m.value,onClick:ae},"保存",8,F0)])],64)):(x(),E("div",V0,"选择左侧备忘,或点击右上角新建"))]),be(xn,{open:!!u.value,title:"删除确认",message:u.value?"将删除备忘「"+(u.value.title||"无标题")+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:q[2]||(q[2]=oe=>u.value=null),onConfirm:ue},null,8,["open","message"]),be(xn,{open:!!f.value,title:"未保存提示",message:"当前备忘有未保存的修改,继续操作将丢失这些修改。","confirm-text":"放弃修改并继续",onCancel:q[3]||(q[3]=oe=>f.value=null),onConfirm:G},null,8,["open"])]))}}),U0=Vt(B0,[["__scopeId","data-v-a0931fc7"]]),q0=["aria-label"],H0={class:"dialog-head"},z0={class:"dialog-title"},W0={class:"dialog-body"},G0={class:"form-grid"},Y0={class:"field span2"},J0={class:"field span2"},X0={class:"field span2"},Q0={class:"pwd-row"},Z0={class:"field span2"},ek={key:0,class:"form-error"},tk={class:"dialog-btns"},nk=Kt({__name:"CredentialDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=P(""),l=P(""),u=P(""),f=P(""),v=P(""),y=P(null);function m($){n.open&&$.key==="Escape"&&o("cancel")}pt(()=>n.open,async $=>{var I;$?(r.value=n.initial.system,l.value=n.initial.account,u.value=n.initial.password,f.value=n.initial.remark,v.value="",window.addEventListener("keydown",m),await Ks(),(I=y.value)==null||I.focus()):window.removeEventListener("keydown",m)}),bn(()=>window.removeEventListener("keydown",m));function w(){const $="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",I="!@#$%^&*",J=crypto.getRandomValues(new Uint8Array(14));let ae="";for(let de=0;de<J.length;de++)ae+=$[J[de]%$.length];ae+=I[crypto.getRandomValues(new Uint8Array(1))[0]%I.length],u.value=ae,v.value=""}function T(){if(!r.value.trim()||!l.value.trim()||!u.value){v.value="系统名称、账号、密码为必填项";return}o("save",{system:r.value.trim(),account:l.value.trim(),password:u.value,remark:f.value.trim()})}return($,I)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:I[6]||(I[6]=Ut(J=>o("cancel"),["self"]))},[i("div",{class:"dialog",role:"dialog","aria-label":e.title},[i("div",H0,[i("span",z0,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:I[0]||(I[0]=J=>o("cancel"))},[be(He,{name:"close",size:16})])]),i("div",W0,[i("div",G0,[i("div",Y0,[I[7]||(I[7]=i("label",null,"系统名称(必填)",-1)),Pe(i("input",{ref_key:"systemInput",ref:y,class:"input","onUpdate:modelValue":I[1]||(I[1]=J=>r.value=J),placeholder:"如:企业邮箱 / OA / VPN"},null,512),[[Le,r.value]])]),i("div",J0,[I[8]||(I[8]=i("label",null,"账号(必填)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":I[2]||(I[2]=J=>l.value=J),placeholder:"用户名、工号或邮箱"},null,512),[[Le,l.value]])]),i("div",X0,[I[9]||(I[9]=i("label",null,"密码(必填)",-1)),i("div",Q0,[Pe(i("input",{class:"input","onUpdate:modelValue":I[3]||(I[3]=J=>u.value=J),placeholder:"输入或点击生成"},null,512),[[Le,u.value]]),i("button",{class:"btn btn-sm",onClick:w},"生成")])]),i("div",Z0,[I[10]||(I[10]=i("label",null,"备注",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":I[4]||(I[4]=J=>f.value=J),placeholder:"用途、到期时间、负责人等(选填)"},null,512),[[Le,f.value]])])]),v.value?(x(),E("div",ek,F(v.value),1)):me("",!0)]),i("div",tk,[i("button",{class:"btn btn-sm",onClick:I[5]||(I[5]=J=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:T},"保存")])],8,q0)])):me("",!0)]),_:1})]))}}),sk=Vt(nk,[["__scopeId","data-v-2eafe20e"]]),ok={class:"vault-page"},rk={key:0,class:"empty muted"},ak={key:1,class:"card lock-card"},ik={class:"lock-badge"},lk={key:0,class:"form-error"},uk=["disabled"],ck={key:0,class:"form-error"},dk=["disabled"],fk={class:"vault-toolbar"},pk={class:"search-wrap"},vk={class:"card table-card"},mk={class:"cred-table"},hk={class:"td-system"},yk=["onClick"],gk={class:"pwd-cell"},bk={class:"num pwd-text"},wk=["onClick"],_k=["onClick"],kk={class:"td-remark"},Ck={class:"td-ops"},xk={class:"ops"},$k=["onClick"],Sk=["onClick"],Ek={key:0},Ak={class:"muted table-note num"},Tk={class:"dialog pwd-dialog"},Pk={class:"dialog-head"},Ok={class:"dialog-body"},Mk={class:"vp-field"},Ik={class:"vp-field"},jk={class:"vp-field"},Dk={key:0,class:"form-error"},Lk={class:"dialog-btns"},Rk=5*60*1e3,Kk=Kt({__name:"VaultView",setup(e){const t=P(null),n=P(km()),o=P(!1),r=P(""),l=P(""),u=P(""),f=P(""),v=P(""),y=P([]),m=P(""),w=P({}),T=P(!1),$=P(null),I=P({system:"",account:"",password:"",remark:""}),J=P(null),ae=P(!1),de=P(""),ue=P(""),G=P(""),S=P("");async function M(){y.value=await Em(),w.value={}}let ee=null;function q(){ee!==null&&window.clearTimeout(ee),ee=window.setTimeout(()=>{n.value&&(sa(),n.value=!1,y.value=[],w.value={},Ve("长时间未操作,密码库已自动锁定"))},Rk)}function oe(){n.value&&q()}cn(async()=>{t.value=await _d(),window.addEventListener("click",oe),window.addEventListener("keydown",oe),n.value&&q()}),bn(()=>{window.removeEventListener("click",oe),window.removeEventListener("keydown",oe),ee!==null&&window.clearTimeout(ee)});const j=nt(()=>{const le=m.value.trim().toLowerCase();return le?y.value.filter(Q=>(Q.system+" "+Q.account+" "+(Q.remark||"")).toLowerCase().includes(le)):y.value});async function A(){if(!o.value){if(u.value="",!r.value){u.value="请输入主密码";return}if(r.value.length<6){u.value="主密码至少 6 位";return}if(r.value!==l.value){u.value="两次输入的主密码不一致";return}o.value=!0;try{await Cm(r.value),r.value="",l.value="",n.value=!0,q(),await M(),Ve("主密码已设置,密码库已解锁")}catch(le){u.value=le instanceof Error?le.message:"设置失败"}o.value=!1}}async function O(){if(!o.value){if(v.value="",!f.value){v.value="请输入主密码";return}o.value=!0;try{await xm(f.value),f.value="",n.value=!0,q(),await M()}catch(le){v.value=le instanceof Error?le.message:"解锁失败"}o.value=!1}}function ne(){sa(),n.value=!1,y.value=[],w.value={},ee!==null&&window.clearTimeout(ee),Ve("密码库已锁定")}async function Ie(le){const Q=le.id;if(w.value[Q]){w.value[Q]=!1;return}try{le.passwordPlain=await gi(Q),w.value[Q]=!0}catch(Ae){Ve(Ae instanceof Error?Ae.message:"解密失败")}}async function Se(le){try{const Q=await gi(le.id);await Gi(Q),Ve("密码已复制")}catch(Q){Ve(Q instanceof Error?Q.message:"复制失败")}}async function _e(le){await Gi(le.account),Ve("账号已复制")}function Me(){$.value=null,I.value={system:"",account:"",password:"",remark:""},T.value=!0}async function qe(le){try{const Q=await gi(le.id);$.value=le.id,I.value={system:le.system,account:le.account,password:Q,remark:le.remark||""},T.value=!0}catch(Q){Ve(Q instanceof Error?Q.message:"解密失败")}}async function Ue(le){const Q=$.value??void 0;await Am(le,Q),T.value=!1,await M(),Ve(Q?"账号已更新":"账号已添加")}async function tt(){J.value&&J.value.id&&(await Tm(J.value.id),Ve("账号已删除")),J.value=null,await M()}function Ye(){de.value="",ue.value="",G.value="",S.value="",ae.value=!0}async function We(){S.value="";try{const le=await Pm(de.value,ue.value);ae.value=!1,de.value="",ue.value="",G.value="",Ve("主密码已修改,"+le+" 条账号密码已重新加密")}catch(le){S.value=le instanceof Error?le.message:"修改失败"}}return(le,Q)=>(x(),E("div",ok,[t.value===null?(x(),E("div",rk,"加载中")):n.value?(x(),E(Oe,{key:2},[i("div",fk,[i("div",pk,[be(He,{name:"search",size:14,class:"search-icon"}),Pe(i("input",{class:"input","onUpdate:modelValue":Q[3]||(Q[3]=Ae=>m.value=Ae),placeholder:"搜索系统名称、账号或备注"},null,512),[[Le,m.value]])]),Q[16]||(Q[16]=i("span",{class:"flex1"},null,-1)),i("button",{class:"btn btn-sm",onClick:Ye},"修改主密码"),i("button",{class:"btn btn-sm",onClick:ne},"锁定"),i("button",{class:"btn btn-primary btn-sm",onClick:Me},"新增账号")]),i("div",vk,[i("table",mk,[Q[18]||(Q[18]=i("thead",null,[i("tr",null,[i("th",null,"系统名称"),i("th",null,"账号"),i("th",null,"密码"),i("th",null,"备注"),i("th",{class:"th-ops"},"操作")])],-1)),i("tbody",null,[(x(!0),E(Oe,null,st(j.value,Ae=>(x(),E("tr",{key:Ae.id},[i("td",hk,F(Ae.system),1),i("td",null,[i("span",{class:"copyable",title:"点击复制账号",onClick:lt=>_e(Ae)},F(Ae.account),9,yk)]),i("td",null,[i("div",gk,[i("span",bk,F(w.value[Ae.id]?Ae.passwordPlain:"........"),1),i("button",{class:"btn btn-xs",onClick:lt=>Ie(Ae)},F(w.value[Ae.id]?"隐藏":"显示"),9,wk),i("button",{class:"btn btn-xs",onClick:lt=>Se(Ae)},"复制",8,_k)])]),i("td",kk,F(Ae.remark||"--"),1),i("td",Ck,[i("div",xk,[i("button",{class:"btn btn-xs",onClick:lt=>qe(Ae)},"编辑",8,$k),i("button",{class:"btn btn-xs",onClick:lt=>J.value=Ae},"删除",8,Sk)])])]))),128)),j.value.length?me("",!0):(x(),E("tr",Ek,[...Q[17]||(Q[17]=[i("td",{colspan:"5",class:"empty muted"},"暂无账号,点击右上角新增",-1)])]))])])]),i("div",Ak,"共 "+F(y.value.length)+" 条账号记录 · 密码以 AES-256-GCM 加密,服务器仅存密文",1)],64)):(x(),E("div",ak,[i("div",ik,[be(He,{name:"lock",size:26})]),t.value===!1?(x(),E(Oe,{key:0},[Q[12]||(Q[12]=i("div",{class:"lock-title"},"设置主密码",-1)),Q[13]||(Q[13]=i("div",{class:"muted lock-tip"},"主密码用于加密保存在本机的账号密码,遗忘后无法找回,请务必牢记",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[0]||(Q[0]=Ae=>r.value=Ae),placeholder:"设置主密码(至少 6 位)",onKeydown:Lt(A,["enter"])},null,544),[[Le,r.value]]),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[1]||(Q[1]=Ae=>l.value=Ae),placeholder:"再次输入主密码",onKeydown:Lt(A,["enter"])},null,544),[[Le,l.value]]),u.value?(x(),E("div",lk,F(u.value),1)):me("",!0),i("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:A},"完成设置并解锁",8,uk)],64)):(x(),E(Oe,{key:1},[Q[14]||(Q[14]=i("div",{class:"lock-title"},"密码库已锁定",-1)),Q[15]||(Q[15]=i("div",{class:"muted lock-tip"},"输入主密码解锁后查看与复制密码",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[2]||(Q[2]=Ae=>f.value=Ae),placeholder:"主密码",onKeydown:Lt(O,["enter"])},null,544),[[Le,f.value]]),v.value?(x(),E("div",ck,F(v.value),1)):me("",!0),i("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:O},"解锁",8,dk)],64))])),be(sk,{open:T.value,title:$.value?"编辑账号":"新增账号",initial:I.value,onCancel:Q[4]||(Q[4]=Ae=>T.value=!1),onSave:Ue},null,8,["open","title","initial"]),be(xn,{open:!!J.value,title:"删除确认",message:J.value?"将删除系统「"+J.value.system+"」的账号记录。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:Q[5]||(Q[5]=Ae=>J.value=null),onConfirm:tt},null,8,["open","message"]),(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[ae.value?(x(),E("div",{key:0,class:"mask",onClick:Q[11]||(Q[11]=Ut(Ae=>ae.value=!1,["self"]))},[i("div",Tk,[i("div",Pk,[Q[19]||(Q[19]=i("span",{class:"dialog-title"},"修改主密码",-1)),i("button",{class:"icon-btn",title:"关闭",onClick:Q[6]||(Q[6]=Ae=>ae.value=!1)},[be(He,{name:"close",size:16})])]),i("div",Ok,[i("div",Mk,[Q[20]||(Q[20]=i("label",null,"旧主密码",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[7]||(Q[7]=Ae=>de.value=Ae)},null,512),[[Le,de.value]])]),i("div",Ik,[Q[21]||(Q[21]=i("label",null,"新主密码(至少 6 位)",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[8]||(Q[8]=Ae=>ue.value=Ae)},null,512),[[Le,ue.value]])]),i("div",jk,[Q[22]||(Q[22]=i("label",null,"确认新主密码",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":Q[9]||(Q[9]=Ae=>G.value=Ae)},null,512),[[Le,G.value]])]),S.value?(x(),E("div",Dk,F(S.value),1)):me("",!0),Q[23]||(Q[23]=i("div",{class:"muted vp-tip"},"确认后所有账号密码将使用新主密码重新加密",-1))]),i("div",Lk,[i("button",{class:"btn btn-sm",onClick:Q[10]||(Q[10]=Ae=>ae.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:We},"确认修改")])])])):me("",!0)]),_:1})]))]))}}),Nk=Vt(Kk,[["__scopeId","data-v-6d2745bc"]]),Fk=["aria-label"],Vk={class:"dialog-head"},Bk={class:"dialog-title"},Uk={class:"dialog-body"},qk={class:"field"},Hk={key:0},zk=["placeholder"],Wk={key:1,class:"form-error"},Gk={class:"dialog-btns"},Yk=Kt({__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(""),l=P(""),u=P(null);function f(y){n.open&&y.key==="Escape"&&o("cancel")}pt(()=>n.open,async y=>{var m,w;y?(r.value=n.initial,l.value="",window.addEventListener("keydown",f),await Ks(),(m=u.value)==null||m.focus(),(w=u.value)==null||w.select()):window.removeEventListener("keydown",f)}),bn(()=>window.removeEventListener("keydown",f));function v(){const y=r.value.trim();if(!y){l.value="请输入内容";return}const m=n.validate?n.validate(y):null;if(m){l.value=m;return}o("confirm",y)}return(y,m)=>(x(),Ct($n,{to:"body"},[be(Jn,{name:"modal"},{default:Sn(()=>[e.open?(x(),E("div",{key:0,class:"mask",onClick:m[3]||(m[3]=Ut(w=>o("cancel"),["self"]))},[i("div",{class:"dialog input-dialog",role:"dialog","aria-label":e.title},[i("div",Vk,[i("span",Bk,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:m[0]||(m[0]=w=>o("cancel"))},[be(He,{name:"close",size:16})])]),i("div",Uk,[i("div",qk,[e.label?(x(),E("label",Hk,F(e.label),1)):me("",!0),Pe(i("input",{ref_key:"input",ref:u,class:ze(["input",{invalid:l.value}]),"onUpdate:modelValue":m[1]||(m[1]=w=>r.value=w),placeholder:e.placeholder,maxlength:"20",onKeydown:Lt(v,["enter"])},null,42,zk),[[Le,r.value]]),l.value?(x(),E("div",Wk,F(l.value),1)):me("",!0)])]),i("div",Gk,[i("button",{class:"btn btn-sm",onClick:m[2]||(m[2]=w=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:v},F(e.confirmText),1)])],8,Fk)])):me("",!0)]),_:1})]))}}),Jk=Vt(Yk,[["__scopeId","data-v-4b14ba4f"]]);function Xk(e){return'"'+(e==null?"":String(e)).replace(/"/g,'""')+'"'}async function Qu(e,t){const o="\uFEFF"+t.map(f=>f.map(Xk).join(",")).join(`\r
`);if(uo.isNativePlatform()){const{downloadText:f}=await Vd(async()=>{const{downloadText:v}=await Promise.resolve().then(()=>tb);return{downloadText:v}},void 0,import.meta.url);return f(e,o)}const r=new Blob([o],{type:"text/csv;charset=utf-8"}),l=URL.createObjectURL(r),u=document.createElement("a");return u.href=l,u.download=e,u.click(),window.setTimeout(()=>URL.revokeObjectURL(l),1e4),""}const Qk={class:"settings"},Zk={class:"card section"},eC={class:"muted acc-line"},tC={class:"ai-grid"},nC={class:"rule-item"},sC={class:"rule-item"},oC={class:"rule-item"},rC={key:0,class:"form-error"},aC={class:"rule-save"},iC={class:"card section"},lC={class:"rule-grid"},uC={class:"rule-item"},cC={class:"rule-item"},dC={class:"rule-item"},fC={class:"rule-item"},pC={class:"rule-item"},vC={class:"card section"},mC={class:"proj-add"},hC={key:0,class:"muted proj-tip"},yC=["onKeydown"],gC=["onClick"],bC=["onClick"],wC=["onClick"],_C={key:1,class:"muted"},kC={class:"card section"},CC={class:"card section"},xC={class:"muted acc-line"},$C={class:"rule-save"},SC=["disabled"],EC={key:0,class:"muted acc-line"},AC={key:1,class:"form-error"},TC={key:2,class:"form-error"},PC={class:"card section"},OC={class:"ai-grid"},MC={class:"rule-item"},IC={class:"rule-item"},jC={class:"rule-item"},DC={class:"card section"},LC={class:"cat-block"},RC={class:"cat-head"},KC={class:"cat-chips"},NC=["onClick"],FC=["onClick"],VC={class:"cat-block"},BC={class:"cat-head"},UC={class:"cat-chips"},qC=["onClick"],HC=["onClick"],zC={class:"cat-block"},WC={class:"cat-head"},GC={class:"cat-chips"},YC=["onClick"],JC=["onClick"],XC={class:"card section"},QC={class:"backup-row"},ZC={key:0,class:"import-error"},ex=Kt({__name:"SettingsView",setup(e){var te;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(""),l=P(""),u=P(""),f=P(""),v=P(""),y=P(null),m=P(""),w=P([]),T=P([]),$=P([]);async function I(){w.value=await Zo(),T.value=await la("expense"),$.value=await la("income")}const J=P({open:!1,kind:"log",index:-1,initial:""}),ae=P(null);function de(R){return R==="log"?w.value:R==="expense"?T.value:$.value}async function ue(R,L){R==="log"?(w.value=L,await ry(L)):R==="expense"?(T.value=L,await Wi("expense",L)):($.value=L,await Wi("income",L))}function G(R){J.value={open:!0,kind:R,index:-1,initial:""}}function S(R,L,fe){J.value={open:!0,kind:R,index:L,initial:fe}}function M(R){const{kind:L,index:fe}=J.value,je=de(L);return je.includes(R)&&!(fe>=0&&je[fe]===R)?"该分类已存在":null}async function ee(R){const{kind:L,index:fe}=J.value;fe>=0?(await ue(L,de(L).map((je,Je)=>Je===fe?R:je)),Ve("分类已更新(历史记录自动跟随显示)")):(await ue(L,[...de(L),R]),Ve("分类已添加")),J.value.open=!1}function q(R,L){const fe=de(R);if(fe.length<=1){Ve("至少保留一个分类");return}ae.value={kind:R,index:L,name:fe[L]}}async function oe(){if(!ae.value)return;const{kind:R,index:L}=ae.value;await ue(R,de(R).filter((fe,je)=>je!==L)),Ve("分类已删除"),ae.value=null}const j=P(null),A=P(null),O=P(""),ne=P(((te=eo())==null?void 0:te.username)||""),Ie=P(""),Se=P(""),_e=P(""),Me=P(""),qe=P(!1),Ue="0.8.1",tt=P(""),Ye=P(""),We=P(""),le=P(""),Q=P(!1),Ae=P("");async function lt(){var R;tt.value=((R=hn())==null?void 0:R.username)||"",Ae.value=await Qm(),le.value=to.value}pt(to,R=>{le.value=R});async function it(){We.value="";try{await Td(),Ve("云端绑定已重建")}catch(R){We.value=R instanceof Error?R.message:"绑定失败"}}async function Te(){if(!Q.value){We.value="",le.value=to.value,Q.value=!0;try{const R=await Bi();Ae.value=R.at,Ye.value="推送 "+R.pushed+" 条 · 拉取 "+R.pulled+" 条 · 删除 "+R.removed+" 条",le.value="",Ve("同步完成")}catch(R){We.value=R instanceof Error?R.message:"同步失败"}Q.value=!1}}async function kt(){if(Me.value="",Se.value!==_e.value){Me.value="两次输入的新密码不一致";return}try{await Hm(Ie.value,Se.value),Ie.value="",Se.value="",_e.value="",Ve("登录密码已修改")}catch(R){Me.value=R instanceof Error?R.message:"修改失败"}}async function xt(){await zm(),window.location.reload()}async function Ke(){t.value=await ms(),n.value=await io(!0),l.value=(await gl()).join(`
`),u.value=await Tt("ai_base_url",""),f.value=await Tt("ai_api_key",""),v.value=await Tt("ai_model",""),await lt(),await I()}async function _(){await Nt("ai_base_url",u.value.trim()),await Nt("ai_api_key",f.value.trim()),await Nt("ai_model",v.value.trim()),Ve("AI 配置已保存")}async function g(){const R=ut(),L=await Promise.all([Qo("2000-01-01",R),io(!0)]),fe=L[0],je=L[1],Je=new Map(je.map(Ze=>[Ze.id,Ze.name])),ft=[["日期","分类","项目","内容","耗时(分钟)","成果","待跟进","收获","备注"]];for(const Ze of fe)ft.push([Ze.date,qo(Ze.category),Ze.project_id&&Je.get(Ze.project_id)||"",Ze.content,Ze.minutes==null?"":Ze.minutes,Ze.is_milestone?"是":"",Ze.needs_followup?"是":"",Ze.takeaway||"",Ze.remark||""]);const It=await Qu("工作记录_"+R.replace(/-/g,"")+".csv",ft);Ve(It?"CSV 已导出到:"+It:"CSV 已导出到系统下载目录")}async function C(){const R=ut(),L=await Promise.all([ms(),Xo("2000-01-01",R)]),fe=L[0],je=L[1],Je=["周日","周一","周二","周三","周四","周五","周六"],ft=[["日期","星期","状态","上班时间","下班时间","地点","类型","说明"]];for(const Ze of je){const et=co(Ze,Ze.date,fe,Ze.date===R);ft.push([Ze.date,Je[Gn(Ze.date).getDay()],et.label,Ze.clock_in_at?Wn(Ze.clock_in_at):"",Ze.clock_out_at?Wn(Ze.clock_out_at):"",Ze.location||"",Ze.kind==="makeup"?"补卡":Ze.kind==="leave"?"休假":"正常",Ze.note||""])}const It=await Qu("考勤记录_"+R.replace(/-/g,"")+".csv",ft);Ve(It?"CSV 已导出到:"+It:"CSV 已导出到系统下载目录")}cn(Ke);async function D(){await Nt("work_start",t.value.work_start),await Nt("work_end",t.value.work_end),await Nt("grace_minutes",String(t.value.grace_minutes)),await Nt("lunch_minutes",String(t.value.lunch_minutes)),await Nt("remind_weekly",t.value.remind_weekly),Ve("打卡规则已保存")}async function re(){await Dd(l.value.split(`
`)),Ve("常用地点已保存")}async function pe(){const R=o.value.trim();if(R){try{await ph(R),r.value="",o.value=""}catch{r.value="项目名已存在"}await Ke()}}function xe(R){y.value=R.id,m.value=R.name}async function we(R){const L=m.value.trim();if(L)try{await vh(R.id,L),r.value=""}catch{r.value="项目名已存在"}y.value=null,await Ke()}async function ke(R){await mh(R.id,R.archived!==1),await Ke()}async function ve(){try{const R=await ey(),L=await Ea("实习日志备份_"+ut().replace(/-/g,"")+".json",R);Ve(L?"备份已导出到:"+L:"备份已导出到系统下载目录")}catch(R){Ve("导出失败:"+(R instanceof Error?R.message:String(R)))}}function Re(R){const L=R.target,fe=L.files&&L.files[0];if(O.value="",!fe)return;const je=fe.name;fe.text().then(Je=>{A.value={name:je,text:Je}}),L.value=""}async function V(){if(A.value)try{await ty(A.value.text),A.value=null,O.value="",await Ke(),Ve("数据导入完成")}catch(R){A.value=null,O.value=R instanceof Error?R.message:"导入失败"}}return(R,L)=>(x(),E("div",Qk,[i("div",Zk,[L[27]||(L[27]=i("div",{class:"section-title"},"账号与隐私",-1)),i("div",eC,"v"+F(Wt(Ue))+" · 当前账号 "+F(ne.value)+" · 登录密码仅存 PBKDF2 哈希",1),i("div",tC,[i("div",nC,[L[24]||(L[24]=i("label",null,"旧登录密码",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":L[0]||(L[0]=fe=>Ie.value=fe)},null,512),[[Le,Ie.value]])]),i("div",sC,[L[25]||(L[25]=i("label",null,"新登录密码(至少 6 位)",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":L[1]||(L[1]=fe=>Se.value=fe)},null,512),[[Le,Se.value]])]),i("div",oC,[L[26]||(L[26]=i("label",null,"确认新登录密码",-1)),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":L[2]||(L[2]=fe=>_e.value=fe)},null,512),[[Le,_e.value]])])]),Me.value?(x(),E("div",rC,F(Me.value),1)):me("",!0),i("div",aC,[i("button",{class:"btn btn-primary btn-sm",onClick:kt},"修改登录密码"),i("button",{class:"btn btn-sm btn-danger",onClick:L[3]||(L[3]=fe=>qe.value=!0)},"删除此用户及全部数据")])]),i("div",iC,[L[34]||(L[34]=i("div",{class:"section-title"},"打卡规则",-1)),i("div",lC,[i("div",uC,[L[28]||(L[28]=i("label",null,"上班时间",-1)),Pe(i("input",{type:"time",class:"input","onUpdate:modelValue":L[4]||(L[4]=fe=>t.value.work_start=fe)},null,512),[[Le,t.value.work_start]])]),i("div",cC,[L[29]||(L[29]=i("label",null,"下班时间",-1)),Pe(i("input",{type:"time",class:"input","onUpdate:modelValue":L[5]||(L[5]=fe=>t.value.work_end=fe)},null,512),[[Le,t.value.work_end]])]),i("div",dC,[L[30]||(L[30]=i("label",null,"迟到宽限(分钟)",-1)),Pe(i("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":L[6]||(L[6]=fe=>t.value.grace_minutes=fe)},null,512),[[Le,t.value.grace_minutes,void 0,{number:!0}]])]),i("div",fC,[L[31]||(L[31]=i("label",null,"午休扣除(分钟)",-1)),Pe(i("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":L[7]||(L[7]=fe=>t.value.lunch_minutes=fe)},null,512),[[Le,t.value.lunch_minutes,void 0,{number:!0}]])]),i("div",pC,[L[33]||(L[33]=i("label",null,"周记提醒",-1)),Pe(i("select",{class:"select","onUpdate:modelValue":L[8]||(L[8]=fe=>t.value.remind_weekly=fe)},[...L[32]||(L[32]=[i("option",{value:"friday"},"每周五提醒",-1),i("option",{value:"off"},"关闭",-1)])],512),[[vs,t.value.remind_weekly]])])]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:D},"保存规则")])]),i("div",vC,[L[35]||(L[35]=i("div",{class:"section-title"},"项目管理",-1)),i("div",mC,[Pe(i("input",{class:"input","onUpdate:modelValue":L[9]||(L[9]=fe=>o.value=fe),placeholder:"新项目名称",onKeydown:Lt(pe,["enter"])},null,544),[[Le,o.value]]),i("button",{class:"btn btn-sm",onClick:pe},"添加")]),r.value?(x(),E("div",hC,F(r.value),1)):me("",!0),(x(!0),E(Oe,null,st(n.value,fe=>(x(),E("div",{key:fe.id,class:"proj-row"},[y.value===fe.id?(x(),E(Oe,{key:0},[Pe(i("input",{class:"input","onUpdate:modelValue":L[10]||(L[10]=je=>m.value=je),onKeydown:Lt(je=>we(fe),["enter"])},null,40,yC),[[Le,m.value]]),i("button",{class:"btn btn-sm",onClick:je=>we(fe)},"保存",8,gC),i("button",{class:"btn btn-sm",onClick:L[11]||(L[11]=je=>y.value=null)},"取消")],64)):(x(),E(Oe,{key:1},[i("span",{class:ze(["proj-name",{archived:fe.archived===1}])},F(fe.name),3),i("button",{class:"icon-btn",title:"重命名",onClick:je=>xe(fe)},[be(He,{name:"edit",size:14})],8,bC),i("button",{class:"btn btn-sm",onClick:je=>ke(fe)},F(fe.archived===1?"恢复":"归档"),9,wC)],64))]))),128)),n.value.length?me("",!0):(x(),E("div",_C,"暂无项目,先添加一个"))]),i("div",kC,[L[37]||(L[37]=i("div",{class:"section-title"},"常用地点",-1)),Pe(i("textarea",{class:"textarea","onUpdate:modelValue":L[12]||(L[12]=fe=>l.value=fe),placeholder:"每行一个地点,如:公司、客户现场、出差、居家办公"},null,512),[[Le,l.value]]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:re},"保存地点"),L[36]||(L[36]=i("span",{class:"muted loc-note"},"打卡时可直接输入新地点,保存后自动加入列表",-1))])]),i("div",CC,[L[38]||(L[38]=i("div",{class:"section-title"},"多端数据同步",-1)),i("div",xC,"云端账号:"+F(tt.value||"未绑定")+" · 数据存于服务器,其他端变更秒级自动刷新",1),i("div",$C,[i("button",{class:"btn btn-primary btn-sm",disabled:Q.value,onClick:Te},F(Q.value?"同步中":"立即同步"),9,SC),i("button",{class:"btn btn-sm",onClick:it},"重新校验连接")]),Ye.value?(x(),E("div",EC,"上次同步:"+F(Ae.value||"--")+" · "+F(Ye.value),1)):me("",!0),We.value?(x(),E("div",AC,F(We.value),1)):me("",!0),le.value?(x(),E("div",TC,"最近自动同步失败:"+F(le.value)+"(可点「立即同步」重试)",1)):me("",!0)]),i("div",PC,[L[43]||(L[43]=i("div",{class:"section-title"},"AI 润色配置(可选)",-1)),i("div",OC,[i("div",MC,[L[39]||(L[39]=i("label",null,"接口地址(OpenAI 兼容,到 /v1 为止)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":L[13]||(L[13]=fe=>u.value=fe),placeholder:"https://api.example.com/v1"},null,512),[[Le,u.value]])]),i("div",IC,[L[40]||(L[40]=i("label",null,"API Key",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":L[14]||(L[14]=fe=>f.value=fe),placeholder:"sk-..."},null,512),[[Le,f.value]])]),i("div",jC,[L[41]||(L[41]=i("label",null,"模型名称",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":L[15]||(L[15]=fe=>v.value=fe),placeholder:"如:deepseek-chat"},null,512),[[Le,v.value]])])]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:_},"保存 AI 配置"),L[42]||(L[42]=i("span",{class:"muted loc-note"},"配置仅保存在本机;总结页「AI 润色」需此处先配置",-1))])]),i("div",DC,[L[47]||(L[47]=i("div",{class:"section-title"},"工作分类",-1)),i("div",LC,[i("div",RC,[L[44]||(L[44]=i("span",{class:"muted"},"工作记录分类",-1)),i("button",{class:"btn btn-xs",onClick:L[16]||(L[16]=fe=>G("log"))},"添加")]),i("div",KC,[(x(!0),E(Oe,null,st(w.value,(fe,je)=>(x(),E("span",{key:fe+je,class:"cat-chip"},[At(F(fe)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:Je=>S("log",je,fe)},"改",8,NC),i("button",{class:"chip-btn",title:"删除",onClick:Je=>q("log",je)},"删",8,FC)]))),128))])]),i("div",VC,[i("div",BC,[L[45]||(L[45]=i("span",{class:"muted"},"记账支出分类",-1)),i("button",{class:"btn btn-xs",onClick:L[17]||(L[17]=fe=>G("expense"))},"添加")]),i("div",UC,[(x(!0),E(Oe,null,st(T.value,(fe,je)=>(x(),E("span",{key:fe+je,class:"cat-chip"},[At(F(fe)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:Je=>S("expense",je,fe)},"改",8,qC),i("button",{class:"chip-btn",title:"删除",onClick:Je=>q("expense",je)},"删",8,HC)]))),128))])]),i("div",zC,[i("div",WC,[L[46]||(L[46]=i("span",{class:"muted"},"记账收入分类",-1)),i("button",{class:"btn btn-xs",onClick:L[18]||(L[18]=fe=>G("income"))},"添加")]),i("div",GC,[(x(!0),E(Oe,null,st($.value,(fe,je)=>(x(),E("span",{key:fe+je,class:"cat-chip"},[At(F(fe)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:Je=>S("income",je,fe)},"改",8,YC),i("button",{class:"chip-btn",title:"删除",onClick:Je=>q("income",je)},"删",8,JC)]))),128))])])]),i("div",XC,[L[48]||(L[48]=i("div",{class:"section-title"},"数据备份",-1)),i("div",QC,[i("button",{class:"btn btn-sm",onClick:ve},"导出 JSON 备份"),i("button",{class:"btn btn-sm",onClick:L[19]||(L[19]=fe=>{var je;return(je=j.value)==null?void 0:je.click()})},"导入 JSON 备份"),i("button",{class:"btn btn-sm",onClick:g},"导出工作记录 CSV"),i("button",{class:"btn btn-sm",onClick:C},"导出考勤 CSV"),i("input",{ref_key:"fileInput",ref:j,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:Re},null,544)]),O.value?(x(),E("div",ZC,F(O.value),1)):me("",!0),L[49]||(L[49]=i("div",{class:"muted backup-note"},"数据保存在云端服务器;导出的 JSON 备份用于跨设备迁移或灾后恢复。",-1))]),be(Jk,{open:J.value.open,title:J.value.index>=0?"修改分类名称":"添加分类",label:"分类名称",placeholder:"如:制度学习 / 差旅交通",initial:J.value.initial,validate:M,"confirm-text":"保存",onCancel:L[20]||(L[20]=fe=>J.value.open=!1),onConfirm:ee},null,8,["open","title","initial"]),be(xn,{open:!!ae.value,title:"删除分类",message:ae.value?"将删除分类「"+ae.value.name+"」。历史记录不受影响,仍按原分类展示。":"","confirm-text":"删除",danger:"",onCancel:L[21]||(L[21]=fe=>ae.value=null),onConfirm:oe},null,8,["open","message"]),be(xn,{open:!!A.value,title:"导入确认",message:A.value?"将从文件「"+A.value.name+"」导入备份。现有全部数据将被覆盖,且不可恢复,请先确认已导出当前备份。":"","confirm-text":"覆盖导入",danger:"",onCancel:L[22]||(L[22]=fe=>A.value=null),onConfirm:V},null,8,["open","message"]),be(xn,{open:qe.value,title:"删除用户确认",message:"将永久删除云端账号「"+ne.value+"」及其服务器上的全部数据:工作日志、考勤、备忘录、账号密码库都将被清除,任何设备都无法再取回,且不可恢复。请确认。","confirm-text":"永久删除",danger:"",onCancel:L[23]||(L[23]=fe=>qe.value=!1),onConfirm:xt},null,8,["open","message"])]))}}),tx=Vt(ex,[["__scopeId","data-v-10f77319"]]),nx={class:"tp-main"},sx={class:"tp-title"},ox={class:"tp-meta"},rx={class:"tp-time num"},ax=Kt({__name:"TimerPanel",setup(e){const t=P(null),n=P(Date.now());let o=null,r=null;async function l(){try{t.value=await Th()}catch{}}const u=nt(()=>{const m=t.value;if(!m||!m.timer_started_at)return 0;const w=(m.actual_minutes||0)*60,T=Math.max(0,Math.floor((n.value-new Date(m.timer_started_at).getTime())/1e3));return w+T}),f=nt(()=>{const m=u.value,w=Math.floor(m/3600),T=Math.floor(m%3600/60),$=m%60,I=J=>String(J).padStart(2,"0");return w>0?w+":"+I(T)+":"+I($):T+":"+I($)});async function v(){const m=t.value;m&&(await Sa(m.id),Ve("已停止计时:"+m.title),await l())}function y(){location.hash="#/plan"}return pt(Ed,()=>{l()}),cn(()=>{l(),o=window.setInterval(()=>{l()},15e3),r=window.setInterval(()=>{n.value=Date.now()},1e3),window.addEventListener("focus",l)}),bn(()=>{o!==null&&window.clearInterval(o),r!==null&&window.clearInterval(r),window.removeEventListener("focus",l)}),(m,w)=>(x(),Ct(Jn,{name:"tp"},{default:Sn(()=>[t.value&&t.value.timer_started_at?(x(),E("div",{key:0,class:"tp",onClick:y,title:"点击查看计划页"},[w[0]||(w[0]=i("span",{class:"tp-pulse"},null,-1)),i("span",nx,[i("span",sx,F(t.value.title),1),i("span",ox,F(t.value.kind)+" · 计时中",1)]),i("span",rx,F(f.value),1),i("span",{class:"tp-stop",role:"button",title:"停止计时",onClick:Ut(v,["stop"])},"停止")])):me("",!0)]),_:1}))}}),ix=Vt(ax,[["__scopeId","data-v-a8f9ed22"]]),lx={class:"admin-page"},ux={class:"card table-card"},cx={class:"toolbar"},dx={key:0,class:"form-error tb-error"},fx={class:"admin-table"},px={class:"td-name","data-label":"用户名"},vx={"data-label":"角色"},mx={key:0,class:"role-badge"},hx={key:1,class:"muted"},yx={class:"muted num","data-label":"创建时间"},gx={class:"muted num","data-label":"数据量"},bx={class:"td-ops"},wx={class:"ops"},_x=["onClick"],kx=["disabled","onClick"],Cx={key:0},xx={key:1,class:"muted load-line"},$x={class:"dialog",role:"dialog","aria-label":"新增用户"},Sx={class:"dialog-head"},Ex={class:"dialog-body"},Ax={class:"form-row"},Tx={class:"form-row"},Px={class:"form-row"},Ox={key:0,class:"form-error"},Mx={class:"dialog-btns"},Ix=["disabled"],jx={class:"dialog",role:"dialog","aria-label":"重置密码"},Dx={class:"dialog-head"},Lx={class:"dialog-title"},Rx={class:"dialog-body"},Kx={class:"form-row"},Nx={key:0,class:"form-error"},Fx={class:"dialog-btns"},Vx=["disabled"],Bx=Kt({__name:"UserAdminView",setup(e){const t=P([]),n=P(""),o=P(!0),r=P("");async function l(j,A){const O=await Ns();let ne=$a();if(!ne){const Se=hn(),_e=await fetch(O+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Se==null?void 0:Se.username,password:Se==null?void 0:Se.password})});if(_e.ok){const Me=await _e.json();ne=String(Me.token||""),zo(ne)}}const Ie=await fetch(O+j,{method:A?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:A?JSON.stringify(A):void 0});if(Ie.status===401&&hn()){const Se=hn(),_e=await fetch(O+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Se==null?void 0:Se.username,password:Se==null?void 0:Se.password})});if(_e.ok){const Me=await _e.json();ne=String(Me.token||""),zo(ne);const qe=await fetch(O+j,{method:A?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:A?JSON.stringify(A):void 0});return{ok:qe.ok,status:qe.status,data:await qe.json().catch(()=>({}))}}}return{ok:Ie.ok,status:Ie.status,data:await Ie.json().catch(()=>({}))}}async function u(){o.value=!0,r.value="";const j=await l("/api/admin/users");if(!j.ok){o.value=!1,r.value=j.data&&j.data.error||"加载失败 "+j.status;return}t.value=j.data.users||[],n.value=j.data.me||"",o.value=!1}function f(j){return j<=0?"--":j<1024?j+" B":j<1024*1024?(j/1024).toFixed(1)+" KB":(j/1024/1024).toFixed(2)+" MB"}function v(j){return(j||"").slice(0,10)}const y=P(!1),m=P(""),w=P(""),T=P(""),$=P(""),I=P(!1);function J(){y.value=!0,$.value="",m.value="",w.value="",T.value=""}async function ae(){const j=m.value.trim();if(w.value!==T.value){$.value="两次输入的密码不一致";return}if(w.value.length<6){$.value="密码至少 6 位";return}I.value=!0;const A=await l("/api/admin/users/create",{username:j,password:w.value});if(I.value=!1,!A.ok){$.value=A.data&&A.data.error||"创建失败 "+A.status;return}Ve("用户「"+j+"」已创建"),y.value=!1,await u()}const de=P(null),ue=P(""),G=P(""),S=P(!1);function M(j){de.value=j,ue.value="",G.value=""}async function ee(){if(!de.value)return;if(ue.value.length<6){G.value="密码至少 6 位";return}S.value=!0;const j=await l("/api/admin/users/password",{userId:de.value.id,newPassword:ue.value});if(S.value=!1,!j.ok){G.value=j.data&&j.data.error||"重置失败 "+j.status;return}Ve("已重置「"+de.value.username+"」的登录密码"),de.value=null}const q=P(null);async function oe(){if(!q.value)return;const j=await l("/api/admin/users/delete",{userId:q.value.id});if(!j.ok){q.value=null,Ve(j.data&&j.data.error||"删除失败");return}Ve("已删除账号「"+q.value.username+"」及其全部云端数据"),q.value=null,await u()}return cn(u),(j,A)=>(x(),E("div",lx,[i("div",ux,[i("div",cx,[A[12]||(A[12]=i("div",{class:"head-wrap"},[i("div",{class:"tb-title"},"用户管理"),i("div",{class:"muted tb-sub"},"云端账号统一管理 · 管理员:xionglin")],-1)),i("button",{class:"btn btn-primary btn-sm",onClick:J},[be(He,{name:"plus",size:14}),A[11]||(A[11]=At(" 新增用户 ",-1))])]),r.value?(x(),E("div",dx,F(r.value),1)):me("",!0),i("table",fx,[A[14]||(A[14]=i("thead",null,[i("tr",null,[i("th",null,"用户名"),i("th",null,"角色"),i("th",null,"创建时间"),i("th",null,"数据量"),i("th",{class:"th-ops"},"操作")])],-1)),i("tbody",null,[(x(!0),E(Oe,null,st(t.value,O=>(x(),E("tr",{key:O.id},[i("td",px,F(O.username),1),i("td",vx,[O.role==="admin"?(x(),E("span",mx,"管理员")):(x(),E("span",hx,"普通用户"))]),i("td",yx,F(v(O.created_at)),1),i("td",gx,F(f(O.data_bytes)),1),i("td",bx,[i("div",wx,[i("button",{class:"btn btn-xs",onClick:ne=>M(O)},"重置密码",8,_x),i("button",{class:"btn btn-xs btn-danger",disabled:O.id===n.value,onClick:ne=>q.value=O},"删除",8,kx)])])]))),128)),!o.value&&!t.value.length?(x(),E("tr",Cx,[...A[13]||(A[13]=[i("td",{colspan:"5",class:"empty muted"},"加载结果为空",-1)])])):me("",!0)])]),o.value?(x(),E("div",xx,"加载中")):me("",!0)]),A[20]||(A[20]=i("div",{class:"muted admin-note"},"重置密码立即生效;删除账号将移除其全部云端数据,不可恢复。自己的账号不能删除。",-1)),(x(),Ct($n,{to:"body"},[y.value?(x(),E("div",{key:0,class:"mask",onClick:A[5]||(A[5]=Ut(O=>y.value=!1,["self"]))},[i("div",$x,[i("div",Sx,[A[15]||(A[15]=i("span",{class:"dialog-title"},"新增用户",-1)),i("button",{class:"icon-btn",onClick:A[0]||(A[0]=O=>y.value=!1)},[be(He,{name:"close",size:16})])]),i("div",Ex,[i("div",Ax,[A[16]||(A[16]=i("label",null,"用户名(2 到 20 个字符)",-1)),Pe(i("input",{class:"input","onUpdate:modelValue":A[1]||(A[1]=O=>m.value=O),placeholder:"如:xiaowang"},null,512),[[Le,m.value]])]),i("div",Tx,[A[17]||(A[17]=i("label",null,"初始登录密码(至少 6 位)",-1)),Pe(i("input",{class:"input",type:"password","onUpdate:modelValue":A[2]||(A[2]=O=>w.value=O),placeholder:"转发给使用者,登录后可自行修改"},null,512),[[Le,w.value]])]),i("div",Px,[A[18]||(A[18]=i("label",null,"确认密码",-1)),Pe(i("input",{class:"input",type:"password","onUpdate:modelValue":A[3]||(A[3]=O=>T.value=O),onKeydown:Lt(ae,["enter"])},null,544),[[Le,T.value]])]),$.value?(x(),E("div",Ox,F($.value),1)):me("",!0)]),i("div",Mx,[i("button",{class:"btn btn-sm",onClick:A[4]||(A[4]=O=>y.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",disabled:I.value||!m.value.trim(),onClick:ae},F(I.value?"创建中":"创建"),9,Ix)])])])):me("",!0)])),(x(),Ct($n,{to:"body"},[de.value?(x(),E("div",{key:0,class:"mask",onClick:A[9]||(A[9]=Ut(O=>de.value=null,["self"]))},[i("div",jx,[i("div",Dx,[i("span",Lx,"重置「"+F(de.value.username)+"」的登录密码",1),i("button",{class:"icon-btn",onClick:A[6]||(A[6]=O=>de.value=null)},[be(He,{name:"close",size:16})])]),i("div",Rx,[i("div",Kx,[A[19]||(A[19]=i("label",null,"新登录密码(至少 6 位)",-1)),Pe(i("input",{class:"input",type:"password","onUpdate:modelValue":A[7]||(A[7]=O=>ue.value=O),onKeydown:Lt(ee,["enter"])},null,544),[[Le,ue.value]])]),G.value?(x(),E("div",Nx,F(G.value),1)):me("",!0)]),i("div",Fx,[i("button",{class:"btn btn-sm",onClick:A[8]||(A[8]=O=>de.value=null)},"取消"),i("button",{class:"btn btn-primary btn-sm",disabled:S.value,onClick:ee},F(S.value?"提交中":"重置"),9,Vx)])])])):me("",!0)])),be(xn,{open:!!q.value,title:"删除用户确认",message:q.value?"将永久删除云端账号「"+q.value.username+"」及其服务器上的全部数据,不可恢复。请确认。":"","confirm-text":"永久删除",danger:"",onCancel:A[10]||(A[10]=O=>q.value=null),onConfirm:oe},null,8,["open","message"])]))}}),Ux=Vt(Bx,[["__scopeId","data-v-2d48d2c9"]]),qx={class:"login-page"},Hx={class:"card login-card"},zx={class:"login-brand"},Wx={class:"brand-icon"},Gx={class:"seg"},Yx=["placeholder"],Jx={key:1,class:"form-error"},Xx=["disabled"],Qx=Kt({__name:"LoginView",emits:["login"],setup(e,{emit:t}){const n=t,o=P("login"),r=P(""),l=P(""),u=P(""),f=P(""),v=P(!1);function y(w){o.value=w,f.value="",u.value=""}async function m(){if(!v.value){f.value="",v.value=!0;try{let w;if(o.value==="login")w=await Fm(r.value,l.value);else{if(l.value.length<6){f.value="登录密码至少 6 位",v.value=!1;return}if(l.value!==u.value){f.value="两次输入的密码不一致",v.value=!1;return}w=await Vm(r.value,l.value)}n("login",w)}catch(w){f.value=w instanceof Error?w.message:"操作失败"}v.value=!1}}return(w,T)=>(x(),E("div",qx,[i("div",Hx,[i("div",zx,[i("div",Wx,[be(He,{name:"calendar",size:22})]),T[5]||(T[5]=i("div",{class:"login-title"},"实习工作日志",-1)),T[6]||(T[6]=i("div",{class:"muted login-sub"},"打卡 · 记录 · 总结 · 备忘录 · 密码库",-1)),T[7]||(T[7]=i("div",{class:"muted login-sub"},"数据保存在云端服务器,所有设备登录同一账号即可实时同步",-1))]),i("div",Gx,[i("button",{class:ze(["seg-btn",{active:o.value==="login"}]),onClick:T[0]||(T[0]=$=>y("login"))},"登录",2),i("button",{class:ze(["seg-btn",{active:o.value==="create"}]),onClick:T[1]||(T[1]=$=>y("create"))},"创建用户",2)]),Pe(i("input",{class:"input","onUpdate:modelValue":T[2]||(T[2]=$=>r.value=$),placeholder:"用户名(2 到 20 个字符)",onKeydown:Lt(m,["enter"])},null,544),[[Le,r.value]]),Pe(i("input",{type:"password",class:"input","onUpdate:modelValue":T[3]||(T[3]=$=>l.value=$),placeholder:o.value==="login"?"登录密码":"设置登录密码(至少 6 位)",onKeydown:Lt(m,["enter"])},null,40,Yx),[[Le,l.value]]),o.value==="create"?Pe((x(),E("input",{key:0,type:"password",class:"input","onUpdate:modelValue":T[4]||(T[4]=$=>u.value=$),placeholder:"再次输入密码",onKeydown:Lt(m,["enter"])},null,544)),[[Le,u.value]]):me("",!0),f.value?(x(),E("div",Jx,F(f.value),1)):me("",!0),i("button",{class:"btn btn-primary login-btn",disabled:v.value,onClick:m},F(o.value==="login"?"登录":"创建并进入"),9,Xx),T[8]||(T[8]=i("div",{class:"muted login-note"}," 登录密码仅服务器保存哈希;本机保存加密的自动登录凭据,登录后无需重复输入 ",-1))])]))}}),Zx=Vt(Qx,[["__scopeId","data-v-e9c1c40d"]]),e$={key:1,class:"app"},t$={class:"side"},n$={class:"brand-mark"},s$={class:"side-nav"},o$={key:0,class:"nav-group"},r$=["data-tip","onClick"],a$={class:"nav-label"},i$={class:"side-foot"},l$={class:"avatar"},u$={class:"foot-name"},c$={class:"main"},d$={class:"topbar"},f$={class:"title"},p$={class:"gsearch"},v$={key:0,class:"gs-panel"},m$={key:0,class:"gs-group muted"},h$=["onMousedown"],y$={class:"tag"},g$={class:"gs-text"},b$={class:"muted num gs-date"},w$={key:1,class:"gs-group muted"},_$=["onMousedown"],k$={class:"gs-text"},C$={class:"muted gs-sub"},x$={key:1,class:"gs-empty muted"},$$={class:"content"},S$={class:"content-inner"},E$={class:"tabbar"},A$=["onClick"],T$={class:"sheet-user num"},P$=["onClick"],O$={class:"sheet-name"},M$={class:"msw"},I$={class:"msw-bar"},j$={class:"msw-results"},D$={key:0,class:"gs-group muted"},L$=["onMousedown"],R$={class:"tag"},K$={class:"gs-text"},N$={class:"muted num gs-date"},F$={key:1,class:"gs-group muted"},V$=["onMousedown"],B$={class:"gs-text"},U$={class:"muted gs-sub"},q$={key:1,class:"gs-empty muted"},H$={class:"toast-wrap"},z$=Kt({__name:"App",setup(e){const t=Ty(),n=P(eo()&&ie?eo():null);async function o(le){n.value=le,ra(le.userId),location.hash="#/calendar",M.value="calendar",await We(),u();try{await Td(),await so()}catch{}Ve("欢迎,"+le.username);const Q=sessionStorage.getItem("dsh_migrate_toast");Q&&(sessionStorage.removeItem("dsh_migrate_toast"),Ve("已迁移原有数据 "+Q+" 条"))}async function r(){Me.value=!1,Se.value=!1,sh(),l!==null&&(window.clearInterval(l),l=null),n.value=null,await Um(),M.value="calendar",location.hash="#/calendar",Ve("已退出登录")}let l=null;function u(){nh(),l!==null&&window.clearInterval(l),l=window.setInterval(()=>{so()},60*1e3),so()}const f=P(null),v=P(""),y=P(!1),m=P({logs:[],memos:[]});let w=null;const T=nt(()=>!!(m.value.logs.length||m.value.memos.length));function $(){w&&window.clearTimeout(w);const le=v.value;w=window.setTimeout(async()=>{const Q=le.trim();if(!Q){m.value={logs:[],memos:[]};return}const Ae=await Promise.all([zh(Q,8),Wh(Q,4)]);m.value={logs:Ae[0],memos:Ae[1]}},200)}function I(){v.value="",m.value={logs:[],memos:[]},y.value=!1}function J(le){Fi.value=le.date,ee("calendar"),I()}function ae(le){Vi.value=le.id,ee("memo"),I()}function de(){window.setTimeout(()=>{y.value=!1},150)}function ue(le){var Q;(le.ctrlKey||le.metaKey)&&le.key.toLowerCase()==="k"&&(le.preventDefault(),(Q=f.value)==null||Q.focus())}const G=[{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 S(){var Q;const le=(location.hash||"").replace("#/","");return!G.some(Ae=>Ae.key===le)||le==="admin"&&(((Q=eo())==null?void 0:Q.username)||"")!=="xionglin"?"calendar":le}const M=P(S());window.addEventListener("hashchange",()=>{M.value=S()});function ee(le){location.hash="#/"+le}const q=nt(()=>G.find(le=>le.key===M.value)||G[0]),oe=nt(()=>{var le;return(((le=n.value)==null?void 0:le.username)||"")==="xionglin"}),j=nt(()=>oe.value?G:G.filter(le=>le.key!=="admin")),A=nt(()=>{const le=G.filter(Q=>!ne.includes(Q.key));return oe.value?le:le.filter(Q=>Q.key!=="admin")}),O=nt(()=>A.value.some(le=>le.key===M.value));pt([oe,M],()=>{M.value==="admin"&&!oe.value&&ee("calendar")},{immediate:!0});const ne=["calendar","today","plan","ledger"],Ie=G.filter(le=>ne.includes(le.key)),Se=P(!1);function _e(le){Se.value=!1,ee(le)}const Me=P(!1),qe=P(null);function Ue(){Me.value=!0,window.setTimeout(()=>{var le;return(le=qe.value)==null?void 0:le.focus()},60)}function tt(le){J(le),Me.value=!1}function Ye(le){ae(le),Me.value=!1}async function We(){try{if((await ms()).remind_weekly==="off")return;const Q=new Date().getDay();if(Q!==5&&Q!==6&&Q!==0)return;const Ae=await bl(Zs(ut()));if(Ae&&(Ae.highlights||Ae.challenges||Ae.plan_next))return;Ve("本周周记还没写,可在「总结」页填写")}catch{}}return cn(async()=>{window.addEventListener("keydown",ue),n.value&&(ra(n.value.userId),await We(),u())}),(le,Q)=>{var Ae,lt,it;return n.value?(x(),E("div",e$,[i("nav",t$,[i("div",{class:"brand",onClick:Q[0]||(Q[0]=Te=>ee("calendar"))},[i("span",n$,[be(He,{name:"calendar",size:15})]),Q[11]||(Q[11]=i("span",{class:"brand-name"},"实习工作日志",-1))]),i("div",s$,[(x(!0),E(Oe,null,st(j.value,(Te,kt)=>(x(),E(Oe,{key:Te.key},[kt===0||Te.group!==j.value[kt-1].group?(x(),E("div",o$,F(Te.group),1)):me("",!0),i("button",{class:ze(["nav-btn",{active:M.value===Te.key}]),"data-tip":Te.name,onClick:xt=>ee(Te.key)},[be(He,{name:Te.icon,size:17},null,8,["name"]),i("span",a$,F(Te.name),1)],10,r$)],64))),128))]),i("div",i$,[i("span",l$,F((((Ae=n.value)==null?void 0:Ae.username)||"用户").slice(0,1).toUpperCase()),1),i("span",u$,F((lt=n.value)==null?void 0:lt.username),1),i("button",{class:"icon-btn",title:"退出登录",onClick:r},[be(He,{name:"export",size:15})])])]),i("div",c$,[i("header",d$,[i("span",f$,F(q.value.name),1),i("button",{class:"mob-search-btn",title:"搜索",onClick:Ue},[be(He,{name:"search",size:16})]),i("div",p$,[be(He,{name:"search",size:14,class:"gs-icon"}),Pe(i("input",{ref_key:"gsInput",ref:f,class:"input gs-input","onUpdate:modelValue":Q[1]||(Q[1]=Te=>v.value=Te),placeholder:"搜索工作记录与备忘录(Ctrl+K)",onInput:$,onFocus:Q[2]||(Q[2]=Te=>y.value=!0),onBlur:de,onKeydown:Lt(I,["esc"])},null,544),[[Le,v.value]]),y.value&&v.value.trim()?(x(),E("div",v$,[T.value?(x(),E(Oe,{key:0},[m.value.logs.length?(x(),E("div",m$,"工作记录")):me("",!0),(x(!0),E(Oe,null,st(m.value.logs,Te=>(x(),E("div",{key:"l"+Te.id,class:"gs-item",onMousedown:Ut(kt=>J(Te),["prevent"])},[i("span",y$,F(Wt(qo)(Te.category)),1),i("span",g$,F(Te.content),1),i("span",b$,F(Te.date),1)],40,h$))),128)),m.value.memos.length?(x(),E("div",w$,"备忘录")):me("",!0),(x(!0),E(Oe,null,st(m.value.memos,Te=>(x(),E("div",{key:"m"+Te.id,class:"gs-item",onMousedown:Ut(kt=>ae(Te),["prevent"])},[i("span",k$,F(Te.title||"无标题"),1),i("span",C$,F(Te.content),1)],40,_$))),128))],64)):(x(),E("div",x$,"无匹配结果"))])):me("",!0)])]),i("main",$$,[i("div",S$,[M.value==="calendar"?(x(),Ct(Vg,{key:0})):M.value==="today"?(x(),Ct(db,{key:1})):M.value==="plan"?(x(),Ct(gw,{key:2})):M.value==="stats"?(x(),Ct(Yw,{key:3})):M.value==="report"?(x(),Ct(j_,{key:4})):M.value==="ledger"?(x(),Ct($0,{key:5})):M.value==="memo"?(x(),Ct(U0,{key:6})):M.value==="vault"?(x(),Ct(Nk,{key:7})):M.value==="admin"?(x(),Ct(Ux,{key:8})):(x(),Ct(tx,{key:9}))])]),i("nav",E$,[(x(!0),E(Oe,null,st(Wt(Ie),Te=>(x(),E("button",{key:Te.key,class:ze(["tab-btn",{active:M.value===Te.key}]),onClick:kt=>ee(Te.key)},[be(He,{name:Te.icon,size:20},null,8,["name"]),i("span",null,F(Te.name),1)],10,A$))),128)),i("button",{class:ze(["tab-btn",{active:O.value}]),onClick:Q[3]||(Q[3]=Te=>Se.value=!0)},[be(He,{name:"more",size:20}),Q[12]||(Q[12]=i("span",null,"更多",-1))],2)]),Se.value?(x(),E("div",{key:0,class:"sheet-mask",onClick:Q[6]||(Q[6]=Te=>Se.value=!1)},[i("div",{class:"more-sheet",onClick:Q[5]||(Q[5]=Ut(()=>{},["stop"]))},[Q[14]||(Q[14]=i("div",{class:"sheet-handle"},null,-1)),i("div",T$,F((it=n.value)==null?void 0:it.username),1),(x(!0),E(Oe,null,st(A.value,Te=>(x(),E("button",{key:Te.key,class:"sheet-row",onClick:kt=>_e(Te.key)},[be(He,{name:Te.icon,size:18},null,8,["name"]),i("span",O$,F(Te.name),1),be(He,{name:"chevron-right",size:14,class:"sheet-go"})],8,P$))),128)),Q[15]||(Q[15]=i("div",{class:"sheet-divider"},null,-1)),i("button",{class:"sheet-row sheet-danger",onClick:Q[4]||(Q[4]=Te=>{Se.value=!1,r()})},[be(He,{name:"close",size:18}),Q[13]||(Q[13]=i("span",{class:"sheet-name"},"退出登录",-1))])])])):me("",!0),Me.value?(x(),E("div",{key:1,class:"msw-mask",onClick:Q[10]||(Q[10]=Ut(Te=>Me.value=!1,["self"]))},[i("div",M$,[i("div",I$,[be(He,{name:"search",size:16,class:"msw-icon"}),Pe(i("input",{ref_key:"msInput",ref:qe,class:"msw-input","onUpdate:modelValue":Q[7]||(Q[7]=Te=>v.value=Te),placeholder:"搜索工作记录与备忘录",onInput:$,onKeydown:Q[8]||(Q[8]=Lt(Te=>Me.value=!1,["esc"]))},null,544),[[Le,v.value]]),i("button",{class:"icon-btn",onClick:Q[9]||(Q[9]=Te=>{I(),Me.value=!1})},[be(He,{name:"close",size:16})])]),i("div",j$,[T.value?(x(),E(Oe,{key:0},[m.value.logs.length?(x(),E("div",D$,"工作记录")):me("",!0),(x(!0),E(Oe,null,st(m.value.logs,Te=>(x(),E("div",{key:"l"+Te.id,class:"msw-item",onMousedown:Ut(kt=>tt(Te),["prevent"])},[i("span",R$,F(Wt(qo)(Te.category)),1),i("span",K$,F(Te.content),1),i("span",N$,F(Te.date),1)],40,L$))),128)),m.value.memos.length?(x(),E("div",F$,"备忘录")):me("",!0),(x(!0),E(Oe,null,st(m.value.memos,Te=>(x(),E("div",{key:"m"+Te.id,class:"msw-item",onMousedown:Ut(kt=>Ye(Te),["prevent"])},[i("span",B$,F(Te.title||"无标题"),1),i("span",U$,F(Te.content),1)],40,V$))),128))],64)):v.value.trim()?(x(),E("div",q$,"无匹配结果")):me("",!0)])])])):me("",!0)]),n.value?(x(),Ct(ix,{key:0})):me("",!0),i("div",H$,[be(Kv,{name:"toast"},{default:Sn(()=>[(x(!0),E(Oe,null,st(Wt(t),Te=>(x(),E("div",{key:Te.id,class:"toast"},F(Te.text),1))),128))]),_:1})])])):(x(),Ct(Zx,{key:0,onLogin:o}))}}}),W$=Vt(z$,[["__scopeId","data-v-54c408c4"]]);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",l=>{l.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 G$(){const e=await Bm();e&&ra(e.userId);const t=Zv(W$);t.config.errorHandler=(n,o,r)=>{const l=n;Vr("应用内部错误(点击空白处关闭,请将以下内容发送给开发者)",l&&(l.stack||l.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(()=>{})})}G$().catch(e=>{Vr("无法启动:连接同步服务器失败",e&&(e.stack||e.message)||String(e))});export{qd as W,Vd as _,Zg as b,Ud as r};