28 lines
335 KiB
JavaScript
28 lines
335 KiB
JavaScript
(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 vt={},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),He=Array.isArray,as=e=>Gr(e)==="[object Map]",Ls=e=>Gr(e)==="[object Set]",Xl=e=>Gr(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,Gr=e=>zu.call(e),lf=e=>Gr(e).slice(8,-1),Wu=e=>Gr(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),Io=(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(He(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 Xe(e){let t="";if(Ct(e))t=e;else if(He(e))for(let n=0;n<e.length;n++){const r=Xe(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=He(e),o=He(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?"":He(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)&&!He(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 Rt;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&&Rt&&(Rt.active?(this.parent=Rt,this.index=(Rt.scopes||(Rt.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=Rt;try{return Rt=this,t()}finally{Rt=n}}}on(){++this._on===1&&(this.prevScope=Rt,Rt=this)}off(){if(this._on>0&&--this._on===0){if(Rt===this)Rt=this.prevScope;else{let t=Rt;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 Rt}let yt;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,Rt&&(Rt.active?Rt.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=yt,n=gn;yt=this,gn=!0;try{return this.fn()}finally{sc(this),yt=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=yt,r=gn;yt=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{yt=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=yt;yt=void 0;try{t()}finally{yt=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(!yt||!gn||yt===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==yt)n=this.activeLink=new Cf(yt,this),yt.deps?(n.prevDep=yt.depsTail,yt.depsTail.nextDep=n,yt.depsTail=n):yt.deps=yt.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=yt.depsTail,n.nextDep=void 0,yt.depsTail.nextDep=n,yt.depsTail=n,yt.deps===n&&(yt.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&&yt){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=He(e),b=v&&Yi(n);if(v&&n==="length"){const y=Number(r);c.forEach((_,E)=>{(E==="length"||E===Dr||!On(E)&&E>=y)&&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=>He(t)?Gs(t):t))},entries(){return ii(this,"entries",e=>(e[1]=Sn(this,e[1]),e))},every(e,t){return Rn(this,"every",e,t,void 0,arguments)},filter(e,t){return Rn(this,"filter",e,t,n=>n.map(r=>Sn(this,r)),arguments)},find(e,t){return Rn(this,"find",e,t,n=>Sn(this,n),arguments)},findIndex(e,t){return Rn(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Rn(this,"findLast",e,t,n=>Sn(this,n),arguments)},findLastIndex(e,t){return Rn(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Rn(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 Rn(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 Rn(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 Rn(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(_,E){return n.call(this,Sn(e,_),E,e)}:n.length>2&&(b=function(_,E){return n.call(this,_,E,e)}));const y=v.call(c,b,r);return f&&o?o(y):y}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,y,_){return f&&(f=!1,b=Sn(e,b)),n.call(this,b,Sn(e,y),_,e)}):n.length>3&&(c=function(b,y,_){return n.call(this,b,y,_,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?Kf:pc:i?fc:dc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const c=He(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=He(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",He(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,So=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),y=n?Ci:t?us:fn;return!t&&Ht(i,"iterate",v?xi:js),Pt(Object.create(b),{next(){const{value:_,done:E}=b.next();return E?{value:_,done:E}:{value:f?[y(_[0]),y(_[1])]:y(_),done:E}}})}}function Eo(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}=So(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((y,_)=>o.call(i,b(y),b(_),c))}};return Pt(n,e?{add:Eo("add"),set:Eo("set"),delete:Eo("delete"),clear:Eo("clear")}:{add(o){const i=ut(this),c=So(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}=So(c);let b=f.call(c,o);b||(o=ut(o),b=f.call(c,o));const y=v.call(c,o);return c.set(o,i),b?An(i,y)&&Vn(c,"set",o,i):Vn(c,"add",o,i),this},delete(o){const i=ut(this),{has:c,get:f}=So(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,Kf=new WeakMap;function Rf(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 Ff(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=Rf(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 Nf(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 on(e){return Gt(e)?e.value:e}const Uf={get:(e,t,n)=>t==="__v_raw"?e:on(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)&&yt!==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 To={},Uo=new WeakMap;let Es;function zf(e,t=!1,n=Es){if(n){let r=Uo.get(n);r||Uo.set(n,r=[]),r.push(e)}}function Wf(e,t,n=vt){const{immediate:r,deep:o,once:i,scheduler:c,augmentJob:f,call:v}=n,b=T=>o?T:dn(T)||o===!1||o===0?Bn(T,1):Bn(T);let y,_,E,C,M=!1,J=!1;if(Gt(e)?(_=()=>e.value,M=dn(e)):is(e)?(_=()=>b(e),M=!0):He(e)?(J=!0,M=e.some(T=>is(T)||dn(T)),_=()=>e.map(T=>{if(Gt(T))return T.value;if(is(T))return b(T);if(Ye(T))return v?v(T,2):T()})):Ye(e)?t?_=v?()=>v(e,2):e:_=()=>{if(E){Mn();try{E()}finally{In()}}const T=Es;Es=y;try{return v?v(e,3,[C]):e(C)}finally{Es=T}}:_=Pn,t&&o){const T=_,q=o===!0?1/0:o;_=()=>Bn(T(),q)}const oe=kf(),ue=()=>{y.stop(),oe&&oe.active&&Gi(oe.effects,y)};if(i&&t){const T=t;t=(...q)=>{try{return T(...q)}finally{ue()}}}let ce=J?new Array(e.length).fill(To):To;const U=T=>{if(!(!(y.flags&1)||!y.dirty&&!T))if(t){const q=y.run();if(T||o||M||(J?q.some((Z,G)=>An(Z,ce[G])):An(q,ce))){const Z=Es;Mn();try{E&&E(),Es=y;const G=[q,ce===To?void 0:J&&ce[0]===To?[]:ce,C];ce=q,v?v(t,3,G):t(...G)}finally{Es=Z,In()}}}else y.run()};return f&&f(U),y=new Zu(_),y.scheduler=c?()=>c(U,!1):U,C=T=>zf(T,!1,y),E=y.onStop=()=>{const T=Uo.get(y);if(T){if(v)v(T,4);else for(const q of T)q();Uo.delete(y)}},t?r?U(!0):ce=y.run():c?c(U.bind(null,!0),!0):y.run(),ue.pause=y.pause.bind(y),ue.resume=y.resume.bind(y),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(He(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 Yr(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=Yr(e,t,n,r);return o&&Hu(o)&&o.catch(i=>{ha(i,t,n)}),o}if(He(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||vt;if(t){let f=t.parent;const v=t.proxy,b=`https://vuejs.org/error-reference/#runtime-${n}`;for(;f;){const y=f.ec;if(y){for(let _=0;_<y.length;_++)if(y[_](e,v,b)===!1)return}f=f.parent}if(i){Mn(),Yr(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 qo=null;function ir(e){const t=qo||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(){qo||(qo=mc.then(bc))}function Jf(e){if(!He(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),Yr(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(),qo=null,(Zt.length||En.length)&&bc()}}let cn=null,wc=null;function Ho(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&&Yo(-1);const i=Ho(t),c=Ds.length;let f;try{f=e(...o)}finally{for(let v=Ds.length;v>c;v--)Gc();Ho(i),r._d&&Yo(1)}return f};return r._n=!0,r._c=!0,r._d=!0,r}function Oe(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=vt]=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 jo(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=()=>jo(Zf);function gt(e,t,n){return _c(e,t,n)}function _c(e,t,n=vt){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 C=ep();b=C.__watcherHandles||(C.__watcherHandles=[])}else if(!v){const C=()=>{};return C.stop=Pn,C.resume=Pn,C.pause=Pn,C}}const y=en;f.call=(C,M,J)=>pn(C,y,M,J);let _=!1;i==="post"?f.scheduler=C=>{C.i=y,Qt(C,y&&y.suspense)}:i!=="sync"&&(_=!0,f.scheduler=(C,M)=>{M?C():rl(C)}),f.augmentJob=C=>{t&&(C.flags|=4),_&&(C.flags|=2,y&&(C.id=y.uid,C.i=y))};const E=Wf(e,t,f);return Br&&(b?b.push(E):v&&E()),E}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=Jr(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:y,pc:_,pbc:E,o:{insert:C,querySelector:M,createText:J,createComment:oe,parentNode:ue}}=b,ce=As(t.props);let{dynamicChildren:U}=t;const T=(G,re,I)=>{G.shapeFlag&16&&y(G.children,re,I,o,i,c,f,v)},q=(G=t)=>{const re=As(G.props),I=G.target=Si(G.props,M),S=Ei(I,G,J,C);I&&(c!=="svg"&&ru(I)?c="svg":c!=="mathml"&&ou(I)&&(c="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(I),re||(T(G,I,S),xr(G,!1)))},Z=G=>{const re=()=>{if(ns.get(G)===re){if(ns.delete(G),As(G.props)){const I=ue(G.el)||n;T(G,I,G.anchor),xr(G,!0)}q(G)}};ns.set(G,re),Qt(re,i)};if(e==null){const G=t.el=J(""),re=t.anchor=J("");if(C(G,n,r),C(re,n,r),np(t.props)||i&&i.pendingBranch){Z(t);return}ce&&(T(t,n,re),xr(t,!0)),q()}else{t.el=e.el;const G=t.anchor=e.anchor,re=ns.get(e);if(re){re.flags|=8,ns.delete(e),Z(t);return}t.targetStart=e.targetStart;const I=t.target=e.target,S=t.targetAnchor=e.targetAnchor,j=As(e.props),ne=j?n:I,Me=j?G:S;if(c==="svg"||ru(I)?c="svg":(c==="mathml"||ou(I))&&(c="mathml"),U?(E(e.dynamicChildren,U,ne,o,i,c,f),ll(e,t,!0)):v||_(e,t,ne,Me,o,i,c,f,!1),ce)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ao(t,n,G,b,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Ee=Si(t.props,M);Ee&&(t.target=Ee,Ao(t,Ee,null,b,0))}else j&&Ao(t,I,S,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:y,target:_,props:E}=e,C=As(E),M=i||!C,J=ns.get(e);if(J&&(J.flags|=8,ns.delete(e)),_&&(o(b),o(y)),i&&o(v),!J&&(C||_)&&c&16)for(let oe=0;oe<f.length;oe++){const ue=f[oe];r(ue,t,n,M,!!ue.dynamicChildren)}},move:Ao,hydrate:rp};function Ao(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:y}=e,_=i===2;if(_&&r(c,t,n),!ns.has(e)&&(!_||As(y))&&v&16)for(let E=0;E<b.length;E++)o(b[E],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:y}},_){function E(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 C(oe,ue){ue.anchor=_(c(oe),ue,f(oe),n,r,o,i)}const M=t.target=Si(t.props,v),J=As(t.props);if(M){const oe=M._lpa||M.firstChild;t.shapeFlag&16&&(J?(C(e,t),E(M,oe),t.targetAnchor||Ei(M,t,y,b,f(e)===M?e:null)):(t.anchor=c(e),E(M,oe),t.targetAnchor||Ei(M,t,y,b),_(oe&&c(oe),t,M,n,r,o,i))),xr(t,J)}else J&&t.shapeFlag&16&&(C(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 un=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 ln=[Function,Array],$c={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ln,onEnter:ln,onAfterEnter:ln,onEnterCancelled:ln,onBeforeLeave:ln,onLeave:ln,onAfterLeave:ln,onLeaveCancelled:ln,onBeforeAppear:ln,onAppear:ln,onAfterAppear:ln,onAppearCancelled:ln},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?ye():void 0;if(!i)return;const c=ut(e),{mode:f}=c;if(r.isLeaving)return ci(i);const v=zo(i);if(!v)return ci(i);let b=Kr(v,c,r,n,_=>b=_);v.type!==Wt&&cs(v,b);let y=n.subTree&&zo(n.subTree);if(y&&y.type!==Wt&&!Ps(y,v)&&Rr(n.subTree)){let _=Kr(y,c,r,n);if(cs(y,_),f==="out-in"&&v.type!==Wt)return r.isLeaving=!0,_.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete _.afterLeave,y=void 0},ci(i);f==="in-out"&&v.type!==Wt?_.delayLeave=(E,C,M)=>{const J=Ec(r,y);J[String(y.key)]=y,E[un]=()=>{C(),E[un]=void 0,delete b.delayedLeave,y=void 0},b.delayedLeave=()=>{M(),delete b.delayedLeave,y=void 0}}:y=void 0}else y&&(y=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 Kr(e,t,n,r,o){const{appear:i,mode:c,persisted:f=!1,onBeforeEnter:v,onEnter:b,onAfterEnter:y,onEnterCancelled:_,onBeforeLeave:E,onLeave:C,onAfterLeave:M,onLeaveCancelled:J,onBeforeAppear:oe,onAppear:ue,onAfterAppear:ce,onAppearCancelled:U}=t,T=String(e.key),q=Ec(n,e),Z=(I,S)=>{I&&pn(I,r,9,S)},G=(I,S)=>{const j=S[1];Z(I,S),He(I)?I.every(ne=>ne.length<=1)&&j():I.length<=1&&j()},re={mode:c,persisted:f,beforeEnter(I){let S=v;if(!n.isMounted)if(i)S=oe||v;else return;I[un]&&I[un](!0);const j=q[T];if(j&&Ps(e,j)){let ne=j.el[un];if(!ne){const Me=Rr(j);ne=Me&&Me.el[un]}ne&&ne()}Z(S,[I])},enter(I){if(q[T]===e)return;let S=b,j=y,ne=_;if(!n.isMounted)if(i)S=ue||b,j=ce||y,ne=U||_;else return;let Me=!1;I[_r]=he=>{Me||(Me=!0,he?Z(ne,[I]):Z(j,[I]),re.delayedLeave&&re.delayedLeave(),I[_r]=void 0)};const Ee=I[_r].bind(null,!1);S?G(S,[I,Ee]):Ee()},leave(I,S){const j=String(e.key);if(I[_r]&&I[_r](!0),n.isUnmounting)return S();Z(E,[I]);let ne=!1;I[un]=Ee=>{ne||(ne=!0,S(),Ee?Z(J,[I]):Z(M,[I]),I[un]=void 0,q[j]===e&&delete q[j])};const Me=I[un].bind(null,!1);q[j]=e,C?G(C,[I,Me]):Me()},clone(I){const S=Kr(I,t,n,r,o);return o&&o(S),S}};return re}function ci(e){if(ga(e))return e=ds(e),e.children=null,e}function zo(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)&&zo(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&&He(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 Rr(e){if(e.component)return Rr(e.component.subTree);if(e.type===je){const t=He(e.children)&&Lc(e.children,!1);return t?Rr(t):void 0}if(e.type!==Wt)return e}function Lt(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 Wo=new WeakMap;function Ar(e,t,n,r,o=!1){if(He(e)){e.forEach((J,oe)=>Ar(J,t&&(He(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,y=f.refs===vt?f.refs={}:f.refs,_=f.setupState,E=ut(_),C=_===vt?qu:J=>au(y,J)?!1:dt(E,J),M=(J,oe)=>!(oe&&au(y,oe));if(b!=null&&b!==v){if(iu(t),Ct(b))y[b]=null,C(b)&&(_[b]=null);else if(Gt(b)){const J=t;M(b,J.k)&&(b.value=null),J.k&&(y[J.k]=null)}}if(Ye(v))Yr(v,f,12,[c,y]);else{const J=Ct(v),oe=Gt(v);if(J||oe){const ue=()=>{if(e.f){const ce=J?C(v)?_[v]:y[v]:M()||!e.k?v.value:y[e.k];if(o)He(ce)&&Gi(ce,i);else if(He(ce))ce.includes(i)||ce.push(i);else if(J)y[v]=[i],C(v)&&(_[v]=y[v]);else{const U=[i];M(v,e.k)&&(v.value=U),e.k&&(y[e.k]=U)}}else J?(y[v]=c,C(v)&&(_[v]=c)):oe&&(M(v,e.k)&&(v.value=c),e.k&&(y[e.k]=c))};if(c){const ce=()=>{ue(),Wo.delete(e)};ce.id=-1,Wo.set(e,ce),Qt(ce,n)}else iu(e),ue()}}}function iu(e){const t=Wo.get(e);t&&(t.flags|=8,Wo.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=Jr(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=He(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 y=0,_=e.length;y<_;y++)o[y]=t(v?b?us(fn(e[y])):fn(e[y]):e[y],y,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 y=f[v];o[v]=t(e[y],y,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!==vt&&!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 E=c[t];if(E!==void 0)switch(E){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!==vt&&dt(o,t))return c[t]=2,o[t];if(dt(i,t))return c[t]=3,i[t];if(n!==vt&&dt(n,t))return c[t]=4,n[t];Ai&&(c[t]=0)}}const b=Or[t];let y,_;if(b)return t==="$attrs"&&Ht(e.attrs,"get",""),b(e);if((y=f.__cssModules)&&(y=y[t]))return y;if(n!==vt&&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!==vt&&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!==vt&&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 He(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:y,beforeMount:_,mounted:E,beforeUpdate:C,updated:M,activated:J,deactivated:oe,beforeDestroy:ue,beforeUnmount:ce,destroyed:U,unmounted:T,render:q,renderTracked:Z,renderTriggered:G,errorCaptured:re,serverPrefetch:I,expose:S,inheritAttrs:j,components:ne,directives:Me,filters:Ee}=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,Se=!Ye(de)&&Ye(de.set)?de.set.bind(n):Pn,De=rt({get:ke,set:Se});Object.defineProperty(r,Ue,{enumerable:!0,configurable:!0,get:()=>De.value,set:$e=>De.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])})}y&&uu(y,e,"c");function Ae(Ue,de){He(de)?de.forEach(ke=>Ue(ke.bind(n))):de&&Ue(de.bind(n))}if(Ae(cp,_),Ae(vn,E),Ae(dp,C),Ae(Pc,M),Ae(ip,J),Ae(lp,oe),Ae(mp,re),Ae(vp,Z),Ae(pp,G),Ae(Oc,ce),Ae(Wn,T),Ae(fp,I),He(S))if(S.length){const Ue=e.exposed||(e.exposed={});S.forEach(de=>{Object.defineProperty(Ue,de,{get:()=>n[de],set:ke=>n[de]=ke,enumerable:!0})})}else e.exposed||(e.exposed={});q&&e.render===Pn&&(e.render=q),j!=null&&(e.inheritAttrs=j),ne&&(e.components=ne),Me&&(e.directives=Me),I&&Tc(e)}function bp(e,t,n=Pn){He(e)&&(e=Pi(e));for(const r in e){const o=e[r];let i;ft(o)?"default"in o?i=jo(o.from||r,o.default,!0):i=jo(o.from||r):i=jo(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(He(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)&>(o,i)}else if(Ye(e))gt(o,e.bind(n));else if(ft(e))if(He(e))e.forEach(i=>Mc(i,t,n,r));else{const i=Ye(e.handler)?e.handler.bind(n):t[e.handler];Ye(i)&>(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=>Go(v,b,c,!0)),Go(v,t,c)),ft(t)&&i.set(t,v),v}function Go(e,t,n,r=!1){const{mixins:o,extends:i}=t;i&&Go(e,i,n,!0),o&&o.forEach(c=>Go(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(He(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?He(e)&&He(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(y){},use(y,..._){return c.has(y)||(y&&Ye(y.install)?(c.add(y),y.install(b,..._)):Ye(y)&&(c.add(y),y(b,..._))),b},mixin(y){return i.mixins.includes(y)||i.mixins.push(y),b},component(y,_){return _?(i.components[y]=_,b):i.components[y]},directive(y,_){return _?(i.directives[y]=_,b):i.directives[y]},mount(y,_,E){if(!v){const C=b._ceVNode||we(r,o);return C.appContext=i,E===!0?E="svg":E===!1&&(E=void 0),e(C,y,E),v=!0,b._container=y,y.__vue_app__=b,ka(C.component)}},onUnmount(y){f.push(y)},unmount(){v&&(pn(f,b._instance,16),e(null,b._container),delete b._container.__vue_app__)},provide(y,_){return i.provides[y]=_,b},runWithContext(y){const _=Xs;Xs=b;try{return y()}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||vt;let o=n;const i=t.startsWith("update:"),c=i&&$p(r,t.slice(7));c&&(c.trim&&(o=n.map(y=>Ct(y)?y.trim():y)),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 y=Dc(b,t,!0);y&&(f=!0,Pt(c,y))};!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):(He(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:y,props:_,data:E,setupState:C,ctx:M,inheritAttrs:J}=e,oe=Ho(e);let ue,ce;try{if(n.shapeFlag&4){const T=o||r,q=T;ue=Tn(b.call(q,T,y,_,C,E,M)),ce=f}else{const T=t;ue=Tn(T.length>1?T(_,{attrs:f,slots:c,emit:v}):T(_,null)),ce=t.props?f:Tp(f)}}catch(T){Ds.length=0,ha(T,e,1),ue=we(Wt)}let U=ue;if(ce&&J!==!1){const T=Object.keys(ce),{shapeFlag:q}=U;T.length&&q&7&&(i&&T.some(da)&&(ce=Ap(ce,i)),U=ds(U,ce,!1,!0))}if(n.dirs&&(U=ds(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition){const T=ya(U.type)&&zo(U)||U;cs(T,n.transition)}return ue=U,Ho(oe),ue}function Lc(e,t=!0){let n;for(let r=0;r<e.length;r++){const o=e[r];if(Nr(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 y=t.dynamicProps;for(let _=0;_<y.length;_++){const E=y[_];if(Kc(c,r,E)&&!wa(b,E))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)||Kc(t,e,i)&&!wa(n,i))return!0}return!1}function Kc(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 Rc={},Fc=()=>Object.create(Rc),Nc=e=>Object.getPrototypeOf(e)===Rc;function Mp(e,t,n,r=!1){const o={},i=Fc();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:Ff(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 y=e.vnode.dynamicProps;for(let _=0;_<y.length;_++){let E=y[_];if(wa(e.emitsOptions,E))continue;const C=t[E];if(v)if(dt(i,E))C!==i[E]&&(i[E]=C,b=!0);else{const M=yn(E);o[M]=Oi(v,f,M,C,e,!1)}else C!==i[E]&&(i[E]=C,b=!0)}}}else{Vc(e,t,o,i)&&(b=!0);let y;for(const _ in f)(!t||!dt(t,_)&&((y=vs(_))===_||!dt(t,y)))&&(v?n&&(n[_]!==void 0||n[y]!==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 y;o&&dt(o,y=yn(v))?!i||!i.includes(y)?n[y]=b:(f||(f={}))[y]=b:wa(e.emitsOptions,v)||(!(v in r)||b!==r[v])&&(r[v]=b,c=!0)}if(i){const v=ut(n),b=f||vt;for(let y=0;y<i.length;y++){const _=i[y];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 y=Jr(o);r=b[n]=v.call(null,t),y()}}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 y=_=>{v=!0;const[E,C]=Bc(_,t,!0);Pt(c,E),C&&f.push(...C)};!n&&t.mixins.length&&t.mixins.forEach(y),e.extends&&y(e.extends),e.mixins&&e.mixins.forEach(y)}if(!i&&!v)return ft(e)&&r.set(e,Ms),Ms;if(He(i))for(let y=0;y<i.length;y++){const _=yn(i[y]);vu(_)&&(c[_]=vt)}else if(i)for(const y in i){const _=yn(y);if(vu(_)){const E=i[y],C=c[_]=He(E)||Ye(E)?{type:E}:Pt({},E),M=C.type;let J=!1,oe=!0;if(He(M))for(let ue=0;ue<M.length;++ue){const ce=M[ue],U=Ye(ce)&&ce.name;if(U==="Boolean"){J=!0;break}else U==="String"&&(oe=!1)}else J=Ye(M)&&M.name==="Boolean";C[0]=J,C[1]=oe,(J||dt(C,"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=>He(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=Fc();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)},Kp=(e,t,n)=>{const{vnode:r,slots:o}=e;let i=!0,c=vt;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 Rp(e){return Fp(e)}function Fp(e,t){const n=va();n.__VUE__=!0;const{insert:r,remove:o,patchProp:i,createElement:c,createText:f,createComment:v,setText:b,setElementText:y,parentNode:_,nextSibling:E,setScopeId:C=Pn,insertStaticContent:M}=e,J=(g,m,x,D=null,ae=null,z=null,ee=void 0,A=null,X=!!m.dynamicChildren)=>{if(g===m)return;g&&!Ps(g,m)&&(D=wt(g),$e(g,ae,z,!0),g=null),m.patchFlag===-2&&(X=!1,m.dynamicChildren=null),m.dynamicChildren&&g&&g.dynamicChildren&&g.dynamicChildren.hasOnce&&(m.dynamicChildren===Ms&&(m.dynamicChildren=[]),m.dynamicChildren.hasOnce=!0);const{type:te,ref:Ce,shapeFlag:be}=m;switch(te){case _a:oe(g,m,x,D);break;case Wt:ue(g,m,x,D);break;case Do:g==null&&ce(m,x,D,ee);break;case je:ne(g,m,x,D,ae,z,ee,A,X);break;default:be&1?q(g,m,x,D,ae,z,ee,A,X):be&6?Me(g,m,x,D,ae,z,ee,A,X):(be&64||be&128)&&te.process(g,m,x,D,ae,z,ee,A,X,pt)}Ce!=null&&ae?Ar(Ce,g&&g.ref,z,m||g,!m):Ce==null&&g&&g.ref!=null&&Ar(g.ref,null,z,g,!0)},oe=(g,m,x,D)=>{if(g==null)r(m.el=f(m.children),x,D);else{const ae=m.el=g.el;m.children!==g.children&&b(ae,m.children)}},ue=(g,m,x,D)=>{g==null?r(m.el=v(m.children||""),x,D):m.el=g.el},ce=(g,m,x,D)=>{[g.el,g.anchor]=M(g.children,m,x,D,g.el,g.anchor)},U=({el:g,anchor:m},x,D)=>{let ae;for(;g&&g!==m;)ae=E(g),r(g,x,D),g=ae;r(m,x,D)},T=({el:g,anchor:m})=>{let x;for(;g&&g!==m;)x=E(g),o(g),g=x;o(m)},q=(g,m,x,D,ae,z,ee,A,X)=>{if(m.type==="svg"?ee="svg":m.type==="math"&&(ee="mathml"),g==null)Z(m,x,D,ae,z,ee,A,X);else{const te=g.el&&g.el._isVueCE?g.el:null;try{te&&te._beginPatch(),I(g,m,ae,z,ee,A,X)}finally{te&&te._endPatch()}}},Z=(g,m,x,D,ae,z,ee,A)=>{let X,te;const{props:Ce,shapeFlag:be,transition:Le,dirs:Te}=g;if(X=g.el=c(g.type,z,Ce&&Ce.is,Ce),be&8?y(X,g.children):be&16&&re(g.children,X,null,D,ae,fi(g,z),ee,A),Te&&Cs(g,null,D,"created"),G(X,g,g.scopeId,ee,D),Ce){for(const Ze in Ce)Ze!=="value"&&!Sr(Ze)&&i(X,Ze,null,Ce[Ze],z,D);"value"in Ce&&i(X,"value",null,Ce.value,z),(te=Ce.onVnodeBeforeMount)&&xn(te,D,g)}Te&&Cs(g,null,D,"beforeMount");const Qe=Np(ae,Le);Qe&&Le.beforeEnter(X),r(X,m,x),((te=Ce&&Ce.onVnodeMounted)||Qe||Te)&&Qt(()=>{try{te&&xn(te,D,g),Qe&&Le.enter(X),Te&&Cs(g,null,D,"mounted")}finally{}},ae)},G=(g,m,x,D,ae)=>{if(x&&C(g,x),D)for(let z=0;z<D.length;z++)C(g,D[z]);if(ae){let z=ae.subTree;if(m===z||Wc(z.type)&&(z.ssContent===m||z.ssFallback===m)){const ee=ae.vnode;G(g,ee,ee.scopeId,ee.slotScopeIds,ae.parent)}}},re=(g,m,x,D,ae,z,ee,A,X=0)=>{for(let te=X;te<g.length;te++){const Ce=g[te]=A?Nn(g[te]):Tn(g[te]);J(null,Ce,m,x,D,ae,z,ee,A)}},I=(g,m,x,D,ae,z,ee)=>{const A=m.el=g.el;let{patchFlag:X,dynamicChildren:te,dirs:Ce}=m;X|=g.patchFlag&16;const be=g.props||vt,Le=m.props||vt;let Te;if(x&&$s(x,!1),(Te=Le.onVnodeBeforeUpdate)&&xn(Te,x,m,g),Ce&&Cs(m,g,x,"beforeUpdate"),x&&$s(x,!0),te&&(!g.dynamicChildren||g.dynamicChildren.length!==te.length)&&(X=0,ee=!1,te=null),(be.innerHTML&&Le.innerHTML==null||be.textContent&&Le.textContent==null)&&y(A,""),te?S(g.dynamicChildren,te,A,x,D,fi(m,ae),z):ee||de(g,m,A,null,x,D,fi(m,ae),z,!1),X>0){if(X&16)j(A,be,Le,x,ae);else if(X&2&&be.class!==Le.class&&i(A,"class",null,Le.class,ae),X&4&&i(A,"style",be.style,Le.style,ae),X&8){const Qe=m.dynamicProps;for(let Ze=0;Ze<Qe.length;Ze++){const tt=Qe[Ze],_t=be[tt],$t=Le[tt];($t!==_t||tt==="value")&&i(A,tt,_t,$t,ae,x)}}X&1&&g.children!==m.children&&y(A,m.children)}else!ee&&te==null&&j(A,be,Le,x,ae);((Te=Le.onVnodeUpdated)||Ce)&&Qt(()=>{Te&&xn(Te,x,m,g),Ce&&Cs(m,g,x,"updated")},D)},S=(g,m,x,D,ae,z,ee)=>{for(let A=0;A<m.length;A++){const X=g[A],te=m[A],Ce=X.el||Mi(X),be=Ce&&(X.type===je||!Ps(X,te)||X.shapeFlag&198)?_(Ce):x;J(X,te,be,null,D,ae,z,ee,!0)}},j=(g,m,x,D,ae)=>{if(m!==x){if(m!==vt)for(const z in m)!Sr(z)&&!(z in x)&&i(g,z,m[z],null,ae,D);for(const z in x){if(Sr(z))continue;const ee=x[z],A=m[z];ee!==A&&z!=="value"&&i(g,z,A,ee,ae,D)}"value"in x&&i(g,"value",m.value,x.value,ae)}},ne=(g,m,x,D,ae,z,ee,A,X)=>{const te=m.el=g?g.el:f(""),Ce=m.anchor=g?g.anchor:f("");let{patchFlag:be,dynamicChildren:Le,slotScopeIds:Te}=m;Te&&(A=A?A.concat(Te):Te),g==null?(r(te,x,D),r(Ce,x,D),re(m.children||[],x,Ce,ae,z,ee,A,X)):be>0&&be&64&&Le&&g.dynamicChildren&&g.dynamicChildren.length===Le.length?(S(g.dynamicChildren,Le,x,ae,z,ee,A),(m.key!=null||ae&&m===ae.subTree)&&ll(g,m,!0)):de(g,m,x,Ce,ae,z,ee,A,X)},Me=(g,m,x,D,ae,z,ee,A,X)=>{m.slotScopeIds=A,g==null?m.shapeFlag&512?ae.ctx.activate(m,x,D,ee,X):Ee(m,x,D,ae,z,ee,X):he(g,m,X)},Ee=(g,m,x,D,ae,z,ee)=>{const A=g.component=Yp(g,D,ae);if(ga(g)&&(A.ctx.renderer=pt),Jp(A,!1,ee),A.asyncDep){if(ae&&ae.registerDep(A,Ae,ee,z),!g.el){const X=A.subTree=we(Wt);ue(null,X,m,x),g.placeholder=X.el}}else Ae(A,g,m,x,ae,z,ee)},he=(g,m,x)=>{const D=m.component=g.component;if(Pp(g,m,x))if(D.asyncDep&&!D.asyncResolved){m.el=g.el,m.placeholder=g.placeholder,Ue(D,m,x);return}else D.next=m,D.update();else m.el=g.el,m.placeholder=g.placeholder,D.vnode=m},Ae=(g,m,x,D,ae,z,ee)=>{const A=()=>{if(g.isMounted){let{next:be,bu:Le,u:Te,parent:Qe,vnode:Ze}=g;{const Yt=zc(g);if(Yt){be&&(be.el=Ze.el,Ue(g,be,ee)),Yt.asyncDep.then(()=>{Qt(()=>{g.isUnmounted||te()},ae)});return}}let tt=be,_t;$s(g,!1),be?(be.el=Ze.el,Ue(g,be,ee)):be=Ze,Le&&Io(Le),(_t=be.props&&be.props.onVnodeBeforeUpdate)&&xn(_t,Qe,be,Ze),$s(g,!0);const $t=fu(g),tn=g.subTree;g.subTree=$t,J(tn,$t,_(tn.el),wt(tn),g,ae,z),be.el=$t.el,tt===null&&Op(g,$t.el),Te&&Qt(Te,ae),(_t=be.props&&be.props.onVnodeUpdated)&&Qt(()=>xn(_t,Qe,be,Ze),ae)}else{let be;const{el:Le,props:Te}=m,{bm:Qe,m:Ze,parent:tt,root:_t,type:$t}=g,tn=Pr(m);$s(g,!1),Qe&&Io(Qe),!tn&&(be=Te&&Te.onVnodeBeforeMount)&&xn(be,tt,m),$s(g,!0);{_t.ce&&_t.ce._hasShadowRoot()&&_t.ce._injectChildStyle($t,g.parent?g.parent.type:void 0);const Yt=g.subTree=fu(g);J(null,Yt,x,D,g,ae,z),m.el=Yt.el}if(Ze&&Qt(Ze,ae),!tn&&(be=Te&&Te.onVnodeMounted)){const Yt=m;Qt(()=>xn(be,tt,Yt),ae)}(m.shapeFlag&256||tt&&Pr(tt.vnode)&&tt.vnode.shapeFlag&256)&&g.a&&Qt(g.a,ae),g.isMounted=!0,m=x=D=null}};g.scope.on();const X=g.effect=new Zu(A);g.scope.off();const te=g.update=X.run.bind(X),Ce=g.job=X.runIfDirty.bind(X);Ce.i=g,Ce.id=g.uid,X.scheduler=()=>rl(Ce),$s(g,!0),te()},Ue=(g,m,x)=>{m.component=g;const D=g.vnode.props;g.vnode=m,g.next=null,Ip(g,m.props,D,x),Kp(g,m.children,x),Mn(),yc(g),In()},de=(g,m,x,D,ae,z,ee,A,X=!1)=>{const te=g&&g.children,Ce=g?g.shapeFlag:0,be=m.children,{patchFlag:Le,shapeFlag:Te}=m;if(Le>0){if(Le&128){Se(te,be,x,D,ae,z,ee,A,X);return}else if(Le&256){ke(te,be,x,D,ae,z,ee,A,X);return}}Te&8?(Ce&16&&bt(te,ae,z),be!==te&&y(x,be)):Ce&16?Te&16?Se(te,be,x,D,ae,z,ee,A,X):bt(te,ae,z,!0):(Ce&8&&y(x,""),Te&16&&re(be,x,D,ae,z,ee,A,X))},ke=(g,m,x,D,ae,z,ee,A,X)=>{g=g||Ms,m=m||Ms;const te=g.length,Ce=m.length,be=Math.min(te,Ce);let Le;for(Le=0;Le<be;Le++){const Te=m[Le]=X?Nn(m[Le]):Tn(m[Le]);J(g[Le],Te,x,null,ae,z,ee,A,X)}te>Ce?bt(g,ae,z,!0,!1,be):re(m,x,D,ae,z,ee,A,X,be)},Se=(g,m,x,D,ae,z,ee,A,X)=>{let te=0;const Ce=m.length;let be=g.length-1,Le=Ce-1;for(;te<=be&&te<=Le;){const Te=g[te],Qe=m[te]=X?Nn(m[te]):Tn(m[te]);if(Ps(Te,Qe))J(Te,Qe,x,null,ae,z,ee,A,X);else break;te++}for(;te<=be&&te<=Le;){const Te=g[be],Qe=m[Le]=X?Nn(m[Le]):Tn(m[Le]);if(Ps(Te,Qe))J(Te,Qe,x,null,ae,z,ee,A,X);else break;be--,Le--}if(te>be){if(te<=Le){const Te=Le+1,Qe=Te<Ce?m[Te].el:D;for(;te<=Le;)J(null,m[te]=X?Nn(m[te]):Tn(m[te]),x,Qe,ae,z,ee,A,X),te++}}else if(te>Le)for(;te<=be;)$e(g[te],ae,z,!0),te++;else{const Te=te,Qe=te,Ze=new Map;for(te=Qe;te<=Le;te++){const Kt=m[te]=X?Nn(m[te]):Tn(m[te]);Kt.key!=null&&Ze.set(Kt.key,te)}let tt,_t=0;const $t=Le-Qe+1;let tn=!1,Yt=0;const nn=new Array($t);for(te=0;te<$t;te++)nn[te]=0;for(te=Te;te<=be;te++){const Kt=g[te];if(_t>=$t){$e(Kt,ae,z,!0);continue}let Ot;if(Kt.key!=null)Ot=Ze.get(Kt.key);else for(tt=Qe;tt<=Le;tt++)if(nn[tt-Qe]===0&&Ps(Kt,m[tt])){Ot=tt;break}Ot===void 0?$e(Kt,ae,z,!0):(nn[Ot-Qe]=te+1,Ot>=Yt?Yt=Ot:tn=!0,J(Kt,m[Ot],x,null,ae,z,ee,A,X),_t++)}const hs=tn?Vp(nn):Ms;for(tt=hs.length-1,te=$t-1;te>=0;te--){const Kt=Qe+te,Ot=m[Kt],Be=m[Kt+1],Gn=Kt+1<Ce?Be.el||Mi(Be):D;nn[te]===0?J(null,Ot,x,Gn,ae,z,ee,A,X):tn&&(tt<0||te!==hs[tt]?De(Ot,x,Gn,2):tt--)}}},De=(g,m,x,D,ae=null)=>{const{el:z,type:ee,transition:A,children:X,shapeFlag:te}=g;if(te&6){De(g.component.subTree,m,x,D);return}if(te&128){g.suspense.move(m,x,D);return}if(te&64){ee.move(g,m,x,pt);return}if(ee===je){r(z,m,x);for(let be=0;be<X.length;be++)De(X[be],m,x,D);r(g.anchor,m,x);return}if(ee===Do){U(g,m,x);return}if(D!==2&&te&1&&A)if(D===0)A.persisted&&!z[un]?r(z,m,x):(A.beforeEnter(z),r(z,m,x),Qt(()=>A.enter(z),ae));else{const{leave:be,delayLeave:Le,afterLeave:Te}=A,Qe=()=>{g.ctx.isUnmounted?o(z):r(z,m,x)},Ze=()=>{const tt=z._isLeaving||!!z[un];z._isLeaving&&z[un](!0),A.persisted&&!tt?Qe():be(z,()=>{Qe(),Te&&Te()})};Le?Le(z,Qe,Ze):Ze()}else r(z,m,x)},$e=(g,m,x,D=!1,ae=!1)=>{const{type:z,props:ee,ref:A,children:X,dynamicChildren:te,shapeFlag:Ce,patchFlag:be,dirs:Le,cacheIndex:Te,memo:Qe}=g;if((be===-2||te&&te.hasOnce)&&(ae=!1),A!=null&&(Mn(),Ar(A,null,x,g,!0),In()),Te!=null&&(!g.ctx||g.ctx===m)&&(m.renderCache[Te]=void 0),Ce&256){m.ctx.deactivate(g);return}const Ze=Ce&1&&Le,tt=!Pr(g);let _t;if(tt&&(_t=ee&&ee.onVnodeBeforeUnmount)&&xn(_t,m,g),Ce&6)ct(g.component,x,D);else{if(Ce&128){g.suspense.unmount(x,D);return}Ze&&Cs(g,null,m,"beforeUnmount"),Ce&64?g.type.remove(g,m,x,pt,D):te&&!te.hasOnce&&(z!==je||be>0&&be&64)?bt(te,m,x,!1,!0):(z===je&&be&384||!ae&&Ce&16)&&bt(X,m,x),D&&fe(g)}const $t=Qe!=null&&Te==null;(tt&&(_t=ee&&ee.onVnodeUnmounted)||Ze||$t)&&Qt(()=>{_t&&xn(_t,m,g),Ze&&Cs(g,null,m,"unmounted"),$t&&(g.el=null)},x)},fe=g=>{const{type:m,el:x,anchor:D,transition:ae}=g,z=m===je;if(z&&!ae){Ie(x,D);return}if(m===Do){T(g),ae&&!ae.persisted&&ae.afterLeave&&ae.afterLeave();return}const ee=z?Rr(g):g,A=()=>{z?_(x)&&Ie(x,D):o(x),ae&&!ae.persisted&&ae.afterLeave&&ae.afterLeave()};if(ee&&ee.shapeFlag&1&&ae&&!ae.persisted){const{leave:X,delayLeave:te}=ae,Ce=ee.el,be=()=>X(Ce,A);te?te(Ce,A,be):be()}else A()},Ie=(g,m)=>{let x;for(;g!==m;)x=E(g),o(g),g=x;o(m)},ct=(g,m,x)=>{const{bum:D,scope:ae,job:z,subTree:ee,um:A,m:X,a:te}=g;mu(X),mu(te),D&&Io(D),ae.stop(),z?(z.flags|=8,$e(ee,g,m,x)):g.vnode.el&&ee&&(ee.transition=g.vnode.transition,$e(ee,g,m,x)),A&&Qt(A,m),Qt(()=>{g.isUnmounted=!0},m)},bt=(g,m,x,D=!1,ae=!1,z=0)=>{for(let ee=z;ee<g.length;ee++)$e(g[ee],m,x,D,ae)},wt=g=>{if(g.shapeFlag&6)return wt(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const m=E(g.anchor||g.el),x=m&&m[xc];return x?E(x):m},Vt=(g,m,x)=>{const D=g&&m._vnode?void 0:g&&g.component?g.component.uid:Gp();Xf(()=>{g==null?m._vnode&&$e(m._vnode,null,null,!0):J(m._vnode||null,g,m,null,null,null,x),m._vnode=g},D)},pt={p:J,um:$e,m:De,r:fe,mt:Ee,mc:re,pc:de,pbc:S,n:wt,o:e};return{render:Vt,hydrate:void 0,createApp:Cp(Vt)}}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 Np(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ll(e,t,n=!1){const r=e.children,o=t.children;if(He(r)&&He(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]=Nn(o[i]),f.el=c.el),!n&&f.patchFlag!==-2&&ll(c,f)),f.type===_a&&(f.patchFlag===-1&&(f=o[i]=Nn(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?He(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"),Do=Symbol.for("v-stc"),Ds=[];let an=null;function $(e=!1){Ds.push(an=e?null:[])}function Gc(){Ds.pop(),an=Ds[Ds.length-1]||null}let Fr=1;function Yo(e,t=!1){Fr+=e,e<0&&an&&t&&(an.hasOnce=!0)}function Yc(e){return e.dynamicChildren=Fr>0?an||Ms:null,Gc(),Fr>0&&an&&an.push(e),e}function P(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(we(e,t,n,r,o,!0))}function Nr(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,Lo=({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&&Lo(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?(Jo(v,n),i&128&&e.normalize(v)):n&&(v.shapeFlag|=Ct(n)?8:16),Fr>0&&!c&&an&&(v.patchFlag>0||i&6)&&v.patchFlag!==32&&an.push(v),v}const we=Up;function Up(e,t=null,n=null,r=0,o=null,i=!1){if((!e||e===hp)&&(e=Wt),Nr(e)){const f=ds(e,t,!0);return n&&Jo(f,n),Fr>0&&!i&&an&&(f.shapeFlag&6?an[an.indexOf(e)]=f:an.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=Xe(f)),ft(v)&&(sl(v)&&!He(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)||Nc(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,y={__v_isVNode:!0,__v_skip:!0,type:e.type,props:b,key:b&&Jc(b),ref:t&&t.ref?n&&i?He(i)?i.concat(Lo(t)):[i,Lo(t)]:Lo(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(y,v.clone(y)),y}function mt(e=" ",t=0){return we(_a,null,e,t)}function Hp(e,t){const n=we(Do,null,e);return n.staticCount=t,n}function ye(e="",t=!1){return t?($(),St(Wt,null,e)):we(Wt,null,e)}function Tn(e){return e==null||typeof e=="boolean"?we(Wt):He(e)?we(je,null,e.slice()):Nr(e)?Nn(e):we(_a,null,String(e))}function Nn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ds(e)}function Jo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(He(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Jo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Nc(t)?t._ctx=cn:o===3&&cn&&(cn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ye(t)){if(r&65){Jo(e,{default:t});return}t={default:t,_ctx:cn},n=32}else t=String(t),r&64?(n=16,t=[mt(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=Xe([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&&!(He(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:vt,inheritAttrs:r.inheritAttrs,ctx:vt,data:vt,props:vt,attrs:vt,slots:vt,refs:vt,setupState:vt,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 Xo,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)}};Xo=t("__VUE_INSTANCE_SETTERS__",n=>en=n),Vr=t("__VUE_SSR_SETTERS__",n=>Br=n)}const Jr=e=>{const t=en;return Xo(e),e.scope.on(),()=>{e.scope.off(),Xo(t)}},hu=()=>{en&&en.scope.off(),Xo(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=Jr(e),c=Yr(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=Jr(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(Nf(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{Yo(-1);const r=arguments.length;return r===2?ft(t)&&!He(t)?Nr(t)?we(e,null,[t]):we(e,t):we(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Nr(n)&&(n=[n]),we(e,t,n))}finally{Yo(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",Fn=typeof document<"u"?document:null,bu=Fn&&Fn.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"?Fn.createElementNS(sv,e):t==="mathml"?Fn.createElementNS(rv,e):n?Fn.createElement(e,{is:n}):Fn.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Fn.createTextNode(e),createComment:e=>Fn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,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=[])=>{He(e)?e.forEach(n=>n(...t)):e&&e(...t)},wu=e=>e?He(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:y=f,leaveFromClass:_=`${n}-leave-from`,leaveActiveClass:E=`${n}-leave-active`,leaveToClass:C=`${n}-leave-to`}=e,M=iv(o),J=M&&M[0],oe=M&&M[1],{onBeforeEnter:ue,onEnter:ce,onEnterCancelled:U,onLeave:T,onLeaveCancelled:q,onBeforeAppear:Z=ue,onAppear:G=ce,onAppearCancelled:re=U}=t,I=(ne,Me,Ee,he)=>{ne._enterCancelled=he,ss(ne,Me?y:f),ss(ne,Me?b:c),Ee&&Ee()},S=(ne,Me)=>{ne._isLeaving=!1,ss(ne,_),ss(ne,C),ss(ne,E),Me&&Me()},j=ne=>(Me,Ee)=>{const he=ne?G:ce,Ae=()=>I(Me,ne,Ee);Ss(he,[Me,Ae]),_u(()=>{ss(Me,ne?v:i),Cn(Me,ne?y:f),wu(he)||ku(Me,r,J,Ae)})};return Pt(t,{onBeforeEnter(ne){Ss(ue,[ne]),Cn(ne,i),Cn(ne,c)},onBeforeAppear(ne){Ss(Z,[ne]),Cn(ne,v),Cn(ne,b)},onEnter:j(!1),onAppear:j(!0),onLeave(ne,Me){ne._isLeaving=!0;const Ee=()=>S(ne,Me);Cn(ne,_),ne._enterCancelled?(Cn(ne,E),ji(ne)):(ji(ne),Cn(ne,E)),_u(()=>{ne._isLeaving&&(ss(ne,_),Cn(ne,C),wu(T)||ku(ne,r,oe,Ee))}),Ss(T,[ne,Ee])},onEnterCancelled(ne){I(ne,!1,void 0,!0),Ss(U,[ne])},onAppearCancelled(ne){I(ne,!0,void 0,!0),Ss(re,[ne])},onLeaveCancelled(ne){S(ne),Ss(q,[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 y=0;const _=()=>{e.removeEventListener(b,E),i()},E=C=>{C.target===e&&++y>=v&&_()};setTimeout(()=>{y<v&&_()},f+1),e.addEventListener(b,E)}function rd(e,t){const n=window.getComputedStyle(e),r=M=>(n[M]||"").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 y=null,_=0,E=0;t===ts?c>0&&(y=ts,_=c,E=i.length):t===kr?b>0&&(y=kr,_=b,E=v.length):(_=Math.max(c,b),y=_>0?c>b?ts:kr:null,E=y?y===ts?i.length:v.length:0);const C=y===ts&&/\b(?:transform|all)(?:,|$)/.test(r(`${ts}Property`).toString());return{type:y,timeout:_,propCount:E,hasTransform:C}}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 Po=/\s*!important$/;function $r(e,t,n){if(He(n))n.forEach(r=>$r(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))Po.test(n)?e.setProperty(t,n.replace(Po,""),"important"):e.setProperty(t,n);else{const r=pv(e,t);Po.test(n)?e.setProperty(vs(r),n.replace(Po,""),"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(He(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,Qo=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 y=c&&jv(c,n.vnode.el);c=void 0,o.forEach(E=>Pv(E,y));const _=o.filter(Ov);ji(n.vnode.el),_.forEach(E=>{const C=E.el,M=C.style;Cn(C,b),M.transform=M.webkitTransform=M.transitionDuration="";const J=C[Qo]=oe=>{oe&&oe.target!==C||(!oe||oe.propertyName.endsWith("transform"))&&(C.removeEventListener("transitionend",J),C[Qo]=null,ss(C,b))};C.addEventListener("transitionend",J)}),o=[]}),()=>{const b=ut(e),y=sd(b);let _=b.tag||je;if(o=[],f=void 0,i)for(let E=0;E<i.length;E++){const C=i[E];C.el&&C.el instanceof Element&&!C.el[od]&&(o.push(C),cs(C,Kr(C,y,r,n)),ad.set(C,xa(C.el)))}i=t.default?ol(t.default()):[];for(let E=0;E<i.length;E++){const C=i[E];C.key!=null&&cs(C,Kr(C,y,r,n))}return o.length&&(c=Mv(n),Di.set(n,v)),we(_,null,i)}}}),Tv=Ev;function Av(e){const t=e.el;t[Qo]&&t[Qo](),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 Zo=e=>{const t=e.props["onUpdate:modelValue"]||!1;return He(t)?n=>Io(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"),Oo=Symbol("_initialValue");function hi(e,t,n){return t&&(e=e.trim()),n&&(e=pa(e)),e}const Re={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e.parentNode&&(e.type==="text"?e[Oo]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Oo]=e.defaultValue.replace(/\r\n?/g,`
|
||
`))),e[Is]=Zo(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[Oo];delete e[Oo],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]=Zo(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(ea(v)):ea(v)),i=e.multiple,c=i?Ls(e._modelValue)?new Set(o):o:o[0],f=e._pendingValue=[i,i?He(c)?o.slice():o:c];try{e[Is](c)}finally{ir(()=>{e._pendingValue===f&&(e._pendingValue=void 0)})}}),e[Is]=Zo(r)},mounted(e,{value:t}){Du(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Is]=Zo(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Kv(t,n[1],n[0]))&&Du(e,t)}};function Kv(e,t,n){if(!n||He(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=He(t);if(!(n&&!r&&!Ls(t))){for(let o=0,i=e.options.length;o<i;o++){const c=e.options[o],f=ea(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(ea(c),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function ea(e){return"_value"in e?e._value:e.value}const Rv=["ctrl","shift","alt","meta"],Fv={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)=>Rv.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=Fv[t[c]];if(f&&f(o,t))return}return e(o,...i)})},Nv={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||Nv[c]===i))return e(o)})},Vv=Pt({patchProp:xv},ov);let Lu;function Bv(){return Lu||(Lu=Rp(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"],qe=Lt({__name:"Icon",props:{name:{},size:{default:16}},setup(e){const t=e,n=rt(()=>zv[t.name]||"");return(r,o)=>($(),P("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=Lt({__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 gt(()=>n.open,i=>{i?window.addEventListener("keydown",o):window.removeEventListener("keydown",o)}),Wn(()=>window.removeEventListener("keydown",o)),(i,c)=>($(),St(Hn,{to:"body"},[we(lr,{name:"modal"},{default:ms(()=>[e.open?($(),P("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:Xe(["btn btn-sm",e.danger?"btn-danger-solid":"btn-primary"]),onClick:c[1]||(c[1]=f=>r("confirm"))},W(e.confirmText),3)])],8,Gv)])):ye("",!0)]),_:1})]))}}),Nt=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},Dn=Nt(Qv,[["__scopeId","data-v-2e4b0ab5"]]);var Ku=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()})(Ku,function(){var n=function(s,a){return(n=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(u,d){u.__proto__=d}:function(u,d){for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])}))(s,a)},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,h=a.length;p<h;p++)!d&&p in a||((d=d||Array.prototype.slice.call(a,0,p))[p]=a[p]);return s.concat(d||Array.prototype.slice.call(a))}var i=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ku,c=Object.keys,f=Array.isArray;function v(s,a){return typeof a=="object"&&c(a).forEach(function(u){s[u]=a[u]}),s}typeof Promise>"u"||i.Promise||(i.Promise=Promise);var b=Object.getPrototypeOf,y={}.hasOwnProperty;function _(s,a){return y.call(s,a)}function E(s,a){typeof a=="function"&&(a=a(b(s))),(typeof Reflect>"u"?c:Reflect.ownKeys)(a).forEach(function(u){M(s,u,a[u])})}var C=Object.defineProperty;function M(s,a,u,d){C(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),M(s.prototype,"constructor",s),{extend:E.bind(null,s.prototype)}}}}var oe=Object.getOwnPropertyDescriptor,ue=[].slice;function ce(s,a,u){return ue.call(s,a,u)}function U(s,a){return a(s)}function T(s){if(!s)throw new Error("Assertion Failed")}function q(s){i.setImmediate?setImmediate(s):setTimeout(s,0)}function Z(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 h=Z(s,a[d]);u.push(h)}return u}var w,k=a.indexOf(".");return k===-1||(w=s[a.substr(0,k)])==null?void 0:Z(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){T(typeof u!="string"&&"length"in u);for(var d=0,p=a.length;d<p;++d)G(s,a[d],u[d])}else{var h=a.indexOf(".");if(h!==-1){var w=a.substr(0,h),h=a.substr(h+1);if(h==="")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,h,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 I=[].concat;function S(s){return I.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(S([8,16,32,64].map(function(s){return["Int","Uint","Float"].map(function(a){return a+s+"Array"})}))).filter(function(s){return i[s]}),j=new Set($e.map(function(s){return i[s]})),ne=null;function Me(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,h=u.length;p<h;++p)d.push(a(u[p]))}else if(j.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 Ee={}.toString;function he(s){return Ee.call(s).slice(8,-1)}var Ae=typeof Symbol<"u"?Symbol.iterator:"@@iterator",Ue=typeof Ae=="symbol"?function(s){var a;return s!=null&&(a=s[Ae])&&a.apply(s)}:function(){return null};function de(s,a){a=s.indexOf(a),0<=a&&s.splice(a,1)}var ke={};function Se(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 De=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"],Ze=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat($e),fe={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 Ie(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 bt(s,a,u,d){this.failures=a,this.failedKeys=d,this.successCount=u,this.message=ct(s,a)}function wt(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(Ie).from(Error).extend({toString:function(){return this.name+": "+this.message}}),J(bt).from(Ie),J(wt).from(Ie);var Vt=Ze.reduce(function(s,a){return s[a]=a+"Error",s},{}),pt=Ie,Fe=Ze.reduce(function(s,a){var u=a+"Error";function d(p,h){this.name=u,p?typeof p=="string"?(this.message="".concat(p).concat(h?`
|
||
`+h:""),this.inner=h||null):typeof p=="object"&&(this.message="".concat(p.name," ").concat(p.message),this.inner=p):(this.message=fe[a]||u,this.inner=null)}return J(d).from(pt),s[a]=d,s},{}),g=(Fe.Syntax=SyntaxError,Fe.Type=TypeError,Fe.Range=RangeError,$e.reduce(function(s,a){return s[a+"Error"]=Fe[a],s},{}));$e=Ze.reduce(function(s,a){return["Syntax","Type","Range"].indexOf(a)===-1&&(s[a+"Error"]=Fe[a]),s},{});function m(){}function x(s){return s}function D(s,a){return s==null||s===x?a:function(u){return a(s(u))}}function ae(s,a){return function(){s.apply(this,arguments),a.apply(this,arguments)}}function z(s,a){return s===m?a:function(){var u=s.apply(this,arguments),d=(u!==void 0&&(arguments[0]=u),this.onsuccess),p=this.onerror,h=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?ae(d,this.onsuccess):d),p&&(this.onerror=this.onerror?ae(p,this.onerror):p),h!==void 0?h:u}}function ee(s,a){return s===m?a:function(){s.apply(this,arguments);var u=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,a.apply(this,arguments),u&&(this.onsuccess=this.onsuccess?ae(u,this.onsuccess):u),d&&(this.onerror=this.onerror?ae(d,this.onerror):d)}}function A(s,a){return s===m?a:function(){var u=s.apply(this,arguments),d=(v(arguments[0],u),this.onsuccess),p=this.onerror,h=(this.onsuccess=null,this.onerror=null,a.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?ae(d,this.onsuccess):d),p&&(this.onerror=this.onerror?ae(p,this.onerror):p),u===void 0?h===void 0?void 0:h:v(u,h)}}function X(s,a){return s===m?a:function(){return a.apply(this,arguments)!==!1&&s.apply(this,arguments)}}function te(s,a){return s===m?a:function(){var u=s.apply(this,arguments);if(u&&typeof u.then=="function"){for(var d=this,p=arguments.length,h=new Array(p);p--;)h[p]=arguments[p];return u.then(function(){return a.apply(d,h)})}return a.apply(this,arguments)}}$e.ModifyError=bt,$e.DexieError=Ie,$e.BulkError=wt;var Ce=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function be(s){Ce=s}var Le={},Te=100,Qe=typeof Promise>"u"?[]:(Ze=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Qe=crypto.subtle.digest("SHA-512",new Uint8Array([0])),b(Qe),Ze]:[Ze,b(Ze),Ze]),Ze=Qe[0],zs=Qe[1],zs=zs&&zs.then,tt=Ze&&Ze.constructor,_t=!!Qe[2],$t=function(s,a){Gn.push([s,a]),Yt&&(queueMicrotask(Ld),Yt=!1)},tn=!0,Yt=!0,nn=[],hs=[],Kt=x,Ot={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:m,pgp:!1,env:{},finalize:m},Be=Ot,Gn=[],ys=0,eo=[];function Pe(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!==Le)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(h){if(d._state===null){if(h===d)throw new TypeError("A promise cannot be resolved with itself.");var w=d._lib&&Ns();h&&typeof h.then=="function"?u(d,function(k,K){h instanceof Pe?h._then(k,K):h.then(k,K)}):(d._state=!0,d._value=h,bl(d)),w&&Vs()}},Ta.bind(null,d))}catch(h){Ta(d,h)}}(this,s)}var Ea={get:function(){var s=Be,a=ro;function u(d,p){var h=this,w=!s.global&&(s!==Be||a!==ro),k=w&&!Jn(),K=new Pe(function(Y,F){Aa(h,new gl(_l(d,s,w,k),_l(p,s,w,k),Y,F,s))});return this._consoleTask&&(K._consoleTask=this._consoleTask),K}return u.prototype=Le,u},set:function(s){M(this,"then",s&&s.prototype===Le?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&&Ns(),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=Ce&&a._consoleTask?a._consoleTask.run(function(){return s(p)}):s(p),a._state||hs.indexOf(p)!==-1||(h=>{for(var w=nn.length;w;)if(nn[--w]._value===h._value)return nn.splice(w,1)})(a),u.resolve(d)}catch(h){u.reject(h)}finally{--ys==0&&Pa(),--u.psd.ref||u.psd.finalize()}}function Ld(){gs(Ot,function(){Ns()&&Vs()})}function Ns(){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)}),eo.slice(0)),u=a.length;u;)a[--u]()}function to(s){return new Pe(Le,!1,s)}function kt(s,a){var u=Be;return function(){var d=Ns(),p=Be;try{return Xn(u,!0),s.apply(this,arguments)}catch(h){a&&a(h)}finally{Xn(p,!1),d&&Vs()}}}E(Pe.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:to)(d)}):this.then(null,function(d){return(d&&d.name===a?u:to)(d)}))},finally:function(s){return this.then(function(a){return Pe.resolve(s()).then(function(){return a})},function(a){return Pe.resolve(s()).then(function(){return to(a)})})},timeout:function(s,a){var u=this;return s<1/0?new Pe(function(d,p){var h=setTimeout(function(){return p(new Fe.Timeout(a))},s);u.then(d,p).finally(clearTimeout.bind(null,h))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&M(Pe.prototype,Symbol.toStringTag,"Dexie.Promise"),Ot.env=wl(),E(Pe,{all:function(){var s=Se.apply(null,arguments).map(oo);return new Pe(function(a,u){s.length===0&&a([]);var d=s.length;s.forEach(function(p,h){return Pe.resolve(p).then(function(w){s[h]=w,--d||a(s)},u)})})},resolve:function(s){return s instanceof Pe?s:s&&typeof s.then=="function"?new Pe(function(a,u){s.then(a,u)}):new Pe(Le,!0,s)},reject:to,race:function(){var s=Se.apply(null,arguments).map(oo);return new Pe(function(a,u){s.map(function(d){return Pe.resolve(d).then(a,u)})})},PSD:{get:function(){return Be},set:function(s){return Be=s}},totalEchoes:{get:function(){return ro}},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 Pe(function(u,d){return Yn(function(p,h){var w=Be;w.unhandleds=[],w.onunhandled=h,w.finalize=ae(function(){var k,K=this;k=function(){K.unhandleds.length===0?p():h(K.unhandleds[0])},eo.push(function Y(){k(),eo.splice(eo.indexOf(Y),1)}),++ys,$t(function(){--ys==0&&Pa()},[])},w.finalize),s()},a,u,d)})}}),tt&&(tt.allSettled&&M(Pe,"allSettled",function(){var s=Se.apply(null,arguments).map(oo);return new Pe(function(a){s.length===0&&a([]);var u=s.length,d=new Array(u);s.forEach(function(p,h){return Pe.resolve(p).then(function(w){return d[h]={status:"fulfilled",value:w}},function(w){return d[h]={status:"rejected",reason:w}}).then(function(){return--u||a(d)})})})}),tt.any&&typeof AggregateError<"u"&&M(Pe,"any",function(){var s=Se.apply(null,arguments).map(oo);return new Pe(function(a,u){s.length===0&&u(new AggregateError([]));var d=s.length,p=new Array(d);s.forEach(function(h,w){return Pe.resolve(h).then(function(k){return a(k)},function(k){p[w]=k,--d||u(new AggregateError(p))})})})}),tt.withResolvers)&&(Pe.withResolvers=tt.withResolvers);var jt={awaits:0,echoes:0,id:0},Kd=0,no=[],so=0,ro=0,Rd=0;function Yn(s,w,u,d){var p=Be,h=Object.create(p),w=(h.parent=p,h.ref=0,h.global=!1,h.id=++Rd,Ot.env,h.env=_t?{Promise:Pe,PromiseProp:{value:Pe,configurable:!0,writable:!0},all:Pe.all,race:Pe.race,allSettled:Pe.allSettled,any:Pe.any,resolve:Pe.resolve,reject:Pe.reject}:{},w&&v(h,w),++p.ref,h.finalize=function(){--this.parent.ref||this.parent.finalize()},gs(h,s,u,d));return h.ref===0&&h.finalize(),w}function Bs(){return jt.id||(jt.id=++Kd),++jt.awaits,jt.echoes+=Te,jt.id}function Jn(){return!!jt.awaits&&(--jt.awaits==0&&(jt.id=0),jt.echoes=jt.awaits*Te,!0)}function oo(s){return jt.echoes&&s&&s.constructor===tt?(Bs(),s.then(function(a){return Jn(),a},function(a){return Jn(),Tt(a)})):s}function Fd(){var s=no[no.length-1];no.pop(),Xn(s,!1)}function Xn(s,a){var u,d,p=Be;(a?!jt.echoes||so++&&s===Be:!so||--so&&s===Be)||queueMicrotask(a?(function(h){++ro,jt.echoes&&--jt.echoes!=0||(jt.echoes=jt.awaits=jt.id=0),no.push(Be),Xn(h,!0)}).bind(null,s):Fd),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 h=Be;try{return Xn(s,!0),a(u,d,p)}finally{Xn(h,!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&&jt.echoes===0?so===0?s():enqueueNativeMicroTask(s):setTimeout(s,0)}(""+zs).indexOf("[native code]")===-1&&(Bs=Jn=m);var Tt=Pe.reject,bs="",Ln="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",kl="String expected.",ao="__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 io(s){return typeof s!="string"||/\./.test(s)?function(a){return a}:function(a){return a[s]===void 0&&s in a&&delete(a=Me(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),h=Sl(a),w=p.length,k=h.length,K=w<k?w:k,Y=0;Y<K;++Y)if(p[Y]!==h[Y])return p[Y]<h[Y]?-1:1;return w===k?0:w<k?-1:1;case"Array":for(var F=s,L=a,R=F.length,H=L.length,V=R<H?R:H,N=0;N<V;++N){var B=st(F[N],L[N]);if(B!==0)return B}return R===H?0:R<H?-1:1}}catch{}return NaN}function $l(s){var a=typeof s;return a=="object"&&(ArrayBuffer.isView(s)||(a=he(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 lo(s,a,u){var d=s.schema.yProps;return d?(a&&0<u.numFailures&&(a=a.filter(function(p,h){return!u.failures[h]})),Promise.all(d.map(function(p){return p=p.updatesTable,a?s.db.table(p).where("k").anyOf(a).delete():s.db.table(p).clear()})).then(function(){return 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,h=0;h<d;++h){var w=u[h],k=a[w],K=Z(s,w);k instanceof dr?(G(s,w,k.execute(K)),p=!0):K!==k&&(G(s,w,k),p=!0)}return p}ht.prototype._trans=function(s,a,u){var d=this._tx||Be.trans,p=this.name,h=Ce&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(s==="readonly"?"read":"write"," ").concat(this.name));function w(Y,F,L){if(L.schema[p])return a(L.idbtrans,L);throw new Fe.NotFound("Table "+p+" not part of transaction")}var k=Ns();try{var K=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(F,L,R,H){if(F.idbdb&&(F._state.openComplete||Be.letThrough||F._vip)){var V=F._createTransaction(L,R,F._dbSchema);try{V.create(),F._state.PR1398_maxLoop=3}catch(N){return N.name===Vt.InvalidState&&F.isOpen()&&0<--F._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),F.close({disableAutoOpen:!1}),F.open().then(function(){return Y(F,L,R,H)})):Tt(N)}return V._promise(L,function(N,B){return Yn(function(){return Be.trans=V,H(N,B,V)})}).then(function(N){if(L==="readwrite")try{V.idbtrans.commit()}catch{}return L==="readonly"?N:V._completion.then(function(){return N})})}if(F._state.openComplete)return Tt(new Fe.DatabaseClosed(F._state.dbOpenError));if(!F._state.isBeingOpened){if(!F._state.autoOpen)return Tt(new Fe.DatabaseClosed);F.open().catch(m)}return F._state.dbReadyPromise.then(function(){return Y(F,L,R,H)})}(this.db,s,[this.name],w);return h&&(K._consoleTask=h,K=K.catch(function(Y){return console.trace(Y),Tt(Y)})),K}finally{k&&Vs()}},ht.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)},ht.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 K=0;K<a.length;++K)if(a.indexOf(k.keyPath[K])===-1)return!1;return!0}return!1}).sort(function(k,K){return k.keyPath.length-K.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&&Ce&&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,K){return st(k,K)===0}var w=a.reduce(function(F,K){var Y=F[0],F=F[1],L=d[K],R=s[K];return[Y||L,Y||!L?ws(F,L&&L.multi?function(H){return H=Z(H,K),f(H)&&H.some(function(V){return p(R,V)})}:function(H){return p(R,Z(H,K))}):F]},[null,null]),h=w[0],w=w[1];return h?this.where(h.name).equals(s[h.keyPath]).filter(w):u?this.filter(w):this.where(a).equals("")},ht.prototype.filter=function(s){return this.toCollection().and(s)},ht.prototype.count=function(s){return this.toCollection().count(s)},ht.prototype.offset=function(s){return this.toCollection().offset(s)},ht.prototype.limit=function(s){return this.toCollection().limit(s)},ht.prototype.each=function(s){return this.toCollection().each(s)},ht.prototype.toArray=function(s){return this.toCollection().toArray(s)},ht.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},ht.prototype.orderBy=function(s){return new this.db.Collection(new this.db.WhereClause(this,f(s)?"[".concat(s.join("+"),"]"):s))},ht.prototype.reverse=function(){return this.toCollection().reverse()},ht.prototype.mapToClass=function(s){for(var a=this.db,u=this.name,d=((this.schema.mappedClass=s).prototype instanceof Cl&&(s=(w=>{var k=F,K=w;if(typeof K!="function"&&K!==null)throw new TypeError("Class extends value "+String(K)+" is not a constructor or null");function Y(){this.constructor=k}function F(){return w!==null&&w.apply(this,arguments)||this}return n(k,K),k.prototype=K===null?Object.create(K):(Y.prototype=K.prototype,new Y),Object.defineProperty(F.prototype,"db",{get:function(){return a},enumerable:!1,configurable:!0}),F.prototype.table=function(){return u},F})(s)),new Set),p=s.prototype;p;p=b(p))Object.getOwnPropertyNames(p).forEach(function(w){return d.add(w)});function h(w){if(!w)return w;var k,K=Object.create(s.prototype);for(k in w)if(!d.has(k))try{K[k]=w[k]}catch{}return K}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=h,this.hook("reading",h),s},ht.prototype.defineClass=function(){return this.mapToClass(function(s){v(this,s)})},ht.prototype.add=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,h=d.keyPath,w=s;return h&&p&&(w=io(h)(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?Pe.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{G(s,h,k)}catch{}return k})},ht.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(h){var w=h??{};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?Pe.reject(k.failures[0]):!!h})})})},ht.prototype.update=function(s,a){return typeof s!="object"||f(s)?this.where(":id").equals(s).modify(a):(s=Z(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)},ht.prototype.put=function(s,a){var u=this,d=this.schema.primKey,p=d.auto,h=d.keyPath,w=s;return h&&p&&(w=io(h)(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?Pe.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{G(s,h,k)}catch{}return k})},ht.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 lo(a,[s],d)}).then(function(d){return d.numFailures?Pe.reject(d.failures[0]):void 0})})},ht.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 lo(s,null,u)})}).then(function(a){return a.numFailures?Pe.reject(a.failures[0]):void 0})},ht.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)})})})},ht.prototype.bulkAdd=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,h=(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 K=s.length,Y=k&&Y?s.map(io(k)):s;return d.core.mutate({trans:w,type:"add",keys:p,values:Y,wantResults:h}).then(function(F){var L=F.numFailures,R=F.failures;if(L===0)return h?F.results:F.lastResult;throw new wt("".concat(d.name,".bulkAdd(): ").concat(L," of ").concat(K," operations failed"),R)})})},ht.prototype.bulkPut=function(s,a,u){var d=this,p=Array.isArray(a)?a:void 0,h=(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 K=s.length,Y=k&&Y?s.map(io(k)):s;return d.core.mutate({trans:w,type:"put",keys:p,values:Y,wantResults:h}).then(function(F){var L=F.numFailures,R=F.failures;if(L===0)return h?F.results:F.lastResult;throw new wt("".concat(d.name,".bulkPut(): ").concat(L," of ").concat(K," operations failed"),R)})})},ht.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}),h=[];return this._trans("readwrite",function(w){return u.getMany({trans:w,keys:d,cache:"clone"}).then(function(k){var K=[],Y=[],F=(s.forEach(function(L,R){var H=L.key,V=L.changes,N=k[R];if(N){for(var B=0,se=Object.keys(V);B<se.length;B++){var Q=se[B],le=V[Q];if(Q===a.schema.primKey.keyPath){if(st(le,H)!==0)throw new Fe.Constraint("Cannot update primary key in bulkUpdate()")}else G(N,Q,le)}h.push(R),K.push(H),Y.push(N)}}),K.length);return u.mutate({trans:w,type:"put",keys:K,values:Y,updates:{keys:d,changeSpecs:p}}).then(function(L){var R=L.numFailures,H=L.failures;if(R===0)return F;for(var V=0,N=Object.keys(H);V<N.length;V++){var B,se=N[V],Q=h[Number(se)];Q!=null&&(B=H[se],delete H[se],H[Q]=B)}throw new wt("".concat(a.name,".bulkUpdate(): ").concat(R," of ").concat(F," operations failed"),H)})})})},ht.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 lo(a,s,p)})}).then(function(d){var p=d.numFailures,h=d.failures;if(p===0)return d.lastResult;throw new wt("".concat(a.name,".bulkDelete(): ").concat(p," of ").concat(u," operations failed"),h)})};var Al=ht;function ht(){}function fr(s){function a(w,k){if(k){for(var K=arguments.length,Y=new Array(K-1);--K;)Y[K-1]=arguments[K];return u[w].subscribe.apply(null,Y),s}if(typeof w=="string")return u[w]}var u={};a.addEventType=h;for(var d=1,p=arguments.length;d<p;++d)h(arguments[d]);return a;function h(w,k,K){var Y,F;if(typeof w!="object")return k=k||X,F={subscribers:[],fire:K=K||m,subscribe:function(L){F.subscribers.indexOf(L)===-1&&(F.subscribers.push(L),F.fire=k(F.fire,L))},unsubscribe:function(L){F.subscribers=F.subscribers.filter(function(R){return R!==L}),F.fire=F.subscribers.reduce(k,K)}},u[w]=a[w]=F;c(Y=w).forEach(function(L){var R=Y[L];if(f(R))h(L,Y[L][0],Y[L][1]);else{if(R!=="asap")throw new Fe.InvalidArgument("Invalid event config");var H=h(L,x,function(){for(var V=arguments.length,N=new Array(V);V--;)N[V]=arguments[V];H.subscribers.forEach(function(B){q(function(){B.apply(null,N)})})})}})}}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 uo(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=uo(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 co(s,a,u,d){var p,h,w=s.replayFilter?ws(s.filter,s.replayFilter()):s.filter;return s.or?(p={},h=function(k,K,Y){var F,L;w&&!w(K,Y,function(R){return K.stop(R)},function(R){return K.fail(R)})||((L=""+(F=K.primaryKey))=="[object ArrayBuffer]"&&(L=""+new Uint8Array(F)),_(p,L))||(p[L]=!0,a(k,K,Y))},Promise.all([s.or._iterate(h,u),Ol(Pl(s,d,u),s.algorithm,h,!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(h,w,k){return u(d(h),w,k)}:u);return s.then(function(h){if(h)return h.start(function(){var w=function(){return h.continue()};a&&!a(h,function(k){return w=k},function(k){h.stop(k),w=m},function(k){h.fail(k),w=m})||p(h.value,h,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 co(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 co(a,s,u,a.table.core)})},lt.prototype.count=function(s){var a=this;return this._read(function(u){var d,p=a._ctx,h=p.table.core;return Us(p,!0)?h.count({trans:u,query:{index:uo(p,h.schema),range:p.range}}).then(function(w){return Math.min(w,p.limit)}):(d=0,co(p,function(){return++d,!1},u,h).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 h(K,Y){return Y?h(K[u[Y]],Y-1):K[d]}var w=this._ctx.dir==="next"?1:-1;function k(K,Y){return st(h(K,p),h(Y,p))*w}return this.toArray(function(K){return K.slice().sort(k)}).then(a)},lt.prototype.toArray=function(s){var a=this;return this._read(function(u){var d,p,h,w=a._ctx;return Us(w,!0)&&0<w.limit?(d=w.valueMapper,p=uo(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})):(h=[],co(w,function(k){return h.push(k)},u,w.table.core).then(function(){return h}))},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=uo(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(N,B){var se=B.failures;R+=N-B.numFailures;for(var Q=0,le=c(se);Q<le.length;Q++){var pe=le[Q];L.push(se[pe])}}var h=typeof s=="function"?s:function(N){return Tl(N,s)},w=u.table.core,F=w.schema.primaryKey,k=F.outbound,K=F.extractKey,Y=200,F=a.db._options.modifyChunkSize,L=(F&&(Y=typeof F=="object"?F[w.name]||F["*"]||200:F),[]),R=0,H=[],V=s===Ml;return a.clone().primaryKeys().then(function(N){function B(Q){var le=Math.min(Y,N.length-Q),pe=N.slice(Q,Q+le);return(V?Promise.resolve([]):w.getMany({trans:d,keys:pe,cache:"immutable"})).then(function(me){var xe=[],ge=[],Ke=k?[]:null,_e=V?pe:[];if(!V)for(var Ne=0;Ne<le;++Ne){var ve=me[Ne],ze={value:Me(ve),primKey:N[Q+Ne]};h.call(ze,ze.value,ze)!==!1&&(ze.value==null?_e.push(N[Q+Ne]):k||st(K(ve),K(ze.value))===0?(ge.push(ze.value),k&&Ke.push(N[Q+Ne])):(_e.push(N[Q+Ne]),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<ge.length||se&&typeof s=="object")&&w.mutate({trans:d,type:"put",keys:Ke,values:ge,criteria:se,changeSpec:typeof s!="function"&&s,isAdditionalChunk:0<Q}).then(function(We){return p(ge.length,We)})}).then(function(){return(0<_e.length||se&&V)&&w.mutate({trans:d,type:"delete",keys:_e,criteria:se,isAdditionalChunk:0<Q}).then(function(We){return lo(u.table,_e,We)}).then(function(We){return p(_e.length,We)})}).then(function(){return N.length>Q+le&&B(Q+Y)})})}var se=Us(u)&&u.limit===1/0&&(typeof s!="function"||V)&&{index:u.index,range:u.range};return B(0).then(function(){if(0<L.length)throw new bt("Error modifying one or more objects",L,R,H);return N.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(h){return s.table.core.mutate({trans:u,type:"deleteRange",range:p}).then(function(K){var k=K.failures,K=K.numFailures;if(K)throw new bt("Could not delete some values",Object.keys(k).map(function(Y){return k[Y]}),h-K);return h-K})})})};var Nd=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 fo(H,a,u,d){var p,h,w,k,K,Y,F,L=u.length;if(!u.every(function(N){return typeof N=="string"}))return sn(H,kl);function R(N){p=N==="next"?function(se){return se.toUpperCase()}:function(se){return se.toLowerCase()},h=N==="next"?function(se){return se.toLowerCase()}:function(se){return se.toUpperCase()},w=N==="next"?Vd:Bd;var B=u.map(function(se){return{lower:h(se),upper:p(se)}}).sort(function(se,Q){return w(se.lower,Q.lower)});k=B.map(function(se){return se.upper}),K=B.map(function(se){return se.lower}),F=(Y=N)==="next"?"":d}R("next");var H=new H.Collection(H,function(){return Qn(k[0],K[L-1]+d)}),V=(H._ondirectionchange=function(N){R(N)},0);return H._addAlgorithm(function(N,B,se){var Q=N.key;if(typeof Q=="string"){var le=h(Q);if(a(le,K,V))return!0;for(var pe=null,me=V;me<L;++me){var xe=((ge,Ke,_e,Ne,ve,ze)=>{for(var We=Math.min(ge.length,Ne.length),Je=-1,nt=0;nt<We;++nt){var rn=Ke[nt];if(rn!==Ne[nt])return ve(ge[nt],_e[nt])<0?ge.substr(0,nt)+_e[nt]+_e.substr(nt+1):ve(ge[nt],Ne[nt])<0?ge.substr(0,nt)+Ne[nt]+_e.substr(nt+1):0<=Je?ge.substr(0,Je)+Ke[Je]+_e.substr(Je+1):null;ve(ge[nt],rn)<0&&(Je=nt)}return We<Ne.length&&ze==="next"?ge+_e.substr(ge.length):We<ge.length&&ze==="prev"?ge.substr(0,_e.length):Je<0?null:ge.substr(0,Je)+Ne[Je]+_e.substr(Je+1)})(Q,le,k[me],K[me],w,Y);xe===null&&pe===null?V=me+1:(pe===null||0<w(pe,xe))&&(pe=xe)}B(pe!==null?function(){N.continue(pe+F)}:se)}return!1}),H}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(Dt.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Dt.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)}},Dt.prototype.equals=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Il(s)})},Dt.prototype.above=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(s,void 0,!0)})},Dt.prototype.aboveOrEqual=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(s,void 0,!1)})},Dt.prototype.below=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(void 0,s,!1,!0)})},Dt.prototype.belowOrEqual=function(s){return s==null?sn(this,Ln):new this.Collection(this,function(){return Qn(void 0,s)})},Dt.prototype.startsWith=function(s){return typeof s!="string"?sn(this,kl):this.between(s,s+bs,!0,!0)},Dt.prototype.startsWithIgnoreCase=function(s){return s===""?this.startsWith(s):fo(this,function(a,u){return a.indexOf(u[0])===0},[s],bs)},Dt.prototype.equalsIgnoreCase=function(s){return fo(this,function(a,u){return a===u[0]},[s],"")},Dt.prototype.anyOfIgnoreCase=function(){var s=Se.apply(ke,arguments);return s.length===0?qs(this):fo(this,function(a,u){return u.indexOf(a)!==-1},s,"")},Dt.prototype.startsWithAnyOfIgnoreCase=function(){var s=Se.apply(ke,arguments);return s.length===0?qs(this):fo(this,function(a,u){return u.some(function(d){return a.indexOf(d)===0})},s,bs)},Dt.prototype.anyOf=function(){var s,a,u=this,d=Se.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(h){p=h==="next"?u._ascending:u._descending,d.sort(p)},a=0,s._addAlgorithm(function(h,w,k){for(var K=h.key;0<p(K,d[a]);)if(++a===d.length)return w(k),!1;return p(K,d[a])===0||(w(function(){h.continue(d[a])}),!1)}),s)},Dt.prototype.notEqual=function(s){return this.inAnyRange([[-1/0,s],[s,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Dt.prototype.noneOf=function(){var s=Se.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})},Dt.prototype.inAnyRange=function(s,se){var u=this,d=this._cmp,p=this._ascending,h=this._descending,w=this._min,k=this._max;if(s.length===0)return qs(this);if(!s.every(function(Q){return Q[0]!==void 0&&Q[1]!==void 0&&p(Q[0],Q[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 K=!se||se.includeLowers!==!1,Y=se&&se.includeUppers===!0,F,L=p;function R(Q,le){return L(Q[0],le[0])}try{(F=s.reduce(function(Q,le){for(var pe=0,me=Q.length;pe<me;++pe){var xe=Q[pe];if(d(le[0],xe[1])<0&&0<d(le[1],xe[0])){xe[0]=w(xe[0],le[0]),xe[1]=k(xe[1],le[1]);break}}return pe===me&&Q.push(le),Q},[])).sort(R)}catch{return sn(this,Ln)}var H=0,V=Y?function(Q){return 0<p(Q,F[H][1])}:function(Q){return 0<=p(Q,F[H][1])},N=K?function(Q){return 0<h(Q,F[H][0])}:function(Q){return 0<=h(Q,F[H][0])},B=V,se=new this.Collection(this,function(){return Qn(F[0][0],F[F.length-1][1],!K,!Y)});return se._ondirectionchange=function(Q){L=Q==="next"?(B=V,p):(B=N,h),F.sort(R)},se._addAlgorithm(function(Q,le,pe){for(var me,xe=Q.key;B(xe);)if(++H===F.length)return le(pe),!1;return!V(me=xe)&&!N(me)||(u._cmp(xe,F[H][1])===0||u._cmp(xe,F[H][0])===0||le(function(){L===p?Q.continue(F[H][0]):Q.continue(F[H][1])}),!1)}),se},Dt.prototype.startsWithAnyOf=function(){var s=Se.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=Dt;function Dt(){}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 po="storagemutated",La="x-storagemutated-1",Zn=fr(null,po),Ud=(kn.prototype._lock=function(){return T(!Be.global),++this._reculock,this._reculock!==1||Be.global||(Be.lockOwnerFor=this),this},kn.prototype._unlock=function(){if(T(!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(T(!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;T(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 Pe(function(h,w){p._blockedFuncs.push([function(){p._promise(s,a,u).then(h,w)},Be])}):u?Yn(function(){var h=new Pe(function(w,k){p._lock();var K=a(w,k,p);K&&K.then&&K.then(w,k)});return h.finally(function(){return p._unlock()}),h._lib=!0,h}):((d=new Pe(function(h,w){var k=a(h,w,p);k&&k.then&&k.then(h,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=Pe.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 h(){for(++u._spinCount;u._waitingQueue.length;)u._waitingQueue.shift()();u._waitingFor&&(a.get(-1/0).onsuccess=h)}()),u._waitingFor);return new Pe(function(h,w){d.then(function(k){return u._waitingQueue.push(kt(h.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 Ka(s,a,u,d,p,h,w,k){return{name:s,keyPath:a,unique:u,multi:d,auto:p,compound:h,src:(u&&!w?"&":"")+(d?"*":"")+(p?"++":"")+Dl(a),type:k}}function Dl(s){return typeof s=="string"?s:s?"["+[].join.call(s,"+")+"]":""}function Ra(s,a,u){return{name:s,primKey:a,indexes:u,mappedClass:null,idxByName:(d=function(p){return[p.name,p]},u.reduce(function(p,h,w){return h=d(h,w),h&&(p[h[0]]=h[1]),p},{}))};var d}var mr=function(s){try{return s.only([[]]),mr=function(){return[[]]},[[]]}catch{return mr=function(){return bs},bs}};function Fa(s){return s==null?function(){}:typeof s=="string"?(a=s).split(".").length===1?function(u){return u[a]}:function(u){return Z(u,a)}:function(u){return Z(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(B){if(B.type===3)return null;if(B.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var H=B.lower,V=B.upper,N=B.lowerOpen,B=B.upperOpen;return H===void 0?V===void 0?null:a.upperBound(V,!!B):V===void 0?a.lowerBound(H,!!N):a.bound(H,V,!!N,!!B)}function p(R){var H,V,N=R.name;return{name:N,schema:R,mutate:function(B){var se=B.trans,Q=B.type,le=B.keys,pe=B.values,me=B.range;return new Promise(function(xe,ge){xe=kt(xe);var Ke=se.objectStore(N),_e=Ke.keyPath==null,Ne=Q==="put"||Q==="add";if(!Ne&&Q!=="delete"&&Q!=="deleteRange")throw new Error("Invalid operation type: "+Q);var ve,ze=(le||pe||{length:1}).length;if(le&&pe&&le.length!==pe.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(Q==="deleteRange"){if(me.type===4)return xe({numFailures:rn,failures:nt,results:[],lastResult:void 0});me.type===3?Je.push(ve=Ke.clear()):Je.push(ve=Ke.delete(d(me)))}else{var _e=Ne?_e?[pe,le]:[pe,null]:[le,null],Ge=_e[0],Ut=_e[1];if(Ne)for(var qt=0;qt<ze;++qt)Je.push(ve=Ut&&Ut[qt]!==void 0?Ke[Q](Ge[qt],Ut[qt]):Ke[Q](Ge[qt])),ve.onerror=We;else for(qt=0;qt<ze;++qt)Je.push(ve=Ke[Q](Ge[qt])),ve.onerror=We}function $o(Jt){Jt=Jt.target.result,Je.forEach(function(xs,si){return xs.error!=null&&(nt[si]=xs.error)}),xe({numFailures:rn,failures:nt,results:Q==="delete"?le:Je.map(function(xs){return xs.result}),lastResult:Jt})}ve.onerror=function(Jt){We(Jt),$o(Jt)},ve.onsuccess=$o})},getMany:function(B){var se=B.trans,Q=B.keys;return new Promise(function(le,pe){le=kt(le);for(var me,xe=se.objectStore(N),ge=Q.length,Ke=new Array(ge),_e=0,Ne=0,ve=function(Je){Je=Je.target,Ke[Je._pos]=Je.result,++Ne===_e&&le(Ke)},ze=mn(pe),We=0;We<ge;++We)Q[We]!=null&&((me=xe.get(Q[We]))._pos=We,me.onsuccess=ve,me.onerror=ze,++_e);_e===0&&le(Ke)})},get:function(B){var se=B.trans,Q=B.key;return new Promise(function(le,pe){le=kt(le);var me=se.objectStore(N).get(Q);me.onsuccess=function(xe){return le(xe.target.result)},me.onerror=mn(pe)})},query:(H=K,V=Y,function(B){return new Promise(function(se,Q){se=kt(se);var le,pe,me,xe,ze=B.trans,ge=B.values,Ke=B.limit,ve=B.query,_e=(_e=B.direction)!=null?_e:"next",Ne=Ke===1/0?void 0:Ke,We=ve.index,ve=ve.range,ze=ze.objectStore(N),ze=We.isPrimaryKey?ze:ze.index(We.name),We=d(ve);if(Ke===0)return se({result:[]});V?(ve={query:We,count:Ne,direction:_e},(le=ge?ze.getAll(ve):ze.getAllKeys(ve)).onsuccess=function(Je){return se({result:Je.target.result})},le.onerror=mn(Q)):H&&_e==="next"?((le=ge?ze.getAll(We,Ne):ze.getAllKeys(We,Ne)).onsuccess=function(Je){return se({result:Je.target.result})},le.onerror=mn(Q)):(pe=0,me=!ge&&"openKeyCursor"in ze?ze.openKeyCursor(We,_e):ze.openCursor(We,_e),xe=[],me.onsuccess=function(){var Je=me.result;return!Je||(xe.push(ge?Je.value:Je.primaryKey),++pe===Ke)?se({result:xe}):void Je.continue()},me.onerror=mn(Q))})}),openCursor:function(B){var se=B.trans,Q=B.values,le=B.query,pe=B.reverse,me=B.unique;return new Promise(function(xe,ge){xe=kt(xe);var Ne=le.index,Ke=le.range,_e=se.objectStore(N),_e=Ne.isPrimaryKey?_e:_e.index(Ne.name),Ne=pe?me?"prevunique":"prev":me?"nextunique":"next",ve=!Q&&"openKeyCursor"in _e?_e.openKeyCursor(d(Ke),Ne):_e.openCursor(d(Ke),Ne);ve.onerror=mn(ge),ve.onsuccess=kt(function(ze){var We,Je,nt,rn,Ge=ve.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(ge),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(ve.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 $o=new Promise(function(Jt,xs){Jt=kt(Jt),ve.onerror=mn(xs),Ge.fail=xs,Ge.stop=function(si){Ge.stop=Ge.continue=Ge.continuePrimaryKey=Ge.advance=rn,Jt(si)}});return ve.onsuccess=kt(function(Jt){ve.onsuccess=qt,qt()}),Ge.continue=We,Ge.continuePrimaryKey=Je,Ge.advance=nt,qt(),$o},xe(Ge)):xe(null)},ge)})},count:function(B){var se=B.query,Q=B.trans,le=se.index,pe=se.range;return new Promise(function(me,xe){var ge=Q.objectStore(N),ge=le.isPrimaryKey?ge:ge.index(le.name),Ke=d(pe),Ke=Ke?ge.count(Ke):ge.count();Ke.onsuccess=kt(function(_e){return me(_e.target.result)}),Ke.onerror=mn(xe)})}}}h=w,k=Ll((w=s).objectStoreNames),F=0<k.length?h.objectStore(k[0]):{};var h,w={schema:{name:w.name,tables:k.map(function(R){return h.objectStore(R)}).map(function(R){var H=R.keyPath,V=R.autoIncrement,B=f(H),N={},B={name:R.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:H==null,compound:B,keyPath:H,autoIncrement:V,unique:!0,extractKey:Fa(H)},indexes:Ll(R.indexNames).map(function(se){return R.index(se)}).map(function(pe){var me=pe.name,Q=pe.unique,le=pe.multiEntry,pe=pe.keyPath,me={name:me,compound:f(pe),keyPath:pe,unique:Q,multiEntry:le,extractKey:Fa(pe)};return N[hr(pe)]=me}),getIndexByKeyPath:function(se){return N[hr(se)]}};return N[":id"]=B.primaryKey,H!=null&&(N[hr(H)]=B.primaryKey),B})},hasGetAll:0<k.length&&"getAll"in F&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604),hasIdb3Features:"getAllRecords"in F},k=w.schema,K=w.hasGetAll,Y=w.hasIdb3Features,F=k.tables.map(p),L={};return F.forEach(function(R){return L[R.name]=R}),{stack:"dbcore",transaction:s.transaction.bind(s),table:function(R){if(L[R])return L[R];throw new Error("Table '".concat(R,"' not found"))},MIN_KEY:-1/0,MAX_KEY: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,h){return h=h.create,r(r({},p),h(p))},a)}}function vo(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(h){return h.name===p})&&(d.core=s.core.table(p),s[p]instanceof s.Table)&&(s[p].core=d.core)})}function mo(s,a,u,d){u.forEach(function(p){var h=d[p];a.forEach(function(w){var k=function K(Y,F){return oe(Y,F)||(Y=b(Y))&&K(Y,F)}(w,p);(!k||"value"in k&&k.value===void 0)&&(w===s.Transaction.prototype||w instanceof s.Transaction?M(w,p,{get:function(){return this.table(p)},set:function(K){C(this,p,{value:K,writable:!0,configurable:!0,enumerable:!0})}}):w[p]=new s.Table(p,h))})})}function Na(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,h=(u.objectStoreNames.contains("$meta")&&!p.$meta&&(p.$meta=Ra("$meta",Rl("")[0],[]),s._storeNames.push("$meta")),s._createTransaction("readwrite",s._storeNames,p)),w=(h.create(u),h._completion.catch(d),h._reject.bind(h)),k=Be.transless||Be;Yn(function(){if(Be.trans=h,Be.transless=k,a!==0)return vo(s,u),Y=a,((K=h).storeNames.includes("$meta")?K.table("$meta").get("version").then(function(F){return F??Y}):Pe.resolve(Y)).then(function(B){var L=s,R=B,H=h,V=u,N=[],B=L._versions,se=L._dbSchema=yo(0,L.idbdb,V);return(B=B.filter(function(Q){return Q._cfg.version>=R})).length===0?Pe.resolve():(B.forEach(function(Q){N.push(function(){var le,pe,me,xe=se,ge=Q._cfg.dbschema,Ke=(go(L,xe,V),go(L,ge,V),se=L._dbSchema=ge,Va(xe,ge)),_e=(Ke.add.forEach(function(Ne){Ba(V,Ne[0],Ne[1].primKey,Ne[1].indexes)}),Ke.change.forEach(function(Ne){if(Ne.recreate)throw new Fe.Upgrade("Not yet support for changing primary key");var ve=V.objectStore(Ne.name);Ne.add.forEach(function(ze){return ho(ve,ze)}),Ne.change.forEach(function(ze){ve.deleteIndex(ze.name),ho(ve,ze)}),Ne.del.forEach(function(ze){return ve.deleteIndex(ze)})}),Q._cfg.contentUpgrade);if(_e&&Q._cfg.version>R)return vo(L,V),H._memoizedTables={},le=re(ge),Ke.del.forEach(function(Ne){le[Ne]=xe[Ne]}),Na(L,[L.Transaction.prototype]),mo(L,[L.Transaction.prototype],c(le),le),H.schema=le,(pe=De(_e))&&Bs(),ge=Pe.follow(function(){var Ne;(me=_e(H))&&pe&&(Ne=Jn.bind(null,null),me.then(Ne,Ne))}),me&&typeof me.then=="function"?Pe.resolve(me):ge.then(function(){return me})}),N.push(function(le){var pe,me,xe=Q._cfg.dbschema;pe=xe,me=le,[].slice.call(me.db.objectStoreNames).forEach(function(ge){return pe[ge]==null&&me.db.deleteObjectStore(ge)}),Na(L,[L.Transaction.prototype]),mo(L,[L.Transaction.prototype],L._storeNames,L._dbSchema),H.schema=L._dbSchema}),N.push(function(le){L.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(L.idbdb.version/10)===Q._cfg.version?(L.idbdb.deleteObjectStore("$meta"),delete L._dbSchema.$meta,L._storeNames=L._storeNames.filter(function(pe){return pe!=="$meta"})):le.objectStore("$meta").put(Q._cfg.version,"version"))})}),function Q(){return N.length?Pe.resolve(N.shift()(H.idbtrans)).then(Q):Pe.resolve()}().then(function(){Kl(se,V)}))}).catch(w);var K,Y;c(p).forEach(function(F){Ba(u,F,p[F].primKey,p[F].indexes)}),vo(s,u),Pe.follow(function(){return s.on.populate.fire(h)}).catch(w)})}function Yd(s,a){Kl(s._dbSchema,a),a.db.version%10!=0||a.objectStoreNames.contains("$meta")||a.db.createObjectStore("$meta").add(Math.ceil(a.db.version/10-1),"version");var u=yo(0,s.idbdb,a);go(s,s._dbSchema,a);for(var d=0,p=Va(u,s._dbSchema).change;d<p.length;d++){var h=(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(K){Ce&&console.debug("Dexie upgrade patch: Creating missing index ".concat(w.name,".").concat(K.src)),ho(k,K)})})(p[d]);if(typeof h=="object")return h.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],h=a[u];if(p){var w={name:u,def:h,recreate:!1,del:[],add:[],change:[]};if(""+(p.primKey.keyPath||"")!=""+(h.primKey.keyPath||"")||p.primKey.auto!==h.primKey.auto)w.recreate=!0,d.change.push(w);else{var k=p.idxByName,K=h.idxByName,Y=void 0;for(Y in k)K[Y]||w.del.push(Y);for(Y in K){var F=k[Y],L=K[Y];F?F.src!==L.src&&w.change.push(L):w.add.push(L)}(0<w.del.length||0<w.add.length||0<w.change.length)&&d.change.push(w)}}else d.add.push([u,h])}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(h){return ho(p,h)})}function Kl(s,a){c(s).forEach(function(u){a.db.objectStoreNames.contains(u)||(Ce&&console.debug("Dexie: Creating missing table",u),Ba(a,u,s[u].primKey,s[u].indexes))})}function ho(s,a){s.createIndex(a.name,a.keyPath,{unique:a.unique,multiEntry:a.multi})}function yo(s,a,u){var d={};return ce(a.objectStoreNames,0).forEach(function(p){for(var h=u.objectStore(p),w=Ka(Dl(Y=h.keyPath),Y||"",!0,!1,!!h.autoIncrement,Y&&typeof Y!="string",!0),k=[],K=0;K<h.indexNames.length;++K){var F=h.index(h.indexNames[K]),Y=F.keyPath,F=Ka(F.name,Y,!!F.unique,!!F.multiEntry,!1,Y&&typeof Y!="string",!1);k.push(F)}d[p]=Ra(p,w,k)}),d}function go(s,a,u){for(var d=u.db.objectStoreNames,p=0;p<d.length;++p){var h=d[p],w=u.objectStore(h);s._hasGetAll="getAll"in w;for(var k=0;k<w.indexNames.length;++k){var K,Y=w.indexNames[k],F=w.index(Y).keyPath,F=typeof F=="string"?F:"["+ce(F).join("+")+"]";a[h]&&(K=a[h].idxByName[F])&&(K.name=Y,delete a[h].idxByName[F],a[h].idxByName[Y]=K)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&i.WorkerGlobalScope&&i instanceof i.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(s._hasGetAll=!1)}function Rl(s){return s.split(",").map(function(a,u){var p=a.split(":"),d=(d=p[1])==null?void 0:d.trim(),p=(a=p[0].trim()).replace(/([&*]|\+\+)/g,""),h=/^\[/.test(p)?p.match(/^\[(.*)\]$/)[1].split("+"):p;return Ka(p,h||null,/\&/.test(a),/\*/.test(a),/\+\+/.test(a),f(h),u===0,d)})}Hs.prototype._createTableSchema=Ra,Hs.prototype._parseIndexSyntax=Rl,Hs.prototype._parseStoresSpec=function(s,a){var u=this;c(s).forEach(function(d){if(s[d]!==null){var p=u._parseIndexSyntax(s[d]),h=p.shift();if(!h)throw new Fe.Schema("Invalid schema for table "+d+": "+s[d]);if(h.unique=!0,h.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")}),h=u._createTableSchema(d,h,p),a[d]=h}})},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(h){v(d,h._cfg.storesSource),p=h._cfg.dbschema={},h._parseStoresSpec(d,p)}),a._dbSchema=p,Na(a,[a._allTables,a,a.Transaction.prototype]),mo(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||m,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(),h=p.next();!h.done;){var w=h.value;if(w.deref()===d._novip)return s.delete(w),void a.unregister(w);h=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 Kn(ao,{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},Nl(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},Nl(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 h=p.from,w=p.l,k=p.r;gr(d,h,p.to),w&&u(d,w),k&&u(d,k)}(s,a)}function Fl(s,a){var u=bo(a),d=u.next();if(!d.done)for(var p=d.value,h=bo(s),w=h.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=h.next(p.from)).value}return!1}function bo(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 Nl(s){var a,u,d,p=(((p=s.r)==null?void 0:p.d)||0)-(((p=s.l)==null?void 0:p.d)||0),p=1<p?"r":p<-1?"l":"";p&&(a=p=="r"?"l":"r",u=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 wo(s,a){return c(a).forEach(function(u){s[u]?br(s[u],a[u]):s[u]=function d(p){var h,w,k={};for(h in p)_(p,h)&&(w=p[h],k[h]=!w||typeof w!="object"||j.has(w.constructor)?w:d(w));return k}(a[u])}),s}function Wa(s,a){return s.all||a.all||Object.keys(s).some(function(u){return a[u]&&Fl(a[u],s[u])})}E(Bt.prototype,((Ze={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=bo(this).next(s).value;return a&&st(a.from,s)<=0&&0<=st(a.to,s)}})[Ae]=function(){return bo(this)},Ze));var _s={},Ga={},Ya=!1;function _o(s){wo(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 h in s){var w,k,h=/^idb\:\/\/(.*)\/(.*)\//.exec(h);h&&(w=h[1],h=h[2],k=_s["idb://".concat(w,"/").concat(h)])&&Bl(k,s,u,a)}u.forEach(function(K){return K()})}function Bl(s,a,u,d){for(var p=[],h=0,w=Object.entries(s.queries.query);h<w.length;h++){for(var k=w[h],K=k[0],Y=[],F=0,L=k[1];F<L.length;F++){var R=L[F];Wa(a,R.obsSet)?R.subscribers.forEach(function(B){return u.add(B)}):d&&Y.push(R)}d&&p.push([K,Y])}if(d)for(var H=0,V=p;H<V.length;H++){var N=V[H],K=N[0],Y=N[1];s.queries.query[K]=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),h=!1;function w(){if(a.openCanceller!==d)throw new Fe.DatabaseClosed("db.open() was cancelled")}function k(){return new Pe(function(R,H){if(w(),!u)throw new Fe.MissingAPI;var V=s.name,N=a.autoSchema||!p?u.open(V):u.open(V,p);if(!N)throw new Fe.MissingAPI;N.onerror=mn(H),N.onblocked=kt(s._fireOnBlocked),N.onupgradeneeded=kt(function(B){var se;F=N.transaction,a.autoSchema&&!s._options.allowEmptyDB?(N.onerror=vr,F.abort(),N.result.close(),(se=u.deleteDatabase(V)).onsuccess=se.onerror=kt(function(){H(new Fe.NoSuchDatabase("Database ".concat(V," doesnt exist")))})):(F.onerror=mn(H),se=B.oldVersion>Math.pow(2,62)?0:B.oldVersion,L=se<1,s.idbdb=N.result,h&&Yd(s,F),Gd(s,se/10,F,H))},H),N.onsuccess=kt(function(){F=null;var B,se,Q,le,pe,me,xe=s.idbdb=N.result,ge=ce(xe.objectStoreNames);if(0<ge.length)try{var Ke=xe.transaction((pe=ge).length===1?pe[0]:pe,"readonly");if(a.autoSchema)me=xe,le=Ke,(Q=s).verno=me.version/10,le=Q._dbSchema=yo(0,me,le),Q._storeNames=ce(me.objectStoreNames,0),mo(Q,[Q._allTables],c(le),le);else if(go(s,s._dbSchema,Ke),se=Ke,((se=Va(yo(0,(B=s).idbdb,se),B._dbSchema)).add.length||se.change.some(function(_e){return _e.add.length||_e.change.length}))&&!h)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),xe.close(),p=xe.version+1,h=!0,R(k());vo(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})}),L&&(ge=s._deps,pe=V,qa(me=ge.indexedDB)||pe===ao||Ua(me,ge.IDBKeyRange).put({name:pe}).catch(m)),R()},H)}).catch(function(R){switch(R==null?void 0:R.name){case"UnknownError":if(0<a.PR1398_maxLoop)return a.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),k();break;case"VersionError":if(0<p)return p=0,k()}return Pe.reject(R)})}var K,Y=a.dbReadyResolve,F=null,L=!1;return Pe.race([d,(typeof navigator>"u"?Pe.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(R){function H(){return indexedDB.databases().finally(R)}K=setInterval(H,100),H()}).finally(function(){return clearInterval(K)}):Promise.resolve()).then(k)]).then(function(){return w(),a.onReadyBeingFired=[],Pe.resolve(Ha(function(){return s.on.ready.fire(s.vip)})).then(function R(){var H;if(0<a.onReadyBeingFired.length)return H=a.onReadyBeingFired.reduce(te,m),a.onReadyBeingFired=[],Pe.resolve(Ha(function(){return H(s.vip)})).then(R)})}).finally(function(){a.openCanceller===d&&(a.onReadyBeingFired=null,a.isBeingOpened=!1)}).catch(function(R){a.dbOpenError=R;try{F&&F.abort()}catch{}return d===a.openCanceller&&s._close(),Tt(R)}).finally(function(){a.openComplete=!0,Y()}).then(function(){var R;return L&&(R={},s.tables.forEach(function(H){H.schema.indexes.forEach(function(V){V.name&&(R["idb://".concat(s.name,"/").concat(H.name,"/").concat(V.name)]=new Bt(-1/0,[[[]]]))}),R["idb://".concat(s.name,"/").concat(H.name,"/")]=R["idb://".concat(s.name,"/").concat(H.name,"/:dels")]=new Bt(-1/0,[[[]]])}),Zn(po).fire(R),Ja(R,!0)),s})}function Xa(s){function a(h){return s.next(h)}var u=p(a),d=p(function(h){return s.throw(h)});function p(h){return function(k){var k=h(k),K=k.value;return k.done?K:K&&typeof K.then=="function"?K.then(u,d):f(K)?Promise.all(K).then(u,d):u(K)}}return p(a)()}function ko(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),h=[];function w(R,H,V){var Q=hr(R),N=p[Q]=p[Q]||[],B=R==null?0:typeof R=="string"?1:R.length,se=0<H,Q=r(r({},V),{name:se?"".concat(Q,"(virtual-from:").concat(V.name,")"):V.name,lowLevelIndex:V,isVirtual:se,keyTail:H,keyLength:B,extractKey:Fa(R),unique:!se&&V.unique});return N.push(Q),Q.isPrimaryKey||h.push(Q),1<B&&w(B===2?R[0]:R.slice(0,B-1),H+1,V),N.sort(function(le,pe){return le.keyTail-pe.keyTail}),Q}var k=w(d.primaryKey.keyPath,0,d.primaryKey);p[":id"]=[k];for(var K=0,Y=d.indexes;K<Y.length;K++){var F=Y[K];w(F.keyPath,0,F)}function L(R){var H,V=R.query.index;return V.isVirtual?r(r({},R),{query:{index:V.lowLevelIndex,range:(H=R.query.range,V=V.keyTail,{type:H.type===1?2:H.type,lower:ko(H.lower,H.lowerOpen?s.MAX_KEY:s.MIN_KEY,V),lowerOpen:!0,upper:ko(H.upper,H.upperOpen?s.MIN_KEY:s.MAX_KEY,V),upperOpen:!0})}}):R}return r(r({},u),{schema:r(r({},d),{primaryKey:k,indexes:h,getIndexByKeyPath:function(R){return(R=p[hr(R)])&&R[0]}}),count:function(R){return u.count(L(R))},query:function(R){return u.query(L(R))},openCursor:function(R){var H=R.query.index,V=H.keyTail,N=H.keyLength;return H.isVirtual?u.openCursor(L(R)).then(function(se){return se&&B(se)}):u.openCursor(R);function B(se){return Object.create(se,{continue:{value:function(Q){Q!=null?se.continue(ko(Q,R.reverse?s.MAX_KEY:s.MIN_KEY,V)):R.unique?se.continue(se.key.slice(0,N).concat(R.reverse?s.MIN_KEY:s.MAX_KEY,V)):se.continue()}},continuePrimaryKey:{value:function(Q,le){se.continuePrimaryKey(ko(Q,s.MAX_KEY,V),le)}},primaryKey:{get:function(){return se.primaryKey}},key:{get:function(){var Q=se.key;return N===1?Q[0]:Q.slice(0,N)}},value:{get:function(){return se.value}}})}}})}})}};function Qa(s,a,u,d){return u=u||{},d=d||"",c(s).forEach(function(p){var h,w,k;_(a,p)?(h=s[p],w=a[p],typeof h=="object"&&typeof w=="object"&&h&&w?(k=he(h))!==he(w)?u[d+p]=a[p]:k==="Object"?Qa(h,w,u,d+p+"."):h!==w&&(u[d+p]=a[p]):h!==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 h=Be.trans,w=h.table(a).hook,k=w.deleting,K=w.creating,Y=w.updating;switch(p.type){case"add":if(K.fire===m)break;return h._promise("readwrite",function(){return F(p)},!0);case"put":if(K.fire===m&&Y.fire===m)break;return h._promise("readwrite",function(){return F(p)},!0);case"delete":if(k.fire===m)break;return h._promise("readwrite",function(){return F(p)},!0);case"deleteRange":if(k.fire===m)break;return h._promise("readwrite",function(){return function L(R,H,V){return u.query({trans:R,values:!1,query:{index:d,range:H},limit:V}).then(function(N){var B=N.result;return F({type:"delete",keys:B,trans:R}).then(function(se){return 0<se.numFailures?Promise.reject(se.failures[0]):B.length<V?{failures:[],numFailures:0,lastResult:void 0}:L(R,r(r({},H),{lower:B[B.length-1],lowerOpen:!0}),V)})})}(p.trans,p.range,1e4)},!0)}return u.mutate(p);function F(L){var R,H,V,N=Be.trans,B=L.keys||Za(d,L);if(B)return(L=L.type==="add"||L.type==="put"?r(r({},L),{keys:B}):r({},L)).type!=="delete"&&(L.values=o([],L.values)),L.keys&&(L.keys=o([],L.keys)),R=u,V=B,((H=L).type==="add"?Promise.resolve([]):R.getMany({trans:H.trans,keys:V,cache:"immutable"})).then(function(se){var Q=B.map(function(le,pe){var me,xe,ge,Ke=se[pe],_e={onerror:null,onsuccess:null};return L.type==="delete"?k.fire.call(_e,le,Ke,N):L.type==="add"||Ke===void 0?(me=K.fire.call(_e,le,L.values[pe],N),le==null&&me!=null&&(L.keys[pe]=le=me,d.outbound||G(L.values[pe],d.keyPath,le))):(me=Qa(Ke,L.values[pe]),(xe=Y.fire.call(_e,me,le,Ke,N))&&(ge=L.values[pe],Object.keys(xe).forEach(function(Ne){_(ge,Ne)?ge[Ne]=xe[Ne]:G(ge,Ne,xe[Ne])}))),_e});return u.mutate(L).then(function(le){for(var pe=le.failures,me=le.results,xe=le.numFailures,le=le.lastResult,ge=0;ge<B.length;++ge){var Ke=(me||B)[ge],_e=Q[ge];Ke==null?_e.onerror&&_e.onerror(pe[ge]):_e.onsuccess&&_e.onsuccess(L.type==="put"&&se[ge]?L.values[ge]:Ke)}return{failures:pe,results:me,numFailures:xe,lastResult:le}}).catch(function(le){return Q.forEach(function(pe){return pe.onerror&&pe.onerror(le)}),Promise.reject(le)})});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,h=0;p<a.keys.length&&h<s.length;++p)st(a.keys[p],s[h])===0&&(d.push(u?Me(a.values[p]):a.values[p]),++h);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"))?Pe.resolve(p):u.getMany(d).then(function(h){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Me(h):h},h}):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,h){if(Be.subscr&&p!=="readonly")throw new Fe.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(Be.querier));return s.transaction(d,p,h)},table:function(d){function p(B){var N,B=B.query;return[N=B.index,new Bt((N=(B=B.range).lower)!=null?N:s.MIN_KEY,(N=B.upper)!=null?N:s.MAX_KEY)]}var h=s.table(d),w=h.schema,k=w.primaryKey,K=w.indexes,Y=k.extractKey,F=k.outbound,L=k.autoIncrement&&K.filter(function(V){return V.compound&&V.keyPath.includes(k.keyPath)}),R=r(r({},h),{mutate:function(V){function N(ve){return ve="idb://".concat(a,"/").concat(d,"/").concat(ve),pe[ve]||(pe[ve]=new Bt)}var B,se,Q,le=V.trans,pe=V.mutatedParts||(V.mutatedParts={}),me=N(""),xe=N(":dels"),ge=V.type,_e=V.type==="deleteRange"?[V.range]:V.type==="delete"?[V.keys]:V.values.length<50?[Za(k,V).filter(function(ve){return ve}),V.values]:[],Ke=_e[0],_e=_e[1],Ne=V.trans._cache;return f(Ke)?(me.addKeys(Ke),(ge=ge==="delete"||Ke.length===_e.length?Ul(Ke,Ne):null)||xe.addKeys(Ke),(ge||_e)&&(B=N,se=ge,Q=_e,w.indexes.forEach(function(ve){var ze=B(ve.name||"");function We(nt){return nt!=null?ve.extractKey(nt):null}function Je(nt){ve.multiEntry&&f(nt)?nt.forEach(function(rn){return ze.addKey(rn)}):ze.addKey(nt)}(se||Q).forEach(function(nt,Ut){var Ge=se&&We(se[Ut]),Ut=Q&&We(Q[Ut]);st(Ge,Ut)!==0&&(Ge!=null&&Je(Ge),Ut!=null)&&Je(Ut)})}))):Ke?(_e={from:(Ne=Ke.lower)!=null?Ne:s.MIN_KEY,to:(ge=Ke.upper)!=null?ge:s.MAX_KEY},xe.add(_e),me.add(_e)):(me.add(u),xe.add(u),w.indexes.forEach(function(ve){return N(ve.name).add(u)})),h.mutate(V).then(function(ve){return!Ke||V.type!=="add"&&V.type!=="put"||(me.addKeys(ve.results),L&&L.forEach(function(ze){for(var We=V.values.map(function(Ge){return ze.extractKey(Ge)}),Je=ze.keyPath.findIndex(function(Ge){return Ge===k.keyPath}),nt=0,rn=ve.results.length;nt<rn;++nt)We[nt][Je]=ve.results[nt];N(ze.name).addKeys(We)})),le.mutatedParts=wo(le.mutatedParts||{},pe),ve})}}),H={get:function(V){return[k,new Bt(V.key)]},getMany:function(V){return[k,new Bt().addKeys(V.keys)]},count:p,query:p,openCursor:p};return c(H).forEach(function(V){R[V]=function(N){var B=Be.subscr,se=!!B,Q=ql(Be,h)&&Hl(V,N)?N.obsSet={}:B;if(se){var le,B=function(_e){return _e="idb://".concat(a,"/").concat(d,"/").concat(_e),Q[_e]||(Q[_e]=new Bt)},pe=B(""),me=B(":dels"),se=H[V](N),xe=se[0],se=se[1];if((V==="query"&&xe.isPrimaryKey&&!N.values?me:B(xe.name||"")).add(se),!xe.isPrimaryKey){if(V!=="count")return le=V==="query"&&F&&N.values&&h.query(r(r({},N),{values:!1})),h[V].apply(this,arguments).then(function(_e){if(V==="query"){if(F&&N.values)return le.then(function(We){return We=We.result,pe.addKeys(We),_e});var Ne=N.values?_e.result.map(Y):_e.result;(N.values?pe:me).addKeys(Ne)}else{var ve,ze;if(V==="openCursor")return ze=N.values,(ve=_e)&&Object.create(ve,{key:{get:function(){return me.addKey(ve.primaryKey),ve.key}},primaryKey:{get:function(){var We=ve.primaryKey;return me.addKey(We),We}},value:{get:function(){return ze&&pe.addKey(ve.primaryKey),ve.value}}})}return _e});me.add(u)}}return h[V].apply(this,arguments)}}),R}})}};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,h){return!(h in u.failures)})),"values"in d&&f(d.values)&&(d.values=d.values.filter(function(p,h){return!(h 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,h){var w,k,K,Y,F,L,R;return!u||u.length===0||(w=a.query.index,k=w.multiEntry,K=a.query.range,Y=d.schema.primaryKey.extractKey,F=w.extractKey,L=(w.lowLevelIndex||w).extractKey,(d=u.reduce(function(H,V){var N=H,B=[];if(V.type==="add"||V.type==="put")for(var se=new Bt,Q=V.values.length-1;0<=Q;--Q){var le,pe=V.values[Q],me=Y(pe);!se.hasKey(me)&&(le=F(pe),k&&f(le)?le.some(function(Ne){return ei(Ne,K)}):ei(le,K))&&(se.addKey(me),B.push(pe))}switch(V.type){case"add":var xe=new Bt().addKeys(a.values?H.map(function(ve){return Y(ve)}):H),N=H.concat(a.values?B.filter(function(ve){return ve=Y(ve),!xe.hasKey(ve)&&(xe.addKey(ve),!0)}):B.map(function(ve){return Y(ve)}).filter(function(ve){return!xe.hasKey(ve)&&(xe.addKey(ve),!0)}));break;case"put":var ge=new Bt().addKeys(V.values.map(function(ve){return Y(ve)}));N=H.filter(function(ve){return!ge.hasKey(a.values?Y(ve):ve)}).concat(a.values?B:B.map(function(ve){return Y(ve)}));break;case"delete":var Ke=new Bt().addKeys(V.keys);N=H.filter(function(ve){return!Ke.hasKey(a.values?Y(ve):ve)});break;case"deleteRange":var _e=V.range;N=H.filter(function(ve){return!ei(Y(ve),_e)})}return N},s))===s)?s:(R=function(H,V){return st(L(H),L(V))||st(Y(H),Y(V))},d.sort(a.direction==="prev"||a.direction==="prevunique"?function(H,V){return R(V,H)}:R),a.limit&&a.limit<1/0&&(d.length>a.limit?d.length=a.limit:s.length===a.limit&&d.length<a.limit&&(p.dirty=!0)),h?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,h)=>{if(u===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((u=st(u,d))===0){if(p&&h)return 0;if(p)return 1;if(h)return-1}return u})(s.lower,a.lower,s.lowerOpen,a.lowerOpen)<=0&&0<=((u,d,p,h)=>{if(u===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((u=st(u,d))===0){if(p&&h)return 0;if(p)return-1;if(h)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,h;s.subscribers.delete(u),s.subscribers.size===0&&(p=s,h=a,setTimeout(function(){p.subscribers.size===0&&de(h,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 h,w,k=s.transaction(u,d,p);return d==="readwrite"&&(p=(h=new AbortController).signal,k.addEventListener("abort",(w=function(K){return function(){if(h.abort(),d==="readwrite"){for(var Y=new Set,F=0,L=u;F<L.length;F++){var R=L[F],H=_s["idb://".concat(a,"/").concat(R)];if(H){var V=s.table(R),N=H.optimisticOps.filter(function(ve){return ve.trans===k});if(k._explicit&&K&&k.mutatedParts)for(var B=0,se=Object.values(H.queries.query);B<se.length;B++)for(var Q=0,le=(xe=se[B]).slice();Q<le.length;Q++)Wa((ge=le[Q]).obsSet,k.mutatedParts)&&(de(xe,ge),ge.subscribers.forEach(function(ve){return Y.add(ve)}));else if(0<N.length){H.optimisticOps=H.optimisticOps.filter(function(ve){return ve.trans!==k});for(var pe=0,me=Object.values(H.queries.query);pe<me.length;pe++)for(var xe,ge,Ke,_e=0,Ne=(xe=me[pe]).slice();_e<Ne.length;_e++)(ge=Ne[_e]).res!=null&&k.mutatedParts&&(K&&!ge.dirty?(Ke=Object.isFrozen(ge.res),Ke=Wl(ge.res,ge.req,N,V,ge,Ke),ge.dirty?(de(xe,ge),ge.subscribers.forEach(function(ve){return Y.add(ve)})):Ke!==ge.res&&(ge.res=Ke,ge.promise=Pe.resolve({result:Ke}))):(ge.dirty&&de(xe,ge),ge.subscribers.forEach(function(ve){return Y.add(ve)})))}}}Y.forEach(function(ve){return ve()})}}})(!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(h){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(h),h.type!=="add"&&h.type!=="put"||!(50<=h.values.length||Za(p,h).some(function(K){return K==null}))?(w.optimisticOps.push(h),h.mutatedParts&&_o(h.mutatedParts),k.then(function(K){0<K.numFailures&&(de(w.optimisticOps,h),(K=zl(0,h,K))&&w.optimisticOps.push(K),h.mutatedParts)&&_o(h.mutatedParts)}),k.catch(function(){de(w.optimisticOps,h),h.mutatedParts&&_o(h.mutatedParts)})):k.then(function(K){var Y=zl(0,r(r({},h),{values:h.values.map(function(F,L){var R;return K.failures[L]?F:(G(R=(R=p.keyPath)!=null&&R.includes(".")?Me(F):r({},F),p.keyPath,K.results[L]),R)})}),K);w.optimisticOps.push(Y),queueMicrotask(function(){return h.mutatedParts&&_o(h.mutatedParts)})}),k):d.mutate(h)},query:function(h){var w,k,K,Y,F,L,R;return ql(Be,d)&&Hl("query",h)?(w=((K=Be.trans)==null?void 0:K.db._options.cache)==="immutable",k=(K=Be).requery,K=K.signal,L=((H,V,N,B)=>{var se=_s["idb://".concat(H,"/").concat(V)];if(!se)return[];if(!(H=se.queries[N]))return[null,!1,se,null];var Q=H[(B.query?B.query.index.name:null)||""];if(!Q)return[null,!1,se,null];switch(N){case"query":var le=(pe=B.direction)!=null?pe:"next",pe=Q.find(function(me){var xe;return me.req.limit===B.limit&&me.req.values===B.values&&((xe=me.req.direction)!=null?xe:"next")===le&&Gl(me.req.query.range,B.query.range)});return pe?[pe,!0,se,Q]:[Q.find(function(me){var xe;return("limit"in me.req?me.req.limit:1/0)>=B.limit&&((xe=me.req.direction)!=null?xe:"next")===le&&(!B.values||me.req.values)&&nf(me.req.query.range,B.query.range)}),!1,se,Q];case"count":return pe=Q.find(function(me){return Gl(me.req.query.range,B.query.range)}),[pe,!!pe,se,Q]}})(a,u,"query",h),R=L[0],Y=L[2],F=L[3],R&&L[1]?R.obsSet=h.obsSet:(L=d.query(h).then(function(H){var V=H.result;if(R&&(R.res=V),w){for(var N=0,B=V.length;N<B;++N)Object.freeze(V[N]);Object.freeze(V)}return H}).catch(function(H){return F&&R&&de(F,R),Promise.reject(H)}),R={obsSet:h.obsSet,promise:L,subscribers:new Set,type:"query",req:h,dirty:!1},F?F.push(R):(F=[R],(Y=Y||(_s["idb://".concat(a,"/").concat(u)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[h.query.index.name||""]=F)),sf(R,F,k,K),R.promise.then(function(H){return H=Wl(H.result,h,Y==null?void 0:Y.optimisticOps,d,R,w),{result:w?H:Me(H)}})):d.query(h)}})}})}};function xo(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 Pe(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(m)}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,h=(p&&this.unuse({stack:a,name:p}),this._middlewares[a]||(this._middlewares[a]=[]));return h.push({stack:a,create:u,level:d??10,name:p}),h.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 Pe(function(a){s.dbReadyResolve=a}),s.openCanceller=new Pe(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 Pe(function(p,h){function w(){a.close(s);var k=a._deps.indexedDB.deleteDatabase(a.name);k.onsuccess=kt(function(){var K,Y,F;K=a._deps,Y=a.name,qa(F=K.indexedDB)||Y===ao||Ua(F,K.IDBKeyRange).delete(Y).catch(m),p()}),k.onerror=mn(h),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 h=new Array(p-1);--p;)h[p-1]=arguments[p];return d=h.pop(),[a,S(h),d]}).apply(this,arguments);return this._transaction.apply(this,s)},At.prototype._transaction=function(s,a,u){var d,p,h=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 h.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(F,L){L(Y)}):Tt(Y)}var K=(function Y(F,L,R,H,V){return Pe.resolve().then(function(){var Q=Be.transless||Be,N=F._createTransaction(L,R,F._dbSchema,H),Q=(N.explicit=!0,{trans:N,transless:Q});if(H)N.idbtrans=H.idbtrans;else try{N.create(),N.idbtrans._explicit=!0,F._state.PR1398_maxLoop=3}catch(le){return le.name===Vt.InvalidState&&F.isOpen()&&0<--F._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),F.close({disableAutoOpen:!1}),F.open().then(function(){return Y(F,L,R,null,V)})):Tt(le)}var B,se=De(V),Q=(se&&Bs(),Pe.follow(function(){var le;(B=V.call(N,N))&&(se?(le=Jn.bind(null,null),B.then(le,le)):typeof B.next=="function"&&typeof B.throw=="function"&&(B=Xa(B)))},Q));return(B&&typeof B.then=="function"?Pe.resolve(B).then(function(le){return N.active?le:Tt(new Fe.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):Q.then(function(){return B})).then(function(le){return H&&N._resolve(),N._completion.then(function(){return le})}).catch(function(le){return N._reject(le),Tt(le)})})}).bind(null,this,d,p,w,u);return w?w._promise(d,K,"lock"):Be.trans?gs(Be.transless,function(){return h._whenReady(K)}):this._whenReady(K)},At.prototype.table=function(s){if(_(this._allTables,s))return this._allTables[s];throw new Fe.InvalidTable("Table ".concat(s," does not exist"))};var Kn=At;function At(s,a){var u,d,p,h,w,k=this,K=(this._middlewares={},this.verno=0,At.dependencies),K=(this._options=a=r({addons:At.addons,autoOpen:!0,indexedDB:K.indexedDB,IDBKeyRange:K.IDBKeyRange,cache:"cloned",maxConnections:1e3},a),this._deps={indexedDB:a.indexedDB,IDBKeyRange:a.IDBKeyRange},a.addons),Y=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:m,dbReadyPromise:null,cancelOpen:m,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:a.autoOpen}),F=(Y.dbReadyPromise=new Pe(function(L){Y.dbReadyResolve=L}),Y.openCanceller=new Pe(function(L,R){Y.cancelOpen=R}),this._state=Y,this.name=s,this.on=fr(this,"populate","blocked","versionchange","close",{ready:[te,m]}),this.once=function(L,R){var H=function(){for(var V=[],N=0;N<arguments.length;N++)V[N]=arguments[N];k.on(L).unsubscribe(H),R.apply(k,V)};return k.on(L,H)},this.on.ready.subscribe=U(this.on.ready.subscribe,function(L){return function(R,H){At.vip(function(){var V,N=k._state;N.openComplete?(N.dbOpenError||Pe.resolve().then(R),H&&L(R)):N.onReadyBeingFired?(N.onReadyBeingFired.push(R),H&&L(R)):(L(R),V=k,H||L(function B(){V.on.ready.unsubscribe(R),V.on.ready.unsubscribe(B)}))})}}),this.Collection=(u=this,pr(Nd.prototype,function(B,N){this.db=u;var H=xl,V=null;if(N)try{H=N()}catch(Q){V=Q}var N=B._ctx,B=N.table,se=B.hook.reading.fire;this._ctx={table:B,index:N.index,isPrimKey:!N.index||B.schema.primKey.keyPath&&N.index===B.schema.primKey.name,range:H,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:V,or:N.or,valueMapper:se!==x?se:null}})),this.Table=(d=this,pr(Al.prototype,function(L,R,H){this.db=d,this._tx=H,this.name=L,this.schema=R,this.hook=d._allTables[L]?d._allTables[L].hook:fr(null,{creating:[z,m],reading:[D,x],updating:[A,m],deleting:[ee,m]})})),this.Transaction=(p=this,pr(Ud.prototype,function(L,R,H,V,N){var B=this;L!=="readonly"&&R.forEach(function(se){se=(se=H[se])==null?void 0:se.yProps,se&&(R=R.concat(se.map(function(Q){return Q.updatesTable})))}),this.db=p,this.mode=L,this.storeNames=R,this.schema=H,this.chromeTransactionDurability=V,this.idbtrans=null,this.on=fr(this,"complete","error","abort"),this.parent=N||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 Pe(function(se,Q){B._resolve=se,B._reject=Q}),this._completion.then(function(){B.active=!1,B.on.complete.fire()},function(se){var Q=B.active;return B.active=!1,B.on.error.fire(se),B.parent?B.parent._reject(se):Q&&B.idbtrans&&B.idbtrans.abort(),Tt(se)})})),this.Version=(h=this,pr(Jd.prototype,function(L){this.db=h,this._cfg={version:L,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(w=this,pr(jl.prototype,function(L,R,H){if(this.db=w,this._ctx={table:L,index:R===":id"?null:R,or:H},this._cmp=this._ascending=st,this._descending=function(V,N){return st(N,V)},this._max=function(V,N){return 0<st(V,N)?V:N},this._min=function(V,N){return st(V,N)<0?V:N},this._IDBKeyRange=w._deps.IDBKeyRange,!this._IDBKeyRange)throw new Fe.MissingAPI})),this.on("versionchange",function(L){0<L.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(L){!L.newVersion||L.newVersion<L.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(L.oldVersion/10))}),this._maxKey=mr(a.IDBKeyRange),this._createTransaction=function(L,R,H,V){return new k.Transaction(L,R,H,k._options.chromeTransactionDurability,V)},this._fireOnBlocked=function(L){k.on("blocked").fire(L),yr.toArray().filter(function(R){return R.name===k.name&&R!==k&&!R._state.vcFired}).map(function(R){return R.on("versionchange").fire(L)})},this.use(ef),this.use(rf),this.use(tf),this.use(Qd),this.use(Zd),new Proxy(this,{get:function(L,R,H){var V;return R==="_vip"||(R==="table"?function(N){return xo(k.table(N),F)}:(V=Reflect.get(L,R,H))instanceof Al?xo(V,F):R==="tables"?V.map(function(N){return xo(N,F)}):R==="_createTransaction"?function(){return xo(V.apply(this,arguments),F)}:V)}}));this.vip=F,K.forEach(function(L){return L(k)})}var Co,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{Co={indexedDB:i.indexedDB||i.mozIndexedDB||i.webkitIndexedDB||i.msIndexedDB,IDBKeyRange:i.IDBKeyRange||i.webkitIDBKeyRange}}catch{Co={indexedDB:null,IDBKeyRange:null}}function Yl(s){var a,u=!1,d=new of(function(p){var h=De(s),w,k=!1,K={},Y={},F={get closed(){return k},unsubscribe:function(){k||(k=!0,w&&w.abort(),L&&Zn.storagemutated.unsubscribe(V))}},L=(p.start&&p.start(F),!1),R=function(){return Oa(N)};function H(){return Wa(Y,K)}var V=function(B){wo(K,B),H()&&R()},N=function(){var B,se,Q;!k&&Co.indexedDB&&(K={},B={},w&&w.abort(),w=new AbortController,Q=(le=>{var pe=Ns();try{h&&Bs();var me=Yn(s,le);return me=h?me.finally(Jn):me}finally{pe&&Vs()}})(se={subscr:B,signal:w.signal,requery:R,querier:s,trans:null}),L||(Zn.storagemutated.subscribe(V),L=!0),Promise.resolve(Q).then(function(le){u=!0,a=le,k||se.signal.aborted||(H()||(Y=B,H())?R():(K={},Oa(function(){return!k&&p.next&&p.next(le)})))},function(le){u=!1,["DatabaseClosedError","AbortError"].includes(le==null?void 0:le.name)||k||Oa(function(){k||p.error&&p.error(le)})}))};return setTimeout(R,0),F});return d.hasValue=function(){return u},d.getValue=function(){return a},d}var ks=Kn;function ni(s){var a=es;try{es=!0,Zn.storagemutated.fire(s),Ja(s,!0)}finally{es=a}}E(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!==ao})}):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:Pe.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:Pe.resolve(d)}catch(p){return Tt(p)}},currentTransaction:{get:function(){return Be.trans||null}},waitFor:function(s,a){return s=Pe.resolve(typeof s=="function"?ks.ignoreTransaction(s):s).timeout(a||6e4),Be.trans?Be.trans.waitFor(s):s},Promise:Pe,debug:{get:function(){return Ce},set:function(s){be(s)}},derive:J,extend:v,props:E,override:U,Events:fr,on:Zn,liveQuery:Yl,extendObservabilitySet:wo,getByKeyPath:Z,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:Me,getObjectDiff:Qa,cmp:st,asap:q,minKey:-1/0,addons:[],connections:{get:yr.toArray},errnames:Vt,dependencies:Co,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(po,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(po,function(s){es||Ws.postMessage(s)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(s){if(!Kn.disableBfCache&&s.persisted){Ce&&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){!Kn.disableBfCache&&s.persisted&&(Ce&&console.debug("Dexie: handling persisted pageshow"),Jl(),ni({all:new Bt(-1/0,[[]])}))})),Pe.rejectionMapper=function(s,a){return!s||s instanceof Ie||s instanceof TypeError||s instanceof SyntaxError||!s.name||!g[s.name]?s:(a=new g[s.name](a||s.message,s),"stack"in s&&M(a,"stack",{get:function(){return this.inner.stack}}),a)},be(Ce),r(Kn,Object.freeze({__proto__:null,DEFAULT_MAX_CONNECTIONS:1e3,Dexie:Kn,Entity:Cl,PropModification:dr,RangeSet:Bt,add:function(s){return new dr({add:s})},cmp:st,default:Kn,liveQuery:Yl,mergeRanges:br,rangesOverlap:Fl,remove:function(s){return new dr({remove:s})},replacePrefix:function(s,a){return new dr({replacePrefix:[s,a]})}}),{default:Kn}),Kn})})(ld);var em=ld.exports;const Li=Zv(em),Ru=Symbol.for("Dexie"),ta=globalThis[Ru]||(globalThis[Ru]=Li);if(Li.semVer!==ta.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Li.semVer} and ${ta.semVer}`);const{liveQuery:tm,mergeRanges:AC,rangesOverlap:PC,RangeSet:OC,cmp:MC,Entity:IC,PropModification:jC,replacePrefix:DC,add:LC,remove:KC,DexieYProvider:RC}=ta;class nm extends ta{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 ie;function sm(e){ie=e}function cl(){ie&&ie.close(),ie=void 0}const rm=6,Fu=["公司","客户现场","出差","居家办公"],om={dev:"项目实操",test:"项目实操",bugfix:"售后服务",learning:"产品学习",meeting:"打杂",doc:"打杂",other:"打杂"};function Ur(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 Rs(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}function Ft(e,t){const n=Rs(e);return n.setDate(n.getDate()+t),qn(n)}function na(e,t){const n=Rs(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=Rs(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),qn(t)}function am(e){const t=Rs(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=Rs(e),n=["周日","周一","周二","周三","周四","周五","周六"];return t.getFullYear()+" 年 "+(t.getMonth()+1)+" 月 "+t.getDate()+" 日 "+n[t.getDay()]}const lm=15e4;function Ki(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 Ri(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 Ki(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:Ri(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 Ki(n.buffer)+":"+Ki(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:Ri(n[0])},e,Ri(n[1]));return new TextDecoder().decode(r)}async function dl(){await bd()}const cd="intern-log-vault-verify",sr="enc:v1:";let Ks=null;function cm(){return Ks!==null}function oa(){Ks=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 It("pwd_salt",t),await It("pwd_verifier",r),Ks=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("主密码不正确")}Ks=n}async function fd(){if(!Ks)throw new Error("密码库未解锁");return Ks}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 ie.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 ie.credential.update(t,{...r,updated_at:at()}):await ie.credential.add({...r,created_at:at(),updated_at:at()}),await dl()}async function ym(e){await ie.credential.delete(e),await dl()}async function yi(e){const t=await ie.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 ie.credential.toArray();let f=0;for(const v of c){if(v.id==null)continue;const b=await bm(v.password,r),y=sr+await ra(i,b);await ie.credential.update(v.id,{password:y}),f++}return await It("pwd_verifier",await ra(i,cd)),Ks=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",Fi="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 Fs(){return pd(_m)||wm}function $a(){const e=pd(Fi);if(!e)return"";try{return e}catch{return""}}function qr(e){e?km(Fi,e):xm(Fi)}const Cm="intern_worklog",fl="dsh_session_user";function Hr(){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&&ie||(ie&&cl(),sm(new nm(Cm+"_"+e)),aa=e)}async function Em(e,t,n){const r=await Fs();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(!Hr())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 Fs();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(!Hr())throw new Error("未登录");const t=await Fs();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 Ni=O(null),Vi=O(null),ur=O(0);function os(){ur.value++}const Zs=O(""),zr=["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 Ko(e){return JSON.stringify(e)}async function Dm(e){return ie.table(e).toArray()}function Ro(e,t){return e==="setting"?t.key:t.id}async function Lm(){for(const e of zr){const t=ie.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=Km()),!r.updated_at&&r.created_at&&(o.updated_at=r.created_at),Object.keys(o).length&&await t.update(Ro(e,r),o)}}}function Km(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"u"+Date.now().toString(36)+Math.random().toString(36).slice(2,10)}async function Rm(){return wn()!=null}async function Fm(){try{return localStorage.getItem("dsh_last_sync")||""}catch{return""}}async function Nm(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),qr(n),n)}async function gd(){const e=wn();if(!e)throw new Error("未登录");const t=await Fs(),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 Fs(),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 ie.work_log.toArray(),t=await ie.project.toArray(),n=await ie.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,Fo=!1,Ui=!1,er=null,$n=null,qi="",Hi=!1,No=null;async function tr(){if(Ir){Fo=!0;return}try{if(!await Rm())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 Fs(),username:e.username,password:e.password}}function Um(){if(Hi)return;Hi=!0,No=tm(async()=>{const t={};for(const n of zr)t[n]=await ie.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 Fo=!0,{pushed:0,pulled:0,removed:0,errors:0,at:""};Ir=!0,Ui=!0;try{const t=await zm(e);return Fo&&(Fo=!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 ie.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 zr){let ue=await Dm(oe);oe==="setting"&&(ue=ue.filter(U=>!Js.has(U.key)));const ce=new Map;for(const U of ue)ce.set(U.uuid,U);for(const[U,T]of ce){const q=wd(oe,T,n),Z=Ko(q),G=o.get(oe+"|"+U);(!G||G.hash!==Z)&&(i[oe]=i[oe]||[],i[oe].push(q),f++)}for(const[U,T]of o)U.startsWith(oe+"|")&&!ce.has(T.uuid)&&c.push({table:oe,uuid:T.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 y=await b(v);if(y.status===401){qr("");const oe=await yd(t,e);qr(oe),y=await b(oe)}if(!y.ok)throw new Error("同步服务返回 "+y.status);const _=await y.json(),E=_.tables||{},C=_.tombstones||[],M=await Ym(E,C);Hm(t,$a()||v);const J=at();return await Nm(J),(M.changed>0||M.removed>0||f>0)&&os(),{pushed:f,pulled:M.changed,removed:M.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(C=>C.table+"|"+C.uuid)),o=new Map;for(const C of await ie.sync_mirror.toArray())o.set(C.table+"|"+C.uuid,C);const i=new Set(Array.from(o.keys()).map(C=>C.split("|")[1]));let c=0,f=0;const v={},b={},y={};for(const C of zr){const M=ie.table(C),J=await M.toArray(),oe=new Map(J.map(S=>[Ro(C,S),S])),ue=new Map(J.filter(S=>S.uuid).map(S=>[S.uuid,S])),ce=(e[C]||[]).filter(S=>!r.has(C+"|"+S.uuid)),U=ce.filter(S=>!(C==="setting"&&Js.has(S.key))),T=ce.filter(S=>C==="setting"&&Js.has(S.key));for(const S of T)Jm(C,S.uuid);const q=C==="setting"?[]:J.filter(S=>S.uuid&&!i.has(S.uuid)&&!r.has(C+"|"+S.uuid)),Z={v:Math.max(0,...J.map(S=>Number(S.id)||0))};U.length;const G=[];for(const S of U){const j={...S};if(C==="log_item"){const Ee=j.wuuid?v[j.wuuid]:void 0;if(!Ee)continue;j.work_log_id=Ee,delete j.wuuid,j.project_id=j.puuid?b[j.puuid]??null:null,delete j.puuid}if(C==="plan")if(j.guuid){const Ee=y[j.guuid];j.goal_id=Ee??null,delete j.guuid}else j.goal_id=null;let ne=Ro(C,S);if(C==="setting")ne=S.key;else{const Ee=n[C]&&n[C][S.uuid],he=ue.get(S.uuid);he&&he.id!=null?ne=he.id:typeof Ee=="number"?ne=Ee:ne=++Z.v}const Me={...j,id:ne};C==="setting"&&Js.has(Me.key)||(G.push(Me),C==="work_log"&&(v[S.uuid]=ne),C==="project"&&(b[S.uuid]=ne),C==="goal"&&(y[S.uuid]=ne))}const re=G.concat(q);for(const S of re){const j=oe.get(Ro(C,S));(!j||Ko(j)!==Ko(S))&&c++}f+=J.filter(S=>S.uuid&&!G.some(j=>j.uuid===S.uuid)&&!r.has(C+"|"+S.uuid)).length,await M.clear(),re.length&&await M.bulkPut(re);const I={};for(const S of re)S.uuid&&(I[S.uuid]=S.id);n[C]=I}Gm(n);const _=await _d(),E=[];for(const C of zr){const M=await ie.table(C).toArray();for(const J of M)C==="setting"&&Js.has(J.key)||J.uuid&&E.push({table:C,uuid:J.uuid,hash:Ko(wd(C,J,_))})}return await ie.sync_mirror.clear(),E.length&&await ie.sync_mirror.bulkAdd(E.map(C=>({...C}))),await ie.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 ie.setting.get(e);return n?n.value:t}async function It(e,t){await ie.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 It("last_location",n),n&&await ua(n);let r=!1;const o=await _n(e);o&&o.id?(o.location||"")!==n&&(await ie.attendance.update(o.id,{location:n||null}),r=!0):n&&(await ie.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 Fu.slice();try{const t=JSON.parse(e);if(Array.isArray(t))return t.filter(n=>typeof n=="string"&&n.trim()).map(n=>n.trim())}catch{}return Fu.slice()}async function Cd(e){const t=Array.from(new Set(e.map(n=>n.trim()).filter(Boolean)));await It("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 ie.project.orderBy("name").toArray();return e?t:t.filter(n=>n.archived!==1)}async function th(e){await ie.project.add({name:e.trim(),archived:0,created_at:at()}),await it()}async function nh(e,t){await ie.project.update(e,{name:t.trim()}),await it()}async function sh(e,t){await ie.project.update(e,{archived:t?1:0}),await it()}async function _n(e){return ie.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 ie.attendance.update(o.id,i),r=!0}n&&(await xt("last_location","")!==n&&await It("last_location",n),await ua(n)),r&&await it();return}await ie.attendance.add({date:e,clock_in_at:at(),clock_out_at:null,kind:"normal",note:null,location:n||null,created_at:at()}),n&&(await It("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 ie.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 ie.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 ie.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 ie.attendance.update(i.id,c):await ie.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 ie.attendance.update(o.id,{[t]:e+"T"+r+":00"}),await it())}async function Xr(e,t){return ie.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 ie.attendance.update(n.id,r):await ie.attendance.add({...r,note:null,location:null})}else n&&n.id&&await ie.attendance.update(n.id,{kind:"normal"});await it()}async function uh(e){const t=await ie.work_log.where("date").equals(e).first();return t||{id:await ie.work_log.add({date:e,created_at:at()}),date:e,created_at:at()}}async function ch(e){return ie.work_log.where("date").equals(e).first()}async function dh(e){const t=await ch(e);return!t||!t.id?[]:(await ie.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 ie.work_log.where("date").equals(e).first();let r;n&&n.id?r=n:r=await uh(e),await ie.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 It("last_project",o),await xt("last_category","")!==t.category&&await It("last_category",t.category),await it()}async function gi(e,t){await ie.table("log_item").update(e,t),await it()}async function ph(e){await ie.table("log_item").delete(e),await it()}async function Qr(e,t){const n=await ie.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 ie.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 ie.weekly_note.where("week_start").equals(e).first()}async function vh(e,t){const n=await hl(e);n&&n.id?await ie.weekly_note.update(n.id,t):await ie.weekly_note.add({week_start:e,highlights:t.highlights??null,challenges:t.challenges??null,plan_next:t.plan_next??null,created_at:at()}),await it()}async function mh(e,t){return ie.weekly_note.where("week_start").between(e,t,!0,!0).toArray()}async function hh(e){return(await ie.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 ie.plan.add({date:e.date,start_time:e.start_time,end_time:e.end_time,title:e.title.trim(),kind:e.kind.trim()||"其他",note:e.note||null,status:"todo",actual_minutes:0,timer_started_at:null,uuid:"",created_at:t,updated_at:t}),await it()}async function gh(e,t){await ie.plan.update(e,{...t,updated_at:at()}),await it()}async function bh(e){await ie.plan.delete(e),await it()}async function wh(e,t){const n=await ie.plan.get(e);n&&(t!=="todo"&&n.timer_started_at&&await yl(e),await ie.plan.update(e,{status:t,updated_at:at()}),await it())}async function _h(e){const t=await ie.plan.filter(n=>!!n.timer_started_at).toArray();for(const n of t)n.id!==e&&await yl(n.id);await ie.plan.update(e,{timer_started_at:at(),updated_at:at()}),await it()}async function yl(e){const t=await ie.plan.get(e);if(!t||!t.timer_started_at)return;const n=Math.max(0,Math.round((Date.now()-new Date(t.timer_started_at).getTime())/6e4));await ie.plan.update(e,{actual_minutes:(t.actual_minutes||0)+n,timer_started_at:null,updated_at: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 ie.goal.toArray(),t=[];for(const n of e){const r=await ie.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 ie.goal.toArray()).sort((t,n)=>t.start_date<n.start_date?-1:1)}async function Sh(e){const t=at(),n=await ie.goal.add({title:e.title.trim(),kind:e.kind.trim()||"其他",start_date:e.start_date,end_date:e.end_date,note:e.note||null,uuid:"",created_at:t,updated_at:t});await ie.goal.get(n);const r=xh(e.start_date,e.end_date);for(const o of r)await ie.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 ie.goal.get(e))return;const r={...t,updated_at:at()};await ie.goal.update(e,r);const o=await ie.plan.where("goal_id").equals(e).toArray();for(const i of o)i.status!=="done"&&await ie.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 ie.plan.where("goal_id").equals(e).toArray();for(const n of t)await ie.plan.delete(n.id);await ie.goal.delete(e),await it()}async function Ah(){return(await ie.memo.toArray()).sort((t,n)=>t.updated_at<n.updated_at?1:-1)}async function Ph(e,t){const n=at(),r=await ie.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 ie.memo.update(e,{title:t.trim(),content:n,updated_at:at()}),await it()}async function Mh(e){await ie.memo.delete(e),await it()}async function Ih(e,t=8){const n=e.trim().toLowerCase();if(!n)return[];const r=await ie.work_log.toArray(),o=new Map(r.map(c=>[c.id,c.date]));return(await ie.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 ie.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 ie.table("transaction").where("date").between(e,t,!0,!0).toArray()}async function Lh(e){await ie.table("transaction").add({...e,created_at:at()}),await it()}async function Kh(e,t){await ie.table("transaction").update(e,{...t}),await it()}async function Rh(e){await ie.table("transaction").delete(e),await it()}async function Fh(e,t){await ie.table("transaction").update(e,{reimbursed:1}),await it()}async function Nh(){const e=await Promise.all([ie.project.toArray(),ie.work_log.toArray(),ie.table("log_item").toArray(),ie.attendance.toArray(),ie.weekly_note.toArray(),ie.setting.toArray(),ie.memo.toArray(),ie.credential.toArray(),ie.table("transaction").toArray(),ie.plan.toArray(),ie.goal.toArray()]);return JSON.stringify({schema_version: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=ie.table("log_item"),o=ie.table("transaction"),i=ie.plan,c=ie.goal;await ie.transaction("rw",[ie.project,ie.work_log,r,ie.attendance,ie.weekly_note,ie.setting,ie.memo,ie.credential,o,c,i],async()=>{await Promise.all([ie.project.clear(),ie.work_log.clear(),r.clear(),ie.attendance.clear(),ie.weekly_note.clear(),ie.setting.clear(),ie.memo.clear(),ie.credential.clear(),o.clear(),c.clear(),i.clear()]),n.project&&n.project.length&&await ie.project.bulkAdd(n.project),n.work_log&&n.work_log.length&&await ie.work_log.bulkAdd(n.work_log),n.log_item&&n.log_item.length&&await r.bulkAdd(n.log_item),n.attendance&&n.attendance.length&&await ie.attendance.bulkAdd(n.attendance),n.weekly_note&&n.weekly_note.length&&await ie.weekly_note.bulkAdd(n.weekly_note),n.setting&&n.setting.length&&await ie.setting.bulkAdd(n.setting),n.memo&&n.memo.length&&await ie.memo.bulkAdd(n.memo),n.credential&&n.credential.length&&await ie.credential.bulkAdd(n.credential),n.transaction&&n.transaction.length&&await 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 Zr(){return Ad(await xt(Sd,""),Bh)}async function bi(e){await It(Sd,JSON.stringify(e))}async function Wr(e){return Ad(await xt(e==="expense"?Ed:Td,""),e==="expense"?Uh:qh)}async function Ts(e,t){await It(e==="expense"?Ed:Td,JSON.stringify(t))}const Hh={class:"dialog",role:"dialog","aria-label":"编辑工作记录"},zh={class:"dialog-head"},Wh={class:"dialog-title"},Gh={key:0,class:"muted dialog-sub"},Yh={class:"dialog-body"},Jh={class:"form-grid"},Xh={class:"field span2"},Qh={key:0,class:"form-error"},Zh={class:"field"},ey=["value"],ty={class:"field"},ny=["value"],sy={class:"field"},ry={class:"field"},oy={class:"field span2"},ay={class:"field"},iy={class:"field"},ly={class:"dialog-btns"},uy=Lt({__name:"EditLogDialog",props:{open:{type:Boolean},item:{},projects:{},date:{}},emits:["cancel","save"],setup(e,{emit:t}){const n=O([]);Zr().then(ce=>{n.value=ce});const r=e,o=t,i=O(""),c=O(null),f=O("dev"),v=O(null),b=O(""),y=O(""),_=O(0),E=O(0),C=O(""),M=O(null),J=rt(()=>{var T;const ce=r.projects.filter(q=>q.archived!==1),U=(T=r.item)==null?void 0:T.project_id;if(U&&!ce.some(q=>q.id===U)){const q=r.projects.find(G=>G.id===U),Z=ce.slice();return q&&Z.unshift({...q,name:q.name+"(已归档)"}),Z}return ce});function oe(ce){r.open&&ce.key==="Escape"&&o("cancel")}gt(()=>r.open,async ce=>{var U;if(ce){const T=r.item;i.value=(T==null?void 0:T.content)??"",c.value=(T==null?void 0:T.project_id)??null,f.value=(T==null?void 0:T.category)??"dev",v.value=(T==null?void 0:T.minutes)??null,b.value=(T==null?void 0:T.takeaway)??"",y.value=(T==null?void 0:T.remark)??"",_.value=(T==null?void 0:T.is_milestone)??0,E.value=(T==null?void 0:T.needs_followup)??0,C.value="",window.addEventListener("keydown",oe),await ir(),(U=M.value)==null||U.focus()}else window.removeEventListener("keydown",oe)}),Wn(()=>window.removeEventListener("keydown",oe)),gt(i,()=>{C.value&&(C.value="")});function ue(){const ce=i.value.trim();if(!ce){C.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:y.value.trim()||null,is_milestone:_.value,needs_followup:E.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:y.value.trim()||null,is_milestone:_.value?1:0,needs_followup:E.value?1:0})}return(ce,U)=>($(),St(Hn,{to:"body"},[we(lr,{name:"modal"},{default:ms(()=>[e.open?($(),P("div",{key:0,class:"mask",onClick:U[10]||(U[10]=zt(T=>o("cancel"),["self"]))},[l("div",Hh,[l("div",zh,[l("div",null,[l("div",Wh,W(e.item?"编辑工作记录":"添加工作记录"),1),e.date?($(),P("div",Gh,W(e.date),1)):ye("",!0)]),l("button",{class:"icon-btn",title:"关闭",onClick:U[0]||(U[0]=T=>o("cancel"))},[we(qe,{name:"close",size:16})])]),l("div",Yh,[l("div",Jh,[l("div",Xh,[U[11]||(U[11]=l("label",null,"工作内容(必填)",-1)),Oe(l("input",{ref_key:"contentInput",ref:M,class:Xe(["input",{invalid:C.value}]),"onUpdate:modelValue":U[1]||(U[1]=T=>i.value=T),onKeydown:Mt(ue,["enter"])},null,34),[[Re,i.value]]),C.value?($(),P("div",Qh,W(C.value),1)):ye("",!0)]),l("div",Zh,[U[13]||(U[13]=l("label",null,"所属项目",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":U[2]||(U[2]=T=>c.value=T)},[U[12]||(U[12]=l("option",{value:null},"无项目",-1)),($(!0),P(je,null,et(J.value,T=>($(),P("option",{key:T.id,value:T.id},W(T.name),9,ey))),128))],512),[[fs,c.value]])]),l("div",ty,[U[14]||(U[14]=l("label",null,"工作分类",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":U[3]||(U[3]=T=>f.value=T)},[($(!0),P(je,null,et(n.value,T=>($(),P("option",{key:T,value:T},W(T),9,ny))),128))],512),[[fs,f.value]])]),l("div",sy,[U[15]||(U[15]=l("label",null,"耗时(分钟)",-1)),Oe(l("input",{class:"input",type:"number",min:"0","onUpdate:modelValue":U[4]||(U[4]=T=>v.value=T),placeholder:"选填"},null,512),[[Re,v.value,void 0,{number:!0}]])]),l("div",ry,[U[16]||(U[16]=l("label",null,"主要收获",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":U[5]||(U[5]=T=>b.value=T),placeholder:"一句话:学到了什么"},null,512),[[Re,b.value]])]),l("div",oy,[U[17]||(U[17]=l("label",null,"备注",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":U[6]||(U[6]=T=>y.value=T),placeholder:"背景、链接、未决事项(选填)"},null,512),[[Re,y.value]])]),l("div",ay,[U[18]||(U[18]=l("label",null,"成果标记",-1)),l("button",{class:Xe(["toggle-btn",{on:_.value===1}]),onClick:U[7]||(U[7]=T=>_.value=_.value===1?0:1)},W(_.value===1?"已标记为成果":"未标记"),3)]),l("div",iy,[U[19]||(U[19]=l("label",null,"待跟进",-1)),l("button",{class:Xe(["toggle-btn",{onwarn:E.value===1}]),onClick:U[8]||(U[8]=T=>E.value=E.value===1?0:1)},W(E.value===1?"需要跟进":"无需跟进"),3)])])]),l("div",ly,[l("button",{class:"btn btn-sm",onClick:U[9]||(U[9]=T=>o("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:ue},W(e.item?"保存修改":"添加"),1)])])])):ye("",!0)]),_:1})]))}}),cy=Nt(uy,[["__scopeId","data-v-f3b19176"]]);function Mo(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=Mo(bn(e.clock_in_at)),c=Mo(bn(e.clock_out_at)),f=Mo(n.work_start),v=Mo(n.work_end);let b="normal";!o&&i>f+n.grace_minutes?b="late":!o&&c<v&&(b="early");const y=im(e.clock_in_at,e.clock_out_at),_=Math.max(0,y-n.lunch_minutes);return{status:b,label:o?"补卡":b==="late"?"迟到":b==="early"?"早退":"正常",makeup:o,workedMinutes:_}}const Vo=O([]);let dy=0;function Ve(e){const t=++dy;Vo.value.push({id:t,text:e}),setTimeout(()=>{Vo.value=Vo.value.filter(n=>n.id!==t)},2e3)}function fy(){return Vo}const py={class:"day-panel"},vy={class:"dp-head"},my={class:"dp-date"},hy={class:"card sec"},yy={class:"att-grid"},gy={class:"att-cell"},by={key:0,class:"edit-row"},wy={key:1,class:"att-val"},_y={class:"att-cell"},ky={key:0,class:"edit-row"},xy={key:1,class:"att-val"},Cy={class:"att-cell"},$y=["list"],Sy=["id"],Ey=["value"],Ty={class:"att-cell"},Ay={class:"att-val status-val"},Py={key:0,class:"tag"},Oy={key:1,class:"muted"},My={key:0,class:"att-note muted"},Iy={class:"att-actions"},jy=["disabled"],Dy=["disabled"],Ly=["disabled"],Ky=["disabled"],Ry={key:0,class:"card sec makeup"},Fy={class:"form-grid"},Ny={class:"field"},Vy={class:"field"},By={class:"field span2"},Uy=["list"],qy={class:"field span2"},Hy={key:0,class:"form-error"},zy={class:"form-footer"},Wy={class:"list-sec"},Gy={class:"sec-head"},Yy={class:"sec-title"},Jy={key:0,class:"empty muted"},Xy={class:"item-main"},Qy={class:"tag"},Zy=["onClick"],eg={key:0,class:"muted item-meta"},tg={key:1,class:"muted num item-meta"},ng=["onClick"],sg=["onClick"],rg=["onClick"],og=["onClick"],ag={key:0,class:"item-sub"},ig={key:0,class:"muted2"},lg={key:1,class:"muted"},ug={key:1,class:"dp-foot muted num"},cg=Lt({__name:"DayPanel",props:{date:{}},setup(e){const t=O([]);Zr().then(g=>{t.value=g});const n=e,r=O(!0),o=O(null),i=O(void 0),c=O([]),f=O([]),v=O(""),b=O([]),y=rt(()=>"loc-list-"+n.date),_=rt(()=>n.date===ot());async function E(){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(E),gt(()=>n.date,E),gt(ur,()=>{E()});function C(g){if(!g)return"";const m=f.value.find(x=>x.id===g);return m?m.name:"已删除项目"}const M=rt(()=>o.value?cr(i.value,n.date,o.value,_.value):null),J=rt(()=>c.value.reduce((g,m)=>g+(m.minutes||0),0)),oe=O(!1);async function ue(){oe.value||(oe.value=!0,await $d(n.date,v.value),await E(),os(),Ve("上班打卡成功"),oe.value=!1)}async function ce(){oe.value||(oe.value=!0,await rh(n.date),await E(),os(),Ve("下班打卡成功"),oe.value=!1)}async function U(){await eh(n.date,v.value),os(),Ve("地点已更新")}const T=O(!1),q=rt(()=>{var g;return((g=i.value)==null?void 0:g.kind)==="leave"});function Z(){if(i.value&&i.value.clock_in_at){T.value=!0;return}G(!0)}async function G(g){T.value=!1,await lh(n.date,g),await E(),os(),Ve(g?"已标记为休假":"已取消休假")}const re=O(null),I=O(""),S=O(null);gt(re,async g=>{var m;g&&(await ir(),(m=S.value)==null||m.focus())});function j(g){var x,D;const m=g==="in"?(x=i.value)==null?void 0:x.clock_in_at:(D=i.value)==null?void 0:D.clock_out_at;re.value=g,I.value=m?bn(m):g==="in"?"09:00":"18:00"}function ne(){re.value=null}async function Me(){const g=re.value;g&&(re.value=null,I.value&&(await ih(n.date,g==="in"?"clock_in_at":"clock_out_at",I.value),await E(),os(),Ve("打卡时间已修改")))}const Ee=O(!1),he=O("09:00"),Ae=O("18:00"),Ue=O(""),de=O(""),ke=O("");function Se(){de.value=v.value,ke.value="",Ee.value=!Ee.value}async function De(){if(!he.value||!Ae.value){ke.value="请填写上班与下班时间";return}await ah(n.date,n.date+"T"+he.value+":00",n.date+"T"+Ae.value+":00",Ue.value.trim(),de.value),Ee.value=!1,Ue.value="",ke.value="",await E(),os(),Ve("补卡已保存")}const $e=O(null),fe=O(!1);function Ie(g){$e.value=g,fe.value=!0}function ct(){$e.value=null,fe.value=!0}async function bt(g){g.id?(await gi(g.id,{content:g.content,project_id:g.project_id,category:g.category,minutes:g.minutes,takeaway:g.takeaway,remark:g.remark,is_milestone:g.is_milestone,needs_followup:g.needs_followup}),Ve("记录已更新")):(await fh(n.date,{content:g.content,project_id:g.project_id,category:g.category,minutes:g.minutes,takeaway:g.takeaway,remark:g.remark}),Ve("记录已添加")),$e.value=null,fe.value=!1,await E()}async function wt(g){await gi(g.id,{is_milestone:g.is_milestone?0:1}),await E()}async function Vt(g){await gi(g.id,{needs_followup:g.needs_followup?0:1}),await E()}const pt=O(null);async function Fe(){pt.value&&pt.value.id&&await ph(pt.value.id),pt.value=null,await E(),Ve("记录已删除")}return(g,m)=>($(),P("div",py,[l("div",vy,[l("div",my,W(on(ud)(e.date)),1)]),l("div",hy,[m[19]||(m[19]=l("div",{class:"sec-title"},"出勤信息",-1)),l("div",yy,[l("div",gy,[m[15]||(m[15]=l("label",null,"上班时间",-1)),re.value==="in"?($(),P("div",by,[Oe(l("input",{ref_key:"timeInput",ref:S,type:"time",class:"input time-input","onUpdate:modelValue":m[0]||(m[0]=x=>I.value=x),onKeydown:[Mt(Me,["enter"]),Mt(ne,["esc"])]},null,544),[[Re,I.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Me},"确认"),l("button",{class:"btn btn-sm",onClick:ne},"取消")])):($(),P("div",wy,[l("span",{class:Xe(["num",{"val-empty":!(i.value&&i.value.clock_in_at)}])},W(i.value&&i.value.clock_in_at?on(bn)(i.value.clock_in_at):"未打卡"),3),i.value&&i.value.id?($(),P("button",{key:0,class:"icon-btn",title:"修改上班时间",onClick:m[1]||(m[1]=x=>j("in"))},[we(qe,{name:"edit",size:13})])):ye("",!0)]))]),l("div",_y,[m[16]||(m[16]=l("label",null,"下班时间",-1)),re.value==="out"?($(),P("div",ky,[Oe(l("input",{ref_key:"timeInput",ref:S,type:"time",class:"input time-input","onUpdate:modelValue":m[2]||(m[2]=x=>I.value=x),onKeydown:[Mt(Me,["enter"]),Mt(ne,["esc"])]},null,544),[[Re,I.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:Me},"确认"),l("button",{class:"btn btn-sm",onClick:ne},"取消")])):($(),P("div",xy,[l("span",{class:Xe(["num",{"val-empty":!(i.value&&i.value.clock_out_at)}])},W(i.value&&i.value.clock_out_at?on(bn)(i.value.clock_out_at):"未打卡"),3),i.value&&i.value.id?($(),P("button",{key:0,class:"icon-btn",title:"修改下班时间",onClick:m[3]||(m[3]=x=>j("out"))},[we(qe,{name:"edit",size:13})])):ye("",!0)]))]),l("div",Cy,[m[17]||(m[17]=l("label",null,"上班地点",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":m[4]||(m[4]=x=>v.value=x),list:y.value,placeholder:"可直接输入",title:"上班地点,可自由输入",onChange:U},null,40,$y),[[Re,v.value]]),l("datalist",{id:y.value},[($(!0),P(je,null,et(b.value,x=>($(),P("option",{key:x,value:x},null,8,Ey))),128))],8,Sy)]),l("div",Ty,[m[18]||(m[18]=l("label",null,"考勤状态",-1)),l("div",Ay,[M.value?($(),P(je,{key:0},[l("span",{class:Xe(["dot",M.value.status])},null,2),l("span",null,W(M.value.label),1),i.value&&i.value.kind==="makeup"?($(),P("span",Py,"补卡")):ye("",!0)],64)):($(),P("span",Oy,"--"))])])]),i.value&&i.value.note?($(),P("div",My,"补卡说明:"+W(i.value.note),1)):ye("",!0),l("div",Iy,[_.value&&(!i.value||!i.value.clock_in_at)?($(),P("button",{key:0,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ue},"上班打卡",8,jy)):_.value&&i.value&&i.value.clock_in_at&&!i.value.clock_out_at?($(),P("button",{key:1,class:"btn btn-primary btn-sm",disabled:oe.value,onClick:ce},"下班打卡",8,Dy)):ye("",!0),!_.value&&(!i.value||!i.value.clock_in_at)?($(),P("button",{key:2,class:"btn btn-sm",onClick:Se},"补卡")):ye("",!0),q.value?($(),P("button",{key:4,class:"btn btn-sm",disabled:oe.value,onClick:m[5]||(m[5]=x=>G(!1))},"取消休假",8,Ky)):($(),P("button",{key:3,class:"btn btn-sm",disabled:oe.value,onClick:Z},"标记休假",8,Ly))])]),Ee.value?($(),P("div",Ry,[m[24]||(m[24]=l("div",{class:"sec-title"},"补卡登记",-1)),l("div",Fy,[l("div",Ny,[m[20]||(m[20]=l("label",null,"上班时间",-1)),Oe(l("input",{type:"time",class:"input","onUpdate:modelValue":m[6]||(m[6]=x=>he.value=x)},null,512),[[Re,he.value]])]),l("div",Vy,[m[21]||(m[21]=l("label",null,"下班时间",-1)),Oe(l("input",{type:"time",class:"input","onUpdate:modelValue":m[7]||(m[7]=x=>Ae.value=x)},null,512),[[Re,Ae.value]])]),l("div",By,[m[22]||(m[22]=l("label",null,"上班地点",-1)),Oe(l("input",{class:"input",list:y.value,"onUpdate:modelValue":m[8]||(m[8]=x=>de.value=x),placeholder:"可直接输入"},null,8,Uy),[[Re,de.value]])]),l("div",qy,[m[23]||(m[23]=l("label",null,"补卡原因",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":m[9]||(m[9]=x=>Ue.value=x),placeholder:"如:外出拜访客户忘记打卡"},null,512),[[Re,Ue.value]])])]),ke.value?($(),P("div",Hy,W(ke.value),1)):ye("",!0),l("div",zy,[l("button",{class:"btn btn-sm",onClick:m[10]||(m[10]=x=>Ee.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:De},"保存补卡")])])):ye("",!0),l("div",Wy,[l("div",Gy,[l("span",Yy,"工作记录("+W(c.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:ct},[we(qe,{name:"plus",size:14}),m[25]||(m[25]=mt(" 添加记录",-1))])]),!c.value.length&&!r.value?($(),P("div",Jy,"暂无记录")):ye("",!0),($(!0),P(je,null,et(c.value,x=>($(),P("div",{key:x.id,class:"item"},[l("div",Xy,[l("span",Qy,W(on(Ur)(x.category)),1),l("span",{class:"item-content",title:"点击编辑",onClick:D=>Ie(x)},W(x.content),9,Zy),x.project_id?($(),P("span",eg,W(C(x.project_id)),1)):ye("",!0),x.minutes?($(),P("span",tg,W(x.minutes)+" 分钟",1)):ye("",!0),m[26]||(m[26]=l("span",{class:"flex1"},null,-1)),l("button",{class:"icon-btn",title:"编辑完整信息",onClick:D=>Ie(x)},[we(qe,{name:"edit",size:14})],8,ng),l("button",{class:Xe(["icon-btn",{active:x.is_milestone===1}]),title:"成果标记",onClick:D=>wt(x)},[we(qe,{name:"star",size:14})],10,sg),l("button",{class:Xe(["icon-btn",{"active-warn":x.needs_followup===1}]),title:"待跟进",onClick:D=>Vt(x)},[we(qe,{name:"flag",size:14})],10,rg),l("button",{class:"icon-btn",title:"删除",onClick:D=>pt.value=x},[we(qe,{name:"close",size:14})],8,og)]),x.takeaway||x.remark?($(),P("div",ag,[x.takeaway?($(),P("div",ig,"收获:"+W(x.takeaway),1)):ye("",!0),x.remark?($(),P("div",lg,"备注:"+W(x.remark),1)):ye("",!0)])):ye("",!0)]))),128)),c.value.length?($(),P("div",ug,[mt(" 共 "+W(c.value.length)+" 条事项 ",1),J.value?($(),P(je,{key:0},[mt(" · "+W((J.value/60).toFixed(1))+" 小时",1)],64)):ye("",!0)])):ye("",!0)]),we(Dn,{open:!!pt.value,title:"删除确认",message:pt.value?"将删除工作记录「"+pt.value.content+"」。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:m[11]||(m[11]=x=>pt.value=null),onConfirm:Fe},null,8,["open","message"]),we(Dn,{open:T.value,title:"标记休假确认",message:"该日已有打卡记录,标记休假将清空上下班时间。是否继续?","confirm-text":"标记休假",danger:"",onCancel:m[12]||(m[12]=x=>T.value=!1),onConfirm:m[13]||(m[13]=x=>G(!0))},null,8,["open"]),we(cy,{open:fe.value,item:$e.value,projects:f.value,date:e.date,onCancel:m[14]||(m[14]=x=>fe.value=!1),onSave:bt},null,8,["open","item","projects","date"])]))}}),Pd=Nt(cg,[["__scopeId","data-v-b7bec4fa"]]),dg={class:"cal-page"},fg={class:"cal-toolbar"},pg={class:"cal-title num"},vg=["disabled"],mg={class:"card cal-card"},hg={class:"cal-head"},yg={class:"cal-grid"},gg=["title","onClick"],bg={class:"cal-marks"},wg={key:0,class:"drawer"},_g={class:"drawer-head"},kg={class:"drawer-body"},xg=Lt({__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 T=(new Date(n.value,r.value,1).getDay()+6)%7,q=new Date(n.value,r.value+1,0).getDate(),Z=[];for(let G=0;G<T;G++)Z.push({date:"",inMonth:!1,weekend:!1});for(let G=1;G<=q;G++){const re=new Date(n.value,r.value,G),I=re.getDay();Z.push({date:qn(re),inMonth:!0,weekend:I===0||I===6})}return Z}),f=O(new Map),v=ot();async function b(){var S;const U=qn(new Date(n.value,r.value,1)),T=qn(new Date(n.value,r.value+1,0)),q=await Promise.all([ps(),Xr(U,T),Qr(U,T)]),Z=q[0],G=new Map(q[1].map(j=>[j.date,j])),re=q[2],I=new Map;for(const j of c.value){if(!j.inMonth)continue;const ne=cr(G.get(j.date),j.date,Z,j.date===v),Me=re.filter(Ee=>Ee.date===j.date);I.set(j.date,{status:ne.status,label:ne.label,location:((S=G.get(j.date))==null?void 0:S.location)||"",hasLog:Me.length>0,hasMilestone:Me.some(Ee=>Ee.is_milestone===1)})}f.value=I}gt([n,r],b,{immediate:!0}),gt(ur,()=>{b()});function y(U){var T;return((T=f.value.get(U))==null?void 0:T.status)??""}function _(U){const T=f.value.get(U);return T?U+" · "+T.label+(T.location?" · "+T.location:""):U}function E(U){var T;return!!((T=f.value.get(U))!=null&&T.hasLog)}function C(U){var T;return!!((T=f.value.get(U))!=null&&T.hasMilestone)}function M(){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(U,T){T&&(ue.value=U)}return gt(Ni,U=>{U&&(t.value=U,ue.value=U,Ni.value=null)},{immediate:!0}),(U,T)=>($(),P("div",dg,[l("div",fg,[l("button",{class:"icon-btn",title:"上一月",onClick:M},[we(qe,{name:"chevron-left",size:16})]),l("span",pg,W(o.value),1),l("button",{class:"icon-btn",title:"下一月",onClick:J},[we(qe,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",disabled:t.value===on(v),onClick:oe},"回到本月",8,vg)]),l("div",mg,[l("div",hg,[($(),P(je,null,et(i,q=>l("span",{key:q,class:"cal-week"},W(q),1)),64))]),l("div",yg,[($(!0),P(je,null,et(c.value,(q,Z)=>($(),P("button",{key:Z,class:Xe(["cal-cell",{blank:!q.inMonth,weekend:q.weekend,selected:ue.value===q.date}]),title:q.inMonth?_(q.date):void 0,onClick:G=>ce(q.date,q.inMonth)},[q.inMonth?($(),P(je,{key:0},[l("span",{class:Xe(["daynum num",{today:q.date===on(v)}])},W(Number(q.date.slice(8,10))),3),l("span",bg,[y(q.date)?($(),P("span",{key:0,class:Xe(["dot",y(q.date)])},null,2)):ye("",!0),E(q.date)?($(),St(qe,{key:1,name:"check-circle",size:12,class:"mark-log"})):ye("",!0),C(q.date)?($(),St(qe,{key:2,name:"star",size:12,class:"mark-star"})):ye("",!0)])],64)):ye("",!0)],10,gg))),128))])]),we(lr,{name:"drawer"},{default:ms(()=>[ue.value?($(),P("aside",wg,[l("div",_g,[T[1]||(T[1]=l("span",{class:"drawer-title"},"当日详情",-1)),l("button",{class:"icon-btn",onClick:T[0]||(T[0]=q=>ue.value=null)},[we(qe,{name:"close",size:16})])]),l("div",kg,[we(Pd,{date:ue.value},null,8,["date"])])])):ye("",!0)]),_:1})]))}}),Cg=Nt(xg,[["__scopeId","data-v-8a3b0422"]]),$g="modulepreload",Sg=function(e,t){return new URL(e,t).href},Nu={},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=Sg(b,r),b in Nu)return;Nu[b]=!0;const y=b.endsWith(".css"),_=y?'[rel="stylesheet"]':"";if(!!r)for(let M=c.length-1;M>=0;M--){const J=c[M];if(J.href===b&&(!y||J.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${_}`))return;const C=document.createElement("link");if(C.rel=y?"stylesheet":$g,y||(C.as="script"),C.crossOrigin="",C.href=b,v&&C.setAttribute("nonce",v),document.head.appendChild(C),y)return new Promise((M,J)=>{C.addEventListener("load",M),C.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 Eg=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},Tg=e=>e.CapacitorPlatforms=Eg(e),Md=Tg(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 Ag=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"},Pg=e=>{var t,n,r,o,i;const c=e.CapacitorCustomPlatform||null,f=e.Capacitor||{},v=f.Plugins=f.Plugins||{},b=e.CapacitorPlatforms,y=()=>c!==null?c.name:Ag(e),_=((t=b==null?void 0:b.currentPlatform)===null||t===void 0?void 0:t.getPlatform)||y,E=()=>_()!=="web",C=((n=b==null?void 0:b.currentPlatform)===null||n===void 0?void 0:n.isNativePlatform)||E,M=G=>{const re=T.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)||M,oe=G=>{var re;return(re=f.PluginHeaders)===null||re===void 0?void 0:re.find(I=>I.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),U=(G,re,I)=>Promise.reject(`${I} does not have an implementation of "${re}".`),T=new Map,q=(G,re={})=>{const I=T.get(G);if(I)return console.warn(`Capacitor plugin "${G}" already registered. Cannot register plugins twice.`),I.proxy;const S=_(),j=ue(G);let ne;const Me=async()=>(!ne&&S in re?ne=typeof re[S]=="function"?ne=await re[S]():ne=re[S]:c!==null&&!ne&&"web"in re&&(ne=typeof re.web=="function"?ne=await re.web():ne=re.web),ne),Ee=(Se,De)=>{var $e,fe;if(j){const Ie=j==null?void 0:j.methods.find(ct=>De===ct.name);if(Ie)return Ie.rtype==="promise"?ct=>f.nativePromise(G,De.toString(),ct):(ct,bt)=>f.nativeCallback(G,De.toString(),ct,bt);if(Se)return($e=Se[De])===null||$e===void 0?void 0:$e.bind(Se)}else{if(Se)return(fe=Se[De])===null||fe===void 0?void 0:fe.bind(Se);throw new wi(`"${G}" plugin is not implemented on ${S}`,or.Unimplemented)}},he=Se=>{let De;const $e=(...fe)=>{const Ie=Me().then(ct=>{const bt=Ee(ct,Se);if(bt){const wt=bt(...fe);return De=wt==null?void 0:wt.remove,wt}else throw new wi(`"${G}.${Se}()" is not implemented on ${S}`,or.Unimplemented)});return Se==="addListener"&&(Ie.remove=async()=>De()),Ie};return $e.toString=()=>`${Se.toString()}() { [capacitor code] }`,Object.defineProperty($e,"name",{value:Se,writable:!1,configurable:!1}),$e},Ae=he("addListener"),Ue=he("removeListener"),de=(Se,De)=>{const $e=Ae({eventName:Se},De),fe=async()=>{const ct=await $e;Ue({eventName:Se,callbackId:ct},De)},Ie=new Promise(ct=>$e.then(()=>ct({remove:fe})));return Ie.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await fe()},Ie},ke=new Proxy({},{get(Se,De){switch(De){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return j?de:Ae;case"removeListener":return Ue;default:return he(De)}}});return v[G]=ke,T.set(G,{name:G,proxy:ke,platforms:new Set([...Object.keys(re),...j?[S]:[]])}),ke},Z=((i=b==null?void 0:b.currentPlatform)===null||i===void 0?void 0:i.registerPlugin)||q;return f.convertFileSrc||(f.convertFileSrc=G=>G),f.getPlatform=_,f.handleError=ce,f.isNativePlatform=C,f.isPluginAvailable=J,f.pluginMethodNoop=U,f.registerPlugin=Z,f.Exception=wi,f.DEBUG=!!f.DEBUG,f.isLoggingEnabled=!!f.isLoggingEnabled,f.platform=f.getPlatform(),f.isNative=f.isNativePlatform(),f},Og=e=>e.Capacitor=Pg(e),ar=Og(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 Mg 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 Mg});const Ig=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)}),jg=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(o=>o.toLocaleLowerCase()).reduce((o,i,c)=>(o[i]=e[t[c]],o),{})},Dg=(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,Lg=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),o=jg(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 Kg extends jd{async request(t){const n=Lg(t,t.webFetchExtra),r=Dg(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 Ig(b);break;case"json":v=await i.json();break;case"document":case"text":default:v=await i.text()}const y={};return i.headers.forEach((_,E)=>{y[E]=_}),{data:v,headers:y,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 Kg});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:y,Encoding:_}=await import("./index-C-oU33BQ.js");return{Filesystem:b,Directory:y,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 Rg=Object.freeze(Object.defineProperty({__proto__:null,downloadText:Sa},Symbol.toStringTag,{value:"Module"})),Fg={class:"detail-page"},Ng={class:"card toolbar"},Vg={class:"nav-row"},Bg=["value"],Ug=["disabled"],qg={class:"exp-row"},Hg={class:"seg"},zg=["disabled"],Wg=Lt({__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 y(){if(c.value==="day")return{start:f.value,end:f.value,label:f.value};if(c.value==="week"){const C=Qs(f.value);return{start:C,end:Ft(C,6),label:C+"_"+Ft(C,6)}}if(c.value==="month"){const C=f.value.slice(0,4),M=f.value.slice(5,7),J=new Date(Number(C),Number(M),0).getDate();return{start:C+"-"+M+"-01",end:C+"-"+M+"-"+J,label:C+"-"+M}}return{start:f.value,end:v.value,label:f.value+"_"+v.value}}async function _(){if(!b.value){b.value=!0;try{const{start:C,end:M,label:J}=y(),[oe,ue,ce,U]=await Promise.all([ps(),Xr(C,M),Qr(C,M),rr(!0)]),T=new Map(U.map(I=>[I.id,I.name])),q=["# 工作详情 "+J,""],Z=["周日","周一","周二","周三","周四","周五","周六"];let G=C,re=0;for(;G<=M&&re<400;){const I=ce.filter(j=>j.date===G),S=ue.find(j=>j.date===G);if(S||I.length){if(q.push("## "+G+" "+Z[new Date(G+"T00:00:00").getDay()],""),S&&(S.clock_in_at||S.kind==="makeup")){const j=cr(S,G,oe,G===ot()),ne=[bn(S.clock_in_at),"–",bn(S.clock_out_at),"·",j.label];S.location&&ne.push("· 地点:"+S.location),q.push("考勤:"+ne.join(" "),"")}for(const j of I){const ne=j.project_id&&T.get(j.project_id)||"",Me="- 【"+Ur(j.category)+"】"+j.content+(j.minutes?"("+j.minutes+" 分钟)":"")+(ne?" @"+ne:"");q.push(Me),j.takeaway&&q.push(" - 收获:"+j.takeaway),j.needs_followup===1&&j.remark?q.push(" - 待跟进:"+j.remark):j.remark&&q.push(" - 备注:"+j.remark)}q.push("")}G=Ft(G,1),re++}await Sa("工作详情_"+J+".md",q.join(`
|
||
`)),Ve("已导出 Markdown")}finally{b.value=!1}}}function E(C){const M=C.target.value;M&&(t.value=M)}return(C,M)=>($(),P("div",Fg,[l("div",Ng,[l("div",Vg,[l("button",{class:"icon-btn",title:"前一天",onClick:r},[we(qe,{name:"chevron-left",size:16})]),l("span",{class:Xe(["date-title num",{"is-today":n.value}])},W(on(ud)(t.value)),3),l("button",{class:"icon-btn",title:"后一天",onClick:o},[we(qe,{name:"chevron-right",size:16})]),l("input",{type:"date",class:"input w-date",value:t.value,onChange:E},null,40,Bg),l("button",{class:"btn btn-sm",disabled:n.value,onClick:i},"回到今天",8,Ug)]),M[7]||(M[7]=l("div",{class:"tool-sep"},null,-1)),l("div",qg,[M[6]||(M[6]=l("span",{class:"muted exp-label"},"导出",-1)),l("div",Hg,[l("button",{class:Xe(["seg-btn",{active:c.value==="day"}]),onClick:M[0]||(M[0]=J=>c.value="day")},"当日",2),l("button",{class:Xe(["seg-btn",{active:c.value==="week"}]),onClick:M[1]||(M[1]=J=>c.value="week")},"当周",2),l("button",{class:Xe(["seg-btn",{active:c.value==="month"}]),onClick:M[2]||(M[2]=J=>c.value="month")},"当月",2),l("button",{class:Xe(["seg-btn",{active:c.value==="custom"}]),onClick:M[3]||(M[3]=J=>c.value="custom")},"自定义",2)]),c.value!=="day"?Oe(($(),P("input",{key:0,class:"input w-exp",type:"date","onUpdate:modelValue":M[4]||(M[4]=J=>f.value=J)},null,512)),[[Re,f.value]]):ye("",!0),c.value==="custom"?Oe(($(),P("input",{key:1,class:"input w-exp",type:"date","onUpdate:modelValue":M[5]||(M[5]=J=>v.value=J)},null,512)),[[Re,v.value]]):ye("",!0),l("button",{class:"btn btn-sm",disabled:b.value,onClick:_},"导出 Markdown",8,zg)])]),we(Pd,{date:t.value},null,8,["date"])]))}}),Gg=Nt(Wg,[["__scopeId","data-v-4db7eb3d"]]),Yg={class:"plan-page"},Jg={class:"blk-head"},Xg={key:0,class:"card empty muted"},Qg={class:"goal-main"},Zg={class:"goal-line"},eb={class:"tag"},tb={class:"goal-name"},nb={class:"muted num goal-range"},sb={class:"goal-bar"},rb={class:"muted num goal-meta"},ob={class:"goal-ops"},ab=["onClick"],ib=["onClick"],lb={class:"blk-head day-head"},ub={class:"blk-head-text"},cb={class:"muted blk-sub num"},db={class:"day-ops"},fb={class:"card list-card"},pb={key:0,class:"empty muted"},vb={class:"pi-time num"},mb={class:"muted"},hb={class:"pi-main"},yb={class:"pi-title"},gb={class:"tag"},bb={key:0,class:"tag tag-goal"},wb={key:1,class:"state-done"},_b={key:2,class:"state-skip"},kb={key:0,class:"muted pi-note"},xb={class:"muted pi-meta num"},Cb={key:0,class:"timer-live"},$b={class:"pi-ops"},Sb=["onClick"],Eb=["onClick"],Tb=["onClick"],Ab=["onClick"],Pb=["onClick"],Ob=["onClick"],Mb={class:"dialog",role:"dialog","aria-label":"计划"},Ib={class:"dialog-head"},jb={class:"dialog-title"},Db={class:"dialog-body"},Lb={class:"form-row"},Kb={class:"form-row"},Rb=["value"],Fb={class:"form-row two"},Nb={class:"form-row"},Vb={key:0,class:"form-error"},Bb={class:"dialog-btns"},Ub={class:"dialog",role:"dialog","aria-label":"长期计划"},qb={class:"dialog-head"},Hb={class:"dialog-title"},zb={class:"dialog-body"},Wb={class:"form-row"},Gb={class:"form-row"},Yb=["value"],Jb={class:"form-row two"},Xb={class:"form-row"},Qb={key:0,class:"form-error"},Zb={class:"dialog-btns"},ew=Lt({__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(""),y=O(""),_=O(null);function E(){o.value=null,i.value="",c.value="学习",f.value=ot(),v.value=Ft(ot(),6),b.value="",y.value="",r.value=!0}function C(m){o.value=m,i.value=m.title,c.value=m.kind,f.value=m.start_date,v.value=m.end_date,b.value=m.note||"",y.value="",r.value=!0}async function M(){if(!i.value.trim()){y.value="请填写计划名称";return}if(v.value<f.value){y.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 Z()}async function J(){_.value&&(await Th(_.value.id),Ve("已删除长期计划及其每日任务"),_.value=null,await Z())}const oe=O(ot()),ue=O([]),ce=O(!0),U=O(Date.now());let T=null;const q=rt(()=>oe.value===ot());async function Z(){ce.value=!0;const[m,x,D]=await Promise.all([hh(oe.value),$h(),Ch()]);ue.value=m,t.value=x;const ae={};for(const z of D)ae[String(z.goalId)]={done:z.done,total:z.total};n.value=ae,ce.value=!1}gt(oe,Z),gt(ur,Z),vn(()=>{Z(),T=window.setInterval(()=>{U.value=Date.now()},3e4)}),Wn(()=>{T&&window.clearInterval(T)});function G(){oe.value=Ft(oe.value,-1)}function re(){oe.value=Ft(oe.value,1)}function I(){oe.value=ot()}const S=rt(()=>{const m=ue.value.length,x=ue.value.filter(A=>A.status==="done").length,D=ue.value.reduce((A,X)=>A+j(X),0),ae=ue.value.reduce((A,X)=>A+(X.actual_minutes||0),0);let z=0;const ee=Me.value;if(ee){const A=ue.value.find(X=>X.id===ee);A&&(z=Ee(A))}return{total:m,done:x,plannedMin:D,actualMin:ae+z}});function j(m){const[x,D]=m.start_time.split(":").map(Number),[ae,z]=m.end_time.split(":").map(Number);return Math.max(0,ae*60+z-(x*60+D))}function ne(m){return m<60?m+" 分钟":Math.floor(m/60)+" 小时 "+m%60+" 分"}const Me=rt(()=>{const m=ue.value.find(x=>!!x.timer_started_at);return m?m.id:null});function Ee(m){if(!m.timer_started_at)return m.actual_minutes||0;const x=Math.max(0,Math.round((U.value-new Date(m.timer_started_at).getTime())/6e4));return(m.actual_minutes||0)+x}async function he(m){m.timer_started_at?(await yl(m.id),Ve("已停止计时:"+m.title)):(await _h(m.id),Ve("开始计时:"+m.title)),await Z()}async function Ae(m,x){await wh(m.id,x),await Z()}const Ue=O(!1),de=O(null),ke=O(""),Se=O("学习"),De=O("09:00"),$e=O("10:00"),fe=O(""),Ie=O(""),ct=["学习","健身","自律","工作","阅读","其他"];function bt(){de.value=null,ke.value="",Se.value="学习",De.value="09:00",$e.value="10:00",fe.value="",Ie.value="",Ue.value=!0}function wt(m){de.value=m.id,ke.value=m.title,Se.value=m.kind,De.value=m.start_time,$e.value=m.end_time,fe.value=m.note||"",Ie.value="",Ue.value=!0}async function Vt(){if(!ke.value.trim()){Ie.value="请填写计划内容";return}if($e.value<=De.value){Ie.value="结束时间需晚于开始时间";return}de.value?(await gh(de.value,{title:ke.value.trim(),kind:Se.value,start_time:De.value,end_time:$e.value,note:fe.value}),Ve("计划已更新")):(await yh({date:oe.value,start_time:De.value,end_time:$e.value,title:ke.value,kind:Se.value,note:fe.value}),Ve("计划已添加")),Ue.value=!1,await Z()}async function pt(m){await bh(m.id),Ve("已删除"),await Z()}const Fe=["周日","周一","周二","周三","周四","周五","周六"];function g(m){return Fe[Rs(m).getDay()]}return(m,x)=>($(),P("div",Yg,[l("div",Jg,[x[18]||(x[18]=l("div",{class:"blk-head-text"},[l("div",{class:"blk-title"},"长期计划"),l("div",{class:"muted blk-sub"},"跨越多天的目标,自动落实到每一天")],-1)),l("button",{class:"btn btn-sm",onClick:E},[we(qe,{name:"plus",size:14}),x[17]||(x[17]=mt(" 新建长期计划",-1))])]),t.value.length?ye("",!0):($(),P("div",Xg," 暂无长期计划。创建一个跨越多天的目标(如「产品文档学习」),系统会自动生成每天的打卡任务。 ")),($(!0),P(je,null,et(t.value,D=>($(),P("div",{key:D.id,class:"card goal-card"},[l("div",Qg,[l("div",Zg,[l("span",eb,W(D.kind),1),l("span",tb,W(D.title),1),l("span",nb,W(D.start_date.slice(5))+" ~ "+W(D.end_date.slice(5)),1)]),l("div",sb,[l("span",{class:"goal-bar-fill",style:Un({width:(n.value[String(D.id)]?Math.round(n.value[String(D.id)].done/Math.max(1,n.value[String(D.id)].total)*100):0)+"%"})},null,4)]),l("div",rb,[mt(W(n.value[String(D.id)]?n.value[String(D.id)].done+"/"+n.value[String(D.id)].total+" 天已完成":"0/"+(n.value[String(D.id)]?n.value[String(D.id)].total:0)+" 天")+" ",1),D.note?($(),P(je,{key:0},[mt(" · "+W(D.note),1)],64)):ye("",!0)])]),l("div",ob,[l("button",{class:"icon-btn",title:"编辑",onClick:ae=>C(D)},[we(qe,{name:"edit",size:14})],8,ab),l("button",{class:"icon-btn",title:"删除",onClick:ae=>_.value=D},[we(qe,{name:"close",size:14})],8,ib)])]))),128)),l("div",lb,[l("div",ub,[x[21]||(x[21]=l("div",{class:"blk-title"},"每日安排",-1)),l("div",cb,[mt(" 共 "+W(S.value.total)+" 项 · 完成 "+W(S.value.done)+" 项 · 计划 "+W(ne(S.value.plannedMin))+" · 实际投入 "+W(ne(S.value.actualMin))+" ",1),Me.value?($(),P(je,{key:0},[x[19]||(x[19]=mt(" · ",-1)),x[20]||(x[20]=l("span",{class:"timer-live"},"计时中",-1))],64)):ye("",!0)])]),l("div",db,[l("button",{class:"icon-btn",title:"前一天",onClick:G},[we(qe,{name:"chevron-left",size:16})]),l("span",{class:Xe(["date-chip num",{today:q.value}])},W(oe.value.slice(5))+" "+W(g(oe.value)),3),l("button",{class:"icon-btn",title:"后一天",onClick:re},[we(qe,{name:"chevron-right",size:16})]),l("button",{class:Xe(["btn btn-sm",{"btn-primary":!q.value}]),onClick:I},"今天",2),l("button",{class:"btn btn-primary btn-sm",onClick:bt},[we(qe,{name:"plus",size:14}),x[22]||(x[22]=mt(" 添加计划",-1))])])]),l("div",fb,[!ce.value&&!ue.value.length?($(),P("div",pb,"今天还没有计划,点「添加计划」开始规划。")):ye("",!0),($(!0),P(je,null,et(ue.value,D=>($(),P("div",{key:D.id,class:Xe(["plan-item",{done:D.status==="done",skip:D.status==="skip",running:!!D.timer_started_at}])},[l("div",vb,[mt(W(D.start_time),1),l("span",mb," - "+W(D.end_time),1)]),l("div",hb,[l("div",yb,[l("span",gb,W(D.kind),1),D.goal_id?($(),P("span",bb,"长期")):ye("",!0),l("span",{class:Xe(["pi-text",{strike:D.status==="done"}])},W(D.title),3),D.status==="done"?($(),P("span",wb,"已完成")):D.status==="skip"?($(),P("span",_b,"已跳过")):ye("",!0)]),D.note?($(),P("div",kb,W(D.note),1)):ye("",!0),l("div",xb,[D.timer_started_at?($(),P("span",Cb,"计时中 · 已 "+W(Ee(D))+" 分钟",1)):D.actual_minutes>0?($(),P(je,{key:1},[mt("实际投入 "+W(D.actual_minutes)+" 分钟",1)],64)):ye("",!0)])]),l("div",$b,[D.status!=="done"?($(),P("button",{key:0,class:Xe(["btn btn-xs",{"timer-on":!!D.timer_started_at}]),onClick:ae=>he(D)},W(D.timer_started_at?"停止计时":"计时"),11,Sb)):ye("",!0),D.status!=="done"?($(),P("button",{key:1,class:"btn btn-xs",onClick:ae=>Ae(D,"done")},"完成",8,Eb)):ye("",!0),D.status==="todo"?($(),P("button",{key:2,class:"btn btn-xs",onClick:ae=>Ae(D,"skip")},"跳过",8,Tb)):ye("",!0),D.status!=="todo"?($(),P("button",{key:3,class:"btn btn-xs",onClick:ae=>Ae(D,"todo")},"恢复",8,Ab)):ye("",!0),l("button",{class:"icon-btn",title:"编辑",onClick:ae=>wt(D)},[we(qe,{name:"edit",size:14})],8,Pb),l("button",{class:"icon-btn",title:"删除",onClick:ae=>pt(D)},[we(qe,{name:"close",size:14})],8,Ob)])],2))),128))]),($(),St(Hn,{to:"body"},[Ue.value?($(),P("div",{key:0,class:"mask",onClick:x[7]||(x[7]=zt(D=>Ue.value=!1,["self"]))},[l("div",Mb,[l("div",Ib,[l("span",jb,W(de.value?"编辑计划":"添加计划"),1),l("button",{class:"icon-btn",onClick:x[0]||(x[0]=D=>Ue.value=!1)},[we(qe,{name:"close",size:16})])]),l("div",Db,[l("div",Lb,[x[23]||(x[23]=l("label",null,"计划内容(学什么、做什么)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":x[1]||(x[1]=D=>ke.value=D),placeholder:"如:产品文档第三章 / 晨跑 5 公里",onKeydown:Mt(Vt,["enter"])},null,544),[[Re,ke.value]])]),l("div",Kb,[x[24]||(x[24]=l("label",null,"类别",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":x[2]||(x[2]=D=>Se.value=D)},[($(),P(je,null,et(ct,D=>l("option",{key:D,value:D},W(D),9,Rb)),64))],512),[[fs,Se.value]])]),l("div",Fb,[l("div",null,[x[25]||(x[25]=l("label",null,"开始时间",-1)),Oe(l("input",{class:"input",type:"time","onUpdate:modelValue":x[3]||(x[3]=D=>De.value=D)},null,512),[[Re,De.value]])]),l("div",null,[x[26]||(x[26]=l("label",null,"结束时间",-1)),Oe(l("input",{class:"input",type:"time","onUpdate:modelValue":x[4]||(x[4]=D=>$e.value=D)},null,512),[[Re,$e.value]])])]),l("div",Nb,[x[27]||(x[27]=l("label",null,"备注(选填)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":x[5]||(x[5]=D=>fe.value=D),placeholder:"目标、资料、提醒等",onKeydown:Mt(Vt,["enter"])},null,544),[[Re,fe.value]])]),Ie.value?($(),P("div",Vb,W(Ie.value),1)):ye("",!0)]),l("div",Bb,[l("button",{class:"btn btn-sm",onClick:x[6]||(x[6]=D=>Ue.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:Vt},W(de.value?"保存":"添加"),1)])])])):ye("",!0)])),($(),St(Hn,{to:"body"},[r.value?($(),P("div",{key:0,class:"mask",onClick:x[15]||(x[15]=zt(D=>r.value=!1,["self"]))},[l("div",Ub,[l("div",qb,[l("span",Hb,W(o.value?"编辑长期计划":"新建长期计划"),1),l("button",{class:"icon-btn",onClick:x[8]||(x[8]=D=>r.value=!1)},[we(qe,{name:"close",size:16})])]),l("div",zb,[l("div",Wb,[x[28]||(x[28]=l("label",null,"计划名称(落实为每天一条任务)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":x[9]||(x[9]=D=>i.value=D),placeholder:"如:产品文档学习 / 健身月计划"},null,512),[[Re,i.value]])]),l("div",Gb,[x[29]||(x[29]=l("label",null,"类别",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":x[10]||(x[10]=D=>c.value=D)},[($(),P(je,null,et(ct,D=>l("option",{key:D,value:D},W(D),9,Yb)),64))],512),[[fs,c.value]])]),l("div",Jb,[l("div",null,[x[30]||(x[30]=l("label",null,"开始日期",-1)),Oe(l("input",{class:"input",type:"date","onUpdate:modelValue":x[11]||(x[11]=D=>f.value=D)},null,512),[[Re,f.value]])]),l("div",null,[x[31]||(x[31]=l("label",null,"结束日期",-1)),Oe(l("input",{class:"input",type:"date","onUpdate:modelValue":x[12]||(x[12]=D=>v.value=D)},null,512),[[Re,v.value]])])]),l("div",Xb,[x[32]||(x[32]=l("label",null,"备注(选填)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":x[13]||(x[13]=D=>b.value=D)},null,512),[[Re,b.value]])]),y.value?($(),P("div",Qb,W(y.value),1)):ye("",!0),x[33]||(x[33]=l("div",{class:"muted goal-hint"},"创建后区间内每一天都会生成一条任务,可在每日安排中逐日打卡与计时。",-1))]),l("div",Zb,[l("button",{class:"btn btn-sm",onClick:x[14]||(x[14]=D=>r.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:M},W(o.value?"保存":"创建"),1)])])])):ye("",!0)])),we(Dn,{open:!!_.value,title:"删除长期计划",message:_.value?"将删除「"+_.value.title+"」及其全部每日任务(含已完成记录),不可恢复。":"","confirm-text":"删除",danger:"",onCancel:x[16]||(x[16]=D=>_.value=null),onConfirm:J},null,8,["open","message"])]))}}),tw=Nt(ew,[["__scopeId","data-v-69eb7b43"]]),nw={class:"stats"},sw={class:"cards"},rw={class:"card stat-card"},ow={class:"stat-num num"},aw={class:"card stat-card"},iw={class:"stat-num num"},lw={class:"card stat-card"},uw={class:"stat-num num"},cw={class:"card stat-card"},dw={class:"stat-num num"},fw={class:"card section"},pw={class:"heat"},vw=["title"],mw={class:"two-col"},hw={class:"card section"},yw={class:"bar-label"},gw={class:"bar-track"},bw={class:"muted num bar-num"},ww={key:0,class:"muted"},_w={class:"card section"},kw={class:"bar-label"},xw={class:"bar-track"},Cw={class:"muted num bar-num"},$w={key:0,class:"muted"},Sw={class:"card section"},Ew={class:"bar-label loc-label"},Tw={class:"bar-track"},Aw={class:"muted num bar-num"},Pw={key:0,class:"muted"},Ow=Lt({__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(),y="2000-01-01",_=await Promise.all([ps(),Xr(y,b),Qr(y,b),rr(!0)]),E=_[0],C=_[1],M=_[2],J=_[3],oe=C.filter(he=>he.clock_in_at||he.kind==="makeup");let ue=0;for(const he of oe){const Ae=cr(he,he.date,E,he.date===b);ue+=Ae.workedMinutes??0}const ce=new Set(M.map(he=>he.date));let U=0,T=b;for(ce.has(T)||(T=Ft(b,-1));ce.has(T);)U++,T=Ft(T,-1);t.value={attendDays:oe.length,totalHours:(ue/60).toFixed(1),itemCount:M.length,streak:U};const q=new Map;for(const he of oe){const Ae=he.location||"未记录";q.set(Ae,(q.get(Ae)||0)+1)}i.value=Array.from(q.entries()).map(he=>({name:he[0],count:he[1],percent:Math.round(he[1]/(oe.length||1)*100)})).sort((he,Ae)=>Ae.count-he.count);const Z=M.length||1,G=await Zr(),re=new Map;for(const he of M)re.set(he.category,(re.get(he.category)||0)+1);const I=new Set(G);for(const he of re.keys())I.has(he)||G.push(he);r.value=G.map(he=>{const Ae=re.get(he)||0;return{key:he,label:he,count:Ae,percent:Math.round(Ae/Z*100)}}).filter(he=>he.count>0).sort((he,Ae)=>Ae.count-he.count);const S=new Map(J.map(he=>[he.id,he.name])),j=new Map;for(const he of M){const Ae=he.project_id?S.get(he.project_id)||"已删除项目":"无项目";j.set(Ae,(j.get(Ae)||0)+1)}o.value=Array.from(j.entries()).map(he=>({name:he[0],count:he[1],percent:Math.round(he[1]/Z*100)})).sort((he,Ae)=>Ae.count-he.count);const ne=new Map;for(const he of M)ne.set(he.date,(ne.get(he.date)||0)+1);const Me=Qs(b),Ee=[];for(let he=11;he>=0;he--){const Ae=Ft(Me,-7*he),Ue=[];for(let de=0;de<7;de++){const ke=Ft(Ae,de);Ue.push({date:ke,count:ne.get(ke)||0})}Ee.push(Ue)}n.value=Ee}vn(async()=>{await c()}),gt(ur,()=>{c()});function f(b){return b===0?0:b===1?1:b<=3?2:b<=5?3:4}function v(b,y){return b+" · "+(y?y+" 条":"无记录")}return(b,y)=>($(),P("div",nw,[l("div",sw,[l("div",rw,[y[0]||(y[0]=l("div",{class:"muted"},"出勤天数",-1)),l("div",ow,W(t.value.attendDays),1)]),l("div",aw,[y[1]||(y[1]=l("div",{class:"muted"},"累计工时(小时)",-1)),l("div",iw,W(t.value.totalHours),1)]),l("div",lw,[y[2]||(y[2]=l("div",{class:"muted"},"记录条数",-1)),l("div",uw,W(t.value.itemCount),1)]),l("div",cw,[y[3]||(y[3]=l("div",{class:"muted"},"连续记录(天)",-1)),l("div",dw,W(t.value.streak),1)])]),l("div",fw,[y[4]||(y[4]=l("div",{class:"section-title"},"记录热力图(近 12 周)",-1)),l("div",pw,[($(!0),P(je,null,et(n.value,(_,E)=>($(),P("div",{key:E,class:"heat-col"},[($(!0),P(je,null,et(_,C=>($(),P("span",{key:C.date,class:Xe(["heat-cell","lv"+f(C.count)]),title:v(C.date,C.count)},null,10,vw))),128))]))),128))]),y[5]||(y[5]=Hp('<div class="heat-legend muted" data-v-5469ae68><span data-v-5469ae68>少</span><span class="heat-cell lv0" data-v-5469ae68></span><span class="heat-cell lv1" data-v-5469ae68></span><span class="heat-cell lv2" data-v-5469ae68></span><span class="heat-cell lv3" data-v-5469ae68></span><span class="heat-cell lv4" data-v-5469ae68></span><span data-v-5469ae68>多</span></div>',1))]),l("div",mw,[l("div",hw,[y[6]||(y[6]=l("div",{class:"section-title"},"分类分布",-1)),($(!0),P(je,null,et(r.value,_=>($(),P("div",{key:_.key,class:"bar-row"},[l("span",yw,W(_.label),1),l("span",gw,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",bw,W(_.count)+" 条 · "+W(_.percent)+"%",1)]))),128)),r.value.length?ye("",!0):($(),P("div",ww,"暂无数据"))]),l("div",_w,[y[7]||(y[7]=l("div",{class:"section-title"},"项目投入",-1)),($(!0),P(je,null,et(o.value,_=>($(),P("div",{key:_.name,class:"bar-row"},[l("span",kw,W(_.name),1),l("span",xw,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",Cw,W(_.count)+" 条 · "+W(_.percent)+"%",1)]))),128)),o.value.length?ye("",!0):($(),P("div",$w,"暂无数据"))])]),l("div",Sw,[y[8]||(y[8]=l("div",{class:"section-title"},"地点分布(按出勤天)",-1)),($(!0),P(je,null,et(i.value,_=>($(),P("div",{key:_.name,class:"bar-row"},[l("span",Ew,W(_.name),1),l("span",Tw,[l("span",{class:"bar-fill",style:Un({width:_.percent+"%"})},null,4)]),l("span",Aw,W(_.count)+" 天 · "+W(_.percent)+"%",1)]))),128)),i.value.length?ye("",!0):($(),P("div",Pw,"暂无数据"))])]))}}),Mw=Nt(Ow,[["__scopeId","data-v-5469ae68"]]);async function Iw(e,t,n){const r=ot(),o=await Promise.all([ps(),Xr(e,t),Qr(e,t),rr(!0),mh(e,t),Zr()]),i=o[0],c=o[1],f=o[2],v=o[3],b=o[4],y=o[5];let _=0,E=0,C=0;for(const j of c){(j.clock_in_at||j.kind==="makeup")&&_++,j.kind==="makeup"&&C++;const ne=cr(j,j.date,i,j.date===r);E+=ne.workedMinutes??0}const M=new Map;for(const j of c){if(!(j.clock_in_at||j.kind==="makeup"))continue;const ne=j.location||"未记录";M.set(ne,(M.get(ne)||0)+1)}const J=Array.from(M.entries()).map(j=>({name:j[0],count:j[1]})).sort((j,ne)=>ne.count-j.count),oe=f.length||1,ue=new Map;for(const j of f)ue.set(j.category,(ue.get(j.category)||0)+1);const ce=new Set(y);for(const j of ue.keys())ce.has(j)||y.push(j);const U=y.map(j=>{const ne=ue.get(j)||0;return{key:j,label:j,count:ne,percent:Math.round(ne/oe*100)}}).filter(j=>j.count>0).sort((j,ne)=>ne.count-j.count),T=new Map(v.map(j=>[j.id,j.name])),q=new Map;for(const j of f){const ne=j.project_id?T.get(j.project_id)||"已删除项目":"无项目";q.set(ne,(q.get(ne)||0)+1)}const Z=Array.from(q.entries()).map(j=>({name:j[0],count:j[1]})).sort((j,ne)=>ne.count-j.count),G=f.filter(j=>j.is_milestone===1).map(j=>({date:j.date,content:j.content})),re=f.filter(j=>j.needs_followup===1).map(j=>({date:j.date,content:j.content,remark:j.remark||""})),I=f.filter(j=>!!j.takeaway).map(j=>({date:j.date,text:j.takeaway})),S=b.map(j=>({weekStart:j.week_start,highlights:j.highlights||"",challenges:j.challenges||"",plan_next:j.plan_next||""}));return{range:{start:e,end:t,label:n},attendDays:_,totalHours:(E/60).toFixed(1),makeupCount:C,leaveCount:c.filter(j=>j.kind==="leave").length,itemCount:f.length,categoryStats:U,projectStats:Z,locationStats:J,milestones:G,followups:re,takeaways:I,weekNotes:S}}function jw(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 Dw(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 E="接口返回 "+b.status;try{const C=await b.json();C&&C.error&&C.error.message&&(E+=":"+C.error.message)}catch{}throw new Error(E)}const y=await b.json(),_=y&&y.choices&&y.choices[0]&&y.choices[0].message&&y.choices[0].message.content;if(!_)throw new Error("接口未返回内容");return String(_)}const Lw={class:"report"},Kw={class:"report-toolbar"},Rw={class:"seg"},Fw=["onClick"],Nw=["disabled"],Vw=["disabled"],Bw={key:0,class:"ai-error"},Uw={class:"report-grid"},qw={class:"report-left"},Hw={class:"card section"},zw={class:"section-title"},Ww={class:"muted note-saved"},Gw={class:"card section"},Yw={class:"report-right"},Jw={key:0,class:"card section"},Xw={class:"sum-row"},Qw={class:"num"},Zw={class:"sum-row"},e_={class:"num"},t_={class:"sum-row"},n_={class:"num"},s_={class:"sum-row"},r_={class:"num"},o_={class:"sum-row"},a_={class:"num"},i_={class:"muted"},l_={class:"num"},u_={key:0,class:"muted sum-empty"},c_={class:"muted"},d_={key:1,class:"muted sum-empty"},f_={class:"muted"},p_={key:2,class:"muted sum-empty"},v_={class:"muted"},m_={key:3,class:"muted sum-empty"},h_=Lt({__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),y=O(""),_=O(Qs(ot())),E=O(""),C=O(""),M=O(""),J=O(!1);async function oe(){const re=await hl(_.value);E.value=(re==null?void 0:re.highlights)||"",C.value=(re==null?void 0:re.challenges)||"",M.value=(re==null?void 0:re.plan_next)||"",J.value=!1}async function ue(){await vh(_.value,{highlights:E.value.trim()||null,challenges:C.value.trim()||null,plan_next:M.value.trim()||null}),J.value=!0,await U()}function ce(re){const I=ot();if(re==="week"){const S=Qs(I);return{start:S,end:Ft(S,6),label:"本周"}}if(re==="month"){const S=I.slice(0,7);return{start:S+"-01",end:I,label:S+" 本月"}}return re==="all"?{start:"2000-01-01",end:I,label:"全部实习期"}:{start:r.value,end:o.value,label:r.value+" ~ "+o.value}}async function U(){f.value=!0;const re=ce(n.value),I=await Iw(re.start,re.end,re.label);i.value=I,c.value=jw(I),f.value=!1}gt(n,U),gt([r,o],()=>{n.value==="custom"&&U()}),vn(async()=>{await oe(),await U()});async function T(){const re=ot().replace(/-/g,""),I=await Sa("实习工作总结_"+re+".md",c.value);Ve(I?"总结已导出到:"+I:"总结已导出到系统下载目录")}async function q(){await zi(c.value),Ve("总结已复制到剪贴板")}async function Z(){if(v.value)return;y.value="";const re=c.value.trim();if(!re){y.value="当前草稿为空,无法润色";return}v.value=!0;try{b.value=c.value,c.value=await Dw(re),Ve("AI 润色完成")}catch(I){b.value=null,y.value=I instanceof Error?I.message:"润色失败"}v.value=!1}function G(){b.value!==null&&(c.value=b.value),b.value=null}return(re,I)=>($(),P("div",Lw,[l("div",Kw,[l("div",Rw,[($(),P(je,null,et(t,S=>l("button",{key:S.key,class:Xe(["seg-btn",{active:n.value===S.key}]),onClick:j=>n.value=S.key},W(S.label),11,Fw)),64))]),n.value==="custom"?($(),P(je,{key:0},[Oe(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":I[0]||(I[0]=S=>r.value=S)},null,512),[[Re,r.value]]),I[6]||(I[6]=l("span",{class:"muted"},"至",-1)),Oe(l("input",{type:"date",class:"input w-date","onUpdate:modelValue":I[1]||(I[1]=S=>o.value=S)},null,512),[[Re,o.value]])],64)):ye("",!0),I[10]||(I[10]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",disabled:v.value,onClick:Z},[we(qe,{name:"edit",size:14}),I[7]||(I[7]=mt("AI 润色 ",-1))],8,Nw),b.value!==null?($(),P("button",{key:1,class:"btn btn-sm",onClick:G},"还原润色前")):ye("",!0),l("button",{class:"btn btn-sm",disabled:f.value,onClick:U},[we(qe,{name:"edit",size:14}),I[8]||(I[8]=mt("重新生成 ",-1))],8,Vw),l("button",{class:"btn btn-sm",onClick:q},"复制"),l("button",{class:"btn btn-primary btn-sm",onClick:T},[we(qe,{name:"export",size:14}),I[9]||(I[9]=mt("导出 Markdown ",-1))])]),y.value?($(),P("div",Bw,W(y.value),1)):ye("",!0),l("div",Uw,[l("div",qw,[l("div",Hw,[l("div",zw,"本周周记("+W(_.value)+" 起)",1),I[11]||(I[11]=l("label",{class:"note-label muted"},"本周亮点",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":I[2]||(I[2]=S=>E.value=S),placeholder:"本周最有价值的一件事",onBlur:ue},null,544),[[Re,E.value]]),I[12]||(I[12]=l("label",{class:"note-label muted"},"踩的坑",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":I[3]||(I[3]=S=>C.value=S),placeholder:"遇到的问题与教训",onBlur:ue},null,544),[[Re,C.value]]),I[13]||(I[13]=l("label",{class:"note-label muted"},"下周计划",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":I[4]||(I[4]=S=>M.value=S),placeholder:"下周准备做什么",onBlur:ue},null,544),[[Re,M.value]]),l("div",Ww,W(J.value?"已保存":"失焦自动保存"),1)]),l("div",Gw,[I[14]||(I[14]=l("div",{class:"section-title"},"总结草稿(可编辑)",-1)),Oe(l("textarea",{class:"textarea md-editor","onUpdate:modelValue":I[5]||(I[5]=S=>c.value=S),spellcheck:"false"},null,512),[[Re,c.value]])])]),l("div",Yw,[i.value?($(),P("div",Jw,[I[20]||(I[20]=l("div",{class:"section-title"},"数据摘要",-1)),l("div",Xw,[I[15]||(I[15]=l("span",{class:"muted"},"出勤",-1)),l("span",Qw,W(i.value.attendDays)+" 天",1)]),l("div",Zw,[I[16]||(I[16]=l("span",{class:"muted"},"工时",-1)),l("span",e_,W(i.value.totalHours)+" 小时",1)]),l("div",t_,[I[17]||(I[17]=l("span",{class:"muted"},"补卡",-1)),l("span",n_,W(i.value.makeupCount)+" 次",1)]),l("div",s_,[I[18]||(I[18]=l("span",{class:"muted"},"请假",-1)),l("span",r_,W(i.value.leaveCount)+" 天",1)]),l("div",o_,[I[19]||(I[19]=l("span",{class:"muted"},"记录",-1)),l("span",a_,W(i.value.itemCount)+" 条",1)]),I[21]||(I[21]=l("div",{class:"section-sub"},"分类分布",-1)),($(!0),P(je,null,et(i.value.categoryStats,S=>($(),P("div",{key:S.key,class:"sum-row"},[l("span",i_,W(S.label),1),l("span",l_,W(S.count)+" 条 · "+W(S.percent)+"%",1)]))),128)),i.value.categoryStats.length?ye("",!0):($(),P("div",u_,"(无)")),I[22]||(I[22]=l("div",{class:"section-sub"},"主要成果",-1)),($(!0),P(je,null,et(i.value.milestones,(S,j)=>($(),P("div",{key:"m"+j,class:"sum-item"},[mt(W(S.content),1),l("span",c_,"("+W(S.date)+")",1)]))),128)),i.value.milestones.length?ye("",!0):($(),P("div",d_,"(无)")),I[23]||(I[23]=l("div",{class:"section-sub"},"待跟进",-1)),($(!0),P(je,null,et(i.value.followups,(S,j)=>($(),P("div",{key:"f"+j,class:"sum-item"},[mt(W(S.content),1),l("span",f_,"("+W(S.date)+")",1)]))),128)),i.value.followups.length?ye("",!0):($(),P("div",p_,"(无)")),I[24]||(I[24]=l("div",{class:"section-sub"},"学习与成长",-1)),($(!0),P(je,null,et(i.value.takeaways,(S,j)=>($(),P("div",{key:"t"+j,class:"sum-item"},[mt(W(S.text),1),l("span",v_,"("+W(S.date)+")",1)]))),128)),i.value.takeaways.length?ye("",!0):($(),P("div",m_,"(无)"))])):ye("",!0)])])]))}}),y_=Nt(h_,[["__scopeId","data-v-36db413b"]]),g_=["aria-label"],b_={class:"dialog-head"},w_={class:"dialog-title"},__={class:"dialog-body"},k_={class:"form-grid"},x_={class:"field span2"},C_={class:"seg"},$_={class:"field"},S_={class:"field"},E_={class:"field"},T_=["value"],A_={class:"add-cat"},P_=["onKeydown"],O_={key:0,class:"field"},M_={class:"seg"},I_={class:"field span2"},j_={key:0,class:"form-error"},D_={class:"dialog-btns"},L_=Lt({__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),y=O(!1),_=O(""),E=O(null);function C(T){n.open&&T.key==="Escape"&&r("cancel")}gt(()=>n.open,async T=>{var q;T?(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,y.value=n.initial.reimbursed===1,_.value="",window.addEventListener("keydown",C),await ir(),(q=E.value)==null||q.focus()):window.removeEventListener("keydown",C)}),Wn(()=>window.removeEventListener("keydown",C)),gt(o,async()=>{await J(),i.value=M.value[0]||""});const M=O([]);async function J(){M.value=await Wr(o.value)}const oe=O("");async function ue(){const T=oe.value.trim();if(T){if(M.value.includes(T)){oe.value="";return}M.value.push(T),await Ts(o.value,M.value),i.value=T,oe.value=""}}function ce(){return i.value&&M.value.includes(i.value)?i.value:M.value[0]}function U(){const T=String(c.value??"").trim(),q=Number(T);if(!T||!isFinite(q)||q<=0){_.value="请填写大于 0 的金额";return}if(!f.value){_.value="请选择日期";return}const Z=o.value==="expense"&&b.value?1:0;r("save",{type:o.value,category:ce(),amount:Math.round(q*100),date:f.value,note:String(v.value??"").trim(),reimbursable:Z,reimbursed:Z&&y.value?1:0})}return(T,q)=>($(),St(Hn,{to:"body"},[we(lr,{name:"modal"},{default:ms(()=>[e.open?($(),P("div",{key:0,class:"mask",onClick:q[12]||(q[12]=zt(Z=>r("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",b_,[l("span",w_,W(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:q[0]||(q[0]=Z=>r("cancel"))},[we(qe,{name:"close",size:16})])]),l("div",__,[l("div",k_,[l("div",x_,[q[13]||(q[13]=l("label",null,"类型",-1)),l("div",C_,[l("button",{class:Xe(["seg-btn",{active:o.value==="expense"}]),onClick:q[1]||(q[1]=Z=>o.value="expense")},"支出",2),l("button",{class:Xe(["seg-btn",{active:o.value==="income"}]),onClick:q[2]||(q[2]=Z=>o.value="income")},"收入",2)])]),l("div",$_,[q[14]||(q[14]=l("label",null,"金额(元,必填)",-1)),Oe(l("input",{ref_key:"amountInput",ref:E,class:Xe(["input",{invalid:_.value}]),"onUpdate:modelValue":q[3]||(q[3]=Z=>c.value=Z),type:"number",min:"0",step:"0.01",placeholder:"0.00"},null,2),[[Re,c.value]])]),l("div",S_,[q[15]||(q[15]=l("label",null,"日期(必填)",-1)),Oe(l("input",{class:"input",type:"date","onUpdate:modelValue":q[4]||(q[4]=Z=>f.value=Z)},null,512),[[Re,f.value]])]),l("div",E_,[q[16]||(q[16]=l("label",null,"分类(可直接新增)",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":q[5]||(q[5]=Z=>i.value=Z)},[($(!0),P(je,null,et(M.value,Z=>($(),P("option",{key:Z,value:Z},W(Z),9,T_))),128))],512),[[fs,i.value]]),l("div",A_,[Oe(l("input",{class:"input add-cat-input","onUpdate:modelValue":q[6]||(q[6]=Z=>oe.value=Z),placeholder:"新增分类名",onKeydown:Mt(zt(ue,["prevent"]),["enter"])},null,40,P_),[[Re,oe.value]]),l("button",{class:"btn btn-xs",type:"button",onClick:ue},"添加")])]),o.value==="expense"?($(),P("div",O_,[q[17]||(q[17]=l("label",null,"报销状态",-1)),l("div",M_,[l("button",{class:Xe(["seg-btn",{active:!b.value}]),onClick:q[7]||(q[7]=Z=>{b.value=!1,y.value=!1})},"无需报销",2),l("button",{class:Xe(["seg-btn",{active:b.value&&!y.value}]),onClick:q[8]||(q[8]=Z=>{b.value=!0,y.value=!1})},"待报销",2),l("button",{class:Xe(["seg-btn",{active:b.value&&y.value}]),onClick:q[9]||(q[9]=Z=>{b.value=!0,y.value=!0})},"已报销",2)])])):ye("",!0),l("div",I_,[q[18]||(q[18]=l("label",null,"备注",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":q[10]||(q[10]=Z=>v.value=Z),placeholder:"选填"},null,512),[[Re,v.value]])])]),_.value?($(),P("div",j_,W(_.value),1)):ye("",!0)]),l("div",D_,[l("button",{class:"btn btn-sm",onClick:q[11]||(q[11]=Z=>r("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:U},"保存")])],8,g_)])):ye("",!0)]),_:1})]))}}),K_=Nt(L_,[["__scopeId","data-v-a4b3a7d0"]]),R_={class:"ledger-page"},F_={class:"ledger-toolbar"},N_={class:"month-title num"},V_={class:"cards"},B_={class:"card stat-card"},U_={class:"stat-num num amt-income"},q_={class:"card stat-card"},H_={class:"stat-num num"},z_={class:"card stat-card"},W_={class:"card stat-card"},G_={class:"stat-num num amt-warn"},Y_={key:0,class:"card sec"},J_={class:"bar-label"},X_={class:"bar-track"},Q_={class:"muted num bar-num"},Z_={key:1,class:"card section"},e1={class:"form-error"},t1={class:"card table-card"},n1={class:"tx-table"},s1={class:"num","data-label":"日期"},r1={"data-label":"分类"},o1={class:"tag"},a1={class:"td-note","data-label":"备注"},i1={"data-label":"报销"},l1={key:0,class:"muted"},u1={key:1,class:"tx-done"},c1={key:2,class:"tx-pending"},d1={class:"ops-cell"},f1={class:"ops"},p1=["onClick"],v1=["onClick"],m1=["onClick"],h1={key:0},y1={class:"muted table-note num"},g1=Lt({__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}),y=O(null),_=rt(()=>t.value.slice(0,7)+"-01"),E=rt(()=>{const de=Number(t.value.slice(0,4)),ke=Number(t.value.slice(5,7))-1,Se=new Date(de,ke+1,0).getDate();return t.value.slice(0,7)+"-"+(Se<10?"0"+Se:String(Se))}),C=rt(()=>Number(t.value.slice(0,4))+" 年 "+Number(t.value.slice(5,7))+" 月");async function M(){r.value=!0;try{n.value=await Dh(_.value,E.value),c.value=""}catch(de){c.value="账目加载失败:"+(de instanceof Error?de.stack||de.message:String(de)),Ve("账目加载失败")}r.value=!1}vn(M),gt(t,M);const J=O([]),oe=O([]);async function ue(){J.value=await Wr("expense"),oe.value=await Wr("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)),U=rt(()=>{let de=0,ke=0,Se=0;for(const De of n.value)De.type==="income"?de+=De.amount:(ke+=De.amount,De.reimbursable===1&&De.reimbursed!==1&&(Se+=De.amount));return{income:de,expense:ke,pending:Se,balance:de-ke}}),T=O("all"),q=O("all"),Z=rt(()=>ce.value.filter(de=>!(T.value!=="all"&&de.type!==T.value||q.value==="pending"&&!(de.type==="expense"&&de.reimbursable===1&&de.reimbursed!==1)||q.value==="done"&&!(de.reimbursable===1&&de.reimbursed===1)))),G=rt(()=>{const de=new Map;let ke=0;for(const De of n.value)De.type==="expense"&&(de.set(De.category,(de.get(De.category)||0)+De.amount),ke+=De.amount);const Se=ke||1;return Array.from(de.entries()).map(De=>({name:De[0],amount:De[1],percent:Math.round(De[1]/Se*100)})).sort((De,$e)=>$e.amount-De.amount)});function re(de){return(de/100).toFixed(2)}function I(de){return(de.type==="income"?"+":"-")+re(de.amount)}function S(){t.value=na(t.value,-1)}function j(){t.value=na(t.value,1)}function ne(){t.value=ot()}gt(o,()=>{i.value&&(i.value="")});async function Me(de){await Fh(de.id),await M(),Ve("已标记为已报销")}function Ee(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 he(){v.value=null,b.value={type:"expense",category:J.value[0]||"",amountYuan:"",date:ot(),note:"",reimbursable:0,reimbursed:0},f.value=!0}async function Ae(de){if(v.value){await Kh(v.value,de),f.value=!1,await M(),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 M(),Ve("已记一笔")}async function Ue(){y.value&&y.value.id&&await Rh(y.value.id),y.value=null,await M(),Ve("账目已删除")}return(de,ke)=>($(),P("div",R_,[l("div",F_,[l("button",{class:"icon-btn",onClick:S},[we(qe,{name:"chevron-left",size:16})]),l("span",N_,W(C.value),1),l("button",{class:"icon-btn",onClick:j},[we(qe,{name:"chevron-right",size:16})]),l("button",{class:"btn btn-sm",onClick:ne},"回到本月"),ke[7]||(ke[7]=l("span",{class:"flex1"},null,-1)),Oe(l("select",{class:"select w-filter","onUpdate:modelValue":ke[0]||(ke[0]=Se=>T.value=Se)},[...ke[4]||(ke[4]=[l("option",{value:"all"},"全部类型",-1),l("option",{value:"expense"},"仅支出",-1),l("option",{value:"income"},"仅收入",-1)])],512),[[fs,T.value]]),Oe(l("select",{class:"select w-filter","onUpdate:modelValue":ke[1]||(ke[1]=Se=>q.value=Se)},[...ke[5]||(ke[5]=[l("option",{value:"all"},"全部报销",-1),l("option",{value:"pending"},"待报销",-1),l("option",{value:"done"},"已报销",-1)])],512),[[fs,q.value]]),l("button",{class:"btn btn-primary btn-sm",onClick:he},[we(qe,{name:"plus",size:14}),ke[6]||(ke[6]=mt(" 记一笔",-1))])]),l("div",V_,[l("div",B_,[ke[8]||(ke[8]=l("div",{class:"muted"},"本月收入(元)",-1)),l("div",U_,W(re(U.value.income)),1)]),l("div",q_,[ke[9]||(ke[9]=l("div",{class:"muted"},"本月支出(元)",-1)),l("div",H_,W(re(U.value.expense)),1)]),l("div",z_,[ke[10]||(ke[10]=l("div",{class:"muted"},"本月结余(元)",-1)),l("div",{class:Xe(["stat-num num",{"amt-income":U.value.balance>=0,"amt-expense":U.value.balance<0}])},W(re(U.value.balance)),3)]),l("div",W_,[ke[11]||(ke[11]=l("div",{class:"muted"},"待报销(元)",-1)),l("div",G_,W(re(U.value.pending)),1)])]),G.value.length?($(),P("div",Y_,[ke[12]||(ke[12]=l("div",{class:"sec-title"},"本月支出分类",-1)),($(!0),P(je,null,et(G.value,Se=>($(),P("div",{key:Se.name,class:"bar-row"},[l("span",J_,W(Se.name),1),l("span",X_,[l("span",{class:"bar-fill",style:Un({width:Se.percent+"%"})},null,4)]),l("span",Q_,W(re(Se.amount))+" 元 · "+W(Se.percent)+"%",1)]))),128))])):ye("",!0),c.value?($(),P("div",Z_,[l("div",e1,W(c.value),1),ke[13]||(ke[13]=l("div",{class:"muted loc-note"},"请将上方完整错误文字发送给开发者",-1))])):ye("",!0),l("div",t1,[l("table",n1,[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),P(je,null,et(Z.value,Se=>($(),P("tr",{key:Se.id},[l("td",s1,W(Se.date),1),l("td",r1,[l("span",o1,W(Se.category),1)]),l("td",{class:Xe(["num",Se.type==="income"?"amt-income":"amt-expense"]),"data-label":"金额"},W(I(Se)),3),l("td",a1,W(Se.note||"--"),1),l("td",i1,[Se.type!=="expense"||Se.reimbursable!==1?($(),P("span",l1,"--")):Se.reimbursed===1?($(),P("span",u1,"已报销")):($(),P("span",c1,"待报销"))]),l("td",d1,[l("div",f1,[Se.type==="expense"&&Se.reimbursable===1&&Se.reimbursed!==1?($(),P("button",{key:0,class:"btn btn-xs",onClick:De=>Me(Se)},"标记已报销",8,p1)):ye("",!0),l("button",{class:"btn btn-xs",onClick:De=>Ee(Se)},"编辑",8,v1),l("button",{class:"btn btn-xs",onClick:De=>y.value=Se},"删除",8,m1)])])]))),128)),!Z.value.length&&!r.value?($(),P("tr",h1,[...ke[14]||(ke[14]=[l("td",{colspan:"6",class:"empty muted"},"本月暂无账目",-1)])])):ye("",!0)])])]),l("div",y1,"本月 "+W(n.value.length)+" 条 · 当前筛选 "+W(Z.value.length)+" 条",1),we(K_,{open:f.value,title:v.value?"编辑账目":"记一笔",initial:b.value,onCancel:ke[2]||(ke[2]=Se=>f.value=!1),onSave:Ae},null,8,["open","title","initial"]),we(Dn,{open:!!y.value,title:"删除确认",message:y.value?"将删除 "+y.value.date+" 的账目("+y.value.category+" "+re(y.value.amount)+" 元)。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:ke[3]||(ke[3]=Se=>y.value=null),onConfirm:Ue},null,8,["open","message"])]))}}),b1=Nt(g1,[["__scopeId","data-v-1d69492f"]]),w1={class:"memo-page"},_1={class:"card memo-list"},k1={class:"pane-head"},x1={class:"pane-title"},C1={class:"memo-scroll"},$1=["onClick"],S1={class:"memo-item-title"},E1={class:"muted memo-item-sub"},T1={class:"muted num memo-item-time"},A1={key:0,class:"muted empty"},P1={class:"card memo-editor"},O1={class:"editor-foot"},M1={class:"muted foot-info"},I1=["disabled"],j1=["disabled"],D1={key:1,class:"empty muted editor-empty"},L1=Lt({__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 Z=t.value.find(G=>G.id===n.value.id);Z&&(n.value=Z)}}vn(async()=>{await v(),t.value.length&&_(t.value[0]),window.addEventListener("keydown",b)}),Wn(()=>window.removeEventListener("keydown",b)),gt(Vi,async Z=>{if(!Z)return;t.value.length||await v();const G=t.value.find(re=>re.id===Z);Vi.value=null,G&&E(G)},{immediate:!0});function b(Z){(Z.ctrlKey||Z.metaKey)&&Z.key.toLowerCase()==="s"&&r.value&&y.value&&(Z.preventDefault(),oe())}const y=rt(()=>{if(!r.value)return!1;const Z=n.value?n.value.title:"",G=n.value?n.value.content:"";return o.value!==Z||i.value!==G});function _(Z){n.value=Z,r.value=!0,o.value=Z.title,i.value=Z.content}function E(Z){if(!(r.value&&n.value&&n.value.id===Z.id)){if(y.value){f.value={type:"select",memo:Z};return}_(Z)}}function C(){if(y.value){f.value={type:"new"};return}M()}function M(){n.value=null,r.value=!0,o.value="",i.value=""}function J(){n.value?_(n.value):M()}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 Z=await Ph(o.value,i.value);n.value=Z,o.value=Z.title,i.value=Z.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(),M()}function U(){const Z=f.value;f.value=null,Z&&(Z.type==="select"?_(Z.memo):M())}function T(Z){return(Z.content||"").replace(/\s+/g," ").slice(0,30)}function q(Z){return Z.replace("T"," ").slice(0,16)}return(Z,G)=>($(),P("div",w1,[l("aside",_1,[l("div",k1,[l("span",x1,"备忘录("+W(t.value.length)+")",1),l("button",{class:"btn btn-primary btn-sm",onClick:C},"新建")]),l("div",C1,[($(!0),P(je,null,et(t.value,re=>($(),P("div",{key:re.id,class:Xe(["memo-item",{active:r.value&&n.value&&n.value.id===re.id}]),onClick:I=>E(re)},[l("div",S1,W(re.title||"无标题"),1),l("div",E1,W(T(re)||"空"),1),l("div",T1,W(q(re.updated_at)),1)],10,$1))),128)),t.value.length?ye("",!0):($(),P("div",A1,"暂无备忘"))])]),l("section",P1,[r.value?($(),P(je,{key:0},[Oe(l("input",{class:"input title-input","onUpdate:modelValue":G[0]||(G[0]=re=>o.value=re),placeholder:"标题"},null,512),[[Re,o.value]]),Oe(l("textarea",{class:"textarea content-textarea","onUpdate:modelValue":G[1]||(G[1]=re=>i.value=re),placeholder:"内容"},null,512),[[Re,i.value]]),l("div",O1,[l("span",M1,[y.value?($(),P(je,{key:0},[mt("有未保存修改")],64)):n.value&&n.value.id?($(),P(je,{key:1},[mt("更新于 "+W(q(n.value.updated_at)),1)],64)):($(),P(je,{key:2},[mt("新备忘")],64))]),G[4]||(G[4]=l("span",{class:"flex1"},null,-1)),n.value&&n.value.id?($(),P("button",{key:0,class:"btn btn-sm",onClick:ue},"删除")):ye("",!0),l("button",{class:"btn btn-sm",disabled:!y.value,onClick:J},"放弃修改",8,I1),l("button",{class:"btn btn-primary btn-sm",disabled:!y.value,onClick:oe},"保存",8,j1)])],64)):($(),P("div",D1,"选择左侧备忘,或点击右上角新建"))]),we(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"]),we(Dn,{open:!!f.value,title:"未保存提示",message:"当前备忘有未保存的修改,继续操作将丢失这些修改。","confirm-text":"放弃修改并继续",onCancel:G[3]||(G[3]=re=>f.value=null),onConfirm:U},null,8,["open"])]))}}),K1=Nt(L1,[["__scopeId","data-v-123c0b8c"]]),R1=["aria-label"],F1={class:"dialog-head"},N1={class:"dialog-title"},V1={class:"dialog-body"},B1={class:"form-grid"},U1={class:"field span2"},q1={class:"field span2"},H1={class:"field span2"},z1={class:"pwd-row"},W1={class:"field span2"},G1={key:0,class:"form-error"},Y1={class:"dialog-btns"},J1=Lt({__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 y(C){n.open&&C.key==="Escape"&&r("cancel")}gt(()=>n.open,async C=>{var M;C?(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",y),await ir(),(M=b.value)==null||M.focus()):window.removeEventListener("keydown",y)}),Wn(()=>window.removeEventListener("keydown",y));function _(){const C="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789",M="!@#$%^&*",J=crypto.getRandomValues(new Uint8Array(14));let oe="";for(let ue=0;ue<J.length;ue++)oe+=C[J[ue]%C.length];oe+=M[crypto.getRandomValues(new Uint8Array(1))[0]%M.length],c.value=oe,v.value=""}function E(){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(C,M)=>($(),St(Hn,{to:"body"},[we(lr,{name:"modal"},{default:ms(()=>[e.open?($(),P("div",{key:0,class:"mask",onClick:M[6]||(M[6]=zt(J=>r("cancel"),["self"]))},[l("div",{class:"dialog",role:"dialog","aria-label":e.title},[l("div",F1,[l("span",N1,W(e.title),1),l("button",{class:"icon-btn",title:"关闭",onClick:M[0]||(M[0]=J=>r("cancel"))},[we(qe,{name:"close",size:16})])]),l("div",V1,[l("div",B1,[l("div",U1,[M[7]||(M[7]=l("label",null,"系统名称(必填)",-1)),Oe(l("input",{ref_key:"systemInput",ref:b,class:"input","onUpdate:modelValue":M[1]||(M[1]=J=>o.value=J),placeholder:"如:企业邮箱 / OA / VPN"},null,512),[[Re,o.value]])]),l("div",q1,[M[8]||(M[8]=l("label",null,"账号(必填)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":M[2]||(M[2]=J=>i.value=J),placeholder:"用户名、工号或邮箱"},null,512),[[Re,i.value]])]),l("div",H1,[M[9]||(M[9]=l("label",null,"密码(必填)",-1)),l("div",z1,[Oe(l("input",{class:"input","onUpdate:modelValue":M[3]||(M[3]=J=>c.value=J),placeholder:"输入或点击生成"},null,512),[[Re,c.value]]),l("button",{class:"btn btn-sm",onClick:_},"生成")])]),l("div",W1,[M[10]||(M[10]=l("label",null,"备注",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":M[4]||(M[4]=J=>f.value=J),placeholder:"用途、到期时间、负责人等(选填)"},null,512),[[Re,f.value]])])]),v.value?($(),P("div",G1,W(v.value),1)):ye("",!0)]),l("div",Y1,[l("button",{class:"btn btn-sm",onClick:M[5]||(M[5]=J=>r("cancel"))},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:E},"保存")])],8,R1)])):ye("",!0)]),_:1})]))}}),X1=Nt(J1,[["__scopeId","data-v-2eafe20e"]]),Q1={class:"vault-page"},Z1={key:0,class:"empty muted"},e0={key:1,class:"card lock-card"},t0={class:"lock-badge"},n0={key:0,class:"form-error"},s0=["disabled"],r0={key:0,class:"form-error"},o0=["disabled"],a0={class:"vault-toolbar"},i0={class:"search-wrap"},l0={class:"card table-card"},u0={class:"cred-table"},c0={class:"td-system"},d0=["onClick"],f0={class:"pwd-cell"},p0={class:"num pwd-text"},v0=["onClick"],m0=["onClick"],h0={class:"td-remark"},y0={class:"td-ops"},g0={class:"ops"},b0=["onClick"],w0=["onClick"],_0={key:0},k0={class:"muted table-note num"},x0={class:"dialog pwd-dialog"},C0={class:"dialog-head"},$0={class:"dialog-body"},S0={class:"vp-field"},E0={class:"vp-field"},T0={class:"vp-field"},A0={key:0,class:"form-error"},P0={class:"dialog-btns"},O0=5*60*1e3,M0=Lt({__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([]),y=O(""),_=O({}),E=O(!1),C=O(null),M=O({system:"",account:"",password:"",remark:""}),J=O(null),oe=O(!1),ue=O(""),ce=O(""),U=O(""),T=O("");async function q(){b.value=await mm(),_.value={}}let Z=null;function G(){Z!==null&&window.clearTimeout(Z),Z=window.setTimeout(()=>{n.value&&(oa(),n.value=!1,b.value=[],_.value={},Ve("长时间未操作,密码库已自动锁定"))},O0)}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),Z!==null&&window.clearTimeout(Z)});const I=rt(()=>{const $e=y.value.trim().toLowerCase();return $e?b.value.filter(fe=>(fe.system+" "+fe.account+" "+(fe.remark||"")).toLowerCase().includes($e)):b.value});async function S(){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 q(),Ve("主密码已设置,密码库已解锁")}catch($e){c.value=$e instanceof Error?$e.message:"设置失败"}r.value=!1}}async function j(){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 q()}catch($e){v.value=$e instanceof Error?$e.message:"解锁失败"}r.value=!1}}function ne(){oa(),n.value=!1,b.value=[],_.value={},Z!==null&&window.clearTimeout(Z),Ve("密码库已锁定")}async function Me($e){const fe=$e.id;if(_.value[fe]){_.value[fe]=!1;return}try{$e.passwordPlain=await yi(fe),_.value[fe]=!0}catch(Ie){Ve(Ie instanceof Error?Ie.message:"解密失败")}}async function Ee($e){try{const fe=await yi($e.id);await zi(fe),Ve("密码已复制")}catch(fe){Ve(fe instanceof Error?fe.message:"复制失败")}}async function he($e){await zi($e.account),Ve("账号已复制")}function Ae(){C.value=null,M.value={system:"",account:"",password:"",remark:""},E.value=!0}async function Ue($e){try{const fe=await yi($e.id);C.value=$e.id,M.value={system:$e.system,account:$e.account,password:fe,remark:$e.remark||""},E.value=!0}catch(fe){Ve(fe instanceof Error?fe.message:"解密失败")}}async function de($e){const fe=C.value??void 0;await hm($e,fe),E.value=!1,await q(),Ve(fe?"账号已更新":"账号已添加")}async function ke(){J.value&&J.value.id&&(await ym(J.value.id),Ve("账号已删除")),J.value=null,await q()}function Se(){ue.value="",ce.value="",U.value="",T.value="",oe.value=!0}async function De(){T.value="";try{const $e=await gm(ue.value,ce.value);oe.value=!1,ue.value="",ce.value="",U.value="",Ve("主密码已修改,"+$e+" 条账号密码已重新加密")}catch($e){T.value=$e instanceof Error?$e.message:"修改失败"}}return($e,fe)=>($(),P("div",Q1,[t.value===null?($(),P("div",Z1,"加载中")):n.value?($(),P(je,{key:2},[l("div",a0,[l("div",i0,[we(qe,{name:"search",size:14,class:"search-icon"}),Oe(l("input",{class:"input","onUpdate:modelValue":fe[3]||(fe[3]=Ie=>y.value=Ie),placeholder:"搜索系统名称、账号或备注"},null,512),[[Re,y.value]])]),fe[16]||(fe[16]=l("span",{class:"flex1"},null,-1)),l("button",{class:"btn btn-sm",onClick:Se},"修改主密码"),l("button",{class:"btn btn-sm",onClick:ne},"锁定"),l("button",{class:"btn btn-primary btn-sm",onClick:Ae},"新增账号")]),l("div",l0,[l("table",u0,[fe[18]||(fe[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),P(je,null,et(I.value,Ie=>($(),P("tr",{key:Ie.id},[l("td",c0,W(Ie.system),1),l("td",null,[l("span",{class:"copyable",title:"点击复制账号",onClick:ct=>he(Ie)},W(Ie.account),9,d0)]),l("td",null,[l("div",f0,[l("span",p0,W(_.value[Ie.id]?Ie.passwordPlain:"........"),1),l("button",{class:"btn btn-xs",onClick:ct=>Me(Ie)},W(_.value[Ie.id]?"隐藏":"显示"),9,v0),l("button",{class:"btn btn-xs",onClick:ct=>Ee(Ie)},"复制",8,m0)])]),l("td",h0,W(Ie.remark||"--"),1),l("td",y0,[l("div",g0,[l("button",{class:"btn btn-xs",onClick:ct=>Ue(Ie)},"编辑",8,b0),l("button",{class:"btn btn-xs",onClick:ct=>J.value=Ie},"删除",8,w0)])])]))),128)),I.value.length?ye("",!0):($(),P("tr",_0,[...fe[17]||(fe[17]=[l("td",{colspan:"5",class:"empty muted"},"暂无账号,点击右上角新增",-1)])]))])])]),l("div",k0,"共 "+W(b.value.length)+" 条账号记录 · 密码以 AES-256-GCM 加密,服务器仅存密文",1)],64)):($(),P("div",e0,[l("div",t0,[we(qe,{name:"lock",size:26})]),t.value===!1?($(),P(je,{key:0},[fe[12]||(fe[12]=l("div",{class:"lock-title"},"设置主密码",-1)),fe[13]||(fe[13]=l("div",{class:"muted lock-tip"},"主密码用于加密保存在本机的账号密码,遗忘后无法找回,请务必牢记",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[0]||(fe[0]=Ie=>o.value=Ie),placeholder:"设置主密码(至少 6 位)",onKeydown:Mt(S,["enter"])},null,544),[[Re,o.value]]),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[1]||(fe[1]=Ie=>i.value=Ie),placeholder:"再次输入主密码",onKeydown:Mt(S,["enter"])},null,544),[[Re,i.value]]),c.value?($(),P("div",n0,W(c.value),1)):ye("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:r.value,onClick:S},"完成设置并解锁",8,s0)],64)):($(),P(je,{key:1},[fe[14]||(fe[14]=l("div",{class:"lock-title"},"密码库已锁定",-1)),fe[15]||(fe[15]=l("div",{class:"muted lock-tip"},"输入主密码解锁后查看与复制密码",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[2]||(fe[2]=Ie=>f.value=Ie),placeholder:"主密码",onKeydown:Mt(j,["enter"])},null,544),[[Re,f.value]]),v.value?($(),P("div",r0,W(v.value),1)):ye("",!0),l("button",{class:"btn btn-primary lock-btn",disabled:r.value,onClick:j},"解锁",8,o0)],64))])),we(X1,{open:E.value,title:C.value?"编辑账号":"新增账号",initial:M.value,onCancel:fe[4]||(fe[4]=Ie=>E.value=!1),onSave:de},null,8,["open","title","initial"]),we(Dn,{open:!!J.value,title:"删除确认",message:J.value?"将删除系统「"+J.value.system+"」的账号记录。删除后不可恢复。":"","confirm-text":"删除",danger:"",onCancel:fe[5]||(fe[5]=Ie=>J.value=null),onConfirm:ke},null,8,["open","message"]),($(),St(Hn,{to:"body"},[we(lr,{name:"modal"},{default:ms(()=>[oe.value?($(),P("div",{key:0,class:"mask",onClick:fe[11]||(fe[11]=zt(Ie=>oe.value=!1,["self"]))},[l("div",x0,[l("div",C0,[fe[19]||(fe[19]=l("span",{class:"dialog-title"},"修改主密码",-1)),l("button",{class:"icon-btn",title:"关闭",onClick:fe[6]||(fe[6]=Ie=>oe.value=!1)},[we(qe,{name:"close",size:16})])]),l("div",$0,[l("div",S0,[fe[20]||(fe[20]=l("label",null,"旧主密码",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[7]||(fe[7]=Ie=>ue.value=Ie)},null,512),[[Re,ue.value]])]),l("div",E0,[fe[21]||(fe[21]=l("label",null,"新主密码(至少 6 位)",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[8]||(fe[8]=Ie=>ce.value=Ie)},null,512),[[Re,ce.value]])]),l("div",T0,[fe[22]||(fe[22]=l("label",null,"确认新主密码",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":fe[9]||(fe[9]=Ie=>U.value=Ie)},null,512),[[Re,U.value]])]),T.value?($(),P("div",A0,W(T.value),1)):ye("",!0),fe[23]||(fe[23]=l("div",{class:"muted vp-tip"},"确认后所有账号密码将使用新主密码重新加密",-1))]),l("div",P0,[l("button",{class:"btn btn-sm",onClick:fe[10]||(fe[10]=Ie=>oe.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",onClick:De},"确认修改")])])])):ye("",!0)]),_:1})]))]))}}),I0=Nt(M0,[["__scopeId","data-v-a96af9e5"]]);function j0(e){return'"'+(e==null?"":String(e)).replace(/"/g,'""')+'"'}async function Uu(e,t){const r="\uFEFF"+t.map(f=>f.map(j0).join(",")).join(`\r
|
||
`);if(ar.isNativePlatform()){const{downloadText:f}=await Od(async()=>{const{downloadText:v}=await Promise.resolve().then(()=>Rg);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 D0={class:"settings"},L0={class:"card section"},K0={class:"muted acc-line"},R0={class:"ai-grid"},F0={class:"rule-item"},N0={class:"rule-item"},V0={class:"rule-item"},B0={key:0,class:"form-error"},U0={class:"rule-save"},q0={class:"card section"},H0={class:"rule-grid"},z0={class:"rule-item"},W0={class:"rule-item"},G0={class:"rule-item"},Y0={class:"rule-item"},J0={class:"rule-item"},X0={class:"card section"},Q0={class:"proj-add"},Z0={key:0,class:"muted proj-tip"},ek=["onKeydown"],tk=["onClick"],nk=["onClick"],sk=["onClick"],rk={key:1,class:"muted"},ok={class:"card section"},ak={class:"card section"},ik={class:"muted acc-line"},lk={class:"rule-save"},uk=["disabled"],ck={key:0,class:"muted acc-line"},dk={key:1,class:"form-error"},fk={key:2,class:"form-error"},pk={class:"card section"},vk={class:"ai-grid"},mk={class:"rule-item"},hk={class:"rule-item"},yk={class:"rule-item"},gk={class:"card section"},bk={class:"cat-block"},wk={class:"cat-head"},_k={class:"cat-chips"},kk=["onClick"],xk=["onClick"],Ck={class:"cat-block"},$k={class:"cat-head"},Sk={class:"cat-chips"},Ek=["onClick"],Tk=["onClick"],Ak={class:"cat-block"},Pk={class:"cat-head"},Ok={class:"cat-chips"},Mk=["onClick"],Ik=["onClick"],jk={class:"card section"},Dk={class:"backup-row"},Lk={key:0,class:"import-error"},Kk=Lt({__name:"SettingsView",setup(e){var z;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),y=O(""),_=O([]),E=O([]),C=O([]);async function M(){_.value=await Zr(),E.value=await Wr("expense"),C.value=await Wr("income")}async function J(ee){const A=window.prompt("新分类名称");if(!A||!A.trim())return;const X=ee==="log"?_.value:ee==="expense"?E.value:C.value,te=A.trim();if(X.includes(te)){Ve("分类已存在");return}const Ce=[...X,te];ee==="log"?(_.value=Ce,await bi(Ce)):ee==="expense"?(E.value=Ce,await Ts("expense",Ce)):(C.value=Ce,await Ts("income",Ce)),Ve("分类已添加")}async function oe(ee,A,X){const te=window.prompt("修改分类名称",X);if(!te||!te.trim()||te.trim()===X)return;const be=(ee==="log"?_.value:ee==="expense"?E.value:C.value).map((Le,Te)=>Te===A?te.trim():Le);ee==="log"?(_.value=be,await bi(be)):ee==="expense"?(E.value=be,await Ts("expense",be)):(C.value=be,await Ts("income",be)),Ve("分类已更新(历史记录自动跟随显示)")}async function ue(ee,A){const X=ee==="log"?_.value:ee==="expense"?E.value:C.value;if(X.length<=1){Ve("至少保留一个分类");return}if(!window.confirm("删除分类「"+X[A]+"」?历史记录不受影响。"))return;const te=X.filter((Ce,be)=>be!==A);ee==="log"?(_.value=te,await bi(te)):ee==="expense"?(E.value=te,await Ts("expense",te)):(C.value=te,await Ts("income",te)),Ve("分类已删除")}const ce=O(null),U=O(null),T=O(""),q=O(((z=Hr())==null?void 0:z.username)||""),Z=O(""),G=O(""),re=O(""),I=O(""),S=O(!1),j="0.6.0",ne=O(""),Me=O(""),Ee=O(""),he=O(""),Ae=O(!1),Ue=O("");async function de(){var ee;ne.value=((ee=wn())==null?void 0:ee.username)||"",Ue.value=await Fm(),he.value=Zs.value}gt(Zs,ee=>{he.value=ee});async function ke(){Ee.value="";try{await gd(),Ve("云端绑定已重建")}catch(ee){Ee.value=ee instanceof Error?ee.message:"绑定失败"}}async function Se(){if(!Ae.value){Ee.value="",he.value=Zs.value,Ae.value=!0;try{const ee=await Bi();Ue.value=ee.at,Me.value="推送 "+ee.pushed+" 条 · 拉取 "+ee.pulled+" 条 · 删除 "+ee.removed+" 条",he.value="",Ve("同步完成")}catch(ee){Ee.value=ee instanceof Error?ee.message:"同步失败"}Ae.value=!1}}async function De(){if(I.value="",G.value!==re.value){I.value="两次输入的新密码不一致";return}try{await Im(Z.value,G.value),Z.value="",G.value="",re.value="",Ve("登录密码已修改")}catch(ee){I.value=ee instanceof Error?ee.message:"修改失败"}}async function $e(){await jm(),window.location.reload()}async function fe(){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 M()}async function Ie(){await It("ai_base_url",c.value.trim()),await It("ai_api_key",f.value.trim()),await It("ai_model",v.value.trim()),Ve("AI 配置已保存")}async function ct(){const ee=ot(),A=await Promise.all([Qr("2000-01-01",ee),rr(!0)]),X=A[0],te=A[1],Ce=new Map(te.map(Te=>[Te.id,Te.name])),be=[["日期","分类","项目","内容","耗时(分钟)","成果","待跟进","收获","备注"]];for(const Te of X)be.push([Te.date,Ur(Te.category),Te.project_id&&Ce.get(Te.project_id)||"",Te.content,Te.minutes==null?"":Te.minutes,Te.is_milestone?"是":"",Te.needs_followup?"是":"",Te.takeaway||"",Te.remark||""]);const Le=await Uu("工作记录_"+ee.replace(/-/g,"")+".csv",be);Ve(Le?"CSV 已导出到:"+Le:"CSV 已导出到系统下载目录")}async function bt(){const ee=ot(),A=await Promise.all([ps(),Xr("2000-01-01",ee)]),X=A[0],te=A[1],Ce=["周日","周一","周二","周三","周四","周五","周六"],be=[["日期","星期","状态","上班时间","下班时间","地点","类型","说明"]];for(const Te of te){const Qe=cr(Te,Te.date,X,Te.date===ee);be.push([Te.date,Ce[Rs(Te.date).getDay()],Qe.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 Le=await Uu("考勤记录_"+ee.replace(/-/g,"")+".csv",be);Ve(Le?"CSV 已导出到:"+Le:"CSV 已导出到系统下载目录")}vn(fe);async function wt(){await It("work_start",t.value.work_start),await It("work_end",t.value.work_end),await It("grace_minutes",String(t.value.grace_minutes)),await It("lunch_minutes",String(t.value.lunch_minutes)),await It("remind_weekly",t.value.remind_weekly),Ve("打卡规则已保存")}async function Vt(){await Cd(i.value.split(`
|
||
`)),Ve("常用地点已保存")}async function pt(){const ee=r.value.trim();if(ee){try{await th(ee),o.value="",r.value=""}catch{o.value="项目名已存在"}await fe()}}function Fe(ee){b.value=ee.id,y.value=ee.name}async function g(ee){const A=y.value.trim();if(A)try{await nh(ee.id,A),o.value=""}catch{o.value="项目名已存在"}b.value=null,await fe()}async function m(ee){await sh(ee.id,ee.archived!==1),await fe()}async function x(){try{const ee=await Nh(),A=await Sa("实习日志备份_"+ot().replace(/-/g,"")+".json",ee);Ve(A?"备份已导出到:"+A:"备份已导出到系统下载目录")}catch(ee){Ve("导出失败:"+(ee instanceof Error?ee.message:String(ee)))}}function D(ee){const A=ee.target,X=A.files&&A.files[0];if(T.value="",!X)return;const te=X.name;X.text().then(Ce=>{U.value={name:te,text:Ce}}),A.value=""}async function ae(){if(U.value)try{await Vh(U.value.text),U.value=null,T.value="",await fe(),Ve("数据导入完成")}catch(ee){U.value=null,T.value=ee instanceof Error?ee.message:"导入失败"}}return(ee,A)=>($(),P("div",D0,[l("div",L0,[A[25]||(A[25]=l("div",{class:"section-title"},"账号与隐私",-1)),l("div",K0,"v"+W(on(j))+" · 当前账号 "+W(q.value)+" · 登录密码仅存 PBKDF2 哈希",1),l("div",R0,[l("div",F0,[A[22]||(A[22]=l("label",null,"旧登录密码",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":A[0]||(A[0]=X=>Z.value=X)},null,512),[[Re,Z.value]])]),l("div",N0,[A[23]||(A[23]=l("label",null,"新登录密码(至少 6 位)",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":A[1]||(A[1]=X=>G.value=X)},null,512),[[Re,G.value]])]),l("div",V0,[A[24]||(A[24]=l("label",null,"确认新登录密码",-1)),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":A[2]||(A[2]=X=>re.value=X)},null,512),[[Re,re.value]])])]),I.value?($(),P("div",B0,W(I.value),1)):ye("",!0),l("div",U0,[l("button",{class:"btn btn-primary btn-sm",onClick:De},"修改登录密码"),l("button",{class:"btn btn-sm btn-danger",onClick:A[3]||(A[3]=X=>S.value=!0)},"删除此用户及全部数据")])]),l("div",q0,[A[32]||(A[32]=l("div",{class:"section-title"},"打卡规则",-1)),l("div",H0,[l("div",z0,[A[26]||(A[26]=l("label",null,"上班时间",-1)),Oe(l("input",{type:"time",class:"input","onUpdate:modelValue":A[4]||(A[4]=X=>t.value.work_start=X)},null,512),[[Re,t.value.work_start]])]),l("div",W0,[A[27]||(A[27]=l("label",null,"下班时间",-1)),Oe(l("input",{type:"time",class:"input","onUpdate:modelValue":A[5]||(A[5]=X=>t.value.work_end=X)},null,512),[[Re,t.value.work_end]])]),l("div",G0,[A[28]||(A[28]=l("label",null,"迟到宽限(分钟)",-1)),Oe(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":A[6]||(A[6]=X=>t.value.grace_minutes=X)},null,512),[[Re,t.value.grace_minutes,void 0,{number:!0}]])]),l("div",Y0,[A[29]||(A[29]=l("label",null,"午休扣除(分钟)",-1)),Oe(l("input",{type:"number",class:"input",min:"0","onUpdate:modelValue":A[7]||(A[7]=X=>t.value.lunch_minutes=X)},null,512),[[Re,t.value.lunch_minutes,void 0,{number:!0}]])]),l("div",J0,[A[31]||(A[31]=l("label",null,"周记提醒",-1)),Oe(l("select",{class:"select","onUpdate:modelValue":A[8]||(A[8]=X=>t.value.remind_weekly=X)},[...A[30]||(A[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:wt},"保存规则")])]),l("div",X0,[A[33]||(A[33]=l("div",{class:"section-title"},"项目管理",-1)),l("div",Q0,[Oe(l("input",{class:"input","onUpdate:modelValue":A[9]||(A[9]=X=>r.value=X),placeholder:"新项目名称",onKeydown:Mt(pt,["enter"])},null,544),[[Re,r.value]]),l("button",{class:"btn btn-sm",onClick:pt},"添加")]),o.value?($(),P("div",Z0,W(o.value),1)):ye("",!0),($(!0),P(je,null,et(n.value,X=>($(),P("div",{key:X.id,class:"proj-row"},[b.value===X.id?($(),P(je,{key:0},[Oe(l("input",{class:"input","onUpdate:modelValue":A[10]||(A[10]=te=>y.value=te),onKeydown:Mt(te=>g(X),["enter"])},null,40,ek),[[Re,y.value]]),l("button",{class:"btn btn-sm",onClick:te=>g(X)},"保存",8,tk),l("button",{class:"btn btn-sm",onClick:A[11]||(A[11]=te=>b.value=null)},"取消")],64)):($(),P(je,{key:1},[l("span",{class:Xe(["proj-name",{archived:X.archived===1}])},W(X.name),3),l("button",{class:"icon-btn",title:"重命名",onClick:te=>Fe(X)},[we(qe,{name:"edit",size:14})],8,nk),l("button",{class:"btn btn-sm",onClick:te=>m(X)},W(X.archived===1?"恢复":"归档"),9,sk)],64))]))),128)),n.value.length?ye("",!0):($(),P("div",rk,"暂无项目,先添加一个"))]),l("div",ok,[A[35]||(A[35]=l("div",{class:"section-title"},"常用地点",-1)),Oe(l("textarea",{class:"textarea","onUpdate:modelValue":A[12]||(A[12]=X=>i.value=X),placeholder:"每行一个地点,如:公司、客户现场、出差、居家办公"},null,512),[[Re,i.value]]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:Vt},"保存地点"),A[34]||(A[34]=l("span",{class:"muted loc-note"},"打卡时可直接输入新地点,保存后自动加入列表",-1))])]),l("div",ak,[A[36]||(A[36]=l("div",{class:"section-title"},"多端数据同步",-1)),l("div",ik,"云端账号:"+W(ne.value||"未绑定")+" · 数据存于服务器,其他端变更秒级自动刷新",1),l("div",lk,[l("button",{class:"btn btn-primary btn-sm",disabled:Ae.value,onClick:Se},W(Ae.value?"同步中":"立即同步"),9,uk),l("button",{class:"btn btn-sm",onClick:ke},"重新校验连接")]),Me.value?($(),P("div",ck,"上次同步:"+W(Ue.value||"--")+" · "+W(Me.value),1)):ye("",!0),Ee.value?($(),P("div",dk,W(Ee.value),1)):ye("",!0),he.value?($(),P("div",fk,"最近自动同步失败:"+W(he.value)+"(可点「立即同步」重试)",1)):ye("",!0)]),l("div",pk,[A[41]||(A[41]=l("div",{class:"section-title"},"AI 润色配置(可选)",-1)),l("div",vk,[l("div",mk,[A[37]||(A[37]=l("label",null,"接口地址(OpenAI 兼容,到 /v1 为止)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":A[13]||(A[13]=X=>c.value=X),placeholder:"https://api.example.com/v1"},null,512),[[Re,c.value]])]),l("div",hk,[A[38]||(A[38]=l("label",null,"API Key",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":A[14]||(A[14]=X=>f.value=X),placeholder:"sk-..."},null,512),[[Re,f.value]])]),l("div",yk,[A[39]||(A[39]=l("label",null,"模型名称",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":A[15]||(A[15]=X=>v.value=X),placeholder:"如:deepseek-chat"},null,512),[[Re,v.value]])])]),l("div",{class:"rule-save"},[l("button",{class:"btn btn-primary btn-sm",onClick:Ie},"保存 AI 配置"),A[40]||(A[40]=l("span",{class:"muted loc-note"},"配置仅保存在本机;总结页「AI 润色」需此处先配置",-1))])]),l("div",gk,[A[45]||(A[45]=l("div",{class:"section-title"},"工作分类",-1)),l("div",bk,[l("div",wk,[A[42]||(A[42]=l("span",{class:"muted"},"工作记录分类",-1)),l("button",{class:"btn btn-xs",onClick:A[16]||(A[16]=X=>J("log"))},"添加")]),l("div",_k,[($(!0),P(je,null,et(_.value,(X,te)=>($(),P("span",{key:X+te,class:"cat-chip"},[mt(W(X)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Ce=>oe("log",te,X)},"改",8,kk),l("button",{class:"chip-btn",title:"删除",onClick:Ce=>ue("log",te)},"删",8,xk)]))),128))])]),l("div",Ck,[l("div",$k,[A[43]||(A[43]=l("span",{class:"muted"},"记账支出分类",-1)),l("button",{class:"btn btn-xs",onClick:A[17]||(A[17]=X=>J("expense"))},"添加")]),l("div",Sk,[($(!0),P(je,null,et(E.value,(X,te)=>($(),P("span",{key:X+te,class:"cat-chip"},[mt(W(X)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Ce=>oe("expense",te,X)},"改",8,Ek),l("button",{class:"chip-btn",title:"删除",onClick:Ce=>ue("expense",te)},"删",8,Tk)]))),128))])]),l("div",Ak,[l("div",Pk,[A[44]||(A[44]=l("span",{class:"muted"},"记账收入分类",-1)),l("button",{class:"btn btn-xs",onClick:A[18]||(A[18]=X=>J("income"))},"添加")]),l("div",Ok,[($(!0),P(je,null,et(C.value,(X,te)=>($(),P("span",{key:X+te,class:"cat-chip"},[mt(W(X)+" ",1),l("button",{class:"chip-btn",title:"修改",onClick:Ce=>oe("income",te,X)},"改",8,Mk),l("button",{class:"chip-btn",title:"删除",onClick:Ce=>ue("income",te)},"删",8,Ik)]))),128))])])]),l("div",jk,[A[46]||(A[46]=l("div",{class:"section-title"},"数据备份",-1)),l("div",Dk,[l("button",{class:"btn btn-sm",onClick:x},"导出 JSON 备份"),l("button",{class:"btn btn-sm",onClick:A[19]||(A[19]=X=>{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:bt},"导出考勤 CSV"),l("input",{ref_key:"fileInput",ref:ce,type:"file",accept:"application/json,.json",style:{display:"none"},onChange:D},null,544)]),T.value?($(),P("div",Lk,W(T.value),1)):ye("",!0),A[47]||(A[47]=l("div",{class:"muted backup-note"},"数据保存在云端服务器;导出的 JSON 备份用于跨设备迁移或灾后恢复。",-1))]),we(Dn,{open:!!U.value,title:"导入确认",message:U.value?"将从文件「"+U.value.name+"」导入备份。现有全部数据将被覆盖,且不可恢复,请先确认已导出当前备份。":"","confirm-text":"覆盖导入",danger:"",onCancel:A[20]||(A[20]=X=>U.value=null),onConfirm:ae},null,8,["open","message"]),we(Dn,{open:S.value,title:"删除用户确认",message:"将永久删除云端账号「"+q.value+"」及其服务器上的全部数据:工作日志、考勤、备忘录、账号密码库都将被清除,任何设备都无法再取回,且不可恢复。请确认。","confirm-text":"永久删除",danger:"",onCancel:A[21]||(A[21]=X=>S.value=!1),onConfirm:$e},null,8,["open","message"])]))}}),Rk=Nt(Kk,[["__scopeId","data-v-aad752b5"]]),Fk={class:"admin-page"},Nk={class:"card table-card"},Vk={class:"toolbar"},Bk={key:0,class:"form-error tb-error"},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:1,class:"muted load-line"},nx={class:"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",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=Lt({__name:"UserAdminView",setup(e){const t=O([]),n=O(""),r=O(!0),o=O("");async function i(I,S){const j=await Fs();let ne=$a();if(!ne){const Ee=wn(),he=await fetch(j+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ee==null?void 0:Ee.username,password:Ee==null?void 0:Ee.password})});if(he.ok){const Ae=await he.json();ne=String(Ae.token||""),qr(ne)}}const Me=await fetch(j+I,{method:S?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:S?JSON.stringify(S):void 0});if(Me.status===401&&wn()){const Ee=wn(),he=await fetch(j+"/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:Ee==null?void 0:Ee.username,password:Ee==null?void 0:Ee.password})});if(he.ok){const Ae=await he.json();ne=String(Ae.token||""),qr(ne);const Ue=await fetch(j+I,{method:S?"POST":"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ne},body:S?JSON.stringify(S):void 0});return{ok:Ue.ok,status:Ue.status,data:await Ue.json().catch(()=>({}))}}}return{ok:Me.ok,status:Me.status,data:await Me.json().catch(()=>({}))}}async function c(){r.value=!0,o.value="";const I=await i("/api/admin/users");if(!I.ok){r.value=!1,o.value=I.data&&I.data.error||"加载失败 "+I.status;return}t.value=I.data.users||[],n.value=I.data.me||"",r.value=!1}function f(I){return I<=0?"--":I<1024?I+" B":I<1024*1024?(I/1024).toFixed(1)+" KB":(I/1024/1024).toFixed(2)+" MB"}function v(I){return(I||"").slice(0,10)}const b=O(!1),y=O(""),_=O(""),E=O(""),C=O(""),M=O(!1);function J(){b.value=!0,C.value="",y.value="",_.value="",E.value=""}async function oe(){const I=y.value.trim();if(_.value!==E.value){C.value="两次输入的密码不一致";return}if(_.value.length<6){C.value="密码至少 6 位";return}M.value=!0;const S=await i("/api/admin/users/create",{username:I,password:_.value});if(M.value=!1,!S.ok){C.value=S.data&&S.data.error||"创建失败 "+S.status;return}Ve("用户「"+I+"」已创建"),b.value=!1,await c()}const ue=O(null),ce=O(""),U=O(""),T=O(!1);function q(I){ue.value=I,ce.value="",U.value=""}async function Z(){if(!ue.value)return;if(ce.value.length<6){U.value="密码至少 6 位";return}T.value=!0;const I=await i("/api/admin/users/password",{userId:ue.value.id,newPassword:ce.value});if(T.value=!1,!I.ok){U.value=I.data&&I.data.error||"重置失败 "+I.status;return}Ve("已重置「"+ue.value.username+"」的登录密码"),ue.value=null}const G=O(null);async function re(){if(!G.value)return;const I=await i("/api/admin/users/delete",{userId:G.value.id});if(!I.ok){G.value=null,Ve(I.data&&I.data.error||"删除失败");return}Ve("已删除账号「"+G.value.username+"」及其全部云端数据"),G.value=null,await c()}return vn(c),(I,S)=>($(),P("div",Fk,[l("div",Nk,[l("div",Vk,[S[12]||(S[12]=l("div",{class:"head-wrap"},[l("div",{class:"tb-title"},"用户管理"),l("div",{class:"muted tb-sub"},"云端账号统一管理 · 管理员:xionglin")],-1)),l("button",{class:"btn btn-primary btn-sm",onClick:J},[we(qe,{name:"plus",size:14}),S[11]||(S[11]=mt(" 新增用户 ",-1))])]),o.value?($(),P("div",Bk,W(o.value),1)):ye("",!0),l("table",Uk,[S[14]||(S[14]=l("thead",null,[l("tr",null,[l("th",null,"用户名"),l("th",null,"角色"),l("th",null,"创建时间"),l("th",null,"数据量"),l("th",{class:"th-ops"},"操作")])],-1)),l("tbody",null,[($(!0),P(je,null,et(t.value,j=>($(),P("tr",{key:j.id},[l("td",qk,W(j.username),1),l("td",Hk,[j.role==="admin"?($(),P("span",zk,"管理员")):($(),P("span",Wk,"普通用户"))]),l("td",Gk,W(v(j.created_at)),1),l("td",Yk,W(f(j.data_bytes)),1),l("td",Jk,[l("div",Xk,[l("button",{class:"btn btn-xs",onClick:ne=>q(j)},"重置密码",8,Qk),l("button",{class:"btn btn-xs btn-danger",disabled:j.id===n.value,onClick:ne=>G.value=j},"删除",8,Zk)])])]))),128)),!r.value&&!t.value.length?($(),P("tr",ex,[...S[13]||(S[13]=[l("td",{colspan:"5",class:"empty muted"},"加载结果为空",-1)])])):ye("",!0)])]),r.value?($(),P("div",tx,"加载中")):ye("",!0)]),S[20]||(S[20]=l("div",{class:"muted admin-note"},"重置密码立即生效;删除账号将移除其全部云端数据,不可恢复。自己的账号不能删除。",-1)),($(),St(Hn,{to:"body"},[b.value?($(),P("div",{key:0,class:"mask",onClick:S[5]||(S[5]=zt(j=>b.value=!1,["self"]))},[l("div",nx,[l("div",sx,[S[15]||(S[15]=l("span",{class:"dialog-title"},"新增用户",-1)),l("button",{class:"icon-btn",onClick:S[0]||(S[0]=j=>b.value=!1)},[we(qe,{name:"close",size:16})])]),l("div",rx,[l("div",ox,[S[16]||(S[16]=l("label",null,"用户名(2 到 20 个字符)",-1)),Oe(l("input",{class:"input","onUpdate:modelValue":S[1]||(S[1]=j=>y.value=j),placeholder:"如:xiaowang"},null,512),[[Re,y.value]])]),l("div",ax,[S[17]||(S[17]=l("label",null,"初始登录密码(至少 6 位)",-1)),Oe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[2]||(S[2]=j=>_.value=j),placeholder:"转发给使用者,登录后可自行修改"},null,512),[[Re,_.value]])]),l("div",ix,[S[18]||(S[18]=l("label",null,"确认密码",-1)),Oe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[3]||(S[3]=j=>E.value=j),onKeydown:Mt(oe,["enter"])},null,544),[[Re,E.value]])]),C.value?($(),P("div",lx,W(C.value),1)):ye("",!0)]),l("div",ux,[l("button",{class:"btn btn-sm",onClick:S[4]||(S[4]=j=>b.value=!1)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:M.value||!y.value.trim(),onClick:oe},W(M.value?"创建中":"创建"),9,cx)])])])):ye("",!0)])),($(),St(Hn,{to:"body"},[ue.value?($(),P("div",{key:0,class:"mask",onClick:S[9]||(S[9]=zt(j=>ue.value=null,["self"]))},[l("div",dx,[l("div",fx,[l("span",px,"重置「"+W(ue.value.username)+"」的登录密码",1),l("button",{class:"icon-btn",onClick:S[6]||(S[6]=j=>ue.value=null)},[we(qe,{name:"close",size:16})])]),l("div",vx,[l("div",mx,[S[19]||(S[19]=l("label",null,"新登录密码(至少 6 位)",-1)),Oe(l("input",{class:"input",type:"password","onUpdate:modelValue":S[7]||(S[7]=j=>ce.value=j),onKeydown:Mt(Z,["enter"])},null,544),[[Re,ce.value]])]),U.value?($(),P("div",hx,W(U.value),1)):ye("",!0)]),l("div",yx,[l("button",{class:"btn btn-sm",onClick:S[8]||(S[8]=j=>ue.value=null)},"取消"),l("button",{class:"btn btn-primary btn-sm",disabled:T.value,onClick:Z},W(T.value?"提交中":"重置"),9,gx)])])])):ye("",!0)])),we(Dn,{open:!!G.value,title:"删除用户确认",message:G.value?"将永久删除云端账号「"+G.value.username+"」及其服务器上的全部数据,不可恢复。请确认。":"","confirm-text":"永久删除",danger:"",onCancel:S[10]||(S[10]=j=>G.value=null),onConfirm:re},null,8,["open","message"])]))}}),wx=Nt(bx,[["__scopeId","data-v-2d48d2c9"]]),_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=Lt({__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 y(){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(_,E)=>($(),P("div",_x,[l("div",kx,[l("div",xx,[l("div",Cx,[we(qe,{name:"calendar",size:22})]),E[5]||(E[5]=l("div",{class:"login-title"},"实习工作日志",-1)),E[6]||(E[6]=l("div",{class:"muted login-sub"},"打卡 · 记录 · 总结 · 备忘录 · 密码库",-1)),E[7]||(E[7]=l("div",{class:"muted login-sub"},"数据保存在云端服务器,所有设备登录同一账号即可实时同步",-1))]),l("div",$x,[l("button",{class:Xe(["seg-btn",{active:r.value==="login"}]),onClick:E[0]||(E[0]=C=>b("login"))},"登录",2),l("button",{class:Xe(["seg-btn",{active:r.value==="create"}]),onClick:E[1]||(E[1]=C=>b("create"))},"创建用户",2)]),Oe(l("input",{class:"input","onUpdate:modelValue":E[2]||(E[2]=C=>o.value=C),placeholder:"用户名(2 到 20 个字符)",onKeydown:Mt(y,["enter"])},null,544),[[Re,o.value]]),Oe(l("input",{type:"password",class:"input","onUpdate:modelValue":E[3]||(E[3]=C=>i.value=C),placeholder:r.value==="login"?"登录密码":"设置登录密码(至少 6 位)",onKeydown:Mt(y,["enter"])},null,40,Sx),[[Re,i.value]]),r.value==="create"?Oe(($(),P("input",{key:0,type:"password",class:"input","onUpdate:modelValue":E[4]||(E[4]=C=>c.value=C),placeholder:"再次输入密码",onKeydown:Mt(y,["enter"])},null,544)),[[Re,c.value]]):ye("",!0),f.value?($(),P("div",Ex,W(f.value),1)):ye("",!0),l("button",{class:"btn btn-primary login-btn",disabled:v.value,onClick:y},W(r.value==="login"?"登录":"创建并进入"),9,Tx),E[8]||(E[8]=l("div",{class:"muted login-note"}," 登录密码仅服务器保存哈希;本机保存加密的自动登录凭据,登录后无需重复输入 ",-1))])]))}}),Px=Nt(Ax,[["__scopeId","data-v-089817d7"]]),Ox={key:1,class:"app"},Mx={class:"side"},Ix={class:"brand-mark"},jx={class:"side-nav"},Dx={key:0,class:"nav-group"},Lx=["data-tip","onClick"],Kx={class:"nav-label"},Rx={class:"side-foot"},Fx={class:"avatar"},Nx={class:"foot-name"},Vx={class:"main"},Bx={class:"topbar"},Ux={class:"title"},qx={class:"gsearch"},Hx={key:0,class:"gs-panel"},zx={key:0,class:"gs-group muted"},Wx=["onMousedown"],Gx={class:"tag"},Yx={class:"gs-text"},Jx={class:"muted num gs-date"},Xx={key:1,class:"gs-group muted"},Qx=["onMousedown"],Zx={class:"gs-text"},eC={class:"muted gs-sub"},tC={key:1,class:"gs-empty muted"},nC={class:"topbar-actions"},sC=["disabled"],rC={class:"num"},oC={class:"content"},aC={class:"content-inner"},iC={class:"tabbar"},lC=["onClick"],uC={class:"sheet-user num"},cC=["onClick"],dC={class:"sheet-name"},fC={class:"msw"},pC={class:"msw-bar"},vC={class:"msw-results"},mC={key:0,class:"gs-group muted"},hC=["onMousedown"],yC={class:"tag"},gC={class:"gs-text"},bC={class:"muted num gs-date"},wC={key:1,class:"gs-group muted"},_C=["onMousedown"],kC={class:"gs-text"},xC={class:"muted gs-sub"},CC={key:1,class:"gs-empty muted"},$C={class:"toast-wrap"},SC=Lt({__name:"App",setup(e){const t=fy(),n=O(Hr());async function r(g){n.value=g,ia(g.userId),location.hash="#/calendar",q.value="calendar",await Ie(),await Fe(),c();try{await gd(),await tr()}catch{}Ve("欢迎,"+g.username);const m=sessionStorage.getItem("dsh_migrate_toast");m&&(sessionStorage.removeItem("dsh_migrate_toast"),Ve("已迁移原有数据 "+m+" 条"))}async function o(){Ae.value=!1,Ee.value=!1,qm(),i!==null&&(window.clearInterval(i),i=null),await Om(),n.value=null,q.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),y=O({logs:[],memos:[]});let _=null;const E=rt(()=>!!(y.value.logs.length||y.value.memos.length));function C(){_&&window.clearTimeout(_);const g=v.value;_=window.setTimeout(async()=>{const m=g.trim();if(!m){y.value={logs:[],memos:[]};return}const x=await Promise.all([Ih(m,8),jh(m,4)]);y.value={logs:x[0],memos:x[1]}},200)}function M(){v.value="",y.value={logs:[],memos:[]},b.value=!1}function J(g){Ni.value=g.date,Z("calendar"),M()}function oe(g){Vi.value=g.id,Z("memo"),M()}function ue(){window.setTimeout(()=>{b.value=!1},150)}function ce(g){var m;(g.ctrlKey||g.metaKey)&&g.key.toLowerCase()==="k"&&(g.preventDefault(),(m=f.value)==null||m.focus())}const U=[{key:"calendar",name:"日历",icon:"calendar",group:"记录"},{key:"today",name:"详情",icon:"edit",group:"记录"},{key:"plan",name:"计划",icon:"plan",group:"记录"},{key:"ledger",name:"记账",icon:"wallet",group:"工具"},{key:"memo",name:"备忘录",icon:"memo",group:"工具"},{key:"stats",name:"统计",icon:"chart",group:"分析"},{key:"report",name:"总结",icon:"export",group:"分析"},{key:"vault",name:"密码库",icon:"lock",group:"系统"},{key:"settings",name:"设置",icon:"settings",group:"系统"},{key:"admin",name:"用户管理",icon:"shield",group:"系统"}];function T(){var m;const g=(location.hash||"").replace("#/","");return!U.some(x=>x.key===g)||g==="admin"&&(((m=Hr())==null?void 0:m.username)||"")!=="xionglin"?"calendar":g}const q=O(T());window.addEventListener("hashchange",()=>{q.value=T()});function Z(g){location.hash="#/"+g}const G=rt(()=>U.find(g=>g.key===q.value)||U[0]),re=rt(()=>{var g;return(((g=n.value)==null?void 0:g.username)||"")==="xionglin"}),I=rt(()=>re.value?U:U.filter(g=>g.key!=="admin")),S=rt(()=>{const g=U.filter(m=>!ne.includes(m.key));return re.value?g:g.filter(m=>m.key!=="admin")}),j=rt(()=>S.value.some(g=>g.key===q.value));gt([re,q],()=>{q.value==="admin"&&!re.value&&Z("calendar")},{immediate:!0});const ne=["calendar","today","plan","ledger"],Me=U.filter(g=>ne.includes(g.key)),Ee=O(!1);function he(g){Ee.value=!1,Z(g)}const Ae=O(!1),Ue=O(null);function de(){Ae.value=!0,window.setTimeout(()=>{var g;return(g=Ue.value)==null?void 0:g.focus()},60)}function ke(g){J(g),Ae.value=!1}function Se(g){oe(g),Ae.value=!1}const De=O(ot()),$e=O(void 0),fe=O(!1);async function Ie(){if($e.value=await _n(De.value),fe.value=!1,new Date().getHours()<4){const m=await _n(Ft(De.value,-1));fe.value=!!(m&&m.clock_in_at&&!m.clock_out_at)}}const ct=rt(()=>{const g=$e.value;return g&&g.clock_in_at&&!g.clock_out_at?!0:fe.value&&!(g&&g.clock_in_at)}),bt=rt(()=>{const g=$e.value;return!!(g&&g.clock_in_at&&g.clock_out_at)}),wt=rt(()=>{const g=$e.value;return ct.value?"下班打卡":bt.value?"已打卡 "+bn(g==null?void 0:g.clock_in_at)+" - "+bn(g==null?void 0:g.clock_out_at):"上班打卡"});async function Vt(){if(ct.value)try{await oh()}catch{}else await $d(De.value);await Ie(),os()}gt(ur,()=>{n.value&&Ie()});const pt=O(!1);async function Fe(){if((await ps()).remind_weekly==="off"){pt.value=!1;return}const m=new Date().getDay();if(m===5||m===6||m===0){const x=await hl(Qs(De.value));pt.value=!x||!x.highlights&&!x.challenges&&!x.plan_next}else pt.value=!1}return vn(async()=>{window.addEventListener("keydown",ce),n.value&&(ia(n.value.userId),await Ie(),await Fe(),c())}),(g,m)=>{var x,D,ae;return n.value?($(),P("div",Ox,[l("nav",Mx,[l("div",{class:"brand",onClick:m[0]||(m[0]=z=>Z("calendar"))},[l("span",Ix,[we(qe,{name:"calendar",size:15})]),m[12]||(m[12]=l("span",{class:"brand-name"},"实习工作日志",-1))]),l("div",jx,[($(!0),P(je,null,et(I.value,(z,ee)=>($(),P(je,{key:z.key},[ee===0||z.group!==I.value[ee-1].group?($(),P("div",Dx,W(z.group),1)):ye("",!0),l("button",{class:Xe(["nav-btn",{active:q.value===z.key}]),"data-tip":z.name,onClick:A=>Z(z.key)},[we(qe,{name:z.icon,size:17},null,8,["name"]),l("span",Kx,W(z.name),1)],10,Lx)],64))),128))]),l("div",Rx,[l("span",Fx,W((((x=n.value)==null?void 0:x.username)||"用户").slice(0,1).toUpperCase()),1),l("span",Nx,W((D=n.value)==null?void 0:D.username),1),l("button",{class:"icon-btn",title:"退出登录",onClick:o},[we(qe,{name:"export",size:15})])])]),l("div",Vx,[l("header",Bx,[l("span",Ux,W(G.value.name),1),l("button",{class:"mob-search-btn",title:"搜索",onClick:de},[we(qe,{name:"search",size:16})]),l("div",qx,[we(qe,{name:"search",size:14,class:"gs-icon"}),Oe(l("input",{ref_key:"gsInput",ref:f,class:"input gs-input","onUpdate:modelValue":m[1]||(m[1]=z=>v.value=z),placeholder:"搜索工作记录与备忘录(Ctrl+K)",onInput:C,onFocus:m[2]||(m[2]=z=>b.value=!0),onBlur:ue,onKeydown:Mt(M,["esc"])},null,544),[[Re,v.value]]),b.value&&v.value.trim()?($(),P("div",Hx,[E.value?($(),P(je,{key:0},[y.value.logs.length?($(),P("div",zx,"工作记录")):ye("",!0),($(!0),P(je,null,et(y.value.logs,z=>($(),P("div",{key:"l"+z.id,class:"gs-item",onMousedown:zt(ee=>J(z),["prevent"])},[l("span",Gx,W(on(Ur)(z.category)),1),l("span",Yx,W(z.content),1),l("span",Jx,W(z.date),1)],40,Wx))),128)),y.value.memos.length?($(),P("div",Xx,"备忘录")):ye("",!0),($(!0),P(je,null,et(y.value.memos,z=>($(),P("div",{key:"m"+z.id,class:"gs-item",onMousedown:zt(ee=>oe(z),["prevent"])},[l("span",Zx,W(z.title||"无标题"),1),l("span",eC,W(z.content),1)],40,Qx))),128))],64)):($(),P("div",tC,"无匹配结果"))])):ye("",!0)]),m[14]||(m[14]=l("span",{class:"flex1"},null,-1)),l("div",nC,[pt.value?($(),P("button",{key:0,class:"week-tip",onClick:m[3]||(m[3]=z=>Z("report"))},[...m[13]||(m[13]=[l("span",{class:"dot",style:{background:"var(--warn)"}},null,-1),mt(" 填写本周周记 ",-1)])])):ye("",!0),l("button",{class:"btn btn-primary",disabled:bt.value,onClick:Vt},[we(qe,{name:bt.value?"check-circle":"clock",size:14},null,8,["name"]),l("span",rC,W(wt.value),1)],8,sC)])]),l("main",oC,[l("div",aC,[q.value==="calendar"?($(),St(Cg,{key:0})):q.value==="today"?($(),St(Gg,{key:1})):q.value==="plan"?($(),St(tw,{key:2})):q.value==="stats"?($(),St(Mw,{key:3})):q.value==="report"?($(),St(y_,{key:4})):q.value==="ledger"?($(),St(b1,{key:5})):q.value==="memo"?($(),St(K1,{key:6})):q.value==="vault"?($(),St(I0,{key:7})):q.value==="admin"?($(),St(wx,{key:8})):($(),St(Rk,{key:9}))])]),l("nav",iC,[($(!0),P(je,null,et(on(Me),z=>($(),P("button",{key:z.key,class:Xe(["tab-btn",{active:q.value===z.key}]),onClick:ee=>Z(z.key)},[we(qe,{name:z.icon,size:20},null,8,["name"]),l("span",null,W(z.name),1)],10,lC))),128)),l("button",{class:Xe(["tab-btn",{active:j.value}]),onClick:m[4]||(m[4]=z=>Ee.value=!0)},[we(qe,{name:"more",size:20}),m[15]||(m[15]=l("span",null,"更多",-1))],2)]),Ee.value?($(),P("div",{key:0,class:"sheet-mask",onClick:m[7]||(m[7]=z=>Ee.value=!1)},[l("div",{class:"more-sheet",onClick:m[6]||(m[6]=zt(()=>{},["stop"]))},[l("div",uC,W((ae=n.value)==null?void 0:ae.username),1),($(!0),P(je,null,et(S.value,z=>($(),P("button",{key:z.key,class:"sheet-row",onClick:ee=>he(z.key)},[we(qe,{name:z.icon,size:18},null,8,["name"]),l("span",dC,W(z.name),1),we(qe,{name:"chevron-right",size:14,class:"sheet-go"})],8,cC))),128)),m[17]||(m[17]=l("div",{class:"sheet-divider"},null,-1)),l("button",{class:"sheet-row sheet-danger",onClick:m[5]||(m[5]=z=>{Ee.value=!1,o()})},[we(qe,{name:"close",size:18}),m[16]||(m[16]=l("span",{class:"sheet-name"},"退出登录",-1))])])])):ye("",!0),Ae.value?($(),P("div",{key:1,class:"msw-mask",onClick:m[11]||(m[11]=zt(z=>Ae.value=!1,["self"]))},[l("div",fC,[l("div",pC,[we(qe,{name:"search",size:16,class:"msw-icon"}),Oe(l("input",{ref_key:"msInput",ref:Ue,class:"msw-input","onUpdate:modelValue":m[8]||(m[8]=z=>v.value=z),placeholder:"搜索工作记录与备忘录",onInput:C,onKeydown:m[9]||(m[9]=Mt(z=>Ae.value=!1,["esc"]))},null,544),[[Re,v.value]]),l("button",{class:"icon-btn",onClick:m[10]||(m[10]=z=>{M(),Ae.value=!1})},[we(qe,{name:"close",size:16})])]),l("div",vC,[E.value?($(),P(je,{key:0},[y.value.logs.length?($(),P("div",mC,"工作记录")):ye("",!0),($(!0),P(je,null,et(y.value.logs,z=>($(),P("div",{key:"l"+z.id,class:"msw-item",onMousedown:zt(ee=>ke(z),["prevent"])},[l("span",yC,W(on(Ur)(z.category)),1),l("span",gC,W(z.content),1),l("span",bC,W(z.date),1)],40,hC))),128)),y.value.memos.length?($(),P("div",wC,"备忘录")):ye("",!0),($(!0),P(je,null,et(y.value.memos,z=>($(),P("div",{key:"m"+z.id,class:"msw-item",onMousedown:zt(ee=>Se(z),["prevent"])},[l("span",kC,W(z.title||"无标题"),1),l("span",xC,W(z.content),1)],40,_C))),128))],64)):v.value.trim()?($(),P("div",CC,"无匹配结果")):ye("",!0)])])])):ye("",!0)]),l("div",$C,[we(Tv,{name:"toast"},{default:ms(()=>[($(!0),P(je,null,et(on(t),z=>($(),P("div",{key:z.id,class:"toast"},W(z.text),1))),128))]),_:1})])])):($(),St(Px,{key:0,onLogin:r}))}}}),EC=Nt(SC,[["__scopeId","data-v-834d188d"]]);function Bo(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 TC(){const e=await Pm();e&&ia(e.userId);const t=Uv(EC);t.config.errorHandler=(n,r,o)=>{const i=n;Bo("应用内部错误(点击空白处关闭,请将以下内容发送给开发者)",i&&(i.stack||i.message)||String(n)+`
|
||
触发位置: `+o)},window.addEventListener("unhandledrejection",n=>{const r=n.reason;Bo("未处理的异步错误(点击空白处关闭)",r&&(r.stack||r.message)||String(n.reason))}),window.addEventListener("error",n=>{n.message&&n.message!=="ResizeObserver loop limit exceeded"&&Bo("运行错误(点击空白处关闭)",n.message)}),t.mount("#app"),"serviceWorker"in navigator&&location.protocol.startsWith("http")&&window.addEventListener("load",()=>{navigator.serviceWorker.register("sw.js").catch(()=>{})})}TC().catch(e=>{Bo("无法启动:连接同步服务器失败",e&&(e.stack||e.message)||String(e))});export{jd as W,Od as _,Lg as b,Id as r};
|