diff --git a/API Server/internal/api/dist/assets/index-B8Dqe_UO.js b/API Server/internal/api/dist/assets/index-B8Dqe_UO.js new file mode 100644 index 0000000..2f24bfd --- /dev/null +++ b/API Server/internal/api/dist/assets/index-B8Dqe_UO.js @@ -0,0 +1,17 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).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 s(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();/** +* @vue/shared v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},jt=[],tt=()=>{},Fo=()=>!1,zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gn=e=>e.startsWith("onUpdate:"),Ae=Object.assign,Os=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Qi=Object.prototype.hasOwnProperty,Q=(e,t)=>Qi.call(e,t),j=Array.isArray,$t=e=>mn(e)==="[object Map]",Gt=e=>mn(e)==="[object Set]",eo=e=>mn(e)==="[object Date]",H=e=>typeof e=="function",ce=e=>typeof e=="string",nt=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",No=e=>(te(e)||H(e))&&H(e.then)&&H(e.catch),Lo=Object.prototype.toString,mn=e=>Lo.call(e),el=e=>mn(e).slice(8,-1),Do=e=>mn(e)==="[object Object]",Us=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nn=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},tl=/-\w/g,He=Wn(e=>e.replace(tl,t=>t.slice(1).toUpperCase())),nl=/\B([A-Z])/g,yt=Wn(e=>e.replace(nl,"-$1").toLowerCase()),jo=Wn(e=>e.charAt(0).toUpperCase()+e.slice(1)),is=Wn(e=>e?`on${jo(e)}`:""),et=(e,t)=>!Object.is(e,t),Rn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Jn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let to;const qn=()=>to||(to=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ms(e){if(j(e)){const t={};for(let n=0;n{if(n){const s=n.split(ol);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ie(e){let t="";if(ce(e))t=e;else if(j(e))for(let n=0;ngt(n,t))}const Vo=e=>!!(e&&e.__v_isRef===!0),O=e=>ce(e)?e:e==null?"":j(e)||te(e)&&(e.toString===Lo||!H(e.toString))?Vo(e)?O(e.value):JSON.stringify(e,Ho,2):String(e),Ho=(e,t)=>Vo(t)?Ho(e,t.value):$t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],i)=>(n[ls(s,i)+" =>"]=o,n),{})}:Gt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ls(n))}:nt(t)?ls(t):te(t)&&!j(t)&&!Do(t)?String(t):t,ls=(e,t="")=>{var n;return nt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ge;class ul{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&&ge&&(ge.active?(this.parent=ge,this.index=(ge.scopes||(ge.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)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(ge===this)ge=this.prevScope;else{let t=ge;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,s;for(n=0,s=this.effects.length;n0)return;if(on){let t=on;for(on=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;sn;){let t=sn;for(sn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Wo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Jo(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ns(s),fl(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function gs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(qo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function qo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===un)||(e.globalVersion=un,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!gs(e))))return;e.flags|=2;const t=e.dep,n=re,s=Ke;re=e,Ke=!0;try{Wo(e);const o=e.fn(e._value);(t.version===0||et(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{re=n,Ke=s,Jo(e),e.flags&=-3}}function Ns(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ns(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function fl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ke=!0;const Yo=[];function st(){Yo.push(Ke),Ke=!1}function ot(){const e=Yo.pop();Ke=e===void 0?!0:e}function no(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=re;re=void 0;try{t()}finally{re=n}}}let un=0;class pl{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 Ls{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(!re||!Ke||re===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==re)n=this.activeLink=new pl(re,this),re.deps?(n.prevDep=re.depsTail,re.depsTail.nextDep=n,re.depsTail=n):re.deps=re.depsTail=n,Zo(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=re.depsTail,n.nextDep=void 0,re.depsTail.nextDep=n,re.depsTail=n,re.deps===n&&(re.deps=s)}return n}trigger(t){this.version++,un++,this.notify(t)}notify(t){Is();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Fs()}}}function Zo(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Zo(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vs=new WeakMap,kt=Symbol(""),xs=Symbol(""),dn=Symbol("");function we(e,t,n){if(Ke&&re){let s=vs.get(e);s||vs.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Ls),o.map=s,o.key=n),o.track()}}function ut(e,t,n,s,o,i){const l=vs.get(e);if(!l){un++;return}const r=c=>{c&&c.trigger()};if(Is(),t==="clear")l.forEach(r);else{const c=j(e),m=c&&Us(n);if(c&&n==="length"){const h=Number(s);l.forEach((x,U)=>{(U==="length"||U===dn||!nt(U)&&U>=h)&&r(x)})}else switch((n!==void 0||l.has(void 0))&&r(l.get(n)),m&&r(l.get(dn)),t){case"add":c?m&&r(l.get("length")):(r(l.get(kt)),$t(e)&&r(l.get(xs)));break;case"delete":c||(r(l.get(kt)),$t(e)&&r(l.get(xs)));break;case"set":$t(e)&&r(l.get(kt));break}}Fs()}function Nt(e){const t=X(e);return t===e?t:(we(t,"iterate",dn),Be(e)?t:t.map(ze))}function Yn(e){return we(e=X(e),"iterate",dn),e}function Xe(e,t){return pt(e)?Ht(Tt(e)?ze(t):t):ze(t)}const hl={__proto__:null,[Symbol.iterator](){return as(this,Symbol.iterator,e=>Xe(this,e))},concat(...e){return Nt(this).concat(...e.map(t=>j(t)?Nt(t):t))},entries(){return as(this,"entries",e=>(e[1]=Xe(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,n=>n.map(s=>Xe(this,s)),arguments)},find(e,t){return rt(this,"find",e,t,n=>Xe(this,n),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,n=>Xe(this,n),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return cs(this,"includes",e)},indexOf(...e){return cs(this,"indexOf",e)},join(e){return Nt(this).join(e)},lastIndexOf(...e){return cs(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return qt(this,"pop")},push(...e){return qt(this,"push",e)},reduce(e,...t){return so(this,"reduce",e,t)},reduceRight(e,...t){return so(this,"reduceRight",e,t)},shift(){return qt(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return qt(this,"splice",e)},toReversed(){return Nt(this).toReversed()},toSorted(e){return Nt(this).toSorted(e)},toSpliced(...e){return Nt(this).toSpliced(...e)},unshift(...e){return qt(this,"unshift",e)},values(){return as(this,"values",e=>Xe(this,e))}};function as(e,t,n){const s=Yn(e),o=s[t]();return s!==e&&!Be(e)&&(o._next=o.next,o.next=()=>{const i=o._next();return i.done||(i.value=n(i.value)),i}),o}const bl=Array.prototype;function rt(e,t,n,s,o,i){const l=Yn(e),r=l!==e&&!Be(e),c=l[t];if(c!==bl[t]){const x=c.apply(e,i);return r?ze(x):x}let m=n;l!==e&&(r?m=function(x,U){return n.call(this,Xe(e,x),U,e)}:n.length>2&&(m=function(x,U){return n.call(this,x,U,e)}));const h=c.call(l,m,s);return r&&o?o(h):h}function so(e,t,n,s){const o=Yn(e),i=o!==e&&!Be(e);let l=n,r=!1;o!==e&&(i?(r=s.length===0,l=function(m,h,x){return r&&(r=!1,m=Xe(e,m)),n.call(this,m,Xe(e,h),x,e)}):n.length>3&&(l=function(m,h,x){return n.call(this,m,h,x,e)}));const c=o[t](l,...s);return r?Xe(e,c):c}function cs(e,t,n){const s=X(e);we(s,"iterate",dn);const o=s[t](...n);return(o===-1||o===!1)&&Bs(n[0])?(n[0]=X(n[0]),s[t](...n)):o}function qt(e,t,n=[]){st(),Is();const s=X(e)[t].apply(e,n);return Fs(),ot(),s}const ml=Ps("__proto__,__v_isRef,__isVue"),Xo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(nt));function gl(e){nt(e)||(e=String(e));const t=X(this);return we(t,"has",e),t.hasOwnProperty(e)}class Qo{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){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 s===(o?i?kl:si:i?ni:ti).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=j(t);if(!o){let c;if(l&&(c=hl[n]))return c;if(n==="hasOwnProperty")return gl}const r=Reflect.get(t,n,Se(t)?t:s);if((nt(n)?Xo.has(n):ml(n))||(o||we(t,"get",n),i))return r;if(Se(r)){const c=l&&Us(n)?r:r.value;return o&&te(c)?_s(c):c}return te(r)?o?_s(r):js(r):r}}class ei extends Qo{constructor(t=!1){super(!1,t)}set(t,n,s,o){let i=t[n];const l=j(t)&&Us(n);if(!this._isShallow){const m=pt(i);if(!Be(s)&&!pt(s)&&(i=X(i),s=X(s)),!l&&Se(i)&&!Se(s))return m||(i.value=s),!0}const r=l?Number(n)e,Tn=e=>Reflect.getPrototypeOf(e);function wl(e,t,n){return function(...s){const o=this.__v_raw,i=X(o),l=$t(i),r=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,m=o[e](...s),h=n?ys:t?Ht:ze;return!t&&we(i,"iterate",c?xs:kt),Ae(Object.create(m),{next(){const{value:x,done:U}=m.next();return U?{value:x,done:U}:{value:r?[h(x[0]),h(x[1])]:h(x),done:U}}})}}function Pn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Sl(e,t){const n={get(o){const i=this.__v_raw,l=X(i),r=X(o);e||(et(o,r)&&we(l,"get",o),we(l,"get",r));const{has:c}=Tn(l),m=t?ys:e?Ht:ze;if(c.call(l,o))return m(i.get(o));if(c.call(l,r))return m(i.get(r));i!==l&&i.get(o)},get size(){const o=this.__v_raw;return!e&&we(X(o),"iterate",kt),o.size},has(o){const i=this.__v_raw,l=X(i),r=X(o);return e||(et(o,r)&&we(l,"has",o),we(l,"has",r)),o===r?i.has(o):i.has(o)||i.has(r)},forEach(o,i){const l=this,r=l.__v_raw,c=X(r),m=t?ys:e?Ht:ze;return!e&&we(c,"iterate",kt),r.forEach((h,x)=>o.call(i,m(h),m(x),l))}};return Ae(n,e?{add:Pn("add"),set:Pn("set"),delete:Pn("delete"),clear:Pn("clear")}:{add(o){const i=X(this),l=Tn(i),r=X(o),c=!t&&!Be(o)&&!pt(o)?r:o;return l.has.call(i,c)||et(o,c)&&l.has.call(i,o)||et(r,c)&&l.has.call(i,r)||(i.add(c),ut(i,"add",c,c)),this},set(o,i){!t&&!Be(i)&&!pt(i)&&(i=X(i));const l=X(this),{has:r,get:c}=Tn(l);let m=r.call(l,o);m||(o=X(o),m=r.call(l,o));const h=c.call(l,o);return l.set(o,i),m?et(i,h)&&ut(l,"set",o,i):ut(l,"add",o,i),this},delete(o){const i=X(this),{has:l,get:r}=Tn(i);let c=l.call(i,o);c||(o=X(o),c=l.call(i,o)),r&&r.call(i,o);const m=i.delete(o);return c&&ut(i,"delete",o,void 0),m},clear(){const o=X(this),i=o.size!==0,l=o.clear();return i&&ut(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=wl(o,e,t)}),n}function Ds(e,t){const n=Sl(e,t);return(s,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Q(n,o)&&o in s?n:s,o,i)}const Al={get:Ds(!1,!1)},Cl={get:Ds(!1,!0)},El={get:Ds(!0,!1)};const ti=new WeakMap,ni=new WeakMap,si=new WeakMap,kl=new WeakMap;function Tl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function js(e){return pt(e)?e:$s(e,!1,xl,Al,ti)}function Pl(e){return $s(e,!1,_l,Cl,ni)}function _s(e){return $s(e,!0,yl,El,si)}function $s(e,t,n,s,o){if(!te(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 l=Tl(el(e));if(l===0)return e;const r=new Proxy(e,l===2?s:n);return o.set(e,r),r}function Tt(e){return pt(e)?Tt(e.__v_raw):!!(e&&e.__v_isReactive)}function pt(e){return!!(e&&e.__v_isReadonly)}function Be(e){return!!(e&&e.__v_isShallow)}function Bs(e){return e?!!e.__v_raw:!1}function X(e){const t=e&&e.__v_raw;return t?X(t):e}function Ol(e){return!Q(e,"__v_skip")&&Object.isExtensible(e)&&$o(e,"__v_skip",!0),e}const ze=e=>te(e)?js(e):e,Ht=e=>te(e)?_s(e):e;function Se(e){return e?e.__v_isRef===!0:!1}function L(e){return Ul(e,!1)}function Ul(e,t){return Se(e)?e:new Ml(e,t)}class Ml{constructor(t,n){this.dep=new Ls,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:X(t),this._value=n?t:ze(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Be(t)||pt(t);t=s?t:X(t),et(t,n)&&(this._rawValue=t,this._value=s?t:ze(t),this.dep.trigger())}}function Qt(e){return Se(e)?e.value:e}const Rl={get:(e,t,n)=>t==="__v_raw"?e:Qt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Se(o)&&!Se(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function oi(e){return Tt(e)?e:new Proxy(e,Rl)}class Il{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ls(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=un-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&re!==this)return Go(this,!0),!0}get value(){const t=this.dep.track();return qo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Fl(e,t,n=!1){let s,o;return H(e)?s=e:(s=e.get,o=e.set),new Il(s,o,n)}const On={},Ln=new WeakMap;let Et;function Nl(e,t=!1,n=Et){if(n){let s=Ln.get(n);s||Ln.set(n,s=[]),s.push(e)}}function Ll(e,t,n=se){const{immediate:s,deep:o,once:i,scheduler:l,augmentJob:r,call:c}=n,m=N=>o?N:Be(N)||o===!1||o===0?dt(N,1):dt(N);let h,x,U,R,J=!1,I=!1;if(Se(e)?(x=()=>e.value,J=Be(e)):Tt(e)?(x=()=>m(e),J=!0):j(e)?(I=!0,J=e.some(N=>Tt(N)||Be(N)),x=()=>e.map(N=>{if(Se(N))return N.value;if(Tt(N))return m(N);if(H(N))return c?c(N,2):N()})):H(e)?t?x=c?()=>c(e,2):e:x=()=>{if(U){st();try{U()}finally{ot()}}const N=Et;Et=h;try{return c?c(e,3,[R]):e(R)}finally{Et=N}}:x=tt,t&&o){const N=x,z=o===!0?1/0:o;x=()=>dt(N(),z)}const G=dl(),Y=()=>{h.stop(),G&&G.active&&Os(G.effects,h)};if(i&&t){const N=t;t=(...z)=>{const Me=N(...z);return Y(),Me}}let B=I?new Array(e.length).fill(On):On;const Z=N=>{if(!(!(h.flags&1)||!h.dirty&&!N))if(t){const z=h.run();if(N||o||J||(I?z.some((Me,Le)=>et(Me,B[Le])):et(z,B))){U&&U();const Me=Et;Et=h;try{const Le=[z,B===On?void 0:I&&B[0]===On?[]:B,R];B=z,c?c(t,3,Le):t(...Le)}finally{Et=Me}}}else h.run()};return r&&r(Z),h=new Ko(x),h.scheduler=l?()=>l(Z,!1):Z,R=N=>Nl(N,!1,h),U=h.onStop=()=>{const N=Ln.get(h);if(N){if(c)c(N,4);else for(const z of N)z();Ln.delete(h)}},t?s?Z(!0):B=h.run():l?l(Z.bind(null,!0),!0):h.run(),Y.pause=h.pause.bind(h),Y.resume=h.resume.bind(h),Y.stop=Y,Y}function dt(e,t=1/0,n){if(t<=0||!te(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Se(e))dt(e.value,t,n);else if(j(e))for(let s=0;s{dt(s,t,n)});else if(Do(e)){for(const s in e)dt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&dt(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function gn(e,t,n,s){try{return s?e(...s):e()}catch(o){Zn(o,t,n)}}function Ge(e,t,n,s){if(H(e)){const o=gn(e,t,n,s);return o&&No(o)&&o.catch(i=>{Zn(i,t,n)}),o}if(j(e)){const o=[];for(let i=0;i>>1,o=Te[s],i=fn(o);i=fn(n)?Te.push(e):Te.splice(jl(t),0,e),e.flags|=1,ri()}}function ri(){Dn||(Dn=ii.then(ci))}function $l(e){j(e)?Bt.push(...e):mt&&e.id===-1?mt.splice(Lt+1,0,e):e.flags&1||(Bt.push(e),e.flags|=1),ri()}function oo(e,t,n=Ze+1){for(;nfn(n)-fn(s));if(Bt.length=0,mt){mt.push(...t);return}for(mt=t,Lt=0;Lte.id==null?e.flags&2?-1:1/0:e.id;function ci(e){try{for(Ze=0;Ze{s._d&&mo(-1);const i=jn(t);let l;try{l=e(...o)}finally{jn(i),s._d&&mo(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function le(e,t){if($e===null)return e;const n=ts($e),s=e.dirs||(e.dirs=[]);for(let o=0;o1)return n&&H(t)?t.call(s&&s.proxy):t}}const Hl=Symbol.for("v-scx"),Kl=()=>In(Hl);function us(e,t,n){return di(e,t,n)}function di(e,t,n=se){const{immediate:s,deep:o,flush:i,once:l}=n,r=Ae({},n),c=t&&s||!t&&i!=="post";let m;if(hn){if(i==="sync"){const R=Kl();m=R.__watcherHandles||(R.__watcherHandles=[])}else if(!c){const R=()=>{};return R.stop=tt,R.resume=tt,R.pause=tt,R}}const h=Pe;r.call=(R,J,I)=>Ge(R,h,J,I);let x=!1;i==="post"?r.scheduler=R=>{Ue(R,h&&h.suspense)}:i!=="sync"&&(x=!0,r.scheduler=(R,J)=>{J?R():Vs(R)}),r.augmentJob=R=>{t&&(R.flags|=4),x&&(R.flags|=2,h&&(R.id=h.uid,R.i=h))};const U=Ll(e,t,r);return hn&&(m?m.push(U):c&&U()),U}function zl(e,t,n){const s=this.proxy,o=ce(e)?e.includes(".")?fi(s,e):()=>s[e]:e.bind(s,s);let i;H(t)?i=t:(i=t.handler,n=t);const l=vn(this),r=di(o,i.bind(s),n);return l(),r}function fi(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;oe.__isTeleport,ds=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function io(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const $n=new WeakMap;function ln(e,t,n,s,o=!1){if(j(e)){e.forEach((I,G)=>ln(I,t&&(j(t)?t[G]:t),n,s,o));return}if(rn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&ln(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?ts(s.component):s.el,l=o?null:i,{i:r,r:c}=e,m=t&&t.r,h=r.refs===se?r.refs={}:r.refs,x=r.setupState,U=X(x),R=x===se?Fo:I=>io(h,I)?!1:Q(U,I),J=(I,G)=>!(G&&io(h,G));if(m!=null&&m!==c){if(lo(t),ce(m))h[m]=null,R(m)&&(x[m]=null);else if(Se(m)){const I=t;J(m,I.k)&&(m.value=null),I.k&&(h[I.k]=null)}}if(H(c)){st();try{gn(c,r,12,[l,h])}finally{ot()}}else{const I=ce(c),G=Se(c);if(I||G){const Y=()=>{if(e.f){const B=I?R(c)?x[c]:h[c]:J()||!e.k?c.value:h[e.k];if(o)j(B)&&Os(B,i);else if(j(B))B.includes(i)||B.push(i);else if(I)h[c]=[i],R(c)&&(x[c]=h[c]);else{const Z=[i];J(c,e.k)&&(c.value=Z),e.k&&(h[e.k]=Z)}}else I?(h[c]=l,R(c)&&(x[c]=l)):G&&(J(c,e.k)&&(c.value=l),e.k&&(h[e.k]=l))};if(l){const B=()=>{Y(),$n.delete(e)};B.id=-1,$n.set(e,B),Ue(B,n)}else lo(e),Y()}}}function lo(e){const t=$n.get(e);t&&(t.flags|=8,$n.delete(e))}qn().requestIdleCallback;qn().cancelIdleCallback;const rn=e=>!!e.type.__asyncLoader,hi=e=>e.type.__isKeepAlive;function Jl(e,t){bi(e,"a",t)}function ql(e,t){bi(e,"da",t)}function bi(e,t,n=Pe){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Xn(t,s,n),n){let o=n.parent;for(;o&&o.parent;)hi(o.parent.vnode)&&Yl(s,t,n,o),o=o.parent}}function Yl(e,t,n,s){const o=Xn(t,e,s,!0);Ks(()=>{Os(s[t],o)},n)}function Xn(e,t,n=Pe,s=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{st();const r=vn(n),c=Ge(t,n,e,l);return r(),ot(),c});return s?o.unshift(i):o.push(i),i}}const ht=e=>(t,n=Pe)=>{(!hn||e==="sp")&&Xn(e,(...s)=>t(...s),n)},Zl=ht("bm"),mi=ht("m"),Xl=ht("bu"),Ql=ht("u"),er=ht("bum"),Ks=ht("um"),tr=ht("sp"),nr=ht("rtg"),sr=ht("rtc");function or(e,t=Pe){Xn("ec",e,t)}const ir=Symbol.for("v-ndc");function ye(e,t,n,s){let o;const i=n,l=j(e);if(l||ce(e)){const r=l&&Tt(e);let c=!1,m=!1;r&&(c=!Be(e),m=pt(e),e=Yn(e)),o=new Array(e.length);for(let h=0,x=e.length;ht(r,c,void 0,i));else{const r=Object.keys(e);o=new Array(r.length);for(let c=0,m=r.length;ce?Li(e)?ts(e):ws(e.parent):null,an=Ae(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=>ws(e.parent),$root:e=>ws(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vi(e),$forceUpdate:e=>e.f||(e.f=()=>{Vs(e.update)}),$nextTick:e=>e.n||(e.n=li.bind(e.proxy)),$watch:e=>zl.bind(e)}),fs=(e,t)=>e!==se&&!e.__isScriptSetup&&Q(e,t),lr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:i,accessCache:l,type:r,appContext:c}=e;if(t[0]!=="$"){const U=l[t];if(U!==void 0)switch(U){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(fs(s,t))return l[t]=1,s[t];if(o!==se&&Q(o,t))return l[t]=2,o[t];if(Q(i,t))return l[t]=3,i[t];if(n!==se&&Q(n,t))return l[t]=4,n[t];Ss&&(l[t]=0)}}const m=an[t];let h,x;if(m)return t==="$attrs"&&we(e.attrs,"get",""),m(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(n!==se&&Q(n,t))return l[t]=4,n[t];if(x=c.config.globalProperties,Q(x,t))return x[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:i}=e;return fs(o,t)?(o[t]=n,!0):s!==se&&Q(s,t)?(s[t]=n,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,props:i,type:l}},r){let c;return!!(n[r]||e!==se&&r[0]!=="$"&&Q(e,r)||fs(t,r)||Q(i,r)||Q(s,r)||Q(an,r)||Q(o.config.globalProperties,r)||(c=l.__cssModules)&&c[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ro(e){return j(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ss=!0;function rr(e){const t=vi(e),n=e.proxy,s=e.ctx;Ss=!1,t.beforeCreate&&ao(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:l,watch:r,provide:c,inject:m,created:h,beforeMount:x,mounted:U,beforeUpdate:R,updated:J,activated:I,deactivated:G,beforeDestroy:Y,beforeUnmount:B,destroyed:Z,unmounted:N,render:z,renderTracked:Me,renderTriggered:Le,errorCaptured:We,serverPrefetch:De,expose:Oe,inheritAttrs:fe,components:Je,directives:Ce,filters:ve}=t;if(m&&ar(m,s,null),l)for(const oe in l){const q=l[oe];H(q)&&(s[oe]=q.bind(n))}if(o){const oe=o.call(n,n);te(oe)&&(e.data=js(oe))}if(Ss=!0,i)for(const oe in i){const q=i[oe],qe=H(q)?q.bind(n,n):H(q.get)?q.get.bind(n,n):tt,Pt=!H(q)&&H(q.set)?q.set.bind(n):tt,xe=ks({get:qe,set:Pt});Object.defineProperty(s,oe,{enumerable:!0,configurable:!0,get:()=>xe.value,set:me=>xe.value=me})}if(r)for(const oe in r)gi(r[oe],s,n,oe);if(c){const oe=H(c)?c.call(n):c;Reflect.ownKeys(oe).forEach(q=>{Vl(q,oe[q])})}h&&ao(h,e,"c");function be(oe,q){j(q)?q.forEach(qe=>oe(qe.bind(n))):q&&oe(q.bind(n))}if(be(Zl,x),be(mi,U),be(Xl,R),be(Ql,J),be(Jl,I),be(ql,G),be(or,We),be(sr,Me),be(nr,Le),be(er,B),be(Ks,N),be(tr,De),j(Oe))if(Oe.length){const oe=e.exposed||(e.exposed={});Oe.forEach(q=>{Object.defineProperty(oe,q,{get:()=>n[q],set:qe=>n[q]=qe,enumerable:!0})})}else e.exposed||(e.exposed={});z&&e.render===tt&&(e.render=z),fe!=null&&(e.inheritAttrs=fe),Je&&(e.components=Je),Ce&&(e.directives=Ce),De&&pi(e)}function ar(e,t,n=tt){j(e)&&(e=As(e));for(const s in e){const o=e[s];let i;te(o)?"default"in o?i=In(o.from||s,o.default,!0):i=In(o.from||s):i=In(o),Se(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function ao(e,t,n){Ge(j(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function gi(e,t,n,s){let o=s.includes(".")?fi(n,s):()=>n[s];if(ce(e)){const i=t[e];H(i)&&us(o,i)}else if(H(e))us(o,e.bind(n));else if(te(e))if(j(e))e.forEach(i=>gi(i,t,n,s));else{const i=H(e.handler)?e.handler.bind(n):t[e.handler];H(i)&&us(o,i,e)}}function vi(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let c;return r?c=r:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(m=>Bn(c,m,l,!0)),Bn(c,t,l)),te(t)&&i.set(t,c),c}function Bn(e,t,n,s=!1){const{mixins:o,extends:i}=t;i&&Bn(e,i,n,!0),o&&o.forEach(l=>Bn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const r=cr[l]||n&&n[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const cr={data:co,props:uo,emits:uo,methods:en,computed:en,beforeCreate:ke,created:ke,beforeMount:ke,mounted:ke,beforeUpdate:ke,updated:ke,beforeDestroy:ke,beforeUnmount:ke,destroyed:ke,unmounted:ke,activated:ke,deactivated:ke,errorCaptured:ke,serverPrefetch:ke,components:en,directives:en,watch:dr,provide:co,inject:ur};function co(e,t){return t?e?function(){return Ae(H(e)?e.call(this,this):e,H(t)?t.call(this,this):t)}:t:e}function ur(e,t){return en(As(e),As(t))}function As(e){if(j(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${He(t)}Modifiers`]||e[`${yt(t)}Modifiers`];function br(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||se;let o=n;const i=t.startsWith("update:"),l=i&&hr(s,t.slice(7));l&&(l.trim&&(o=n.map(h=>ce(h)?h.trim():h)),l.number&&(o=n.map(Jn)));let r,c=s[r=is(t)]||s[r=is(He(t))];!c&&i&&(c=s[r=is(yt(t))]),c&&Ge(c,e,6,o);const m=s[r+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ge(m,e,6,o)}}const mr=new WeakMap;function yi(e,t,n=!1){const s=n?mr:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const i=e.emits;let l={},r=!1;if(!H(e)){const c=m=>{const h=yi(m,t,!0);h&&(r=!0,Ae(l,h))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!r?(te(e)&&s.set(e,null),null):(j(i)?i.forEach(c=>l[c]=null):Ae(l,i),te(e)&&s.set(e,l),l)}function Qn(e,t){return!e||!zn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,yt(t))||Q(e,t))}function fo(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[i],slots:l,attrs:r,emit:c,render:m,renderCache:h,props:x,data:U,setupState:R,ctx:J,inheritAttrs:I}=e,G=jn(e);let Y,B;try{if(n.shapeFlag&4){const N=o||s,z=N;Y=Qe(m.call(z,N,h,x,R,U,J)),B=r}else{const N=t;Y=Qe(N.length>1?N(x,{attrs:r,slots:l,emit:c}):N(x,null)),B=t.props?r:gr(r)}}catch(N){cn.length=0,Zn(N,e,1),Y=Ne(vt)}let Z=Y;if(B&&I!==!1){const N=Object.keys(B),{shapeFlag:z}=Z;N.length&&z&7&&(i&&N.some(Gn)&&(B=vr(B,i)),Z=Kt(Z,B,!1,!0))}return n.dirs&&(Z=Kt(Z,null,!1,!0),Z.dirs=Z.dirs?Z.dirs.concat(n.dirs):n.dirs),n.transition&&Hs(Z,n.transition),Y=Z,jn(G),Y}const gr=e=>{let t;for(const n in e)(n==="class"||n==="style"||zn(n))&&((t||(t={}))[n]=e[n]);return t},vr=(e,t)=>{const n={};for(const s in e)(!Gn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function xr(e,t,n){const{props:s,children:o,component:i}=e,{props:l,children:r,patchFlag:c}=t,m=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?po(s,l,m):!!l;if(c&8){const h=t.dynamicProps;for(let x=0;xObject.create(wi),Ai=e=>Object.getPrototypeOf(e)===wi;function _r(e,t,n,s=!1){const o={},i=Si();e.propsDefaults=Object.create(null),Ci(e,t,o,i);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:Pl(o):e.type.props?e.props=o:e.props=i,e.attrs=i}function wr(e,t,n,s){const{props:o,attrs:i,vnode:{patchFlag:l}}=e,r=X(o),[c]=e.propsOptions;let m=!1;if((s||l>0)&&!(l&16)){if(l&8){const h=e.vnode.dynamicProps;for(let x=0;x{c=!0;const[U,R]=Ei(x,t,!0);Ae(l,U),R&&r.push(...R)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!c)return te(e)&&s.set(e,jt),jt;if(j(i))for(let h=0;he==="_"||e==="_ctx"||e==="$stable",Gs=e=>j(e)?e.map(Qe):[Qe(e)],Ar=(e,t,n)=>{if(t._n)return t;const s=Bl((...o)=>Gs(t(...o)),n);return s._c=!1,s},ki=(e,t,n)=>{const s=e._ctx;for(const o in e){if(zs(o))continue;const i=e[o];if(H(i))t[o]=Ar(o,i,s);else if(i!=null){const l=Gs(i);t[o]=()=>l}}},Ti=(e,t)=>{const n=Gs(t);e.slots.default=()=>n},Pi=(e,t,n)=>{for(const s in t)(n||!zs(s))&&(e[s]=t[s])},Cr=(e,t,n)=>{const s=e.slots=Si();if(e.vnode.shapeFlag&32){const o=t._;o?(Pi(s,t,n),n&&$o(s,"_",o,!0)):ki(t,s)}else t&&Ti(e,t)},Er=(e,t,n)=>{const{vnode:s,slots:o}=e;let i=!0,l=se;if(s.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Pi(o,t,n):(i=!t.$stable,ki(t,o)),l=t}else t&&(Ti(e,t),l={default:1});if(i)for(const r in o)!zs(r)&&l[r]==null&&delete o[r]},Ue=Ur;function kr(e){return Tr(e)}function Tr(e,t){const n=qn();n.__VUE__=!0;const{insert:s,remove:o,patchProp:i,createElement:l,createText:r,createComment:c,setText:m,setElementText:h,parentNode:x,nextSibling:U,setScopeId:R=tt,insertStaticContent:J}=e,I=(a,p,g,w=null,_=null,y=null,T=void 0,C=null,A=!!p.dynamicChildren)=>{if(a===p)return;a&&!Yt(a,p)&&(w=Ot(a),me(a,_,y,!0),a=null),p.patchFlag===-2&&(A=!1,p.dynamicChildren=null);const{type:v,ref:M,shapeFlag:P}=p;switch(v){case es:G(a,p,g,w);break;case vt:Y(a,p,g,w);break;case Fn:a==null&&B(p,g,w,T);break;case ne:Je(a,p,g,w,_,y,T,C,A);break;default:P&1?z(a,p,g,w,_,y,T,C,A):P&6?Ce(a,p,g,w,_,y,T,C,A):(P&64||P&128)&&v.process(a,p,g,w,_,y,T,C,A,St)}M!=null&&_?ln(M,a&&a.ref,y,p||a,!p):M==null&&a&&a.ref!=null&&ln(a.ref,null,y,a,!0)},G=(a,p,g,w)=>{if(a==null)s(p.el=r(p.children),g,w);else{const _=p.el=a.el;p.children!==a.children&&m(_,p.children)}},Y=(a,p,g,w)=>{a==null?s(p.el=c(p.children||""),g,w):p.el=a.el},B=(a,p,g,w)=>{[a.el,a.anchor]=J(a.children,p,g,w,a.el,a.anchor)},Z=({el:a,anchor:p},g,w)=>{let _;for(;a&&a!==p;)_=U(a),s(a,g,w),a=_;s(p,g,w)},N=({el:a,anchor:p})=>{let g;for(;a&&a!==p;)g=U(a),o(a),a=g;o(p)},z=(a,p,g,w,_,y,T,C,A)=>{if(p.type==="svg"?T="svg":p.type==="math"&&(T="mathml"),a==null)Me(p,g,w,_,y,T,C,A);else{const v=a.el&&a.el._isVueCE?a.el:null;try{v&&v._beginPatch(),De(a,p,_,y,T,C,A)}finally{v&&v._endPatch()}}},Me=(a,p,g,w,_,y,T,C)=>{let A,v;const{props:M,shapeFlag:P,transition:F,dirs:D}=a;if(A=a.el=l(a.type,y,M&&M.is,M),P&8?h(A,a.children):P&16&&We(a.children,A,null,w,_,ps(a,y),T,C),D&&At(a,null,w,"created"),Le(A,a,a.scopeId,T,w),M){for(const W in M)W!=="value"&&!nn(W)&&i(A,W,null,M[W],y,w);"value"in M&&i(A,"value",null,M.value,y),(v=M.onVnodeBeforeMount)&&Ye(v,w,a)}D&&At(a,null,w,"beforeMount");const K=Pr(_,F);K&&F.beforeEnter(A),s(A,p,g),((v=M&&M.onVnodeMounted)||K||D)&&Ue(()=>{try{v&&Ye(v,w,a),K&&F.enter(A),D&&At(a,null,w,"mounted")}finally{}},_)},Le=(a,p,g,w,_)=>{if(g&&R(a,g),w)for(let y=0;y{for(let v=A;v{const C=p.el=a.el;let{patchFlag:A,dynamicChildren:v,dirs:M}=p;A|=a.patchFlag&16;const P=a.props||se,F=p.props||se;let D;if(g&&Ct(g,!1),(D=F.onVnodeBeforeUpdate)&&Ye(D,g,p,a),M&&At(p,a,g,"beforeUpdate"),g&&Ct(g,!0),v&&(!a.dynamicChildren||a.dynamicChildren.length!==v.length)&&(A=0,T=!1,v=null),(P.innerHTML&&F.innerHTML==null||P.textContent&&F.textContent==null)&&h(C,""),v?Oe(a.dynamicChildren,v,C,g,w,ps(p,_),y):T||q(a,p,C,null,g,w,ps(p,_),y,!1),A>0){if(A&16)fe(C,P,F,g,_);else if(A&2&&P.class!==F.class&&i(C,"class",null,F.class,_),A&4&&i(C,"style",P.style,F.style,_),A&8){const K=p.dynamicProps;for(let W=0;W{D&&Ye(D,g,p,a),M&&At(p,a,g,"updated")},w)},Oe=(a,p,g,w,_,y,T)=>{for(let C=0;C{if(p!==g){if(p!==se)for(const y in p)!nn(y)&&!(y in g)&&i(a,y,p[y],null,_,w);for(const y in g){if(nn(y))continue;const T=g[y],C=p[y];T!==C&&y!=="value"&&i(a,y,C,T,_,w)}"value"in g&&i(a,"value",p.value,g.value,_)}},Je=(a,p,g,w,_,y,T,C,A)=>{const v=p.el=a?a.el:r(""),M=p.anchor=a?a.anchor:r("");let{patchFlag:P,dynamicChildren:F,slotScopeIds:D}=p;D&&(C=C?C.concat(D):D),a==null?(s(v,g,w),s(M,g,w),We(p.children||[],g,M,_,y,T,C,A)):P>0&&P&64&&F&&a.dynamicChildren&&a.dynamicChildren.length===F.length?(Oe(a.dynamicChildren,F,g,_,y,T,C),(p.key!=null||_&&p===_.subTree)&&Oi(a,p,!0)):q(a,p,g,M,_,y,T,C,A)},Ce=(a,p,g,w,_,y,T,C,A)=>{p.slotScopeIds=C,a==null?p.shapeFlag&512?_.ctx.activate(p,g,w,T,A):ve(p,g,w,_,y,T,A):Wt(a,p,A)},ve=(a,p,g,w,_,y,T)=>{const C=a.component=$r(a,w,_);if(hi(a)&&(C.ctx.renderer=St),Vr(C,!1,T),C.asyncDep){if(_&&_.registerDep(C,be,T),!a.el){const A=C.subTree=Ne(vt);Y(null,A,p,g),a.placeholder=A.el}}else be(C,a,p,g,_,y,T)},Wt=(a,p,g)=>{const w=p.component=a.component;if(xr(a,p,g))if(w.asyncDep&&!w.asyncResolved){oe(w,p,g);return}else w.next=p,w.update();else p.el=a.el,w.vnode=p},be=(a,p,g,w,_,y,T)=>{const C=()=>{if(a.isMounted){let{next:P,bu:F,u:D,parent:K,vnode:W}=a;{const ue=Ui(a);if(ue){P&&(P.el=W.el,oe(a,P,T)),ue.asyncDep.then(()=>{Ue(()=>{a.isUnmounted||v()},_)});return}}let $=P,ee;Ct(a,!1),P?(P.el=W.el,oe(a,P,T)):P=W,F&&Rn(F),(ee=P.props&&P.props.onVnodeBeforeUpdate)&&Ye(ee,K,P,W),Ct(a,!0);const ae=fo(a),Ee=a.subTree;a.subTree=ae,I(Ee,ae,x(Ee.el),Ot(Ee),a,_,y),P.el=ae.el,$===null&&yr(a,ae.el),D&&Ue(D,_),(ee=P.props&&P.props.onVnodeUpdated)&&Ue(()=>Ye(ee,K,P,W),_)}else{let P;const{el:F,props:D}=p,{bm:K,m:W,parent:$,root:ee,type:ae}=a,Ee=rn(p);Ct(a,!1),K&&Rn(K),!Ee&&(P=D&&D.onVnodeBeforeMount)&&Ye(P,$,p),Ct(a,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(ae,a.parent?a.parent.type:void 0);const ue=a.subTree=fo(a);I(null,ue,g,w,a,_,y),p.el=ue.el}if(W&&Ue(W,_),!Ee&&(P=D&&D.onVnodeMounted)){const ue=p;Ue(()=>Ye(P,$,ue),_)}(p.shapeFlag&256||$&&rn($.vnode)&&$.vnode.shapeFlag&256)&&a.a&&Ue(a.a,_),a.isMounted=!0,p=g=w=null}};a.scope.on();const A=a.effect=new Ko(C);a.scope.off();const v=a.update=A.run.bind(A),M=a.job=A.runIfDirty.bind(A);M.i=a,M.id=a.uid,A.scheduler=()=>Vs(M),Ct(a,!0),v()},oe=(a,p,g)=>{p.component=a;const w=a.vnode.props;a.vnode=p,a.next=null,wr(a,p.props,w,g),Er(a,p.children,g),st(),oo(a),ot()},q=(a,p,g,w,_,y,T,C,A=!1)=>{const v=a&&a.children,M=a?a.shapeFlag:0,P=p.children,{patchFlag:F,shapeFlag:D}=p;if(F>0){if(F&128){Pt(v,P,g,w,_,y,T,C,A);return}else if(F&256){qe(v,P,g,w,_,y,T,C,A);return}}D&8?(M&16&&wt(v,_,y),P!==v&&h(g,P)):M&16?D&16?Pt(v,P,g,w,_,y,T,C,A):wt(v,_,y,!0):(M&8&&h(g,""),D&16&&We(P,g,w,_,y,T,C,A))},qe=(a,p,g,w,_,y,T,C,A)=>{a=a||jt,p=p||jt;const v=a.length,M=p.length,P=Math.min(v,M);let F;for(F=0;FM?wt(a,_,y,!0,!1,P):We(p,g,w,_,y,T,C,A,P)},Pt=(a,p,g,w,_,y,T,C,A)=>{let v=0;const M=p.length;let P=a.length-1,F=M-1;for(;v<=P&&v<=F;){const D=a[v],K=p[v]=A?ct(p[v]):Qe(p[v]);if(Yt(D,K))I(D,K,g,null,_,y,T,C,A);else break;v++}for(;v<=P&&v<=F;){const D=a[P],K=p[F]=A?ct(p[F]):Qe(p[F]);if(Yt(D,K))I(D,K,g,null,_,y,T,C,A);else break;P--,F--}if(v>P){if(v<=F){const D=F+1,K=DF)for(;v<=P;)me(a[v],_,y,!0),v++;else{const D=v,K=v,W=new Map;for(v=K;v<=F;v++){const ie=p[v]=A?ct(p[v]):Qe(p[v]);ie.key!=null&&W.set(ie.key,v)}let $,ee=0;const ae=F-K+1;let Ee=!1,ue=0;const pe=new Array(ae);for(v=0;v=ae){me(ie,_,y,!0);continue}let he;if(ie.key!=null)he=W.get(ie.key);else for($=K;$<=F;$++)if(pe[$-K]===0&&Yt(ie,p[$])){he=$;break}he===void 0?me(ie,_,y,!0):(pe[he-K]=v+1,he>=ue?ue=he:Ee=!0,I(ie,p[he],g,null,_,y,T,C,A),ee++)}const it=Ee?Or(pe):jt;for($=it.length-1,v=ae-1;v>=0;v--){const ie=K+v,he=p[ie],yn=p[ie+1],_n=ie+1{const{el:y,type:T,transition:C,children:A,shapeFlag:v}=a;if(v&6){xe(a.component.subTree,p,g,w);return}if(v&128){a.suspense.move(p,g,w);return}if(v&64){T.move(a,p,g,St);return}if(T===ne){s(y,p,g);for(let P=0;PC.enter(y),_));else{const{leave:P,delayLeave:F,afterLeave:D}=C,K=()=>{a.ctx.isUnmounted?o(y):s(y,p,g)},W=()=>{const $=y._isLeaving||!!y[ds];y._isLeaving&&y[ds](!0),C.persisted&&!$?K():P(y,()=>{K(),D&&D()})};F?F(y,K,W):W()}else s(y,p,g)},me=(a,p,g,w=!1,_=!1)=>{const{type:y,props:T,ref:C,children:A,dynamicChildren:v,shapeFlag:M,patchFlag:P,dirs:F,cacheIndex:D,memo:K}=a;if(P===-2&&(_=!1),C!=null&&(st(),ln(C,null,g,a,!0),ot()),D!=null&&(p.renderCache[D]=void 0),M&256){p.ctx.deactivate(a);return}const W=M&1&&F,$=!rn(a);let ee;if($&&(ee=T&&T.onVnodeBeforeUnmount)&&Ye(ee,p,a),M&6)Jt(a.component,g,w);else{if(M&128){a.suspense.unmount(g,w);return}W&&At(a,null,p,"beforeUnmount"),M&64?a.type.remove(a,p,g,St,w):v&&!v.hasOnce&&(y!==ne||P>0&&P&64)?wt(v,p,g,!1,!0):(y===ne&&P&384||!_&&M&16)&&wt(A,p,g),w&&_t(a)}const ae=K!=null&&D==null;($&&(ee=T&&T.onVnodeUnmounted)||W||ae)&&Ue(()=>{ee&&Ye(ee,p,a),W&&At(a,null,p,"unmounted"),ae&&(a.el=null)},g)},_t=a=>{const{type:p,el:g,anchor:w,transition:_}=a;if(p===ne){ns(g,w);return}if(p===Fn){N(a);return}const y=()=>{o(g),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(a.shapeFlag&1&&_&&!_.persisted){const{leave:T,delayLeave:C}=_,A=()=>T(g,y);C?C(a.el,y,A):A()}else y()},ns=(a,p)=>{let g;for(;a!==p;)g=U(a),o(a),a=g;o(p)},Jt=(a,p,g)=>{const{bum:w,scope:_,job:y,subTree:T,um:C,m:A,a:v}=a;bo(A),bo(v),w&&Rn(w),_.stop(),y&&(y.flags|=8,me(T,a,p,g)),C&&Ue(C,p),Ue(()=>{a.isUnmounted=!0},p)},wt=(a,p,g,w=!1,_=!1,y=0)=>{for(let T=y;T{if(a.shapeFlag&6)return Ot(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const p=U(a.anchor||a.el),g=p&&p[Gl];return g?U(g):p};let Ut=!1;const xn=(a,p,g)=>{let w;a==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):I(p._vnode||null,a,p,null,null,null,g),p._vnode=a,Ut||(Ut=!0,oo(w),ai(),Ut=!1)},St={p:I,um:me,m:xe,r:_t,mt:ve,mc:We,pc:q,pbc:Oe,n:Ot,o:e};return{render:xn,hydrate:void 0,createApp:pr(xn)}}function ps({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 Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Pr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Oi(e,t,n=!1){const s=e.children,o=t.children;if(j(s)&&j(o))for(let i=0;i>1,e[n[r]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function Ui(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ui(t)}function bo(e){if(e)for(let t=0;te.__isSuspense;function Ur(e,t){t&&t.pendingBranch?j(e)?t.effects.push(...e):t.effects.push(e):$l(e)}const ne=Symbol.for("v-fgt"),es=Symbol.for("v-txt"),vt=Symbol.for("v-cmt"),Fn=Symbol.for("v-stc"),cn=[];let Fe=null;function E(e=!1){cn.push(Fe=e?null:[])}function Mr(){cn.pop(),Fe=cn[cn.length-1]||null}let pn=1;function mo(e,t=!1){pn+=e,e<0&&Fe&&t&&(Fe.hasOnce=!0)}function Ii(e){return e.dynamicChildren=pn>0?Fe||jt:null,Mr(),pn>0&&Fe&&Fe.push(e),e}function k(e,t,n,s,o,i){return Ii(f(e,t,n,s,o,i,!0))}function Rr(e,t,n,s,o){return Ii(Ne(e,t,n,s,o,!0))}function Fi(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const Ni=({key:e})=>e??null,Nn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||Se(e)||H(e)?{i:$e,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,o=null,i=e===ne?0:1,l=!1,r=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ni(t),ref:t&&Nn(t),scopeId:ui,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:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:$e};return r?(Vn(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ce(n)?8:16),pn>0&&!l&&Fe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Fe.push(c),c}const Ne=Ir;function Ir(e,t=null,n=null,s=0,o=null,i=!1){if((!e||e===ir)&&(e=vt),Fi(e)){const r=Kt(e,t,!0);return n&&Vn(r,n),pn>0&&!i&&Fe&&(r.shapeFlag&6?Fe[Fe.indexOf(e)]=r:Fe.push(r)),r.patchFlag=-2,r}if(Gr(e)&&(e=e.__vccOpts),t){t=Fr(t);let{class:r,style:c}=t;r&&!ce(r)&&(t.class=Ie(r)),te(c)&&(Bs(c)&&!j(c)&&(c=Ae({},c)),t.style=Ms(c))}const l=ce(e)?1:Ri(e)?128:Wl(e)?64:te(e)?4:H(e)?2:0;return f(e,t,n,s,o,l,i,!0)}function Fr(e){return e?Bs(e)||Ai(e)?Ae({},e):e:null}function Kt(e,t,n=!1,s=!1){const{props:o,ref:i,patchFlag:l,children:r,transition:c}=e,m=t?Lr(o||{},t):o,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&Ni(m),ref:t&&t.ref?n&&i?j(i)?i.concat(Nn(t)):[i,Nn(t)]:Nn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ne?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Kt(e.ssContent),ssFallback:e.ssFallback&&Kt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Hs(h,c.clone(h)),h}function je(e=" ",t=0){return Ne(es,null,e,t)}function Nr(e,t){const n=Ne(Fn,null,e);return n.staticCount=t,n}function V(e="",t=!1){return t?(E(),Rr(vt,null,e)):Ne(vt,null,e)}function Qe(e){return e==null||typeof e=="boolean"?Ne(vt):j(e)?Ne(ne,null,e.slice()):Fi(e)?ct(e):Ne(es,null,String(e))}function ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Kt(e)}function Vn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(j(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Vn(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Ai(t)?t._ctx=$e:o===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(H(t)){if(s&65){Vn(e,{default:t});return}t={default:t,_ctx:$e},n=32}else t=String(t),s&64?(n=16,t=[je(t)]):n=8;e.children=t,e.shapeFlag|=n}function Lr(...e){const t={};for(let n=0;nPe||$e;let Hn,Es;{const e=qn(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),i=>{o.length>1?o.forEach(l=>l(i)):o[0](i)}};Hn=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Es=t("__VUE_SSR_SETTERS__",n=>hn=n)}const vn=e=>{const t=Pe;return Hn(e),e.scope.on(),()=>{e.scope.off(),Hn(t)}},go=()=>{Pe&&Pe.scope.off(),Hn(null)};function Li(e){return e.vnode.shapeFlag&4}let hn=!1;function Vr(e,t=!1,n=!1){t&&Es(t);const{props:s,children:o}=e.vnode,i=Li(e);_r(e,s,i,t),Cr(e,o,n||t);const l=i?Hr(e,t):void 0;return t&&Es(!1),l}function Hr(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lr);const{setup:s}=n;if(s){st();const o=e.setupContext=s.length>1?zr(e):null,i=vn(e),l=gn(s,e,0,[e.props,o]),r=No(l);if(ot(),i(),(r||e.sp)&&!rn(e)&&pi(e),r){if(l.then(go,go),t)return l.then(c=>{vo(e,c)}).catch(c=>{Zn(c,e,0)});e.asyncDep=l}else vo(e,l)}else Di(e)}function vo(e,t,n){H(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:te(t)&&(e.setupState=oi(t)),Di(e)}function Di(e,t,n){const s=e.type;e.render||(e.render=s.render||tt);{const o=vn(e);st();try{rr(e)}finally{ot(),o()}}}const Kr={get(e,t){return we(e,"get",""),e[t]}};function zr(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Kr),slots:e.slots,emit:e.emit,expose:t}}function ts(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(oi(Ol(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in an)return an[n](e)},has(t,n){return n in t||n in an}})):e.proxy}function Gr(e){return H(e)&&"__vccOpts"in e}const ks=(e,t)=>Fl(e,t,hn),Wr="3.5.39";/** +* @vue/runtime-dom v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ts;const xo=typeof window<"u"&&window.trustedTypes;if(xo)try{Ts=xo.createPolicy("vue",{createHTML:e=>e})}catch{}const ji=Ts?e=>Ts.createHTML(e):e=>e,Jr="http://www.w3.org/2000/svg",qr="http://www.w3.org/1998/Math/MathML",at=typeof document<"u"?document:null,yo=at&&at.createElement("template"),Yr={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?at.createElementNS(Jr,e):t==="mathml"?at.createElementNS(qr,e):n?at.createElement(e,{is:n}):at.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,i){const l=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{yo.innerHTML=ji(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const r=yo.content;if(s==="svg"||s==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zr=Symbol("_vtc");function Xr(e,t,n){const s=e[Zr];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Kn=Symbol("_vod"),$i=Symbol("_vsh"),Zt={name:"show",beforeMount(e,{value:t},{transition:n}){e[Kn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Xt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Xt(e,!0),s.enter(e)):s.leave(e,()=>{Xt(e,!1)}):Xt(e,t))},beforeUnmount(e,{value:t}){Xt(e,t)}};function Xt(e,t){e.style.display=t?e[Kn]:"none",e[$i]=!t}const Qr=Symbol(""),ea=/(?:^|;)\s*display\s*:/;function ta(e,t,n){const s=e.style,o=ce(n);let i=!1;if(n&&!o){if(t)if(ce(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&tn(s,r,"")}else for(const l in t)n[l]==null&&tn(s,l,"");for(const l in n){l==="display"&&(i=!0);const r=n[l];r!=null?sa(e,l,!ce(t)&&t?t[l]:void 0,r)||tn(s,l,r):tn(s,l,"")}}else if(o){if(t!==n){const l=s[Qr];l&&(n+=";"+l),s.cssText=n,i=ea.test(n)}}else t&&e.removeAttribute("style");Kn in e&&(e[Kn]=i?s.display:"",e[$i]&&(s.display="none"))}const _o=/\s*!important$/;function tn(e,t,n){if(j(n))n.forEach(s=>tn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=na(e,t);_o.test(n)?e.setProperty(yt(s),n.replace(_o,""),"important"):e[s]=n}}const wo=["Webkit","Moz","ms"],hs={};function na(e,t){const n=hs[t];if(n)return n;let s=He(t);if(s!=="filter"&&s in e)return hs[t]=s;s=jo(s);for(let o=0;obs||(ca.then(()=>bs=0),bs=Date.now());function da(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const o=n.value;if(j(o)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const l=o.slice(),r=[s];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,fa=(e,t,n,s,o,i)=>{const l=o==="svg";t==="class"?Xr(e,s,l):t==="style"?ta(e,n,s):zn(t)?Gn(t)||ia(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pa(e,t,s,l))?(Co(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ao(e,t,s,l,i,t!=="value")):e._isVueCE&&(ha(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ce(s)))?Co(e,He(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ao(e,t,s,l))};function pa(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ko(t)&&H(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 ko(t)&&ce(n)?!1:t in e}function ha(e,t){const n=e._def.props;if(!n)return!1;const s=He(t);return Array.isArray(n)?n.some(o=>He(o)===s):Object.keys(n).some(o=>He(o)===s)}const xt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return j(t)?n=>Rn(t,n):t};function ba(e){e.target.composing=!0}function To(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ve=Symbol("_assign");function Po(e,t,n){return t&&(e=e.trim()),n&&(e=Jn(e)),e}const _e={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Ve]=xt(o);const i=s||o.props&&o.props.type==="number";ft(e,t?"change":"input",l=>{l.target.composing||e[Ve](Po(e.value,n,i))}),(n||i)&&ft(e,"change",()=>{e.value=Po(e.value,n,i)}),t||(ft(e,"compositionstart",ba),ft(e,"compositionend",To),ft(e,"change",To))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:i}},l){if(e[Ve]=xt(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Jn(e.value):e.value,c=t??"";if(r===c)return;const m=e.getRootNode();(m instanceof Document||m instanceof ShadowRoot)&&m.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===c)||(e.value=c)}},Bi={deep:!0,created(e,t,n){e[Ve]=xt(n),ft(e,"change",()=>{const s=e._modelValue,o=zt(e),i=e.checked,l=e[Ve];if(j(s)){const r=Rs(s,o),c=r!==-1;if(i&&!c)l(s.concat(o));else if(!i&&c){const m=[...s];m.splice(r,1),l(m)}}else if(Gt(s)){const r=new Set(s);i?r.add(o):r.delete(o),l(r)}else l(Vi(e,i))})},mounted:Oo,beforeUpdate(e,t,n){e[Ve]=xt(n),Oo(e,t,n)}};function Oo(e,{value:t,oldValue:n},s){e._modelValue=t;let o;if(j(t))o=Rs(t,s.props.value)>-1;else if(Gt(t))o=t.has(s.props.value);else{if(t===n)return;o=gt(t,Vi(e,!0))}e.checked!==o&&(e.checked=o)}const ma={created(e,{value:t},n){e.checked=gt(t,n.props.value),e[Ve]=xt(n),ft(e,"change",()=>{e[Ve](zt(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[Ve]=xt(s),t!==n&&(e.checked=gt(t,s.props.value))}},Dt={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Gt(t);ft(e,"change",()=>{const i=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Jn(zt(l)):zt(l));e[Ve](e.multiple?o?new Set(i):i:i[0]),e._assigning=!0,li(()=>{e._assigning=!1})}),e[Ve]=xt(s)},mounted(e,{value:t}){Uo(e,t)},beforeUpdate(e,t,n){e[Ve]=xt(n)},updated(e,{value:t}){e._assigning||Uo(e,t)}};function Uo(e,t){const n=e.multiple,s=j(t);if(!(n&&!s&&!Gt(t))){for(let o=0,i=e.options.length;oString(m)===String(r)):l.selected=Rs(t,r)>-1}else l.selected=t.has(r);else if(gt(zt(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function zt(e){return"_value"in e?e._value:e.value}function Vi(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ga={created(e,t,n){Un(e,t,n,null,"created")},mounted(e,t,n){Un(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){Un(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){Un(e,t,n,s,"updated")}};function va(e,t){switch(e){case"SELECT":return Dt;case"TEXTAREA":return _e;default:switch(t){case"checkbox":return Bi;case"radio":return ma;default:return _e}}}function Un(e,t,n,s,o){const l=va(e.tagName,n.props&&n.props.type)[o];l&&l(e,t,n,s)}const xa=["ctrl","shift","alt","meta"],ya={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)=>xa.some(n=>e[`${n}Key`]&&!t.includes(n))},_a=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((o,...i)=>{for(let l=0;l{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(o=>{if(!("key"in o))return;const i=yt(o.key);if(t.some(l=>l===i||wa[l]===i))return e(o)}))},Sa=Ae({patchProp:fa},Yr);let Ro;function Aa(){return Ro||(Ro=kr(Sa))}const Ca=((...e)=>{const t=Aa().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=ka(s);if(!o)return;const i=t._component;!H(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,Ea(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t});function Ea(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ka(e){return ce(e)?document.querySelector(e):e}const Hi="pilotvault-theme";function Ta(){try{return localStorage.getItem(Hi)==="dark"?"dark":"light"}catch{return"light"}}const bn=L(Ta());function Ki(e){bn.value=e,document.documentElement.setAttribute("data-theme",e);try{localStorage.setItem(Hi,e)}catch{}}function Io(){Ki(bn.value==="dark"?"light":"dark")}Ki(bn.value);const Pa=[{code:"AL",name:"Albania",continent:"EU",bbox:"39.6,19.3,42.7,21.1"},{code:"AD",name:"Andorra",continent:"EU",bbox:"42.4,1.4,42.7,1.8"},{code:"AT",name:"Austria",continent:"EU",bbox:"46.4,9.5,49.0,17.2"},{code:"BY",name:"Belarus",continent:"EU",bbox:"51.2,23.2,56.2,32.8"},{code:"BE",name:"Belgium",continent:"EU",bbox:"49.5,2.5,51.5,6.4"},{code:"BA",name:"Bosnia and Herzegovina",continent:"EU",bbox:"42.6,15.7,45.3,19.6"},{code:"BG",name:"Bulgaria",continent:"EU",bbox:"41.2,22.4,44.2,28.6"},{code:"HR",name:"Croatia",continent:"EU",bbox:"42.4,13.5,46.6,19.4"},{code:"CY",name:"Cyprus",continent:"EU",bbox:"34.6,32.3,35.7,34.6"},{code:"CZ",name:"Czechia",continent:"EU",bbox:"48.6,12.1,51.1,18.9"},{code:"DK",name:"Denmark",continent:"EU",bbox:"54.6,8.1,57.8,12.7"},{code:"EE",name:"Estonia",continent:"EU",bbox:"57.5,21.8,59.7,28.2"},{code:"FI",name:"Finland",continent:"EU",bbox:"59.8,20.6,70.1,31.6"},{code:"FR",name:"France",continent:"EU",bbox:"41.3,-5.2,51.1,9.6"},{code:"DE",name:"Germany",continent:"EU",bbox:"47.2,5.8,55.1,15.1"},{code:"GR",name:"Greece",continent:"EU",bbox:"34.8,19.4,41.8,28.3"},{code:"HU",name:"Hungary",continent:"EU",bbox:"45.7,16.1,48.6,22.9"},{code:"IS",name:"Iceland",continent:"EU",bbox:"63.3,-24.6,66.6,-13.5"},{code:"IE",name:"Ireland",continent:"EU",bbox:"51.4,-10.6,55.4,-6.0"},{code:"IT",name:"Italy",continent:"EU",bbox:"36.6,6.6,47.1,18.6"},{code:"XK",name:"Kosovo",continent:"EU",bbox:"41.8,20.0,43.3,21.8"},{code:"LV",name:"Latvia",continent:"EU",bbox:"55.7,20.9,58.1,28.2"},{code:"LI",name:"Liechtenstein",continent:"EU",bbox:"47.0,9.4,47.3,9.6"},{code:"LT",name:"Lithuania",continent:"EU",bbox:"53.9,20.9,56.5,26.9"},{code:"LU",name:"Luxembourg",continent:"EU",bbox:"49.4,5.7,50.2,6.5"},{code:"MT",name:"Malta",continent:"EU",bbox:"35.8,14.1,36.1,14.6"},{code:"MD",name:"Moldova",continent:"EU",bbox:"45.4,26.6,48.5,30.2"},{code:"MC",name:"Monaco",continent:"EU",bbox:"43.72,7.40,43.75,7.44"},{code:"ME",name:"Montenegro",continent:"EU",bbox:"41.8,18.4,43.6,20.4"},{code:"NL",name:"Netherlands",continent:"EU",bbox:"50.7,3.3,53.7,7.2"},{code:"MK",name:"North Macedonia",continent:"EU",bbox:"40.8,20.4,42.4,23.0"},{code:"NO",name:"Norway",continent:"EU",bbox:"57.9,4.6,71.2,31.1"},{code:"PL",name:"Poland",continent:"EU",bbox:"49.0,14.1,54.9,24.2"},{code:"PT",name:"Portugal",continent:"EU",bbox:"36.9,-9.5,42.2,-6.2"},{code:"RO",name:"Romania",continent:"EU",bbox:"43.6,20.2,48.3,29.7"},{code:"SM",name:"San Marino",continent:"EU",bbox:"43.89,12.40,43.99,12.52"},{code:"RS",name:"Serbia",continent:"EU",bbox:"42.2,18.8,46.2,23.0"},{code:"SK",name:"Slovakia",continent:"EU",bbox:"47.7,16.8,49.6,22.6"},{code:"SI",name:"Slovenia",continent:"EU",bbox:"45.4,13.4,46.9,16.6"},{code:"ES",name:"Spain",continent:"EU",bbox:"35.9,-9.4,43.8,3.4"},{code:"SE",name:"Sweden",continent:"EU",bbox:"55.3,11.1,69.1,24.2"},{code:"CH",name:"Switzerland",continent:"EU",bbox:"45.8,5.9,47.8,10.5"},{code:"UA",name:"Ukraine",continent:"EU",bbox:"44.4,22.1,52.4,40.2"},{code:"GB",name:"United Kingdom",continent:"EU",bbox:"49.9,-8.7,60.9,1.8"},{code:"VA",name:"Vatican City",continent:"EU",bbox:"41.900,12.445,41.908,12.458"},{code:"RU",name:"Russia",continent:"EU",bbox:"41.2,19.6,81.9,180"},{code:"TR",name:"Turkey",continent:"EU",bbox:"35.8,25.7,42.3,44.8"},{code:"AF",name:"Afghanistan",continent:"AS",bbox:"29.4,60.5,38.5,74.9"},{code:"AM",name:"Armenia",continent:"AS",bbox:"38.8,43.4,41.3,46.6"},{code:"AZ",name:"Azerbaijan",continent:"AS",bbox:"38.4,44.8,41.9,50.4"},{code:"BH",name:"Bahrain",continent:"AS",bbox:"25.8,50.4,26.3,50.7"},{code:"BD",name:"Bangladesh",continent:"AS",bbox:"20.7,88.0,26.6,92.7"},{code:"BT",name:"Bhutan",continent:"AS",bbox:"26.7,88.7,28.3,92.1"},{code:"BN",name:"Brunei",continent:"AS",bbox:"4.0,114.0,5.1,115.4"},{code:"KH",name:"Cambodia",continent:"AS",bbox:"10.4,102.3,14.7,107.6"},{code:"CN",name:"China",continent:"AS",bbox:"18.2,73.5,53.6,134.8"},{code:"GE",name:"Georgia",continent:"AS",bbox:"41.0,40.0,43.6,46.7"},{code:"IN",name:"India",continent:"AS",bbox:"6.7,68.1,35.5,97.4"},{code:"ID",name:"Indonesia",continent:"AS",bbox:"-11.0,95.0,6.1,141.0"},{code:"IR",name:"Iran",continent:"AS",bbox:"25.0,44.0,39.8,63.3"},{code:"IQ",name:"Iraq",continent:"AS",bbox:"29.1,38.8,37.4,48.6"},{code:"IL",name:"Israel",continent:"AS",bbox:"29.5,34.2,33.3,35.9"},{code:"JP",name:"Japan",continent:"AS",bbox:"24.0,122.9,45.5,145.8"},{code:"JO",name:"Jordan",continent:"AS",bbox:"29.2,34.9,33.4,39.3"},{code:"KZ",name:"Kazakhstan",continent:"AS",bbox:"40.6,46.5,55.4,87.3"},{code:"KW",name:"Kuwait",continent:"AS",bbox:"28.5,46.5,30.1,48.4"},{code:"KG",name:"Kyrgyzstan",continent:"AS",bbox:"39.2,69.3,43.3,80.3"},{code:"LA",name:"Laos",continent:"AS",bbox:"13.9,100.1,22.5,107.7"},{code:"LB",name:"Lebanon",continent:"AS",bbox:"33.0,35.1,34.7,36.6"},{code:"MY",name:"Malaysia",continent:"AS",bbox:"0.9,99.6,7.4,119.3"},{code:"MV",name:"Maldives",continent:"AS",bbox:"-0.7,72.7,7.1,73.7"},{code:"MN",name:"Mongolia",continent:"AS",bbox:"41.6,87.7,52.1,119.9"},{code:"MM",name:"Myanmar",continent:"AS",bbox:"9.8,92.2,28.5,101.2"},{code:"NP",name:"Nepal",continent:"AS",bbox:"26.3,80.1,30.4,88.2"},{code:"KP",name:"North Korea",continent:"AS",bbox:"37.7,124.2,43.0,130.7"},{code:"OM",name:"Oman",continent:"AS",bbox:"16.6,52.0,26.4,59.8"},{code:"PK",name:"Pakistan",continent:"AS",bbox:"23.7,60.9,37.1,77.8"},{code:"PH",name:"Philippines",continent:"AS",bbox:"4.6,116.9,21.1,126.6"},{code:"QA",name:"Qatar",continent:"AS",bbox:"24.5,50.7,26.2,51.6"},{code:"SA",name:"Saudi Arabia",continent:"AS",bbox:"16.4,34.6,32.2,55.7"},{code:"SG",name:"Singapore",continent:"AS",bbox:"1.2,103.6,1.5,104.1"},{code:"KR",name:"South Korea",continent:"AS",bbox:"33.1,125.9,38.6,129.6"},{code:"LK",name:"Sri Lanka",continent:"AS",bbox:"5.9,79.7,9.8,81.9"},{code:"SY",name:"Syria",continent:"AS",bbox:"32.3,35.7,37.3,42.4"},{code:"TW",name:"Taiwan",continent:"AS",bbox:"21.9,120.0,25.3,122.0"},{code:"TJ",name:"Tajikistan",continent:"AS",bbox:"36.7,67.4,41.0,75.2"},{code:"TH",name:"Thailand",continent:"AS",bbox:"5.6,97.3,20.5,105.6"},{code:"TL",name:"Timor-Leste",continent:"AS",bbox:"-9.5,124.0,-8.1,127.3"},{code:"TM",name:"Turkmenistan",continent:"AS",bbox:"35.1,52.4,42.8,66.7"},{code:"AE",name:"United Arab Emirates",continent:"AS",bbox:"22.6,51.5,26.1,56.4"},{code:"UZ",name:"Uzbekistan",continent:"AS",bbox:"37.2,55.9,45.6,73.1"},{code:"VN",name:"Vietnam",continent:"AS",bbox:"8.2,102.1,23.4,109.5"},{code:"YE",name:"Yemen",continent:"AS",bbox:"12.1,42.5,19.0,54.5"},{code:"DZ",name:"Algeria",continent:"AF",bbox:"18.9,-8.7,37.1,12.0"},{code:"AO",name:"Angola",continent:"AF",bbox:"-18.0,11.6,-4.4,24.1"},{code:"BJ",name:"Benin",continent:"AF",bbox:"6.2,0.8,12.4,3.9"},{code:"BW",name:"Botswana",continent:"AF",bbox:"-26.9,20.0,-17.8,29.4"},{code:"BF",name:"Burkina Faso",continent:"AF",bbox:"9.4,-5.5,15.1,2.4"},{code:"BI",name:"Burundi",continent:"AF",bbox:"-4.5,29.0,-2.3,30.8"},{code:"CV",name:"Cabo Verde",continent:"AF",bbox:"14.8,-25.4,17.2,-22.7"},{code:"CM",name:"Cameroon",continent:"AF",bbox:"1.7,8.5,13.1,16.2"},{code:"CF",name:"Central African Republic",continent:"AF",bbox:"2.2,14.4,11.0,27.5"},{code:"TD",name:"Chad",continent:"AF",bbox:"7.4,13.5,23.4,24.0"},{code:"KM",name:"Comoros",continent:"AF",bbox:"-12.4,43.2,-11.4,44.5"},{code:"CG",name:"Congo",continent:"AF",bbox:"-5.0,11.1,3.7,18.6"},{code:"CD",name:"DR Congo",continent:"AF",bbox:"-13.5,12.2,5.4,31.3"},{code:"DJ",name:"Djibouti",continent:"AF",bbox:"10.9,41.7,12.7,43.4"},{code:"EG",name:"Egypt",continent:"AF",bbox:"22.0,25.0,31.7,36.9"},{code:"GQ",name:"Equatorial Guinea",continent:"AF",bbox:"0.9,9.3,3.8,11.4"},{code:"ER",name:"Eritrea",continent:"AF",bbox:"12.4,36.4,18.0,43.1"},{code:"SZ",name:"Eswatini",continent:"AF",bbox:"-27.3,30.8,-25.7,32.1"},{code:"ET",name:"Ethiopia",continent:"AF",bbox:"3.4,33.0,14.9,48.0"},{code:"GA",name:"Gabon",continent:"AF",bbox:"-4.0,8.7,2.3,14.5"},{code:"GM",name:"Gambia",continent:"AF",bbox:"13.1,-16.8,13.8,-13.8"},{code:"GH",name:"Ghana",continent:"AF",bbox:"4.7,-3.3,11.2,1.2"},{code:"GN",name:"Guinea",continent:"AF",bbox:"7.2,-15.1,12.7,-7.6"},{code:"GW",name:"Guinea-Bissau",continent:"AF",bbox:"10.9,-16.7,12.7,-13.6"},{code:"CI",name:"Ivory Coast",continent:"AF",bbox:"4.4,-8.6,10.7,-2.5"},{code:"KE",name:"Kenya",continent:"AF",bbox:"-4.7,33.9,5.5,41.9"},{code:"LS",name:"Lesotho",continent:"AF",bbox:"-30.7,27.0,-28.6,29.5"},{code:"LR",name:"Liberia",continent:"AF",bbox:"4.3,-11.5,8.6,-7.4"},{code:"LY",name:"Libya",continent:"AF",bbox:"19.5,9.3,33.2,25.2"},{code:"MG",name:"Madagascar",continent:"AF",bbox:"-25.6,43.2,-11.9,50.5"},{code:"MW",name:"Malawi",continent:"AF",bbox:"-17.1,32.7,-9.4,35.9"},{code:"ML",name:"Mali",continent:"AF",bbox:"10.1,-12.3,25.0,4.3"},{code:"MR",name:"Mauritania",continent:"AF",bbox:"14.7,-17.1,27.3,-4.8"},{code:"MU",name:"Mauritius",continent:"AF",bbox:"-20.5,57.3,-19.9,57.8"},{code:"MA",name:"Morocco",continent:"AF",bbox:"27.7,-13.2,35.9,-1.0"},{code:"MZ",name:"Mozambique",continent:"AF",bbox:"-26.9,30.2,-10.5,40.8"},{code:"NA",name:"Namibia",continent:"AF",bbox:"-28.9,11.7,-16.9,25.3"},{code:"NE",name:"Niger",continent:"AF",bbox:"11.7,0.2,23.5,16.0"},{code:"NG",name:"Nigeria",continent:"AF",bbox:"4.3,2.7,13.9,14.7"},{code:"RW",name:"Rwanda",continent:"AF",bbox:"-2.8,28.9,-1.1,30.9"},{code:"SN",name:"Senegal",continent:"AF",bbox:"12.3,-17.5,16.7,-11.4"},{code:"SL",name:"Sierra Leone",continent:"AF",bbox:"6.9,-13.3,10.0,-10.3"},{code:"SO",name:"Somalia",continent:"AF",bbox:"-1.7,40.9,12.0,51.4"},{code:"ZA",name:"South Africa",continent:"AF",bbox:"-34.8,16.5,-22.1,32.9"},{code:"SS",name:"South Sudan",continent:"AF",bbox:"3.5,24.1,12.2,35.9"},{code:"SD",name:"Sudan",continent:"AF",bbox:"8.7,21.8,22.2,38.6"},{code:"TZ",name:"Tanzania",continent:"AF",bbox:"-11.7,29.3,-1.0,40.4"},{code:"TG",name:"Togo",continent:"AF",bbox:"6.1,-0.1,11.1,1.8"},{code:"TN",name:"Tunisia",continent:"AF",bbox:"30.2,7.5,37.5,11.6"},{code:"UG",name:"Uganda",continent:"AF",bbox:"-1.5,29.6,4.2,35.0"},{code:"ZM",name:"Zambia",continent:"AF",bbox:"-18.1,21.9,-8.2,33.7"},{code:"ZW",name:"Zimbabwe",continent:"AF",bbox:"-22.4,25.2,-15.6,33.1"},{code:"CA",name:"Canada",continent:"NA",bbox:"41.7,-141.0,83.1,-52.6"},{code:"US",name:"United States",continent:"NA",bbox:"24.4,-125.0,49.4,-66.9"},{code:"MX",name:"Mexico",continent:"NA",bbox:"14.5,-118.4,32.7,-86.7"},{code:"GT",name:"Guatemala",continent:"NA",bbox:"13.7,-92.2,17.8,-88.2"},{code:"BZ",name:"Belize",continent:"NA",bbox:"15.9,-89.2,18.5,-87.8"},{code:"SV",name:"El Salvador",continent:"NA",bbox:"13.1,-90.1,14.4,-87.7"},{code:"HN",name:"Honduras",continent:"NA",bbox:"12.9,-89.4,16.5,-83.1"},{code:"NI",name:"Nicaragua",continent:"NA",bbox:"10.7,-87.7,15.0,-83.1"},{code:"CR",name:"Costa Rica",continent:"NA",bbox:"8.0,-85.9,11.2,-82.5"},{code:"PA",name:"Panama",continent:"NA",bbox:"7.2,-83.1,9.6,-77.2"},{code:"CU",name:"Cuba",continent:"NA",bbox:"19.8,-85.0,23.3,-74.1"},{code:"DO",name:"Dominican Republic",continent:"NA",bbox:"17.5,-72.0,19.9,-68.3"},{code:"HT",name:"Haiti",continent:"NA",bbox:"18.0,-74.5,20.1,-71.6"},{code:"JM",name:"Jamaica",continent:"NA",bbox:"17.7,-78.4,18.5,-76.2"},{code:"BS",name:"Bahamas",continent:"NA",bbox:"20.9,-79.0,27.3,-72.7"},{code:"TT",name:"Trinidad and Tobago",continent:"NA",bbox:"10.0,-61.9,11.4,-60.5"},{code:"AR",name:"Argentina",continent:"SA",bbox:"-55.1,-73.6,-21.8,-53.6"},{code:"BO",name:"Bolivia",continent:"SA",bbox:"-22.9,-69.6,-9.7,-57.5"},{code:"BR",name:"Brazil",continent:"SA",bbox:"-33.8,-74.0,5.3,-34.8"},{code:"CL",name:"Chile",continent:"SA",bbox:"-55.9,-75.6,-17.5,-66.4"},{code:"CO",name:"Colombia",continent:"SA",bbox:"-4.2,-79.0,12.5,-66.9"},{code:"EC",name:"Ecuador",continent:"SA",bbox:"-5.0,-81.1,1.4,-75.2"},{code:"GY",name:"Guyana",continent:"SA",bbox:"1.2,-61.4,8.6,-56.5"},{code:"PY",name:"Paraguay",continent:"SA",bbox:"-27.6,-62.6,-19.3,-54.3"},{code:"PE",name:"Peru",continent:"SA",bbox:"-18.4,-81.3,0.0,-68.7"},{code:"SR",name:"Suriname",continent:"SA",bbox:"1.8,-58.1,6.0,-54.0"},{code:"UY",name:"Uruguay",continent:"SA",bbox:"-35.0,-58.4,-30.1,-53.1"},{code:"VE",name:"Venezuela",continent:"SA",bbox:"0.6,-73.4,12.2,-59.8"},{code:"AU",name:"Australia",continent:"OC",bbox:"-43.6,113.3,-10.7,153.6"},{code:"NZ",name:"New Zealand",continent:"OC",bbox:"-47.3,166.4,-34.4,178.6"},{code:"PG",name:"Papua New Guinea",continent:"OC",bbox:"-11.7,140.8,-1.3,155.9"},{code:"FJ",name:"Fiji",continent:"OC",bbox:"-19.2,177.0,-16.0,180.0"}],Oa=[["EU","European countries"],["AS","Asian countries"],["AF","African countries"],["NA","North American countries"],["SA","South American countries"],["OC","Oceanian countries"]];function Ua(){return Oa.map(([e,t])=>({label:t,options:Pa.filter(n=>n.continent===e).slice().sort((n,s)=>n.name.localeCompare(s.name)).map(n=>({value:n.bbox,label:n.name}))}))}const Ma={class:"overflow-hidden rounded-lg border border-subtle bg-card shadow-xs"},Ra={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Ia={class:"text-base font-semibold text-primary"},Fa={class:"pv-eyebrow"},Na={class:"w-full text-left text-sm"},La={class:"border-t border-subtle px-5 py-2.5 font-mono text-xs whitespace-nowrap"},Da={class:"text-primary"},ja={class:"border-t border-subtle px-5 py-2.5 text-secondary"},ms={__name:"EndpointTable",props:{title:String,auth:String,endpoints:Array},setup(e){const t={GET:"text-success",POST:"text-brand-text",PATCH:"text-warning",DELETE:"text-danger"};return(n,s)=>(E(),k("div",Ma,[f("div",Ra,[f("div",Ia,O(e.title),1),f("span",Fa,O(e.auth),1)]),f("table",Na,[s[0]||(s[0]=f("thead",null,[f("tr",{class:"pv-eyebrow"},[f("th",{class:"px-5 py-2.5 font-medium"},"Endpoint"),f("th",{class:"px-5 py-2.5 font-medium"},"Description")])],-1)),f("tbody",null,[(E(!0),k(ne,null,ye(e.endpoints,o=>(E(),k("tr",{key:o.method+o.path,class:"transition-colors hover:bg-sunken"},[f("td",La,[f("span",{class:Ie(["font-semibold",t[o.method]])},O(o.method),3),f("span",Da,O(o.path),1)]),f("td",ja,O(o.desc),1)]))),128))])])]))}},$a={class:"mx-auto flex max-w-5xl flex-col gap-6 px-6 pt-12 pb-16"},Ba={class:"flex items-center gap-3"},Va={key:0,class:"pv-eyebrow hidden truncate sm:inline"},Ha=["title"],Ka={key:0,class:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},za={key:1,class:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ga={key:0,class:"rounded-lg border border-subtle bg-card px-5 py-10 text-center shadow-sm"},Wa={key:1,class:"mx-auto w-full max-w-sm rounded-lg border border-subtle bg-card shadow-sm"},Ja={class:"flex flex-col gap-1"},qa={class:"flex flex-col gap-1"},Ya={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},Za=["disabled"],Xa={class:"flex gap-1 self-start rounded-lg border border-subtle bg-card p-1 shadow-sm"},Qa=["onClick"],ec={class:"flex flex-col gap-6"},tc={class:"rounded-lg border border-subtle bg-card shadow-sm"},nc={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},sc={class:"pv-eyebrow"},oc={class:"min-w-0"},ic={class:"text-sm font-semibold text-primary"},lc={key:0,class:"truncate font-mono text-xs text-secondary"},rc={class:"flex items-center justify-between gap-3 border-t border-subtle px-5 py-3.5"},ac={class:"font-mono text-xs text-secondary"},cc={class:"flex flex-col gap-6"},uc={class:"rounded-lg border border-subtle bg-card shadow-sm"},dc={class:"flex flex-col gap-3 px-5 py-5"},fc={class:"flex flex-col gap-3 sm:flex-row"},pc={class:"flex flex-1 flex-col gap-1"},hc={class:"flex flex-1 flex-col gap-1"},bc={class:"flex flex-col gap-3 sm:flex-row"},mc={class:"flex flex-1 flex-col gap-1"},gc=["value"],vc={class:"flex flex-1 flex-col gap-1"},xc=["value"],yc={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},_c={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},wc=["disabled"],Sc={class:"rounded-lg border border-subtle bg-card shadow-sm"},Ac={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Cc={class:"pv-eyebrow"},Ec={class:"flex flex-col"},kc={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},Tc={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},Pc={key:2,class:"px-5 py-6 text-sm text-secondary"},Oc={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},Uc={class:"min-w-0 flex-1"},Mc={class:"flex flex-wrap items-center gap-2"},Rc={class:"truncate text-sm font-semibold text-primary"},Ic={key:0,class:"rounded-sm bg-brand/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-brand-text"},Fc={key:1,class:"rounded-sm bg-warning-tint px-1.5 py-0.5 font-mono text-[10px] font-medium text-warning"},Nc={class:"mt-0.5 font-mono text-xs text-secondary"},Lc={class:"flex shrink-0 items-center gap-2"},Dc=["onClick"],jc=["disabled","onClick"],$c={key:0,class:"mt-3 flex flex-col gap-3 rounded-md border border-subtle bg-sunken px-4 py-4"},Bc={class:"flex flex-col gap-3 sm:flex-row"},Vc={class:"flex flex-1 flex-col gap-1"},Hc={class:"flex flex-1 flex-col gap-1"},Kc={class:"flex flex-col gap-3 sm:flex-row"},zc={class:"flex flex-1 flex-col gap-1"},Gc=["disabled"],Wc=["value"],Jc={key:0,class:"text-[11px] text-muted"},qc={class:"flex flex-1 flex-col gap-1"},Yc=["value"],Zc={class:"flex items-center gap-2"},Xc={class:"flex items-center gap-2"},Qc=["disabled","onClick"],eu={class:"flex flex-col gap-6"},tu={class:"rounded-lg border border-subtle bg-card shadow-sm"},nu={class:"flex flex-col gap-3 px-5 py-5"},su={class:"flex flex-col gap-2 sm:flex-row"},ou=["disabled"],iu={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},lu={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},ru={class:"rounded-lg border border-subtle bg-card shadow-sm"},au={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},cu={class:"pv-eyebrow"},uu={class:"flex flex-col"},du={key:0,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},fu={key:1,class:"px-5 py-6 text-sm text-secondary"},pu={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},hu={class:"min-w-0 flex-1"},bu={class:"truncate text-sm font-semibold text-primary"},mu={class:"mt-0.5 font-mono text-xs text-secondary"},gu={class:"flex shrink-0 items-center gap-2"},vu=["onClick"],xu=["disabled","title","onClick"],yu={key:0,class:"mt-3 flex flex-col gap-2 rounded-md border border-subtle bg-sunken px-4 py-4 sm:flex-row sm:items-end"},_u={class:"flex flex-1 flex-col gap-1"},wu=["onKeyup"],Su={class:"flex items-center gap-2"},Au=["disabled","onClick"],Cu={class:"flex flex-col gap-6"},Eu={class:"rounded-lg border border-subtle bg-card shadow-sm"},ku={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Tu={class:"flex flex-col gap-3 px-5 py-5"},Pu={class:"flex flex-col gap-1"},Ou={class:"flex flex-col gap-1"},Uu={class:"flex flex-col gap-1"},Mu=["placeholder"],Ru={key:0,class:"font-mono text-[11px] text-muted"},Iu={key:0},Fu={key:1},Nu={key:1,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},Lu={key:2,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},Du={class:"flex flex-wrap items-center gap-2"},ju=["disabled"],$u=["disabled"],Bu={class:"flex flex-col gap-6"},Vu={class:"rounded-lg border border-subtle bg-card shadow-sm"},Hu={class:"flex flex-col"},Ku={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},zu={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},Gu={key:2,class:"px-5 py-6 text-sm text-secondary"},Wu={key:3,class:"flex gap-1 overflow-x-auto overflow-y-hidden border-b border-subtle px-3 pt-1"},Ju=["onClick"],qu={key:4,class:"px-5 py-6 text-sm text-secondary"},Yu={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},Zu={class:"min-w-0 flex-1"},Xu={class:"flex flex-wrap items-center gap-2"},Qu={class:"text-sm font-semibold text-primary"},ed=["title"],td={key:0},nd={class:"mt-0.5 font-mono text-xs text-secondary"},sd={key:0,class:"mt-0.5 text-[11px] text-secondary"},od={key:1,class:"mt-2 flex flex-col gap-1.5"},id={class:"rounded-sm bg-sunken px-1.5 py-0.5 font-mono text-[10px] text-secondary"},ld={key:0,class:"font-mono text-[10px] text-muted"},rd={key:1,class:"w-full text-[11px] text-secondary sm:w-auto"},ad={key:2,class:"mt-1 truncate font-mono text-[11px] text-muted"},cd={class:"flex shrink-0 items-center gap-2"},ud=["disabled","onClick"],dd=["onClick"],fd=["disabled","onClick"],pd=["disabled","onClick"],hd={key:0,class:"mt-3 flex flex-col gap-2 rounded-md border border-subtle bg-sunken px-4 py-4"},bd={class:"pv-eyebrow"},md={key:0,class:"text-danger"},gd=["onUpdate:modelValue"],vd=["value"],xd=["value","onChange"],yd=["label"],_d=["value"],wd=["onUpdate:modelValue"],Sd=["onUpdate:modelValue","type","placeholder"],Ad={key:3,class:"text-[11px] text-muted"},Cd={class:"flex items-center gap-2"},Ed=["disabled","onClick"],kd={class:"border-t border-subtle px-5 py-4"},Td={class:"flex flex-col gap-2 sm:flex-row"},Pd=["disabled"],Od={key:0,class:"mt-2 text-xs font-medium text-danger"},Mn="pv_panel_token",Ud={__name:"App",setup(e){const t=L(localStorage.getItem(Mn)||""),n=L(null),s=L(!1),o=L(!0),i=L({email:"",password:""}),l=L(""),r=L(!1),c=L("overview"),m=[{id:"overview",label:"Overview"},{id:"users",label:"Users"},{id:"organizations",label:"Organizations"},{id:"pocketbase",label:"PocketBase"},{id:"plugins",label:"Plugins"}];async function h(b){try{const u=await fetch("/api/me",{headers:{Authorization:b}});if(!u.ok)return!1;const d=await u.json();return d.role!=="superadmin"?!1:(n.value={id:d.id,email:d.email,role:d.role},!0)}catch{return!1}}async function x(b){t.value=b,localStorage.setItem(Mn,b),s.value=!0,Xs(),Me(),bt(),It(),he()}async function U(){l.value="";const b=i.value.email.trim().toLowerCase();if(!b||!i.value.password){l.value="Enter your email and password.";return}r.value=!0;try{const u=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:b,password:i.value.password})}),d=await u.json().catch(()=>({}));if(!u.ok||!d.token){l.value="Invalid email or password.";return}if(!await h(d.token)){l.value="Access to this panel is restricted to superadmins.";return}i.value.password="",await x(d.token)}catch{l.value="Cannot reach the API server."}finally{r.value=!1}}function R(){Qs(),localStorage.removeItem(Mn),t.value="",n.value=null,s.value=!1}const J=L(null),I=L({url:"",adminEmail:"",adminPassword:""}),G=L(null),Y=L(""),B=L(""),Z=L(!1),N=L(!1);function z(b){const u={Authorization:t.value};return b&&(u["Content-Type"]="application/json"),u}async function Me(){try{const b=await fetch("/api/admin/pb-config",{headers:z()});if(!b.ok)return;const u=await b.json();J.value=u,I.value={url:u.url||"",adminEmail:u.adminEmail||"",adminPassword:""},G.value=u.probe||null}catch{}}async function Le(){Y.value="",B.value="",N.value=!0;try{const b=await fetch("/api/admin/pb-config/test",{method:"POST",headers:z(!0),body:JSON.stringify(I.value)});G.value=await b.json()}catch{B.value="Could not run the test."}finally{N.value=!1}}async function We(){var b;if(Y.value="",B.value="",!I.value.url.trim()){B.value="A PocketBase URL is required.";return}Z.value=!0;try{const u=await fetch("/api/admin/pb-config",{method:"PUT",headers:z(!0),body:JSON.stringify(I.value)}),d=await u.json().catch(()=>({}));if(!u.ok){B.value=d.error||"Could not save the connection.";return}J.value=d.config,G.value=((b=d.config)==null?void 0:b.probe)||null,I.value={url:d.config.url,adminEmail:d.config.adminEmail,adminPassword:""},Y.value=d.warning||"Connection saved."}catch{B.value="Could not reach the API server."}finally{Z.value=!1}}const De=L([]),Oe=L(""),fe=L(""),Je=L(""),Ce=L({}),ve=L(""),Wt=[{label:"World",options:[{value:"-90,-180,90,180",label:"World"}]},{label:"Continents",options:[{value:"34,-25,72,45",label:"Europe"},{value:"-35,-18,38,52",label:"Africa"},{value:"5,25,82,180",label:"Asia"},{value:"7,-168,72,-52",label:"North America"},{value:"-56,-82,13,-34",label:"South America"},{value:"-48,110,-10,180",label:"Oceania"}]},...Ua()],be=Wt.flatMap(b=>b.options);function oe(b){const u=String(b||"").split(",").map(S=>S.trim());if(u.length!==4)return"";const d=u.map(Number);return d.some(S=>Number.isNaN(S))?"":d.join(",")}const q=L({});function qe(b){if(q.value[b])return"__custom__";const u=oe(Ce.value[b]),d=u&&be.find(S=>oe(S.value)===u);return d?d.value:"__custom__"}function Pt(b,u){if(u==="__custom__"){q.value={...q.value,[b]:!0};return}q.value={...q.value,[b]:!1},Ce.value[b]=u}const xe=L({name:"",baseURL:"",provider:""}),me=L(""),_t=L(!1),ns=[{id:"apis-external",label:"APIs — External"},{id:"drives-external",label:"Drives — External"},{id:"drives-local",label:"Drives — Local"}],Jt=L("apis-external");function wt(b){return b.category||"apis-external"}function Ot(b){return De.value.filter(u=>wt(u)===b)}const Ut=ks(()=>Ot(Jt.value)),xn={builtin:"bg-success-tint text-success",external:"bg-warning-tint text-warning"},St={ok:"bg-success-tint text-success",degraded:"bg-warning-tint text-warning",down:"bg-danger-tint text-danger"};async function bt(){Oe.value="";try{const b=await fetch("/api/admin/plugins",{headers:z()});if(!b.ok){Oe.value="Could not load plugins.";return}const u=await b.json();De.value=u.plugins||[];for(const d of De.value)d.enabled&&!d.health&&a(d.name)}catch{Oe.value="Could not reach the API server."}}async function a(b){try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(b)}/health`,{method:"POST",headers:z()}),d=await u.json().catch(()=>({}));if(u.ok&&d.health){const S=p(b);S&&(S.health=d.health)}}catch{}}function p(b){return De.value.find(u=>u.name===b)}async function g(b){ve.value=b.name,fe.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(b.name)}`,{method:"PUT",headers:z(!0),body:JSON.stringify({enabled:!b.enabled})}),d=await u.json().catch(()=>({}));u.ok?d.warning&&(fe.value=`${b.name}: ${d.warning}`):fe.value=d.error||"Could not update the plugin.",await bt()}finally{ve.value=""}}function w(b){Je.value=Je.value===b.name?"":b.name;const u={...b.config||{}};for(const d of b.configFields||[])u[d.key]===void 0&&d.default&&(u[d.key]=d.default);Ce.value=u,q.value={}}async function _(b){ve.value=b.name,fe.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(b.name)}`,{method:"PUT",headers:z(!0),body:JSON.stringify({config:Ce.value})}),d=await u.json().catch(()=>({}));u.ok?(fe.value=d.warning?`${b.name}: ${d.warning}`:"Configuration saved.",Je.value=""):fe.value=d.error||"Could not save the configuration.",await bt()}finally{ve.value=""}}async function y(b){ve.value=b.name,fe.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(b.name)}/health`,{method:"POST",headers:z()}),d=await u.json().catch(()=>({}));if(u.ok&&d.health){const S=p(b.name);S&&(S.health=d.health)}else fe.value=d.error||"Health check failed."}finally{ve.value=""}}async function T(b){if(b.kind==="external"){ve.value=b.name;try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(b.name)}`,{method:"DELETE",headers:z()});if(!u.ok){const d=await u.json().catch(()=>({}));fe.value=d.error||"Could not remove the plugin."}await bt()}finally{ve.value=""}}}async function C(){if(me.value="",!xe.value.name.trim()||!xe.value.baseURL.trim()){me.value="Name and base URL are required.";return}_t.value=!0;try{const b=await fetch("/api/admin/plugins",{method:"POST",headers:z(!0),body:JSON.stringify(xe.value)}),u=await b.json().catch(()=>({}));if(!b.ok){me.value=u.error||"Could not register the plugin.";return}xe.value={name:"",baseURL:"",provider:""},fe.value="External plugin registered.",await bt()}catch{me.value="Could not reach the API server."}finally{_t.value=!1}}const A=L([]),v=L([]),M=L(""),P=[{value:"user",label:"User"},{value:"admin",label:"Admin"},{value:"superadmin",label:"Superadmin"}],F={user:"User",admin:"Admin",superadmin:"Superadmin"},D={user:"bg-sunken text-secondary",admin:"bg-warning-tint text-warning",superadmin:"bg-success-tint text-success"},K=ks(()=>{const b={};for(const u of A.value)u.organization&&(b[u.organization]=(b[u.organization]||0)+1);return b});function W(b,u){if(!b)return u;if(b.error)return b.error;if(b.data&&typeof b.data=="object"){const d=[];for(const S in b.data)b.data[S]&&b.data[S].message&&d.push(`${S}: ${b.data[S].message}`);if(d.length)return d.join("; ")}return b.message||u}const $=L({email:"",password:"",role:"user",organization:""}),ee=L(""),ae=L(""),Ee=L(!1),ue=L(""),pe=L({}),it=L(""),ie=L("");async function he(){M.value="";try{const b=await fetch("/api/users",{headers:z()}),u=await b.json().catch(()=>({}));if(!b.ok){M.value=W(u,"Could not load users.");return}A.value=u.users||[]}catch{M.value="Could not reach the API server."}}async function yn(){ee.value="",ae.value="";const b=$.value.email.trim().toLowerCase();if(!b||!b.includes("@")){ee.value="A valid email is required.";return}if($.value.password.length<8){ee.value="Password must be at least 8 characters.";return}Ee.value=!0;try{const u=await fetch("/api/users",{method:"POST",headers:z(!0),body:JSON.stringify({email:b,password:$.value.password,role:$.value.role,organization:$.value.organization})}),d=await u.json().catch(()=>({}));if(!u.ok){ee.value=W(d,"Could not create the user.");return}$.value={email:"",password:"",role:"user",organization:""},ae.value=`Created ${d.user?d.user.email:"user"}.`,await he()}catch{ee.value="Could not reach the API server."}finally{Ee.value=!1}}function _n(b){ie.value="",ue.value=ue.value===b.id?"":b.id,pe.value={email:b.email,role:b.role,organization:b.organization||"",verified:!!b.verified,password:""}}async function zi(b){ie.value="",it.value=b.id;try{const u={},d=pe.value;if(d.email.trim().toLowerCase()!==b.email&&(u.email=d.email.trim().toLowerCase()),d.role!==b.role&&(u.role=d.role),(d.organization||"")!==(b.organization||"")&&(u.organization=d.organization||""),d.verified!==!!b.verified&&(u.verified=d.verified),d.password&&(u.password=d.password),Object.keys(u).length===0){ie.value="No changes to save.";return}const S=await fetch(`/api/users/${encodeURIComponent(b.id)}`,{method:"PATCH",headers:z(!0),body:JSON.stringify(u)}),de=await S.json().catch(()=>({}));if(!S.ok){ie.value=W(de,"Could not update the user.");return}ie.value=`Updated ${b.email}.`,ue.value="",await he()}catch{ie.value="Could not reach the API server."}finally{it.value=""}}async function Gi(b){if(b.id!==(n.value&&n.value.id)&&confirm(`Delete user ${b.email}? This cannot be undone.`)){ie.value="",it.value=b.id;try{const u=await fetch(`/api/users/${encodeURIComponent(b.id)}`,{method:"DELETE",headers:z()}),d=await u.json().catch(()=>({}));if(!u.ok){ie.value=W(d,"Could not delete the user.");return}ie.value=`Deleted ${b.email}.`,ue.value===b.id&&(ue.value=""),await he()}catch{ie.value="Could not reach the API server."}finally{it.value=""}}}const wn=L(""),Mt=L(""),Sn=L(""),An=L(!1),lt=L(""),Cn=L(""),Rt=L(""),Re=L("");async function It(){try{const b=await fetch("/api/orgs",{headers:z()});if(!b.ok)return;const u=await b.json().catch(()=>({}));v.value=u.organizations||[]}catch{}}async function Ws(){Mt.value="",Sn.value="";const b=wn.value.trim();if(!b){Mt.value="An organization name is required.";return}An.value=!0;try{const u=await fetch("/api/orgs",{method:"POST",headers:z(!0),body:JSON.stringify({name:b})}),d=await u.json().catch(()=>({}));if(!u.ok){Mt.value=W(d,"Could not create the organization.");return}wn.value="",Sn.value=`Created ${d.organization?d.organization.name:"organization"}.`,await It()}catch{Mt.value="Could not reach the API server."}finally{An.value=!1}}function Wi(b){Re.value="",lt.value=lt.value===b.id?"":b.id,Cn.value=b.name}async function Js(b){Re.value="";const u=Cn.value.trim();if(!u){Re.value="An organization name is required.";return}if(u===b.name){lt.value="";return}Rt.value=b.id;try{const d=await fetch(`/api/orgs/${encodeURIComponent(b.id)}`,{method:"PATCH",headers:z(!0),body:JSON.stringify({name:u})}),S=await d.json().catch(()=>({}));if(!d.ok){Re.value=W(S,"Could not rename the organization.");return}Re.value=`Renamed to ${u}.`,lt.value="",await It(),await he()}catch{Re.value="Could not reach the API server."}finally{Rt.value=""}}async function Ji(b){const u=K.value[b.id]||0;if(u>0){Re.value=`${b.name} still has ${u} member${u===1?"":"s"}; reassign or remove them first.`;return}if(confirm(`Delete organization ${b.name}?`)){Re.value="",Rt.value=b.id;try{const d=await fetch(`/api/orgs/${encodeURIComponent(b.id)}`,{method:"DELETE",headers:z()}),S=await d.json().catch(()=>({}));if(!d.ok){Re.value=W(S,"Could not delete the organization.");return}Re.value=`Deleted ${b.name}.`,lt.value===b.id&&(lt.value=""),await It()}catch{Re.value="Could not reach the API server."}finally{Rt.value=""}}}const ss=L(null),En=L(null),Ft=L({apiServer:{status:"checking",detail:""},pocketBase:{status:"checking",detail:""},webApp:{status:"checking",detail:""}});let kn=null;const qi=[{key:"apiServer",label:"API server"},{key:"pocketBase",label:"PocketBase"},{key:"webApp",label:"Web App"}],qs={checking:{label:"checking",cls:"bg-sunken text-secondary"},ok:{label:"operational",cls:"bg-success-tint text-success"},down:{label:"unreachable",cls:"bg-danger-tint text-danger"},unreachable:{label:"unreachable",cls:"bg-danger-tint text-danger"}};function Ys(b){const u=[];return b.httpStatus&&u.push("HTTP "+b.httpStatus),b.url&&u.push(b.url),typeof b.latencyMs=="number"&&u.push(b.latencyMs+"ms"),u.join(" · ")}async function Zs(){var b,u;try{const d=await fetch("/api/status");if(!d.ok)throw new Error("status "+d.status);const S=await d.json(),de=S.apiServer||{};En.value=de.devices??0,Ft.value={apiServer:{status:"ok",detail:""},pocketBase:{status:((b=S.pocketBase)==null?void 0:b.status)==="ok"?"ok":"down",detail:Ys(S.pocketBase||{})},webApp:{status:((u=S.webApp)==null?void 0:u.status)==="ok"?"ok":"down",detail:Ys(S.webApp||{})}}}catch{En.value=null,Ft.value={apiServer:{status:"unreachable",detail:""},pocketBase:{status:"unreachable",detail:""},webApp:{status:"unreachable",detail:""}}}ss.value=new Date}function Xs(){Zs(),clearInterval(kn),kn=setInterval(Zs,1e4)}function Qs(){clearInterval(kn),kn=null}mi(async()=>{t.value&&await h(t.value)?(s.value=!0,Xs(),Me(),bt(),It(),he()):t.value&&(localStorage.removeItem(Mn),t.value=""),o.value=!1}),Ks(()=>Qs());const Yi=[{method:"POST",path:"/api/auth/login",desc:"Exchange email + password for a session (via PocketBase)"},{method:"GET",path:"/api/auth/validate",desc:"Validate the current session token"},{method:"GET",path:"/api/me",desc:"Caller's id, email, role, and organization from their token"},{method:"GET",path:"/api/preferences",desc:"Read the caller's saved settings blob"},{method:"PUT",path:"/api/preferences",desc:"Persist the caller's settings onto their user record"},{method:"GET",path:"/api/devices",desc:"List connected devices and last-known state"},{method:"GET",path:"/api/devices/{id}/track",desc:"GPS track history for a device"},{method:"POST",path:"/api/devices/{id}/command",desc:"Send a command down to a device"},{method:"DELETE",path:"/api/devices/{id}",desc:"Forget a device's stored state"},{method:"GET",path:"/ws/ui",desc:"Live telemetry stream (WebSocket)"}],Zi=[{method:"GET",path:"/api/users",desc:"List users (admin: own org · superadmin: all)"},{method:"POST",path:"/api/users",desc:"Create a user {email, password, role, organization?}"},{method:"PATCH",path:"/api/users/{id}",desc:"Edit a user (role/org changes are scope-checked)"},{method:"DELETE",path:"/api/users/{id}",desc:"Delete a user (not self; admins in-org only)"},{method:"GET",path:"/api/orgs",desc:"List organizations (admin: own · superadmin: all)"},{method:"POST",path:"/api/orgs",desc:"Create an organization {name} (superadmin)"},{method:"PATCH",path:"/api/orgs/{id}",desc:"Rename an organization (superadmin)"},{method:"DELETE",path:"/api/orgs/{id}",desc:"Delete an empty organization (superadmin)"},{method:"GET",path:"/api/admin/pb-config",desc:"Read the PocketBase connection + live probe (superadmin)"},{method:"POST",path:"/api/admin/pb-config/test",desc:"Test a candidate connection without applying (superadmin)"},{method:"PUT",path:"/api/admin/pb-config",desc:"Update + persist the PocketBase connection (superadmin)"},{method:"GET",path:"/api/admin/plugins",desc:"List plugins + state + last health (superadmin)"},{method:"POST",path:"/api/admin/plugins",desc:"Register an external plugin {name, baseURL} (superadmin)"},{method:"PUT",path:"/api/admin/plugins/{name}",desc:"Enable/disable + configure a plugin (superadmin)"},{method:"DELETE",path:"/api/admin/plugins/{name}",desc:"Remove an external plugin (superadmin)"},{method:"POST",path:"/api/admin/plugins/{name}/health",desc:"Run a plugin health check (superadmin)"}],Xi=[{method:"GET",path:"/ws/device?id={id}",desc:"Device telemetry uplink (WebSocket)"},{method:"POST",path:"/api/telemetry?id={id}",desc:"Push a single telemetry event over HTTP"},{method:"GET",path:"/healthz",desc:"Readiness probe"}];return(b,u)=>(E(),k("div",$a,[f("div",Ba,[u[25]||(u[25]=Nr('
PilotVault
API server
',3)),s.value&&n.value?(E(),k("span",Va,O(n.value.email),1)):V("",!0),s.value?(E(),k("button",{key:1,class:"pv-btn-sec pv-btn-sm",onClick:R},"Sign out")):V("",!0),f("button",{class:"pv-btn-sec pv-btn-sm",title:Qt(bn)==="dark"?"Switch to light theme":"Switch to dark theme",onClick:u[0]||(u[0]=(...d)=>Qt(Io)&&Qt(Io)(...d))},[Qt(bn)==="dark"?(E(),k("svg",Ka,[...u[22]||(u[22]=[f("circle",{cx:"12",cy:"12",r:"4"},null,-1),f("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"},null,-1)])])):(E(),k("svg",za,[...u[23]||(u[23]=[f("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)])])),u[24]||(u[24]=je(" Theme ",-1))],8,Ha)]),o.value?(E(),k("div",Ga,[...u[26]||(u[26]=[f("span",{class:"pv-eyebrow"},"Checking session…",-1)])])):s.value?(E(),k(ne,{key:2},[f("div",Xa,[(E(),k(ne,null,ye(m,d=>f("button",{key:d.id,class:Ie(["rounded-md px-3.5 py-1.5 text-sm font-semibold transition",c.value===d.id?"bg-brand text-on-brand":"text-secondary hover:text-primary"]),onClick:S=>c.value=d.id},O(d.label),11,Qa)),64))]),le(f("div",ec,[f("div",tc,[f("div",nc,[u[30]||(u[30]=f("div",{class:"text-base font-semibold text-primary"},"Status",-1)),f("span",sc,O(ss.value?"checked "+ss.value.toLocaleTimeString():"—"),1)]),f("div",null,[(E(),k(ne,null,ye(qi,d=>f("div",{key:d.key,class:"flex items-center justify-between gap-3 border-t border-subtle px-5 py-3.5 first:border-t-0"},[f("div",oc,[f("div",ic,O(d.label),1),Ft.value[d.key].detail?(E(),k("div",lc,O(Ft.value[d.key].detail),1)):V("",!0)]),f("span",{class:Ie(["inline-flex shrink-0 items-center gap-1.5 rounded-sm px-2.5 py-1 font-mono text-xs font-medium",qs[Ft.value[d.key].status].cls])},[u[31]||(u[31]=f("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),je(" "+O(qs[Ft.value[d.key].status].label),1)],2)])),64)),f("div",rc,[u[32]||(u[32]=f("div",{class:"text-sm font-semibold text-primary"},"Devices",-1)),f("span",ac,O(En.value===null?"—":En.value+" online"),1)])])]),Ne(ms,{title:"Client API",auth:"PocketBase session",endpoints:Yi}),Ne(ms,{title:"Management API",auth:"Admin · superadmin",endpoints:Zi}),Ne(ms,{title:"Device API",auth:"Device uplink",endpoints:Xi})],512),[[Zt,c.value==="overview"]]),le(f("div",cc,[f("div",uc,[u[38]||(u[38]=f("div",{class:"border-b border-subtle px-5 py-4"},[f("div",{class:"text-base font-semibold text-primary"},"Add user"),f("span",{class:"pv-eyebrow"},"Create an account")],-1)),f("div",dc,[f("div",fc,[f("label",pc,[u[33]||(u[33]=f("span",{class:"pv-eyebrow"},"Email",-1)),le(f("input",{"onUpdate:modelValue":u[3]||(u[3]=d=>$.value.email=d),type:"email",class:"pv-input",placeholder:"pilot@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[_e,$.value.email]])]),f("label",hc,[u[34]||(u[34]=f("span",{class:"pv-eyebrow"},"Password",-1)),le(f("input",{"onUpdate:modelValue":u[4]||(u[4]=d=>$.value.password=d),type:"password",class:"pv-input",placeholder:"min. 8 characters",autocomplete:"new-password"},null,512),[[_e,$.value.password]])])]),f("div",bc,[f("label",mc,[u[35]||(u[35]=f("span",{class:"pv-eyebrow"},"Role",-1)),le(f("select",{"onUpdate:modelValue":u[5]||(u[5]=d=>$.value.role=d),class:"pv-input"},[(E(),k(ne,null,ye(P,d=>f("option",{key:d.value,value:d.value},O(d.label),9,gc)),64))],512),[[Dt,$.value.role]])]),f("label",vc,[u[37]||(u[37]=f("span",{class:"pv-eyebrow"},"Organization",-1)),le(f("select",{"onUpdate:modelValue":u[6]||(u[6]=d=>$.value.organization=d),class:"pv-input"},[u[36]||(u[36]=f("option",{value:""},"— none —",-1)),(E(!0),k(ne,null,ye(v.value,d=>(E(),k("option",{key:d.id,value:d.id},O(d.name),9,xc))),128))],512),[[Dt,$.value.organization]])])]),ee.value?(E(),k("p",yc,O(ee.value),1)):ae.value?(E(),k("p",_c,O(ae.value),1)):V("",!0),f("div",null,[f("button",{class:"pv-btn",disabled:Ee.value,onClick:yn},O(Ee.value?"Creating…":"Create user"),9,wc)])])]),f("div",Sc,[f("div",Ac,[f("div",null,[u[39]||(u[39]=f("div",{class:"text-base font-semibold text-primary"},"Users",-1)),f("span",Cc,O(A.value.length)+" total",1)]),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:he},"Refresh")]),f("div",Ec,[M.value?(E(),k("p",kc,O(M.value),1)):V("",!0),ie.value?(E(),k("p",Tc,O(ie.value),1)):V("",!0),!A.value.length&&!M.value?(E(),k("p",Pc,"No users yet.")):V("",!0),(E(!0),k(ne,null,ye(A.value,d=>(E(),k("div",{key:d.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",Oc,[f("div",Uc,[f("div",Mc,[f("span",Rc,O(d.email),1),f("span",{class:Ie(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",D[d.role]])},O(F[d.role]||d.role),3),d.id===(n.value&&n.value.id)?(E(),k("span",Ic,"you")):V("",!0),d.verified?V("",!0):(E(),k("span",Fc,"unverified"))]),f("div",Nc,O(d.organizationName||(d.organization?d.organization:"no organization")),1)]),f("div",Lc,[f("button",{class:"pv-btn-sec pv-btn-sm",onClick:S=>_n(d)},O(ue.value===d.id?"Close":"Edit"),9,Dc),d.id!==(n.value&&n.value.id)?(E(),k("button",{key:0,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:it.value===d.id,onClick:S=>Gi(d)}," Delete ",8,jc)):V("",!0)])]),ue.value===d.id?(E(),k("div",$c,[f("div",Bc,[f("label",Vc,[u[40]||(u[40]=f("span",{class:"pv-eyebrow"},"Email",-1)),le(f("input",{"onUpdate:modelValue":u[7]||(u[7]=S=>pe.value.email=S),type:"email",class:"pv-input",autocomplete:"off",spellcheck:"false"},null,512),[[_e,pe.value.email]])]),f("label",Hc,[u[41]||(u[41]=f("span",{class:"pv-eyebrow"},"New password",-1)),le(f("input",{"onUpdate:modelValue":u[8]||(u[8]=S=>pe.value.password=S),type:"password",class:"pv-input",placeholder:"leave blank to keep current",autocomplete:"new-password"},null,512),[[_e,pe.value.password]])])]),f("div",Kc,[f("label",zc,[u[42]||(u[42]=f("span",{class:"pv-eyebrow"},"Role",-1)),le(f("select",{"onUpdate:modelValue":u[9]||(u[9]=S=>pe.value.role=S),class:"pv-input",disabled:d.id===(n.value&&n.value.id)},[(E(),k(ne,null,ye(P,S=>f("option",{key:S.value,value:S.value},O(S.label),9,Wc)),64))],8,Gc),[[Dt,pe.value.role]]),d.id===(n.value&&n.value.id)?(E(),k("span",Jc,"You cannot change your own role.")):V("",!0)]),f("label",qc,[u[44]||(u[44]=f("span",{class:"pv-eyebrow"},"Organization",-1)),le(f("select",{"onUpdate:modelValue":u[10]||(u[10]=S=>pe.value.organization=S),class:"pv-input"},[u[43]||(u[43]=f("option",{value:""},"— none —",-1)),(E(!0),k(ne,null,ye(v.value,S=>(E(),k("option",{key:S.id,value:S.id},O(S.name),9,Yc))),128))],512),[[Dt,pe.value.organization]])])]),f("label",Zc,[le(f("input",{"onUpdate:modelValue":u[11]||(u[11]=S=>pe.value.verified=S),type:"checkbox",class:"h-4 w-4"},null,512),[[Bi,pe.value.verified]]),u[45]||(u[45]=f("span",{class:"text-sm text-primary"},"Verified",-1))]),f("div",Xc,[f("button",{class:"pv-btn pv-btn-sm",disabled:it.value===d.id,onClick:S=>zi(d)},"Save changes",8,Qc),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[12]||(u[12]=S=>ue.value="")},"Cancel")])])):V("",!0)]))),128))])])],512),[[Zt,c.value==="users"]]),le(f("div",eu,[f("div",tu,[u[46]||(u[46]=f("div",{class:"border-b border-subtle px-5 py-4"},[f("div",{class:"text-base font-semibold text-primary"},"Add organization"),f("span",{class:"pv-eyebrow"},"Create a tenant")],-1)),f("div",nu,[f("div",su,[le(f("input",{"onUpdate:modelValue":u[13]||(u[13]=d=>wn.value=d),class:"pv-input flex-1",placeholder:"Acme Aerial Ltd.",autocomplete:"off",spellcheck:"false",onKeyup:Mo(Ws,["enter"])},null,544),[[_e,wn.value]]),f("button",{class:"pv-btn",disabled:An.value,onClick:Ws},O(An.value?"Creating…":"Create"),9,ou)]),Mt.value?(E(),k("p",iu,O(Mt.value),1)):Sn.value?(E(),k("p",lu,O(Sn.value),1)):V("",!0)])]),f("div",ru,[f("div",au,[f("div",null,[u[47]||(u[47]=f("div",{class:"text-base font-semibold text-primary"},"Organizations",-1)),f("span",cu,O(v.value.length)+" total",1)]),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:It},"Refresh")]),f("div",uu,[Re.value?(E(),k("p",du,O(Re.value),1)):V("",!0),v.value.length?V("",!0):(E(),k("p",fu,"No organizations yet.")),(E(!0),k(ne,null,ye(v.value,d=>(E(),k("div",{key:d.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",pu,[f("div",hu,[f("div",bu,O(d.name),1),f("div",mu,O(K.value[d.id]||0)+" member"+O((K.value[d.id]||0)===1?"":"s"),1)]),f("div",gu,[f("button",{class:"pv-btn-sec pv-btn-sm",onClick:S=>Wi(d)},O(lt.value===d.id?"Close":"Rename"),9,vu),f("button",{class:"pv-btn-sec pv-btn-sm !text-danger",disabled:Rt.value===d.id||(K.value[d.id]||0)>0,title:(K.value[d.id]||0)>0?"Reassign or remove members first":"Delete organization",onClick:S=>Ji(d)}," Delete ",8,xu)])]),lt.value===d.id?(E(),k("div",yu,[f("label",_u,[u[48]||(u[48]=f("span",{class:"pv-eyebrow"},"Name",-1)),le(f("input",{"onUpdate:modelValue":u[14]||(u[14]=S=>Cn.value=S),class:"pv-input",autocomplete:"off",spellcheck:"false",onKeyup:Mo(S=>Js(d),["enter"])},null,40,wu),[[_e,Cn.value]])]),f("div",Su,[f("button",{class:"pv-btn pv-btn-sm",disabled:Rt.value===d.id,onClick:S=>Js(d)},"Save",8,Au),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[15]||(u[15]=S=>lt.value="")},"Cancel")])])):V("",!0)]))),128))])])],512),[[Zt,c.value==="organizations"]]),le(f("div",Cu,[f("div",Eu,[f("div",ku,[u[50]||(u[50]=f("div",null,[f("div",{class:"text-base font-semibold text-primary"},"PocketBase connection"),f("span",{class:"pv-eyebrow"},"Settings")],-1)),G.value?(E(),k("span",{key:0,class:Ie(["inline-flex shrink-0 items-center gap-1.5 rounded-sm px-2.5 py-1 font-mono text-xs font-medium",G.value.reachable?G.value.superuser?"bg-success-tint text-success":"bg-warning-tint text-warning":"bg-danger-tint text-danger"])},[u[49]||(u[49]=f("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),je(" "+O(G.value.reachable?G.value.superuser?"connected":"reachable":"unreachable"),1)],2)):V("",!0)]),f("div",Tu,[f("label",Pu,[u[51]||(u[51]=f("span",{class:"pv-eyebrow"},"PocketBase URL",-1)),le(f("input",{"onUpdate:modelValue":u[16]||(u[16]=d=>I.value.url=d),class:"pv-input",placeholder:"http://10.2.1.10:8026",spellcheck:"false"},null,512),[[_e,I.value.url]])]),f("label",Ou,[u[52]||(u[52]=f("span",{class:"pv-eyebrow"},"Service account email",-1)),le(f("input",{"onUpdate:modelValue":u[17]||(u[17]=d=>I.value.adminEmail=d),class:"pv-input",placeholder:"admin@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[_e,I.value.adminEmail]])]),f("label",Uu,[u[53]||(u[53]=f("span",{class:"pv-eyebrow"},"Service account password",-1)),le(f("input",{"onUpdate:modelValue":u[18]||(u[18]=d=>I.value.adminPassword=d),type:"password",class:"pv-input",autocomplete:"new-password",placeholder:J.value&&J.value.adminConfigured?"leave blank to keep current":"set a password"},null,8,Mu),[[_e,I.value.adminPassword]])]),G.value?(E(),k("div",Ru,[je(" health: "+O(G.value.reachable?"ok":"down"),1),G.value.latencyMs?(E(),k("span",Iu," · "+O(G.value.latencyMs)+"ms",1)):V("",!0),je(" · superuser auth: "+O(G.value.superuser?"ok":"—"),1),G.value.detail?(E(),k("span",Fu," · "+O(G.value.detail),1)):V("",!0)])):V("",!0),B.value?(E(),k("p",Nu,O(B.value),1)):Y.value?(E(),k("p",Lu,O(Y.value),1)):V("",!0),f("div",Du,[f("button",{class:"pv-btn",disabled:Z.value,onClick:We},O(Z.value?"Saving…":"Save connection"),9,ju),f("button",{class:"pv-btn-sec",disabled:N.value,onClick:Le},O(N.value?"Testing…":"Test connection"),9,$u)]),u[54]||(u[54]=f("p",{class:"text-[11px] text-muted"}," The service account is used only for user & organization management. Changing the URL repoints the whole API Server at a new PocketBase and may sign you out. ",-1))])])],512),[[Zt,c.value==="pocketbase"]]),le(f("div",Bu,[f("div",Vu,[f("div",{class:"flex items-center justify-between border-b border-subtle px-5 py-4"},[u[55]||(u[55]=f("div",null,[f("div",{class:"text-base font-semibold text-primary"},"Plugins"),f("span",{class:"pv-eyebrow"},"External integrations")],-1)),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:bt},"Refresh")]),f("div",Hu,[Oe.value?(E(),k("p",Ku,O(Oe.value),1)):V("",!0),fe.value?(E(),k("p",zu,O(fe.value),1)):V("",!0),!De.value.length&&!Oe.value?(E(),k("p",Gu,"No plugins registered yet.")):V("",!0),De.value.length?(E(),k("div",Wu,[(E(),k(ne,null,ye(ns,d=>f("button",{key:d.id,class:Ie(["-mb-px whitespace-nowrap border-b-2 px-3 py-2 text-sm font-semibold transition",Jt.value===d.id?"border-brand text-primary":"border-transparent text-secondary hover:text-primary"]),onClick:S=>Jt.value=d.id},O(d.label),11,Ju)),64))])):V("",!0),De.value.length&&!Ut.value.length?(E(),k("p",qu,"No plugins in this category.")):V("",!0),(E(!0),k(ne,null,ye(Ut.value,d=>(E(),k("div",{key:d.name,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",Yu,[f("div",Zu,[f("div",Xu,[f("span",Qu,O(d.name),1),f("span",{class:Ie(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",xn[d.kind]])},O(d.kind),3),d.health?(E(),k("span",{key:0,class:Ie(["inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium",St[d.health.status]]),title:d.health.detail||""},[u[56]||(u[56]=f("span",{class:"h-1 w-1 rounded-full bg-current"},null,-1)),je(O(d.health.status),1),d.health.latencyMs?(E(),k("span",td," · "+O(d.health.latencyMs)+"ms",1)):V("",!0)],10,ed)):V("",!0)]),f("div",nd,O(d.provider)+" · v"+O(d.version)+" · "+O(d.authType),1),d.health&&d.health.detail?(E(),k("div",sd,O(d.health.detail),1)):V("",!0),d.capabilities&&d.capabilities.length?(E(),k("div",od,[u[57]||(u[57]=f("div",{class:"pv-eyebrow"},"Capabilities",-1)),(E(!0),k(ne,null,ye(d.capabilities,S=>(E(),k("div",{key:S.id,class:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5"},[f("span",id,O(S.id),1),S.method||S.endpoint?(E(),k("span",ld,O(S.method)+" "+O(S.endpoint),1)):V("",!0),S.description?(E(),k("span",rd,O(S.description),1)):V("",!0)]))),128))])):V("",!0),d.baseURL?(E(),k("div",ad,O(d.baseURL),1)):V("",!0)]),f("div",cd,[f("button",{class:Ie(["pv-btn-sec pv-btn-sm",d.enabled?"!border-transparent !bg-success-tint !text-success":""]),disabled:ve.value===d.name,onClick:S=>g(d)},[f("span",{class:Ie(["h-1.5 w-1.5 rounded-full",d.enabled?"bg-success":"bg-muted"])},null,2),je(" "+O(d.enabled?"Enabled":"Disabled"),1)],10,ud),d.configFields&&d.configFields.length?(E(),k("button",{key:0,class:"pv-btn-sec pv-btn-sm",onClick:S=>w(d)},"Configure",8,dd)):V("",!0),f("button",{class:"pv-btn-sec pv-btn-sm",disabled:ve.value===d.name,onClick:S=>y(d)},"Check",8,fd),d.kind==="external"?(E(),k("button",{key:1,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:ve.value===d.name,onClick:S=>T(d)},"Remove",8,pd)):V("",!0)])]),Je.value===d.name?(E(),k("div",hd,[(E(!0),k(ne,null,ye(d.configFields,S=>(E(),k("label",{key:S.key,class:"flex flex-col gap-1"},[f("span",bd,[je(O(S.label),1),S.required?(E(),k("span",md," *")):V("",!0)]),S.type==="select"?le((E(),k("select",{key:0,"onUpdate:modelValue":de=>Ce.value[S.key]=de,class:"pv-input"},[(E(!0),k(ne,null,ye(S.options,de=>(E(),k("option",{key:de.value,value:de.value},O(de.label),9,vd))),128))],8,gd)),[[Dt,Ce.value[S.key]]]):S.type==="bbox"?(E(),k(ne,{key:1},[f("select",{value:qe(S.key),class:"pv-input",onChange:de=>Pt(S.key,de.target.value)},[(E(),k(ne,null,ye(Wt,de=>f("optgroup",{key:de.label,label:de.label},[(E(!0),k(ne,null,ye(de.options,os=>(E(),k("option",{key:os.value,value:os.value},O(os.label),9,_d))),128))],8,yd)),64)),u[58]||(u[58]=f("option",{value:"__custom__"},"Custom…",-1))],40,xd),qe(S.key)==="__custom__"?le((E(),k("input",{key:0,"onUpdate:modelValue":de=>Ce.value[S.key]=de,type:"text",class:"pv-input font-mono",autocomplete:"off",placeholder:"50.5,3.2,53.7,7.3"},null,8,wd)),[[_e,Ce.value[S.key]]]):V("",!0)],64)):le((E(),k("input",{key:2,"onUpdate:modelValue":de=>Ce.value[S.key]=de,type:S.secret||S.type==="password"?"password":S.type==="number"?"number":"text",class:"pv-input",autocomplete:"off",placeholder:S.help||""},null,8,Sd)),[[ga,Ce.value[S.key]]]),S.help?(E(),k("span",Ad,O(S.help),1)):V("",!0)]))),128)),f("div",Cd,[f("button",{class:"pv-btn pv-btn-sm",disabled:ve.value===d.name,onClick:S=>_(d)},"Save configuration",8,Ed),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[19]||(u[19]=S=>Je.value="")},"Cancel")])])):V("",!0)]))),128)),f("div",kd,[u[59]||(u[59]=f("div",{class:"pv-eyebrow mb-2"},"Register external plugin",-1)),f("div",Td,[le(f("input",{"onUpdate:modelValue":u[20]||(u[20]=d=>xe.value.name=d),class:"pv-input sm:w-40",placeholder:"name",autocomplete:"off",spellcheck:"false"},null,512),[[_e,xe.value.name]]),le(f("input",{"onUpdate:modelValue":u[21]||(u[21]=d=>xe.value.baseURL=d),class:"pv-input flex-1",placeholder:"https://plugin.example.com",autocomplete:"off",spellcheck:"false"},null,512),[[_e,xe.value.baseURL]]),f("button",{class:"pv-btn",disabled:_t.value,onClick:C},O(_t.value?"Adding…":"Add"),9,Pd)]),me.value?(E(),k("p",Od,O(me.value),1)):V("",!0),u[60]||(u[60]=f("p",{class:"mt-2 text-[11px] text-muted"},[je(" A remote service that answers "),f("span",{class:"font-mono"},"GET /health"),je(" and "),f("span",{class:"font-mono"},"GET /manifest"),je(" — added at runtime, no rebuild. ")],-1))])])])],512),[[Zt,c.value==="plugins"]])],64)):(E(),k("div",Wa,[u[29]||(u[29]=f("div",{class:"border-b border-subtle px-5 py-4"},[f("div",{class:"text-base font-semibold text-primary"},"Sign in"),f("span",{class:"pv-eyebrow"},"Superadmin access only")],-1)),f("form",{class:"flex flex-col gap-3 px-5 py-5",onSubmit:_a(U,["prevent"])},[f("label",Ja,[u[27]||(u[27]=f("span",{class:"pv-eyebrow"},"Email",-1)),le(f("input",{"onUpdate:modelValue":u[1]||(u[1]=d=>i.value.email=d),type:"email",autocomplete:"username",class:"pv-input",placeholder:"superadmin@pilotvault.local"},null,512),[[_e,i.value.email]])]),f("label",qa,[u[28]||(u[28]=f("span",{class:"pv-eyebrow"},"Password",-1)),le(f("input",{"onUpdate:modelValue":u[2]||(u[2]=d=>i.value.password=d),type:"password",autocomplete:"current-password",class:"pv-input",placeholder:"••••••••"},null,512),[[_e,i.value.password]])]),l.value?(E(),k("p",Ya,O(l.value),1)):V("",!0),f("button",{type:"submit",class:"pv-btn mt-1",disabled:r.value},O(r.value?"Signing in…":"Sign in"),9,Za)],32)])),u[61]||(u[61]=f("p",{class:"text-center font-mono text-[11px] text-muted"}," PilotVault — live drone telemetry, command & control. ",-1))]))}};Ca(Ud).mount("#app"); diff --git a/API Server/internal/api/dist/assets/index-CwiTp2Sb.js b/API Server/internal/api/dist/assets/index-CwiTp2Sb.js deleted file mode 100644 index 5162385..0000000 --- a/API Server/internal/api/dist/assets/index-CwiTp2Sb.js +++ /dev/null @@ -1,17 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))n(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(l){if(l.ep)return;l.ep=!0;const o=s(l);fetch(l.href,o)}})();/** -* @vue/shared v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function An(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ne={},Nt=[],tt=()=>{},Ul=()=>!1,Ks=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zs=e=>e.startsWith("onUpdate:"),Se=Object.assign,On=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Qo=Object.prototype.hasOwnProperty,Q=(e,t)=>Qo.call(e,t),N=Array.isArray,Ft=e=>gs(e)==="[object Map]",Wt=e=>gs(e)==="[object Set]",el=e=>gs(e)==="[object Date]",B=e=>typeof e=="function",ce=e=>typeof e=="string",st=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",$l=e=>(te(e)||B(e))&&B(e.then)&&B(e.catch),jl=Object.prototype.toString,gs=e=>jl.call(e),ei=e=>gs(e).slice(8,-1),Ll=e=>gs(e)==="[object Object]",Mn=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ss=An(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ws=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ti=/-\w/g,Be=Ws(e=>e.replace(ti,t=>t.slice(1).toUpperCase())),si=/\B([A-Z])/g,xt=Ws(e=>e.replace(si,"-$1").toLowerCase()),Dl=Ws(e=>e.charAt(0).toUpperCase()+e.slice(1)),ln=Ws(e=>e?`on${Dl(e)}`:""),et=(e,t)=>!Object.is(e,t),Rs=(e,...t)=>{for(let s=0;s{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Gs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let tl;const Js=()=>tl||(tl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Rn(e){if(N(e)){const t={};for(let s=0;s{if(s){const n=s.split(li);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ue(e){let t="";if(ce(e))t=e;else if(N(e))for(let s=0;svt(s,t))}const Vl=e=>!!(e&&e.__v_isRef===!0),O=e=>ce(e)?e:e==null?"":N(e)||te(e)&&(e.toString===jl||!B(e.toString))?Vl(e)?O(e.value):JSON.stringify(e,Hl,2):String(e),Hl=(e,t)=>Vl(t)?Hl(e,t.value):Ft(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,l],o)=>(s[on(n,o)+" =>"]=l,s),{})}:Wt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>on(s))}:st(t)?on(t):te(t)&&!N(t)&&!Ll(t)?String(t):t,on=(e,t="")=>{var s;return st(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/** -* @vue/reactivity v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let ve;class ui{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&&ve&&(ve.active?(this.parent=ve,this.index=(ve.scopes||(ve.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t0&&--this._on===0){if(ve===this)ve=this.prevScope;else{let t=ve;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 s,n;for(s=0,n=this.effects.length;s0)return;if(ls){let t=ls;for(ls=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;ns;){let t=ns;for(ns=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Wl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Gl(e){let t,s=e.depsTail,n=s;for(;n;){const l=n.prevDep;n.version===-1?(n===s&&(s=l),jn(n),di(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}e.deps=t,e.depsTail=s}function vn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Jl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Jl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===cs)||(e.globalVersion=cs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!vn(e))))return;e.flags|=2;const t=e.dep,s=re,n=Ke;re=e,Ke=!0;try{Wl(e);const l=e.fn(e._value);(t.version===0||et(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{re=s,Ke=n,Gl(e),e.flags&=-3}}function jn(e,t=!1){const{dep:s,prevSub:n,nextSub:l}=e;if(n&&(n.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)jn(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function di(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Ke=!0;const ql=[];function nt(){ql.push(Ke),Ke=!1}function lt(){const e=ql.pop();Ke=e===void 0?!0:e}function sl(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=re;re=void 0;try{t()}finally{re=s}}}let cs=0;class pi{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ln{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(!re||!Ke||re===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==re)s=this.activeLink=new pi(re,this),re.deps?(s.prevDep=re.depsTail,re.depsTail.nextDep=s,re.depsTail=s):re.deps=re.depsTail=s,Yl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=re.depsTail,s.nextDep=void 0,re.depsTail.nextDep=s,re.depsTail=s,re.deps===s&&(re.deps=n)}return s}trigger(t){this.version++,cs++,this.notify(t)}notify(t){Un();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{$n()}}}function Yl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Yl(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const bn=new WeakMap,Tt=Symbol(""),yn=Symbol(""),us=Symbol("");function we(e,t,s){if(Ke&&re){let n=bn.get(e);n||bn.set(e,n=new Map);let l=n.get(s);l||(n.set(s,l=new Ln),l.map=n,l.key=s),l.track()}}function ut(e,t,s,n,l,o){const i=bn.get(e);if(!i){cs++;return}const r=c=>{c&&c.trigger()};if(Un(),t==="clear")i.forEach(r);else{const c=N(e),m=c&&Mn(s);if(c&&s==="length"){const h=Number(n);i.forEach((y,M)=>{(M==="length"||M===us||!st(M)&&M>=h)&&r(y)})}else switch((s!==void 0||i.has(void 0))&&r(i.get(s)),m&&r(i.get(us)),t){case"add":c?m&&r(i.get("length")):(r(i.get(Tt)),Ft(e)&&r(i.get(yn)));break;case"delete":c||(r(i.get(Tt)),Ft(e)&&r(i.get(yn)));break;case"set":Ft(e)&&r(i.get(Tt));break}}$n()}function jt(e){const t=Z(e);return t===e?t:(we(t,"iterate",us),Ve(e)?t:t.map(ze))}function qs(e){return we(e=Z(e),"iterate",us),e}function Ze(e,t){return pt(e)?Bt(Pt(e)?ze(t):t):ze(t)}const hi={__proto__:null,[Symbol.iterator](){return an(this,Symbol.iterator,e=>Ze(this,e))},concat(...e){return jt(this).concat(...e.map(t=>N(t)?jt(t):t))},entries(){return an(this,"entries",e=>(e[1]=Ze(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,s=>s.map(n=>Ze(this,n)),arguments)},find(e,t){return rt(this,"find",e,t,s=>Ze(this,s),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,s=>Ze(this,s),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return cn(this,"includes",e)},indexOf(...e){return cn(this,"indexOf",e)},join(e){return jt(this).join(e)},lastIndexOf(...e){return cn(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return qt(this,"pop")},push(...e){return qt(this,"push",e)},reduce(e,...t){return nl(this,"reduce",e,t)},reduceRight(e,...t){return nl(this,"reduceRight",e,t)},shift(){return qt(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return qt(this,"splice",e)},toReversed(){return jt(this).toReversed()},toSorted(e){return jt(this).toSorted(e)},toSpliced(...e){return jt(this).toSpliced(...e)},unshift(...e){return qt(this,"unshift",e)},values(){return an(this,"values",e=>Ze(this,e))}};function an(e,t,s){const n=qs(e),l=n[t]();return n!==e&&!Ve(e)&&(l._next=l.next,l.next=()=>{const o=l._next();return o.done||(o.value=s(o.value)),o}),l}const gi=Array.prototype;function rt(e,t,s,n,l,o){const i=qs(e),r=i!==e&&!Ve(e),c=i[t];if(c!==gi[t]){const y=c.apply(e,o);return r?ze(y):y}let m=s;i!==e&&(r?m=function(y,M){return s.call(this,Ze(e,y),M,e)}:s.length>2&&(m=function(y,M){return s.call(this,y,M,e)}));const h=c.call(i,m,n);return r&&l?l(h):h}function nl(e,t,s,n){const l=qs(e),o=l!==e&&!Ve(e);let i=s,r=!1;l!==e&&(o?(r=n.length===0,i=function(m,h,y){return r&&(r=!1,m=Ze(e,m)),s.call(this,m,Ze(e,h),y,e)}):s.length>3&&(i=function(m,h,y){return s.call(this,m,h,y,e)}));const c=l[t](i,...n);return r?Ze(e,c):c}function cn(e,t,s){const n=Z(e);we(n,"iterate",us);const l=n[t](...s);return(l===-1||l===!1)&&Vn(s[0])?(s[0]=Z(s[0]),n[t](...s)):l}function qt(e,t,s=[]){nt(),Un();const n=Z(e)[t].apply(e,s);return $n(),lt(),n}const mi=An("__proto__,__v_isRef,__isVue"),Xl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(st));function vi(e){st(e)||(e=String(e));const t=Z(this);return we(t,"has",e),t.hasOwnProperty(e)}class Zl{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const l=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!l;if(s==="__v_isReadonly")return l;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(l?o?Ti:so:o?to:eo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const i=N(t);if(!l){let c;if(i&&(c=hi[s]))return c;if(s==="hasOwnProperty")return vi}const r=Reflect.get(t,s,Ce(t)?t:n);if((st(s)?Xl.has(s):mi(s))||(l||we(t,"get",s),o))return r;if(Ce(r)){const c=i&&Mn(s)?r:r.value;return l&&te(c)?_n(c):c}return te(r)?l?_n(r):Nn(r):r}}class Ql extends Zl{constructor(t=!1){super(!1,t)}set(t,s,n,l){let o=t[s];const i=N(t)&&Mn(s);if(!this._isShallow){const m=pt(o);if(!Ve(n)&&!pt(n)&&(o=Z(o),n=Z(n)),!i&&Ce(o)&&!Ce(n))return m||(o.value=n),!0}const r=i?Number(s)e,Ts=e=>Reflect.getPrototypeOf(e);function wi(e,t,s){return function(...n){const l=this.__v_raw,o=Z(l),i=Ft(o),r=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,m=l[e](...n),h=s?xn:t?Bt:ze;return!t&&we(o,"iterate",c?yn:Tt),Se(Object.create(m),{next(){const{value:y,done:M}=m.next();return M?{value:y,done:M}:{value:r?[h(y[0]),h(y[1])]:h(y),done:M}}})}}function Ps(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ci(e,t){const s={get(l){const o=this.__v_raw,i=Z(o),r=Z(l);e||(et(l,r)&&we(i,"get",l),we(i,"get",r));const{has:c}=Ts(i),m=t?xn:e?Bt:ze;if(c.call(i,l))return m(o.get(l));if(c.call(i,r))return m(o.get(r));o!==i&&o.get(l)},get size(){const l=this.__v_raw;return!e&&we(Z(l),"iterate",Tt),l.size},has(l){const o=this.__v_raw,i=Z(o),r=Z(l);return e||(et(l,r)&&we(i,"has",l),we(i,"has",r)),l===r?o.has(l):o.has(l)||o.has(r)},forEach(l,o){const i=this,r=i.__v_raw,c=Z(r),m=t?xn:e?Bt:ze;return!e&&we(c,"iterate",Tt),r.forEach((h,y)=>l.call(o,m(h),m(y),i))}};return Se(s,e?{add:Ps("add"),set:Ps("set"),delete:Ps("delete"),clear:Ps("clear")}:{add(l){const o=Z(this),i=Ts(o),r=Z(l),c=!t&&!Ve(l)&&!pt(l)?r:l;return i.has.call(o,c)||et(l,c)&&i.has.call(o,l)||et(r,c)&&i.has.call(o,r)||(o.add(c),ut(o,"add",c,c)),this},set(l,o){!t&&!Ve(o)&&!pt(o)&&(o=Z(o));const i=Z(this),{has:r,get:c}=Ts(i);let m=r.call(i,l);m||(l=Z(l),m=r.call(i,l));const h=c.call(i,l);return i.set(l,o),m?et(o,h)&&ut(i,"set",l,o):ut(i,"add",l,o),this},delete(l){const o=Z(this),{has:i,get:r}=Ts(o);let c=i.call(o,l);c||(l=Z(l),c=i.call(o,l)),r&&r.call(o,l);const m=o.delete(l);return c&&ut(o,"delete",l,void 0),m},clear(){const l=Z(this),o=l.size!==0,i=l.clear();return o&&ut(l,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(l=>{s[l]=wi(l,e,t)}),s}function Dn(e,t){const s=Ci(e,t);return(n,l,o)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?n:Reflect.get(Q(s,l)&&l in n?s:n,l,o)}const Si={get:Dn(!1,!1)},ki={get:Dn(!1,!0)},Ei={get:Dn(!0,!1)};const eo=new WeakMap,to=new WeakMap,so=new WeakMap,Ti=new WeakMap;function Pi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Nn(e){return pt(e)?e:Fn(e,!1,yi,Si,eo)}function Ai(e){return Fn(e,!1,_i,ki,to)}function _n(e){return Fn(e,!0,xi,Ei,so)}function Fn(e,t,s,n,l){if(!te(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=l.get(e);if(o)return o;const i=Pi(ei(e));if(i===0)return e;const r=new Proxy(e,i===2?n:s);return l.set(e,r),r}function Pt(e){return pt(e)?Pt(e.__v_raw):!!(e&&e.__v_isReactive)}function pt(e){return!!(e&&e.__v_isReadonly)}function Ve(e){return!!(e&&e.__v_isShallow)}function Vn(e){return e?!!e.__v_raw:!1}function Z(e){const t=e&&e.__v_raw;return t?Z(t):e}function Oi(e){return!Q(e,"__v_skip")&&Object.isExtensible(e)&&Nl(e,"__v_skip",!0),e}const ze=e=>te(e)?Nn(e):e,Bt=e=>te(e)?_n(e):e;function Ce(e){return e?e.__v_isRef===!0:!1}function L(e){return Mi(e,!1)}function Mi(e,t){return Ce(e)?e:new Ri(e,t)}class Ri{constructor(t,s){this.dep=new Ln,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:Z(t),this._value=s?t:ze(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Ve(t)||pt(t);t=n?t:Z(t),et(t,s)&&(this._rawValue=t,this._value=n?t:ze(t),this.dep.trigger())}}function Qt(e){return Ce(e)?e.value:e}const Ii={get:(e,t,s)=>t==="__v_raw"?e:Qt(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const l=e[t];return Ce(l)&&!Ce(s)?(l.value=s,!0):Reflect.set(e,t,s,n)}};function no(e){return Pt(e)?e:new Proxy(e,Ii)}class Ui{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Ln(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=cs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&re!==this)return zl(this,!0),!0}get value(){const t=this.dep.track();return Jl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function $i(e,t,s=!1){let n,l;return B(e)?n=e:(n=e.get,l=e.set),new Ui(n,l,s)}const As={},js=new WeakMap;let Et;function ji(e,t=!1,s=Et){if(s){let n=js.get(s);n||js.set(s,n=[]),n.push(e)}}function Li(e,t,s=ne){const{immediate:n,deep:l,once:o,scheduler:i,augmentJob:r,call:c}=s,m=j=>l?j:Ve(j)||l===!1||l===0?ft(j,1):ft(j);let h,y,M,I,J=!1,U=!1;if(Ce(e)?(y=()=>e.value,J=Ve(e)):Pt(e)?(y=()=>m(e),J=!0):N(e)?(U=!0,J=e.some(j=>Pt(j)||Ve(j)),y=()=>e.map(j=>{if(Ce(j))return j.value;if(Pt(j))return m(j);if(B(j))return c?c(j,2):j()})):B(e)?t?y=c?()=>c(e,2):e:y=()=>{if(M){nt();try{M()}finally{lt()}}const j=Et;Et=h;try{return c?c(e,3,[I]):e(I)}finally{Et=j}}:y=tt,t&&l){const j=y,z=l===!0?1/0:l;y=()=>ft(j(),z)}const W=fi(),Y=()=>{h.stop(),W&&W.active&&On(W.effects,h)};if(o&&t){const j=t;t=(...z)=>{const Re=j(...z);return Y(),Re}}let V=U?new Array(e.length).fill(As):As;const X=j=>{if(!(!(h.flags&1)||!h.dirty&&!j))if(t){const z=h.run();if(j||l||J||(U?z.some((Re,Le)=>et(Re,V[Le])):et(z,V))){M&&M();const Re=Et;Et=h;try{const Le=[z,V===As?void 0:U&&V[0]===As?[]:V,I];V=z,c?c(t,3,Le):t(...Le)}finally{Et=Re}}}else h.run()};return r&&r(X),h=new Bl(y),h.scheduler=i?()=>i(X,!1):X,I=j=>ji(j,!1,h),M=h.onStop=()=>{const j=js.get(h);if(j){if(c)c(j,4);else for(const z of j)z();js.delete(h)}},t?n?X(!0):V=h.run():i?i(X.bind(null,!0),!0):h.run(),Y.pause=h.pause.bind(h),Y.resume=h.resume.bind(h),Y.stop=Y,Y}function ft(e,t=1/0,s){if(t<=0||!te(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ce(e))ft(e.value,t,s);else if(N(e))for(let n=0;n{ft(n,t,s)});else if(Ll(e)){for(const n in e)ft(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ft(e[n],t,s)}return e}/** -* @vue/runtime-core v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function ms(e,t,s,n){try{return n?e(...n):e()}catch(l){Ys(l,t,s)}}function We(e,t,s,n){if(B(e)){const l=ms(e,t,s,n);return l&&$l(l)&&l.catch(o=>{Ys(o,t,s)}),l}if(N(e)){const l=[];for(let o=0;o>>1,l=Pe[n],o=fs(l);o=fs(s)?Pe.push(e):Pe.splice(Ni(t),0,e),e.flags|=1,io()}}function io(){Ls||(Ls=lo.then(ao))}function Fi(e){N(e)?Vt.push(...e):mt&&e.id===-1?mt.splice(Lt+1,0,e):e.flags&1||(Vt.push(e),e.flags|=1),io()}function ll(e,t,s=Xe+1){for(;sfs(s)-fs(n));if(Vt.length=0,mt){mt.push(...t);return}for(mt=t,Lt=0;Lte.id==null?e.flags&2?-1:1/0:e.id;function ao(e){try{for(Xe=0;Xe{n._d&&gl(-1);const o=Ds(t);let i;try{i=e(...l)}finally{Ds(o),n._d&&gl(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ie(e,t){if(Fe===null)return e;const s=en(Fe),n=e.dirs||(e.dirs=[]);for(let l=0;l1)return s&&B(t)?t.call(n&&n.proxy):t}}const Bi=Symbol.for("v-scx"),Ki=()=>Is(Bi);function un(e,t,s){return uo(e,t,s)}function uo(e,t,s=ne){const{immediate:n,deep:l,flush:o,once:i}=s,r=Se({},s),c=t&&n||!t&&o!=="post";let m;if(ps){if(o==="sync"){const I=Ki();m=I.__watcherHandles||(I.__watcherHandles=[])}else if(!c){const I=()=>{};return I.stop=tt,I.resume=tt,I.pause=tt,I}}const h=Ae;r.call=(I,J,U)=>We(I,h,J,U);let y=!1;o==="post"?r.scheduler=I=>{Me(I,h&&h.suspense)}:o!=="sync"&&(y=!0,r.scheduler=(I,J)=>{J?I():Hn(I)}),r.augmentJob=I=>{t&&(I.flags|=4),y&&(I.flags|=2,h&&(I.id=h.uid,I.i=h))};const M=Li(e,t,r);return ps&&(m?m.push(M):c&&M()),M}function zi(e,t,s){const n=this.proxy,l=ce(e)?e.includes(".")?fo(n,e):()=>n[e]:e.bind(n,n);let o;B(t)?o=t:(o=t.handler,s=t);const i=vs(this),r=uo(l,o.bind(n),s);return i(),r}function fo(e,t){const s=t.split(".");return()=>{let n=e;for(let l=0;le.__isTeleport,fn=Symbol("_leaveCb");function Bn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Bn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function po(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ol(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const Ns=new WeakMap;function os(e,t,s,n,l=!1){if(N(e)){e.forEach((U,W)=>os(U,t&&(N(t)?t[W]:t),s,n,l));return}if(is(n)&&!l){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&os(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?en(n.component):n.el,i=l?null:o,{i:r,r:c}=e,m=t&&t.r,h=r.refs===ne?r.refs={}:r.refs,y=r.setupState,M=Z(y),I=y===ne?Ul:U=>ol(h,U)?!1:Q(M,U),J=(U,W)=>!(W&&ol(h,W));if(m!=null&&m!==c){if(il(t),ce(m))h[m]=null,I(m)&&(y[m]=null);else if(Ce(m)){const U=t;J(m,U.k)&&(m.value=null),U.k&&(h[U.k]=null)}}if(B(c)){nt();try{ms(c,r,12,[i,h])}finally{lt()}}else{const U=ce(c),W=Ce(c);if(U||W){const Y=()=>{if(e.f){const V=U?I(c)?y[c]:h[c]:J()||!e.k?c.value:h[e.k];if(l)N(V)&&On(V,o);else if(N(V))V.includes(o)||V.push(o);else if(U)h[c]=[o],I(c)&&(y[c]=h[c]);else{const X=[o];J(c,e.k)&&(c.value=X),e.k&&(h[e.k]=X)}}else U?(h[c]=i,I(c)&&(y[c]=i)):W&&(J(c,e.k)&&(c.value=i),e.k&&(h[e.k]=i))};if(i){const V=()=>{Y(),Ns.delete(e)};V.id=-1,Ns.set(e,V),Me(V,s)}else il(e),Y()}}}function il(e){const t=Ns.get(e);t&&(t.flags|=8,Ns.delete(e))}Js().requestIdleCallback;Js().cancelIdleCallback;const is=e=>!!e.type.__asyncLoader,ho=e=>e.type.__isKeepAlive;function Ji(e,t){go(e,"a",t)}function qi(e,t){go(e,"da",t)}function go(e,t,s=Ae){const n=e.__wdc||(e.__wdc=()=>{let l=s;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(Xs(t,n,s),s){let l=s.parent;for(;l&&l.parent;)ho(l.parent.vnode)&&Yi(n,t,s,l),l=l.parent}}function Yi(e,t,s,n){const l=Xs(t,e,n,!0);Kn(()=>{On(n[t],l)},s)}function Xs(e,t,s=Ae,n=!1){if(s){const l=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...i)=>{nt();const r=vs(s),c=We(t,s,e,i);return r(),lt(),c});return n?l.unshift(o):l.push(o),o}}const ht=e=>(t,s=Ae)=>{(!ps||e==="sp")&&Xs(e,(...n)=>t(...n),s)},Xi=ht("bm"),mo=ht("m"),Zi=ht("bu"),Qi=ht("u"),er=ht("bum"),Kn=ht("um"),tr=ht("sp"),sr=ht("rtg"),nr=ht("rtc");function lr(e,t=Ae){Xs("ec",e,t)}const or=Symbol.for("v-ndc");function xe(e,t,s,n){let l;const o=s,i=N(e);if(i||ce(e)){const r=i&&Pt(e);let c=!1,m=!1;r&&(c=!Ve(e),m=pt(e),e=qs(e)),l=new Array(e.length);for(let h=0,y=e.length;ht(r,c,void 0,o));else{const r=Object.keys(e);l=new Array(r.length);for(let c=0,m=r.length;ce?Lo(e)?en(e):wn(e.parent):null,rs=Se(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=>wn(e.parent),$root:e=>wn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>bo(e),$forceUpdate:e=>e.f||(e.f=()=>{Hn(e.update)}),$nextTick:e=>e.n||(e.n=oo.bind(e.proxy)),$watch:e=>zi.bind(e)}),dn=(e,t)=>e!==ne&&!e.__isScriptSetup&&Q(e,t),ir={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:l,props:o,accessCache:i,type:r,appContext:c}=e;if(t[0]!=="$"){const M=i[t];if(M!==void 0)switch(M){case 1:return n[t];case 2:return l[t];case 4:return s[t];case 3:return o[t]}else{if(dn(n,t))return i[t]=1,n[t];if(l!==ne&&Q(l,t))return i[t]=2,l[t];if(Q(o,t))return i[t]=3,o[t];if(s!==ne&&Q(s,t))return i[t]=4,s[t];Cn&&(i[t]=0)}}const m=rs[t];let h,y;if(m)return t==="$attrs"&&we(e.attrs,"get",""),m(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(s!==ne&&Q(s,t))return i[t]=4,s[t];if(y=c.config.globalProperties,Q(y,t))return y[t]},set({_:e},t,s){const{data:n,setupState:l,ctx:o}=e;return dn(l,t)?(l[t]=s,!0):n!==ne&&Q(n,t)?(n[t]=s,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:l,props:o,type:i}},r){let c;return!!(s[r]||e!==ne&&r[0]!=="$"&&Q(e,r)||dn(t,r)||Q(o,r)||Q(n,r)||Q(rs,r)||Q(l.config.globalProperties,r)||(c=i.__cssModules)&&c[r])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:Q(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function rl(e){return N(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Cn=!0;function rr(e){const t=bo(e),s=e.proxy,n=e.ctx;Cn=!1,t.beforeCreate&&al(t.beforeCreate,e,"bc");const{data:l,computed:o,methods:i,watch:r,provide:c,inject:m,created:h,beforeMount:y,mounted:M,beforeUpdate:I,updated:J,activated:U,deactivated:W,beforeDestroy:Y,beforeUnmount:V,destroyed:X,unmounted:j,render:z,renderTracked:Re,renderTriggered:Le,errorCaptured:Ge,serverPrefetch:De,expose:Oe,inheritAttrs:de,components:Je,directives:ke,filters:be}=t;if(m&&ar(m,n,null),i)for(const le in i){const q=i[le];B(q)&&(n[le]=q.bind(s))}if(l){const le=l.call(s,s);te(le)&&(e.data=Nn(le))}if(Cn=!0,o)for(const le in o){const q=o[le],qe=B(q)?q.bind(s,s):B(q.get)?q.get.bind(s,s):tt,At=!B(q)&&B(q.set)?q.set.bind(s):tt,ye=Tn({get:qe,set:At});Object.defineProperty(n,le,{enumerable:!0,configurable:!0,get:()=>ye.value,set:me=>ye.value=me})}if(r)for(const le in r)vo(r[le],n,s,le);if(c){const le=B(c)?c.call(s):c;Reflect.ownKeys(le).forEach(q=>{Hi(q,le[q])})}h&&al(h,e,"c");function ge(le,q){N(q)?q.forEach(qe=>le(qe.bind(s))):q&&le(q.bind(s))}if(ge(Xi,y),ge(mo,M),ge(Zi,I),ge(Qi,J),ge(Ji,U),ge(qi,W),ge(lr,Ge),ge(nr,Re),ge(sr,Le),ge(er,V),ge(Kn,j),ge(tr,De),N(Oe))if(Oe.length){const le=e.exposed||(e.exposed={});Oe.forEach(q=>{Object.defineProperty(le,q,{get:()=>s[q],set:qe=>s[q]=qe,enumerable:!0})})}else e.exposed||(e.exposed={});z&&e.render===tt&&(e.render=z),de!=null&&(e.inheritAttrs=de),Je&&(e.components=Je),ke&&(e.directives=ke),De&&po(e)}function ar(e,t,s=tt){N(e)&&(e=Sn(e));for(const n in e){const l=e[n];let o;te(l)?"default"in l?o=Is(l.from||n,l.default,!0):o=Is(l.from||n):o=Is(l),Ce(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[n]=o}}function al(e,t,s){We(N(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function vo(e,t,s,n){let l=n.includes(".")?fo(s,n):()=>s[n];if(ce(e)){const o=t[e];B(o)&&un(l,o)}else if(B(e))un(l,e.bind(s));else if(te(e))if(N(e))e.forEach(o=>vo(o,t,s,n));else{const o=B(e.handler)?e.handler.bind(s):t[e.handler];B(o)&&un(l,o,e)}}function bo(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:l,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,r=o.get(t);let c;return r?c=r:!l.length&&!s&&!n?c=t:(c={},l.length&&l.forEach(m=>Fs(c,m,i,!0)),Fs(c,t,i)),te(t)&&o.set(t,c),c}function Fs(e,t,s,n=!1){const{mixins:l,extends:o}=t;o&&Fs(e,o,s,!0),l&&l.forEach(i=>Fs(e,i,s,!0));for(const i in t)if(!(n&&i==="expose")){const r=cr[i]||s&&s[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const cr={data:cl,props:ul,emits:ul,methods:es,computed:es,beforeCreate:Te,created:Te,beforeMount:Te,mounted:Te,beforeUpdate:Te,updated:Te,beforeDestroy:Te,beforeUnmount:Te,destroyed:Te,unmounted:Te,activated:Te,deactivated:Te,errorCaptured:Te,serverPrefetch:Te,components:es,directives:es,watch:fr,provide:cl,inject:ur};function cl(e,t){return t?e?function(){return Se(B(e)?e.call(this,this):e,B(t)?t.call(this,this):t)}:t:e}function ur(e,t){return es(Sn(e),Sn(t))}function Sn(e){if(N(e)){const t={};for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Be(t)}Modifiers`]||e[`${xt(t)}Modifiers`];function gr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||ne;let l=s;const o=t.startsWith("update:"),i=o&&hr(n,t.slice(7));i&&(i.trim&&(l=s.map(h=>ce(h)?h.trim():h)),i.number&&(l=s.map(Gs)));let r,c=n[r=ln(t)]||n[r=ln(Be(t))];!c&&o&&(c=n[r=ln(xt(t))]),c&&We(c,e,6,l);const m=n[r+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,We(m,e,6,l)}}const mr=new WeakMap;function xo(e,t,s=!1){const n=s?mr:t.emitsCache,l=n.get(e);if(l!==void 0)return l;const o=e.emits;let i={},r=!1;if(!B(e)){const c=m=>{const h=xo(m,t,!0);h&&(r=!0,Se(i,h))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!r?(te(e)&&n.set(e,null),null):(N(o)?o.forEach(c=>i[c]=null):Se(i,o),te(e)&&n.set(e,i),i)}function Zs(e,t){return!e||!Ks(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,xt(t))||Q(e,t))}function fl(e){const{type:t,vnode:s,proxy:n,withProxy:l,propsOptions:[o],slots:i,attrs:r,emit:c,render:m,renderCache:h,props:y,data:M,setupState:I,ctx:J,inheritAttrs:U}=e,W=Ds(e);let Y,V;try{if(s.shapeFlag&4){const j=l||n,z=j;Y=Qe(m.call(z,j,h,y,I,M,J)),V=r}else{const j=t;Y=Qe(j.length>1?j(y,{attrs:r,slots:i,emit:c}):j(y,null)),V=t.props?r:vr(r)}}catch(j){as.length=0,Ys(j,e,1),Y=je(bt)}let X=Y;if(V&&U!==!1){const j=Object.keys(V),{shapeFlag:z}=X;j.length&&z&7&&(o&&j.some(zs)&&(V=br(V,o)),X=Kt(X,V,!1,!0))}return s.dirs&&(X=Kt(X,null,!1,!0),X.dirs=X.dirs?X.dirs.concat(s.dirs):s.dirs),s.transition&&Bn(X,s.transition),Y=X,Ds(W),Y}const vr=e=>{let t;for(const s in e)(s==="class"||s==="style"||Ks(s))&&((t||(t={}))[s]=e[s]);return t},br=(e,t)=>{const s={};for(const n in e)(!zs(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function yr(e,t,s){const{props:n,children:l,component:o}=e,{props:i,children:r,patchFlag:c}=t,m=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?dl(n,i,m):!!i;if(c&8){const h=t.dynamicProps;for(let y=0;yObject.create(wo),So=e=>Object.getPrototypeOf(e)===wo;function _r(e,t,s,n=!1){const l={},o=Co();e.propsDefaults=Object.create(null),ko(e,t,l,o);for(const i in e.propsOptions[0])i in l||(l[i]=void 0);s?e.props=n?l:Ai(l):e.type.props?e.props=l:e.props=o,e.attrs=o}function wr(e,t,s,n){const{props:l,attrs:o,vnode:{patchFlag:i}}=e,r=Z(l),[c]=e.propsOptions;let m=!1;if((n||i>0)&&!(i&16)){if(i&8){const h=e.vnode.dynamicProps;for(let y=0;y{c=!0;const[M,I]=Eo(y,t,!0);Se(i,M),I&&r.push(...I)};!s&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!o&&!c)return te(e)&&n.set(e,Nt),Nt;if(N(o))for(let h=0;he==="_"||e==="_ctx"||e==="$stable",Wn=e=>N(e)?e.map(Qe):[Qe(e)],Sr=(e,t,s)=>{if(t._n)return t;const n=Vi((...l)=>Wn(t(...l)),s);return n._c=!1,n},To=(e,t,s)=>{const n=e._ctx;for(const l in e){if(zn(l))continue;const o=e[l];if(B(o))t[l]=Sr(l,o,n);else if(o!=null){const i=Wn(o);t[l]=()=>i}}},Po=(e,t)=>{const s=Wn(t);e.slots.default=()=>s},Ao=(e,t,s)=>{for(const n in t)(s||!zn(n))&&(e[n]=t[n])},kr=(e,t,s)=>{const n=e.slots=Co();if(e.vnode.shapeFlag&32){const l=t._;l?(Ao(n,t,s),s&&Nl(n,"_",l,!0)):To(t,n)}else t&&Po(e,t)},Er=(e,t,s)=>{const{vnode:n,slots:l}=e;let o=!0,i=ne;if(n.shapeFlag&32){const r=t._;r?s&&r===1?o=!1:Ao(l,t,s):(o=!t.$stable,To(t,l)),i=t}else t&&(Po(e,t),i={default:1});if(o)for(const r in l)!zn(r)&&i[r]==null&&delete l[r]},Me=Mr;function Tr(e){return Pr(e)}function Pr(e,t){const s=Js();s.__VUE__=!0;const{insert:n,remove:l,patchProp:o,createElement:i,createText:r,createComment:c,setText:m,setElementText:h,parentNode:y,nextSibling:M,setScopeId:I=tt,insertStaticContent:J}=e,U=(a,p,v,w=null,_=null,x=null,P=void 0,k=null,S=!!p.dynamicChildren)=>{if(a===p)return;a&&!Yt(a,p)&&(w=Ot(a),me(a,_,x,!0),a=null),p.patchFlag===-2&&(S=!1,p.dynamicChildren=null);const{type:b,ref:R,shapeFlag:A}=p;switch(b){case Qs:W(a,p,v,w);break;case bt:Y(a,p,v,w);break;case Us:a==null&&V(p,v,w,P);break;case se:Je(a,p,v,w,_,x,P,k,S);break;default:A&1?z(a,p,v,w,_,x,P,k,S):A&6?ke(a,p,v,w,_,x,P,k,S):(A&64||A&128)&&b.process(a,p,v,w,_,x,P,k,S,Ct)}R!=null&&_?os(R,a&&a.ref,x,p||a,!p):R==null&&a&&a.ref!=null&&os(a.ref,null,x,a,!0)},W=(a,p,v,w)=>{if(a==null)n(p.el=r(p.children),v,w);else{const _=p.el=a.el;p.children!==a.children&&m(_,p.children)}},Y=(a,p,v,w)=>{a==null?n(p.el=c(p.children||""),v,w):p.el=a.el},V=(a,p,v,w)=>{[a.el,a.anchor]=J(a.children,p,v,w,a.el,a.anchor)},X=({el:a,anchor:p},v,w)=>{let _;for(;a&&a!==p;)_=M(a),n(a,v,w),a=_;n(p,v,w)},j=({el:a,anchor:p})=>{let v;for(;a&&a!==p;)v=M(a),l(a),a=v;l(p)},z=(a,p,v,w,_,x,P,k,S)=>{if(p.type==="svg"?P="svg":p.type==="math"&&(P="mathml"),a==null)Re(p,v,w,_,x,P,k,S);else{const b=a.el&&a.el._isVueCE?a.el:null;try{b&&b._beginPatch(),De(a,p,_,x,P,k,S)}finally{b&&b._endPatch()}}},Re=(a,p,v,w,_,x,P,k)=>{let S,b;const{props:R,shapeFlag:A,transition:$,dirs:D}=a;if(S=a.el=i(a.type,x,R&&R.is,R),A&8?h(S,a.children):A&16&&Ge(a.children,S,null,w,_,pn(a,x),P,k),D&&St(a,null,w,"created"),Le(S,a,a.scopeId,P,w),R){for(const G in R)G!=="value"&&!ss(G)&&o(S,G,null,R[G],x,w);"value"in R&&o(S,"value",null,R.value,x),(b=R.onVnodeBeforeMount)&&Ye(b,w,a)}D&&St(a,null,w,"beforeMount");const K=Ar(_,$);K&&$.beforeEnter(S),n(S,p,v),((b=R&&R.onVnodeMounted)||K||D)&&Me(()=>{try{b&&Ye(b,w,a),K&&$.enter(S),D&&St(a,null,w,"mounted")}finally{}},_)},Le=(a,p,v,w,_)=>{if(v&&I(a,v),w)for(let x=0;x{for(let b=S;b{const k=p.el=a.el;let{patchFlag:S,dynamicChildren:b,dirs:R}=p;S|=a.patchFlag&16;const A=a.props||ne,$=p.props||ne;let D;if(v&&kt(v,!1),(D=$.onVnodeBeforeUpdate)&&Ye(D,v,p,a),R&&St(p,a,v,"beforeUpdate"),v&&kt(v,!0),b&&(!a.dynamicChildren||a.dynamicChildren.length!==b.length)&&(S=0,P=!1,b=null),(A.innerHTML&&$.innerHTML==null||A.textContent&&$.textContent==null)&&h(k,""),b?Oe(a.dynamicChildren,b,k,v,w,pn(p,_),x):P||q(a,p,k,null,v,w,pn(p,_),x,!1),S>0){if(S&16)de(k,A,$,v,_);else if(S&2&&A.class!==$.class&&o(k,"class",null,$.class,_),S&4&&o(k,"style",A.style,$.style,_),S&8){const K=p.dynamicProps;for(let G=0;G{D&&Ye(D,v,p,a),R&&St(p,a,v,"updated")},w)},Oe=(a,p,v,w,_,x,P)=>{for(let k=0;k{if(p!==v){if(p!==ne)for(const x in p)!ss(x)&&!(x in v)&&o(a,x,p[x],null,_,w);for(const x in v){if(ss(x))continue;const P=v[x],k=p[x];P!==k&&x!=="value"&&o(a,x,k,P,_,w)}"value"in v&&o(a,"value",p.value,v.value,_)}},Je=(a,p,v,w,_,x,P,k,S)=>{const b=p.el=a?a.el:r(""),R=p.anchor=a?a.anchor:r("");let{patchFlag:A,dynamicChildren:$,slotScopeIds:D}=p;D&&(k=k?k.concat(D):D),a==null?(n(b,v,w),n(R,v,w),Ge(p.children||[],v,R,_,x,P,k,S)):A>0&&A&64&&$&&a.dynamicChildren&&a.dynamicChildren.length===$.length?(Oe(a.dynamicChildren,$,v,_,x,P,k),(p.key!=null||_&&p===_.subTree)&&Oo(a,p,!0)):q(a,p,v,R,_,x,P,k,S)},ke=(a,p,v,w,_,x,P,k,S)=>{p.slotScopeIds=k,a==null?p.shapeFlag&512?_.ctx.activate(p,v,w,P,S):be(p,v,w,_,x,P,S):Gt(a,p,S)},be=(a,p,v,w,_,x,P)=>{const k=a.component=Fr(a,w,_);if(ho(a)&&(k.ctx.renderer=Ct),Hr(k,!1,P),k.asyncDep){if(_&&_.registerDep(k,ge,P),!a.el){const S=k.subTree=je(bt);Y(null,S,p,v),a.placeholder=S.el}}else ge(k,a,p,v,_,x,P)},Gt=(a,p,v)=>{const w=p.component=a.component;if(yr(a,p,v))if(w.asyncDep&&!w.asyncResolved){le(w,p,v);return}else w.next=p,w.update();else p.el=a.el,w.vnode=p},ge=(a,p,v,w,_,x,P)=>{const k=()=>{if(a.isMounted){let{next:A,bu:$,u:D,parent:K,vnode:G}=a;{const ue=Mo(a);if(ue){A&&(A.el=G.el,le(a,A,P)),ue.asyncDep.then(()=>{Me(()=>{a.isUnmounted||b()},_)});return}}let F=A,ee;kt(a,!1),A?(A.el=G.el,le(a,A,P)):A=G,$&&Rs($),(ee=A.props&&A.props.onVnodeBeforeUpdate)&&Ye(ee,K,A,G),kt(a,!0);const ae=fl(a),Ee=a.subTree;a.subTree=ae,U(Ee,ae,y(Ee.el),Ot(Ee),a,_,x),A.el=ae.el,F===null&&xr(a,ae.el),D&&Me(D,_),(ee=A.props&&A.props.onVnodeUpdated)&&Me(()=>Ye(ee,K,A,G),_)}else{let A;const{el:$,props:D}=p,{bm:K,m:G,parent:F,root:ee,type:ae}=a,Ee=is(p);kt(a,!1),K&&Rs(K),!Ee&&(A=D&&D.onVnodeBeforeMount)&&Ye(A,F,p),kt(a,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(ae,a.parent?a.parent.type:void 0);const ue=a.subTree=fl(a);U(null,ue,v,w,a,_,x),p.el=ue.el}if(G&&Me(G,_),!Ee&&(A=D&&D.onVnodeMounted)){const ue=p;Me(()=>Ye(A,F,ue),_)}(p.shapeFlag&256||F&&is(F.vnode)&&F.vnode.shapeFlag&256)&&a.a&&Me(a.a,_),a.isMounted=!0,p=v=w=null}};a.scope.on();const S=a.effect=new Bl(k);a.scope.off();const b=a.update=S.run.bind(S),R=a.job=S.runIfDirty.bind(S);R.i=a,R.id=a.uid,S.scheduler=()=>Hn(R),kt(a,!0),b()},le=(a,p,v)=>{p.component=a;const w=a.vnode.props;a.vnode=p,a.next=null,wr(a,p.props,w,v),Er(a,p.children,v),nt(),ll(a),lt()},q=(a,p,v,w,_,x,P,k,S=!1)=>{const b=a&&a.children,R=a?a.shapeFlag:0,A=p.children,{patchFlag:$,shapeFlag:D}=p;if($>0){if($&128){At(b,A,v,w,_,x,P,k,S);return}else if($&256){qe(b,A,v,w,_,x,P,k,S);return}}D&8?(R&16&&wt(b,_,x),A!==b&&h(v,A)):R&16?D&16?At(b,A,v,w,_,x,P,k,S):wt(b,_,x,!0):(R&8&&h(v,""),D&16&&Ge(A,v,w,_,x,P,k,S))},qe=(a,p,v,w,_,x,P,k,S)=>{a=a||Nt,p=p||Nt;const b=a.length,R=p.length,A=Math.min(b,R);let $;for($=0;$R?wt(a,_,x,!0,!1,A):Ge(p,v,w,_,x,P,k,S,A)},At=(a,p,v,w,_,x,P,k,S)=>{let b=0;const R=p.length;let A=a.length-1,$=R-1;for(;b<=A&&b<=$;){const D=a[b],K=p[b]=S?ct(p[b]):Qe(p[b]);if(Yt(D,K))U(D,K,v,null,_,x,P,k,S);else break;b++}for(;b<=A&&b<=$;){const D=a[A],K=p[$]=S?ct(p[$]):Qe(p[$]);if(Yt(D,K))U(D,K,v,null,_,x,P,k,S);else break;A--,$--}if(b>A){if(b<=$){const D=$+1,K=D$)for(;b<=A;)me(a[b],_,x,!0),b++;else{const D=b,K=b,G=new Map;for(b=K;b<=$;b++){const oe=p[b]=S?ct(p[b]):Qe(p[b]);oe.key!=null&&G.set(oe.key,b)}let F,ee=0;const ae=$-K+1;let Ee=!1,ue=0;const pe=new Array(ae);for(b=0;b=ae){me(oe,_,x,!0);continue}let he;if(oe.key!=null)he=G.get(oe.key);else for(F=K;F<=$;F++)if(pe[F-K]===0&&Yt(oe,p[F])){he=F;break}he===void 0?me(oe,_,x,!0):(pe[he-K]=b+1,he>=ue?ue=he:Ee=!0,U(oe,p[he],v,null,_,x,P,k,S),ee++)}const ot=Ee?Or(pe):Nt;for(F=ot.length-1,b=ae-1;b>=0;b--){const oe=K+b,he=p[oe],ys=p[oe+1],xs=oe+1{const{el:x,type:P,transition:k,children:S,shapeFlag:b}=a;if(b&6){ye(a.component.subTree,p,v,w);return}if(b&128){a.suspense.move(p,v,w);return}if(b&64){P.move(a,p,v,Ct);return}if(P===se){n(x,p,v);for(let A=0;Ak.enter(x),_));else{const{leave:A,delayLeave:$,afterLeave:D}=k,K=()=>{a.ctx.isUnmounted?l(x):n(x,p,v)},G=()=>{const F=x._isLeaving||!!x[fn];x._isLeaving&&x[fn](!0),k.persisted&&!F?K():A(x,()=>{K(),D&&D()})};$?$(x,K,G):G()}else n(x,p,v)},me=(a,p,v,w=!1,_=!1)=>{const{type:x,props:P,ref:k,children:S,dynamicChildren:b,shapeFlag:R,patchFlag:A,dirs:$,cacheIndex:D,memo:K}=a;if(A===-2&&(_=!1),k!=null&&(nt(),os(k,null,v,a,!0),lt()),D!=null&&(p.renderCache[D]=void 0),R&256){p.ctx.deactivate(a);return}const G=R&1&&$,F=!is(a);let ee;if(F&&(ee=P&&P.onVnodeBeforeUnmount)&&Ye(ee,p,a),R&6)Jt(a.component,v,w);else{if(R&128){a.suspense.unmount(v,w);return}G&&St(a,null,p,"beforeUnmount"),R&64?a.type.remove(a,p,v,Ct,w):b&&!b.hasOnce&&(x!==se||A>0&&A&64)?wt(b,p,v,!1,!0):(x===se&&A&384||!_&&R&16)&&wt(S,p,v),w&&_t(a)}const ae=K!=null&&D==null;(F&&(ee=P&&P.onVnodeUnmounted)||G||ae)&&Me(()=>{ee&&Ye(ee,p,a),G&&St(a,null,p,"unmounted"),ae&&(a.el=null)},v)},_t=a=>{const{type:p,el:v,anchor:w,transition:_}=a;if(p===se){tn(v,w);return}if(p===Us){j(a);return}const x=()=>{l(v),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(a.shapeFlag&1&&_&&!_.persisted){const{leave:P,delayLeave:k}=_,S=()=>P(v,x);k?k(a.el,x,S):S()}else x()},tn=(a,p)=>{let v;for(;a!==p;)v=M(a),l(a),a=v;l(p)},Jt=(a,p,v)=>{const{bum:w,scope:_,job:x,subTree:P,um:k,m:S,a:b}=a;hl(S),hl(b),w&&Rs(w),_.stop(),x&&(x.flags|=8,me(P,a,p,v)),k&&Me(k,p),Me(()=>{a.isUnmounted=!0},p)},wt=(a,p,v,w=!1,_=!1,x=0)=>{for(let P=x;P{if(a.shapeFlag&6)return Ot(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const p=M(a.anchor||a.el),v=p&&p[Wi];return v?M(v):p};let Mt=!1;const bs=(a,p,v)=>{let w;a==null?p._vnode&&(me(p._vnode,null,null,!0),w=p._vnode.component):U(p._vnode||null,a,p,null,null,null,v),p._vnode=a,Mt||(Mt=!0,ll(w),ro(),Mt=!1)},Ct={p:U,um:me,m:ye,r:_t,mt:be,mc:Ge,pc:q,pbc:Oe,n:Ot,o:e};return{render:bs,hydrate:void 0,createApp:pr(bs)}}function pn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function kt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ar(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Oo(e,t,s=!1){const n=e.children,l=t.children;if(N(n)&&N(l))for(let o=0;o>1,e[s[r]]0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,i=s[o-1];o-- >0;)s[o]=i,i=t[i];return s}function Mo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Mo(t)}function hl(e){if(e)for(let t=0;te.__isSuspense;function Mr(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Fi(e)}const se=Symbol.for("v-fgt"),Qs=Symbol.for("v-txt"),bt=Symbol.for("v-cmt"),Us=Symbol.for("v-stc"),as=[];let $e=null;function E(e=!1){as.push($e=e?null:[])}function Rr(){as.pop(),$e=as[as.length-1]||null}let ds=1;function gl(e,t=!1){ds+=e,e<0&&$e&&t&&($e.hasOnce=!0)}function Uo(e){return e.dynamicChildren=ds>0?$e||Nt:null,Rr(),ds>0&&$e&&$e.push(e),e}function T(e,t,s,n,l,o){return Uo(d(e,t,s,n,l,o,!0))}function Ir(e,t,s,n,l){return Uo(je(e,t,s,n,l,!0))}function $o(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const jo=({key:e})=>e??null,$s=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||Ce(e)||B(e)?{i:Fe,r:e,k:t,f:!!s}:e:null);function d(e,t=null,s=null,n=0,l=null,o=e===se?0:1,i=!1,r=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jo(t),ref:t&&$s(t),scopeId:co,slotScopeIds:null,children:s,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:o,patchFlag:n,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Fe};return r?(Vs(c,s),o&128&&e.normalize(c)):s&&(c.shapeFlag|=ce(s)?8:16),ds>0&&!i&&$e&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&$e.push(c),c}const je=Ur;function Ur(e,t=null,s=null,n=0,l=null,o=!1){if((!e||e===or)&&(e=bt),$o(e)){const r=Kt(e,t,!0);return s&&Vs(r,s),ds>0&&!o&&$e&&(r.shapeFlag&6?$e[$e.indexOf(e)]=r:$e.push(r)),r.patchFlag=-2,r}if(Wr(e)&&(e=e.__vccOpts),t){t=$r(t);let{class:r,style:c}=t;r&&!ce(r)&&(t.class=Ue(r)),te(c)&&(Vn(c)&&!N(c)&&(c=Se({},c)),t.style=Rn(c))}const i=ce(e)?1:Io(e)?128:Gi(e)?64:te(e)?4:B(e)?2:0;return d(e,t,s,n,l,i,o,!0)}function $r(e){return e?Vn(e)||So(e)?Se({},e):e:null}function Kt(e,t,s=!1,n=!1){const{props:l,ref:o,patchFlag:i,children:r,transition:c}=e,m=t?Lr(l||{},t):l,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&jo(m),ref:t&&t.ref?s&&o?N(o)?o.concat($s(t)):[o,$s(t)]:$s(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==se?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Kt(e.ssContent),ssFallback:e.ssFallback&&Kt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&Bn(h,c.clone(h)),h}function Ne(e=" ",t=0){return je(Qs,null,e,t)}function jr(e,t){const s=je(Us,null,e);return s.staticCount=t,s}function H(e="",t=!1){return t?(E(),Ir(bt,null,e)):je(bt,null,e)}function Qe(e){return e==null||typeof e=="boolean"?je(bt):N(e)?je(se,null,e.slice()):$o(e)?ct(e):je(Qs,null,String(e))}function ct(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Kt(e)}function Vs(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(N(t))s=16;else if(typeof t=="object")if(n&65){const l=t.default;l&&(l._c&&(l._d=!1),Vs(e,l()),l._c&&(l._d=!0));return}else{s=32;const l=t._;!l&&!So(t)?t._ctx=Fe:l===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(B(t)){if(n&65){Vs(e,{default:t});return}t={default:t,_ctx:Fe},s=32}else t=String(t),n&64?(s=16,t=[Ne(t)]):s=8;e.children=t,e.shapeFlag|=s}function Lr(...e){const t={};for(let s=0;sAe||Fe;let Hs,En;{const e=Js(),t=(s,n)=>{let l;return(l=e[s])||(l=e[s]=[]),l.push(n),o=>{l.length>1?l.forEach(i=>i(o)):l[0](o)}};Hs=t("__VUE_INSTANCE_SETTERS__",s=>Ae=s),En=t("__VUE_SSR_SETTERS__",s=>ps=s)}const vs=e=>{const t=Ae;return Hs(e),e.scope.on(),()=>{e.scope.off(),Hs(t)}},ml=()=>{Ae&&Ae.scope.off(),Hs(null)};function Lo(e){return e.vnode.shapeFlag&4}let ps=!1;function Hr(e,t=!1,s=!1){t&&En(t);const{props:n,children:l}=e.vnode,o=Lo(e);_r(e,n,o,t),kr(e,l,s||t);const i=o?Br(e,t):void 0;return t&&En(!1),i}function Br(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,ir);const{setup:n}=s;if(n){nt();const l=e.setupContext=n.length>1?zr(e):null,o=vs(e),i=ms(n,e,0,[e.props,l]),r=$l(i);if(lt(),o(),(r||e.sp)&&!is(e)&&po(e),r){if(i.then(ml,ml),t)return i.then(c=>{vl(e,c)}).catch(c=>{Ys(c,e,0)});e.asyncDep=i}else vl(e,i)}else Do(e)}function vl(e,t,s){B(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:te(t)&&(e.setupState=no(t)),Do(e)}function Do(e,t,s){const n=e.type;e.render||(e.render=n.render||tt);{const l=vs(e);nt();try{rr(e)}finally{lt(),l()}}}const Kr={get(e,t){return we(e,"get",""),e[t]}};function zr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Kr),slots:e.slots,emit:e.emit,expose:t}}function en(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(no(Oi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in rs)return rs[s](e)},has(t,s){return s in t||s in rs}})):e.proxy}function Wr(e){return B(e)&&"__vccOpts"in e}const Tn=(e,t)=>$i(e,t,ps),Gr="3.5.39";/** -* @vue/runtime-dom v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Pn;const bl=typeof window<"u"&&window.trustedTypes;if(bl)try{Pn=bl.createPolicy("vue",{createHTML:e=>e})}catch{}const No=Pn?e=>Pn.createHTML(e):e=>e,Jr="http://www.w3.org/2000/svg",qr="http://www.w3.org/1998/Math/MathML",at=typeof document<"u"?document:null,yl=at&&at.createElement("template"),Yr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const l=t==="svg"?at.createElementNS(Jr,e):t==="mathml"?at.createElementNS(qr,e):s?at.createElement(e,{is:s}):at.createElement(e);return e==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,l,o){const i=s?s.previousSibling:t.lastChild;if(l&&(l===o||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),s),!(l===o||!(l=l.nextSibling)););else{yl.innerHTML=No(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const r=yl.content;if(n==="svg"||n==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,s)}return[i?i.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Xr=Symbol("_vtc");function Zr(e,t,s){const n=e[Xr];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Bs=Symbol("_vod"),Fo=Symbol("_vsh"),Xt={name:"show",beforeMount(e,{value:t},{transition:s}){e[Bs]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Zt(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:n}){!t!=!s&&(n?t?(n.beforeEnter(e),Zt(e,!0),n.enter(e)):n.leave(e,()=>{Zt(e,!1)}):Zt(e,t))},beforeUnmount(e,{value:t}){Zt(e,t)}};function Zt(e,t){e.style.display=t?e[Bs]:"none",e[Fo]=!t}const Qr=Symbol(""),ea=/(?:^|;)\s*display\s*:/;function ta(e,t,s){const n=e.style,l=ce(s);let o=!1;if(s&&!l){if(t)if(ce(t))for(const i of t.split(";")){const r=i.slice(0,i.indexOf(":")).trim();s[r]==null&&ts(n,r,"")}else for(const i in t)s[i]==null&&ts(n,i,"");for(const i in s){i==="display"&&(o=!0);const r=s[i];r!=null?na(e,i,!ce(t)&&t?t[i]:void 0,r)||ts(n,i,r):ts(n,i,"")}}else if(l){if(t!==s){const i=n[Qr];i&&(s+=";"+i),n.cssText=s,o=ea.test(s)}}else t&&e.removeAttribute("style");Bs in e&&(e[Bs]=o?n.display:"",e[Fo]&&(n.display="none"))}const xl=/\s*!important$/;function ts(e,t,s){if(N(s))s.forEach(n=>ts(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=sa(e,t);xl.test(s)?e.setProperty(xt(n),s.replace(xl,""),"important"):e[n]=s}}const _l=["Webkit","Moz","ms"],hn={};function sa(e,t){const s=hn[t];if(s)return s;let n=Be(t);if(n!=="filter"&&n in e)return hn[t]=n;n=Dl(n);for(let l=0;l<_l.length;l++){const o=_l[l]+n;if(o in e)return hn[t]=o}return t}function na(e,t,s,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&ce(n)&&s===n}const wl="http://www.w3.org/1999/xlink";function Cl(e,t,s,n,l,o=ai(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(wl,t.slice(6,t.length)):e.setAttributeNS(wl,t,s):s==null||o&&!Fl(s)?e.removeAttribute(t):e.setAttribute(t,o?"":st(s)?String(s):s)}function Sl(e,t,s,n,l){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?No(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const r=o==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(r!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let i=!1;if(s===""||s==null){const r=typeof e[t];r==="boolean"?s=Fl(s):s==null&&r==="string"?(s="",i=!0):r==="number"&&(s=0,i=!0)}try{e[t]=s}catch{}i&&e.removeAttribute(l||t)}function dt(e,t,s,n){e.addEventListener(t,s,n)}function la(e,t,s,n){e.removeEventListener(t,s,n)}const kl=Symbol("_vei");function oa(e,t,s,n,l=null){const o=e[kl]||(e[kl]={}),i=o[t];if(n&&i)i.value=n;else{const[r,c]=aa(t);if(n){const m=o[t]=fa(n,l);dt(e,r,m,c)}else i&&(la(e,r,i,c),o[t]=void 0)}}const ia=/(Once|Passive|Capture)$/,ra=/^on:?(?:Once|Passive|Capture)$/;function aa(e){let t,s;for(;(s=e.match(ia))&&!ra.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):xt(e.slice(2)),t]}let gn=0;const ca=Promise.resolve(),ua=()=>gn||(ca.then(()=>gn=0),gn=Date.now());function fa(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const l=s.value;if(N(l)){const o=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{o.call(n),n._stopped=!0};const i=l.slice(),r=[n];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,da=(e,t,s,n,l,o)=>{const i=l==="svg";t==="class"?Zr(e,n,i):t==="style"?ta(e,s,n):Ks(t)?zs(t)||oa(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pa(e,t,n,i))?(Sl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Cl(e,t,n,i,o,t!=="value")):e._isVueCE&&(ha(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ce(n)))?Sl(e,Be(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Cl(e,t,n,i))};function pa(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&El(t)&&B(s));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 l=e.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return El(t)&&ce(s)?!1:t in e}function ha(e,t){const s=e._def.props;if(!s)return!1;const n=Be(t);return Array.isArray(s)?s.some(l=>Be(l)===n):Object.keys(s).some(l=>Be(l)===n)}const yt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?s=>Rs(t,s):t};function ga(e){e.target.composing=!0}function Tl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const He=Symbol("_assign");function Pl(e,t,s){return t&&(e=e.trim()),s&&(e=Gs(e)),e}const _e={created(e,{modifiers:{lazy:t,trim:s,number:n}},l){e[He]=yt(l);const o=n||l.props&&l.props.type==="number";dt(e,t?"change":"input",i=>{i.target.composing||e[He](Pl(e.value,s,o))}),(s||o)&&dt(e,"change",()=>{e.value=Pl(e.value,s,o)}),t||(dt(e,"compositionstart",ga),dt(e,"compositionend",Tl),dt(e,"change",Tl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:l,number:o}},i){if(e[He]=yt(i),e.composing)return;const r=(o||e.type==="number")&&!/^0\d/.test(e.value)?Gs(e.value):e.value,c=t??"";if(r===c)return;const m=e.getRootNode();(m instanceof Document||m instanceof ShadowRoot)&&m.activeElement===e&&e.type!=="range"&&(n&&t===s||l&&e.value.trim()===c)||(e.value=c)}},Vo={deep:!0,created(e,t,s){e[He]=yt(s),dt(e,"change",()=>{const n=e._modelValue,l=zt(e),o=e.checked,i=e[He];if(N(n)){const r=In(n,l),c=r!==-1;if(o&&!c)i(n.concat(l));else if(!o&&c){const m=[...n];m.splice(r,1),i(m)}}else if(Wt(n)){const r=new Set(n);o?r.add(l):r.delete(l),i(r)}else i(Ho(e,o))})},mounted:Al,beforeUpdate(e,t,s){e[He]=yt(s),Al(e,t,s)}};function Al(e,{value:t,oldValue:s},n){e._modelValue=t;let l;if(N(t))l=In(t,n.props.value)>-1;else if(Wt(t))l=t.has(n.props.value);else{if(t===s)return;l=vt(t,Ho(e,!0))}e.checked!==l&&(e.checked=l)}const ma={created(e,{value:t},s){e.checked=vt(t,s.props.value),e[He]=yt(s),dt(e,"change",()=>{e[He](zt(e))})},beforeUpdate(e,{value:t,oldValue:s},n){e[He]=yt(n),t!==s&&(e.checked=vt(t,n.props.value))}},Dt={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const l=Wt(t);dt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>s?Gs(zt(i)):zt(i));e[He](e.multiple?l?new Set(o):o:o[0]),e._assigning=!0,oo(()=>{e._assigning=!1})}),e[He]=yt(n)},mounted(e,{value:t}){Ol(e,t)},beforeUpdate(e,t,s){e[He]=yt(s)},updated(e,{value:t}){e._assigning||Ol(e,t)}};function Ol(e,t){const s=e.multiple,n=N(t);if(!(s&&!n&&!Wt(t))){for(let l=0,o=e.options.length;lString(m)===String(r)):i.selected=In(t,r)>-1}else i.selected=t.has(r);else if(vt(zt(i),t)){e.selectedIndex!==l&&(e.selectedIndex=l);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function zt(e){return"_value"in e?e._value:e.value}function Ho(e,t){const s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}const va={created(e,t,s){Os(e,t,s,null,"created")},mounted(e,t,s){Os(e,t,s,null,"mounted")},beforeUpdate(e,t,s,n){Os(e,t,s,n,"beforeUpdate")},updated(e,t,s,n){Os(e,t,s,n,"updated")}};function ba(e,t){switch(e){case"SELECT":return Dt;case"TEXTAREA":return _e;default:switch(t){case"checkbox":return Vo;case"radio":return ma;default:return _e}}}function Os(e,t,s,n,l){const i=ba(e.tagName,s.props&&s.props.type)[l];i&&i(e,t,s,n)}const ya=["ctrl","shift","alt","meta"],xa={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)=>ya.some(s=>e[`${s}Key`]&&!t.includes(s))},_a=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((l,...o)=>{for(let i=0;i{const s=e._withKeys||(e._withKeys={}),n=t.join(".");return s[n]||(s[n]=(l=>{if(!("key"in l))return;const o=xt(l.key);if(t.some(i=>i===o||wa[i]===o))return e(l)}))},Ca=Se({patchProp:da},Yr);let Rl;function Sa(){return Rl||(Rl=Tr(Ca))}const ka=((...e)=>{const t=Sa().createApp(...e),{mount:s}=t;return t.mount=n=>{const l=Ta(n);if(!l)return;const o=t._component;!B(o)&&!o.render&&!o.template&&(o.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const i=s(l,!1,Ea(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t});function Ea(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ta(e){return ce(e)?document.querySelector(e):e}const Bo="pilotvault-theme";function Pa(){try{return localStorage.getItem(Bo)==="dark"?"dark":"light"}catch{return"light"}}const hs=L(Pa());function Ko(e){hs.value=e,document.documentElement.setAttribute("data-theme",e);try{localStorage.setItem(Bo,e)}catch{}}function Il(){Ko(hs.value==="dark"?"light":"dark")}Ko(hs.value);const Aa={class:"overflow-hidden rounded-lg border border-subtle bg-card shadow-xs"},Oa={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Ma={class:"text-base font-semibold text-primary"},Ra={class:"pv-eyebrow"},Ia={class:"w-full text-left text-sm"},Ua={class:"border-t border-subtle px-5 py-2.5 font-mono text-xs whitespace-nowrap"},$a={class:"text-primary"},ja={class:"border-t border-subtle px-5 py-2.5 text-secondary"},mn={__name:"EndpointTable",props:{title:String,auth:String,endpoints:Array},setup(e){const t={GET:"text-success",POST:"text-brand-text",PATCH:"text-warning",DELETE:"text-danger"};return(s,n)=>(E(),T("div",Aa,[d("div",Oa,[d("div",Ma,O(e.title),1),d("span",Ra,O(e.auth),1)]),d("table",Ia,[n[0]||(n[0]=d("thead",null,[d("tr",{class:"pv-eyebrow"},[d("th",{class:"px-5 py-2.5 font-medium"},"Endpoint"),d("th",{class:"px-5 py-2.5 font-medium"},"Description")])],-1)),d("tbody",null,[(E(!0),T(se,null,xe(e.endpoints,l=>(E(),T("tr",{key:l.method+l.path,class:"transition-colors hover:bg-sunken"},[d("td",Ua,[d("span",{class:Ue(["font-semibold",t[l.method]])},O(l.method),3),d("span",$a,O(l.path),1)]),d("td",ja,O(l.desc),1)]))),128))])])]))}},La={class:"mx-auto flex max-w-5xl flex-col gap-6 px-6 pt-12 pb-16"},Da={class:"flex items-center gap-3"},Na={key:0,class:"pv-eyebrow hidden truncate sm:inline"},Fa=["title"],Va={key:0,class:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ha={key:1,class:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Ba={key:0,class:"rounded-lg border border-subtle bg-card px-5 py-10 text-center shadow-sm"},Ka={key:1,class:"mx-auto w-full max-w-sm rounded-lg border border-subtle bg-card shadow-sm"},za={class:"flex flex-col gap-1"},Wa={class:"flex flex-col gap-1"},Ga={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},Ja=["disabled"],qa={class:"flex gap-1 self-start rounded-lg border border-subtle bg-card p-1 shadow-sm"},Ya=["onClick"],Xa={class:"flex flex-col gap-6"},Za={class:"rounded-lg border border-subtle bg-card shadow-sm"},Qa={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},ec={class:"pv-eyebrow"},tc={class:"min-w-0"},sc={class:"text-sm font-semibold text-primary"},nc={key:0,class:"truncate font-mono text-xs text-secondary"},lc={class:"flex items-center justify-between gap-3 border-t border-subtle px-5 py-3.5"},oc={class:"font-mono text-xs text-secondary"},ic={class:"flex flex-col gap-6"},rc={class:"rounded-lg border border-subtle bg-card shadow-sm"},ac={class:"flex flex-col gap-3 px-5 py-5"},cc={class:"flex flex-col gap-3 sm:flex-row"},uc={class:"flex flex-1 flex-col gap-1"},fc={class:"flex flex-1 flex-col gap-1"},dc={class:"flex flex-col gap-3 sm:flex-row"},pc={class:"flex flex-1 flex-col gap-1"},hc=["value"],gc={class:"flex flex-1 flex-col gap-1"},mc=["value"],vc={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},bc={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},yc=["disabled"],xc={class:"rounded-lg border border-subtle bg-card shadow-sm"},_c={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},wc={class:"pv-eyebrow"},Cc={class:"flex flex-col"},Sc={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},kc={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},Ec={key:2,class:"px-5 py-6 text-sm text-secondary"},Tc={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},Pc={class:"min-w-0 flex-1"},Ac={class:"flex flex-wrap items-center gap-2"},Oc={class:"truncate text-sm font-semibold text-primary"},Mc={key:0,class:"rounded-sm bg-brand/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-brand-text"},Rc={key:1,class:"rounded-sm bg-warning-tint px-1.5 py-0.5 font-mono text-[10px] font-medium text-warning"},Ic={class:"mt-0.5 font-mono text-xs text-secondary"},Uc={class:"flex shrink-0 items-center gap-2"},$c=["onClick"],jc=["disabled","onClick"],Lc={key:0,class:"mt-3 flex flex-col gap-3 rounded-md border border-subtle bg-sunken px-4 py-4"},Dc={class:"flex flex-col gap-3 sm:flex-row"},Nc={class:"flex flex-1 flex-col gap-1"},Fc={class:"flex flex-1 flex-col gap-1"},Vc={class:"flex flex-col gap-3 sm:flex-row"},Hc={class:"flex flex-1 flex-col gap-1"},Bc=["disabled"],Kc=["value"],zc={key:0,class:"text-[11px] text-muted"},Wc={class:"flex flex-1 flex-col gap-1"},Gc=["value"],Jc={class:"flex items-center gap-2"},qc={class:"flex items-center gap-2"},Yc=["disabled","onClick"],Xc={class:"flex flex-col gap-6"},Zc={class:"rounded-lg border border-subtle bg-card shadow-sm"},Qc={class:"flex flex-col gap-3 px-5 py-5"},eu={class:"flex flex-col gap-2 sm:flex-row"},tu=["disabled"],su={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},nu={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},lu={class:"rounded-lg border border-subtle bg-card shadow-sm"},ou={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},iu={class:"pv-eyebrow"},ru={class:"flex flex-col"},au={key:0,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},cu={key:1,class:"px-5 py-6 text-sm text-secondary"},uu={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},fu={class:"min-w-0 flex-1"},du={class:"truncate text-sm font-semibold text-primary"},pu={class:"mt-0.5 font-mono text-xs text-secondary"},hu={class:"flex shrink-0 items-center gap-2"},gu=["onClick"],mu=["disabled","title","onClick"],vu={key:0,class:"mt-3 flex flex-col gap-2 rounded-md border border-subtle bg-sunken px-4 py-4 sm:flex-row sm:items-end"},bu={class:"flex flex-1 flex-col gap-1"},yu=["onKeyup"],xu={class:"flex items-center gap-2"},_u=["disabled","onClick"],wu={class:"flex flex-col gap-6"},Cu={class:"rounded-lg border border-subtle bg-card shadow-sm"},Su={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},ku={class:"flex flex-col gap-3 px-5 py-5"},Eu={class:"flex flex-col gap-1"},Tu={class:"flex flex-col gap-1"},Pu={class:"flex flex-col gap-1"},Au=["placeholder"],Ou={key:0,class:"font-mono text-[11px] text-muted"},Mu={key:0},Ru={key:1},Iu={key:1,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},Uu={key:2,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},$u={class:"flex flex-wrap items-center gap-2"},ju=["disabled"],Lu=["disabled"],Du={class:"flex flex-col gap-6"},Nu={class:"rounded-lg border border-subtle bg-card shadow-sm"},Fu={class:"flex flex-col"},Vu={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},Hu={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},Bu={key:2,class:"px-5 py-6 text-sm text-secondary"},Ku={key:3,class:"flex gap-1 overflow-x-auto overflow-y-hidden border-b border-subtle px-3 pt-1"},zu=["onClick"],Wu={key:4,class:"px-5 py-6 text-sm text-secondary"},Gu={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},Ju={class:"min-w-0 flex-1"},qu={class:"flex flex-wrap items-center gap-2"},Yu={class:"text-sm font-semibold text-primary"},Xu=["title"],Zu={key:0},Qu={class:"mt-0.5 font-mono text-xs text-secondary"},ef={key:0,class:"mt-0.5 text-[11px] text-secondary"},tf={key:1,class:"mt-2 flex flex-col gap-1.5"},sf={class:"rounded-sm bg-sunken px-1.5 py-0.5 font-mono text-[10px] text-secondary"},nf={key:0,class:"font-mono text-[10px] text-muted"},lf={key:1,class:"w-full text-[11px] text-secondary sm:w-auto"},of={key:2,class:"mt-1 truncate font-mono text-[11px] text-muted"},rf={class:"flex shrink-0 items-center gap-2"},af=["disabled","onClick"],cf=["onClick"],uf=["disabled","onClick"],ff=["disabled","onClick"],df={key:0,class:"mt-3 flex flex-col gap-2 rounded-md border border-subtle bg-sunken px-4 py-4"},pf={class:"pv-eyebrow"},hf={key:0,class:"text-danger"},gf=["onUpdate:modelValue"],mf=["value"],vf=["value","onChange"],bf=["label"],yf=["value"],xf=["onUpdate:modelValue"],_f=["onUpdate:modelValue","type","placeholder"],wf={key:3,class:"text-[11px] text-muted"},Cf={class:"flex items-center gap-2"},Sf=["disabled","onClick"],kf={class:"border-t border-subtle px-5 py-4"},Ef={class:"flex flex-col gap-2 sm:flex-row"},Tf=["disabled"],Pf={key:0,class:"mt-2 text-xs font-medium text-danger"},Ms="pv_panel_token",Af={__name:"App",setup(e){const t=L(localStorage.getItem(Ms)||""),s=L(null),n=L(!1),l=L(!0),o=L({email:"",password:""}),i=L(""),r=L(!1),c=L("overview"),m=[{id:"overview",label:"Overview"},{id:"users",label:"Users"},{id:"organizations",label:"Organizations"},{id:"pocketbase",label:"PocketBase"},{id:"plugins",label:"Plugins"}];async function h(g){try{const u=await fetch("/api/me",{headers:{Authorization:g}});if(!u.ok)return!1;const f=await u.json();return f.role!=="superadmin"?!1:(s.value={id:f.id,email:f.email,role:f.role},!0)}catch{return!1}}async function y(g){t.value=g,localStorage.setItem(Ms,g),n.value=!0,Zn(),Re(),gt(),Ut(),he()}async function M(){i.value="";const g=o.value.email.trim().toLowerCase();if(!g||!o.value.password){i.value="Enter your email and password.";return}r.value=!0;try{const u=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:g,password:o.value.password})}),f=await u.json().catch(()=>({}));if(!u.ok||!f.token){i.value="Invalid email or password.";return}if(!await h(f.token)){i.value="Access to this panel is restricted to superadmins.";return}o.value.password="",await y(f.token)}catch{i.value="Cannot reach the API server."}finally{r.value=!1}}function I(){Qn(),localStorage.removeItem(Ms),t.value="",s.value=null,n.value=!1}const J=L(null),U=L({url:"",adminEmail:"",adminPassword:""}),W=L(null),Y=L(""),V=L(""),X=L(!1),j=L(!1);function z(g){const u={Authorization:t.value};return g&&(u["Content-Type"]="application/json"),u}async function Re(){try{const g=await fetch("/api/admin/pb-config",{headers:z()});if(!g.ok)return;const u=await g.json();J.value=u,U.value={url:u.url||"",adminEmail:u.adminEmail||"",adminPassword:""},W.value=u.probe||null}catch{}}async function Le(){Y.value="",V.value="",j.value=!0;try{const g=await fetch("/api/admin/pb-config/test",{method:"POST",headers:z(!0),body:JSON.stringify(U.value)});W.value=await g.json()}catch{V.value="Could not run the test."}finally{j.value=!1}}async function Ge(){var g;if(Y.value="",V.value="",!U.value.url.trim()){V.value="A PocketBase URL is required.";return}X.value=!0;try{const u=await fetch("/api/admin/pb-config",{method:"PUT",headers:z(!0),body:JSON.stringify(U.value)}),f=await u.json().catch(()=>({}));if(!u.ok){V.value=f.error||"Could not save the connection.";return}J.value=f.config,W.value=((g=f.config)==null?void 0:g.probe)||null,U.value={url:f.config.url,adminEmail:f.config.adminEmail,adminPassword:""},Y.value=f.warning||"Connection saved."}catch{V.value="Could not reach the API server."}finally{X.value=!1}}const De=L([]),Oe=L(""),de=L(""),Je=L(""),ke=L({}),be=L(""),Gt=[{label:"World",options:[{value:"-90,-180,90,180",label:"World"}]},{label:"Continents",options:[{value:"34,-25,72,45",label:"Europe"},{value:"-35,-18,38,52",label:"Africa"},{value:"5,25,82,180",label:"Asia"},{value:"7,-168,72,-52",label:"North America"},{value:"-56,-82,13,-34",label:"South America"},{value:"-48,110,-10,180",label:"Oceania"}]},{label:"European countries",options:[{value:"39.6,19.3,42.7,21.1",label:"Albania"},{value:"42.4,1.4,42.7,1.8",label:"Andorra"},{value:"46.4,9.5,49.0,17.2",label:"Austria"},{value:"51.2,23.2,56.2,32.8",label:"Belarus"},{value:"49.5,2.5,51.5,6.4",label:"Belgium"},{value:"42.6,15.7,45.3,19.6",label:"Bosnia and Herzegovina"},{value:"41.2,22.4,44.2,28.6",label:"Bulgaria"},{value:"42.4,13.5,46.6,19.4",label:"Croatia"},{value:"34.6,32.3,35.7,34.6",label:"Cyprus"},{value:"48.6,12.1,51.1,18.9",label:"Czechia"},{value:"54.6,8.1,57.8,12.7",label:"Denmark"},{value:"57.5,21.8,59.7,28.2",label:"Estonia"},{value:"59.8,20.6,70.1,31.6",label:"Finland"},{value:"41.3,-5.2,51.1,9.6",label:"France"},{value:"47.2,5.8,55.1,15.1",label:"Germany"},{value:"34.8,19.4,41.8,28.3",label:"Greece"},{value:"45.7,16.1,48.6,22.9",label:"Hungary"},{value:"63.3,-24.6,66.6,-13.5",label:"Iceland"},{value:"51.4,-10.6,55.4,-6.0",label:"Ireland"},{value:"36.6,6.6,47.1,18.6",label:"Italy"},{value:"41.8,20.0,43.3,21.8",label:"Kosovo"},{value:"55.7,20.9,58.1,28.2",label:"Latvia"},{value:"47.0,9.4,47.3,9.6",label:"Liechtenstein"},{value:"53.9,20.9,56.5,26.9",label:"Lithuania"},{value:"49.4,5.7,50.2,6.5",label:"Luxembourg"},{value:"35.8,14.1,36.1,14.6",label:"Malta"},{value:"45.4,26.6,48.5,30.2",label:"Moldova"},{value:"43.72,7.40,43.75,7.44",label:"Monaco"},{value:"41.8,18.4,43.6,20.4",label:"Montenegro"},{value:"50.7,3.3,53.7,7.2",label:"Netherlands"},{value:"40.8,20.4,42.4,23.0",label:"North Macedonia"},{value:"57.9,4.6,71.2,31.1",label:"Norway"},{value:"49.0,14.1,54.9,24.2",label:"Poland"},{value:"36.9,-9.5,42.2,-6.2",label:"Portugal"},{value:"43.6,20.2,48.3,29.7",label:"Romania"},{value:"41.2,19.6,81.9,180",label:"Russia"},{value:"43.89,12.40,43.99,12.52",label:"San Marino"},{value:"42.2,18.8,46.2,23.0",label:"Serbia"},{value:"47.7,16.8,49.6,22.6",label:"Slovakia"},{value:"45.4,13.4,46.9,16.6",label:"Slovenia"},{value:"35.9,-9.4,43.8,3.4",label:"Spain"},{value:"55.3,11.1,69.1,24.2",label:"Sweden"},{value:"45.8,5.9,47.8,10.5",label:"Switzerland"},{value:"35.8,25.7,42.3,44.8",label:"Turkey"},{value:"44.4,22.1,52.4,40.2",label:"Ukraine"},{value:"49.9,-8.7,60.9,1.8",label:"United Kingdom"},{value:"41.900,12.445,41.908,12.458",label:"Vatican City"}]},{label:"Other countries",options:[{value:"24,-125,49.5,-66.5",label:"United States"},{value:"41.7,-141,83.1,-52.6",label:"Canada"},{value:"-43.6,113.3,-10.7,153.6",label:"Australia"},{value:"24,122.9,45.5,145.8",label:"Japan"}]}],ge=Gt.flatMap(g=>g.options);function le(g){const u=String(g||"").split(",").map(C=>C.trim());if(u.length!==4)return"";const f=u.map(Number);return f.some(C=>Number.isNaN(C))?"":f.join(",")}const q=L({});function qe(g){if(q.value[g])return"__custom__";const u=le(ke.value[g]),f=u&&ge.find(C=>le(C.value)===u);return f?f.value:"__custom__"}function At(g,u){if(u==="__custom__"){q.value={...q.value,[g]:!0};return}q.value={...q.value,[g]:!1},ke.value[g]=u}const ye=L({name:"",baseURL:"",provider:""}),me=L(""),_t=L(!1),tn=[{id:"apis-external",label:"APIs — External"},{id:"drives-external",label:"Drives — External"},{id:"drives-local",label:"Drives — Local"}],Jt=L("apis-external");function wt(g){return g.category||"apis-external"}function Ot(g){return De.value.filter(u=>wt(u)===g)}const Mt=Tn(()=>Ot(Jt.value)),bs={builtin:"bg-success-tint text-success",external:"bg-warning-tint text-warning"},Ct={ok:"bg-success-tint text-success",degraded:"bg-warning-tint text-warning",down:"bg-danger-tint text-danger"};async function gt(){Oe.value="";try{const g=await fetch("/api/admin/plugins",{headers:z()});if(!g.ok){Oe.value="Could not load plugins.";return}const u=await g.json();De.value=u.plugins||[];for(const f of De.value)f.enabled&&!f.health&&a(f.name)}catch{Oe.value="Could not reach the API server."}}async function a(g){try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(g)}/health`,{method:"POST",headers:z()}),f=await u.json().catch(()=>({}));if(u.ok&&f.health){const C=p(g);C&&(C.health=f.health)}}catch{}}function p(g){return De.value.find(u=>u.name===g)}async function v(g){be.value=g.name,de.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(g.name)}`,{method:"PUT",headers:z(!0),body:JSON.stringify({enabled:!g.enabled})}),f=await u.json().catch(()=>({}));u.ok?f.warning&&(de.value=`${g.name}: ${f.warning}`):de.value=f.error||"Could not update the plugin.",await gt()}finally{be.value=""}}function w(g){Je.value=Je.value===g.name?"":g.name;const u={...g.config||{}};for(const f of g.configFields||[])u[f.key]===void 0&&f.default&&(u[f.key]=f.default);ke.value=u,q.value={}}async function _(g){be.value=g.name,de.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(g.name)}`,{method:"PUT",headers:z(!0),body:JSON.stringify({config:ke.value})}),f=await u.json().catch(()=>({}));u.ok?(de.value=f.warning?`${g.name}: ${f.warning}`:"Configuration saved.",Je.value=""):de.value=f.error||"Could not save the configuration.",await gt()}finally{be.value=""}}async function x(g){be.value=g.name,de.value="";try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(g.name)}/health`,{method:"POST",headers:z()}),f=await u.json().catch(()=>({}));if(u.ok&&f.health){const C=p(g.name);C&&(C.health=f.health)}else de.value=f.error||"Health check failed."}finally{be.value=""}}async function P(g){if(g.kind==="external"){be.value=g.name;try{const u=await fetch(`/api/admin/plugins/${encodeURIComponent(g.name)}`,{method:"DELETE",headers:z()});if(!u.ok){const f=await u.json().catch(()=>({}));de.value=f.error||"Could not remove the plugin."}await gt()}finally{be.value=""}}}async function k(){if(me.value="",!ye.value.name.trim()||!ye.value.baseURL.trim()){me.value="Name and base URL are required.";return}_t.value=!0;try{const g=await fetch("/api/admin/plugins",{method:"POST",headers:z(!0),body:JSON.stringify(ye.value)}),u=await g.json().catch(()=>({}));if(!g.ok){me.value=u.error||"Could not register the plugin.";return}ye.value={name:"",baseURL:"",provider:""},de.value="External plugin registered.",await gt()}catch{me.value="Could not reach the API server."}finally{_t.value=!1}}const S=L([]),b=L([]),R=L(""),A=[{value:"user",label:"User"},{value:"admin",label:"Admin"},{value:"superadmin",label:"Superadmin"}],$={user:"User",admin:"Admin",superadmin:"Superadmin"},D={user:"bg-sunken text-secondary",admin:"bg-warning-tint text-warning",superadmin:"bg-success-tint text-success"},K=Tn(()=>{const g={};for(const u of S.value)u.organization&&(g[u.organization]=(g[u.organization]||0)+1);return g});function G(g,u){if(!g)return u;if(g.error)return g.error;if(g.data&&typeof g.data=="object"){const f=[];for(const C in g.data)g.data[C]&&g.data[C].message&&f.push(`${C}: ${g.data[C].message}`);if(f.length)return f.join("; ")}return g.message||u}const F=L({email:"",password:"",role:"user",organization:""}),ee=L(""),ae=L(""),Ee=L(!1),ue=L(""),pe=L({}),ot=L(""),oe=L("");async function he(){R.value="";try{const g=await fetch("/api/users",{headers:z()}),u=await g.json().catch(()=>({}));if(!g.ok){R.value=G(u,"Could not load users.");return}S.value=u.users||[]}catch{R.value="Could not reach the API server."}}async function ys(){ee.value="",ae.value="";const g=F.value.email.trim().toLowerCase();if(!g||!g.includes("@")){ee.value="A valid email is required.";return}if(F.value.password.length<8){ee.value="Password must be at least 8 characters.";return}Ee.value=!0;try{const u=await fetch("/api/users",{method:"POST",headers:z(!0),body:JSON.stringify({email:g,password:F.value.password,role:F.value.role,organization:F.value.organization})}),f=await u.json().catch(()=>({}));if(!u.ok){ee.value=G(f,"Could not create the user.");return}F.value={email:"",password:"",role:"user",organization:""},ae.value=`Created ${f.user?f.user.email:"user"}.`,await he()}catch{ee.value="Could not reach the API server."}finally{Ee.value=!1}}function xs(g){oe.value="",ue.value=ue.value===g.id?"":g.id,pe.value={email:g.email,role:g.role,organization:g.organization||"",verified:!!g.verified,password:""}}async function zo(g){oe.value="",ot.value=g.id;try{const u={},f=pe.value;if(f.email.trim().toLowerCase()!==g.email&&(u.email=f.email.trim().toLowerCase()),f.role!==g.role&&(u.role=f.role),(f.organization||"")!==(g.organization||"")&&(u.organization=f.organization||""),f.verified!==!!g.verified&&(u.verified=f.verified),f.password&&(u.password=f.password),Object.keys(u).length===0){oe.value="No changes to save.";return}const C=await fetch(`/api/users/${encodeURIComponent(g.id)}`,{method:"PATCH",headers:z(!0),body:JSON.stringify(u)}),fe=await C.json().catch(()=>({}));if(!C.ok){oe.value=G(fe,"Could not update the user.");return}oe.value=`Updated ${g.email}.`,ue.value="",await he()}catch{oe.value="Could not reach the API server."}finally{ot.value=""}}async function Wo(g){if(g.id!==(s.value&&s.value.id)&&confirm(`Delete user ${g.email}? This cannot be undone.`)){oe.value="",ot.value=g.id;try{const u=await fetch(`/api/users/${encodeURIComponent(g.id)}`,{method:"DELETE",headers:z()}),f=await u.json().catch(()=>({}));if(!u.ok){oe.value=G(f,"Could not delete the user.");return}oe.value=`Deleted ${g.email}.`,ue.value===g.id&&(ue.value=""),await he()}catch{oe.value="Could not reach the API server."}finally{ot.value=""}}}const _s=L(""),Rt=L(""),ws=L(""),Cs=L(!1),it=L(""),Ss=L(""),It=L(""),Ie=L("");async function Ut(){try{const g=await fetch("/api/orgs",{headers:z()});if(!g.ok)return;const u=await g.json().catch(()=>({}));b.value=u.organizations||[]}catch{}}async function Gn(){Rt.value="",ws.value="";const g=_s.value.trim();if(!g){Rt.value="An organization name is required.";return}Cs.value=!0;try{const u=await fetch("/api/orgs",{method:"POST",headers:z(!0),body:JSON.stringify({name:g})}),f=await u.json().catch(()=>({}));if(!u.ok){Rt.value=G(f,"Could not create the organization.");return}_s.value="",ws.value=`Created ${f.organization?f.organization.name:"organization"}.`,await Ut()}catch{Rt.value="Could not reach the API server."}finally{Cs.value=!1}}function Go(g){Ie.value="",it.value=it.value===g.id?"":g.id,Ss.value=g.name}async function Jn(g){Ie.value="";const u=Ss.value.trim();if(!u){Ie.value="An organization name is required.";return}if(u===g.name){it.value="";return}It.value=g.id;try{const f=await fetch(`/api/orgs/${encodeURIComponent(g.id)}`,{method:"PATCH",headers:z(!0),body:JSON.stringify({name:u})}),C=await f.json().catch(()=>({}));if(!f.ok){Ie.value=G(C,"Could not rename the organization.");return}Ie.value=`Renamed to ${u}.`,it.value="",await Ut(),await he()}catch{Ie.value="Could not reach the API server."}finally{It.value=""}}async function Jo(g){const u=K.value[g.id]||0;if(u>0){Ie.value=`${g.name} still has ${u} member${u===1?"":"s"}; reassign or remove them first.`;return}if(confirm(`Delete organization ${g.name}?`)){Ie.value="",It.value=g.id;try{const f=await fetch(`/api/orgs/${encodeURIComponent(g.id)}`,{method:"DELETE",headers:z()}),C=await f.json().catch(()=>({}));if(!f.ok){Ie.value=G(C,"Could not delete the organization.");return}Ie.value=`Deleted ${g.name}.`,it.value===g.id&&(it.value=""),await Ut()}catch{Ie.value="Could not reach the API server."}finally{It.value=""}}}const sn=L(null),ks=L(null),$t=L({apiServer:{status:"checking",detail:""},pocketBase:{status:"checking",detail:""},webApp:{status:"checking",detail:""}});let Es=null;const qo=[{key:"apiServer",label:"API server"},{key:"pocketBase",label:"PocketBase"},{key:"webApp",label:"Web App"}],qn={checking:{label:"checking",cls:"bg-sunken text-secondary"},ok:{label:"operational",cls:"bg-success-tint text-success"},down:{label:"unreachable",cls:"bg-danger-tint text-danger"},unreachable:{label:"unreachable",cls:"bg-danger-tint text-danger"}};function Yn(g){const u=[];return g.httpStatus&&u.push("HTTP "+g.httpStatus),g.url&&u.push(g.url),typeof g.latencyMs=="number"&&u.push(g.latencyMs+"ms"),u.join(" · ")}async function Xn(){var g,u;try{const f=await fetch("/api/status");if(!f.ok)throw new Error("status "+f.status);const C=await f.json(),fe=C.apiServer||{};ks.value=fe.devices??0,$t.value={apiServer:{status:"ok",detail:""},pocketBase:{status:((g=C.pocketBase)==null?void 0:g.status)==="ok"?"ok":"down",detail:Yn(C.pocketBase||{})},webApp:{status:((u=C.webApp)==null?void 0:u.status)==="ok"?"ok":"down",detail:Yn(C.webApp||{})}}}catch{ks.value=null,$t.value={apiServer:{status:"unreachable",detail:""},pocketBase:{status:"unreachable",detail:""},webApp:{status:"unreachable",detail:""}}}sn.value=new Date}function Zn(){Xn(),clearInterval(Es),Es=setInterval(Xn,1e4)}function Qn(){clearInterval(Es),Es=null}mo(async()=>{t.value&&await h(t.value)?(n.value=!0,Zn(),Re(),gt(),Ut(),he()):t.value&&(localStorage.removeItem(Ms),t.value=""),l.value=!1}),Kn(()=>Qn());const Yo=[{method:"POST",path:"/api/auth/login",desc:"Exchange email + password for a session (via PocketBase)"},{method:"GET",path:"/api/auth/validate",desc:"Validate the current session token"},{method:"GET",path:"/api/me",desc:"Caller's id, email, role, and organization from their token"},{method:"GET",path:"/api/preferences",desc:"Read the caller's saved settings blob"},{method:"PUT",path:"/api/preferences",desc:"Persist the caller's settings onto their user record"},{method:"GET",path:"/api/devices",desc:"List connected devices and last-known state"},{method:"GET",path:"/api/devices/{id}/track",desc:"GPS track history for a device"},{method:"POST",path:"/api/devices/{id}/command",desc:"Send a command down to a device"},{method:"DELETE",path:"/api/devices/{id}",desc:"Forget a device's stored state"},{method:"GET",path:"/ws/ui",desc:"Live telemetry stream (WebSocket)"}],Xo=[{method:"GET",path:"/api/users",desc:"List users (admin: own org · superadmin: all)"},{method:"POST",path:"/api/users",desc:"Create a user {email, password, role, organization?}"},{method:"PATCH",path:"/api/users/{id}",desc:"Edit a user (role/org changes are scope-checked)"},{method:"DELETE",path:"/api/users/{id}",desc:"Delete a user (not self; admins in-org only)"},{method:"GET",path:"/api/orgs",desc:"List organizations (admin: own · superadmin: all)"},{method:"POST",path:"/api/orgs",desc:"Create an organization {name} (superadmin)"},{method:"PATCH",path:"/api/orgs/{id}",desc:"Rename an organization (superadmin)"},{method:"DELETE",path:"/api/orgs/{id}",desc:"Delete an empty organization (superadmin)"},{method:"GET",path:"/api/admin/pb-config",desc:"Read the PocketBase connection + live probe (superadmin)"},{method:"POST",path:"/api/admin/pb-config/test",desc:"Test a candidate connection without applying (superadmin)"},{method:"PUT",path:"/api/admin/pb-config",desc:"Update + persist the PocketBase connection (superadmin)"},{method:"GET",path:"/api/admin/plugins",desc:"List plugins + state + last health (superadmin)"},{method:"POST",path:"/api/admin/plugins",desc:"Register an external plugin {name, baseURL} (superadmin)"},{method:"PUT",path:"/api/admin/plugins/{name}",desc:"Enable/disable + configure a plugin (superadmin)"},{method:"DELETE",path:"/api/admin/plugins/{name}",desc:"Remove an external plugin (superadmin)"},{method:"POST",path:"/api/admin/plugins/{name}/health",desc:"Run a plugin health check (superadmin)"}],Zo=[{method:"GET",path:"/ws/device?id={id}",desc:"Device telemetry uplink (WebSocket)"},{method:"POST",path:"/api/telemetry?id={id}",desc:"Push a single telemetry event over HTTP"},{method:"GET",path:"/healthz",desc:"Readiness probe"}];return(g,u)=>(E(),T("div",La,[d("div",Da,[u[25]||(u[25]=jr('
PilotVault
API server
',3)),n.value&&s.value?(E(),T("span",Na,O(s.value.email),1)):H("",!0),n.value?(E(),T("button",{key:1,class:"pv-btn-sec pv-btn-sm",onClick:I},"Sign out")):H("",!0),d("button",{class:"pv-btn-sec pv-btn-sm",title:Qt(hs)==="dark"?"Switch to light theme":"Switch to dark theme",onClick:u[0]||(u[0]=(...f)=>Qt(Il)&&Qt(Il)(...f))},[Qt(hs)==="dark"?(E(),T("svg",Va,[...u[22]||(u[22]=[d("circle",{cx:"12",cy:"12",r:"4"},null,-1),d("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"},null,-1)])])):(E(),T("svg",Ha,[...u[23]||(u[23]=[d("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)])])),u[24]||(u[24]=Ne(" Theme ",-1))],8,Fa)]),l.value?(E(),T("div",Ba,[...u[26]||(u[26]=[d("span",{class:"pv-eyebrow"},"Checking session…",-1)])])):n.value?(E(),T(se,{key:2},[d("div",qa,[(E(),T(se,null,xe(m,f=>d("button",{key:f.id,class:Ue(["rounded-md px-3.5 py-1.5 text-sm font-semibold transition",c.value===f.id?"bg-brand text-on-brand":"text-secondary hover:text-primary"]),onClick:C=>c.value=f.id},O(f.label),11,Ya)),64))]),ie(d("div",Xa,[d("div",Za,[d("div",Qa,[u[30]||(u[30]=d("div",{class:"text-base font-semibold text-primary"},"Status",-1)),d("span",ec,O(sn.value?"checked "+sn.value.toLocaleTimeString():"—"),1)]),d("div",null,[(E(),T(se,null,xe(qo,f=>d("div",{key:f.key,class:"flex items-center justify-between gap-3 border-t border-subtle px-5 py-3.5 first:border-t-0"},[d("div",tc,[d("div",sc,O(f.label),1),$t.value[f.key].detail?(E(),T("div",nc,O($t.value[f.key].detail),1)):H("",!0)]),d("span",{class:Ue(["inline-flex shrink-0 items-center gap-1.5 rounded-sm px-2.5 py-1 font-mono text-xs font-medium",qn[$t.value[f.key].status].cls])},[u[31]||(u[31]=d("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),Ne(" "+O(qn[$t.value[f.key].status].label),1)],2)])),64)),d("div",lc,[u[32]||(u[32]=d("div",{class:"text-sm font-semibold text-primary"},"Devices",-1)),d("span",oc,O(ks.value===null?"—":ks.value+" online"),1)])])]),je(mn,{title:"Client API",auth:"PocketBase session",endpoints:Yo}),je(mn,{title:"Management API",auth:"Admin · superadmin",endpoints:Xo}),je(mn,{title:"Device API",auth:"Device uplink",endpoints:Zo})],512),[[Xt,c.value==="overview"]]),ie(d("div",ic,[d("div",rc,[u[38]||(u[38]=d("div",{class:"border-b border-subtle px-5 py-4"},[d("div",{class:"text-base font-semibold text-primary"},"Add user"),d("span",{class:"pv-eyebrow"},"Create an account")],-1)),d("div",ac,[d("div",cc,[d("label",uc,[u[33]||(u[33]=d("span",{class:"pv-eyebrow"},"Email",-1)),ie(d("input",{"onUpdate:modelValue":u[3]||(u[3]=f=>F.value.email=f),type:"email",class:"pv-input",placeholder:"pilot@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[_e,F.value.email]])]),d("label",fc,[u[34]||(u[34]=d("span",{class:"pv-eyebrow"},"Password",-1)),ie(d("input",{"onUpdate:modelValue":u[4]||(u[4]=f=>F.value.password=f),type:"password",class:"pv-input",placeholder:"min. 8 characters",autocomplete:"new-password"},null,512),[[_e,F.value.password]])])]),d("div",dc,[d("label",pc,[u[35]||(u[35]=d("span",{class:"pv-eyebrow"},"Role",-1)),ie(d("select",{"onUpdate:modelValue":u[5]||(u[5]=f=>F.value.role=f),class:"pv-input"},[(E(),T(se,null,xe(A,f=>d("option",{key:f.value,value:f.value},O(f.label),9,hc)),64))],512),[[Dt,F.value.role]])]),d("label",gc,[u[37]||(u[37]=d("span",{class:"pv-eyebrow"},"Organization",-1)),ie(d("select",{"onUpdate:modelValue":u[6]||(u[6]=f=>F.value.organization=f),class:"pv-input"},[u[36]||(u[36]=d("option",{value:""},"— none —",-1)),(E(!0),T(se,null,xe(b.value,f=>(E(),T("option",{key:f.id,value:f.id},O(f.name),9,mc))),128))],512),[[Dt,F.value.organization]])])]),ee.value?(E(),T("p",vc,O(ee.value),1)):ae.value?(E(),T("p",bc,O(ae.value),1)):H("",!0),d("div",null,[d("button",{class:"pv-btn",disabled:Ee.value,onClick:ys},O(Ee.value?"Creating…":"Create user"),9,yc)])])]),d("div",xc,[d("div",_c,[d("div",null,[u[39]||(u[39]=d("div",{class:"text-base font-semibold text-primary"},"Users",-1)),d("span",wc,O(S.value.length)+" total",1)]),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:he},"Refresh")]),d("div",Cc,[R.value?(E(),T("p",Sc,O(R.value),1)):H("",!0),oe.value?(E(),T("p",kc,O(oe.value),1)):H("",!0),!S.value.length&&!R.value?(E(),T("p",Ec,"No users yet.")):H("",!0),(E(!0),T(se,null,xe(S.value,f=>(E(),T("div",{key:f.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[d("div",Tc,[d("div",Pc,[d("div",Ac,[d("span",Oc,O(f.email),1),d("span",{class:Ue(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",D[f.role]])},O($[f.role]||f.role),3),f.id===(s.value&&s.value.id)?(E(),T("span",Mc,"you")):H("",!0),f.verified?H("",!0):(E(),T("span",Rc,"unverified"))]),d("div",Ic,O(f.organizationName||(f.organization?f.organization:"no organization")),1)]),d("div",Uc,[d("button",{class:"pv-btn-sec pv-btn-sm",onClick:C=>xs(f)},O(ue.value===f.id?"Close":"Edit"),9,$c),f.id!==(s.value&&s.value.id)?(E(),T("button",{key:0,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:ot.value===f.id,onClick:C=>Wo(f)}," Delete ",8,jc)):H("",!0)])]),ue.value===f.id?(E(),T("div",Lc,[d("div",Dc,[d("label",Nc,[u[40]||(u[40]=d("span",{class:"pv-eyebrow"},"Email",-1)),ie(d("input",{"onUpdate:modelValue":u[7]||(u[7]=C=>pe.value.email=C),type:"email",class:"pv-input",autocomplete:"off",spellcheck:"false"},null,512),[[_e,pe.value.email]])]),d("label",Fc,[u[41]||(u[41]=d("span",{class:"pv-eyebrow"},"New password",-1)),ie(d("input",{"onUpdate:modelValue":u[8]||(u[8]=C=>pe.value.password=C),type:"password",class:"pv-input",placeholder:"leave blank to keep current",autocomplete:"new-password"},null,512),[[_e,pe.value.password]])])]),d("div",Vc,[d("label",Hc,[u[42]||(u[42]=d("span",{class:"pv-eyebrow"},"Role",-1)),ie(d("select",{"onUpdate:modelValue":u[9]||(u[9]=C=>pe.value.role=C),class:"pv-input",disabled:f.id===(s.value&&s.value.id)},[(E(),T(se,null,xe(A,C=>d("option",{key:C.value,value:C.value},O(C.label),9,Kc)),64))],8,Bc),[[Dt,pe.value.role]]),f.id===(s.value&&s.value.id)?(E(),T("span",zc,"You cannot change your own role.")):H("",!0)]),d("label",Wc,[u[44]||(u[44]=d("span",{class:"pv-eyebrow"},"Organization",-1)),ie(d("select",{"onUpdate:modelValue":u[10]||(u[10]=C=>pe.value.organization=C),class:"pv-input"},[u[43]||(u[43]=d("option",{value:""},"— none —",-1)),(E(!0),T(se,null,xe(b.value,C=>(E(),T("option",{key:C.id,value:C.id},O(C.name),9,Gc))),128))],512),[[Dt,pe.value.organization]])])]),d("label",Jc,[ie(d("input",{"onUpdate:modelValue":u[11]||(u[11]=C=>pe.value.verified=C),type:"checkbox",class:"h-4 w-4"},null,512),[[Vo,pe.value.verified]]),u[45]||(u[45]=d("span",{class:"text-sm text-primary"},"Verified",-1))]),d("div",qc,[d("button",{class:"pv-btn pv-btn-sm",disabled:ot.value===f.id,onClick:C=>zo(f)},"Save changes",8,Yc),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[12]||(u[12]=C=>ue.value="")},"Cancel")])])):H("",!0)]))),128))])])],512),[[Xt,c.value==="users"]]),ie(d("div",Xc,[d("div",Zc,[u[46]||(u[46]=d("div",{class:"border-b border-subtle px-5 py-4"},[d("div",{class:"text-base font-semibold text-primary"},"Add organization"),d("span",{class:"pv-eyebrow"},"Create a tenant")],-1)),d("div",Qc,[d("div",eu,[ie(d("input",{"onUpdate:modelValue":u[13]||(u[13]=f=>_s.value=f),class:"pv-input flex-1",placeholder:"Acme Aerial Ltd.",autocomplete:"off",spellcheck:"false",onKeyup:Ml(Gn,["enter"])},null,544),[[_e,_s.value]]),d("button",{class:"pv-btn",disabled:Cs.value,onClick:Gn},O(Cs.value?"Creating…":"Create"),9,tu)]),Rt.value?(E(),T("p",su,O(Rt.value),1)):ws.value?(E(),T("p",nu,O(ws.value),1)):H("",!0)])]),d("div",lu,[d("div",ou,[d("div",null,[u[47]||(u[47]=d("div",{class:"text-base font-semibold text-primary"},"Organizations",-1)),d("span",iu,O(b.value.length)+" total",1)]),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:Ut},"Refresh")]),d("div",ru,[Ie.value?(E(),T("p",au,O(Ie.value),1)):H("",!0),b.value.length?H("",!0):(E(),T("p",cu,"No organizations yet.")),(E(!0),T(se,null,xe(b.value,f=>(E(),T("div",{key:f.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[d("div",uu,[d("div",fu,[d("div",du,O(f.name),1),d("div",pu,O(K.value[f.id]||0)+" member"+O((K.value[f.id]||0)===1?"":"s"),1)]),d("div",hu,[d("button",{class:"pv-btn-sec pv-btn-sm",onClick:C=>Go(f)},O(it.value===f.id?"Close":"Rename"),9,gu),d("button",{class:"pv-btn-sec pv-btn-sm !text-danger",disabled:It.value===f.id||(K.value[f.id]||0)>0,title:(K.value[f.id]||0)>0?"Reassign or remove members first":"Delete organization",onClick:C=>Jo(f)}," Delete ",8,mu)])]),it.value===f.id?(E(),T("div",vu,[d("label",bu,[u[48]||(u[48]=d("span",{class:"pv-eyebrow"},"Name",-1)),ie(d("input",{"onUpdate:modelValue":u[14]||(u[14]=C=>Ss.value=C),class:"pv-input",autocomplete:"off",spellcheck:"false",onKeyup:Ml(C=>Jn(f),["enter"])},null,40,yu),[[_e,Ss.value]])]),d("div",xu,[d("button",{class:"pv-btn pv-btn-sm",disabled:It.value===f.id,onClick:C=>Jn(f)},"Save",8,_u),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[15]||(u[15]=C=>it.value="")},"Cancel")])])):H("",!0)]))),128))])])],512),[[Xt,c.value==="organizations"]]),ie(d("div",wu,[d("div",Cu,[d("div",Su,[u[50]||(u[50]=d("div",null,[d("div",{class:"text-base font-semibold text-primary"},"PocketBase connection"),d("span",{class:"pv-eyebrow"},"Settings")],-1)),W.value?(E(),T("span",{key:0,class:Ue(["inline-flex shrink-0 items-center gap-1.5 rounded-sm px-2.5 py-1 font-mono text-xs font-medium",W.value.reachable?W.value.superuser?"bg-success-tint text-success":"bg-warning-tint text-warning":"bg-danger-tint text-danger"])},[u[49]||(u[49]=d("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),Ne(" "+O(W.value.reachable?W.value.superuser?"connected":"reachable":"unreachable"),1)],2)):H("",!0)]),d("div",ku,[d("label",Eu,[u[51]||(u[51]=d("span",{class:"pv-eyebrow"},"PocketBase URL",-1)),ie(d("input",{"onUpdate:modelValue":u[16]||(u[16]=f=>U.value.url=f),class:"pv-input",placeholder:"http://10.2.1.10:8026",spellcheck:"false"},null,512),[[_e,U.value.url]])]),d("label",Tu,[u[52]||(u[52]=d("span",{class:"pv-eyebrow"},"Service account email",-1)),ie(d("input",{"onUpdate:modelValue":u[17]||(u[17]=f=>U.value.adminEmail=f),class:"pv-input",placeholder:"admin@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[_e,U.value.adminEmail]])]),d("label",Pu,[u[53]||(u[53]=d("span",{class:"pv-eyebrow"},"Service account password",-1)),ie(d("input",{"onUpdate:modelValue":u[18]||(u[18]=f=>U.value.adminPassword=f),type:"password",class:"pv-input",autocomplete:"new-password",placeholder:J.value&&J.value.adminConfigured?"leave blank to keep current":"set a password"},null,8,Au),[[_e,U.value.adminPassword]])]),W.value?(E(),T("div",Ou,[Ne(" health: "+O(W.value.reachable?"ok":"down"),1),W.value.latencyMs?(E(),T("span",Mu," · "+O(W.value.latencyMs)+"ms",1)):H("",!0),Ne(" · superuser auth: "+O(W.value.superuser?"ok":"—"),1),W.value.detail?(E(),T("span",Ru," · "+O(W.value.detail),1)):H("",!0)])):H("",!0),V.value?(E(),T("p",Iu,O(V.value),1)):Y.value?(E(),T("p",Uu,O(Y.value),1)):H("",!0),d("div",$u,[d("button",{class:"pv-btn",disabled:X.value,onClick:Ge},O(X.value?"Saving…":"Save connection"),9,ju),d("button",{class:"pv-btn-sec",disabled:j.value,onClick:Le},O(j.value?"Testing…":"Test connection"),9,Lu)]),u[54]||(u[54]=d("p",{class:"text-[11px] text-muted"}," The service account is used only for user & organization management. Changing the URL repoints the whole API Server at a new PocketBase and may sign you out. ",-1))])])],512),[[Xt,c.value==="pocketbase"]]),ie(d("div",Du,[d("div",Nu,[d("div",{class:"flex items-center justify-between border-b border-subtle px-5 py-4"},[u[55]||(u[55]=d("div",null,[d("div",{class:"text-base font-semibold text-primary"},"Plugins"),d("span",{class:"pv-eyebrow"},"External integrations")],-1)),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:gt},"Refresh")]),d("div",Fu,[Oe.value?(E(),T("p",Vu,O(Oe.value),1)):H("",!0),de.value?(E(),T("p",Hu,O(de.value),1)):H("",!0),!De.value.length&&!Oe.value?(E(),T("p",Bu,"No plugins registered yet.")):H("",!0),De.value.length?(E(),T("div",Ku,[(E(),T(se,null,xe(tn,f=>d("button",{key:f.id,class:Ue(["-mb-px whitespace-nowrap border-b-2 px-3 py-2 text-sm font-semibold transition",Jt.value===f.id?"border-brand text-primary":"border-transparent text-secondary hover:text-primary"]),onClick:C=>Jt.value=f.id},O(f.label),11,zu)),64))])):H("",!0),De.value.length&&!Mt.value.length?(E(),T("p",Wu,"No plugins in this category.")):H("",!0),(E(!0),T(se,null,xe(Mt.value,f=>(E(),T("div",{key:f.name,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[d("div",Gu,[d("div",Ju,[d("div",qu,[d("span",Yu,O(f.name),1),d("span",{class:Ue(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",bs[f.kind]])},O(f.kind),3),f.health?(E(),T("span",{key:0,class:Ue(["inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium",Ct[f.health.status]]),title:f.health.detail||""},[u[56]||(u[56]=d("span",{class:"h-1 w-1 rounded-full bg-current"},null,-1)),Ne(O(f.health.status),1),f.health.latencyMs?(E(),T("span",Zu," · "+O(f.health.latencyMs)+"ms",1)):H("",!0)],10,Xu)):H("",!0)]),d("div",Qu,O(f.provider)+" · v"+O(f.version)+" · "+O(f.authType),1),f.health&&f.health.detail?(E(),T("div",ef,O(f.health.detail),1)):H("",!0),f.capabilities&&f.capabilities.length?(E(),T("div",tf,[u[57]||(u[57]=d("div",{class:"pv-eyebrow"},"Capabilities",-1)),(E(!0),T(se,null,xe(f.capabilities,C=>(E(),T("div",{key:C.id,class:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5"},[d("span",sf,O(C.id),1),C.method||C.endpoint?(E(),T("span",nf,O(C.method)+" "+O(C.endpoint),1)):H("",!0),C.description?(E(),T("span",lf,O(C.description),1)):H("",!0)]))),128))])):H("",!0),f.baseURL?(E(),T("div",of,O(f.baseURL),1)):H("",!0)]),d("div",rf,[d("button",{class:Ue(["pv-btn-sec pv-btn-sm",f.enabled?"!border-transparent !bg-success-tint !text-success":""]),disabled:be.value===f.name,onClick:C=>v(f)},[d("span",{class:Ue(["h-1.5 w-1.5 rounded-full",f.enabled?"bg-success":"bg-muted"])},null,2),Ne(" "+O(f.enabled?"Enabled":"Disabled"),1)],10,af),f.configFields&&f.configFields.length?(E(),T("button",{key:0,class:"pv-btn-sec pv-btn-sm",onClick:C=>w(f)},"Configure",8,cf)):H("",!0),d("button",{class:"pv-btn-sec pv-btn-sm",disabled:be.value===f.name,onClick:C=>x(f)},"Check",8,uf),f.kind==="external"?(E(),T("button",{key:1,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:be.value===f.name,onClick:C=>P(f)},"Remove",8,ff)):H("",!0)])]),Je.value===f.name?(E(),T("div",df,[(E(!0),T(se,null,xe(f.configFields,C=>(E(),T("label",{key:C.key,class:"flex flex-col gap-1"},[d("span",pf,[Ne(O(C.label),1),C.required?(E(),T("span",hf," *")):H("",!0)]),C.type==="select"?ie((E(),T("select",{key:0,"onUpdate:modelValue":fe=>ke.value[C.key]=fe,class:"pv-input"},[(E(!0),T(se,null,xe(C.options,fe=>(E(),T("option",{key:fe.value,value:fe.value},O(fe.label),9,mf))),128))],8,gf)),[[Dt,ke.value[C.key]]]):C.type==="bbox"?(E(),T(se,{key:1},[d("select",{value:qe(C.key),class:"pv-input",onChange:fe=>At(C.key,fe.target.value)},[(E(),T(se,null,xe(Gt,fe=>d("optgroup",{key:fe.label,label:fe.label},[(E(!0),T(se,null,xe(fe.options,nn=>(E(),T("option",{key:nn.value,value:nn.value},O(nn.label),9,yf))),128))],8,bf)),64)),u[58]||(u[58]=d("option",{value:"__custom__"},"Custom…",-1))],40,vf),qe(C.key)==="__custom__"?ie((E(),T("input",{key:0,"onUpdate:modelValue":fe=>ke.value[C.key]=fe,type:"text",class:"pv-input font-mono",autocomplete:"off",placeholder:"50.5,3.2,53.7,7.3"},null,8,xf)),[[_e,ke.value[C.key]]]):H("",!0)],64)):ie((E(),T("input",{key:2,"onUpdate:modelValue":fe=>ke.value[C.key]=fe,type:C.secret||C.type==="password"?"password":C.type==="number"?"number":"text",class:"pv-input",autocomplete:"off",placeholder:C.help||""},null,8,_f)),[[va,ke.value[C.key]]]),C.help?(E(),T("span",wf,O(C.help),1)):H("",!0)]))),128)),d("div",Cf,[d("button",{class:"pv-btn pv-btn-sm",disabled:be.value===f.name,onClick:C=>_(f)},"Save configuration",8,Sf),d("button",{class:"pv-btn-sec pv-btn-sm",onClick:u[19]||(u[19]=C=>Je.value="")},"Cancel")])])):H("",!0)]))),128)),d("div",kf,[u[59]||(u[59]=d("div",{class:"pv-eyebrow mb-2"},"Register external plugin",-1)),d("div",Ef,[ie(d("input",{"onUpdate:modelValue":u[20]||(u[20]=f=>ye.value.name=f),class:"pv-input sm:w-40",placeholder:"name",autocomplete:"off",spellcheck:"false"},null,512),[[_e,ye.value.name]]),ie(d("input",{"onUpdate:modelValue":u[21]||(u[21]=f=>ye.value.baseURL=f),class:"pv-input flex-1",placeholder:"https://plugin.example.com",autocomplete:"off",spellcheck:"false"},null,512),[[_e,ye.value.baseURL]]),d("button",{class:"pv-btn",disabled:_t.value,onClick:k},O(_t.value?"Adding…":"Add"),9,Tf)]),me.value?(E(),T("p",Pf,O(me.value),1)):H("",!0),u[60]||(u[60]=d("p",{class:"mt-2 text-[11px] text-muted"},[Ne(" A remote service that answers "),d("span",{class:"font-mono"},"GET /health"),Ne(" and "),d("span",{class:"font-mono"},"GET /manifest"),Ne(" — added at runtime, no rebuild. ")],-1))])])])],512),[[Xt,c.value==="plugins"]])],64)):(E(),T("div",Ka,[u[29]||(u[29]=d("div",{class:"border-b border-subtle px-5 py-4"},[d("div",{class:"text-base font-semibold text-primary"},"Sign in"),d("span",{class:"pv-eyebrow"},"Superadmin access only")],-1)),d("form",{class:"flex flex-col gap-3 px-5 py-5",onSubmit:_a(M,["prevent"])},[d("label",za,[u[27]||(u[27]=d("span",{class:"pv-eyebrow"},"Email",-1)),ie(d("input",{"onUpdate:modelValue":u[1]||(u[1]=f=>o.value.email=f),type:"email",autocomplete:"username",class:"pv-input",placeholder:"superadmin@pilotvault.local"},null,512),[[_e,o.value.email]])]),d("label",Wa,[u[28]||(u[28]=d("span",{class:"pv-eyebrow"},"Password",-1)),ie(d("input",{"onUpdate:modelValue":u[2]||(u[2]=f=>o.value.password=f),type:"password",autocomplete:"current-password",class:"pv-input",placeholder:"••••••••"},null,512),[[_e,o.value.password]])]),i.value?(E(),T("p",Ga,O(i.value),1)):H("",!0),d("button",{type:"submit",class:"pv-btn mt-1",disabled:r.value},O(r.value?"Signing in…":"Sign in"),9,Ja)],32)])),u[61]||(u[61]=d("p",{class:"text-center font-mono text-[11px] text-muted"}," PilotVault — live drone telemetry, command & control. ",-1))]))}};ka(Af).mount("#app"); diff --git a/API Server/internal/api/dist/index.html b/API Server/internal/api/dist/index.html index 790c3a3..9f80255 100644 --- a/API Server/internal/api/dist/index.html +++ b/API Server/internal/api/dist/index.html @@ -6,7 +6,7 @@ PilotVault · API Server - + diff --git a/API Server/panel/src/App.vue b/API Server/panel/src/App.vue index da82482..3d4f97d 100644 --- a/API Server/panel/src/App.vue +++ b/API Server/panel/src/App.vue @@ -1,6 +1,7 @@