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

28 lines
334 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();/**
* @vue/shared v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Wi(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const pt={},Ms=[],Pn=()=>{},qu=()=>!1,ca=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),da=e=>e.startsWith("onUpdate:"),Pt=Object.assign,Gi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},af=Object.prototype.hasOwnProperty,dt=(e,t)=>af.call(e,t),qe=Array.isArray,as=e=>Wr(e)==="[object Map]",Ls=e=>Wr(e)==="[object Set]",Xl=e=>Wr(e)==="[object Date]",Ye=e=>typeof e=="function",Ct=e=>typeof e=="string",On=e=>typeof e=="symbol",ft=e=>e!==null&&typeof e=="object",Hu=e=>(ft(e)||Ye(e))&&Ye(e.then)&&Ye(e.catch),zu=Object.prototype.toString,Wr=e=>zu.call(e),lf=e=>Wr(e).slice(8,-1),Wu=e=>Wr(e)==="[object Object]",Yi=e=>Ct(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Sr=Wi(",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))},uf=/-\w/g,yn=fa(e=>e.replace(uf,t=>t.slice(1).toUpperCase())),cf=/\B([A-Z])/g,vs=fa(e=>e.replace(cf,"-$1").toLowerCase()),Gu=fa(e=>e.charAt(0).toUpperCase()+e.slice(1)),ri=fa(e=>e?`on${Gu(e)}`:""),An=(e,t)=>!Object.is(e,t),Mo=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Yu=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},pa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},df=e=>{const t=Ct(e)?Number(e):NaN;return isNaN(t)?e:t};let Ql;const va=()=>Ql||(Ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Un(e){if(qe(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],o=Ct(r)?mf(r):Un(r);if(o)for(const i in o)t[i]=o[i]}return t}else if(Ct(e)||ft(e))return e}const ff=/;(?![^(]*\))/g,pf=/:([^]+)/,vf=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function mf(e){const t={};return e.replace(vf,n=>n.startsWith("/*")?"":n).split(ff).forEach(n=>{if(n){const r=n.split(pf);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ze(e){let t="";if(Ct(e))t=e;else if(qe(e))for(let n=0;n<e.length;n++){const r=Ze(e[n]);r&&(t+=r+" ")}else if(ft(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const hf="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly",yf=Wi(hf);function Ju(e){return!!e||e===""}function gf(e,t,n){if(e.length!==t.length)return!1;let r=!0;for(let o=0;r&&o<e.length;o++)r=ls(e[o],t[o],n);return r}function Zl(e,t,n){if(e.size!==t.size)return!1;const r=Array.from(t),o=new Uint8Array(r.length);for(const i of e){let c=-1;for(let f=0;f<r.length;f++)if(!o[f]&&ls(i,r[f],n)){c=f;break}if(c<0)return!1;o[c]=1}return!0}function bf(e,t,n){let r=as(e),o=as(t);if(r||o||(r=Ls(e),o=Ls(t),r||o))return r&&o?Zl(e,t,n):!1;const i=Object.keys(e).length,c=Object.keys(t).length;if(i!==c)return!1;for(const f in e){const v=e.hasOwnProperty(f),b=t.hasOwnProperty(f);if(v&&!b||!v&&b||!ls(e[f],t[f],n))return!1}return String(e)===String(t)}function eu(e,t,n,r){n||(n=[new Map,new Map]);const[o,i]=n;if(o.has(e)||i.has(t))return o.get(e)===t&&i.get(t)===e;o.set(e,t),i.set(t,e);const c=r(e,t,n);return o.delete(e),i.delete(t),c}function ls(e,t,n){if(e===t)return!0;let r=Xl(e),o=Xl(t);return r||o?r&&o?e.getTime()===t.getTime():!1:(r=On(e),o=On(t),r||o?e===t:(r=qe(e),o=qe(t),r||o?r&&o?eu(e,t,n,gf):!1:(r=ft(e),o=ft(t),r||o?!r||!o?!1:eu(e,t,n,bf):String(e)===String(t))))}function wf(e,t){return e.findIndex(n=>ls(n,t))}const Xu=e=>!!(e&&e.__v_isRef===!0),W=e=>Ct(e)?e:e==null?"":qe(e)||ft(e)&&(e.toString===zu||!Ye(e.toString))?Xu(e)?W(e.value):JSON.stringify(e,Qu,2):String(e),Qu=(e,t)=>Xu(t)?Qu(e,t.value):as(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],i)=>(n[oi(r,i)+" =>"]=o,n),{})}:Ls(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>oi(n))}:On(t)?oi(t):ft(t)&&!qe(t)&&!Wu(t)?String(t):t,oi=(e,t="")=>{var n;return On(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 Nt;class _f{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&&Nt&&(Nt.active?(this.parent=Nt,this.index=(Nt.scopes||(Nt.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 r=this.scopes.slice();for(t=0,n=r.length;t<n;t++)r[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 o=this.scopes.slice();for(t=0,n=o.length;t<n;t++)o[t].resume()}const r=this.effects.slice();for(t=0,n=r.length;t<n;t++)r[t].resume()}}run(t){if(this._active){const n=Nt;try{return Nt=this,t()}finally{Nt=n}}}on(){++this._on===1&&(this.prevScope=Nt,Nt=this)}off(){if(this._on>0&&--this._on===0){if(Nt===this)Nt=this.prevScope;else{let t=Nt;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,r;for(n=0,r=this.effects.length;n<r;n++)this.effects[n].stop();for(this.effects.length=0,n=0,r=this.cleanups.length;n<r;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){const o=this.scopes.slice();for(n=0,r=o.length;n<r;n++)o[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function kf(){return Nt}let ht;const ai=new WeakSet;class Zu{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Nt&&(Nt.active?Nt.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ai.has(this)&&(ai.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||tc(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,tu(this),nc(this);const t=ht,n=gn;ht=this,gn=!0;try{return this.fn()}finally{sc(this),ht=t,gn=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Qi(t);this.deps=this.depsTail=void 0,tu(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ai.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){_i(this)&&this.run()}get dirty(){return _i(this)}}let ec=0,Er,Tr;function tc(e,t=!1){if(e.flags|=8,t){e.next=Tr,Tr=e;return}e.next=Er,Er=e}function Ji(){ec++}function Xi(){if(--ec>0)return;if(Tr){let t=Tr;for(Tr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Er;){let t=Er;for(Er=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function nc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function sc(e){let t,n=e.depsTail,r=n;for(;r;){const o=r.prevDep;r.version===-1?(r===n&&(n=o),Qi(r),xf(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}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&&(rc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function rc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jr)||(e.globalVersion=jr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_i(e))))return;e.flags|=2;const t=e.dep,n=ht,r=gn;ht=e,gn=!0;try{nc(e);const o=e.fn(e._value);(t.version===0||An(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ht=n,gn=r,sc(e),e.flags&=-3}}function Qi(e,t=!1){const{dep:n,prevSub:r,nextSub:o}=e;if(r&&(r.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Qi(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function xf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let gn=!0;const oc=[];function Mn(){oc.push(gn),gn=!1}function In(){const e=oc.pop();gn=e===void 0?!0:e}function tu(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ht;ht=void 0;try{t()}finally{ht=n}}}let jr=0;class Cf{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 Zi{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(!ht||!gn||ht===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ht)n=this.activeLink=new Cf(ht,this),ht.deps?(n.prevDep=ht.depsTail,ht.depsTail.nextDep=n,ht.depsTail=n):ht.deps=ht.depsTail=n,ac(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ht.depsTail,n.nextDep=void 0,ht.depsTail.nextDep=n,ht.depsTail=n,ht.deps===n&&(ht.deps=r)}return n}trigger(t){this.version++,jr++,this.notify(t)}notify(t){Ji();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Xi()}}}function ac(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)ac(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ki=new WeakMap,js=Symbol(""),xi=Symbol(""),Dr=Symbol("");function Ht(e,t,n){if(gn&&ht){let r=ki.get(e);r||ki.set(e,r=new Map);let o=r.get(n);o||(r.set(n,o=new Zi),o.map=r,o.key=n),o.track()}}function Vn(e,t,n,r,o,i){const c=ki.get(e);if(!c){jr++;return}const f=v=>{v&&v.trigger()};if(Ji(),t==="clear")c.forEach(f);else{const v=qe(e),b=v&&Yi(n);if(v&&n==="length"){const g=Number(r);c.forEach((_,T)=>{(T==="length"||T===Dr||!On(T)&&T>=g)&&f(_)})}else switch((n!==void 0||c.has(void 0))&&f(c.get(n)),b&&f(c.get(Dr)),t){case"add":v?b&&f(c.get("length")):(f(c.get(js)),as(e)&&f(c.get(xi)));break;case"delete":v||(f(c.get(js)),as(e)&&f(c.get(xi)));break;case"set":as(e)&&f(c.get(js));break}}Xi()}function Gs(e){const t=ut(e);return t===e||(Ht(t,"iterate",Dr),dn(e))?t:jn(e)?is(e)?t.map(n=>us(fn(n))):t.map(us):t.map(fn)}function ma(e){return Ht(e=ut(e),"iterate",Dr),e}function Sn(e,t){return jn(e)?us(is(e)?fn(t):t):fn(t)}const $f={__proto__:null,[Symbol.iterator](){return ii(this,Symbol.iterator,e=>Sn(this,e))},concat(...e){return Gs(this).concat(...e.map(t=>qe(t)?Gs(t):t))},entries(){return ii(this,"entries",e=>(e[1]=Sn(this,e[1]),e))},every(e,t){return Kn(this,"every",e,t,void 0,arguments)},filter(e,t){return Kn(this,"filter",e,t,n=>n.map(r=>Sn(this,r)),arguments)},find(e,t){return Kn(this,"find",e,t,n=>Sn(this,n),arguments)},findIndex(e,t){return Kn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Kn(this,"findLast",e,t,n=>Sn(this,n),arguments)},findLastIndex(e,t){return Kn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Kn(this,"forEach",e,t,void 0,arguments)},includes(...e){return li(this,"includes",e)},indexOf(...e){return li(this,"indexOf",e)},join(e){return Gs(this).join(e)},lastIndexOf(...e){return li(this,"lastIndexOf",e)},map(e,t){return Kn(this,"map",e,t,void 0,arguments)},pop(){return wr(this,"pop")},push(...e){return wr(this,"push",e)},reduce(e,...t){return su(this,"reduce",e,t)},reduceRight(e,...t){return su(this,"reduceRight",e,t)},shift(){return wr(this,"shift")},some(e,t){return Kn(this,"some",e,t,void 0,arguments)},splice(...e){return wr(this,"splice",e)},toReversed(){return Gs(this).toReversed()},toSorted(e){return Gs(this).toSorted(e)},toSpliced(...e){return Gs(this).toSpliced(...e)},unshift(...e){return wr(this,"unshift",e)},values(){return ii(this,"values",e=>Sn(this,e))}};function ii(e,t,n){const r=ma(e),o=r[t],i=o.call(r);if(r!==e&&!dn(e)){if(i[Symbol.toStringTag]==="Array Iterator"){const c=Object.create(Object.getPrototypeOf(i));return c.next=()=>nu(i.next(),n),o!==ic[t]&&Object.defineProperties(c,{return:{get(){const f=i.return;return typeof f=="function"?f.bind(i):f}},throw:{get(){const f=i.throw;return typeof f=="function"?f.bind(i):f}}}),c}i._next=i.next,i.next=()=>nu(i._next(),n)}return i}function nu(e,t){return e.done||(e.value=t(e.value)),e}const ic=Array.prototype;function Kn(e,t,n,r,o,i){const c=ma(e),f=c!==e&&!dn(e),v=c[t];if(v!==ic[t]){const _=v.apply(e,i);return f?fn(_):_}let b=n;c!==e&&(f?b=function(_,T){return n.call(this,Sn(e,_),T,e)}:n.length>2&&(b=function(_,T){return n.call(this,_,T,e)}));const g=v.call(c,b,r);return f&&o?o(g):g}function su(e,t,n,r){const o=ma(e),i=o!==e&&!dn(e);let c=n,f=!1;o!==e&&(i?(f=r.length===0,c=function(b,g,_){return f&&(f=!1,b=Sn(e,b)),n.call(this,b,Sn(e,g),_,e)}):n.length>3&&(c=function(b,g,_){return n.call(this,b,g,_,e)}));const v=o[t](c,...r);return f?Sn(e,v):v}function li(e,t,n){const r=ut(e);Ht(r,"iterate",Dr);const o=r[t](...n);return(o===-1||o===!1)&&sl(n[0])?(n[0]=ut(n[0]),r[t](...n)):o}function wr(e,t,n=[]){Mn(),Ji();const r=ut(e)[t].apply(e,n);return Xi(),In(),r}const Sf=Wi("__proto__,__v_isRef,__isVue"),lc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(On));function Ef(e){On(e)||(e=String(e));const t=ut(this);return Ht(t,"has",e),t.hasOwnProperty(e)}class uc{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(o?i?Rf:pc:i?fc:dc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const c=qe(t);if(!o){let v;if(c&&(v=$f[n]))return v;if(n==="hasOwnProperty")return Ef}const f=Reflect.get(t,n,Gt(t)?t:r);if((On(n)?lc.has(n):Sf(n))||(o||Ht(t,"get",n),i))return f;if(Gt(f)){const v=c&&Yi(n)?f:f.value;return o&&ft(v)?$i(v):v}return ft(f)?o?$i(f):tl(f):f}}class cc extends uc{constructor(t=!1){super(!1,t)}set(t,n,r,o){let i=t[n];const c=qe(t)&&Yi(n);if(!this._isShallow){const b=jn(i);if(!dn(r)&&!jn(r)&&(i=ut(i),r=ut(r)),!c&&Gt(i)&&!Gt(r))return b||(i.value=r),!0}const f=c?Number(n)<t.length:dt(t,n),v=Reflect.set(t,n,r,Gt(t)?t:o);return t===ut(o)&&v&&(f?An(r,i)&&Vn(t,"set",n,r):Vn(t,"add",n,r)),v}deleteProperty(t,n){const r=dt(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&r&&Vn(t,"delete",n,void 0),o}has(t,n){const r=Reflect.has(t,n);return(!On(n)||!lc.has(n))&&Ht(t,"has",n),r}ownKeys(t){return Ht(t,"iterate",qe(t)?"length":js),Reflect.ownKeys(t)}}class Tf extends uc{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Af=new cc,Pf=new Tf,Of=new cc(!0);const Ci=e=>e,$o=e=>Reflect.getPrototypeOf(e);function Mf(e,t,n){return function(...r){const o=this.__v_raw,i=ut(o),c=as(i),f=e==="entries"||e===Symbol.iterator&&c,v=e==="keys"&&c,b=o[e](...r),g=n?Ci:t?us:fn;return!t&&Ht(i,"iterate",v?xi:js),Pt(Object.create(b),{next(){const{value:_,done:T}=b.next();return T?{value:_,done:T}:{value:f?[g(_[0]),g(_[1])]:g(_),done:T}}})}}function So(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function If(e,t){const n={get(o){const i=this.__v_raw,c=ut(i),f=ut(o);e||(An(o,f)&&Ht(c,"get",o),Ht(c,"get",f));const{has:v}=$o(c),b=t?Ci:e?us:fn;if(v.call(c,o))return b(i.get(o));if(v.call(c,f))return b(i.get(f));i!==c&&i.get(o)},get size(){const o=this.__v_raw;return!e&&Ht(ut(o),"iterate",js),o.size},has(o){const i=this.__v_raw,c=ut(i),f=ut(o);return e||(An(o,f)&&Ht(c,"has",o),Ht(c,"has",f)),o===f?i.has(o):i.has(o)||i.has(f)},forEach(o,i){const c=this,f=c.__v_raw,v=ut(f),b=t?Ci:e?us:fn;return!e&&Ht(v,"iterate",js),f.forEach((g,_)=>o.call(i,b(g),b(_),c))}};return Pt(n,e?{add:So("add"),set:So("set"),delete:So("delete"),clear:So("clear")}:{add(o){const i=ut(this),c=$o(i),f=ut(o),v=!t&&!dn(o)&&!jn(o)?f:o;return c.has.call(i,v)||An(o,v)&&c.has.call(i,o)||An(f,v)&&c.has.call(i,f)||(i.add(v),Vn(i,"add",v,v)),this},set(o,i){!t&&!dn(i)&&!jn(i)&&(i=ut(i));const c=ut(this),{has:f,get:v}=$o(c);let b=f.call(c,o);b||(o=ut(o),b=f.call(c,o));const g=v.call(c,o);return c.set(o,i),b?An(i,g)&&Vn(c,"set",o,i):Vn(c,"add",o,i),this},delete(o){const i=ut(this),{has:c,get:f}=$o(i);let v=c.call(i,o);v||(o=ut(o),v=c.call(i,o)),f&&f.call(i,o);const b=i.delete(o);return v&&Vn(i,"delete",o,void 0),b},clear(){const o=ut(this),i=o.size!==0,c=o.clear();return i&&Vn(o,"clear",void 0,void 0),c}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=Mf(o,e,t)}),n}function el(e,t){const n=If(e,t);return(r,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_isShallow"?t:o==="__v_raw"?r:Reflect.get(dt(n,o)&&o in r?n:r,o,i)}const jf={get:el(!1,!1)},Df={get:el(!1,!0)},Lf={get:el(!0,!1)};const dc=new WeakMap,fc=new WeakMap,pc=new WeakMap,Rf=new WeakMap;function Kf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function tl(e){return jn(e)?e:nl(e,!1,Af,jf,dc)}function Nf(e){return nl(e,!1,Of,Df,fc)}function $i(e){return nl(e,!0,Pf,Lf,pc)}function nl(e,t,n,r,o){if(!ft(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=o.get(e);if(i)return i;const c=Kf(lf(e));if(c===0)return e;const f=new Proxy(e,c===2?r:n);return o.set(e,f),f}function is(e){return jn(e)?is(e.__v_raw):!!(e&&e.__v_isReactive)}function jn(e){return!!(e&&e.__v_isReadonly)}function dn(e){return!!(e&&e.__v_isShallow)}function sl(e){return e?!!e.__v_raw:!1}function ut(e){const t=e&&e.__v_raw;return t?ut(t):e}function Ff(e){return!dt(e,"__v_skip")&&Object.isExtensible(e)&&Yu(e,"__v_skip",!0),e}const fn=e=>ft(e)?tl(e):e,us=e=>ft(e)?$i(e):e;function Gt(e){return e?e.__v_isRef===!0:!1}function O(e){return Vf(e,!1)}function Vf(e,t){return Gt(e)?e:new Bf(e,t)}class Bf{constructor(t,n){this.dep=new Zi,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ut(t),this._value=n?t:fn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||dn(t)||jn(t);t=r?t:ut(t),An(t,n)&&(this._rawValue=t,this._value=r?t:fn(t),this.dep.trigger())}}function un(e){return Gt(e)?e.value:e}const Uf={get:(e,t,n)=>t==="__v_raw"?e:un(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Gt(o)&&!Gt(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function vc(e){return is(e)?e:new Proxy(e,Uf)}class qf{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Zi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ht!==this)return tc(this,!0),!0}get value(){const t=this.dep.track();return rc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hf(e,t,n=!1){let r,o;return Ye(e)?r=e:(r=e.get,o=e.set),new qf(r,o,n)}const Eo={},Bo=new WeakMap;let Es;function zf(e,t=!1,n=Es){if(n){let r=Bo.get(n);r||Bo.set(n,r=[]),r.push(e)}}function Wf(e,t,n=pt){const{immediate:r,deep:o,once:i,scheduler:c,augmentJob:f,call:v}=n,b=S=>o?S:dn(S)||o===!1||o===0?Bn(S,1):Bn(S);let g,_,T,x,j=!1,J=!1;if(Gt(e)?(_=()=>e.value,j=dn(e)):is(e)?(_=()=>b(e),j=!0):qe(e)?(J=!0,j=e.some(S=>is(S)||dn(S)),_=()=>e.map(S=>{if(Gt(S))return S.value;if(is(S))return b(S);if(Ye(S))return v?v(S,2):S()})):Ye(e)?t?_=v?()=>v(e,2):e:_=()=>{if(T){Mn();try{T()}finally{In()}}const S=Es;Es=g;try{return v?v(e,3,[x]):e(x)}finally{Es=S}}:_=Pn,t&&o){const S=_,H=o===!0?1/0:o;_=()=>Bn(S(),H)}const oe=kf(),ue=()=>{g.stop(),oe&&oe.active&&Gi(oe.effects,g)};if(i&&t){const S=t;t=(...H)=>{try{return S(...H)}finally{ue()}}}let ce=J?new Array(e.length).fill(Eo):Eo;const q=S=>{if(!(!(g.flags&1)||!g.dirty&&!S))if(t){const H=g.run();if(S||o||j||(J?H.some((Q,G)=>An(Q,ce[G])):An(H,ce))){const Q=Es;Mn();try{T&&T(),Es=g;const G=[H,ce===Eo?void 0:J&&ce[0]===Eo?[]:ce,x];ce=H,v?v(t,3,G):t(...G)}finally{Es=Q,In()}}}else g.run()};return f&&f(q),g=new Zu(_),g.scheduler=c?()=>c(q,!1):q,x=S=>zf(S,!1,g),T=g.onStop=()=>{const S=Bo.get(g);if(S){if(v)v(S,4);else for(const H of S)H();Bo.delete(g)}},t?r?q(!0):ce=g.run():c?c(q.bind(null,!0),!0):g.run(),ue.pause=g.pause.bind(g),ue.resume=g.resume.bind(g),ue.stop=ue,ue}function Bn(e,t=1/0,n){if(t<=0||!ft(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Gt(e))Bn(e.value,t,n);else if(qe(e))for(let r=0;r<e.length;r++)Bn(e[r],t,n);else if(Ls(e)||as(e))e.forEach(r=>{Bn(r,t,n)});else if(Wu(e)){for(const r in e)Bn(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Bn(e[r],t,n)}return e}/**
* @vue/runtime-core v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Gr(e,t,n,r){try{return r?e(...r):e()}catch(o){ha(o,t,n)}}function pn(e,t,n,r){if(Ye(e)){const o=Gr(e,t,n,r);return o&&Hu(o)&&o.catch(i=>{ha(i,t,n)}),o}if(qe(e)){const o=[];for(let i=0;i<e.length;i++)o.push(pn(e[i],t,n,r));return o}}function ha(e,t,n,r=!0){const o=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:c}=t&&t.appContext.config||pt;if(t){let f=t.parent;const v=t.proxy,b=`https://vuejs.org/error-reference/#runtime-${n}`;for(;f;){const g=f.ec;if(g){for(let _=0;_<g.length;_++)if(g[_](e,v,b)===!1)return}f=f.parent}if(i){Mn(),Gr(i,null,10,[e,v,b]),In();return}}Gf(e,n,o,r,c)}function Gf(e,t,n,r=!0,o=!1){if(o)throw e;console.error(e)}const Zt=[];let hn=-1;const En=[];let rs=null,Ys=0;const mc=Promise.resolve();let Uo=null;function ir(e){const t=Uo||mc;return e?t.then(this?e.bind(this):e):t}function Yf(e){let t=hn+1,n=Zt.length;for(;t<n;){const r=t+n>>>1,o=Zt[r],i=Lr(o);i<e||i===e&&o.flags&2?t=r+1:n=r}return t}function rl(e){if(!(e.flags&1)){const t=Lr(e),n=Zt[Zt.length-1];!n||!(e.flags&2)&&t>=Lr(n)?Zt.push(e):Zt.splice(Yf(t),0,e),e.flags|=1,hc()}}function hc(){Uo||(Uo=mc.then(bc))}function Jf(e){if(!qe(e))rs&&e.id===-1?rs.splice(Ys+1,0,e):e.flags&1||(En.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)En.push(e[t]);hc()}function yc(e,t,n,r=hn+1){for(;r<Zt.length;r++){const o=Zt[r];if(o&&o.flags&2){if(e&&o.id!==e.uid||t!==void 0&&!(o.id>=t))continue;Zt.splice(r,1),r=e?r-1:hn,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function gc(e,t,n=0){if(En.length){let r=En,o=0;if(t){r=[];for(let c=0;c<En.length;c++){const f=En[c];(f.i!==void 0?!f.i||f.i.uid<n:t.has(f))?En[o++]=f:r.push(f)}}const i=[...new Set(r)].sort((c,f)=>Lr(c)-Lr(f));if(En.length=o,rs){for(let c=0;c<i.length;c++)rs.push(i[c]);return}for(rs=i,Ys=0;Ys<rs.length;Ys++){const c=rs[Ys];c.flags&4&&(c.flags&=-2),c.flags&8||c(),c.flags&=-2}rs=null,Ys=0}}let ui=!1;function Xf(e,t){if(ui){e();return}const n=t===void 0?void 0:new Set(En);e(),ui=!0;try{yc(void 0,t),gc(void 0,n,t)}finally{ui=!1}}const Lr=e=>e.id==null?e.flags&2?-1:1/0:e.id;function bc(e){try{for(hn=0;hn<Zt.length;hn++){const t=Zt[hn];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Gr(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;hn<Zt.length;hn++){const t=Zt[hn];t&&(t.flags&=-2)}hn=-1,Zt.length=0,gc(),Uo=null,(Zt.length||En.length)&&bc()}}let cn=null,wc=null;function qo(e){const t=cn;return cn=e,wc=e&&e.type.__scopeId||null,t}function ms(e,t=cn,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&Go(-1);const i=qo(t),c=Ds.length;let f;try{f=e(...o)}finally{for(let v=Ds.length;v>c;v--)Gc();qo(i),r._d&&Go(1)}return f};return r._n=!0,r._c=!0,r._d=!0,r}function Me(e,t){if(cn===null)return e;const n=ka(cn),r=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[i,c,f,v=pt]=t[o];i&&(Ye(i)&&(i={mounted:i,updated:i}),i.deep&&Bn(c),r.push({dir:i,instance:n,value:c,oldValue:void 0,arg:f,modifiers:v}))}return e}function Cs(e,t,n,r){const o=e.dirs,i=t&&t.dirs;for(let c=0;c<o.length;c++){const f=o[c];i&&(f.oldValue=i[c].value);let v=f.dir[r];v&&(Mn(),pn(v,n,8,[e.el,f,e,t]),In())}}function Qf(e,t){if(en){let n=en.provides;const r=en.parent&&en.parent.provides;r===n&&(n=en.provides=Object.create(r)),n[e]=t}}function Io(e,t,n=!1){const r=ul();if(r||Xs){let o=Xs?Xs._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return n&&Ye(t)?t.call(r&&r.proxy):t}}const Zf=Symbol.for("v-scx"),ep=()=>Io(Zf);function yt(e,t,n){return _c(e,t,n)}function _c(e,t,n=pt){const{immediate:r,deep:o,flush:i,once:c}=n,f=Pt({},n),v=t&&r||!t&&i!=="post";let b;if(Br){if(i==="sync"){const x=ep();b=x.__watcherHandles||(x.__watcherHandles=[])}else if(!v){const x=()=>{};return x.stop=Pn,x.resume=Pn,x.pause=Pn,x}}const g=en;f.call=(x,j,J)=>pn(x,g,j,J);let _=!1;i==="post"?f.scheduler=x=>{x.i=g,Qt(x,g&&g.suspense)}:i!=="sync"&&(_=!0,f.scheduler=(x,j)=>{j?x():rl(x)}),f.augmentJob=x=>{t&&(x.flags|=4),_&&(x.flags|=2,g&&(x.id=g.uid,x.i=g))};const T=Wf(e,t,f);return Br&&(b?b.push(T):v&&T()),T}function tp(e,t,n){const r=this.proxy,o=Ct(e)?e.includes(".")?kc(r,e):()=>r[e]:e.bind(r,r);let i;Ye(t)?i=t:(i=t.handler,n=t);const c=Yr(this),f=_c(o,i.bind(r),n);return c(),f}function kc(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o<n.length&&r;o++)r=r[n[o]];return r}}const ns=new WeakMap,xc=Symbol("_vte"),ya=e=>e.__isTeleport,As=e=>e&&(e.disabled||e.disabled===""),np=e=>e&&(e.defer||e.defer===""),ru=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ou=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Si=(e,t)=>{const n=e&&e.to;return Ct(n)?t?t(n):null:n},sp={name:"Teleport",__isTeleport:!0,process(e,t,n,r,o,i,c,f,v,b){const{mc:g,pc:_,pbc:T,o:{insert:x,querySelector:j,createText:J,createComment:oe,parentNode:ue}}=b,ce=As(t.props);let{dynamicChildren:q}=t;const S=(G,re,M)=>{G.shapeFlag&16&&g(G.children,re,M,o,i,c,f,v)},H=(G=t)=>{const re=As(G.props),M=G.target=Si(G.props,j),E=Ei(M,G,J,x);M&&(c!=="svg"&&ru(M)?c="svg":c!=="mathml"&&ou(M)&&(c="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(M),re||(S(G,M,E),xr(G,!1)))},Q=G=>{const re=()=>{if(ns.get(G)===re){if(ns.delete(G),As(G.props)){const M=ue(G.el)||n;S(G,M,G.anchor),xr(G,!0)}H(G)}};ns.set(G,re),Qt(re,i)};if(e==null){const G=t.el=J(""),re=t.anchor=J("");if(x(G,n,r),x(re,n,r),np(t.props)||i&&i.pendingBranch){Q(t);return}ce&&(S(t,n,re),xr(t,!0)),H()}else{t.el=e.el;const G=t.anchor=e.anchor,re=ns.get(e);if(re){re.flags|=8,ns.delete(e),Q(t);return}t.targetStart=e.targetStart;const M=t.target=e.target,E=t.targetAnchor=e.targetAnchor,I=As(e.props),ne=I?n:M,Ie=I?G:E;if(c==="svg"||ru(M)?c="svg":(c==="mathml"||ou(M))&&(c="mathml"),q?(T(e.dynamicChildren,q,ne,o,i,c,f),ll(e,t,!0)):v||_(e,t,ne,Ie,o,i,c,f,!1),ce)I?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):To(t,n,G,b,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Ae=Si(t.props,j);Ae&&(t.target=Ae,To(t,Ae,null,b,0))}else I&&To(t,M,E,b,1);xr(t,ce)}},remove(e,t,n,{um:r,o:{remove:o}},i){const{shapeFlag:c,children:f,anchor:v,targetStart:b,targetAnchor:g,target:_,props:T}=e,x=As(T),j=i||!x,J=ns.get(e);if(J&&(J.flags|=8,ns.delete(e)),_&&(o(b),o(g)),i&&o(v),!J&&(x||_)&&c&16)for(let oe=0;oe<f.length;oe++){const ue=f[oe];r(ue,t,n,j,!!ue.dynamicChildren)}},move:To,hydrate:rp};function To(e,t,n,{o:{insert:r},m:o},i=2){i===0&&(e.targetStart&&r(e.targetStart,t,n),r(e.targetAnchor,t,n),n=e.targetAnchor);const{el:c,anchor:f,shapeFlag:v,children:b,props:g}=e,_=i===2;if(_&&r(c,t,n),!ns.has(e)&&(!_||As(g))&&v&16)for(let T=0;T<b.length;T++)o(b[T],t,n,2);_&&r(f,t,n)}function rp(e,t,n,r,o,i,{o:{nextSibling:c,parentNode:f,querySelector:v,insert:b,createText:g}},_){function T(oe,ue){let ce=ue;for(;ce;){if(ce&&ce.nodeType===8){if(ce.data==="teleport start anchor")t.targetStart=ce;else if(ce.data==="teleport anchor"){t.targetAnchor=ce,oe._lpa=t.targetAnchor&&c(t.targetAnchor);break}}ce=c(ce)}}function x(oe,ue){ue.anchor=_(c(oe),ue,f(oe),n,r,o,i)}const j=t.target=Si(t.props,v),J=As(t.props);if(j){const oe=j._lpa||j.firstChild;t.shapeFlag&16&&(J?(x(e,t),T(j,oe),t.targetAnchor||Ei(j,t,g,b,f(e)===j?e:null)):(t.anchor=c(e),T(j,oe),t.targetAnchor||Ei(j,t,g,b),_(oe&&c(oe),t,j,n,r,o,i))),xr(t,J)}else J&&t.shapeFlag&16&&(x(e,t),t.targetStart=e,t.targetAnchor=c(e));return t.anchor&&c(t.anchor)}const Hn=sp;function xr(e,t){const n=e.ctx;if(n&&n.ut){let r,o;for(t?(r=e.el,o=e.anchor):(r=e.targetStart,o=e.targetAnchor);r&&r!==o;)r.nodeType===1&&r.setAttribute("data-v-owner",n.uid),r=r.nextSibling;n.ut()}}function Ei(e,t,n,r,o=null){const i=t.targetStart=n(""),c=t.targetAnchor=n("");return i[xc]=c,e&&(r(i,e,o),r(c,e,o)),c}const ln=Symbol("_leaveCb"),_r=Symbol("_enterCb");function Cc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return vn(()=>{e.isMounted=!0}),Oc(()=>{e.isUnmounting=!0}),e}const an=[Function,Array],$c={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:an,onEnter:an,onAfterEnter:an,onEnterCancelled:an,onBeforeLeave:an,onLeave:an,onAfterLeave:an,onLeaveCancelled:an,onBeforeAppear:an,onAppear:an,onAfterAppear:an,onAppearCancelled:an},op={name:"BaseTransition",props:$c,setup(e,{slots:t}){const n=ul(),r=Cc();return()=>{const o=t.default&&ol(t.default(),!0),i=o&&o.length?Sc(o):n.subTree?ge():void 0;if(!i)return;const c=ut(e),{mode:f}=c;if(r.isLeaving)return ci(i);const v=Ho(i);if(!v)return ci(i);let b=Rr(v,c,r,n,_=>b=_);v.type!==Wt&&cs(v,b);let g=n.subTree&&Ho(n.subTree);if(g&&g.type!==Wt&&!Ps(g,v)&&Kr(n.subTree)){let _=Rr(g,c,r,n);if(cs(g,_),f==="out-in"&&v.type!==Wt)return r.isLeaving=!0,_.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete _.afterLeave,g=void 0},ci(i);f==="in-out"&&v.type!==Wt?_.delayLeave=(T,x,j)=>{const J=Ec(r,g);J[String(g.key)]=g,T[ln]=()=>{x(),T[ln]=void 0,delete b.delayedLeave,g=void 0},b.delayedLeave=()=>{j(),delete b.delayedLeave,g=void 0}}:g=void 0}else g&&(g=void 0);return i}}};function Sc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Wt){t=n;break}}return t}const ap=op;function Ec(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Rr(e,t,n,r,o){const{appear:i,mode:c,persisted:f=!1,onBeforeEnter:v,onEnter:b,onAfterEnter:g,onEnterCancelled:_,onBeforeLeave:T,onLeave:x,onAfterLeave:j,onLeaveCancelled:J,onBeforeAppear:oe,onAppear:ue,onAfterAppear:ce,onAppearCancelled:q}=t,S=String(e.key),H=Ec(n,e),Q=(M,E)=>{M&&pn(M,r,9,E)},G=(M,E)=>{const I=E[1];Q(M,E),qe(M)?M.every(ne=>ne.length<=1)&&I():M.length<=1&&I()},re={mode:c,persisted:f,beforeEnter(M){let E=v;if(!n.isMounted)if(i)E=oe||v;else return;M[ln]&&M[ln](!0);const I=H[S];if(I&&Ps(e,I)){let ne=I.el[ln];if(!ne){const Ie=Kr(I);ne=Ie&&Ie.el[ln]}ne&&ne()}Q(E,[M])},enter(M){if(H[S]===e)return;let E=b,I=g,ne=_;if(!n.isMounted)if(i)E=ue||b,I=ce||g,ne=q||_;else return;let Ie=!1;M[_r]=ye=>{Ie||(Ie=!0,ye?Q(ne,[M]):Q(I,[M]),re.delayedLeave&&re.delayedLeave(),M[_r]=void 0)};const Ae=M[_r].bind(null,!1);E?G(E,[M,Ae]):Ae()},leave(M,E){const I=String(e.key);if(M[_r]&&M[_r](!0),n.isUnmounting)return E();Q(T,[M]);let ne=!1;M[ln]=Ae=>{ne||(ne=!0,E(),Ae?Q(J,[M]):Q(j,[M]),M[ln]=void 0,H[I]===e&&delete H[I])};const Ie=M[ln].bind(null,!1);H[I]=e,x?G(x,[M,Ie]):Ie()},clone(M){const E=Rr(M,t,n,r,o);return o&&o(E),E}};return re}function ci(e){if(ga(e))return e=ds(e),e.children=null,e}function Ho(e){if(!ga(e))return ya(e.type)&&e.children?Sc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ye(n.default))return n.default()}}function cs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;cs(ya(n.type)&&Ho(n)||n,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===je&&qe(e.children)){const n=Lc(e.children,!1);n&&cs(n,t)}}function ol(e,t=!1,n){let r=[],o=0;for(let i=0;i<e.length;i++){let c=e[i];const f=n==null?c.key:String(n)+String(c.key!=null?c.key:i);c.type===je?(c.patchFlag&128&&o++,r=r.concat(ol(c.children,t,f))):(t||c.type!==Wt)&&r.push(f!=null?ds(c,{key:f}):c)}if(o>1)for(let i=0;i<r.length;i++)r[i].patchFlag=-2;return r}function Kr(e){if(e.component)return Kr(e.component.subTree);if(e.type===je){const t=qe(e.children)&&Lc(e.children,!1);return t?Kr(t):void 0}if(e.type!==Wt)return e}function Rt(e,t){return Ye(e)?Pt({name:e.name},t,{setup:e}):e}function Tc(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function au(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const zo=new WeakMap;function Ar(e,t,n,r,o=!1){if(qe(e)){e.forEach((J,oe)=>Ar(J,t&&(qe(t)?t[oe]:t),n,r,o));return}if(Pr(r)&&!o){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Ar(e,t,n,r.component.subTree);return}const i=r.shapeFlag&4?ka(r.component):r.el,c=o?null:i,{i:f,r:v}=e,b=t&&t.r,g=f.refs===pt?f.refs={}:f.refs,_=f.setupState,T=ut(_),x=_===pt?qu:J=>au(g,J)?!1:dt(T,J),j=(J,oe)=>!(oe&&au(g,oe));if(b!=null&&b!==v){if(iu(t),Ct(b))g[b]=null,x(b)&&(_[b]=null);else if(Gt(b)){const J=t;j(b,J.k)&&(b.value=null),J.k&&(g[J.k]=null)}}if(Ye(v))Gr(v,f,12,[c,g]);else{const J=Ct(v),oe=Gt(v);if(J||oe){const ue=()=>{if(e.f){const ce=J?x(v)?_[v]:g[v]:j()||!e.k?v.value:g[e.k];if(o)qe(ce)&&Gi(ce,i);else if(qe(ce))ce.includes(i)||ce.push(i);else if(J)g[v]=[i],x(v)&&(_[v]=g[v]);else{const q=[i];j(v,e.k)&&(v.value=q),e.k&&(g[e.k]=q)}}else J?(g[v]=c,x(v)&&(_[v]=c)):oe&&(j(v,e.k)&&(v.value=c),e.k&&(g[e.k]=c))};if(c){const ce=()=>{ue(),zo.delete(e)};ce.id=-1,zo.set(e,ce),Qt(ce,n)}else iu(e),ue()}}}function iu(e){const t=zo.get(e);t&&(t.flags|=8,zo.delete(e))}va().requestIdleCallback;va().cancelIdleCallback;const Pr=e=>!!e.type.__asyncLoader,ga=e=>e.type.__isKeepAlive;function ip(e,t){Ac(e,"a",t)}function lp(e,t){Ac(e,"da",t)}function Ac(e,t,n=en){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(ba(t,r,n),n){let o=n.parent;for(;o&&o.parent;)ga(o.parent.vnode)&&up(r,t,n,o),o=o.parent}}function up(e,t,n,r){const o=ba(t,e,r,!0);Wn(()=>{Gi(r[t],o)},n)}function ba(e,t,n=en,r=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...c)=>{Mn();const f=Yr(n),v=pn(t,n,e,c);return f(),In(),v});return r?o.unshift(i):o.push(i),i}}const zn=e=>(t,n=en)=>{(!Br||e==="sp")&&ba(e,(...r)=>t(...r),n)},cp=zn("bm"),vn=zn("m"),dp=zn("bu"),Pc=zn("u"),Oc=zn("bum"),Wn=zn("um"),fp=zn("sp"),pp=zn("rtg"),vp=zn("rtc");function mp(e,t=en){ba("ec",e,t)}const hp=Symbol.for("v-ndc");function et(e,t,n,r){let o;const i=n,c=qe(e);if(c||Ct(e)){const f=c&&is(e);let v=!1,b=!1;f&&(v=!dn(e),b=jn(e),e=ma(e)),o=new Array(e.length);for(let g=0,_=e.length;g<_;g++)o[g]=t(v?b?us(fn(e[g])):fn(e[g]):e[g],g,void 0,i)}else if(typeof e=="number")if(!Number.isInteger(e)||e<0)o=[];else{o=new Array(e);for(let f=0;f<e;f++)o[f]=t(f+1,f,void 0,i)}else if(ft(e))if(e[Symbol.iterator])o=Array.from(e,(f,v)=>t(f,v,void 0,i));else{const f=Object.keys(e);o=new Array(f.length);for(let v=0,b=f.length;v<b;v++){const g=f[v];o[v]=t(e[g],g,v,i)}}else o=[];return o}const Ti=e=>e?Qc(e)?ka(e):Ti(e.parent):null,Or=Pt(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=>Ic(e),$forceUpdate:e=>e.f||(e.f=()=>{rl(e.update)}),$nextTick:e=>e.n||(e.n=ir.bind(e.proxy)),$watch:e=>tp.bind(e)}),di=(e,t)=>e!==pt&&!e.__isScriptSetup&&dt(e,t),yp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:i,accessCache:c,type:f,appContext:v}=e;if(t[0]!=="$"){const T=c[t];if(T!==void 0)switch(T){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(di(r,t))return c[t]=1,r[t];if(o!==pt&&dt(o,t))return c[t]=2,o[t];if(dt(i,t))return c[t]=3,i[t];if(n!==pt&&dt(n,t))return c[t]=4,n[t];Ai&&(c[t]=0)}}const b=Or[t];let g,_;if(b)return t==="$attrs"&&Ht(e.attrs,"get",""),b(e);if((g=f.__cssModules)&&(g=g[t]))return g;if(n!==pt&&dt(n,t))return c[t]=4,n[t];if(_=v.config.globalProperties,dt(_,t))return _[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:i}=e;return di(o,t)?(o[t]=n,!0):r!==pt&&dt(r,t)?(r[t]=n,!0):dt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,props:i,type:c}},f){let v;return!!(n[f]||e!==pt&&f[0]!=="$"&&dt(e,f)||di(t,f)||dt(i,f)||dt(r,f)||dt(Or,f)||dt(o.config.globalProperties,f)||(v=c.__cssModules)&&v[f])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:dt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function lu(e){return qe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ai=!0;function gp(e){const t=Ic(e),n=e.proxy,r=e.ctx;Ai=!1,t.beforeCreate&&uu(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:c,watch:f,provide:v,inject:b,created:g,beforeMount:_,mounted:T,beforeUpdate:x,updated:j,activated:J,deactivated:oe,beforeDestroy:ue,beforeUnmount:ce,destroyed:q,unmounted:S,render:H,renderTracked:Q,renderTriggered:G,errorCaptured:re,serverPrefetch:M,expose:E,inheritAttrs:I,components:ne,directives:Ie,filters:Ae}=t;if(b&&bp(b,r,null),c)for(const Ue in c){const de=c[Ue];Ye(de)&&(r[Ue]=de.bind(n))}if(o){const Ue=o.call(n,n);ft(Ue)&&(e.data=tl(Ue))}if(Ai=!0,i)for(const Ue in i){const de=i[Ue],ke=Ye(de)?de.bind(n,n):Ye(de.get)?de.get.bind(n,n):Pn,Ee=!Ye(de)&&Ye(de.set)?de.set.bind(n):Pn,Le=rt({get:ke,set:Ee});Object.defineProperty(r,Ue,{enumerable:!0,configurable:!0,get:()=>Le.value,set:$e=>Le.value=$e})}if(f)for(const Ue in f)Mc(f[Ue],r,n,Ue);if(v){const Ue=Ye(v)?v.call(n):v;Reflect.ownKeys(Ue).forEach(de=>{Qf(de,Ue[de])})}g&&uu(g,e,"c");function Pe(Ue,de){qe(de)?de.forEach(ke=>Ue(ke.bind(n))):de&&Ue(de.bind(n))}if(Pe(cp,_),Pe(vn,T),Pe(dp,x),Pe(Pc,j),Pe(ip,J),Pe(lp,oe),Pe(mp,re),Pe(vp,Q),Pe(pp,G),Pe(Oc,ce),Pe(Wn,S),Pe(fp,M),qe(E))if(E.length){const Ue=e.exposed||(e.exposed={});E.forEach(de=>{Object.defineProperty(Ue,de,{get:()=>n[de],set:ke=>n[de]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});H&&e.render===Pn&&(e.render=H),I!=null&&(e.inheritAttrs=I),ne&&(e.components=ne),Ie&&(e.directives=Ie),M&&Tc(e)}function bp(e,t,n=Pn){qe(e)&&(e=Pi(e));for(const r in e){const o=e[r];let i;ft(o)?"default"in o?i=Io(o.from||r,o.default,!0):i=Io(o.from||r):i=Io(o),Gt(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:c=>i.value=c}):t[r]=i}}function uu(e,t,n){pn(qe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mc(e,t,n,r){let o=r.includes(".")?kc(n,r):()=>n[r];if(Ct(e)){const i=t[e];Ye(i)&&yt(o,i)}else if(Ye(e))yt(o,e.bind(n));else if(ft(e))if(qe(e))e.forEach(i=>Mc(i,t,n,r));else{const i=Ye(e.handler)?e.handler.bind(n):t[e.handler];Ye(i)&&yt(o,i,e)}}function Ic(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:c}}=e.appContext,f=i.get(t);let v;return f?v=f:!o.length&&!n&&!r?v=t:(v={},o.length&&o.forEach(b=>Wo(v,b,c,!0)),Wo(v,t,c)),ft(t)&&i.set(t,v),v}function Wo(e,t,n,r=!1){const{mixins:o,extends:i}=t;i&&Wo(e,i,n,!0),o&&o.forEach(c=>Wo(e,c,n,!0));for(const c in t)if(!(r&&c==="expose")){const f=wp[c]||n&&n[c];e[c]=f?f(e[c],t[c]):t[c]}return e}const wp={data:cu,props:du,emits:du,methods:Cr,computed:Cr,beforeCreate:Xt,created:Xt,beforeMount:Xt,mounted:Xt,beforeUpdate:Xt,updated:Xt,beforeDestroy:Xt,beforeUnmount:Xt,destroyed:Xt,unmounted:Xt,activated:Xt,deactivated:Xt,errorCaptured:Xt,serverPrefetch:Xt,components:Cr,directives:Cr,watch:kp,provide:cu,inject:_p};function cu(e,t){return t?e?function(){return Pt(Ye(e)?e.call(this,this):e,Ye(t)?t.call(this,this):t)}:t:e}function _p(e,t){return Cr(Pi(e),Pi(t))}function Pi(e){if(qe(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Xt(e,t){return e?[...new Set([].concat(e,t))]:t}function Cr(e,t){return e?Pt(Object.create(null),e,t):t}function du(e,t){return e?qe(e)&&qe(t)?[...new Set([...e,...t])]:Pt(Object.create(null),lu(e),lu(t??{})):t}function kp(e,t){if(!e)return t;if(!t)return e;const n=Pt(Object.create(null),e);for(const r in t)n[r]=Xt(e[r],t[r]);return n}function jc(){return{app:null,config:{isNativeTag:qu,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let xp=0;function Cp(e,t){return function(r,o=null){Ye(r)||(r=Pt({},r)),o!=null&&!ft(o)&&(o=null);const i=jc(),c=new WeakSet,f=[];let v=!1;const b=i.app={_uid:xp++,_component:r,_props:o,_container:null,_context:i,_instance:null,version:nv,get config(){return i.config},set config(g){},use(g,..._){return c.has(g)||(g&&Ye(g.install)?(c.add(g),g.install(b,..._)):Ye(g)&&(c.add(g),g(b,..._))),b},mixin(g){return i.mixins.includes(g)||i.mixins.push(g),b},component(g,_){return _?(i.components[g]=_,b):i.components[g]},directive(g,_){return _?(i.directives[g]=_,b):i.directives[g]},mount(g,_,T){if(!v){const x=b._ceVNode||Ce(r,o);return x.appContext=i,T===!0?T="svg":T===!1&&(T=void 0),e(x,g,T),v=!0,b._container=g,g.__vue_app__=b,ka(x.component)}},onUnmount(g){f.push(g)},unmount(){v&&(pn(f,b._instance,16),e(null,b._container),delete b._container.__vue_app__)},provide(g,_){return i.provides[g]=_,b},runWithContext(g){const _=Xs;Xs=b;try{return g()}finally{Xs=_}}};return b}}let Xs=null;const $p=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${yn(t)}Modifiers`]||e[`${vs(t)}Modifiers`];function Sp(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||pt;let o=n;const i=t.startsWith("update:"),c=i&&$p(r,t.slice(7));c&&(c.trim&&(o=n.map(g=>Ct(g)?g.trim():g)),c.number&&(o=o.map(pa)));let f,v=r[f=ri(t)]||r[f=ri(yn(t))];!v&&i&&(v=r[f=ri(vs(t))]),v&&pn(v,e,6,o);const b=r[f+"Once"];if(b){if(!e.emitted)e.emitted={};else if(e.emitted[f])return;e.emitted[f]=!0,pn(b,e,6,o)}}const Ep=new WeakMap;function Dc(e,t,n=!1){const r=n?Ep:t.emitsCache,o=r.get(e);if(o!==void 0)return o;const i=e.emits;let c={},f=!1;if(!Ye(e)){const v=b=>{const g=Dc(b,t,!0);g&&(f=!0,Pt(c,g))};!n&&t.mixins.length&&t.mixins.forEach(v),e.extends&&v(e.extends),e.mixins&&e.mixins.forEach(v)}return!i&&!f?(ft(e)&&r.set(e,null),null):(qe(i)?i.forEach(v=>c[v]=null):Pt(c,i),ft(e)&&r.set(e,c),c)}function wa(e,t){return!e||!ca(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),dt(e,t[0].toLowerCase()+t.slice(1))||dt(e,vs(t))||dt(e,t))}function fu(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[i],slots:c,attrs:f,emit:v,render:b,renderCache:g,props:_,data:T,setupState:x,ctx:j,inheritAttrs:J}=e,oe=qo(e);let ue,ce;try{if(n.shapeFlag&4){const S=o||r,H=S;ue=Tn(b.call(H,S,g,_,x,T,j)),ce=f}else{const S=t;ue=Tn(S.length>1?S(_,{attrs:f,slots:c,emit:v}):S(_,null)),ce=t.props?f:Tp(f)}}catch(S){Ds.length=0,ha(S,e,1),ue=Ce(Wt)}let q=ue;if(ce&&J!==!1){const S=Object.keys(ce),{shapeFlag:H}=q;S.length&&H&7&&(i&&S.some(da)&&(ce=Ap(ce,i)),q=ds(q,ce,!1,!0))}if(n.dirs&&(q=ds(q,null,!1,!0),q.dirs=q.dirs?q.dirs.concat(n.dirs):n.dirs),n.transition){const S=ya(q.type)&&Ho(q)||q;cs(S,n.transition)}return ue=q,qo(oe),ue}function Lc(e,t=!0){let n;for(let r=0;r<e.length;r++){const o=e[r];if(Fr(o)){if(o.type!==Wt||o.children==="v-if"){if(n)return;n=o}}else return}return n}const Tp=e=>{let t;for(const n in e)(n==="class"||n==="style"||ca(n))&&((t||(t={}))[n]=e[n]);return t},Ap=(e,t)=>{const n={};for(const r in e)(!da(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Pp(e,t,n){const{props:r,children:o,component:i}=e,{props:c,children:f,patchFlag:v}=t,b=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&v>=0){if(v&1024)return!0;if(v&16)return r?pu(r,c,b):!!c;if(v&8){const g=t.dynamicProps;for(let _=0;_<g.length;_++){const T=g[_];if(Rc(c,r,T)&&!wa(b,T))return!0}}}else return(o||f)&&(!f||!f.$stable)?!0:r===c?!1:r?c?pu(r,c,b):!0:!!c;return!1}function pu(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let o=0;o<r.length;o++){const i=r[o];if(!dt(e,i)||Rc(t,e,i)&&!wa(n,i))return!0}return!1}function Rc(e,t,n){const r=e[n],o=t[n];return n==="style"&&ft(r)&&ft(o)?!ls(r,o):r!==o}function Op({vnode:e,parent:t,suspense:n},r){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.suspense.vnode.el=o.el=r,e=o),o===e)(e=t.vnode).el=r,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=r)}const Kc={},Nc=()=>Object.create(Kc),Fc=e=>Object.getPrototypeOf(e)===Kc;function Mp(e,t,n,r=!1){const o={},i=Nc();e.propsDefaults=Object.create(null),Vc(e,t,o,i);for(const c in e.propsOptions[0])c in o||(o[c]=void 0);n?e.props=r?o:Nf(o):e.type.props?e.props=o:e.props=i,e.attrs=i}function Ip(e,t,n,r){const{props:o,attrs:i,vnode:{patchFlag:c}}=e,f=ut(o),[v]=e.propsOptions;let b=!1;if((r||c>0)&&!(c&16)){if(c&8){const g=e.vnode.dynamicProps;for(let _=0;_<g.length;_++){let T=g[_];if(wa(e.emitsOptions,T))continue;const x=t[T];if(v)if(dt(i,T))x!==i[T]&&(i[T]=x,b=!0);else{const j=yn(T);o[j]=Oi(v,f,j,x,e,!1)}else x!==i[T]&&(i[T]=x,b=!0)}}}else{Vc(e,t,o,i)&&(b=!0);let g;for(const _ in f)(!t||!dt(t,_)&&((g=vs(_))===_||!dt(t,g)))&&(v?n&&(n[_]!==void 0||n[g]!==void 0)&&(o[_]=Oi(v,f,_,void 0,e,!0)):delete o[_]);if(i!==f)for(const _ in i)(!t||!dt(t,_))&&(delete i[_],b=!0)}b&&Vn(e.attrs,"set","")}function Vc(e,t,n,r){const[o,i]=e.propsOptions;let c=!1,f;if(t)for(let v in t){if(Sr(v))continue;const b=t[v];let g;o&&dt(o,g=yn(v))?!i||!i.includes(g)?n[g]=b:(f||(f={}))[g]=b:wa(e.emitsOptions,v)||(!(v in r)||b!==r[v])&&(r[v]=b,c=!0)}if(i){const v=ut(n),b=f||pt;for(let g=0;g<i.length;g++){const _=i[g];n[_]=Oi(o,v,_,b[_],e,!dt(b,_))}}return c}function Oi(e,t,n,r,o,i){const c=e[n];if(c!=null){const f=dt(c,"default");if(f&&r===void 0){const v=c.default;if(c.type!==Function&&!c.skipFactory&&Ye(v)){const{propsDefaults:b}=o;if(n in b)r=b[n];else{const g=Yr(o);r=b[n]=v.call(null,t),g()}}else r=v;o.ce&&o.ce._setProp(n,r)}c[0]&&(i&&!f?r=!1:c[1]&&(r===""||r===vs(n))&&(r=!0))}return r}const jp=new WeakMap;function Bc(e,t,n=!1){const r=n?jp:t.propsCache,o=r.get(e);if(o)return o;const i=e.props,c={},f=[];let v=!1;if(!Ye(e)){const g=_=>{v=!0;const[T,x]=Bc(_,t,!0);Pt(c,T),x&&f.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!i&&!v)return ft(e)&&r.set(e,Ms),Ms;if(qe(i))for(let g=0;g<i.length;g++){const _=yn(i[g]);vu(_)&&(c[_]=pt)}else if(i)for(const g in i){const _=yn(g);if(vu(_)){const T=i[g],x=c[_]=qe(T)||Ye(T)?{type:T}:Pt({},T),j=x.type;let J=!1,oe=!0;if(qe(j))for(let ue=0;ue<j.length;++ue){const ce=j[ue],q=Ye(ce)&&ce.name;if(q==="Boolean"){J=!0;break}else q==="String"&&(oe=!1)}else J=Ye(j)&&j.name==="Boolean";x[0]=J,x[1]=oe,(J||dt(x,"default"))&&f.push(_)}}const b=[c,f];return ft(e)&&r.set(e,b),b}function vu(e){return e[0]!=="$"&&!Sr(e)}const al=e=>e==="_"||e==="_ctx"||e==="$stable",il=e=>qe(e)?e.map(Tn):[Tn(e)],Dp=(e,t,n)=>{if(t._n)return t;const r=ms((...o)=>il(t(...o)),n);return r._c=!1,r},Uc=(e,t,n)=>{const r=e._ctx;for(const o in e){if(al(o))continue;const i=e[o];if(Ye(i))t[o]=Dp(o,i,r);else if(i!=null){const c=il(i);t[o]=()=>c}}},qc=(e,t)=>{const n=il(t);e.slots.default=()=>n},Hc=(e,t,n)=>{for(const r in t)(n||!al(r))&&(e[r]=t[r])},Lp=(e,t,n)=>{const r=e.slots=Nc();if(e.vnode.shapeFlag&32){const o=t._;o?(Hc(r,t,n),n&&Yu(r,"_",o,!0)):Uc(t,r)}else t&&qc(e,t)},Rp=(e,t,n)=>{const{vnode:r,slots:o}=e;let i=!0,c=pt;if(r.shapeFlag&32){const f=t._;f?n&&f===1?i=!1:Hc(o,t,n):(i=!t.$stable,Uc(t,o)),c=t}else t&&(qc(e,t),c={default:1});if(i)for(const f in o)!al(f)&&c[f]==null&&delete o[f]},Qt=Bp;function Kp(e){return Np(e)}function Np(e,t){const n=va();n.__VUE__=!0;const{insert:r,remove:o,patchProp:i,createElement:c,createText:f,createComment:v,setText:b,setElementText:g,parentNode:_,nextSibling:T,setScopeId:x=Pn,insertStaticContent:j}=e,J=(h,y,C,R=null,F=null,le=null,ee=void 0,P=null,Z=!!y.dynamicChildren)=>{if(h===y)return;h&&!Ps(h,y)&&(R=bt(h),$e(h,F,le,!0),h=null),y.patchFlag===-2&&(Z=!1,y.dynamicChildren=null),y.dynamicChildren&&h&&h.dynamicChildren&&h.dynamicChildren.hasOnce&&(y.dynamicChildren===Ms&&(y.dynamicChildren=[]),y.dynamicChildren.hasOnce=!0);const{type:te,ref:Se,shapeFlag:we}=y;switch(te){case _a:oe(h,y,C,R);break;case Wt:ue(h,y,C,R);break;case jo:h==null&&ce(y,C,R,ee);break;case je:ne(h,y,C,R,F,le,ee,P,Z);break;default:we&1?H(h,y,C,R,F,le,ee,P,Z):we&6?Ie(h,y,C,R,F,le,ee,P,Z):(we&64||we&128)&&te.process(h,y,C,R,F,le,ee,P,Z,It)}Se!=null&&F?Ar(Se,h&&h.ref,le,y||h,!y):Se==null&&h&&h.ref!=null&&Ar(h.ref,null,le,h,!0)},oe=(h,y,C,R)=>{if(h==null)r(y.el=f(y.children),C,R);else{const F=y.el=h.el;y.children!==h.children&&b(F,y.children)}},ue=(h,y,C,R)=>{h==null?r(y.el=v(y.children||""),C,R):y.el=h.el},ce=(h,y,C,R)=>{[h.el,h.anchor]=j(h.children,y,C,R,h.el,h.anchor)},q=({el:h,anchor:y},C,R)=>{let F;for(;h&&h!==y;)F=T(h),r(h,C,R),h=F;r(y,C,R)},S=({el:h,anchor:y})=>{let C;for(;h&&h!==y;)C=T(h),o(h),h=C;o(y)},H=(h,y,C,R,F,le,ee,P,Z)=>{if(y.type==="svg"?ee="svg":y.type==="math"&&(ee="mathml"),h==null)Q(y,C,R,F,le,ee,P,Z);else{const te=h.el&&h.el._isVueCE?h.el:null;try{te&&te._beginPatch(),M(h,y,F,le,ee,P,Z)}finally{te&&te._endPatch()}}},Q=(h,y,C,R,F,le,ee,P)=>{let Z,te;const{props:Se,shapeFlag:we,transition:Re,dirs:Te}=h;if(Z=h.el=c(h.type,le,Se&&Se.is,Se),we&8?g(Z,h.children):we&16&&re(h.children,Z,null,R,F,fi(h,le),ee,P),Te&&Cs(h,null,R,"created"),G(Z,h,h.scopeId,ee,R),Se){for(const Qe in Se)Qe!=="value"&&!Sr(Qe)&&i(Z,Qe,null,Se[Qe],le,R);"value"in Se&&i(Z,"value",null,Se.value,le),(te=Se.onVnodeBeforeMount)&&xn(te,R,h)}Te&&Cs(h,null,R,"beforeMount");const Xe=Fp(F,Re);Xe&&Re.beforeEnter(Z),r(Z,y,C),((te=Se&&Se.onVnodeMounted)||Xe||Te)&&Qt(()=>{try{te&&xn(te,R,h),Xe&&Re.enter(Z),Te&&Cs(h,null,R,"mounted")}finally{}},F)},G=(h,y,C,R,F)=>{if(C&&x(h,C),R)for(let le=0;le<R.length;le++)x(h,R[le]);if(F){let le=F.subTree;if(y===le||Wc(le.type)&&(le.ssContent===y||le.ssFallback===y)){const ee=F.vnode;G(h,ee,ee.scopeId,ee.slotScopeIds,F.parent)}}},re=(h,y,C,R,F,le,ee,P,Z=0)=>{for(let te=Z;te<h.length;te++){const Se=h[te]=P?Fn(h[te]):Tn(h[te]);J(null,Se,y,C,R,F,le,ee,P)}},M=(h,y,C,R,F,le,ee)=>{const P=y.el=h.el;let{patchFlag:Z,dynamicChildren:te,dirs:Se}=y;Z|=h.patchFlag&16;const we=h.props||pt,Re=y.props||pt;let Te;if(C&&$s(C,!1),(Te=Re.onVnodeBeforeUpdate)&&xn(Te,C,y,h),Se&&Cs(y,h,C,"beforeUpdate"),C&&$s(C,!0),te&&(!h.dynamicChildren||h.dynamicChildren.length!==te.length)&&(Z=0,ee=!1,te=null),(we.innerHTML&&Re.innerHTML==null||we.textContent&&Re.textContent==null)&&g(P,""),te?E(h.dynamicChildren,te,P,C,R,fi(y,F),le):ee||de(h,y,P,null,C,R,fi(y,F),le,!1),Z>0){if(Z&16)I(P,we,Re,C,F);else if(Z&2&&we.class!==Re.class&&i(P,"class",null,Re.class,F),Z&4&&i(P,"style",we.style,Re.style,F),Z&8){const Xe=y.dynamicProps;for(let Qe=0;Qe<Xe.length;Qe++){const tt=Xe[Qe],_t=we[tt],$t=Re[tt];($t!==_t||tt==="value")&&i(P,tt,_t,$t,F,C)}}Z&1&&h.children!==y.children&&g(P,y.children)}else!ee&&te==null&&I(P,we,Re,C,F);((Te=Re.onVnodeUpdated)||Se)&&Qt(()=>{Te&&xn(Te,C,y,h),Se&&Cs(y,h,C,"updated")},R)},E=(h,y,C,R,F,le,ee)=>{for(let P=0;P<y.length;P++){const Z=h[P],te=y[P],Se=Z.el||Mi(Z),we=Se&&(Z.type===je||!Ps(Z,te)||Z.shapeFlag&198)?_(Se):C;J(Z,te,we,null,R,F,le,ee,!0)}},I=(h,y,C,R,F)=>{if(y!==C){if(y!==pt)for(const le in y)!Sr(le)&&!(le in C)&&i(h,le,y[le],null,F,R);for(const le in C){if(Sr(le))continue;const ee=C[le],P=y[le];ee!==P&&le!=="value"&&i(h,le,P,ee,F,R)}"value"in C&&i(h,"value",y.value,C.value,F)}},ne=(h,y,C,R,F,le,ee,P,Z)=>{const te=y.el=h?h.el:f(""),Se=y.anchor=h?h.anchor:f("");let{patchFlag:we,dynamicChildren:Re,slotScopeIds:Te}=y;Te&&(P=P?P.concat(Te):Te),h==null?(r(te,C,R),r(Se,C,R),re(y.children||[],C,Se,F,le,ee,P,Z)):we>0&&we&64&&Re&&h.dynamicChildren&&h.dynamicChildren.length===Re.length?(E(h.dynamicChildren,Re,C,F,le,ee,P),(y.key!=null||F&&y===F.subTree)&&ll(h,y,!0)):de(h,y,C,Se,F,le,ee,P,Z)},Ie=(h,y,C,R,F,le,ee,P,Z)=>{y.slotScopeIds=P,h==null?y.shapeFlag&512?F.ctx.activate(y,C,R,ee,Z):Ae(y,C,R,F,le,ee,Z):ye(h,y,Z)},Ae=(h,y,C,R,F,le,ee)=>{const P=h.component=Yp(h,R,F);if(ga(h)&&(P.ctx.renderer=It),Jp(P,!1,ee),P.asyncDep){if(F&&F.registerDep(P,Pe,ee,le),!h.el){const Z=P.subTree=Ce(Wt);ue(null,Z,y,C),h.placeholder=Z.el}}else Pe(P,h,y,C,F,le,ee)},ye=(h,y,C)=>{const R=y.component=h.component;if(Pp(h,y,C))if(R.asyncDep&&!R.asyncResolved){y.el=h.el,y.placeholder=h.placeholder,Ue(R,y,C);return}else R.next=y,R.update();else y.el=h.el,y.placeholder=h.placeholder,R.vnode=y},Pe=(h,y,C,R,F,le,ee)=>{const P=()=>{if(h.isMounted){let{next:we,bu:Re,u:Te,parent:Xe,vnode:Qe}=h;{const Yt=zc(h);if(Yt){we&&(we.el=Qe.el,Ue(h,we,ee)),Yt.asyncDep.then(()=>{Qt(()=>{h.isUnmounted||te()},F)});return}}let tt=we,_t;$s(h,!1),we?(we.el=Qe.el,Ue(h,we,ee)):we=Qe,Re&&Mo(Re),(_t=we.props&&we.props.onVnodeBeforeUpdate)&&xn(_t,Xe,we,Qe),$s(h,!0);const $t=fu(h),tn=h.subTree;h.subTree=$t,J(tn,$t,_(tn.el),bt(tn),h,F,le),we.el=$t.el,tt===null&&Op(h,$t.el),Te&&Qt(Te,F),(_t=we.props&&we.props.onVnodeUpdated)&&Qt(()=>xn(_t,Xe,we,Qe),F)}else{let we;const{el:Re,props:Te}=y,{bm:Xe,m:Qe,parent:tt,root:_t,type:$t}=h,tn=Pr(y);$s(h,!1),Xe&&Mo(Xe),!tn&&(we=Te&&Te.onVnodeBeforeMount)&&xn(we,tt,y),$s(h,!0);{_t.ce&&_t.ce._hasShadowRoot()&&_t.ce._injectChildStyle($t,h.parent?h.parent.type:void 0);const Yt=h.subTree=fu(h);J(null,Yt,C,R,h,F,le),y.el=Yt.el}if(Qe&&Qt(Qe,F),!tn&&(we=Te&&Te.onVnodeMounted)){const Yt=y;Qt(()=>xn(we,tt,Yt),F)}(y.shapeFlag&256||tt&&Pr(tt.vnode)&&tt.vnode.shapeFlag&256)&&h.a&&Qt(h.a,F),h.isMounted=!0,y=C=R=null}};h.scope.on();const Z=h.effect=new Zu(P);h.scope.off();const te=h.update=Z.run.bind(Z),Se=h.job=Z.runIfDirty.bind(Z);Se.i=h,Se.id=h.uid,Z.scheduler=()=>rl(Se),$s(h,!0),te()},Ue=(h,y,C)=>{y.component=h;const R=h.vnode.props;h.vnode=y,h.next=null,Ip(h,y.props,R,C),Rp(h,y.children,C),Mn(),yc(h),In()},de=(h,y,C,R,F,le,ee,P,Z=!1)=>{const te=h&&h.children,Se=h?h.shapeFlag:0,we=y.children,{patchFlag:Re,shapeFlag:Te}=y;if(Re>0){if(Re&128){Ee(te,we,C,R,F,le,ee,P,Z);return}else if(Re&256){ke(te,we,C,R,F,le,ee,P,Z);return}}Te&8?(Se&16&&gt(te,F,le),we!==te&&g(C,we)):Se&16?Te&16?Ee(te,we,C,R,F,le,ee,P,Z):gt(te,F,le,!0):(Se&8&&g(C,""),Te&16&&re(we,C,R,F,le,ee,P,Z))},ke=(h,y,C,R,F,le,ee,P,Z)=>{h=h||Ms,y=y||Ms;const te=h.length,Se=y.length,we=Math.min(te,Se);let Re;for(Re=0;Re<we;Re++){const Te=y[Re]=Z?Fn(y[Re]):Tn(y[Re]);J(h[Re],Te,C,null,F,le,ee,P,Z)}te>Se?gt(h,F,le,!0,!1,we):re(y,C,R,F,le,ee,P,Z,we)},Ee=(h,y,C,R,F,le,ee,P,Z)=>{let te=0;const Se=y.length;let we=h.length-1,Re=Se-1;for(;te<=we&&te<=Re;){const Te=h[te],Xe=y[te]=Z?Fn(y[te]):Tn(y[te]);if(Ps(Te,Xe))J(Te,Xe,C,null,F,le,ee,P,Z);else break;te++}for(;te<=we&&te<=Re;){const Te=h[we],Xe=y[Re]=Z?Fn(y[Re]):Tn(y[Re]);if(Ps(Te,Xe))J(Te,Xe,C,null,F,le,ee,P,Z);else break;we--,Re--}if(te>we){if(te<=Re){const Te=Re+1,Xe=Te<Se?y[Te].el:R;for(;te<=Re;)J(null,y[te]=Z?Fn(y[te]):Tn(y[te]),C,Xe,F,le,ee,P,Z),te++}}else if(te>Re)for(;te<=we;)$e(h[te],F,le,!0),te++;else{const Te=te,Xe=te,Qe=new Map;for(te=Xe;te<=Re;te++){const Kt=y[te]=Z?Fn(y[te]):Tn(y[te]);Kt.key!=null&&Qe.set(Kt.key,te)}let tt,_t=0;const $t=Re-Xe+1;let tn=!1,Yt=0;const nn=new Array($t);for(te=0;te<$t;te++)nn[te]=0;for(te=Te;te<=we;te++){const Kt=h[te];if(_t>=$t){$e(Kt,F,le,!0);continue}let Ot;if(Kt.key!=null)Ot=Qe.get(Kt.key);else for(tt=Xe;tt<=Re;tt++)if(nn[tt-Xe]===0&&Ps(Kt,y[tt])){Ot=tt;break}Ot===void 0?$e(Kt,F,le,!0):(nn[Ot-Xe]=te+1,Ot>=Yt?Yt=Ot:tn=!0,J(Kt,y[Ot],C,null,F,le,ee,P,Z),_t++)}const hs=tn?Vp(nn):Ms;for(tt=hs.length-1,te=$t-1;te>=0;te--){const Kt=Xe+te,Ot=y[Kt],Be=y[Kt+1],Gn=Kt+1<Se?Be.el||Mi(Be):R;nn[te]===0?J(null,Ot,C,Gn,F,le,ee,P,Z):tn&&(tt<0||te!==hs[tt]?Le(Ot,C,Gn,2):tt--)}}},Le=(h,y,C,R,F=null)=>{const{el:le,type:ee,transition:P,children:Z,shapeFlag:te}=h;if(te&6){Le(h.component.subTree,y,C,R);return}if(te&128){h.suspense.move(y,C,R);return}if(te&64){ee.move(h,y,C,It);return}if(ee===je){r(le,y,C);for(let we=0;we<Z.length;we++)Le(Z[we],y,C,R);r(h.anchor,y,C);return}if(ee===jo){q(h,y,C);return}if(R!==2&&te&1&&P)if(R===0)P.persisted&&!le[ln]?r(le,y,C):(P.beforeEnter(le),r(le,y,C),Qt(()=>P.enter(le),F));else{const{leave:we,delayLeave:Re,afterLeave:Te}=P,Xe=()=>{h.ctx.isUnmounted?o(le):r(le,y,C)},Qe=()=>{const tt=le._isLeaving||!!le[ln];le._isLeaving&&le[ln](!0),P.persisted&&!tt?Xe():we(le,()=>{Xe(),Te&&Te()})};Re?Re(le,Xe,Qe):Qe()}else r(le,y,C)},$e=(h,y,C,R=!1,F=!1)=>{const{type:le,props:ee,ref:P,children:Z,dynamicChildren:te,shapeFlag:Se,patchFlag:we,dirs:Re,cacheIndex:Te,memo:Xe}=h;if((we===-2||te&&te.hasOnce)&&(F=!1),P!=null&&(Mn(),Ar(P,null,C,h,!0),In()),Te!=null&&(!h.ctx||h.ctx===y)&&(y.renderCache[Te]=void 0),Se&256){y.ctx.deactivate(h);return}const Qe=Se&1&&Re,tt=!Pr(h);let _t;if(tt&&(_t=ee&&ee.onVnodeBeforeUnmount)&&xn(_t,y,h),Se&6)ct(h.component,C,R);else{if(Se&128){h.suspense.unmount(C,R);return}Qe&&Cs(h,null,y,"beforeUnmount"),Se&64?h.type.remove(h,y,C,It,R):te&&!te.hasOnce&&(le!==je||we>0&&we&64)?gt(te,y,C,!1,!0):(le===je&&we&384||!F&&Se&16)&&gt(Z,y,C),R&&pe(h)}const $t=Xe!=null&&Te==null;(tt&&(_t=ee&&ee.onVnodeUnmounted)||Qe||$t)&&Qt(()=>{_t&&xn(_t,y,h),Qe&&Cs(h,null,y,"unmounted"),$t&&(h.el=null)},C)},pe=h=>{const{type:y,el:C,anchor:R,transition:F}=h,le=y===je;if(le&&!F){De(C,R);return}if(y===jo){S(h),F&&!F.persisted&&F.afterLeave&&F.afterLeave();return}const ee=le?Kr(h):h,P=()=>{le?_(C)&&De(C,R):o(C),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(ee&&ee.shapeFlag&1&&F&&!F.persisted){const{leave:Z,delayLeave:te}=F,Se=ee.el,we=()=>Z(Se,P);te?te(Se,P,we):we()}else P()},De=(h,y)=>{let C;for(;h!==y;)C=T(h),o(h),h=C;o(y)},ct=(h,y,C)=>{const{bum:R,scope:F,job:le,subTree:ee,um:P,m:Z,a:te}=h;mu(Z),mu(te),R&&Mo(R),F.stop(),le?(le.flags|=8,$e(ee,h,y,C)):h.vnode.el&&ee&&(ee.transition=h.vnode.transition,$e(ee,h,y,C)),P&&Qt(P,y),Qt(()=>{h.isUnmounted=!0},y)},gt=(h,y,C,R=!1,F=!1,le=0)=>{for(let ee=le;ee<h.length;ee++)$e(h[ee],y,C,R,F)},bt=h=>{if(h.shapeFlag&6)return bt(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const y=T(h.anchor||h.el),C=y&&y[xc];return C?T(C):y},wt=(h,y,C)=>{const R=h&&y._vnode?void 0:h&&h.component?h.component.uid:Gp();Xf(()=>{h==null?y._vnode&&$e(y._vnode,null,null,!0):J(y._vnode||null,h,y,null,null,null,C),y._vnode=h},R)},It={p:J,um:$e,m:Le,r:pe,mt:Ae,mc:re,pc:de,pbc:E,n:bt,o:e};return{render:wt,hydrate:void 0,createApp:Cp(wt)}}function fi({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function $s({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Fp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ll(e,t,n=!1){const r=e.children,o=t.children;if(qe(r)&&qe(o))for(let i=0;i<r.length;i++){const c=r[i];let f=o[i];f.shapeFlag&1&&!f.dynamicChildren&&((f.patchFlag<=0||f.patchFlag===32)&&(f=o[i]=Fn(o[i]),f.el=c.el),!n&&f.patchFlag!==-2&&ll(c,f)),f.type===_a&&(f.patchFlag===-1&&(f=o[i]=Fn(f)),f.el=c.el),f.type===Wt&&!f.el&&(f.el=c.el)}}function Vp(e){const t=e.slice(),n=[0];let r,o,i,c,f;const v=e.length;for(r=0;r<v;r++){const b=e[r];if(b!==0){if(o=n[n.length-1],e[o]<b){t[r]=o,n.push(r);continue}for(i=0,c=n.length-1;i<c;)f=i+c>>1,e[n[f]]<b?i=f+1:c=f;b<e[n[i]]&&(i>0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,c=n[i-1];i-- >0;)n[i]=c,c=t[c];return n}function zc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:zc(t)}function mu(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Mi(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Mi(t.subTree):null}const Wc=e=>e.__isSuspense;function Bp(e,t){t&&t.pendingBranch?qe(e)?t.effects.push(...e):t.effects.push(e):Jf(e)}const je=Symbol.for("v-fgt"),_a=Symbol.for("v-txt"),Wt=Symbol.for("v-cmt"),jo=Symbol.for("v-stc"),Ds=[];let on=null;function $(e=!1){Ds.push(on=e?null:[])}function Gc(){Ds.pop(),on=Ds[Ds.length-1]||null}let Nr=1;function Go(e,t=!1){Nr+=e,e<0&&on&&t&&(on.hasOnce=!0)}function Yc(e){return e.dynamicChildren=Nr>0?on||Ms:null,Gc(),Nr>0&&on&&on.push(e),e}function A(e,t,n,r,o,i){return Yc(l(e,t,n,r,o,i,!0))}function St(e,t,n,r,o){return Yc(Ce(e,t,n,r,o,!0))}function Fr(e){return e?e.__v_isVNode===!0:!1}function Ps(e,t){return e.type===t.type&&e.key===t.key}const Jc=({key:e})=>e??null,Do=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ct(e)||Gt(e)||Ye(e)?{i:cn,r:e,k:t,f:!!n}:e:null);function l(e,t=null,n=null,r=0,o=null,i=e===je?0:1,c=!1,f=!1){const v={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jc(t),ref:t&&Do(t),scopeId:wc,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:cn};return f?(Yo(v,n),i&128&&e.normalize(v)):n&&(v.shapeFlag|=Ct(n)?8:16),Nr>0&&!c&&on&&(v.patchFlag>0||i&6)&&v.patchFlag!==32&&on.push(v),v}const Ce=Up;function Up(e,t=null,n=null,r=0,o=null,i=!1){if((!e||e===hp)&&(e=Wt),Fr(e)){const f=ds(e,t,!0);return n&&Yo(f,n),Nr>0&&!i&&on&&(f.shapeFlag&6?on[on.indexOf(e)]=f:on.push(f)),f.patchFlag=-2,f}if(ev(e)&&(e=e.__vccOpts),t){t=qp(t);let{class:f,style:v}=t;f&&!Ct(f)&&(t.class=Ze(f)),ft(v)&&(sl(v)&&!qe(v)&&(v=Pt({},v)),t.style=Un(v))}const c=Ct(e)?1:Wc(e)?128:ya(e)?64:ft(e)?4:Ye(e)?2:0;return l(e,t,n,r,o,c,i,!0)}function qp(e){return e?sl(e)||Fc(e)?Pt({},e):e:null}function ds(e,t,n=!1,r=!1){const{props:o,ref:i,patchFlag:c,children:f,transition:v}=e,b=t?zp(o||{},t):o,g={__v_isVNode:!0,__v_skip:!0,type:e.type,props:b,key:b&&Jc(b),ref:t&&t.ref?n&&i?qe(i)?i.concat(Do(t)):[i,Do(t)]:Do(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:f,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==je?c===-1?16:c|16:c,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:v,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ds(e.ssContent),ssFallback:e.ssFallback&&ds(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return v&&r&&cs(g,v.clone(g)),g}function vt(e=" ",t=0){return Ce(_a,null,e,t)}function Hp(e,t){const n=Ce(jo,null,e);return n.staticCount=t,n}function ge(e="",t=!1){return t?($(),St(Wt,null,e)):Ce(Wt,null,e)}function Tn(e){return e==null||typeof e=="boolean"?Ce(Wt):qe(e)?Ce(je,null,e.slice()):Fr(e)?Fn(e):Ce(_a,null,String(e))}function Fn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ds(e)}function Yo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(qe(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Yo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Fc(t)?t._ctx=cn:o===3&&cn&&(cn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ye(t)){if(r&65){Yo(e,{default:t});return}t={default:t,_ctx:cn},n=32}else t=String(t),r&64?(n=16,t=[vt(t)]):n=8;e.children=t,e.shapeFlag|=n}function zp(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const o in r)if(o==="class")t.class!==r.class&&(t.class=Ze([t.class,r.class]));else if(o==="style")t.style=Un([t.style,r.style]);else if(ca(o)){const i=t[o],c=r[o];c&&i!==c&&!(qe(i)&&i.includes(c))?t[o]=i?[].concat(i,c):c:c==null&&i==null&&!da(o)&&(t[o]=c)}else o!==""&&(t[o]=r[o])}return t}function xn(e,t,n,r=null){pn(e,t,7,[n,r])}const Wp=jc();let Xc=0;function Gp(){return Xc}function Yp(e,t,n){const r=e.type,o=(t?t.appContext:e.appContext)||Wp,i={uid:Xc++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new _f(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Bc(r,o),emitsOptions:Dc(r,o),emit:null,emitted:null,propsDefaults:pt,inheritAttrs:r.inheritAttrs,ctx:pt,data:pt,props:pt,attrs:pt,slots:pt,refs:pt,setupState:pt,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Sp.bind(null,i),e.ce&&e.ce(i),i}let en=null;const ul=()=>en||cn;let Jo,Vr;{const e=va(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),i=>{o.length>1?o.forEach(c=>c(i)):o[0](i)}};Jo=t("__VUE_INSTANCE_SETTERS__",n=>en=n),Vr=t("__VUE_SSR_SETTERS__",n=>Br=n)}const Yr=e=>{const t=en;return Jo(e),e.scope.on(),()=>{e.scope.off(),Jo(t)}},hu=()=>{en&&en.scope.off(),Jo(null)};function Qc(e){return e.vnode.shapeFlag&4}let Br=!1;function Jp(e,t=!1,n=!1){t&&Vr(t);const{props:r,children:o}=e.vnode,i=Qc(e);Mp(e,r,i,t),Lp(e,o,n||t);const c=i?Xp(e,t):void 0;return t&&Vr(!1),c}function Xp(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,yp);const{setup:r}=n;if(r){Mn();const o=e.setupContext=r.length>1?Zp(e):null,i=Yr(e),c=Gr(r,e,0,[e.props,o]),f=Hu(c);if(In(),i(),(f||e.sp)&&!Pr(e)&&Tc(e),f){if(c.then(hu,hu),t)return c.then(v=>{Vr(!0);try{yu(e,v,t)}finally{Vr(!1)}}).catch(v=>{ha(v,e,0)});e.asyncDep=c}else yu(e,c)}else Zc(e)}function yu(e,t,n){Ye(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ft(t)&&(e.setupState=vc(t)),Zc(e)}function Zc(e,t,n){const r=e.type;e.render||(e.render=r.render||Pn);{const o=Yr(e);Mn();try{gp(e)}finally{In(),o()}}}const Qp={get(e,t){return Ht(e,"get",""),e[t]}};function Zp(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qp),slots:e.slots,emit:e.emit,expose:t}}function ka(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(vc(Ff(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Or)return Or[n](e)},has(t,n){return n in t||n in Or}})):e.proxy}function ev(e){return Ye(e)&&"__vccOpts"in e}const rt=(e,t)=>Hf(e,t,Br);function tv(e,t,n){try{Go(-1);const r=arguments.length;return r===2?ft(t)&&!qe(t)?Fr(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Fr(n)&&(n=[n]),Ce(e,t,n))}finally{Go(1)}}const nv="3.5.44";/**
* @vue/runtime-dom v3.5.44
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Ii;const gu=typeof window<"u"&&window.trustedTypes;if(gu)try{Ii=gu.createPolicy("vue",{createHTML:e=>e})}catch{}const ed=Ii?e=>Ii.createHTML(e):e=>e,sv="http://www.w3.org/2000/svg",rv="http://www.w3.org/1998/Math/MathML",Nn=typeof document<"u"?document:null,bu=Nn&&Nn.createElement("template"),ov={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Nn.createElementNS(sv,e):t==="mathml"?Nn.createElementNS(rv,e):n?Nn.createElement(e,{is:n}):Nn.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Nn.createTextNode(e),createComment:e=>Nn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Nn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,i){const c=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{bu.innerHTML=ed(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const f=bu.content;if(r==="svg"||r==="mathml"){const v=f.firstChild;for(;v.firstChild;)f.appendChild(v.firstChild);f.removeChild(v)}t.insertBefore(f,n)}return[c?c.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ts="transition",kr="animation",nr=Symbol("_vtc"),td={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},nd=Pt({},$c,td),av=e=>(e.displayName="Transition",e.props=nd,e),lr=av((e,{slots:t})=>tv(ap,sd(e),t)),Ss=(e,t=[])=>{qe(e)?e.forEach(n=>n(...t)):e&&e(...t)},wu=e=>e?qe(e)?e.some(t=>t.length>1):e.length>1:!1;function sd(e){const t={};for(const ne in e)ne in td||(t[ne]=e[ne]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:i=`${n}-enter-from`,enterActiveClass:c=`${n}-enter-active`,enterToClass:f=`${n}-enter-to`,appearFromClass:v=i,appearActiveClass:b=c,appearToClass:g=f,leaveFromClass:_=`${n}-leave-from`,leaveActiveClass:T=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,j=iv(o),J=j&&j[0],oe=j&&j[1],{onBeforeEnter:ue,onEnter:ce,onEnterCancelled:q,onLeave:S,onLeaveCancelled:H,onBeforeAppear:Q=ue,onAppear:G=ce,onAppearCancelled:re=q}=t,M=(ne,Ie,Ae,ye)=>{ne._enterCancelled=ye,ss(ne,Ie?g:f),ss(ne,Ie?b:c),Ae&&Ae()},E=(ne,Ie)=>{ne._isLeaving=!1,ss(ne,_),ss(ne,x),ss(ne,T),Ie&&Ie()},I=ne=>(Ie,Ae)=>{const ye=ne?G:ce,Pe=()=>M(Ie,ne,Ae);Ss(ye,[Ie,Pe]),_u(()=>{ss(Ie,ne?v:i),Cn(Ie,ne?g:f),wu(ye)||ku(Ie,r,J,Pe)})};return Pt(t,{onBeforeEnter(ne){Ss(ue,[ne]),Cn(ne,i),Cn(ne,c)},onBeforeAppear(ne){Ss(Q,[ne]),Cn(ne,v),Cn(ne,b)},onEnter:I(!1),onAppear:I(!0),onLeave(ne,Ie){ne._isLeaving=!0;const Ae=()=>E(ne,Ie);Cn(ne,_),ne._enterCancelled?(Cn(ne,T),ji(ne)):(ji(ne),Cn(ne,T)),_u(()=>{ne._isLeaving&&(ss(ne,_),Cn(ne,x),wu(S)||ku(ne,r,oe,Ae))}),Ss(S,[ne,Ae])},onEnterCancelled(ne){M(ne,!1,void 0,!0),Ss(q,[ne])},onAppearCancelled(ne){M(ne,!0,void 0,!0),Ss(re,[ne])},onLeaveCancelled(ne){E(ne),Ss(H,[ne])}})}function iv(e){if(e==null)return null;if(ft(e))return[pi(e.enter),pi(e.leave)];{const t=pi(e);return[t,t]}}function pi(e){return df(e)}function Cn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[nr]||(e[nr]=new Set)).add(t)}function ss(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[nr];n&&(n.delete(t),n.size||(e[nr]=void 0))}function _u(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let lv=0;function ku(e,t,n,r){const o=e._endId=++lv,i=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(i,n);const{type:c,timeout:f,propCount:v}=rd(e,t);if(!c)return r();const b=c+"end";let g=0;const _=()=>{e.removeEventListener(b,T),i()},T=x=>{x.target===e&&++g>=v&&_()};setTimeout(()=>{g<v&&_()},f+1),e.addEventListener(b,T)}function rd(e,t){const n=window.getComputedStyle(e),r=j=>(n[j]||"").split(", "),o=r(`${ts}Delay`),i=r(`${ts}Duration`),c=xu(o,i),f=r(`${kr}Delay`),v=r(`${kr}Duration`),b=xu(f,v);let g=null,_=0,T=0;t===ts?c>0&&(g=ts,_=c,T=i.length):t===kr?b>0&&(g=kr,_=b,T=v.length):(_=Math.max(c,b),g=_>0?c>b?ts:kr:null,T=g?g===ts?i.length:v.length:0);const x=g===ts&&/\b(?:transform|all)(?:,|$)/.test(r(`${ts}Property`).toString());return{type:g,timeout:_,propCount:T,hasTransform:x}}function xu(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,r)=>Cu(n)+Cu(e[r])))}function Cu(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ji(e){return(e?e.ownerDocument:document).body.offsetHeight}function uv(e,t,n){const r=e[nr];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const $u=Symbol("_vod"),od=Symbol("_vsh"),cv=Symbol(""),dv=/(?:^|;)\s*display\s*:/;function fv(e,t,n){const r=e.style,o=Ct(n);let i=!1;if(n&&!o){if(t)if(Ct(t))for(const c of t.split(";")){const f=c.slice(0,c.indexOf(":")).trim();n[f]==null&&$r(r,f,"")}else for(const c in t)n[c]==null&&$r(r,c,"");for(const c in n){c==="display"&&(i=!0);const f=n[c];f!=null?vv(e,c,!Ct(t)&&t?t[c]:void 0,f)||$r(r,c,f):$r(r,c,"")}}else if(o){if(t!==n){const c=r[cv];c&&(n+=";"+c),r.cssText=n,i=dv.test(n)}}else t&&e.removeAttribute("style");$u in e&&((!o||t!==n)&&(e[$u]=i?r.display:""),e[od]&&(r.display="none"))}const Ao=/\s*!important$/;function $r(e,t,n){if(qe(n))n.forEach(r=>$r(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))Ao.test(n)?e.setProperty(t,n.replace(Ao,""),"important"):e.setProperty(t,n);else{const r=pv(e,t);Ao.test(n)?e.setProperty(vs(r),n.replace(Ao,""),"important"):e[r]=n}}const Su=["Webkit","Moz","ms"],vi={};function pv(e,t){const n=vi[t];if(n)return n;let r=yn(t);if(r!=="filter"&&r in e)return vi[t]=r;r=Gu(r);for(let o=0;o<Su.length;o++){const i=Su[o]+r;if(i in e)return vi[t]=i}return t}function vv(e,t,n,r){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Ct(r)&&n===r}const Eu="http://www.w3.org/1999/xlink";function Tu(e,t,n,r,o,i=yf(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Eu,t.slice(6,t.length)):e.setAttributeNS(Eu,t,n):n==null||i&&!Ju(n)?e.removeAttribute(t):e.setAttribute(t,i?"":On(n)?String(n):n)}function Au(e,t,n,r,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ed(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const f=i==="OPTION"?e.getAttribute("value")||"":e.value,v=n==null?e.type==="checkbox"?"on":"":String(n);(f!==v||!("_value"in e))&&(e.value=v),n==null&&e.removeAttribute(t),e._value=n;return}let c=!1;if(n===""||n==null){const f=typeof e[t];f==="boolean"?n=Ju(n):n==null&&f==="string"?(n="",c=!0):f==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(o||t)}function Os(e,t,n,r){e.addEventListener(t,n,r)}function mv(e,t,n,r){e.removeEventListener(t,n,r)}const Pu=Symbol("_vei");function hv(e,t,n,r,o=null){const i=e[Pu]||(e[Pu]={}),c=i[t];if(r&&c)c.value=r;else{const[f,v]=bv(t);if(r){const b=i[t]=kv(r,o);Os(e,f,b,v)}else c&&(mv(e,f,c,v),i[t]=void 0)}}const yv=/(Once|Passive|Capture)$/,gv=/^on:?(?:Once|Passive|Capture)$/;function bv(e){let t,n;for(;(n=e.match(yv))&&!gv.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 mi=0;const wv=Promise.resolve(),_v=()=>mi||(wv.then(()=>mi=0),mi=Date.now());function kv(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const o=n.value;if(qe(o)){const i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};const c=o.slice(),f=[r];for(let v=0;v<c.length&&!r._stopped;v++){const b=c[v];b&&pn(b,t,5,f)}}else pn(o,t,5,[r])};return n.value=e,n.attached=_v(),n}const Ou=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,xv=(e,t,n,r,o,i)=>{const c=o==="svg";t==="class"?uv(e,r,c):t==="style"?fv(e,n,r):ca(t)?da(t)||hv(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Cv(e,t,r,c))?(Au(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Tu(e,t,r,c,i,t!=="value")):e._isVueCE&&($v(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ct(r)))?Au(e,yn(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Tu(e,t,r,c))};function Cv(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ou(t)&&Ye(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 o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Ou(t)&&Ct(n)?!1:t in e}function $v(e,t){const n=e._def.props;if(!n)return!1;const r=yn(t);return Array.isArray(n)?n.some(o=>yn(o)===r):Object.keys(n).some(o=>yn(o)===r)}const ad=new WeakMap,id=new WeakMap,Xo=Symbol("_moveCb"),Mu=Symbol("_enterCb"),Di=new WeakMap,Sv=e=>(delete e.props.mode,e),Ev=Sv({name:"TransitionGroup",props:Pt({},nd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ul(),r=Cc();let o,i,c,f;const v=()=>(f===void 0&&(f=o.length>0&&Dv(o[0].el,n.vnode.el,Iu(e))),f);return Pc(()=>{if(Di.delete(n),!v()){o=[],c=void 0;return}const b=Iu(e);o.forEach(Av);const g=c&&jv(c,n.vnode.el);c=void 0,o.forEach(T=>Pv(T,g));const _=o.filter(Ov);ji(n.vnode.el),_.forEach(T=>{const x=T.el,j=x.style;Cn(x,b),j.transform=j.webkitTransform=j.transitionDuration="";const J=x[Xo]=oe=>{oe&&oe.target!==x||(!oe||oe.propertyName.endsWith("transform"))&&(x.removeEventListener("transitionend",J),x[Xo]=null,ss(x,b))};x.addEventListener("transitionend",J)}),o=[]}),()=>{const b=ut(e),g=sd(b);let _=b.tag||je;if(o=[],f=void 0,i)for(let T=0;T<i.length;T++){const x=i[T];x.el&&x.el instanceof Element&&!x.el[od]&&(o.push(x),cs(x,Rr(x,g,r,n)),ad.set(x,xa(x.el)))}i=t.default?ol(t.default()):[];for(let T=0;T<i.length;T++){const x=i[T];x.key!=null&&cs(x,Rr(x,g,r,n))}return o.length&&(c=Mv(n),Di.set(n,v)),Ce(_,null,i)}}}),Tv=Ev;function Av(e){const t=e.el;t[Xo]&&t[Xo](),t[Mu]&&t[Mu]()}function Iu(e){return e.moveClass||`${e.name||"v"}-move`}function Pv(e,t){id.set(e,xa(e.el,t))}function Ov(e){const t=ad.get(e),n=id.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const i=e.el,c=i.style,f=i.getBoundingClientRect();let v=1,b=1;return i.offsetWidth&&(v=f.width/i.offsetWidth),i.offsetHeight&&(b=f.height/i.offsetHeight),(!Number.isFinite(v)||v===0)&&(v=1),(!Number.isFinite(b)||b===0)&&(b=1),Math.abs(v-1)<.01&&(v=1),Math.abs(b-1)<.01&&(b=1),c.transform=c.webkitTransform=`translate(${r/v}px,${o/b}px)`,c.transitionDuration="0s",e}}function xa(e,t){const n=e.getBoundingClientRect();return{left:n.left-(t?t.left:0),top:n.top-(t?t.top:0)}}function Mv(e){let t;for(let n=e.parent;n;n=n.parent){const r=Di.get(n);if(r){const o=Iv(n.vnode.el,e.vnode.el);o&&(t||(t=[])).push(Pt(xa(o),{item:o,willMove:r}))}}return t}function Iv(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 jv(e,t){const n=e.find(r=>r.willMove()&&r.item.contains(t));return n&&xa(n.item,n)}function Dv(e,t,n){const r=e.cloneNode(),o=e[nr];o&&o.forEach(f=>{f.split(/\s+/).forEach(v=>v&&r.classList.remove(v))}),n.split(/\s+/).forEach(f=>f&&r.classList.add(f)),r.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(r);const{hasTransform:c}=rd(r);return i.removeChild(r),c}const Qo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return qe(t)?n=>Mo(t,n):t};function Lv(e){e.target.composing=!0}function ju(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Is=Symbol("_assign"),Po=Symbol("_initialValue");function hi(e,t,n){return t&&(e=e.trim()),n&&(e=pa(e)),e}const Ne={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e.parentNode&&(e.type==="text"?e[Po]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Po]=e.defaultValue.replace(/\r\n?/g,`
`))),e[Is]=Qo(o);const i=r||o.props&&o.props.type==="number";Os(e,t?"change":"input",c=>{c.target.composing||e[Is](hi(e.value,n,i))}),(n||i)&&Os(e,"change",()=>{e.value=hi(e.value,n,i)}),t||(Os(e,"compositionstart",Lv),Os(e,"compositionend",ju),Os(e,"change",ju))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){const o=t??"",i=e[Po];delete e[Po],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Is](hi(e.value,n,r)):e.value=o},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:o,number:i}},c){if(e[Is]=Qo(c),e.composing)return;const f=(i||e.type==="number")&&!/^0\d/.test(e.value)?pa(e.value):e.value,v=t??"";if(f===v)return;const b=e.getRootNode();(b instanceof Document||b instanceof ShadowRoot)&&b.activeElement===e&&e.type!=="range"&&(r&&t===n||o&&e.value.trim()===v)||(e.value=v)}},fs={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,Os(e,"change",()=>{const o=Array.prototype.filter.call(e.options,v=>v.selected).map(v=>n?pa(Zo(v)):Zo(v)),i=e.multiple,c=i?Ls(e._modelValue)?new Set(o):o:o[0],f=e._pendingValue=[i,i?qe(c)?o.slice():o:c];try{e[Is](c)}finally{ir(()=>{e._pendingValue===f&&(e._pendingValue=void 0)})}}),e[Is]=Qo(r)},mounted(e,{value:t}){Du(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Is]=Qo(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Rv(t,n[1],n[0]))&&Du(e,t)}};function Rv(e,t,n){if(!n||qe(e))return ls(e,t);if(Ls(e)){if(e.size!==t.length)return!1;for(const r of t)if(!e.has(r))return!1;return!0}return!1}function Du(e,t){const n=e.multiple,r=qe(t);if(!(n&&!r&&!Ls(t))){for(let o=0,i=e.options.length;o<i;o++){const c=e.options[o],f=Zo(c);if(n)if(r){const v=typeof f;v==="string"||v==="number"?c.selected=t.some(b=>String(b)===String(f)):c.selected=wf(t,f)>-1}else c.selected=t.has(f);else if(ls(Zo(c),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Zo(e){return"_value"in e?e._value:e.value}const Kv=["ctrl","shift","alt","meta"],Nv={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Kv.some(n=>e[`${n}Key`]&&!t.includes(n))},zt=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(o,...i)=>{for(let c=0;c<t.length;c++){const f=Nv[t[c]];if(f&&f(o,t))return}return e(o,...i)})},Fv={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={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const i=vs(o.key);if(t.some(c=>c===i||Fv[c]===i))return e(o)})},Vv=Pt({patchProp:xv},ov);let Lu;function Bv(){return Lu||(Lu=Kp(Vv))}const Uv=(...e)=>{const t=Bv().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Hv(r);if(!o)return;const i=t._component;!Ye(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const c=n(o,!1,qv(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),c},t};function qv(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Hv(e){return Ct(e)?document.querySelector(e):e}function Et(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 zv={calendar:Et('<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:Et('<circle cx="12" cy="12" r="8.25"/><path d="M12 7.75V12l2.75 1.75"/>'),"check-circle":Et('<circle cx="12" cy="12" r="8.25"/><path d="M8.5 12.4l2.4 2.4 4.6-5.2"/>'),edit:Et('<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:Et('<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:Et('<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:Et('<path d="M6.5 6.5l11 11M17.5 6.5l-11 11"/>'),flag:Et('<path d="M6.5 21V4"/><path d="M6.5 4.5h10.8l-2.6 3.7 2.6 3.7H6.5"/>'),chart:Et('<path d="M4.5 19.5h15"/><path d="M7.5 19.5V12M12 19.5V6.5M16.5 19.5V9.5"/>'),export:Et('<path d="M12 4.5V14M8.25 10.25L12 14l3.75-3.75"/><path d="M5 19.5h14"/>'),"chevron-left":Et('<path d="M14.5 6l-6 6 6 6"/>'),"chevron-right":Et('<path d="M9.5 6l6 6-6 6"/>'),"chevron-down":Et('<path d="M6 9.5l6 6 6-6"/>'),plus:Et('<path d="M12 5.5v13M5.5 12h13"/>'),search:Et('<circle cx="11" cy="11" r="6.5"/><path d="M15.8 15.8L20 20"/>'),settings:Et('<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:Et('<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:Et('<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:Et('<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:Et('<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:Et('<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"/>'),plan:Et('<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"/>')},Wv=["innerHTML"],He=Rt({__name:"Icon",props:{name:{},size:{default:16}},setup(e){const t=e,n=rt(()=>zv[t.name]||"");return(r,o)=>($(),A("span",{class:"icon",style:Un({width:e.size+"px",height:e.size+"px"}),innerHTML:n.value},null,12,Wv))}}),Gv=["aria-label"],Yv={class:"dialog-title"},Jv={class:"dialog-msg"},Xv={class:"dialog-btns"},Qv=Rt({__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,r=t;function o(i){n.open&&i.key==="Escape"&&r("cancel")}return yt(()=>n.open,i=>{i?window.addEventListener("keydown",o):window.removeEventListener("keydown",o)}),Wn(()=>window.removeEventListener("keydown",o)),(i,c)=>($(),St(Hn,{to:"body"},[Ce(lr,{name:"modal"},{default:ms(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:c[2]||(c[2]=zt(f=>r("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",Yv,W(e.title),1),l("div",Jv,W(e.message),1),l("div",Xv,[l("button",{class:"btn btn-sm",onClick:c[0]||(c[0]=f=>r("cancel"))},W(e.cancelText),1),l("button",{class:Ze(["btn btn-sm",e.danger?"btn-danger-solid":"btn-primary"]),onClick:c[1]||(c[1]=f=>r("confirm"))},W(e.confirmText),3)])],8,Gv)])):ge("",!0)]),_:1})]))}}),Vt=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},Dn=Vt(Qv,[["__scopeId","data-v-f27041d4"]]);var Ru=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zv(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ld={exports:{}};(function(e,t){((n,r)=>{e.exports=r()})(Ru,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)},r=function(){return(r=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 o(s,a,u){for(var d,p=0,m=a.length;p<m;p++)!d&&p in a||((d=d||Array.prototype.slice.call(a,0,p))[p]=a[p]);return s.concat(d||Array.prototype.slice.call(a))}var i=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ru,c=Object.keys,f=Array.isArray;function v(s,a){return typeof a=="object"&&c(a).forEach(function(u){s[u]=a[u]}),s}typeof Promise>"u"||i.Promise||(i.Promise=Promise);var b=Object.getPrototypeOf,g={}.hasOwnProperty;function _(s,a){return g.call(s,a)}function T(s,a){typeof a=="function"&&(a=a(b(s))),(typeof Reflect>"u"?c:Reflect.ownKeys)(a).forEach(function(u){j(s,u,a[u])})}var x=Object.defineProperty;function j(s,a,u,d){x(s,a,v(u&&_(u,"get")&&typeof u.get=="function"?{get:u.get,set:u.set,configurable:!0}:{value:u,configurable:!0,writable:!0},d))}function J(s){return{from:function(a){return s.prototype=Object.create(a.prototype),j(s.prototype,"constructor",s),{extend:T.bind(null,s.prototype)}}}}var oe=Object.getOwnPropertyDescriptor,ue=[].slice;function ce(s,a,u){return ue.call(s,a,u)}function q(s,a){return a(s)}function S(s){if(!s)throw new Error("Assertion Failed")}function H(s){i.setImmediate?setImmediate(s):setTimeout(s,0)}function Q(s,a){if(typeof a=="string"&&_(s,a))return s[a];if(!a)return s;if(typeof a!="string"){for(var u=[],d=0,p=a.length;d<p;++d){var m=Q(s,a[d]);u.push(m)}return u}var w,k=a.indexOf(".");return k===-1||(w=s[a.substr(0,k)])==null?void 0:Q(w,a.substr(k+1))}function G(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)G(s,a[d],u[d])}else{var m=a.indexOf(".");if(m!==-1){var w=a.substr(0,m),m=a.substr(m+1);if(m==="")u===void 0?f(s)&&!isNaN(parseInt(w))?s.splice(w,1):delete s[w]:s[w]=u;else{var k=s[w];if(!k||!_(s,w)){if(u===void 0)return;k=s[w]={}}G(k,m,u)}}else u===void 0?f(s)&&!isNaN(parseInt(a))?s.splice(a,1):delete s[a]:s[a]=u}}function re(s){var a,u={};for(a in s)_(s,a)&&(u[a]=s[a]);return u}var M=[].concat;function E(s){return M.apply([],s)}var $e="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(E([8,16,32,64].map(function(s){return["Int","Uint","Float"].map(function(a){return a+s+"Array"})}))).filter(function(s){return i[s]}),I=new Set($e.map(function(s){return i[s]})),ne=null;function Ie(s){return ne=new WeakMap,s=function a(u){if(!u||typeof u!="object")return u;var d=ne.get(u);if(d)return d;if(f(u)){d=[],ne.set(u,d);for(var p=0,m=u.length;p<m;++p)d.push(a(u[p]))}else if(I.has(u.constructor))d=u;else{var w,k=b(u);for(w in d=k===Object.prototype?{}:Object.create(k),ne.set(u,d),u)_(u,w)&&(d[w]=a(u[w]))}return d}(s),ne=null,s}var Ae={}.toString;function ye(s){return Ae.call(s).slice(8,-1)}var Pe=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Ue=typeof Pe=="symbol"?function(s){var a;return s!=null&&(a=s[Pe])&&a.apply(s)}:function(){return null};function de(s,a){a=s.indexOf(a),0<=a&&s.splice(a,1)}var ke={};function Ee(s){var a,u,d,p;if(arguments.length===1){if(f(s))return s.slice();if(this===ke&&typeof s=="string")return[s];if(p=Ue(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 Le=typeof Symbol<"u"?function(s){return s[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},$e=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Qe=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat($e),pe={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 De(s,a){this.name=s,this.message=a}function ct(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 gt(s,a,u,d){this.failures=a,this.failedKeys=d,this.successCount=u,this.message=ct(s,a)}function bt(s,a){this.name="BulkError",this.failures=Object.keys(a).map(function(u){return a[u]}),this.failuresByPos=a,this.message=ct(s,this.failures)}J(De).from(Error).extend({toString:function(){return this.name+": "+this.message}}),J(gt).from(De),J(bt).from(De);var wt=Qe.reduce(function(s,a){return s[a]=a+"Error",s},{}),It=De,fe=Qe.reduce(function(s,a){var u=a+"Error";function d(p,m){this.name=u,p?typeof p=="string"?(this.message="".concat(p).concat(m?`
`+m:""),this.inner=m||null):typeof p=="object"&&(this.message="".concat(p.name," ").concat(p.message),this.inner=p):(this.message=pe[a]||u,this.inner=null)}return J(d).from(It),s[a]=d,s},{}),h=(fe.Syntax=SyntaxError,fe.Type=TypeError,fe.Range=RangeError,$e.reduce(function(s,a){return s[a+"Error"]=fe[a],s},{}));$e=Qe.reduce(function(s,a){return["Syntax","Type","Range"].indexOf(a)===-1&&(s[a+"Error"]=fe[a]),s},{});function y(){}function C(s){return s}function R(s,a){return s==null||s===C?a:function(u){return a(s(u))}}function F(s,a){return function(){s.apply(this,arguments),a.apply(this,arguments)}}function le(s,a){return s===y?a:function(){var u=s.apply(this,arguments),d=(u!==void 0&&(arguments[0]=u),this.onsuccess),p=this.onerror,m=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?F(d,this.onsuccess):d),p&&(this.onerror=this.onerror?F(p,this.onerror):p),m!==void 0?m:u}}function ee(s,a){return s===y?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?F(u,this.onsuccess):u),d&&(this.onerror=this.onerror?F(d,this.onerror):d)}}function P(s,a){return s===y?a:function(){var u=s.apply(this,arguments),d=(v(arguments[0],u),this.onsuccess),p=this.onerror,m=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?F(d,this.onsuccess):d),p&&(this.onerror=this.onerror?F(p,this.onerror):p),u===void 0?m===void 0?void 0:m:v(u,m)}}function Z(s,a){return s===y?a:function(){return a.apply(this,arguments)!==!1&&s.apply(this,arguments)}}function te(s,a){return s===y?a:function(){var u=s.apply(this,arguments);if(u&&typeof u.then=="function"){for(var d=this,p=arguments.length,m=new Array(p);p--;)m[p]=arguments[p];return u.then(function(){return a.apply(d,m)})}return a.apply(this,arguments)}}$e.ModifyError=gt,$e.DexieError=De,$e.BulkError=bt;var Se=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function we(s){Se=s}var Re={},Te=100,Xe=typeof Promise>"u"?[]:(Qe=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Xe=crypto.subtle.digest("SHA-512",new Uint8Array([0])),b(Xe),Qe]:[Qe,b(Qe),Qe]),Qe=Xe[0],zs=Xe[1],zs=zs&&zs.then,tt=Qe&&Qe.constructor,_t=!!Xe[2],$t=function(s,a){Gn.push([s,a]),Yt&&(queueMicrotask(Ld),Yt=!1)},tn=!0,Yt=!0,nn=[],hs=[],Kt=C,Ot={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:y,pgp:!1,env:{},finalize:y},Be=Ot,Gn=[],ys=0,Zr=[];function Oe(s){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var a=this._PSD=Be;if(typeof s!="function"){if(s!==Re)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Ta(this,this._value)}else this._state=null,this._value=null,++a.ref,function u(d,p){try{p(function(m){if(d._state===null){if(m===d)throw new TypeError("A promise cannot be resolved with itself.");var w=d._lib&&Fs();m&&typeof m.then=="function"?u(d,function(k,L){m instanceof Oe?m._then(k,L):m.then(k,L)}):(d._state=!0,d._value=m,bl(d)),w&&Vs()}},Ta.bind(null,d))}catch(m){Ta(d,m)}}(this,s)}var Ea={get:function(){var s=Be,a=so;function u(d,p){var m=this,w=!s.global&&(s!==Be||a!==so),k=w&&!Jn(),L=new Oe(function(Y,N){Aa(m,new gl(_l(d,s,w,k),_l(p,s,w,k),Y,N,s))});return this._consoleTask&&(L._consoleTask=this._consoleTask),L}return u.prototype=Re,u},set:function(s){j(this,"then",s&&s.prototype===Re?Ea:{get:function(){return s},set:Ea.set})}};function gl(s,a,u,d,p){this.onFulfilled=typeof s=="function"?s:null,this.onRejected=typeof a=="function"?a:null,this.resolve=u,this.reject=d,this.psd=p}function Ta(s,a){var u,d;hs.push(a),s._state===null&&(u=s._lib&&Fs(),a=Kt(a),s._state=!1,s._value=a,d=s,nn.some(function(p){return p._value===d._value})||nn.push(d),bl(s),u)&&Vs()}function bl(s){var a=s._listeners;s._listeners=[];for(var u=0,d=a.length;u<d;++u)Aa(s,a[u]);var p=s._PSD;--p.ref||p.finalize(),ys===0&&(++ys,$t(function(){--ys==0&&Pa()},[]))}function Aa(s,a){if(s._state===null)s._listeners.push(a);else{var u=s._state?a.onFulfilled:a.onRejected;if(u===null)return(s._state?a.resolve:a.reject)(s._value);++a.psd.ref,++ys,$t(Dd,[u,s,a])}}function Dd(s,a,u){try{var d,p=a._value;!a._state&&hs.length&&(hs=[]),d=Se&&a._consoleTask?a._consoleTask.run(function(){return s(p)}):s(p),a._state||hs.indexOf(p)!==-1||(m=>{for(var w=nn.length;w;)if(nn[--w]._value===m._value)return nn.splice(w,1)})(a),u.resolve(d)}catch(m){u.reject(m)}finally{--ys==0&&Pa(),--u.psd.ref||u.psd.finalize()}}function Ld(){gs(Ot,function(){Fs()&&Vs()})}function Fs(){var s=tn;return Yt=tn=!1,s}function Vs(){var s,a,u;do for(;0<Gn.length;)for(s=Gn,Gn=[],u=s.length,a=0;a<u;++a){var d=s[a];d[0].apply(null,d[1])}while(0<Gn.length);Yt=tn=!0}function Pa(){for(var s=nn,a=(nn=[],s.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),Zr.slice(0)),u=a.length;u;)a[--u]()}function eo(s){return new Oe(Re,!1,s)}function kt(s,a){var u=Be;return function(){var d=Fs(),p=Be;try{return Xn(u,!0),s.apply(this,arguments)}catch(m){a&&a(m)}finally{Xn(p,!1),d&&Vs()}}}T(Oe.prototype,{then:Ea,_then:function(s,a){Aa(this,new gl(null,null,s,a,Be))},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:eo)(d)}):this.then(null,function(d){return(d&&d.name===a?u:eo)(d)}))},finally:function(s){return this.then(function(a){return Oe.resolve(s()).then(function(){return a})},function(a){return Oe.resolve(s()).then(function(){return eo(a)})})},timeout:function(s,a){var u=this;return s<1/0?new Oe(function(d,p){var m=setTimeout(function(){return p(new fe.Timeout(a))},s);u.then(d,p).finally(clearTimeout.bind(null,m))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&j(Oe.prototype,Symbol.toStringTag,"Dexie.Promise"),Ot.env=wl(),T(Oe,{all:function(){var s=Ee.apply(null,arguments).map(ro);return new Oe(function(a,u){s.length===0&&a([]);var d=s.length;s.forEach(function(p,m){return Oe.resolve(p).then(function(w){s[m]=w,--d||a(s)},u)})})},resolve:function(s){return s instanceof Oe?s:s&&typeof s.then=="function"?new Oe(function(a,u){s.then(a,u)}):new Oe(Re,!0,s)},reject:eo,race:function(){var s=Ee.apply(null,arguments).map(ro);return new Oe(function(a,u){s.map(function(d){return Oe.resolve(d).then(a,u)})})},PSD:{get:function(){return Be},set:function(s){return Be=s}},totalEchoes:{get:function(){return so}},newPSD:Yn,usePSD:gs,scheduler:{get:function(){return $t},set:function(s){$t=s}},rejectionMapper:{get:function(){return Kt},set:function(s){Kt=s}},follow:function(s,a){return new Oe(function(u,d){return Yn(function(p,m){var w=Be;w.unhandleds=[],w.onunhandled=m,w.finalize=F(function(){var k,L=this;k=function(){L.unhandleds.length===0?p():m(L.unhandleds[0])},Zr.push(function Y(){k(),Zr.splice(Zr.indexOf(Y),1)}),++ys,$t(function(){--ys==0&&Pa()},[])},w.finalize),s()},a,u,d)})}}),tt&&(tt.allSettled&&j(Oe,"allSettled",function(){var s=Ee.apply(null,arguments).map(ro);return new Oe(function(a){s.length===0&&a([]);var u=s.length,d=new Array(u);s.forEach(function(p,m){return Oe.resolve(p).then(function(w){return d[m]={status:"fulfilled",value:w}},function(w){return d[m]={status:"rejected",reason:w}}).then(function(){return--u||a(d)})})})}),tt.any&&typeof AggregateError<"u"&&j(Oe,"any",function(){var s=Ee.apply(null,arguments).map(ro);return new Oe(function(a,u){s.length===0&&u(new AggregateError([]));var d=s.length,p=new Array(d);s.forEach(function(m,w){return Oe.resolve(m).then(function(k){return a(k)},function(k){p[w]=k,--d||u(new AggregateError(p))})})})}),tt.withResolvers)&&(Oe.withResolvers=tt.withResolvers);var Dt={awaits:0,echoes:0,id:0},Rd=0,to=[],no=0,so=0,Kd=0;function Yn(s,w,u,d){var p=Be,m=Object.create(p),w=(m.parent=p,m.ref=0,m.global=!1,m.id=++Kd,Ot.env,m.env=_t?{Promise:Oe,PromiseProp:{value:Oe,configurable:!0,writable:!0},all:Oe.all,race:Oe.race,allSettled:Oe.allSettled,any:Oe.any,resolve:Oe.resolve,reject:Oe.reject}:{},w&&v(m,w),++p.ref,m.finalize=function(){--this.parent.ref||this.parent.finalize()},gs(m,s,u,d));return m.ref===0&&m.finalize(),w}function Bs(){return Dt.id||(Dt.id=++Rd),++Dt.awaits,Dt.echoes+=Te,Dt.id}function Jn(){return!!Dt.awaits&&(--Dt.awaits==0&&(Dt.id=0),Dt.echoes=Dt.awaits*Te,!0)}function ro(s){return Dt.echoes&&s&&s.constructor===tt?(Bs(),s.then(function(a){return Jn(),a},function(a){return Jn(),Tt(a)})):s}function Nd(){var s=to[to.length-1];to.pop(),Xn(s,!1)}function Xn(s,a){var u,d,p=Be;(a?!Dt.echoes||no++&&s===Be:!no||--no&&s===Be)||queueMicrotask(a?(function(m){++so,Dt.echoes&&--Dt.echoes!=0||(Dt.echoes=Dt.awaits=Dt.id=0),to.push(Be),Xn(m,!0)}).bind(null,s):Nd),s!==Be&&(Be=s,p===Ot&&(Ot.env=wl()),_t)&&(u=Ot.env.Promise,d=s.env,p.global||s.global)&&(Object.defineProperty(i,"Promise",d.PromiseProp),u.all=d.all,u.race=d.race,u.resolve=d.resolve,u.reject=d.reject,d.allSettled&&(u.allSettled=d.allSettled),d.any)&&(u.any=d.any)}function wl(){var s=i.Promise;return _t?{Promise:s,PromiseProp:Object.getOwnPropertyDescriptor(i,"Promise"),all:s.all,race:s.race,allSettled:s.allSettled,any:s.any,resolve:s.resolve,reject:s.reject}:{}}function gs(s,a,u,d,p){var m=Be;try{return Xn(s,!0),a(u,d,p)}finally{Xn(m,!1)}}function _l(s,a,u,d){return typeof s!="function"?s:function(){var p=Be;u&&Bs(),Xn(a,!0);try{return s.apply(this,arguments)}finally{Xn(p,!1),d&&queueMicrotask(Jn)}}}function Oa(s){Promise===tt&&Dt.echoes===0?no===0?s():enqueueNativeMicroTask(s):setTimeout(s,0)}(""+zs).indexOf("[native code]")===-1&&(Bs=Jn=y);var Tt=Oe.reject,bs="￿",Ln="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",kl="String expected.",oo="__dbnames",Ma="readonly",Ia="readwrite";function ws(s,a){return s?a?function(){return s.apply(this,arguments)&&a.apply(this,arguments)}:s:a}var xl={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function ao(s){return typeof s!="string"||/\./.test(s)?function(a){return a}:function(a){return a[s]===void 0&&s in a&&delete(a=Ie(a))[s],a}}function Cl(){throw fe.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function st(s,a){try{var u=$l(s),d=$l(a);if(u!==d)return u==="Array"?1:d==="Array"?-1:u==="binary"?1:d==="binary"?-1:u==="string"?1:d==="string"?-1:u==="Date"?1:d!=="Date"?NaN:-1;switch(u){case"number":case"Date":case"string":return a<s?1:s<a?-1:0;case"binary":for(var p=Sl(s),m=Sl(a),w=p.length,k=m.length,L=w<k?w:k,Y=0;Y<L;++Y)if(p[Y]!==m[Y])return p[Y]<m[Y]?-1:1;return w===k?0:w<k?-1:1;case"Array":for(var N=s,D=a,K=N.length,z=D.length,B=K<z?K:z,V=0;V<B;++V){var U=st(N[V],D[V]);if(U!==0)return U}return K===z?0:K<z?-1:1}}catch{}return NaN}function $l(s){var a=typeof s;return a=="object"&&(ArrayBuffer.isView(s)||(a=ye(s))==="ArrayBuffer")?"binary":a}function Sl(s){return s instanceof Uint8Array?s:ArrayBuffer.isView(s)?new Uint8Array(s.buffer,s.byteOffset,s.byteLength):new Uint8Array(s)}function io(s,a,u){var d=s.schema.yProps;return d?(a&&0<u.numFailures&&(a=a.filter(function(p,m){return!u.failures[m]})),Promise.all(d.map(function(p){return p=p.updatesTable,a?s.db.table(p).where("k").anyOf(a).delete():s.db.table(p).clear()})).then(function(){return u})):u}El.prototype.execute=function(s){var a=this["@@propmod"];if(a.add!==void 0){var u=a.add;if(f(u))return o(o([],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 dr=El;function El(s){this["@@propmod"]=s}function Tl(s,a){for(var u=c(a),d=u.length,p=!1,m=0;m<d;++m){var w=u[m],k=a[w],L=Q(s,w);k instanceof dr?(G(s,w,k.execute(L)),p=!0):L!==k&&(G(s,w,k),p=!0)}return p}mt.prototype._trans=function(s,a,u){var d=this._tx||Be.trans,p=this.name,m=Se&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(s==="readonly"?"read":"write"," ").concat(this.name));function w(Y,N,D){if(D.schema[p])return a(D.idbtrans,D);throw new fe.NotFound("Table "+p+" not part of transaction")}var k=Fs();try{var L=d&&d.db._novip===this.db._novip?d===Be.trans?d._promise(s,w,u):Yn(function(){return d._promise(s,w,u)},{trans:d,transless:Be.transless||Be}):function Y(N,D,K,z){if(N.idbdb&&(N._state.openComplete||Be.letThrough||N._vip)){var B=N._createTransaction(D,K,N._dbSchema);try{B.create(),N._state.PR1398_maxLoop=3}catch(V){return V.name===wt.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,D,K,z)})):Tt(V)}return B._promise(D,function(V,U){return Yn(function(){return Be.trans=B,z(V,U,B)})}).then(function(V){if(D==="readwrite")try{B.idbtrans.commit()}catch{}return D==="readonly"?V:B._completion.then(function(){return V})})}if(N._state.openComplete)return Tt(new fe.DatabaseClosed(N._state.dbOpenError));if(!N._state.isBeingOpened){if(!N._state.autoOpen)return Tt(new fe.DatabaseClosed);N.open().catch(y)}return N._state.dbReadyPromise.then(function(){return Y(N,D,K,z)})}(this.db,s,[this.name],w);return m&&(L._consoleTask=m,L=L.catch(function(Y){return console.trace(Y),Tt(Y)})),L}finally{k&&Vs()}},mt.prototype.get=function(s,a){var u=this;return s&&s.constructor===Object?this.where(s).first(a):s==null?Tt(new fe.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)},mt.prototype.where=function(s){if(typeof s=="string")return new this.db.WhereClause(this,s);if(f(s))return new this.db.WhereClause(this,"[".concat(s.join("+"),"]"));var a=c(s);if(a.length===1)return this.where(a[0]).equals(s[a[0]]);var u=this.schema.indexes.concat(this.schema.primKey).filter(function(k){if(k.compound&&a.every(function(Y){return 0<=k.keyPath.indexOf(Y)})){for(var L=0;L<a.length;++L)if(a.indexOf(k.keyPath[L])===-1)return!1;return!0}return!1}).sort(function(k,L){return k.keyPath.length-L.keyPath.length})[0];if(u&&this.db._maxKey!==bs)return w=u.keyPath.slice(0,a.length),this.where(w).equals(w.map(function(k){return s[k]}));!u&&Se&&console.warn("The query ".concat(JSON.stringify(s)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(a.join("+"),"]"));var d=this.schema.idxByName;function p(k,L){return st(k,L)===0}var w=a.reduce(function(N,L){var Y=N[0],N=N[1],D=d[L],K=s[L];return[Y||D,Y||!D?ws(N,D&&D.multi?function(z){return z=Q(z,L),f(z)&&z.some(function(B){return p(K,B)})}:function(z){return p(K,Q(z,L))}):N]},[null,null]),m=w[0],w=w[1];return m?this.where(m.name).equals(s[m.keyPath]).filter(w):u?this.filter(w):this.where(a).equals("")},mt.prototype.filter=function(s){return this.toCollection().and(s)},mt.prototype.count=function(s){return this.toCollection().count(s)},mt.prototype.offset=function(s){return this.toCollection().offset(s)},mt.prototype.limit=function(s){return this.toCollection().limit(s)},mt.prototype.each=function(s){return this.toCollection().each(s)},mt.prototype.toArray=function(s){return this.toCollection().toArray(s)},mt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},mt.prototype.orderBy=function(s){return new this.db.Collection(new this.db.WhereClause(this,f(s)?"[".concat(s.join("+"),"]"):s))},mt.prototype.reverse=function(){return this.toCollection().reverse()},mt.prototype.mapToClass=function(s){for(var a=this.db,u=this.name,d=((this.schema.mappedClass=s).prototype instanceof Cl&&(s=(w=>{var k=N,L=w;if(typeof L!="function"&&L!==null)throw new TypeError("Class extends value "+String(L)+" is not a constructor or null");function Y(){this.constructor=k}function N(){return w!==null&&w.apply(this,arguments)||this}return n(k,L),k.prototype=L===null?Object.create(L):(Y.prototype=L.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=b(p))Object.getOwnPropertyNames(p).forEach(function(w){return d.add(w)});function m(w){if(!w)return w;var k,L=Object.create(s.prototype);for(k in w)if(!d.has(k))try{L[k]=w[k]}catch{}return L}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=m,this.hook("reading",m),s},mt.prototype.defineClass=function(){return this.mapToClass(function(s){v(this,s)})},mt.prototype.add=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,m=d.keyPath,w=s;return m&&p&&(w=ao(m)(s)),this._trans("readwrite",function(k){return u.core.mutate({trans:k,type:"add",keys:a!=null?[a]:null,values:[w]})}).then(function(k){return k.numFailures?Oe.reject(k.failures[0]):k.lastResult}).then(function(k){if(m)try{G(s,m,k)}catch{}return k})},mt.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(m){var w=m??{};return Tl(w,a),d&&G(w,d,s),u.core.mutate({trans:p,type:"put",values:[w],keys:[s],upsert:!0,updates:{keys:[s],changeSpecs:[a]}}).then(function(k){return k.numFailures?Oe.reject(k.failures[0]):!!m})})})},mt.prototype.update=function(s,a){return typeof s!="object"||f(s)?this.where(":id").equals(s).modify(a):(s=Q(s,this.schema.primKey.keyPath))===void 0?Tt(new fe.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(s).modify(a)},mt.prototype.put=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,m=d.keyPath,w=s;return m&&p&&(w=ao(m)(s)),this._trans("readwrite",function(k){return u.core.mutate({trans:k,type:"put",values:[w],keys:a!=null?[a]:null})}).then(function(k){return k.numFailures?Oe.reject(k.failures[0]):k.lastResult}).then(function(k){if(m)try{G(s,m,k)}catch{}return k})},mt.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 io(a,[s],d)}).then(function(d){return d.numFailures?Oe.reject(d.failures[0]):void 0})})},mt.prototype.clear=function(){var s=this;return this._trans("readwrite",function(a){return s.core.mutate({trans:a,type:"deleteRange",range:xl}).then(function(u){return io(s,null,u)})}).then(function(a){return a.numFailures?Oe.reject(a.failures[0]):void 0})},mt.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)})})})},mt.prototype.bulkAdd=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,m=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var k=d.schema.primKey,Y=k.auto,k=k.keyPath;if(k&&p)throw new fe.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new fe.InvalidArgument("Arguments objects and keys must have the same length");var L=s.length,Y=k&&Y?s.map(ao(k)):s;return d.core.mutate({trans:w,type:"add",keys:p,values:Y,wantResults:m}).then(function(N){var D=N.numFailures,K=N.failures;if(D===0)return m?N.results:N.lastResult;throw new bt("".concat(d.name,".bulkAdd(): ").concat(D," of ").concat(L," operations failed"),K)})})},mt.prototype.bulkPut=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,m=(u=u||(p?void 0:a))?u.allKeys:void 0;return this._trans("readwrite",function(w){var k=d.schema.primKey,Y=k.auto,k=k.keyPath;if(k&&p)throw new fe.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(p&&p.length!==s.length)throw new fe.InvalidArgument("Arguments objects and keys must have the same length");var L=s.length,Y=k&&Y?s.map(ao(k)):s;return d.core.mutate({trans:w,type:"put",keys:p,values:Y,wantResults:m}).then(function(N){var D=N.numFailures,K=N.failures;if(D===0)return m?N.results:N.lastResult;throw new bt("".concat(d.name,".bulkPut(): ").concat(D," of ").concat(L," operations failed"),K)})})},mt.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}),m=[];return this._trans("readwrite",function(w){return u.getMany({trans:w,keys:d,cache:"clone"}).then(function(k){var L=[],Y=[],N=(s.forEach(function(D,K){var z=D.key,B=D.changes,V=k[K];if(V){for(var U=0,se=Object.keys(B);U<se.length;U++){var X=se[U],ie=B[X];if(X===a.schema.primKey.keyPath){if(st(ie,z)!==0)throw new fe.Constraint("Cannot update primary key in bulkUpdate()")}else G(V,X,ie)}m.push(K),L.push(z),Y.push(V)}}),L.length);return u.mutate({trans:w,type:"put",keys:L,values:Y,updates:{keys:d,changeSpecs:p}}).then(function(D){var K=D.numFailures,z=D.failures;if(K===0)return N;for(var B=0,V=Object.keys(z);B<V.length;B++){var U,se=V[B],X=m[Number(se)];X!=null&&(U=z[se],delete z[se],z[X]=U)}throw new bt("".concat(a.name,".bulkUpdate(): ").concat(K," of ").concat(N," operations failed"),z)})})})},mt.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 io(a,s,p)})}).then(function(d){var p=d.numFailures,m=d.failures;if(p===0)return d.lastResult;throw new bt("".concat(a.name,".bulkDelete(): ").concat(p," of ").concat(u," operations failed"),m)})};var Al=mt;function mt(){}function fr(s){function a(w,k){if(k){for(var L=arguments.length,Y=new Array(L-1);--L;)Y[L-1]=arguments[L];return u[w].subscribe.apply(null,Y),s}if(typeof w=="string")return u[w]}var u={};a.addEventType=m;for(var d=1,p=arguments.length;d<p;++d)m(arguments[d]);return a;function m(w,k,L){var Y,N;if(typeof w!="object")return k=k||Z,N={subscribers:[],fire:L=L||y,subscribe:function(D){N.subscribers.indexOf(D)===-1&&(N.subscribers.push(D),N.fire=k(N.fire,D))},unsubscribe:function(D){N.subscribers=N.subscribers.filter(function(K){return K!==D}),N.fire=N.subscribers.reduce(k,L)}},u[w]=a[w]=N;c(Y=w).forEach(function(D){var K=Y[D];if(f(K))m(D,Y[D][0],Y[D][1]);else{if(K!=="asap")throw new fe.InvalidArgument("Invalid event config");var z=m(D,C,function(){for(var B=arguments.length,V=new Array(B);B--;)V[B]=arguments[B];z.subscribers.forEach(function(U){H(function(){U.apply(null,V)})})})}})}}function pr(s,a){return J(a).from({prototype:s}),a}function Us(s,a){return!(s.filter||s.algorithm||s.or)&&(a?s.justLimit:!s.replayFilter)}function ja(s,a){s.filter=ws(s.filter,a)}function Da(s,a,u){var d=s.replayFilter;s.replayFilter=d?function(){return ws(d(),a())}:a,s.justLimit=u&&!d}function lo(s,a){if(s.isPrimKey)return a.primaryKey;var u=a.getIndexByKeyPath(s.index);if(u)return u;throw new fe.Schema("KeyPath "+s.index+" on object store "+a.name+" is not indexed")}function Pl(s,a,u){var d=lo(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 uo(s,a,u,d){var p,m,w=s.replayFilter?ws(s.filter,s.replayFilter()):s.filter;return s.or?(p={},m=function(k,L,Y){var N,D;w&&!w(L,Y,function(K){return L.stop(K)},function(K){return L.fail(K)})||((D=""+(N=L.primaryKey))=="[object ArrayBuffer]"&&(D=""+new Uint8Array(N)),_(p,D))||(p[D]=!0,a(k,L,Y))},Promise.all([s.or._iterate(m,u),Ol(Pl(s,d,u),s.algorithm,m,!s.keysOnly&&s.valueMapper)])):Ol(Pl(s,d,u),ws(s.algorithm,w),a,!s.keysOnly&&s.valueMapper)}function Ol(s,a,u,d){var p=kt(d?function(m,w,k){return u(d(m),w,k)}:u);return s.then(function(m){if(m)return m.start(function(){var w=function(){return m.continue()};a&&!a(m,function(k){return w=k},function(k){m.stop(k),w=y},function(k){m.fail(k),w=y})||p(m.value,m,function(k){return w=k}),w()})})}lt.prototype._read=function(s,a){var u=this._ctx;return u.error?u.table._trans(null,Tt.bind(null,u.error)):u.table._trans("readonly",s).then(a)},lt.prototype._write=function(s){var a=this._ctx;return a.error?a.table._trans(null,Tt.bind(null,a.error)):a.table._trans("readwrite",s,"locked")},lt.prototype._addAlgorithm=function(s){var a=this._ctx;a.algorithm=ws(a.algorithm,s)},lt.prototype._iterate=function(s,a){return uo(this._ctx,s,a,this._ctx.table.core)},lt.prototype.clone=function(s){var a=Object.create(this.constructor.prototype),u=Object.create(this._ctx);return s&&v(u,s),a._ctx=u,a},lt.prototype.raw=function(){return this._ctx.valueMapper=null,this},lt.prototype.each=function(s){var a=this._ctx;return this._read(function(u){return uo(a,s,u,a.table.core)})},lt.prototype.count=function(s){var a=this;return this._read(function(u){var d,p=a._ctx,m=p.table.core;return Us(p,!0)?m.count({trans:u,query:{index:lo(p,m.schema),range:p.range}}).then(function(w){return Math.min(w,p.limit)}):(d=0,uo(p,function(){return++d,!1},u,m).then(function(){return d}))}).then(s)},lt.prototype.sortBy=function(s,a){var u=s.split(".").reverse(),d=u[0],p=u.length-1;function m(L,Y){return Y?m(L[u[Y]],Y-1):L[d]}var w=this._ctx.dir==="next"?1:-1;function k(L,Y){return st(m(L,p),m(Y,p))*w}return this.toArray(function(L){return L.slice().sort(k)}).then(a)},lt.prototype.toArray=function(s){var a=this;return this._read(function(u){var d,p,m,w=a._ctx;return Us(w,!0)&&0<w.limit?(d=w.valueMapper,p=lo(w,w.table.core.schema),w.table.core.query({trans:u,limit:w.limit,values:!0,direction:w.dir==="prev"?"prev":void 0,query:{index:p,range:w.range}}).then(function(k){return k=k.result,d?k.map(d):k})):(m=[],uo(w,function(k){return m.push(k)},u,w.table.core).then(function(){return m}))},s)},lt.prototype.offset=function(s){var a=this._ctx;return s<=0||(a.offset+=s,Us(a)?Da(a,function(){var u=s;return function(d,p){return u===0||(u===1?--u:p(function(){d.advance(u),u=0}),!1)}}):Da(a,function(){var u=s;return function(){return--u<0}})),this},lt.prototype.limit=function(s){return this._ctx.limit=Math.min(this._ctx.limit,s),Da(this._ctx,function(){var a=s;return function(u,d,p){return--a<=0&&d(p),0<=a}},!0),this},lt.prototype.until=function(s,a){return ja(this._ctx,function(u,d,p){return!s(u.value)||(d(p),a)}),this},lt.prototype.first=function(s){return this.limit(1).toArray(function(a){return a[0]}).then(s)},lt.prototype.last=function(s){return this.reverse().first(s)},lt.prototype.filter=function(s){var a;return ja(this._ctx,function(u){return s(u.value)}),(a=this._ctx).isMatch=ws(a.isMatch,s),this},lt.prototype.and=function(s){return this.filter(s)},lt.prototype.or=function(s){return new this.db.WhereClause(this._ctx.table,s,this)},lt.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},lt.prototype.desc=function(){return this.reverse()},lt.prototype.eachKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.key,d)})},lt.prototype.eachUniqueKey=function(s){return this._ctx.unique="unique",this.eachKey(s)},lt.prototype.eachPrimaryKey=function(s){var a=this._ctx;return a.keysOnly=!a.isMatch,this.each(function(u,d){s(d.primaryKey,d)})},lt.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)},lt.prototype.primaryKeys=function(s){var a=this._ctx;if(Us(a,!0)&&0<a.limit)return this._read(function(d){var p=lo(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)},lt.prototype.uniqueKeys=function(s){return this._ctx.unique="unique",this.keys(s)},lt.prototype.firstKey=function(s){return this.limit(1).keys(function(a){return a[0]}).then(s)},lt.prototype.lastKey=function(s){return this.reverse().firstKey(s)},lt.prototype.distinct=function(){var s,a=this._ctx,a=a.index&&a.table.schema.idxByName[a.index];return a&&a.multi&&(s={},ja(this._ctx,function(d){var d=d.primaryKey.toString(),p=_(s,d);return s[d]=!0,!p})),this},lt.prototype.modify=function(s){var a=this,u=this._ctx;return this._write(function(d){function p(V,U){var se=U.failures;K+=V-U.numFailures;for(var X=0,ie=c(se);X<ie.length;X++){var ve=ie[X];D.push(se[ve])}}var m=typeof s=="function"?s:function(V){return Tl(V,s)},w=u.table.core,N=w.schema.primaryKey,k=N.outbound,L=N.extractKey,Y=200,N=a.db._options.modifyChunkSize,D=(N&&(Y=typeof N=="object"?N[w.name]||N["*"]||200:N),[]),K=0,z=[],B=s===Ml;return a.clone().primaryKeys().then(function(V){function U(X){var ie=Math.min(Y,V.length-X),ve=V.slice(X,X+ie);return(B?Promise.resolve([]):w.getMany({trans:d,keys:ve,cache:"immutable"})).then(function(he){var xe=[],be=[],Ke=k?[]:null,_e=B?ve:[];if(!B)for(var Fe=0;Fe<ie;++Fe){var me=he[Fe],ze={value:Ie(me),primKey:V[X+Fe]};m.call(ze,ze.value,ze)!==!1&&(ze.value==null?_e.push(V[X+Fe]):k||st(L(me),L(ze.value))===0?(be.push(ze.value),k&&Ke.push(V[X+Fe])):(_e.push(V[X+Fe]),xe.push(ze.value)))}return Promise.resolve(0<xe.length&&w.mutate({trans:d,type:"add",values:xe}).then(function(We){for(var Je in We.failures)_e.splice(parseInt(Je),1);p(xe.length,We)})).then(function(){return(0<be.length||se&&typeof s=="object")&&w.mutate({trans:d,type:"put",keys:Ke,values:be,criteria:se,changeSpec:typeof s!="function"&&s,isAdditionalChunk:0<X}).then(function(We){return p(be.length,We)})}).then(function(){return(0<_e.length||se&&B)&&w.mutate({trans:d,type:"delete",keys:_e,criteria:se,isAdditionalChunk:0<X}).then(function(We){return io(u.table,_e,We)}).then(function(We){return p(_e.length,We)})}).then(function(){return V.length>X+ie&&U(X+Y)})})}var se=Us(u)&&u.limit===1/0&&(typeof s!="function"||B)&&{index:u.index,range:u.range};return U(0).then(function(){if(0<D.length)throw new gt("Error modifying one or more objects",D,K,z);return V.length})})})},lt.prototype.delete=function(){var s=this._ctx,a=s.range;return!Us(s)||s.table.schema.yProps||!s.isPrimKey&&a.type!==3?this.modify(Ml):this._write(function(u){var d=s.table.core.schema.primaryKey,p=a;return s.table.core.count({trans:u,query:{index:d,range:p}}).then(function(m){return s.table.core.mutate({trans:u,type:"deleteRange",range:p}).then(function(L){var k=L.failures,L=L.numFailures;if(L)throw new gt("Could not delete some values",Object.keys(k).map(function(Y){return k[Y]}),m-L);return m-L})})})};var Fd=lt;function lt(){}var Ml=function(s,a){return a.value=null};function Vd(s,a){return s<a?-1:s===a?0:1}function Bd(s,a){return a<s?-1:s===a?0:1}function sn(s,a,u){return s=s instanceof jl?new s.Collection(s):s,s._ctx.error=new(u||TypeError)(a),s}function qs(s){return new s.Collection(s,function(){return Il("")}).limit(0)}function co(z,a,u,d){var p,m,w,k,L,Y,N,D=u.length;if(!u.every(function(V){return typeof V=="string"}))return sn(z,kl);function K(V){p=V==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},m=V==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},w=V==="next"?Vd:Bd;var U=u.map(function(se){return{lower:m(se),upper:p(se)}}).sort(function(se,X){return w(se.lower,X.lower)});k=U.map(function(se){return se.upper}),L=U.map(function(se){return se.lower}),N=(Y=V)==="next"?"":d}K("next");var z=new z.Collection(z,function(){return Qn(k[0],L[D-1]+d)}),B=(z._ondirectionchange=function(V){K(V)},0);return z._addAlgorithm(function(V,U,se){var X=V.key;if(typeof X=="string"){var ie=m(X);if(a(ie,L,B))return!0;for(var ve=null,he=B;he<D;++he){var xe=((be,Ke,_e,Fe,me,ze)=>{for(var We=Math.min(be.length,Fe.length),Je=-1,nt=0;nt<We;++nt){var rn=Ke[nt];if(rn!==Fe[nt])return me(be[nt],_e[nt])<0?be.substr(0,nt)+_e[nt]+_e.substr(nt+1):me(be[nt],Fe[nt])<0?be.substr(0,nt)+Fe[nt]+_e.substr(nt+1):0<=Je?be.substr(0,Je)+Ke[Je]+_e.substr(Je+1):null;me(be[nt],rn)<0&&(Je=nt)}return We<Fe.length&&ze==="next"?be+_e.substr(be.length):We<be.length&&ze==="prev"?be.substr(0,_e.length):Je<0?null:be.substr(0,Je)+Fe[Je]+_e.substr(Je+1)})(X,ie,k[he],L[he],w,Y);xe===null&&ve===null?B=he+1:(ve===null||0<w(ve,xe))&&(ve=xe)}U(ve!==null?function(){V.continue(ve+N)}:se)}return!1}),z}function Qn(s,a,u,d){return{type:2,lower:s,upper:a,lowerOpen:u,upperOpen:d}}function Il(s){return{type:1,lower:s,upper:s}}Object.defineProperty(Lt.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Lt.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)?qs(this):new this.Collection(this,function(){return Qn(s,a,!u,!d)})}catch{return sn(this,Ln)}},Lt.prototype.equals=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Il(s)})},Lt.prototype.above=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(s,void 0,!0)})},Lt.prototype.aboveOrEqual=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(s,void 0,!1)})},Lt.prototype.below=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(void 0,s,!1,!0)})},Lt.prototype.belowOrEqual=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(void 0,s)})},Lt.prototype.startsWith=function(s){return typeof s!="string"?sn(this,kl):this.between(s,s+bs,!0,!0)},Lt.prototype.startsWithIgnoreCase=function(s){return s===""?this.startsWith(s):co(this,function(a,u){return a.indexOf(u[0])===0},[s],bs)},Lt.prototype.equalsIgnoreCase=function(s){return co(this,function(a,u){return a===u[0]},[s],"")},Lt.prototype.anyOfIgnoreCase=function(){var s=Ee.apply(ke,arguments);return s.length===0?qs(this):co(this,function(a,u){return u.indexOf(a)!==-1},s,"")},Lt.prototype.startsWithAnyOfIgnoreCase=function(){var s=Ee.apply(ke,arguments);return s.length===0?qs(this):co(this,function(a,u){return u.some(function(d){return a.indexOf(d)===0})},s,bs)},Lt.prototype.anyOf=function(){var s,a,u=this,d=Ee.apply(ke,arguments),p=this._cmp;try{d.sort(p)}catch{return sn(this,Ln)}return d.length===0?qs(this):((s=new this.Collection(this,function(){return Qn(d[0],d[d.length-1])}))._ondirectionchange=function(m){p=m==="next"?u._ascending:u._descending,d.sort(p)},a=0,s._addAlgorithm(function(m,w,k){for(var L=m.key;0<p(L,d[a]);)if(++a===d.length)return w(k),!1;return p(L,d[a])===0||(w(function(){m.continue(d[a])}),!1)}),s)},Lt.prototype.notEqual=function(s){return this.inAnyRange([[-1/0,s],[s,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Lt.prototype.noneOf=function(){var s=Ee.apply(ke,arguments);if(s.length===0)return new this.Collection(this);try{s.sort(this._ascending)}catch{return sn(this,Ln)}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})},Lt.prototype.inAnyRange=function(s,se){var u=this,d=this._cmp,p=this._ascending,m=this._descending,w=this._min,k=this._max;if(s.length===0)return qs(this);if(!s.every(function(X){return X[0]!==void 0&&X[1]!==void 0&&p(X[0],X[1])<=0}))return sn(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",fe.InvalidArgument);var L=!se||se.includeLowers!==!1,Y=se&&se.includeUppers===!0,N,D=p;function K(X,ie){return D(X[0],ie[0])}try{(N=s.reduce(function(X,ie){for(var ve=0,he=X.length;ve<he;++ve){var xe=X[ve];if(d(ie[0],xe[1])<0&&0<d(ie[1],xe[0])){xe[0]=w(xe[0],ie[0]),xe[1]=k(xe[1],ie[1]);break}}return ve===he&&X.push(ie),X},[])).sort(K)}catch{return sn(this,Ln)}var z=0,B=Y?function(X){return 0<p(X,N[z][1])}:function(X){return 0<=p(X,N[z][1])},V=L?function(X){return 0<m(X,N[z][0])}:function(X){return 0<=m(X,N[z][0])},U=B,se=new this.Collection(this,function(){return Qn(N[0][0],N[N.length-1][1],!L,!Y)});return se._ondirectionchange=function(X){D=X==="next"?(U=B,p):(U=V,m),N.sort(K)},se._addAlgorithm(function(X,ie,ve){for(var he,xe=X.key;U(xe);)if(++z===N.length)return ie(ve),!1;return!B(he=xe)&&!V(he)||(u._cmp(xe,N[z][1])===0||u._cmp(xe,N[z][0])===0||ie(function(){D===p?X.continue(N[z][0]):X.continue(N[z][1])}),!1)}),se},Lt.prototype.startsWithAnyOf=function(){var s=Ee.apply(ke,arguments);return s.every(function(a){return typeof a=="string"})?s.length===0?qs(this):this.inAnyRange(s.map(function(a){return[a,a+bs]})):sn(this,"startsWithAnyOf() only works with strings")};var jl=Lt;function Lt(){}function mn(s){return kt(function(a){return vr(a),s(a.target.error),!1})}function vr(s){s.stopPropagation&&s.stopPropagation(),s.preventDefault&&s.preventDefault()}var fo="storagemutated",La="x-storagemutated-1",Zn=fr(null,fo),Ud=(kn.prototype._lock=function(){return S(!Be.global),++this._reculock,this._reculock!==1||Be.global||(Be.lockOwnerFor=this),this},kn.prototype._unlock=function(){if(S(!Be.global),--this._reculock==0)for(Be.global||(Be.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var s=this._blockedFuncs.shift();try{gs(s[1],s[0])}catch{}}return this},kn.prototype._locked=function(){return this._reculock&&Be.lockOwnerFor!==this},kn.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 fe.DatabaseClosed(d);case"MissingAPIError":throw new fe.MissingAPI(d.message,d);default:throw new fe.OpenFailed(d)}if(!this.active)throw new fe.TransactionInactive;S(this._completion._state===null),(s=this.idbtrans=s||(this.db.core||u).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=kt(function(p){vr(p),a._reject(s.error)}),s.onabort=kt(function(p){vr(p),a.active&&a._reject(new fe.Abort(s.error)),a.active=!1,a.on("abort").fire(p)}),s.oncomplete=kt(function(){a.active=!1,a._resolve(),"mutatedParts"in s&&Zn.storagemutated.fire(s.mutatedParts)})}return this},kn.prototype._promise=function(s,a,u){var d,p=this;return s==="readwrite"&&this.mode!=="readwrite"?Tt(new fe.ReadOnly("Transaction is readonly")):this.active?this._locked()?new Oe(function(m,w){p._blockedFuncs.push([function(){p._promise(s,a,u).then(m,w)},Be])}):u?Yn(function(){var m=new Oe(function(w,k){p._lock();var L=a(w,k,p);L&&L.then&&L.then(w,k)});return m.finally(function(){return p._unlock()}),m._lib=!0,m}):((d=new Oe(function(m,w){var k=a(m,w,p);k&&k.then&&k.then(m,w)}))._lib=!0,d):Tt(new fe.TransactionInactive)},kn.prototype._root=function(){return this.parent?this.parent._root():this},kn.prototype.waitFor=function(s){var a,u=this._root(),d=Oe.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 m(){for(++u._spinCount;u._waitingQueue.length;)u._waitingQueue.shift()();u._waitingFor&&(a.get(-1/0).onsuccess=m)}()),u._waitingFor);return new Oe(function(m,w){d.then(function(k){return u._waitingQueue.push(kt(m.bind(null,k)))},function(k){return u._waitingQueue.push(kt(w.bind(null,k)))}).finally(function(){u._waitingFor===p&&(u._waitingFor=null)})})},kn.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new fe.Abort))},kn.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 fe.NotFound("Table "+s+" not part of transaction")},kn);function kn(){}function Ra(s,a,u,d,p,m,w,k){return{name:s,keyPath:a,unique:u,multi:d,auto:p,compound:m,src:(u&&!w?"&":"")+(d?"*":"")+(p?"++":"")+Dl(a),type:k}}function Dl(s){return typeof s=="string"?s:s?"["+[].join.call(s,"+")+"]":""}function Ka(s,a,u){return{name:s,primKey:a,indexes:u,mappedClass:null,idxByName:(d=function(p){return[p.name,p]},u.reduce(function(p,m,w){return m=d(m,w),m&&(p[m[0]]=m[1]),p},{}))};var d}var mr=function(s){try{return s.only([[]]),mr=function(){return[[]]},[[]]}catch{return mr=function(){return bs},bs}};function Na(s){return s==null?function(){}:typeof s=="string"?(a=s).split(".").length===1?function(u){return u[a]}:function(u){return Q(u,a)}:function(u){return Q(u,s)};var a}function Ll(s){return[].slice.call(s)}var qd=0;function hr(s){return s==null?":id":typeof s=="string"?s:"[".concat(s.join("+"),"]")}function Hd(s,a,w){function d(U){if(U.type===3)return null;if(U.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var z=U.lower,B=U.upper,V=U.lowerOpen,U=U.upperOpen;return z===void 0?B===void 0?null:a.upperBound(B,!!U):B===void 0?a.lowerBound(z,!!V):a.bound(z,B,!!V,!!U)}function p(K){var z,B,V=K.name;return{name:V,schema:K,mutate:function(U){var se=U.trans,X=U.type,ie=U.keys,ve=U.values,he=U.range;return new Promise(function(xe,be){xe=kt(xe);var Ke=se.objectStore(V),_e=Ke.keyPath==null,Fe=X==="put"||X==="add";if(!Fe&&X!=="delete"&&X!=="deleteRange")throw new Error("Invalid operation type: "+X);var me,ze=(ie||ve||{length:1}).length;if(ie&&ve&&ie.length!==ve.length)throw new Error("Given keys array must have same length as given values array.");if(ze===0)return xe({numFailures:0,failures:{},results:[],lastResult:void 0});function We(Jt){++rn,vr(Jt)}var Je=[],nt=[],rn=0;if(X==="deleteRange"){if(he.type===4)return xe({numFailures:rn,failures:nt,results:[],lastResult:void 0});he.type===3?Je.push(me=Ke.clear()):Je.push(me=Ke.delete(d(he)))}else{var _e=Fe?_e?[ve,ie]:[ve,null]:[ie,null],Ge=_e[0],Ut=_e[1];if(Fe)for(var qt=0;qt<ze;++qt)Je.push(me=Ut&&Ut[qt]!==void 0?Ke[X](Ge[qt],Ut[qt]):Ke[X](Ge[qt])),me.onerror=We;else for(qt=0;qt<ze;++qt)Je.push(me=Ke[X](Ge[qt])),me.onerror=We}function Co(Jt){Jt=Jt.target.result,Je.forEach(function(xs,si){return xs.error!=null&&(nt[si]=xs.error)}),xe({numFailures:rn,failures:nt,results:X==="delete"?ie:Je.map(function(xs){return xs.result}),lastResult:Jt})}me.onerror=function(Jt){We(Jt),Co(Jt)},me.onsuccess=Co})},getMany:function(U){var se=U.trans,X=U.keys;return new Promise(function(ie,ve){ie=kt(ie);for(var he,xe=se.objectStore(V),be=X.length,Ke=new Array(be),_e=0,Fe=0,me=function(Je){Je=Je.target,Ke[Je._pos]=Je.result,++Fe===_e&&ie(Ke)},ze=mn(ve),We=0;We<be;++We)X[We]!=null&&((he=xe.get(X[We]))._pos=We,he.onsuccess=me,he.onerror=ze,++_e);_e===0&&ie(Ke)})},get:function(U){var se=U.trans,X=U.key;return new Promise(function(ie,ve){ie=kt(ie);var he=se.objectStore(V).get(X);he.onsuccess=function(xe){return ie(xe.target.result)},he.onerror=mn(ve)})},query:(z=L,B=Y,function(U){return new Promise(function(se,X){se=kt(se);var ie,ve,he,xe,ze=U.trans,be=U.values,Ke=U.limit,me=U.query,_e=(_e=U.direction)!=null?_e:"next",Fe=Ke===1/0?void 0:Ke,We=me.index,me=me.range,ze=ze.objectStore(V),ze=We.isPrimaryKey?ze:ze.index(We.name),We=d(me);if(Ke===0)return se({result:[]});B?(me={query:We,count:Fe,direction:_e},(ie=be?ze.getAll(me):ze.getAllKeys(me)).onsuccess=function(Je){return se({result:Je.target.result})},ie.onerror=mn(X)):z&&_e==="next"?((ie=be?ze.getAll(We,Fe):ze.getAllKeys(We,Fe)).onsuccess=function(Je){return se({result:Je.target.result})},ie.onerror=mn(X)):(ve=0,he=!be&&"openKeyCursor"in ze?ze.openKeyCursor(We,_e):ze.openCursor(We,_e),xe=[],he.onsuccess=function(){var Je=he.result;return!Je||(xe.push(be?Je.value:Je.primaryKey),++ve===Ke)?se({result:xe}):void Je.continue()},he.onerror=mn(X))})}),openCursor:function(U){var se=U.trans,X=U.values,ie=U.query,ve=U.reverse,he=U.unique;return new Promise(function(xe,be){xe=kt(xe);var Fe=ie.index,Ke=ie.range,_e=se.objectStore(V),_e=Fe.isPrimaryKey?_e:_e.index(Fe.name),Fe=ve?he?"prevunique":"prev":he?"nextunique":"next",me=!X&&"openKeyCursor"in _e?_e.openKeyCursor(d(Ke),Fe):_e.openCursor(d(Ke),Fe);me.onerror=mn(be),me.onsuccess=kt(function(ze){var We,Je,nt,rn,Ge=me.result;Ge?(Ge.___id=++qd,Ge.done=!1,We=Ge.continue.bind(Ge),Je=(Je=Ge.continuePrimaryKey)&&Je.bind(Ge),nt=Ge.advance.bind(Ge),rn=function(){throw new Error("Cursor not stopped")},Ge.trans=se,Ge.stop=Ge.continue=Ge.continuePrimaryKey=Ge.advance=function(){throw new Error("Cursor not started")},Ge.fail=kt(be),Ge.next=function(){var Ut=this,qt=1;return this.start(function(){return qt--?Ut.continue():Ut.stop()}).then(function(){return Ut})},Ge.start=function(Ut){function qt(){if(me.result)try{Ut()}catch(Jt){Ge.fail(Jt)}else Ge.done=!0,Ge.start=function(){throw new Error("Cursor behind last entry")},Ge.stop()}var Co=new Promise(function(Jt,xs){Jt=kt(Jt),me.onerror=mn(xs),Ge.fail=xs,Ge.stop=function(si){Ge.stop=Ge.continue=Ge.continuePrimaryKey=Ge.advance=rn,Jt(si)}});return me.onsuccess=kt(function(Jt){me.onsuccess=qt,qt()}),Ge.continue=We,Ge.continuePrimaryKey=Je,Ge.advance=nt,qt(),Co},xe(Ge)):xe(null)},be)})},count:function(U){var se=U.query,X=U.trans,ie=se.index,ve=se.range;return new Promise(function(he,xe){var be=X.objectStore(V),be=ie.isPrimaryKey?be:be.index(ie.name),Ke=d(ve),Ke=Ke?be.count(Ke):be.count();Ke.onsuccess=kt(function(_e){return he(_e.target.result)}),Ke.onerror=mn(xe)})}}}m=w,k=Ll((w=s).objectStoreNames),N=0<k.length?m.objectStore(k[0]):{};var m,w={schema:{name:w.name,tables:k.map(function(K){return m.objectStore(K)}).map(function(K){var z=K.keyPath,B=K.autoIncrement,U=f(z),V={},U={name:K.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:z==null,compound:U,keyPath:z,autoIncrement:B,unique:!0,extractKey:Na(z)},indexes:Ll(K.indexNames).map(function(se){return K.index(se)}).map(function(ve){var he=ve.name,X=ve.unique,ie=ve.multiEntry,ve=ve.keyPath,he={name:he,compound:f(ve),keyPath:ve,unique:X,multiEntry:ie,extractKey:Na(ve)};return V[hr(ve)]=he}),getIndexByKeyPath:function(se){return V[hr(se)]}};return V[":id"]=U.primaryKey,z!=null&&(V[hr(z)]=U.primaryKey),U})},hasGetAll:0<k.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},k=w.schema,L=w.hasGetAll,Y=w.hasIdb3Features,N=k.tables.map(p),D={};return N.forEach(function(K){return D[K.name]=K}),{stack:"dbcore",transaction:s.transaction.bind(s),table:function(K){if(D[K])return D[K];throw new Error("Table '".concat(K,"' not found"))},MIN_KEY:-1/0,MAX_KEY:mr(a),schema:k}}function zd(s,a,u,d){return u=u.IDBKeyRange,a=Hd(a,u,d),{dbcore:s.dbcore.reduce(function(p,m){return m=m.create,r(r({},p),m(p))},a)}}function po(s,a){var u=a.db,u=zd(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(m){return m.name===p})&&(d.core=s.core.table(p),s[p]instanceof s.Table)&&(s[p].core=d.core)})}function vo(s,a,u,d){u.forEach(function(p){var m=d[p];a.forEach(function(w){var k=function L(Y,N){return oe(Y,N)||(Y=b(Y))&&L(Y,N)}(w,p);(!k||"value"in k&&k.value===void 0)&&(w===s.Transaction.prototype||w instanceof s.Transaction?j(w,p,{get:function(){return this.table(p)},set:function(L){x(this,p,{value:L,writable:!0,configurable:!0,enumerable:!0})}}):w[p]=new s.Table(p,m))})})}function Fa(s,a){a.forEach(function(u){for(var d in u)u[d]instanceof s.Table&&delete u[d]})}function Wd(s,a){return s._cfg.version-a._cfg.version}function Gd(s,a,u,d){var p=s._dbSchema,m=(u.objectStoreNames.contains("$meta")&&!p.$meta&&(p.$meta=Ka("$meta",Kl("")[0],[]),s._storeNames.push("$meta")),s._createTransaction("readwrite",s._storeNames,p)),w=(m.create(u),m._completion.catch(d),m._reject.bind(m)),k=Be.transless||Be;Yn(function(){if(Be.trans=m,Be.transless=k,a!==0)return po(s,u),Y=a,((L=m).storeNames.includes("$meta")?L.table("$meta").get("version").then(function(N){return N??Y}):Oe.resolve(Y)).then(function(U){var D=s,K=U,z=m,B=u,V=[],U=D._versions,se=D._dbSchema=ho(0,D.idbdb,B);return(U=U.filter(function(X){return X._cfg.version>=K})).length===0?Oe.resolve():(U.forEach(function(X){V.push(function(){var ie,ve,he,xe=se,be=X._cfg.dbschema,Ke=(yo(D,xe,B),yo(D,be,B),se=D._dbSchema=be,Va(xe,be)),_e=(Ke.add.forEach(function(Fe){Ba(B,Fe[0],Fe[1].primKey,Fe[1].indexes)}),Ke.change.forEach(function(Fe){if(Fe.recreate)throw new fe.Upgrade("Not yet support for changing primary key");var me=B.objectStore(Fe.name);Fe.add.forEach(function(ze){return mo(me,ze)}),Fe.change.forEach(function(ze){me.deleteIndex(ze.name),mo(me,ze)}),Fe.del.forEach(function(ze){return me.deleteIndex(ze)})}),X._cfg.contentUpgrade);if(_e&&X._cfg.version>K)return po(D,B),z._memoizedTables={},ie=re(be),Ke.del.forEach(function(Fe){ie[Fe]=xe[Fe]}),Fa(D,[D.Transaction.prototype]),vo(D,[D.Transaction.prototype],c(ie),ie),z.schema=ie,(ve=Le(_e))&&Bs(),be=Oe.follow(function(){var Fe;(he=_e(z))&&ve&&(Fe=Jn.bind(null,null),he.then(Fe,Fe))}),he&&typeof he.then=="function"?Oe.resolve(he):be.then(function(){return he})}),V.push(function(ie){var ve,he,xe=X._cfg.dbschema;ve=xe,he=ie,[].slice.call(he.db.objectStoreNames).forEach(function(be){return ve[be]==null&&he.db.deleteObjectStore(be)}),Fa(D,[D.Transaction.prototype]),vo(D,[D.Transaction.prototype],D._storeNames,D._dbSchema),z.schema=D._dbSchema}),V.push(function(ie){D.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(D.idbdb.version/10)===X._cfg.version?(D.idbdb.deleteObjectStore("$meta"),delete D._dbSchema.$meta,D._storeNames=D._storeNames.filter(function(ve){return ve!=="$meta"})):ie.objectStore("$meta").put(X._cfg.version,"version"))})}),function X(){return V.length?Oe.resolve(V.shift()(z.idbtrans)).then(X):Oe.resolve()}().then(function(){Rl(se,B)}))}).catch(w);var L,Y;c(p).forEach(function(N){Ba(u,N,p[N].primKey,p[N].indexes)}),po(s,u),Oe.follow(function(){return s.on.populate.fire(m)}).catch(w)})}function Yd(s,a){Rl(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=ho(0,s.idbdb,a);yo(s,s._dbSchema,a);for(var d=0,p=Va(u,s._dbSchema).change;d<p.length;d++){var m=(w=>{if(w.change.length||w.recreate)return console.warn("Unable to patch indexes of table ".concat(w.name," because it has changes on the type of index or primary key.")),{value:void 0};var k=a.objectStore(w.name);w.add.forEach(function(L){Se&&console.debug("Dexie upgrade patch: Creating missing index ".concat(w.name,".").concat(L.src)),mo(k,L)})})(p[d]);if(typeof m=="object")return m.value}}function Va(s,a){var u,d={del:[],add:[],change:[]};for(u in s)a[u]||d.del.push(u);for(u in a){var p=s[u],m=a[u];if(p){var w={name:u,def:m,recreate:!1,del:[],add:[],change:[]};if(""+(p.primKey.keyPath||"")!=""+(m.primKey.keyPath||"")||p.primKey.auto!==m.primKey.auto)w.recreate=!0,d.change.push(w);else{var k=p.idxByName,L=m.idxByName,Y=void 0;for(Y in k)L[Y]||w.del.push(Y);for(Y in L){var N=k[Y],D=L[Y];N?N.src!==D.src&&w.change.push(D):w.add.push(D)}(0<w.del.length||0<w.add.length||0<w.change.length)&&d.change.push(w)}}else d.add.push([u,m])}return d}function Ba(s,a,u,d){var p=s.db.createObjectStore(a,u.keyPath?{keyPath:u.keyPath,autoIncrement:u.auto}:{autoIncrement:u.auto});d.forEach(function(m){return mo(p,m)})}function Rl(s,a){c(s).forEach(function(u){a.db.objectStoreNames.contains(u)||(Se&&console.debug("Dexie: Creating missing table",u),Ba(a,u,s[u].primKey,s[u].indexes))})}function mo(s,a){s.createIndex(a.name,a.keyPath,{unique:a.unique,multiEntry:a.multi})}function ho(s,a,u){var d={};return ce(a.objectStoreNames,0).forEach(function(p){for(var m=u.objectStore(p),w=Ra(Dl(Y=m.keyPath),Y||"",!0,!1,!!m.autoIncrement,Y&&typeof Y!="string",!0),k=[],L=0;L<m.indexNames.length;++L){var N=m.index(m.indexNames[L]),Y=N.keyPath,N=Ra(N.name,Y,!!N.unique,!!N.multiEntry,!1,Y&&typeof Y!="string",!1);k.push(N)}d[p]=Ka(p,w,k)}),d}function yo(s,a,u){for(var d=u.db.objectStoreNames,p=0;p<d.length;++p){var m=d[p],w=u.objectStore(m);s._hasGetAll="getAll"in w;for(var k=0;k<w.indexNames.length;++k){var L,Y=w.indexNames[k],N=w.index(Y).keyPath,N=typeof N=="string"?N:"["+ce(N).join("+")+"]";a[m]&&(L=a[m].idxByName[N])&&(L.name=Y,delete a[m].idxByName[N],a[m].idxByName[Y]=L)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&i.WorkerGlobalScope&&i instanceof i.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(s._hasGetAll=!1)}function Kl(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,""),m=/^\[/.test(p)?p.match(/^\[(.*)\]$/)[1].split("+"):p;return Ra(p,m||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),f(m),u===0,d)})}Hs.prototype._createTableSchema=Ka,Hs.prototype._parseIndexSyntax=Kl,Hs.prototype._parseStoresSpec=function(s,a){var u=this;c(s).forEach(function(d){if(s[d]!==null){var p=u._parseIndexSyntax(s[d]),m=p.shift();if(!m)throw new fe.Schema("Invalid schema for table "+d+": "+s[d]);if(m.unique=!0,m.multi)throw new fe.Schema("Primary key cannot be multiEntry*");p.forEach(function(w){if(w.auto)throw new fe.Schema("Only primary key can be marked as autoIncrement (++)");if(!w.keyPath)throw new fe.Schema("Index must have a name and cannot be an empty string")}),m=u._createTableSchema(d,m,p),a[d]=m}})},Hs.prototype.stores=function(u){var a=this.db,u=(this._cfg.storesSource=this._cfg.storesSource?v(this._cfg.storesSource,u):u,a._versions),d={},p={};return u.forEach(function(m){v(d,m._cfg.storesSource),p=m._cfg.dbschema={},m._parseStoresSpec(d,p)}),a._dbSchema=p,Fa(a,[a._allTables,a,a.Transaction.prototype]),vo(a,[a._allTables,a,a.Transaction.prototype,this._cfg.tables],c(p),p),a._storeNames=c(p),this},Hs.prototype.upgrade=function(s){return this._cfg.contentUpgrade=te(this._cfg.contentUpgrade||y,s),this};var Jd=Hs;function Hs(){}var yr=(()=>{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(),m=p.next();!m.done;){var w=m.value;if(w.deref()===d._novip)return s.delete(w),void a.unregister(w);m=p.next()}}}):(u=[],{toArray:function(){return u},add:function(d){u.push(d._novip)},remove:function(d){d&&(d=u.indexOf(d._novip))!==-1&&u.splice(d,1)}})})();function Ua(s,a){var u=s._dbNamesDB;return u||(u=s._dbNamesDB=new Rn(oo,{addons:[],indexedDB:s,IDBKeyRange:a})).version(1).stores({dbnames:"name"}),u.table("dbnames")}function qa(s){return s&&typeof s.databases=="function"}function Ha(s){return Yn(function(){return Be.letThrough=!0,s()})}function za(s){return!("from"in s)}var Bt=function(s,a){var u;if(!this)return u=new Bt,s&&"d"in s&&v(u,s),u;v(this,arguments.length?{d:1,from:s,to:1<arguments.length?a:s}:{d:0})};function gr(s,a,u){var d=st(a,u);if(!isNaN(d)){if(0<d)throw RangeError();if(za(s))return v(s,{from:a,to:u,d:1});var d=s.l,p=s.r;if(st(u,s.from)<0)return d?gr(d,a,u):s.l={from:a,to:u,d:1,l:null,r:null},Fl(s);if(0<st(a,s.to))return p?gr(p,a,u):s.r={from:a,to:u,d:1,l:null,r:null},Fl(s);st(a,s.from)<0&&(s.from=a,s.l=null,s.d=p?p.d+1:1),0<st(u,s.to)&&(s.to=u,s.r=null,s.d=s.l?s.l.d+1:1),a=!s.r,d&&!s.l&&br(s,d),p&&a&&br(s,p)}}function br(s,a){za(a)||function u(d,p){var m=p.from,w=p.l,k=p.r;gr(d,m,p.to),w&&u(d,w),k&&u(d,k)}(s,a)}function Nl(s,a){var u=go(a),d=u.next();if(!d.done)for(var p=d.value,m=go(s),w=m.next(p.from),k=w.value;!d.done&&!w.done;){if(st(k.from,p.to)<=0&&0<=st(k.to,p.from))return!0;st(p.from,k.from)<0?p=(d=u.next(k.from)).value:k=(w=m.next(p.from)).value}return!1}function go(s){var a=za(s)?null:{s:0,n:s};return{next:function(u){for(var d=0<arguments.length;a;)switch(a.s){case 0:if(a.s=1,d)for(;a.n.l&&st(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||st(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 Fl(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=r({},s),d=s[p],s.from=d.from,s.to=d.to,s[p]=d[p],u[p]=d[a],(s[a]=u).d=Vl(u)),s.d=Vl(s)}function Vl(u){var a=u.r,u=u.l;return(a?u?Math.max(a.d,u.d):a.d:u?u.d:0)+1}function bo(s,a){return c(a).forEach(function(u){s[u]?br(s[u],a[u]):s[u]=function d(p){var m,w,k={};for(m in p)_(p,m)&&(w=p[m],k[m]=!w||typeof w!="object"||I.has(w.constructor)?w:d(w));return k}(a[u])}),s}function Wa(s,a){return s.all||a.all||Object.keys(s).some(function(u){return a[u]&&Nl(a[u],s[u])})}T(Bt.prototype,((Qe={add:function(s){return br(this,s),this},addKey:function(s){return gr(this,s,s),this},addKeys:function(s){var a=this;return s.forEach(function(u){return gr(a,u,u)}),this},hasKey:function(s){var a=go(this).next(s).value;return a&&st(a.from,s)<=0&&0<=st(a.to,s)}})[Pe]=function(){return go(this)},Qe));var _s={},Ga={},Ya=!1;function wo(s){bo(Ga,s),Ya||(Ya=!0,setTimeout(function(){Ya=!1,Ja(Ga,!(Ga={}))},0))}function Ja(s,a){a===void 0&&(a=!1);var u=new Set;if(s.all)for(var d=0,p=Object.values(_s);d<p.length;d++)Bl(k=p[d],s,u,a);else for(var m in s){var w,k,m=/^idb\:\/\/(.*)\/(.*)\//.exec(m);m&&(w=m[1],m=m[2],k=_s["idb://".concat(w,"/").concat(m)])&&Bl(k,s,u,a)}u.forEach(function(L){return L()})}function Bl(s,a,u,d){for(var p=[],m=0,w=Object.entries(s.queries.query);m<w.length;m++){for(var k=w[m],L=k[0],Y=[],N=0,D=k[1];N<D.length;N++){var K=D[N];Wa(a,K.obsSet)?K.subscribers.forEach(function(U){return u.add(U)}):d&&Y.push(K)}d&&p.push([L,Y])}if(d)for(var z=0,B=p;z<B.length;z++){var V=B[z],L=V[0],Y=V[1];s.queries.query[L]=Y}}function Xd(s){var a=s._state,u=s._deps.indexedDB;if(a.isBeingOpened||s.idbdb)return a.dbReadyPromise.then(function(){return a.dbOpenError?Tt(a.dbOpenError):s});a.isBeingOpened=!0,a.dbOpenError=null,a.openComplete=!1;var d=a.openCanceller,p=Math.round(10*s.verno),m=!1;function w(){if(a.openCanceller!==d)throw new fe.DatabaseClosed("db.open() was cancelled")}function k(){return new Oe(function(K,z){if(w(),!u)throw new fe.MissingAPI;var B=s.name,V=a.autoSchema||!p?u.open(B):u.open(B,p);if(!V)throw new fe.MissingAPI;V.onerror=mn(z),V.onblocked=kt(s._fireOnBlocked),V.onupgradeneeded=kt(function(U){var se;N=V.transaction,a.autoSchema&&!s._options.allowEmptyDB?(V.onerror=vr,N.abort(),V.result.close(),(se=u.deleteDatabase(B)).onsuccess=se.onerror=kt(function(){z(new fe.NoSuchDatabase("Database ".concat(B," doesnt exist")))})):(N.onerror=mn(z),se=U.oldVersion>Math.pow(2,62)?0:U.oldVersion,D=se<1,s.idbdb=V.result,m&&Yd(s,N),Gd(s,se/10,N,z))},z),V.onsuccess=kt(function(){N=null;var U,se,X,ie,ve,he,xe=s.idbdb=V.result,be=ce(xe.objectStoreNames);if(0<be.length)try{var Ke=xe.transaction((ve=be).length===1?ve[0]:ve,"readonly");if(a.autoSchema)he=xe,ie=Ke,(X=s).verno=he.version/10,ie=X._dbSchema=ho(0,he,ie),X._storeNames=ce(he.objectStoreNames,0),vo(X,[X._allTables],c(ie),ie);else if(yo(s,s._dbSchema,Ke),se=Ke,((se=Va(ho(0,(U=s).idbdb,se),U._dbSchema)).add.length||se.change.some(function(_e){return _e.add.length||_e.change.length}))&&!m)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."),xe.close(),p=xe.version+1,m=!0,K(k());po(s,Ke)}catch{}yr.add(s),xe.onversionchange=kt(function(_e){a.vcFired=!0,s.on("versionchange").fire(_e)}),xe.onclose=kt(function(){s.close({disableAutoOpen:!1})}),D&&(be=s._deps,ve=B,qa(he=be.indexedDB)||ve===oo||Ua(he,be.IDBKeyRange).put({name:ve}).catch(y)),K()},z)}).catch(function(K){switch(K==null?void 0:K.name){case"UnknownError":if(0<a.PR1398_maxLoop)return a.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),k();break;case"VersionError":if(0<p)return p=0,k()}return Oe.reject(K)})}var L,Y=a.dbReadyResolve,N=null,D=!1;return Oe.race([d,(typeof navigator>"u"?Oe.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(K){function z(){return indexedDB.databases().finally(K)}L=setInterval(z,100),z()}).finally(function(){return clearInterval(L)}):Promise.resolve()).then(k)]).then(function(){return w(),a.onReadyBeingFired=[],Oe.resolve(Ha(function(){return s.on.ready.fire(s.vip)})).then(function K(){var z;if(0<a.onReadyBeingFired.length)return z=a.onReadyBeingFired.reduce(te,y),a.onReadyBeingFired=[],Oe.resolve(Ha(function(){return z(s.vip)})).then(K)})}).finally(function(){a.openCanceller===d&&(a.onReadyBeingFired=null,a.isBeingOpened=!1)}).catch(function(K){a.dbOpenError=K;try{N&&N.abort()}catch{}return d===a.openCanceller&&s._close(),Tt(K)}).finally(function(){a.openComplete=!0,Y()}).then(function(){var K;return D&&(K={},s.tables.forEach(function(z){z.schema.indexes.forEach(function(B){B.name&&(K["idb://".concat(s.name,"/").concat(z.name,"/").concat(B.name)]=new Bt(-1/0,[[[]]]))}),K["idb://".concat(s.name,"/").concat(z.name,"/")]=K["idb://".concat(s.name,"/").concat(z.name,"/:dels")]=new Bt(-1/0,[[[]]])}),Zn(fo).fire(K),Ja(K,!0)),s})}function Xa(s){function a(m){return s.next(m)}var u=p(a),d=p(function(m){return s.throw(m)});function p(m){return function(k){var k=m(k),L=k.value;return k.done?L:L&&typeof L.then=="function"?L.then(u,d):f(L)?Promise.all(L).then(u,d):u(L)}}return p(a)()}function _o(s,a,u){for(var d=f(s)?s.slice():[s],p=0;p<u;++p)d.push(a);return d}var Qd={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(s){return r(r({},s),{table:function(d){var u=s.table(d),d=u.schema,p=Object.create(null),m=[];function w(K,z,B){var X=hr(K),V=p[X]=p[X]||[],U=K==null?0:typeof K=="string"?1:K.length,se=0<z,X=r(r({},B),{name:se?"".concat(X,"(virtual-from:").concat(B.name,")"):B.name,lowLevelIndex:B,isVirtual:se,keyTail:z,keyLength:U,extractKey:Na(K),unique:!se&&B.unique});return V.push(X),X.isPrimaryKey||m.push(X),1<U&&w(U===2?K[0]:K.slice(0,U-1),z+1,B),V.sort(function(ie,ve){return ie.keyTail-ve.keyTail}),X}var k=w(d.primaryKey.keyPath,0,d.primaryKey);p[":id"]=[k];for(var L=0,Y=d.indexes;L<Y.length;L++){var N=Y[L];w(N.keyPath,0,N)}function D(K){var z,B=K.query.index;return B.isVirtual?r(r({},K),{query:{index:B.lowLevelIndex,range:(z=K.query.range,B=B.keyTail,{type:z.type===1?2:z.type,lower:_o(z.lower,z.lowerOpen?s.MAX_KEY:s.MIN_KEY,B),lowerOpen:!0,upper:_o(z.upper,z.upperOpen?s.MIN_KEY:s.MAX_KEY,B),upperOpen:!0})}}):K}return r(r({},u),{schema:r(r({},d),{primaryKey:k,indexes:m,getIndexByKeyPath:function(K){return(K=p[hr(K)])&&K[0]}}),count:function(K){return u.count(D(K))},query:function(K){return u.query(D(K))},openCursor:function(K){var z=K.query.index,B=z.keyTail,V=z.keyLength;return z.isVirtual?u.openCursor(D(K)).then(function(se){return se&&U(se)}):u.openCursor(K);function U(se){return Object.create(se,{continue:{value:function(X){X!=null?se.continue(_o(X,K.reverse?s.MAX_KEY:s.MIN_KEY,B)):K.unique?se.continue(se.key.slice(0,V).concat(K.reverse?s.MIN_KEY:s.MAX_KEY,B)):se.continue()}},continuePrimaryKey:{value:function(X,ie){se.continuePrimaryKey(_o(X,s.MAX_KEY,B),ie)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var X=se.key;return V===1?X[0]:X.slice(0,V)}},value:{get:function(){return se.value}}})}}})}})}};function Qa(s,a,u,d){return u=u||{},d=d||"",c(s).forEach(function(p){var m,w,k;_(a,p)?(m=s[p],w=a[p],typeof m=="object"&&typeof w=="object"&&m&&w?(k=ye(m))!==ye(w)?u[d+p]=a[p]:k==="Object"?Qa(m,w,u,d+p+"."):m!==w&&(u[d+p]=a[p]):m!==w&&(u[d+p]=a[p])):u[d+p]=void 0}),c(a).forEach(function(p){_(s,p)||(u[d+p]=a[p])}),u}function Za(s,a){return a.type==="delete"?a.keys:a.keys||a.values.map(s.extractKey)}var Zd={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(s){return r(r({},s),{table:function(a){var u=s.table(a),d=u.schema.primaryKey;return r(r({},u),{mutate:function(p){var m=Be.trans,w=m.table(a).hook,k=w.deleting,L=w.creating,Y=w.updating;switch(p.type){case"add":if(L.fire===y)break;return m._promise("readwrite",function(){return N(p)},!0);case"put":if(L.fire===y&&Y.fire===y)break;return m._promise("readwrite",function(){return N(p)},!0);case"delete":if(k.fire===y)break;return m._promise("readwrite",function(){return N(p)},!0);case"deleteRange":if(k.fire===y)break;return m._promise("readwrite",function(){return function D(K,z,B){return u.query({trans:K,values:!1,query:{index:d,range:z},limit:B}).then(function(V){var U=V.result;return N({type:"delete",keys:U,trans:K}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):U.length<B?{failures:[],numFailures:0,lastResult:void 0}:D(K,r(r({},z),{lower:U[U.length-1],lowerOpen:!0}),B)})})}(p.trans,p.range,1e4)},!0)}return u.mutate(p);function N(D){var K,z,B,V=Be.trans,U=D.keys||Za(d,D);if(U)return(D=D.type==="add"||D.type==="put"?r(r({},D),{keys:U}):r({},D)).type!=="delete"&&(D.values=o([],D.values)),D.keys&&(D.keys=o([],D.keys)),K=u,B=U,((z=D).type==="add"?Promise.resolve([]):K.getMany({trans:z.trans,keys:B,cache:"immutable"})).then(function(se){var X=U.map(function(ie,ve){var he,xe,be,Ke=se[ve],_e={onerror:null,onsuccess:null};return D.type==="delete"?k.fire.call(_e,ie,Ke,V):D.type==="add"||Ke===void 0?(he=L.fire.call(_e,ie,D.values[ve],V),ie==null&&he!=null&&(D.keys[ve]=ie=he,d.outbound||G(D.values[ve],d.keyPath,ie))):(he=Qa(Ke,D.values[ve]),(xe=Y.fire.call(_e,he,ie,Ke,V))&&(be=D.values[ve],Object.keys(xe).forEach(function(Fe){_(be,Fe)?be[Fe]=xe[Fe]:G(be,Fe,xe[Fe])}))),_e});return u.mutate(D).then(function(ie){for(var ve=ie.failures,he=ie.results,xe=ie.numFailures,ie=ie.lastResult,be=0;be<U.length;++be){var Ke=(he||U)[be],_e=X[be];Ke==null?_e.onerror&&_e.onerror(ve[be]):_e.onsuccess&&_e.onsuccess(D.type==="put"&&se[be]?D.values[be]:Ke)}return{failures:ve,results:he,numFailures:xe,lastResult:ie}}).catch(function(ie){return X.forEach(function(ve){return ve.onerror&&ve.onerror(ie)}),Promise.reject(ie)})});throw new Error("Keys missing")}}})}})}};function Ul(s,a,u){try{if(!a||a.keys.length<s.length)return null;for(var d=[],p=0,m=0;p<a.keys.length&&m<s.length;++p)st(a.keys[p],s[m])===0&&(d.push(u?Ie(a.values[p]):a.values[p]),++m);return d.length===s.length?d:null}catch{return null}}var ef={stack:"dbcore",level:-1,create:function(s){return{table:function(a){var u=s.table(a);return r(r({},u),{getMany:function(d){var p;return d.cache?(p=Ul(d.keys,d.trans._cache,d.cache==="clone"))?Oe.resolve(p):u.getMany(d).then(function(m){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Ie(m):m},m}):u.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),u.mutate(d)}})}}}};function ql(s,a){return s.trans.mode==="readonly"&&!!s.subscr&&!s.trans.explicit&&s.trans.db._options.cache!=="disabled"&&!a.schema.primaryKey.outbound}function Hl(s,a){switch(s){case"query":return a.values&&!a.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var tf={stack:"dbcore",level:0,name:"Observability",create:function(s){var a=s.schema.name,u=new Bt(s.MIN_KEY,s.MAX_KEY);return r(r({},s),{transaction:function(d,p,m){if(Be.subscr&&p!=="readonly")throw new fe.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Be.querier));return s.transaction(d,p,m)},table:function(d){function p(U){var V,U=U.query;return[V=U.index,new Bt((V=(U=U.range).lower)!=null?V:s.MIN_KEY,(V=U.upper)!=null?V:s.MAX_KEY)]}var m=s.table(d),w=m.schema,k=w.primaryKey,L=w.indexes,Y=k.extractKey,N=k.outbound,D=k.autoIncrement&&L.filter(function(B){return B.compound&&B.keyPath.includes(k.keyPath)}),K=r(r({},m),{mutate:function(B){function V(me){return me="idb://".concat(a,"/").concat(d,"/").concat(me),ve[me]||(ve[me]=new Bt)}var U,se,X,ie=B.trans,ve=B.mutatedParts||(B.mutatedParts={}),he=V(""),xe=V(":dels"),be=B.type,_e=B.type==="deleteRange"?[B.range]:B.type==="delete"?[B.keys]:B.values.length<50?[Za(k,B).filter(function(me){return me}),B.values]:[],Ke=_e[0],_e=_e[1],Fe=B.trans._cache;return f(Ke)?(he.addKeys(Ke),(be=be==="delete"||Ke.length===_e.length?Ul(Ke,Fe):null)||xe.addKeys(Ke),(be||_e)&&(U=V,se=be,X=_e,w.indexes.forEach(function(me){var ze=U(me.name||"");function We(nt){return nt!=null?me.extractKey(nt):null}function Je(nt){me.multiEntry&&f(nt)?nt.forEach(function(rn){return ze.addKey(rn)}):ze.addKey(nt)}(se||X).forEach(function(nt,Ut){var Ge=se&&We(se[Ut]),Ut=X&&We(X[Ut]);st(Ge,Ut)!==0&&(Ge!=null&&Je(Ge),Ut!=null)&&Je(Ut)})}))):Ke?(_e={from:(Fe=Ke.lower)!=null?Fe:s.MIN_KEY,to:(be=Ke.upper)!=null?be:s.MAX_KEY},xe.add(_e),he.add(_e)):(he.add(u),xe.add(u),w.indexes.forEach(function(me){return V(me.name).add(u)})),m.mutate(B).then(function(me){return!Ke||B.type!=="add"&&B.type!=="put"||(he.addKeys(me.results),D&&D.forEach(function(ze){for(var We=B.values.map(function(Ge){return ze.extractKey(Ge)}),Je=ze.keyPath.findIndex(function(Ge){return Ge===k.keyPath}),nt=0,rn=me.results.length;nt<rn;++nt)We[nt][Je]=me.results[nt];V(ze.name).addKeys(We)})),ie.mutatedParts=bo(ie.mutatedParts||{},ve),me})}}),z={get:function(B){return[k,new Bt(B.key)]},getMany:function(B){return[k,new Bt().addKeys(B.keys)]},count:p,query:p,openCursor:p};return c(z).forEach(function(B){K[B]=function(V){var U=Be.subscr,se=!!U,X=ql(Be,m)&&Hl(B,V)?V.obsSet={}:U;if(se){var ie,U=function(_e){return _e="idb://".concat(a,"/").concat(d,"/").concat(_e),X[_e]||(X[_e]=new Bt)},ve=U(""),he=U(":dels"),se=z[B](V),xe=se[0],se=se[1];if((B==="query"&&xe.isPrimaryKey&&!V.values?he:U(xe.name||"")).add(se),!xe.isPrimaryKey){if(B!=="count")return ie=B==="query"&&N&&V.values&&m.query(r(r({},V),{values:!1})),m[B].apply(this,arguments).then(function(_e){if(B==="query"){if(N&&V.values)return ie.then(function(We){return We=We.result,ve.addKeys(We),_e});var Fe=V.values?_e.result.map(Y):_e.result;(V.values?ve:he).addKeys(Fe)}else{var me,ze;if(B==="openCursor")return ze=V.values,(me=_e)&&Object.create(me,{key:{get:function(){return he.addKey(me.primaryKey),me.key}},primaryKey:{get:function(){var We=me.primaryKey;return he.addKey(We),We}},value:{get:function(){return ze&&ve.addKey(me.primaryKey),me.value}}})}return _e});he.add(u)}}return m[B].apply(this,arguments)}}),K}})}};function zl(s,a,u){var d;return u.numFailures===0?a:a.type==="deleteRange"||(d=a.keys?a.keys.length:"values"in a&&a.values?a.values.length:1,u.numFailures===d)?null:(d=r({},a),f(d.keys)&&(d.keys=d.keys.filter(function(p,m){return!(m in u.failures)})),"values"in d&&f(d.values)&&(d.values=d.values.filter(function(p,m){return!(m in u.failures)})),d)}function ei(s,a){return u=s,((d=a).lower===void 0||(d.lowerOpen?0<st(u,d.lower):0<=st(u,d.lower)))&&(u=s,(d=a).upper===void 0||(d.upperOpen?st(u,d.upper)<0:st(u,d.upper)<=0));var u,d}function Wl(s,a,u,d,p,m){var w,k,L,Y,N,D,K;return!u||u.length===0||(w=a.query.index,k=w.multiEntry,L=a.query.range,Y=d.schema.primaryKey.extractKey,N=w.extractKey,D=(w.lowLevelIndex||w).extractKey,(d=u.reduce(function(z,B){var V=z,U=[];if(B.type==="add"||B.type==="put")for(var se=new Bt,X=B.values.length-1;0<=X;--X){var ie,ve=B.values[X],he=Y(ve);!se.hasKey(he)&&(ie=N(ve),k&&f(ie)?ie.some(function(Fe){return ei(Fe,L)}):ei(ie,L))&&(se.addKey(he),U.push(ve))}switch(B.type){case"add":var xe=new Bt().addKeys(a.values?z.map(function(me){return Y(me)}):z),V=z.concat(a.values?U.filter(function(me){return me=Y(me),!xe.hasKey(me)&&(xe.addKey(me),!0)}):U.map(function(me){return Y(me)}).filter(function(me){return!xe.hasKey(me)&&(xe.addKey(me),!0)}));break;case"put":var be=new Bt().addKeys(B.values.map(function(me){return Y(me)}));V=z.filter(function(me){return!be.hasKey(a.values?Y(me):me)}).concat(a.values?U:U.map(function(me){return Y(me)}));break;case"delete":var Ke=new Bt().addKeys(B.keys);V=z.filter(function(me){return!Ke.hasKey(a.values?Y(me):me)});break;case"deleteRange":var _e=B.range;V=z.filter(function(me){return!ei(Y(me),_e)})}return V},s))===s)?s:(K=function(z,B){return st(D(z),D(B))||st(Y(z),Y(B))},d.sort(a.direction==="prev"||a.direction==="prevunique"?function(z,B){return K(B,z)}:K),a.limit&&a.limit<1/0&&(d.length>a.limit?d.length=a.limit:s.length===a.limit&&d.length<a.limit&&(p.dirty=!0)),m?Object.freeze(d):d)}function Gl(s,a){return st(s.lower,a.lower)===0&&st(s.upper,a.upper)===0&&!!s.lowerOpen==!!a.lowerOpen&&!!s.upperOpen==!!a.upperOpen}function nf(s,a){return((u,d,p,m)=>{if(u===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((u=st(u,d))===0){if(p&&m)return 0;if(p)return 1;if(m)return-1}return u})(s.lower,a.lower,s.lowerOpen,a.lowerOpen)<=0&&0<=((u,d,p,m)=>{if(u===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((u=st(u,d))===0){if(p&&m)return 0;if(p)return-1;if(m)return 1}return u})(s.upper,a.upper,s.upperOpen,a.upperOpen)}function sf(s,a,u,d){s.subscribers.add(u),d.addEventListener("abort",function(){var p,m;s.subscribers.delete(u),s.subscribers.size===0&&(p=s,m=a,setTimeout(function(){p.subscribers.size===0&&de(m,p)},3e3))})}var rf={stack:"dbcore",level:0,name:"Cache",create:function(s){var a=s.schema.name;return r(r({},s),{transaction:function(u,d,p){var m,w,k=s.transaction(u,d,p);return d==="readwrite"&&(p=(m=new AbortController).signal,k.addEventListener("abort",(w=function(L){return function(){if(m.abort(),d==="readwrite"){for(var Y=new Set,N=0,D=u;N<D.length;N++){var K=D[N],z=_s["idb://".concat(a,"/").concat(K)];if(z){var B=s.table(K),V=z.optimisticOps.filter(function(me){return me.trans===k});if(k._explicit&&L&&k.mutatedParts)for(var U=0,se=Object.values(z.queries.query);U<se.length;U++)for(var X=0,ie=(xe=se[U]).slice();X<ie.length;X++)Wa((be=ie[X]).obsSet,k.mutatedParts)&&(de(xe,be),be.subscribers.forEach(function(me){return Y.add(me)}));else if(0<V.length){z.optimisticOps=z.optimisticOps.filter(function(me){return me.trans!==k});for(var ve=0,he=Object.values(z.queries.query);ve<he.length;ve++)for(var xe,be,Ke,_e=0,Fe=(xe=he[ve]).slice();_e<Fe.length;_e++)(be=Fe[_e]).res!=null&&k.mutatedParts&&(L&&!be.dirty?(Ke=Object.isFrozen(be.res),Ke=Wl(be.res,be.req,V,B,be,Ke),be.dirty?(de(xe,be),be.subscribers.forEach(function(me){return Y.add(me)})):Ke!==be.res&&(be.res=Ke,be.promise=Oe.resolve({result:Ke}))):(be.dirty&&de(xe,be),be.subscribers.forEach(function(me){return Y.add(me)})))}}}Y.forEach(function(me){return me()})}}})(!1),{signal:p}),k.addEventListener("error",w(!1),{signal:p}),k.addEventListener("complete",w(!0),{signal:p})),k},table:function(u){var d=s.table(u),p=d.schema.primaryKey;return r(r({},d),{mutate:function(m){var w,k=Be.trans;return!p.outbound&&k.db._options.cache!=="disabled"&&!k.explicit&&k.idbtrans.mode==="readwrite"&&(w=_s["idb://".concat(a,"/").concat(u)])?(k=d.mutate(m),m.type!=="add"&&m.type!=="put"||!(50<=m.values.length||Za(p,m).some(function(L){return L==null}))?(w.optimisticOps.push(m),m.mutatedParts&&wo(m.mutatedParts),k.then(function(L){0<L.numFailures&&(de(w.optimisticOps,m),(L=zl(0,m,L))&&w.optimisticOps.push(L),m.mutatedParts)&&wo(m.mutatedParts)}),k.catch(function(){de(w.optimisticOps,m),m.mutatedParts&&wo(m.mutatedParts)})):k.then(function(L){var Y=zl(0,r(r({},m),{values:m.values.map(function(N,D){var K;return L.failures[D]?N:(G(K=(K=p.keyPath)!=null&&K.includes(".")?Ie(N):r({},N),p.keyPath,L.results[D]),K)})}),L);w.optimisticOps.push(Y),queueMicrotask(function(){return m.mutatedParts&&wo(m.mutatedParts)})}),k):d.mutate(m)},query:function(m){var w,k,L,Y,N,D,K;return ql(Be,d)&&Hl("query",m)?(w=((L=Be.trans)==null?void 0:L.db._options.cache)==="immutable",k=(L=Be).requery,L=L.signal,D=((z,B,V,U)=>{var se=_s["idb://".concat(z,"/").concat(B)];if(!se)return[];if(!(z=se.queries[V]))return[null,!1,se,null];var X=z[(U.query?U.query.index.name:null)||""];if(!X)return[null,!1,se,null];switch(V){case"query":var ie=(ve=U.direction)!=null?ve:"next",ve=X.find(function(he){var xe;return he.req.limit===U.limit&&he.req.values===U.values&&((xe=he.req.direction)!=null?xe:"next")===ie&&Gl(he.req.query.range,U.query.range)});return ve?[ve,!0,se,X]:[X.find(function(he){var xe;return("limit"in he.req?he.req.limit:1/0)>=U.limit&&((xe=he.req.direction)!=null?xe:"next")===ie&&(!U.values||he.req.values)&&nf(he.req.query.range,U.query.range)}),!1,se,X];case"count":return ve=X.find(function(he){return Gl(he.req.query.range,U.query.range)}),[ve,!!ve,se,X]}})(a,u,"query",m),K=D[0],Y=D[2],N=D[3],K&&D[1]?K.obsSet=m.obsSet:(D=d.query(m).then(function(z){var B=z.result;if(K&&(K.res=B),w){for(var V=0,U=B.length;V<U;++V)Object.freeze(B[V]);Object.freeze(B)}return z}).catch(function(z){return N&&K&&de(N,K),Promise.reject(z)}),K={obsSet:m.obsSet,promise:D,subscribers:new Set,type:"query",req:m,dirty:!1},N?N.push(K):(N=[K],(Y=Y||(_s["idb://".concat(a,"/").concat(u)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[m.query.index.name||""]=N)),sf(K,N,k,L),K.promise.then(function(z){return z=Wl(z.result,m,Y==null?void 0:Y.optimisticOps,d,K,w),{result:w?z:Ie(z)}})):d.query(m)}})}})}};function ko(s,a){return new Proxy(s,{get:function(u,d,p){return d==="db"?a:Reflect.get(u,d,p)}})}At.prototype.version=function(s){if(isNaN(s)||s<.1)throw new fe.Type("Given version is not a positive number");if(s=Math.round(10*s)/10,this.idbdb||this._state.isBeingOpened)throw new fe.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(Wd),u.stores({}),this._state.autoSchema=!1),u},At.prototype._whenReady=function(s){var a=this;return this.idbdb&&(this._state.openComplete||Be.letThrough||this._vip)?s():new Oe(function(u,d){if(a._state.openComplete)return d(new fe.DatabaseClosed(a._state.dbOpenError));if(!a._state.isBeingOpened){if(!a._state.autoOpen)return void d(new fe.DatabaseClosed);a.open().catch(y)}a._state.dbReadyPromise.then(u,d)}).then(s)},At.prototype.use=function(p){var a=p.stack,u=p.create,d=p.level,p=p.name,m=(p&&this.unuse({stack:a,name:p}),this._middlewares[a]||(this._middlewares[a]=[]));return m.push({stack:a,create:u,level:d??10,name:p}),m.sort(function(w,k){return w.level-k.level}),this},At.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},At.prototype.open=function(){var s=this;return gs(Ot,function(){return Xd(s)})},At.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var s=this._state;if(yr.remove(this),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}s.isBeingOpened||(s.dbReadyPromise=new Oe(function(a){s.dbReadyResolve=a}),s.openCanceller=new Oe(function(a,u){s.cancelOpen=u}))},At.prototype.close=function(a){var a=(a===void 0?{disableAutoOpen:!0}:a).disableAutoOpen,u=this._state;a?(u.isBeingOpened&&u.cancelOpen(new fe.DatabaseClosed),this._close(),u.autoOpen=!1,u.dbOpenError=new fe.DatabaseClosed):(this._close(),u.autoOpen=this._options.autoOpen||u.isBeingOpened,u.openComplete=!1,u.dbOpenError=null)},At.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 Oe(function(p,m){function w(){a.close(s);var k=a._deps.indexedDB.deleteDatabase(a.name);k.onsuccess=kt(function(){var L,Y,N;L=a._deps,Y=a.name,qa(N=L.indexedDB)||Y===oo||Ua(N,L.IDBKeyRange).delete(Y).catch(y),p()}),k.onerror=mn(m),k.onblocked=a._fireOnBlocked}if(u)throw new fe.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(w):w()})},At.prototype.backendDB=function(){return this.idbdb},At.prototype.isOpen=function(){return this.idbdb!==null},At.prototype.hasBeenClosed=function(){var s=this._state.dbOpenError;return s&&s.name==="DatabaseClosed"},At.prototype.hasFailed=function(){return this._state.dbOpenError!==null},At.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(At.prototype,"tables",{get:function(){var s=this;return c(this._allTables).map(function(a){return s._allTables[a]})},enumerable:!1,configurable:!0}),At.prototype.transaction=function(){var s=(function(a,u,d){var p=arguments.length;if(p<2)throw new fe.InvalidArgument("Too few arguments");for(var m=new Array(p-1);--p;)m[p-1]=arguments[p];return d=m.pop(),[a,E(m),d]}).apply(this,arguments);return this._transaction.apply(this,s)},At.prototype._transaction=function(s,a,u){var d,p,m=this,w=Be.trans,k=(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 m.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===Ma)d=Ma;else{if(s!="rw"&&s!=Ia)throw new fe.InvalidArgument("Invalid transaction mode: "+s);d=Ia}if(w){if(w.mode===Ma&&d===Ia){if(!k)throw new fe.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(!k)throw new fe.SubTransaction("Table "+Y+" not included in parent transaction.");w=null}}),k&&w&&!w.active&&(w=null)}}catch(Y){return w?w._promise(null,function(N,D){D(Y)}):Tt(Y)}var L=(function Y(N,D,K,z,B){return Oe.resolve().then(function(){var X=Be.transless||Be,V=N._createTransaction(D,K,N._dbSchema,z),X=(V.explicit=!0,{trans:V,transless:X});if(z)V.idbtrans=z.idbtrans;else try{V.create(),V.idbtrans._explicit=!0,N._state.PR1398_maxLoop=3}catch(ie){return ie.name===wt.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,D,K,null,B)})):Tt(ie)}var U,se=Le(B),X=(se&&Bs(),Oe.follow(function(){var ie;(U=B.call(V,V))&&(se?(ie=Jn.bind(null,null),U.then(ie,ie)):typeof U.next=="function"&&typeof U.throw=="function"&&(U=Xa(U)))},X));return(U&&typeof U.then=="function"?Oe.resolve(U).then(function(ie){return V.active?ie:Tt(new fe.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):X.then(function(){return U})).then(function(ie){return z&&V._resolve(),V._completion.then(function(){return ie})}).catch(function(ie){return V._reject(ie),Tt(ie)})})}).bind(null,this,d,p,w,u);return w?w._promise(d,L,"lock"):Be.trans?gs(Be.transless,function(){return m._whenReady(L)}):this._whenReady(L)},At.prototype.table=function(s){if(_(this._allTables,s))return this._allTables[s];throw new fe.InvalidTable("Table ".concat(s," does not exist"))};var Rn=At;function At(s,a){var u,d,p,m,w,k=this,L=(this._middlewares={},this.verno=0,At.dependencies),L=(this._options=a=r({addons:At.addons,autoOpen:!0,indexedDB:L.indexedDB,IDBKeyRange:L.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:y,dbReadyPromise:null,cancelOpen:y,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:a.autoOpen}),N=(Y.dbReadyPromise=new Oe(function(D){Y.dbReadyResolve=D}),Y.openCanceller=new Oe(function(D,K){Y.cancelOpen=K}),this._state=Y,this.name=s,this.on=fr(this,"populate","blocked","versionchange","close",{ready:[te,y]}),this.once=function(D,K){var z=function(){for(var B=[],V=0;V<arguments.length;V++)B[V]=arguments[V];k.on(D).unsubscribe(z),K.apply(k,B)};return k.on(D,z)},this.on.ready.subscribe=q(this.on.ready.subscribe,function(D){return function(K,z){At.vip(function(){var B,V=k._state;V.openComplete?(V.dbOpenError||Oe.resolve().then(K),z&&D(K)):V.onReadyBeingFired?(V.onReadyBeingFired.push(K),z&&D(K)):(D(K),B=k,z||D(function U(){B.on.ready.unsubscribe(K),B.on.ready.unsubscribe(U)}))})}}),this.Collection=(u=this,pr(Fd.prototype,function(U,V){this.db=u;var z=xl,B=null;if(V)try{z=V()}catch(X){B=X}var V=U._ctx,U=V.table,se=U.hook.reading.fire;this._ctx={table:U,index:V.index,isPrimKey:!V.index||U.schema.primKey.keyPath&&V.index===U.schema.primKey.name,range:z,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:se!==C?se:null}})),this.Table=(d=this,pr(Al.prototype,function(D,K,z){this.db=d,this._tx=z,this.name=D,this.schema=K,this.hook=d._allTables[D]?d._allTables[D].hook:fr(null,{creating:[le,y],reading:[R,C],updating:[P,y],deleting:[ee,y]})})),this.Transaction=(p=this,pr(Ud.prototype,function(D,K,z,B,V){var U=this;D!=="readonly"&&K.forEach(function(se){se=(se=z[se])==null?void 0:se.yProps,se&&(K=K.concat(se.map(function(X){return X.updatesTable})))}),this.db=p,this.mode=D,this.storeNames=K,this.schema=z,this.chromeTransactionDurability=B,this.idbtrans=null,this.on=fr(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 Oe(function(se,X){U._resolve=se,U._reject=X}),this._completion.then(function(){U.active=!1,U.on.complete.fire()},function(se){var X=U.active;return U.active=!1,U.on.error.fire(se),U.parent?U.parent._reject(se):X&&U.idbtrans&&U.idbtrans.abort(),Tt(se)})})),this.Version=(m=this,pr(Jd.prototype,function(D){this.db=m,this._cfg={version:D,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(w=this,pr(jl.prototype,function(D,K,z){if(this.db=w,this._ctx={table:D,index:K===":id"?null:K,or:z},this._cmp=this._ascending=st,this._descending=function(B,V){return st(V,B)},this._max=function(B,V){return 0<st(B,V)?B:V},this._min=function(B,V){return st(B,V)<0?B:V},this._IDBKeyRange=w._deps.IDBKeyRange,!this._IDBKeyRange)throw new fe.MissingAPI})),this.on("versionchange",function(D){0<D.newVersion?console.warn("Another connection wants to upgrade database '".concat(k.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(k.name,"'. Closing db now to resume the delete request.")),k.close({disableAutoOpen:!1})}),this.on("blocked",function(D){!D.newVersion||D.newVersion<D.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(D.oldVersion/10))}),this._maxKey=mr(a.IDBKeyRange),this._createTransaction=function(D,K,z,B){return new k.Transaction(D,K,z,k._options.chromeTransactionDurability,B)},this._fireOnBlocked=function(D){k.on("blocked").fire(D),yr.toArray().filter(function(K){return K.name===k.name&&K!==k&&!K._state.vcFired}).map(function(K){return K.on("versionchange").fire(D)})},this.use(ef),this.use(rf),this.use(tf),this.use(Qd),this.use(Zd),new Proxy(this,{get:function(D,K,z){var B;return K==="_vip"||(K==="table"?function(V){return ko(k.table(V),N)}:(B=Reflect.get(D,K,z))instanceof Al?ko(B,N):K==="tables"?B.map(function(V){return ko(V,N)}):K==="_createTransaction"?function(){return ko(B.apply(this,arguments),N)}:B)}}));this.vip=N,L.forEach(function(D){return D(k)})}var xo,zs=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",of=(ti.prototype.subscribe=function(s,a,u){return this._subscribe(s&&typeof s!="function"?s:{next:s,error:a,complete:u})},ti.prototype[zs]=function(){return this},ti);function ti(s){this._subscribe=s}try{xo={indexedDB:i.indexedDB||i.mozIndexedDB||i.webkitIndexedDB||i.msIndexedDB,IDBKeyRange:i.IDBKeyRange||i.webkitIDBKeyRange}}catch{xo={indexedDB:null,IDBKeyRange:null}}function Yl(s){var a,u=!1,d=new of(function(p){var m=Le(s),w,k=!1,L={},Y={},N={get closed(){return k},unsubscribe:function(){k||(k=!0,w&&w.abort(),D&&Zn.storagemutated.unsubscribe(B))}},D=(p.start&&p.start(N),!1),K=function(){return Oa(V)};function z(){return Wa(Y,L)}var B=function(U){bo(L,U),z()&&K()},V=function(){var U,se,X;!k&&xo.indexedDB&&(L={},U={},w&&w.abort(),w=new AbortController,X=(ie=>{var ve=Fs();try{m&&Bs();var he=Yn(s,ie);return he=m?he.finally(Jn):he}finally{ve&&Vs()}})(se={subscr:U,signal:w.signal,requery:K,querier:s,trans:null}),D||(Zn.storagemutated.subscribe(B),D=!0),Promise.resolve(X).then(function(ie){u=!0,a=ie,k||se.signal.aborted||(z()||(Y=U,z())?K():(L={},Oa(function(){return!k&&p.next&&p.next(ie)})))},function(ie){u=!1,["DatabaseClosedError","AbortError"].includes(ie==null?void 0:ie.name)||k||Oa(function(){k||p.error&&p.error(ie)})}))};return setTimeout(K,0),N});return d.hasValue=function(){return u},d.getValue=function(){return a},d}var ks=Rn;function ni(s){var a=es;try{es=!0,Zn.storagemutated.fire(s),Ja(s,!0)}finally{es=a}}T(ks,r(r({},$e),{delete:function(s){return new ks(s,{addons:[]}).delete()},exists:function(s){return new ks(s,{addons:[]}).open().then(function(a){return a.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(s){try{return a=ks.dependencies,u=a.indexedDB,a=a.IDBKeyRange,(qa(u)?Promise.resolve(u.databases()).then(function(d){return d.map(function(p){return p.name}).filter(function(p){return p!==oo})}):Ua(u,a).toCollection().primaryKeys()).then(s)}catch{return Tt(new fe.MissingAPI)}var a,u},defineClass:function(){return function(s){v(this,s)}},ignoreTransaction:function(s){return Be.trans?gs(Be.transless||Ot,s):s()},vip:Ha,async:function(s){return function(){try{var a=Xa(s.apply(this,arguments));return a&&typeof a.then=="function"?a:Oe.resolve(a)}catch(u){return Tt(u)}}},spawn:function(s,a,u){try{var d=Xa(s.apply(u,a||[]));return d&&typeof d.then=="function"?d:Oe.resolve(d)}catch(p){return Tt(p)}},currentTransaction:{get:function(){return Be.trans||null}},waitFor:function(s,a){return s=Oe.resolve(typeof s=="function"?ks.ignoreTransaction(s):s).timeout(a||6e4),Be.trans?Be.trans.waitFor(s):s},Promise:Oe,debug:{get:function(){return Se},set:function(s){we(s)}},derive:J,extend:v,props:T,override:q,Events:fr,on:Zn,liveQuery:Yl,extendObservabilitySet:bo,getByKeyPath:Q,setByKeyPath:G,delByKeyPath:function(s,a){typeof a=="string"?G(s,a,void 0):"length"in a&&[].map.call(a,function(u){G(s,u,void 0)})},shallowClone:re,deepClone:Ie,getObjectDiff:Qa,cmp:st,asap:H,minKey:-1/0,addons:[],connections:{get:yr.toArray},errnames:wt,dependencies:xo,cache:_s,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)})})),ks.maxKey=mr(ks.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(Zn(fo,function(s){es||(s=new CustomEvent(La,{detail:s}),es=!0,dispatchEvent(s),es=!1)}),addEventListener(La,function(s){s=s.detail,es||ni(s)}));var Ws,es=!1,Jl=function(){};return typeof BroadcastChannel<"u"&&((Jl=function(){(Ws=new BroadcastChannel(La)).onmessage=function(s){return s.data&&ni(s.data)}})(),typeof Ws.unref=="function"&&Ws.unref(),Zn(fo,function(s){es||Ws.postMessage(s)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(s){if(!Rn.disableBfCache&&s.persisted){Se&&console.debug("Dexie: handling persisted pagehide"),Ws!=null&&Ws.close();for(var a=0,u=yr.toArray();a<u.length;a++)u[a].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(s){!Rn.disableBfCache&&s.persisted&&(Se&&console.debug("Dexie: handling persisted pageshow"),Jl(),ni({all:new Bt(-1/0,[[]])}))})),Oe.rejectionMapper=function(s,a){return!s||s instanceof De||s instanceof TypeError||s instanceof SyntaxError||!s.name||!h[s.name]?s:(a=new h[s.name](a||s.message,s),"stack"in s&&j(a,"stack",{get:function(){return this.inner.stack}}),a)},we(Se),r(Rn,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Rn,Entity:Cl,PropModification:dr,RangeSet:Bt,add:function(s){return new dr({add:s})},cmp:st,default:Rn,liveQuery:Yl,mergeRanges:br,rangesOverlap:Nl,remove:function(s){return new dr({remove:s})},replacePrefix:function(s,a){return new dr({replacePrefix:[s,a]})}}),{default:Rn}),Rn})})(ld);var em=ld.exports;const Li=Zv(em),Ku=Symbol.for("Dexie"),ea=globalThis[Ku]||(globalThis[Ku]=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:tm,mergeRanges:CC,rangesOverlap:$C,RangeSet:SC,cmp:EC,Entity:TC,PropModification:AC,replacePrefix:PC,add:OC,remove:MC,DexieYProvider:IC}=ea;class nm 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 r={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};await n.table("log_item").toCollection().modify(o=>{o.category&&r[o.category]&&(o.category=r[o.category])})}),this.version(6).stores({plan:"++id, date, status, goal_id",goal:"++id, start_date"})}}let ae;function sm(e){ae=e}function cl(){ae&&ae.close(),ae=void 0}const rm=6,Nu=["公司","客户现场","出差","居家办公"],om={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};function ta(e){return om[e]||e}function Mr(e){return e<10?"0"+e:String(e)}function qn(e){return e.getFullYear()+"-"+Mr(e.getMonth()+1)+"-"+Mr(e.getDate())}function ot(){return qn(new Date)}function at(){const e=new Date;return qn(e)+"T"+Mr(e.getHours())+":"+Mr(e.getMinutes())+":"+Mr(e.getSeconds())}function bn(e){if(!e)return"--:--";const t=e.indexOf("T");return t>=0?e.slice(t+1,t+6):e.slice(0,5)}function Ks(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}function Ft(e,t){const n=Ks(e);return n.setDate(n.getDate()+t),qn(n)}function na(e,t){const n=Ks(e),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const o=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,o)),qn(n)}function Qs(e){const t=Ks(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),qn(t)}function am(e){const t=Ks(e).getDay();return t===0||t===6}function im(e,t){return Math.round((new Date(t).getTime()-new Date(e).getTime())/6e4)}function ud(e){const t=Ks(e),n=["周日","周一","周二","周三","周四","周五","周六"];return t.getFullYear()+" 年 "+(t.getMonth()+1)+" 月 "+t.getDate()+" 日 "+n[t.getDay()]}const lm=15e4;function Ri(e){const t=new Uint8Array(e);let n="";for(let r=0;r<t.length;r++)n+=String.fromCharCode(t[r]);return btoa(n)}function Ki(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}function um(){return Ri(crypto.getRandomValues(new Uint8Array(16)).buffer)}async function sa(e,t){const n=new TextEncoder,r=await crypto.subtle.importKey("raw",n.encode(e),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:Ki(t),iterations:lm,hash:"SHA-256"},r,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function ra(e,t){const n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.encrypt({name:"AES-GCM",iv:n},e,new TextEncoder().encode(t));return Ri(n.buffer)+":"+Ri(r)}async function Ca(e,t){const n=t.split(":");if(n.length!==2)throw new Error("密文格式错误");const r=await crypto.subtle.decrypt({name:"AES-GCM",iv:Ki(n[0])},e,Ki(n[1]));return new TextDecoder().decode(r)}async function dl(){await bd()}const cd="intern-log-vault-verify",sr="enc:v1:";let Rs=null;function cm(){return Rs!==null}function oa(){Rs=null}async function dd(){return await xt("pwd_salt","")!==""}async function dm(e){if(e.length<6)throw new Error("主密码至少 6 位");if(await dd())throw new Error("主密码已设置");const t=um(),n=await sa(e,t),r=await ra(n,cd);await jt("pwd_salt",t),await jt("pwd_verifier",r),Rs=n}async function fm(e){const t=await xt("pwd_salt","");if(!t)throw new Error("主密码尚未设置");const n=await sa(e,t),r=await xt("pwd_verifier","");try{await Ca(n,r)}catch{throw new Error("主密码不正确")}Rs=n}async function fd(){if(!Rs)throw new Error("密码库未解锁");return Rs}async function pm(e){const t=await fd();return sr+await ra(t,e)}async function vm(e){if(!e)return"";if(!e.startsWith(sr))return e;const t=await fd();return Ca(t,e.slice(sr.length))}async function mm(){return ae.credential.orderBy("system").toArray()}async function hm(e,t){const n=await pm(e.password),r={system:e.system.trim(),account:e.account.trim(),password:n,remark:e.remark.trim()};t?await ae.credential.update(t,{...r,updated_at:at()}):await ae.credential.add({...r,created_at:at(),updated_at:at()}),await dl()}async function ym(e){await ae.credential.delete(e),await dl()}async function yi(e){const t=await ae.credential.get(e);if(!t)throw new Error("记录不存在");return vm(t.password)}async function gm(e,t){if(!e)throw new Error("请输入旧主密码");if(t.length<6)throw new Error("新主密码至少 6 位");if(t===e)throw new Error("新主密码不能与旧主密码相同");const n=await xt("pwd_salt","");if(!n)throw new Error("密码库尚未初始化");const r=await sa(e,n),o=await xt("pwd_verifier","");try{await Ca(r,o)}catch{throw new Error("旧主密码不正确")}const i=await sa(t,n),c=await ae.credential.toArray();let f=0;for(const v of c){if(v.id==null)continue;const b=await bm(v.password,r),g=sr+await ra(i,b);await ae.credential.update(v.id,{password:g}),f++}return await jt("pwd_verifier",await ra(i,cd)),Rs=i,await dl(),f}async function bm(e,t){return e?e.startsWith(sr)?Ca(t,e.slice(sr.length)):e:""}const wm="https://daywk.linyux.cn",_m="dsh_sync_base",Ni="dsh_sync_token";function pd(e){try{return localStorage.getItem(e)||""}catch{return""}}function km(e,t){try{localStorage.setItem(e,t)}catch{}}function xm(e){try{localStorage.removeItem(e)}catch{}}async function Ns(){return pd(_m)||wm}function $a(){const e=pd(Ni);if(!e)return"";try{return e}catch{return""}}function Ur(e){e?km(Ni,e):xm(Ni)}const Cm="intern_worklog",fl="dsh_session_user";function qr(){try{const e=localStorage.getItem(fl);if(!e)return null;const t=JSON.parse(e);if(t&&t.userId&&t.username)return t}catch{}return null}function $m(e){localStorage.setItem(fl,JSON.stringify(e))}function vd(){localStorage.removeItem(fl)}const pl="dsh_cloud_creds";function md(e,t){localStorage.setItem(pl,JSON.stringify({username:e,password:t}))}function wn(){try{const e=localStorage.getItem(pl);if(!e)return null;const t=JSON.parse(e);if(t&&t.username&&t.password)return t}catch{}return null}function Sm(){localStorage.removeItem(pl)}let aa=null;function ia(e){aa===e&&ae||(ae&&cl(),sm(new nm(Cm+"_"+e)),aa=e)}async function Em(e,t,n){const r=await Ns();let o;try{o=await fetch(r+"/api/auth/"+e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t.trim(),password:n})})}catch{throw new Error("无法连接同步服务器:请检查网络后重试")}const i=await o.json().catch(()=>({}));if(!o.ok){const c=i&&i.error||"服务返回 "+o.status;throw e==="register"&&o.status===409?new Error("云端已有同名账号且密码一致,直接登录即可"):new Error(String(c))}if(!i.userId||!i.username)throw new Error("登录响应异常");return{userId:String(i.userId),username:String(i.username)}}async function vl(e,t,n){const r=await Em(n,e,t);ia(r.userId);const o={userId:r.userId,username:r.username};return $m(o),md(r.username,t),o}async function Tm(e,t){const n=(e||"").trim();if(!n||!t)throw new Error("请输入用户名与密码");return vl(n,t,"login")}async function Am(e,t,n){const r=(e||"").trim();if(r.length<2||r.length>20)throw new Error("用户名需 2 到 20 个字符");if(t.length<6)throw new Error("登录密码至少 6 位");return vl(r,t,"register")}async function Pm(){const e=wn();if(!e)return null;try{return await vl(e.username,e.password,"login")}catch{return null}}async function Om(){oa(),cl(),aa=null,vd()}function Mm(){oa(),cl(),aa=null,vd(),Sm()}async function Im(e,t){if(!qr())throw new Error("未登录");if(t.length<6)throw new Error("新密码至少 6 位");const r=wn();if(!r||r.password!==e)throw new Error("旧密码不正确");const o=await Ns();let i;try{i=await fetch(o+"/api/auth/password",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+hd()},body:JSON.stringify({oldPassword:e,newPassword:t})})}catch{throw new Error("无法连接同步服务器")}if(!i.ok){const c=await i.json().catch(()=>({}));throw new Error(c&&c.error||"修改失败 "+i.status)}md(r.username,t)}async function jm(){if(!qr())throw new Error("未登录");const t=await Ns();let n;try{n=await fetch(t+"/api/auth/delete",{method:"POST",headers:{Authorization:"Bearer "+hd()}})}catch{throw new Error("无法连接同步服务器")}if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r&&r.error||"删除失败 "+n.status)}Mm()}function hd(){return $a()}const Fi=O(null),Vi=O(null),ur=O(0);function os(){ur.value++}const Zs=O(""),Hr=["project","work_log","log_item","attendance","weekly_note","setting","memo","credential","goal","transaction","plan"],Js=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);function Lo(e){return JSON.stringify(e)}async function Dm(e){return ae.table(e).toArray()}function Ro(e,t){return e==="setting"?t.key:t.id}async function Lm(){for(const e of Hr){const t=ae.table(e),n=await t.toArray();for(const r of n){if(e==="setting"&&Js.has(r.key))continue;const o={};r.uuid||(o.uuid=Rm()),!r.updated_at&&r.created_at&&(o.updated_at=r.created_at),Object.keys(o).length&&await t.update(Ro(e,r),o)}}}function Rm(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"u"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}async function Km(){return wn()!=null}async function Nm(){try{return localStorage.getItem("dsh_last_sync")||""}catch{return""}}async function Fm(e){try{localStorage.setItem("dsh_last_sync",e)}catch{}}async function yd(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 r=await n.json();if(!r||!r.token)throw new Error("云端登录异常");return String(r.token)}async function Vm(e,t){let n=$a();return n||(n=await yd(e,t),Ur(n),n)}async function gd(){const e=wn();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=wn();if(!e)throw new Error("未登录,无法同步");return kd({baseUrl:await Ns(),username:e.username,password:e.password})}async function bd(){try{await Bi()}catch(e){Zs.value=e instanceof Error?e.message:String(e);try{await Bi()}catch{}throw e}}function wd(e,t,n){const r={};for(const o of Object.keys(t))o!=="id"&&(r[o]=t[o]);if(e==="log_item"){delete r.work_log_id,delete r.project_id;const o=t.work_log_id?n.workLog.get(t.work_log_id):null;o&&o.uuid&&(r.wuuid=o.uuid);const i=t.project_id?n.project.get(t.project_id):null;i&&i.uuid&&(r.puuid=i.uuid)}if(e==="plan"){delete r.goal_id;const o=t.goal_id?n.goal.get(t.goal_id):null;o&&o.uuid&&(r.guuid=o.uuid)}return r}async function _d(){const e=await ae.work_log.toArray(),t=await ae.project.toArray(),n=await ae.goal.toArray();return{workLog:new Map(e.map(r=>[r.id,r])),project:new Map(t.map(r=>[r.id,r])),goal:new Map(n.map(r=>[r.id,r]))}}let Ir=!1,Ko=!1,Ui=!1,er=null,$n=null,qi="",Hi=!1,No=null;async function tr(){if(Ir){Ko=!0;return}try{if(!await Km())return;await kd(await Bm()),Zs.value=""}catch(e){Zs.value=e instanceof Error?e.message:String(e)}}async function Bm(){const e=wn();if(!e)throw new Error("未登录,无法同步");return{baseUrl:await Ns(),username:e.username,password:e.password}}function Um(){if(Hi)return;Hi=!0,No=tm(async()=>{const t={};for(const n of Hr)t[n]=await ae.table(n).count();return t}).subscribe({next:()=>{Ui||Ir||(er&&globalThis.clearTimeout(er),er=globalThis.setTimeout(()=>{tr()},3e3))},error:()=>{}})}function qm(){No&&(No.unsubscribe(),No=null),$n&&($n.close(),$n=null,qi=""),er&&(globalThis.clearTimeout(er),er=null),Hi=!1}function Hm(e,t){const n=e+"|"+t;if(!($n&&qi===n)){$n&&($n.close(),$n=null);try{$n=new EventSource(e+"/api/events?token="+encodeURIComponent(t)),qi=n,$n.onmessage=()=>{tr()}}catch{$n=null}}}async function kd(e){if(Ir)return Ko=!0,{pushed:0,pulled:0,removed:0,errors:0,at:""};Ir=!0,Ui=!0;try{const t=await zm(e);return Ko&&(Ko=!1,globalThis.setTimeout(()=>{tr()},800)),t}finally{Ir=!1,Ui=!1}}async function zm(e){const t=e.baseUrl.trim().replace(/\/+$/,"");if(!t)throw new Error("请先配置同步服务地址");await Lm();const n=await _d(),r=await ae.sync_mirror.toArray(),o=new Map;for(const oe of r)o.set(oe.table+"|"+oe.uuid,oe);const i={},c=[];let f=0;for(const oe of Hr){let ue=await Dm(oe);oe==="setting"&&(ue=ue.filter(q=>!Js.has(q.key)));const ce=new Map;for(const q of ue)ce.set(q.uuid,q);for(const[q,S]of ce){const H=wd(oe,S,n),Q=Lo(H),G=o.get(oe+"|"+q);(!G||G.hash!==Q)&&(i[oe]=i[oe]||[],i[oe].push(H),f++)}for(const[q,S]of o)q.startsWith(oe+"|")&&!ce.has(S.uuid)&&c.push({table:oe,uuid:S.uuid,deleted_at:at()});i[oe]=i[oe]||[]}c.push(...Xm());const v=await Vm(t,e),b=oe=>fetch(t+"/api/sync",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+oe},body:JSON.stringify({device:"client",tables:i,tombstones:c})});let g=await b(v);if(g.status===401){Ur("");const oe=await yd(t,e);Ur(oe),g=await b(oe)}if(!g.ok)throw new Error("同步服务返回 "+g.status);const _=await g.json(),T=_.tables||{},x=_.tombstones||[],j=await Ym(T,x);Hm(t,$a()||v);const J=at();return await Fm(J),(j.changed>0||j.removed>0||f>0)&&os(),{pushed:f,pulled:j.changed,removed:j.removed,errors:0,at:J}}function xd(){var t;return"dsh_idmap_"+(((t=wn())==null?void 0:t.username)||"anon")}function Wm(){try{const e=localStorage.getItem(xd());if(e)return JSON.parse(e)}catch{}return{}}function Gm(e){try{localStorage.setItem(xd(),JSON.stringify(e))}catch{}}async function Ym(e,t){const n=Wm(),r=new Set(t.map(x=>x.table+"|"+x.uuid)),o=new Map;for(const x of await ae.sync_mirror.toArray())o.set(x.table+"|"+x.uuid,x);const i=new Set(Array.from(o.keys()).map(x=>x.split("|")[1]));let c=0,f=0;const v={},b={},g={};for(const x of Hr){const j=ae.table(x),J=await j.toArray(),oe=new Map(J.map(E=>[Ro(x,E),E])),ue=new Map(J.filter(E=>E.uuid).map(E=>[E.uuid,E])),ce=(e[x]||[]).filter(E=>!r.has(x+"|"+E.uuid)),q=ce.filter(E=>!(x==="setting"&&Js.has(E.key))),S=ce.filter(E=>x==="setting"&&Js.has(E.key));for(const E of S)Jm(x,E.uuid);const H=x==="setting"?[]:J.filter(E=>E.uuid&&!i.has(E.uuid)&&!r.has(x+"|"+E.uuid)),Q={v:Math.max(0,...J.map(E=>Number(E.id)||0))};q.length;const G=[];for(const E of q){const I={...E};if(x==="log_item"){const Ae=I.wuuid?v[I.wuuid]:void 0;if(!Ae)continue;I.work_log_id=Ae,delete I.wuuid,I.project_id=I.puuid?b[I.puuid]??null:null,delete I.puuid}if(x==="plan")if(I.guuid){const Ae=g[I.guuid];I.goal_id=Ae??null,delete I.guuid}else I.goal_id=null;let ne=Ro(x,E);if(x==="setting")ne=E.key;else{const Ae=n[x]&&n[x][E.uuid],ye=ue.get(E.uuid);ye&&ye.id!=null?ne=ye.id:typeof Ae=="number"?ne=Ae:ne=++Q.v}const Ie={...I,id:ne};x==="setting"&&Js.has(Ie.key)||(G.push(Ie),x==="work_log"&&(v[E.uuid]=ne),x==="project"&&(b[E.uuid]=ne),x==="goal"&&(g[E.uuid]=ne))}const re=G.concat(H);for(const E of re){const I=oe.get(Ro(x,E));(!I||Lo(I)!==Lo(E))&&c++}f+=J.filter(E=>E.uuid&&!G.some(I=>I.uuid===E.uuid)&&!r.has(x+"|"+E.uuid)).length,await j.clear(),re.length&&await j.bulkPut(re);const M={};for(const E of re)E.uuid&&(M[E.uuid]=E.id);n[x]=M}Gm(n);const _=await _d(),T=[];for(const x of Hr){const j=await ae.table(x).toArray();for(const J of j)x==="setting"&&Js.has(J.key)||J.uuid&&T.push({table:x,uuid:J.uuid,hash:Lo(wd(x,J,_))})}return await ae.sync_mirror.clear(),T.length&&await ae.sync_mirror.bulkAdd(T.map(x=>({...x}))),await ae.tombstone.clear(),{changed:c,removed:f+la.length}}const la=[];function Jm(e,t){la.some(n=>n.table===e&&n.uuid===t)||la.push({table:e,uuid:t,deleted_at:at()})}function Xm(){return la.splice(0)}const Qm=new Set(["sync_cursor","sync_last_time","sync_token","last_project","last_category"]);async function it(){await bd()}async function xt(e,t){const n=await ae.setting.get(e);return n?n.value:t}async function jt(e,t){await ae.setting.put({key:e,value:t}),Qm.has(e)||await it()}async function ps(){const e=await Promise.all([xt("work_start","09:00"),xt("work_end","18:00"),xt("grace_minutes","10"),xt("lunch_minutes","60"),xt("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 Zm(){return xt("last_location","")}async function eh(e,t){const n=t.trim();await jt("last_location",n),n&&await ua(n);let r=!1;const o=await _n(e);o&&o.id?(o.location||"")!==n&&(await ae.attendance.update(o.id,{location:n||null}),r=!0):n&&(await ae.attendance.add({date:e,clock_in_at:null,clock_out_at:null,kind:"normal",note:null,location:n,created_at:at()}),r=!0),r&&await it()}async function ml(){const e=await xt("location_presets","");if(!e)return Nu.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 Nu.slice()}async function Cd(e){const t=Array.from(new Set(e.map(n=>n.trim()).filter(Boolean)));await jt("location_presets",JSON.stringify(t))}async function ua(e){const t=e.trim();if(!t)return;const n=await ml();n.includes(t)||await Cd([...n,t])}async function rr(e=!1){const t=await ae.project.orderBy("name").toArray();return e?t:t.filter(n=>n.archived!==1)}async function th(e){await ae.project.add({name:e.trim(),archived:0,created_at:at()}),await it()}async function nh(e,t){await ae.project.update(e,{name:t.trim()}),await it()}async function sh(e,t){await ae.project.update(e,{archived:t?1:0}),await it()}async function _n(e){return ae.attendance.where("date").equals(e).first()}async function $d(e,t){const n=((t===void 0?await xt("last_location",""):t)||"").trim();let r=!1;const o=await _n(e);if(o&&o.id){if(!o.clock_in_at){const i={clock_in_at:at()};n&&(i.location=n),await ae.attendance.update(o.id,i),r=!0}n&&(await xt("last_location","")!==n&&await jt("last_location",n),await ua(n)),r&&await it();return}await ae.attendance.add({date:e,clock_in_at:at(),clock_out_at:null,kind:"normal",note:null,location:n||null,created_at:at()}),n&&(await jt("last_location",n),await ua(n)),await it()}async function rh(e){const t=await _n(e);t&&t.id&&t.clock_in_at&&!t.clock_out_at&&(await ae.attendance.update(t.id,{clock_out_at:at()}),await it())}async function oh(){const e=new Date,t=qn(e);let n="";if(e.getHours()<4){const r=await _n(Ft(t,-1));r&&r.id&&r.clock_in_at&&!r.clock_out_at&&(await ae.attendance.update(r.id,{clock_out_at:at()}),n=r.date)}if(!n){const r=await _n(t);r&&r.id&&r.clock_in_at&&!r.clock_out_at&&(await ae.attendance.update(r.id,{clock_out_at:at()}),n=r.date)}if(!n)throw new Error("没有进行中的打卡");return await it(),n}async function ah(e,t,n,r,o){(o||"").trim()&&await ua(o);const i=await _n(e),c={date:e,clock_in_at:t,clock_out_at:n,kind:"makeup",note:r||null,location:(o||"").trim()||null,created_at:at()};i&&i.id?await ae.attendance.update(i.id,c):await ae.attendance.add(c),await it()}async function ih(e,t,n){const r=(n||"").trim();if(!r)return;const o=await _n(e);o&&o.id&&(await ae.attendance.update(o.id,{[t]:e+"T"+r+":00"}),await it())}async function Jr(e,t){return ae.attendance.where("date").between(e,t,!0,!0).toArray()}async function lh(e,t){const n=await _n(e);if(t){const r={date:e,kind:"leave",clock_in_at:null,clock_out_at:null,created_at:at()};n&&n.id?await ae.attendance.update(n.id,r):await ae.attendance.add({...r,note:null,location:null})}else n&&n.id&&await ae.attendance.update(n.id,{kind:"normal"});await it()}async function uh(e){const t=await ae.work_log.where("date").equals(e).first();return t||{id:await ae.work_log.add({date:e,created_at:at()}),date:e,created_at:at()}}async function ch(e){return ae.work_log.where("date").equals(e).first()}async function dh(e){const t=await ch(e);return!t||!t.id?[]:(await ae.log_item.where("work_log_id").equals(t.id).toArray()).sort((r,o)=>o.id-r.id)}async function fh(e,t){const n=await ae.work_log.where("date").equals(e).first();let r;n&&n.id?r=n:r=await uh(e),await ae.table("log_item").add({work_log_id:r.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:at()});const o=t.project_id?String(t.project_id):"";await xt("last_project","")!==o&&await jt("last_project",o),await xt("last_category","")!==t.category&&await jt("last_category",t.category),await it()}async function gi(e,t){await ae.table("log_item").update(e,t),await it()}async function ph(e){await ae.table("log_item").delete(e),await it()}async function Xr(e,t){const n=await ae.work_log.where("date").between(e,t,!0,!0).toArray();if(!n.length)return[];const r=new Map(n.map(i=>[i.id,i.date]));return(await ae.table("log_item").where("work_log_id").anyOf(n.map(i=>i.id)).toArray()).map(i=>({...i,date:r.get(i.work_log_id)||""})).sort((i,c)=>i.date===c.date?i.id-c.id:i.date<c.date?-1:1)}async function hl(e){return ae.weekly_note.where("week_start").equals(e).first()}async function vh(e,t){const n=await hl(e);n&&n.id?await ae.weekly_note.update(n.id,t):await ae.weekly_note.add({week_start:e,highlights:t.highlights??null,challenges:t.challenges??null,plan_next:t.plan_next??null,created_at:at()}),await it()}async function mh(e,t){return ae.weekly_note.where("week_start").between(e,t,!0,!0).toArray()}async function hh(e){return(await ae.plan.where("date").equals(e).toArray()).sort((n,r)=>n.start_time<r.start_time?-1:1)}async function yh(e){const t=at();await ae.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 it()}async function gh(e,t){await ae.plan.update(e,{...t,updated_at:at()}),await it()}async function bh(e){await ae.plan.delete(e),await it()}async function wh(e,t){const n=await ae.plan.get(e);n&&(t!=="todo"&&n.timer_started_at&&await yl(e),await ae.plan.update(e,{status:t,updated_at:at()}),await it())}async function _h(e){const t=await ae.plan.filter(n=>!!n.timer_started_at).toArray();for(const n of t)n.id!==e&&await yl(n.id);await ae.plan.update(e,{timer_started_at:at(),updated_at:at()}),await it()}async function yl(e){const t=await ae.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 ae.plan.update(e,{actual_minutes:(t.actual_minutes||0)+n,timer_started_at:null,updated_at:at()}),await it()}const kh=366;function xh(e,t){const n=[];let r=e,o=0;for(;r<=t&&o<kh;)n.push(r),r=Ft(r,1),o++;return n}async function Ch(){const e=await ae.goal.toArray(),t=[];for(const n of e){const r=await ae.plan.where("goal_id").equals(n.id).toArray();t.push({goalId:n.id,done:r.filter(o=>o.status==="done").length,total:r.length})}return t}async function $h(){return(await ae.goal.toArray()).sort((t,n)=>t.start_date<n.start_date?-1:1)}async function Sh(e){const t=at(),n=await ae.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 ae.goal.get(n);const r=xh(e.start_date,e.end_date);for(const o of r)await ae.plan.add({date:o,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 it()}async function Eh(e,t){if(!await ae.goal.get(e))return;const r={...t,updated_at:at()};await ae.goal.update(e,r);const o=await ae.plan.where("goal_id").equals(e).toArray();for(const i of o)i.status!=="done"&&await ae.plan.update(i.id,{...t.title!==void 0?{title:t.title.trim()}:{},...t.kind!==void 0?{kind:t.kind}:{},...t.note!==void 0?{note:t.note||null}:{},updated_at:at()});await it()}async function Th(e){const t=await ae.plan.where("goal_id").equals(e).toArray();for(const n of t)await ae.plan.delete(n.id);await ae.goal.delete(e),await it()}async function Ah(){return(await ae.memo.toArray()).sort((t,n)=>t.updated_at<n.updated_at?1:-1)}async function Ph(e,t){const n=at(),r=await ae.memo.add({title:e.trim(),content:t,created_at:n,updated_at:n});return await it(),{id:r,title:e.trim(),content:t,created_at:n,updated_at:n}}async function Oh(e,t,n){await ae.memo.update(e,{title:t.trim(),content:n,updated_at:at()}),await it()}async function Mh(e){await ae.memo.delete(e),await it()}async function Ih(e,t=8){const n=e.trim().toLowerCase();if(!n)return[];const r=await ae.work_log.toArray(),o=new Map(r.map(c=>[c.id,c.date]));return(await ae.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:o.get(c.work_log_id)||""}))}async function jh(e,t=4){const n=e.trim().toLowerCase();return n?(await ae.memo.toArray()).filter(o=>((o.title||"")+" "+(o.content||"")).toLowerCase().includes(n)).sort((o,i)=>o.updated_at<i.updated_at?1:-1).slice(0,t):[]}async function Dh(e,t){return ae.table("transaction").where("date").between(e,t,!0,!0).toArray()}async function Lh(e){await ae.table("transaction").add({...e,created_at:at()}),await it()}async function Rh(e,t){await ae.table("transaction").update(e,{...t}),await it()}async function Kh(e){await ae.table("transaction").delete(e),await it()}async function Nh(e,t){await ae.table("transaction").update(e,{reimbursed:1}),await it()}async function Fh(){const e=await Promise.all([ae.project.toArray(),ae.work_log.toArray(),ae.table("log_item").toArray(),ae.attendance.toArray(),ae.weekly_note.toArray(),ae.setting.toArray(),ae.memo.toArray(),ae.credential.toArray(),ae.table("transaction").toArray(),ae.plan.toArray(),ae.goal.toArray()]);return JSON.stringify({schema_version:rm,exported_at:at(),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 Vh(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,r=ae.table("log_item"),o=ae.table("transaction"),i=ae.plan,c=ae.goal;await ae.transaction("rw",[ae.project,ae.work_log,r,ae.attendance,ae.weekly_note,ae.setting,ae.memo,ae.credential,o,c,i],async()=>{await Promise.all([ae.project.clear(),ae.work_log.clear(),r.clear(),ae.attendance.clear(),ae.weekly_note.clear(),ae.setting.clear(),ae.memo.clear(),ae.credential.clear(),o.clear(),c.clear(),i.clear()]),n.project&&n.project.length&&await ae.project.bulkAdd(n.project),n.work_log&&n.work_log.length&&await ae.work_log.bulkAdd(n.work_log),n.log_item&&n.log_item.length&&await r.bulkAdd(n.log_item),n.attendance&&n.attendance.length&&await ae.attendance.bulkAdd(n.attendance),n.weekly_note&&n.weekly_note.length&&await ae.weekly_note.bulkAdd(n.weekly_note),n.setting&&n.setting.length&&await ae.setting.bulkAdd(n.setting),n.memo&&n.memo.length&&await ae.memo.bulkAdd(n.memo),n.credential&&n.credential.length&&await ae.credential.bulkAdd(n.credential),n.transaction&&n.transaction.length&&await o.bulkAdd(n.transaction),n.goal&&n.goal.length&&await c.bulkAdd(n.goal),n.plan&&n.plan.length&&await i.bulkAdd(n.plan)}),await it()}const Bh=["制度学习","产品学习","打杂","项目实操","售后服务"],Uh=["餐饮","交通","住房","通讯","学习","娱乐","其他"],qh=["工资","报销","其他"],Sd="log_categories",Ed="ledger_expense_categories",Td="ledger_income_categories";function Ad(e,t){if(!e)return t.slice();try{const n=JSON.parse(e);if(Array.isArray(n)){const r=n.filter(o=>typeof o=="string"&&o.trim()).map(o=>o.trim());if(r.length)return Array.from(new Set(r))}}catch{}return t.slice()}async function Qr(){return Ad(await xt(Sd,""),Bh)}async function bi(e){await jt(Sd,JSON.stringify(e))}async function zr(e){return Ad(await xt(e==="expense"?Ed:Td,""),e==="expense"?Uh:qh)}async function Ts(e,t){await jt(e==="expense"?Ed:Td,JSON.stringify(t))}const Hh={class:"dialog",role:"dialog","aria-label":"编辑工作记录"},zh={class:"dialog-head"},Wh={key:0,class:"muted dialog-sub"},Gh={class:"dialog-body"},Yh={class:"form-grid"},Jh={class:"field span2"},Xh={key:0,class:"form-error"},Qh={class:"field"},Zh=["value"],ey={class:"field"},ty=["value"],ny={class:"field"},sy={class:"field"},ry={class:"field span2"},oy={class:"field"},ay={class:"field"},iy={class:"dialog-btns"},ly=Rt({__name:"EditLogDialog",props:{open:{type:Boolean},item:{},projects:{},date:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=O([]);Qr().then(ce=>{n.value=ce});const r=e,o=t,i=O(""),c=O(null),f=O("dev"),v=O(null),b=O(""),g=O(""),_=O(0),T=O(0),x=O(""),j=O(null),J=rt(()=>{var S;const ce=r.projects.filter(H=>H.archived!==1),q=(S=r.item)==null?void 0:S.project_id;if(q&&!ce.some(H=>H.id===q)){const H=r.projects.find(G=>G.id===q),Q=ce.slice();return H&&Q.unshift({...H,name:H.name+"(已归档)"}),Q}return ce});function oe(ce){r.open&&ce.key==="Escape"&&o("cancel")}yt(()=>r.open,async ce=>{var q;if(ce){const S=r.item;i.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",v.value=(S==null?void 0:S.minutes)??null,b.value=(S==null?void 0:S.takeaway)??"",g.value=(S==null?void 0:S.remark)??"",_.value=(S==null?void 0:S.is_milestone)??0,T.value=(S==null?void 0:S.needs_followup)??0,x.value="",window.addEventListener("keydown",oe),await ir(),(q=j.value)==null||q.focus()}else window.removeEventListener("keydown",oe)}),Wn(()=>window.removeEventListener("keydown",oe)),yt(i,()=>{x.value&&(x.value="")});function ue(){const ce=i.value.trim();if(!ce){x.value="请填写工作内容";return}if(!r.item||!r.item.id){o("save",{id:0,content:ce,project_id:c.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:b.value.trim()||null,remark:g.value.trim()||null,is_milestone:_.value,needs_followup:T.value});return}o("save",{id:r.item.id,content:ce,project_id:c.value,category:f.value,minutes:v.value&&v.value>0?v.value:null,takeaway:b.value.trim()||null,remark:g.value.trim()||null,is_milestone:_.value?1:0,needs_followup:T.value?1:0})}return(ce,q)=>($(),St(Hn,{to:"body"},[Ce(lr,{name:"modal"},{default:ms(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:q[10]||(q[10]=zt(S=>o("cancel"),["self"]))},[l("div",Hh,[l("div",zh,[l("div",null,[q[11]||(q[11]=l("div",{class:"dialog-title"},"编辑工作记录",-1)),e.date?($(),A("div",Wh,W(e.date),1)):ge("",!0)]),l("button",{class:"icon-btn",title:"关闭",onClick:q[0]||(q[0]=S=>o("cancel"))},[Ce(He,{name:"close",size:16})])]),l("div",Gh,[l("div",Yh,[l("div",Jh,[q[12]||(q[12]=l("label",null,"工作内容(必填)",-1)),Me(l("input",{ref_key:"contentInput",ref:j,class:Ze(["input",{invalid:x.value}]),"onUpdate:modelValue":q[1]||(q[1]=S=>i.value=S),onKeydown:Mt(ue,["enter"])},null,34),[[Ne,i.value]]),x.value?($(),A("div",Xh,W(x.value),1)):ge("",!0)]),l("div",Qh,[q[14]||(q[14]=l("label",null,"所属项目",-1)),Me(l("select",{class:"select","onUpdate:modelValue":q[2]||(q[2]=S=>c.value=S)},[q[13]||(q[13]=l("option",{value:null},"无项目",-1)),($(!0),A(je,null,et(J.value,S=>($(),A("option",{key:S.id,value:S.id},W(S.name),9,Zh))),128))],512),[[fs,c.value]])]),l("div",ey,[q[15]||(q[15]=l("label",null,"工作分类",-1)),Me(l("select",{class:"select","onUpdate:modelValue":q[3]||(q[3]=S=>f.value=S)},[($(!0),A(je,null,et(n.value,S=>($(),A("option",{key:S,value:S},W(S),9,ty))),128))],512),[[fs,f.value]])]),l("div",ny,[q[16]||(q[16]=l("label",null,"耗时(分钟)",-1)),Me(l("input",{class:"input",type:"number",min:"0","onUpdate:modelValue":q[4]||(q[4]=S=>v.value=S),placeholder:"选填"},null,512),[[Ne,v.value,void 0,{number:!0}]])]),l("div",sy,[q[17]||(q[17]=l("label",null,"主要收获",-1)),Me(l("input",{class:"input","onUpdate:modelValue":q[5]||(q[5]=S=>b.value=S),placeholder:"一句话:学到了什么"},null,512),[[Ne,b.value]])]),l("div",ry,[q[18]||(q[18]=l("label",null,"备注",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":q[6]||(q[6]=S=>g.value=S),placeholder:"背景、链接、未决事项(选填)"},null,512),[[Ne,g.value]])]),l("div",oy,[q[19]||(q[19]=l("label",null,"成果标记",-1)),l("button",{class:Ze(["toggle-btn",{on:_.value===1}]),onClick:q[7]||(q[7]=S=>_.value=_.value===1?0:1)},W(_.value===1?"已标记为成果":"未标记"),3)]),l("div",ay,[q[20]||(q[20]=l("label",null,"待跟进",-1)),l("button",{class:Ze(["toggle-btn",{onwarn:T.value===1}]),onClick:q[8]||(q[8]=S=>T.value=T.value===1?0:1)},W(T.value===1?"需要跟进":"无需跟进"),3)])])]),l("div",iy,[l("button",{class:"btn btn-sm",onClick:q[9]||(q[9]=S=>o("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:ue},"保存修改")])])])):ge("",!0)]),_:1})]))}}),uy=Vt(ly,[["__scopeId","data-v-bd00bec4"]]);function Oo(e){const t=e.split(":");return Number(t[0])*60+Number(t[1])}function cr(e,t,n,r){if(e&&e.kind==="leave")return{status:"leave",label:"请假",makeup:!1,workedMinutes:null};if(am(t))return{status:"rest",label:"休息日",makeup:!1,workedMinutes:null};if(!e||!e.clock_in_at)return r?{status:"none",label:"未打卡",makeup:!1,workedMinutes:null}:{status:"absent",label:"缺勤",makeup:!!(e&&e.kind==="makeup"),workedMinutes:null};const o=e.kind==="makeup";if(!e.clock_out_at)return{status:"incomplete",label:r?"进行中":"未完成",makeup:o,workedMinutes:null};const i=Oo(bn(e.clock_in_at)),c=Oo(bn(e.clock_out_at)),f=Oo(n.work_start),v=Oo(n.work_end);let b="normal";!o&&i>f+n.grace_minutes?b="late":!o&&c<v&&(b="early");const g=im(e.clock_in_at,e.clock_out_at),_=Math.max(0,g-n.lunch_minutes);return{status:b,label:o?"补卡":b==="late"?"迟到":b==="early"?"早退":"正常",makeup:o,workedMinutes:_}}const Fo=O([]);let cy=0;function Ve(e){const t=++cy;Fo.value.push({id:t,text:e}),setTimeout(()=>{Fo.value=Fo.value.filter(n=>n.id!==t)},2e3)}function dy(){return Fo}const fy={class:"day-panel"},py={class:"dp-head"},vy={class:"dp-date"},my={class:"card sec"},hy={class:"att-grid"},yy={class:"att-cell"},gy={key:0,class:"edit-row"},by={key:1,class:"att-val"},wy={class:"att-cell"},_y={key:0,class:"edit-row"},ky={key:1,class:"att-val"},xy={class:"att-cell"},Cy=["list"],$y=["id"],Sy=["value"],Ey={class:"att-cell"},Ty={class:"att-val status-val"},Ay={key:0,class:"tag"},Py={key:1,class:"muted"},Oy={key:0,class:"att-note muted"},My={class:"att-actions"},Iy=["disabled"],jy=["disabled"],Dy=["disabled"],Ly=["disabled"],Ry={key:0,class:"card sec makeup"},Ky={class:"form-grid"},Ny={class:"field"},Fy={class:"field"},Vy={class:"field span2"},By=["list"],Uy={class:"field span2"},qy={key:0,class:"form-error"},Hy={class:"form-footer"},zy={class:"list-sec"},Wy={class:"sec-head"},Gy={class:"sec-title"},Yy={key:0,class:"empty muted"},Jy={class:"item-main"},Xy={class:"tag"},Qy=["onClick"],Zy={key:0,class:"muted item-meta"},eg={key:1,class:"muted num item-meta"},tg=["onClick"],ng=["onClick"],sg=["onClick"],rg=["onClick"],og={key:0,class:"item-sub"},ag={key:0,class:"muted2"},ig={key:1,class:"muted"},lg={key:1,class:"dp-foot muted num"},ug=Rt({__name:"DayPanel",props:{date:{}},setup(e){const t=O([]);Qr().then(fe=>{t.value=fe});const n=e,r=O(!0),o=O(null),i=O(void 0),c=O([]),f=O([]),v=O(""),b=O([]),g=rt(()=>"loc-list-"+n.date),_=rt(()=>n.date===ot());async function T(){r.value=!0,o.value=await ps(),i.value=await _n(n.date),c.value=await dh(n.date),f.value=await rr(!0),b.value=await ml(),v.value=i.value&&i.value.location||await Zm(),r.value=!1}vn(T),yt(()=>n.date,T),yt(ur,()=>{T()});function x(fe){if(!fe)return"";const h=f.value.find(y=>y.id===fe);return h?h.name:"已删除项目"}const j=rt(()=>o.value?cr(i.value,n.date,o.value,_.value):null),J=rt(()=>c.value.reduce((fe,h)=>fe+(h.minutes||0),0)),oe=O(!1);async function ue(){oe.value||(oe.value=!0,await $d(n.date,v.value),await T(),os(),Ve("上班打卡成功"),oe.value=!1)}async function ce(){oe.value||(oe.value=!0,await rh(n.date),await T(),os(),Ve("下班打卡成功"),oe.value=!1)}async function q(){await eh(n.date,v.value),os(),Ve("地点已更新")}const S=O(!1),H=rt(()=>{var fe;return((fe=i.value)==null?void 0:fe.kind)==="leave"});function Q(){if(i.value&&i.value.clock_in_at){S.value=!0;return}G(!0)}async function G(fe){S.value=!1,await lh(n.date,fe),await T(),os(),Ve(fe?"已标记为休假":"已取消休假")}const re=O(null),M=O(""),E=O(null);yt(re,async fe=>{var h;fe&&(await ir(),(h=E.value)==null||h.focus())});function I(fe){var y,C;const h=fe==="in"?(y=i.value)==null?void 0:y.clock_in_at:(C=i.value)==null?void 0:C.clock_out_at;re.value=fe,M.value=h?bn(h):fe==="in"?"09:00":"18:00"}function ne(){re.value=null}async function Ie(){const fe=re.value;fe&&(re.value=null,M.value&&(await ih(n.date,fe==="in"?"clock_in_at":"clock_out_at",M.value),await T(),os(),Ve("打卡时间已修改")))}const Ae=O(!1),ye=O("09:00"),Pe=O("18:00"),Ue=O(""),de=O(""),ke=O("");function Ee(){de.value=v.value,ke.value="",Ae.value=!Ae.value}async function Le(){if(!ye.value||!Pe.value){ke.value="请填写上班与下班时间";return}await ah(n.date,n.date+"T"+ye.value+":00",n.date+"T"+Pe.value+":00",Ue.value.trim(),de.value),Ae.value=!1,Ue.value="",ke.value="",await T(),os(),Ve("补卡已保存")}const $e=O(null);function pe(fe){$e.value=fe}function De(){$e.value=null}async function ct(fe){fe.id?(await gi(fe.id,{content:fe.content,project_id:fe.project_id,category:fe.category,minutes:fe.minutes,takeaway:fe.takeaway,remark:fe.remark,is_milestone:fe.is_milestone,needs_followup:fe.needs_followup}),Ve("记录已更新")):(await fh(n.date,{content:fe.content,project_id:fe.project_id,category:fe.category,minutes:fe.minutes,takeaway:fe.takeaway,remark:fe.remark}),Ve("记录已添加")),$e.value=null,await T()}async function gt(fe){await gi(fe.id,{is_milestone:fe.is_milestone?0:1}),await T()}async function bt(fe){await gi(fe.id,{needs_followup:fe.needs_followup?0:1}),await T()}const wt=O(null);async function It(){wt.value&&wt.value.id&&await ph(wt.value.id),wt.value=null,await T(),Ve("记录已删除")}return(fe,h)=>($(),A("div",fy,[l("div",py,[l("div",vy,W(un(ud)(e.date)),1)]),l("div",my,[h[19]||(h[19]=l("div",{class:"sec-title"},"出勤信息",-1)),l("div",hy,[l("div",yy,[h[15]||(h[15]=l("label",null,"上班时间",-1)),re.value==="in"?($(),A("div",gy,[Me(l("input",{ref_key:"timeInput",ref:E,type:"time",class:"input time-input","onUpdate:modelValue":h[0]||(h[0]=y=>M.value=y),onKeydown:[Mt(Ie,["enter"]),Mt(ne,["esc"])]},null,544),[[Ne,M.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Ie},"确认"),l("button",{class:"btn btn-sm",onClick:ne},"取消")])):($(),A("div",by,[l("span",{class:Ze(["num",{"val-empty":!(i.value&&i.value.clock_in_at)}])},W(i.value&&i.value.clock_in_at?un(bn)(i.value.clock_in_at):"未打卡"),3),i.value&&i.value.id?($(),A("button",{key:0,class:"icon-btn",title:"修改上班时间",onClick:h[1]||(h[1]=y=>I("in"))},[Ce(He,{name:"edit",size:13})])):ge("",!0)]))]),l("div",wy,[h[16]||(h[16]=l("label",null,"下班时间",-1)),re.value==="out"?($(),A("div",_y,[Me(l("input",{ref_key:"timeInput",ref:E,type:"time",class:"input time-input","onUpdate:modelValue":h[2]||(h[2]=y=>M.value=y),onKeydown:[Mt(Ie,["enter"]),Mt(ne,["esc"])]},null,544),[[Ne,M.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Ie},"确认"),l("button",{class:"btn btn-sm",onClick:ne},"取消")])):($(),A("div",ky,[l("span",{class:Ze(["num",{"val-empty":!(i.value&&i.value.clock_out_at)}])},W(i.value&&i.value.clock_out_at?un(bn)(i.value.clock_out_at):"未打卡"),3),i.value&&i.value.id?($(),A("button",{key:0,class:"icon-btn",title:"修改下班时间",onClick:h[3]||(h[3]=y=>I("out"))},[Ce(He,{name:"edit",size:13})])):ge("",!0)]))]),l("div",xy,[h[17]||(h[17]=l("label",null,"上班地点",-1)),Me(l("input",{class:"input","onUpdate:modelValue":h[4]||(h[4]=y=>v.value=y),list:g.value,placeholder:"可直接输入",title:"上班地点,可自由输入",onChange:q},null,40,Cy),[[Ne,v.value]]),l("datalist",{id:g.value},[($(!0),A(je,null,et(b.value,y=>($(),A("option",{key:y,value:y},null,8,Sy))),128))],8,$y)]),l("div",Ey,[h[18]||(h[18]=l("label",null,"考勤状态",-1)),l("div",Ty,[j.value?($(),A(je,{key:0},[l("span",{class:Ze(["dot",j.value.status])},null,2),l("span",null,W(j.value.label),1),i.value&&i.value.kind==="makeup"?($(),A("span",Ay,"补卡")):ge("",!0)],64)):($(),A("span",Py,"--"))])])]),i.value&&i.value.note?($(),A("div",Oy,"补卡说明:"+W(i.value.note),1)):ge("",!0),l("div",My,[_.value&&(!i.value||!i.value.clock_in_at)?($(),A("button",{key:0,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ue},"上班打卡",8,Iy)):_.value&&i.value&&i.value.clock_in_at&&!i.value.clock_out_at?($(),A("button",{key:1,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ce},"下班打卡",8,jy)):ge("",!0),!_.value&&(!i.value||!i.value.clock_in_at)?($(),A("button",{key:2,class:"btn btn-sm",onClick:Ee},"补卡")):ge("",!0),H.value?($(),A("button",{key:4,class:"btn btn-sm",disabled:oe.value,onClick:h[5]||(h[5]=y=>G(!1))},"取消休假",8,Ly)):($(),A("button",{key:3,class:"btn btn-sm",disabled:oe.value,onClick:Q},"标记休假",8,Dy))])]),Ae.value?($(),A("div",Ry,[h[24]||(h[24]=l("div",{class:"sec-title"},"补卡登记",-1)),l("div",Ky,[l("div",Ny,[h[20]||(h[20]=l("label",null,"上班时间",-1)),Me(l("input",{type:"time",class:"input","onUpdate:modelValue":h[6]||(h[6]=y=>ye.value=y)},null,512),[[Ne,ye.value]])]),l("div",Fy,[h[21]||(h[21]=l("label",null,"下班时间",-1)),Me(l("input",{type:"time",class:"input","onUpdate:modelValue":h[7]||(h[7]=y=>Pe.value=y)},null,512),[[Ne,Pe.value]])]),l("div",Vy,[h[22]||(h[22]=l("label",null,"上班地点",-1)),Me(l("input",{class:"input",list:g.value,"onUpdate:modelValue":h[8]||(h[8]=y=>de.value=y),placeholder:"可直接输入"},null,8,By),[[Ne,de.value]])]),l("div",Uy,[h[23]||(h[23]=l("label",null,"补卡原因",-1)),Me(l("input",{class:"input","onUpdate:modelValue":h[9]||(h[9]=y=>Ue.value=y),placeholder:"如:外出拜访客户忘记打卡"},null,512),[[Ne,Ue.value]])])]),ke.value?($(),A("div",qy,W(ke.value),1)):ge("",!0),l("div",Hy,[l("button",{class:"btn btn-sm",onClick:h[10]||(h[10]=y=>Ae.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:Le},"保存补卡")])])):ge("",!0),l("div",zy,[l("div",Wy,[l("span",Gy,"工作记录("+W(c.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:De},[Ce(He,{name:"plus",size:14}),h[25]||(h[25]=vt(" 添加记录",-1))])]),!c.value.length&&!r.value?($(),A("div",Yy,"暂无记录")):ge("",!0),($(!0),A(je,null,et(c.value,y=>($(),A("div",{key:y.id,class:"item"},[l("div",Jy,[l("span",Xy,W(un(ta)(y.category)),1),l("span",{class:"item-content",title:"点击编辑",onClick:C=>pe(y)},W(y.content),9,Qy),y.project_id?($(),A("span",Zy,W(x(y.project_id)),1)):ge("",!0),y.minutes?($(),A("span",eg,W(y.minutes)+" 分钟",1)):ge("",!0),h[26]||(h[26]=l("span",{class:"flex1"},null,-1)),l("button",{class:"icon-btn",title:"编辑完整信息",onClick:C=>pe(y)},[Ce(He,{name:"edit",size:14})],8,tg),l("button",{class:Ze(["icon-btn",{active:y.is_milestone===1}]),title:"成果标记",onClick:C=>gt(y)},[Ce(He,{name:"star",size:14})],10,ng),l("button",{class:Ze(["icon-btn",{"active-warn":y.needs_followup===1}]),title:"待跟进",onClick:C=>bt(y)},[Ce(He,{name:"flag",size:14})],10,sg),l("button",{class:"icon-btn",title:"删除",onClick:C=>wt.value=y},[Ce(He,{name:"close",size:14})],8,rg)]),y.takeaway||y.remark?($(),A("div",og,[y.takeaway?($(),A("div",ag,"收获:"+W(y.takeaway),1)):ge("",!0),y.remark?($(),A("div",ig,"备注:"+W(y.remark),1)):ge("",!0)])):ge("",!0)]))),128)),c.value.length?($(),A("div",lg,[vt(" 共 "+W(c.value.length)+" 条事项 ",1),J.value?($(),A(je,{key:0},[vt(" · "+W((J.value/60).toFixed(1))+" 小时",1)],64)):ge("",!0)])):ge("",!0)]),Ce(Dn,{open:!!wt.value,title:"删除确认",message:wt.value?"将删除工作记录「"+wt.value.content+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:h[11]||(h[11]=y=>wt.value=null),onConfirm:It},null,8,["open","message"]),Ce(Dn,{open:S.value,title:"标记休假确认",message:"该日已有打卡记录,标记休假将清空上下班时间。是否继续?","confirm-text":"标记休假",danger:"",onCancel:h[12]||(h[12]=y=>S.value=!1),onConfirm:h[13]||(h[13]=y=>G(!0))},null,8,["open"]),Ce(uy,{open:!!$e.value,item:$e.value,projects:f.value,date:e.date,onCancel:h[14]||(h[14]=y=>$e.value=null),onSave:ct},null,8,["open","item","projects","date"])]))}}),Pd=Vt(ug,[["__scopeId","data-v-4b7234c4"]]),cg={class:"cal-page"},dg={class:"cal-toolbar"},fg={class:"cal-title num"},pg={class:"cal-head"},vg={class:"cal-grid"},mg=["title","onClick"],hg={class:"cal-marks"},yg={key:0,class:"drawer"},gg={class:"drawer-head"},bg={class:"drawer-body"},wg=Rt({__name:"CalendarView",setup(e){const t=O(ot()),n=rt(()=>Number(t.value.slice(0,4))),r=rt(()=>Number(t.value.slice(5,7))-1),o=rt(()=>n.value+" 年 "+(r.value+1)+" 月"),i=["一","二","三","四","五","六","日"],c=rt(()=>{const S=(new Date(n.value,r.value,1).getDay()+6)%7,H=new Date(n.value,r.value+1,0).getDate(),Q=[];for(let G=0;G<S;G++)Q.push({date:"",inMonth:!1,weekend:!1});for(let G=1;G<=H;G++){const re=new Date(n.value,r.value,G),M=re.getDay();Q.push({date:qn(re),inMonth:!0,weekend:M===0||M===6})}return Q}),f=O(new Map),v=ot();async function b(){var E;const q=qn(new Date(n.value,r.value,1)),S=qn(new Date(n.value,r.value+1,0)),H=await Promise.all([ps(),Jr(q,S),Xr(q,S)]),Q=H[0],G=new Map(H[1].map(I=>[I.date,I])),re=H[2],M=new Map;for(const I of c.value){if(!I.inMonth)continue;const ne=cr(G.get(I.date),I.date,Q,I.date===v),Ie=re.filter(Ae=>Ae.date===I.date);M.set(I.date,{status:ne.status,label:ne.label,location:((E=G.get(I.date))==null?void 0:E.location)||"",hasLog:Ie.length>0,hasMilestone:Ie.some(Ae=>Ae.is_milestone===1)})}f.value=M}yt([n,r],b,{immediate:!0}),yt(ur,()=>{b()});function g(q){var S;return((S=f.value.get(q))==null?void 0:S.status)??""}function _(q){const S=f.value.get(q);return S?q+" · "+S.label+(S.location?" · "+S.location:""):q}function T(q){var S;return!!((S=f.value.get(q))!=null&&S.hasLog)}function x(q){var S;return!!((S=f.value.get(q))!=null&&S.hasMilestone)}function j(){t.value=na(t.value,-1)}function J(){t.value=na(t.value,1)}function oe(){t.value=ot()}const ue=O(null);function ce(q,S){S&&(ue.value=q)}return yt(Fi,q=>{q&&(t.value=q,ue.value=q,Fi.value=null)},{immediate:!0}),(q,S)=>($(),A("div",cg,[l("div",dg,[l("button",{class:"icon-btn",onClick:j},[Ce(He,{name:"chevron-left",size:16})]),l("span",fg,W(o.value),1),l("button",{class:"icon-btn",onClick:J},[Ce(He,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",onClick:oe},"回到今天")]),l("div",pg,[($(),A(je,null,et(i,H=>l("span",{key:H,class:"cal-week muted"},W(H),1)),64))]),l("div",vg,[($(!0),A(je,null,et(c.value,(H,Q)=>($(),A("button",{key:Q,class:Ze(["cal-cell",{blank:!H.inMonth,weekend:H.weekend,selected:ue.value===H.date}]),title:H.inMonth?_(H.date):void 0,onClick:G=>ce(H.date,H.inMonth)},[H.inMonth?($(),A(je,{key:0},[l("span",{class:Ze(["daynum num",{today:H.date===un(v)}])},W(Number(H.date.slice(8,10))),3),l("span",hg,[g(H.date)?($(),A("span",{key:0,class:Ze(["dot",g(H.date)])},null,2)):ge("",!0),T(H.date)?($(),St(He,{key:1,name:"check-circle",size:12,class:"mark-log"})):ge("",!0),x(H.date)?($(),St(He,{key:2,name:"star",size:12,class:"mark-star"})):ge("",!0)])],64)):ge("",!0)],10,mg))),128))]),Ce(lr,{name:"drawer"},{default:ms(()=>[ue.value?($(),A("aside",yg,[l("div",gg,[S[1]||(S[1]=l("span",{class:"drawer-title"},"当日详情",-1)),l("button",{class:"icon-btn",onClick:S[0]||(S[0]=H=>ue.value=null)},[Ce(He,{name:"close",size:16})])]),l("div",bg,[Ce(Pd,{date:ue.value},null,8,["date"])])])):ge("",!0)]),_:1})]))}}),_g=Vt(wg,[["__scopeId","data-v-2404dfbe"]]),kg="modulepreload",xg=function(e,t){return new URL(e,t).href},Fu={},Od=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){const c=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),v=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));o=Promise.allSettled(n.map(b=>{if(b=xg(b,r),b in Fu)return;Fu[b]=!0;const g=b.endsWith(".css"),_=g?'[rel="stylesheet"]':"";if(!!r)for(let j=c.length-1;j>=0;j--){const J=c[j];if(J.href===b&&(!g||J.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${_}`))return;const x=document.createElement("link");if(x.rel=g?"stylesheet":kg,g||(x.as="script"),x.crossOrigin="",x.href=b,v&&x.setAttribute("nonce",v),document.head.appendChild(x),g)return new Promise((j,J)=>{x.addEventListener("load",j),x.addEventListener("error",()=>J(new Error(`Unable to preload CSS for ${b}`)))})}))}function i(c){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=c,window.dispatchEvent(f),!f.defaultPrevented)throw c}return o.then(c=>{for(const f of c||[])f.status==="rejected"&&i(f.reason);return t().catch(i)})};/*! Capacitor: https://capacitorjs.com/ - MIT License */const Cg=e=>{const t=new Map;t.set("web",{name:"web"});const n=e.CapacitorPlatforms||{currentPlatform:{name:"web"},platforms:t},r=(i,c)=>{n.platforms.set(i,c)},o=i=>{n.platforms.has(i)&&(n.currentPlatform=n.platforms.get(i))};return n.addPlatform=r,n.setPlatform=o,n},$g=e=>e.CapacitorPlatforms=Cg(e),Md=$g(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});Md.addPlatform;Md.setPlatform;var or;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(or||(or={}));class wi extends Error{constructor(t,n,r){super(t),this.message=t,this.code=n,this.data=r}}const Sg=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"},Eg=e=>{var t,n,r,o,i;const c=e.CapacitorCustomPlatform||null,f=e.Capacitor||{},v=f.Plugins=f.Plugins||{},b=e.CapacitorPlatforms,g=()=>c!==null?c.name:Sg(e),_=((t=b==null?void 0:b.currentPlatform)===null||t===void 0?void 0:t.getPlatform)||g,T=()=>_()!=="web",x=((n=b==null?void 0:b.currentPlatform)===null||n===void 0?void 0:n.isNativePlatform)||T,j=G=>{const re=S.get(G);return!!(re!=null&&re.platforms.has(_())||ue(G))},J=((r=b==null?void 0:b.currentPlatform)===null||r===void 0?void 0:r.isPluginAvailable)||j,oe=G=>{var re;return(re=f.PluginHeaders)===null||re===void 0?void 0:re.find(M=>M.name===G)},ue=((o=b==null?void 0:b.currentPlatform)===null||o===void 0?void 0:o.getPluginHeader)||oe,ce=G=>e.console.error(G),q=(G,re,M)=>Promise.reject(`${M} does not have an implementation of "${re}".`),S=new Map,H=(G,re={})=>{const M=S.get(G);if(M)return console.warn(`Capacitor plugin "${G}" already registered. Cannot register plugins twice.`),M.proxy;const E=_(),I=ue(G);let ne;const Ie=async()=>(!ne&&E in re?ne=typeof re[E]=="function"?ne=await re[E]():ne=re[E]:c!==null&&!ne&&"web"in re&&(ne=typeof re.web=="function"?ne=await re.web():ne=re.web),ne),Ae=(Ee,Le)=>{var $e,pe;if(I){const De=I==null?void 0:I.methods.find(ct=>Le===ct.name);if(De)return De.rtype==="promise"?ct=>f.nativePromise(G,Le.toString(),ct):(ct,gt)=>f.nativeCallback(G,Le.toString(),ct,gt);if(Ee)return($e=Ee[Le])===null||$e===void 0?void 0:$e.bind(Ee)}else{if(Ee)return(pe=Ee[Le])===null||pe===void 0?void 0:pe.bind(Ee);throw new wi(`"${G}" plugin is not implemented on ${E}`,or.Unimplemented)}},ye=Ee=>{let Le;const $e=(...pe)=>{const De=Ie().then(ct=>{const gt=Ae(ct,Ee);if(gt){const bt=gt(...pe);return Le=bt==null?void 0:bt.remove,bt}else throw new wi(`"${G}.${Ee}()" is not implemented on ${E}`,or.Unimplemented)});return Ee==="addListener"&&(De.remove=async()=>Le()),De};return $e.toString=()=>`${Ee.toString()}() { [capacitor code] }`,Object.defineProperty($e,"name",{value:Ee,writable:!1,configurable:!1}),$e},Pe=ye("addListener"),Ue=ye("removeListener"),de=(Ee,Le)=>{const $e=Pe({eventName:Ee},Le),pe=async()=>{const ct=await $e;Ue({eventName:Ee,callbackId:ct},Le)},De=new Promise(ct=>$e.then(()=>ct({remove:pe})));return De.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await pe()},De},ke=new Proxy({},{get(Ee,Le){switch(Le){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return I?de:Pe;case"removeListener":return Ue;default:return ye(Le)}}});return v[G]=ke,S.set(G,{name:G,proxy:ke,platforms:new Set([...Object.keys(re),...I?[E]:[]])}),ke},Q=((i=b==null?void 0:b.currentPlatform)===null||i===void 0?void 0:i.registerPlugin)||H;return f.convertFileSrc||(f.convertFileSrc=G=>G),f.getPlatform=_,f.handleError=ce,f.isNativePlatform=x,f.isPluginAvailable=J,f.pluginMethodNoop=q,f.registerPlugin=Q,f.Exception=wi,f.DEBUG=!!f.DEBUG,f.isLoggingEnabled=!!f.isLoggingEnabled,f.platform=f.getPlatform(),f.isNative=f.isNativePlatform(),f},Tg=e=>e.Capacitor=Eg(e),ar=Tg(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),Id=ar.registerPlugin;ar.Plugins;class jd{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 r=!1;this.listeners[t]||(this.listeners[t]=[],r=!0),this.listeners[t].push(n);const i=this.windowListeners[t];i&&!i.registered&&this.addWindowListener(i),r&&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,r){const o=this.listeners[t];if(!o){if(r){let i=this.retainedEventArguments[t];i||(i=[]),i.push(n),this.retainedEventArguments[t]=i}return}o.forEach(i=>i(n))}hasListeners(t){return!!this.listeners[t].length}registerWindowListener(t,n){this.windowListeners[n]={registered:!1,windowEventName:t,pluginEventName:n,handler:r=>{this.notifyListeners(n,r)}}}unimplemented(t="not implemented"){return new ar.Exception(t,or.Unimplemented)}unavailable(t="not available"){return new ar.Exception(t,or.Unavailable)}async removeListener(t,n){const r=this.listeners[t];if(!r)return;const o=r.indexOf(n);this.listeners[t].splice(o,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(r=>{this.notifyListeners(t,r)}))}}const Vu=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),Bu=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Ag extends jd{async getCookies(){const t=document.cookie,n={};return t.split(";").forEach(r=>{if(r.length<=0)return;let[o,i]=r.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");o=Bu(o).trim(),i=Bu(i).trim(),n[o]=i}),n}async setCookie(t){try{const n=Vu(t.key),r=Vu(t.value),o=`; expires=${(t.expires||"").replace("expires=","")}`,i=(t.path||"/").replace("path=",""),c=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${r||""}${o}; path=${i}; ${c};`}catch(n){return Promise.reject(n)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(n){return Promise.reject(n)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const n of t)document.cookie=n.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}Id("CapacitorCookies",{web:()=>new Ag});const Pg=async e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const o=r.result;t(o.indexOf(",")>=0?o.split(",")[1]:o)},r.onerror=o=>n(o),r.readAsDataURL(e)}),Og=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(o=>o.toLocaleLowerCase()).reduce((o,i,c)=>(o[i]=e[t[c]],o),{})},Mg=(e,t=!0)=>e?Object.entries(e).reduce((r,o)=>{const[i,c]=o;let f,v;return Array.isArray(c)?(v="",c.forEach(b=>{f=t?encodeURIComponent(b):b,v+=`${i}=${f}&`}),v.slice(0,-1)):(f=t?encodeURIComponent(c):c,v=`${i}=${f}`),`${r}&${v}`},"").substr(1):null,Ig=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),o=Og(e.headers)["content-type"]||"";if(typeof e.data=="string")n.body=e.data;else if(o.includes("application/x-www-form-urlencoded")){const i=new URLSearchParams;for(const[c,f]of Object.entries(e.data||{}))i.set(c,f);n.body=i.toString()}else if(o.includes("multipart/form-data")||e.data instanceof FormData){const i=new FormData;if(e.data instanceof FormData)e.data.forEach((f,v)=>{i.append(v,f)});else for(const f of Object.keys(e.data))i.append(f,e.data[f]);n.body=i;const c=new Headers(n.headers);c.delete("content-type"),n.headers=c}else(o.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class jg extends jd{async request(t){const n=Ig(t,t.webFetchExtra),r=Mg(t.params,t.shouldEncodeUrlParams),o=r?`${t.url}?${r}`:t.url,i=await fetch(o,n),c=i.headers.get("content-type")||"";let{responseType:f="text"}=i.ok?t:{};c.includes("application/json")&&(f="json");let v,b;switch(f){case"arraybuffer":case"blob":b=await i.blob(),v=await Pg(b);break;case"json":v=await i.json();break;case"document":case"text":default:v=await i.text()}const g={};return i.headers.forEach((_,T)=>{g[T]=_}),{data:v,headers:g,status:i.status,url:i.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}Id("CapacitorHttp",{web:()=>new jg});async function Sa(e,t){const n=window;if(n.electronAPI&&n.electronAPI.saveFile){const c=await n.electronAPI.saveFile(e,t);return c&&c.saved?c.path:""}if(ar.isNativePlatform()){const{Filesystem:c,Directory:f,Encoding:v}=await Od(async()=>{const{Filesystem:b,Directory:g,Encoding:_}=await import("./index-CJCBehez.js");return{Filesystem:b,Directory:g,Encoding:_}},[],import.meta.url);try{return(await c.writeFile({path:e,data:t,directory:f.Documents,encoding:v.UTF8,recursive:!0})).uri}catch{return(await c.writeFile({path:e,data:t,directory:f.Cache,encoding:v.UTF8,recursive:!0})).uri}}const r=new Blob([t],{type:"text/plain;charset=utf-8"}),o=URL.createObjectURL(r),i=document.createElement("a");return i.href=o,i.download=e,i.click(),window.setTimeout(()=>URL.revokeObjectURL(o),1e4),""}const Dg=Object.freeze(Object.defineProperty({__proto__:null,downloadText:Sa},Symbol.toStringTag,{value:"Module"})),Lg={class:"detail-page"},Rg={class:"detail-toolbar"},Kg=["value"],Ng=["disabled"],Fg={class:"export-row"},Vg={class:"seg"},Bg=["disabled"],Ug=Rt({__name:"TodayView",setup(e){const t=O(ot()),n=rt(()=>t.value===ot());function r(){t.value=Ft(t.value,-1)}function o(){t.value=Ft(t.value,1)}function i(){t.value=ot()}const c=O("day"),f=O(ot()),v=O(ot()),b=O(!1);function g(){if(c.value==="day")return{start:f.value,end:f.value,label:f.value};if(c.value==="week"){const x=Qs(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),j=f.value.slice(5,7),J=new Date(Number(x),Number(j),0).getDate();return{start:x+"-"+j+"-01",end:x+"-"+j+"-"+J,label:x+"-"+j}}return{start:f.value,end:v.value,label:f.value+"_"+v.value}}async function _(){if(!b.value){b.value=!0;try{const{start:x,end:j,label:J}=g(),[oe,ue,ce,q]=await Promise.all([ps(),Jr(x,j),Xr(x,j),rr(!0)]),S=new Map(q.map(M=>[M.id,M.name])),H=["# 工作详情 "+J,""],Q=["周日","周一","周二","周三","周四","周五","周六"];let G=x,re=0;for(;G<=j&&re<400;){const M=ce.filter(I=>I.date===G),E=ue.find(I=>I.date===G);if(E||M.length){if(H.push("## "+G+" "+Q[new Date(G+"T00:00:00").getDay()],""),E&&(E.clock_in_at||E.kind==="makeup")){const I=cr(E,G,oe,G===ot()),ne=[bn(E.clock_in_at),"–",bn(E.clock_out_at),"·",I.label];E.location&&ne.push("· 地点:"+E.location),H.push("考勤:"+ne.join(" "),"")}for(const I of M){const ne=I.project_id&&S.get(I.project_id)||"",Ie="- 【"+ta(I.category)+"】"+I.content+(I.minutes?"("+I.minutes+" 分钟)":"")+(ne?" @"+ne:"");H.push(Ie),I.takeaway&&H.push(" - 收获:"+I.takeaway),I.needs_followup===1&&I.remark?H.push(" - 待跟进:"+I.remark):I.remark&&H.push(" - 备注:"+I.remark)}H.push("")}G=Ft(G,1),re++}await Sa("工作详情_"+J+".md",H.join(`
`)),Ve("已导出 Markdown")}finally{b.value=!1}}}function T(x){const j=x.target.value;j&&(t.value=j)}return(x,j)=>($(),A("div",Lg,[l("div",Rg,[l("button",{class:"icon-btn",title:"前一天",onClick:r},[Ce(He,{name:"chevron-left",size:16})]),l("span",{class:Ze(["date-title num",{"is-today":n.value}])},W(un(ud)(t.value)),3),l("button",{class:"icon-btn",title:"后一天",onClick:o},[Ce(He,{name:"chevron-right",size:16})]),l("input",{type:"date",class:"input w-date",value:t.value,onChange:T},null,40,Kg),l("button",{class:"btn btn-sm",disabled:n.value,onClick:i},"回到今天",8,Ng)]),l("div",Fg,[j[6]||(j[6]=l("span",{class:"muted exp-label"},"导出工作详情",-1)),l("div",Vg,[l("button",{class:Ze(["seg-btn",{active:c.value==="day"}]),onClick:j[0]||(j[0]=J=>c.value="day")},"当日",2),l("button",{class:Ze(["seg-btn",{active:c.value==="week"}]),onClick:j[1]||(j[1]=J=>c.value="week")},"当周",2),l("button",{class:Ze(["seg-btn",{active:c.value==="month"}]),onClick:j[2]||(j[2]=J=>c.value="month")},"当月",2),l("button",{class:Ze(["seg-btn",{active:c.value==="custom"}]),onClick:j[3]||(j[3]=J=>c.value="custom")},"自定义",2)]),c.value!=="day"?Me(($(),A("input",{key:0,class:"input w-exp",type:"date","onUpdate:modelValue":j[4]||(j[4]=J=>f.value=J)},null,512)),[[Ne,f.value]]):ge("",!0),c.value==="custom"?Me(($(),A("input",{key:1,class:"input w-exp",type:"date","onUpdate:modelValue":j[5]||(j[5]=J=>v.value=J)},null,512)),[[Ne,v.value]]):ge("",!0),l("button",{class:"btn btn-sm",disabled:b.value,onClick:_},"导出 Markdown",8,Bg)]),Ce(Pd,{date:t.value},null,8,["date"])]))}}),qg=Vt(Ug,[["__scopeId","data-v-799fe8de"]]),Hg={class:"plan-page"},zg={class:"card sec plan-head"},Wg={class:"nav-row"},Gg={class:"date-box"},Yg={class:"date-main num"},Jg={class:"muted date-sub num"},Xg={class:"muted sum-line"},Qg={class:"goals-sec"},Zg={class:"goals-head"},eb={key:0,class:"muted goals-empty"},tb={class:"goal-main"},nb={class:"goal-line"},sb={class:"tag"},rb={class:"goal-name"},ob={class:"muted num goal-range"},ab={class:"goal-bar"},ib={class:"muted num goal-meta"},lb={class:"goal-ops"},ub=["onClick"],cb=["onClick"],db={class:"plan-list"},fb={key:0,class:"card sec empty muted"},pb={class:"pi-time num"},vb={class:"muted"},mb={class:"pi-main"},hb={class:"pi-title"},yb={class:"tag"},gb={key:0,class:"tag tag-goal"},bb={key:1,class:"state-done"},wb={key:2,class:"state-skip"},_b={key:0,class:"muted pi-note"},kb={class:"muted pi-meta num"},xb={key:0,class:"timer-live"},Cb={class:"pi-ops"},$b=["onClick"],Sb=["onClick"],Eb=["onClick"],Tb=["onClick"],Ab=["onClick"],Pb=["onClick"],Ob={class:"dialog",role:"dialog","aria-label":"计划"},Mb={class:"dialog-head"},Ib={class:"dialog-title"},jb={class:"dialog-body"},Db={class:"form-row"},Lb={class:"form-row"},Rb=["value"],Kb={class:"form-row two"},Nb={class:"form-row"},Fb={key:0,class:"form-error"},Vb={class:"dialog-btns"},Bb={class:"dialog",role:"dialog","aria-label":"长期计划"},Ub={class:"dialog-head"},qb={class:"dialog-title"},Hb={class:"dialog-body"},zb={class:"form-row"},Wb={class:"form-row"},Gb=["value"],Yb={class:"form-row two"},Jb={class:"form-row"},Xb={key:0,class:"form-error"},Qb={class:"dialog-btns"},Zb=Rt({__name:"PlanView",setup(e){const t=O([]),n=O({}),r=O(!1),o=O(null),i=O(""),c=O("学习"),f=O(ot()),v=O(Ft(ot(),6)),b=O(""),g=O(""),_=O(null);function T(){o.value=null,i.value="",c.value="学习",f.value=ot(),v.value=Ft(ot(),6),b.value="",g.value="",r.value=!0}function x(y){o.value=y,i.value=y.title,c.value=y.kind,f.value=y.start_date,v.value=y.end_date,b.value=y.note||"",g.value="",r.value=!0}async function j(){if(!i.value.trim()){g.value="请填写计划名称";return}if(v.value<f.value){g.value="结束日期不能早于开始日期";return}o.value?(await Eh(o.value.id,{title:i.value.trim(),kind:c.value,note:b.value}),Ve("长期计划已更新")):(await Sh({title:i.value,kind:c.value,start_date:f.value,end_date:v.value,note:b.value}),Ve("长期计划已创建,已生成每日任务")),r.value=!1,await Q()}async function J(){_.value&&(await Th(_.value.id),Ve("已删除长期计划及其每日任务"),_.value=null,await Q())}const oe=O(ot()),ue=O([]),ce=O(!0),q=O(Date.now());let S=null;const H=rt(()=>oe.value===ot());async function Q(){ce.value=!0;const[y,C,R]=await Promise.all([hh(oe.value),$h(),Ch()]);ue.value=y,t.value=C;const F={};for(const le of R)F[String(le.goalId)]={done:le.done,total:le.total};n.value=F,ce.value=!1}yt(oe,Q),yt(ur,Q),vn(()=>{Q(),S=window.setInterval(()=>{q.value=Date.now()},3e4)}),Wn(()=>{S&&window.clearInterval(S)});function G(){oe.value=Ft(oe.value,-1)}function re(){oe.value=Ft(oe.value,1)}function M(){oe.value=ot()}const E=rt(()=>{const y=ue.value.length,C=ue.value.filter(ee=>ee.status==="done").length,R=ue.value.reduce((ee,P)=>ee+I(P),0),F=ue.value.reduce((ee,P)=>ee+(P.actual_minutes||0),0),le=Ie.value;if(le){const ee=ue.value.find(P=>P.id===le);ee&&F+elapsedMinutes(ee)}return{total:y,done:C,plannedMin:R,actualMin:F}});function I(y){const[C,R]=y.start_time.split(":").map(Number),[F,le]=y.end_time.split(":").map(Number);return Math.max(0,F*60+le-(C*60+R))}function ne(y){return y<60?y+" 分钟":Math.floor(y/60)+" 小时 "+y%60+" 分"}const Ie=rt(()=>{const y=ue.value.find(C=>!!C.timer_started_at);return y?y.id:null});function Ae(y){if(!y.timer_started_at)return y.actual_minutes||0;const C=Math.max(0,Math.round((q.value-new Date(y.timer_started_at).getTime())/6e4));return(y.actual_minutes||0)+C}async function ye(y){y.timer_started_at?(await yl(y.id),Ve("已停止计时:"+y.title)):(await _h(y.id),Ve("开始计时:"+y.title)),await Q()}async function Pe(y,C){await wh(y.id,C),await Q()}const Ue=O(!1),de=O(null),ke=O(""),Ee=O("学习"),Le=O("09:00"),$e=O("10:00"),pe=O(""),De=O(""),ct=["学习","健身","自律","工作","阅读","其他"];function gt(){de.value=null,ke.value="",Ee.value="学习",Le.value="09:00",$e.value="10:00",pe.value="",De.value="",Ue.value=!0}function bt(y){de.value=y.id,ke.value=y.title,Ee.value=y.kind,Le.value=y.start_time,$e.value=y.end_time,pe.value=y.note||"",De.value="",Ue.value=!0}async function wt(){if(!ke.value.trim()){De.value="请填写计划内容";return}if($e.value<=Le.value){De.value="结束时间需晚于开始时间";return}de.value?(await gh(de.value,{title:ke.value.trim(),kind:Ee.value,start_time:Le.value,end_time:$e.value,note:pe.value}),Ve("计划已更新")):(await yh({date:oe.value,start_time:Le.value,end_time:$e.value,title:ke.value,kind:Ee.value,note:pe.value}),Ve("计划已添加")),Ue.value=!1,await Q()}async function It(y){await bh(y.id),Ve("已删除"),await Q()}const fe=["周日","周一","周二","周三","周四","周五","周六"];function h(y){return fe[Ks(y).getDay()]}return(y,C)=>($(),A("div",Hg,[l("div",zg,[l("div",Wg,[l("button",{class:"icon-btn",onClick:G},[Ce(He,{name:"chevron-left",size:16})]),l("div",Gg,[l("span",Yg,W(oe.value.slice(5))+" "+W(h(oe.value)),1),l("span",Jg,W(oe.value),1)]),l("button",{class:"icon-btn",onClick:re},[Ce(He,{name:"chevron-right",size:16})]),l("button",{class:Ze(["btn btn-sm",{"btn-primary":!H.value}]),onClick:M},"今天",2),C[18]||(C[18]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-primary btn-sm",onClick:gt},[Ce(He,{name:"plus",size:14}),C[17]||(C[17]=vt(" 添加计划",-1))])]),l("div",Xg,[vt(" 共 "+W(E.value.total)+" 项 · 完成 "+W(E.value.done)+" 项 · 计划 "+W(ne(E.value.plannedMin))+" · 实际投入 "+W(ne(E.value.actualMin))+" ",1),Ie.value?($(),A(je,{key:0},[C[19]||(C[19]=vt(" · ",-1)),C[20]||(C[20]=l("span",{class:"timer-live"},"计时中",-1))],64)):ge("",!0)])]),l("div",Qg,[l("div",Zg,[C[22]||(C[22]=l("span",{class:"goals-title"},"长期计划",-1)),l("button",{class:"btn btn-sm",onClick:T},[Ce(He,{name:"plus",size:14}),C[21]||(C[21]=vt(" 新建长期计划",-1))])]),t.value.length?ge("",!0):($(),A("div",eb,"暂无长期计划。可以创建一个跨越多天的目标(如「产品文档学习」),系统会自动生成每天的打卡任务。")),($(!0),A(je,null,et(t.value,R=>($(),A("div",{key:R.id,class:"card sec goal-card"},[l("div",tb,[l("div",nb,[l("span",sb,W(R.kind),1),l("span",rb,W(R.title),1),l("span",ob,W(R.start_date.slice(5))+" ~ "+W(R.end_date.slice(5)),1)]),l("div",ab,[l("span",{class:"goal-bar-fill",style:Un({width:(n.value[String(R.id)]?Math.round(n.value[String(R.id)].done/Math.max(1,n.value[String(R.id)].total)*100):0)+"%"})},null,4)]),l("div",ib,[vt(W(n.value[String(R.id)]?n.value[String(R.id)].done+"/"+n.value[String(R.id)].total+" 天已完成":"0/"+(n.value[String(R.id)]?n.value[String(R.id)].total:0)+" 天")+" ",1),R.note?($(),A(je,{key:0},[vt(" · "+W(R.note),1)],64)):ge("",!0)])]),l("div",lb,[l("button",{class:"icon-btn",title:"编辑",onClick:F=>x(R)},[Ce(He,{name:"edit",size:14})],8,ub),l("button",{class:"icon-btn",title:"删除",onClick:F=>_.value=R},[Ce(He,{name:"close",size:14})],8,cb)])]))),128))]),l("div",db,[!ce.value&&!ue.value.length?($(),A("div",fb," 今天还没有计划,点右上角「添加计划」开始规划:学习、健身、自律…… ")):ge("",!0),($(!0),A(je,null,et(ue.value,R=>($(),A("div",{key:R.id,class:Ze(["card sec plan-item",{done:R.status==="done",skip:R.status==="skip",running:!!R.timer_started_at}])},[l("div",pb,[vt(W(R.start_time),1),l("span",vb," - "+W(R.end_time),1)]),l("div",mb,[l("div",hb,[l("span",yb,W(R.kind),1),R.goal_id?($(),A("span",gb,"长期")):ge("",!0),l("span",{class:Ze(["pi-text",{strike:R.status==="done"}])},W(R.title),3),R.status==="done"?($(),A("span",bb,"已完成")):R.status==="skip"?($(),A("span",wb,"已跳过")):ge("",!0)]),R.note?($(),A("div",_b,W(R.note),1)):ge("",!0),l("div",kb,[R.timer_started_at?($(),A("span",xb,"计时中 · 已 "+W(Ae(R))+" 分钟",1)):R.actual_minutes>0?($(),A(je,{key:1},[vt("实际投入 "+W(R.actual_minutes)+" 分钟",1)],64)):ge("",!0)])]),l("div",Cb,[R.status!=="done"?($(),A("button",{key:0,class:Ze(["btn btn-xs",{"timer-on":!!R.timer_started_at}]),onClick:F=>ye(R)},W(R.timer_started_at?"停止计时":"计时"),11,$b)):ge("",!0),R.status!=="done"?($(),A("button",{key:1,class:"btn btn-xs",onClick:F=>Pe(R,"done")},"完成",8,Sb)):ge("",!0),R.status==="todo"?($(),A("button",{key:2,class:"btn btn-xs",onClick:F=>Pe(R,"skip")},"跳过",8,Eb)):ge("",!0),R.status!=="todo"?($(),A("button",{key:3,class:"btn btn-xs",onClick:F=>Pe(R,"todo")},"恢复",8,Tb)):ge("",!0),l("button",{class:"icon-btn",title:"编辑",onClick:F=>bt(R)},[Ce(He,{name:"edit",size:14})],8,Ab),l("button",{class:"icon-btn",title:"删除",onClick:F=>It(R)},[Ce(He,{name:"close",size:14})],8,Pb)])],2))),128))]),($(),St(Hn,{to:"body"},[Ue.value?($(),A("div",{key:0,class:"fixed-mask",onClick:C[7]||(C[7]=zt(R=>Ue.value=!1,["self"]))},[l("div",Ob,[l("div",Mb,[l("span",Ib,W(de.value?"编辑计划":"添加计划"),1),l("button",{class:"icon-btn",onClick:C[0]||(C[0]=R=>Ue.value=!1)},[Ce(He,{name:"close",size:16})])]),l("div",jb,[l("div",Db,[C[23]||(C[23]=l("label",null,"计划内容(学什么、做什么)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":C[1]||(C[1]=R=>ke.value=R),placeholder:"如:产品文档第三章 / 晨跑 5 公里",onKeydown:Mt(wt,["enter"])},null,544),[[Ne,ke.value]])]),l("div",Lb,[C[24]||(C[24]=l("label",null,"类别",-1)),Me(l("select",{class:"select","onUpdate:modelValue":C[2]||(C[2]=R=>Ee.value=R)},[($(),A(je,null,et(ct,R=>l("option",{key:R,value:R},W(R),9,Rb)),64))],512),[[fs,Ee.value]])]),l("div",Kb,[l("div",null,[C[25]||(C[25]=l("label",null,"开始时间",-1)),Me(l("input",{class:"input",type:"time","onUpdate:modelValue":C[3]||(C[3]=R=>Le.value=R)},null,512),[[Ne,Le.value]])]),l("div",null,[C[26]||(C[26]=l("label",null,"结束时间",-1)),Me(l("input",{class:"input",type:"time","onUpdate:modelValue":C[4]||(C[4]=R=>$e.value=R)},null,512),[[Ne,$e.value]])])]),l("div",Nb,[C[27]||(C[27]=l("label",null,"备注(选填)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":C[5]||(C[5]=R=>pe.value=R),placeholder:"目标、资料、提醒等",onKeydown:Mt(wt,["enter"])},null,544),[[Ne,pe.value]])]),De.value?($(),A("div",Fb,W(De.value),1)):ge("",!0)]),l("div",Vb,[l("button",{class:"btn btn-sm",onClick:C[6]||(C[6]=R=>Ue.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:wt},W(de.value?"保存":"添加"),1)])])])):ge("",!0)])),($(),St(Hn,{to:"body"},[r.value?($(),A("div",{key:0,class:"fixed-mask",onClick:C[15]||(C[15]=zt(R=>r.value=!1,["self"]))},[l("div",Bb,[l("div",Ub,[l("span",qb,W(o.value?"编辑长期计划":"新建长期计划"),1),l("button",{class:"icon-btn",onClick:C[8]||(C[8]=R=>r.value=!1)},[Ce(He,{name:"close",size:16})])]),l("div",Hb,[l("div",zb,[C[28]||(C[28]=l("label",null,"计划名称(落实为每天一条任务)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":C[9]||(C[9]=R=>i.value=R),placeholder:"如:产品文档学习 / 健身月计划"},null,512),[[Ne,i.value]])]),l("div",Wb,[C[29]||(C[29]=l("label",null,"类别",-1)),Me(l("select",{class:"select","onUpdate:modelValue":C[10]||(C[10]=R=>c.value=R)},[($(),A(je,null,et(ct,R=>l("option",{key:R,value:R},W(R),9,Gb)),64))],512),[[fs,c.value]])]),l("div",Yb,[l("div",null,[C[30]||(C[30]=l("label",null,"开始日期",-1)),Me(l("input",{class:"input",type:"date","onUpdate:modelValue":C[11]||(C[11]=R=>f.value=R)},null,512),[[Ne,f.value]])]),l("div",null,[C[31]||(C[31]=l("label",null,"结束日期",-1)),Me(l("input",{class:"input",type:"date","onUpdate:modelValue":C[12]||(C[12]=R=>v.value=R)},null,512),[[Ne,v.value]])])]),l("div",Jb,[C[32]||(C[32]=l("label",null,"备注(选填)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":C[13]||(C[13]=R=>b.value=R)},null,512),[[Ne,b.value]])]),g.value?($(),A("div",Xb,W(g.value),1)):ge("",!0),C[33]||(C[33]=l("div",{class:"muted goal-hint"},"创建后区间内每一天都会生成一条任务,可在每日安排中逐日打卡与计时。",-1))]),l("div",Qb,[l("button",{class:"btn btn-sm",onClick:C[14]||(C[14]=R=>r.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:j},W(o.value?"保存":"创建"),1)])])])):ge("",!0)])),Ce(Dn,{open:!!_.value,title:"删除长期计划",message:_.value?"将删除「"+_.value.title+"」及其全部每日任务(含已完成记录),不可恢复。":"","confirm-text":"删除",danger:"",onCancel:C[16]||(C[16]=R=>_.value=null),onConfirm:J},null,8,["open","message"])]))}}),ew=Vt(Zb,[["__scopeId","data-v-c917531a"]]),tw={class:"stats"},nw={class:"cards"},sw={class:"card stat-card"},rw={class:"stat-num num"},ow={class:"card stat-card"},aw={class:"stat-num num"},iw={class:"card stat-card"},lw={class:"stat-num num"},uw={class:"card stat-card"},cw={class:"stat-num num"},dw={class:"card section"},fw={class:"heat"},pw=["title"],vw={class:"two-col"},mw={class:"card section"},hw={class:"bar-label"},yw={class:"bar-track"},gw={class:"muted num bar-num"},bw={key:0,class:"muted"},ww={class:"card section"},_w={class:"bar-label"},kw={class:"bar-track"},xw={class:"muted num bar-num"},Cw={key:0,class:"muted"},$w={class:"card section"},Sw={class:"bar-label loc-label"},Ew={class:"bar-track"},Tw={class:"muted num bar-num"},Aw={key:0,class:"muted"},Pw=Rt({__name:"StatsView",setup(e){const t=O({attendDays:0,totalHours:"0",itemCount:0,streak:0}),n=O([]),r=O([]),o=O([]),i=O([]);async function c(){const b=ot(),g="2000-01-01",_=await Promise.all([ps(),Jr(g,b),Xr(g,b),rr(!0)]),T=_[0],x=_[1],j=_[2],J=_[3],oe=x.filter(ye=>ye.clock_in_at||ye.kind==="makeup");let ue=0;for(const ye of oe){const Pe=cr(ye,ye.date,T,ye.date===b);ue+=Pe.workedMinutes??0}const ce=new Set(j.map(ye=>ye.date));let q=0,S=b;for(ce.has(S)||(S=Ft(b,-1));ce.has(S);)q++,S=Ft(S,-1);t.value={attendDays:oe.length,totalHours:(ue/60).toFixed(1),itemCount:j.length,streak:q};const H=new Map;for(const ye of oe){const Pe=ye.location||"未记录";H.set(Pe,(H.get(Pe)||0)+1)}i.value=Array.from(H.entries()).map(ye=>({name:ye[0],count:ye[1],percent:Math.round(ye[1]/(oe.length||1)*100)})).sort((ye,Pe)=>Pe.count-ye.count);const Q=j.length||1,G=await Qr(),re=new Map;for(const ye of j)re.set(ye.category,(re.get(ye.category)||0)+1);const M=new Set(G);for(const ye of re.keys())M.has(ye)||G.push(ye);r.value=G.map(ye=>{const Pe=re.get(ye)||0;return{key:ye,label:ye,count:Pe,percent:Math.round(Pe/Q*100)}}).filter(ye=>ye.count>0).sort((ye,Pe)=>Pe.count-ye.count);const E=new Map(J.map(ye=>[ye.id,ye.name])),I=new Map;for(const ye of j){const Pe=ye.project_id?E.get(ye.project_id)||"已删除项目":"无项目";I.set(Pe,(I.get(Pe)||0)+1)}o.value=Array.from(I.entries()).map(ye=>({name:ye[0],count:ye[1],percent:Math.round(ye[1]/Q*100)})).sort((ye,Pe)=>Pe.count-ye.count);const ne=new Map;for(const ye of j)ne.set(ye.date,(ne.get(ye.date)||0)+1);const Ie=Qs(b),Ae=[];for(let ye=11;ye>=0;ye--){const Pe=Ft(Ie,-7*ye),Ue=[];for(let de=0;de<7;de++){const ke=Ft(Pe,de);Ue.push({date:ke,count:ne.get(ke)||0})}Ae.push(Ue)}n.value=Ae}vn(async()=>{await c()}),yt(ur,()=>{c()});function f(b){return b===0?0:b===1?1:b<=3?2:b<=5?3:4}function v(b,g){return b+" · "+(g?g+" 条":"无记录")}return(b,g)=>($(),A("div",tw,[l("div",nw,[l("div",sw,[g[0]||(g[0]=l("div",{class:"muted"},"出勤天数",-1)),l("div",rw,W(t.value.attendDays),1)]),l("div",ow,[g[1]||(g[1]=l("div",{class:"muted"},"累计工时(小时)",-1)),l("div",aw,W(t.value.totalHours),1)]),l("div",iw,[g[2]||(g[2]=l("div",{class:"muted"},"记录条数",-1)),l("div",lw,W(t.value.itemCount),1)]),l("div",uw,[g[3]||(g[3]=l("div",{class:"muted"},"连续记录(天)",-1)),l("div",cw,W(t.value.streak),1)])]),l("div",dw,[g[4]||(g[4]=l("div",{class:"section-title"},"记录热力图(近 12 周)",-1)),l("div",fw,[($(!0),A(je,null,et(n.value,(_,T)=>($(),A("div",{key:T,class:"heat-col"},[($(!0),A(je,null,et(_,x=>($(),A("span",{key:x.date,class:Ze(["heat-cell","lv"+f(x.count)]),title:v(x.date,x.count)},null,10,pw))),128))]))),128))]),g[5]||(g[5]=Hp('<div class="heat-legend muted" data-v-f8410651><span data-v-f8410651>少</span><span class="heat-cell lv0" data-v-f8410651></span><span class="heat-cell lv1" data-v-f8410651></span><span class="heat-cell lv2" data-v-f8410651></span><span class="heat-cell lv3" data-v-f8410651></span><span class="heat-cell lv4" data-v-f8410651></span><span data-v-f8410651>多</span></div>',1))]),l("div",vw,[l("div",mw,[g[6]||(g[6]=l("div",{class:"section-title"},"分类分布",-1)),($(!0),A(je,null,et(r.value,_=>($(),A("div",{key:_.key,class:"bar-row"},[l("span",hw,W(_.label),1),l("span",yw,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",gw,W(_.count)+" 条 · "+W(_.percent)+"%",1)]))),128)),r.value.length?ge("",!0):($(),A("div",bw,"暂无数据"))]),l("div",ww,[g[7]||(g[7]=l("div",{class:"section-title"},"项目投入",-1)),($(!0),A(je,null,et(o.value,_=>($(),A("div",{key:_.name,class:"bar-row"},[l("span",_w,W(_.name),1),l("span",kw,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",xw,W(_.count)+" 条 · "+W(_.percent)+"%",1)]))),128)),o.value.length?ge("",!0):($(),A("div",Cw,"暂无数据"))])]),l("div",$w,[g[8]||(g[8]=l("div",{class:"section-title"},"地点分布(按出勤天)",-1)),($(!0),A(je,null,et(i.value,_=>($(),A("div",{key:_.name,class:"bar-row"},[l("span",Sw,W(_.name),1),l("span",Ew,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",Tw,W(_.count)+" 天 · "+W(_.percent)+"%",1)]))),128)),i.value.length?ge("",!0):($(),A("div",Aw,"暂无数据"))])]))}}),Ow=Vt(Pw,[["__scopeId","data-v-f8410651"]]);async function Mw(e,t,n){const r=ot(),o=await Promise.all([ps(),Jr(e,t),Xr(e,t),rr(!0),mh(e,t),Qr()]),i=o[0],c=o[1],f=o[2],v=o[3],b=o[4],g=o[5];let _=0,T=0,x=0;for(const I of c){(I.clock_in_at||I.kind==="makeup")&&_++,I.kind==="makeup"&&x++;const ne=cr(I,I.date,i,I.date===r);T+=ne.workedMinutes??0}const j=new Map;for(const I of c){if(!(I.clock_in_at||I.kind==="makeup"))continue;const ne=I.location||"未记录";j.set(ne,(j.get(ne)||0)+1)}const J=Array.from(j.entries()).map(I=>({name:I[0],count:I[1]})).sort((I,ne)=>ne.count-I.count),oe=f.length||1,ue=new Map;for(const I of f)ue.set(I.category,(ue.get(I.category)||0)+1);const ce=new Set(g);for(const I of ue.keys())ce.has(I)||g.push(I);const q=g.map(I=>{const ne=ue.get(I)||0;return{key:I,label:I,count:ne,percent:Math.round(ne/oe*100)}}).filter(I=>I.count>0).sort((I,ne)=>ne.count-I.count),S=new Map(v.map(I=>[I.id,I.name])),H=new Map;for(const I of f){const ne=I.project_id?S.get(I.project_id)||"已删除项目":"无项目";H.set(ne,(H.get(ne)||0)+1)}const Q=Array.from(H.entries()).map(I=>({name:I[0],count:I[1]})).sort((I,ne)=>ne.count-I.count),G=f.filter(I=>I.is_milestone===1).map(I=>({date:I.date,content:I.content})),re=f.filter(I=>I.needs_followup===1).map(I=>({date:I.date,content:I.content,remark:I.remark||""})),M=f.filter(I=>!!I.takeaway).map(I=>({date:I.date,text:I.takeaway})),E=b.map(I=>({weekStart:I.week_start,highlights:I.highlights||"",challenges:I.challenges||"",plan_next:I.plan_next||""}));return{range:{start:e,end:t,label:n},attendDays:_,totalHours:(T/60).toFixed(1),makeupCount:x,leaveCount:c.filter(I=>I.kind==="leave").length,itemCount:f.length,categoryStats:q,projectStats:Q,locationStats:J,milestones:G,followups:re,takeaways:M,weekNotes:E}}function Iw(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(r=>r.name!=="未记录");n.length&&t.push("其中:"+n.map(r=>r.name+" "+r.count+" 天").join(",")),t.push(""),t.push("## 二、工作内容分布"),t.push(""),t.push(e.categoryStats.length?e.categoryStats.map(r=>r.label+" "+r.percent+"%("+r.count+" 条)").join(","):"(无记录)"),t.push(""),t.push("## 三、项目投入"),t.push(""),t.push(e.projectStats.length?e.projectStats.map(r=>r.name+" "+r.count+" 条").join(","):"(无记录)"),t.push(""),t.push("## 四、主要成果"),t.push(""),e.milestones.length?e.milestones.forEach((r,o)=>t.push(o+1+". 【成果】"+r.content+"("+r.date+")")):t.push("(无)"),t.push(""),t.push("## 五、待跟进事项"),t.push(""),e.followups.length?e.followups.forEach(r=>t.push("- 【待跟进】"+r.content+(r.remark?"("+r.date+" 备注:"+r.remark+")":"("+r.date+")"))):t.push("(无)"),t.push(""),t.push("## 六、学习与成长"),t.push(""),e.takeaways.length?e.takeaways.forEach(r=>t.push("- "+r.text+"("+r.date+")")):t.push("(无)");for(const r of e.weekNotes)t.push(""),t.push("### 周记("+r.weekStart+" 起)"),t.push(""),t.push("- 本周亮点:"+(r.highlights||"(无)")),t.push("- 踩的坑:"+(r.challenges||"(无)")),t.push("- 下周计划:"+(r.plan_next||"(无)"));return t.push(""),t.join(`
`)}async function zi(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 jw(e){const t=await Promise.all([xt("ai_base_url",""),xt("ai_api_key",""),xt("ai_model","")]),n=t[0].trim().replace(/\/+$/,""),r=t[1].trim(),o=t[2].trim();if(!n||!o)throw new Error("请先在设置页配置 AI 接口地址与模型名称");const i=n+"/chat/completions",c={"Content-Type":"application/json"};r&&(c.Authorization="Bearer "+r);const v=JSON.stringify({model:o,messages:[{role:"system",content:"你是一名严谨的中文助理。请将用户提供的工作总结 Markdown 草稿润色为通顺、专业、简洁的工作总结。要求:保留原有章节结构与全部事实数据(数字、日期、条目),不得虚构或遗漏内容,只输出 Markdown 正文。"},{role:"user",content:e}],temperature:.3});let b;try{b=await fetch(i,{method:"POST",headers:c,body:v})}catch{throw new Error("无法访问 AI 接口:请检查地址是否正确、服务端是否允许浏览器跨域访问")}if(!b.ok){let T="接口返回 "+b.status;try{const x=await b.json();x&&x.error&&x.error.message&&(T+=":"+x.error.message)}catch{}throw new Error(T)}const g=await b.json(),_=g&&g.choices&&g.choices[0]&&g.choices[0].message&&g.choices[0].message.content;if(!_)throw new Error("接口未返回内容");return String(_)}const Dw={class:"report"},Lw={class:"report-toolbar"},Rw={class:"seg"},Kw=["onClick"],Nw=["disabled"],Fw=["disabled"],Vw={key:0,class:"ai-error"},Bw={class:"report-grid"},Uw={class:"report-left"},qw={class:"card section"},Hw={class:"section-title"},zw={class:"muted note-saved"},Ww={class:"card section"},Gw={class:"report-right"},Yw={key:0,class:"card section"},Jw={class:"sum-row"},Xw={class:"num"},Qw={class:"sum-row"},Zw={class:"num"},e_={class:"sum-row"},t_={class:"num"},n_={class:"sum-row"},s_={class:"num"},r_={class:"sum-row"},o_={class:"num"},a_={class:"muted"},i_={class:"num"},l_={key:0,class:"muted sum-empty"},u_={class:"muted"},c_={key:1,class:"muted sum-empty"},d_={class:"muted"},f_={key:2,class:"muted sum-empty"},p_={class:"muted"},v_={key:3,class:"muted sum-empty"},m_=Rt({__name:"ReportView",setup(e){const t=[{key:"week",label:"本周"},{key:"month",label:"本月"},{key:"all",label:"全部"},{key:"custom",label:"自定义"}],n=O("week"),r=O(Qs(ot())),o=O(ot()),i=O(null),c=O(""),f=O(!1),v=O(!1),b=O(null),g=O(""),_=O(Qs(ot())),T=O(""),x=O(""),j=O(""),J=O(!1);async function oe(){const re=await hl(_.value);T.value=(re==null?void 0:re.highlights)||"",x.value=(re==null?void 0:re.challenges)||"",j.value=(re==null?void 0:re.plan_next)||"",J.value=!1}async function ue(){await vh(_.value,{highlights:T.value.trim()||null,challenges:x.value.trim()||null,plan_next:j.value.trim()||null}),J.value=!0,await q()}function ce(re){const M=ot();if(re==="week"){const E=Qs(M);return{start:E,end:Ft(E,6),label:"本周"}}if(re==="month"){const E=M.slice(0,7);return{start:E+"-01",end:M,label:E+" 本月"}}return re==="all"?{start:"2000-01-01",end:M,label:"全部实习期"}:{start:r.value,end:o.value,label:r.value+" ~ "+o.value}}async function q(){f.value=!0;const re=ce(n.value),M=await Mw(re.start,re.end,re.label);i.value=M,c.value=Iw(M),f.value=!1}yt(n,q),yt([r,o],()=>{n.value==="custom"&&q()}),vn(async()=>{await oe(),await q()});async function S(){const re=ot().replace(/-/g,""),M=await Sa("实习工作总结_"+re+".md",c.value);Ve(M?"总结已导出到:"+M:"总结已导出到系统下载目录")}async function H(){await zi(c.value),Ve("总结已复制到剪贴板")}async function Q(){if(v.value)return;g.value="";const re=c.value.trim();if(!re){g.value="当前草稿为空,无法润色";return}v.value=!0;try{b.value=c.value,c.value=await jw(re),Ve("AI 润色完成")}catch(M){b.value=null,g.value=M instanceof Error?M.message:"润色失败"}v.value=!1}function G(){b.value!==null&&(c.value=b.value),b.value=null}return(re,M)=>($(),A("div",Dw,[l("div",Lw,[l("div",Rw,[($(),A(je,null,et(t,E=>l("button",{key:E.key,class:Ze(["seg-btn",{active:n.value===E.key}]),onClick:I=>n.value=E.key},W(E.label),11,Kw)),64))]),n.value==="custom"?($(),A(je,{key:0},[Me(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":M[0]||(M[0]=E=>r.value=E)},null,512),[[Ne,r.value]]),M[6]||(M[6]=l("span",{class:"muted"},"至",-1)),Me(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":M[1]||(M[1]=E=>o.value=E)},null,512),[[Ne,o.value]])],64)):ge("",!0),M[10]||(M[10]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",disabled:v.value,onClick:Q},[Ce(He,{name:"edit",size:14}),M[7]||(M[7]=vt("AI 润色 ",-1))],8,Nw),b.value!==null?($(),A("button",{key:1,class:"btn btn-sm",onClick:G},"还原润色前")):ge("",!0),l("button",{class:"btn btn-sm",disabled:f.value,onClick:q},[Ce(He,{name:"edit",size:14}),M[8]||(M[8]=vt("重新生成 ",-1))],8,Fw),l("button",{class:"btn btn-sm",onClick:H},"复制"),l("button",{class:"btn btn-primary btn-sm",onClick:S},[Ce(He,{name:"export",size:14}),M[9]||(M[9]=vt("导出 Markdown ",-1))])]),g.value?($(),A("div",Vw,W(g.value),1)):ge("",!0),l("div",Bw,[l("div",Uw,[l("div",qw,[l("div",Hw,"本周周记("+W(_.value)+" 起)",1),M[11]||(M[11]=l("label",{class:"note-label muted"},"本周亮点",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":M[2]||(M[2]=E=>T.value=E),placeholder:"本周最有价值的一件事",onBlur:ue},null,544),[[Ne,T.value]]),M[12]||(M[12]=l("label",{class:"note-label muted"},"踩的坑",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":M[3]||(M[3]=E=>x.value=E),placeholder:"遇到的问题与教训",onBlur:ue},null,544),[[Ne,x.value]]),M[13]||(M[13]=l("label",{class:"note-label muted"},"下周计划",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":M[4]||(M[4]=E=>j.value=E),placeholder:"下周准备做什么",onBlur:ue},null,544),[[Ne,j.value]]),l("div",zw,W(J.value?"已保存":"失焦自动保存"),1)]),l("div",Ww,[M[14]||(M[14]=l("div",{class:"section-title"},"总结草稿(可编辑)",-1)),Me(l("textarea",{class:"textarea md-editor","onUpdate:modelValue":M[5]||(M[5]=E=>c.value=E),spellcheck:"false"},null,512),[[Ne,c.value]])])]),l("div",Gw,[i.value?($(),A("div",Yw,[M[20]||(M[20]=l("div",{class:"section-title"},"数据摘要",-1)),l("div",Jw,[M[15]||(M[15]=l("span",{class:"muted"},"出勤",-1)),l("span",Xw,W(i.value.attendDays)+" 天",1)]),l("div",Qw,[M[16]||(M[16]=l("span",{class:"muted"},"工时",-1)),l("span",Zw,W(i.value.totalHours)+" 小时",1)]),l("div",e_,[M[17]||(M[17]=l("span",{class:"muted"},"补卡",-1)),l("span",t_,W(i.value.makeupCount)+" 次",1)]),l("div",n_,[M[18]||(M[18]=l("span",{class:"muted"},"请假",-1)),l("span",s_,W(i.value.leaveCount)+" 天",1)]),l("div",r_,[M[19]||(M[19]=l("span",{class:"muted"},"记录",-1)),l("span",o_,W(i.value.itemCount)+" 条",1)]),M[21]||(M[21]=l("div",{class:"section-sub"},"分类分布",-1)),($(!0),A(je,null,et(i.value.categoryStats,E=>($(),A("div",{key:E.key,class:"sum-row"},[l("span",a_,W(E.label),1),l("span",i_,W(E.count)+" 条 · "+W(E.percent)+"%",1)]))),128)),i.value.categoryStats.length?ge("",!0):($(),A("div",l_,"(无)")),M[22]||(M[22]=l("div",{class:"section-sub"},"主要成果",-1)),($(!0),A(je,null,et(i.value.milestones,(E,I)=>($(),A("div",{key:"m"+I,class:"sum-item"},[vt(W(E.content),1),l("span",u_,"("+W(E.date)+")",1)]))),128)),i.value.milestones.length?ge("",!0):($(),A("div",c_,"(无)")),M[23]||(M[23]=l("div",{class:"section-sub"},"待跟进",-1)),($(!0),A(je,null,et(i.value.followups,(E,I)=>($(),A("div",{key:"f"+I,class:"sum-item"},[vt(W(E.content),1),l("span",d_,"("+W(E.date)+")",1)]))),128)),i.value.followups.length?ge("",!0):($(),A("div",f_,"(无)")),M[24]||(M[24]=l("div",{class:"section-sub"},"学习与成长",-1)),($(!0),A(je,null,et(i.value.takeaways,(E,I)=>($(),A("div",{key:"t"+I,class:"sum-item"},[vt(W(E.text),1),l("span",p_,"("+W(E.date)+")",1)]))),128)),i.value.takeaways.length?ge("",!0):($(),A("div",v_,"(无)"))])):ge("",!0)])])]))}}),h_=Vt(m_,[["__scopeId","data-v-43f9c59b"]]),y_=["aria-label"],g_={class:"dialog-head"},b_={class:"dialog-title"},w_={class:"dialog-body"},__={class:"form-grid"},k_={class:"field span2"},x_={class:"seg"},C_={class:"field"},$_={class:"field"},S_={class:"field"},E_=["value"],T_={class:"add-cat"},A_=["onKeydown"],P_={key:0,class:"field"},O_={class:"seg"},M_={class:"field span2"},I_={key:0,class:"form-error"},j_={class:"dialog-btns"},D_=Rt({__name:"TransactionDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,r=t,o=O("expense"),i=O(""),c=O(""),f=O(""),v=O(""),b=O(!1),g=O(!1),_=O(""),T=O(null);function x(S){n.open&&S.key==="Escape"&&r("cancel")}yt(()=>n.open,async S=>{var H;S?(await J(),o.value=n.initial.type==="income"?"income":"expense",i.value=n.initial.category,c.value=n.initial.amountYuan,f.value=n.initial.date,v.value=n.initial.note,b.value=n.initial.reimbursable===1,g.value=n.initial.reimbursed===1,_.value="",window.addEventListener("keydown",x),await ir(),(H=T.value)==null||H.focus()):window.removeEventListener("keydown",x)}),Wn(()=>window.removeEventListener("keydown",x)),yt(o,S=>{i.value=S==="expense"?EXPENSE_CATEGORIES[0]:INCOME_CATEGORIES[0]});const j=O([]);async function J(){j.value=await zr(o.value)}const oe=O("");async function ue(){const S=oe.value.trim();if(S){if(j.value.includes(S)){oe.value="";return}j.value.push(S),await Ts(o.value,j.value),i.value=S,oe.value=""}}function ce(){return i.value&&j.value.includes(i.value)?i.value:j.value[0]}function q(){const S=String(c.value??"").trim(),H=Number(S);if(!S||!isFinite(H)||H<=0){_.value="请填写大于 0 的金额";return}if(!f.value){_.value="请选择日期";return}const Q=o.value==="expense"&&b.value?1:0;r("save",{type:o.value,category:ce(),amount:Math.round(H*100),date:f.value,note:String(v.value??"").trim(),reimbursable:Q,reimbursed:Q&&g.value?1:0})}return(S,H)=>($(),St(Hn,{to:"body"},[Ce(lr,{name:"modal"},{default:ms(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:H[12]||(H[12]=zt(Q=>r("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",g_,[l("span",b_,W(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:H[0]||(H[0]=Q=>r("cancel"))},[Ce(He,{name:"close",size:16})])]),l("div",w_,[l("div",__,[l("div",k_,[H[13]||(H[13]=l("label",null,"类型",-1)),l("div",x_,[l("button",{class:Ze(["seg-btn",{active:o.value==="expense"}]),onClick:H[1]||(H[1]=Q=>o.value="expense")},"支出",2),l("button",{class:Ze(["seg-btn",{active:o.value==="income"}]),onClick:H[2]||(H[2]=Q=>o.value="income")},"收入",2)])]),l("div",C_,[H[14]||(H[14]=l("label",null,"金额(元,必填)",-1)),Me(l("input",{ref_key:"amountInput",ref:T,class:Ze(["input",{invalid:_.value}]),"onUpdate:modelValue":H[3]||(H[3]=Q=>c.value=Q),type:"number",min:"0",step:"0.01",placeholder:"0.00"},null,2),[[Ne,c.value]])]),l("div",$_,[H[15]||(H[15]=l("label",null,"日期(必填)",-1)),Me(l("input",{class:"input",type:"date","onUpdate:modelValue":H[4]||(H[4]=Q=>f.value=Q)},null,512),[[Ne,f.value]])]),l("div",S_,[H[16]||(H[16]=l("label",null,"分类(可直接新增)",-1)),Me(l("select",{class:"select","onUpdate:modelValue":H[5]||(H[5]=Q=>i.value=Q)},[($(!0),A(je,null,et(j.value,Q=>($(),A("option",{key:Q,value:Q},W(Q),9,E_))),128))],512),[[fs,i.value]]),l("div",T_,[Me(l("input",{class:"input add-cat-input","onUpdate:modelValue":H[6]||(H[6]=Q=>oe.value=Q),placeholder:"新增分类名",onKeydown:Mt(zt(ue,["prevent"]),["enter"])},null,40,A_),[[Ne,oe.value]]),l("button",{class:"btn btn-xs",type:"button",onClick:ue},"添加")])]),o.value==="expense"?($(),A("div",P_,[H[17]||(H[17]=l("label",null,"报销状态",-1)),l("div",O_,[l("button",{class:Ze(["seg-btn",{active:!b.value}]),onClick:H[7]||(H[7]=Q=>{b.value=!1,g.value=!1})},"无需报销",2),l("button",{class:Ze(["seg-btn",{active:b.value&&!g.value}]),onClick:H[8]||(H[8]=Q=>{b.value=!0,g.value=!1})},"待报销",2),l("button",{class:Ze(["seg-btn",{active:b.value&&g.value}]),onClick:H[9]||(H[9]=Q=>{b.value=!0,g.value=!0})},"已报销",2)])])):ge("",!0),l("div",M_,[H[18]||(H[18]=l("label",null,"备注",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":H[10]||(H[10]=Q=>v.value=Q),placeholder:"选填"},null,512),[[Ne,v.value]])])]),_.value?($(),A("div",I_,W(_.value),1)):ge("",!0)]),l("div",j_,[l("button",{class:"btn btn-sm",onClick:H[11]||(H[11]=Q=>r("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:q},"保存")])],8,y_)])):ge("",!0)]),_:1})]))}}),L_=Vt(D_,[["__scopeId","data-v-9f38206c"]]),R_={class:"ledger-page"},K_={class:"ledger-toolbar"},N_={class:"month-title num"},F_={class:"cards"},V_={class:"card stat-card"},B_={class:"stat-num num amt-income"},U_={class:"card stat-card"},q_={class:"stat-num num"},H_={class:"card stat-card"},z_={class:"card stat-card"},W_={class:"stat-num num amt-warn"},G_={key:0,class:"card sec"},Y_={class:"bar-label"},J_={class:"bar-track"},X_={class:"muted num bar-num"},Q_={key:1,class:"card section"},Z_={class:"form-error"},e1={class:"card table-card"},t1={class:"tx-table"},n1={class:"num","data-label":"日期"},s1={"data-label":"分类"},r1={class:"tag"},o1={class:"td-note","data-label":"备注"},a1={"data-label":"报销"},i1={key:0,class:"muted"},l1={key:1,class:"tx-done"},u1={key:2,class:"tx-pending"},c1={class:"ops-cell"},d1={class:"ops"},f1=["onClick"],p1=["onClick"],v1=["onClick"],m1={key:0},h1={class:"muted vault-note num"},y1=Rt({__name:"LedgerView",setup(e){const t=O(ot()),n=O([]),r=O(!0),o=O("");ot();const i=O(""),c=O(""),f=O(!1),v=O(null),b=O({type:"expense",category:"",amountYuan:"",date:ot(),note:"",reimbursable:0,reimbursed:0}),g=O(null),_=rt(()=>t.value.slice(0,7)+"-01"),T=rt(()=>{const de=Number(t.value.slice(0,4)),ke=Number(t.value.slice(5,7))-1,Ee=new Date(de,ke+1,0).getDate();return t.value.slice(0,7)+"-"+(Ee<10?"0"+Ee:String(Ee))}),x=rt(()=>Number(t.value.slice(0,4))+" 年 "+Number(t.value.slice(5,7))+" 月");async function j(){r.value=!0;try{n.value=await Dh(_.value,T.value),c.value=""}catch(de){c.value="账目加载失败:"+(de instanceof Error?de.stack||de.message:String(de)),Ve("账目加载失败")}r.value=!1}vn(j),yt(t,j);const J=O([]),oe=O([]);async function ue(){J.value=await zr("expense"),oe.value=await zr("income")}ue();const ce=rt(()=>n.value.slice().sort((de,ke)=>de.date===ke.date?ke.id-de.id:de.date<ke.date?1:-1)),q=rt(()=>{let de=0,ke=0,Ee=0;for(const Le of n.value)Le.type==="income"?de+=Le.amount:(ke+=Le.amount,Le.reimbursable===1&&Le.reimbursed!==1&&(Ee+=Le.amount));return{income:de,expense:ke,pending:Ee,balance:de-ke}}),S=O("all"),H=O("all"),Q=rt(()=>ce.value.filter(de=>!(S.value!=="all"&&de.type!==S.value||H.value==="pending"&&!(de.type==="expense"&&de.reimbursable===1&&de.reimbursed!==1)||H.value==="done"&&!(de.reimbursable===1&&de.reimbursed===1)))),G=rt(()=>{const de=new Map;let ke=0;for(const Le of n.value)Le.type==="expense"&&(de.set(Le.category,(de.get(Le.category)||0)+Le.amount),ke+=Le.amount);const Ee=ke||1;return Array.from(de.entries()).map(Le=>({name:Le[0],amount:Le[1],percent:Math.round(Le[1]/Ee*100)})).sort((Le,$e)=>$e.amount-Le.amount)});function re(de){return(de/100).toFixed(2)}function M(de){return(de.type==="income"?"+":"-")+re(de.amount)}function E(){t.value=na(t.value,-1)}function I(){t.value=na(t.value,1)}function ne(){t.value=ot()}yt(o,()=>{i.value&&(i.value="")});async function Ie(de){await Nh(de.id),await j(),Ve("已标记为已报销")}function Ae(de){v.value=de.id,b.value={type:de.type,category:de.category,amountYuan:re(de.amount),date:de.date,note:de.note||"",reimbursable:de.reimbursable,reimbursed:de.reimbursed},f.value=!0}function ye(){v.value=null,b.value={type:"expense",category:J.value[0]||"",amountYuan:"",date:ot(),note:"",reimbursable:0,reimbursed:0},f.value=!0}async function Pe(de){if(v.value){await Rh(v.value,de),f.value=!1,await j(),Ve("账目已更新");return}await Lh({type:de.type,category:de.category,amount:de.amount,date:de.date,note:de.note,reimbursable:de.reimbursable,reimbursed:de.reimbursed}),f.value=!1,await j(),Ve("已记一笔")}async function Ue(){g.value&&g.value.id&&await Kh(g.value.id),g.value=null,await j(),Ve("账目已删除")}return(de,ke)=>($(),A("div",R_,[l("div",K_,[l("button",{class:"icon-btn",onClick:E},[Ce(He,{name:"chevron-left",size:16})]),l("span",N_,W(x.value),1),l("button",{class:"icon-btn",onClick:I},[Ce(He,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",onClick:ne},"回到本月"),ke[7]||(ke[7]=l("span",{class:"flex1"},null,-1)),Me(l("select",{class:"select w-filter","onUpdate:modelValue":ke[0]||(ke[0]=Ee=>S.value=Ee)},[...ke[4]||(ke[4]=[l("option",{value:"all"},"全部类型",-1),l("option",{value:"expense"},"仅支出",-1),l("option",{value:"income"},"仅收入",-1)])],512),[[fs,S.value]]),Me(l("select",{class:"select w-filter","onUpdate:modelValue":ke[1]||(ke[1]=Ee=>H.value=Ee)},[...ke[5]||(ke[5]=[l("option",{value:"all"},"全部报销",-1),l("option",{value:"pending"},"待报销",-1),l("option",{value:"done"},"已报销",-1)])],512),[[fs,H.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:ye},[Ce(He,{name:"plus",size:14}),ke[6]||(ke[6]=vt(" 记一笔",-1))])]),l("div",F_,[l("div",V_,[ke[8]||(ke[8]=l("div",{class:"muted"},"本月收入(元)",-1)),l("div",B_,W(re(q.value.income)),1)]),l("div",U_,[ke[9]||(ke[9]=l("div",{class:"muted"},"本月支出(元)",-1)),l("div",q_,W(re(q.value.expense)),1)]),l("div",H_,[ke[10]||(ke[10]=l("div",{class:"muted"},"本月结余(元)",-1)),l("div",{class:Ze(["stat-num num",{"amt-income":q.value.balance>=0,"amt-expense":q.value.balance<0}])},W(re(q.value.balance)),3)]),l("div",z_,[ke[11]||(ke[11]=l("div",{class:"muted"},"待报销(元)",-1)),l("div",W_,W(re(q.value.pending)),1)])]),G.value.length?($(),A("div",G_,[ke[12]||(ke[12]=l("div",{class:"sec-title"},"本月支出分类",-1)),($(!0),A(je,null,et(G.value,Ee=>($(),A("div",{key:Ee.name,class:"bar-row"},[l("span",Y_,W(Ee.name),1),l("span",J_,[l("span",{class:"bar-fill",style:Un({width:Ee.percent+"%"})},null,4)]),l("span",X_,W(re(Ee.amount))+" 元 · "+W(Ee.percent)+"%",1)]))),128))])):ge("",!0),c.value?($(),A("div",Q_,[l("div",Z_,W(c.value),1),ke[13]||(ke[13]=l("div",{class:"muted loc-note"},"请将上方完整错误文字发送给开发者",-1))])):ge("",!0),l("div",e1,[l("table",t1,[ke[15]||(ke[15]=l("thead",null,[l("tr",null,[l("th",null,"日期"),l("th",null,"分类"),l("th",null,"金额(元)"),l("th",null,"备注"),l("th",null,"报销"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),A(je,null,et(Q.value,Ee=>($(),A("tr",{key:Ee.id},[l("td",n1,W(Ee.date),1),l("td",s1,[l("span",r1,W(Ee.category),1)]),l("td",{class:Ze(["num",Ee.type==="income"?"amt-income":"amt-expense"]),"data-label":"金额"},W(M(Ee)),3),l("td",o1,W(Ee.note||"--"),1),l("td",a1,[Ee.type!=="expense"||Ee.reimbursable!==1?($(),A("span",i1,"--")):Ee.reimbursed===1?($(),A("span",l1,"已报销")):($(),A("span",u1,"待报销"))]),l("td",c1,[l("div",d1,[Ee.type==="expense"&&Ee.reimbursable===1&&Ee.reimbursed!==1?($(),A("button",{key:0,class:"btn btn-xs",onClick:Le=>Ie(Ee)},"标记已报销",8,f1)):ge("",!0),l("button",{class:"btn btn-xs",onClick:Le=>Ae(Ee)},"编辑",8,p1),l("button",{class:"btn btn-xs",onClick:Le=>g.value=Ee},"删除",8,v1)])])]))),128)),!Q.value.length&&!r.value?($(),A("tr",m1,[...ke[14]||(ke[14]=[l("td",{colspan:"6",class:"empty muted"},"本月暂无账目",-1)])])):ge("",!0)])])]),l("div",h1,"本月 "+W(n.value.length)+" 条 · 当前筛选 "+W(Q.value.length)+" 条",1),Ce(L_,{open:f.value,title:v.value?"编辑账目":"记一笔",initial:b.value,onCancel:ke[2]||(ke[2]=Ee=>f.value=!1),onSave:Pe},null,8,["open","title","initial"]),Ce(Dn,{open:!!g.value,title:"删除确认",message:g.value?"将删除 "+g.value.date+" 的账目("+g.value.category+" "+re(g.value.amount)+" 元)。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:ke[3]||(ke[3]=Ee=>g.value=null),onConfirm:Ue},null,8,["open","message"])]))}}),g1=Vt(y1,[["__scopeId","data-v-e8759c3f"]]),b1={class:"memo-page"},w1={class:"card memo-list"},_1={class:"pane-head"},k1={class:"pane-title"},x1={class:"memo-scroll"},C1=["onClick"],$1={class:"memo-item-title"},S1={class:"muted memo-item-sub"},E1={class:"muted num memo-item-time"},T1={key:0,class:"muted empty"},A1={class:"card memo-editor"},P1={class:"editor-foot"},O1={class:"muted foot-info"},M1=["disabled"],I1=["disabled"],j1={key:1,class:"empty muted editor-empty"},D1=Rt({__name:"MemoView",setup(e){const t=O([]),n=O(null),r=O(!1),o=O(""),i=O(""),c=O(null),f=O(null);async function v(){if(t.value=await Ah(),n.value&&n.value.id){const Q=t.value.find(G=>G.id===n.value.id);Q&&(n.value=Q)}}vn(async()=>{await v(),t.value.length&&_(t.value[0]),window.addEventListener("keydown",b)}),Wn(()=>window.removeEventListener("keydown",b)),yt(Vi,async Q=>{if(!Q)return;t.value.length||await v();const G=t.value.find(re=>re.id===Q);Vi.value=null,G&&T(G)},{immediate:!0});function b(Q){(Q.ctrlKey||Q.metaKey)&&Q.key.toLowerCase()==="s"&&r.value&&g.value&&(Q.preventDefault(),oe())}const g=rt(()=>{if(!r.value)return!1;const Q=n.value?n.value.title:"",G=n.value?n.value.content:"";return o.value!==Q||i.value!==G});function _(Q){n.value=Q,r.value=!0,o.value=Q.title,i.value=Q.content}function T(Q){if(!(r.value&&n.value&&n.value.id===Q.id)){if(g.value){f.value={type:"select",memo:Q};return}_(Q)}}function x(){if(g.value){f.value={type:"new"};return}j()}function j(){n.value=null,r.value=!0,o.value="",i.value=""}function J(){n.value?_(n.value):j()}async function oe(){if(!o.value.trim()&&!i.value.trim()){Ve("标题与内容不能都为空");return}if(n.value&&n.value.id)await Oh(n.value.id,o.value,i.value),Ve("备忘已保存");else{const Q=await Ph(o.value,i.value);n.value=Q,o.value=Q.title,i.value=Q.content,Ve("备忘已创建")}await v()}function ue(){n.value&&n.value.id&&(c.value=n.value)}async function ce(){c.value&&c.value.id&&(await Mh(c.value.id),Ve("备忘已删除")),c.value=null,await v(),j()}function q(){const Q=f.value;f.value=null,Q&&(Q.type==="select"?_(Q.memo):j())}function S(Q){return(Q.content||"").replace(/\s+/g," ").slice(0,30)}function H(Q){return Q.replace("T"," ").slice(0,16)}return(Q,G)=>($(),A("div",b1,[l("aside",w1,[l("div",_1,[l("span",k1,"备忘录("+W(t.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:x},"新建")]),l("div",x1,[($(!0),A(je,null,et(t.value,re=>($(),A("div",{key:re.id,class:Ze(["memo-item",{active:r.value&&n.value&&n.value.id===re.id}]),onClick:M=>T(re)},[l("div",$1,W(re.title||"无标题"),1),l("div",S1,W(S(re)||"空"),1),l("div",E1,W(H(re.updated_at)),1)],10,C1))),128)),t.value.length?ge("",!0):($(),A("div",T1,"暂无备忘"))])]),l("section",A1,[r.value?($(),A(je,{key:0},[Me(l("input",{class:"input title-input","onUpdate:modelValue":G[0]||(G[0]=re=>o.value=re),placeholder:"标题"},null,512),[[Ne,o.value]]),Me(l("textarea",{class:"textarea content-textarea","onUpdate:modelValue":G[1]||(G[1]=re=>i.value=re),placeholder:"内容"},null,512),[[Ne,i.value]]),l("div",P1,[l("span",O1,[g.value?($(),A(je,{key:0},[vt("有未保存修改")],64)):n.value&&n.value.id?($(),A(je,{key:1},[vt("更新于 "+W(H(n.value.updated_at)),1)],64)):($(),A(je,{key:2},[vt("新备忘")],64))]),G[4]||(G[4]=l("span",{class:"flex1"},null,-1)),n.value&&n.value.id?($(),A("button",{key:0,class:"btn btn-sm",onClick:ue},"删除")):ge("",!0),l("button",{class:"btn btn-sm",disabled:!g.value,onClick:J},"放弃修改",8,M1),l("button",{class:"btn btn-primary btn-sm",disabled:!g.value,onClick:oe},"保存",8,I1)])],64)):($(),A("div",j1,"选择左侧备忘,或点击右上角新建"))]),Ce(Dn,{open:!!c.value,title:"删除确认",message:c.value?"将删除备忘「"+(c.value.title||"无标题")+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:G[2]||(G[2]=re=>c.value=null),onConfirm:ce},null,8,["open","message"]),Ce(Dn,{open:!!f.value,title:"未保存提示",message:"当前备忘有未保存的修改,继续操作将丢失这些修改。","confirm-text":"放弃修改并继续",onCancel:G[3]||(G[3]=re=>f.value=null),onConfirm:q},null,8,["open"])]))}}),L1=Vt(D1,[["__scopeId","data-v-74d60dba"]]),R1=["aria-label"],K1={class:"dialog-head"},N1={class:"dialog-title"},F1={class:"dialog-body"},V1={class:"form-grid"},B1={class:"field span2"},U1={class:"field span2"},q1={class:"field span2"},H1={class:"pwd-row"},z1={class:"field span2"},W1={key:0,class:"form-error"},G1={class:"dialog-btns"},Y1=Rt({__name:"CredentialDialog",props:{open:{type:Boolean},title:{},initial:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=e,r=t,o=O(""),i=O(""),c=O(""),f=O(""),v=O(""),b=O(null);function g(x){n.open&&x.key==="Escape"&&r("cancel")}yt(()=>n.open,async x=>{var j;x?(o.value=n.initial.system,i.value=n.initial.account,c.value=n.initial.password,f.value=n.initial.remark,v.value="",window.addEventListener("keydown",g),await ir(),(j=b.value)==null||j.focus()):window.removeEventListener("keydown",g)}),Wn(()=>window.removeEventListener("keydown",g));function _(){const x="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",j="!@#$%^&*",J=crypto.getRandomValues(new Uint8Array(14));let oe="";for(let ue=0;ue<J.length;ue++)oe+=x[J[ue]%x.length];oe+=j[crypto.getRandomValues(new Uint8Array(1))[0]%j.length],c.value=oe,v.value=""}function T(){if(!o.value.trim()||!i.value.trim()||!c.value){v.value="系统名称、账号、密码为必填项";return}r("save",{system:o.value.trim(),account:i.value.trim(),password:c.value,remark:f.value.trim()})}return(x,j)=>($(),St(Hn,{to:"body"},[Ce(lr,{name:"modal"},{default:ms(()=>[e.open?($(),A("div",{key:0,class:"mask",onClick:j[6]||(j[6]=zt(J=>r("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",K1,[l("span",N1,W(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:j[0]||(j[0]=J=>r("cancel"))},[Ce(He,{name:"close",size:16})])]),l("div",F1,[l("div",V1,[l("div",B1,[j[7]||(j[7]=l("label",null,"系统名称(必填)",-1)),Me(l("input",{ref_key:"systemInput",ref:b,class:"input","onUpdate:modelValue":j[1]||(j[1]=J=>o.value=J),placeholder:"如:企业邮箱 / OA / VPN"},null,512),[[Ne,o.value]])]),l("div",U1,[j[8]||(j[8]=l("label",null,"账号(必填)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":j[2]||(j[2]=J=>i.value=J),placeholder:"用户名、工号或邮箱"},null,512),[[Ne,i.value]])]),l("div",q1,[j[9]||(j[9]=l("label",null,"密码(必填)",-1)),l("div",H1,[Me(l("input",{class:"input","onUpdate:modelValue":j[3]||(j[3]=J=>c.value=J),placeholder:"输入或点击生成"},null,512),[[Ne,c.value]]),l("button",{class:"btn btn-sm",onClick:_},"生成")])]),l("div",z1,[j[10]||(j[10]=l("label",null,"备注",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":j[4]||(j[4]=J=>f.value=J),placeholder:"用途、到期时间、负责人等(选填)"},null,512),[[Ne,f.value]])])]),v.value?($(),A("div",W1,W(v.value),1)):ge("",!0)]),l("div",G1,[l("button",{class:"btn btn-sm",onClick:j[5]||(j[5]=J=>r("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:T},"保存")])],8,R1)])):ge("",!0)]),_:1})]))}}),J1=Vt(Y1,[["__scopeId","data-v-f383b0a6"]]),X1={class:"vault-page"},Q1={key:0,class:"empty muted"},Z1={key:1,class:"card lock-card"},e0={class:"lock-badge"},t0={key:0,class:"form-error"},n0=["disabled"],s0={key:0,class:"form-error"},r0=["disabled"],o0={class:"vault-toolbar"},a0={class:"search-wrap"},i0={class:"card table-card"},l0={class:"cred-table"},u0={class:"td-system"},c0=["onClick"],d0={class:"pwd-cell"},f0={class:"num pwd-text"},p0=["onClick"],v0=["onClick"],m0={class:"td-remark"},h0={class:"td-ops"},y0={class:"ops"},g0=["onClick"],b0=["onClick"],w0={key:0},_0={class:"muted vault-note num"},k0={class:"dialog pwd-dialog"},x0={class:"dialog-head"},C0={class:"dialog-body"},$0={class:"vp-field"},S0={class:"vp-field"},E0={class:"vp-field"},T0={key:0,class:"form-error"},A0={class:"dialog-btns"},P0=5*60*1e3,O0=Rt({__name:"VaultView",setup(e){const t=O(null),n=O(cm()),r=O(!1),o=O(""),i=O(""),c=O(""),f=O(""),v=O(""),b=O([]),g=O(""),_=O({}),T=O(!1),x=O(null),j=O({system:"",account:"",password:"",remark:""}),J=O(null),oe=O(!1),ue=O(""),ce=O(""),q=O(""),S=O("");async function H(){b.value=await mm(),_.value={}}let Q=null;function G(){Q!==null&&window.clearTimeout(Q),Q=window.setTimeout(()=>{n.value&&(oa(),n.value=!1,b.value=[],_.value={},Ve("长时间未操作,密码库已自动锁定"))},P0)}function re(){n.value&&G()}vn(async()=>{t.value=await dd(),window.addEventListener("click",re),window.addEventListener("keydown",re),n.value&&G()}),Wn(()=>{window.removeEventListener("click",re),window.removeEventListener("keydown",re),Q!==null&&window.clearTimeout(Q)});const M=rt(()=>{const $e=g.value.trim().toLowerCase();return $e?b.value.filter(pe=>(pe.system+" "+pe.account+" "+(pe.remark||"")).toLowerCase().includes($e)):b.value});async function E(){if(!r.value){if(c.value="",!o.value){c.value="请输入主密码";return}if(o.value.length<6){c.value="主密码至少 6 位";return}if(o.value!==i.value){c.value="两次输入的主密码不一致";return}r.value=!0;try{await dm(o.value),o.value="",i.value="",n.value=!0,G(),await H(),Ve("主密码已设置,密码库已解锁")}catch($e){c.value=$e instanceof Error?$e.message:"设置失败"}r.value=!1}}async function I(){if(!r.value){if(v.value="",!f.value){v.value="请输入主密码";return}r.value=!0;try{await fm(f.value),f.value="",n.value=!0,G(),await H()}catch($e){v.value=$e instanceof Error?$e.message:"解锁失败"}r.value=!1}}function ne(){oa(),n.value=!1,b.value=[],_.value={},Q!==null&&window.clearTimeout(Q),Ve("密码库已锁定")}async function Ie($e){const pe=$e.id;if(_.value[pe]){_.value[pe]=!1;return}try{$e.passwordPlain=await yi(pe),_.value[pe]=!0}catch(De){Ve(De instanceof Error?De.message:"解密失败")}}async function Ae($e){try{const pe=await yi($e.id);await zi(pe),Ve("密码已复制")}catch(pe){Ve(pe instanceof Error?pe.message:"复制失败")}}async function ye($e){await zi($e.account),Ve("账号已复制")}function Pe(){x.value=null,j.value={system:"",account:"",password:"",remark:""},T.value=!0}async function Ue($e){try{const pe=await yi($e.id);x.value=$e.id,j.value={system:$e.system,account:$e.account,password:pe,remark:$e.remark||""},T.value=!0}catch(pe){Ve(pe instanceof Error?pe.message:"解密失败")}}async function de($e){const pe=x.value??void 0;await hm($e,pe),T.value=!1,await H(),Ve(pe?"账号已更新":"账号已添加")}async function ke(){J.value&&J.value.id&&(await ym(J.value.id),Ve("账号已删除")),J.value=null,await H()}function Ee(){ue.value="",ce.value="",q.value="",S.value="",oe.value=!0}async function Le(){S.value="";try{const $e=await gm(ue.value,ce.value);oe.value=!1,ue.value="",ce.value="",q.value="",Ve("主密码已修改,"+$e+" 条账号密码已重新加密")}catch($e){S.value=$e instanceof Error?$e.message:"修改失败"}}return($e,pe)=>($(),A("div",X1,[t.value===null?($(),A("div",Q1,"加载中")):n.value?($(),A(je,{key:2},[l("div",o0,[l("div",a0,[Ce(He,{name:"search",size:14,class:"search-icon"}),Me(l("input",{class:"input","onUpdate:modelValue":pe[3]||(pe[3]=De=>g.value=De),placeholder:"搜索系统名称、账号或备注"},null,512),[[Ne,g.value]])]),pe[16]||(pe[16]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",onClick:Ee},"修改主密码"),l("button",{class:"btn btn-sm",onClick:ne},"锁定"),l("button",{class:"btn btn-primary btn-sm",onClick:Pe},"新增账号")]),l("div",i0,[l("table",l0,[pe[18]||(pe[18]=l("thead",null,[l("tr",null,[l("th",null,"系统名称"),l("th",null,"账号"),l("th",null,"密码"),l("th",null,"备注"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),A(je,null,et(M.value,De=>($(),A("tr",{key:De.id},[l("td",u0,W(De.system),1),l("td",null,[l("span",{class:"copyable",title:"点击复制账号",onClick:ct=>ye(De)},W(De.account),9,c0)]),l("td",null,[l("div",d0,[l("span",f0,W(_.value[De.id]?De.passwordPlain:"........"),1),l("button",{class:"btn btn-xs",onClick:ct=>Ie(De)},W(_.value[De.id]?"隐藏":"显示"),9,p0),l("button",{class:"btn btn-xs",onClick:ct=>Ae(De)},"复制",8,v0)])]),l("td",m0,W(De.remark||"--"),1),l("td",h0,[l("div",y0,[l("button",{class:"btn btn-xs",onClick:ct=>Ue(De)},"编辑",8,g0),l("button",{class:"btn btn-xs",onClick:ct=>J.value=De},"删除",8,b0)])])]))),128)),M.value.length?ge("",!0):($(),A("tr",w0,[...pe[17]||(pe[17]=[l("td",{colspan:"5",class:"empty muted"},"暂无账号,点击右上角新增",-1)])]))])])]),l("div",_0,"共 "+W(b.value.length)+" 条账号记录 · 密码以 AES-256-GCM 加密,服务器仅存密文",1)],64)):($(),A("div",Z1,[l("div",e0,[Ce(He,{name:"lock",size:26})]),t.value===!1?($(),A(je,{key:0},[pe[12]||(pe[12]=l("div",{class:"lock-title"},"设置主密码",-1)),pe[13]||(pe[13]=l("div",{class:"muted lock-tip"},"主密码用于加密保存在本机的账号密码,遗忘后无法找回,请务必牢记",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[0]||(pe[0]=De=>o.value=De),placeholder:"设置主密码(至少 6 位)",onKeydown:Mt(E,["enter"])},null,544),[[Ne,o.value]]),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[1]||(pe[1]=De=>i.value=De),placeholder:"再次输入主密码",onKeydown:Mt(E,["enter"])},null,544),[[Ne,i.value]]),c.value?($(),A("div",t0,W(c.value),1)):ge("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:r.value,onClick:E},"完成设置并解锁",8,n0)],64)):($(),A(je,{key:1},[pe[14]||(pe[14]=l("div",{class:"lock-title"},"密码库已锁定",-1)),pe[15]||(pe[15]=l("div",{class:"muted lock-tip"},"输入主密码解锁后查看与复制密码",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[2]||(pe[2]=De=>f.value=De),placeholder:"主密码",onKeydown:Mt(I,["enter"])},null,544),[[Ne,f.value]]),v.value?($(),A("div",s0,W(v.value),1)):ge("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:r.value,onClick:I},"解锁",8,r0)],64))])),Ce(J1,{open:T.value,title:x.value?"编辑账号":"新增账号",initial:j.value,onCancel:pe[4]||(pe[4]=De=>T.value=!1),onSave:de},null,8,["open","title","initial"]),Ce(Dn,{open:!!J.value,title:"删除确认",message:J.value?"将删除系统「"+J.value.system+"」的账号记录。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:pe[5]||(pe[5]=De=>J.value=null),onConfirm:ke},null,8,["open","message"]),($(),St(Hn,{to:"body"},[Ce(lr,{name:"modal"},{default:ms(()=>[oe.value?($(),A("div",{key:0,class:"mask",onClick:pe[11]||(pe[11]=zt(De=>oe.value=!1,["self"]))},[l("div",k0,[l("div",x0,[pe[19]||(pe[19]=l("span",{class:"dialog-title"},"修改主密码",-1)),l("button",{class:"icon-btn",title:"关闭",onClick:pe[6]||(pe[6]=De=>oe.value=!1)},[Ce(He,{name:"close",size:16})])]),l("div",C0,[l("div",$0,[pe[20]||(pe[20]=l("label",null,"旧主密码",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[7]||(pe[7]=De=>ue.value=De)},null,512),[[Ne,ue.value]])]),l("div",S0,[pe[21]||(pe[21]=l("label",null,"新主密码(至少 6 位)",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[8]||(pe[8]=De=>ce.value=De)},null,512),[[Ne,ce.value]])]),l("div",E0,[pe[22]||(pe[22]=l("label",null,"确认新主密码",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":pe[9]||(pe[9]=De=>q.value=De)},null,512),[[Ne,q.value]])]),S.value?($(),A("div",T0,W(S.value),1)):ge("",!0),pe[23]||(pe[23]=l("div",{class:"muted vp-tip"},"确认后所有账号密码将使用新主密码重新加密",-1))]),l("div",A0,[l("button",{class:"btn btn-sm",onClick:pe[10]||(pe[10]=De=>oe.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:Le},"确认修改")])])])):ge("",!0)]),_:1})]))]))}}),M0=Vt(O0,[["__scopeId","data-v-c2db283d"]]);function I0(e){return'"'+(e==null?"":String(e)).replace(/"/g,'""')+'"'}async function Uu(e,t){const r="\uFEFF"+t.map(f=>f.map(I0).join(",")).join(`\r
`);if(ar.isNativePlatform()){const{downloadText:f}=await Od(async()=>{const{downloadText:v}=await Promise.resolve().then(()=>Dg);return{downloadText:v}},void 0,import.meta.url);return f(e,r)}const o=new Blob([r],{type:"text/csv;charset=utf-8"}),i=URL.createObjectURL(o),c=document.createElement("a");return c.href=i,c.download=e,c.click(),window.setTimeout(()=>URL.revokeObjectURL(i),1e4),""}const j0={class:"settings"},D0={class:"card section"},L0={class:"muted acc-line"},R0={class:"ai-grid"},K0={class:"rule-item"},N0={class:"rule-item"},F0={class:"rule-item"},V0={key:0,class:"form-error"},B0={class:"rule-save"},U0={class:"card section"},q0={class:"rule-grid"},H0={class:"rule-item"},z0={class:"rule-item"},W0={class:"rule-item"},G0={class:"rule-item"},Y0={class:"rule-item"},J0={class:"card section"},X0={class:"proj-add"},Q0={key:0,class:"muted proj-tip"},Z0=["onKeydown"],ek=["onClick"],tk=["onClick"],nk=["onClick"],sk={key:1,class:"muted"},rk={class:"card section"},ok={class:"card section"},ak={class:"muted acc-line"},ik={class:"rule-save"},lk=["disabled"],uk={key:0,class:"muted acc-line"},ck={key:1,class:"form-error"},dk={key:2,class:"form-error"},fk={class:"card section"},pk={class:"ai-grid"},vk={class:"rule-item"},mk={class:"rule-item"},hk={class:"rule-item"},yk={class:"card section"},gk={class:"cat-block"},bk={class:"cat-head"},wk={class:"cat-chips"},_k=["onClick"],kk=["onClick"],xk={class:"cat-block"},Ck={class:"cat-head"},$k={class:"cat-chips"},Sk=["onClick"],Ek=["onClick"],Tk={class:"cat-block"},Ak={class:"cat-head"},Pk={class:"cat-chips"},Ok=["onClick"],Mk=["onClick"],Ik={class:"card section"},jk={class:"backup-row"},Dk={key:0,class:"import-error"},Lk=Rt({__name:"SettingsView",setup(e){var le;const t=O({work_start:"09:00",work_end:"18:00",grace_minutes:10,lunch_minutes:60,remind_weekly:"friday"}),n=O([]),r=O(""),o=O(""),i=O(""),c=O(""),f=O(""),v=O(""),b=O(null),g=O(""),_=O([]),T=O([]),x=O([]);async function j(){_.value=await Qr(),T.value=await zr("expense"),x.value=await zr("income")}async function J(ee){const P=window.prompt("新分类名称");if(!P||!P.trim())return;const Z=ee==="log"?_.value:ee==="expense"?T.value:x.value,te=P.trim();if(Z.includes(te)){Ve("分类已存在");return}const Se=[...Z,te];ee==="log"?(_.value=Se,await bi(Se)):ee==="expense"?(T.value=Se,await Ts("expense",Se)):(x.value=Se,await Ts("income",Se)),Ve("分类已添加")}async function oe(ee,P,Z){const te=window.prompt("修改分类名称",Z);if(!te||!te.trim()||te.trim()===Z)return;const we=(ee==="log"?_.value:ee==="expense"?T.value:x.value).map((Re,Te)=>Te===P?te.trim():Re);ee==="log"?(_.value=we,await bi(we)):ee==="expense"?(T.value=we,await Ts("expense",we)):(x.value=we,await Ts("income",we)),Ve("分类已更新(历史记录自动跟随显示)")}async function ue(ee,P){const Z=ee==="log"?_.value:ee==="expense"?T.value:x.value;if(Z.length<=1){Ve("至少保留一个分类");return}if(!window.confirm("删除分类「"+Z[P]+"」?历史记录不受影响。"))return;const te=Z.filter((Se,we)=>we!==P);ee==="log"?(_.value=te,await bi(te)):ee==="expense"?(T.value=te,await Ts("expense",te)):(x.value=te,await Ts("income",te)),Ve("分类已删除")}const ce=O(null),q=O(null),S=O(""),H=O(((le=qr())==null?void 0:le.username)||""),Q=O(""),G=O(""),re=O(""),M=O(""),E=O(!1),I="0.5.0",ne=O(""),Ie=O(""),Ae=O(""),ye=O(""),Pe=O(!1),Ue=O("");async function de(){var ee;ne.value=((ee=wn())==null?void 0:ee.username)||"",Ue.value=await Nm(),ye.value=Zs.value}yt(Zs,ee=>{ye.value=ee});async function ke(){Ae.value="";try{await gd(),Ve("云端绑定已重建")}catch(ee){Ae.value=ee instanceof Error?ee.message:"绑定失败"}}async function Ee(){if(!Pe.value){Ae.value="",ye.value=Zs.value,Pe.value=!0;try{const ee=await Bi();Ue.value=ee.at,Ie.value="推送 "+ee.pushed+" 条 · 拉取 "+ee.pulled+" 条 · 删除 "+ee.removed+" 条",ye.value="",Ve("同步完成")}catch(ee){Ae.value=ee instanceof Error?ee.message:"同步失败"}Pe.value=!1}}async function Le(){if(M.value="",G.value!==re.value){M.value="两次输入的新密码不一致";return}try{await Im(Q.value,G.value),Q.value="",G.value="",re.value="",Ve("登录密码已修改")}catch(ee){M.value=ee instanceof Error?ee.message:"修改失败"}}async function $e(){await jm(),window.location.reload()}async function pe(){t.value=await ps(),n.value=await rr(!0),i.value=(await ml()).join(`
`),c.value=await xt("ai_base_url",""),f.value=await xt("ai_api_key",""),v.value=await xt("ai_model",""),await de(),await j()}async function De(){await jt("ai_base_url",c.value.trim()),await jt("ai_api_key",f.value.trim()),await jt("ai_model",v.value.trim()),Ve("AI 配置已保存")}async function ct(){const ee=ot(),P=await Promise.all([Xr("2000-01-01",ee),rr(!0)]),Z=P[0],te=P[1],Se=new Map(te.map(Te=>[Te.id,Te.name])),we=[["日期","分类","项目","内容","耗时(分钟)","成果","待跟进","收获","备注"]];for(const Te of Z)we.push([Te.date,categoryLabel(Te.category),Te.project_id&&Se.get(Te.project_id)||"",Te.content,Te.minutes==null?"":Te.minutes,Te.is_milestone?"是":"",Te.needs_followup?"是":"",Te.takeaway||"",Te.remark||""]);const Re=await Uu("工作记录_"+ee.replace(/-/g,"")+".csv",we);Ve(Re?"CSV 已导出到:"+Re:"CSV 已导出到系统下载目录")}async function gt(){const ee=ot(),P=await Promise.all([ps(),Jr("2000-01-01",ee)]),Z=P[0],te=P[1],Se=["周日","周一","周二","周三","周四","周五","周六"],we=[["日期","星期","状态","上班时间","下班时间","地点","类型","说明"]];for(const Te of te){const Xe=cr(Te,Te.date,Z,Te.date===ee);we.push([Te.date,Se[Ks(Te.date).getDay()],Xe.label,Te.clock_in_at?bn(Te.clock_in_at):"",Te.clock_out_at?bn(Te.clock_out_at):"",Te.location||"",Te.kind==="makeup"?"补卡":Te.kind==="leave"?"休假":"正常",Te.note||""])}const Re=await Uu("考勤记录_"+ee.replace(/-/g,"")+".csv",we);Ve(Re?"CSV 已导出到:"+Re:"CSV 已导出到系统下载目录")}vn(pe);async function bt(){await jt("work_start",t.value.work_start),await jt("work_end",t.value.work_end),await jt("grace_minutes",String(t.value.grace_minutes)),await jt("lunch_minutes",String(t.value.lunch_minutes)),await jt("remind_weekly",t.value.remind_weekly),Ve("打卡规则已保存")}async function wt(){await Cd(i.value.split(`
`)),Ve("常用地点已保存")}async function It(){const ee=r.value.trim();if(ee){try{await th(ee),o.value="",r.value=""}catch{o.value="项目名已存在"}await pe()}}function fe(ee){b.value=ee.id,g.value=ee.name}async function h(ee){const P=g.value.trim();if(P)try{await nh(ee.id,P),o.value=""}catch{o.value="项目名已存在"}b.value=null,await pe()}async function y(ee){await sh(ee.id,ee.archived!==1),await pe()}async function C(){try{const ee=await Fh(),P=await Sa("实习日志备份_"+ot().replace(/-/g,"")+".json",ee);Ve(P?"备份已导出到:"+P:"备份已导出到系统下载目录")}catch(ee){Ve("导出失败:"+(ee instanceof Error?ee.message:String(ee)))}}function R(ee){const P=ee.target,Z=P.files&&P.files[0];if(S.value="",!Z)return;const te=Z.name;Z.text().then(Se=>{q.value={name:te,text:Se}}),P.value=""}async function F(){if(q.value)try{await Vh(q.value.text),q.value=null,S.value="",await pe(),Ve("数据导入完成")}catch(ee){q.value=null,S.value=ee instanceof Error?ee.message:"导入失败"}}return(ee,P)=>($(),A("div",j0,[l("div",D0,[P[25]||(P[25]=l("div",{class:"section-title"},"账号与隐私",-1)),l("div",L0,"v"+W(un(I))+" · 当前账号 "+W(H.value)+" · 登录密码仅存 PBKDF2 哈希",1),l("div",R0,[l("div",K0,[P[22]||(P[22]=l("label",null,"旧登录密码",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":P[0]||(P[0]=Z=>Q.value=Z)},null,512),[[Ne,Q.value]])]),l("div",N0,[P[23]||(P[23]=l("label",null,"新登录密码(至少 6 位)",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":P[1]||(P[1]=Z=>G.value=Z)},null,512),[[Ne,G.value]])]),l("div",F0,[P[24]||(P[24]=l("label",null,"确认新登录密码",-1)),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":P[2]||(P[2]=Z=>re.value=Z)},null,512),[[Ne,re.value]])])]),M.value?($(),A("div",V0,W(M.value),1)):ge("",!0),l("div",B0,[l("button",{class:"btn btn-primary btn-sm",onClick:Le},"修改登录密码"),l("button",{class:"btn btn-sm btn-danger",onClick:P[3]||(P[3]=Z=>E.value=!0)},"删除此用户及全部数据")])]),l("div",U0,[P[32]||(P[32]=l("div",{class:"section-title"},"打卡规则",-1)),l("div",q0,[l("div",H0,[P[26]||(P[26]=l("label",null,"上班时间",-1)),Me(l("input",{type:"time",class:"input","onUpdate:modelValue":P[4]||(P[4]=Z=>t.value.work_start=Z)},null,512),[[Ne,t.value.work_start]])]),l("div",z0,[P[27]||(P[27]=l("label",null,"下班时间",-1)),Me(l("input",{type:"time",class:"input","onUpdate:modelValue":P[5]||(P[5]=Z=>t.value.work_end=Z)},null,512),[[Ne,t.value.work_end]])]),l("div",W0,[P[28]||(P[28]=l("label",null,"迟到宽限(分钟)",-1)),Me(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":P[6]||(P[6]=Z=>t.value.grace_minutes=Z)},null,512),[[Ne,t.value.grace_minutes,void 0,{number:!0}]])]),l("div",G0,[P[29]||(P[29]=l("label",null,"午休扣除(分钟)",-1)),Me(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":P[7]||(P[7]=Z=>t.value.lunch_minutes=Z)},null,512),[[Ne,t.value.lunch_minutes,void 0,{number:!0}]])]),l("div",Y0,[P[31]||(P[31]=l("label",null,"周记提醒",-1)),Me(l("select",{class:"select","onUpdate:modelValue":P[8]||(P[8]=Z=>t.value.remind_weekly=Z)},[...P[30]||(P[30]=[l("option",{value:"friday"},"每周五提醒",-1),l("option",{value:"off"},"关闭",-1)])],512),[[fs,t.value.remind_weekly]])])]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:bt},"保存规则")])]),l("div",J0,[P[33]||(P[33]=l("div",{class:"section-title"},"项目管理",-1)),l("div",X0,[Me(l("input",{class:"input","onUpdate:modelValue":P[9]||(P[9]=Z=>r.value=Z),placeholder:"新项目名称",onKeydown:Mt(It,["enter"])},null,544),[[Ne,r.value]]),l("button",{class:"btn btn-sm",onClick:It},"添加")]),o.value?($(),A("div",Q0,W(o.value),1)):ge("",!0),($(!0),A(je,null,et(n.value,Z=>($(),A("div",{key:Z.id,class:"proj-row"},[b.value===Z.id?($(),A(je,{key:0},[Me(l("input",{class:"input","onUpdate:modelValue":P[10]||(P[10]=te=>g.value=te),onKeydown:Mt(te=>h(Z),["enter"])},null,40,Z0),[[Ne,g.value]]),l("button",{class:"btn btn-sm",onClick:te=>h(Z)},"保存",8,ek),l("button",{class:"btn btn-sm",onClick:P[11]||(P[11]=te=>b.value=null)},"取消")],64)):($(),A(je,{key:1},[l("span",{class:Ze(["proj-name",{archived:Z.archived===1}])},W(Z.name),3),l("button",{class:"icon-btn",title:"重命名",onClick:te=>fe(Z)},[Ce(He,{name:"edit",size:14})],8,tk),l("button",{class:"btn btn-sm",onClick:te=>y(Z)},W(Z.archived===1?"恢复":"归档"),9,nk)],64))]))),128)),n.value.length?ge("",!0):($(),A("div",sk,"暂无项目,先添加一个"))]),l("div",rk,[P[35]||(P[35]=l("div",{class:"section-title"},"常用地点",-1)),Me(l("textarea",{class:"textarea","onUpdate:modelValue":P[12]||(P[12]=Z=>i.value=Z),placeholder:"每行一个地点,如:公司、客户现场、出差、居家办公"},null,512),[[Ne,i.value]]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:wt},"保存地点"),P[34]||(P[34]=l("span",{class:"muted loc-note"},"打卡时可直接输入新地点,保存后自动加入列表",-1))])]),l("div",ok,[P[36]||(P[36]=l("div",{class:"section-title"},"多端数据同步",-1)),l("div",ak,"云端账号:"+W(ne.value||"未绑定")+" · 数据存于服务器,其他端变更秒级自动刷新",1),l("div",ik,[l("button",{class:"btn btn-primary btn-sm",disabled:Pe.value,onClick:Ee},W(Pe.value?"同步中":"立即同步"),9,lk),l("button",{class:"btn btn-sm",onClick:ke},"重新校验连接")]),Ie.value?($(),A("div",uk,"上次同步:"+W(Ue.value||"--")+" · "+W(Ie.value),1)):ge("",!0),Ae.value?($(),A("div",ck,W(Ae.value),1)):ge("",!0),ye.value?($(),A("div",dk,"最近自动同步失败:"+W(ye.value)+"(可点「立即同步」重试)",1)):ge("",!0)]),l("div",fk,[P[41]||(P[41]=l("div",{class:"section-title"},"AI 润色配置(可选)",-1)),l("div",pk,[l("div",vk,[P[37]||(P[37]=l("label",null,"接口地址(OpenAI 兼容,到 /v1 为止)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":P[13]||(P[13]=Z=>c.value=Z),placeholder:"https://api.example.com/v1"},null,512),[[Ne,c.value]])]),l("div",mk,[P[38]||(P[38]=l("label",null,"API Key",-1)),Me(l("input",{class:"input","onUpdate:modelValue":P[14]||(P[14]=Z=>f.value=Z),placeholder:"sk-..."},null,512),[[Ne,f.value]])]),l("div",hk,[P[39]||(P[39]=l("label",null,"模型名称",-1)),Me(l("input",{class:"input","onUpdate:modelValue":P[15]||(P[15]=Z=>v.value=Z),placeholder:"如:deepseek-chat"},null,512),[[Ne,v.value]])])]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:De},"保存 AI 配置"),P[40]||(P[40]=l("span",{class:"muted loc-note"},"配置仅保存在本机;总结页「AI 润色」需此处先配置",-1))])]),l("div",yk,[P[45]||(P[45]=l("div",{class:"section-title"},"工作分类",-1)),l("div",gk,[l("div",bk,[P[42]||(P[42]=l("span",{class:"muted"},"工作记录分类",-1)),l("button",{class:"btn btn-xs",onClick:P[16]||(P[16]=Z=>J("log"))},"添加")]),l("div",wk,[($(!0),A(je,null,et(_.value,(Z,te)=>($(),A("span",{key:Z+te,class:"cat-chip"},[vt(W(Z)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Se=>oe("log",te,Z)},"改",8,_k),l("button",{class:"chip-btn",title:"删除",onClick:Se=>ue("log",te)},"删",8,kk)]))),128))])]),l("div",xk,[l("div",Ck,[P[43]||(P[43]=l("span",{class:"muted"},"记账支出分类",-1)),l("button",{class:"btn btn-xs",onClick:P[17]||(P[17]=Z=>J("expense"))},"添加")]),l("div",$k,[($(!0),A(je,null,et(T.value,(Z,te)=>($(),A("span",{key:Z+te,class:"cat-chip"},[vt(W(Z)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Se=>oe("expense",te,Z)},"改",8,Sk),l("button",{class:"chip-btn",title:"删除",onClick:Se=>ue("expense",te)},"删",8,Ek)]))),128))])]),l("div",Tk,[l("div",Ak,[P[44]||(P[44]=l("span",{class:"muted"},"记账收入分类",-1)),l("button",{class:"btn btn-xs",onClick:P[18]||(P[18]=Z=>J("income"))},"添加")]),l("div",Pk,[($(!0),A(je,null,et(x.value,(Z,te)=>($(),A("span",{key:Z+te,class:"cat-chip"},[vt(W(Z)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Se=>oe("income",te,Z)},"改",8,Ok),l("button",{class:"chip-btn",title:"删除",onClick:Se=>ue("income",te)},"删",8,Mk)]))),128))])])]),l("div",Ik,[P[46]||(P[46]=l("div",{class:"section-title"},"数据备份",-1)),l("div",jk,[l("button",{class:"btn btn-sm",onClick:C},"导出 JSON 备份"),l("button",{class:"btn btn-sm",onClick:P[19]||(P[19]=Z=>{var te;return(te=ce.value)==null?void 0:te.click()})},"导入 JSON 备份"),l("button",{class:"btn btn-sm",onClick:ct},"导出工作记录 CSV"),l("button",{class:"btn btn-sm",onClick:gt},"导出考勤 CSV"),l("input",{ref_key:"fileInput",ref:ce,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:R},null,544)]),S.value?($(),A("div",Dk,W(S.value),1)):ge("",!0),P[47]||(P[47]=l("div",{class:"muted backup-note"},"数据保存在云端服务器;导出的 JSON 备份用于跨设备迁移或灾后恢复。",-1))]),Ce(Dn,{open:!!q.value,title:"导入确认",message:q.value?"将从文件「"+q.value.name+"」导入备份。现有全部数据将被覆盖,且不可恢复,请先确认已导出当前备份。":"","confirm-text":"覆盖导入",danger:"",onCancel:P[20]||(P[20]=Z=>q.value=null),onConfirm:F},null,8,["open","message"]),Ce(Dn,{open:E.value,title:"删除用户确认",message:"将永久删除云端账号「"+H.value+"」及其服务器上的全部数据:工作日志、考勤、备忘录、账号密码库都将被清除,任何设备都无法再取回,且不可恢复。请确认。","confirm-text":"永久删除",danger:"",onCancel:P[21]||(P[21]=Z=>E.value=!1),onConfirm:$e},null,8,["open","message"])]))}}),Rk=Vt(Lk,[["__scopeId","data-v-d8d0f782"]]),Kk={class:"admin-page"},Nk={class:"card sec"},Fk={class:"toolbar"},Vk={key:0,class:"form-error"},Bk={class:"card table-card admin-table-card"},Uk={class:"admin-table"},qk={class:"td-name","data-label":"用户名"},Hk={"data-label":"角色"},zk={key:0,class:"role-badge"},Wk={key:1,class:"muted"},Gk={class:"muted num","data-label":"创建时间"},Yk={class:"muted num","data-label":"数据量"},Jk={class:"td-ops"},Xk={class:"ops"},Qk=["onClick"],Zk=["disabled","onClick"],ex={key:0},tx={key:0,class:"muted load-line"},nx={class:"dialog create-dialog",role:"dialog","aria-label":"新增用户"},sx={class:"dialog-head"},rx={class:"dialog-body"},ox={class:"form-row"},ax={class:"form-row"},ix={class:"form-row"},lx={key:0,class:"form-error"},ux={class:"dialog-btns"},cx=["disabled"],dx={class:"dialog create-dialog",role:"dialog","aria-label":"重置密码"},fx={class:"dialog-head"},px={class:"dialog-title"},vx={class:"dialog-body"},mx={class:"form-row"},hx={key:0,class:"form-error"},yx={class:"dialog-btns"},gx=["disabled"],bx=Rt({__name:"UserAdminView",setup(e){const t=O([]),n=O(""),r=O(!0),o=O("");async function i(M,E){const I=await Ns();let ne=$a();if(!ne){const Ae=wn(),ye=await fetch(I+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ae==null?void 0:Ae.username,password:Ae==null?void 0:Ae.password})});if(ye.ok){const Pe=await ye.json();ne=String(Pe.token||""),Ur(ne)}}const Ie=await fetch(I+M,{method:E?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:E?JSON.stringify(E):void 0});if(Ie.status===401&&wn()){const Ae=wn(),ye=await fetch(I+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ae==null?void 0:Ae.username,password:Ae==null?void 0:Ae.password})});if(ye.ok){const Pe=await ye.json();ne=String(Pe.token||""),Ur(ne);const Ue=await fetch(I+M,{method:E?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:E?JSON.stringify(E):void 0});return{ok:Ue.ok,status:Ue.status,data:await Ue.json().catch(()=>({}))}}}return{ok:Ie.ok,status:Ie.status,data:await Ie.json().catch(()=>({}))}}async function c(){r.value=!0,o.value="";const M=await i("/api/admin/users");if(!M.ok){r.value=!1,o.value=M.data&&M.data.error||"加载失败 "+M.status;return}t.value=M.data.users||[],n.value=M.data.me||"",r.value=!1}function f(M){return M<=0?"--":M<1024?M+" B":M<1024*1024?(M/1024).toFixed(1)+" KB":(M/1024/1024).toFixed(2)+" MB"}function v(M){return(M||"").slice(0,10)}const b=O(!1),g=O(""),_=O(""),T=O(""),x=O(""),j=O(!1);function J(){b.value=!0,x.value="",g.value="",_.value="",T.value=""}async function oe(){const M=g.value.trim();if(_.value!==T.value){x.value="两次输入的密码不一致";return}if(_.value.length<6){x.value="密码至少 6 位";return}j.value=!0;const E=await i("/api/admin/users/create",{username:M,password:_.value});if(j.value=!1,!E.ok){x.value=E.data&&E.data.error||"创建失败 "+E.status;return}Ve("用户「"+M+"」已创建"),b.value=!1,await c()}const ue=O(null),ce=O(""),q=O(""),S=O(!1);function H(M){ue.value=M,ce.value="",q.value=""}async function Q(){if(!ue.value)return;if(ce.value.length<6){q.value="密码至少 6 位";return}S.value=!0;const M=await i("/api/admin/users/password",{userId:ue.value.id,newPassword:ce.value});if(S.value=!1,!M.ok){q.value=M.data&&M.data.error||"重置失败 "+M.status;return}Ve("已重置「"+ue.value.username+"」的登录密码"),ue.value=null}const G=O(null);async function re(){if(!G.value)return;const M=await i("/api/admin/users/delete",{userId:G.value.id});if(!M.ok){G.value=null,Ve(M.data&&M.data.error||"删除失败");return}Ve("已删除账号「"+G.value.username+"」及其全部云端数据"),G.value=null,await c()}return vn(c),(M,E)=>($(),A("div",Kk,[l("div",Nk,[l("div",Fk,[E[12]||(E[12]=l("div",{class:"head-wrap"},[l("div",{class:"sec-title"},"用户管理"),l("div",{class:"muted head-sub"},"云端账号统一管理 · 管理员:xionglin")],-1)),l("button",{class:"btn btn-primary btn-sm",onClick:J},[Ce(He,{name:"plus",size:14}),E[11]||(E[11]=vt(" 新增用户 ",-1))])]),o.value?($(),A("div",Vk,W(o.value),1)):ge("",!0)]),l("div",Bk,[l("table",Uk,[E[14]||(E[14]=l("thead",null,[l("tr",null,[l("th",null,"用户名"),l("th",null,"角色"),l("th",null,"创建时间"),l("th",null,"数据量"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),A(je,null,et(t.value,I=>($(),A("tr",{key:I.id},[l("td",qk,W(I.username),1),l("td",Hk,[I.role==="admin"?($(),A("span",zk,"管理员")):($(),A("span",Wk,"普通用户"))]),l("td",Gk,W(v(I.created_at)),1),l("td",Yk,W(f(I.data_bytes)),1),l("td",Jk,[l("div",Xk,[l("button",{class:"btn btn-xs",onClick:ne=>H(I)},"重置密码",8,Qk),l("button",{class:"btn btn-xs btn-danger",disabled:I.id===n.value,onClick:ne=>G.value=I},"删除",8,Zk)])])]))),128)),!r.value&&!t.value.length?($(),A("tr",ex,[...E[13]||(E[13]=[l("td",{colspan:"5",class:"empty muted"},"加载结果为空",-1)])])):ge("",!0)])]),r.value?($(),A("div",tx,"加载中")):ge("",!0)]),E[20]||(E[20]=l("div",{class:"muted admin-note"},"重置密码立即生效;删除账号将移除其全部云端数据,不可恢复。自己的账号不能删除。",-1)),($(),St(Hn,{to:"body"},[b.value?($(),A("div",{key:0,class:"fixed-mask",onClick:E[5]||(E[5]=zt(I=>b.value=!1,["self"]))},[l("div",nx,[l("div",sx,[E[15]||(E[15]=l("span",{class:"dialog-title"},"新增用户",-1)),l("button",{class:"icon-btn",onClick:E[0]||(E[0]=I=>b.value=!1)},[Ce(He,{name:"close",size:16})])]),l("div",rx,[l("div",ox,[E[16]||(E[16]=l("label",null,"用户名(2 到 20 个字符)",-1)),Me(l("input",{class:"input","onUpdate:modelValue":E[1]||(E[1]=I=>g.value=I),placeholder:"如:xiaowang"},null,512),[[Ne,g.value]])]),l("div",ax,[E[17]||(E[17]=l("label",null,"初始登录密码(至少 6 位)",-1)),Me(l("input",{class:"input",type:"password","onUpdate:modelValue":E[2]||(E[2]=I=>_.value=I),placeholder:"转发给使用者,登录后可自行修改"},null,512),[[Ne,_.value]])]),l("div",ix,[E[18]||(E[18]=l("label",null,"确认密码",-1)),Me(l("input",{class:"input",type:"password","onUpdate:modelValue":E[3]||(E[3]=I=>T.value=I),onKeydown:Mt(oe,["enter"])},null,544),[[Ne,T.value]])]),x.value?($(),A("div",lx,W(x.value),1)):ge("",!0)]),l("div",ux,[l("button",{class:"btn btn-sm",onClick:E[4]||(E[4]=I=>b.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:j.value||!g.value.trim(),onClick:oe},W(j.value?"创建中":"创建"),9,cx)])])])):ge("",!0)])),($(),St(Hn,{to:"body"},[ue.value?($(),A("div",{key:0,class:"fixed-mask",onClick:E[9]||(E[9]=zt(I=>ue.value=null,["self"]))},[l("div",dx,[l("div",fx,[l("span",px,"重置「"+W(ue.value.username)+"」的登录密码",1),l("button",{class:"icon-btn",onClick:E[6]||(E[6]=I=>ue.value=null)},[Ce(He,{name:"close",size:16})])]),l("div",vx,[l("div",mx,[E[19]||(E[19]=l("label",null,"新登录密码(至少 6 位)",-1)),Me(l("input",{class:"input",type:"password","onUpdate:modelValue":E[7]||(E[7]=I=>ce.value=I),onKeydown:Mt(Q,["enter"])},null,544),[[Ne,ce.value]])]),q.value?($(),A("div",hx,W(q.value),1)):ge("",!0)]),l("div",yx,[l("button",{class:"btn btn-sm",onClick:E[8]||(E[8]=I=>ue.value=null)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:S.value,onClick:Q},W(S.value?"提交中":"重置"),9,gx)])])])):ge("",!0)])),Ce(Dn,{open:!!G.value,title:"删除用户确认",message:G.value?"将永久删除云端账号「"+G.value.username+"」及其服务器上的全部数据,不可恢复。请确认。":"","confirm-text":"永久删除",danger:"",onCancel:E[10]||(E[10]=I=>G.value=null),onConfirm:re},null,8,["open","message"])]))}}),wx=Vt(bx,[["__scopeId","data-v-06be07ff"]]),_x={class:"login-page"},kx={class:"card login-card"},xx={class:"login-brand"},Cx={class:"brand-icon"},$x={class:"seg"},Sx=["placeholder"],Ex={key:1,class:"form-error"},Tx=["disabled"],Ax=Rt({__name:"LoginView",emits:["login"],setup(e,{emit:t}){const n=t,r=O("login"),o=O(""),i=O(""),c=O(""),f=O(""),v=O(!1);function b(_){r.value=_,f.value="",c.value=""}async function g(){if(!v.value){f.value="",v.value=!0;try{let _;if(r.value==="login")_=await Tm(o.value,i.value);else{if(i.value.length<6){f.value="登录密码至少 6 位",v.value=!1;return}if(i.value!==c.value){f.value="两次输入的密码不一致",v.value=!1;return}_=await Am(o.value,i.value)}n("login",_)}catch(_){f.value=_ instanceof Error?_.message:"操作失败"}v.value=!1}}return(_,T)=>($(),A("div",_x,[l("div",kx,[l("div",xx,[l("div",Cx,[Ce(He,{name:"calendar",size:22})]),T[5]||(T[5]=l("div",{class:"login-title"},"实习工作日志",-1)),T[6]||(T[6]=l("div",{class:"muted login-sub"},"打卡 · 记录 · 总结 · 备忘录 · 密码库",-1)),T[7]||(T[7]=l("div",{class:"muted login-sub"},"数据保存在云端服务器,所有设备登录同一账号即可实时同步",-1))]),l("div",$x,[l("button",{class:Ze(["seg-btn",{active:r.value==="login"}]),onClick:T[0]||(T[0]=x=>b("login"))},"登录",2),l("button",{class:Ze(["seg-btn",{active:r.value==="create"}]),onClick:T[1]||(T[1]=x=>b("create"))},"创建用户",2)]),Me(l("input",{class:"input","onUpdate:modelValue":T[2]||(T[2]=x=>o.value=x),placeholder:"用户名(2 到 20 个字符)",onKeydown:Mt(g,["enter"])},null,544),[[Ne,o.value]]),Me(l("input",{type:"password",class:"input","onUpdate:modelValue":T[3]||(T[3]=x=>i.value=x),placeholder:r.value==="login"?"登录密码":"设置登录密码(至少 6 位)",onKeydown:Mt(g,["enter"])},null,40,Sx),[[Ne,i.value]]),r.value==="create"?Me(($(),A("input",{key:0,type:"password",class:"input","onUpdate:modelValue":T[4]||(T[4]=x=>c.value=x),placeholder:"再次输入密码",onKeydown:Mt(g,["enter"])},null,544)),[[Ne,c.value]]):ge("",!0),f.value?($(),A("div",Ex,W(f.value),1)):ge("",!0),l("button",{class:"btn btn-primary login-btn",disabled:v.value,onClick:g},W(r.value==="login"?"登录":"创建并进入"),9,Tx),T[8]||(T[8]=l("div",{class:"muted login-note"}," 登录密码仅服务器保存哈希;本机保存加密的自动登录凭据,登录后无需重复输入 ",-1))])]))}}),Px=Vt(Ax,[["__scopeId","data-v-bf714afa"]]),Ox={key:1,class:"app"},Mx={class:"side"},Ix={key:0,class:"nav-sep"},jx=["data-tip","onClick"],Dx={class:"main"},Lx={class:"topbar"},Rx={class:"title"},Kx={class:"gsearch"},Nx={key:0,class:"gs-panel"},Fx={key:0,class:"gs-group muted"},Vx=["onMousedown"],Bx={class:"tag"},Ux={class:"gs-text"},qx={class:"muted num gs-date"},Hx={key:1,class:"gs-group muted"},zx=["onMousedown"],Wx={class:"gs-text"},Gx={class:"muted gs-sub"},Yx={key:1,class:"gs-empty muted"},Jx={class:"topbar-actions"},Xx={class:"user-chip num mobile-hide"},Qx=["disabled"],Zx={class:"num"},eC={class:"content"},tC={class:"content-inner"},nC={class:"tabbar"},sC=["onClick"],rC={class:"sheet-user num"},oC=["onClick"],aC={class:"sheet-name"},iC={class:"msw"},lC={class:"msw-bar"},uC={class:"msw-results"},cC={key:0,class:"gs-group muted"},dC=["onMousedown"],fC={class:"tag"},pC={class:"gs-text"},vC={class:"muted num gs-date"},mC={key:1,class:"gs-group muted"},hC=["onMousedown"],yC={class:"gs-text"},gC={class:"muted gs-sub"},bC={key:1,class:"gs-empty muted"},wC={class:"toast-wrap"},_C=Rt({__name:"App",setup(e){const t=dy(),n=O(qr());async function r(h){n.value=h,ia(h.userId),location.hash="#/calendar",H.value="calendar",await De(),await fe(),c();try{await gd(),await tr()}catch{}Ve("欢迎,"+h.username);const y=sessionStorage.getItem("dsh_migrate_toast");y&&(sessionStorage.removeItem("dsh_migrate_toast"),Ve("已迁移原有数据 "+y+" 条"))}async function o(){Pe.value=!1,Ae.value=!1,qm(),i!==null&&(window.clearInterval(i),i=null),await Om(),n.value=null,H.value="calendar",location.hash="#/calendar",Ve("已退出登录")}let i=null;function c(){Um(),i!==null&&window.clearInterval(i),i=window.setInterval(()=>{tr()},60*1e3),tr()}const f=O(null),v=O(""),b=O(!1),g=O({logs:[],memos:[]});let _=null;const T=rt(()=>!!(g.value.logs.length||g.value.memos.length));function x(){_&&window.clearTimeout(_);const h=v.value;_=window.setTimeout(async()=>{const y=h.trim();if(!y){g.value={logs:[],memos:[]};return}const C=await Promise.all([Ih(y,8),jh(y,4)]);g.value={logs:C[0],memos:C[1]}},200)}function j(){v.value="",g.value={logs:[],memos:[]},b.value=!1}function J(h){Fi.value=h.date,Q("calendar"),j()}function oe(h){Vi.value=h.id,Q("memo"),j()}function ue(){window.setTimeout(()=>{b.value=!1},150)}function ce(h){var y;(h.ctrlKey||h.metaKey)&&h.key.toLowerCase()==="k"&&(h.preventDefault(),(y=f.value)==null||y.focus())}const q=[{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 y;const h=(location.hash||"").replace("#/","");return!q.some(C=>C.key===h)||h==="admin"&&(((y=qr())==null?void 0:y.username)||"")!=="xionglin"?"calendar":h}const H=O(S());window.addEventListener("hashchange",()=>{H.value=S()});function Q(h){location.hash="#/"+h}const G=rt(()=>q.find(h=>h.key===H.value)||q[0]),re=rt(()=>{var h;return(((h=n.value)==null?void 0:h.username)||"")==="xionglin"}),M=rt(()=>re.value?q:q.filter(h=>h.key!=="admin")),E=rt(()=>{const h=q.filter(y=>!ne.includes(y.key));return re.value?h:h.filter(y=>y.key!=="admin")}),I=rt(()=>E.value.some(h=>h.key===H.value));yt([re,H],()=>{H.value==="admin"&&!re.value&&Q("calendar")},{immediate:!0});const ne=["calendar","today","plan","ledger"],Ie=q.filter(h=>ne.includes(h.key)),Ae=O(!1);function ye(h){Ae.value=!1,Q(h)}const Pe=O(!1),Ue=O(null);function de(){Pe.value=!0,window.setTimeout(()=>{var h;return(h=Ue.value)==null?void 0:h.focus()},60)}function ke(h){J(h),Pe.value=!1}function Ee(h){oe(h),Pe.value=!1}const Le=O(ot()),$e=O(void 0),pe=O(!1);async function De(){if($e.value=await _n(Le.value),pe.value=!1,new Date().getHours()<4){const y=await _n(Ft(Le.value,-1));pe.value=!!(y&&y.clock_in_at&&!y.clock_out_at)}}const ct=rt(()=>{const h=$e.value;return h&&h.clock_in_at&&!h.clock_out_at?!0:pe.value&&!(h&&h.clock_in_at)}),gt=rt(()=>{const h=$e.value;return!!(h&&h.clock_in_at&&h.clock_out_at)}),bt=rt(()=>{const h=$e.value;return ct.value?"下班打卡":gt.value?"已打卡 "+bn(h==null?void 0:h.clock_in_at)+" - "+bn(h==null?void 0:h.clock_out_at):"上班打卡"});async function wt(){if(ct.value)try{await oh()}catch{}else await $d(Le.value);await De(),os()}yt(ur,()=>{n.value&&De()});const It=O(!1);async function fe(){if((await ps()).remind_weekly==="off"){It.value=!1;return}const y=new Date().getDay();if(y===5||y===6||y===0){const C=await hl(Qs(Le.value));It.value=!C||!C.highlights&&!C.challenges&&!C.plan_next}else It.value=!1}return vn(async()=>{window.addEventListener("keydown",ce),n.value&&(ia(n.value.userId),await De(),await fe(),c())}),(h,y)=>{var C,R;return n.value?($(),A("div",Ox,[l("nav",Mx,[($(!0),A(je,null,et(M.value,(F,le)=>($(),A(je,{key:F.key},[le>0&&F.group!==M.value[le-1].group?($(),A("div",Ix)):ge("",!0),l("button",{class:Ze(["nav-btn",{active:H.value===F.key}]),"data-tip":F.name,onClick:ee=>Q(F.key)},[Ce(He,{name:F.icon,size:18},null,8,["name"])],10,jx)],64))),128))]),l("div",Dx,[l("header",Lx,[l("span",Rx,W(G.value.name),1),l("button",{class:"mob-search-btn",title:"搜索",onClick:de},[Ce(He,{name:"search",size:16})]),l("div",Kx,[Ce(He,{name:"search",size:14,class:"gs-icon"}),Me(l("input",{ref_key:"gsInput",ref:f,class:"input gs-input","onUpdate:modelValue":y[0]||(y[0]=F=>v.value=F),placeholder:"搜索工作记录与备忘录(Ctrl+K)",onInput:x,onFocus:y[1]||(y[1]=F=>b.value=!0),onBlur:ue,onKeydown:Mt(j,["esc"])},null,544),[[Ne,v.value]]),b.value&&v.value.trim()?($(),A("div",Nx,[T.value?($(),A(je,{key:0},[g.value.logs.length?($(),A("div",Fx,"工作记录")):ge("",!0),($(!0),A(je,null,et(g.value.logs,F=>($(),A("div",{key:"l"+F.id,class:"gs-item",onMousedown:zt(le=>J(F),["prevent"])},[l("span",Bx,W(un(ta)(F.category)),1),l("span",Ux,W(F.content),1),l("span",qx,W(F.date),1)],40,Vx))),128)),g.value.memos.length?($(),A("div",Hx,"备忘录")):ge("",!0),($(!0),A(je,null,et(g.value.memos,F=>($(),A("div",{key:"m"+F.id,class:"gs-item",onMousedown:zt(le=>oe(F),["prevent"])},[l("span",Wx,W(F.title||"无标题"),1),l("span",Gx,W(F.content),1)],40,zx))),128))],64)):($(),A("div",Yx,"无匹配结果"))])):ge("",!0)]),y[12]||(y[12]=l("span",{class:"flex1"},null,-1)),l("div",Jx,[It.value?($(),A("button",{key:0,class:"week-tip",onClick:y[2]||(y[2]=F=>Q("report"))},[...y[11]||(y[11]=[l("span",{class:"dot",style:{background:"var(--warn)"}},null,-1),vt(" 填写本周周记 ",-1)])])):ge("",!0),l("span",Xx,W((C=n.value)==null?void 0:C.username),1),l("button",{class:"btn btn-sm mobile-hide",onClick:o},"退出"),l("button",{class:"btn btn-primary btn-sm",disabled:gt.value,onClick:wt},[Ce(He,{name:gt.value?"check-circle":"clock",size:14},null,8,["name"]),l("span",Zx,W(bt.value),1)],8,Qx)])]),l("main",eC,[l("div",tC,[H.value==="calendar"?($(),St(_g,{key:0})):H.value==="today"?($(),St(qg,{key:1})):H.value==="plan"?($(),St(ew,{key:2})):H.value==="stats"?($(),St(Ow,{key:3})):H.value==="report"?($(),St(h_,{key:4})):H.value==="ledger"?($(),St(g1,{key:5})):H.value==="memo"?($(),St(L1,{key:6})):H.value==="vault"?($(),St(M0,{key:7})):H.value==="admin"?($(),St(wx,{key:8})):($(),St(Rk,{key:9}))])]),l("nav",nC,[($(!0),A(je,null,et(un(Ie),F=>($(),A("button",{key:F.key,class:Ze(["tab-btn",{active:H.value===F.key}]),onClick:le=>Q(F.key)},[Ce(He,{name:F.icon,size:20},null,8,["name"]),l("span",null,W(F.name),1)],10,sC))),128)),l("button",{class:Ze(["tab-btn",{active:I.value}]),onClick:y[3]||(y[3]=F=>Ae.value=!0)},[Ce(He,{name:"more",size:20}),y[13]||(y[13]=l("span",null,"更多",-1))],2)]),Ae.value?($(),A("div",{key:0,class:"sheet-mask",onClick:y[6]||(y[6]=F=>Ae.value=!1)},[l("div",{class:"more-sheet",onClick:y[5]||(y[5]=zt(()=>{},["stop"]))},[l("div",rC,W((R=n.value)==null?void 0:R.username),1),($(!0),A(je,null,et(E.value,F=>($(),A("button",{key:F.key,class:"sheet-row",onClick:le=>ye(F.key)},[Ce(He,{name:F.icon,size:18},null,8,["name"]),l("span",aC,W(F.name),1),Ce(He,{name:"chevron-right",size:14,class:"sheet-go"})],8,oC))),128)),y[15]||(y[15]=l("div",{class:"sheet-divider"},null,-1)),l("button",{class:"sheet-row sheet-danger",onClick:y[4]||(y[4]=F=>{Ae.value=!1,o()})},[Ce(He,{name:"close",size:18}),y[14]||(y[14]=l("span",{class:"sheet-name"},"退出登录",-1))])])])):ge("",!0),Pe.value?($(),A("div",{key:1,class:"msw-mask",onClick:y[10]||(y[10]=zt(F=>Pe.value=!1,["self"]))},[l("div",iC,[l("div",lC,[Ce(He,{name:"search",size:16,class:"msw-icon"}),Me(l("input",{ref_key:"msInput",ref:Ue,class:"msw-input","onUpdate:modelValue":y[7]||(y[7]=F=>v.value=F),placeholder:"搜索工作记录与备忘录",onInput:x,onKeydown:y[8]||(y[8]=Mt(F=>Pe.value=!1,["esc"]))},null,544),[[Ne,v.value]]),l("button",{class:"icon-btn",onClick:y[9]||(y[9]=F=>{j(),Pe.value=!1})},[Ce(He,{name:"close",size:16})])]),l("div",uC,[T.value?($(),A(je,{key:0},[g.value.logs.length?($(),A("div",cC,"工作记录")):ge("",!0),($(!0),A(je,null,et(g.value.logs,F=>($(),A("div",{key:"l"+F.id,class:"msw-item",onMousedown:zt(le=>ke(F),["prevent"])},[l("span",fC,W(un(ta)(F.category)),1),l("span",pC,W(F.content),1),l("span",vC,W(F.date),1)],40,dC))),128)),g.value.memos.length?($(),A("div",mC,"备忘录")):ge("",!0),($(!0),A(je,null,et(g.value.memos,F=>($(),A("div",{key:"m"+F.id,class:"msw-item",onMousedown:zt(le=>Ee(F),["prevent"])},[l("span",yC,W(F.title||"无标题"),1),l("span",gC,W(F.content),1)],40,hC))),128))],64)):v.value.trim()?($(),A("div",bC,"无匹配结果")):ge("",!0)])])])):ge("",!0)]),l("div",wC,[Ce(Tv,{name:"toast"},{default:ms(()=>[($(!0),A(je,null,et(un(t),F=>($(),A("div",{key:F.id,class:"toast"},W(F.text),1))),128))]),_:1})])])):($(),St(Px,{key:0,onLogin:r}))}}}),kC=Vt(_C,[["__scopeId","data-v-c88c3788"]]);function Vo(e,t){try{let n=document.getElementById("fatal-overlay");n||(n=document.createElement("div"),n.id="fatal-overlay",n.style.cssText="position:fixed;inset:0;z-index:99999;background:#FFFFFF;color:#1D2129;padding:20px;overflow:auto;font:13px/1.7 -apple-system,PingFang SC,Microsoft YaHei,sans-serif;",n.addEventListener("click",i=>{i.target===n&&n.parentElement&&n.parentElement.removeChild(n)}),document.body.appendChild(n));const r=document.createElement("div");r.style.cssText="border:1px solid #E5484D;border-radius:8px;padding:12px;margin-bottom:12px;word-break:break-all;white-space:pre-wrap;",r.textContent=e+`
`+t;const o=document.createElement("button");o.textContent="重新加载",o.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;",o.addEventListener("click",()=>{try{location.reload()}catch{}}),n.appendChild(r),n.appendChild(o)}catch{}}async function xC(){const e=await Pm();e&&ia(e.userId);const t=Uv(kC);t.config.errorHandler=(n,r,o)=>{const i=n;Vo("应用内部错误(点击空白处关闭,请将以下内容发送给开发者)",i&&(i.stack||i.message)||String(n)+`
触发位置: `+o)},window.addEventListener("unhandledrejection",n=>{const r=n.reason;Vo("未处理的异步错误(点击空白处关闭)",r&&(r.stack||r.message)||String(n.reason))}),window.addEventListener("error",n=>{n.message&&n.message!=="ResizeObserver loop limit exceeded"&&Vo("运行错误(点击空白处关闭)",n.message)}),t.mount("#app"),"serviceWorker"in navigator&&location.protocol.startsWith("http")&&window.addEventListener("load",()=>{navigator.serviceWorker.register("sw.js").catch(()=>{})})}xC().catch(e=>{Vo("无法启动:连接同步服务器失败",e&&(e.stack||e.message)||String(e))});export{jd as W,Od as _,Ig as b,Id as r};