28 lines
347 KiB
JavaScript
28 lines
347 KiB
JavaScript
(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 c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).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 bt={},Os=[],Mn=()=>{},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:"),It=Object.assign,Xi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},yf=Object.prototype.hasOwnProperty,vt=(e,t)=>yf.call(e,t),We=Array.isArray,as=e=>Wo(e)==="[object Map]",Ds=e=>Wo(e)==="[object Set]",eu=e=>Wo(e)==="[object Date]",tt=e=>typeof e=="function",Tt=e=>typeof e=="string",In=e=>typeof e=="symbol",ht=e=>e!==null&&typeof e=="object",ec=e=>(ht(e)||tt(e))&&tt(e.then)&&tt(e.catch),tc=Object.prototype.toString,Wo=e=>tc.call(e),gf=e=>Wo(e).slice(8,-1),nc=e=>Wo(e)==="[object Object]",Qi=e=>Tt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,So=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))},bf=/-\w/g,bn=fa(e=>e.replace(bf,t=>t.slice(1).toUpperCase())),wf=/\B([A-Z])/g,vs=fa(e=>e.replace(wf,"-$1").toLowerCase()),sc=fa(e=>e.charAt(0).toUpperCase()+e.slice(1)),ri=fa(e=>e?`on${sc(e)}`:""),On=(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},_f=e=>{const t=Tt(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 qn(e){if(We(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=Tt(o)?$f(o):qn(o);if(r)for(const l in r)t[l]=r[l]}return t}else if(Tt(e)||ht(e))return e}const kf=/;(?![^(]*\))/g,Cf=/:([^]+)/,xf=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function $f(e){const t={};return e.replace(xf,n=>n.startsWith("/*")?"":n).split(kf).forEach(n=>{if(n){const o=n.split(Cf);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Ye(e){let t="";if(Tt(e))t=e;else if(We(e))for(let n=0;n<e.length;n++){const o=Ye(e[n]);o&&(t+=o+" ")}else if(ht(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const Sf="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",Ef=Ji(Sf);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=us(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 c=-1;for(let f=0;f<o.length;f++)if(!r[f]&&us(l,o[f],n)){c=f;break}if(c<0)return!1;r[c]=1}return!0}function Af(e,t,n){let o=as(e),r=as(t);if(o||r||(o=Ds(e),r=Ds(t),o||r))return o&&r?nu(e,t,n):!1;const l=Object.keys(e).length,c=Object.keys(t).length;if(l!==c)return!1;for(const f in e){const m=e.hasOwnProperty(f),g=t.hasOwnProperty(f);if(m&&!g||!m&&g||!us(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 c=o(e,t,n);return r.delete(e),l.delete(t),c}function us(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=In(e),r=In(t),o||r?e===t:(o=We(e),r=We(t),o||r?o&&r?su(e,t,n,Tf):!1:(o=ht(e),r=ht(t),o||r?!o||!r?!1:su(e,t,n,Af):String(e)===String(t))))}function Pf(e,t){return e.findIndex(n=>us(n,t))}const ac=e=>!!(e&&e.__v_isRef===!0),F=e=>Tt(e)?e:e==null?"":We(e)||ht(e)&&(e.toString===tc||!tt(e.toString))?ac(e)?F(e.value):JSON.stringify(e,ic,2):String(e),ic=(e,t)=>ac(t)?ic(e,t.value):as(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],l)=>(n[ai(o,l)+" =>"]=r,n),{})}:Ds(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ai(n))}:In(t)?ai(t):ht(t)&&!We(t)&&!nc(t)?String(t):t,ai=(e,t="")=>{var n;return In(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
|
||
* @vue/reactivity v3.5.44
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let qt;class Of{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&&qt&&(qt.active?(this.parent=qt,this.index=(qt.scopes||(qt.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=qt;try{return qt=this,t()}finally{qt=n}}}on(){++this._on===1&&(this.prevScope=qt,qt=this)}off(){if(this._on>0&&--this._on===0){if(qt===this)qt=this.prevScope;else{let t=qt;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 Mf(){return qt}let kt;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,qt&&(qt.active?qt.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=kt,n=wn;kt=this,wn=!0;try{return this.fn()}finally{fc(this),kt=t,wn=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,Eo,To;function cc(e,t=!1){if(e.flags|=8,t){e.next=To,To=e;return}e.next=Eo,Eo=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(;Eo;){let t=Eo;for(Eo=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),If(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===jo)||(e.globalVersion=jo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_i(e))))return;e.flags|=2;const t=e.dep,n=kt,o=wn;kt=e,wn=!0;try{dc(e);const r=e.fn(e._value);(t.version===0||On(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{kt=n,wn=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 If(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let wn=!0;const vc=[];function jn(){vc.push(wn),wn=!1}function Dn(){const e=vc.pop();wn=e===void 0?!0:e}function ou(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=kt;kt=void 0;try{t()}finally{kt=n}}}let jo=0;class jf{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(!kt||!wn||kt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==kt)n=this.activeLink=new jf(kt,this),kt.deps?(n.prevDep=kt.depsTail,kt.depsTail.nextDep=n,kt.depsTail=n):kt.deps=kt.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=kt.depsTail,n.nextDep=void 0,kt.depsTail.nextDep=n,kt.depsTail=n,kt.deps===n&&(kt.deps=o)}return n}trigger(t){this.version++,jo++,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,Is=Symbol(""),Ci=Symbol(""),Do=Symbol("");function Yt(e,t,n){if(wn&&kt){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 Bn(e,t,n,o,r,l){const c=ki.get(e);if(!c){jo++;return}const f=m=>{m&&m.trigger()};if(Zi(),t==="clear")c.forEach(f);else{const m=We(e),g=m&&Qi(n);if(m&&n==="length"){const h=Number(o);c.forEach((_,P)=>{(P==="length"||P===Do||!In(P)&&P>=h)&&f(_)})}else switch((n!==void 0||c.has(void 0))&&f(c.get(n)),g&&f(c.get(Do)),t){case"add":m?g&&f(c.get("length")):(f(c.get(Is)),as(e)&&f(c.get(Ci)));break;case"delete":m||(f(c.get(Is)),as(e)&&f(c.get(Ci)));break;case"set":as(e)&&f(c.get(Is));break}}el()}function Ys(e){const t=dt(e);return t===e||(Yt(t,"iterate",Do),fn(e))?t:Ln(e)?is(e)?t.map(n=>cs(vn(n))):t.map(cs):t.map(vn)}function ma(e){return Yt(e=dt(e),"iterate",Do),e}function Tn(e,t){return Ln(e)?cs(is(e)?vn(t):t):vn(t)}const Df={__proto__:null,[Symbol.iterator](){return li(this,Symbol.iterator,e=>Tn(this,e))},concat(...e){return Ys(this).concat(...e.map(t=>We(t)?Ys(t):t))},entries(){return li(this,"entries",e=>(e[1]=Tn(this,e[1]),e))},every(e,t){return Nn(this,"every",e,t,void 0,arguments)},filter(e,t){return Nn(this,"filter",e,t,n=>n.map(o=>Tn(this,o)),arguments)},find(e,t){return Nn(this,"find",e,t,n=>Tn(this,n),arguments)},findIndex(e,t){return Nn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Nn(this,"findLast",e,t,n=>Tn(this,n),arguments)},findLastIndex(e,t){return Nn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Nn(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 Nn(this,"map",e,t,void 0,arguments)},pop(){return wo(this,"pop")},push(...e){return wo(this,"push",e)},reduce(e,...t){return au(this,"reduce",e,t)},reduceRight(e,...t){return au(this,"reduceRight",e,t)},shift(){return wo(this,"shift")},some(e,t){return Nn(this,"some",e,t,void 0,arguments)},splice(...e){return wo(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 wo(this,"unshift",e)},values(){return li(this,"values",e=>Tn(this,e))}};function li(e,t,n){const o=ma(e),r=o[t],l=r.call(o);if(o!==e&&!fn(e)){if(l[Symbol.toStringTag]==="Array Iterator"){const c=Object.create(Object.getPrototypeOf(l));return c.next=()=>ru(l.next(),n),r!==hc[t]&&Object.defineProperties(c,{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}}}),c}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 Nn(e,t,n,o,r,l){const c=ma(e),f=c!==e&&!fn(e),m=c[t];if(m!==hc[t]){const _=m.apply(e,l);return f?vn(_):_}let g=n;c!==e&&(f?g=function(_,P){return n.call(this,Tn(e,_),P,e)}:n.length>2&&(g=function(_,P){return n.call(this,_,P,e)}));const h=m.call(c,g,o);return f&&r?r(h):h}function au(e,t,n,o){const r=ma(e),l=r!==e&&!fn(e);let c=n,f=!1;r!==e&&(l?(f=o.length===0,c=function(g,h,_){return f&&(f=!1,g=Tn(e,g)),n.call(this,g,Tn(e,h),_,e)}):n.length>3&&(c=function(g,h,_){return n.call(this,g,h,_,e)}));const m=r[t](c,...o);return f?Tn(e,m):m}function ui(e,t,n){const o=dt(e);Yt(o,"iterate",Do);const r=o[t](...n);return(r===-1||r===!1)&&al(n[0])?(n[0]=dt(n[0]),o[t](...n)):r}function wo(e,t,n=[]){jn(),Zi();const o=dt(e)[t].apply(e,n);return el(),Dn(),o}const Lf=Ji("__proto__,__v_isRef,__isVue"),yc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(In));function Kf(e){In(e)||(e=String(e));const t=dt(this);return Yt(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?Wf:kc:l?_c:wc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const c=We(t);if(!r){let m;if(c&&(m=Df[n]))return m;if(n==="hasOwnProperty")return Kf}const f=Reflect.get(t,n,Xt(t)?t:o);if((In(n)?yc.has(n):Lf(n))||(r||Yt(t,"get",n),l))return f;if(Xt(f)){const m=c&&Qi(n)?f:f.value;return r&&ht(m)?$i(m):m}return ht(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 c=We(t)&&Qi(n);if(!this._isShallow){const g=Ln(l);if(!fn(o)&&!Ln(o)&&(l=dt(l),o=dt(o)),!c&&Xt(l)&&!Xt(o))return g||(l.value=o),!0}const f=c?Number(n)<t.length:vt(t,n),m=Reflect.set(t,n,o,Xt(t)?t:r);return t===dt(r)&&m&&(f?On(o,l)&&Bn(t,"set",n,o):Bn(t,"add",n,o)),m}deleteProperty(t,n){const o=vt(t,n);t[n];const r=Reflect.deleteProperty(t,n);return r&&o&&Bn(t,"delete",n,void 0),r}has(t,n){const o=Reflect.has(t,n);return(!In(n)||!yc.has(n))&&Yt(t,"has",n),o}ownKeys(t){return Yt(t,"iterate",We(t)?"length":Is),Reflect.ownKeys(t)}}class Rf extends gc{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Nf=new bc,Ff=new Rf,Vf=new bc(!0);const xi=e=>e,$r=e=>Reflect.getPrototypeOf(e);function Bf(e,t,n){return function(...o){const r=this.__v_raw,l=dt(r),c=as(l),f=e==="entries"||e===Symbol.iterator&&c,m=e==="keys"&&c,g=r[e](...o),h=n?xi:t?cs:vn;return!t&&Yt(l,"iterate",m?Ci:Is),It(Object.create(g),{next(){const{value:_,done:P}=g.next();return P?{value:_,done:P}:{value:f?[h(_[0]),h(_[1])]:h(_),done:P}}})}}function Sr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Uf(e,t){const n={get(r){const l=this.__v_raw,c=dt(l),f=dt(r);e||(On(r,f)&&Yt(c,"get",r),Yt(c,"get",f));const{has:m}=$r(c),g=t?xi:e?cs:vn;if(m.call(c,r))return g(l.get(r));if(m.call(c,f))return g(l.get(f));l!==c&&l.get(r)},get size(){const r=this.__v_raw;return!e&&Yt(dt(r),"iterate",Is),r.size},has(r){const l=this.__v_raw,c=dt(l),f=dt(r);return e||(On(r,f)&&Yt(c,"has",r),Yt(c,"has",f)),r===f?l.has(r):l.has(r)||l.has(f)},forEach(r,l){const c=this,f=c.__v_raw,m=dt(f),g=t?xi:e?cs:vn;return!e&&Yt(m,"iterate",Is),f.forEach((h,_)=>r.call(l,g(h),g(_),c))}};return It(n,e?{add:Sr("add"),set:Sr("set"),delete:Sr("delete"),clear:Sr("clear")}:{add(r){const l=dt(this),c=$r(l),f=dt(r),m=!t&&!fn(r)&&!Ln(r)?f:r;return c.has.call(l,m)||On(r,m)&&c.has.call(l,r)||On(f,m)&&c.has.call(l,f)||(l.add(m),Bn(l,"add",m,m)),this},set(r,l){!t&&!fn(l)&&!Ln(l)&&(l=dt(l));const c=dt(this),{has:f,get:m}=$r(c);let g=f.call(c,r);g||(r=dt(r),g=f.call(c,r));const h=m.call(c,r);return c.set(r,l),g?On(l,h)&&Bn(c,"set",r,l):Bn(c,"add",r,l),this},delete(r){const l=dt(this),{has:c,get:f}=$r(l);let m=c.call(l,r);m||(r=dt(r),m=c.call(l,r)),f&&f.call(l,r);const g=l.delete(r);return m&&Bn(l,"delete",r,void 0),g},clear(){const r=dt(this),l=r.size!==0,c=r.clear();return l&&Bn(r,"clear",void 0,void 0),c}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Bf(r,e,t)}),n}function sl(e,t){const n=Uf(e,t);return(o,r,l)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_isShallow"?t:r==="__v_raw"?o:Reflect.get(vt(n,r)&&r in o?n:o,r,l)}const qf={get:sl(!1,!1)},Hf={get:sl(!1,!0)},zf={get:sl(!0,!1)};const wc=new WeakMap,_c=new WeakMap,kc=new WeakMap,Wf=new WeakMap;function Gf(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 Ln(e)?e:rl(e,!1,Nf,qf,wc)}function Yf(e){return rl(e,!1,Vf,Hf,_c)}function $i(e){return rl(e,!0,Ff,zf,kc)}function rl(e,t,n,o,r){if(!ht(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 c=Gf(gf(e));if(c===0)return e;const f=new Proxy(e,c===2?o:n);return r.set(e,f),f}function is(e){return Ln(e)?is(e.__v_raw):!!(e&&e.__v_isReactive)}function Ln(e){return!!(e&&e.__v_isReadonly)}function fn(e){return!!(e&&e.__v_isShallow)}function al(e){return e?!!e.__v_raw:!1}function dt(e){const t=e&&e.__v_raw;return t?dt(t):e}function Jf(e){return!vt(e,"__v_skip")&&Object.isExtensible(e)&&oc(e,"__v_skip",!0),e}const vn=e=>ht(e)?ol(e):e,cs=e=>ht(e)?$i(e):e;function Xt(e){return e?e.__v_isRef===!0:!1}function O(e){return Xf(e,!1)}function Xf(e,t){return Xt(e)?e:new Qf(e,t)}class Qf{constructor(t,n){this.dep=new nl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:dt(t),this._value=n?t:vn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||fn(t)||Ln(t);t=o?t:dt(t),On(t,n)&&(this._rawValue=t,this._value=o?t:vn(t),this.dep.trigger())}}function Ht(e){return Xt(e)?e.value:e}const Zf={get:(e,t,n)=>t==="__v_raw"?e:Ht(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Xt(r)&&!Xt(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Cc(e){return is(e)?e:new Proxy(e,Zf)}class ep{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=jo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&kt!==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 tp(e,t,n=!1){let o,r;return tt(e)?o=e:(o=e.get,r=e.set),new ep(o,r,n)}const Er={},Br=new WeakMap;let Ss;function np(e,t=!1,n=Ss){if(n){let o=Br.get(n);o||Br.set(n,o=[]),o.push(e)}}function sp(e,t,n=bt){const{immediate:o,deep:r,once:l,scheduler:c,augmentJob:f,call:m}=n,g=S=>r?S:fn(S)||r===!1||r===0?Un(S,1):Un(S);let h,_,P,x,I=!1,H=!1;if(Xt(e)?(_=()=>e.value,I=fn(e)):is(e)?(_=()=>g(e),I=!0):We(e)?(H=!0,I=e.some(S=>is(S)||fn(S)),_=()=>e.map(S=>{if(Xt(S))return S.value;if(is(S))return g(S);if(tt(S))return m?m(S,2):S()})):tt(e)?t?_=m?()=>m(e,2):e:_=()=>{if(P){jn();try{P()}finally{Dn()}}const S=Ss;Ss=h;try{return m?m(e,3,[x]):e(x)}finally{Ss=S}}:_=Mn,t&&r){const S=_,D=r===!0?1/0:r;_=()=>Un(S(),D)}const oe=Mf(),le=()=>{h.stop(),oe&&oe.active&&Xi(oe.effects,h)};if(l&&t){const S=t;t=(...D)=>{try{return S(...D)}finally{le()}}}let ie=H?new Array(e.length).fill(Er):Er;const U=S=>{if(!(!(h.flags&1)||!h.dirty&&!S))if(t){const D=h.run();if(S||r||I||(H?D.some((ee,z)=>On(ee,ie[z])):On(D,ie))){const ee=Ss;jn();try{P&&P(),Ss=h;const z=[D,ie===Er?void 0:H&&ie[0]===Er?[]:ie,x];ie=D,m?m(t,3,z):t(...z)}finally{Ss=ee,Dn()}}}else h.run()};return f&&f(U),h=new lc(_),h.scheduler=c?()=>c(U,!1):U,x=S=>np(S,!1,h),P=h.onStop=()=>{const S=Br.get(h);if(S){if(m)m(S,4);else for(const D of S)D();Br.delete(h)}},t?o?U(!0):ie=h.run():c?c(U.bind(null,!0),!0):h.run(),le.pause=h.pause.bind(h),le.resume=h.resume.bind(h),le.stop=le,le}function Un(e,t=1/0,n){if(t<=0||!ht(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Xt(e))Un(e.value,t,n);else if(We(e))for(let o=0;o<e.length;o++)Un(e[o],t,n);else if(Ds(e)||as(e))e.forEach(o=>{Un(o,t,n)});else if(nc(e)){for(const o in e)Un(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Un(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 mn(e,t,n,o){if(tt(e)){const r=Go(e,t,n,o);return r&&ec(r)&&r.catch(l=>{ha(l,t,n)}),r}if(We(e)){const r=[];for(let l=0;l<e.length;l++)r.push(mn(e[l],t,n,o));return r}}function ha(e,t,n,o=!0){const r=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:c}=t&&t.appContext.config||bt;if(t){let f=t.parent;const m=t.proxy,g=`https://vuejs.org/error-reference/#runtime-${n}`;for(;f;){const h=f.ec;if(h){for(let _=0;_<h.length;_++)if(h[_](e,m,g)===!1)return}f=f.parent}if(l){jn(),Go(l,null,10,[e,m,g]),Dn();return}}op(e,n,r,o,c)}function op(e,t,n,o=!0,r=!1){if(r)throw e;console.error(e)}const nn=[];let gn=-1;const An=[];let rs=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 rp(e){let t=gn+1,n=nn.length;for(;t<n;){const o=t+n>>>1,r=nn[o],l=Lo(r);l<e||l===e&&r.flags&2?t=o+1:n=o}return t}function il(e){if(!(e.flags&1)){const t=Lo(e),n=nn[nn.length-1];!n||!(e.flags&2)&&t>=Lo(n)?nn.push(e):nn.splice(rp(t),0,e),e.flags|=1,$c()}}function $c(){Ur||(Ur=xc.then(Tc))}function ap(e){if(!We(e))rs&&e.id===-1?rs.splice(Js+1,0,e):e.flags&1||(An.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)An.push(e[t]);$c()}function Sc(e,t,n,o=gn+1){for(;o<nn.length;o++){const r=nn[o];if(r&&r.flags&2){if(e&&r.id!==e.uid||t!==void 0&&!(r.id>=t))continue;nn.splice(o,1),o=e?o-1:gn,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function Ec(e,t,n=0){if(An.length){let o=An,r=0;if(t){o=[];for(let c=0;c<An.length;c++){const f=An[c];(f.i!==void 0?!f.i||f.i.uid<n:t.has(f))?An[r++]=f:o.push(f)}}const l=[...new Set(o)].sort((c,f)=>Lo(c)-Lo(f));if(An.length=r,rs){for(let c=0;c<l.length;c++)rs.push(l[c]);return}for(rs=l,Js=0;Js<rs.length;Js++){const c=rs[Js];c.flags&4&&(c.flags&=-2),c.flags&8||c(),c.flags&=-2}rs=null,Js=0}}let ci=!1;function ip(e,t){if(ci){e();return}const n=t===void 0?void 0:new Set(An);e(),ci=!0;try{Sc(void 0,t),Ec(void 0,n,t)}finally{ci=!1}}const Lo=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Tc(e){try{for(gn=0;gn<nn.length;gn++){const t=nn[gn];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(;gn<nn.length;gn++){const t=nn[gn];t&&(t.flags&=-2)}gn=-1,nn.length=0,Ec(),Ur=null,(nn.length||An.length)&&Tc()}}let dn=null,Ac=null;function qr(e){const t=dn;return dn=e,Ac=e&&e.type.__scopeId||null,t}function Cn(e,t=dn,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&Gr(-1);const l=qr(t),c=js.length;let f;try{f=e(...r)}finally{for(let m=js.length;m>c;m--)sd();qr(l),o._d&&Gr(1)}return f};return o._n=!0,o._c=!0,o._d=!0,o}function Ae(e,t){if(dn===null)return e;const n=ka(dn),o=e.dirs||(e.dirs=[]);for(let r=0;r<t.length;r++){let[l,c,f,m=bt]=t[r];l&&(tt(l)&&(l={mounted:l,updated:l}),l.deep&&Un(c),o.push({dir:l,instance:n,value:c,oldValue:void 0,arg:f,modifiers:m}))}return e}function Cs(e,t,n,o){const r=e.dirs,l=t&&t.dirs;for(let c=0;c<r.length;c++){const f=r[c];l&&(f.oldValue=l[c].value);let m=f.dir[o];m&&(jn(),mn(m,n,8,[e.el,f,e,t]),Dn())}}function lp(e,t){if(sn){let n=sn.provides;const o=sn.parent&&sn.parent.provides;o===n&&(n=sn.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&&tt(t)?t.call(o&&o.proxy):t}}const up=Symbol.for("v-scx"),cp=()=>Ir(up);function ft(e,t,n){return Pc(e,t,n)}function Pc(e,t,n=bt){const{immediate:o,deep:r,flush:l,once:c}=n,f=It({},n),m=t&&o||!t&&l!=="post";let g;if(Bo){if(l==="sync"){const x=cp();g=x.__watcherHandles||(x.__watcherHandles=[])}else if(!m){const x=()=>{};return x.stop=Mn,x.resume=Mn,x.pause=Mn,x}}const h=sn;f.call=(x,I,H)=>mn(x,h,I,H);let _=!1;l==="post"?f.scheduler=x=>{x.i=h,tn(x,h&&h.suspense)}:l!=="sync"&&(_=!0,f.scheduler=(x,I)=>{I?x():il(x)}),f.augmentJob=x=>{t&&(x.flags|=4),_&&(x.flags|=2,h&&(x.id=h.uid,x.i=h))};const P=sp(e,t,f);return Bo&&(g?g.push(P):m&&P()),P}function dp(e,t,n){const o=this.proxy,r=Tt(e)?e.includes(".")?Oc(o,e):()=>o[e]:e.bind(o,o);let l;tt(t)?l=t:(l=t.handler,n=t);const c=Yo(this),f=Pc(r,l.bind(o),n);return c(),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 ss=new WeakMap,Mc=Symbol("_vte"),ya=e=>e.__isTeleport,Ts=e=>e&&(e.disabled||e.disabled===""),fp=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 Tt(n)?t?t(n):null:n},pp={name:"Teleport",__isTeleport:!0,process(e,t,n,o,r,l,c,f,m,g){const{mc:h,pc:_,pbc:P,o:{insert:x,querySelector:I,createText:H,createComment:oe,parentNode:le}}=g,ie=Ts(t.props);let{dynamicChildren:U}=t;const S=(z,ne,j)=>{z.shapeFlag&16&&h(z.children,ne,j,r,l,c,f,m)},D=(z=t)=>{const ne=Ts(z.props),j=z.target=Si(z.props,I),T=Ei(j,z,H,x);j&&(c!=="svg"&&iu(j)?c="svg":c!=="mathml"&&lu(j)&&(c="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(j),ne||(S(z,j,T),Co(z,!1)))},ee=z=>{const ne=()=>{if(ss.get(z)===ne){if(ss.delete(z),Ts(z.props)){const j=le(z.el)||n;S(z,j,z.anchor),Co(z,!0)}D(z)}};ss.set(z,ne),tn(ne,l)};if(e==null){const z=t.el=H(""),ne=t.anchor=H("");if(x(z,n,o),x(ne,n,o),fp(t.props)||l&&l.pendingBranch){ee(t);return}ie&&(S(t,n,ne),Co(t,!0)),D()}else{t.el=e.el;const z=t.anchor=e.anchor,ne=ss.get(e);if(ne){ne.flags|=8,ss.delete(e),ee(t);return}t.targetStart=e.targetStart;const j=t.target=e.target,T=t.targetAnchor=e.targetAnchor,M=Ts(e.props),Z=M?n:j,Oe=M?z:T;if(c==="svg"||iu(j)?c="svg":(c==="mathml"||lu(j))&&(c="mathml"),U?(P(e.dynamicChildren,U,Z,r,l,c,f),dl(e,t,!0)):m||_(e,t,Z,Oe,r,l,c,f,!1),ie)M?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tr(t,n,z,g,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Se=Si(t.props,I);Se&&(t.target=Se,Tr(t,Se,null,g,0))}else M&&Tr(t,j,T,g,1);Co(t,ie)}},remove(e,t,n,{um:o,o:{remove:r}},l){const{shapeFlag:c,children:f,anchor:m,targetStart:g,targetAnchor:h,target:_,props:P}=e,x=Ts(P),I=l||!x,H=ss.get(e);if(H&&(H.flags|=8,ss.delete(e)),_&&(r(g),r(h)),l&&r(m),!H&&(x||_)&&c&16)for(let oe=0;oe<f.length;oe++){const le=f[oe];o(le,t,n,I,!!le.dynamicChildren)}},move:Tr,hydrate:vp};function Tr(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:c,anchor:f,shapeFlag:m,children:g,props:h}=e,_=l===2;if(_&&o(c,t,n),!ss.has(e)&&(!_||Ts(h))&&m&16)for(let P=0;P<g.length;P++)r(g[P],t,n,2);_&&o(f,t,n)}function vp(e,t,n,o,r,l,{o:{nextSibling:c,parentNode:f,querySelector:m,insert:g,createText:h}},_){function P(oe,le){let ie=le;for(;ie;){if(ie&&ie.nodeType===8){if(ie.data==="teleport start anchor")t.targetStart=ie;else if(ie.data==="teleport anchor"){t.targetAnchor=ie,oe._lpa=t.targetAnchor&&c(t.targetAnchor);break}}ie=c(ie)}}function x(oe,le){le.anchor=_(c(oe),le,f(oe),n,o,r,l)}const I=t.target=Si(t.props,m),H=Ts(t.props);if(I){const oe=I._lpa||I.firstChild;t.shapeFlag&16&&(H?(x(e,t),P(I,oe),t.targetAnchor||Ei(I,t,h,g,f(e)===I?e:null)):(t.anchor=c(e),P(I,oe),t.targetAnchor||Ei(I,t,h,g),_(oe&&c(oe),t,I,n,o,r,l))),Co(t,H)}else H&&t.shapeFlag&16&&(x(e,t),t.targetStart=e,t.targetAnchor=c(e));return t.anchor&&c(t.anchor)}const kn=pp;function Co(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(""),c=t.targetAnchor=n("");return l[Mc]=c,e&&(o(l,e,r),o(c,e,r)),c}const cn=Symbol("_leaveCb"),_o=Symbol("_enterCb");function Ic(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return ln(()=>{e.isMounted=!0}),Fc(()=>{e.isUnmounting=!0}),e}const un=[Function,Array],jc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:un,onEnter:un,onAfterEnter:un,onEnterCancelled:un,onBeforeLeave:un,onLeave:un,onAfterLeave:un,onLeaveCancelled:un,onBeforeAppear:un,onAppear:un,onAfterAppear:un,onAppearCancelled:un},mp={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?pe():void 0;if(!l)return;const c=dt(e),{mode:f}=c;if(o.isLeaving)return di(l);const m=Hr(l);if(!m)return di(l);let g=Ko(m,c,o,n,_=>g=_);m.type!==Jt&&ds(m,g);let h=n.subTree&&Hr(n.subTree);if(h&&h.type!==Jt&&!As(h,m)&&Ro(n.subTree)){let _=Ko(h,c,o,n);if(ds(h,_),f==="out-in"&&m.type!==Jt)return o.isLeaving=!0,_.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete _.afterLeave,h=void 0},di(l);f==="in-out"&&m.type!==Jt?_.delayLeave=(P,x,I)=>{const H=Lc(o,h);H[String(h.key)]=h,P[cn]=()=>{x(),P[cn]=void 0,delete g.delayedLeave,h=void 0},g.delayedLeave=()=>{I(),delete g.delayedLeave,h=void 0}}:h=void 0}else h&&(h=void 0);return l}}};function Dc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Jt){t=n;break}}return t}const hp=mp;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:c,persisted:f=!1,onBeforeEnter:m,onEnter:g,onAfterEnter:h,onEnterCancelled:_,onBeforeLeave:P,onLeave:x,onAfterLeave:I,onLeaveCancelled:H,onBeforeAppear:oe,onAppear:le,onAfterAppear:ie,onAppearCancelled:U}=t,S=String(e.key),D=Lc(n,e),ee=(j,T)=>{j&&mn(j,o,9,T)},z=(j,T)=>{const M=T[1];ee(j,T),We(j)?j.every(Z=>Z.length<=1)&&M():j.length<=1&&M()},ne={mode:c,persisted:f,beforeEnter(j){let T=m;if(!n.isMounted)if(l)T=oe||m;else return;j[cn]&&j[cn](!0);const M=D[S];if(M&&As(e,M)){let Z=M.el[cn];if(!Z){const Oe=Ro(M);Z=Oe&&Oe.el[cn]}Z&&Z()}ee(T,[j])},enter(j){if(D[S]===e)return;let T=g,M=h,Z=_;if(!n.isMounted)if(l)T=le||g,M=ie||h,Z=U||_;else return;let Oe=!1;j[_o]=ge=>{Oe||(Oe=!0,ge?ee(Z,[j]):ee(M,[j]),ne.delayedLeave&&ne.delayedLeave(),j[_o]=void 0)};const Se=j[_o].bind(null,!1);T?z(T,[j,Se]):Se()},leave(j,T){const M=String(e.key);if(j[_o]&&j[_o](!0),n.isUnmounting)return T();ee(P,[j]);let Z=!1;j[cn]=Se=>{Z||(Z=!0,T(),Se?ee(H,[j]):ee(I,[j]),j[cn]=void 0,D[M]===e&&delete D[M])};const Oe=j[cn].bind(null,!1);D[M]=e,x?z(x,[j,Oe]):Oe()},clone(j){const T=Ko(j,t,n,o,r);return r&&r(T),T}};return ne}function di(e){if(ga(e))return e=fs(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&&tt(n.default))return n.default()}}function ds(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;ds(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===Me&&We(e.children)){const n=Hc(e.children,!1);n&&ds(n,t)}}function ll(e,t=!1,n){let o=[],r=0;for(let l=0;l<e.length;l++){let c=e[l];const f=n==null?c.key:String(n)+String(c.key!=null?c.key:l);c.type===Me?(c.patchFlag&128&&r++,o=o.concat(ll(c.children,t,f))):(t||c.type!==Jt)&&o.push(f!=null?fs(c,{key:f}):c)}if(r>1)for(let l=0;l<o.length;l++)o[l].patchFlag=-2;return o}function Ro(e){if(e.component)return Ro(e.component.subTree);if(e.type===Me){const t=We(e.children)&&Hc(e.children,!1);return t?Ro(t):void 0}if(e.type!==Jt)return e}function jt(e,t){return tt(e)?It({name:e.name},t,{setup:e}):e}function Kc(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 Ao(e,t,n,o,r=!1){if(We(e)){e.forEach((H,oe)=>Ao(H,t&&(We(t)?t[oe]:t),n,o,r));return}if(Po(o)&&!r){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Ao(e,t,n,o.component.subTree);return}const l=o.shapeFlag&4?ka(o.component):o.el,c=r?null:l,{i:f,r:m}=e,g=t&&t.r,h=f.refs===bt?f.refs={}:f.refs,_=f.setupState,P=dt(_),x=_===bt?Zu:H=>uu(h,H)?!1:vt(P,H),I=(H,oe)=>!(oe&&uu(h,oe));if(g!=null&&g!==m){if(cu(t),Tt(g))h[g]=null,x(g)&&(_[g]=null);else if(Xt(g)){const H=t;I(g,H.k)&&(g.value=null),H.k&&(h[H.k]=null)}}if(tt(m))Go(m,f,12,[c,h]);else{const H=Tt(m),oe=Xt(m);if(H||oe){const le=()=>{if(e.f){const ie=H?x(m)?_[m]:h[m]:I()||!e.k?m.value:h[e.k];if(r)We(ie)&&Xi(ie,l);else if(We(ie))ie.includes(l)||ie.push(l);else if(H)h[m]=[l],x(m)&&(_[m]=h[m]);else{const U=[l];I(m,e.k)&&(m.value=U),e.k&&(h[e.k]=U)}}else H?(h[m]=c,x(m)&&(_[m]=c)):oe&&(I(m,e.k)&&(m.value=c),e.k&&(h[e.k]=c))};if(c){const ie=()=>{le(),zr.delete(e)};ie.id=-1,zr.set(e,ie),tn(ie,n)}else cu(e),le()}}}function cu(e){const t=zr.get(e);t&&(t.flags|=8,zr.delete(e))}va().requestIdleCallback;va().cancelIdleCallback;const Po=e=>!!e.type.__asyncLoader,ga=e=>e.type.__isKeepAlive;function yp(e,t){Rc(e,"a",t)}function gp(e,t){Rc(e,"da",t)}function Rc(e,t,n=sn){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)&&bp(o,t,n,r),r=r.parent}}function bp(e,t,n,o){const r=ba(t,e,o,!0);hn(()=>{Xi(o[t],r)},n)}function ba(e,t,n=sn,o=!1){if(n){const r=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...c)=>{jn();const f=Yo(n),m=mn(t,n,e,c);return f(),Dn(),m});return o?r.unshift(l):r.push(l),l}}const Wn=e=>(t,n=sn)=>{(!Bo||e==="sp")&&ba(e,(...o)=>t(...o),n)},wp=Wn("bm"),ln=Wn("m"),_p=Wn("bu"),Nc=Wn("u"),Fc=Wn("bum"),hn=Wn("um"),kp=Wn("sp"),Cp=Wn("rtg"),xp=Wn("rtc");function $p(e,t=sn){ba("ec",e,t)}const Sp=Symbol.for("v-ndc");function st(e,t,n,o){let r;const l=n,c=We(e);if(c||Tt(e)){const f=c&&is(e);let m=!1,g=!1;f&&(m=!fn(e),g=Ln(e),e=ma(e)),r=new Array(e.length);for(let h=0,_=e.length;h<_;h++)r[h]=t(m?g?cs(vn(e[h])):vn(e[h]):e[h],h,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(ht(e))if(e[Symbol.iterator])r=Array.from(e,(f,m)=>t(f,m,void 0,l));else{const f=Object.keys(e);r=new Array(f.length);for(let m=0,g=f.length;m<g;m++){const h=f[m];r[m]=t(e[h],h,m,l)}}else r=[];return r}const Ti=e=>e?id(e)?ka(e):Ti(e.parent):null,Oo=It(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=>Ti(e.parent),$root:e=>Ti(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=>dp.bind(e)}),fi=(e,t)=>e!==bt&&!e.__isScriptSetup&&vt(e,t),Ep={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:l,accessCache:c,type:f,appContext:m}=e;if(t[0]!=="$"){const P=c[t];if(P!==void 0)switch(P){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 c[t]=1,o[t];if(r!==bt&&vt(r,t))return c[t]=2,r[t];if(vt(l,t))return c[t]=3,l[t];if(n!==bt&&vt(n,t))return c[t]=4,n[t];Ai&&(c[t]=0)}}const g=Oo[t];let h,_;if(g)return t==="$attrs"&&Yt(e.attrs,"get",""),g(e);if((h=f.__cssModules)&&(h=h[t]))return h;if(n!==bt&&vt(n,t))return c[t]=4,n[t];if(_=m.config.globalProperties,vt(_,t))return _[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:l}=e;return fi(r,t)?(r[t]=n,!0):o!==bt&&vt(o,t)?(o[t]=n,!0):vt(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:c}},f){let m;return!!(n[f]||e!==bt&&f[0]!=="$"&&vt(e,f)||fi(t,f)||vt(l,f)||vt(o,f)||vt(Oo,f)||vt(r.config.globalProperties,f)||(m=c.__cssModules)&&m[f])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:vt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function du(e){return We(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ai=!0;function Tp(e){const t=Bc(e),n=e.proxy,o=e.ctx;Ai=!1,t.beforeCreate&&fu(t.beforeCreate,e,"bc");const{data:r,computed:l,methods:c,watch:f,provide:m,inject:g,created:h,beforeMount:_,mounted:P,beforeUpdate:x,updated:I,activated:H,deactivated:oe,beforeDestroy:le,beforeUnmount:ie,destroyed:U,unmounted:S,render:D,renderTracked:ee,renderTriggered:z,errorCaptured:ne,serverPrefetch:j,expose:T,inheritAttrs:M,components:Z,directives:Oe,filters:Se}=t;if(g&&Ap(g,o,null),c)for(const qe in c){const Fe=c[qe];tt(Fe)&&(o[qe]=Fe.bind(n))}if(r){const qe=r.call(n,n);ht(qe)&&(e.data=ol(qe))}if(Ai=!0,l)for(const qe in l){const Fe=l[qe],Je=tt(Fe)?Fe.bind(n,n):tt(Fe.get)?Fe.get.bind(n,n):Mn,Ge=!tt(Fe)&&tt(Fe.set)?Fe.set.bind(n):Mn,ze=rt({get:Je,set:Ge});Object.defineProperty(o,qe,{enumerable:!0,configurable:!0,get:()=>ze.value,set:re=>ze.value=re})}if(f)for(const qe in f)Vc(f[qe],o,n,qe);if(m){const qe=tt(m)?m.call(n):m;Reflect.ownKeys(qe).forEach(Fe=>{lp(Fe,qe[Fe])})}h&&fu(h,e,"c");function Pe(qe,Fe){We(Fe)?Fe.forEach(Je=>qe(Je.bind(n))):Fe&&qe(Fe.bind(n))}if(Pe(wp,_),Pe(ln,P),Pe(_p,x),Pe(Nc,I),Pe(yp,H),Pe(gp,oe),Pe($p,ne),Pe(xp,ee),Pe(Cp,z),Pe(Fc,ie),Pe(hn,S),Pe(kp,j),We(T))if(T.length){const qe=e.exposed||(e.exposed={});T.forEach(Fe=>{Object.defineProperty(qe,Fe,{get:()=>n[Fe],set:Je=>n[Fe]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});D&&e.render===Mn&&(e.render=D),M!=null&&(e.inheritAttrs=M),Z&&(e.components=Z),Oe&&(e.directives=Oe),j&&Kc(e)}function Ap(e,t,n=Mn){We(e)&&(e=Pi(e));for(const o in e){const r=e[o];let l;ht(r)?"default"in r?l=Ir(r.from||o,r.default,!0):l=Ir(r.from||o):l=Ir(r),Xt(l)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:c=>l.value=c}):t[o]=l}}function fu(e,t,n){mn(We(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(Tt(e)){const l=t[e];tt(l)&&ft(r,l)}else if(tt(e))ft(r,e.bind(n));else if(ht(e))if(We(e))e.forEach(l=>Vc(l,t,n,o));else{const l=tt(e.handler)?e.handler.bind(n):t[e.handler];tt(l)&&ft(r,l,e)}}function Bc(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:l,config:{optionMergeStrategies:c}}=e.appContext,f=l.get(t);let m;return f?m=f:!r.length&&!n&&!o?m=t:(m={},r.length&&r.forEach(g=>Wr(m,g,c,!0)),Wr(m,t,c)),ht(t)&&l.set(t,m),m}function Wr(e,t,n,o=!1){const{mixins:r,extends:l}=t;l&&Wr(e,l,n,!0),r&&r.forEach(c=>Wr(e,c,n,!0));for(const c in t)if(!(o&&c==="expose")){const f=Pp[c]||n&&n[c];e[c]=f?f(e[c],t[c]):t[c]}return e}const Pp={data:pu,props:vu,emits:vu,methods:xo,computed:xo,beforeCreate:en,created:en,beforeMount:en,mounted:en,beforeUpdate:en,updated:en,beforeDestroy:en,beforeUnmount:en,destroyed:en,unmounted:en,activated:en,deactivated:en,errorCaptured:en,serverPrefetch:en,components:xo,directives:xo,watch:Mp,provide:pu,inject:Op};function pu(e,t){return t?e?function(){return It(tt(e)?e.call(this,this):e,tt(t)?t.call(this,this):t)}:t:e}function Op(e,t){return xo(Pi(e),Pi(t))}function Pi(e){if(We(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function en(e,t){return e?[...new Set([].concat(e,t))]:t}function xo(e,t){return e?It(Object.create(null),e,t):t}function vu(e,t){return e?We(e)&&We(t)?[...new Set([...e,...t])]:It(Object.create(null),du(e),du(t??{})):t}function Mp(e,t){if(!e)return t;if(!t)return e;const n=It(Object.create(null),e);for(const o in t)n[o]=en(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 Ip=0;function jp(e,t){return function(o,r=null){tt(o)||(o=It({},o)),r!=null&&!ht(r)&&(r=null);const l=Uc(),c=new WeakSet,f=[];let m=!1;const g=l.app={_uid:Ip++,_component:o,_props:r,_container:null,_context:l,_instance:null,version:fv,get config(){return l.config},set config(h){},use(h,..._){return c.has(h)||(h&&tt(h.install)?(c.add(h),h.install(g,..._)):tt(h)&&(c.add(h),h(g,..._))),g},mixin(h){return l.mixins.includes(h)||l.mixins.push(h),g},component(h,_){return _?(l.components[h]=_,g):l.components[h]},directive(h,_){return _?(l.directives[h]=_,g):l.directives[h]},mount(h,_,P){if(!m){const x=g._ceVNode||ye(o,r);return x.appContext=l,P===!0?P="svg":P===!1&&(P=void 0),e(x,h,P),m=!0,g._container=h,h.__vue_app__=g,ka(x.component)}},onUnmount(h){f.push(h)},unmount(){m&&(mn(f,g._instance,16),e(null,g._container),delete g._container.__vue_app__)},provide(h,_){return l.provides[h]=_,g},runWithContext(h){const _=Qs;Qs=g;try{return h()}finally{Qs=_}}};return g}}let Qs=null;const Dp=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${bn(t)}Modifiers`]||e[`${vs(t)}Modifiers`];function Lp(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||bt;let r=n;const l=t.startsWith("update:"),c=l&&Dp(o,t.slice(7));c&&(c.trim&&(r=n.map(h=>Tt(h)?h.trim():h)),c.number&&(r=r.map(pa)));let f,m=o[f=ri(t)]||o[f=ri(bn(t))];!m&&l&&(m=o[f=ri(vs(t))]),m&&mn(m,e,6,r);const g=o[f+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[f])return;e.emitted[f]=!0,mn(g,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 c={},f=!1;if(!tt(e)){const m=g=>{const h=qc(g,t,!0);h&&(f=!0,It(c,h))};!n&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}return!l&&!f?(ht(e)&&o.set(e,null),null):(We(l)?l.forEach(m=>c[m]=null):It(c,l),ht(e)&&o.set(e,c),c)}function wa(e,t){return!e||!ca(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),vt(e,t[0].toLowerCase()+t.slice(1))||vt(e,vs(t))||vt(e,t))}function mu(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[l],slots:c,attrs:f,emit:m,render:g,renderCache:h,props:_,data:P,setupState:x,ctx:I,inheritAttrs:H}=e,oe=qr(e);let le,ie;try{if(n.shapeFlag&4){const S=r||o,D=S;le=Pn(g.call(D,S,h,_,x,P,I)),ie=f}else{const S=t;le=Pn(S.length>1?S(_,{attrs:f,slots:c,emit:m}):S(_,null)),ie=t.props?f:Rp(f)}}catch(S){js.length=0,ha(S,e,1),le=ye(Jt)}let U=le;if(ie&&H!==!1){const S=Object.keys(ie),{shapeFlag:D}=U;S.length&&D&7&&(l&&S.some(da)&&(ie=Np(ie,l)),U=fs(U,ie,!1,!0))}if(n.dirs&&(U=fs(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition){const S=ya(U.type)&&Hr(U)||U;ds(S,n.transition)}return le=U,qr(oe),le}function Hc(e,t=!0){let n;for(let o=0;o<e.length;o++){const r=e[o];if(Fo(r)){if(r.type!==Jt||r.children==="v-if"){if(n)return;n=r}}else return}return n}const Rp=e=>{let t;for(const n in e)(n==="class"||n==="style"||ca(n))&&((t||(t={}))[n]=e[n]);return t},Np=(e,t)=>{const n={};for(const o in e)(!da(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Fp(e,t,n){const{props:o,children:r,component:l}=e,{props:c,children:f,patchFlag:m}=t,g=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&m>=0){if(m&1024)return!0;if(m&16)return o?hu(o,c,g):!!c;if(m&8){const h=t.dynamicProps;for(let _=0;_<h.length;_++){const P=h[_];if(zc(c,o,P)&&!wa(g,P))return!0}}}else return(r||f)&&(!f||!f.$stable)?!0:o===c?!1:o?c?hu(o,c,g):!0:!!c;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(!vt(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"&&ht(o)&&ht(r)?!us(o,r):o!==r}function Vp({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 Bp(e,t,n,o=!1){const r={},l=Gc();e.propsDefaults=Object.create(null),Jc(e,t,r,l);for(const c in e.propsOptions[0])c in r||(r[c]=void 0);n?e.props=o?r:Yf(r):e.type.props?e.props=r:e.props=l,e.attrs=l}function Up(e,t,n,o){const{props:r,attrs:l,vnode:{patchFlag:c}}=e,f=dt(r),[m]=e.propsOptions;let g=!1;if((o||c>0)&&!(c&16)){if(c&8){const h=e.vnode.dynamicProps;for(let _=0;_<h.length;_++){let P=h[_];if(wa(e.emitsOptions,P))continue;const x=t[P];if(m)if(vt(l,P))x!==l[P]&&(l[P]=x,g=!0);else{const I=bn(P);r[I]=Oi(m,f,I,x,e,!1)}else x!==l[P]&&(l[P]=x,g=!0)}}}else{Jc(e,t,r,l)&&(g=!0);let h;for(const _ in f)(!t||!vt(t,_)&&((h=vs(_))===_||!vt(t,h)))&&(m?n&&(n[_]!==void 0||n[h]!==void 0)&&(r[_]=Oi(m,f,_,void 0,e,!0)):delete r[_]);if(l!==f)for(const _ in l)(!t||!vt(t,_))&&(delete l[_],g=!0)}g&&Bn(e.attrs,"set","")}function Jc(e,t,n,o){const[r,l]=e.propsOptions;let c=!1,f;if(t)for(let m in t){if(So(m))continue;const g=t[m];let h;r&&vt(r,h=bn(m))?!l||!l.includes(h)?n[h]=g:(f||(f={}))[h]=g:wa(e.emitsOptions,m)||(!(m in o)||g!==o[m])&&(o[m]=g,c=!0)}if(l){const m=dt(n),g=f||bt;for(let h=0;h<l.length;h++){const _=l[h];n[_]=Oi(r,m,_,g[_],e,!vt(g,_))}}return c}function Oi(e,t,n,o,r,l){const c=e[n];if(c!=null){const f=vt(c,"default");if(f&&o===void 0){const m=c.default;if(c.type!==Function&&!c.skipFactory&&tt(m)){const{propsDefaults:g}=r;if(n in g)o=g[n];else{const h=Yo(r);o=g[n]=m.call(null,t),h()}}else o=m;r.ce&&r.ce._setProp(n,o)}c[0]&&(l&&!f?o=!1:c[1]&&(o===""||o===vs(n))&&(o=!0))}return o}const qp=new WeakMap;function Xc(e,t,n=!1){const o=n?qp:t.propsCache,r=o.get(e);if(r)return r;const l=e.props,c={},f=[];let m=!1;if(!tt(e)){const h=_=>{m=!0;const[P,x]=Xc(_,t,!0);It(c,P),x&&f.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!l&&!m)return ht(e)&&o.set(e,Os),Os;if(We(l))for(let h=0;h<l.length;h++){const _=bn(l[h]);yu(_)&&(c[_]=bt)}else if(l)for(const h in l){const _=bn(h);if(yu(_)){const P=l[h],x=c[_]=We(P)||tt(P)?{type:P}:It({},P),I=x.type;let H=!1,oe=!0;if(We(I))for(let le=0;le<I.length;++le){const ie=I[le],U=tt(ie)&&ie.name;if(U==="Boolean"){H=!0;break}else U==="String"&&(oe=!1)}else H=tt(I)&&I.name==="Boolean";x[0]=H,x[1]=oe,(H||vt(x,"default"))&&f.push(_)}}const g=[c,f];return ht(e)&&o.set(e,g),g}function yu(e){return e[0]!=="$"&&!So(e)}const ul=e=>e==="_"||e==="_ctx"||e==="$stable",cl=e=>We(e)?e.map(Pn):[Pn(e)],Hp=(e,t,n)=>{if(t._n)return t;const o=Cn((...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(tt(l))t[r]=Hp(r,l,o);else if(l!=null){const c=cl(l);t[r]=()=>c}}},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])},zp=(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)},Wp=(e,t,n)=>{const{vnode:o,slots:r}=e;let l=!0,c=bt;if(o.shapeFlag&32){const f=t._;f?n&&f===1?l=!1:ed(r,t,n):(l=!t.$stable,Qc(t,r)),c=t}else t&&(Zc(e,t),c={default:1});if(l)for(const f in r)!ul(f)&&c[f]==null&&delete r[f]},tn=Qp;function Gp(e){return Yp(e)}function Yp(e,t){const n=va();n.__VUE__=!0;const{insert:o,remove:r,patchProp:l,createElement:c,createText:f,createComment:m,setText:g,setElementText:h,parentNode:_,nextSibling:P,setScopeId:x=Mn,insertStaticContent:I}=e,H=(k,v,b,E=null,X=null,ce=null,xe=void 0,be=null,_e=!!v.dynamicChildren)=>{if(k===v)return;k&&!As(k,v)&&(E=Ee(k),re(k,X,ce,!0),k=null),v.patchFlag===-2&&(_e=!1,v.dynamicChildren=null),v.dynamicChildren&&k&&k.dynamicChildren&&k.dynamicChildren.hasOnce&&(v.dynamicChildren===Os&&(v.dynamicChildren=[]),v.dynamicChildren.hasOnce=!0);const{type:fe,ref:Ke,shapeFlag:Te}=v;switch(fe){case _a:oe(k,v,b,E);break;case Jt:le(k,v,b,E);break;case jr:k==null&&ie(v,b,E,xe);break;case Me:Z(k,v,b,E,X,ce,xe,be,_e);break;default:Te&1?D(k,v,b,E,X,ce,xe,be,_e):Te&6?Oe(k,v,b,E,X,ce,xe,be,_e):(Te&64||Te&128)&&fe.process(k,v,b,E,X,ce,xe,be,_e,St)}Ke!=null&&X?Ao(Ke,k&&k.ref,ce,v||k,!v):Ke==null&&k&&k.ref!=null&&Ao(k.ref,null,ce,k,!0)},oe=(k,v,b,E)=>{if(k==null)o(v.el=f(v.children),b,E);else{const X=v.el=k.el;v.children!==k.children&&g(X,v.children)}},le=(k,v,b,E)=>{k==null?o(v.el=m(v.children||""),b,E):v.el=k.el},ie=(k,v,b,E)=>{[k.el,k.anchor]=I(k.children,v,b,E,k.el,k.anchor)},U=({el:k,anchor:v},b,E)=>{let X;for(;k&&k!==v;)X=P(k),o(k,b,E),k=X;o(v,b,E)},S=({el:k,anchor:v})=>{let b;for(;k&&k!==v;)b=P(k),r(k),k=b;r(v)},D=(k,v,b,E,X,ce,xe,be,_e)=>{if(v.type==="svg"?xe="svg":v.type==="math"&&(xe="mathml"),k==null)ee(v,b,E,X,ce,xe,be,_e);else{const fe=k.el&&k.el._isVueCE?k.el:null;try{fe&&fe._beginPatch(),j(k,v,X,ce,xe,be,_e)}finally{fe&&fe._endPatch()}}},ee=(k,v,b,E,X,ce,xe,be)=>{let _e,fe;const{props:Ke,shapeFlag:Te,transition:Be,dirs:ue}=k;if(_e=k.el=c(k.type,ce,Ke&&Ke.is,Ke),Te&8?h(_e,k.children):Te&16&&ne(k.children,_e,null,E,X,pi(k,ce),xe,be),ue&&Cs(k,null,E,"created"),z(_e,k,k.scopeId,xe,E),Ke){for(const de in Ke)de!=="value"&&!So(de)&&l(_e,de,null,Ke[de],ce,E);"value"in Ke&&l(_e,"value",null,Ke.value,ce),(fe=Ke.onVnodeBeforeMount)&&$n(fe,E,k)}ue&&Cs(k,null,E,"beforeMount");const G=Jp(X,Be);G&&Be.beforeEnter(_e),o(_e,v,b),((fe=Ke&&Ke.onVnodeMounted)||G||ue)&&tn(()=>{try{fe&&$n(fe,E,k),G&&Be.enter(_e),ue&&Cs(k,null,E,"mounted")}finally{}},X)},z=(k,v,b,E,X)=>{if(b&&x(k,b),E)for(let ce=0;ce<E.length;ce++)x(k,E[ce]);if(X){let ce=X.subTree;if(v===ce||nd(ce.type)&&(ce.ssContent===v||ce.ssFallback===v)){const xe=X.vnode;z(k,xe,xe.scopeId,xe.slotScopeIds,X.parent)}}},ne=(k,v,b,E,X,ce,xe,be,_e=0)=>{for(let fe=_e;fe<k.length;fe++){const Ke=k[fe]=be?Vn(k[fe]):Pn(k[fe]);H(null,Ke,v,b,E,X,ce,xe,be)}},j=(k,v,b,E,X,ce,xe)=>{const be=v.el=k.el;let{patchFlag:_e,dynamicChildren:fe,dirs:Ke}=v;_e|=k.patchFlag&16;const Te=k.props||bt,Be=v.props||bt;let ue;if(b&&xs(b,!1),(ue=Be.onVnodeBeforeUpdate)&&$n(ue,b,v,k),Ke&&Cs(v,k,b,"beforeUpdate"),b&&xs(b,!0),fe&&(!k.dynamicChildren||k.dynamicChildren.length!==fe.length)&&(_e=0,xe=!1,fe=null),(Te.innerHTML&&Be.innerHTML==null||Te.textContent&&Be.textContent==null)&&h(be,""),fe?T(k.dynamicChildren,fe,be,b,E,pi(v,X),ce):xe||Fe(k,v,be,null,b,E,pi(v,X),ce,!1),_e>0){if(_e&16)M(be,Te,Be,b,X);else if(_e&2&&Te.class!==Be.class&&l(be,"class",null,Be.class,X),_e&4&&l(be,"style",Te.style,Be.style,X),_e&8){const G=v.dynamicProps;for(let de=0;de<G.length;de++){const je=G[de],at=Te[je],yt=Be[je];(yt!==at||je==="value")&&l(be,je,at,yt,X,b)}}_e&1&&k.children!==v.children&&h(be,v.children)}else!xe&&fe==null&&M(be,Te,Be,b,X);((ue=Be.onVnodeUpdated)||Ke)&&tn(()=>{ue&&$n(ue,b,v,k),Ke&&Cs(v,k,b,"updated")},E)},T=(k,v,b,E,X,ce,xe)=>{for(let be=0;be<v.length;be++){const _e=k[be],fe=v[be],Ke=_e.el||Mi(_e),Te=Ke&&(_e.type===Me||!As(_e,fe)||_e.shapeFlag&198)?_(Ke):b;H(_e,fe,Te,null,E,X,ce,xe,!0)}},M=(k,v,b,E,X)=>{if(v!==b){if(v!==bt)for(const ce in v)!So(ce)&&!(ce in b)&&l(k,ce,v[ce],null,X,E);for(const ce in b){if(So(ce))continue;const xe=b[ce],be=v[ce];xe!==be&&ce!=="value"&&l(k,ce,be,xe,X,E)}"value"in b&&l(k,"value",v.value,b.value,X)}},Z=(k,v,b,E,X,ce,xe,be,_e)=>{const fe=v.el=k?k.el:f(""),Ke=v.anchor=k?k.anchor:f("");let{patchFlag:Te,dynamicChildren:Be,slotScopeIds:ue}=v;ue&&(be=be?be.concat(ue):ue),k==null?(o(fe,b,E),o(Ke,b,E),ne(v.children||[],b,Ke,X,ce,xe,be,_e)):Te>0&&Te&64&&Be&&k.dynamicChildren&&k.dynamicChildren.length===Be.length?(T(k.dynamicChildren,Be,b,X,ce,xe,be),(v.key!=null||X&&v===X.subTree)&&dl(k,v,!0)):Fe(k,v,b,Ke,X,ce,xe,be,_e)},Oe=(k,v,b,E,X,ce,xe,be,_e)=>{v.slotScopeIds=be,k==null?v.shapeFlag&512?X.ctx.activate(v,b,E,xe,_e):Se(v,b,E,X,ce,xe,_e):ge(k,v,_e)},Se=(k,v,b,E,X,ce,xe)=>{const be=k.component=rv(k,E,X);if(ga(k)&&(be.ctx.renderer=St),av(be,!1,xe),be.asyncDep){if(X&&X.registerDep(be,Pe,xe,ce),!k.el){const _e=be.subTree=ye(Jt);le(null,_e,v,b),k.placeholder=_e.el}}else Pe(be,k,v,b,X,ce,xe)},ge=(k,v,b)=>{const E=v.component=k.component;if(Fp(k,v,b))if(E.asyncDep&&!E.asyncResolved){v.el=k.el,v.placeholder=k.placeholder,qe(E,v,b);return}else E.next=v,E.update();else v.el=k.el,v.placeholder=k.placeholder,E.vnode=v},Pe=(k,v,b,E,X,ce,xe)=>{const be=()=>{if(k.isMounted){let{next:Te,bu:Be,u:ue,parent:G,vnode:de}=k;{const Ze=td(k);if(Ze){Te&&(Te.el=de.el,qe(k,Te,xe)),Ze.asyncDep.then(()=>{tn(()=>{k.isUnmounted||fe()},X)});return}}let je=Te,at;xs(k,!1),Te?(Te.el=de.el,qe(k,Te,xe)):Te=de,Be&&Mr(Be),(at=Te.props&&Te.props.onVnodeBeforeUpdate)&&$n(at,G,Te,de),xs(k,!0);const yt=mu(k),Dt=k.subTree;k.subTree=yt,H(Dt,yt,_(Dt.el),Ee(Dt),k,X,ce),Te.el=yt.el,je===null&&Vp(k,yt.el),ue&&tn(ue,X),(at=Te.props&&Te.props.onVnodeUpdated)&&tn(()=>$n(at,G,Te,de),X)}else{let Te;const{el:Be,props:ue}=v,{bm:G,m:de,parent:je,root:at,type:yt}=k,Dt=Po(v);xs(k,!1),G&&Mr(G),!Dt&&(Te=ue&&ue.onVnodeBeforeMount)&&$n(Te,je,v),xs(k,!0);{at.ce&&at.ce._hasShadowRoot()&&at.ce._injectChildStyle(yt,k.parent?k.parent.type:void 0);const Ze=k.subTree=mu(k);H(null,Ze,b,E,k,X,ce),v.el=Ze.el}if(de&&tn(de,X),!Dt&&(Te=ue&&ue.onVnodeMounted)){const Ze=v;tn(()=>$n(Te,je,Ze),X)}(v.shapeFlag&256||je&&Po(je.vnode)&&je.vnode.shapeFlag&256)&&k.a&&tn(k.a,X),k.isMounted=!0,v=b=E=null}};k.scope.on();const _e=k.effect=new lc(be);k.scope.off();const fe=k.update=_e.run.bind(_e),Ke=k.job=_e.runIfDirty.bind(_e);Ke.i=k,Ke.id=k.uid,_e.scheduler=()=>il(Ke),xs(k,!0),fe()},qe=(k,v,b)=>{v.component=k;const E=k.vnode.props;k.vnode=v,k.next=null,Up(k,v.props,E,b),Wp(k,v.children,b),jn(),Sc(k),Dn()},Fe=(k,v,b,E,X,ce,xe,be,_e=!1)=>{const fe=k&&k.children,Ke=k?k.shapeFlag:0,Te=v.children,{patchFlag:Be,shapeFlag:ue}=v;if(Be>0){if(Be&128){Ge(fe,Te,b,E,X,ce,xe,be,_e);return}else if(Be&256){Je(fe,Te,b,E,X,ce,xe,be,_e);return}}ue&8?(Ke&16&&wt(fe,X,ce),Te!==fe&&h(b,Te)):Ke&16?ue&16?Ge(fe,Te,b,E,X,ce,xe,be,_e):wt(fe,X,ce,!0):(Ke&8&&h(b,""),ue&16&&ne(Te,b,E,X,ce,xe,be,_e))},Je=(k,v,b,E,X,ce,xe,be,_e)=>{k=k||Os,v=v||Os;const fe=k.length,Ke=v.length,Te=Math.min(fe,Ke);let Be;for(Be=0;Be<Te;Be++){const ue=v[Be]=_e?Vn(v[Be]):Pn(v[Be]);H(k[Be],ue,b,null,X,ce,xe,be,_e)}fe>Ke?wt(k,X,ce,!0,!1,Te):ne(v,b,E,X,ce,xe,be,_e,Te)},Ge=(k,v,b,E,X,ce,xe,be,_e)=>{let fe=0;const Ke=v.length;let Te=k.length-1,Be=Ke-1;for(;fe<=Te&&fe<=Be;){const ue=k[fe],G=v[fe]=_e?Vn(v[fe]):Pn(v[fe]);if(As(ue,G))H(ue,G,b,null,X,ce,xe,be,_e);else break;fe++}for(;fe<=Te&&fe<=Be;){const ue=k[Te],G=v[Be]=_e?Vn(v[Be]):Pn(v[Be]);if(As(ue,G))H(ue,G,b,null,X,ce,xe,be,_e);else break;Te--,Be--}if(fe>Te){if(fe<=Be){const ue=Be+1,G=ue<Ke?v[ue].el:E;for(;fe<=Be;)H(null,v[fe]=_e?Vn(v[fe]):Pn(v[fe]),b,G,X,ce,xe,be,_e),fe++}}else if(fe>Be)for(;fe<=Te;)re(k[fe],X,ce,!0),fe++;else{const ue=fe,G=fe,de=new Map;for(fe=G;fe<=Be;fe++){const Ut=v[fe]=_e?Vn(v[fe]):Pn(v[fe]);Ut.key!=null&&de.set(Ut.key,fe)}let je,at=0;const yt=Be-G+1;let Dt=!1,Ze=0;const Qt=new Array(yt);for(fe=0;fe<yt;fe++)Qt[fe]=0;for(fe=ue;fe<=Te;fe++){const Ut=k[fe];if(at>=yt){re(Ut,X,ce,!0);continue}let Lt;if(Ut.key!=null)Lt=de.get(Ut.key);else for(je=G;je<=Be;je++)if(Qt[je-G]===0&&As(Ut,v[je])){Lt=je;break}Lt===void 0?re(Ut,X,ce,!0):(Qt[Lt-G]=fe+1,Lt>=Ze?Ze=Lt:Dt=!0,H(Ut,v[Lt],b,null,X,ce,xe,be,_e),at++)}const ms=Dt?Xp(Qt):Os;for(je=ms.length-1,fe=yt-1;fe>=0;fe--){const Ut=G+fe,Lt=v[Ut],Ue=v[Ut+1],Yn=Ut+1<Ke?Ue.el||Mi(Ue):E;Qt[fe]===0?H(null,Lt,b,Yn,X,ce,xe,be,_e):Dt&&(je<0||fe!==ms[je]?ze(Lt,b,Yn,2):je--)}}},ze=(k,v,b,E,X=null)=>{const{el:ce,type:xe,transition:be,children:_e,shapeFlag:fe}=k;if(fe&6){ze(k.component.subTree,v,b,E);return}if(fe&128){k.suspense.move(v,b,E);return}if(fe&64){xe.move(k,v,b,St);return}if(xe===Me){o(ce,v,b);for(let Te=0;Te<_e.length;Te++)ze(_e[Te],v,b,E);o(k.anchor,v,b);return}if(xe===jr){U(k,v,b);return}if(E!==2&&fe&1&&be)if(E===0)be.persisted&&!ce[cn]?o(ce,v,b):(be.beforeEnter(ce),o(ce,v,b),tn(()=>be.enter(ce),X));else{const{leave:Te,delayLeave:Be,afterLeave:ue}=be,G=()=>{k.ctx.isUnmounted?r(ce):o(ce,v,b)},de=()=>{const je=ce._isLeaving||!!ce[cn];ce._isLeaving&&ce[cn](!0),be.persisted&&!je?G():Te(ce,()=>{G(),ue&&ue()})};Be?Be(ce,G,de):de()}else o(ce,v,b)},re=(k,v,b,E=!1,X=!1)=>{const{type:ce,props:xe,ref:be,children:_e,dynamicChildren:fe,shapeFlag:Ke,patchFlag:Te,dirs:Be,cacheIndex:ue,memo:G}=k;if((Te===-2||fe&&fe.hasOnce)&&(X=!1),be!=null&&(jn(),Ao(be,null,b,k,!0),Dn()),ue!=null&&(!k.ctx||k.ctx===v)&&(v.renderCache[ue]=void 0),Ke&256){v.ctx.deactivate(k);return}const de=Ke&1&&Be,je=!Po(k);let at;if(je&&(at=xe&&xe.onVnodeBeforeUnmount)&&$n(at,v,k),Ke&6)ot(k.component,b,E);else{if(Ke&128){k.suspense.unmount(b,E);return}de&&Cs(k,null,v,"beforeUnmount"),Ke&64?k.type.remove(k,v,b,St,E):fe&&!fe.hasOnce&&(ce!==Me||Te>0&&Te&64)?wt(fe,v,b,!1,!0):(ce===Me&&Te&384||!X&&Ke&16)&&wt(_e,v,b),E&&J(k)}const yt=G!=null&&ue==null;(je&&(at=xe&&xe.onVnodeUnmounted)||de||yt)&&tn(()=>{at&&$n(at,v,k),de&&Cs(k,null,v,"unmounted"),yt&&(k.el=null)},b)},J=k=>{const{type:v,el:b,anchor:E,transition:X}=k,ce=v===Me;if(ce&&!X){$e(b,E);return}if(v===jr){S(k),X&&!X.persisted&&X.afterLeave&&X.afterLeave();return}const xe=ce?Ro(k):k,be=()=>{ce?_(b)&&$e(b,E):r(b),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(xe&&xe.shapeFlag&1&&X&&!X.persisted){const{leave:_e,delayLeave:fe}=X,Ke=xe.el,Te=()=>_e(Ke,be);fe?fe(Ke,be,Te):Te()}else be()},$e=(k,v)=>{let b;for(;k!==v;)b=P(k),r(k),k=b;r(v)},ot=(k,v,b)=>{const{bum:E,scope:X,job:ce,subTree:xe,um:be,m:_e,a:fe}=k;gu(_e),gu(fe),E&&Mr(E),X.stop(),ce?(ce.flags|=8,re(xe,k,v,b)):k.vnode.el&&xe&&(xe.transition=k.vnode.transition,re(xe,k,v,b)),be&&tn(be,v),tn(()=>{k.isUnmounted=!0},v)},wt=(k,v,b,E=!1,X=!1,ce=0)=>{for(let xe=ce;xe<k.length;xe++)re(k[xe],v,b,E,X)},Ee=k=>{if(k.shapeFlag&6)return Ee(k.component.subTree);if(k.shapeFlag&128)return k.suspense.next();const v=P(k.anchor||k.el),b=v&&v[Mc];return b?P(b):v},xt=(k,v,b)=>{const E=k&&v._vnode?void 0:k&&k.component?k.component.uid:ov();ip(()=>{k==null?v._vnode&&re(v._vnode,null,null,!0):H(v._vnode||null,k,v,null,null,null,b),v._vnode=k},E)},St={p:H,um:re,m:ze,r:J,mt:Se,mc:ne,pc:Fe,pbc:T,n:Ee,o:e};return{render:xt,hydrate:void 0,createApp:jp(xt)}}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 xs({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Jp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function dl(e,t,n=!1){const o=e.children,r=t.children;if(We(o)&&We(r))for(let l=0;l<o.length;l++){const c=o[l];let f=r[l];f.shapeFlag&1&&!f.dynamicChildren&&((f.patchFlag<=0||f.patchFlag===32)&&(f=r[l]=Vn(r[l]),f.el=c.el),!n&&f.patchFlag!==-2&&dl(c,f)),f.type===_a&&(f.patchFlag===-1&&(f=r[l]=Vn(f)),f.el=c.el),f.type===Jt&&!f.el&&(f.el=c.el)}}function Xp(e){const t=e.slice(),n=[0];let o,r,l,c,f;const m=e.length;for(o=0;o<m;o++){const g=e[o];if(g!==0){if(r=n[n.length-1],e[r]<g){t[o]=r,n.push(o);continue}for(l=0,c=n.length-1;l<c;)f=l+c>>1,e[n[f]]<g?l=f+1:c=f;g<e[n[l]]&&(l>0&&(t[o]=n[l-1]),n[l]=o)}}for(l=n.length,c=n[l-1];l-- >0;)n[l]=c,c=t[c];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 Qp(e,t){t&&t.pendingBranch?We(e)?t.effects.push(...e):t.effects.push(e):ap(e)}const Me=Symbol.for("v-fgt"),_a=Symbol.for("v-txt"),Jt=Symbol.for("v-cmt"),jr=Symbol.for("v-stc"),js=[];let an=null;function $(e=!1){js.push(an=e?null:[])}function sd(){js.pop(),an=js[js.length-1]||null}let No=1;function Gr(e,t=!1){No+=e,e<0&&an&&t&&(an.hasOnce=!0)}function od(e){return e.dynamicChildren=No>0?an||Os:null,sd(),No>0&&an&&an.push(e),e}function A(e,t,n,o,r,l){return od(i(e,t,n,o,r,l,!0))}function gt(e,t,n,o,r){return od(ye(e,t,n,o,r,!0))}function Fo(e){return e?e.__v_isVNode===!0:!1}function As(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?Tt(e)||Xt(e)||tt(e)?{i:dn,r:e,k:t,f:!!n}:e:null);function i(e,t=null,n=null,o=0,r=null,l=e===Me?0:1,c=!1,f=!1){const m={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&rd(t),ref:t&&Dr(t),scopeId:Ac,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:dn};return f?(Yr(m,n),l&128&&e.normalize(m)):n&&(m.shapeFlag|=Tt(n)?8:16),No>0&&!c&&an&&(m.patchFlag>0||l&6)&&m.patchFlag!==32&&an.push(m),m}const ye=Zp;function Zp(e,t=null,n=null,o=0,r=null,l=!1){if((!e||e===Sp)&&(e=Jt),Fo(e)){const f=fs(e,t,!0);return n&&Yr(f,n),No>0&&!l&&an&&(f.shapeFlag&6?an[an.indexOf(e)]=f:an.push(f)),f.patchFlag=-2,f}if(cv(e)&&(e=e.__vccOpts),t){t=ev(t);let{class:f,style:m}=t;f&&!Tt(f)&&(t.class=Ye(f)),ht(m)&&(al(m)&&!We(m)&&(m=It({},m)),t.style=qn(m))}const c=Tt(e)?1:nd(e)?128:ya(e)?64:ht(e)?4:tt(e)?2:0;return i(e,t,n,o,r,c,l,!0)}function ev(e){return e?al(e)||Yc(e)?It({},e):e:null}function fs(e,t,n=!1,o=!1){const{props:r,ref:l,patchFlag:c,children:f,transition:m}=e,g=t?nv(r||{},t):r,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&rd(g),ref:t&&t.ref?n&&l?We(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!==Me?c===-1?16:c|16:c,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:m,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&fs(e.ssContent),ssFallback:e.ssFallback&&fs(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return m&&o&&ds(h,m.clone(h)),h}function Ct(e=" ",t=0){return ye(_a,null,e,t)}function tv(e,t){const n=ye(jr,null,e);return n.staticCount=t,n}function pe(e="",t=!1){return t?($(),gt(Jt,null,e)):ye(Jt,null,e)}function Pn(e){return e==null||typeof e=="boolean"?ye(Jt):We(e)?ye(Me,null,e.slice()):Fo(e)?Vn(e):ye(_a,null,String(e))}function Vn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:fs(e)}function Yr(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(We(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),Yr(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Yc(t)?t._ctx=dn:r===3&&dn&&(dn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(tt(t)){if(o&65){Yr(e,{default:t});return}t={default:t,_ctx:dn},n=32}else t=String(t),o&64?(n=16,t=[Ct(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=Ye([t.class,o.class]));else if(r==="style")t.style=qn([t.style,o.style]);else if(ca(r)){const l=t[r],c=o[r];c&&l!==c&&!(We(l)&&l.includes(c))?t[r]=l?[].concat(l,c):c:c==null&&l==null&&!da(r)&&(t[r]=c)}else r!==""&&(t[r]=o[r])}return t}function $n(e,t,n,o=null){mn(e,t,7,[n,o])}const sv=Uc();let ad=0;function ov(){return ad}function rv(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||sv,l={uid:ad++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Of(!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:bt,inheritAttrs:o.inheritAttrs,ctx:bt,data:bt,props:bt,attrs:bt,slots:bt,refs:bt,setupState:bt,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=Lp.bind(null,l),e.ce&&e.ce(l),l}let sn=null;const fl=()=>sn||dn;let Jr,Vo;{const e=va(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),l=>{r.length>1?r.forEach(c=>c(l)):r[0](l)}};Jr=t("__VUE_INSTANCE_SETTERS__",n=>sn=n),Vo=t("__VUE_SSR_SETTERS__",n=>Bo=n)}const Yo=e=>{const t=sn;return Jr(e),e.scope.on(),()=>{e.scope.off(),Jr(t)}},bu=()=>{sn&&sn.scope.off(),Jr(null)};function id(e){return e.vnode.shapeFlag&4}let Bo=!1;function av(e,t=!1,n=!1){t&&Vo(t);const{props:o,children:r}=e.vnode,l=id(e);Bp(e,o,l,t),zp(e,r,n||t);const c=l?iv(e,t):void 0;return t&&Vo(!1),c}function iv(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ep);const{setup:o}=n;if(o){jn();const r=e.setupContext=o.length>1?uv(e):null,l=Yo(e),c=Go(o,e,0,[e.props,r]),f=ec(c);if(Dn(),l(),(f||e.sp)&&!Po(e)&&Kc(e),f){if(c.then(bu,bu),t)return c.then(m=>{Vo(!0);try{wu(e,m,t)}finally{Vo(!1)}}).catch(m=>{ha(m,e,0)});e.asyncDep=c}else wu(e,c)}else ld(e)}function wu(e,t,n){tt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ht(t)&&(e.setupState=Cc(t)),ld(e)}function ld(e,t,n){const o=e.type;e.render||(e.render=o.render||Mn);{const r=Yo(e);jn();try{Tp(e)}finally{Dn(),r()}}}const lv={get(e,t){return Yt(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(Jf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Oo)return Oo[n](e)},has(t,n){return n in t||n in Oo}})):e.proxy}function cv(e){return tt(e)&&"__vccOpts"in e}const rt=(e,t)=>tp(e,t,Bo);function dv(e,t,n){try{Gr(-1);const o=arguments.length;return o===2?ht(t)&&!We(t)?Fo(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Fo(n)&&(n=[n]),ye(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 ud=Ii?e=>Ii.createHTML(e):e=>e,pv="http://www.w3.org/2000/svg",vv="http://www.w3.org/1998/Math/MathML",Fn=typeof document<"u"?document:null,ku=Fn&&Fn.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"?Fn.createElementNS(pv,e):t==="mathml"?Fn.createElementNS(vv,e):n?Fn.createElement(e,{is:n}):Fn.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>Fn.createTextNode(e),createComment:e=>Fn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,l){const c=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=ud(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const f=ku.content;if(o==="svg"||o==="mathml"){const m=f.firstChild;for(;m.firstChild;)f.appendChild(m.firstChild);f.removeChild(m)}t.insertBefore(f,n)}return[c?c.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ns="transition",ko="animation",so=Symbol("_vtc"),cd={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},dd=It({},jc,cd),hv=e=>(e.displayName="Transition",e.props=dd,e),Gn=hv((e,{slots:t})=>dv(hp,fd(e),t)),$s=(e,t=[])=>{We(e)?e.forEach(n=>n(...t)):e&&e(...t)},Cu=e=>e?We(e)?e.some(t=>t.length>1):e.length>1:!1;function fd(e){const t={};for(const Z in e)Z in cd||(t[Z]=e[Z]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:l=`${n}-enter-from`,enterActiveClass:c=`${n}-enter-active`,enterToClass:f=`${n}-enter-to`,appearFromClass:m=l,appearActiveClass:g=c,appearToClass:h=f,leaveFromClass:_=`${n}-leave-from`,leaveActiveClass:P=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,I=yv(r),H=I&&I[0],oe=I&&I[1],{onBeforeEnter:le,onEnter:ie,onEnterCancelled:U,onLeave:S,onLeaveCancelled:D,onBeforeAppear:ee=le,onAppear:z=ie,onAppearCancelled:ne=U}=t,j=(Z,Oe,Se,ge)=>{Z._enterCancelled=ge,os(Z,Oe?h:f),os(Z,Oe?g:c),Se&&Se()},T=(Z,Oe)=>{Z._isLeaving=!1,os(Z,_),os(Z,x),os(Z,P),Oe&&Oe()},M=Z=>(Oe,Se)=>{const ge=Z?z:ie,Pe=()=>j(Oe,Z,Se);$s(ge,[Oe,Pe]),xu(()=>{os(Oe,Z?m:l),Sn(Oe,Z?h:f),Cu(ge)||$u(Oe,o,H,Pe)})};return It(t,{onBeforeEnter(Z){$s(le,[Z]),Sn(Z,l),Sn(Z,c)},onBeforeAppear(Z){$s(ee,[Z]),Sn(Z,m),Sn(Z,g)},onEnter:M(!1),onAppear:M(!0),onLeave(Z,Oe){Z._isLeaving=!0;const Se=()=>T(Z,Oe);Sn(Z,_),Z._enterCancelled?(Sn(Z,P),ji(Z)):(ji(Z),Sn(Z,P)),xu(()=>{Z._isLeaving&&(os(Z,_),Sn(Z,x),Cu(S)||$u(Z,o,oe,Se))}),$s(S,[Z,Se])},onEnterCancelled(Z){j(Z,!1,void 0,!0),$s(U,[Z])},onAppearCancelled(Z){j(Z,!0,void 0,!0),$s(ne,[Z])},onLeaveCancelled(Z){T(Z),$s(D,[Z])}})}function yv(e){if(e==null)return null;if(ht(e))return[vi(e.enter),vi(e.leave)];{const t=vi(e);return[t,t]}}function vi(e){return _f(e)}function Sn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[so]||(e[so]=new Set)).add(t)}function os(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[so];n&&(n.delete(t),n.size||(e[so]=void 0))}function 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:c,timeout:f,propCount:m}=pd(e,t);if(!c)return o();const g=c+"end";let h=0;const _=()=>{e.removeEventListener(g,P),l()},P=x=>{x.target===e&&++h>=m&&_()};setTimeout(()=>{h<m&&_()},f+1),e.addEventListener(g,P)}function pd(e,t){const n=window.getComputedStyle(e),o=I=>(n[I]||"").split(", "),r=o(`${ns}Delay`),l=o(`${ns}Duration`),c=Su(r,l),f=o(`${ko}Delay`),m=o(`${ko}Duration`),g=Su(f,m);let h=null,_=0,P=0;t===ns?c>0&&(h=ns,_=c,P=l.length):t===ko?g>0&&(h=ko,_=g,P=m.length):(_=Math.max(c,g),h=_>0?c>g?ns:ko:null,P=h?h===ns?l.length:m.length:0);const x=h===ns&&/\b(?:transform|all)(?:,|$)/.test(o(`${ns}Property`).toString());return{type:h,timeout:_,propCount:P,hasTransform:x}}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[so];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Tu=Symbol("_vod"),vd=Symbol("_vsh"),wv=Symbol(""),_v=/(?:^|;)\s*display\s*:/;function kv(e,t,n){const o=e.style,r=Tt(n);let l=!1;if(n&&!r){if(t)if(Tt(t))for(const c of t.split(";")){const f=c.slice(0,c.indexOf(":")).trim();n[f]==null&&$o(o,f,"")}else for(const c in t)n[c]==null&&$o(o,c,"");for(const c in n){c==="display"&&(l=!0);const f=n[c];f!=null?xv(e,c,!Tt(t)&&t?t[c]:void 0,f)||$o(o,c,f):$o(o,c,"")}}else if(r){if(t!==n){const c=o[wv];c&&(n+=";"+c),o.cssText=n,l=_v.test(n)}}else t&&e.removeAttribute("style");Tu in e&&((!r||t!==n)&&(e[Tu]=l?o.display:""),e[vd]&&(o.display="none"))}const Ar=/\s*!important$/;function $o(e,t,n){if(We(n))n.forEach(o=>$o(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))Ar.test(n)?e.setProperty(t,n.replace(Ar,""),"important"):e.setProperty(t,n);else{const o=Cv(e,t);Ar.test(n)?e.setProperty(vs(o),n.replace(Ar,""),"important"):e[o]=n}}const Au=["Webkit","Moz","ms"],mi={};function Cv(e,t){const n=mi[t];if(n)return n;let o=bn(t);if(o!=="filter"&&o in e)return mi[t]=o;o=sc(o);for(let r=0;r<Au.length;r++){const l=Au[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")&&Tt(o)&&n===o}const Pu="http://www.w3.org/1999/xlink";function Ou(e,t,n,o,r,l=Ef(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?"":In(n)?String(n):n)}function Mu(e,t,n,o,r){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ud(n):n);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const f=l==="OPTION"?e.getAttribute("value")||"":e.value,m=n==null?e.type==="checkbox"?"on":"":String(n);(f!==m||!("_value"in e))&&(e.value=m),n==null&&e.removeAttribute(t),e._value=n;return}let c=!1;if(n===""||n==null){const f=typeof e[t];f==="boolean"?n=rc(n):n==null&&f==="string"?(n="",c=!0):f==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(r||t)}function Ps(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]={}),c=l[t];if(o&&c)c.value=o;else{const[f,m]=Av(t);if(o){const g=l[t]=Mv(o,r);Ps(e,f,g,m)}else c&&($v(e,f,c,m),l[t]=void 0)}}const Ev=/(Once|Passive|Capture)$/,Tv=/^on:?(?:Once|Passive|Capture)$/;function Av(e){let t,n;for(;(n=e.match(Ev))&&!Tv.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):vs(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(We(r)){const l=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{l.call(o),o._stopped=!0};const c=r.slice(),f=[o];for(let m=0;m<c.length&&!o._stopped;m++){const g=c[m];g&&mn(g,t,5,f)}}else mn(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 c=r==="svg";t==="class"?bv(e,o,c):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,c))?(Mu(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ou(e,t,o,c,l,t!=="value")):e._isVueCE&&(Dv(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Tt(o)))?Mu(e,bn(t),o,l,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Ou(e,t,o,c))};function jv(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&ju(t)&&tt(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)&&Tt(n)?!1:t in e}function Dv(e,t){const n=e._def.props;if(!n)return!1;const o=bn(t);return Array.isArray(n)?n.some(r=>bn(r)===o):Object.keys(n).some(r=>bn(r)===o)}const md=new WeakMap,hd=new WeakMap,Xr=Symbol("_moveCb"),Du=Symbol("_enterCb"),Di=new WeakMap,Lv=e=>(delete e.props.mode,e),Kv=Lv({name:"TransitionGroup",props:It({},dd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=fl(),o=Ic();let r,l,c,f;const m=()=>(f===void 0&&(f=r.length>0&&Hv(r[0].el,n.vnode.el,Lu(e))),f);return Nc(()=>{if(Di.delete(n),!m()){r=[],c=void 0;return}const g=Lu(e);r.forEach(Nv);const h=c&&qv(c,n.vnode.el);c=void 0,r.forEach(P=>Fv(P,h));const _=r.filter(Vv);ji(n.vnode.el),_.forEach(P=>{const x=P.el,I=x.style;Sn(x,g),I.transform=I.webkitTransform=I.transitionDuration="";const H=x[Xr]=oe=>{oe&&oe.target!==x||(!oe||oe.propertyName.endsWith("transform"))&&(x.removeEventListener("transitionend",H),x[Xr]=null,os(x,g))};x.addEventListener("transitionend",H)}),r=[]}),()=>{const g=dt(e),h=fd(g);let _=g.tag||Me;if(r=[],f=void 0,l)for(let P=0;P<l.length;P++){const x=l[P];x.el&&x.el instanceof Element&&!x.el[vd]&&(r.push(x),ds(x,Ko(x,h,o,n)),md.set(x,Ca(x.el)))}l=t.default?ll(t.default()):[];for(let P=0;P<l.length;P++){const x=l[P];x.key!=null&&ds(x,Ko(x,h,o,n))}return r.length&&(c=Bv(n),Di.set(n,m)),ye(_,null,l)}}}),Rv=Kv;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){hd.set(e,Ca(e.el,t))}function Vv(e){const t=md.get(e),n=hd.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const l=e.el,c=l.style,f=l.getBoundingClientRect();let m=1,g=1;return l.offsetWidth&&(m=f.width/l.offsetWidth),l.offsetHeight&&(g=f.height/l.offsetHeight),(!Number.isFinite(m)||m===0)&&(m=1),(!Number.isFinite(g)||g===0)&&(g=1),Math.abs(m-1)<.01&&(m=1),Math.abs(g-1)<.01&&(g=1),c.transform=c.webkitTransform=`translate(${o/m}px,${r/g}px)`,c.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(It(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[so];r&&r.forEach(f=>{f.split(/\s+/).forEach(m=>m&&o.classList.remove(m))}),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:c}=pd(o);return l.removeChild(o),c}const Qr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return We(t)?n=>Mr(t,n):t};function zv(e){e.target.composing=!0}function Ku(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ms=Symbol("_assign"),Pr=Symbol("_initialValue");function yi(e,t,n){return t&&(e=e.trim()),n&&(e=pa(e)),e}const De={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[Ms]=Qr(r);const l=o||r.props&&r.props.type==="number";Ps(e,t?"change":"input",c=>{c.target.composing||e[Ms](yi(e.value,n,l))}),(n||l)&&Ps(e,"change",()=>{e.value=yi(e.value,n,l)}),t||(Ps(e,"compositionstart",zv),Ps(e,"compositionend",Ku),Ps(e,"change",Ku))},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[Ms](yi(e.value,n,o)):e.value=r},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:r,number:l}},c){if(e[Ms]=Qr(c),e.composing)return;const f=(l||e.type==="number")&&!/^0\d/.test(e.value)?pa(e.value):e.value,m=t??"";if(f===m)return;const g=e.getRootNode();(g instanceof Document||g instanceof ShadowRoot)&&g.activeElement===e&&e.type!=="range"&&(o&&t===n||r&&e.value.trim()===m)||(e.value=m)}},Hn={deep:!0,created(e,{value:t,modifiers:{number:n}},o){e._modelValue=t,Ps(e,"change",()=>{const r=Array.prototype.filter.call(e.options,m=>m.selected).map(m=>n?pa(Zr(m)):Zr(m)),l=e.multiple,c=l?Ds(e._modelValue)?new Set(r):r:r[0],f=e._pendingValue=[l,l?We(c)?r.slice():r:c];try{e[Ms](c)}finally{Ks(()=>{e._pendingValue===f&&(e._pendingValue=void 0)})}}),e[Ms]=Qr(o)},mounted(e,{value:t}){Ru(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Ms]=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]))&&Ru(e,t)}};function Wv(e,t,n){if(!n||We(e))return us(e,t);if(Ds(e)){if(e.size!==t.length)return!1;for(const o of t)if(!e.has(o))return!1;return!0}return!1}function Ru(e,t){const n=e.multiple,o=We(t);if(!(n&&!o&&!Ds(t))){for(let r=0,l=e.options.length;r<l;r++){const c=e.options[r],f=Zr(c);if(n)if(o){const m=typeof f;m==="string"||m==="number"?c.selected=t.some(g=>String(g)===String(f)):c.selected=Pf(t,f)>-1}else c.selected=t.has(f);else if(us(Zr(c),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Zr(e){return"_value"in e?e._value:e.value}const 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))},Nt=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(r,...l)=>{for(let c=0;c<t.length;c++){const f=Yv[t[c]];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"},Mt=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=r=>{if(!("key"in r))return;const l=vs(r.key);if(t.some(c=>c===l||Jv[c]===l))return e(r)})},Xv=It({patchProp:Iv},mv);let Nu;function Qv(){return Nu||(Nu=Gp(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;!tt(l)&&!l.render&&!l.template&&(l.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const c=n(r,!1,em(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),c},t};function em(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function tm(e){return Tt(e)?document.querySelector(e):e}function At(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:At('<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:At('<circle cx="12" cy="12" r="8.25"/><path d="M12 7.75V12l2.75 1.75"/>'),"check-circle":At('<circle cx="12" cy="12" r="8.25"/><path d="M8.5 12.4l2.4 2.4 4.6-5.2"/>'),edit:At('<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:At('<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:At('<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:At('<path d="M6.5 6.5l11 11M17.5 6.5l-11 11"/>'),flag:At('<path d="M6.5 21V4"/><path d="M6.5 4.5h10.8l-2.6 3.7 2.6 3.7H6.5"/>'),chart:At('<path d="M4.5 19.5h15"/><path d="M7.5 19.5V12M12 19.5V6.5M16.5 19.5V9.5"/>'),export:At('<path d="M12 4.5V14M8.25 10.25L12 14l3.75-3.75"/><path d="M5 19.5h14"/>'),"chevron-left":At('<path d="M14.5 6l-6 6 6 6"/>'),"chevron-right":At('<path d="M9.5 6l6 6-6 6"/>'),"chevron-down":At('<path d="M6 9.5l6 6 6-6"/>'),plus:At('<path d="M12 5.5v13M5.5 12h13"/>'),search:At('<circle cx="11" cy="11" r="6.5"/><path d="M15.8 15.8L20 20"/>'),settings:At('<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:At('<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:At('<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:At('<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:At('<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:At('<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:At('<path d="M12 4.2L21 19.2H3L12 4.2z"/><path d="M12 10.2v3.6M12 16.4h.01"/>'),plan:At('<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=jt({__name:"Icon",props:{name:{},size:{default:16}},setup(e){const t=e,n=rt(()=>nm[t.name]||"");return(o,r)=>($(),A("span",{class:"icon",style:qn({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=jt({__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 ft(()=>n.open,l=>{l?window.addEventListener("keydown",r):window.removeEventListener("keydown",r)}),hn(()=>window.removeEventListener("keydown",r)),(l,c)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:c[2]||(c[2]=Nt(f=>o("cancel"),["self"]))},[i("div",{class:"dialog confirm-dialog",role:"dialog","aria-label":e.title},[i("div",rm,[e.danger?($(),A("div",am,[ye(He,{name:"warning",size:22})])):pe("",!0),i("div",im,[i("div",{class:Ye(["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:c[0]||(c[0]=f=>o("cancel"))},F(e.cancelText),1),i("button",{class:Ye(["btn",e.danger?"btn-danger-solid":"btn-primary"]),onClick:c[1]||(c[1]=f=>o("confirm"))},F(e.confirmText),3)])],8,om)])):pe("",!0)]),_:1})]))}}),Rt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n},_n=Rt(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 yd={exports:{}};(function(e,t){((n,o)=>{e.exports=o()})(Fu,function(){var n=function(s,a){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(u,d){u.__proto__=d}:function(u,d){for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])}))(s,a)},o=function(){return(o=Object.assign||function(s){for(var a,u=1,d=arguments.length;u<d;u++)for(var p in a=arguments[u])Object.prototype.hasOwnProperty.call(a,p)&&(s[p]=a[p]);return s}).apply(this,arguments)};function r(s,a,u){for(var d,p=0,y=a.length;p<y;p++)!d&&p in a||((d=d||Array.prototype.slice.call(a,0,p))[p]=a[p]);return s.concat(d||Array.prototype.slice.call(a))}var l=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Fu,c=Object.keys,f=Array.isArray;function m(s,a){return typeof a=="object"&&c(a).forEach(function(u){s[u]=a[u]}),s}typeof Promise>"u"||l.Promise||(l.Promise=Promise);var g=Object.getPrototypeOf,h={}.hasOwnProperty;function _(s,a){return h.call(s,a)}function P(s,a){typeof a=="function"&&(a=a(g(s))),(typeof Reflect>"u"?c:Reflect.ownKeys)(a).forEach(function(u){I(s,u,a[u])})}var x=Object.defineProperty;function I(s,a,u,d){x(s,a,m(u&&_(u,"get")&&typeof u.get=="function"?{get:u.get,set:u.set,configurable:!0}:{value:u,configurable:!0,writable:!0},d))}function H(s){return{from:function(a){return s.prototype=Object.create(a.prototype),I(s.prototype,"constructor",s),{extend:P.bind(null,s.prototype)}}}}var oe=Object.getOwnPropertyDescriptor,le=[].slice;function ie(s,a,u){return le.call(s,a,u)}function U(s,a){return a(s)}function S(s){if(!s)throw new Error("Assertion Failed")}function D(s){l.setImmediate?setImmediate(s):setTimeout(s,0)}function ee(s,a){if(typeof a=="string"&&_(s,a))return s[a];if(!a)return s;if(typeof a!="string"){for(var u=[],d=0,p=a.length;d<p;++d){var y=ee(s,a[d]);u.push(y)}return u}var w,C=a.indexOf(".");return C===-1||(w=s[a.substr(0,C)])==null?void 0:ee(w,a.substr(C+1))}function z(s,a,u){if(s&&a!==void 0&&!("isFrozen"in Object&&Object.isFrozen(s)))if(typeof a!="string"&&"length"in a){S(typeof u!="string"&&"length"in u);for(var d=0,p=a.length;d<p;++d)z(s,a[d],u[d])}else{var y=a.indexOf(".");if(y!==-1){var w=a.substr(0,y),y=a.substr(y+1);if(y==="")u===void 0?f(s)&&!isNaN(parseInt(w))?s.splice(w,1):delete s[w]:s[w]=u;else{var C=s[w];if(!C||!_(s,w)){if(u===void 0)return;C=s[w]={}}z(C,y,u)}}else u===void 0?f(s)&&!isNaN(parseInt(a))?s.splice(a,1):delete s[a]:s[a]=u}}function ne(s){var a,u={};for(a in s)_(s,a)&&(u[a]=s[a]);return u}var j=[].concat;function T(s){return j.apply([],s)}var re="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(T([8,16,32,64].map(function(s){return["Int","Uint","Float"].map(function(a){return a+s+"Array"})}))).filter(function(s){return l[s]}),M=new Set(re.map(function(s){return l[s]})),Z=null;function Oe(s){return Z=new WeakMap,s=function a(u){if(!u||typeof u!="object")return u;var d=Z.get(u);if(d)return d;if(f(u)){d=[],Z.set(u,d);for(var p=0,y=u.length;p<y;++p)d.push(a(u[p]))}else if(M.has(u.constructor))d=u;else{var w,C=g(u);for(w in d=C===Object.prototype?{}:Object.create(C),Z.set(u,d),u)_(u,w)&&(d[w]=a(u[w]))}return d}(s),Z=null,s}var Se={}.toString;function ge(s){return Se.call(s).slice(8,-1)}var Pe=typeof Symbol<"u"?Symbol.iterator:"@@iterator",qe=typeof Pe=="symbol"?function(s){var a;return s!=null&&(a=s[Pe])&&a.apply(s)}:function(){return null};function Fe(s,a){a=s.indexOf(a),0<=a&&s.splice(a,1)}var Je={};function Ge(s){var a,u,d,p;if(arguments.length===1){if(f(s))return s.slice();if(this===Je&&typeof s=="string")return[s];if(p=qe(s))for(u=[];!(d=p.next()).done;)u.push(d.value);else{if(s==null)return[s];if(typeof(a=s.length)!="number")return[s];for(u=new Array(a);a--;)u[a]=s[a]}}else for(a=arguments.length,u=new Array(a);a--;)u[a]=arguments[a];return u}var ze=typeof Symbol<"u"?function(s){return s[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},re=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],de=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(re),J={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 $e(s,a){this.name=s,this.message=a}function ot(s,a){return s+". Errors: "+Object.keys(a).map(function(u){return a[u].toString()}).filter(function(u,d,p){return p.indexOf(u)===d}).join(`
|
||
`)}function wt(s,a,u,d){this.failures=a,this.failedKeys=d,this.successCount=u,this.message=ot(s,a)}function Ee(s,a){this.name="BulkError",this.failures=Object.keys(a).map(function(u){return a[u]}),this.failuresByPos=a,this.message=ot(s,this.failures)}H($e).from(Error).extend({toString:function(){return this.name+": "+this.message}}),H(wt).from($e),H(Ee).from($e);var xt=de.reduce(function(s,a){return s[a]=a+"Error",s},{}),St=$e,Le=de.reduce(function(s,a){var u=a+"Error";function d(p,y){this.name=u,p?typeof p=="string"?(this.message="".concat(p).concat(y?`
|
||
`+y:""),this.inner=y||null):typeof p=="object"&&(this.message="".concat(p.name," ").concat(p.message),this.inner=p):(this.message=J[a]||u,this.inner=null)}return H(d).from(St),s[a]=d,s},{}),k=(Le.Syntax=SyntaxError,Le.Type=TypeError,Le.Range=RangeError,re.reduce(function(s,a){return s[a+"Error"]=Le[a],s},{}));re=de.reduce(function(s,a){return["Syntax","Type","Range"].indexOf(a)===-1&&(s[a+"Error"]=Le[a]),s},{});function v(){}function b(s){return s}function E(s,a){return s==null||s===b?a:function(u){return a(s(u))}}function X(s,a){return function(){s.apply(this,arguments),a.apply(this,arguments)}}function ce(s,a){return s===v?a:function(){var u=s.apply(this,arguments),d=(u!==void 0&&(arguments[0]=u),this.onsuccess),p=this.onerror,y=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?X(d,this.onsuccess):d),p&&(this.onerror=this.onerror?X(p,this.onerror):p),y!==void 0?y:u}}function xe(s,a){return s===v?a:function(){s.apply(this,arguments);var u=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,a.apply(this,arguments),u&&(this.onsuccess=this.onsuccess?X(u,this.onsuccess):u),d&&(this.onerror=this.onerror?X(d,this.onerror):d)}}function be(s,a){return s===v?a:function(){var u=s.apply(this,arguments),d=(m(arguments[0],u),this.onsuccess),p=this.onerror,y=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?X(d,this.onsuccess):d),p&&(this.onerror=this.onerror?X(p,this.onerror):p),u===void 0?y===void 0?void 0:y:m(u,y)}}function _e(s,a){return s===v?a:function(){return a.apply(this,arguments)!==!1&&s.apply(this,arguments)}}function fe(s,a){return s===v?a:function(){var u=s.apply(this,arguments);if(u&&typeof u.then=="function"){for(var d=this,p=arguments.length,y=new Array(p);p--;)y[p]=arguments[p];return u.then(function(){return a.apply(d,y)})}return a.apply(this,arguments)}}re.ModifyError=wt,re.DexieError=$e,re.BulkError=Ee;var Ke=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function Te(s){Ke=s}var Be={},ue=100,G=typeof Promise>"u"?[]:(de=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[G=crypto.subtle.digest("SHA-512",new Uint8Array([0])),g(G),de]:[de,g(de),de]),de=G[0],Ws=G[1],Ws=Ws&&Ws.then,je=de&&de.constructor,at=!!G[2],yt=function(s,a){Yn.push([s,a]),Ze&&(queueMicrotask(zd),Ze=!1)},Dt=!0,Ze=!0,Qt=[],ms=[],Ut=b,Lt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:v,pgp:!1,env:{},finalize:v},Ue=Lt,Yn=[],hs=0,er=[];function Ie(s){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var a=this._PSD=Ue;if(typeof s!="function"){if(s!==Be)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Aa(this,this._value)}else this._state=null,this._value=null,++a.ref,function u(d,p){try{p(function(y){if(d._state===null){if(y===d)throw new TypeError("A promise cannot be resolved with itself.");var w=d._lib&&Vs();y&&typeof y.then=="function"?u(d,function(C,K){y instanceof Ie?y._then(C,K):y.then(C,K)}):(d._state=!0,d._value=y,kl(d)),w&&Bs()}},Aa.bind(null,d))}catch(y){Aa(d,y)}}(this,s)}var Ta={get:function(){var s=Ue,a=or;function u(d,p){var y=this,w=!s.global&&(s!==Ue||a!==or),C=w&&!Xn(),K=new Ie(function(Y,N){Pa(y,new _l(xl(d,s,w,C),xl(p,s,w,C),Y,N,s))});return this._consoleTask&&(K._consoleTask=this._consoleTask),K}return u.prototype=Be,u},set:function(s){I(this,"then",s&&s.prototype===Be?Ta:{get:function(){return s},set:Ta.set})}};function _l(s,a,u,d,p){this.onFulfilled=typeof s=="function"?s:null,this.onRejected=typeof a=="function"?a:null,this.resolve=u,this.reject=d,this.psd=p}function Aa(s,a){var u,d;ms.push(a),s._state===null&&(u=s._lib&&Vs(),a=Ut(a),s._state=!1,s._value=a,d=s,Qt.some(function(p){return p._value===d._value})||Qt.push(d),kl(s),u)&&Bs()}function kl(s){var a=s._listeners;s._listeners=[];for(var u=0,d=a.length;u<d;++u)Pa(s,a[u]);var p=s._PSD;--p.ref||p.finalize(),hs===0&&(++hs,yt(function(){--hs==0&&Oa()},[]))}function Pa(s,a){if(s._state===null)s._listeners.push(a);else{var u=s._state?a.onFulfilled:a.onRejected;if(u===null)return(s._state?a.resolve:a.reject)(s._value);++a.psd.ref,++hs,yt(Hd,[u,s,a])}}function Hd(s,a,u){try{var d,p=a._value;!a._state&&ms.length&&(ms=[]),d=Ke&&a._consoleTask?a._consoleTask.run(function(){return s(p)}):s(p),a._state||ms.indexOf(p)!==-1||(y=>{for(var w=Qt.length;w;)if(Qt[--w]._value===y._value)return Qt.splice(w,1)})(a),u.resolve(d)}catch(y){u.reject(y)}finally{--hs==0&&Oa(),--u.psd.ref||u.psd.finalize()}}function zd(){ys(Lt,function(){Vs()&&Bs()})}function Vs(){var s=Dt;return Ze=Dt=!1,s}function Bs(){var s,a,u;do for(;0<Yn.length;)for(s=Yn,Yn=[],u=s.length,a=0;a<u;++a){var d=s[a];d[0].apply(null,d[1])}while(0<Yn.length);Ze=Dt=!0}function Oa(){for(var s=Qt,a=(Qt=[],s.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),er.slice(0)),u=a.length;u;)a[--u]()}function tr(s){return new Ie(Be,!1,s)}function Et(s,a){var u=Ue;return function(){var d=Vs(),p=Ue;try{return Qn(u,!0),s.apply(this,arguments)}catch(y){a&&a(y)}finally{Qn(p,!1),d&&Bs()}}}P(Ie.prototype,{then:Ta,_then:function(s,a){Pa(this,new _l(null,null,s,a,Ue))},catch:function(s){var a,u;return arguments.length===1?this.then(null,s):(a=s,u=arguments[1],typeof a=="function"?this.then(null,function(d){return(d instanceof a?u:tr)(d)}):this.then(null,function(d){return(d&&d.name===a?u:tr)(d)}))},finally:function(s){return this.then(function(a){return Ie.resolve(s()).then(function(){return a})},function(a){return Ie.resolve(s()).then(function(){return tr(a)})})},timeout:function(s,a){var u=this;return s<1/0?new Ie(function(d,p){var y=setTimeout(function(){return p(new Le.Timeout(a))},s);u.then(d,p).finally(clearTimeout.bind(null,y))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&I(Ie.prototype,Symbol.toStringTag,"Dexie.Promise"),Lt.env=Cl(),P(Ie,{all:function(){var s=Ge.apply(null,arguments).map(rr);return new Ie(function(a,u){s.length===0&&a([]);var d=s.length;s.forEach(function(p,y){return Ie.resolve(p).then(function(w){s[y]=w,--d||a(s)},u)})})},resolve:function(s){return s instanceof Ie?s:s&&typeof s.then=="function"?new Ie(function(a,u){s.then(a,u)}):new Ie(Be,!0,s)},reject:tr,race:function(){var s=Ge.apply(null,arguments).map(rr);return new Ie(function(a,u){s.map(function(d){return Ie.resolve(d).then(a,u)})})},PSD:{get:function(){return Ue},set:function(s){return Ue=s}},totalEchoes:{get:function(){return or}},newPSD:Jn,usePSD:ys,scheduler:{get:function(){return yt},set:function(s){yt=s}},rejectionMapper:{get:function(){return Ut},set:function(s){Ut=s}},follow:function(s,a){return new Ie(function(u,d){return Jn(function(p,y){var w=Ue;w.unhandleds=[],w.onunhandled=y,w.finalize=X(function(){var C,K=this;C=function(){K.unhandleds.length===0?p():y(K.unhandleds[0])},er.push(function Y(){C(),er.splice(er.indexOf(Y),1)}),++hs,yt(function(){--hs==0&&Oa()},[])},w.finalize),s()},a,u,d)})}}),je&&(je.allSettled&&I(Ie,"allSettled",function(){var s=Ge.apply(null,arguments).map(rr);return new Ie(function(a){s.length===0&&a([]);var u=s.length,d=new Array(u);s.forEach(function(p,y){return Ie.resolve(p).then(function(w){return d[y]={status:"fulfilled",value:w}},function(w){return d[y]={status:"rejected",reason:w}}).then(function(){return--u||a(d)})})})}),je.any&&typeof AggregateError<"u"&&I(Ie,"any",function(){var s=Ge.apply(null,arguments).map(rr);return new Ie(function(a,u){s.length===0&&u(new AggregateError([]));var d=s.length,p=new Array(d);s.forEach(function(y,w){return Ie.resolve(y).then(function(C){return a(C)},function(C){p[w]=C,--d||u(new AggregateError(p))})})})}),je.withResolvers)&&(Ie.withResolvers=je.withResolvers);var Vt={awaits:0,echoes:0,id:0},Wd=0,nr=[],sr=0,or=0,Gd=0;function Jn(s,w,u,d){var p=Ue,y=Object.create(p),w=(y.parent=p,y.ref=0,y.global=!1,y.id=++Gd,Lt.env,y.env=at?{Promise:Ie,PromiseProp:{value:Ie,configurable:!0,writable:!0},all:Ie.all,race:Ie.race,allSettled:Ie.allSettled,any:Ie.any,resolve:Ie.resolve,reject:Ie.reject}:{},w&&m(y,w),++p.ref,y.finalize=function(){--this.parent.ref||this.parent.finalize()},ys(y,s,u,d));return y.ref===0&&y.finalize(),w}function Us(){return Vt.id||(Vt.id=++Wd),++Vt.awaits,Vt.echoes+=ue,Vt.id}function Xn(){return!!Vt.awaits&&(--Vt.awaits==0&&(Vt.id=0),Vt.echoes=Vt.awaits*ue,!0)}function rr(s){return Vt.echoes&&s&&s.constructor===je?(Us(),s.then(function(a){return Xn(),a},function(a){return Xn(),Pt(a)})):s}function Yd(){var s=nr[nr.length-1];nr.pop(),Qn(s,!1)}function Qn(s,a){var u,d,p=Ue;(a?!Vt.echoes||sr++&&s===Ue:!sr||--sr&&s===Ue)||queueMicrotask(a?(function(y){++or,Vt.echoes&&--Vt.echoes!=0||(Vt.echoes=Vt.awaits=Vt.id=0),nr.push(Ue),Qn(y,!0)}).bind(null,s):Yd),s!==Ue&&(Ue=s,p===Lt&&(Lt.env=Cl()),at)&&(u=Lt.env.Promise,d=s.env,p.global||s.global)&&(Object.defineProperty(l,"Promise",d.PromiseProp),u.all=d.all,u.race=d.race,u.resolve=d.resolve,u.reject=d.reject,d.allSettled&&(u.allSettled=d.allSettled),d.any)&&(u.any=d.any)}function Cl(){var s=l.Promise;return at?{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 ys(s,a,u,d,p){var y=Ue;try{return Qn(s,!0),a(u,d,p)}finally{Qn(y,!1)}}function xl(s,a,u,d){return typeof s!="function"?s:function(){var p=Ue;u&&Us(),Qn(a,!0);try{return s.apply(this,arguments)}finally{Qn(p,!1),d&&queueMicrotask(Xn)}}}function Ma(s){Promise===je&&Vt.echoes===0?sr===0?s():enqueueNativeMicroTask(s):setTimeout(s,0)}(""+Ws).indexOf("[native code]")===-1&&(Us=Xn=v);var Pt=Ie.reject,gs="",Kn="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 bs(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=Oe(a))[s],a}}function El(){throw Le.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function ut(s,a){try{var u=Tl(s),d=Tl(a);if(u!==d)return u==="Array"?1:d==="Array"?-1:u==="binary"?1:d==="binary"?-1:u==="string"?1:d==="string"?-1:u==="Date"?1:d!=="Date"?NaN:-1;switch(u){case"number":case"Date":case"string":return a<s?1:s<a?-1:0;case"binary":for(var p=Al(s),y=Al(a),w=p.length,C=y.length,K=w<C?w:C,Y=0;Y<K;++Y)if(p[Y]!==y[Y])return p[Y]<y[Y]?-1:1;return w===C?0:w<C?-1:1;case"Array":for(var N=s,L=a,R=N.length,W=L.length,B=R<W?R:W,V=0;V<B;++V){var q=ut(N[V],L[V]);if(q!==0)return q}return R===W?0:R<W?-1:1}}catch{}return NaN}function Tl(s){var a=typeof s;return a=="object"&&(ArrayBuffer.isView(s)||(a=ge(s))==="ArrayBuffer")?"binary":a}function Al(s){return s instanceof Uint8Array?s:ArrayBuffer.isView(s)?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s)}function lr(s,a,u){var d=s.schema.yProps;return d?(a&&0<u.numFailures&&(a=a.filter(function(p,y){return!u.failures[y]})),Promise.all(d.map(function(p){return p=p.updatesTable,a?s.db.table(p).where("k").anyOf(a).delete():s.db.table(p).clear()})).then(function(){return u})):u}Pl.prototype.execute=function(s){var a=this["@@propmod"];if(a.add!==void 0){var u=a.add;if(f(u))return r(r([],f(s)?s:[],!0),u).sort();if(typeof u=="number")return(Number(s)||0)+u;if(typeof u=="bigint")try{return BigInt(s)+u}catch{return BigInt(0)+u}throw new TypeError("Invalid term ".concat(u))}if(a.remove!==void 0){var d=a.remove;if(f(d))return f(s)?s.filter(function(p){return!d.includes(p)}).sort():[];if(typeof d=="number")return Number(s)-d;if(typeof d=="bigint")try{return BigInt(s)-d}catch{return BigInt(0)-d}throw new TypeError("Invalid subtrahend ".concat(d))}return u=(u=a.replacePrefix)==null?void 0:u[0],u&&typeof s=="string"&&s.startsWith(u)?a.replacePrefix[1]+s.substring(u.length):s};var co=Pl;function Pl(s){this["@@propmod"]=s}function Ol(s,a){for(var u=c(a),d=u.length,p=!1,y=0;y<d;++y){var w=u[y],C=a[w],K=ee(s,w);C instanceof co?(z(s,w,C.execute(K)),p=!0):K!==C&&(z(s,w,C),p=!0)}return p}_t.prototype._trans=function(s,a,u){var d=this._tx||Ue.trans,p=this.name,y=Ke&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(s==="readonly"?"read":"write"," ").concat(this.name));function w(Y,N,L){if(L.schema[p])return a(L.idbtrans,L);throw new Le.NotFound("Table "+p+" not part of transaction")}var C=Vs();try{var K=d&&d.db._novip===this.db._novip?d===Ue.trans?d._promise(s,w,u):Jn(function(){return d._promise(s,w,u)},{trans:d,transless:Ue.transless||Ue}):function Y(N,L,R,W){if(N.idbdb&&(N._state.openComplete||Ue.letThrough||N._vip)){var B=N._createTransaction(L,R,N._dbSchema);try{B.create(),N._state.PR1398_maxLoop=3}catch(V){return V.name===xt.InvalidState&&N.isOpen()&&0<--N._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),N.close({disableAutoOpen:!1}),N.open().then(function(){return Y(N,L,R,W)})):Pt(V)}return B._promise(L,function(V,q){return Jn(function(){return Ue.trans=B,W(V,q,B)})}).then(function(V){if(L==="readwrite")try{B.idbtrans.commit()}catch{}return L==="readonly"?V:B._completion.then(function(){return V})})}if(N._state.openComplete)return Pt(new Le.DatabaseClosed(N._state.dbOpenError));if(!N._state.isBeingOpened){if(!N._state.autoOpen)return Pt(new Le.DatabaseClosed);N.open().catch(v)}return N._state.dbReadyPromise.then(function(){return Y(N,L,R,W)})}(this.db,s,[this.name],w);return y&&(K._consoleTask=y,K=K.catch(function(Y){return console.trace(Y),Pt(Y)})),K}finally{C&&Bs()}},_t.prototype.get=function(s,a){var u=this;return s&&s.constructor===Object?this.where(s).first(a):s==null?Pt(new Le.Type("Invalid argument to Table.get()")):this._trans("readonly",function(d){return u.core.get({trans:d,key:s}).then(function(p){return u.hook.reading.fire(p)})}).then(a)},_t.prototype.where=function(s){if(typeof s=="string")return new this.db.WhereClause(this,s);if(f(s))return new this.db.WhereClause(this,"[".concat(s.join("+"),"]"));var a=c(s);if(a.length===1)return this.where(a[0]).equals(s[a[0]]);var u=this.schema.indexes.concat(this.schema.primKey).filter(function(C){if(C.compound&&a.every(function(Y){return 0<=C.keyPath.indexOf(Y)})){for(var K=0;K<a.length;++K)if(a.indexOf(C.keyPath[K])===-1)return!1;return!0}return!1}).sort(function(C,K){return C.keyPath.length-K.keyPath.length})[0];if(u&&this.db._maxKey!==gs)return w=u.keyPath.slice(0,a.length),this.where(w).equals(w.map(function(C){return s[C]}));!u&&Ke&&console.warn("The query ".concat(JSON.stringify(s)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(a.join("+"),"]"));var d=this.schema.idxByName;function p(C,K){return ut(C,K)===0}var w=a.reduce(function(N,K){var Y=N[0],N=N[1],L=d[K],R=s[K];return[Y||L,Y||!L?bs(N,L&&L.multi?function(W){return W=ee(W,K),f(W)&&W.some(function(B){return p(R,B)})}:function(W){return p(R,ee(W,K))}):N]},[null,null]),y=w[0],w=w[1];return y?this.where(y.name).equals(s[y.keyPath]).filter(w):u?this.filter(w):this.where(a).equals("")},_t.prototype.filter=function(s){return this.toCollection().and(s)},_t.prototype.count=function(s){return this.toCollection().count(s)},_t.prototype.offset=function(s){return this.toCollection().offset(s)},_t.prototype.limit=function(s){return this.toCollection().limit(s)},_t.prototype.each=function(s){return this.toCollection().each(s)},_t.prototype.toArray=function(s){return this.toCollection().toArray(s)},_t.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},_t.prototype.orderBy=function(s){return new this.db.Collection(new this.db.WhereClause(this,f(s)?"[".concat(s.join("+"),"]"):s))},_t.prototype.reverse=function(){return this.toCollection().reverse()},_t.prototype.mapToClass=function(s){for(var a=this.db,u=this.name,d=((this.schema.mappedClass=s).prototype instanceof El&&(s=(w=>{var C=N,K=w;if(typeof K!="function"&&K!==null)throw new TypeError("Class extends value "+String(K)+" is not a constructor or null");function Y(){this.constructor=C}function N(){return w!==null&&w.apply(this,arguments)||this}return n(C,K),C.prototype=K===null?Object.create(K):(Y.prototype=K.prototype,new Y),Object.defineProperty(N.prototype,"db",{get:function(){return a},enumerable:!1,configurable:!0}),N.prototype.table=function(){return u},N})(s)),new Set),p=s.prototype;p;p=g(p))Object.getOwnPropertyNames(p).forEach(function(w){return d.add(w)});function y(w){if(!w)return w;var C,K=Object.create(s.prototype);for(C in w)if(!d.has(C))try{K[C]=w[C]}catch{}return K}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=y,this.hook("reading",y),s},_t.prototype.defineClass=function(){return this.mapToClass(function(s){m(this,s)})},_t.prototype.add=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,y=d.keyPath,w=s;return y&&p&&(w=ir(y)(s)),this._trans("readwrite",function(C){return u.core.mutate({trans:C,type:"add",keys:a!=null?[a]:null,values:[w]})}).then(function(C){return C.numFailures?Ie.reject(C.failures[0]):C.lastResult}).then(function(C){if(y)try{z(s,y,C)}catch{}return C})},_t.prototype.upsert=function(s,a){var u=this,d=this.schema.primKey.keyPath;return this._trans("readwrite",function(p){return u.core.get({trans:p,key:s}).then(function(y){var w=y??{};return Ol(w,a),d&&z(w,d,s),u.core.mutate({trans:p,type:"put",values:[w],keys:[s],upsert:!0,updates:{keys:[s],changeSpecs:[a]}}).then(function(C){return C.numFailures?Ie.reject(C.failures[0]):!!y})})})},_t.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?Pt(new Le.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(s).modify(a)},_t.prototype.put=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,y=d.keyPath,w=s;return y&&p&&(w=ir(y)(s)),this._trans("readwrite",function(C){return u.core.mutate({trans:C,type:"put",values:[w],keys:a!=null?[a]:null})}).then(function(C){return C.numFailures?Ie.reject(C.failures[0]):C.lastResult}).then(function(C){if(y)try{z(s,y,C)}catch{}return C})},_t.prototype.delete=function(s){var a=this;return this._trans("readwrite",function(u){return a.core.mutate({trans:u,type:"delete",keys:[s]}).then(function(d){return lr(a,[s],d)}).then(function(d){return d.numFailures?Ie.reject(d.failures[0]):void 0})})},_t.prototype.clear=function(){var s=this;return this._trans("readwrite",function(a){return s.core.mutate({trans:a,type:"deleteRange",range:Sl}).then(function(u){return lr(s,null,u)})}).then(function(a){return a.numFailures?Ie.reject(a.failures[0]):void 0})},_t.prototype.bulkGet=function(s){var a=this;return this._trans("readonly",function(u){return a.core.getMany({keys:s,trans:u}).then(function(d){return d.map(function(p){return a.hook.reading.fire(p)})})})},_t.prototype.bulkAdd=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,y=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var C=d.schema.primKey,Y=C.auto,C=C.keyPath;if(C&&p)throw new Le.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Le.InvalidArgument("Arguments objects and keys must have the same length");var K=s.length,Y=C&&Y?s.map(ir(C)):s;return d.core.mutate({trans:w,type:"add",keys:p,values:Y,wantResults:y}).then(function(N){var L=N.numFailures,R=N.failures;if(L===0)return y?N.results:N.lastResult;throw new Ee("".concat(d.name,".bulkAdd(): ").concat(L," of ").concat(K," operations failed"),R)})})},_t.prototype.bulkPut=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,y=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var C=d.schema.primKey,Y=C.auto,C=C.keyPath;if(C&&p)throw new Le.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new Le.InvalidArgument("Arguments objects and keys must have the same length");var K=s.length,Y=C&&Y?s.map(ir(C)):s;return d.core.mutate({trans:w,type:"put",keys:p,values:Y,wantResults:y}).then(function(N){var L=N.numFailures,R=N.failures;if(L===0)return y?N.results:N.lastResult;throw new Ee("".concat(d.name,".bulkPut(): ").concat(L," of ").concat(K," operations failed"),R)})})},_t.prototype.bulkUpdate=function(s){var a=this,u=this.core,d=s.map(function(w){return w.key}),p=s.map(function(w){return w.changes}),y=[];return this._trans("readwrite",function(w){return u.getMany({trans:w,keys:d,cache:"clone"}).then(function(C){var K=[],Y=[],N=(s.forEach(function(L,R){var W=L.key,B=L.changes,V=C[R];if(V){for(var q=0,te=Object.keys(B);q<te.length;q++){var Q=te[q],ae=B[Q];if(Q===a.schema.primKey.keyPath){if(ut(ae,W)!==0)throw new Le.Constraint("Cannot update primary key in bulkUpdate()")}else z(V,Q,ae)}y.push(R),K.push(W),Y.push(V)}}),K.length);return u.mutate({trans:w,type:"put",keys:K,values:Y,updates:{keys:d,changeSpecs:p}}).then(function(L){var R=L.numFailures,W=L.failures;if(R===0)return N;for(var B=0,V=Object.keys(W);B<V.length;B++){var q,te=V[B],Q=y[Number(te)];Q!=null&&(q=W[te],delete W[te],W[Q]=q)}throw new Ee("".concat(a.name,".bulkUpdate(): ").concat(R," of ").concat(N," operations failed"),W)})})})},_t.prototype.bulkDelete=function(s){var a=this,u=s.length;return this._trans("readwrite",function(d){return a.core.mutate({trans:d,type:"delete",keys:s}).then(function(p){return lr(a,s,p)})}).then(function(d){var p=d.numFailures,y=d.failures;if(p===0)return d.lastResult;throw new Ee("".concat(a.name,".bulkDelete(): ").concat(p," of ").concat(u," operations failed"),y)})};var Ml=_t;function _t(){}function fo(s){function a(w,C){if(C){for(var K=arguments.length,Y=new Array(K-1);--K;)Y[K-1]=arguments[K];return u[w].subscribe.apply(null,Y),s}if(typeof w=="string")return u[w]}var u={};a.addEventType=y;for(var d=1,p=arguments.length;d<p;++d)y(arguments[d]);return a;function y(w,C,K){var Y,N;if(typeof w!="object")return C=C||_e,N={subscribers:[],fire:K=K||v,subscribe:function(L){N.subscribers.indexOf(L)===-1&&(N.subscribers.push(L),N.fire=C(N.fire,L))},unsubscribe:function(L){N.subscribers=N.subscribers.filter(function(R){return R!==L}),N.fire=N.subscribers.reduce(C,K)}},u[w]=a[w]=N;c(Y=w).forEach(function(L){var R=Y[L];if(f(R))y(L,Y[L][0],Y[L][1]);else{if(R!=="asap")throw new Le.InvalidArgument("Invalid event config");var W=y(L,b,function(){for(var B=arguments.length,V=new Array(B);B--;)V[B]=arguments[B];W.subscribers.forEach(function(q){D(function(){q.apply(null,V)})})})}})}}function po(s,a){return H(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=bs(s.filter,a)}function La(s,a,u){var d=s.replayFilter;s.replayFilter=d?function(){return bs(d(),a())}:a,s.justLimit=u&&!d}function ur(s,a){if(s.isPrimKey)return a.primaryKey;var u=a.getIndexByKeyPath(s.index);if(u)return u;throw new Le.Schema("KeyPath "+s.index+" on object store "+a.name+" is not indexed")}function Il(s,a,u){var d=ur(s,a.schema);return a.openCursor({trans:u,values:!s.keysOnly,reverse:s.dir==="prev",unique:!!s.unique,query:{index:d,range:s.range}})}function cr(s,a,u,d){var p,y,w=s.replayFilter?bs(s.filter,s.replayFilter()):s.filter;return s.or?(p={},y=function(C,K,Y){var N,L;w&&!w(K,Y,function(R){return K.stop(R)},function(R){return K.fail(R)})||((L=""+(N=K.primaryKey))=="[object ArrayBuffer]"&&(L=""+new Uint8Array(N)),_(p,L))||(p[L]=!0,a(C,K,Y))},Promise.all([s.or._iterate(y,u),jl(Il(s,d,u),s.algorithm,y,!s.keysOnly&&s.valueMapper)])):jl(Il(s,d,u),bs(s.algorithm,w),a,!s.keysOnly&&s.valueMapper)}function jl(s,a,u,d){var p=Et(d?function(y,w,C){return u(d(y),w,C)}:u);return s.then(function(y){if(y)return y.start(function(){var w=function(){return y.continue()};a&&!a(y,function(C){return w=C},function(C){y.stop(C),w=v},function(C){y.fail(C),w=v})||p(y.value,y,function(C){return w=C}),w()})})}ct.prototype._read=function(s,a){var u=this._ctx;return u.error?u.table._trans(null,Pt.bind(null,u.error)):u.table._trans("readonly",s).then(a)},ct.prototype._write=function(s){var a=this._ctx;return a.error?a.table._trans(null,Pt.bind(null,a.error)):a.table._trans("readwrite",s,"locked")},ct.prototype._addAlgorithm=function(s){var a=this._ctx;a.algorithm=bs(a.algorithm,s)},ct.prototype._iterate=function(s,a){return cr(this._ctx,s,a,this._ctx.table.core)},ct.prototype.clone=function(s){var a=Object.create(this.constructor.prototype),u=Object.create(this._ctx);return s&&m(u,s),a._ctx=u,a},ct.prototype.raw=function(){return this._ctx.valueMapper=null,this},ct.prototype.each=function(s){var a=this._ctx;return this._read(function(u){return cr(a,s,u,a.table.core)})},ct.prototype.count=function(s){var a=this;return this._read(function(u){var d,p=a._ctx,y=p.table.core;return qs(p,!0)?y.count({trans:u,query:{index:ur(p,y.schema),range:p.range}}).then(function(w){return Math.min(w,p.limit)}):(d=0,cr(p,function(){return++d,!1},u,y).then(function(){return d}))}).then(s)},ct.prototype.sortBy=function(s,a){var u=s.split(".").reverse(),d=u[0],p=u.length-1;function y(K,Y){return Y?y(K[u[Y]],Y-1):K[d]}var w=this._ctx.dir==="next"?1:-1;function C(K,Y){return ut(y(K,p),y(Y,p))*w}return this.toArray(function(K){return K.slice().sort(C)}).then(a)},ct.prototype.toArray=function(s){var a=this;return this._read(function(u){var d,p,y,w=a._ctx;return qs(w,!0)&&0<w.limit?(d=w.valueMapper,p=ur(w,w.table.core.schema),w.table.core.query({trans:u,limit:w.limit,values:!0,direction:w.dir==="prev"?"prev":void 0,query:{index:p,range:w.range}}).then(function(C){return C=C.result,d?C.map(d):C})):(y=[],cr(w,function(C){return y.push(C)},u,w.table.core).then(function(){return y}))},s)},ct.prototype.offset=function(s){var a=this._ctx;return s<=0||(a.offset+=s,qs(a)?La(a,function(){var u=s;return function(d,p){return u===0||(u===1?--u:p(function(){d.advance(u),u=0}),!1)}}):La(a,function(){var u=s;return function(){return--u<0}})),this},ct.prototype.limit=function(s){return this._ctx.limit=Math.min(this._ctx.limit,s),La(this._ctx,function(){var a=s;return function(u,d,p){return--a<=0&&d(p),0<=a}},!0),this},ct.prototype.until=function(s,a){return Da(this._ctx,function(u,d,p){return!s(u.value)||(d(p),a)}),this},ct.prototype.first=function(s){return this.limit(1).toArray(function(a){return a[0]}).then(s)},ct.prototype.last=function(s){return this.reverse().first(s)},ct.prototype.filter=function(s){var a;return Da(this._ctx,function(u){return s(u.value)}),(a=this._ctx).isMatch=bs(a.isMatch,s),this},ct.prototype.and=function(s){return this.filter(s)},ct.prototype.or=function(s){return new this.db.WhereClause(this._ctx.table,s,this)},ct.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},ct.prototype.desc=function(){return this.reverse()},ct.prototype.eachKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.key,d)})},ct.prototype.eachUniqueKey=function(s){return this._ctx.unique="unique",this.eachKey(s)},ct.prototype.eachPrimaryKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.primaryKey,d)})},ct.prototype.keys=function(s){var a=this._ctx,u=(a.keysOnly=!a.isMatch,[]);return this.each(function(d,p){u.push(p.key)}).then(function(){return u}).then(s)},ct.prototype.primaryKeys=function(s){var a=this._ctx;if(qs(a,!0)&&0<a.limit)return this._read(function(d){var p=ur(a,a.table.core.schema);return a.table.core.query({trans:d,values:!1,limit:a.limit,direction:a.dir==="prev"?"prev":void 0,query:{index:p,range:a.range}})}).then(function(d){return d.result}).then(s);a.keysOnly=!a.isMatch;var u=[];return this.each(function(d,p){u.push(p.primaryKey)}).then(function(){return u}).then(s)},ct.prototype.uniqueKeys=function(s){return this._ctx.unique="unique",this.keys(s)},ct.prototype.firstKey=function(s){return this.limit(1).keys(function(a){return a[0]}).then(s)},ct.prototype.lastKey=function(s){return this.reverse().firstKey(s)},ct.prototype.distinct=function(){var s,a=this._ctx,a=a.index&&a.table.schema.idxByName[a.index];return a&&a.multi&&(s={},Da(this._ctx,function(d){var d=d.primaryKey.toString(),p=_(s,d);return s[d]=!0,!p})),this},ct.prototype.modify=function(s){var a=this,u=this._ctx;return this._write(function(d){function p(V,q){var te=q.failures;R+=V-q.numFailures;for(var Q=0,ae=c(te);Q<ae.length;Q++){var ve=ae[Q];L.push(te[ve])}}var y=typeof s=="function"?s:function(V){return Ol(V,s)},w=u.table.core,N=w.schema.primaryKey,C=N.outbound,K=N.extractKey,Y=200,N=a.db._options.modifyChunkSize,L=(N&&(Y=typeof N=="object"?N[w.name]||N["*"]||200:N),[]),R=0,W=[],B=s===Dl;return a.clone().primaryKeys().then(function(V){function q(Q){var ae=Math.min(Y,V.length-Q),ve=V.slice(Q,Q+ae);return(B?Promise.resolve([]):w.getMany({trans:d,keys:ve,cache:"immutable"})).then(function(he){var Ce=[],we=[],Re=C?[]:null,ke=B?ve:[];if(!B)for(var Ve=0;Ve<ae;++Ve){var me=he[Ve],Xe={value:Oe(me),primKey:V[Q+Ve]};y.call(Xe,Xe.value,Xe)!==!1&&(Xe.value==null?ke.push(V[Q+Ve]):C||ut(K(me),K(Xe.value))===0?(we.push(Xe.value),C&&Re.push(V[Q+Ve])):(ke.push(V[Q+Ve]),Ce.push(Xe.value)))}return Promise.resolve(0<Ce.length&&w.mutate({trans:d,type:"add",values:Ce}).then(function(Qe){for(var nt in Qe.failures)ke.splice(parseInt(nt),1);p(Ce.length,Qe)})).then(function(){return(0<we.length||te&&typeof s=="object")&&w.mutate({trans:d,type:"put",keys:Re,values:we,criteria:te,changeSpec:typeof s!="function"&&s,isAdditionalChunk:0<Q}).then(function(Qe){return p(we.length,Qe)})}).then(function(){return(0<ke.length||te&&B)&&w.mutate({trans:d,type:"delete",keys:ke,criteria:te,isAdditionalChunk:0<Q}).then(function(Qe){return lr(u.table,ke,Qe)}).then(function(Qe){return p(ke.length,Qe)})}).then(function(){return V.length>Q+ae&&q(Q+Y)})})}var te=qs(u)&&u.limit===1/0&&(typeof s!="function"||B)&&{index:u.index,range:u.range};return q(0).then(function(){if(0<L.length)throw new wt("Error modifying one or more objects",L,R,W);return V.length})})})},ct.prototype.delete=function(){var s=this._ctx,a=s.range;return!qs(s)||s.table.schema.yProps||!s.isPrimKey&&a.type!==3?this.modify(Dl):this._write(function(u){var d=s.table.core.schema.primaryKey,p=a;return s.table.core.count({trans:u,query:{index:d,range:p}}).then(function(y){return s.table.core.mutate({trans:u,type:"deleteRange",range:p}).then(function(K){var C=K.failures,K=K.numFailures;if(K)throw new wt("Could not delete some values",Object.keys(C).map(function(Y){return C[Y]}),y-K);return y-K})})})};var Jd=ct;function ct(){}var Dl=function(s,a){return a.value=null};function Xd(s,a){return s<a?-1:s===a?0:1}function Qd(s,a){return a<s?-1:s===a?0:1}function on(s,a,u){return s=s instanceof Kl?new s.Collection(s):s,s._ctx.error=new(u||TypeError)(a),s}function Hs(s){return new s.Collection(s,function(){return Ll("")}).limit(0)}function dr(W,a,u,d){var p,y,w,C,K,Y,N,L=u.length;if(!u.every(function(V){return typeof V=="string"}))return on(W,$l);function R(V){p=V==="next"?function(te){return te.toUpperCase()}:function(te){return te.toLowerCase()},y=V==="next"?function(te){return te.toLowerCase()}:function(te){return te.toUpperCase()},w=V==="next"?Xd:Qd;var q=u.map(function(te){return{lower:y(te),upper:p(te)}}).sort(function(te,Q){return w(te.lower,Q.lower)});C=q.map(function(te){return te.upper}),K=q.map(function(te){return te.lower}),N=(Y=V)==="next"?"":d}R("next");var W=new W.Collection(W,function(){return Zn(C[0],K[L-1]+d)}),B=(W._ondirectionchange=function(V){R(V)},0);return W._addAlgorithm(function(V,q,te){var Q=V.key;if(typeof Q=="string"){var ae=y(Q);if(a(ae,K,B))return!0;for(var ve=null,he=B;he<L;++he){var Ce=((we,Re,ke,Ve,me,Xe)=>{for(var Qe=Math.min(we.length,Ve.length),nt=-1,lt=0;lt<Qe;++lt){var rn=Re[lt];if(rn!==Ve[lt])return me(we[lt],ke[lt])<0?we.substr(0,lt)+ke[lt]+ke.substr(lt+1):me(we[lt],Ve[lt])<0?we.substr(0,lt)+Ve[lt]+ke.substr(lt+1):0<=nt?we.substr(0,nt)+Re[nt]+ke.substr(nt+1):null;me(we[lt],rn)<0&&(nt=lt)}return Qe<Ve.length&&Xe==="next"?we+ke.substr(we.length):Qe<we.length&&Xe==="prev"?we.substr(0,ke.length):nt<0?null:we.substr(0,nt)+Ve[nt]+ke.substr(nt+1)})(Q,ae,C[he],K[he],w,Y);Ce===null&&ve===null?B=he+1:(ve===null||0<w(ve,Ce))&&(ve=Ce)}q(ve!==null?function(){V.continue(ve+N)}:te)}return!1}),W}function Zn(s,a,u,d){return{type:2,lower:s,upper:a,lowerOpen:u,upperOpen:d}}function Ll(s){return{type:1,lower:s,upper:s}}Object.defineProperty(Bt.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Bt.prototype.between=function(s,a,u,d){u=u!==!1,d=d===!0;try{return 0<this._cmp(s,a)||this._cmp(s,a)===0&&(u||d)&&(!u||!d)?Hs(this):new this.Collection(this,function(){return Zn(s,a,!u,!d)})}catch{return on(this,Kn)}},Bt.prototype.equals=function(s){return s==null?on(this,Kn):new this.Collection(this,function(){return Ll(s)})},Bt.prototype.above=function(s){return s==null?on(this,Kn):new this.Collection(this,function(){return Zn(s,void 0,!0)})},Bt.prototype.aboveOrEqual=function(s){return s==null?on(this,Kn):new this.Collection(this,function(){return Zn(s,void 0,!1)})},Bt.prototype.below=function(s){return s==null?on(this,Kn):new this.Collection(this,function(){return Zn(void 0,s,!1,!0)})},Bt.prototype.belowOrEqual=function(s){return s==null?on(this,Kn):new this.Collection(this,function(){return Zn(void 0,s)})},Bt.prototype.startsWith=function(s){return typeof s!="string"?on(this,$l):this.between(s,s+gs,!0,!0)},Bt.prototype.startsWithIgnoreCase=function(s){return s===""?this.startsWith(s):dr(this,function(a,u){return a.indexOf(u[0])===0},[s],gs)},Bt.prototype.equalsIgnoreCase=function(s){return dr(this,function(a,u){return a===u[0]},[s],"")},Bt.prototype.anyOfIgnoreCase=function(){var s=Ge.apply(Je,arguments);return s.length===0?Hs(this):dr(this,function(a,u){return u.indexOf(a)!==-1},s,"")},Bt.prototype.startsWithAnyOfIgnoreCase=function(){var s=Ge.apply(Je,arguments);return s.length===0?Hs(this):dr(this,function(a,u){return u.some(function(d){return a.indexOf(d)===0})},s,gs)},Bt.prototype.anyOf=function(){var s,a,u=this,d=Ge.apply(Je,arguments),p=this._cmp;try{d.sort(p)}catch{return on(this,Kn)}return d.length===0?Hs(this):((s=new this.Collection(this,function(){return Zn(d[0],d[d.length-1])}))._ondirectionchange=function(y){p=y==="next"?u._ascending:u._descending,d.sort(p)},a=0,s._addAlgorithm(function(y,w,C){for(var K=y.key;0<p(K,d[a]);)if(++a===d.length)return w(C),!1;return p(K,d[a])===0||(w(function(){y.continue(d[a])}),!1)}),s)},Bt.prototype.notEqual=function(s){return this.inAnyRange([[-1/0,s],[s,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Bt.prototype.noneOf=function(){var s=Ge.apply(Je,arguments);if(s.length===0)return new this.Collection(this);try{s.sort(this._ascending)}catch{return on(this,Kn)}var a=s.reduce(function(u,d){return u?u.concat([[u[u.length-1][1],d]]):[[-1/0,d]]},null);return a.push([s[s.length-1],this.db._maxKey]),this.inAnyRange(a,{includeLowers:!1,includeUppers:!1})},Bt.prototype.inAnyRange=function(s,te){var u=this,d=this._cmp,p=this._ascending,y=this._descending,w=this._min,C=this._max;if(s.length===0)return Hs(this);if(!s.every(function(Q){return Q[0]!==void 0&&Q[1]!==void 0&&p(Q[0],Q[1])<=0}))return on(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",Le.InvalidArgument);var K=!te||te.includeLowers!==!1,Y=te&&te.includeUppers===!0,N,L=p;function R(Q,ae){return L(Q[0],ae[0])}try{(N=s.reduce(function(Q,ae){for(var ve=0,he=Q.length;ve<he;++ve){var Ce=Q[ve];if(d(ae[0],Ce[1])<0&&0<d(ae[1],Ce[0])){Ce[0]=w(Ce[0],ae[0]),Ce[1]=C(Ce[1],ae[1]);break}}return ve===he&&Q.push(ae),Q},[])).sort(R)}catch{return on(this,Kn)}var W=0,B=Y?function(Q){return 0<p(Q,N[W][1])}:function(Q){return 0<=p(Q,N[W][1])},V=K?function(Q){return 0<y(Q,N[W][0])}:function(Q){return 0<=y(Q,N[W][0])},q=B,te=new this.Collection(this,function(){return Zn(N[0][0],N[N.length-1][1],!K,!Y)});return te._ondirectionchange=function(Q){L=Q==="next"?(q=B,p):(q=V,y),N.sort(R)},te._addAlgorithm(function(Q,ae,ve){for(var he,Ce=Q.key;q(Ce);)if(++W===N.length)return ae(ve),!1;return!B(he=Ce)&&!V(he)||(u._cmp(Ce,N[W][1])===0||u._cmp(Ce,N[W][0])===0||ae(function(){L===p?Q.continue(N[W][0]):Q.continue(N[W][1])}),!1)}),te},Bt.prototype.startsWithAnyOf=function(){var s=Ge.apply(Je,arguments);return s.every(function(a){return typeof a=="string"})?s.length===0?Hs(this):this.inAnyRange(s.map(function(a){return[a,a+gs]})):on(this,"startsWithAnyOf() only works with strings")};var Kl=Bt;function Bt(){}function yn(s){return Et(function(a){return vo(a),s(a.target.error),!1})}function vo(s){s.stopPropagation&&s.stopPropagation(),s.preventDefault&&s.preventDefault()}var fr="storagemutated",Ka="x-storagemutated-1",es=fo(null,fr),Zd=(xn.prototype._lock=function(){return S(!Ue.global),++this._reculock,this._reculock!==1||Ue.global||(Ue.lockOwnerFor=this),this},xn.prototype._unlock=function(){if(S(!Ue.global),--this._reculock==0)for(Ue.global||(Ue.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var s=this._blockedFuncs.shift();try{ys(s[1],s[0])}catch{}}return this},xn.prototype._locked=function(){return this._reculock&&Ue.lockOwnerFor!==this},xn.prototype.create=function(s){var a=this;if(this.mode){var u=this.db.idbdb,d=this.db._state.dbOpenError;if(S(!this.idbtrans),!s&&!u)switch(d&&d.name){case"DatabaseClosedError":throw new Le.DatabaseClosed(d);case"MissingAPIError":throw new Le.MissingAPI(d.message,d);default:throw new Le.OpenFailed(d)}if(!this.active)throw new Le.TransactionInactive;S(this._completion._state===null),(s=this.idbtrans=s||(this.db.core||u).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=Et(function(p){vo(p),a._reject(s.error)}),s.onabort=Et(function(p){vo(p),a.active&&a._reject(new Le.Abort(s.error)),a.active=!1,a.on("abort").fire(p)}),s.oncomplete=Et(function(){a.active=!1,a._resolve(),"mutatedParts"in s&&es.storagemutated.fire(s.mutatedParts)})}return this},xn.prototype._promise=function(s,a,u){var d,p=this;return s==="readwrite"&&this.mode!=="readwrite"?Pt(new Le.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Ie(function(y,w){p._blockedFuncs.push([function(){p._promise(s,a,u).then(y,w)},Ue])}):u?Jn(function(){var y=new Ie(function(w,C){p._lock();var K=a(w,C,p);K&&K.then&&K.then(w,C)});return y.finally(function(){return p._unlock()}),y._lib=!0,y}):((d=new Ie(function(y,w){var C=a(y,w,p);C&&C.then&&C.then(y,w)}))._lib=!0,d):Pt(new Le.TransactionInactive)},xn.prototype._root=function(){return this.parent?this.parent._root():this},xn.prototype.waitFor=function(s){var a,u=this._root(),d=Ie.resolve(s),p=(u._waitingFor?u._waitingFor=u._waitingFor.then(function(){return d}):(u._waitingFor=d,u._waitingQueue=[],a=u.idbtrans.objectStore(u.storeNames[0]),function y(){for(++u._spinCount;u._waitingQueue.length;)u._waitingQueue.shift()();u._waitingFor&&(a.get(-1/0).onsuccess=y)}()),u._waitingFor);return new Ie(function(y,w){d.then(function(C){return u._waitingQueue.push(Et(y.bind(null,C)))},function(C){return u._waitingQueue.push(Et(w.bind(null,C)))}).finally(function(){u._waitingFor===p&&(u._waitingFor=null)})})},xn.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new Le.Abort))},xn.prototype.table=function(s){var a=this._memoizedTables||(this._memoizedTables={});if(_(a,s))return a[s];var u=this.schema[s];if(u)return(u=new this.db.Table(s,u,this)).core=this.db.core.table(s),a[s]=u;throw new Le.NotFound("Table "+s+" not part of transaction")},xn);function xn(){}function Ra(s,a,u,d,p,y,w,C){return{name:s,keyPath:a,unique:u,multi:d,auto:p,compound:y,src:(u&&!w?"&":"")+(d?"*":"")+(p?"++":"")+Rl(a),type:C}}function Rl(s){return typeof s=="string"?s:s?"["+[].join.call(s,"+")+"]":""}function Na(s,a,u){return{name:s,primKey:a,indexes:u,mappedClass:null,idxByName:(d=function(p){return[p.name,p]},u.reduce(function(p,y,w){return y=d(y,w),y&&(p[y[0]]=y[1]),p},{}))};var d}var mo=function(s){try{return s.only([[]]),mo=function(){return[[]]},[[]]}catch{return mo=function(){return gs},gs}};function Fa(s){return s==null?function(){}:typeof s=="string"?(a=s).split(".").length===1?function(u){return u[a]}:function(u){return ee(u,a)}:function(u){return ee(u,s)};var a}function Nl(s){return[].slice.call(s)}var ef=0;function ho(s){return s==null?":id":typeof s=="string"?s:"[".concat(s.join("+"),"]")}function tf(s,a,w){function d(q){if(q.type===3)return null;if(q.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var W=q.lower,B=q.upper,V=q.lowerOpen,q=q.upperOpen;return W===void 0?B===void 0?null:a.upperBound(B,!!q):B===void 0?a.lowerBound(W,!!V):a.bound(W,B,!!V,!!q)}function p(R){var W,B,V=R.name;return{name:V,schema:R,mutate:function(q){var te=q.trans,Q=q.type,ae=q.keys,ve=q.values,he=q.range;return new Promise(function(Ce,we){Ce=Et(Ce);var Re=te.objectStore(V),ke=Re.keyPath==null,Ve=Q==="put"||Q==="add";if(!Ve&&Q!=="delete"&&Q!=="deleteRange")throw new Error("Invalid operation type: "+Q);var me,Xe=(ae||ve||{length:1}).length;if(ae&&ve&&ae.length!==ve.length)throw new Error("Given keys array must have same length as given values array.");if(Xe===0)return Ce({numFailures:0,failures:{},results:[],lastResult:void 0});function Qe(Zt){++rn,vo(Zt)}var nt=[],lt=[],rn=0;if(Q==="deleteRange"){if(he.type===4)return Ce({numFailures:rn,failures:lt,results:[],lastResult:void 0});he.type===3?nt.push(me=Re.clear()):nt.push(me=Re.delete(d(he)))}else{var ke=Ve?ke?[ve,ae]:[ve,null]:[ae,null],et=ke[0],Wt=ke[1];if(Ve)for(var Gt=0;Gt<Xe;++Gt)nt.push(me=Wt&&Wt[Gt]!==void 0?Re[Q](et[Gt],Wt[Gt]):Re[Q](et[Gt])),me.onerror=Qe;else for(Gt=0;Gt<Xe;++Gt)nt.push(me=Re[Q](et[Gt])),me.onerror=Qe}function xr(Zt){Zt=Zt.target.result,nt.forEach(function(ks,oi){return ks.error!=null&&(lt[oi]=ks.error)}),Ce({numFailures:rn,failures:lt,results:Q==="delete"?ae:nt.map(function(ks){return ks.result}),lastResult:Zt})}me.onerror=function(Zt){Qe(Zt),xr(Zt)},me.onsuccess=xr})},getMany:function(q){var te=q.trans,Q=q.keys;return new Promise(function(ae,ve){ae=Et(ae);for(var he,Ce=te.objectStore(V),we=Q.length,Re=new Array(we),ke=0,Ve=0,me=function(nt){nt=nt.target,Re[nt._pos]=nt.result,++Ve===ke&&ae(Re)},Xe=yn(ve),Qe=0;Qe<we;++Qe)Q[Qe]!=null&&((he=Ce.get(Q[Qe]))._pos=Qe,he.onsuccess=me,he.onerror=Xe,++ke);ke===0&&ae(Re)})},get:function(q){var te=q.trans,Q=q.key;return new Promise(function(ae,ve){ae=Et(ae);var he=te.objectStore(V).get(Q);he.onsuccess=function(Ce){return ae(Ce.target.result)},he.onerror=yn(ve)})},query:(W=K,B=Y,function(q){return new Promise(function(te,Q){te=Et(te);var ae,ve,he,Ce,Xe=q.trans,we=q.values,Re=q.limit,me=q.query,ke=(ke=q.direction)!=null?ke:"next",Ve=Re===1/0?void 0:Re,Qe=me.index,me=me.range,Xe=Xe.objectStore(V),Xe=Qe.isPrimaryKey?Xe:Xe.index(Qe.name),Qe=d(me);if(Re===0)return te({result:[]});B?(me={query:Qe,count:Ve,direction:ke},(ae=we?Xe.getAll(me):Xe.getAllKeys(me)).onsuccess=function(nt){return te({result:nt.target.result})},ae.onerror=yn(Q)):W&&ke==="next"?((ae=we?Xe.getAll(Qe,Ve):Xe.getAllKeys(Qe,Ve)).onsuccess=function(nt){return te({result:nt.target.result})},ae.onerror=yn(Q)):(ve=0,he=!we&&"openKeyCursor"in Xe?Xe.openKeyCursor(Qe,ke):Xe.openCursor(Qe,ke),Ce=[],he.onsuccess=function(){var nt=he.result;return!nt||(Ce.push(we?nt.value:nt.primaryKey),++ve===Re)?te({result:Ce}):void nt.continue()},he.onerror=yn(Q))})}),openCursor:function(q){var te=q.trans,Q=q.values,ae=q.query,ve=q.reverse,he=q.unique;return new Promise(function(Ce,we){Ce=Et(Ce);var Ve=ae.index,Re=ae.range,ke=te.objectStore(V),ke=Ve.isPrimaryKey?ke:ke.index(Ve.name),Ve=ve?he?"prevunique":"prev":he?"nextunique":"next",me=!Q&&"openKeyCursor"in ke?ke.openKeyCursor(d(Re),Ve):ke.openCursor(d(Re),Ve);me.onerror=yn(we),me.onsuccess=Et(function(Xe){var Qe,nt,lt,rn,et=me.result;et?(et.___id=++ef,et.done=!1,Qe=et.continue.bind(et),nt=(nt=et.continuePrimaryKey)&&nt.bind(et),lt=et.advance.bind(et),rn=function(){throw new Error("Cursor not stopped")},et.trans=te,et.stop=et.continue=et.continuePrimaryKey=et.advance=function(){throw new Error("Cursor not started")},et.fail=Et(we),et.next=function(){var Wt=this,Gt=1;return this.start(function(){return Gt--?Wt.continue():Wt.stop()}).then(function(){return Wt})},et.start=function(Wt){function Gt(){if(me.result)try{Wt()}catch(Zt){et.fail(Zt)}else et.done=!0,et.start=function(){throw new Error("Cursor behind last entry")},et.stop()}var xr=new Promise(function(Zt,ks){Zt=Et(Zt),me.onerror=yn(ks),et.fail=ks,et.stop=function(oi){et.stop=et.continue=et.continuePrimaryKey=et.advance=rn,Zt(oi)}});return me.onsuccess=Et(function(Zt){me.onsuccess=Gt,Gt()}),et.continue=Qe,et.continuePrimaryKey=nt,et.advance=lt,Gt(),xr},Ce(et)):Ce(null)},we)})},count:function(q){var te=q.query,Q=q.trans,ae=te.index,ve=te.range;return new Promise(function(he,Ce){var we=Q.objectStore(V),we=ae.isPrimaryKey?we:we.index(ae.name),Re=d(ve),Re=Re?we.count(Re):we.count();Re.onsuccess=Et(function(ke){return he(ke.target.result)}),Re.onerror=yn(Ce)})}}}y=w,C=Nl((w=s).objectStoreNames),N=0<C.length?y.objectStore(C[0]):{};var y,w={schema:{name:w.name,tables:C.map(function(R){return y.objectStore(R)}).map(function(R){var W=R.keyPath,B=R.autoIncrement,q=f(W),V={},q={name:R.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:W==null,compound:q,keyPath:W,autoIncrement:B,unique:!0,extractKey:Fa(W)},indexes:Nl(R.indexNames).map(function(te){return R.index(te)}).map(function(ve){var he=ve.name,Q=ve.unique,ae=ve.multiEntry,ve=ve.keyPath,he={name:he,compound:f(ve),keyPath:ve,unique:Q,multiEntry:ae,extractKey:Fa(ve)};return V[ho(ve)]=he}),getIndexByKeyPath:function(te){return V[ho(te)]}};return V[":id"]=q.primaryKey,W!=null&&(V[ho(W)]=q.primaryKey),q})},hasGetAll:0<C.length&&"getAll"in N&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in N},C=w.schema,K=w.hasGetAll,Y=w.hasIdb3Features,N=C.tables.map(p),L={};return N.forEach(function(R){return L[R.name]=R}),{stack:"dbcore",transaction:s.transaction.bind(s),table:function(R){if(L[R])return L[R];throw new Error("Table '".concat(R,"' not found"))},MIN_KEY:-1/0,MAX_KEY:mo(a),schema:C}}function nf(s,a,u,d){return u=u.IDBKeyRange,a=tf(a,u,d),{dbcore:s.dbcore.reduce(function(p,y){return y=y.create,o(o({},p),y(p))},a)}}function pr(s,a){var u=a.db,u=nf(s._middlewares,u,s._deps,a);s.core=u.dbcore,s.tables.forEach(function(d){var p=d.name;s.core.schema.tables.some(function(y){return y.name===p})&&(d.core=s.core.table(p),s[p]instanceof s.Table)&&(s[p].core=d.core)})}function vr(s,a,u,d){u.forEach(function(p){var y=d[p];a.forEach(function(w){var C=function K(Y,N){return oe(Y,N)||(Y=g(Y))&&K(Y,N)}(w,p);(!C||"value"in C&&C.value===void 0)&&(w===s.Transaction.prototype||w instanceof s.Transaction?I(w,p,{get:function(){return this.table(p)},set:function(K){x(this,p,{value:K,writable:!0,configurable:!0,enumerable:!0})}}):w[p]=new s.Table(p,y))})})}function Va(s,a){a.forEach(function(u){for(var d in u)u[d]instanceof s.Table&&delete u[d]})}function sf(s,a){return s._cfg.version-a._cfg.version}function of(s,a,u,d){var p=s._dbSchema,y=(u.objectStoreNames.contains("$meta")&&!p.$meta&&(p.$meta=Na("$meta",Vl("")[0],[]),s._storeNames.push("$meta")),s._createTransaction("readwrite",s._storeNames,p)),w=(y.create(u),y._completion.catch(d),y._reject.bind(y)),C=Ue.transless||Ue;Jn(function(){if(Ue.trans=y,Ue.transless=C,a!==0)return pr(s,u),Y=a,((K=y).storeNames.includes("$meta")?K.table("$meta").get("version").then(function(N){return N??Y}):Ie.resolve(Y)).then(function(q){var L=s,R=q,W=y,B=u,V=[],q=L._versions,te=L._dbSchema=hr(0,L.idbdb,B);return(q=q.filter(function(Q){return Q._cfg.version>=R})).length===0?Ie.resolve():(q.forEach(function(Q){V.push(function(){var ae,ve,he,Ce=te,we=Q._cfg.dbschema,Re=(yr(L,Ce,B),yr(L,we,B),te=L._dbSchema=we,Ba(Ce,we)),ke=(Re.add.forEach(function(Ve){Ua(B,Ve[0],Ve[1].primKey,Ve[1].indexes)}),Re.change.forEach(function(Ve){if(Ve.recreate)throw new Le.Upgrade("Not yet support for changing primary key");var me=B.objectStore(Ve.name);Ve.add.forEach(function(Xe){return mr(me,Xe)}),Ve.change.forEach(function(Xe){me.deleteIndex(Xe.name),mr(me,Xe)}),Ve.del.forEach(function(Xe){return me.deleteIndex(Xe)})}),Q._cfg.contentUpgrade);if(ke&&Q._cfg.version>R)return pr(L,B),W._memoizedTables={},ae=ne(we),Re.del.forEach(function(Ve){ae[Ve]=Ce[Ve]}),Va(L,[L.Transaction.prototype]),vr(L,[L.Transaction.prototype],c(ae),ae),W.schema=ae,(ve=ze(ke))&&Us(),we=Ie.follow(function(){var Ve;(he=ke(W))&&ve&&(Ve=Xn.bind(null,null),he.then(Ve,Ve))}),he&&typeof he.then=="function"?Ie.resolve(he):we.then(function(){return he})}),V.push(function(ae){var ve,he,Ce=Q._cfg.dbschema;ve=Ce,he=ae,[].slice.call(he.db.objectStoreNames).forEach(function(we){return ve[we]==null&&he.db.deleteObjectStore(we)}),Va(L,[L.Transaction.prototype]),vr(L,[L.Transaction.prototype],L._storeNames,L._dbSchema),W.schema=L._dbSchema}),V.push(function(ae){L.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(L.idbdb.version/10)===Q._cfg.version?(L.idbdb.deleteObjectStore("$meta"),delete L._dbSchema.$meta,L._storeNames=L._storeNames.filter(function(ve){return ve!=="$meta"})):ae.objectStore("$meta").put(Q._cfg.version,"version"))})}),function Q(){return V.length?Ie.resolve(V.shift()(W.idbtrans)).then(Q):Ie.resolve()}().then(function(){Fl(te,B)}))}).catch(w);var K,Y;c(p).forEach(function(N){Ua(u,N,p[N].primKey,p[N].indexes)}),pr(s,u),Ie.follow(function(){return s.on.populate.fire(y)}).catch(w)})}function rf(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 u=hr(0,s.idbdb,a);yr(s,s._dbSchema,a);for(var d=0,p=Ba(u,s._dbSchema).change;d<p.length;d++){var y=(w=>{if(w.change.length||w.recreate)return console.warn("Unable to patch indexes of table ".concat(w.name," because it has changes on the type of index or primary key.")),{value:void 0};var C=a.objectStore(w.name);w.add.forEach(function(K){Ke&&console.debug("Dexie upgrade patch: Creating missing index ".concat(w.name,".").concat(K.src)),mr(C,K)})})(p[d]);if(typeof y=="object")return y.value}}function Ba(s,a){var u,d={del:[],add:[],change:[]};for(u in s)a[u]||d.del.push(u);for(u in a){var p=s[u],y=a[u];if(p){var w={name:u,def:y,recreate:!1,del:[],add:[],change:[]};if(""+(p.primKey.keyPath||"")!=""+(y.primKey.keyPath||"")||p.primKey.auto!==y.primKey.auto)w.recreate=!0,d.change.push(w);else{var C=p.idxByName,K=y.idxByName,Y=void 0;for(Y in C)K[Y]||w.del.push(Y);for(Y in K){var N=C[Y],L=K[Y];N?N.src!==L.src&&w.change.push(L):w.add.push(L)}(0<w.del.length||0<w.add.length||0<w.change.length)&&d.change.push(w)}}else d.add.push([u,y])}return d}function Ua(s,a,u,d){var p=s.db.createObjectStore(a,u.keyPath?{keyPath:u.keyPath,autoIncrement:u.auto}:{autoIncrement:u.auto});d.forEach(function(y){return mr(p,y)})}function Fl(s,a){c(s).forEach(function(u){a.db.objectStoreNames.contains(u)||(Ke&&console.debug("Dexie: Creating missing table",u),Ua(a,u,s[u].primKey,s[u].indexes))})}function mr(s,a){s.createIndex(a.name,a.keyPath,{unique:a.unique,multiEntry:a.multi})}function hr(s,a,u){var d={};return ie(a.objectStoreNames,0).forEach(function(p){for(var y=u.objectStore(p),w=Ra(Rl(Y=y.keyPath),Y||"",!0,!1,!!y.autoIncrement,Y&&typeof Y!="string",!0),C=[],K=0;K<y.indexNames.length;++K){var N=y.index(y.indexNames[K]),Y=N.keyPath,N=Ra(N.name,Y,!!N.unique,!!N.multiEntry,!1,Y&&typeof Y!="string",!1);C.push(N)}d[p]=Na(p,w,C)}),d}function yr(s,a,u){for(var d=u.db.objectStoreNames,p=0;p<d.length;++p){var y=d[p],w=u.objectStore(y);s._hasGetAll="getAll"in w;for(var C=0;C<w.indexNames.length;++C){var K,Y=w.indexNames[C],N=w.index(Y).keyPath,N=typeof N=="string"?N:"["+ie(N).join("+")+"]";a[y]&&(K=a[y].idxByName[N])&&(K.name=Y,delete a[y].idxByName[N],a[y].idxByName[Y]=K)}}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,u){var p=a.split(":"),d=(d=p[1])==null?void 0:d.trim(),p=(a=p[0].trim()).replace(/([&*]|\+\+)/g,""),y=/^\[/.test(p)?p.match(/^\[(.*)\]$/)[1].split("+"):p;return Ra(p,y||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),f(y),u===0,d)})}zs.prototype._createTableSchema=Na,zs.prototype._parseIndexSyntax=Vl,zs.prototype._parseStoresSpec=function(s,a){var u=this;c(s).forEach(function(d){if(s[d]!==null){var p=u._parseIndexSyntax(s[d]),y=p.shift();if(!y)throw new Le.Schema("Invalid schema for table "+d+": "+s[d]);if(y.unique=!0,y.multi)throw new Le.Schema("Primary key cannot be multiEntry*");p.forEach(function(w){if(w.auto)throw new Le.Schema("Only primary key can be marked as autoIncrement (++)");if(!w.keyPath)throw new Le.Schema("Index must have a name and cannot be an empty string")}),y=u._createTableSchema(d,y,p),a[d]=y}})},zs.prototype.stores=function(u){var a=this.db,u=(this._cfg.storesSource=this._cfg.storesSource?m(this._cfg.storesSource,u):u,a._versions),d={},p={};return u.forEach(function(y){m(d,y._cfg.storesSource),p=y._cfg.dbschema={},y._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],c(p),p),a._storeNames=c(p),this},zs.prototype.upgrade=function(s){return this._cfg.contentUpgrade=fe(this._cfg.contentUpgrade||v,s),this};var af=zs;function zs(){}var yo=(()=>{var s,a,u;return typeof FinalizationRegistry<"u"&&typeof WeakRef<"u"?(s=new Set,a=new FinalizationRegistry(function(d){s.delete(d)}),{toArray:function(){return Array.from(s).map(function(d){return d.deref()}).filter(function(d){return d!==void 0})},add:function(d){var p=new WeakRef(d._novip);s.add(p),a.register(d._novip,p,p),s.size>d._options.maxConnections&&(p=s.values().next().value,s.delete(p),a.unregister(p))},remove:function(d){if(d)for(var p=s.values(),y=p.next();!y.done;){var w=y.value;if(w.deref()===d._novip)return s.delete(w),void a.unregister(w);y=p.next()}}}):(u=[],{toArray:function(){return u},add:function(d){u.push(d._novip)},remove:function(d){d&&(d=u.indexOf(d._novip))!==-1&&u.splice(d,1)}})})();function qa(s,a){var u=s._dbNamesDB;return u||(u=s._dbNamesDB=new Rn(ar,{addons:[],indexedDB:s,IDBKeyRange:a})).version(1).stores({dbnames:"name"}),u.table("dbnames")}function Ha(s){return s&&typeof s.databases=="function"}function za(s){return Jn(function(){return Ue.letThrough=!0,s()})}function Wa(s){return!("from"in s)}var zt=function(s,a){var u;if(!this)return u=new zt,s&&"d"in s&&m(u,s),u;m(this,arguments.length?{d:1,from:s,to:1<arguments.length?a:s}:{d:0})};function go(s,a,u){var d=ut(a,u);if(!isNaN(d)){if(0<d)throw RangeError();if(Wa(s))return m(s,{from:a,to:u,d:1});var d=s.l,p=s.r;if(ut(u,s.from)<0)return d?go(d,a,u):s.l={from:a,to:u,d:1,l:null,r:null},Ul(s);if(0<ut(a,s.to))return p?go(p,a,u):s.r={from:a,to:u,d:1,l:null,r:null},Ul(s);ut(a,s.from)<0&&(s.from=a,s.l=null,s.d=p?p.d+1:1),0<ut(u,s.to)&&(s.to=u,s.r=null,s.d=s.l?s.l.d+1:1),a=!s.r,d&&!s.l&&bo(s,d),p&&a&&bo(s,p)}}function bo(s,a){Wa(a)||function u(d,p){var y=p.from,w=p.l,C=p.r;go(d,y,p.to),w&&u(d,w),C&&u(d,C)}(s,a)}function Bl(s,a){var u=gr(a),d=u.next();if(!d.done)for(var p=d.value,y=gr(s),w=y.next(p.from),C=w.value;!d.done&&!w.done;){if(ut(C.from,p.to)<=0&&0<=ut(C.to,p.from))return!0;ut(p.from,C.from)<0?p=(d=u.next(C.from)).value:C=(w=y.next(p.from)).value}return!1}function gr(s){var a=Wa(s)?null:{s:0,n:s};return{next:function(u){for(var d=0<arguments.length;a;)switch(a.s){case 0:if(a.s=1,d)for(;a.n.l&&ut(u,a.n.from)<0;)a={up:a,n:a.n.l,s:1};else for(;a.n.l;)a={up:a,n:a.n.l,s:1};case 1:if(a.s=2,!d||ut(u,a.n.to)<=0)return{value:a.n,done:!1};case 2:if(a.n.r){a.s=3,a={up:a,n:a.n.r,s:0};continue}case 3:a=a.up}return{done:!0}}}}function Ul(s){var a,u,d,p=(((p=s.r)==null?void 0:p.d)||0)-(((p=s.l)==null?void 0:p.d)||0),p=1<p?"r":p<-1?"l":"";p&&(a=p=="r"?"l":"r",u=o({},s),d=s[p],s.from=d.from,s.to=d.to,s[p]=d[p],u[p]=d[a],(s[a]=u).d=ql(u)),s.d=ql(s)}function ql(u){var a=u.r,u=u.l;return(a?u?Math.max(a.d,u.d):a.d:u?u.d:0)+1}function br(s,a){return c(a).forEach(function(u){s[u]?bo(s[u],a[u]):s[u]=function d(p){var y,w,C={};for(y in p)_(p,y)&&(w=p[y],C[y]=!w||typeof w!="object"||M.has(w.constructor)?w:d(w));return C}(a[u])}),s}function Ga(s,a){return s.all||a.all||Object.keys(s).some(function(u){return a[u]&&Bl(a[u],s[u])})}P(zt.prototype,((de={add:function(s){return bo(this,s),this},addKey:function(s){return go(this,s,s),this},addKeys:function(s){var a=this;return s.forEach(function(u){return go(a,u,u)}),this},hasKey:function(s){var a=gr(this).next(s).value;return a&&ut(a.from,s)<=0&&0<=ut(a.to,s)}})[Pe]=function(){return gr(this)},de));var ws={},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 u=new Set;if(s.all)for(var d=0,p=Object.values(ws);d<p.length;d++)Hl(C=p[d],s,u,a);else for(var y in s){var w,C,y=/^idb\:\/\/(.*)\/(.*)\//.exec(y);y&&(w=y[1],y=y[2],C=ws["idb://".concat(w,"/").concat(y)])&&Hl(C,s,u,a)}u.forEach(function(K){return K()})}function Hl(s,a,u,d){for(var p=[],y=0,w=Object.entries(s.queries.query);y<w.length;y++){for(var C=w[y],K=C[0],Y=[],N=0,L=C[1];N<L.length;N++){var R=L[N];Ga(a,R.obsSet)?R.subscribers.forEach(function(q){return u.add(q)}):d&&Y.push(R)}d&&p.push([K,Y])}if(d)for(var W=0,B=p;W<B.length;W++){var V=B[W],K=V[0],Y=V[1];s.queries.query[K]=Y}}function lf(s){var a=s._state,u=s._deps.indexedDB;if(a.isBeingOpened||s.idbdb)return a.dbReadyPromise.then(function(){return a.dbOpenError?Pt(a.dbOpenError):s});a.isBeingOpened=!0,a.dbOpenError=null,a.openComplete=!1;var d=a.openCanceller,p=Math.round(10*s.verno),y=!1;function w(){if(a.openCanceller!==d)throw new Le.DatabaseClosed("db.open() was cancelled")}function C(){return new Ie(function(R,W){if(w(),!u)throw new Le.MissingAPI;var B=s.name,V=a.autoSchema||!p?u.open(B):u.open(B,p);if(!V)throw new Le.MissingAPI;V.onerror=yn(W),V.onblocked=Et(s._fireOnBlocked),V.onupgradeneeded=Et(function(q){var te;N=V.transaction,a.autoSchema&&!s._options.allowEmptyDB?(V.onerror=vo,N.abort(),V.result.close(),(te=u.deleteDatabase(B)).onsuccess=te.onerror=Et(function(){W(new Le.NoSuchDatabase("Database ".concat(B," doesnt exist")))})):(N.onerror=yn(W),te=q.oldVersion>Math.pow(2,62)?0:q.oldVersion,L=te<1,s.idbdb=V.result,y&&rf(s,N),of(s,te/10,N,W))},W),V.onsuccess=Et(function(){N=null;var q,te,Q,ae,ve,he,Ce=s.idbdb=V.result,we=ie(Ce.objectStoreNames);if(0<we.length)try{var Re=Ce.transaction((ve=we).length===1?ve[0]:ve,"readonly");if(a.autoSchema)he=Ce,ae=Re,(Q=s).verno=he.version/10,ae=Q._dbSchema=hr(0,he,ae),Q._storeNames=ie(he.objectStoreNames,0),vr(Q,[Q._allTables],c(ae),ae);else if(yr(s,s._dbSchema,Re),te=Re,((te=Ba(hr(0,(q=s).idbdb,te),q._dbSchema)).add.length||te.change.some(function(ke){return ke.add.length||ke.change.length}))&&!y)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),Ce.close(),p=Ce.version+1,y=!0,R(C());pr(s,Re)}catch{}yo.add(s),Ce.onversionchange=Et(function(ke){a.vcFired=!0,s.on("versionchange").fire(ke)}),Ce.onclose=Et(function(){s.close({disableAutoOpen:!1})}),L&&(we=s._deps,ve=B,Ha(he=we.indexedDB)||ve===ar||qa(he,we.IDBKeyRange).put({name:ve}).catch(v)),R()},W)}).catch(function(R){switch(R==null?void 0:R.name){case"UnknownError":if(0<a.PR1398_maxLoop)return a.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),C();break;case"VersionError":if(0<p)return p=0,C()}return Ie.reject(R)})}var K,Y=a.dbReadyResolve,N=null,L=!1;return Ie.race([d,(typeof navigator>"u"?Ie.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(R){function W(){return indexedDB.databases().finally(R)}K=setInterval(W,100),W()}).finally(function(){return clearInterval(K)}):Promise.resolve()).then(C)]).then(function(){return w(),a.onReadyBeingFired=[],Ie.resolve(za(function(){return s.on.ready.fire(s.vip)})).then(function R(){var W;if(0<a.onReadyBeingFired.length)return W=a.onReadyBeingFired.reduce(fe,v),a.onReadyBeingFired=[],Ie.resolve(za(function(){return W(s.vip)})).then(R)})}).finally(function(){a.openCanceller===d&&(a.onReadyBeingFired=null,a.isBeingOpened=!1)}).catch(function(R){a.dbOpenError=R;try{N&&N.abort()}catch{}return d===a.openCanceller&&s._close(),Pt(R)}).finally(function(){a.openComplete=!0,Y()}).then(function(){var R;return L&&(R={},s.tables.forEach(function(W){W.schema.indexes.forEach(function(B){B.name&&(R["idb://".concat(s.name,"/").concat(W.name,"/").concat(B.name)]=new zt(-1/0,[[[]]]))}),R["idb://".concat(s.name,"/").concat(W.name,"/")]=R["idb://".concat(s.name,"/").concat(W.name,"/:dels")]=new zt(-1/0,[[[]]])}),es(fr).fire(R),Xa(R,!0)),s})}function Qa(s){function a(y){return s.next(y)}var u=p(a),d=p(function(y){return s.throw(y)});function p(y){return function(C){var C=y(C),K=C.value;return C.done?K:K&&typeof K.then=="function"?K.then(u,d):f(K)?Promise.all(K).then(u,d):u(K)}}return p(a)()}function _r(s,a,u){for(var d=f(s)?s.slice():[s],p=0;p<u;++p)d.push(a);return d}var uf={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(s){return o(o({},s),{table:function(d){var u=s.table(d),d=u.schema,p=Object.create(null),y=[];function w(R,W,B){var Q=ho(R),V=p[Q]=p[Q]||[],q=R==null?0:typeof R=="string"?1:R.length,te=0<W,Q=o(o({},B),{name:te?"".concat(Q,"(virtual-from:").concat(B.name,")"):B.name,lowLevelIndex:B,isVirtual:te,keyTail:W,keyLength:q,extractKey:Fa(R),unique:!te&&B.unique});return V.push(Q),Q.isPrimaryKey||y.push(Q),1<q&&w(q===2?R[0]:R.slice(0,q-1),W+1,B),V.sort(function(ae,ve){return ae.keyTail-ve.keyTail}),Q}var C=w(d.primaryKey.keyPath,0,d.primaryKey);p[":id"]=[C];for(var K=0,Y=d.indexes;K<Y.length;K++){var N=Y[K];w(N.keyPath,0,N)}function L(R){var W,B=R.query.index;return B.isVirtual?o(o({},R),{query:{index:B.lowLevelIndex,range:(W=R.query.range,B=B.keyTail,{type:W.type===1?2:W.type,lower:_r(W.lower,W.lowerOpen?s.MAX_KEY:s.MIN_KEY,B),lowerOpen:!0,upper:_r(W.upper,W.upperOpen?s.MIN_KEY:s.MAX_KEY,B),upperOpen:!0})}}):R}return o(o({},u),{schema:o(o({},d),{primaryKey:C,indexes:y,getIndexByKeyPath:function(R){return(R=p[ho(R)])&&R[0]}}),count:function(R){return u.count(L(R))},query:function(R){return u.query(L(R))},openCursor:function(R){var W=R.query.index,B=W.keyTail,V=W.keyLength;return W.isVirtual?u.openCursor(L(R)).then(function(te){return te&&q(te)}):u.openCursor(R);function q(te){return Object.create(te,{continue:{value:function(Q){Q!=null?te.continue(_r(Q,R.reverse?s.MAX_KEY:s.MIN_KEY,B)):R.unique?te.continue(te.key.slice(0,V).concat(R.reverse?s.MIN_KEY:s.MAX_KEY,B)):te.continue()}},continuePrimaryKey:{value:function(Q,ae){te.continuePrimaryKey(_r(Q,s.MAX_KEY,B),ae)}},primaryKey:{get:function(){return te.primaryKey}},key:{get:function(){var Q=te.key;return V===1?Q[0]:Q.slice(0,V)}},value:{get:function(){return te.value}}})}}})}})}};function Za(s,a,u,d){return u=u||{},d=d||"",c(s).forEach(function(p){var y,w,C;_(a,p)?(y=s[p],w=a[p],typeof y=="object"&&typeof w=="object"&&y&&w?(C=ge(y))!==ge(w)?u[d+p]=a[p]:C==="Object"?Za(y,w,u,d+p+"."):y!==w&&(u[d+p]=a[p]):y!==w&&(u[d+p]=a[p])):u[d+p]=void 0}),c(a).forEach(function(p){_(s,p)||(u[d+p]=a[p])}),u}function ei(s,a){return a.type==="delete"?a.keys:a.keys||a.values.map(s.extractKey)}var cf={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(s){return o(o({},s),{table:function(a){var u=s.table(a),d=u.schema.primaryKey;return o(o({},u),{mutate:function(p){var y=Ue.trans,w=y.table(a).hook,C=w.deleting,K=w.creating,Y=w.updating;switch(p.type){case"add":if(K.fire===v)break;return y._promise("readwrite",function(){return N(p)},!0);case"put":if(K.fire===v&&Y.fire===v)break;return y._promise("readwrite",function(){return N(p)},!0);case"delete":if(C.fire===v)break;return y._promise("readwrite",function(){return N(p)},!0);case"deleteRange":if(C.fire===v)break;return y._promise("readwrite",function(){return function L(R,W,B){return u.query({trans:R,values:!1,query:{index:d,range:W},limit:B}).then(function(V){var q=V.result;return N({type:"delete",keys:q,trans:R}).then(function(te){return 0<te.numFailures?Promise.reject(te.failures[0]):q.length<B?{failures:[],numFailures:0,lastResult:void 0}:L(R,o(o({},W),{lower:q[q.length-1],lowerOpen:!0}),B)})})}(p.trans,p.range,1e4)},!0)}return u.mutate(p);function N(L){var R,W,B,V=Ue.trans,q=L.keys||ei(d,L);if(q)return(L=L.type==="add"||L.type==="put"?o(o({},L),{keys:q}):o({},L)).type!=="delete"&&(L.values=r([],L.values)),L.keys&&(L.keys=r([],L.keys)),R=u,B=q,((W=L).type==="add"?Promise.resolve([]):R.getMany({trans:W.trans,keys:B,cache:"immutable"})).then(function(te){var Q=q.map(function(ae,ve){var he,Ce,we,Re=te[ve],ke={onerror:null,onsuccess:null};return L.type==="delete"?C.fire.call(ke,ae,Re,V):L.type==="add"||Re===void 0?(he=K.fire.call(ke,ae,L.values[ve],V),ae==null&&he!=null&&(L.keys[ve]=ae=he,d.outbound||z(L.values[ve],d.keyPath,ae))):(he=Za(Re,L.values[ve]),(Ce=Y.fire.call(ke,he,ae,Re,V))&&(we=L.values[ve],Object.keys(Ce).forEach(function(Ve){_(we,Ve)?we[Ve]=Ce[Ve]:z(we,Ve,Ce[Ve])}))),ke});return u.mutate(L).then(function(ae){for(var ve=ae.failures,he=ae.results,Ce=ae.numFailures,ae=ae.lastResult,we=0;we<q.length;++we){var Re=(he||q)[we],ke=Q[we];Re==null?ke.onerror&&ke.onerror(ve[we]):ke.onsuccess&&ke.onsuccess(L.type==="put"&&te[we]?L.values[we]:Re)}return{failures:ve,results:he,numFailures:Ce,lastResult:ae}}).catch(function(ae){return Q.forEach(function(ve){return ve.onerror&&ve.onerror(ae)}),Promise.reject(ae)})});throw new Error("Keys missing")}}})}})}};function zl(s,a,u){try{if(!a||a.keys.length<s.length)return null;for(var d=[],p=0,y=0;p<a.keys.length&&y<s.length;++p)ut(a.keys[p],s[y])===0&&(d.push(u?Oe(a.values[p]):a.values[p]),++y);return d.length===s.length?d:null}catch{return null}}var df={stack:"dbcore",level:-1,create:function(s){return{table:function(a){var u=s.table(a);return o(o({},u),{getMany:function(d){var p;return d.cache?(p=zl(d.keys,d.trans._cache,d.cache==="clone"))?Ie.resolve(p):u.getMany(d).then(function(y){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Oe(y):y},y}):u.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),u.mutate(d)}})}}}};function 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 ff={stack:"dbcore",level:0,name:"Observability",create:function(s){var a=s.schema.name,u=new zt(s.MIN_KEY,s.MAX_KEY);return o(o({},s),{transaction:function(d,p,y){if(Ue.subscr&&p!=="readonly")throw new Le.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Ue.querier));return s.transaction(d,p,y)},table:function(d){function p(q){var V,q=q.query;return[V=q.index,new zt((V=(q=q.range).lower)!=null?V:s.MIN_KEY,(V=q.upper)!=null?V:s.MAX_KEY)]}var y=s.table(d),w=y.schema,C=w.primaryKey,K=w.indexes,Y=C.extractKey,N=C.outbound,L=C.autoIncrement&&K.filter(function(B){return B.compound&&B.keyPath.includes(C.keyPath)}),R=o(o({},y),{mutate:function(B){function V(me){return me="idb://".concat(a,"/").concat(d,"/").concat(me),ve[me]||(ve[me]=new zt)}var q,te,Q,ae=B.trans,ve=B.mutatedParts||(B.mutatedParts={}),he=V(""),Ce=V(":dels"),we=B.type,ke=B.type==="deleteRange"?[B.range]:B.type==="delete"?[B.keys]:B.values.length<50?[ei(C,B).filter(function(me){return me}),B.values]:[],Re=ke[0],ke=ke[1],Ve=B.trans._cache;return f(Re)?(he.addKeys(Re),(we=we==="delete"||Re.length===ke.length?zl(Re,Ve):null)||Ce.addKeys(Re),(we||ke)&&(q=V,te=we,Q=ke,w.indexes.forEach(function(me){var Xe=q(me.name||"");function Qe(lt){return lt!=null?me.extractKey(lt):null}function nt(lt){me.multiEntry&&f(lt)?lt.forEach(function(rn){return Xe.addKey(rn)}):Xe.addKey(lt)}(te||Q).forEach(function(lt,Wt){var et=te&&Qe(te[Wt]),Wt=Q&&Qe(Q[Wt]);ut(et,Wt)!==0&&(et!=null&&nt(et),Wt!=null)&&nt(Wt)})}))):Re?(ke={from:(Ve=Re.lower)!=null?Ve:s.MIN_KEY,to:(we=Re.upper)!=null?we:s.MAX_KEY},Ce.add(ke),he.add(ke)):(he.add(u),Ce.add(u),w.indexes.forEach(function(me){return V(me.name).add(u)})),y.mutate(B).then(function(me){return!Re||B.type!=="add"&&B.type!=="put"||(he.addKeys(me.results),L&&L.forEach(function(Xe){for(var Qe=B.values.map(function(et){return Xe.extractKey(et)}),nt=Xe.keyPath.findIndex(function(et){return et===C.keyPath}),lt=0,rn=me.results.length;lt<rn;++lt)Qe[lt][nt]=me.results[lt];V(Xe.name).addKeys(Qe)})),ae.mutatedParts=br(ae.mutatedParts||{},ve),me})}}),W={get:function(B){return[C,new zt(B.key)]},getMany:function(B){return[C,new zt().addKeys(B.keys)]},count:p,query:p,openCursor:p};return c(W).forEach(function(B){R[B]=function(V){var q=Ue.subscr,te=!!q,Q=Wl(Ue,y)&&Gl(B,V)?V.obsSet={}:q;if(te){var ae,q=function(ke){return ke="idb://".concat(a,"/").concat(d,"/").concat(ke),Q[ke]||(Q[ke]=new zt)},ve=q(""),he=q(":dels"),te=W[B](V),Ce=te[0],te=te[1];if((B==="query"&&Ce.isPrimaryKey&&!V.values?he:q(Ce.name||"")).add(te),!Ce.isPrimaryKey){if(B!=="count")return ae=B==="query"&&N&&V.values&&y.query(o(o({},V),{values:!1})),y[B].apply(this,arguments).then(function(ke){if(B==="query"){if(N&&V.values)return ae.then(function(Qe){return Qe=Qe.result,ve.addKeys(Qe),ke});var Ve=V.values?ke.result.map(Y):ke.result;(V.values?ve:he).addKeys(Ve)}else{var me,Xe;if(B==="openCursor")return Xe=V.values,(me=ke)&&Object.create(me,{key:{get:function(){return he.addKey(me.primaryKey),me.key}},primaryKey:{get:function(){var Qe=me.primaryKey;return he.addKey(Qe),Qe}},value:{get:function(){return Xe&&ve.addKey(me.primaryKey),me.value}}})}return ke});he.add(u)}}return y[B].apply(this,arguments)}}),R}})}};function Yl(s,a,u){var d;return u.numFailures===0?a:a.type==="deleteRange"||(d=a.keys?a.keys.length:"values"in a&&a.values?a.values.length:1,u.numFailures===d)?null:(d=o({},a),f(d.keys)&&(d.keys=d.keys.filter(function(p,y){return!(y in u.failures)})),"values"in d&&f(d.values)&&(d.values=d.values.filter(function(p,y){return!(y in u.failures)})),d)}function ti(s,a){return u=s,((d=a).lower===void 0||(d.lowerOpen?0<ut(u,d.lower):0<=ut(u,d.lower)))&&(u=s,(d=a).upper===void 0||(d.upperOpen?ut(u,d.upper)<0:ut(u,d.upper)<=0));var u,d}function Jl(s,a,u,d,p,y){var w,C,K,Y,N,L,R;return!u||u.length===0||(w=a.query.index,C=w.multiEntry,K=a.query.range,Y=d.schema.primaryKey.extractKey,N=w.extractKey,L=(w.lowLevelIndex||w).extractKey,(d=u.reduce(function(W,B){var V=W,q=[];if(B.type==="add"||B.type==="put")for(var te=new zt,Q=B.values.length-1;0<=Q;--Q){var ae,ve=B.values[Q],he=Y(ve);!te.hasKey(he)&&(ae=N(ve),C&&f(ae)?ae.some(function(Ve){return ti(Ve,K)}):ti(ae,K))&&(te.addKey(he),q.push(ve))}switch(B.type){case"add":var Ce=new zt().addKeys(a.values?W.map(function(me){return Y(me)}):W),V=W.concat(a.values?q.filter(function(me){return me=Y(me),!Ce.hasKey(me)&&(Ce.addKey(me),!0)}):q.map(function(me){return Y(me)}).filter(function(me){return!Ce.hasKey(me)&&(Ce.addKey(me),!0)}));break;case"put":var we=new zt().addKeys(B.values.map(function(me){return Y(me)}));V=W.filter(function(me){return!we.hasKey(a.values?Y(me):me)}).concat(a.values?q:q.map(function(me){return Y(me)}));break;case"delete":var Re=new zt().addKeys(B.keys);V=W.filter(function(me){return!Re.hasKey(a.values?Y(me):me)});break;case"deleteRange":var ke=B.range;V=W.filter(function(me){return!ti(Y(me),ke)})}return V},s))===s)?s:(R=function(W,B){return ut(L(W),L(B))||ut(Y(W),Y(B))},d.sort(a.direction==="prev"||a.direction==="prevunique"?function(W,B){return R(B,W)}:R),a.limit&&a.limit<1/0&&(d.length>a.limit?d.length=a.limit:s.length===a.limit&&d.length<a.limit&&(p.dirty=!0)),y?Object.freeze(d):d)}function Xl(s,a){return ut(s.lower,a.lower)===0&&ut(s.upper,a.upper)===0&&!!s.lowerOpen==!!a.lowerOpen&&!!s.upperOpen==!!a.upperOpen}function pf(s,a){return((u,d,p,y)=>{if(u===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((u=ut(u,d))===0){if(p&&y)return 0;if(p)return 1;if(y)return-1}return u})(s.lower,a.lower,s.lowerOpen,a.lowerOpen)<=0&&0<=((u,d,p,y)=>{if(u===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((u=ut(u,d))===0){if(p&&y)return 0;if(p)return-1;if(y)return 1}return u})(s.upper,a.upper,s.upperOpen,a.upperOpen)}function vf(s,a,u,d){s.subscribers.add(u),d.addEventListener("abort",function(){var p,y;s.subscribers.delete(u),s.subscribers.size===0&&(p=s,y=a,setTimeout(function(){p.subscribers.size===0&&Fe(y,p)},3e3))})}var mf={stack:"dbcore",level:0,name:"Cache",create:function(s){var a=s.schema.name;return o(o({},s),{transaction:function(u,d,p){var y,w,C=s.transaction(u,d,p);return d==="readwrite"&&(p=(y=new AbortController).signal,C.addEventListener("abort",(w=function(K){return function(){if(y.abort(),d==="readwrite"){for(var Y=new Set,N=0,L=u;N<L.length;N++){var R=L[N],W=ws["idb://".concat(a,"/").concat(R)];if(W){var B=s.table(R),V=W.optimisticOps.filter(function(me){return me.trans===C});if(C._explicit&&K&&C.mutatedParts)for(var q=0,te=Object.values(W.queries.query);q<te.length;q++)for(var Q=0,ae=(Ce=te[q]).slice();Q<ae.length;Q++)Ga((we=ae[Q]).obsSet,C.mutatedParts)&&(Fe(Ce,we),we.subscribers.forEach(function(me){return Y.add(me)}));else if(0<V.length){W.optimisticOps=W.optimisticOps.filter(function(me){return me.trans!==C});for(var ve=0,he=Object.values(W.queries.query);ve<he.length;ve++)for(var Ce,we,Re,ke=0,Ve=(Ce=he[ve]).slice();ke<Ve.length;ke++)(we=Ve[ke]).res!=null&&C.mutatedParts&&(K&&!we.dirty?(Re=Object.isFrozen(we.res),Re=Jl(we.res,we.req,V,B,we,Re),we.dirty?(Fe(Ce,we),we.subscribers.forEach(function(me){return Y.add(me)})):Re!==we.res&&(we.res=Re,we.promise=Ie.resolve({result:Re}))):(we.dirty&&Fe(Ce,we),we.subscribers.forEach(function(me){return Y.add(me)})))}}}Y.forEach(function(me){return me()})}}})(!1),{signal:p}),C.addEventListener("error",w(!1),{signal:p}),C.addEventListener("complete",w(!0),{signal:p})),C},table:function(u){var d=s.table(u),p=d.schema.primaryKey;return o(o({},d),{mutate:function(y){var w,C=Ue.trans;return!p.outbound&&C.db._options.cache!=="disabled"&&!C.explicit&&C.idbtrans.mode==="readwrite"&&(w=ws["idb://".concat(a,"/").concat(u)])?(C=d.mutate(y),y.type!=="add"&&y.type!=="put"||!(50<=y.values.length||ei(p,y).some(function(K){return K==null}))?(w.optimisticOps.push(y),y.mutatedParts&&wr(y.mutatedParts),C.then(function(K){0<K.numFailures&&(Fe(w.optimisticOps,y),(K=Yl(0,y,K))&&w.optimisticOps.push(K),y.mutatedParts)&&wr(y.mutatedParts)}),C.catch(function(){Fe(w.optimisticOps,y),y.mutatedParts&&wr(y.mutatedParts)})):C.then(function(K){var Y=Yl(0,o(o({},y),{values:y.values.map(function(N,L){var R;return K.failures[L]?N:(z(R=(R=p.keyPath)!=null&&R.includes(".")?Oe(N):o({},N),p.keyPath,K.results[L]),R)})}),K);w.optimisticOps.push(Y),queueMicrotask(function(){return y.mutatedParts&&wr(y.mutatedParts)})}),C):d.mutate(y)},query:function(y){var w,C,K,Y,N,L,R;return Wl(Ue,d)&&Gl("query",y)?(w=((K=Ue.trans)==null?void 0:K.db._options.cache)==="immutable",C=(K=Ue).requery,K=K.signal,L=((W,B,V,q)=>{var te=ws["idb://".concat(W,"/").concat(B)];if(!te)return[];if(!(W=te.queries[V]))return[null,!1,te,null];var Q=W[(q.query?q.query.index.name:null)||""];if(!Q)return[null,!1,te,null];switch(V){case"query":var ae=(ve=q.direction)!=null?ve:"next",ve=Q.find(function(he){var Ce;return he.req.limit===q.limit&&he.req.values===q.values&&((Ce=he.req.direction)!=null?Ce:"next")===ae&&Xl(he.req.query.range,q.query.range)});return ve?[ve,!0,te,Q]:[Q.find(function(he){var Ce;return("limit"in he.req?he.req.limit:1/0)>=q.limit&&((Ce=he.req.direction)!=null?Ce:"next")===ae&&(!q.values||he.req.values)&&pf(he.req.query.range,q.query.range)}),!1,te,Q];case"count":return ve=Q.find(function(he){return Xl(he.req.query.range,q.query.range)}),[ve,!!ve,te,Q]}})(a,u,"query",y),R=L[0],Y=L[2],N=L[3],R&&L[1]?R.obsSet=y.obsSet:(L=d.query(y).then(function(W){var B=W.result;if(R&&(R.res=B),w){for(var V=0,q=B.length;V<q;++V)Object.freeze(B[V]);Object.freeze(B)}return W}).catch(function(W){return N&&R&&Fe(N,R),Promise.reject(W)}),R={obsSet:y.obsSet,promise:L,subscribers:new Set,type:"query",req:y,dirty:!1},N?N.push(R):(N=[R],(Y=Y||(ws["idb://".concat(a,"/").concat(u)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[y.query.index.name||""]=N)),vf(R,N,C,K),R.promise.then(function(W){return W=Jl(W.result,y,Y==null?void 0:Y.optimisticOps,d,R,w),{result:w?W:Oe(W)}})):d.query(y)}})}})}};function kr(s,a){return new Proxy(s,{get:function(u,d,p){return d==="db"?a:Reflect.get(u,d,p)}})}Ot.prototype.version=function(s){if(isNaN(s)||s<.1)throw new Le.Type("Given version is not a positive number");if(s=Math.round(10*s)/10,this.idbdb||this._state.isBeingOpened)throw new Le.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,s);var a=this._versions,u=a.filter(function(d){return d._cfg.version===s})[0];return u||(u=new this.Version(s),a.push(u),a.sort(sf),u.stores({}),this._state.autoSchema=!1),u},Ot.prototype._whenReady=function(s){var a=this;return this.idbdb&&(this._state.openComplete||Ue.letThrough||this._vip)?s():new Ie(function(u,d){if(a._state.openComplete)return d(new Le.DatabaseClosed(a._state.dbOpenError));if(!a._state.isBeingOpened){if(!a._state.autoOpen)return void d(new Le.DatabaseClosed);a.open().catch(v)}a._state.dbReadyPromise.then(u,d)}).then(s)},Ot.prototype.use=function(p){var a=p.stack,u=p.create,d=p.level,p=p.name,y=(p&&this.unuse({stack:a,name:p}),this._middlewares[a]||(this._middlewares[a]=[]));return y.push({stack:a,create:u,level:d??10,name:p}),y.sort(function(w,C){return w.level-C.level}),this},Ot.prototype.unuse=function(s){var a=s.stack,u=s.name,d=s.create;return a&&this._middlewares[a]&&(this._middlewares[a]=this._middlewares[a].filter(function(p){return d?p.create!==d:!!u&&p.name!==u})),this},Ot.prototype.open=function(){var s=this;return ys(Lt,function(){return lf(s)})},Ot.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var s=this._state;if(yo.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}s.isBeingOpened||(s.dbReadyPromise=new Ie(function(a){s.dbReadyResolve=a}),s.openCanceller=new Ie(function(a,u){s.cancelOpen=u}))},Ot.prototype.close=function(a){var a=(a===void 0?{disableAutoOpen:!0}:a).disableAutoOpen,u=this._state;a?(u.isBeingOpened&&u.cancelOpen(new Le.DatabaseClosed),this._close(),u.autoOpen=!1,u.dbOpenError=new Le.DatabaseClosed):(this._close(),u.autoOpen=this._options.autoOpen||u.isBeingOpened,u.openComplete=!1,u.dbOpenError=null)},Ot.prototype.delete=function(s){var a=this,u=(s===void 0&&(s={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),d=this._state;return new Ie(function(p,y){function w(){a.close(s);var C=a._deps.indexedDB.deleteDatabase(a.name);C.onsuccess=Et(function(){var K,Y,N;K=a._deps,Y=a.name,Ha(N=K.indexedDB)||Y===ar||qa(N,K.IDBKeyRange).delete(Y).catch(v),p()}),C.onerror=yn(y),C.onblocked=a._fireOnBlocked}if(u)throw new Le.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(w):w()})},Ot.prototype.backendDB=function(){return this.idbdb},Ot.prototype.isOpen=function(){return this.idbdb!==null},Ot.prototype.hasBeenClosed=function(){var s=this._state.dbOpenError;return s&&s.name==="DatabaseClosed"},Ot.prototype.hasFailed=function(){return this._state.dbOpenError!==null},Ot.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(Ot.prototype,"tables",{get:function(){var s=this;return c(this._allTables).map(function(a){return s._allTables[a]})},enumerable:!1,configurable:!0}),Ot.prototype.transaction=function(){var s=(function(a,u,d){var p=arguments.length;if(p<2)throw new Le.InvalidArgument("Too few arguments");for(var y=new Array(p-1);--p;)y[p-1]=arguments[p];return d=y.pop(),[a,T(y),d]}).apply(this,arguments);return this._transaction.apply(this,s)},Ot.prototype._transaction=function(s,a,u){var d,p,y=this,w=Ue.trans,C=(w&&w.db===this&&s.indexOf("!")===-1||(w=null),s.indexOf("?")!==-1);s=s.replace("!","").replace("?","");try{if(p=a.map(function(Y){if(Y=Y instanceof y.Table?Y.name:Y,typeof Y!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return Y}),s=="r"||s===Ia)d=Ia;else{if(s!="rw"&&s!=ja)throw new Le.InvalidArgument("Invalid transaction mode: "+s);d=ja}if(w){if(w.mode===Ia&&d===ja){if(!C)throw new Le.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");w=null}w&&p.forEach(function(Y){if(w&&w.storeNames.indexOf(Y)===-1){if(!C)throw new Le.SubTransaction("Table "+Y+" not included in parent transaction.");w=null}}),C&&w&&!w.active&&(w=null)}}catch(Y){return w?w._promise(null,function(N,L){L(Y)}):Pt(Y)}var K=(function Y(N,L,R,W,B){return Ie.resolve().then(function(){var Q=Ue.transless||Ue,V=N._createTransaction(L,R,N._dbSchema,W),Q=(V.explicit=!0,{trans:V,transless:Q});if(W)V.idbtrans=W.idbtrans;else try{V.create(),V.idbtrans._explicit=!0,N._state.PR1398_maxLoop=3}catch(ae){return ae.name===xt.InvalidState&&N.isOpen()&&0<--N._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),N.close({disableAutoOpen:!1}),N.open().then(function(){return Y(N,L,R,null,B)})):Pt(ae)}var q,te=ze(B),Q=(te&&Us(),Ie.follow(function(){var ae;(q=B.call(V,V))&&(te?(ae=Xn.bind(null,null),q.then(ae,ae)):typeof q.next=="function"&&typeof q.throw=="function"&&(q=Qa(q)))},Q));return(q&&typeof q.then=="function"?Ie.resolve(q).then(function(ae){return V.active?ae:Pt(new Le.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):Q.then(function(){return q})).then(function(ae){return W&&V._resolve(),V._completion.then(function(){return ae})}).catch(function(ae){return V._reject(ae),Pt(ae)})})}).bind(null,this,d,p,w,u);return w?w._promise(d,K,"lock"):Ue.trans?ys(Ue.transless,function(){return y._whenReady(K)}):this._whenReady(K)},Ot.prototype.table=function(s){if(_(this._allTables,s))return this._allTables[s];throw new Le.InvalidTable("Table ".concat(s," does not exist"))};var Rn=Ot;function Ot(s,a){var u,d,p,y,w,C=this,K=(this._middlewares={},this.verno=0,Ot.dependencies),K=(this._options=a=o({addons:Ot.addons,autoOpen:!0,indexedDB:K.indexedDB,IDBKeyRange:K.IDBKeyRange,cache:"cloned",maxConnections:1e3},a),this._deps={indexedDB:a.indexedDB,IDBKeyRange:a.IDBKeyRange},a.addons),Y=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:v,dbReadyPromise:null,cancelOpen:v,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:a.autoOpen}),N=(Y.dbReadyPromise=new Ie(function(L){Y.dbReadyResolve=L}),Y.openCanceller=new Ie(function(L,R){Y.cancelOpen=R}),this._state=Y,this.name=s,this.on=fo(this,"populate","blocked","versionchange","close",{ready:[fe,v]}),this.once=function(L,R){var W=function(){for(var B=[],V=0;V<arguments.length;V++)B[V]=arguments[V];C.on(L).unsubscribe(W),R.apply(C,B)};return C.on(L,W)},this.on.ready.subscribe=U(this.on.ready.subscribe,function(L){return function(R,W){Ot.vip(function(){var B,V=C._state;V.openComplete?(V.dbOpenError||Ie.resolve().then(R),W&&L(R)):V.onReadyBeingFired?(V.onReadyBeingFired.push(R),W&&L(R)):(L(R),B=C,W||L(function q(){B.on.ready.unsubscribe(R),B.on.ready.unsubscribe(q)}))})}}),this.Collection=(u=this,po(Jd.prototype,function(q,V){this.db=u;var W=Sl,B=null;if(V)try{W=V()}catch(Q){B=Q}var V=q._ctx,q=V.table,te=q.hook.reading.fire;this._ctx={table:q,index:V.index,isPrimKey:!V.index||q.schema.primKey.keyPath&&V.index===q.schema.primKey.name,range:W,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:B,or:V.or,valueMapper:te!==b?te:null}})),this.Table=(d=this,po(Ml.prototype,function(L,R,W){this.db=d,this._tx=W,this.name=L,this.schema=R,this.hook=d._allTables[L]?d._allTables[L].hook:fo(null,{creating:[ce,v],reading:[E,b],updating:[be,v],deleting:[xe,v]})})),this.Transaction=(p=this,po(Zd.prototype,function(L,R,W,B,V){var q=this;L!=="readonly"&&R.forEach(function(te){te=(te=W[te])==null?void 0:te.yProps,te&&(R=R.concat(te.map(function(Q){return Q.updatesTable})))}),this.db=p,this.mode=L,this.storeNames=R,this.schema=W,this.chromeTransactionDurability=B,this.idbtrans=null,this.on=fo(this,"complete","error","abort"),this.parent=V||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new Ie(function(te,Q){q._resolve=te,q._reject=Q}),this._completion.then(function(){q.active=!1,q.on.complete.fire()},function(te){var Q=q.active;return q.active=!1,q.on.error.fire(te),q.parent?q.parent._reject(te):Q&&q.idbtrans&&q.idbtrans.abort(),Pt(te)})})),this.Version=(y=this,po(af.prototype,function(L){this.db=y,this._cfg={version:L,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(w=this,po(Kl.prototype,function(L,R,W){if(this.db=w,this._ctx={table:L,index:R===":id"?null:R,or:W},this._cmp=this._ascending=ut,this._descending=function(B,V){return ut(V,B)},this._max=function(B,V){return 0<ut(B,V)?B:V},this._min=function(B,V){return ut(B,V)<0?B:V},this._IDBKeyRange=w._deps.IDBKeyRange,!this._IDBKeyRange)throw new Le.MissingAPI})),this.on("versionchange",function(L){0<L.newVersion?console.warn("Another connection wants to upgrade database '".concat(C.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(C.name,"'. Closing db now to resume the delete request.")),C.close({disableAutoOpen:!1})}),this.on("blocked",function(L){!L.newVersion||L.newVersion<L.oldVersion?console.warn("Dexie.delete('".concat(C.name,"') was blocked")):console.warn("Upgrade '".concat(C.name,"' blocked by other connection holding version ").concat(L.oldVersion/10))}),this._maxKey=mo(a.IDBKeyRange),this._createTransaction=function(L,R,W,B){return new C.Transaction(L,R,W,C._options.chromeTransactionDurability,B)},this._fireOnBlocked=function(L){C.on("blocked").fire(L),yo.toArray().filter(function(R){return R.name===C.name&&R!==C&&!R._state.vcFired}).map(function(R){return R.on("versionchange").fire(L)})},this.use(df),this.use(mf),this.use(ff),this.use(uf),this.use(cf),new Proxy(this,{get:function(L,R,W){var B;return R==="_vip"||(R==="table"?function(V){return kr(C.table(V),N)}:(B=Reflect.get(L,R,W))instanceof Ml?kr(B,N):R==="tables"?B.map(function(V){return kr(V,N)}):R==="_createTransaction"?function(){return kr(B.apply(this,arguments),N)}:B)}}));this.vip=N,K.forEach(function(L){return L(C)})}var Cr,Ws=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",hf=(ni.prototype.subscribe=function(s,a,u){return this._subscribe(s&&typeof s!="function"?s:{next:s,error:a,complete:u})},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,u=!1,d=new hf(function(p){var y=ze(s),w,C=!1,K={},Y={},N={get closed(){return C},unsubscribe:function(){C||(C=!0,w&&w.abort(),L&&es.storagemutated.unsubscribe(B))}},L=(p.start&&p.start(N),!1),R=function(){return Ma(V)};function W(){return Ga(Y,K)}var B=function(q){br(K,q),W()&&R()},V=function(){var q,te,Q;!C&&Cr.indexedDB&&(K={},q={},w&&w.abort(),w=new AbortController,Q=(ae=>{var ve=Vs();try{y&&Us();var he=Jn(s,ae);return he=y?he.finally(Xn):he}finally{ve&&Bs()}})(te={subscr:q,signal:w.signal,requery:R,querier:s,trans:null}),L||(es.storagemutated.subscribe(B),L=!0),Promise.resolve(Q).then(function(ae){u=!0,a=ae,C||te.signal.aborted||(W()||(Y=q,W())?R():(K={},Ma(function(){return!C&&p.next&&p.next(ae)})))},function(ae){u=!1,["DatabaseClosedError","AbortError"].includes(ae==null?void 0:ae.name)||C||Ma(function(){C||p.error&&p.error(ae)})}))};return setTimeout(R,0),N});return d.hasValue=function(){return u},d.getValue=function(){return a},d}var _s=Rn;function si(s){var a=ts;try{ts=!0,es.storagemutated.fire(s),Xa(s,!0)}finally{ts=a}}P(_s,o(o({},re),{delete:function(s){return new _s(s,{addons:[]}).delete()},exists:function(s){return new _s(s,{addons:[]}).open().then(function(a){return a.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(s){try{return a=_s.dependencies,u=a.indexedDB,a=a.IDBKeyRange,(Ha(u)?Promise.resolve(u.databases()).then(function(d){return d.map(function(p){return p.name}).filter(function(p){return p!==ar})}):qa(u,a).toCollection().primaryKeys()).then(s)}catch{return Pt(new Le.MissingAPI)}var a,u},defineClass:function(){return function(s){m(this,s)}},ignoreTransaction:function(s){return Ue.trans?ys(Ue.transless||Lt,s):s()},vip:za,async:function(s){return function(){try{var a=Qa(s.apply(this,arguments));return a&&typeof a.then=="function"?a:Ie.resolve(a)}catch(u){return Pt(u)}}},spawn:function(s,a,u){try{var d=Qa(s.apply(u,a||[]));return d&&typeof d.then=="function"?d:Ie.resolve(d)}catch(p){return Pt(p)}},currentTransaction:{get:function(){return Ue.trans||null}},waitFor:function(s,a){return s=Ie.resolve(typeof s=="function"?_s.ignoreTransaction(s):s).timeout(a||6e4),Ue.trans?Ue.trans.waitFor(s):s},Promise:Ie,debug:{get:function(){return Ke},set:function(s){Te(s)}},derive:H,extend:m,props:P,override:U,Events:fo,on:es,liveQuery:Ql,extendObservabilitySet:br,getByKeyPath:ee,setByKeyPath:z,delByKeyPath:function(s,a){typeof a=="string"?z(s,a,void 0):"length"in a&&[].map.call(a,function(u){z(s,u,void 0)})},shallowClone:ne,deepClone:Oe,getObjectDiff:Za,cmp:ut,asap:D,minKey:-1/0,addons:[],connections:{get:yo.toArray},errnames:xt,dependencies:Cr,cache:ws,semVer:"4.4.6",version:"4.4.6".split(".").map(function(s){return parseInt(s)}).reduce(function(s,a,u){return s+a/Math.pow(10,2*u)})})),_s.maxKey=mo(_s.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(es(fr,function(s){ts||(s=new CustomEvent(Ka,{detail:s}),ts=!0,dispatchEvent(s),ts=!1)}),addEventListener(Ka,function(s){s=s.detail,ts||si(s)}));var Gs,ts=!1,Zl=function(){};return typeof BroadcastChannel<"u"&&((Zl=function(){(Gs=new BroadcastChannel(Ka)).onmessage=function(s){return s.data&&si(s.data)}})(),typeof Gs.unref=="function"&&Gs.unref(),es(fr,function(s){ts||Gs.postMessage(s)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(s){if(!Rn.disableBfCache&&s.persisted){Ke&&console.debug("Dexie: handling persisted pagehide"),Gs!=null&&Gs.close();for(var a=0,u=yo.toArray();a<u.length;a++)u[a].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(s){!Rn.disableBfCache&&s.persisted&&(Ke&&console.debug("Dexie: handling persisted pageshow"),Zl(),si({all:new zt(-1/0,[[]])}))})),Ie.rejectionMapper=function(s,a){return!s||s instanceof $e||s instanceof TypeError||s instanceof SyntaxError||!s.name||!k[s.name]?s:(a=new k[s.name](a||s.message,s),"stack"in s&&I(a,"stack",{get:function(){return this.inner.stack}}),a)},Te(Ke),o(Rn,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Rn,Entity:El,PropModification:co,RangeSet:zt,add:function(s){return new co({add:s})},cmp:ut,default:Rn,liveQuery:Ql,mergeRanges:bo,rangesOverlap:Bl,remove:function(s){return new co({remove:s})},replacePrefix:function(s,a){return new co({replacePrefix:[s,a]})}}),{default:Rn}),Rn})})(yd);var fm=yd.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:j$,rangesOverlap:D$,RangeSet:L$,cmp:K$,Entity:R$,PropModification:N$,replacePrefix:F$,add:V$,remove:B$,DexieYProvider:U$}=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 se;function mm(e){se=e}function pl(){se&&se.close(),se=void 0}const hm=6,Bu=["公司","客户现场","出差","居家办公"],ym={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};function Uo(e){return ym[e]||e}function Mo(e){return e<10?"0"+e:String(e)}function ls(e){return e.getFullYear()+"-"+Mo(e.getMonth()+1)+"-"+Mo(e.getDate())}function it(){return ls(new Date)}function mt(){const e=new Date;return ls(e)+"T"+Mo(e.getHours())+":"+Mo(e.getMinutes())+":"+Mo(e.getSeconds())}function zn(e){if(!e)return"--:--";const t=e.indexOf("T");return t>=0?e.slice(t+1,t+6):e.slice(0,5)}function Rs(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}function Ft(e,t){const n=Rs(e);return n.setDate(n.getDate()+t),ls(n)}function qo(e,t){const n=Rs(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)),ls(n)}function Zs(e){const t=Rs(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),ls(t)}function gm(e){const t=Rs(e).getDay();return t===0||t===6}function bm(e,t){return Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)}function gd(e){const t=Rs(e),n=["周日","周一","周二","周三","周四","周五","周六"];return t.getFullYear()+" 年 "+(t.getMonth()+1)+" 月 "+t.getDate()+" 日 "+n[t.getDay()]}const wm=15e4;function Ki(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 Ri(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 Ki(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:Ri(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 Ki(n.buffer)+":"+Ki(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:Ri(n[0])},e,Ri(n[1]));return new TextDecoder().decode(o)}async function vl(){await Ad()}const bd="intern-log-vault-verify",oo="enc:v1:";let Ls=null;function km(){return Ls!==null}function sa(){Ls=null}async function wd(){return await $t("pwd_salt","")!==""}async function Cm(e){if(e.length<6)throw new Error("主密码至少 6 位");if(await wd())throw new Error("主密码已设置");const t=_m(),n=await ta(e,t),o=await na(n,bd);await Kt("pwd_salt",t),await Kt("pwd_verifier",o),Ls=n}async function xm(e){const t=await $t("pwd_salt","");if(!t)throw new Error("主密码尚未设置");const n=await ta(e,t),o=await $t("pwd_verifier","");try{await xa(n,o)}catch{throw new Error("主密码不正确")}Ls=n}async function _d(){if(!Ls)throw new Error("密码库未解锁");return Ls}async function $m(e){const t=await _d();return oo+await na(t,e)}async function Sm(e){if(!e)return"";if(!e.startsWith(oo))return e;const t=await _d();return xa(t,e.slice(oo.length))}async function Em(){return se.credential.orderBy("system").toArray()}async function Tm(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 se.credential.update(t,{...o,updated_at:mt()}):await se.credential.add({...o,created_at:mt(),updated_at:mt()}),await vl()}async function Am(e){await se.credential.delete(e),await vl()}async function gi(e){const t=await se.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 $t("pwd_salt","");if(!n)throw new Error("密码库尚未初始化");const o=await ta(e,n),r=await $t("pwd_verifier","");try{await xa(o,r)}catch{throw new Error("旧主密码不正确")}const l=await ta(t,n),c=await se.credential.toArray();let f=0;for(const m of c){if(m.id==null)continue;const g=await Om(m.password,o),h=oo+await na(l,g);await se.credential.update(m.id,{password:h}),f++}return await Kt("pwd_verifier",await na(l,bd)),Ls=l,await vl(),f}async function Om(e,t){return e?e.startsWith(oo)?xa(t,e.slice(oo.length)):e:""}const Mm="https://daywk.linyux.cn",Im="dsh_sync_base",Ni="dsh_sync_token";function kd(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 kd(Im)||Mm}function $a(){const e=kd(Ni);if(!e)return"";try{return e}catch{return""}}function Ho(e){e?jm(Ni,e):Dm(Ni)}const Lm="intern_worklog",ml="dsh_session_user";function zo(){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 Km(e){localStorage.setItem(ml,JSON.stringify(e))}function Cd(){localStorage.removeItem(ml)}const hl="dsh_cloud_creds";function xd(e,t){localStorage.setItem(hl,JSON.stringify({username:e,password:t}))}function pn(){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 Rm(){localStorage.removeItem(hl)}let oa=null;function ra(e){oa===e&&se||(se&&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 c=l&&l.error||"服务返回 "+r.status;throw e==="register"&&r.status===409?new Error("云端已有同名账号且密码一致,直接登录即可"):new Error(String(c))}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 Km(r),xd(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=pn();if(!e)return null;try{return await yl(e.username,e.password,"login")}catch{return null}}async function Um(){sa(),pl(),oa=null,Cd()}function qm(){sa(),pl(),oa=null,Cd(),Rm()}async function Hm(e,t){if(!zo())throw new Error("未登录");if(t.length<6)throw new Error("新密码至少 6 位");const o=pn();if(!o||o.password!==e)throw new Error("旧密码不正确");const r=await Ns();let l;try{l=await fetch(r+"/api/auth/password",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+$d()},body:JSON.stringify({oldPassword:e,newPassword:t})})}catch{throw new Error("无法连接同步服务器")}if(!l.ok){const c=await l.json().catch(()=>({}));throw new Error(c&&c.error||"修改失败 "+l.status)}xd(o.username,t)}async function zm(){if(!zo())throw new Error("未登录");const t=await Ns();let n;try{n=await fetch(t+"/api/auth/delete",{method:"POST",headers:{Authorization:"Bearer "+$d()}})}catch{throw new Error("无法连接同步服务器")}if(!n.ok){const o=await n.json().catch(()=>({}));throw new Error(o&&o.error||"删除失败 "+n.status)}qm()}function $d(){return $a()}const Fi=O(null),Vi=O(null),Jo=O(0);function Es(){Jo.value++}const Sd=O(0);function Wm(){Sd.value++}const eo=O(""),ro=["project","work_log","log_item","attendance","weekly_note","setting","memo","credential","goal","transaction","plan"],Xs=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);function Lr(e){return JSON.stringify(e)}async function Gm(e){return se.table(e).toArray()}function Kr(e,t){return e==="setting"?t.key:t.id}async function Ym(){for(const e of ro){const t=se.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(Kr(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 pn()!=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 Ed(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 Ed(e,t),Ho(n),n)}async function Td(){const e=pn();if(!e)throw new Error("未登录");const t=await Ns(),n=await fetch(t+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e.username,password:e.password})});if(!n.ok)throw new Error("云端账号校验失败:"+n.status)}async function Bi(){const e=pn();if(!e)throw new Error("未登录,无法同步");return Md({baseUrl:await Ns(),username:e.username,password:e.password})}async function Ad(){try{await Bi()}catch(e){eo.value=e instanceof Error?e.message:String(e);try{await Bi()}catch{}}}function Pd(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 Od(){const e=await se.work_log.toArray(),t=await se.project.toArray(),n=await se.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 Io=!1,Rr=!1,Ui=!1,to=null,En=null,qi="",Hi=!1,Nr=null;async function no(){if(Io){Rr=!0;return}try{if(!await Xm())return;await Md(await th()),eo.value=""}catch(e){eo.value=e instanceof Error?e.message:String(e)}}async function th(){const e=pn();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 ro)t[n]=await se.table(n).count();return t}).subscribe({next:()=>{Ui||Io||(to&&globalThis.clearTimeout(to),to=globalThis.setTimeout(()=>{no()},3e3))},error:()=>{}})}function sh(){Nr&&(Nr.unsubscribe(),Nr=null),En&&(En.close(),En=null,qi=""),to&&(globalThis.clearTimeout(to),to=null),Hi=!1}function oh(e,t){const n=e+"|"+t;if(!(En&&qi===n)){En&&(En.close(),En=null);try{En=new EventSource(e+"/api/events?token="+encodeURIComponent(t)),qi=n,En.onmessage=()=>{no()}}catch{En=null}}}async function Md(e){if(Io)return Rr=!0,{pushed:0,pulled:0,removed:0,errors:0,at:""};Io=!0,Ui=!0;try{const t=await zi(e);return Rr&&(Rr=!1,globalThis.setTimeout(()=>{no()},800)),t}finally{Io=!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 Od(),r=await se.sync_mirror.toArray(),l=new Map;for(const z of r)l.set(z.table+"|"+z.uuid,z);const c={},f=[];let m=0;for(const z of ro){let ne=await Gm(z);z==="setting"&&(ne=ne.filter(T=>!Xs.has(T.key)));const j=new Map;for(const T of ne)j.set(T.uuid,T);for(const[T,M]of j){const Z=Pd(z,M,o),Oe=Lr(Z),Se=l.get(z+"|"+T);(!Se||Se.hash!==Oe)&&(c[z]=c[z]||[],c[z].push(Z),m++)}for(const[T,M]of l)T.startsWith(z+"|")&&!j.has(M.uuid)&&f.push({table:z,uuid:M.uuid,deleted_at:mt()});c[z]=c[z]||[]}f.push(...uh());const g=await eh(n,e),h=z=>fetch(n+"/api/sync",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+z},body:JSON.stringify({device:"client",tables:c,tombstones:f})});let _=await h(g);if(_.status===401){Ho("");const z=await Ed(n,e);Ho(z),_=await h(z)}if(!_.ok)throw new Error("同步服务返回 "+_.status);const P=await _.json(),x=String(P.dataEpoch||""),I="dsh_sync_epoch_"+(((ee=pn())==null?void 0:ee.username)||"anon"),H=x?localStorage.getItem(I):null;if(!t&&H&&x&&H!==x)return await se.sync_mirror.clear(),localStorage.setItem(I,x),zi(e,!0);const oe=P.tables||{},le=P.tombstones||[],ie=ro.reduce((z,ne)=>z+(oe[ne]||[]).length,0),U=r.length-f.length;if(!t&&ie<U)return await se.sync_mirror.clear(),zi(e,!0);const S=await ih(oe,le);oh(n,$a()||g);const D=mt();return await Zm(D),x&&localStorage.setItem(I,x),(S.changed>0||S.removed>0||m>0)&&Es(),{pushed:m,pulled:S.changed,removed:S.removed,errors:0,at:D}}function Id(){var t;return"dsh_idmap_"+(((t=pn())==null?void 0:t.username)||"anon")}function rh(){try{const e=localStorage.getItem(Id());if(e)return JSON.parse(e)}catch{}return{}}function ah(e){try{localStorage.setItem(Id(),JSON.stringify(e))}catch{}}async function ih(e,t){const n=rh(),o=new Set(t.map(x=>x.table+"|"+x.uuid)),r=new Map;for(const x of await se.sync_mirror.toArray())r.set(x.table+"|"+x.uuid,x);const l=new Set(Array.from(r.keys()).map(x=>x.split("|")[1]));let c=0,f=0;const m={},g={},h={};for(const x of ro){const I=se.table(x),H=await I.toArray(),oe=new Map(H.map(T=>[Kr(x,T),T])),le=new Map(H.filter(T=>T.uuid).map(T=>[T.uuid,T])),ie=(e[x]||[]).filter(T=>T&&typeof T=="object"&&T.uuid).filter(T=>!o.has(x+"|"+T.uuid)),U=ie.filter(T=>!(x==="setting"&&Xs.has(T.key))),S=ie.filter(T=>x==="setting"&&Xs.has(T.key));for(const T of S)lh(x,T.uuid);const D=x==="setting"?[]:H.filter(T=>T.uuid&&!l.has(T.uuid)&&!o.has(x+"|"+T.uuid)),ee={v:Math.max(0,...H.map(T=>Number(T.id)||0))};U.length;const z=[];for(const T of U){const M={...T};if(x==="log_item"){const Se=M.wuuid?m[M.wuuid]:void 0;if(!Se)continue;M.work_log_id=Se,delete M.wuuid,M.project_id=M.puuid?g[M.puuid]??null:null,delete M.puuid}if(x==="plan")if(M.guuid){const Se=h[M.guuid];M.goal_id=Se??null,delete M.guuid}else M.goal_id=null;let Z=Kr(x,T);if(x==="setting")Z=T.key;else{const Se=n[x]&&n[x][T.uuid],ge=le.get(T.uuid);ge&&ge.id!=null?Z=ge.id:typeof Se=="number"?Z=Se:Z=++ee.v}const Oe={...M,id:Z};x==="setting"&&Xs.has(Oe.key)||(z.push(Oe),x==="work_log"&&(m[T.uuid]=Z),x==="project"&&(g[T.uuid]=Z),x==="goal"&&(h[T.uuid]=Z))}const ne=z.concat(D);for(const T of ne){const M=oe.get(Kr(x,T));(!M||Lr(M)!==Lr(T))&&c++}f+=H.filter(T=>T.uuid&&!z.some(M=>M.uuid===T.uuid)&&!o.has(x+"|"+T.uuid)).length,await I.clear(),ne.length&&await I.bulkPut(ne);const j={};for(const T of ne)T.uuid&&(j[T.uuid]=T.id);n[x]=j}ah(n);const _=await Od(),P=[];for(const x of ro){const I=await se.table(x).toArray();for(const H of I)x==="setting"&&Xs.has(H.key)||H.uuid&&P.push({table:x,uuid:H.uuid,hash:Lr(Pd(x,H,_))})}return await se.sync_mirror.clear(),P.length&&await se.sync_mirror.bulkAdd(P.map(x=>({...x}))),await se.tombstone.clear(),{changed:c,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:mt()})}function uh(){return aa.splice(0)}const ch=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);async function pt(){await Ad()}async function $t(e,t){const n=await se.setting.get(e);return n?n.value:t}async function Kt(e,t){await se.setting.put({key:e,value:t}),ch.has(e)||await pt()}async function ps(){const e=await Promise.all([$t("work_start","09:00"),$t("work_end","18:00"),$t("grace_minutes","10"),$t("lunch_minutes","60"),$t("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 $t("last_location","")}async function fh(e,t){const n=t.trim();await Kt("last_location",n),n&&await ia(n);let o=!1;const r=await Fs(e);r&&r.id?(r.location||"")!==n&&(await se.attendance.update(r.id,{location:n||null}),o=!0):n&&(await se.attendance.add({date:e,clock_in_at:null,clock_out_at:null,kind:"normal",note:null,location:n,created_at:mt()}),o=!0),o&&await pt()}async function gl(){const e=await $t("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 jd(e){const t=Array.from(new Set(e.map(n=>n.trim()).filter(Boolean)));await Kt("location_presets",JSON.stringify(t))}async function ia(e){const t=e.trim();if(!t)return;const n=await gl();n.includes(t)||await jd([...n,t])}async function ao(e=!1){const t=await se.project.orderBy("name").toArray();return e?t:t.filter(n=>n.archived!==1)}async function ph(e){await se.project.add({name:e.trim(),archived:0,created_at:mt()}),await pt()}async function vh(e,t){await se.project.update(e,{name:t.trim()}),await pt()}async function mh(e,t){await se.project.update(e,{archived:t?1:0}),await pt()}async function Fs(e){return se.attendance.where("date").equals(e).first()}async function hh(e,t){const n=((t===void 0?await $t("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:mt()};n&&(l.location=n),await se.attendance.update(r.id,l),o=!0}n&&(await $t("last_location","")!==n&&await Kt("last_location",n),await ia(n)),o&&await pt();return}await se.attendance.add({date:e,clock_in_at:mt(),clock_out_at:null,kind:"normal",note:null,location:n||null,created_at:mt()}),n&&(await Kt("last_location",n),await ia(n)),await pt()}async function yh(e){const t=await Fs(e);t&&t.id&&t.clock_in_at&&!t.clock_out_at&&(await se.attendance.update(t.id,{clock_out_at:mt()}),await pt())}async function gh(e,t,n,o,r){(r||"").trim()&&await ia(r);const l=await Fs(e),c={date:e,clock_in_at:t,clock_out_at:n,kind:"makeup",note:o||null,location:(r||"").trim()||null,created_at:mt()};l&&l.id?await se.attendance.update(l.id,c):await se.attendance.add(c),await pt()}async function bh(e,t,n){const o=(n||"").trim();if(!o)return;const r=await Fs(e);r&&r.id&&(await se.attendance.update(r.id,{[t]:e+"T"+o+":00"}),await pt())}async function Xo(e,t){return se.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:mt()};n&&n.id?await se.attendance.update(n.id,o):await se.attendance.add({...o,note:null,location:null})}else n&&n.id&&await se.attendance.update(n.id,{kind:"normal"});await pt()}async function _h(e){const t=await se.work_log.where("date").equals(e).first();return t||{id:await se.work_log.add({date:e,created_at:mt()}),date:e,created_at:mt()}}async function kh(e){return se.work_log.where("date").equals(e).first()}async function Ch(e){const t=await kh(e);return!t||!t.id?[]:(await se.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 se.work_log.where("date").equals(e).first();let o;n&&n.id?o=n:o=await _h(e),await se.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:mt()});const r=t.project_id?String(t.project_id):"";await $t("last_project","")!==r&&await Kt("last_project",r),await $t("last_category","")!==t.category&&await Kt("last_category",t.category),await pt()}async function bi(e,t){await se.table("log_item").update(e,t),await pt()}async function $h(e){await se.table("log_item").delete(e),await pt()}async function Qo(e,t){const n=await se.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 se.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,c)=>l.date===c.date?l.id-c.id:l.date<c.date?-1:1)}async function bl(e){return se.weekly_note.where("week_start").equals(e).first()}async function Sh(e,t){const n=await bl(e);n&&n.id?await se.weekly_note.update(n.id,t):await se.weekly_note.add({week_start:e,highlights:t.highlights??null,challenges:t.challenges??null,plan_next:t.plan_next??null,created_at:mt()}),await pt()}async function Eh(e,t){return se.weekly_note.where("week_start").between(e,t,!0,!0).toArray()}async function Th(e){return(await se.plan.where("date").equals(e).toArray()).sort((n,o)=>n.start_time<o.start_time?-1:1)}async function Ah(){const e=await se.plan.filter(t=>!!t.timer_started_at).toArray();return e.length?e[0]:null}async function Ph(e){const t=mt();await se.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 pt()}async function Oh(e,t){await se.plan.update(e,{...t,updated_at:mt()}),await pt()}async function Mh(e){await se.plan.delete(e),await pt()}async function Ih(e,t){const n=await se.plan.get(e);n&&(t!=="todo"&&n.timer_started_at&&await Sa(e),await se.plan.update(e,{status:t,updated_at:mt()}),await pt())}async function jh(e){const t=await se.plan.filter(n=>!!n.timer_started_at).toArray();for(const n of t)n.id!==e&&await Sa(n.id);await se.plan.update(e,{timer_started_at:mt(),updated_at:mt()}),await pt()}async function Sa(e){const t=await se.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 se.plan.update(e,{actual_minutes:(t.actual_minutes||0)+n,timer_started_at:null,updated_at:mt()}),await pt()}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 Kh(){const e=await se.goal.toArray(),t=[];for(const n of e){const o=await se.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 Rh(){return(await se.goal.toArray()).sort((t,n)=>t.start_date<n.start_date?-1:1)}async function Nh(e){const t=mt(),n=await se.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 se.goal.get(n);const o=Lh(e.start_date,e.end_date);for(const r of o)await se.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 pt()}async function Fh(e,t){if(!await se.goal.get(e))return;const o={...t,updated_at:mt()};await se.goal.update(e,o);const r=await se.plan.where("goal_id").equals(e).toArray();for(const l of r)l.status!=="done"&&await se.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:mt()});await pt()}async function Vh(e){const t=await se.plan.where("goal_id").equals(e).toArray();for(const n of t)await se.plan.delete(n.id);await se.goal.delete(e),await pt()}async function Bh(){return(await se.memo.toArray()).sort((t,n)=>t.updated_at<n.updated_at?1:-1)}async function Uh(e,t){const n=mt(),o=await se.memo.add({title:e.trim(),content:t,created_at:n,updated_at:n});return await pt(),{id:o,title:e.trim(),content:t,created_at:n,updated_at:n}}async function qh(e,t,n){await se.memo.update(e,{title:t.trim(),content:n,updated_at:mt()}),await pt()}async function Hh(e){await se.memo.delete(e),await pt()}async function zh(e,t=8){const n=e.trim().toLowerCase();if(!n)return[];const o=await se.work_log.toArray(),r=new Map(o.map(c=>[c.id,c.date]));return(await se.table("log_item").toArray()).filter(c=>((c.content||"")+" "+(c.takeaway||"")+" "+(c.remark||"")).toLowerCase().includes(n)).sort((c,f)=>f.id-c.id).slice(0,t).map(c=>({...c,date:r.get(c.work_log_id)||""}))}async function Wh(e,t=4){const n=e.trim().toLowerCase();return n?(await se.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 se.table("transaction").where("date").between(e,t,!0,!0).toArray()}async function Yh(e){await se.table("transaction").add({...e,created_at:mt()}),await pt()}async function Jh(e,t){await se.table("transaction").update(e,{...t}),await pt()}async function Xh(e){await se.table("transaction").delete(e),await pt()}async function Qh(e,t){await se.table("transaction").update(e,{reimbursed:1}),await pt()}async function Zh(){const e=await se.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 se.table("transaction").where("date").below(e).count()}async function ey(){const e=await Promise.all([se.project.toArray(),se.work_log.toArray(),se.table("log_item").toArray(),se.attendance.toArray(),se.weekly_note.toArray(),se.setting.toArray(),se.memo.toArray(),se.credential.toArray(),se.table("transaction").toArray(),se.plan.toArray(),se.goal.toArray()]);return JSON.stringify({schema_version:hm,exported_at:mt(),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=se.table("log_item"),r=se.table("transaction"),l=se.plan,c=se.goal;await se.transaction("rw",[se.project,se.work_log,o,se.attendance,se.weekly_note,se.setting,se.memo,se.credential,r,c,l],async()=>{await Promise.all([se.project.clear(),se.work_log.clear(),o.clear(),se.attendance.clear(),se.weekly_note.clear(),se.setting.clear(),se.memo.clear(),se.credential.clear(),r.clear(),c.clear(),l.clear()]),n.project&&n.project.length&&await se.project.bulkAdd(n.project),n.work_log&&n.work_log.length&&await se.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 se.attendance.bulkAdd(n.attendance),n.weekly_note&&n.weekly_note.length&&await se.weekly_note.bulkAdd(n.weekly_note),n.setting&&n.setting.length&&await se.setting.bulkAdd(n.setting),n.memo&&n.memo.length&&await se.memo.bulkAdd(n.memo),n.credential&&n.credential.length&&await se.credential.bulkAdd(n.credential),n.transaction&&n.transaction.length&&await r.bulkAdd(n.transaction),n.goal&&n.goal.length&&await c.bulkAdd(n.goal),n.plan&&n.plan.length&&await l.bulkAdd(n.plan)}),await pt()}const ny=["制度学习","产品学习","打杂","项目实操","售后服务"],sy=["餐饮","交通","住房","通讯","学习","娱乐","其他"],oy=["工资","报销","其他"],Dd="log_categories",Ld="ledger_expense_categories",Kd="ledger_income_categories";function Rd(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 Rd(await $t(Dd,""),ny)}async function ry(e){await Kt(Dd,JSON.stringify(e))}async function la(e){return Rd(await $t(e==="expense"?Ld:Kd,""),e==="expense"?sy:oy)}async function Wi(e,t){await Kt(e==="expense"?Ld: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=jt({__name:"EditLogDialog",props:{open:{type:Boolean},item:{},projects:{},date:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=O([]);Zo().then(ie=>{n.value=ie});const o=e,r=t,l=O(""),c=O(null),f=O("dev"),m=O(null),g=O(""),h=O(""),_=O(0),P=O(0),x=O(""),I=O(null),H=rt(()=>{var S;const ie=o.projects.filter(D=>D.archived!==1),U=(S=o.item)==null?void 0:S.project_id;if(U&&!ie.some(D=>D.id===U)){const D=o.projects.find(z=>z.id===U),ee=ie.slice();return D&&ee.unshift({...D,name:D.name+"(已归档)"}),ee}return ie});function oe(ie){o.open&&ie.key==="Escape"&&r("cancel")}ft(()=>o.open,async ie=>{var U;if(ie){const S=o.item;l.value=(S==null?void 0:S.content)??"",c.value=(S==null?void 0:S.project_id)??null,f.value=(S==null?void 0:S.category)??"dev",m.value=(S==null?void 0:S.minutes)??null,g.value=(S==null?void 0:S.takeaway)??"",h.value=(S==null?void 0:S.remark)??"",_.value=(S==null?void 0:S.is_milestone)??0,P.value=(S==null?void 0:S.needs_followup)??0,x.value="",window.addEventListener("keydown",oe),await Ks(),(U=I.value)==null||U.focus()}else window.removeEventListener("keydown",oe)}),hn(()=>window.removeEventListener("keydown",oe)),ft(l,()=>{x.value&&(x.value="")});function le(){const ie=l.value.trim();if(!ie){x.value="请填写工作内容";return}if(!o.item||!o.item.id){r("save",{id:0,content:ie,project_id:c.value,category:f.value,minutes:m.value&&m.value>0?m.value:null,takeaway:g.value.trim()||null,remark:h.value.trim()||null,is_milestone:_.value,needs_followup:P.value});return}r("save",{id:o.item.id,content:ie,project_id:c.value,category:f.value,minutes:m.value&&m.value>0?m.value:null,takeaway:g.value.trim()||null,remark:h.value.trim()||null,is_milestone:_.value?1:0,needs_followup:P.value?1:0})}return(ie,U)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:U[10]||(U[10]=Nt(S=>r("cancel"),["self"]))},[i("div",ay,[i("div",iy,[i("div",null,[i("div",ly,F(e.item?"编辑工作记录":"添加工作记录"),1),e.date?($(),A("div",uy,F(e.date),1)):pe("",!0)]),i("button",{class:"icon-btn",title:"关闭",onClick:U[0]||(U[0]=S=>r("cancel"))},[ye(He,{name:"close",size:16})])]),i("div",cy,[i("div",dy,[i("div",fy,[U[11]||(U[11]=i("label",null,"工作内容(必填)",-1)),Ae(i("input",{ref_key:"contentInput",ref:I,class:Ye(["input",{invalid:x.value}]),"onUpdate:modelValue":U[1]||(U[1]=S=>l.value=S),onKeydown:Mt(le,["enter"])},null,34),[[De,l.value]]),x.value?($(),A("div",py,F(x.value),1)):pe("",!0)]),i("div",vy,[U[13]||(U[13]=i("label",null,"所属项目",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":U[2]||(U[2]=S=>c.value=S)},[U[12]||(U[12]=i("option",{value:null},"无项目",-1)),($(!0),A(Me,null,st(H.value,S=>($(),A("option",{key:S.id,value:S.id},F(S.name),9,my))),128))],512),[[Hn,c.value]])]),i("div",hy,[U[14]||(U[14]=i("label",null,"工作分类",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":U[3]||(U[3]=S=>f.value=S)},[($(!0),A(Me,null,st(n.value,S=>($(),A("option",{key:S,value:S},F(S),9,yy))),128))],512),[[Hn,f.value]])]),i("div",gy,[U[15]||(U[15]=i("label",null,"耗时(分钟)",-1)),Ae(i("input",{class:"input",type:"number",min:"0","onUpdate:modelValue":U[4]||(U[4]=S=>m.value=S),placeholder:"选填"},null,512),[[De,m.value,void 0,{number:!0}]]),i("div",by,[($(),A(Me,null,st([15,30,60,90,120],S=>i("button",{key:S,type:"button",class:Ye(["min-chip",{on:m.value===S}]),onClick:D=>m.value=m.value===S?null:S},F(S)+"分",11,wy)),64))])]),i("div",_y,[U[16]||(U[16]=i("label",null,"主要收获",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":U[5]||(U[5]=S=>g.value=S),placeholder:"一句话:学到了什么"},null,512),[[De,g.value]])]),i("div",ky,[U[17]||(U[17]=i("label",null,"备注",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":U[6]||(U[6]=S=>h.value=S),placeholder:"背景、链接、未决事项(选填)"},null,512),[[De,h.value]])]),i("div",Cy,[U[18]||(U[18]=i("label",null,"成果标记",-1)),i("button",{class:Ye(["toggle-btn",{on:_.value===1}]),onClick:U[7]||(U[7]=S=>_.value=_.value===1?0:1)},F(_.value===1?"已标记为成果":"未标记"),3)]),i("div",xy,[U[19]||(U[19]=i("label",null,"待跟进",-1)),i("button",{class:Ye(["toggle-btn",{onwarn:P.value===1}]),onClick:U[8]||(U[8]=S=>P.value=P.value===1?0:1)},F(P.value===1?"需要跟进":"无需跟进"),3)])])]),i("div",$y,[i("button",{class:"btn btn-sm",onClick:U[9]||(U[9]=S=>r("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:le},F(e.item?"保存修改":"添加"),1)])])])):pe("",!0)]),_:1})]))}}),Ey=Rt(Sy,[["__scopeId","data-v-91c30038"]]);function Or(e){const t=e.split(":");return Number(t[0])*60+Number(t[1])}function uo(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(zn(e.clock_in_at)),c=Or(zn(e.clock_out_at)),f=Or(n.work_start),m=Or(n.work_end);let g="normal";!r&&l>f+n.grace_minutes?g="late":!r&&c<m&&(g="early");const h=bm(e.clock_in_at,e.clock_out_at),_=Math.max(0,h-n.lunch_minutes);return{status:g,label:r?"补卡":g==="late"?"迟到":g==="early"?"早退":"正常",makeup:r,workedMinutes:_}}const Fr=O([]);let Ty=0;function Ne(e){const t=++Ty;Fr.value.push({id:t,text:e}),setTimeout(()=>{Fr.value=Fr.value.filter(n=>n.id!==t)},2e3)}function Ay(){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"},Ky={key:1,class:"att-val"},Ry={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=jt({__name:"DayPanel",props:{date:{}},setup(e){const t=O([]);Zo().then(k=>{t.value=k});const n=e,o=O(!0),r=O(null),l=O(void 0),c=O([]),f=O([]),m=O(""),g=O([]),h=rt(()=>"loc-list-"+n.date),_=rt(()=>n.date===it());async function P(){o.value=!0,r.value=await ps(),l.value=await Fs(n.date),c.value=await Ch(n.date),f.value=await ao(!0),g.value=await gl(),m.value=l.value&&l.value.location||await dh(),o.value=!1}ln(P),ft(()=>n.date,P),ft(Jo,()=>{P()});function x(k){if(!k)return"";const v=f.value.find(b=>b.id===k);return v?v.name:"已删除项目"}const I=rt(()=>r.value?uo(l.value,n.date,r.value,_.value):null),H=rt(()=>c.value.reduce((k,v)=>k+(v.minutes||0),0)),oe=O(!1);async function le(){oe.value||(oe.value=!0,await hh(n.date,m.value),await P(),Es(),Ne("上班打卡成功"),oe.value=!1)}async function ie(){oe.value||(oe.value=!0,await yh(n.date),await P(),Es(),Ne("下班打卡成功"),oe.value=!1)}async function U(){await fh(n.date,m.value),Es(),Ne("地点已更新")}const S=O(!1),D=rt(()=>{var k;return((k=l.value)==null?void 0:k.kind)==="leave"});function ee(){if(l.value&&l.value.clock_in_at){S.value=!0;return}z(!0)}async function z(k){S.value=!1,await wh(n.date,k),await P(),Es(),Ne(k?"已标记为休假":"已取消休假")}const ne=O(null),j=O(""),T=O(null);ft(ne,async k=>{var v;k&&(await Ks(),(v=T.value)==null||v.focus())});function M(k){var b,E;const v=k==="in"?(b=l.value)==null?void 0:b.clock_in_at:(E=l.value)==null?void 0:E.clock_out_at;ne.value=k,j.value=v?zn(v):k==="in"?"09:00":"18:00"}function Z(){ne.value=null}async function Oe(){const k=ne.value;k&&(ne.value=null,j.value&&(await bh(n.date,k==="in"?"clock_in_at":"clock_out_at",j.value),await P(),Es(),Ne("打卡时间已修改")))}const Se=O(!1),ge=O("09:00"),Pe=O("18:00"),qe=O(""),Fe=O(""),Je=O("");function Ge(){Fe.value=m.value,Je.value="",Se.value=!Se.value}async function ze(){if(!ge.value||!Pe.value){Je.value="请填写上班与下班时间";return}await gh(n.date,n.date+"T"+ge.value+":00",n.date+"T"+Pe.value+":00",qe.value.trim(),Fe.value),Se.value=!1,qe.value="",Je.value="",await P(),Es(),Ne("补卡已保存")}const re=O(null),J=O(!1);function $e(k){re.value=k,J.value=!0}function ot(){re.value=null,J.value=!0}async function wt(k){k.id?(await bi(k.id,{content:k.content,project_id:k.project_id,category:k.category,minutes:k.minutes,takeaway:k.takeaway,remark:k.remark,is_milestone:k.is_milestone,needs_followup:k.needs_followup}),Ne("记录已更新")):(await xh(n.date,{content:k.content,project_id:k.project_id,category:k.category,minutes:k.minutes,takeaway:k.takeaway,remark:k.remark}),Ne("记录已添加")),re.value=null,J.value=!1,await P()}async function Ee(k){await bi(k.id,{is_milestone:k.is_milestone?0:1}),await P()}async function xt(k){await bi(k.id,{needs_followup:k.needs_followup?0:1}),await P()}const St=O(null);async function Le(){St.value&&St.value.id&&await $h(St.value.id),St.value=null,await P(),Ne("记录已删除")}return(k,v)=>($(),A("div",Py,[i("div",Oy,[i("div",My,F(Ht(gd)(e.date)),1)]),i("div",Iy,[v[19]||(v[19]=i("div",{class:"sec-title"},"出勤信息",-1)),i("div",jy,[i("div",Dy,[v[15]||(v[15]=i("label",null,"上班时间",-1)),ne.value==="in"?($(),A("div",Ly,[Ae(i("input",{ref_key:"timeInput",ref:T,type:"time",class:"input time-input","onUpdate:modelValue":v[0]||(v[0]=b=>j.value=b),onKeydown:[Mt(Oe,["enter"]),Mt(Z,["esc"])]},null,544),[[De,j.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:Oe},"确认"),i("button",{class:"btn btn-sm",onClick:Z},"取消")])):($(),A("div",Ky,[i("span",{class:Ye(["num",{"val-empty":!(l.value&&l.value.clock_in_at)}])},F(l.value&&l.value.clock_in_at?Ht(zn)(l.value.clock_in_at):"未打卡"),3),l.value&&l.value.id?($(),A("button",{key:0,class:"icon-btn",title:"修改上班时间",onClick:v[1]||(v[1]=b=>M("in"))},[ye(He,{name:"edit",size:13})])):pe("",!0)]))]),i("div",Ry,[v[16]||(v[16]=i("label",null,"下班时间",-1)),ne.value==="out"?($(),A("div",Ny,[Ae(i("input",{ref_key:"timeInput",ref:T,type:"time",class:"input time-input","onUpdate:modelValue":v[2]||(v[2]=b=>j.value=b),onKeydown:[Mt(Oe,["enter"]),Mt(Z,["esc"])]},null,544),[[De,j.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:Oe},"确认"),i("button",{class:"btn btn-sm",onClick:Z},"取消")])):($(),A("div",Fy,[i("span",{class:Ye(["num",{"val-empty":!(l.value&&l.value.clock_out_at)}])},F(l.value&&l.value.clock_out_at?Ht(zn)(l.value.clock_out_at):"未打卡"),3),l.value&&l.value.id?($(),A("button",{key:0,class:"icon-btn",title:"修改下班时间",onClick:v[3]||(v[3]=b=>M("out"))},[ye(He,{name:"edit",size:13})])):pe("",!0)]))]),i("div",Vy,[v[17]||(v[17]=i("label",null,"上班地点",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":v[4]||(v[4]=b=>m.value=b),list:h.value,placeholder:"可直接输入",title:"上班地点,可自由输入",onChange:U},null,40,By),[[De,m.value]]),i("datalist",{id:h.value},[($(!0),A(Me,null,st(g.value,b=>($(),A("option",{key:b,value:b},null,8,qy))),128))],8,Uy)]),i("div",Hy,[v[18]||(v[18]=i("label",null,"考勤状态",-1)),i("div",zy,[I.value?($(),A(Me,{key:0},[i("span",{class:Ye(["dot",I.value.status])},null,2),i("span",null,F(I.value.label),1),l.value&&l.value.kind==="makeup"?($(),A("span",Wy,"补卡")):pe("",!0)],64)):($(),A("span",Gy,"--"))])])]),l.value&&l.value.note?($(),A("div",Yy,"补卡说明:"+F(l.value.note),1)):pe("",!0),i("div",Jy,[_.value&&(!l.value||!l.value.clock_in_at)?($(),A("button",{key:0,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:le},"上班打卡",8,Xy)):_.value&&l.value&&l.value.clock_in_at&&!l.value.clock_out_at?($(),A("button",{key:1,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ie},"下班打卡",8,Qy)):pe("",!0),!_.value&&(!l.value||!l.value.clock_in_at)?($(),A("button",{key:2,class:"btn btn-sm",onClick:Ge},"补卡")):pe("",!0),D.value?($(),A("button",{key:4,class:"btn btn-sm",disabled:oe.value,onClick:v[5]||(v[5]=b=>z(!1))},"取消休假",8,eg)):($(),A("button",{key:3,class:"btn btn-sm",disabled:oe.value,onClick:ee},"标记休假",8,Zy))])]),Se.value?($(),A("div",tg,[v[24]||(v[24]=i("div",{class:"sec-title"},"补卡登记",-1)),i("div",ng,[i("div",sg,[v[20]||(v[20]=i("label",null,"上班时间",-1)),Ae(i("input",{type:"time",class:"input","onUpdate:modelValue":v[6]||(v[6]=b=>ge.value=b)},null,512),[[De,ge.value]])]),i("div",og,[v[21]||(v[21]=i("label",null,"下班时间",-1)),Ae(i("input",{type:"time",class:"input","onUpdate:modelValue":v[7]||(v[7]=b=>Pe.value=b)},null,512),[[De,Pe.value]])]),i("div",rg,[v[22]||(v[22]=i("label",null,"上班地点",-1)),Ae(i("input",{class:"input",list:h.value,"onUpdate:modelValue":v[8]||(v[8]=b=>Fe.value=b),placeholder:"可直接输入"},null,8,ag),[[De,Fe.value]])]),i("div",ig,[v[23]||(v[23]=i("label",null,"补卡原因",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":v[9]||(v[9]=b=>qe.value=b),placeholder:"如:外出拜访客户忘记打卡"},null,512),[[De,qe.value]])])]),Je.value?($(),A("div",lg,F(Je.value),1)):pe("",!0),i("div",ug,[i("button",{class:"btn btn-sm",onClick:v[10]||(v[10]=b=>Se.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:ze},"保存补卡")])])):pe("",!0),i("div",cg,[i("div",dg,[i("span",fg,"工作记录("+F(c.value.length)+")",1),i("button",{class:"btn btn-primary btn-sm",onClick:ot},[ye(He,{name:"plus",size:14}),v[25]||(v[25]=Ct(" 添加记录",-1))])]),!c.value.length&&!o.value?($(),A("div",pg,"暂无记录")):pe("",!0),($(!0),A(Me,null,st(c.value,b=>($(),A("div",{key:b.id,class:"item"},[i("div",vg,[i("span",mg,F(Ht(Uo)(b.category)),1),i("span",{class:"item-content",title:"点击编辑",onClick:E=>$e(b)},F(b.content),9,hg),b.project_id?($(),A("span",yg,F(x(b.project_id)),1)):pe("",!0),b.minutes?($(),A("span",gg,F(b.minutes)+" 分钟",1)):pe("",!0),v[26]||(v[26]=i("span",{class:"flex1"},null,-1)),i("button",{class:"icon-btn",title:"编辑完整信息",onClick:E=>$e(b)},[ye(He,{name:"edit",size:14})],8,bg),i("button",{class:Ye(["icon-btn",{active:b.is_milestone===1}]),title:"成果标记",onClick:E=>Ee(b)},[ye(He,{name:"star",size:14})],10,wg),i("button",{class:Ye(["icon-btn",{"active-warn":b.needs_followup===1}]),title:"待跟进",onClick:E=>xt(b)},[ye(He,{name:"flag",size:14})],10,_g),i("button",{class:"icon-btn",title:"删除",onClick:E=>St.value=b},[ye(He,{name:"close",size:14})],8,kg)]),b.takeaway||b.remark?($(),A("div",Cg,[b.takeaway?($(),A("div",xg,"收获:"+F(b.takeaway),1)):pe("",!0),b.remark?($(),A("div",$g,"备注:"+F(b.remark),1)):pe("",!0)])):pe("",!0)]))),128)),c.value.length?($(),A("div",Sg,[Ct(" 共 "+F(c.value.length)+" 条事项 ",1),H.value?($(),A(Me,{key:0},[Ct(" · "+F((H.value/60).toFixed(1))+" 小时",1)],64)):pe("",!0)])):pe("",!0)]),ye(_n,{open:!!St.value,title:"删除确认",message:St.value?"将删除工作记录「"+St.value.content+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:v[11]||(v[11]=b=>St.value=null),onConfirm:Le},null,8,["open","message"]),ye(_n,{open:S.value,title:"标记休假确认",message:"该日已有打卡记录,标记休假将清空上下班时间。是否继续?","confirm-text":"标记休假",danger:"",onCancel:v[12]||(v[12]=b=>S.value=!1),onConfirm:v[13]||(v[13]=b=>z(!0))},null,8,["open"]),ye(Ey,{open:J.value,item:re.value,projects:f.value,date:e.date,onCancel:v[14]||(v[14]=b=>J.value=!1),onSave:wt},null,8,["open","item","projects","date"])]))}}),Nd=Rt(Eg,[["__scopeId","data-v-81276f4c"]]),Tg={class:"cal-page"},Ag={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"},Kg={key:0,class:"drawer"},Rg={class:"drawer-head"},Ng={class:"drawer-body"},Fg=jt({__name:"CalendarView",setup(e){const t=O(it()),n=rt(()=>Number(t.value.slice(0,4))),o=rt(()=>Number(t.value.slice(5,7))-1),r=rt(()=>n.value+" 年 "+(o.value+1)+" 月"),l=["一","二","三","四","五","六","日"],c=rt(()=>{const S=(new Date(n.value,o.value,1).getDay()+6)%7,D=new Date(n.value,o.value+1,0).getDate(),ee=[];for(let z=0;z<S;z++)ee.push({date:"",inMonth:!1,weekend:!1});for(let z=1;z<=D;z++){const ne=new Date(n.value,o.value,z),j=ne.getDay();ee.push({date:ls(ne),inMonth:!0,weekend:j===0||j===6})}return ee}),f=O(new Map),m=it();async function g(){var T;const U=ls(new Date(n.value,o.value,1)),S=ls(new Date(n.value,o.value+1,0)),D=await Promise.all([ps(),Xo(U,S),Qo(U,S)]),ee=D[0],z=new Map(D[1].map(M=>[M.date,M])),ne=D[2],j=new Map;for(const M of c.value){if(!M.inMonth)continue;const Z=uo(z.get(M.date),M.date,ee,M.date===m),Oe=ne.filter(Se=>Se.date===M.date);j.set(M.date,{status:Z.status,label:Z.label,location:((T=z.get(M.date))==null?void 0:T.location)||"",hasLog:Oe.length>0,hasMilestone:Oe.some(Se=>Se.is_milestone===1)})}f.value=j}ft([n,o],g,{immediate:!0}),ft(Jo,()=>{g()});function h(U){var S;return((S=f.value.get(U))==null?void 0:S.status)??""}function _(U){const S=f.value.get(U);return S?U+" · "+S.label+(S.location?" · "+S.location:""):U}function P(U){var S;return!!((S=f.value.get(U))!=null&&S.hasLog)}function x(U){var S;return!!((S=f.value.get(U))!=null&&S.hasMilestone)}function I(){t.value=qo(t.value,-1)}function H(){t.value=qo(t.value,1)}function oe(){t.value=it()}const le=O(null);function ie(U,S){S&&(le.value=U)}return ft(Fi,U=>{U&&(t.value=U,le.value=U,Fi.value=null)},{immediate:!0}),(U,S)=>($(),A("div",Tg,[i("div",Ag,[i("button",{class:"icon-btn",title:"上一月",onClick:I},[ye(He,{name:"chevron-left",size:16})]),i("span",Pg,F(r.value),1),i("button",{class:"icon-btn",title:"下一月",onClick:H},[ye(He,{name:"chevron-right",size:16})]),i("button",{class:"btn btn-sm",disabled:t.value===Ht(m),onClick:oe},"回到本月",8,Og)]),i("div",Mg,[i("div",Ig,[($(),A(Me,null,st(l,D=>i("span",{key:D,class:"cal-week"},F(D),1)),64))]),i("div",jg,[($(!0),A(Me,null,st(c.value,(D,ee)=>($(),A("button",{key:ee,class:Ye(["cal-cell",{blank:!D.inMonth,weekend:D.weekend,selected:le.value===D.date,"is-today":D.date===Ht(m)}]),title:D.inMonth?_(D.date):void 0,onClick:z=>ie(D.date,D.inMonth)},[D.inMonth?($(),A(Me,{key:0},[i("span",{class:Ye(["daynum num",{today:D.date===Ht(m)}])},F(Number(D.date.slice(8,10))),3),i("span",Lg,[h(D.date)?($(),A("span",{key:0,class:Ye(["dot",h(D.date)])},null,2)):pe("",!0),P(D.date)?($(),gt(He,{key:1,name:"check-circle",size:12,class:"mark-log"})):pe("",!0),x(D.date)?($(),gt(He,{key:2,name:"star",size:12,class:"mark-star"})):pe("",!0)])],64)):pe("",!0)],10,Dg))),128))])]),ye(Gn,{name:"drawer"},{default:Cn(()=>[le.value?($(),A("aside",Kg,[i("div",Rg,[S[1]||(S[1]=i("span",{class:"drawer-title"},"当日详情",-1)),i("button",{class:"icon-btn",onClick:S[0]||(S[0]=D=>le.value=null)},[ye(He,{name:"close",size:16})])]),i("div",Ng,[ye(Nd,{date:le.value},null,8,["date"])])])):pe("",!0)]),_:1})]))}}),Vg=Rt(Fg,[["__scopeId","data-v-abd71a5b"]]),Bg="modulepreload",Ug=function(e,t){return new URL(e,t).href},qu={},Fd=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){const c=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),m=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));r=Promise.allSettled(n.map(g=>{if(g=Ug(g,o),g in qu)return;qu[g]=!0;const h=g.endsWith(".css"),_=h?'[rel="stylesheet"]':"";if(!!o)for(let I=c.length-1;I>=0;I--){const H=c[I];if(H.href===g&&(!h||H.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${g}"]${_}`))return;const x=document.createElement("link");if(x.rel=h?"stylesheet":Bg,h||(x.as="script"),x.crossOrigin="",x.href=g,m&&x.setAttribute("nonce",m),document.head.appendChild(x),h)return new Promise((I,H)=>{x.addEventListener("load",I),x.addEventListener("error",()=>H(new Error(`Unable to preload CSS for ${g}`)))})}))}function l(c){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=c,window.dispatchEvent(f),!f.defaultPrevented)throw c}return r.then(c=>{for(const f of c||[])f.status==="rejected"&&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,c)=>{n.platforms.set(l,c)},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),Vd=Hg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});Vd.addPlatform;Vd.setPlatform;var io;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(io||(io={}));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 c=e.CapacitorCustomPlatform||null,f=e.Capacitor||{},m=f.Plugins=f.Plugins||{},g=e.CapacitorPlatforms,h=()=>c!==null?c.name:zg(e),_=((t=g==null?void 0:g.currentPlatform)===null||t===void 0?void 0:t.getPlatform)||h,P=()=>_()!=="web",x=((n=g==null?void 0:g.currentPlatform)===null||n===void 0?void 0:n.isNativePlatform)||P,I=z=>{const ne=S.get(z);return!!(ne!=null&&ne.platforms.has(_())||le(z))},H=((o=g==null?void 0:g.currentPlatform)===null||o===void 0?void 0:o.isPluginAvailable)||I,oe=z=>{var ne;return(ne=f.PluginHeaders)===null||ne===void 0?void 0:ne.find(j=>j.name===z)},le=((r=g==null?void 0:g.currentPlatform)===null||r===void 0?void 0:r.getPluginHeader)||oe,ie=z=>e.console.error(z),U=(z,ne,j)=>Promise.reject(`${j} does not have an implementation of "${ne}".`),S=new Map,D=(z,ne={})=>{const j=S.get(z);if(j)return console.warn(`Capacitor plugin "${z}" already registered. Cannot register plugins twice.`),j.proxy;const T=_(),M=le(z);let Z;const Oe=async()=>(!Z&&T in ne?Z=typeof ne[T]=="function"?Z=await ne[T]():Z=ne[T]:c!==null&&!Z&&"web"in ne&&(Z=typeof ne.web=="function"?Z=await ne.web():Z=ne.web),Z),Se=(Ge,ze)=>{var re,J;if(M){const $e=M==null?void 0:M.methods.find(ot=>ze===ot.name);if($e)return $e.rtype==="promise"?ot=>f.nativePromise(z,ze.toString(),ot):(ot,wt)=>f.nativeCallback(z,ze.toString(),ot,wt);if(Ge)return(re=Ge[ze])===null||re===void 0?void 0:re.bind(Ge)}else{if(Ge)return(J=Ge[ze])===null||J===void 0?void 0:J.bind(Ge);throw new wi(`"${z}" plugin is not implemented on ${T}`,io.Unimplemented)}},ge=Ge=>{let ze;const re=(...J)=>{const $e=Oe().then(ot=>{const wt=Se(ot,Ge);if(wt){const Ee=wt(...J);return ze=Ee==null?void 0:Ee.remove,Ee}else throw new wi(`"${z}.${Ge}()" is not implemented on ${T}`,io.Unimplemented)});return Ge==="addListener"&&($e.remove=async()=>ze()),$e};return re.toString=()=>`${Ge.toString()}() { [capacitor code] }`,Object.defineProperty(re,"name",{value:Ge,writable:!1,configurable:!1}),re},Pe=ge("addListener"),qe=ge("removeListener"),Fe=(Ge,ze)=>{const re=Pe({eventName:Ge},ze),J=async()=>{const ot=await re;qe({eventName:Ge,callbackId:ot},ze)},$e=new Promise(ot=>re.then(()=>ot({remove:J})));return $e.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await J()},$e},Je=new Proxy({},{get(Ge,ze){switch(ze){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return M?Fe:Pe;case"removeListener":return qe;default:return ge(ze)}}});return m[z]=Je,S.set(z,{name:z,proxy:Je,platforms:new Set([...Object.keys(ne),...M?[T]:[]])}),Je},ee=((l=g==null?void 0:g.currentPlatform)===null||l===void 0?void 0:l.registerPlugin)||D;return f.convertFileSrc||(f.convertFileSrc=z=>z),f.getPlatform=_,f.handleError=ie,f.isNativePlatform=x,f.isPluginAvailable=H,f.pluginMethodNoop=U,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),lo=Gg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),Bd=lo.registerPlugin;lo.Plugins;class Ud{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 c=async()=>this.removeListener(t,n);return Promise.resolve({remove:c})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,n,o){const r=this.listeners[t];if(!r){if(o){let 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 lo.Exception(t,io.Unimplemented)}unavailable(t="not available"){return new lo.Exception(t,io.Unavailable)}async removeListener(t,n){const o=this.listeners[t];if(!o)return;const r=o.indexOf(n);this.listeners[t].splice(r,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const n=this.retainedEventArguments[t];n&&(delete this.retainedEventArguments[t],n.forEach(o=>{this.notifyListeners(t,o)}))}}const 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 Ud{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=",""),c=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${o||""}${r}; path=${l}; ${c};`}catch(n){return Promise.reject(n)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(n){return Promise.reject(n)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const n of t)document.cookie=n.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}Bd("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,c)=>(r[l]=e[t[c]],r),{})},Qg=(e,t=!0)=>e?Object.entries(e).reduce((o,r)=>{const[l,c]=r;let f,m;return Array.isArray(c)?(m="",c.forEach(g=>{f=t?encodeURIComponent(g):g,m+=`${l}=${f}&`}),m.slice(0,-1)):(f=t?encodeURIComponent(c):c,m=`${l}=${f}`),`${o}&${m}`},"").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[c,f]of Object.entries(e.data||{}))l.set(c,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,m)=>{l.append(m,f)});else for(const f of Object.keys(e.data))l.append(f,e.data[f]);n.body=l;const c=new Headers(n.headers);c.delete("content-type"),n.headers=c}else(r.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class eb extends Ud{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),c=l.headers.get("content-type")||"";let{responseType:f="text"}=l.ok?t:{};c.includes("application/json")&&(f="json");let m,g;switch(f){case"arraybuffer":case"blob":g=await l.blob(),m=await Jg(g);break;case"json":m=await l.json();break;case"document":case"text":default:m=await l.text()}const h={};return l.headers.forEach((_,P)=>{h[P]=_}),{data:m,headers:h,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"}))}}Bd("CapacitorHttp",{web:()=>new eb});async function Ea(e,t){const n=window;if(n.electronAPI&&n.electronAPI.saveFile){const c=await n.electronAPI.saveFile(e,t);return c&&c.saved?c.path:""}if(lo.isNativePlatform()){const{Filesystem:c,Directory:f,Encoding:m}=await Fd(async()=>{const{Filesystem:g,Directory:h,Encoding:_}=await import("./index-BGMpfaMy.js");return{Filesystem:g,Directory:h,Encoding:_}},[],import.meta.url);try{return(await c.writeFile({path:e,data:t,directory:f.Documents,encoding:m.UTF8,recursive:!0})).uri}catch{return(await c.writeFile({path:e,data:t,directory:f.Cache,encoding:m.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=jt({__name:"TodayView",setup(e){const t=O(it()),n=rt(()=>t.value===it());function o(){t.value=Ft(t.value,-1)}function r(){t.value=Ft(t.value,1)}function l(){t.value=it()}const c=O("day"),f=O(it()),m=O(it()),g=O(!1);function h(){if(c.value==="day")return{start:t.value,end:t.value,label:t.value};if(c.value==="week"){const x=Zs(f.value);return{start:x,end:Ft(x,6),label:x+"_"+Ft(x,6)}}if(c.value==="month"){const x=f.value.slice(0,4),I=f.value.slice(5,7),H=new Date(Number(x),Number(I),0).getDate();return{start:x+"-"+I+"-01",end:x+"-"+I+"-"+H,label:x+"-"+I}}return{start:f.value,end:m.value,label:f.value+"_"+m.value}}async function _(){if(!g.value){g.value=!0;try{const{start:x,end:I,label:H}=h(),[oe,le,ie,U]=await Promise.all([ps(),Xo(x,I),Qo(x,I),ao(!0)]),S=new Map(U.map(j=>[j.id,j.name])),D=["# 工作详情 "+H,""],ee=["周日","周一","周二","周三","周四","周五","周六"];let z=x,ne=0;for(;z<=I&&ne<400;){const j=ie.filter(M=>M.date===z),T=le.find(M=>M.date===z);if(T||j.length){if(D.push("## "+z+" "+ee[new Date(z+"T00:00:00").getDay()],""),T&&(T.clock_in_at||T.kind==="makeup")){const M=uo(T,z,oe,z===it()),Z=[zn(T.clock_in_at),"–",zn(T.clock_out_at),"·",M.label];T.location&&Z.push("· 地点:"+T.location),D.push("考勤:"+Z.join(" "),"")}for(const M of j){const Z=M.project_id&&S.get(M.project_id)||"",Oe="- 【"+Uo(M.category)+"】"+M.content+(M.minutes?"("+M.minutes+" 分钟)":"")+(Z?" @"+Z:"");D.push(Oe),M.takeaway&&D.push(" - 收获:"+M.takeaway),M.needs_followup===1&&M.remark?D.push(" - 待跟进:"+M.remark):M.remark&&D.push(" - 备注:"+M.remark)}D.push("")}z=Ft(z,1),ne++}await Ea("工作详情_"+H+".md",D.join(`
|
||
`)),Ne("已导出 Markdown")}finally{g.value=!1}}}function P(x){const I=x.target.value;I&&(t.value=I)}return ft(t,x=>{f.value=x,c.value==="custom"&&(m.value=x)}),(x,I)=>($(),A("div",nb,[i("div",sb,[i("div",ob,[i("button",{class:"icon-btn",title:"前一天",onClick:o},[ye(He,{name:"chevron-left",size:16})]),i("span",{class:Ye(["date-title num",{"is-today":n.value}])},F(Ht(gd)(t.value)),3),i("button",{class:"icon-btn",title:"后一天",onClick:r},[ye(He,{name:"chevron-right",size:16})]),i("input",{type:"date",class:"input w-date",value:t.value,onChange:P},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:Ye(["seg-btn",{active:c.value==="day"}]),onClick:I[0]||(I[0]=H=>c.value="day")},"指定日",2),i("button",{class:Ye(["seg-btn",{active:c.value==="week"}]),onClick:I[1]||(I[1]=H=>c.value="week")},"当周",2),i("button",{class:Ye(["seg-btn",{active:c.value==="month"}]),onClick:I[2]||(I[2]=H=>c.value="month")},"当月",2),i("button",{class:Ye(["seg-btn",{active:c.value==="custom"}]),onClick:I[3]||(I[3]=H=>c.value="custom")},"自定义",2)]),c.value!=="day"?Ae(($(),A("input",{key:0,class:"input w-exp",type:"date","onUpdate:modelValue":I[4]||(I[4]=H=>f.value=H)},null,512)),[[De,f.value]]):pe("",!0),c.value==="custom"?Ae(($(),A("input",{key:1,class:"input w-exp",type:"date","onUpdate:modelValue":I[5]||(I[5]=H=>m.value=H)},null,512)),[[De,m.value]]):pe("",!0),i("button",{class:"btn btn-sm",disabled:g.value,onClick:_},"导出 Markdown",8,ub)])]),ye(Nd,{date:t.value},null,8,["date"])]))}}),db=Rt(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"},Tb={class:"day-ops"},Ab={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"},Kb={key:1,class:"state-done"},Rb={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=jt({__name:"PlanView",setup(e){const t=O([]),n=O({}),o=O(!1),r=O(null),l=O(""),c=O("学习"),f=O(it()),m=O(Ft(it(),6)),g=O(""),h=O(""),_=O(null);function P(){r.value=null,l.value="",c.value="学习",f.value=it(),m.value=Ft(it(),6),g.value="",h.value="",o.value=!0}function x(v){r.value=v,l.value=v.title,c.value=v.kind,f.value=v.start_date,m.value=v.end_date,g.value=v.note||"",h.value="",o.value=!0}async function I(){if(!l.value.trim()){h.value="请填写计划名称";return}if(m.value<f.value){h.value="结束日期不能早于开始日期";return}r.value?(await Fh(r.value.id,{title:l.value.trim(),kind:c.value,note:g.value}),Ne("长期计划已更新")):(await Nh({title:l.value,kind:c.value,start_date:f.value,end_date:m.value,note:g.value}),Ne("长期计划已创建,已生成每日任务")),o.value=!1,await ee()}async function H(){_.value&&(await Vh(_.value.id),Ne("已删除长期计划及其每日任务"),_.value=null,await ee())}const oe=O(it()),le=O([]),ie=O(!0),U=O(Date.now());let S=null;const D=rt(()=>oe.value===it());async function ee(){ie.value=!0;const[v,b,E]=await Promise.all([Th(oe.value),Rh(),Kh()]);le.value=v,t.value=b;const X={};for(const ce of E)X[String(ce.goalId)]={done:ce.done,total:ce.total};n.value=X,ie.value=!1}ft(oe,ee),ft(Jo,ee),ln(()=>{ee(),S=window.setInterval(()=>{U.value=Date.now()},3e4)}),hn(()=>{S&&window.clearInterval(S)});function z(){oe.value=Ft(oe.value,-1)}function ne(){oe.value=Ft(oe.value,1)}function j(){oe.value=it()}const T=rt(()=>{const v=le.value.length,b=le.value.filter(be=>be.status==="done").length,E=le.value.reduce((be,_e)=>be+M(_e),0),X=le.value.reduce((be,_e)=>be+(_e.actual_minutes||0),0);let ce=0;const xe=Oe.value;if(xe){const be=le.value.find(_e=>_e.id===xe);be&&(ce=Se(be))}return{total:v,done:b,plannedMin:E,actualMin:X+ce}});function M(v){const[b,E]=v.start_time.split(":").map(Number),[X,ce]=v.end_time.split(":").map(Number);return Math.max(0,X*60+ce-(b*60+E))}function Z(v){return v<60?v+" 分钟":Math.floor(v/60)+" 小时 "+v%60+" 分"}const Oe=rt(()=>{const v=le.value.find(b=>!!b.timer_started_at);return v?v.id:null});function Se(v){if(!v.timer_started_at)return v.actual_minutes||0;const b=Math.max(0,Math.round((U.value-new Date(v.timer_started_at).getTime())/6e4));return(v.actual_minutes||0)+b}async function ge(v){v.timer_started_at?(await Sa(v.id),Ne("已停止计时:"+v.title)):(await jh(v.id),Ne("开始计时:"+v.title)),Wm(),await ee()}async function Pe(v,b){await Ih(v.id,b),await ee()}const qe=O(!1),Fe=O(null),Je=O(""),Ge=O("学习"),ze=O("09:00"),re=O("10:00"),J=O(""),$e=O(""),ot=["学习","健身","自律","工作","阅读","其他"];function wt(){Fe.value=null,Je.value="",Ge.value="学习",ze.value="09:00",re.value="10:00",J.value="",$e.value="",qe.value=!0}function Ee(v){Fe.value=v.id,Je.value=v.title,Ge.value=v.kind,ze.value=v.start_time,re.value=v.end_time,J.value=v.note||"",$e.value="",qe.value=!0}async function xt(){if(!Je.value.trim()){$e.value="请填写计划内容";return}if(re.value<=ze.value){$e.value="结束时间需晚于开始时间";return}Fe.value?(await Oh(Fe.value,{title:Je.value.trim(),kind:Ge.value,start_time:ze.value,end_time:re.value,note:J.value}),Ne("计划已更新")):(await Ph({date:oe.value,start_time:ze.value,end_time:re.value,title:Je.value,kind:Ge.value,note:J.value}),Ne("计划已添加")),qe.value=!1,await ee()}async function St(v){await Mh(v.id),Ne("已删除"),await ee()}const Le=["周日","周一","周二","周三","周四","周五","周六"];function k(v){return Le[Rs(v).getDay()]}return(v,b)=>($(),A("div",fb,[i("div",pb,[b[18]||(b[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:P},[ye(He,{name:"plus",size:14}),b[17]||(b[17]=Ct(" 新建长期计划",-1))])]),t.value.length?pe("",!0):($(),A("div",vb," 暂无长期计划。创建一个跨越多天的目标(如「产品文档学习」),系统会自动生成每天的打卡任务。 ")),($(!0),A(Me,null,st(t.value,E=>($(),A("div",{key:E.id,class:"card goal-card"},[i("div",mb,[i("div",hb,[i("span",yb,F(E.kind),1),i("span",gb,F(E.title),1),i("span",bb,F(E.start_date.slice(5))+" ~ "+F(E.end_date.slice(5)),1)]),i("div",wb,[i("span",{class:"goal-bar-fill",style:qn({width:(n.value[String(E.id)]?Math.round(n.value[String(E.id)].done/Math.max(1,n.value[String(E.id)].total)*100):0)+"%",background:n.value[String(E.id)]&&n.value[String(E.id)].done>=n.value[String(E.id)].total&&n.value[String(E.id)].total>0?"var(--ok)":"var(--accent)"})},null,4)]),i("div",_b,[Ct(F(n.value[String(E.id)]?n.value[String(E.id)].done+"/"+n.value[String(E.id)].total+" 天已完成":"0/"+(n.value[String(E.id)]?n.value[String(E.id)].total:0)+" 天")+" ",1),E.note?($(),A(Me,{key:0},[Ct(" · "+F(E.note),1)],64)):pe("",!0)])]),i("div",kb,[i("button",{class:"icon-btn",title:"编辑",onClick:X=>x(E)},[ye(He,{name:"edit",size:14})],8,Cb),i("button",{class:"icon-btn",title:"删除",onClick:X=>_.value=E},[ye(He,{name:"close",size:14})],8,xb)])]))),128)),i("div",$b,[i("div",Sb,[b[21]||(b[21]=i("div",{class:"blk-title"},"每日安排",-1)),i("div",Eb,[Ct(" 共 "+F(T.value.total)+" 项 · 完成 "+F(T.value.done)+" 项 · 计划 "+F(Z(T.value.plannedMin))+" · 实际投入 "+F(Z(T.value.actualMin))+" ",1),Oe.value?($(),A(Me,{key:0},[b[19]||(b[19]=Ct(" · ",-1)),b[20]||(b[20]=i("span",{class:"timer-live"},"计时中",-1))],64)):pe("",!0)])]),i("div",Tb,[i("button",{class:"icon-btn",title:"前一天",onClick:z},[ye(He,{name:"chevron-left",size:16})]),i("span",{class:Ye(["date-chip num",{today:D.value}])},F(oe.value.slice(5))+" "+F(k(oe.value)),3),i("button",{class:"icon-btn",title:"后一天",onClick:ne},[ye(He,{name:"chevron-right",size:16})]),i("button",{class:Ye(["btn btn-sm",{"btn-primary":!D.value}]),onClick:j},"今天",2),i("button",{class:"btn btn-primary btn-sm",onClick:wt},[ye(He,{name:"plus",size:14}),b[22]||(b[22]=Ct(" 添加计划",-1))])])]),i("div",Ab,[!ie.value&&!le.value.length?($(),A("div",Pb,"今天还没有计划,点「添加计划」开始规划。")):pe("",!0),($(!0),A(Me,null,st(le.value,E=>($(),A("div",{key:E.id,class:Ye(["plan-item",{done:E.status==="done",skip:E.status==="skip",running:!!E.timer_started_at}])},[i("div",Ob,[Ct(F(E.start_time),1),i("span",Mb," - "+F(E.end_time),1)]),i("div",Ib,[i("div",jb,[i("span",Db,F(E.kind),1),E.goal_id?($(),A("span",Lb,"长期")):pe("",!0),i("span",{class:Ye(["pi-text",{strike:E.status==="done"}])},F(E.title),3),E.status==="done"?($(),A("span",Kb,"已完成")):E.status==="skip"?($(),A("span",Rb,"已跳过")):pe("",!0)]),E.note?($(),A("div",Nb,F(E.note),1)):pe("",!0),i("div",Fb,[E.timer_started_at?($(),A("span",Vb,"计时中 · 已 "+F(Se(E))+" 分钟",1)):E.actual_minutes>0?($(),A(Me,{key:1},[Ct("实际投入 "+F(E.actual_minutes)+" 分钟",1)],64)):pe("",!0)])]),i("div",Bb,[E.status!=="done"?($(),A("button",{key:0,class:Ye(["btn btn-xs",{"timer-on":!!E.timer_started_at}]),onClick:X=>ge(E)},F(E.timer_started_at?"停止计时":"计时"),11,Ub)):pe("",!0),E.status!=="done"?($(),A("button",{key:1,class:"btn btn-xs",onClick:X=>Pe(E,"done")},"完成",8,qb)):pe("",!0),E.status==="todo"?($(),A("button",{key:2,class:"btn btn-xs",onClick:X=>Pe(E,"skip")},"跳过",8,Hb)):pe("",!0),E.status!=="todo"?($(),A("button",{key:3,class:"btn btn-xs",onClick:X=>Pe(E,"todo")},"恢复",8,zb)):pe("",!0),i("button",{class:"icon-btn",title:"编辑",onClick:X=>Ee(E)},[ye(He,{name:"edit",size:14})],8,Wb),i("button",{class:"icon-btn",title:"删除",onClick:X=>St(E)},[ye(He,{name:"close",size:14})],8,Gb)])],2))),128))]),($(),gt(kn,{to:"body"},[qe.value?($(),A("div",{key:0,class:"mask",onClick:b[7]||(b[7]=Nt(E=>qe.value=!1,["self"]))},[i("div",Yb,[i("div",Jb,[i("span",Xb,F(Fe.value?"编辑计划":"添加计划"),1),i("button",{class:"icon-btn",onClick:b[0]||(b[0]=E=>qe.value=!1)},[ye(He,{name:"close",size:16})])]),i("div",Qb,[i("div",Zb,[b[23]||(b[23]=i("label",null,"计划内容(学什么、做什么)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":b[1]||(b[1]=E=>Je.value=E),placeholder:"如:产品文档第三章 / 晨跑 5 公里",onKeydown:Mt(xt,["enter"])},null,544),[[De,Je.value]])]),i("div",ew,[b[24]||(b[24]=i("label",null,"类别",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":b[2]||(b[2]=E=>Ge.value=E)},[($(),A(Me,null,st(ot,E=>i("option",{key:E,value:E},F(E),9,tw)),64))],512),[[Hn,Ge.value]])]),i("div",nw,[i("div",null,[b[25]||(b[25]=i("label",null,"开始时间",-1)),Ae(i("input",{class:"input",type:"time","onUpdate:modelValue":b[3]||(b[3]=E=>ze.value=E)},null,512),[[De,ze.value]])]),i("div",null,[b[26]||(b[26]=i("label",null,"结束时间",-1)),Ae(i("input",{class:"input",type:"time","onUpdate:modelValue":b[4]||(b[4]=E=>re.value=E)},null,512),[[De,re.value]])])]),i("div",sw,[b[27]||(b[27]=i("label",null,"备注(选填)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":b[5]||(b[5]=E=>J.value=E),placeholder:"目标、资料、提醒等",onKeydown:Mt(xt,["enter"])},null,544),[[De,J.value]])]),$e.value?($(),A("div",ow,F($e.value),1)):pe("",!0)]),i("div",rw,[i("button",{class:"btn btn-sm",onClick:b[6]||(b[6]=E=>qe.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:xt},F(Fe.value?"保存":"添加"),1)])])])):pe("",!0)])),($(),gt(kn,{to:"body"},[o.value?($(),A("div",{key:0,class:"mask",onClick:b[15]||(b[15]=Nt(E=>o.value=!1,["self"]))},[i("div",aw,[i("div",iw,[i("span",lw,F(r.value?"编辑长期计划":"新建长期计划"),1),i("button",{class:"icon-btn",onClick:b[8]||(b[8]=E=>o.value=!1)},[ye(He,{name:"close",size:16})])]),i("div",uw,[i("div",cw,[b[28]||(b[28]=i("label",null,"计划名称(落实为每天一条任务)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":b[9]||(b[9]=E=>l.value=E),placeholder:"如:产品文档学习 / 健身月计划"},null,512),[[De,l.value]])]),i("div",dw,[b[29]||(b[29]=i("label",null,"类别",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":b[10]||(b[10]=E=>c.value=E)},[($(),A(Me,null,st(ot,E=>i("option",{key:E,value:E},F(E),9,fw)),64))],512),[[Hn,c.value]])]),i("div",pw,[i("div",null,[b[30]||(b[30]=i("label",null,"开始日期",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":b[11]||(b[11]=E=>f.value=E)},null,512),[[De,f.value]])]),i("div",null,[b[31]||(b[31]=i("label",null,"结束日期",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":b[12]||(b[12]=E=>m.value=E)},null,512),[[De,m.value]])])]),i("div",vw,[b[32]||(b[32]=i("label",null,"备注(选填)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":b[13]||(b[13]=E=>g.value=E)},null,512),[[De,g.value]])]),h.value?($(),A("div",mw,F(h.value),1)):pe("",!0),b[33]||(b[33]=i("div",{class:"muted goal-hint"},"创建后区间内每一天都会生成一条任务,可在每日安排中逐日打卡与计时。",-1))]),i("div",hw,[i("button",{class:"btn btn-sm",onClick:b[14]||(b[14]=E=>o.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:I},F(r.value?"保存":"创建"),1)])])])):pe("",!0)])),ye(_n,{open:!!_.value,title:"删除长期计划",message:_.value?"将删除「"+_.value.title+"」及其全部每日任务(含已完成记录),不可恢复。":"","confirm-text":"删除",danger:"",onCancel:b[16]||(b[16]=E=>_.value=null),onConfirm:H},null,8,["open","message"])]))}}),gw=Rt(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"},Tw={class:"stat-num num"},Aw={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"},Kw={key:0,class:"muted"},Rw={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=jt({__name:"StatsView",setup(e){const t=O({attendDays:0,totalHours:"0",itemCount:0,streak:0}),n=O([]),o=O([]),r=O([]),l=O([]);async function c(){const g=it(),h="2000-01-01",_=await Promise.all([ps(),Xo(h,g),Qo(h,g),ao(!0)]),P=_[0],x=_[1],I=_[2],H=_[3],oe=x.filter(ge=>ge.clock_in_at||ge.kind==="makeup");let le=0;for(const ge of oe){const Pe=uo(ge,ge.date,P,ge.date===g);le+=Pe.workedMinutes??0}const ie=new Set(I.map(ge=>ge.date));let U=0,S=g;for(ie.has(S)||(S=Ft(g,-1));ie.has(S);)U++,S=Ft(S,-1);t.value={attendDays:oe.length,totalHours:(le/60).toFixed(1),itemCount:I.length,streak:U};const D=new Map;for(const ge of oe){const Pe=ge.location||"未记录";D.set(Pe,(D.get(Pe)||0)+1)}l.value=Array.from(D.entries()).map(ge=>({name:ge[0],count:ge[1],percent:Math.round(ge[1]/(oe.length||1)*100)})).sort((ge,Pe)=>Pe.count-ge.count);const ee=I.length||1,z=await Zo(),ne=new Map;for(const ge of I)ne.set(ge.category,(ne.get(ge.category)||0)+1);const j=new Set(z);for(const ge of ne.keys())j.has(ge)||z.push(ge);o.value=z.map(ge=>{const Pe=ne.get(ge)||0;return{key:ge,label:ge,count:Pe,percent:Math.round(Pe/ee*100)}}).filter(ge=>ge.count>0).sort((ge,Pe)=>Pe.count-ge.count);const T=new Map(H.map(ge=>[ge.id,ge.name])),M=new Map;for(const ge of I){const Pe=ge.project_id?T.get(ge.project_id)||"已删除项目":"无项目";M.set(Pe,(M.get(Pe)||0)+1)}r.value=Array.from(M.entries()).map(ge=>({name:ge[0],count:ge[1],percent:Math.round(ge[1]/ee*100)})).sort((ge,Pe)=>Pe.count-ge.count);const Z=new Map;for(const ge of I)Z.set(ge.date,(Z.get(ge.date)||0)+1);const Oe=Zs(g),Se=[];for(let ge=11;ge>=0;ge--){const Pe=Ft(Oe,-7*ge),qe=[];for(let Fe=0;Fe<7;Fe++){const Je=Ft(Pe,Fe);qe.push({date:Je,count:Z.get(Je)||0})}Se.push(qe)}n.value=Se}ln(async()=>{await c()}),ft(Jo,()=>{c()});function f(g){return g===0?0:g===1?1:g<=3?2:g<=5?3:4}function m(g,h){return g+" · "+(h?h+" 条":"无记录")}return(g,h)=>($(),A("div",bw,[i("div",ww,[i("div",_w,[h[0]||(h[0]=i("div",{class:"muted"},"出勤天数",-1)),i("div",kw,F(t.value.attendDays),1)]),i("div",Cw,[h[1]||(h[1]=i("div",{class:"muted"},"累计工时(小时)",-1)),i("div",xw,F(t.value.totalHours),1)]),i("div",$w,[h[2]||(h[2]=i("div",{class:"muted"},"记录条数",-1)),i("div",Sw,F(t.value.itemCount),1)]),i("div",Ew,[h[3]||(h[3]=i("div",{class:"muted"},"连续记录(天)",-1)),i("div",Tw,F(t.value.streak),1)])]),i("div",Aw,[h[4]||(h[4]=i("div",{class:"section-title"},"记录热力图(近 12 周)",-1)),i("div",Pw,[($(!0),A(Me,null,st(n.value,(_,P)=>($(),A("div",{key:P,class:"heat-col"},[($(!0),A(Me,null,st(_,x=>($(),A("span",{key:x.date,class:Ye(["heat-cell","lv"+f(x.count)]),title:m(x.date,x.count)},null,10,Ow))),128))]))),128))]),h[5]||(h[5]=tv('<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,[h[6]||(h[6]=i("div",{class:"section-title"},"分类分布",-1)),($(!0),A(Me,null,st(o.value,_=>($(),A("div",{key:_.key,class:"bar-row"},[i("span",jw,F(_.label),1),i("span",Dw,[i("span",{class:"bar-fill",style:qn({width:_.percent+"%"})},null,4)]),i("span",Lw,F(_.count)+" 条 · "+F(_.percent)+"%",1)]))),128)),o.value.length?pe("",!0):($(),A("div",Kw,"暂无数据"))]),i("div",Rw,[h[7]||(h[7]=i("div",{class:"section-title"},"项目投入",-1)),($(!0),A(Me,null,st(r.value,_=>($(),A("div",{key:_.name,class:"bar-row"},[i("span",Nw,F(_.name),1),i("span",Fw,[i("span",{class:"bar-fill",style:qn({width:_.percent+"%"})},null,4)]),i("span",Vw,F(_.count)+" 条 · "+F(_.percent)+"%",1)]))),128)),r.value.length?pe("",!0):($(),A("div",Bw,"暂无数据"))])]),i("div",Uw,[h[8]||(h[8]=i("div",{class:"section-title"},"地点分布(按出勤天)",-1)),($(!0),A(Me,null,st(l.value,_=>($(),A("div",{key:_.name,class:"bar-row"},[i("span",qw,F(_.name),1),i("span",Hw,[i("span",{class:"bar-fill",style:qn({width:_.percent+"%"})},null,4)]),i("span",zw,F(_.count)+" 天 · "+F(_.percent)+"%",1)]))),128)),l.value.length?pe("",!0):($(),A("div",Ww,"暂无数据"))])]))}}),Yw=Rt(Gw,[["__scopeId","data-v-5469ae68"]]);async function Jw(e,t,n){const o=it(),r=await Promise.all([ps(),Xo(e,t),Qo(e,t),ao(!0),Eh(e,t),Zo()]),l=r[0],c=r[1],f=r[2],m=r[3],g=r[4],h=r[5];let _=0,P=0,x=0;for(const M of c){(M.clock_in_at||M.kind==="makeup")&&_++,M.kind==="makeup"&&x++;const Z=uo(M,M.date,l,M.date===o);P+=Z.workedMinutes??0}const I=new Map;for(const M of c){if(!(M.clock_in_at||M.kind==="makeup"))continue;const Z=M.location||"未记录";I.set(Z,(I.get(Z)||0)+1)}const H=Array.from(I.entries()).map(M=>({name:M[0],count:M[1]})).sort((M,Z)=>Z.count-M.count),oe=f.length||1,le=new Map;for(const M of f)le.set(M.category,(le.get(M.category)||0)+1);const ie=new Set(h);for(const M of le.keys())ie.has(M)||h.push(M);const U=h.map(M=>{const Z=le.get(M)||0;return{key:M,label:M,count:Z,percent:Math.round(Z/oe*100)}}).filter(M=>M.count>0).sort((M,Z)=>Z.count-M.count),S=new Map(m.map(M=>[M.id,M.name])),D=new Map;for(const M of f){const Z=M.project_id?S.get(M.project_id)||"已删除项目":"无项目";D.set(Z,(D.get(Z)||0)+1)}const ee=Array.from(D.entries()).map(M=>({name:M[0],count:M[1]})).sort((M,Z)=>Z.count-M.count),z=f.filter(M=>M.is_milestone===1).map(M=>({date:M.date,content:M.content})),ne=f.filter(M=>M.needs_followup===1).map(M=>({date:M.date,content:M.content,remark:M.remark||""})),j=f.filter(M=>!!M.takeaway).map(M=>({date:M.date,text:M.takeaway})),T=g.map(M=>({weekStart:M.week_start,highlights:M.highlights||"",challenges:M.challenges||"",plan_next:M.plan_next||""}));return{range:{start:e,end:t,label:n},attendDays:_,totalHours:(P/60).toFixed(1),makeupCount:x,leaveCount:c.filter(M=>M.kind==="leave").length,itemCount:f.length,categoryStats:U,projectStats:ee,locationStats:H,milestones:z,followups:ne,takeaways:j,weekNotes:T}}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([$t("ai_base_url",""),$t("ai_api_key",""),$t("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",c={"Content-Type":"application/json"};o&&(c.Authorization="Bearer "+o);const m=JSON.stringify({model:r,messages:[{role:"system",content:"你是一名严谨的中文助理。请将用户提供的工作总结 Markdown 草稿润色为通顺、专业、简洁的工作总结。要求:保留原有章节结构与全部事实数据(数字、日期、条目),不得虚构或遗漏内容,只输出 Markdown 正文。"},{role:"user",content:e}],temperature:.3});let g;try{g=await fetch(l,{method:"POST",headers:c,body:m})}catch{throw new Error("无法访问 AI 接口:请检查地址是否正确、服务端是否允许浏览器跨域访问")}if(!g.ok){let P="接口返回 "+g.status;try{const x=await g.json();x&&x.error&&x.error.message&&(P+=":"+x.error.message)}catch{}throw new Error(P)}const h=await g.json(),_=h&&h.choices&&h.choices[0]&&h.choices[0].message&&h.choices[0].message.content;if(!_)throw new Error("接口未返回内容");return String(_)}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"},T_={key:1,class:"muted sum-empty"},A_={class:"muted"},P_={key:2,class:"muted sum-empty"},O_={class:"muted"},M_={key:3,class:"muted sum-empty"},I_=jt({__name:"ReportView",setup(e){const t=[{key:"week",label:"本周"},{key:"month",label:"本月"},{key:"all",label:"全部"},{key:"custom",label:"自定义"}],n=O("week"),o=O(Zs(it())),r=O(it()),l=O(null),c=O(""),f=O(!1),m=O(!1),g=O(null),h=O(""),_=O(Zs(it())),P=O(""),x=O(""),I=O(""),H=O(!1);async function oe(){const ne=await bl(_.value);P.value=(ne==null?void 0:ne.highlights)||"",x.value=(ne==null?void 0:ne.challenges)||"",I.value=(ne==null?void 0:ne.plan_next)||"",H.value=!1}async function le(){await Sh(_.value,{highlights:P.value.trim()||null,challenges:x.value.trim()||null,plan_next:I.value.trim()||null}),H.value=!0,await U()}function ie(ne){const j=it();if(ne==="week"){const T=Zs(j);return{start:T,end:Ft(T,6),label:"本周"}}if(ne==="month"){const T=j.slice(0,7);return{start:T+"-01",end:j,label:T+" 本月"}}return ne==="all"?{start:"2000-01-01",end:j,label:"全部实习期"}:{start:o.value,end:r.value,label:o.value+" ~ "+r.value}}async function U(){f.value=!0;const ne=ie(n.value),j=await Jw(ne.start,ne.end,ne.label);l.value=j,c.value=Xw(j),f.value=!1}ft(n,U),ft([o,r],()=>{n.value==="custom"&&U()}),ln(async()=>{await oe(),await U()});async function S(){const ne=it().replace(/-/g,""),j=await Ea("实习工作总结_"+ne+".md",c.value);Ne(j?"总结已导出到:"+j:"总结已导出到系统下载目录")}async function D(){await Gi(c.value),Ne("总结已复制到剪贴板")}async function ee(){if(m.value)return;h.value="";const ne=c.value.trim();if(!ne){h.value="当前草稿为空,无法润色";return}m.value=!0;try{g.value=c.value,c.value=await Qw(ne),Ne("AI 润色完成")}catch(j){g.value=null,h.value=j instanceof Error?j.message:"润色失败"}m.value=!1}function z(){g.value!==null&&(c.value=g.value),g.value=null}return(ne,j)=>($(),A("div",Zw,[i("div",e_,[i("div",t_,[($(),A(Me,null,st(t,T=>i("button",{key:T.key,class:Ye(["seg-btn",{active:n.value===T.key}]),onClick:M=>n.value=T.key},F(T.label),11,n_)),64))]),n.value==="custom"?($(),A(Me,{key:0},[Ae(i("input",{type:"date",class:"input w-date","onUpdate:modelValue":j[0]||(j[0]=T=>o.value=T)},null,512),[[De,o.value]]),j[6]||(j[6]=i("span",{class:"muted"},"至",-1)),Ae(i("input",{type:"date",class:"input w-date","onUpdate:modelValue":j[1]||(j[1]=T=>r.value=T)},null,512),[[De,r.value]])],64)):pe("",!0),j[10]||(j[10]=i("span",{class:"flex1"},null,-1)),i("button",{class:"btn btn-sm",disabled:m.value,onClick:ee},[ye(He,{name:"edit",size:14}),j[7]||(j[7]=Ct("AI 润色 ",-1))],8,s_),g.value!==null?($(),A("button",{key:1,class:"btn btn-sm",onClick:z},"还原润色前")):pe("",!0),i("button",{class:"btn btn-sm",disabled:f.value,onClick:U},[ye(He,{name:"edit",size:14}),j[8]||(j[8]=Ct("重新生成 ",-1))],8,o_),i("button",{class:"btn btn-sm",onClick:D},"复制"),i("button",{class:"btn btn-primary btn-sm",onClick:S},[ye(He,{name:"export",size:14}),j[9]||(j[9]=Ct("导出 Markdown ",-1))])]),h.value?($(),A("div",r_,F(h.value),1)):pe("",!0),i("div",a_,[i("div",i_,[i("div",l_,[i("div",u_,"本周周记("+F(_.value)+" 起)",1),j[11]||(j[11]=i("label",{class:"note-label muted"},"本周亮点",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":j[2]||(j[2]=T=>P.value=T),placeholder:"本周最有价值的一件事",onBlur:le},null,544),[[De,P.value]]),j[12]||(j[12]=i("label",{class:"note-label muted"},"踩的坑",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":j[3]||(j[3]=T=>x.value=T),placeholder:"遇到的问题与教训",onBlur:le},null,544),[[De,x.value]]),j[13]||(j[13]=i("label",{class:"note-label muted"},"下周计划",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":j[4]||(j[4]=T=>I.value=T),placeholder:"下周准备做什么",onBlur:le},null,544),[[De,I.value]]),i("div",c_,F(H.value?"已保存":"失焦自动保存"),1)]),i("div",d_,[j[14]||(j[14]=i("div",{class:"section-title"},"总结草稿(可编辑)",-1)),Ae(i("textarea",{class:"textarea md-editor","onUpdate:modelValue":j[5]||(j[5]=T=>c.value=T),spellcheck:"false"},null,512),[[De,c.value]])])]),i("div",f_,[l.value?($(),A("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)),($(!0),A(Me,null,st(l.value.categoryStats,T=>($(),A("div",{key:T.key,class:"sum-row"},[i("span",x_,F(T.label),1),i("span",$_,F(T.count)+" 条 · "+F(T.percent)+"%",1)]))),128)),l.value.categoryStats.length?pe("",!0):($(),A("div",S_,"(无)")),j[22]||(j[22]=i("div",{class:"section-sub"},"主要成果",-1)),($(!0),A(Me,null,st(l.value.milestones,(T,M)=>($(),A("div",{key:"m"+M,class:"sum-item"},[Ct(F(T.content),1),i("span",E_,"("+F(T.date)+")",1)]))),128)),l.value.milestones.length?pe("",!0):($(),A("div",T_,"(无)")),j[23]||(j[23]=i("div",{class:"section-sub"},"待跟进",-1)),($(!0),A(Me,null,st(l.value.followups,(T,M)=>($(),A("div",{key:"f"+M,class:"sum-item"},[Ct(F(T.content),1),i("span",A_,"("+F(T.date)+")",1)]))),128)),l.value.followups.length?pe("",!0):($(),A("div",P_,"(无)")),j[24]||(j[24]=i("div",{class:"section-sub"},"学习与成长",-1)),($(!0),A(Me,null,st(l.value.takeaways,(T,M)=>($(),A("div",{key:"t"+M,class:"sum-item"},[Ct(F(T.text),1),i("span",O_,"("+F(T.date)+")",1)]))),128)),l.value.takeaways.length?pe("",!0):($(),A("div",M_,"(无)"))])):pe("",!0)])])]))}}),j_=Rt(I_,[["__scopeId","data-v-7e1b08ed"]]),D_=["aria-label"],L_={class:"dialog-head"},K_={class:"dialog-title"},R_={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"},Y_={class:"seg"},J_={class:"field span2"},X_={key:0,class:"form-error"},Q_={class:"dialog-btns"},Z_=jt({__name:"TransactionDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=O("expense"),l=O(""),c=O(""),f=O(""),m=O(""),g=O(!1),h=O(!1),_=O(""),P=O(null);function x(S){n.open&&S.key==="Escape"&&o("cancel")}ft(()=>n.open,async S=>{var D;S?(await H(),r.value=n.initial.type==="income"?"income":"expense",l.value=n.initial.category,c.value=n.initial.amountYuan,f.value=n.initial.date,m.value=n.initial.note,g.value=n.initial.reimbursable===1,h.value=n.initial.reimbursed===1,_.value="",window.addEventListener("keydown",x),await Ks(),(D=P.value)==null||D.focus()):window.removeEventListener("keydown",x)}),hn(()=>window.removeEventListener("keydown",x)),ft(r,async()=>{await H(),l.value=I.value[0]||""});const I=O([]);async function H(){I.value=await la(r.value)}const oe=O("");async function le(){const S=oe.value.trim();if(S){if(I.value.includes(S)){oe.value="";return}I.value.push(S),await Wi(r.value,I.value),l.value=S,oe.value=""}}function ie(){return l.value&&I.value.includes(l.value)?l.value:I.value[0]}function U(){const S=String(c.value??"").trim(),D=Number(S);if(!S||!isFinite(D)||D<=0){_.value="请填写大于 0 的金额";return}if(!f.value){_.value="请选择日期";return}const ee=r.value==="expense"&&g.value?1:0;o("save",{type:r.value,category:ie(),amount:Math.round(D*100),date:f.value,note:String(m.value??"").trim(),reimbursable:ee,reimbursed:ee&&h.value?1:0})}return(S,D)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:D[12]||(D[12]=Nt(ee=>o("cancel"),["self"]))},[i("div",{class:"dialog",role:"dialog","aria-label":e.title},[i("div",L_,[i("span",K_,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:D[0]||(D[0]=ee=>o("cancel"))},[ye(He,{name:"close",size:16})])]),i("div",R_,[i("div",N_,[i("div",F_,[D[13]||(D[13]=i("label",null,"类型",-1)),i("div",V_,[i("button",{class:Ye(["seg-btn",{active:r.value==="expense"}]),onClick:D[1]||(D[1]=ee=>r.value="expense")},"支出",2),i("button",{class:Ye(["seg-btn",{active:r.value==="income"}]),onClick:D[2]||(D[2]=ee=>r.value="income")},"收入",2)])]),i("div",B_,[D[14]||(D[14]=i("label",null,"金额(元,必填)",-1)),Ae(i("input",{ref_key:"amountInput",ref:P,class:Ye(["input",{invalid:_.value}]),"onUpdate:modelValue":D[3]||(D[3]=ee=>c.value=ee),type:"number",min:"0",step:"0.01",placeholder:"0.00"},null,2),[[De,c.value]])]),i("div",U_,[D[15]||(D[15]=i("label",null,"日期(必填)",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":D[4]||(D[4]=ee=>f.value=ee)},null,512),[[De,f.value]])]),i("div",q_,[D[16]||(D[16]=i("label",null,"分类(可直接新增)",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":D[5]||(D[5]=ee=>l.value=ee)},[($(!0),A(Me,null,st(I.value,ee=>($(),A("option",{key:ee,value:ee},F(ee),9,H_))),128))],512),[[Hn,l.value]]),i("div",z_,[Ae(i("input",{class:"input add-cat-input","onUpdate:modelValue":D[6]||(D[6]=ee=>oe.value=ee),placeholder:"新增分类名",onKeydown:Mt(Nt(le,["prevent"]),["enter"])},null,40,W_),[[De,oe.value]]),i("button",{class:"btn btn-xs",type:"button",onClick:le},"添加")])]),r.value==="expense"?($(),A("div",G_,[D[17]||(D[17]=i("label",null,"报销状态",-1)),i("div",Y_,[i("button",{class:Ye(["seg-btn",{active:!g.value}]),onClick:D[7]||(D[7]=ee=>{g.value=!1,h.value=!1})},"无需报销",2),i("button",{class:Ye(["seg-btn",{active:g.value&&!h.value}]),onClick:D[8]||(D[8]=ee=>{g.value=!0,h.value=!1})},"待报销",2),i("button",{class:Ye(["seg-btn",{active:g.value&&h.value}]),onClick:D[9]||(D[9]=ee=>{g.value=!0,h.value=!0})},"已报销",2)])])):pe("",!0),i("div",J_,[D[18]||(D[18]=i("label",null,"备注",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":D[10]||(D[10]=ee=>m.value=ee),placeholder:"选填"},null,512),[[De,m.value]])])]),_.value?($(),A("div",X_,F(_.value),1)):pe("",!0)]),i("div",Q_,[i("button",{class:"btn btn-sm",onClick:D[11]||(D[11]=ee=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:U},"保存")])],8,D_)])):pe("",!0)]),_:1})]))}}),e1=Rt(Z_,[["__scopeId","data-v-1b57c1af"]]);function wl(e,t){return qo(e,t-1)}function qd(e,t){return Ft(qo(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=jt({__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=O(n.mode),l=O(n.month.slice(0,7)),c=O(n.cycleSel),f=O(n.customStart),m=O(n.customEnd),g=O(n.anchor),h=O("");function _(U){U.key==="Escape"&&o("close")}ft(()=>n.open,U=>{U?(r.value=n.mode,l.value=n.month.slice(0,7),c.value=n.cycleSel,f.value=n.customStart,m.value=n.customEnd,g.value=n.anchor,h.value="",window.addEventListener("keydown",_)):window.removeEventListener("keydown",_)}),ft(()=>[n.anchor,n.cycleSel],()=>{g.value=n.anchor,c.value=n.cycleSel}),hn(()=>window.removeEventListener("keydown",_));const P=rt(()=>{const U=new Set(n.months);return U.add(l.value),U.add(it().slice(0,7)),Array.from(U).sort((S,D)=>S<D?1:-1)}),x=rt(()=>n.anchor?ua(Ft(n.anchor,-1),n.anchor):"");function I(U){return U.slice(0,4)+" 年 "+Number(U.slice(5,7))+" 月"}function H(U){l.value=U,o("apply",{mode:"month",month:U}),o("close")}function oe(U){c.value=U,o("apply",{mode:"cycle",cycle:U}),o("close")}function le(){g.value&&o("saveAnchor",g.value)}function ie(){if(!f.value||!m.value){h.value="请选择开始和结束日期";return}if(f.value>m.value){h.value="开始日期不能晚于结束日期";return}h.value="",o("apply",{mode:"custom",customStart:f.value,customEnd:m.value}),o("close")}return(U,S)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:S[9]||(S[9]=Nt(D=>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]=D=>o("close"))},[ye(He,{name:"close",size:16})])]),i("div",o1,[i("div",r1,[i("button",{class:Ye(["seg-btn",{active:r.value==="month"}]),onClick:S[1]||(S[1]=D=>r.value="month")},"按月",2),i("button",{class:Ye(["seg-btn",{active:r.value==="cycle"}]),onClick:S[2]||(S[2]=D=>r.value="cycle")},"按期",2),i("button",{class:Ye(["seg-btn",{active:r.value==="custom"}]),onClick:S[3]||(S[3]=D=>r.value="custom")},"自定义",2)]),r.value==="month"?($(),A("div",a1,[($(!0),A(Me,null,st(P.value,D=>($(),A("button",{key:D,class:Ye(["opt",{active:D===l.value}]),onClick:ee=>H(D)},[i("span",null,F(I(D)),1),D===l.value?($(),gt(He,{key:0,name:"check-circle",size:15})):pe("",!0)],10,i1))),128)),P.value.length?pe("",!0):($(),A("div",l1,"还没有账目记录"))])):r.value==="cycle"?($(),A("div",u1,[i("div",c1,[S[11]||(S[11]=i("span",{class:"anchor-label"},"账期起点",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":S[4]||(S[4]=D=>g.value=D)},null,512),[[De,g.value]]),i("button",{class:"btn btn-sm",disabled:!g.value||g.value===e.anchor,onClick:le},"保存",8,d1)]),g.value?g.value!==e.anchor?($(),A("div",p1,"起点已修改,保存后按新起点重新切分")):pe("",!0):($(),A("div",f1,"填写实习开始日期并保存,自动切分为第 1、2、3…期(每期到下月同日前一天)")),e.anchor?($(),A(Me,{key:2},[e.hasBefore?($(),A("button",{key:0,class:Ye(["opt",{active:c.value==="before"}]),onClick:S[5]||(S[5]=D=>oe("before"))},[S[12]||(S[12]=i("span",null,"起点前",-1)),i("span",v1,"~ "+F(x.value),1)],2)):pe("",!0),($(!0),A(Me,null,st(e.cycleCount,D=>($(),A("button",{key:D,class:Ye(["opt",{active:c.value===D}]),onClick:ee=>oe(D)},[i("span",null,"第 "+F(D)+" 期",1),i("span",h1,F(Ht(Yi)(Ht(wl)(e.anchor,D),Ht(qd)(e.anchor,D))),1)],10,m1))),128))],64)):pe("",!0)])):($(),A("div",y1,[i("div",g1,[i("div",b1,[S[13]||(S[13]=i("label",null,"开始日期",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":S[6]||(S[6]=D=>f.value=D)},null,512),[[De,f.value]])]),i("div",w1,[S[14]||(S[14]=i("label",null,"结束日期",-1)),Ae(i("input",{class:"input",type:"date","onUpdate:modelValue":S[7]||(S[7]=D=>m.value=D)},null,512),[[De,m.value]])])]),h.value?($(),A("div",_1,F(h.value),1)):pe("",!0),i("button",{class:"btn btn-primary apply-btn",onClick:ie},"应用区间")]))]),i("div",k1,[i("button",{class:"btn btn-sm",onClick:S[8]||(S[8]=D=>o("close"))},"关闭")])])])):pe("",!0)]),_:1})]))}}),x1=Rt(C1,[["__scopeId","data-v-6269639e"]]),$1={class:"ledger-page"},S1={class:"ledger-toolbar"},E1=["disabled"],T1={class:"num"},A1=["disabled"],P1=["value"],O1={class:"cards"},M1={class:"card stat-card stat-income"},I1={class:"stat-num num amt-income"},j1={class:"card stat-card stat-expense"},D1={class:"stat-num num"},L1={class:"card stat-card stat-balance"},K1={class:"card stat-card stat-pending"},R1={class:"stat-num num amt-warn"},N1={key:0,class:"card sec"},F1={class:"bar-label"},V1={class:"bar-track"},B1={class:"muted num bar-num"},U1={key:1,class:"card section"},q1={class:"form-error"},H1={class:"card table-card"},z1={class:"tx-table"},W1={class:"num","data-label":"日期"},G1={"data-label":"分类"},Y1={class:"tag"},J1={class:"td-note","data-label":"备注"},X1={"data-label":"报销"},Q1={key:0,class:"muted"},Z1={key:1,class:"tx-done"},e0={key:2,class:"tx-pending"},t0={class:"ops-cell"},n0={class:"ops"},s0=["onClick"],o0=["onClick"],r0=["onClick"],a0={key:0},i0={class:"muted table-note num"},Gu="dsh_ledger_mode",Yu="dsh_ledger_cycle",Ju="dsh_ledger_cstart",Xu="dsh_ledger_cend",l0="0000-01-01",u0=jt({__name:"LedgerView",setup(e){const t=O("month"),n=O(it()),o=O(1),r=O(it().slice(0,7)+"-01"),l=O(it()),c=O(""),f=O(!1),m=O([]),g=O([]),h=O(!0),_=O(""),P=O(!1),x=O(null),I=O({type:"expense",category:"",amountYuan:"",date:it(),note:"",reimbursable:0,reimbursed:0}),H=O(null),oe=O(!1);function le(v){const b=Number(v.slice(0,4)),E=Number(v.slice(5,7))-1,X=new Date(b,E+1,0).getDate();return v+"-"+(X<10?"0"+X:String(X))}const ie=rt(()=>c.value?Math.max(1,Wu(c.value,it())):1),U=rt(()=>t.value==="month"?n.value.slice(0,7)+"-01":t.value==="custom"?r.value:c.value?o.value==="before"?l0:wl(c.value,o.value):n.value.slice(0,7)+"-01"),S=rt(()=>t.value==="month"?le(n.value.slice(0,7)):t.value==="custom"?l.value:c.value?o.value==="before"?Ft(c.value,-1):qd(c.value,o.value):le(n.value.slice(0,7))),D=rt(()=>t.value==="month"?Number(n.value.slice(0,4))+" 年 "+Number(n.value.slice(5,7))+" 月":t.value==="custom"?Yi(U.value,S.value):c.value?o.value==="before"?"起点前 · ~ "+ua(Ft(c.value,-1),c.value):"第 "+o.value+" 期 · "+Yi(U.value,S.value):"按期统计 · 设置起点"),ee=rt(()=>t.value==="month"?!0:t.value==="cycle"&&c.value?o.value==="before"?!1:o.value>1||f.value:!1),z=rt(()=>t.value==="month"?!0:t.value==="cycle"&&c.value?o.value==="before"?!0:o.value<ie.value:!1);function ne(v){if(t.value==="month"){n.value=qo(n.value,v);return}if(t.value!=="cycle"||!c.value)return;if(o.value==="before"){v===1&&(o.value=1);return}const b=Number(o.value)+v;if(!(b>ie.value)){if(b<1){f.value&&(o.value="before");return}o.value=b}}const j=rt(()=>t.value==="month"?n.value.slice(0,7)!==it().slice(0,7):t.value==="cycle"?!!c.value&&o.value!==ie.value:!1);function T(){t.value==="cycle"?o.value=ie.value:n.value=it()}async function M(){h.value=!0;try{g.value=await Gh(U.value,S.value),_.value=""}catch(v){_.value="账目加载失败:"+(v instanceof Error?v.stack||v.message:String(v)),Ne("账目加载失败")}h.value=!1}ln(async()=>{const v=localStorage.getItem(Gu);(v==="month"||v==="cycle"||v==="custom")&&(t.value=v);const b=localStorage.getItem(Ju),E=localStorage.getItem(Xu);b&&E&&b<=E&&(r.value=b,l.value=E);const X=localStorage.getItem(Yu);X==="before"?o.value="before":X&&Number(X)>=1&&(o.value=Number(X)),c.value=await $t("ledger.anchor",""),o.value!=="before"&&o.value>ie.value&&(o.value=ie.value),await M()}),ft([U,S],()=>{ze.value="all",M()}),ft(t,v=>localStorage.setItem(Gu,v)),ft(o,v=>localStorage.setItem(Yu,String(v))),ft([r,l],([v,b])=>{localStorage.setItem(Ju,v),localStorage.setItem(Xu,b)});async function Z(){try{m.value=await Zh(),f.value=c.value?await Uu(c.value)>0:!1}catch{}oe.value=!0}function Oe(v){t.value=v.mode,v.month&&(n.value=v.month+"-01"),v.cycle!==void 0&&(o.value=v.cycle),v.customStart&&(r.value=v.customStart),v.customEnd&&(l.value=v.customEnd)}async function Se(v){c.value=v,await Kt("ledger.anchor",v),t.value="cycle",o.value=Math.max(1,Wu(v,it()));try{f.value=await Uu(v)>0}catch{}Ne("账期起点已保存,已按新起点切分期数")}const ge=O([]);async function Pe(){ge.value=await la("expense")}Pe();const qe=rt(()=>g.value.slice().sort((v,b)=>v.date===b.date?b.id-v.id:v.date<b.date?1:-1)),Fe=rt(()=>{let v=0,b=0,E=0;for(const X of g.value)X.type==="income"?v+=X.amount:(b+=X.amount,X.reimbursable===1&&X.reimbursed!==1&&(E+=X.amount));return{income:v,expense:b,pending:E,balance:v-b}}),Je=O("all"),Ge=O("all"),ze=O("all"),re=rt(()=>Array.from(new Set(g.value.map(v=>v.category))).sort((v,b)=>v.localeCompare(b,"zh"))),J=rt(()=>qe.value.filter(v=>!(Je.value!=="all"&&v.type!==Je.value||ze.value!=="all"&&v.category!==ze.value||Ge.value==="pending"&&!(v.type==="expense"&&v.reimbursable===1&&v.reimbursed!==1)||Ge.value==="done"&&!(v.reimbursable===1&&v.reimbursed===1)))),$e=rt(()=>{const v=new Map;let b=0;for(const X of g.value)X.type==="expense"&&(v.set(X.category,(v.get(X.category)||0)+X.amount),b+=X.amount);const E=b||1;return Array.from(v.entries()).map(X=>({name:X[0],amount:X[1],percent:Math.round(X[1]/E*100)})).sort((X,ce)=>ce.amount-X.amount)});function ot(v){return(v/100).toFixed(2)}function wt(v){return(v.type==="income"?"+":"-")+ot(v.amount)}async function Ee(v){await Qh(v.id),await M(),Ne("已标记为已报销")}function xt(v){x.value=v.id,I.value={type:v.type,category:v.category,amountYuan:ot(v.amount),date:v.date,note:v.note||"",reimbursable:v.reimbursable,reimbursed:v.reimbursed},P.value=!0}function St(){x.value=null,I.value={type:"expense",category:ge.value[0]||"",amountYuan:"",date:it(),note:"",reimbursable:0,reimbursed:0},P.value=!0}async function Le(v){if(x.value){await Jh(x.value,v),P.value=!1,await M(),Ne("账目已更新");return}await Yh({type:v.type,category:v.category,amount:v.amount,date:v.date,note:v.note,reimbursable:v.reimbursable,reimbursed:v.reimbursed}),P.value=!1,await M(),Ne("已记一笔")}async function k(){H.value&&H.value.id&&await Xh(H.value.id),H.value=null,await M(),Ne("账目已删除")}return(v,b)=>($(),A("div",$1,[i("div",S1,[t.value!=="custom"?($(),A("button",{key:0,class:"icon-btn",disabled:!ee.value,title:"上一周期",onClick:b[0]||(b[0]=E=>ne(-1))},[ye(He,{name:"chevron-left",size:16})],8,E1)):pe("",!0),i("button",{class:"period-title",title:"选择统计周期",onClick:Z},[i("span",T1,F(D.value),1),ye(He,{name:"chevron-down",size:14})]),t.value!=="custom"?($(),A("button",{key:1,class:"icon-btn",disabled:!z.value,title:"下一周期",onClick:b[1]||(b[1]=E=>ne(1))},[ye(He,{name:"chevron-right",size:16})],8,A1)):pe("",!0),j.value?($(),A("button",{key:2,class:"btn btn-sm",onClick:T},F(t.value==="cycle"?"回到本期":"回到本月"),1)):pe("",!0),b[12]||(b[12]=i("span",{class:"flex1"},null,-1)),Ae(i("select",{class:"select w-filter","onUpdate:modelValue":b[2]||(b[2]=E=>Je.value=E)},[...b[8]||(b[8]=[i("option",{value:"all"},"全部类型",-1),i("option",{value:"expense"},"仅支出",-1),i("option",{value:"income"},"仅收入",-1)])],512),[[Hn,Je.value]]),Ae(i("select",{class:"select w-filter","onUpdate:modelValue":b[3]||(b[3]=E=>ze.value=E)},[b[9]||(b[9]=i("option",{value:"all"},"全部分类",-1)),($(!0),A(Me,null,st(re.value,E=>($(),A("option",{key:E,value:E},F(E),9,P1))),128))],512),[[Hn,ze.value]]),Ae(i("select",{class:"select w-filter","onUpdate:modelValue":b[4]||(b[4]=E=>Ge.value=E)},[...b[10]||(b[10]=[i("option",{value:"all"},"全部报销",-1),i("option",{value:"pending"},"待报销",-1),i("option",{value:"done"},"已报销",-1)])],512),[[Hn,Ge.value]]),i("button",{class:"btn btn-primary btn-sm",onClick:St},[ye(He,{name:"plus",size:14}),b[11]||(b[11]=Ct(" 记一笔",-1))])]),i("div",O1,[i("div",M1,[b[13]||(b[13]=i("div",{class:"muted"},"本期收入(元)",-1)),i("div",I1,F(ot(Fe.value.income)),1)]),i("div",j1,[b[14]||(b[14]=i("div",{class:"muted"},"本期支出(元)",-1)),i("div",D1,F(ot(Fe.value.expense)),1)]),i("div",L1,[b[15]||(b[15]=i("div",{class:"muted"},"本期结余(元)",-1)),i("div",{class:Ye(["stat-num num",{"amt-income":Fe.value.balance>=0,"amt-expense":Fe.value.balance<0}])},F(ot(Fe.value.balance)),3)]),i("div",K1,[b[16]||(b[16]=i("div",{class:"muted"},"待报销(元)",-1)),i("div",R1,F(ot(Fe.value.pending)),1)])]),$e.value.length?($(),A("div",N1,[b[17]||(b[17]=i("div",{class:"sec-title"},"本期支出分类",-1)),($(!0),A(Me,null,st($e.value,E=>($(),A("div",{key:E.name,class:"bar-row"},[i("span",F1,F(E.name),1),i("span",V1,[i("span",{class:"bar-fill",style:qn({width:E.percent+"%"})},null,4)]),i("span",B1,F(ot(E.amount))+" 元 · "+F(E.percent)+"%",1)]))),128))])):pe("",!0),_.value?($(),A("div",U1,[i("div",q1,F(_.value),1),b[18]||(b[18]=i("div",{class:"muted loc-note"},"请将上方完整错误文字发送给开发者",-1))])):pe("",!0),i("div",H1,[i("table",z1,[b[20]||(b[20]=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,[($(!0),A(Me,null,st(J.value,E=>($(),A("tr",{key:E.id},[i("td",W1,F(E.date),1),i("td",G1,[i("span",Y1,F(E.category),1)]),i("td",{class:Ye(["num",E.type==="income"?"amt-income":"amt-expense"]),"data-label":"金额"},F(wt(E)),3),i("td",J1,F(E.note||"--"),1),i("td",X1,[E.type!=="expense"||E.reimbursable!==1?($(),A("span",Q1,"--")):E.reimbursed===1?($(),A("span",Z1,"已报销")):($(),A("span",e0,"待报销"))]),i("td",t0,[i("div",n0,[E.type==="expense"&&E.reimbursable===1&&E.reimbursed!==1?($(),A("button",{key:0,class:"btn btn-xs",onClick:X=>Ee(E)},"标记已报销",8,s0)):pe("",!0),i("button",{class:"btn btn-xs",onClick:X=>xt(E)},"编辑",8,o0),i("button",{class:"btn btn-xs",onClick:X=>H.value=E},"删除",8,r0)])])]))),128)),!J.value.length&&!h.value?($(),A("tr",a0,[...b[19]||(b[19]=[i("td",{colspan:"6",class:"empty muted"},"该周期暂无账目",-1)])])):pe("",!0)])])]),i("div",i0,"本期 "+F(g.value.length)+" 条 · 当前筛选 "+F(J.value.length)+" 条",1),ye(e1,{open:P.value,title:x.value?"编辑账目":"记一笔",initial:I.value,onCancel:b[5]||(b[5]=E=>P.value=!1),onSave:Le},null,8,["open","title","initial"]),ye(x1,{open:oe.value,mode:t.value,anchor:c.value,month:n.value,"cycle-sel":o.value,"custom-start":r.value,"custom-end":l.value,"cycle-count":ie.value,"has-before":f.value,months:m.value,onClose:b[6]||(b[6]=E=>oe.value=!1),onApply:Oe,onSaveAnchor:Se},null,8,["open","mode","anchor","month","cycle-sel","custom-start","custom-end","cycle-count","has-before","months"]),ye(_n,{open:!!H.value,title:"删除确认",message:H.value?"将删除 "+H.value.date+" 的账目("+H.value.category+" "+ot(H.value.amount)+" 元)。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:b[7]||(b[7]=E=>H.value=null),onConfirm:k},null,8,["open","message"])]))}}),c0=Rt(u0,[["__scopeId","data-v-deda24bd"]]),d0={class:"memo-page"},f0={class:"card memo-list"},p0={class:"pane-head"},v0={class:"pane-title"},m0={class:"memo-scroll"},h0=["onClick"],y0={class:"memo-item-title"},g0={class:"muted memo-item-sub"},b0={class:"muted num memo-item-time"},w0={key:0,class:"muted empty"},_0={class:"card memo-editor"},k0={class:"editor-foot"},C0={class:"muted foot-info"},x0=["disabled"],$0=["disabled"],S0={key:1,class:"empty muted editor-empty"},E0=jt({__name:"MemoView",setup(e){const t=O([]),n=O(null),o=O(!1),r=O(""),l=O(""),c=O(null),f=O(null);async function m(){if(t.value=await Bh(),n.value&&n.value.id){const ee=t.value.find(z=>z.id===n.value.id);ee&&(n.value=ee)}}ln(async()=>{await m(),t.value.length&&_(t.value[0]),window.addEventListener("keydown",g)}),hn(()=>window.removeEventListener("keydown",g)),ft(Vi,async ee=>{if(!ee)return;t.value.length||await m();const z=t.value.find(ne=>ne.id===ee);Vi.value=null,z&&P(z)},{immediate:!0});function g(ee){(ee.ctrlKey||ee.metaKey)&&ee.key.toLowerCase()==="s"&&o.value&&h.value&&(ee.preventDefault(),oe())}const h=rt(()=>{if(!o.value)return!1;const ee=n.value?n.value.title:"",z=n.value?n.value.content:"";return r.value!==ee||l.value!==z});function _(ee){n.value=ee,o.value=!0,r.value=ee.title,l.value=ee.content}function P(ee){if(!(o.value&&n.value&&n.value.id===ee.id)){if(h.value){f.value={type:"select",memo:ee};return}_(ee)}}function x(){if(h.value){f.value={type:"new"};return}I()}function I(){n.value=null,o.value=!0,r.value="",l.value=""}function H(){n.value?_(n.value):I()}async function oe(){if(!r.value.trim()&&!l.value.trim()){Ne("标题与内容不能都为空");return}if(n.value&&n.value.id)await qh(n.value.id,r.value,l.value),Ne("备忘已保存");else{const ee=await Uh(r.value,l.value);n.value=ee,r.value=ee.title,l.value=ee.content,Ne("备忘已创建")}await m()}function le(){n.value&&n.value.id&&(c.value=n.value)}async function ie(){c.value&&c.value.id&&(await Hh(c.value.id),Ne("备忘已删除")),c.value=null,await m(),I()}function U(){const ee=f.value;f.value=null,ee&&(ee.type==="select"?_(ee.memo):I())}function S(ee){return(ee.content||"").replace(/\s+/g," ").slice(0,30)}function D(ee){return ee.replace("T"," ").slice(0,16)}return(ee,z)=>($(),A("div",d0,[i("aside",f0,[i("div",p0,[i("span",v0,"备忘录("+F(t.value.length)+")",1),i("button",{class:"btn btn-primary btn-sm",onClick:x},"新建")]),i("div",m0,[($(!0),A(Me,null,st(t.value,ne=>($(),A("div",{key:ne.id,class:Ye(["memo-item",{active:o.value&&n.value&&n.value.id===ne.id}]),onClick:j=>P(ne)},[i("div",y0,F(ne.title||"无标题"),1),i("div",g0,F(S(ne)||"空"),1),i("div",b0,F(D(ne.updated_at)),1)],10,h0))),128)),t.value.length?pe("",!0):($(),A("div",w0,"暂无备忘"))])]),i("section",_0,[o.value?($(),A(Me,{key:0},[Ae(i("input",{class:"input title-input","onUpdate:modelValue":z[0]||(z[0]=ne=>r.value=ne),placeholder:"标题"},null,512),[[De,r.value]]),Ae(i("textarea",{class:"textarea content-textarea","onUpdate:modelValue":z[1]||(z[1]=ne=>l.value=ne),placeholder:"内容"},null,512),[[De,l.value]]),i("div",k0,[i("span",C0,[h.value?($(),A(Me,{key:0},[Ct("有未保存修改")],64)):n.value&&n.value.id?($(),A(Me,{key:1},[Ct("更新于 "+F(D(n.value.updated_at)),1)],64)):($(),A(Me,{key:2},[Ct("新备忘")],64))]),z[4]||(z[4]=i("span",{class:"flex1"},null,-1)),n.value&&n.value.id?($(),A("button",{key:0,class:"btn btn-sm",onClick:le},"删除")):pe("",!0),i("button",{class:"btn btn-sm",disabled:!h.value,onClick:H},"放弃修改",8,x0),i("button",{class:"btn btn-primary btn-sm",disabled:!h.value,onClick:oe},"保存",8,$0)])],64)):($(),A("div",S0,"选择左侧备忘,或点击右上角新建"))]),ye(_n,{open:!!c.value,title:"删除确认",message:c.value?"将删除备忘「"+(c.value.title||"无标题")+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:z[2]||(z[2]=ne=>c.value=null),onConfirm:ie},null,8,["open","message"]),ye(_n,{open:!!f.value,title:"未保存提示",message:"当前备忘有未保存的修改,继续操作将丢失这些修改。","confirm-text":"放弃修改并继续",onCancel:z[3]||(z[3]=ne=>f.value=null),onConfirm:U},null,8,["open"])]))}}),T0=Rt(E0,[["__scopeId","data-v-a0931fc7"]]),A0=["aria-label"],P0={class:"dialog-head"},O0={class:"dialog-title"},M0={class:"dialog-body"},I0={class:"form-grid"},j0={class:"field span2"},D0={class:"field span2"},L0={class:"field span2"},K0={class:"pwd-row"},R0={class:"field span2"},N0={key:0,class:"form-error"},F0={class:"dialog-btns"},V0=jt({__name:"CredentialDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,o=t,r=O(""),l=O(""),c=O(""),f=O(""),m=O(""),g=O(null);function h(x){n.open&&x.key==="Escape"&&o("cancel")}ft(()=>n.open,async x=>{var I;x?(r.value=n.initial.system,l.value=n.initial.account,c.value=n.initial.password,f.value=n.initial.remark,m.value="",window.addEventListener("keydown",h),await Ks(),(I=g.value)==null||I.focus()):window.removeEventListener("keydown",h)}),hn(()=>window.removeEventListener("keydown",h));function _(){const x="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",I="!@#$%^&*",H=crypto.getRandomValues(new Uint8Array(14));let oe="";for(let le=0;le<H.length;le++)oe+=x[H[le]%x.length];oe+=I[crypto.getRandomValues(new Uint8Array(1))[0]%I.length],c.value=oe,m.value=""}function P(){if(!r.value.trim()||!l.value.trim()||!c.value){m.value="系统名称、账号、密码为必填项";return}o("save",{system:r.value.trim(),account:l.value.trim(),password:c.value,remark:f.value.trim()})}return(x,I)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:I[6]||(I[6]=Nt(H=>o("cancel"),["self"]))},[i("div",{class:"dialog",role:"dialog","aria-label":e.title},[i("div",P0,[i("span",O0,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:I[0]||(I[0]=H=>o("cancel"))},[ye(He,{name:"close",size:16})])]),i("div",M0,[i("div",I0,[i("div",j0,[I[7]||(I[7]=i("label",null,"系统名称(必填)",-1)),Ae(i("input",{ref_key:"systemInput",ref:g,class:"input","onUpdate:modelValue":I[1]||(I[1]=H=>r.value=H),placeholder:"如:企业邮箱 / OA / VPN"},null,512),[[De,r.value]])]),i("div",D0,[I[8]||(I[8]=i("label",null,"账号(必填)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":I[2]||(I[2]=H=>l.value=H),placeholder:"用户名、工号或邮箱"},null,512),[[De,l.value]])]),i("div",L0,[I[9]||(I[9]=i("label",null,"密码(必填)",-1)),i("div",K0,[Ae(i("input",{class:"input","onUpdate:modelValue":I[3]||(I[3]=H=>c.value=H),placeholder:"输入或点击生成"},null,512),[[De,c.value]]),i("button",{class:"btn btn-sm",onClick:_},"生成")])]),i("div",R0,[I[10]||(I[10]=i("label",null,"备注",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":I[4]||(I[4]=H=>f.value=H),placeholder:"用途、到期时间、负责人等(选填)"},null,512),[[De,f.value]])])]),m.value?($(),A("div",N0,F(m.value),1)):pe("",!0)]),i("div",F0,[i("button",{class:"btn btn-sm",onClick:I[5]||(I[5]=H=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:P},"保存")])],8,A0)])):pe("",!0)]),_:1})]))}}),B0=Rt(V0,[["__scopeId","data-v-2eafe20e"]]),U0={class:"vault-page"},q0={key:0,class:"empty muted"},H0={key:1,class:"card lock-card"},z0={class:"lock-badge"},W0={key:0,class:"form-error"},G0=["disabled"],Y0={key:0,class:"form-error"},J0=["disabled"],X0={class:"vault-toolbar"},Q0={class:"search-wrap"},Z0={class:"card table-card"},ek={class:"cred-table"},tk={class:"td-system"},nk=["onClick"],sk={class:"pwd-cell"},ok={class:"num pwd-text"},rk=["onClick"],ak=["onClick"],ik={class:"td-remark"},lk={class:"td-ops"},uk={class:"ops"},ck=["onClick"],dk=["onClick"],fk={key:0},pk={class:"muted table-note num"},vk={class:"dialog pwd-dialog"},mk={class:"dialog-head"},hk={class:"dialog-body"},yk={class:"vp-field"},gk={class:"vp-field"},bk={class:"vp-field"},wk={key:0,class:"form-error"},_k={class:"dialog-btns"},kk=5*60*1e3,Ck=jt({__name:"VaultView",setup(e){const t=O(null),n=O(km()),o=O(!1),r=O(""),l=O(""),c=O(""),f=O(""),m=O(""),g=O([]),h=O(""),_=O({}),P=O(!1),x=O(null),I=O({system:"",account:"",password:"",remark:""}),H=O(null),oe=O(!1),le=O(""),ie=O(""),U=O(""),S=O("");async function D(){g.value=await Em(),_.value={}}let ee=null;function z(){ee!==null&&window.clearTimeout(ee),ee=window.setTimeout(()=>{n.value&&(sa(),n.value=!1,g.value=[],_.value={},Ne("长时间未操作,密码库已自动锁定"))},kk)}function ne(){n.value&&z()}ln(async()=>{t.value=await wd(),window.addEventListener("click",ne),window.addEventListener("keydown",ne),n.value&&z()}),hn(()=>{window.removeEventListener("click",ne),window.removeEventListener("keydown",ne),ee!==null&&window.clearTimeout(ee)});const j=rt(()=>{const re=h.value.trim().toLowerCase();return re?g.value.filter(J=>(J.system+" "+J.account+" "+(J.remark||"")).toLowerCase().includes(re)):g.value});async function T(){if(!o.value){if(c.value="",!r.value){c.value="请输入主密码";return}if(r.value.length<6){c.value="主密码至少 6 位";return}if(r.value!==l.value){c.value="两次输入的主密码不一致";return}o.value=!0;try{await Cm(r.value),r.value="",l.value="",n.value=!0,z(),await D(),Ne("主密码已设置,密码库已解锁")}catch(re){c.value=re instanceof Error?re.message:"设置失败"}o.value=!1}}async function M(){if(!o.value){if(m.value="",!f.value){m.value="请输入主密码";return}o.value=!0;try{await xm(f.value),f.value="",n.value=!0,z(),await D()}catch(re){m.value=re instanceof Error?re.message:"解锁失败"}o.value=!1}}function Z(){sa(),n.value=!1,g.value=[],_.value={},ee!==null&&window.clearTimeout(ee),Ne("密码库已锁定")}async function Oe(re){const J=re.id;if(_.value[J]){_.value[J]=!1;return}try{re.passwordPlain=await gi(J),_.value[J]=!0}catch($e){Ne($e instanceof Error?$e.message:"解密失败")}}async function Se(re){try{const J=await gi(re.id);await Gi(J),Ne("密码已复制")}catch(J){Ne(J instanceof Error?J.message:"复制失败")}}async function ge(re){await Gi(re.account),Ne("账号已复制")}function Pe(){x.value=null,I.value={system:"",account:"",password:"",remark:""},P.value=!0}async function qe(re){try{const J=await gi(re.id);x.value=re.id,I.value={system:re.system,account:re.account,password:J,remark:re.remark||""},P.value=!0}catch(J){Ne(J instanceof Error?J.message:"解密失败")}}async function Fe(re){const J=x.value??void 0;await Tm(re,J),P.value=!1,await D(),Ne(J?"账号已更新":"账号已添加")}async function Je(){H.value&&H.value.id&&(await Am(H.value.id),Ne("账号已删除")),H.value=null,await D()}function Ge(){le.value="",ie.value="",U.value="",S.value="",oe.value=!0}async function ze(){S.value="";try{const re=await Pm(le.value,ie.value);oe.value=!1,le.value="",ie.value="",U.value="",Ne("主密码已修改,"+re+" 条账号密码已重新加密")}catch(re){S.value=re instanceof Error?re.message:"修改失败"}}return(re,J)=>($(),A("div",U0,[t.value===null?($(),A("div",q0,"加载中")):n.value?($(),A(Me,{key:2},[i("div",X0,[i("div",Q0,[ye(He,{name:"search",size:14,class:"search-icon"}),Ae(i("input",{class:"input","onUpdate:modelValue":J[3]||(J[3]=$e=>h.value=$e),placeholder:"搜索系统名称、账号或备注"},null,512),[[De,h.value]])]),J[16]||(J[16]=i("span",{class:"flex1"},null,-1)),i("button",{class:"btn btn-sm",onClick:Ge},"修改主密码"),i("button",{class:"btn btn-sm",onClick:Z},"锁定"),i("button",{class:"btn btn-primary btn-sm",onClick:Pe},"新增账号")]),i("div",Z0,[i("table",ek,[J[18]||(J[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,[($(!0),A(Me,null,st(j.value,$e=>($(),A("tr",{key:$e.id},[i("td",tk,F($e.system),1),i("td",null,[i("span",{class:"copyable",title:"点击复制账号",onClick:ot=>ge($e)},F($e.account),9,nk)]),i("td",null,[i("div",sk,[i("span",ok,F(_.value[$e.id]?$e.passwordPlain:"........"),1),i("button",{class:"btn btn-xs",onClick:ot=>Oe($e)},F(_.value[$e.id]?"隐藏":"显示"),9,rk),i("button",{class:"btn btn-xs",onClick:ot=>Se($e)},"复制",8,ak)])]),i("td",ik,F($e.remark||"--"),1),i("td",lk,[i("div",uk,[i("button",{class:"btn btn-xs",onClick:ot=>qe($e)},"编辑",8,ck),i("button",{class:"btn btn-xs",onClick:ot=>H.value=$e},"删除",8,dk)])])]))),128)),j.value.length?pe("",!0):($(),A("tr",fk,[...J[17]||(J[17]=[i("td",{colspan:"5",class:"empty muted"},"暂无账号,点击右上角新增",-1)])]))])])]),i("div",pk,"共 "+F(g.value.length)+" 条账号记录 · 密码以 AES-256-GCM 加密,服务器仅存密文",1)],64)):($(),A("div",H0,[i("div",z0,[ye(He,{name:"lock",size:26})]),t.value===!1?($(),A(Me,{key:0},[J[12]||(J[12]=i("div",{class:"lock-title"},"设置主密码",-1)),J[13]||(J[13]=i("div",{class:"muted lock-tip"},"主密码用于加密保存在本机的账号密码,遗忘后无法找回,请务必牢记",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[0]||(J[0]=$e=>r.value=$e),placeholder:"设置主密码(至少 6 位)",onKeydown:Mt(T,["enter"])},null,544),[[De,r.value]]),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[1]||(J[1]=$e=>l.value=$e),placeholder:"再次输入主密码",onKeydown:Mt(T,["enter"])},null,544),[[De,l.value]]),c.value?($(),A("div",W0,F(c.value),1)):pe("",!0),i("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:T},"完成设置并解锁",8,G0)],64)):($(),A(Me,{key:1},[J[14]||(J[14]=i("div",{class:"lock-title"},"密码库已锁定",-1)),J[15]||(J[15]=i("div",{class:"muted lock-tip"},"输入主密码解锁后查看与复制密码",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[2]||(J[2]=$e=>f.value=$e),placeholder:"主密码",onKeydown:Mt(M,["enter"])},null,544),[[De,f.value]]),m.value?($(),A("div",Y0,F(m.value),1)):pe("",!0),i("button",{class:"btn btn-primary lock-btn",disabled:o.value,onClick:M},"解锁",8,J0)],64))])),ye(B0,{open:P.value,title:x.value?"编辑账号":"新增账号",initial:I.value,onCancel:J[4]||(J[4]=$e=>P.value=!1),onSave:Fe},null,8,["open","title","initial"]),ye(_n,{open:!!H.value,title:"删除确认",message:H.value?"将删除系统「"+H.value.system+"」的账号记录。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:J[5]||(J[5]=$e=>H.value=null),onConfirm:Je},null,8,["open","message"]),($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[oe.value?($(),A("div",{key:0,class:"mask",onClick:J[11]||(J[11]=Nt($e=>oe.value=!1,["self"]))},[i("div",vk,[i("div",mk,[J[19]||(J[19]=i("span",{class:"dialog-title"},"修改主密码",-1)),i("button",{class:"icon-btn",title:"关闭",onClick:J[6]||(J[6]=$e=>oe.value=!1)},[ye(He,{name:"close",size:16})])]),i("div",hk,[i("div",yk,[J[20]||(J[20]=i("label",null,"旧主密码",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[7]||(J[7]=$e=>le.value=$e)},null,512),[[De,le.value]])]),i("div",gk,[J[21]||(J[21]=i("label",null,"新主密码(至少 6 位)",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[8]||(J[8]=$e=>ie.value=$e)},null,512),[[De,ie.value]])]),i("div",bk,[J[22]||(J[22]=i("label",null,"确认新主密码",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":J[9]||(J[9]=$e=>U.value=$e)},null,512),[[De,U.value]])]),S.value?($(),A("div",wk,F(S.value),1)):pe("",!0),J[23]||(J[23]=i("div",{class:"muted vp-tip"},"确认后所有账号密码将使用新主密码重新加密",-1))]),i("div",_k,[i("button",{class:"btn btn-sm",onClick:J[10]||(J[10]=$e=>oe.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:ze},"确认修改")])])])):pe("",!0)]),_:1})]))]))}}),xk=Rt(Ck,[["__scopeId","data-v-6d2745bc"]]),$k=["aria-label"],Sk={class:"dialog-head"},Ek={class:"dialog-title"},Tk={class:"dialog-body"},Ak={class:"field"},Pk={key:0},Ok=["placeholder"],Mk={key:1,class:"form-error"},Ik={class:"dialog-btns"},jk=jt({__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=O(""),l=O(""),c=O(null);function f(g){n.open&&g.key==="Escape"&&o("cancel")}ft(()=>n.open,async g=>{var h,_;g?(r.value=n.initial,l.value="",window.addEventListener("keydown",f),await Ks(),(h=c.value)==null||h.focus(),(_=c.value)==null||_.select()):window.removeEventListener("keydown",f)}),hn(()=>window.removeEventListener("keydown",f));function m(){const g=r.value.trim();if(!g){l.value="请输入内容";return}const h=n.validate?n.validate(g):null;if(h){l.value=h;return}o("confirm",g)}return(g,h)=>($(),gt(kn,{to:"body"},[ye(Gn,{name:"modal"},{default:Cn(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:h[3]||(h[3]=Nt(_=>o("cancel"),["self"]))},[i("div",{class:"dialog input-dialog",role:"dialog","aria-label":e.title},[i("div",Sk,[i("span",Ek,F(e.title),1),i("button",{class:"icon-btn",title:"关闭",onClick:h[0]||(h[0]=_=>o("cancel"))},[ye(He,{name:"close",size:16})])]),i("div",Tk,[i("div",Ak,[e.label?($(),A("label",Pk,F(e.label),1)):pe("",!0),Ae(i("input",{ref_key:"input",ref:c,class:Ye(["input",{invalid:l.value}]),"onUpdate:modelValue":h[1]||(h[1]=_=>r.value=_),placeholder:e.placeholder,maxlength:"20",onKeydown:Mt(m,["enter"])},null,42,Ok),[[De,r.value]]),l.value?($(),A("div",Mk,F(l.value),1)):pe("",!0)])]),i("div",Ik,[i("button",{class:"btn btn-sm",onClick:h[2]||(h[2]=_=>o("cancel"))},"取消"),i("button",{class:"btn btn-primary btn-sm",onClick:m},F(e.confirmText),1)])],8,$k)])):pe("",!0)]),_:1})]))}}),Dk=Rt(jk,[["__scopeId","data-v-4b14ba4f"]]);function Lk(e){return'"'+(e==null?"":String(e)).replace(/"/g,'""')+'"'}async function Qu(e,t){const o="\uFEFF"+t.map(f=>f.map(Lk).join(",")).join(`\r
|
||
`);if(lo.isNativePlatform()){const{downloadText:f}=await Fd(async()=>{const{downloadText:m}=await Promise.resolve().then(()=>tb);return{downloadText:m}},void 0,import.meta.url);return f(e,o)}const r=new Blob([o],{type:"text/csv;charset=utf-8"}),l=URL.createObjectURL(r),c=document.createElement("a");return c.href=l,c.download=e,c.click(),window.setTimeout(()=>URL.revokeObjectURL(l),1e4),""}const Kk={class:"settings"},Rk={class:"card section"},Nk={class:"muted acc-line"},Fk={class:"ai-grid"},Vk={class:"rule-item"},Bk={class:"rule-item"},Uk={class:"rule-item"},qk={key:0,class:"form-error"},Hk={class:"rule-save"},zk={class:"card section"},Wk={class:"rule-grid"},Gk={class:"rule-item"},Yk={class:"rule-item"},Jk={class:"rule-item"},Xk={class:"rule-item"},Qk={class:"rule-item"},Zk={class:"card section"},eC={class:"proj-add"},tC={key:0,class:"muted proj-tip"},nC=["onKeydown"],sC=["onClick"],oC=["onClick"],rC=["onClick"],aC={key:1,class:"muted"},iC={class:"card section"},lC={class:"card section"},uC={class:"muted acc-line"},cC={class:"rule-save"},dC=["disabled"],fC={key:0,class:"muted acc-line"},pC={key:1,class:"form-error"},vC={key:2,class:"form-error"},mC={class:"card section"},hC={class:"ai-grid"},yC={class:"rule-item"},gC={class:"rule-item"},bC={class:"rule-item"},wC={class:"card section"},_C={class:"cat-block"},kC={class:"cat-head"},CC={class:"cat-chips"},xC=["onClick"],$C=["onClick"],SC={class:"cat-block"},EC={class:"cat-head"},TC={class:"cat-chips"},AC=["onClick"],PC=["onClick"],OC={class:"cat-block"},MC={class:"cat-head"},IC={class:"cat-chips"},jC=["onClick"],DC=["onClick"],LC={class:"card section"},KC={class:"backup-row"},RC={key:0,class:"import-error"},NC=jt({__name:"SettingsView",setup(e){var Be;const t=O({work_start:"09:00",work_end:"18:00",grace_minutes:10,lunch_minutes:60,remind_weekly:"friday"}),n=O([]),o=O(""),r=O(""),l=O(""),c=O(""),f=O(""),m=O(""),g=O(null),h=O(""),_=O([]),P=O([]),x=O([]);async function I(){_.value=await Zo(),P.value=await la("expense"),x.value=await la("income")}const H=O({open:!1,kind:"log",index:-1,initial:""}),oe=O(null);function le(ue){return ue==="log"?_.value:ue==="expense"?P.value:x.value}async function ie(ue,G){ue==="log"?(_.value=G,await ry(G)):ue==="expense"?(P.value=G,await Wi("expense",G)):(x.value=G,await Wi("income",G))}function U(ue){H.value={open:!0,kind:ue,index:-1,initial:""}}function S(ue,G,de){H.value={open:!0,kind:ue,index:G,initial:de}}function D(ue){const{kind:G,index:de}=H.value,je=le(G);return je.includes(ue)&&!(de>=0&&je[de]===ue)?"该分类已存在":null}async function ee(ue){const{kind:G,index:de}=H.value;de>=0?(await ie(G,le(G).map((je,at)=>at===de?ue:je)),Ne("分类已更新(历史记录自动跟随显示)")):(await ie(G,[...le(G),ue]),Ne("分类已添加")),H.value.open=!1}function z(ue,G){const de=le(ue);if(de.length<=1){Ne("至少保留一个分类");return}oe.value={kind:ue,index:G,name:de[G]}}async function ne(){if(!oe.value)return;const{kind:ue,index:G}=oe.value;await ie(ue,le(ue).filter((de,je)=>je!==G)),Ne("分类已删除"),oe.value=null}const j=O(null),T=O(null),M=O(""),Z=O(((Be=zo())==null?void 0:Be.username)||""),Oe=O(""),Se=O(""),ge=O(""),Pe=O(""),qe=O(!1),Fe="0.7.2",Je=O(""),Ge=O(""),ze=O(""),re=O(""),J=O(!1),$e=O("");async function ot(){var ue;Je.value=((ue=pn())==null?void 0:ue.username)||"",$e.value=await Qm(),re.value=eo.value}ft(eo,ue=>{re.value=ue});async function wt(){ze.value="";try{await Td(),Ne("云端绑定已重建")}catch(ue){ze.value=ue instanceof Error?ue.message:"绑定失败"}}async function Ee(){if(!J.value){ze.value="",re.value=eo.value,J.value=!0;try{const ue=await Bi();$e.value=ue.at,Ge.value="推送 "+ue.pushed+" 条 · 拉取 "+ue.pulled+" 条 · 删除 "+ue.removed+" 条",re.value="",Ne("同步完成")}catch(ue){ze.value=ue instanceof Error?ue.message:"同步失败"}J.value=!1}}async function xt(){if(Pe.value="",Se.value!==ge.value){Pe.value="两次输入的新密码不一致";return}try{await Hm(Oe.value,Se.value),Oe.value="",Se.value="",ge.value="",Ne("登录密码已修改")}catch(ue){Pe.value=ue instanceof Error?ue.message:"修改失败"}}async function St(){await zm(),window.location.reload()}async function Le(){t.value=await ps(),n.value=await ao(!0),l.value=(await gl()).join(`
|
||
`),c.value=await $t("ai_base_url",""),f.value=await $t("ai_api_key",""),m.value=await $t("ai_model",""),await ot(),await I()}async function k(){await Kt("ai_base_url",c.value.trim()),await Kt("ai_api_key",f.value.trim()),await Kt("ai_model",m.value.trim()),Ne("AI 配置已保存")}async function v(){const ue=it(),G=await Promise.all([Qo("2000-01-01",ue),ao(!0)]),de=G[0],je=G[1],at=new Map(je.map(Ze=>[Ze.id,Ze.name])),yt=[["日期","分类","项目","内容","耗时(分钟)","成果","待跟进","收获","备注"]];for(const Ze of de)yt.push([Ze.date,Uo(Ze.category),Ze.project_id&&at.get(Ze.project_id)||"",Ze.content,Ze.minutes==null?"":Ze.minutes,Ze.is_milestone?"是":"",Ze.needs_followup?"是":"",Ze.takeaway||"",Ze.remark||""]);const Dt=await Qu("工作记录_"+ue.replace(/-/g,"")+".csv",yt);Ne(Dt?"CSV 已导出到:"+Dt:"CSV 已导出到系统下载目录")}async function b(){const ue=it(),G=await Promise.all([ps(),Xo("2000-01-01",ue)]),de=G[0],je=G[1],at=["周日","周一","周二","周三","周四","周五","周六"],yt=[["日期","星期","状态","上班时间","下班时间","地点","类型","说明"]];for(const Ze of je){const Qt=uo(Ze,Ze.date,de,Ze.date===ue);yt.push([Ze.date,at[Rs(Ze.date).getDay()],Qt.label,Ze.clock_in_at?zn(Ze.clock_in_at):"",Ze.clock_out_at?zn(Ze.clock_out_at):"",Ze.location||"",Ze.kind==="makeup"?"补卡":Ze.kind==="leave"?"休假":"正常",Ze.note||""])}const Dt=await Qu("考勤记录_"+ue.replace(/-/g,"")+".csv",yt);Ne(Dt?"CSV 已导出到:"+Dt:"CSV 已导出到系统下载目录")}ln(Le);async function E(){await Kt("work_start",t.value.work_start),await Kt("work_end",t.value.work_end),await Kt("grace_minutes",String(t.value.grace_minutes)),await Kt("lunch_minutes",String(t.value.lunch_minutes)),await Kt("remind_weekly",t.value.remind_weekly),Ne("打卡规则已保存")}async function X(){await jd(l.value.split(`
|
||
`)),Ne("常用地点已保存")}async function ce(){const ue=o.value.trim();if(ue){try{await ph(ue),r.value="",o.value=""}catch{r.value="项目名已存在"}await Le()}}function xe(ue){g.value=ue.id,h.value=ue.name}async function be(ue){const G=h.value.trim();if(G)try{await vh(ue.id,G),r.value=""}catch{r.value="项目名已存在"}g.value=null,await Le()}async function _e(ue){await mh(ue.id,ue.archived!==1),await Le()}async function fe(){try{const ue=await ey(),G=await Ea("实习日志备份_"+it().replace(/-/g,"")+".json",ue);Ne(G?"备份已导出到:"+G:"备份已导出到系统下载目录")}catch(ue){Ne("导出失败:"+(ue instanceof Error?ue.message:String(ue)))}}function Ke(ue){const G=ue.target,de=G.files&&G.files[0];if(M.value="",!de)return;const je=de.name;de.text().then(at=>{T.value={name:je,text:at}}),G.value=""}async function Te(){if(T.value)try{await ty(T.value.text),T.value=null,M.value="",await Le(),Ne("数据导入完成")}catch(ue){T.value=null,M.value=ue instanceof Error?ue.message:"导入失败"}}return(ue,G)=>($(),A("div",Kk,[i("div",Rk,[G[27]||(G[27]=i("div",{class:"section-title"},"账号与隐私",-1)),i("div",Nk,"v"+F(Ht(Fe))+" · 当前账号 "+F(Z.value)+" · 登录密码仅存 PBKDF2 哈希",1),i("div",Fk,[i("div",Vk,[G[24]||(G[24]=i("label",null,"旧登录密码",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":G[0]||(G[0]=de=>Oe.value=de)},null,512),[[De,Oe.value]])]),i("div",Bk,[G[25]||(G[25]=i("label",null,"新登录密码(至少 6 位)",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":G[1]||(G[1]=de=>Se.value=de)},null,512),[[De,Se.value]])]),i("div",Uk,[G[26]||(G[26]=i("label",null,"确认新登录密码",-1)),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":G[2]||(G[2]=de=>ge.value=de)},null,512),[[De,ge.value]])])]),Pe.value?($(),A("div",qk,F(Pe.value),1)):pe("",!0),i("div",Hk,[i("button",{class:"btn btn-primary btn-sm",onClick:xt},"修改登录密码"),i("button",{class:"btn btn-sm btn-danger",onClick:G[3]||(G[3]=de=>qe.value=!0)},"删除此用户及全部数据")])]),i("div",zk,[G[34]||(G[34]=i("div",{class:"section-title"},"打卡规则",-1)),i("div",Wk,[i("div",Gk,[G[28]||(G[28]=i("label",null,"上班时间",-1)),Ae(i("input",{type:"time",class:"input","onUpdate:modelValue":G[4]||(G[4]=de=>t.value.work_start=de)},null,512),[[De,t.value.work_start]])]),i("div",Yk,[G[29]||(G[29]=i("label",null,"下班时间",-1)),Ae(i("input",{type:"time",class:"input","onUpdate:modelValue":G[5]||(G[5]=de=>t.value.work_end=de)},null,512),[[De,t.value.work_end]])]),i("div",Jk,[G[30]||(G[30]=i("label",null,"迟到宽限(分钟)",-1)),Ae(i("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":G[6]||(G[6]=de=>t.value.grace_minutes=de)},null,512),[[De,t.value.grace_minutes,void 0,{number:!0}]])]),i("div",Xk,[G[31]||(G[31]=i("label",null,"午休扣除(分钟)",-1)),Ae(i("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":G[7]||(G[7]=de=>t.value.lunch_minutes=de)},null,512),[[De,t.value.lunch_minutes,void 0,{number:!0}]])]),i("div",Qk,[G[33]||(G[33]=i("label",null,"周记提醒",-1)),Ae(i("select",{class:"select","onUpdate:modelValue":G[8]||(G[8]=de=>t.value.remind_weekly=de)},[...G[32]||(G[32]=[i("option",{value:"friday"},"每周五提醒",-1),i("option",{value:"off"},"关闭",-1)])],512),[[Hn,t.value.remind_weekly]])])]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:E},"保存规则")])]),i("div",Zk,[G[35]||(G[35]=i("div",{class:"section-title"},"项目管理",-1)),i("div",eC,[Ae(i("input",{class:"input","onUpdate:modelValue":G[9]||(G[9]=de=>o.value=de),placeholder:"新项目名称",onKeydown:Mt(ce,["enter"])},null,544),[[De,o.value]]),i("button",{class:"btn btn-sm",onClick:ce},"添加")]),r.value?($(),A("div",tC,F(r.value),1)):pe("",!0),($(!0),A(Me,null,st(n.value,de=>($(),A("div",{key:de.id,class:"proj-row"},[g.value===de.id?($(),A(Me,{key:0},[Ae(i("input",{class:"input","onUpdate:modelValue":G[10]||(G[10]=je=>h.value=je),onKeydown:Mt(je=>be(de),["enter"])},null,40,nC),[[De,h.value]]),i("button",{class:"btn btn-sm",onClick:je=>be(de)},"保存",8,sC),i("button",{class:"btn btn-sm",onClick:G[11]||(G[11]=je=>g.value=null)},"取消")],64)):($(),A(Me,{key:1},[i("span",{class:Ye(["proj-name",{archived:de.archived===1}])},F(de.name),3),i("button",{class:"icon-btn",title:"重命名",onClick:je=>xe(de)},[ye(He,{name:"edit",size:14})],8,oC),i("button",{class:"btn btn-sm",onClick:je=>_e(de)},F(de.archived===1?"恢复":"归档"),9,rC)],64))]))),128)),n.value.length?pe("",!0):($(),A("div",aC,"暂无项目,先添加一个"))]),i("div",iC,[G[37]||(G[37]=i("div",{class:"section-title"},"常用地点",-1)),Ae(i("textarea",{class:"textarea","onUpdate:modelValue":G[12]||(G[12]=de=>l.value=de),placeholder:"每行一个地点,如:公司、客户现场、出差、居家办公"},null,512),[[De,l.value]]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:X},"保存地点"),G[36]||(G[36]=i("span",{class:"muted loc-note"},"打卡时可直接输入新地点,保存后自动加入列表",-1))])]),i("div",lC,[G[38]||(G[38]=i("div",{class:"section-title"},"多端数据同步",-1)),i("div",uC,"云端账号:"+F(Je.value||"未绑定")+" · 数据存于服务器,其他端变更秒级自动刷新",1),i("div",cC,[i("button",{class:"btn btn-primary btn-sm",disabled:J.value,onClick:Ee},F(J.value?"同步中":"立即同步"),9,dC),i("button",{class:"btn btn-sm",onClick:wt},"重新校验连接")]),Ge.value?($(),A("div",fC,"上次同步:"+F($e.value||"--")+" · "+F(Ge.value),1)):pe("",!0),ze.value?($(),A("div",pC,F(ze.value),1)):pe("",!0),re.value?($(),A("div",vC,"最近自动同步失败:"+F(re.value)+"(可点「立即同步」重试)",1)):pe("",!0)]),i("div",mC,[G[43]||(G[43]=i("div",{class:"section-title"},"AI 润色配置(可选)",-1)),i("div",hC,[i("div",yC,[G[39]||(G[39]=i("label",null,"接口地址(OpenAI 兼容,到 /v1 为止)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":G[13]||(G[13]=de=>c.value=de),placeholder:"https://api.example.com/v1"},null,512),[[De,c.value]])]),i("div",gC,[G[40]||(G[40]=i("label",null,"API Key",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":G[14]||(G[14]=de=>f.value=de),placeholder:"sk-..."},null,512),[[De,f.value]])]),i("div",bC,[G[41]||(G[41]=i("label",null,"模型名称",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":G[15]||(G[15]=de=>m.value=de),placeholder:"如:deepseek-chat"},null,512),[[De,m.value]])])]),i("div",{class:"rule-save"},[i("button",{class:"btn btn-primary btn-sm",onClick:k},"保存 AI 配置"),G[42]||(G[42]=i("span",{class:"muted loc-note"},"配置仅保存在本机;总结页「AI 润色」需此处先配置",-1))])]),i("div",wC,[G[47]||(G[47]=i("div",{class:"section-title"},"工作分类",-1)),i("div",_C,[i("div",kC,[G[44]||(G[44]=i("span",{class:"muted"},"工作记录分类",-1)),i("button",{class:"btn btn-xs",onClick:G[16]||(G[16]=de=>U("log"))},"添加")]),i("div",CC,[($(!0),A(Me,null,st(_.value,(de,je)=>($(),A("span",{key:de+je,class:"cat-chip"},[Ct(F(de)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:at=>S("log",je,de)},"改",8,xC),i("button",{class:"chip-btn",title:"删除",onClick:at=>z("log",je)},"删",8,$C)]))),128))])]),i("div",SC,[i("div",EC,[G[45]||(G[45]=i("span",{class:"muted"},"记账支出分类",-1)),i("button",{class:"btn btn-xs",onClick:G[17]||(G[17]=de=>U("expense"))},"添加")]),i("div",TC,[($(!0),A(Me,null,st(P.value,(de,je)=>($(),A("span",{key:de+je,class:"cat-chip"},[Ct(F(de)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:at=>S("expense",je,de)},"改",8,AC),i("button",{class:"chip-btn",title:"删除",onClick:at=>z("expense",je)},"删",8,PC)]))),128))])]),i("div",OC,[i("div",MC,[G[46]||(G[46]=i("span",{class:"muted"},"记账收入分类",-1)),i("button",{class:"btn btn-xs",onClick:G[18]||(G[18]=de=>U("income"))},"添加")]),i("div",IC,[($(!0),A(Me,null,st(x.value,(de,je)=>($(),A("span",{key:de+je,class:"cat-chip"},[Ct(F(de)+" ",1),i("button",{class:"chip-btn",title:"修改",onClick:at=>S("income",je,de)},"改",8,jC),i("button",{class:"chip-btn",title:"删除",onClick:at=>z("income",je)},"删",8,DC)]))),128))])])]),i("div",LC,[G[48]||(G[48]=i("div",{class:"section-title"},"数据备份",-1)),i("div",KC,[i("button",{class:"btn btn-sm",onClick:fe},"导出 JSON 备份"),i("button",{class:"btn btn-sm",onClick:G[19]||(G[19]=de=>{var je;return(je=j.value)==null?void 0:je.click()})},"导入 JSON 备份"),i("button",{class:"btn btn-sm",onClick:v},"导出工作记录 CSV"),i("button",{class:"btn btn-sm",onClick:b},"导出考勤 CSV"),i("input",{ref_key:"fileInput",ref:j,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:Ke},null,544)]),M.value?($(),A("div",RC,F(M.value),1)):pe("",!0),G[49]||(G[49]=i("div",{class:"muted backup-note"},"数据保存在云端服务器;导出的 JSON 备份用于跨设备迁移或灾后恢复。",-1))]),ye(Dk,{open:H.value.open,title:H.value.index>=0?"修改分类名称":"添加分类",label:"分类名称",placeholder:"如:制度学习 / 差旅交通",initial:H.value.initial,validate:D,"confirm-text":"保存",onCancel:G[20]||(G[20]=de=>H.value.open=!1),onConfirm:ee},null,8,["open","title","initial"]),ye(_n,{open:!!oe.value,title:"删除分类",message:oe.value?"将删除分类「"+oe.value.name+"」。历史记录不受影响,仍按原分类展示。":"","confirm-text":"删除",danger:"",onCancel:G[21]||(G[21]=de=>oe.value=null),onConfirm:ne},null,8,["open","message"]),ye(_n,{open:!!T.value,title:"导入确认",message:T.value?"将从文件「"+T.value.name+"」导入备份。现有全部数据将被覆盖,且不可恢复,请先确认已导出当前备份。":"","confirm-text":"覆盖导入",danger:"",onCancel:G[22]||(G[22]=de=>T.value=null),onConfirm:Te},null,8,["open","message"]),ye(_n,{open:qe.value,title:"删除用户确认",message:"将永久删除云端账号「"+Z.value+"」及其服务器上的全部数据:工作日志、考勤、备忘录、账号密码库都将被清除,任何设备都无法再取回,且不可恢复。请确认。","confirm-text":"永久删除",danger:"",onCancel:G[23]||(G[23]=de=>qe.value=!1),onConfirm:St},null,8,["open","message"])]))}}),FC=Rt(NC,[["__scopeId","data-v-10f77319"]]),VC={class:"tp-main"},BC={class:"tp-title"},UC={class:"tp-meta"},qC={class:"tp-time num"},HC=jt({__name:"TimerPanel",setup(e){const t=O(null),n=O(Date.now());let o=null,r=null;async function l(){try{t.value=await Ah()}catch{}}const c=rt(()=>{const h=t.value;if(!h||!h.timer_started_at)return 0;const _=(h.actual_minutes||0)*60,P=Math.max(0,Math.floor((n.value-new Date(h.timer_started_at).getTime())/1e3));return _+P}),f=rt(()=>{const h=c.value,_=Math.floor(h/3600),P=Math.floor(h%3600/60),x=h%60,I=H=>String(H).padStart(2,"0");return _>0?_+":"+I(P)+":"+I(x):P+":"+I(x)});async function m(){const h=t.value;h&&(await Sa(h.id),Ne("已停止计时:"+h.title),await l())}function g(){location.hash="#/plan"}return ft(Sd,()=>{l()}),ln(()=>{l(),o=window.setInterval(()=>{l()},15e3),r=window.setInterval(()=>{n.value=Date.now()},1e3),window.addEventListener("focus",l)}),hn(()=>{o!==null&&window.clearInterval(o),r!==null&&window.clearInterval(r),window.removeEventListener("focus",l)}),(h,_)=>($(),gt(Gn,{name:"tp"},{default:Cn(()=>[t.value&&t.value.timer_started_at?($(),A("div",{key:0,class:"tp",onClick:g,title:"点击查看计划页"},[_[0]||(_[0]=i("span",{class:"tp-pulse"},null,-1)),i("span",VC,[i("span",BC,F(t.value.title),1),i("span",UC,F(t.value.kind)+" · 计时中",1)]),i("span",qC,F(f.value),1),i("span",{class:"tp-stop",role:"button",title:"停止计时",onClick:Nt(m,["stop"])},"停止")])):pe("",!0)]),_:1}))}}),zC=Rt(HC,[["__scopeId","data-v-a8f9ed22"]]),WC={class:"admin-page"},GC={class:"card table-card"},YC={class:"toolbar"},JC={key:0,class:"form-error tb-error"},XC={class:"admin-table"},QC={class:"td-name","data-label":"用户名"},ZC={"data-label":"角色"},ex={key:0,class:"role-badge"},tx={key:1,class:"muted"},nx={class:"muted num","data-label":"创建时间"},sx={class:"muted num","data-label":"数据量"},ox={class:"td-ops"},rx={class:"ops"},ax=["onClick"],ix=["disabled","onClick"],lx={key:0},ux={key:1,class:"muted load-line"},cx={class:"dialog",role:"dialog","aria-label":"新增用户"},dx={class:"dialog-head"},fx={class:"dialog-body"},px={class:"form-row"},vx={class:"form-row"},mx={class:"form-row"},hx={key:0,class:"form-error"},yx={class:"dialog-btns"},gx=["disabled"],bx={class:"dialog",role:"dialog","aria-label":"重置密码"},wx={class:"dialog-head"},_x={class:"dialog-title"},kx={class:"dialog-body"},Cx={class:"form-row"},xx={key:0,class:"form-error"},$x={class:"dialog-btns"},Sx=["disabled"],Ex=jt({__name:"UserAdminView",setup(e){const t=O([]),n=O(""),o=O(!0),r=O("");async function l(j,T){const M=await Ns();let Z=$a();if(!Z){const Se=pn(),ge=await fetch(M+"/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(ge.ok){const Pe=await ge.json();Z=String(Pe.token||""),Ho(Z)}}const Oe=await fetch(M+j,{method:T?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Z},body:T?JSON.stringify(T):void 0});if(Oe.status===401&&pn()){const Se=pn(),ge=await fetch(M+"/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(ge.ok){const Pe=await ge.json();Z=String(Pe.token||""),Ho(Z);const qe=await fetch(M+j,{method:T?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Z},body:T?JSON.stringify(T):void 0});return{ok:qe.ok,status:qe.status,data:await qe.json().catch(()=>({}))}}}return{ok:Oe.ok,status:Oe.status,data:await Oe.json().catch(()=>({}))}}async function c(){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 m(j){return(j||"").slice(0,10)}const g=O(!1),h=O(""),_=O(""),P=O(""),x=O(""),I=O(!1);function H(){g.value=!0,x.value="",h.value="",_.value="",P.value=""}async function oe(){const j=h.value.trim();if(_.value!==P.value){x.value="两次输入的密码不一致";return}if(_.value.length<6){x.value="密码至少 6 位";return}I.value=!0;const T=await l("/api/admin/users/create",{username:j,password:_.value});if(I.value=!1,!T.ok){x.value=T.data&&T.data.error||"创建失败 "+T.status;return}Ne("用户「"+j+"」已创建"),g.value=!1,await c()}const le=O(null),ie=O(""),U=O(""),S=O(!1);function D(j){le.value=j,ie.value="",U.value=""}async function ee(){if(!le.value)return;if(ie.value.length<6){U.value="密码至少 6 位";return}S.value=!0;const j=await l("/api/admin/users/password",{userId:le.value.id,newPassword:ie.value});if(S.value=!1,!j.ok){U.value=j.data&&j.data.error||"重置失败 "+j.status;return}Ne("已重置「"+le.value.username+"」的登录密码"),le.value=null}const z=O(null);async function ne(){if(!z.value)return;const j=await l("/api/admin/users/delete",{userId:z.value.id});if(!j.ok){z.value=null,Ne(j.data&&j.data.error||"删除失败");return}Ne("已删除账号「"+z.value.username+"」及其全部云端数据"),z.value=null,await c()}return ln(c),(j,T)=>($(),A("div",WC,[i("div",GC,[i("div",YC,[T[12]||(T[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:H},[ye(He,{name:"plus",size:14}),T[11]||(T[11]=Ct(" 新增用户 ",-1))])]),r.value?($(),A("div",JC,F(r.value),1)):pe("",!0),i("table",XC,[T[14]||(T[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,[($(!0),A(Me,null,st(t.value,M=>($(),A("tr",{key:M.id},[i("td",QC,F(M.username),1),i("td",ZC,[M.role==="admin"?($(),A("span",ex,"管理员")):($(),A("span",tx,"普通用户"))]),i("td",nx,F(m(M.created_at)),1),i("td",sx,F(f(M.data_bytes)),1),i("td",ox,[i("div",rx,[i("button",{class:"btn btn-xs",onClick:Z=>D(M)},"重置密码",8,ax),i("button",{class:"btn btn-xs btn-danger",disabled:M.id===n.value,onClick:Z=>z.value=M},"删除",8,ix)])])]))),128)),!o.value&&!t.value.length?($(),A("tr",lx,[...T[13]||(T[13]=[i("td",{colspan:"5",class:"empty muted"},"加载结果为空",-1)])])):pe("",!0)])]),o.value?($(),A("div",ux,"加载中")):pe("",!0)]),T[20]||(T[20]=i("div",{class:"muted admin-note"},"重置密码立即生效;删除账号将移除其全部云端数据,不可恢复。自己的账号不能删除。",-1)),($(),gt(kn,{to:"body"},[g.value?($(),A("div",{key:0,class:"mask",onClick:T[5]||(T[5]=Nt(M=>g.value=!1,["self"]))},[i("div",cx,[i("div",dx,[T[15]||(T[15]=i("span",{class:"dialog-title"},"新增用户",-1)),i("button",{class:"icon-btn",onClick:T[0]||(T[0]=M=>g.value=!1)},[ye(He,{name:"close",size:16})])]),i("div",fx,[i("div",px,[T[16]||(T[16]=i("label",null,"用户名(2 到 20 个字符)",-1)),Ae(i("input",{class:"input","onUpdate:modelValue":T[1]||(T[1]=M=>h.value=M),placeholder:"如:xiaowang"},null,512),[[De,h.value]])]),i("div",vx,[T[17]||(T[17]=i("label",null,"初始登录密码(至少 6 位)",-1)),Ae(i("input",{class:"input",type:"password","onUpdate:modelValue":T[2]||(T[2]=M=>_.value=M),placeholder:"转发给使用者,登录后可自行修改"},null,512),[[De,_.value]])]),i("div",mx,[T[18]||(T[18]=i("label",null,"确认密码",-1)),Ae(i("input",{class:"input",type:"password","onUpdate:modelValue":T[3]||(T[3]=M=>P.value=M),onKeydown:Mt(oe,["enter"])},null,544),[[De,P.value]])]),x.value?($(),A("div",hx,F(x.value),1)):pe("",!0)]),i("div",yx,[i("button",{class:"btn btn-sm",onClick:T[4]||(T[4]=M=>g.value=!1)},"取消"),i("button",{class:"btn btn-primary btn-sm",disabled:I.value||!h.value.trim(),onClick:oe},F(I.value?"创建中":"创建"),9,gx)])])])):pe("",!0)])),($(),gt(kn,{to:"body"},[le.value?($(),A("div",{key:0,class:"mask",onClick:T[9]||(T[9]=Nt(M=>le.value=null,["self"]))},[i("div",bx,[i("div",wx,[i("span",_x,"重置「"+F(le.value.username)+"」的登录密码",1),i("button",{class:"icon-btn",onClick:T[6]||(T[6]=M=>le.value=null)},[ye(He,{name:"close",size:16})])]),i("div",kx,[i("div",Cx,[T[19]||(T[19]=i("label",null,"新登录密码(至少 6 位)",-1)),Ae(i("input",{class:"input",type:"password","onUpdate:modelValue":T[7]||(T[7]=M=>ie.value=M),onKeydown:Mt(ee,["enter"])},null,544),[[De,ie.value]])]),U.value?($(),A("div",xx,F(U.value),1)):pe("",!0)]),i("div",$x,[i("button",{class:"btn btn-sm",onClick:T[8]||(T[8]=M=>le.value=null)},"取消"),i("button",{class:"btn btn-primary btn-sm",disabled:S.value,onClick:ee},F(S.value?"提交中":"重置"),9,Sx)])])])):pe("",!0)])),ye(_n,{open:!!z.value,title:"删除用户确认",message:z.value?"将永久删除云端账号「"+z.value.username+"」及其服务器上的全部数据,不可恢复。请确认。":"","confirm-text":"永久删除",danger:"",onCancel:T[10]||(T[10]=M=>z.value=null),onConfirm:ne},null,8,["open","message"])]))}}),Tx=Rt(Ex,[["__scopeId","data-v-2d48d2c9"]]),Ax={class:"login-page"},Px={class:"card login-card"},Ox={class:"login-brand"},Mx={class:"brand-icon"},Ix={class:"seg"},jx=["placeholder"],Dx={key:1,class:"form-error"},Lx=["disabled"],Kx=jt({__name:"LoginView",emits:["login"],setup(e,{emit:t}){const n=t,o=O("login"),r=O(""),l=O(""),c=O(""),f=O(""),m=O(!1);function g(_){o.value=_,f.value="",c.value=""}async function h(){if(!m.value){f.value="",m.value=!0;try{let _;if(o.value==="login")_=await Fm(r.value,l.value);else{if(l.value.length<6){f.value="登录密码至少 6 位",m.value=!1;return}if(l.value!==c.value){f.value="两次输入的密码不一致",m.value=!1;return}_=await Vm(r.value,l.value)}n("login",_)}catch(_){f.value=_ instanceof Error?_.message:"操作失败"}m.value=!1}}return(_,P)=>($(),A("div",Ax,[i("div",Px,[i("div",Ox,[i("div",Mx,[ye(He,{name:"calendar",size:22})]),P[5]||(P[5]=i("div",{class:"login-title"},"实习工作日志",-1)),P[6]||(P[6]=i("div",{class:"muted login-sub"},"打卡 · 记录 · 总结 · 备忘录 · 密码库",-1)),P[7]||(P[7]=i("div",{class:"muted login-sub"},"数据保存在云端服务器,所有设备登录同一账号即可实时同步",-1))]),i("div",Ix,[i("button",{class:Ye(["seg-btn",{active:o.value==="login"}]),onClick:P[0]||(P[0]=x=>g("login"))},"登录",2),i("button",{class:Ye(["seg-btn",{active:o.value==="create"}]),onClick:P[1]||(P[1]=x=>g("create"))},"创建用户",2)]),Ae(i("input",{class:"input","onUpdate:modelValue":P[2]||(P[2]=x=>r.value=x),placeholder:"用户名(2 到 20 个字符)",onKeydown:Mt(h,["enter"])},null,544),[[De,r.value]]),Ae(i("input",{type:"password",class:"input","onUpdate:modelValue":P[3]||(P[3]=x=>l.value=x),placeholder:o.value==="login"?"登录密码":"设置登录密码(至少 6 位)",onKeydown:Mt(h,["enter"])},null,40,jx),[[De,l.value]]),o.value==="create"?Ae(($(),A("input",{key:0,type:"password",class:"input","onUpdate:modelValue":P[4]||(P[4]=x=>c.value=x),placeholder:"再次输入密码",onKeydown:Mt(h,["enter"])},null,544)),[[De,c.value]]):pe("",!0),f.value?($(),A("div",Dx,F(f.value),1)):pe("",!0),i("button",{class:"btn btn-primary login-btn",disabled:m.value,onClick:h},F(o.value==="login"?"登录":"创建并进入"),9,Lx),P[8]||(P[8]=i("div",{class:"muted login-note"}," 登录密码仅服务器保存哈希;本机保存加密的自动登录凭据,登录后无需重复输入 ",-1))])]))}}),Rx=Rt(Kx,[["__scopeId","data-v-e9c1c40d"]]),Nx={key:1,class:"app"},Fx={class:"side"},Vx={class:"brand-mark"},Bx={class:"side-nav"},Ux={key:0,class:"nav-group"},qx=["data-tip","onClick"],Hx={class:"nav-label"},zx={class:"side-foot"},Wx={class:"avatar"},Gx={class:"foot-name"},Yx={class:"main"},Jx={class:"topbar"},Xx={class:"title"},Qx={class:"gsearch"},Zx={key:0,class:"gs-panel"},e$={key:0,class:"gs-group muted"},t$=["onMousedown"],n$={class:"tag"},s$={class:"gs-text"},o$={class:"muted num gs-date"},r$={key:1,class:"gs-group muted"},a$=["onMousedown"],i$={class:"gs-text"},l$={class:"muted gs-sub"},u$={key:1,class:"gs-empty muted"},c$={class:"content"},d$={class:"content-inner"},f$={class:"tabbar"},p$=["onClick"],v$={class:"sheet-user num"},m$=["onClick"],h$={class:"sheet-name"},y$={class:"msw"},g$={class:"msw-bar"},b$={class:"msw-results"},w$={key:0,class:"gs-group muted"},_$=["onMousedown"],k$={class:"tag"},C$={class:"gs-text"},x$={class:"muted num gs-date"},$$={key:1,class:"gs-group muted"},S$=["onMousedown"],E$={class:"gs-text"},T$={class:"muted gs-sub"},A$={key:1,class:"gs-empty muted"},P$={class:"toast-wrap"},O$=jt({__name:"App",setup(e){const t=Ay(),n=O(zo());async function o(re){n.value=re,ra(re.userId),location.hash="#/calendar",D.value="calendar",await ze(),c();try{await Td(),await no()}catch{}Ne("欢迎,"+re.username);const J=sessionStorage.getItem("dsh_migrate_toast");J&&(sessionStorage.removeItem("dsh_migrate_toast"),Ne("已迁移原有数据 "+J+" 条"))}async function r(){Pe.value=!1,Se.value=!1,sh(),l!==null&&(window.clearInterval(l),l=null),await Um(),n.value=null,D.value="calendar",location.hash="#/calendar",Ne("已退出登录")}let l=null;function c(){nh(),l!==null&&window.clearInterval(l),l=window.setInterval(()=>{no()},60*1e3),no()}const f=O(null),m=O(""),g=O(!1),h=O({logs:[],memos:[]});let _=null;const P=rt(()=>!!(h.value.logs.length||h.value.memos.length));function x(){_&&window.clearTimeout(_);const re=m.value;_=window.setTimeout(async()=>{const J=re.trim();if(!J){h.value={logs:[],memos:[]};return}const $e=await Promise.all([zh(J,8),Wh(J,4)]);h.value={logs:$e[0],memos:$e[1]}},200)}function I(){m.value="",h.value={logs:[],memos:[]},g.value=!1}function H(re){Fi.value=re.date,ee("calendar"),I()}function oe(re){Vi.value=re.id,ee("memo"),I()}function le(){window.setTimeout(()=>{g.value=!1},150)}function ie(re){var J;(re.ctrlKey||re.metaKey)&&re.key.toLowerCase()==="k"&&(re.preventDefault(),(J=f.value)==null||J.focus())}const U=[{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 J;const re=(location.hash||"").replace("#/","");return!U.some($e=>$e.key===re)||re==="admin"&&(((J=zo())==null?void 0:J.username)||"")!=="xionglin"?"calendar":re}const D=O(S());window.addEventListener("hashchange",()=>{D.value=S()});function ee(re){location.hash="#/"+re}const z=rt(()=>U.find(re=>re.key===D.value)||U[0]),ne=rt(()=>{var re;return(((re=n.value)==null?void 0:re.username)||"")==="xionglin"}),j=rt(()=>ne.value?U:U.filter(re=>re.key!=="admin")),T=rt(()=>{const re=U.filter(J=>!Z.includes(J.key));return ne.value?re:re.filter(J=>J.key!=="admin")}),M=rt(()=>T.value.some(re=>re.key===D.value));ft([ne,D],()=>{D.value==="admin"&&!ne.value&&ee("calendar")},{immediate:!0});const Z=["calendar","today","plan","ledger"],Oe=U.filter(re=>Z.includes(re.key)),Se=O(!1);function ge(re){Se.value=!1,ee(re)}const Pe=O(!1),qe=O(null);function Fe(){Pe.value=!0,window.setTimeout(()=>{var re;return(re=qe.value)==null?void 0:re.focus()},60)}function Je(re){H(re),Pe.value=!1}function Ge(re){oe(re),Pe.value=!1}async function ze(){try{if((await ps()).remind_weekly==="off")return;const J=new Date().getDay();if(J!==5&&J!==6&&J!==0)return;const $e=await bl(Zs(it()));if($e&&($e.highlights||$e.challenges||$e.plan_next))return;Ne("本周周记还没写,可在「总结」页填写")}catch{}}return ln(async()=>{window.addEventListener("keydown",ie),n.value&&(ra(n.value.userId),await ze(),c())}),(re,J)=>{var $e,ot,wt;return n.value?($(),A("div",Nx,[i("nav",Fx,[i("div",{class:"brand",onClick:J[0]||(J[0]=Ee=>ee("calendar"))},[i("span",Vx,[ye(He,{name:"calendar",size:15})]),J[11]||(J[11]=i("span",{class:"brand-name"},"实习工作日志",-1))]),i("div",Bx,[($(!0),A(Me,null,st(j.value,(Ee,xt)=>($(),A(Me,{key:Ee.key},[xt===0||Ee.group!==j.value[xt-1].group?($(),A("div",Ux,F(Ee.group),1)):pe("",!0),i("button",{class:Ye(["nav-btn",{active:D.value===Ee.key}]),"data-tip":Ee.name,onClick:St=>ee(Ee.key)},[ye(He,{name:Ee.icon,size:17},null,8,["name"]),i("span",Hx,F(Ee.name),1)],10,qx)],64))),128))]),i("div",zx,[i("span",Wx,F(((($e=n.value)==null?void 0:$e.username)||"用户").slice(0,1).toUpperCase()),1),i("span",Gx,F((ot=n.value)==null?void 0:ot.username),1),i("button",{class:"icon-btn",title:"退出登录",onClick:r},[ye(He,{name:"export",size:15})])])]),i("div",Yx,[i("header",Jx,[i("span",Xx,F(z.value.name),1),i("button",{class:"mob-search-btn",title:"搜索",onClick:Fe},[ye(He,{name:"search",size:16})]),i("div",Qx,[ye(He,{name:"search",size:14,class:"gs-icon"}),Ae(i("input",{ref_key:"gsInput",ref:f,class:"input gs-input","onUpdate:modelValue":J[1]||(J[1]=Ee=>m.value=Ee),placeholder:"搜索工作记录与备忘录(Ctrl+K)",onInput:x,onFocus:J[2]||(J[2]=Ee=>g.value=!0),onBlur:le,onKeydown:Mt(I,["esc"])},null,544),[[De,m.value]]),g.value&&m.value.trim()?($(),A("div",Zx,[P.value?($(),A(Me,{key:0},[h.value.logs.length?($(),A("div",e$,"工作记录")):pe("",!0),($(!0),A(Me,null,st(h.value.logs,Ee=>($(),A("div",{key:"l"+Ee.id,class:"gs-item",onMousedown:Nt(xt=>H(Ee),["prevent"])},[i("span",n$,F(Ht(Uo)(Ee.category)),1),i("span",s$,F(Ee.content),1),i("span",o$,F(Ee.date),1)],40,t$))),128)),h.value.memos.length?($(),A("div",r$,"备忘录")):pe("",!0),($(!0),A(Me,null,st(h.value.memos,Ee=>($(),A("div",{key:"m"+Ee.id,class:"gs-item",onMousedown:Nt(xt=>oe(Ee),["prevent"])},[i("span",i$,F(Ee.title||"无标题"),1),i("span",l$,F(Ee.content),1)],40,a$))),128))],64)):($(),A("div",u$,"无匹配结果"))])):pe("",!0)])]),i("main",c$,[i("div",d$,[D.value==="calendar"?($(),gt(Vg,{key:0})):D.value==="today"?($(),gt(db,{key:1})):D.value==="plan"?($(),gt(gw,{key:2})):D.value==="stats"?($(),gt(Yw,{key:3})):D.value==="report"?($(),gt(j_,{key:4})):D.value==="ledger"?($(),gt(c0,{key:5})):D.value==="memo"?($(),gt(T0,{key:6})):D.value==="vault"?($(),gt(xk,{key:7})):D.value==="admin"?($(),gt(Tx,{key:8})):($(),gt(FC,{key:9}))])]),i("nav",f$,[($(!0),A(Me,null,st(Ht(Oe),Ee=>($(),A("button",{key:Ee.key,class:Ye(["tab-btn",{active:D.value===Ee.key}]),onClick:xt=>ee(Ee.key)},[ye(He,{name:Ee.icon,size:20},null,8,["name"]),i("span",null,F(Ee.name),1)],10,p$))),128)),i("button",{class:Ye(["tab-btn",{active:M.value}]),onClick:J[3]||(J[3]=Ee=>Se.value=!0)},[ye(He,{name:"more",size:20}),J[12]||(J[12]=i("span",null,"更多",-1))],2)]),Se.value?($(),A("div",{key:0,class:"sheet-mask",onClick:J[6]||(J[6]=Ee=>Se.value=!1)},[i("div",{class:"more-sheet",onClick:J[5]||(J[5]=Nt(()=>{},["stop"]))},[J[14]||(J[14]=i("div",{class:"sheet-handle"},null,-1)),i("div",v$,F((wt=n.value)==null?void 0:wt.username),1),($(!0),A(Me,null,st(T.value,Ee=>($(),A("button",{key:Ee.key,class:"sheet-row",onClick:xt=>ge(Ee.key)},[ye(He,{name:Ee.icon,size:18},null,8,["name"]),i("span",h$,F(Ee.name),1),ye(He,{name:"chevron-right",size:14,class:"sheet-go"})],8,m$))),128)),J[15]||(J[15]=i("div",{class:"sheet-divider"},null,-1)),i("button",{class:"sheet-row sheet-danger",onClick:J[4]||(J[4]=Ee=>{Se.value=!1,r()})},[ye(He,{name:"close",size:18}),J[13]||(J[13]=i("span",{class:"sheet-name"},"退出登录",-1))])])])):pe("",!0),Pe.value?($(),A("div",{key:1,class:"msw-mask",onClick:J[10]||(J[10]=Nt(Ee=>Pe.value=!1,["self"]))},[i("div",y$,[i("div",g$,[ye(He,{name:"search",size:16,class:"msw-icon"}),Ae(i("input",{ref_key:"msInput",ref:qe,class:"msw-input","onUpdate:modelValue":J[7]||(J[7]=Ee=>m.value=Ee),placeholder:"搜索工作记录与备忘录",onInput:x,onKeydown:J[8]||(J[8]=Mt(Ee=>Pe.value=!1,["esc"]))},null,544),[[De,m.value]]),i("button",{class:"icon-btn",onClick:J[9]||(J[9]=Ee=>{I(),Pe.value=!1})},[ye(He,{name:"close",size:16})])]),i("div",b$,[P.value?($(),A(Me,{key:0},[h.value.logs.length?($(),A("div",w$,"工作记录")):pe("",!0),($(!0),A(Me,null,st(h.value.logs,Ee=>($(),A("div",{key:"l"+Ee.id,class:"msw-item",onMousedown:Nt(xt=>Je(Ee),["prevent"])},[i("span",k$,F(Ht(Uo)(Ee.category)),1),i("span",C$,F(Ee.content),1),i("span",x$,F(Ee.date),1)],40,_$))),128)),h.value.memos.length?($(),A("div",$$,"备忘录")):pe("",!0),($(!0),A(Me,null,st(h.value.memos,Ee=>($(),A("div",{key:"m"+Ee.id,class:"msw-item",onMousedown:Nt(xt=>Ge(Ee),["prevent"])},[i("span",E$,F(Ee.title||"无标题"),1),i("span",T$,F(Ee.content),1)],40,S$))),128))],64)):m.value.trim()?($(),A("div",A$,"无匹配结果")):pe("",!0)])])])):pe("",!0)]),n.value?($(),gt(zC,{key:0})):pe("",!0),i("div",P$,[ye(Rv,{name:"toast"},{default:Cn(()=>[($(!0),A(Me,null,st(Ht(t),Ee=>($(),A("div",{key:Ee.id,class:"toast"},F(Ee.text),1))),128))]),_:1})])])):($(),gt(Rx,{key:0,onLogin:o}))}}}),M$=Rt(O$,[["__scopeId","data-v-ab53c58b"]]);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 I$(){const e=await Bm();e&&ra(e.userId);const t=Zv(M$);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(()=>{})})}I$().catch(e=>{Vr("无法启动:连接同步服务器失败",e&&(e.stack||e.message)||String(e))});export{Ud as W,Fd as _,Zg as b,Bd as r};
|