Files
PilotVault/API Server/internal/api/dist/assets/index-B3oSnK0w.js
T
tajniak81andClaude Opus 4.8 11fb1e060d List the endpoints the panel had stopped keeping up with
The Overview's tables documented 31 routes where the server serves 53. Everything
added since the plugin cascade went in was simply absent: the logbook, the fleet,
documents, and the integrations surface itself.

Cross-checked against every mux.HandleFunc in server.go, so the only routes left
unlisted are GET /assets/ and GET /favicon.svg — the panel serving itself.

Two judgement calls worth naming:

The integrations triplet is written once as /api/integrations/{plugin} with the
five plugin names in the description, rather than seventeen near-identical rows.
The routes are registered individually, not by wildcard, so that path is an
abstraction the server would not match — flagged in a comment above the list.

/api/health and /api/status are public and belong to no audience in particular.
They sit beside /healthz, which was already in the Device table, retitled
"Device uplink · public" rather than mint a table for three rows.

Logbook/fleet and documents each get their own table, mirroring how the Web App's
nav splits them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 18:48:00 +02:00

18 lines
124 KiB
JavaScript

(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))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 Is(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const oe={},Wt=[],rt=()=>{},Bo=()=>!1,Zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xn=e=>e.startsWith("onUpdate:"),Ae=Object.assign,Rs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},al=Object.prototype.hasOwnProperty,ee=(e,t)=>al.call(e,t),B=Array.isArray,Jt=e=>wn(e)==="[object Map]",en=e=>wn(e)==="[object Set]",oo=e=>wn(e)==="[object Date]",V=e=>typeof e=="function",ae=e=>typeof e=="string",at=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",$o=e=>(se(e)||V(e))&&V(e.then)&&V(e.catch),jo=Object.prototype.toString,wn=e=>jo.call(e),cl=e=>wn(e).slice(8,-1),Vo=e=>wn(e)==="[object Object]",Fs=e=>ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=Is(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ul=/-\w/g,Je=Qn(e=>e.replace(ul,t=>t.slice(1).toUpperCase())),dl=/\B([A-Z])/g,At=Qn(e=>e.replace(dl,"-$1").toLowerCase()),Ho=Qn(e=>e.charAt(0).toUpperCase()+e.slice(1)),us=Qn(e=>e?`on${Ho(e)}`:""),lt=(e,t)=>!Object.is(e,t),Bn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Ko=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},es=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let io;const ts=()=>io||(io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ns(e){if(B(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=ae(s)?ml(s):Ns(s);if(o)for(const i in o)t[i]=o[i]}return t}else if(ae(e)||se(e))return e}const fl=/;(?![^(]*\))/g,pl=/:([^]+)/,hl=/\/\*[^]*?\*\//g;function ml(e){const t={};return e.replace(hl,"").split(fl).forEach(n=>{if(n){const s=n.split(pl);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ne(e){let t="";if(ae(e))t=e;else if(B(e))for(let n=0;n<e.length;n++){const s=Ne(e[n]);s&&(t+=s+" ")}else if(se(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const bl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",gl=Is(bl);function Go(e){return!!e||e===""}function vl(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=_t(e[s],t[s]);return n}function _t(e,t){if(e===t)return!0;let n=oo(e),s=oo(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=at(e),s=at(t),n||s)return e===t;if(n=B(e),s=B(t),n||s)return n&&s?vl(e,t):!1;if(n=se(e),s=se(t),n||s){if(!n||!s)return!1;const o=Object.keys(e).length,i=Object.keys(t).length;if(o!==i)return!1;for(const l in e){const r=e.hasOwnProperty(l),u=t.hasOwnProperty(l);if(r&&!u||!r&&u||!_t(e[l],t[l]))return!1}}return String(e)===String(t)}function Ls(e,t){return e.findIndex(n=>_t(n,t))}const zo=e=>!!(e&&e.__v_isRef===!0),O=e=>ae(e)?e:e==null?"":B(e)||se(e)&&(e.toString===jo||!V(e.toString))?zo(e)?O(e.value):JSON.stringify(e,Wo,2):String(e),Wo=(e,t)=>zo(t)?Wo(e,t.value):Jt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],i)=>(n[ds(s,i)+" =>"]=o,n),{})}:en(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ds(n))}:at(t)?ds(t):se(t)&&!B(t)&&!Vo(t)?String(t):t,ds=(e,t="")=>{var n;return at(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 xl{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;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=ge;try{return ge=this,t()}finally{ge=n}}}on(){++this._on===1&&(this.prevScope=ge,ge=this)}off(){if(this._on>0&&--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;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function yl(){return ge}let le;const fs=new WeakSet;class Jo{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ge&&(ge.active?ge.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,fs.has(this)&&(fs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Yo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,lo(this),Zo(this);const t=le,n=qe;le=this,qe=!0;try{return this.fn()}finally{Xo(this),le=t,qe=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)$s(t);this.deps=this.depsTail=void 0,lo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?fs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){_s(this)&&this.run()}get dirty(){return _s(this)}}let qo=0,un,dn;function Yo(e,t=!1){if(e.flags|=8,t){e.next=dn,dn=e;return}e.next=un,un=e}function Ds(){qo++}function Bs(){if(--qo>0)return;if(dn){let t=dn;for(dn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;un;){let t=un;for(un=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 Zo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Xo(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),$s(s),_l(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function _s(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===bn)||(e.globalVersion=bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_s(e))))return;e.flags|=2;const t=e.dep,n=le,s=qe;le=e,qe=!0;try{Zo(e);const o=e.fn(e._value);(t.version===0||lt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{le=n,qe=s,Xo(e),e.flags&=-3}}function $s(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)$s(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function _l(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let qe=!0;const ei=[];function ct(){ei.push(qe),qe=!1}function ut(){const e=ei.pop();qe=e===void 0?!0:e}function lo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=le;le=void 0;try{t()}finally{le=n}}}let bn=0;class wl{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 js{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(!le||!qe||le===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==le)n=this.activeLink=new wl(le,this),le.deps?(n.prevDep=le.depsTail,le.depsTail.nextDep=n,le.depsTail=n):le.deps=le.depsTail=n,ti(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=le.depsTail,n.nextDep=void 0,le.depsTail.nextDep=n,le.depsTail=n,le.deps===n&&(le.deps=s)}return n}trigger(t){this.version++,bn++,this.notify(t)}notify(t){Ds();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Bs()}}}function ti(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)ti(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ws=new WeakMap,It=Symbol(""),Ss=Symbol(""),gn=Symbol("");function _e(e,t,n){if(qe&&le){let s=ws.get(e);s||ws.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new js),o.map=s,o.key=n),o.track()}}function mt(e,t,n,s,o,i){const l=ws.get(e);if(!l){bn++;return}const r=u=>{u&&u.trigger()};if(Ds(),t==="clear")l.forEach(r);else{const u=B(e),b=u&&Fs(n);if(u&&n==="length"){const h=Number(s);l.forEach((y,U)=>{(U==="length"||U===gn||!at(U)&&U>=h)&&r(y)})}else switch((n!==void 0||l.has(void 0))&&r(l.get(n)),b&&r(l.get(gn)),t){case"add":u?b&&r(l.get("length")):(r(l.get(It)),Jt(e)&&r(l.get(Ss)));break;case"delete":u||(r(l.get(It)),Jt(e)&&r(l.get(Ss)));break;case"set":Jt(e)&&r(l.get(It));break}}Bs()}function Ht(e){const t=Q(e);return t===e?t:(_e(t,"iterate",gn),Ge(e)?t:t.map(Ye))}function ns(e){return _e(e=Q(e),"iterate",gn),e}function ot(e,t){return vt(e)?Zt(Rt(e)?Ye(t):t):Ye(t)}const Sl={__proto__:null,[Symbol.iterator](){return ps(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return Ht(this).concat(...e.map(t=>B(t)?Ht(t):t))},entries(){return ps(this,"entries",e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ft(this,"every",e,t,void 0,arguments)},filter(e,t){return ft(this,"filter",e,t,n=>n.map(s=>ot(this,s)),arguments)},find(e,t){return ft(this,"find",e,t,n=>ot(this,n),arguments)},findIndex(e,t){return ft(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ft(this,"findLast",e,t,n=>ot(this,n),arguments)},findLastIndex(e,t){return ft(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ft(this,"forEach",e,t,void 0,arguments)},includes(...e){return hs(this,"includes",e)},indexOf(...e){return hs(this,"indexOf",e)},join(e){return Ht(this).join(e)},lastIndexOf(...e){return hs(this,"lastIndexOf",e)},map(e,t){return ft(this,"map",e,t,void 0,arguments)},pop(){return tn(this,"pop")},push(...e){return tn(this,"push",e)},reduce(e,...t){return ro(this,"reduce",e,t)},reduceRight(e,...t){return ro(this,"reduceRight",e,t)},shift(){return tn(this,"shift")},some(e,t){return ft(this,"some",e,t,void 0,arguments)},splice(...e){return tn(this,"splice",e)},toReversed(){return Ht(this).toReversed()},toSorted(e){return Ht(this).toSorted(e)},toSpliced(...e){return Ht(this).toSpliced(...e)},unshift(...e){return tn(this,"unshift",e)},values(){return ps(this,"values",e=>ot(this,e))}};function ps(e,t,n){const s=ns(e),o=s[t]();return s!==e&&!Ge(e)&&(o._next=o.next,o.next=()=>{const i=o._next();return i.done||(i.value=n(i.value)),i}),o}const Al=Array.prototype;function ft(e,t,n,s,o,i){const l=ns(e),r=l!==e&&!Ge(e),u=l[t];if(u!==Al[t]){const y=u.apply(e,i);return r?Ye(y):y}let b=n;l!==e&&(r?b=function(y,U){return n.call(this,ot(e,y),U,e)}:n.length>2&&(b=function(y,U){return n.call(this,y,U,e)}));const h=u.call(l,b,s);return r&&o?o(h):h}function ro(e,t,n,s){const o=ns(e),i=o!==e&&!Ge(e);let l=n,r=!1;o!==e&&(i?(r=s.length===0,l=function(b,h,y){return r&&(r=!1,b=ot(e,b)),n.call(this,b,ot(e,h),y,e)}):n.length>3&&(l=function(b,h,y){return n.call(this,b,h,y,e)}));const u=o[t](l,...s);return r?ot(e,u):u}function hs(e,t,n){const s=Q(e);_e(s,"iterate",gn);const o=s[t](...n);return(o===-1||o===!1)&&Gs(n[0])?(n[0]=Q(n[0]),s[t](...n)):o}function tn(e,t,n=[]){ct(),Ds();const s=Q(e)[t].apply(e,n);return Bs(),ut(),s}const Cl=Is("__proto__,__v_isRef,__isVue"),ni=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(at));function El(e){at(e)||(e=String(e));const t=Q(this);return _e(t,"has",e),t.hasOwnProperty(e)}class si{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?Nl:ri:i?li:ii).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=B(t);if(!o){let u;if(l&&(u=Sl[n]))return u;if(n==="hasOwnProperty")return El}const r=Reflect.get(t,n,Se(t)?t:s);if((at(n)?ni.has(n):Cl(n))||(o||_e(t,"get",n),i))return r;if(Se(r)){const u=l&&Fs(n)?r:r.value;return o&&se(u)?Cs(u):u}return se(r)?o?Cs(r):Hs(r):r}}class oi extends si{constructor(t=!1){super(!1,t)}set(t,n,s,o){let i=t[n];const l=B(t)&&Fs(n);if(!this._isShallow){const b=vt(i);if(!Ge(s)&&!vt(s)&&(i=Q(i),s=Q(s)),!l&&Se(i)&&!Se(s))return b||(i.value=s),!0}const r=l?Number(n)<t.length:ee(t,n),u=Reflect.set(t,n,s,Se(t)?t:o);return t===Q(o)&&u&&(r?lt(s,i)&&mt(t,"set",n,s):mt(t,"add",n,s)),u}deleteProperty(t,n){const s=ee(t,n);t[n];const o=Reflect.deleteProperty(t,n);return o&&s&&mt(t,"delete",n,void 0),o}has(t,n){const s=Reflect.has(t,n);return(!at(n)||!ni.has(n))&&_e(t,"has",n),s}ownKeys(t){return _e(t,"iterate",B(t)?"length":It),Reflect.ownKeys(t)}}class kl extends si{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const Tl=new oi,Pl=new kl,Ol=new oi(!0);const As=e=>e,Rn=e=>Reflect.getPrototypeOf(e);function Ul(e,t,n){return function(...s){const o=this.__v_raw,i=Q(o),l=Jt(i),r=e==="entries"||e===Symbol.iterator&&l,u=e==="keys"&&l,b=o[e](...s),h=n?As:t?Zt:Ye;return!t&&_e(i,"iterate",u?Ss:It),Ae(Object.create(b),{next(){const{value:y,done:U}=b.next();return U?{value:y,done:U}:{value:r?[h(y[0]),h(y[1])]:h(y),done:U}}})}}function Fn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ml(e,t){const n={get(o){const i=this.__v_raw,l=Q(i),r=Q(o);e||(lt(o,r)&&_e(l,"get",o),_e(l,"get",r));const{has:u}=Rn(l),b=t?As:e?Zt:Ye;if(u.call(l,o))return b(i.get(o));if(u.call(l,r))return b(i.get(r));i!==l&&i.get(o)},get size(){const o=this.__v_raw;return!e&&_e(Q(o),"iterate",It),o.size},has(o){const i=this.__v_raw,l=Q(i),r=Q(o);return e||(lt(o,r)&&_e(l,"has",o),_e(l,"has",r)),o===r?i.has(o):i.has(o)||i.has(r)},forEach(o,i){const l=this,r=l.__v_raw,u=Q(r),b=t?As:e?Zt:Ye;return!e&&_e(u,"iterate",It),r.forEach((h,y)=>o.call(i,b(h),b(y),l))}};return Ae(n,e?{add:Fn("add"),set:Fn("set"),delete:Fn("delete"),clear:Fn("clear")}:{add(o){const i=Q(this),l=Rn(i),r=Q(o),u=!t&&!Ge(o)&&!vt(o)?r:o;return l.has.call(i,u)||lt(o,u)&&l.has.call(i,o)||lt(r,u)&&l.has.call(i,r)||(i.add(u),mt(i,"add",u,u)),this},set(o,i){!t&&!Ge(i)&&!vt(i)&&(i=Q(i));const l=Q(this),{has:r,get:u}=Rn(l);let b=r.call(l,o);b||(o=Q(o),b=r.call(l,o));const h=u.call(l,o);return l.set(o,i),b?lt(i,h)&&mt(l,"set",o,i):mt(l,"add",o,i),this},delete(o){const i=Q(this),{has:l,get:r}=Rn(i);let u=l.call(i,o);u||(o=Q(o),u=l.call(i,o)),r&&r.call(i,o);const b=i.delete(o);return u&&mt(i,"delete",o,void 0),b},clear(){const o=Q(this),i=o.size!==0,l=o.clear();return i&&mt(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=Ul(o,e,t)}),n}function Vs(e,t){const n=Ml(e,t);return(s,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ee(n,o)&&o in s?n:s,o,i)}const Il={get:Vs(!1,!1)},Rl={get:Vs(!1,!0)},Fl={get:Vs(!0,!1)};const ii=new WeakMap,li=new WeakMap,ri=new WeakMap,Nl=new WeakMap;function Ll(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Hs(e){return vt(e)?e:Ks(e,!1,Tl,Il,ii)}function Dl(e){return Ks(e,!1,Ol,Rl,li)}function Cs(e){return Ks(e,!0,Pl,Fl,ri)}function Ks(e,t,n,s,o){if(!se(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=Ll(cl(e));if(l===0)return e;const r=new Proxy(e,l===2?s:n);return o.set(e,r),r}function Rt(e){return vt(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Ge(e){return!!(e&&e.__v_isShallow)}function Gs(e){return e?!!e.__v_raw:!1}function Q(e){const t=e&&e.__v_raw;return t?Q(t):e}function Bl(e){return!ee(e,"__v_skip")&&Object.isExtensible(e)&&Ko(e,"__v_skip",!0),e}const Ye=e=>se(e)?Hs(e):e,Zt=e=>se(e)?Cs(e):e;function Se(e){return e?e.__v_isRef===!0:!1}function L(e){return $l(e,!1)}function $l(e,t){return Se(e)?e:new jl(e,t)}class jl{constructor(t,n){this.dep=new js,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Q(t),this._value=n?t:Ye(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ge(t)||vt(t);t=s?t:Q(t),lt(t,n)&&(this._rawValue=t,this._value=s?t:Ye(t),this.dep.trigger())}}function ln(e){return Se(e)?e.value:e}const Vl={get:(e,t,n)=>t==="__v_raw"?e:ln(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 ai(e){return Rt(e)?e:new Proxy(e,Vl)}class Hl{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new js(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&le!==this)return Yo(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 Kl(e,t,n=!1){let s,o;return V(e)?s=e:(s=e.get,o=e.set),new Hl(s,o,n)}const Nn={},Hn=new WeakMap;let Mt;function Gl(e,t=!1,n=Mt){if(n){let s=Hn.get(n);s||Hn.set(n,s=[]),s.push(e)}}function zl(e,t,n=oe){const{immediate:s,deep:o,once:i,scheduler:l,augmentJob:r,call:u}=n,b=N=>o?N:Ge(N)||o===!1||o===0?bt(N,1):bt(N);let h,y,U,M,J=!1,I=!1;if(Se(e)?(y=()=>e.value,J=Ge(e)):Rt(e)?(y=()=>b(e),J=!0):B(e)?(I=!0,J=e.some(N=>Rt(N)||Ge(N)),y=()=>e.map(N=>{if(Se(N))return N.value;if(Rt(N))return b(N);if(V(N))return u?u(N,2):N()})):V(e)?t?y=u?()=>u(e,2):e:y=()=>{if(U){ct();try{U()}finally{ut()}}const N=Mt;Mt=h;try{return u?u(e,3,[M]):e(M)}finally{Mt=N}}:y=rt,t&&o){const N=y,K=o===!0?1/0:o;y=()=>bt(N(),K)}const G=yl(),Y=()=>{h.stop(),G&&G.active&&Rs(G.effects,h)};if(i&&t){const N=t;t=(...K)=>{const Me=N(...K);return Y(),Me}}let j=I?new Array(e.length).fill(Nn):Nn;const Z=N=>{if(!(!(h.flags&1)||!h.dirty&&!N))if(t){const K=h.run();if(N||o||J||(I?K.some((Me,De)=>lt(Me,j[De])):lt(K,j))){U&&U();const Me=Mt;Mt=h;try{const De=[K,j===Nn?void 0:I&&j[0]===Nn?[]:j,M];j=K,u?u(t,3,De):t(...De)}finally{Mt=Me}}}else h.run()};return r&&r(Z),h=new Jo(y),h.scheduler=l?()=>l(Z,!1):Z,M=N=>Gl(N,!1,h),U=h.onStop=()=>{const N=Hn.get(h);if(N){if(u)u(N,4);else for(const K of N)K();Hn.delete(h)}},t?s?Z(!0):j=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 bt(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Se(e))bt(e.value,t,n);else if(B(e))for(let s=0;s<e.length;s++)bt(e[s],t,n);else if(en(e)||Jt(e))e.forEach(s=>{bt(s,t,n)});else if(Vo(e)){for(const s in e)bt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&bt(e[s],t,n)}return e}/**
* @vue/runtime-core v3.5.39
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Sn(e,t,n,s){try{return s?e(...s):e()}catch(o){ss(o,t,n)}}function Ze(e,t,n,s){if(V(e)){const o=Sn(e,t,n,s);return o&&$o(o)&&o.catch(i=>{ss(i,t,n)}),o}if(B(e)){const o=[];for(let i=0;i<e.length;i++)o.push(Ze(e[i],t,n,s));return o}}function ss(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||oe;if(t){let r=t.parent;const u=t.proxy,b=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){const h=r.ec;if(h){for(let y=0;y<h.length;y++)if(h[y](e,u,b)===!1)return}r=r.parent}if(i){ct(),Sn(i,null,10,[e,u,b]),ut();return}}Wl(e,n,o,s,l)}function Wl(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Te=[];let st=-1;const qt=[];let yt=null,Gt=0;const ci=Promise.resolve();let Kn=null;function ui(e){const t=Kn||ci;return e?t.then(this?e.bind(this):e):t}function Jl(e){let t=st+1,n=Te.length;for(;t<n;){const s=t+n>>>1,o=Te[s],i=vn(o);i<e||i===e&&o.flags&2?t=s+1:n=s}return t}function zs(e){if(!(e.flags&1)){const t=vn(e),n=Te[Te.length-1];!n||!(e.flags&2)&&t>=vn(n)?Te.push(e):Te.splice(Jl(t),0,e),e.flags|=1,di()}}function di(){Kn||(Kn=ci.then(pi))}function ql(e){B(e)?qt.push(...e):yt&&e.id===-1?yt.splice(Gt+1,0,e):e.flags&1||(qt.push(e),e.flags|=1),di()}function ao(e,t,n=st+1){for(;n<Te.length;n++){const s=Te[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;Te.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function fi(e){if(qt.length){const t=[...new Set(qt)].sort((n,s)=>vn(n)-vn(s));if(qt.length=0,yt){yt.push(...t);return}for(yt=t,Gt=0;Gt<yt.length;Gt++){const n=yt[Gt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}yt=null,Gt=0}}const vn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function pi(e){try{for(st=0;st<Te.length;st++){const t=Te[st];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Sn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;st<Te.length;st++){const t=Te[st];t&&(t.flags&=-2)}st=-1,Te.length=0,fi(),Kn=null,(Te.length||qt.length)&&pi()}}let Ke=null,hi=null;function Gn(e){const t=Ke;return Ke=e,hi=e&&e.type.__scopeId||null,t}function Yl(e,t=Ke,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&yo(-1);const i=Gn(t);let l;try{l=e(...o)}finally{Gn(i),s._d&&yo(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function ie(e,t){if(Ke===null)return e;const n=rs(Ke),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[i,l,r,u=oe]=t[o];i&&(V(i)&&(i={mounted:i,updated:i}),i.deep&&bt(l),s.push({dir:i,instance:n,value:l,oldValue:void 0,arg:r,modifiers:u}))}return e}function Ot(e,t,n,s){const o=e.dirs,i=t&&t.dirs;for(let l=0;l<o.length;l++){const r=o[l];i&&(r.oldValue=i[l].value);let u=r.dir[s];u&&(ct(),Ze(u,n,8,[e.el,r,e,t]),ut())}}function Zl(e,t){if(Pe){let n=Pe.provides;const s=Pe.parent&&Pe.parent.provides;s===n&&(n=Pe.provides=Object.create(s)),n[e]=t}}function $n(e,t,n=!1){const s=Yr();if(s||Yt){let o=Yt?Yt._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return n&&V(t)?t.call(s&&s.proxy):t}}const Xl=Symbol.for("v-scx"),Ql=()=>$n(Xl);function ms(e,t,n){return mi(e,t,n)}function mi(e,t,n=oe){const{immediate:s,deep:o,flush:i,once:l}=n,r=Ae({},n),u=t&&s||!t&&i!=="post";let b;if(yn){if(i==="sync"){const M=Ql();b=M.__watcherHandles||(M.__watcherHandles=[])}else if(!u){const M=()=>{};return M.stop=rt,M.resume=rt,M.pause=rt,M}}const h=Pe;r.call=(M,J,I)=>Ze(M,h,J,I);let y=!1;i==="post"?r.scheduler=M=>{Ue(M,h&&h.suspense)}:i!=="sync"&&(y=!0,r.scheduler=(M,J)=>{J?M():zs(M)}),r.augmentJob=M=>{t&&(M.flags|=4),y&&(M.flags|=2,h&&(M.id=h.uid,M.i=h))};const U=zl(e,t,r);return yn&&(b?b.push(U):u&&U()),U}function er(e,t,n){const s=this.proxy,o=ae(e)?e.includes(".")?bi(s,e):()=>s[e]:e.bind(s,s);let i;V(t)?i=t:(i=t.handler,n=t);const l=An(this),r=mi(o,i.bind(s),n);return l(),r}function bi(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o<n.length&&s;o++)s=s[n[o]];return s}}const tr=Symbol("_vte"),nr=e=>e.__isTeleport,bs=Symbol("_leaveCb");function Ws(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Ws(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 gi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function co(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const zn=new WeakMap;function fn(e,t,n,s,o=!1){if(B(e)){e.forEach((I,G)=>fn(I,t&&(B(t)?t[G]:t),n,s,o));return}if(pn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&fn(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?rs(s.component):s.el,l=o?null:i,{i:r,r:u}=e,b=t&&t.r,h=r.refs===oe?r.refs={}:r.refs,y=r.setupState,U=Q(y),M=y===oe?Bo:I=>co(h,I)?!1:ee(U,I),J=(I,G)=>!(G&&co(h,G));if(b!=null&&b!==u){if(uo(t),ae(b))h[b]=null,M(b)&&(y[b]=null);else if(Se(b)){const I=t;J(b,I.k)&&(b.value=null),I.k&&(h[I.k]=null)}}if(V(u)){ct();try{Sn(u,r,12,[l,h])}finally{ut()}}else{const I=ae(u),G=Se(u);if(I||G){const Y=()=>{if(e.f){const j=I?M(u)?y[u]:h[u]:J()||!e.k?u.value:h[e.k];if(o)B(j)&&Rs(j,i);else if(B(j))j.includes(i)||j.push(i);else if(I)h[u]=[i],M(u)&&(y[u]=h[u]);else{const Z=[i];J(u,e.k)&&(u.value=Z),e.k&&(h[e.k]=Z)}}else I?(h[u]=l,M(u)&&(y[u]=l)):G&&(J(u,e.k)&&(u.value=l),e.k&&(h[e.k]=l))};if(l){const j=()=>{Y(),zn.delete(e)};j.id=-1,zn.set(e,j),Ue(j,n)}else uo(e),Y()}}}function uo(e){const t=zn.get(e);t&&(t.flags|=8,zn.delete(e))}ts().requestIdleCallback;ts().cancelIdleCallback;const pn=e=>!!e.type.__asyncLoader,vi=e=>e.type.__isKeepAlive;function sr(e,t){xi(e,"a",t)}function or(e,t){xi(e,"da",t)}function xi(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(os(t,s,n),n){let o=n.parent;for(;o&&o.parent;)vi(o.parent.vnode)&&ir(s,t,n,o),o=o.parent}}function ir(e,t,n,s){const o=os(t,e,s,!0);Js(()=>{Rs(s[t],o)},n)}function os(e,t,n=Pe,s=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{ct();const r=An(n),u=Ze(t,n,e,l);return r(),ut(),u});return s?o.unshift(i):o.push(i),i}}const xt=e=>(t,n=Pe)=>{(!yn||e==="sp")&&os(e,(...s)=>t(...s),n)},lr=xt("bm"),yi=xt("m"),rr=xt("bu"),ar=xt("u"),cr=xt("bum"),Js=xt("um"),ur=xt("sp"),dr=xt("rtg"),fr=xt("rtc");function pr(e,t=Pe){os("ec",e,t)}const hr=Symbol.for("v-ndc");function he(e,t,n,s){let o;const i=n,l=B(e);if(l||ae(e)){const r=l&&Rt(e);let u=!1,b=!1;r&&(u=!Ge(e),b=vt(e),e=ns(e)),o=new Array(e.length);for(let h=0,y=e.length;h<y;h++)o[h]=t(u?b?Zt(Ye(e[h])):Ye(e[h]):e[h],h,void 0,i)}else if(typeof e=="number"){o=new Array(e);for(let r=0;r<e;r++)o[r]=t(r+1,r,void 0,i)}else if(se(e))if(e[Symbol.iterator])o=Array.from(e,(r,u)=>t(r,u,void 0,i));else{const r=Object.keys(e);o=new Array(r.length);for(let u=0,b=r.length;u<b;u++){const h=r[u];o[u]=t(e[h],h,u,i)}}else o=[];return o}const Es=e=>e?ji(e)?rs(e):Es(e.parent):null,hn=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=>Es(e.parent),$root:e=>Es(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>wi(e),$forceUpdate:e=>e.f||(e.f=()=>{zs(e.update)}),$nextTick:e=>e.n||(e.n=ui.bind(e.proxy)),$watch:e=>er.bind(e)}),gs=(e,t)=>e!==oe&&!e.__isScriptSetup&&ee(e,t),mr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:i,accessCache:l,type:r,appContext:u}=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(gs(s,t))return l[t]=1,s[t];if(o!==oe&&ee(o,t))return l[t]=2,o[t];if(ee(i,t))return l[t]=3,i[t];if(n!==oe&&ee(n,t))return l[t]=4,n[t];ks&&(l[t]=0)}}const b=hn[t];let h,y;if(b)return t==="$attrs"&&_e(e.attrs,"get",""),b(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(n!==oe&&ee(n,t))return l[t]=4,n[t];if(y=u.config.globalProperties,ee(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:i}=e;return gs(o,t)?(o[t]=n,!0):s!==oe&&ee(s,t)?(s[t]=n,!0):ee(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 u;return!!(n[r]||e!==oe&&r[0]!=="$"&&ee(e,r)||gs(t,r)||ee(i,r)||ee(s,r)||ee(hn,r)||ee(o.config.globalProperties,r)||(u=l.__cssModules)&&u[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ee(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fo(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ks=!0;function br(e){const t=wi(e),n=e.proxy,s=e.ctx;ks=!1,t.beforeCreate&&po(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:l,watch:r,provide:u,inject:b,created:h,beforeMount:y,mounted:U,beforeUpdate:M,updated:J,activated:I,deactivated:G,beforeDestroy:Y,beforeUnmount:j,destroyed:Z,unmounted:N,render:K,renderTracked:Me,renderTriggered:De,errorCaptured:Xe,serverPrefetch:Be,expose:Oe,inheritAttrs:de,components:Qe,directives:Ce,filters:ve}=t;if(b&&gr(b,s,null),l)for(const ne in l){const q=l[ne];V(q)&&(s[ne]=q.bind(n))}if(o){const ne=o.call(n,n);se(ne)&&(e.data=Hs(ne))}if(ks=!0,i)for(const ne in i){const q=i[ne],et=V(q)?q.bind(n,n):V(q.get)?q.get.bind(n,n):rt,Nt=!V(q)&&V(q.set)?q.set.bind(n):rt,me=Us({get:et,set:Nt});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>me.value,set:pe=>me.value=pe})}if(r)for(const ne in r)_i(r[ne],s,n,ne);if(u){const ne=V(u)?u.call(n):u;Reflect.ownKeys(ne).forEach(q=>{Zl(q,ne[q])})}h&&po(h,e,"c");function fe(ne,q){B(q)?q.forEach(et=>ne(et.bind(n))):q&&ne(q.bind(n))}if(fe(lr,y),fe(yi,U),fe(rr,M),fe(ar,J),fe(sr,I),fe(or,G),fe(pr,Xe),fe(fr,Me),fe(dr,De),fe(cr,j),fe(Js,N),fe(ur,Be),B(Oe))if(Oe.length){const ne=e.exposed||(e.exposed={});Oe.forEach(q=>{Object.defineProperty(ne,q,{get:()=>n[q],set:et=>n[q]=et,enumerable:!0})})}else e.exposed||(e.exposed={});K&&e.render===rt&&(e.render=K),de!=null&&(e.inheritAttrs=de),Qe&&(e.components=Qe),Ce&&(e.directives=Ce),Be&&gi(e)}function gr(e,t,n=rt){B(e)&&(e=Ts(e));for(const s in e){const o=e[s];let i;se(o)?"default"in o?i=$n(o.from||s,o.default,!0):i=$n(o.from||s):i=$n(o),Se(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function po(e,t,n){Ze(B(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function _i(e,t,n,s){let o=s.includes(".")?bi(n,s):()=>n[s];if(ae(e)){const i=t[e];V(i)&&ms(o,i)}else if(V(e))ms(o,e.bind(n));else if(se(e))if(B(e))e.forEach(i=>_i(i,t,n,s));else{const i=V(e.handler)?e.handler.bind(n):t[e.handler];V(i)&&ms(o,i,e)}}function wi(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let u;return r?u=r:!o.length&&!n&&!s?u=t:(u={},o.length&&o.forEach(b=>Wn(u,b,l,!0)),Wn(u,t,l)),se(t)&&i.set(t,u),u}function Wn(e,t,n,s=!1){const{mixins:o,extends:i}=t;i&&Wn(e,i,n,!0),o&&o.forEach(l=>Wn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const r=vr[l]||n&&n[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const vr={data:ho,props:mo,emits:mo,methods:rn,computed:rn,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:rn,directives:rn,watch:yr,provide:ho,inject:xr};function ho(e,t){return t?e?function(){return Ae(V(e)?e.call(this,this):e,V(t)?t.call(this,this):t)}:t:e}function xr(e,t){return rn(Ts(e),Ts(t))}function Ts(e){if(B(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ke(e,t){return e?[...new Set([].concat(e,t))]:t}function rn(e,t){return e?Ae(Object.create(null),e,t):t}function mo(e,t){return e?B(e)&&B(t)?[...new Set([...e,...t])]:Ae(Object.create(null),fo(e),fo(t??{})):t}function yr(e,t){if(!e)return t;if(!t)return e;const n=Ae(Object.create(null),e);for(const s in t)n[s]=ke(e[s],t[s]);return n}function Si(){return{app:null,config:{isNativeTag:Bo,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let _r=0;function wr(e,t){return function(s,o=null){V(s)||(s=Ae({},s)),o!=null&&!se(o)&&(o=null);const i=Si(),l=new WeakSet,r=[];let u=!1;const b=i.app={_uid:_r++,_component:s,_props:o,_container:null,_context:i,_instance:null,version:na,get config(){return i.config},set config(h){},use(h,...y){return l.has(h)||(h&&V(h.install)?(l.add(h),h.install(b,...y)):V(h)&&(l.add(h),h(b,...y))),b},mixin(h){return i.mixins.includes(h)||i.mixins.push(h),b},component(h,y){return y?(i.components[h]=y,b):i.components[h]},directive(h,y){return y?(i.directives[h]=y,b):i.directives[h]},mount(h,y,U){if(!u){const M=b._ceVNode||we(s,o);return M.appContext=i,U===!0?U="svg":U===!1&&(U=void 0),e(M,h,U),u=!0,b._container=h,h.__vue_app__=b,rs(M.component)}},onUnmount(h){r.push(h)},unmount(){u&&(Ze(r,b._instance,16),e(null,b._container),delete b._container.__vue_app__)},provide(h,y){return i.provides[h]=y,b},runWithContext(h){const y=Yt;Yt=b;try{return h()}finally{Yt=y}}};return b}}let Yt=null;const Sr=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${At(t)}Modifiers`];function Ar(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||oe;let o=n;const i=t.startsWith("update:"),l=i&&Sr(s,t.slice(7));l&&(l.trim&&(o=n.map(h=>ae(h)?h.trim():h)),l.number&&(o=n.map(es)));let r,u=s[r=us(t)]||s[r=us(Je(t))];!u&&i&&(u=s[r=us(At(t))]),u&&Ze(u,e,6,o);const b=s[r+"Once"];if(b){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ze(b,e,6,o)}}const Cr=new WeakMap;function Ai(e,t,n=!1){const s=n?Cr:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const i=e.emits;let l={},r=!1;if(!V(e)){const u=b=>{const h=Ai(b,t,!0);h&&(r=!0,Ae(l,h))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!r?(se(e)&&s.set(e,null),null):(B(i)?i.forEach(u=>l[u]=null):Ae(l,i),se(e)&&s.set(e,l),l)}function is(e,t){return!e||!Zn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),ee(e,t[0].toLowerCase()+t.slice(1))||ee(e,At(t))||ee(e,t))}function bo(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[i],slots:l,attrs:r,emit:u,render:b,renderCache:h,props:y,data:U,setupState:M,ctx:J,inheritAttrs:I}=e,G=Gn(e);let Y,j;try{if(n.shapeFlag&4){const N=o||s,K=N;Y=it(b.call(K,N,h,y,M,U,J)),j=r}else{const N=t;Y=it(N.length>1?N(y,{attrs:r,slots:l,emit:u}):N(y,null)),j=t.props?r:Er(r)}}catch(N){mn.length=0,ss(N,e,1),Y=we(wt)}let Z=Y;if(j&&I!==!1){const N=Object.keys(j),{shapeFlag:K}=Z;N.length&&K&7&&(i&&N.some(Xn)&&(j=kr(j,i)),Z=Xt(Z,j,!1,!0))}return n.dirs&&(Z=Xt(Z,null,!1,!0),Z.dirs=Z.dirs?Z.dirs.concat(n.dirs):n.dirs),n.transition&&Ws(Z,n.transition),Y=Z,Gn(G),Y}const Er=e=>{let t;for(const n in e)(n==="class"||n==="style"||Zn(n))&&((t||(t={}))[n]=e[n]);return t},kr=(e,t)=>{const n={};for(const s in e)(!Xn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Tr(e,t,n){const{props:s,children:o,component:i}=e,{props:l,children:r,patchFlag:u}=t,b=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return s?go(s,l,b):!!l;if(u&8){const h=t.dynamicProps;for(let y=0;y<h.length;y++){const U=h[y];if(Ci(l,s,U)&&!is(b,U))return!0}}}else return(o||r)&&(!r||!r.$stable)?!0:s===l?!1:s?l?go(s,l,b):!0:!!l;return!1}function go(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let o=0;o<s.length;o++){const i=s[o];if(Ci(t,e,i)&&!is(n,i))return!0}return!1}function Ci(e,t,n){const s=e[n],o=t[n];return n==="style"&&se(s)&&se(o)?!_t(s,o):s!==o}function Pr({vnode:e,parent:t,suspense:n},s){for(;t;){const o=t.subTree;if(o.suspense&&o.suspense.activeBranch===e&&(o.suspense.vnode.el=o.el=s,e=o),o===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const Ei={},ki=()=>Object.create(Ei),Ti=e=>Object.getPrototypeOf(e)===Ei;function Or(e,t,n,s=!1){const o={},i=ki();e.propsDefaults=Object.create(null),Pi(e,t,o,i);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:Dl(o):e.type.props?e.props=o:e.props=i,e.attrs=i}function Ur(e,t,n,s){const{props:o,attrs:i,vnode:{patchFlag:l}}=e,r=Q(o),[u]=e.propsOptions;let b=!1;if((s||l>0)&&!(l&16)){if(l&8){const h=e.vnode.dynamicProps;for(let y=0;y<h.length;y++){let U=h[y];if(is(e.emitsOptions,U))continue;const M=t[U];if(u)if(ee(i,U))M!==i[U]&&(i[U]=M,b=!0);else{const J=Je(U);o[J]=Ps(u,r,J,M,e,!1)}else M!==i[U]&&(i[U]=M,b=!0)}}}else{Pi(e,t,o,i)&&(b=!0);let h;for(const y in r)(!t||!ee(t,y)&&((h=At(y))===y||!ee(t,h)))&&(u?n&&(n[y]!==void 0||n[h]!==void 0)&&(o[y]=Ps(u,r,y,void 0,e,!0)):delete o[y]);if(i!==r)for(const y in i)(!t||!ee(t,y))&&(delete i[y],b=!0)}b&&mt(e.attrs,"set","")}function Pi(e,t,n,s){const[o,i]=e.propsOptions;let l=!1,r;if(t)for(let u in t){if(cn(u))continue;const b=t[u];let h;o&&ee(o,h=Je(u))?!i||!i.includes(h)?n[h]=b:(r||(r={}))[h]=b:is(e.emitsOptions,u)||(!(u in s)||b!==s[u])&&(s[u]=b,l=!0)}if(i){const u=Q(n),b=r||oe;for(let h=0;h<i.length;h++){const y=i[h];n[y]=Ps(o,u,y,b[y],e,!ee(b,y))}}return l}function Ps(e,t,n,s,o,i){const l=e[n];if(l!=null){const r=ee(l,"default");if(r&&s===void 0){const u=l.default;if(l.type!==Function&&!l.skipFactory&&V(u)){const{propsDefaults:b}=o;if(n in b)s=b[n];else{const h=An(o);s=b[n]=u.call(null,t),h()}}else s=u;o.ce&&o.ce._setProp(n,s)}l[0]&&(i&&!r?s=!1:l[1]&&(s===""||s===At(n))&&(s=!0))}return s}const Mr=new WeakMap;function Oi(e,t,n=!1){const s=n?Mr:t.propsCache,o=s.get(e);if(o)return o;const i=e.props,l={},r=[];let u=!1;if(!V(e)){const h=y=>{u=!0;const[U,M]=Oi(y,t,!0);Ae(l,U),M&&r.push(...M)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!u)return se(e)&&s.set(e,Wt),Wt;if(B(i))for(let h=0;h<i.length;h++){const y=Je(i[h]);vo(y)&&(l[y]=oe)}else if(i)for(const h in i){const y=Je(h);if(vo(y)){const U=i[h],M=l[y]=B(U)||V(U)?{type:U}:Ae({},U),J=M.type;let I=!1,G=!0;if(B(J))for(let Y=0;Y<J.length;++Y){const j=J[Y],Z=V(j)&&j.name;if(Z==="Boolean"){I=!0;break}else Z==="String"&&(G=!1)}else I=V(J)&&J.name==="Boolean";M[0]=I,M[1]=G,(I||ee(M,"default"))&&r.push(y)}}const b=[l,r];return se(e)&&s.set(e,b),b}function vo(e){return e[0]!=="$"&&!cn(e)}const qs=e=>e==="_"||e==="_ctx"||e==="$stable",Ys=e=>B(e)?e.map(it):[it(e)],Ir=(e,t,n)=>{if(t._n)return t;const s=Yl((...o)=>Ys(t(...o)),n);return s._c=!1,s},Ui=(e,t,n)=>{const s=e._ctx;for(const o in e){if(qs(o))continue;const i=e[o];if(V(i))t[o]=Ir(o,i,s);else if(i!=null){const l=Ys(i);t[o]=()=>l}}},Mi=(e,t)=>{const n=Ys(t);e.slots.default=()=>n},Ii=(e,t,n)=>{for(const s in t)(n||!qs(s))&&(e[s]=t[s])},Rr=(e,t,n)=>{const s=e.slots=ki();if(e.vnode.shapeFlag&32){const o=t._;o?(Ii(s,t,n),n&&Ko(s,"_",o,!0)):Ui(t,s)}else t&&Mi(e,t)},Fr=(e,t,n)=>{const{vnode:s,slots:o}=e;let i=!0,l=oe;if(s.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Ii(o,t,n):(i=!t.$stable,Ui(t,o)),l=t}else t&&(Mi(e,t),l={default:1});if(i)for(const r in o)!qs(r)&&l[r]==null&&delete o[r]},Ue=$r;function Nr(e){return Lr(e)}function Lr(e,t){const n=ts();n.__VUE__=!0;const{insert:s,remove:o,patchProp:i,createElement:l,createText:r,createComment:u,setText:b,setElementText:h,parentNode:y,nextSibling:U,setScopeId:M=rt,insertStaticContent:J}=e,I=(c,p,g,S=null,w=null,v=null,T=void 0,k=null,E=!!p.dynamicChildren)=>{if(c===p)return;c&&!nn(c,p)&&(S=Ie(c),pe(c,w,v,!0),c=null),p.patchFlag===-2&&(E=!1,p.dynamicChildren=null);const{type:_,ref:F,shapeFlag:P}=p;switch(_){case ls:G(c,p,g,S);break;case wt:Y(c,p,g,S);break;case jn:c==null&&j(p,g,S,T);break;case X:Qe(c,p,g,S,w,v,T,k,E);break;default:P&1?K(c,p,g,S,w,v,T,k,E):P&6?Ce(c,p,g,S,w,v,T,k,E):(P&64||P&128)&&_.process(c,p,g,S,w,v,T,k,E,kt)}F!=null&&w?fn(F,c&&c.ref,v,p||c,!p):F==null&&c&&c.ref!=null&&fn(c.ref,null,v,c,!0)},G=(c,p,g,S)=>{if(c==null)s(p.el=r(p.children),g,S);else{const w=p.el=c.el;p.children!==c.children&&b(w,p.children)}},Y=(c,p,g,S)=>{c==null?s(p.el=u(p.children||""),g,S):p.el=c.el},j=(c,p,g,S)=>{[c.el,c.anchor]=J(c.children,p,g,S,c.el,c.anchor)},Z=({el:c,anchor:p},g,S)=>{let w;for(;c&&c!==p;)w=U(c),s(c,g,S),c=w;s(p,g,S)},N=({el:c,anchor:p})=>{let g;for(;c&&c!==p;)g=U(c),o(c),c=g;o(p)},K=(c,p,g,S,w,v,T,k,E)=>{if(p.type==="svg"?T="svg":p.type==="math"&&(T="mathml"),c==null)Me(p,g,S,w,v,T,k,E);else{const _=c.el&&c.el._isVueCE?c.el:null;try{_&&_._beginPatch(),Be(c,p,w,v,T,k,E)}finally{_&&_._endPatch()}}},Me=(c,p,g,S,w,v,T,k)=>{let E,_;const{props:F,shapeFlag:P,transition:R,dirs:D}=c;if(E=c.el=l(c.type,v,F&&F.is,F),P&8?h(E,c.children):P&16&&Xe(c.children,E,null,S,w,vs(c,v),T,k),D&&Ot(c,null,S,"created"),De(E,c,c.scopeId,T,S),F){for(const W in F)W!=="value"&&!cn(W)&&i(E,W,null,F[W],v,S);"value"in F&&i(E,"value",null,F.value,v),(_=F.onVnodeBeforeMount)&&nt(_,S,c)}D&&Ot(c,null,S,"beforeMount");const H=Dr(w,R);H&&R.beforeEnter(E),s(E,p,g),((_=F&&F.onVnodeMounted)||H||D)&&Ue(()=>{try{_&&nt(_,S,c),H&&R.enter(E),D&&Ot(c,null,S,"mounted")}finally{}},w)},De=(c,p,g,S,w)=>{if(g&&M(c,g),S)for(let v=0;v<S.length;v++)M(c,S[v]);if(w){let v=w.subTree;if(p===v||Li(v.type)&&(v.ssContent===p||v.ssFallback===p)){const T=w.vnode;De(c,T,T.scopeId,T.slotScopeIds,w.parent)}}},Xe=(c,p,g,S,w,v,T,k,E=0)=>{for(let _=E;_<c.length;_++){const F=c[_]=k?ht(c[_]):it(c[_]);I(null,F,p,g,S,w,v,T,k)}},Be=(c,p,g,S,w,v,T)=>{const k=p.el=c.el;let{patchFlag:E,dynamicChildren:_,dirs:F}=p;E|=c.patchFlag&16;const P=c.props||oe,R=p.props||oe;let D;if(g&&Ut(g,!1),(D=R.onVnodeBeforeUpdate)&&nt(D,g,p,c),F&&Ot(p,c,g,"beforeUpdate"),g&&Ut(g,!0),_&&(!c.dynamicChildren||c.dynamicChildren.length!==_.length)&&(E=0,T=!1,_=null),(P.innerHTML&&R.innerHTML==null||P.textContent&&R.textContent==null)&&h(k,""),_?Oe(c.dynamicChildren,_,k,g,S,vs(p,w),v):T||q(c,p,k,null,g,S,vs(p,w),v,!1),E>0){if(E&16)de(k,P,R,g,w);else if(E&2&&P.class!==R.class&&i(k,"class",null,R.class,w),E&4&&i(k,"style",P.style,R.style,w),E&8){const H=p.dynamicProps;for(let W=0;W<H.length;W++){const z=H[W],re=P[z],ue=R[z];(ue!==re||z==="value")&&i(k,z,re,ue,w,g)}}E&1&&c.children!==p.children&&h(k,p.children)}else!T&&_==null&&de(k,P,R,g,w);((D=R.onVnodeUpdated)||F)&&Ue(()=>{D&&nt(D,g,p,c),F&&Ot(p,c,g,"updated")},S)},Oe=(c,p,g,S,w,v,T)=>{for(let k=0;k<p.length;k++){const E=c[k],_=p[k],F=E.el&&(E.type===X||!nn(E,_)||E.shapeFlag&198)?y(E.el):g;I(E,_,F,null,S,w,v,T,!0)}},de=(c,p,g,S,w)=>{if(p!==g){if(p!==oe)for(const v in p)!cn(v)&&!(v in g)&&i(c,v,p[v],null,w,S);for(const v in g){if(cn(v))continue;const T=g[v],k=p[v];T!==k&&v!=="value"&&i(c,v,k,T,w,S)}"value"in g&&i(c,"value",p.value,g.value,w)}},Qe=(c,p,g,S,w,v,T,k,E)=>{const _=p.el=c?c.el:r(""),F=p.anchor=c?c.anchor:r("");let{patchFlag:P,dynamicChildren:R,slotScopeIds:D}=p;D&&(k=k?k.concat(D):D),c==null?(s(_,g,S),s(F,g,S),Xe(p.children||[],g,F,w,v,T,k,E)):P>0&&P&64&&R&&c.dynamicChildren&&c.dynamicChildren.length===R.length?(Oe(c.dynamicChildren,R,g,w,v,T,k),(p.key!=null||w&&p===w.subTree)&&Ri(c,p,!0)):q(c,p,g,F,w,v,T,k,E)},Ce=(c,p,g,S,w,v,T,k,E)=>{p.slotScopeIds=k,c==null?p.shapeFlag&512?w.ctx.activate(p,g,S,T,E):ve(p,g,S,w,v,T,E):Ft(c,p,E)},ve=(c,p,g,S,w,v,T)=>{const k=c.component=qr(c,S,w);if(vi(c)&&(k.ctx.renderer=kt),Zr(k,!1,T),k.asyncDep){if(w&&w.registerDep(k,fe,T),!c.el){const E=k.subTree=we(wt);Y(null,E,p,g),c.placeholder=E.el}}else fe(k,c,p,g,w,v,T)},Ft=(c,p,g)=>{const S=p.component=c.component;if(Tr(c,p,g))if(S.asyncDep&&!S.asyncResolved){ne(S,p,g);return}else S.next=p,S.update();else p.el=c.el,S.vnode=p},fe=(c,p,g,S,w,v,T)=>{const k=()=>{if(c.isMounted){let{next:P,bu:R,u:D,parent:H,vnode:W}=c;{const xe=Fi(c);if(xe){P&&(P.el=W.el,ne(c,P,T)),xe.asyncDep.then(()=>{Ue(()=>{c.isUnmounted||_()},w)});return}}let z=P,re;Ut(c,!1),P?(P.el=W.el,ne(c,P,T)):P=W,R&&Bn(R),(re=P.props&&P.props.onVnodeBeforeUpdate)&&nt(re,H,P,W),Ut(c,!0);const ue=bo(c),$e=c.subTree;c.subTree=ue,I($e,ue,y($e.el),Ie($e),c,w,v),P.el=ue.el,z===null&&Pr(c,ue.el),D&&Ue(D,w),(re=P.props&&P.props.onVnodeUpdated)&&Ue(()=>nt(re,H,P,W),w)}else{let P;const{el:R,props:D}=p,{bm:H,m:W,parent:z,root:re,type:ue}=c,$e=pn(p);Ut(c,!1),H&&Bn(H),!$e&&(P=D&&D.onVnodeBeforeMount)&&nt(P,z,p),Ut(c,!0);{re.ce&&re.ce._hasShadowRoot()&&re.ce._injectChildStyle(ue,c.parent?c.parent.type:void 0);const xe=c.subTree=bo(c);I(null,xe,g,S,c,w,v),p.el=xe.el}if(W&&Ue(W,w),!$e&&(P=D&&D.onVnodeMounted)){const xe=p;Ue(()=>nt(P,z,xe),w)}(p.shapeFlag&256||z&&pn(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&Ue(c.a,w),c.isMounted=!0,p=g=S=null}};c.scope.on();const E=c.effect=new Jo(k);c.scope.off();const _=c.update=E.run.bind(E),F=c.job=E.runIfDirty.bind(E);F.i=c,F.id=c.uid,E.scheduler=()=>zs(F),Ut(c,!0),_()},ne=(c,p,g)=>{p.component=c;const S=c.vnode.props;c.vnode=p,c.next=null,Ur(c,p.props,S,g),Fr(c,p.children,g),ct(),ao(c),ut()},q=(c,p,g,S,w,v,T,k,E=!1)=>{const _=c&&c.children,F=c?c.shapeFlag:0,P=p.children,{patchFlag:R,shapeFlag:D}=p;if(R>0){if(R&128){Nt(_,P,g,S,w,v,T,k,E);return}else if(R&256){et(_,P,g,S,w,v,T,k,E);return}}D&8?(F&16&&Ct(_,w,v),P!==_&&h(g,P)):F&16?D&16?Nt(_,P,g,S,w,v,T,k,E):Ct(_,w,v,!0):(F&8&&h(g,""),D&16&&Xe(P,g,S,w,v,T,k,E))},et=(c,p,g,S,w,v,T,k,E)=>{c=c||Wt,p=p||Wt;const _=c.length,F=p.length,P=Math.min(_,F);let R;for(R=0;R<P;R++){const D=p[R]=E?ht(p[R]):it(p[R]);I(c[R],D,g,null,w,v,T,k,E)}_>F?Ct(c,w,v,!0,!1,P):Xe(p,g,S,w,v,T,k,E,P)},Nt=(c,p,g,S,w,v,T,k,E)=>{let _=0;const F=p.length;let P=c.length-1,R=F-1;for(;_<=P&&_<=R;){const D=c[_],H=p[_]=E?ht(p[_]):it(p[_]);if(nn(D,H))I(D,H,g,null,w,v,T,k,E);else break;_++}for(;_<=P&&_<=R;){const D=c[P],H=p[R]=E?ht(p[R]):it(p[R]);if(nn(D,H))I(D,H,g,null,w,v,T,k,E);else break;P--,R--}if(_>P){if(_<=R){const D=R+1,H=D<F?p[D].el:S;for(;_<=R;)I(null,p[_]=E?ht(p[_]):it(p[_]),g,H,w,v,T,k,E),_++}}else if(_>R)for(;_<=P;)pe(c[_],w,v,!0),_++;else{const D=_,H=_,W=new Map;for(_=H;_<=R;_++){const ce=p[_]=E?ht(p[_]):it(p[_]);ce.key!=null&&W.set(ce.key,_)}let z,re=0;const ue=R-H+1;let $e=!1,xe=0;const Re=new Array(ue);for(_=0;_<ue;_++)Re[_]=0;for(_=D;_<=P;_++){const ce=c[_];if(re>=ue){pe(ce,w,v,!0);continue}let Ee;if(ce.key!=null)Ee=W.get(ce.key);else for(z=H;z<=R;z++)if(Re[z-H]===0&&nn(ce,p[z])){Ee=z;break}Ee===void 0?pe(ce,w,v,!0):(Re[Ee-H]=_+1,Ee>=xe?xe=Ee:$e=!0,I(ce,p[Ee],g,null,w,v,T,k,E),re++)}const be=$e?Br(Re):Wt;for(z=be.length-1,_=ue-1;_>=0;_--){const ce=H+_,Ee=p[ce],Tt=p[ce+1],We=ce+1<F?Tt.el||Ni(Tt):S;Re[_]===0?I(null,Ee,g,We,w,v,T,k,E):$e&&(z<0||_!==be[z]?me(Ee,g,We,2):z--)}}},me=(c,p,g,S,w=null)=>{const{el:v,type:T,transition:k,children:E,shapeFlag:_}=c;if(_&6){me(c.component.subTree,p,g,S);return}if(_&128){c.suspense.move(p,g,S);return}if(_&64){T.move(c,p,g,kt);return}if(T===X){s(v,p,g);for(let P=0;P<E.length;P++)me(E[P],p,g,S);s(c.anchor,p,g);return}if(T===jn){Z(c,p,g);return}if(S!==2&&_&1&&k)if(S===0)k.persisted&&!v[bs]?s(v,p,g):(k.beforeEnter(v),s(v,p,g),Ue(()=>k.enter(v),w));else{const{leave:P,delayLeave:R,afterLeave:D}=k,H=()=>{c.ctx.isUnmounted?o(v):s(v,p,g)},W=()=>{const z=v._isLeaving||!!v[bs];v._isLeaving&&v[bs](!0),k.persisted&&!z?H():P(v,()=>{H(),D&&D()})};R?R(v,H,W):W()}else s(v,p,g)},pe=(c,p,g,S=!1,w=!1)=>{const{type:v,props:T,ref:k,children:E,dynamicChildren:_,shapeFlag:F,patchFlag:P,dirs:R,cacheIndex:D,memo:H}=c;if(P===-2&&(w=!1),k!=null&&(ct(),fn(k,null,g,c,!0),ut()),D!=null&&(p.renderCache[D]=void 0),F&256){p.ctx.deactivate(c);return}const W=F&1&&R,z=!pn(c);let re;if(z&&(re=T&&T.onVnodeBeforeUnmount)&&nt(re,p,c),F&6)as(c.component,g,S);else{if(F&128){c.suspense.unmount(g,S);return}W&&Ot(c,null,p,"beforeUnmount"),F&64?c.type.remove(c,p,g,kt,S):_&&!_.hasOnce&&(v!==X||P>0&&P&64)?Ct(_,p,g,!1,!0):(v===X&&P&384||!w&&F&16)&&Ct(E,p,g),S&&Cn(c)}const ue=H!=null&&D==null;(z&&(re=T&&T.onVnodeUnmounted)||W||ue)&&Ue(()=>{re&&nt(re,p,c),W&&Ot(c,null,p,"unmounted"),ue&&(c.el=null)},g)},Cn=c=>{const{type:p,el:g,anchor:S,transition:w}=c;if(p===X){En(g,S);return}if(p===jn){N(c);return}const v=()=>{o(g),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(c.shapeFlag&1&&w&&!w.persisted){const{leave:T,delayLeave:k}=w,E=()=>T(g,v);k?k(c.el,v,E):E()}else v()},En=(c,p)=>{let g;for(;c!==p;)g=U(c),o(c),c=g;o(p)},as=(c,p,g)=>{const{bum:S,scope:w,job:v,subTree:T,um:k,m:E,a:_}=c;xo(E),xo(_),S&&Bn(S),w.stop(),v&&(v.flags|=8,pe(T,c,p,g)),k&&Ue(k,p),Ue(()=>{c.isUnmounted=!0},p)},Ct=(c,p,g,S=!1,w=!1,v=0)=>{for(let T=v;T<c.length;T++)pe(c[T],p,g,S,w)},Ie=c=>{if(c.shapeFlag&6)return Ie(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const p=U(c.anchor||c.el),g=p&&p[tr];return g?U(g):p};let tt=!1;const Et=(c,p,g)=>{let S;c==null?p._vnode&&(pe(p._vnode,null,null,!0),S=p._vnode.component):I(p._vnode||null,c,p,null,null,null,g),p._vnode=c,tt||(tt=!0,ao(S),fi(),tt=!1)},kt={p:I,um:pe,m:me,r:Cn,mt:ve,mc:Xe,pc:q,pbc:Oe,n:Ie,o:e};return{render:Et,hydrate:void 0,createApp:wr(Et)}}function vs({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 Ut({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Dr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ri(e,t,n=!1){const s=e.children,o=t.children;if(B(s)&&B(o))for(let i=0;i<s.length;i++){const l=s[i];let r=o[i];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=o[i]=ht(o[i]),r.el=l.el),!n&&r.patchFlag!==-2&&Ri(l,r)),r.type===ls&&(r.patchFlag===-1&&(r=o[i]=ht(r)),r.el=l.el),r.type===wt&&!r.el&&(r.el=l.el)}}function Br(e){const t=e.slice(),n=[0];let s,o,i,l,r;const u=e.length;for(s=0;s<u;s++){const b=e[s];if(b!==0){if(o=n[n.length-1],e[o]<b){t[s]=o,n.push(s);continue}for(i=0,l=n.length-1;i<l;)r=i+l>>1,e[n[r]]<b?i=r+1:l=r;b<e[n[i]]&&(i>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 Fi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fi(t)}function xo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Ni(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Ni(t.subTree):null}const Li=e=>e.__isSuspense;function $r(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):ql(e)}const X=Symbol.for("v-fgt"),ls=Symbol.for("v-txt"),wt=Symbol.for("v-cmt"),jn=Symbol.for("v-stc"),mn=[];let Le=null;function A(e=!1){mn.push(Le=e?null:[])}function jr(){mn.pop(),Le=mn[mn.length-1]||null}let xn=1;function yo(e,t=!1){xn+=e,e<0&&Le&&t&&(Le.hasOnce=!0)}function Di(e){return e.dynamicChildren=xn>0?Le||Wt:null,jr(),xn>0&&Le&&Le.push(e),e}function C(e,t,n,s,o,i){return Di(f(e,t,n,s,o,i,!0))}function Vr(e,t,n,s,o){return Di(we(e,t,n,s,o,!0))}function Bi(e){return e?e.__v_isVNode===!0:!1}function nn(e,t){return e.type===t.type&&e.key===t.key}const $i=({key:e})=>e??null,Vn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ae(e)||Se(e)||V(e)?{i:Ke,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,o=null,i=e===X?0:1,l=!1,r=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$i(t),ref:t&&Vn(t),scopeId:hi,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:Ke};return r?(Jn(u,n),i&128&&e.normalize(u)):n&&(u.shapeFlag|=ae(n)?8:16),xn>0&&!l&&Le&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&Le.push(u),u}const we=Hr;function Hr(e,t=null,n=null,s=0,o=null,i=!1){if((!e||e===hr)&&(e=wt),Bi(e)){const r=Xt(e,t,!0);return n&&Jn(r,n),xn>0&&!i&&Le&&(r.shapeFlag&6?Le[Le.indexOf(e)]=r:Le.push(r)),r.patchFlag=-2,r}if(ta(e)&&(e=e.__vccOpts),t){t=Kr(t);let{class:r,style:u}=t;r&&!ae(r)&&(t.class=Ne(r)),se(u)&&(Gs(u)&&!B(u)&&(u=Ae({},u)),t.style=Ns(u))}const l=ae(e)?1:Li(e)?128:nr(e)?64:se(e)?4:V(e)?2:0;return f(e,t,n,s,o,l,i,!0)}function Kr(e){return e?Gs(e)||Ti(e)?Ae({},e):e:null}function Xt(e,t,n=!1,s=!1){const{props:o,ref:i,patchFlag:l,children:r,transition:u}=e,b=t?zr(o||{},t):o,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:b,key:b&&$i(b),ref:t&&t.ref?n&&i?B(i)?i.concat(Vn(t)):[i,Vn(t)]:Vn(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!==X?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xt(e.ssContent),ssFallback:e.ssFallback&&Xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&s&&Ws(h,u.clone(h)),h}function He(e=" ",t=0){return we(ls,null,e,t)}function Gr(e,t){const n=we(jn,null,e);return n.staticCount=t,n}function $(e="",t=!1){return t?(A(),Vr(wt,null,e)):we(wt,null,e)}function it(e){return e==null||typeof e=="boolean"?we(wt):B(e)?we(X,null,e.slice()):Bi(e)?ht(e):we(ls,null,String(e))}function ht(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xt(e)}function Jn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Jn(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Ti(t)?t._ctx=Ke:o===3&&Ke&&(Ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(V(t)){if(s&65){Jn(e,{default:t});return}t={default:t,_ctx:Ke},n=32}else t=String(t),s&64?(n=16,t=[He(t)]):n=8;e.children=t,e.shapeFlag|=n}function zr(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const o in s)if(o==="class")t.class!==s.class&&(t.class=Ne([t.class,s.class]));else if(o==="style")t.style=Ns([t.style,s.style]);else if(Zn(o)){const i=t[o],l=s[o];l&&i!==l&&!(B(i)&&i.includes(l))?t[o]=i?[].concat(i,l):l:l==null&&i==null&&!Xn(o)&&(t[o]=l)}else o!==""&&(t[o]=s[o])}return t}function nt(e,t,n,s=null){Ze(e,t,7,[n,s])}const Wr=Si();let Jr=0;function qr(e,t,n){const s=e.type,o=(t?t.appContext:e.appContext)||Wr,i={uid:Jr++,vnode:e,type:s,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new xl(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Oi(s,o),emitsOptions:Ai(s,o),emit:null,emitted:null,propsDefaults:oe,inheritAttrs:s.inheritAttrs,ctx:oe,data:oe,props:oe,attrs:oe,slots:oe,refs:oe,setupState:oe,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=Ar.bind(null,i),e.ce&&e.ce(i),i}let Pe=null;const Yr=()=>Pe||Ke;let qn,Os;{const e=ts(),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)}};qn=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Os=t("__VUE_SSR_SETTERS__",n=>yn=n)}const An=e=>{const t=Pe;return qn(e),e.scope.on(),()=>{e.scope.off(),qn(t)}},_o=()=>{Pe&&Pe.scope.off(),qn(null)};function ji(e){return e.vnode.shapeFlag&4}let yn=!1;function Zr(e,t=!1,n=!1){t&&Os(t);const{props:s,children:o}=e.vnode,i=ji(e);Or(e,s,i,t),Rr(e,o,n||t);const l=i?Xr(e,t):void 0;return t&&Os(!1),l}function Xr(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,mr);const{setup:s}=n;if(s){ct();const o=e.setupContext=s.length>1?ea(e):null,i=An(e),l=Sn(s,e,0,[e.props,o]),r=$o(l);if(ut(),i(),(r||e.sp)&&!pn(e)&&gi(e),r){if(l.then(_o,_o),t)return l.then(u=>{wo(e,u)}).catch(u=>{ss(u,e,0)});e.asyncDep=l}else wo(e,l)}else Vi(e)}function wo(e,t,n){V(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=ai(t)),Vi(e)}function Vi(e,t,n){const s=e.type;e.render||(e.render=s.render||rt);{const o=An(e);ct();try{br(e)}finally{ut(),o()}}}const Qr={get(e,t){return _e(e,"get",""),e[t]}};function ea(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qr),slots:e.slots,emit:e.emit,expose:t}}function rs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ai(Bl(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in hn)return hn[n](e)},has(t,n){return n in t||n in hn}})):e.proxy}function ta(e){return V(e)&&"__vccOpts"in e}const Us=(e,t)=>Kl(e,t,yn),na="3.5.39";/**
* @vue/runtime-dom v3.5.39
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Ms;const So=typeof window<"u"&&window.trustedTypes;if(So)try{Ms=So.createPolicy("vue",{createHTML:e=>e})}catch{}const Hi=Ms?e=>Ms.createHTML(e):e=>e,sa="http://www.w3.org/2000/svg",oa="http://www.w3.org/1998/Math/MathML",pt=typeof document<"u"?document:null,Ao=pt&&pt.createElement("template"),ia={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"?pt.createElementNS(sa,e):t==="mathml"?pt.createElementNS(oa,e):n?pt.createElement(e,{is:n}):pt.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>pt.createTextNode(e),createComment:e=>pt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>pt.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{Ao.innerHTML=Hi(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const r=Ao.content;if(s==="svg"||s==="mathml"){const u=r.firstChild;for(;u.firstChild;)r.appendChild(u.firstChild);r.removeChild(u)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},la=Symbol("_vtc");function ra(e,t,n){const s=e[la];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Yn=Symbol("_vod"),Ki=Symbol("_vsh"),sn={name:"show",beforeMount(e,{value:t},{transition:n}){e[Yn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):on(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),on(e,!0),s.enter(e)):s.leave(e,()=>{on(e,!1)}):on(e,t))},beforeUnmount(e,{value:t}){on(e,t)}};function on(e,t){e.style.display=t?e[Yn]:"none",e[Ki]=!t}const aa=Symbol(""),ca=/(?:^|;)\s*display\s*:/;function ua(e,t,n){const s=e.style,o=ae(n);let i=!1;if(n&&!o){if(t)if(ae(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&an(s,r,"")}else for(const l in t)n[l]==null&&an(s,l,"");for(const l in n){l==="display"&&(i=!0);const r=n[l];r!=null?fa(e,l,!ae(t)&&t?t[l]:void 0,r)||an(s,l,r):an(s,l,"")}}else if(o){if(t!==n){const l=s[aa];l&&(n+=";"+l),s.cssText=n,i=ca.test(n)}}else t&&e.removeAttribute("style");Yn in e&&(e[Yn]=i?s.display:"",e[Ki]&&(s.display="none"))}const Co=/\s*!important$/;function an(e,t,n){if(B(n))n.forEach(s=>an(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=da(e,t);Co.test(n)?e.setProperty(At(s),n.replace(Co,""),"important"):e[s]=n}}const Eo=["Webkit","Moz","ms"],xs={};function da(e,t){const n=xs[t];if(n)return n;let s=Je(t);if(s!=="filter"&&s in e)return xs[t]=s;s=Ho(s);for(let o=0;o<Eo.length;o++){const i=Eo[o]+s;if(i in e)return xs[t]=i}return t}function fa(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&ae(s)&&n===s}const ko="http://www.w3.org/1999/xlink";function To(e,t,n,s,o,i=gl(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(ko,t.slice(6,t.length)):e.setAttributeNS(ko,t,n):n==null||i&&!Go(n)?e.removeAttribute(t):e.setAttribute(t,i?"":at(n)?String(n):n)}function Po(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Hi(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,u=n==null?e.type==="checkbox"?"on":"":String(n);(r!==u||!("_value"in e))&&(e.value=u),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const r=typeof e[t];r==="boolean"?n=Go(n):n==null&&r==="string"?(n="",l=!0):r==="number"&&(n=0,l=!0)}try{e[t]=n}catch{}l&&e.removeAttribute(o||t)}function gt(e,t,n,s){e.addEventListener(t,n,s)}function pa(e,t,n,s){e.removeEventListener(t,n,s)}const Oo=Symbol("_vei");function ha(e,t,n,s,o=null){const i=e[Oo]||(e[Oo]={}),l=i[t];if(s&&l)l.value=s;else{const[r,u]=ga(t);if(s){const b=i[t]=ya(s,o);gt(e,r,b,u)}else l&&(pa(e,r,l,u),i[t]=void 0)}}const ma=/(Once|Passive|Capture)$/,ba=/^on:?(?:Once|Passive|Capture)$/;function ga(e){let t,n;for(;(n=e.match(ma))&&!ba.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):At(e.slice(2)),t]}let ys=0;const va=Promise.resolve(),xa=()=>ys||(va.then(()=>ys=0),ys=Date.now());function ya(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const o=n.value;if(B(o)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const l=o.slice(),r=[s];for(let u=0;u<l.length&&!s._stopped;u++){const b=l[u];b&&Ze(b,t,5,r)}}else Ze(o,t,5,[s])};return n.value=e,n.attached=xa(),n}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,_a=(e,t,n,s,o,i)=>{const l=o==="svg";t==="class"?ra(e,s,l):t==="style"?ua(e,n,s):Zn(t)?Xn(t)||ha(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wa(e,t,s,l))?(Po(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&To(e,t,s,l,i,t!=="value")):e._isVueCE&&(Sa(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ae(s)))?Po(e,Je(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),To(e,t,s,l))};function wa(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&V(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 Uo(t)&&ae(n)?!1:t in e}function Sa(e,t){const n=e._def.props;if(!n)return!1;const s=Je(t);return Array.isArray(n)?n.some(o=>Je(o)===s):Object.keys(n).some(o=>Je(o)===s)}const St=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>Bn(t,n):t};function Aa(e){e.target.composing=!0}function Mo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ze=Symbol("_assign");function Io(e,t,n){return t&&(e=e.trim()),n&&(e=es(e)),e}const ye={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[ze]=St(o);const i=s||o.props&&o.props.type==="number";gt(e,t?"change":"input",l=>{l.target.composing||e[ze](Io(e.value,n,i))}),(n||i)&&gt(e,"change",()=>{e.value=Io(e.value,n,i)}),t||(gt(e,"compositionstart",Aa),gt(e,"compositionend",Mo),gt(e,"change",Mo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:i}},l){if(e[ze]=St(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?es(e.value):e.value,u=t??"";if(r===u)return;const b=e.getRootNode();(b instanceof Document||b instanceof ShadowRoot)&&b.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===u)||(e.value=u)}},Gi={deep:!0,created(e,t,n){e[ze]=St(n),gt(e,"change",()=>{const s=e._modelValue,o=Qt(e),i=e.checked,l=e[ze];if(B(s)){const r=Ls(s,o),u=r!==-1;if(i&&!u)l(s.concat(o));else if(!i&&u){const b=[...s];b.splice(r,1),l(b)}}else if(en(s)){const r=new Set(s);i?r.add(o):r.delete(o),l(r)}else l(zi(e,i))})},mounted:Ro,beforeUpdate(e,t,n){e[ze]=St(n),Ro(e,t,n)}};function Ro(e,{value:t,oldValue:n},s){e._modelValue=t;let o;if(B(t))o=Ls(t,s.props.value)>-1;else if(en(t))o=t.has(s.props.value);else{if(t===n)return;o=_t(t,zi(e,!0))}e.checked!==o&&(e.checked=o)}const Ca={created(e,{value:t},n){e.checked=_t(t,n.props.value),e[ze]=St(n),gt(e,"change",()=>{e[ze](Qt(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[ze]=St(s),t!==n&&(e.checked=_t(t,s.props.value))}},zt={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=en(t);gt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?es(Qt(l)):Qt(l));e[ze](e.multiple?o?new Set(i):i:i[0]),e._assigning=!0,ui(()=>{e._assigning=!1})}),e[ze]=St(s)},mounted(e,{value:t}){Fo(e,t)},beforeUpdate(e,t,n){e[ze]=St(n)},updated(e,{value:t}){e._assigning||Fo(e,t)}};function Fo(e,t){const n=e.multiple,s=B(t);if(!(n&&!s&&!en(t))){for(let o=0,i=e.options.length;o<i;o++){const l=e.options[o],r=Qt(l);if(n)if(s){const u=typeof r;u==="string"||u==="number"?l.selected=t.some(b=>String(b)===String(r)):l.selected=Ls(t,r)>-1}else l.selected=t.has(r);else if(_t(Qt(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Qt(e){return"_value"in e?e._value:e.value}function zi(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ea={created(e,t,n){Ln(e,t,n,null,"created")},mounted(e,t,n){Ln(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){Ln(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){Ln(e,t,n,s,"updated")}};function ka(e,t){switch(e){case"SELECT":return zt;case"TEXTAREA":return ye;default:switch(t){case"checkbox":return Gi;case"radio":return Ca;default:return ye}}}function Ln(e,t,n,s,o){const l=ka(e.tagName,n.props&&n.props.type)[o];l&&l(e,t,n,s)}const Ta=["ctrl","shift","alt","meta"],Pa={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)=>Ta.some(n=>e[`${n}Key`]&&!t.includes(n))},Oa=(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<t.length;l++){const r=Pa[t[l]];if(r&&r(o,t))return}return e(o,...i)}))},Ua={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},No=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(o=>{if(!("key"in o))return;const i=At(o.key);if(t.some(l=>l===i||Ua[l]===i))return e(o)}))},Ma=Ae({patchProp:_a},ia);let Lo;function Ia(){return Lo||(Lo=Nr(Ma))}const Ra=((...e)=>{const t=Ia().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Na(s);if(!o)return;const i=t._component;!V(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,Fa(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t});function Fa(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Na(e){return ae(e)?document.querySelector(e):e}const Wi="pilotvault-theme";function La(){try{return localStorage.getItem(Wi)==="dark"?"dark":"light"}catch{return"light"}}const _n=L(La());function Ji(e){_n.value=e,document.documentElement.setAttribute("data-theme",e);try{localStorage.setItem(Wi,e)}catch{}}function Do(){Ji(_n.value==="dark"?"light":"dark")}Ji(_n.value);const Da=[{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"}],Ba=[["EU","European countries"],["AS","Asian countries"],["AF","African countries"],["NA","North American countries"],["SA","South American countries"],["OC","Oceanian countries"]];function $a(){return Ba.map(([e,t])=>({label:t,options:Da.filter(n=>n.continent===e).slice().sort((n,s)=>n.name.localeCompare(s.name)).map(n=>({value:n.bbox,label:n.name}))}))}const ja={class:"overflow-hidden rounded-lg border border-subtle bg-card shadow-xs"},Va={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Ha={class:"text-base font-semibold text-primary"},Ka={class:"pv-eyebrow"},Ga={class:"w-full text-left text-sm"},za={class:"border-t border-subtle px-5 py-2.5 font-mono text-xs whitespace-nowrap"},Wa={class:"text-primary"},Ja={class:"border-t border-subtle px-5 py-2.5 text-secondary"},Kt={__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)=>(A(),C("div",ja,[f("div",Va,[f("div",Ha,O(e.title),1),f("span",Ka,O(e.auth),1)]),f("table",Ga,[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,[(A(!0),C(X,null,he(e.endpoints,o=>(A(),C("tr",{key:o.method+o.path,class:"transition-colors hover:bg-sunken"},[f("td",za,[f("span",{class:Ne(["font-semibold",t[o.method]])},O(o.method),3),f("span",Wa,O(o.path),1)]),f("td",Ja,O(o.desc),1)]))),128))])])]))}},qa={class:"mx-auto flex max-w-5xl flex-col gap-6 px-6 pt-12 pb-16"},Ya={class:"flex items-center gap-3"},Za={key:0,class:"pv-eyebrow hidden truncate sm:inline"},Xa=["title"],Qa={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"},ec={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"},tc={key:0,class:"rounded-lg border border-subtle bg-card px-5 py-10 text-center shadow-sm"},nc={key:1,class:"mx-auto w-full max-w-sm rounded-lg border border-subtle bg-card shadow-sm"},sc={class:"flex flex-col gap-1"},oc={class:"flex flex-col gap-1"},ic={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},lc=["disabled"],rc={class:"flex gap-1 self-start rounded-lg border border-subtle bg-card p-1 shadow-sm"},ac=["onClick"],cc={class:"flex flex-col gap-6"},uc={class:"rounded-lg border border-subtle bg-card shadow-sm"},dc={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},fc={class:"pv-eyebrow"},pc={class:"min-w-0"},hc={class:"text-sm font-semibold text-primary"},mc={key:0,class:"truncate font-mono text-xs text-secondary"},bc={class:"flex items-center justify-between gap-3 border-t border-subtle px-5 py-3.5"},gc={class:"font-mono text-xs text-secondary"},vc={class:"flex flex-col gap-6"},xc={class:"rounded-lg border border-subtle bg-card shadow-sm"},yc={class:"flex flex-col gap-3 px-5 py-5"},_c={class:"flex flex-col gap-3 sm:flex-row"},wc={class:"flex flex-1 flex-col gap-1"},Sc={class:"flex flex-1 flex-col gap-1"},Ac={class:"flex flex-col gap-3 sm:flex-row"},Cc={class:"flex flex-1 flex-col gap-1"},Ec=["value"],kc={class:"flex flex-1 flex-col gap-1"},Tc=["value"],Pc={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},Oc={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},Uc=["disabled"],Mc={class:"rounded-lg border border-subtle bg-card shadow-sm"},Ic={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Rc={class:"pv-eyebrow"},Fc={class:"flex flex-col"},Nc={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},Lc={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},Dc={key:2,class:"px-5 py-6 text-sm text-secondary"},Bc={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},$c={class:"min-w-0 flex-1"},jc={class:"flex flex-wrap items-center gap-2"},Vc={class:"truncate text-sm font-semibold text-primary"},Hc={key:0,class:"rounded-sm bg-brand/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-brand-text"},Kc={key:1,class:"rounded-sm bg-warning-tint px-1.5 py-0.5 font-mono text-[10px] font-medium text-warning"},Gc={class:"mt-0.5 font-mono text-xs text-secondary"},zc={class:"flex shrink-0 items-center gap-2"},Wc=["onClick"],Jc=["disabled","onClick"],qc={key:0,class:"mt-3 flex flex-col gap-3 rounded-md border border-subtle bg-sunken px-4 py-4"},Yc={class:"flex flex-col gap-3 sm:flex-row"},Zc={class:"flex flex-1 flex-col gap-1"},Xc={class:"flex flex-1 flex-col gap-1"},Qc={class:"flex flex-col gap-3 sm:flex-row"},eu={class:"flex flex-1 flex-col gap-1"},tu=["disabled"],nu=["value"],su={key:0,class:"text-[11px] text-muted"},ou={class:"flex flex-1 flex-col gap-1"},iu=["value"],lu={class:"flex items-center gap-2"},ru={class:"flex items-center gap-2"},au=["disabled","onClick"],cu={class:"flex flex-col gap-6"},uu={class:"rounded-lg border border-subtle bg-card shadow-sm"},du={class:"flex flex-col gap-3 px-5 py-5"},fu={class:"flex flex-col gap-2 sm:flex-row"},pu=["disabled"],hu={key:0,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},mu={key:1,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},bu={class:"rounded-lg border border-subtle bg-card shadow-sm"},gu={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},vu={class:"pv-eyebrow"},xu={class:"flex flex-col"},yu={key:0,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},_u={key:1,class:"px-5 py-6 text-sm text-secondary"},wu={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},Su={class:"min-w-0 flex-1"},Au={class:"truncate text-sm font-semibold text-primary"},Cu={class:"mt-0.5 font-mono text-xs text-secondary"},Eu={class:"flex shrink-0 items-center gap-2"},ku=["onClick"],Tu=["disabled","title","onClick"],Pu={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"},Ou={class:"flex flex-1 flex-col gap-1"},Uu=["onKeyup"],Mu={class:"flex items-center gap-2"},Iu=["disabled","onClick"],Ru={class:"flex flex-col gap-6"},Fu={class:"rounded-lg border border-subtle bg-card shadow-sm"},Nu={class:"flex items-center justify-between border-b border-subtle px-5 py-4"},Lu={class:"flex flex-col gap-3 px-5 py-5"},Du={class:"flex flex-col gap-1"},Bu={class:"flex flex-col gap-1"},$u={class:"flex flex-col gap-1"},ju=["placeholder"],Vu={key:0,class:"font-mono text-[11px] text-muted"},Hu={key:0},Ku={key:1},Gu={key:1,class:"rounded-sm bg-danger-tint px-3 py-2 text-xs font-medium text-danger"},zu={key:2,class:"rounded-sm bg-success-tint px-3 py-2 text-xs font-medium text-success"},Wu={class:"flex flex-wrap items-center gap-2"},Ju=["disabled"],qu=["disabled"],Yu={class:"flex flex-col gap-6"},Zu={class:"rounded-lg border border-subtle bg-card shadow-sm"},Xu={class:"flex flex-col"},Qu={key:0,class:"px-5 py-3 text-xs font-medium text-danger"},ed={key:1,class:"border-b border-subtle bg-sunken px-5 py-2.5 font-mono text-xs text-secondary"},td={key:2,class:"px-5 py-6 text-sm text-secondary"},nd={key:3,class:"flex gap-1 overflow-x-auto overflow-y-hidden border-b border-subtle px-3 pt-1"},sd=["onClick"],od={key:4,class:"px-5 py-6 text-sm text-secondary"},id={class:"flex flex-wrap items-center gap-x-3 gap-y-2"},ld={class:"min-w-0 flex-1"},rd={class:"flex flex-wrap items-center gap-2"},ad={class:"text-sm font-semibold text-primary"},cd=["title"],ud={key:0},dd={class:"mt-0.5 font-mono text-xs text-secondary"},fd={key:0,class:"mt-0.5 text-[11px] text-secondary"},pd={key:1,class:"mt-2 flex flex-col gap-1.5"},hd={class:"rounded-sm bg-sunken px-1.5 py-0.5 font-mono text-[10px] text-secondary"},md={key:0,class:"font-mono text-[10px] text-muted"},bd={key:1,class:"w-full text-[11px] text-secondary sm:w-auto"},gd={key:2,class:"mt-1 truncate font-mono text-[11px] text-muted"},vd={class:"flex shrink-0 items-center gap-2"},xd=["disabled","onClick"],yd=["onClick"],_d=["value","onChange"],wd=["label"],Sd=["value"],Ad=["value","onInput"],Cd=["disabled","onClick"],Ed=["disabled","onClick"],kd={key:0,class:"mt-3 flex flex-col gap-2 rounded-md border border-subtle bg-sunken px-4 py-4"},Td={class:"pv-eyebrow"},Pd={key:0,class:"text-danger"},Od=["onUpdate:modelValue"],Ud=["value"],Md=["value","onChange"],Id=["label"],Rd=["value"],Fd=["onUpdate:modelValue"],Nd=["onUpdate:modelValue","type","placeholder"],Ld={key:3,class:"text-[11px] text-muted"},Dd={class:"flex items-center gap-2"},Bd=["disabled","onClick"],$d={class:"border-t border-subtle px-5 py-4"},jd={class:"flex flex-col gap-2 sm:flex-row"},Vd=["disabled"],Hd={key:0,class:"mt-2 text-xs font-medium text-danger"},Dn="pv_panel_token",Kd={__name:"App",setup(e){const t=L(localStorage.getItem(Dn)||""),n=L(null),s=L(!1),o=L(!0),i=L({email:"",password:""}),l=L(""),r=L(!1),u=L("overview"),b=[{id:"overview",label:"Overview"},{id:"users",label:"Users"},{id:"organizations",label:"Organizations"},{id:"pocketbase",label:"PocketBase"},{id:"plugins",label:"Plugins"}];async function h(m){try{const a=await fetch("/api/me",{headers:{Authorization:m}});if(!a.ok)return!1;const d=await a.json();return d.role!=="superadmin"?!1:(n.value={id:d.id,email:d.email,role:d.role},!0)}catch{return!1}}async function y(m){t.value=m,localStorage.setItem(Dn,m),s.value=!0,no(),Me(),v(),$t(),Pt()}async function U(){l.value="";const m=i.value.email.trim().toLowerCase();if(!m||!i.value.password){l.value="Enter your email and password.";return}r.value=!0;try{const a=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:m,password:i.value.password})}),d=await a.json().catch(()=>({}));if(!a.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 y(d.token)}catch{l.value="Cannot reach the API server."}finally{r.value=!1}}function M(){so(),localStorage.removeItem(Dn),t.value="",n.value=null,s.value=!1}const J=L(null),I=L({url:"",adminEmail:"",adminPassword:""}),G=L(null),Y=L(""),j=L(""),Z=L(!1),N=L(!1);function K(m){const a={Authorization:t.value};return m&&(a["Content-Type"]="application/json"),a}async function Me(){try{const m=await fetch("/api/admin/pb-config",{headers:K()});if(!m.ok)return;const a=await m.json();J.value=a,I.value={url:a.url||"",adminEmail:a.adminEmail||"",adminPassword:""},G.value=a.probe||null}catch{}}async function De(){Y.value="",j.value="",N.value=!0;try{const m=await fetch("/api/admin/pb-config/test",{method:"POST",headers:K(!0),body:JSON.stringify(I.value)});G.value=await m.json()}catch{j.value="Could not run the test."}finally{N.value=!1}}async function Xe(){var m;if(Y.value="",j.value="",!I.value.url.trim()){j.value="A PocketBase URL is required.";return}Z.value=!0;try{const a=await fetch("/api/admin/pb-config",{method:"PUT",headers:K(!0),body:JSON.stringify(I.value)}),d=await a.json().catch(()=>({}));if(!a.ok){j.value=d.error||"Could not save the connection.";return}J.value=d.config,G.value=((m=d.config)==null?void 0:m.probe)||null,I.value={url:d.config.url,adminEmail:d.config.adminEmail,adminPassword:""},Y.value=d.warning||"Connection saved."}catch{j.value="Could not reach the API server."}finally{Z.value=!1}}const Be=L([]),Oe=L(""),de=L(""),Qe=L(""),Ce=L({}),ve=L(""),Ft=[{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"}]},...$a()],fe=Ft.flatMap(m=>m.options);function ne(m){const a=String(m||"").split(",").map(x=>x.trim());if(a.length!==4)return"";const d=a.map(Number);return d.some(x=>Number.isNaN(x))?"":d.join(",")}const q=L({});function et(m){if(q.value[m])return"__custom__";const a=ne(Ce.value[m]),d=a&&fe.find(x=>ne(x.value)===a);return d?d.value:"__custom__"}function Nt(m,a){if(a==="__custom__"){q.value={...q.value,[m]:!0};return}q.value={...q.value,[m]:!1},Ce.value[m]=a}const me=L({}),pe=L({});function Cn(m){return!!(m.configFields&&m.configFields.some(a=>a.type==="bbox"))}function En(m){if(pe.value[m])return"__custom__";const a=me.value[m];if(!a)return"__default__";const d=ne(a),x=d&&fe.find(te=>ne(te.value)===d);return x?x.value:"__custom__"}function as(m,a){if(a==="__default__"){pe.value={...pe.value,[m]:!1},me.value={...me.value,[m]:""};return}if(a==="__custom__"){pe.value={...pe.value,[m]:!0};return}pe.value={...pe.value,[m]:!1},me.value={...me.value,[m]:a}}function Ct(m,a){me.value={...me.value,[m]:a}}const Ie=L({name:"",baseURL:"",provider:""}),tt=L(""),Et=L(!1),kt=[{id:"apis-external",label:"APIs — External"},{id:"drives-external",label:"Drives — External"},{id:"drives-local",label:"Drives — Local"}],kn=L("apis-external");function c(m){return m.category||"apis-external"}function p(m){return Be.value.filter(a=>c(a)===m)}const g=Us(()=>p(kn.value)),S={builtin:"bg-success-tint text-success",external:"bg-warning-tint text-warning"},w={ok:"bg-success-tint text-success",degraded:"bg-warning-tint text-warning",down:"bg-danger-tint text-danger"};async function v(){Oe.value="";try{const m=await fetch("/api/admin/plugins",{headers:K()});if(!m.ok){Oe.value="Could not load plugins.";return}const a=await m.json();Be.value=a.plugins||[];for(const d of Be.value)d.enabled&&!d.health&&T(d.name)}catch{Oe.value="Could not reach the API server."}}async function T(m){try{const a=await fetch(`/api/admin/plugins/${encodeURIComponent(m)}/health`,{method:"POST",headers:K()}),d=await a.json().catch(()=>({}));if(a.ok&&d.health){const x=k(m);x&&(x.health=d.health)}}catch{}}function k(m){return Be.value.find(a=>a.name===m)}async function E(m){ve.value=m.name,de.value="";try{const a=await fetch(`/api/admin/plugins/${encodeURIComponent(m.name)}`,{method:"PUT",headers:K(!0),body:JSON.stringify({enabled:!m.enabled})}),d=await a.json().catch(()=>({}));a.ok?d.warning&&(de.value=`${m.name}: ${d.warning}`):de.value=d.error||"Could not update the plugin.",await v()}finally{ve.value=""}}function _(m){Qe.value=Qe.value===m.name?"":m.name;const a={...m.config||{}};for(const d of m.configFields||[])a[d.key]===void 0&&d.default&&(a[d.key]=d.default);Ce.value=a,q.value={}}async function F(m){ve.value=m.name,de.value="";try{const a=await fetch(`/api/admin/plugins/${encodeURIComponent(m.name)}`,{method:"PUT",headers:K(!0),body:JSON.stringify({config:Ce.value})}),d=await a.json().catch(()=>({}));a.ok?(de.value=d.warning?`${m.name}: ${d.warning}`:"Configuration saved.",Qe.value=""):de.value=d.error||"Could not save the configuration.",await v()}finally{ve.value=""}}async function P(m){ve.value=m.name,de.value="";try{const a=(me.value[m.name]||"").trim(),d=a?`?bbox=${encodeURIComponent(a)}`:"",x=await fetch(`/api/admin/plugins/${encodeURIComponent(m.name)}/health${d}`,{method:"POST",headers:K()}),te=await x.json().catch(()=>({}));if(x.ok&&te.health){const Vt=k(m.name);Vt&&(Vt.health=te.health)}else de.value=te.error||"Health check failed."}finally{ve.value=""}}async function R(m){if(m.kind==="external"){ve.value=m.name;try{const a=await fetch(`/api/admin/plugins/${encodeURIComponent(m.name)}`,{method:"DELETE",headers:K()});if(!a.ok){const d=await a.json().catch(()=>({}));de.value=d.error||"Could not remove the plugin."}await v()}finally{ve.value=""}}}async function D(){if(tt.value="",!Ie.value.name.trim()||!Ie.value.baseURL.trim()){tt.value="Name and base URL are required.";return}Et.value=!0;try{const m=await fetch("/api/admin/plugins",{method:"POST",headers:K(!0),body:JSON.stringify(Ie.value)}),a=await m.json().catch(()=>({}));if(!m.ok){tt.value=a.error||"Could not register the plugin.";return}Ie.value={name:"",baseURL:"",provider:""},de.value="External plugin registered.",await v()}catch{tt.value="Could not reach the API server."}finally{Et.value=!1}}const H=L([]),W=L([]),z=L(""),re=[{value:"user",label:"User"},{value:"admin",label:"Admin"},{value:"superadmin",label:"Superadmin"}],ue={user:"User",admin:"Admin",superadmin:"Superadmin"},$e={user:"bg-sunken text-secondary",admin:"bg-warning-tint text-warning",superadmin:"bg-success-tint text-success"},xe=Us(()=>{const m={};for(const a of H.value)a.organization&&(m[a.organization]=(m[a.organization]||0)+1);return m});function Re(m,a){if(!m)return a;if(m.error)return m.error;if(m.data&&typeof m.data=="object"){const d=[];for(const x in m.data)m.data[x]&&m.data[x].message&&d.push(`${x}: ${m.data[x].message}`);if(d.length)return d.join("; ")}return m.message||a}const be=L({email:"",password:"",role:"user",organization:""}),ce=L(""),Ee=L(""),Tt=L(!1),We=L(""),je=L({}),Lt=L(""),Ve=L("");async function Pt(){z.value="";try{const m=await fetch("/api/users",{headers:K()}),a=await m.json().catch(()=>({}));if(!m.ok){z.value=Re(a,"Could not load users.");return}H.value=a.users||[]}catch{z.value="Could not reach the API server."}}async function qi(){ce.value="",Ee.value="";const m=be.value.email.trim().toLowerCase();if(!m||!m.includes("@")){ce.value="A valid email is required.";return}if(be.value.password.length<8){ce.value="Password must be at least 8 characters.";return}Tt.value=!0;try{const a=await fetch("/api/users",{method:"POST",headers:K(!0),body:JSON.stringify({email:m,password:be.value.password,role:be.value.role,organization:be.value.organization})}),d=await a.json().catch(()=>({}));if(!a.ok){ce.value=Re(d,"Could not create the user.");return}be.value={email:"",password:"",role:"user",organization:""},Ee.value=`Created ${d.user?d.user.email:"user"}.`,await Pt()}catch{ce.value="Could not reach the API server."}finally{Tt.value=!1}}function Yi(m){Ve.value="",We.value=We.value===m.id?"":m.id,je.value={email:m.email,role:m.role,organization:m.organization||"",verified:!!m.verified,password:""}}async function Zi(m){Ve.value="",Lt.value=m.id;try{const a={},d=je.value;if(d.email.trim().toLowerCase()!==m.email&&(a.email=d.email.trim().toLowerCase()),d.role!==m.role&&(a.role=d.role),(d.organization||"")!==(m.organization||"")&&(a.organization=d.organization||""),d.verified!==!!m.verified&&(a.verified=d.verified),d.password&&(a.password=d.password),Object.keys(a).length===0){Ve.value="No changes to save.";return}const x=await fetch(`/api/users/${encodeURIComponent(m.id)}`,{method:"PATCH",headers:K(!0),body:JSON.stringify(a)}),te=await x.json().catch(()=>({}));if(!x.ok){Ve.value=Re(te,"Could not update the user.");return}Ve.value=`Updated ${m.email}.`,We.value="",await Pt()}catch{Ve.value="Could not reach the API server."}finally{Lt.value=""}}async function Xi(m){if(m.id!==(n.value&&n.value.id)&&confirm(`Delete user ${m.email}? This cannot be undone.`)){Ve.value="",Lt.value=m.id;try{const a=await fetch(`/api/users/${encodeURIComponent(m.id)}`,{method:"DELETE",headers:K()}),d=await a.json().catch(()=>({}));if(!a.ok){Ve.value=Re(d,"Could not delete the user.");return}Ve.value=`Deleted ${m.email}.`,We.value===m.id&&(We.value=""),await Pt()}catch{Ve.value="Could not reach the API server."}finally{Lt.value=""}}}const Tn=L(""),Dt=L(""),Pn=L(""),On=L(!1),dt=L(""),Un=L(""),Bt=L(""),Fe=L("");async function $t(){try{const m=await fetch("/api/orgs",{headers:K()});if(!m.ok)return;const a=await m.json().catch(()=>({}));W.value=a.organizations||[]}catch{}}async function Zs(){Dt.value="",Pn.value="";const m=Tn.value.trim();if(!m){Dt.value="An organization name is required.";return}On.value=!0;try{const a=await fetch("/api/orgs",{method:"POST",headers:K(!0),body:JSON.stringify({name:m})}),d=await a.json().catch(()=>({}));if(!a.ok){Dt.value=Re(d,"Could not create the organization.");return}Tn.value="",Pn.value=`Created ${d.organization?d.organization.name:"organization"}.`,await $t()}catch{Dt.value="Could not reach the API server."}finally{On.value=!1}}function Qi(m){Fe.value="",dt.value=dt.value===m.id?"":m.id,Un.value=m.name}async function Xs(m){Fe.value="";const a=Un.value.trim();if(!a){Fe.value="An organization name is required.";return}if(a===m.name){dt.value="";return}Bt.value=m.id;try{const d=await fetch(`/api/orgs/${encodeURIComponent(m.id)}`,{method:"PATCH",headers:K(!0),body:JSON.stringify({name:a})}),x=await d.json().catch(()=>({}));if(!d.ok){Fe.value=Re(x,"Could not rename the organization.");return}Fe.value=`Renamed to ${a}.`,dt.value="",await $t(),await Pt()}catch{Fe.value="Could not reach the API server."}finally{Bt.value=""}}async function el(m){const a=xe.value[m.id]||0;if(a>0){Fe.value=`${m.name} still has ${a} member${a===1?"":"s"}; reassign or remove them first.`;return}if(confirm(`Delete organization ${m.name}?`)){Fe.value="",Bt.value=m.id;try{const d=await fetch(`/api/orgs/${encodeURIComponent(m.id)}`,{method:"DELETE",headers:K()}),x=await d.json().catch(()=>({}));if(!d.ok){Fe.value=Re(x,"Could not delete the organization.");return}Fe.value=`Deleted ${m.name}.`,dt.value===m.id&&(dt.value=""),await $t()}catch{Fe.value="Could not reach the API server."}finally{Bt.value=""}}}const cs=L(null),Mn=L(null),jt=L({apiServer:{status:"checking",detail:""},pocketBase:{status:"checking",detail:""},webApp:{status:"checking",detail:""}});let In=null;const tl=[{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 eo(m){const a=[];return m.httpStatus&&a.push("HTTP "+m.httpStatus),m.url&&a.push(m.url),typeof m.latencyMs=="number"&&a.push(m.latencyMs+"ms"),a.join(" · ")}async function to(){var m,a;try{const d=await fetch("/api/status");if(!d.ok)throw new Error("status "+d.status);const x=await d.json(),te=x.apiServer||{};Mn.value=te.devices??0,jt.value={apiServer:{status:"ok",detail:""},pocketBase:{status:((m=x.pocketBase)==null?void 0:m.status)==="ok"?"ok":"down",detail:eo(x.pocketBase||{})},webApp:{status:((a=x.webApp)==null?void 0:a.status)==="ok"?"ok":"down",detail:eo(x.webApp||{})}}}catch{Mn.value=null,jt.value={apiServer:{status:"unreachable",detail:""},pocketBase:{status:"unreachable",detail:""},webApp:{status:"unreachable",detail:""}}}cs.value=new Date}function no(){to(),clearInterval(In),In=setInterval(to,1e4)}function so(){clearInterval(In),In=null}yi(async()=>{t.value&&await h(t.value)?(s.value=!0,no(),Me(),v(),$t(),Pt()):t.value&&(localStorage.removeItem(Dn),t.value=""),o.value=!1}),Js(()=>so());const nl=[{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)"}],sl=[{method:"GET",path:"/api/drones",desc:"List the fleet in scope"},{method:"POST",path:"/api/drones",desc:"Register a drone by hand"},{method:"POST",path:"/api/drones/auto",desc:"Upsert the drone a device just connected, keyed on its flight controller's serial"},{method:"PATCH",path:"/api/drones/{id}",desc:"Edit a drone (whole-record write)"},{method:"DELETE",path:"/api/drones/{id}",desc:"Delete a drone"},{method:"GET",path:"/api/flights",desc:"List flight records in scope"},{method:"POST",path:"/api/flights",desc:"Log a flight"},{method:"PATCH",path:"/api/flights/{id}",desc:"Edit a flight record"},{method:"DELETE",path:"/api/flights/{id}",desc:"Delete a flight record"},{method:"GET",path:"/api/logbook/export",desc:"Export the logbook as CSV, compliance flags included"}],ol=[{method:"GET",path:"/api/documents",desc:"List documents (?expiring filters to those near expiry)"},{method:"POST",path:"/api/documents",desc:"Upload a document (multipart)"},{method:"PATCH",path:"/api/documents/{id}",desc:"Edit a document, or replace its file"},{method:"DELETE",path:"/api/documents/{id}",desc:"Delete a document"},{method:"GET",path:"/api/documents/{id}/file",desc:"Stream a document's file down"}],il=[{method:"GET",path:"/api/integrations/{plugin}",desc:"Resolved settings + per-field lock state (opensky · filetransfer · localstorage · webdav · openweather)"},{method:"PUT",path:"/api/integrations/{plugin}",desc:"Save settings at a scope ({scope: user | org}; org needs admin)"},{method:"POST",path:"/api/integrations/{plugin}/health",desc:"Probe the plugin with the caller's resolved config"},{method:"GET",path:"/api/integrations/opensky/states",desc:"Live aircraft state vectors for a bbox (map overlay)"},{method:"GET",path:"/api/integrations/openweather/current",desc:"Current weather + 5-day forecast for a point"}],ll=[{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:"GET",path:"/api/admin/plugins/{name}",desc:"Read one plugin's state + config (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)"}],rl=[{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 (public)"},{method:"GET",path:"/api/health",desc:"Readiness probe, same answer under the /api prefix (public)"},{method:"GET",path:"/api/status",desc:"Server status + PocketBase reachability (public)"}];return(m,a)=>(A(),C("div",qa,[f("div",Ya,[a[25]||(a[25]=Gr('<svg width="32" height="32" viewBox="0 0 48 48" fill="none" aria-hidden="true"><g stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="8,30 19,17 30,30" stroke="var(--brand)"></polyline><polyline points="18,33 29,20 40,33" stroke="currentColor"></polyline></g></svg><div class="leading-tight text-primary"><div class="font-display text-lg font-bold tracking-tight">PilotVault</div><span class="pv-eyebrow">API server</span></div><div class="flex-1"></div>',3)),s.value&&n.value?(A(),C("span",Za,O(n.value.email),1)):$("",!0),s.value?(A(),C("button",{key:1,class:"pv-btn-sec pv-btn-sm",onClick:M},"Sign out")):$("",!0),f("button",{class:"pv-btn-sec pv-btn-sm",title:ln(_n)==="dark"?"Switch to light theme":"Switch to dark theme",onClick:a[0]||(a[0]=(...d)=>ln(Do)&&ln(Do)(...d))},[ln(_n)==="dark"?(A(),C("svg",Qa,[...a[22]||(a[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)])])):(A(),C("svg",ec,[...a[23]||(a[23]=[f("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)])])),a[24]||(a[24]=He(" Theme ",-1))],8,Xa)]),o.value?(A(),C("div",tc,[...a[26]||(a[26]=[f("span",{class:"pv-eyebrow"},"Checking session…",-1)])])):s.value?(A(),C(X,{key:2},[f("div",rc,[(A(),C(X,null,he(b,d=>f("button",{key:d.id,class:Ne(["rounded-md px-3.5 py-1.5 text-sm font-semibold transition",u.value===d.id?"bg-brand text-on-brand":"text-secondary hover:text-primary"]),onClick:x=>u.value=d.id},O(d.label),11,ac)),64))]),ie(f("div",cc,[f("div",uc,[f("div",dc,[a[30]||(a[30]=f("div",{class:"text-base font-semibold text-primary"},"Status",-1)),f("span",fc,O(cs.value?"checked "+cs.value.toLocaleTimeString():"—"),1)]),f("div",null,[(A(),C(X,null,he(tl,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",pc,[f("div",hc,O(d.label),1),jt.value[d.key].detail?(A(),C("div",mc,O(jt.value[d.key].detail),1)):$("",!0)]),f("span",{class:Ne(["inline-flex shrink-0 items-center gap-1.5 rounded-sm px-2.5 py-1 font-mono text-xs font-medium",Qs[jt.value[d.key].status].cls])},[a[31]||(a[31]=f("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),He(" "+O(Qs[jt.value[d.key].status].label),1)],2)])),64)),f("div",bc,[a[32]||(a[32]=f("div",{class:"text-sm font-semibold text-primary"},"Devices",-1)),f("span",gc,O(Mn.value===null?"—":Mn.value+" online"),1)])])]),we(Kt,{title:"Client API",auth:"PocketBase session",endpoints:nl}),we(Kt,{title:"Logbook & fleet API",auth:"PocketBase session · org-scoped",endpoints:sl}),we(Kt,{title:"Documents API",auth:"PocketBase session · org-scoped",endpoints:ol}),we(Kt,{title:"Integrations API",auth:"PocketBase session",endpoints:il}),we(Kt,{title:"Management API",auth:"Admin · superadmin",endpoints:ll}),we(Kt,{title:"Device API",auth:"Device uplink · public",endpoints:rl})],512),[[sn,u.value==="overview"]]),ie(f("div",vc,[f("div",xc,[a[38]||(a[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",yc,[f("div",_c,[f("label",wc,[a[33]||(a[33]=f("span",{class:"pv-eyebrow"},"Email",-1)),ie(f("input",{"onUpdate:modelValue":a[3]||(a[3]=d=>be.value.email=d),type:"email",class:"pv-input",placeholder:"pilot@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[ye,be.value.email]])]),f("label",Sc,[a[34]||(a[34]=f("span",{class:"pv-eyebrow"},"Password",-1)),ie(f("input",{"onUpdate:modelValue":a[4]||(a[4]=d=>be.value.password=d),type:"password",class:"pv-input",placeholder:"min. 8 characters",autocomplete:"new-password"},null,512),[[ye,be.value.password]])])]),f("div",Ac,[f("label",Cc,[a[35]||(a[35]=f("span",{class:"pv-eyebrow"},"Role",-1)),ie(f("select",{"onUpdate:modelValue":a[5]||(a[5]=d=>be.value.role=d),class:"pv-input"},[(A(),C(X,null,he(re,d=>f("option",{key:d.value,value:d.value},O(d.label),9,Ec)),64))],512),[[zt,be.value.role]])]),f("label",kc,[a[37]||(a[37]=f("span",{class:"pv-eyebrow"},"Organization",-1)),ie(f("select",{"onUpdate:modelValue":a[6]||(a[6]=d=>be.value.organization=d),class:"pv-input"},[a[36]||(a[36]=f("option",{value:""},"— none —",-1)),(A(!0),C(X,null,he(W.value,d=>(A(),C("option",{key:d.id,value:d.id},O(d.name),9,Tc))),128))],512),[[zt,be.value.organization]])])]),ce.value?(A(),C("p",Pc,O(ce.value),1)):Ee.value?(A(),C("p",Oc,O(Ee.value),1)):$("",!0),f("div",null,[f("button",{class:"pv-btn",disabled:Tt.value,onClick:qi},O(Tt.value?"Creating…":"Create user"),9,Uc)])])]),f("div",Mc,[f("div",Ic,[f("div",null,[a[39]||(a[39]=f("div",{class:"text-base font-semibold text-primary"},"Users",-1)),f("span",Rc,O(H.value.length)+" total",1)]),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:Pt},"Refresh")]),f("div",Fc,[z.value?(A(),C("p",Nc,O(z.value),1)):$("",!0),Ve.value?(A(),C("p",Lc,O(Ve.value),1)):$("",!0),!H.value.length&&!z.value?(A(),C("p",Dc,"No users yet.")):$("",!0),(A(!0),C(X,null,he(H.value,d=>(A(),C("div",{key:d.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",Bc,[f("div",$c,[f("div",jc,[f("span",Vc,O(d.email),1),f("span",{class:Ne(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",$e[d.role]])},O(ue[d.role]||d.role),3),d.id===(n.value&&n.value.id)?(A(),C("span",Hc,"you")):$("",!0),d.verified?$("",!0):(A(),C("span",Kc,"unverified"))]),f("div",Gc,O(d.organizationName||(d.organization?d.organization:"no organization")),1)]),f("div",zc,[f("button",{class:"pv-btn-sec pv-btn-sm",onClick:x=>Yi(d)},O(We.value===d.id?"Close":"Edit"),9,Wc),d.id!==(n.value&&n.value.id)?(A(),C("button",{key:0,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:Lt.value===d.id,onClick:x=>Xi(d)}," Delete ",8,Jc)):$("",!0)])]),We.value===d.id?(A(),C("div",qc,[f("div",Yc,[f("label",Zc,[a[40]||(a[40]=f("span",{class:"pv-eyebrow"},"Email",-1)),ie(f("input",{"onUpdate:modelValue":a[7]||(a[7]=x=>je.value.email=x),type:"email",class:"pv-input",autocomplete:"off",spellcheck:"false"},null,512),[[ye,je.value.email]])]),f("label",Xc,[a[41]||(a[41]=f("span",{class:"pv-eyebrow"},"New password",-1)),ie(f("input",{"onUpdate:modelValue":a[8]||(a[8]=x=>je.value.password=x),type:"password",class:"pv-input",placeholder:"leave blank to keep current",autocomplete:"new-password"},null,512),[[ye,je.value.password]])])]),f("div",Qc,[f("label",eu,[a[42]||(a[42]=f("span",{class:"pv-eyebrow"},"Role",-1)),ie(f("select",{"onUpdate:modelValue":a[9]||(a[9]=x=>je.value.role=x),class:"pv-input",disabled:d.id===(n.value&&n.value.id)},[(A(),C(X,null,he(re,x=>f("option",{key:x.value,value:x.value},O(x.label),9,nu)),64))],8,tu),[[zt,je.value.role]]),d.id===(n.value&&n.value.id)?(A(),C("span",su,"You cannot change your own role.")):$("",!0)]),f("label",ou,[a[44]||(a[44]=f("span",{class:"pv-eyebrow"},"Organization",-1)),ie(f("select",{"onUpdate:modelValue":a[10]||(a[10]=x=>je.value.organization=x),class:"pv-input"},[a[43]||(a[43]=f("option",{value:""},"— none —",-1)),(A(!0),C(X,null,he(W.value,x=>(A(),C("option",{key:x.id,value:x.id},O(x.name),9,iu))),128))],512),[[zt,je.value.organization]])])]),f("label",lu,[ie(f("input",{"onUpdate:modelValue":a[11]||(a[11]=x=>je.value.verified=x),type:"checkbox",class:"h-4 w-4"},null,512),[[Gi,je.value.verified]]),a[45]||(a[45]=f("span",{class:"text-sm text-primary"},"Verified",-1))]),f("div",ru,[f("button",{class:"pv-btn pv-btn-sm",disabled:Lt.value===d.id,onClick:x=>Zi(d)},"Save changes",8,au),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:a[12]||(a[12]=x=>We.value="")},"Cancel")])])):$("",!0)]))),128))])])],512),[[sn,u.value==="users"]]),ie(f("div",cu,[f("div",uu,[a[46]||(a[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",du,[f("div",fu,[ie(f("input",{"onUpdate:modelValue":a[13]||(a[13]=d=>Tn.value=d),class:"pv-input flex-1",placeholder:"Acme Aerial Ltd.",autocomplete:"off",spellcheck:"false",onKeyup:No(Zs,["enter"])},null,544),[[ye,Tn.value]]),f("button",{class:"pv-btn",disabled:On.value,onClick:Zs},O(On.value?"Creating…":"Create"),9,pu)]),Dt.value?(A(),C("p",hu,O(Dt.value),1)):Pn.value?(A(),C("p",mu,O(Pn.value),1)):$("",!0)])]),f("div",bu,[f("div",gu,[f("div",null,[a[47]||(a[47]=f("div",{class:"text-base font-semibold text-primary"},"Organizations",-1)),f("span",vu,O(W.value.length)+" total",1)]),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:$t},"Refresh")]),f("div",xu,[Fe.value?(A(),C("p",yu,O(Fe.value),1)):$("",!0),W.value.length?$("",!0):(A(),C("p",_u,"No organizations yet.")),(A(!0),C(X,null,he(W.value,d=>(A(),C("div",{key:d.id,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",wu,[f("div",Su,[f("div",Au,O(d.name),1),f("div",Cu,O(xe.value[d.id]||0)+" member"+O((xe.value[d.id]||0)===1?"":"s"),1)]),f("div",Eu,[f("button",{class:"pv-btn-sec pv-btn-sm",onClick:x=>Qi(d)},O(dt.value===d.id?"Close":"Rename"),9,ku),f("button",{class:"pv-btn-sec pv-btn-sm !text-danger",disabled:Bt.value===d.id||(xe.value[d.id]||0)>0,title:(xe.value[d.id]||0)>0?"Reassign or remove members first":"Delete organization",onClick:x=>el(d)}," Delete ",8,Tu)])]),dt.value===d.id?(A(),C("div",Pu,[f("label",Ou,[a[48]||(a[48]=f("span",{class:"pv-eyebrow"},"Name",-1)),ie(f("input",{"onUpdate:modelValue":a[14]||(a[14]=x=>Un.value=x),class:"pv-input",autocomplete:"off",spellcheck:"false",onKeyup:No(x=>Xs(d),["enter"])},null,40,Uu),[[ye,Un.value]])]),f("div",Mu,[f("button",{class:"pv-btn pv-btn-sm",disabled:Bt.value===d.id,onClick:x=>Xs(d)},"Save",8,Iu),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:a[15]||(a[15]=x=>dt.value="")},"Cancel")])])):$("",!0)]))),128))])])],512),[[sn,u.value==="organizations"]]),ie(f("div",Ru,[f("div",Fu,[f("div",Nu,[a[50]||(a[50]=f("div",null,[f("div",{class:"text-base font-semibold text-primary"},"PocketBase connection"),f("span",{class:"pv-eyebrow"},"Settings")],-1)),G.value?(A(),C("span",{key:0,class:Ne(["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"])},[a[49]||(a[49]=f("span",{class:"h-1.5 w-1.5 rounded-full bg-current"},null,-1)),He(" "+O(G.value.reachable?G.value.superuser?"connected":"reachable":"unreachable"),1)],2)):$("",!0)]),f("div",Lu,[f("label",Du,[a[51]||(a[51]=f("span",{class:"pv-eyebrow"},"PocketBase URL",-1)),ie(f("input",{"onUpdate:modelValue":a[16]||(a[16]=d=>I.value.url=d),class:"pv-input",placeholder:"http://10.2.1.10:8026",spellcheck:"false"},null,512),[[ye,I.value.url]])]),f("label",Bu,[a[52]||(a[52]=f("span",{class:"pv-eyebrow"},"Service account email",-1)),ie(f("input",{"onUpdate:modelValue":a[17]||(a[17]=d=>I.value.adminEmail=d),class:"pv-input",placeholder:"admin@pilotvault.local",autocomplete:"off",spellcheck:"false"},null,512),[[ye,I.value.adminEmail]])]),f("label",$u,[a[53]||(a[53]=f("span",{class:"pv-eyebrow"},"Service account password",-1)),ie(f("input",{"onUpdate:modelValue":a[18]||(a[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,ju),[[ye,I.value.adminPassword]])]),G.value?(A(),C("div",Vu,[He(" health: "+O(G.value.reachable?"ok":"down"),1),G.value.latencyMs?(A(),C("span",Hu," · "+O(G.value.latencyMs)+"ms",1)):$("",!0),He(" · superuser auth: "+O(G.value.superuser?"ok":"—"),1),G.value.detail?(A(),C("span",Ku," · "+O(G.value.detail),1)):$("",!0)])):$("",!0),j.value?(A(),C("p",Gu,O(j.value),1)):Y.value?(A(),C("p",zu,O(Y.value),1)):$("",!0),f("div",Wu,[f("button",{class:"pv-btn",disabled:Z.value,onClick:Xe},O(Z.value?"Saving…":"Save connection"),9,Ju),f("button",{class:"pv-btn-sec",disabled:N.value,onClick:De},O(N.value?"Testing…":"Test connection"),9,qu)]),a[54]||(a[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),[[sn,u.value==="pocketbase"]]),ie(f("div",Yu,[f("div",Zu,[f("div",{class:"flex items-center justify-between border-b border-subtle px-5 py-4"},[a[55]||(a[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:v},"Refresh")]),f("div",Xu,[Oe.value?(A(),C("p",Qu,O(Oe.value),1)):$("",!0),de.value?(A(),C("p",ed,O(de.value),1)):$("",!0),!Be.value.length&&!Oe.value?(A(),C("p",td,"No plugins registered yet.")):$("",!0),Be.value.length?(A(),C("div",nd,[(A(),C(X,null,he(kt,d=>f("button",{key:d.id,class:Ne(["-mb-px whitespace-nowrap border-b-2 px-3 py-2 text-sm font-semibold transition",kn.value===d.id?"border-brand text-primary":"border-transparent text-secondary hover:text-primary"]),onClick:x=>kn.value=d.id},O(d.label),11,sd)),64))])):$("",!0),Be.value.length&&!g.value.length?(A(),C("p",od,"No plugins in this category.")):$("",!0),(A(!0),C(X,null,he(g.value,d=>(A(),C("div",{key:d.name,class:"border-t border-subtle px-5 py-4 first:border-t-0"},[f("div",id,[f("div",ld,[f("div",rd,[f("span",ad,O(d.name),1),f("span",{class:Ne(["rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider",S[d.kind]])},O(d.kind),3),d.health?(A(),C("span",{key:0,class:Ne(["inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-medium",w[d.health.status]]),title:d.health.detail||""},[a[56]||(a[56]=f("span",{class:"h-1 w-1 rounded-full bg-current"},null,-1)),He(O(d.health.status),1),d.health.latencyMs?(A(),C("span",ud," · "+O(d.health.latencyMs)+"ms",1)):$("",!0)],10,cd)):$("",!0)]),f("div",dd,O(d.provider)+" · v"+O(d.version)+" · "+O(d.authType),1),d.health&&d.health.detail?(A(),C("div",fd,O(d.health.detail),1)):$("",!0),d.capabilities&&d.capabilities.length?(A(),C("div",pd,[a[57]||(a[57]=f("div",{class:"pv-eyebrow"},"Capabilities",-1)),(A(!0),C(X,null,he(d.capabilities,x=>(A(),C("div",{key:x.id,class:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5"},[f("span",hd,O(x.id),1),x.method||x.endpoint?(A(),C("span",md,O(x.method)+" "+O(x.endpoint),1)):$("",!0),x.description?(A(),C("span",bd,O(x.description),1)):$("",!0)]))),128))])):$("",!0),d.baseURL?(A(),C("div",gd,O(d.baseURL),1)):$("",!0)]),f("div",vd,[f("button",{class:Ne(["pv-btn-sec pv-btn-sm",d.enabled?"!border-transparent !bg-success-tint !text-success":""]),disabled:ve.value===d.name,onClick:x=>E(d)},[f("span",{class:Ne(["h-1.5 w-1.5 rounded-full",d.enabled?"bg-success":"bg-muted"])},null,2),He(" "+O(d.enabled?"Enabled":"Disabled"),1)],10,xd),d.configFields&&d.configFields.length?(A(),C("button",{key:0,class:"pv-btn-sec pv-btn-sm",onClick:x=>_(d)},"Configure",8,yd)):$("",!0),Cn(d)?(A(),C(X,{key:1},[f("select",{value:En(d.name),class:"pv-input pv-input-sm max-w-[11rem]",title:"Bounding box used for this Check — smaller areas cost fewer OpenSky credits",onChange:x=>as(d.name,x.target.value)},[a[58]||(a[58]=f("option",{value:"__default__"},"Probe: saved default",-1)),(A(),C(X,null,he(Ft,x=>f("optgroup",{key:x.label,label:x.label},[(A(!0),C(X,null,he(x.options,te=>(A(),C("option",{key:te.value,value:te.value},O(te.label),9,Sd))),128))],8,wd)),64)),a[59]||(a[59]=f("option",{value:"__custom__"},"Custom…",-1))],40,_d),En(d.name)==="__custom__"?(A(),C("input",{key:0,value:me.value[d.name]||"",class:"pv-input pv-input-sm w-40 font-mono",placeholder:"lamin,lomin,lamax,lomax",onInput:x=>Ct(d.name,x.target.value)},null,40,Ad)):$("",!0)],64)):$("",!0),f("button",{class:"pv-btn-sec pv-btn-sm",disabled:ve.value===d.name,onClick:x=>P(d)},"Check",8,Cd),d.kind==="external"?(A(),C("button",{key:2,class:"pv-btn-sec pv-btn-sm !text-danger",disabled:ve.value===d.name,onClick:x=>R(d)},"Remove",8,Ed)):$("",!0)])]),Qe.value===d.name?(A(),C("div",kd,[(A(!0),C(X,null,he(d.configFields,x=>(A(),C("label",{key:x.key,class:"flex flex-col gap-1"},[f("span",Td,[He(O(x.label),1),x.required?(A(),C("span",Pd," *")):$("",!0)]),x.type==="select"?ie((A(),C("select",{key:0,"onUpdate:modelValue":te=>Ce.value[x.key]=te,class:"pv-input"},[(A(!0),C(X,null,he(x.options,te=>(A(),C("option",{key:te.value,value:te.value},O(te.label),9,Ud))),128))],8,Od)),[[zt,Ce.value[x.key]]]):x.type==="bbox"?(A(),C(X,{key:1},[f("select",{value:et(x.key),class:"pv-input",onChange:te=>Nt(x.key,te.target.value)},[(A(),C(X,null,he(Ft,te=>f("optgroup",{key:te.label,label:te.label},[(A(!0),C(X,null,he(te.options,Vt=>(A(),C("option",{key:Vt.value,value:Vt.value},O(Vt.label),9,Rd))),128))],8,Id)),64)),a[60]||(a[60]=f("option",{value:"__custom__"},"Custom…",-1))],40,Md),et(x.key)==="__custom__"?ie((A(),C("input",{key:0,"onUpdate:modelValue":te=>Ce.value[x.key]=te,type:"text",class:"pv-input font-mono",autocomplete:"off",placeholder:"50.5,3.2,53.7,7.3"},null,8,Fd)),[[ye,Ce.value[x.key]]]):$("",!0)],64)):ie((A(),C("input",{key:2,"onUpdate:modelValue":te=>Ce.value[x.key]=te,type:x.secret||x.type==="password"?"password":x.type==="number"?"number":"text",class:"pv-input",autocomplete:"off",placeholder:x.help||""},null,8,Nd)),[[Ea,Ce.value[x.key]]]),x.help?(A(),C("span",Ld,O(x.help),1)):$("",!0)]))),128)),f("div",Dd,[f("button",{class:"pv-btn pv-btn-sm",disabled:ve.value===d.name,onClick:x=>F(d)},"Save configuration",8,Bd),f("button",{class:"pv-btn-sec pv-btn-sm",onClick:a[19]||(a[19]=x=>Qe.value="")},"Cancel")])])):$("",!0)]))),128)),f("div",$d,[a[61]||(a[61]=f("div",{class:"pv-eyebrow mb-2"},"Register external plugin",-1)),f("div",jd,[ie(f("input",{"onUpdate:modelValue":a[20]||(a[20]=d=>Ie.value.name=d),class:"pv-input sm:w-40",placeholder:"name",autocomplete:"off",spellcheck:"false"},null,512),[[ye,Ie.value.name]]),ie(f("input",{"onUpdate:modelValue":a[21]||(a[21]=d=>Ie.value.baseURL=d),class:"pv-input flex-1",placeholder:"https://plugin.example.com",autocomplete:"off",spellcheck:"false"},null,512),[[ye,Ie.value.baseURL]]),f("button",{class:"pv-btn",disabled:Et.value,onClick:D},O(Et.value?"Adding…":"Add"),9,Vd)]),tt.value?(A(),C("p",Hd,O(tt.value),1)):$("",!0),a[62]||(a[62]=f("p",{class:"mt-2 text-[11px] text-muted"},[He(" A remote service that answers "),f("span",{class:"font-mono"},"GET /health"),He(" and "),f("span",{class:"font-mono"},"GET /manifest"),He(" — added at runtime, no rebuild. ")],-1))])])])],512),[[sn,u.value==="plugins"]])],64)):(A(),C("div",nc,[a[29]||(a[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:Oa(U,["prevent"])},[f("label",sc,[a[27]||(a[27]=f("span",{class:"pv-eyebrow"},"Email",-1)),ie(f("input",{"onUpdate:modelValue":a[1]||(a[1]=d=>i.value.email=d),type:"email",autocomplete:"username",class:"pv-input",placeholder:"superadmin@pilotvault.local"},null,512),[[ye,i.value.email]])]),f("label",oc,[a[28]||(a[28]=f("span",{class:"pv-eyebrow"},"Password",-1)),ie(f("input",{"onUpdate:modelValue":a[2]||(a[2]=d=>i.value.password=d),type:"password",autocomplete:"current-password",class:"pv-input",placeholder:"••••••••"},null,512),[[ye,i.value.password]])]),l.value?(A(),C("p",ic,O(l.value),1)):$("",!0),f("button",{type:"submit",class:"pv-btn mt-1",disabled:r.value},O(r.value?"Signing in…":"Sign in"),9,lc)],32)])),a[63]||(a[63]=f("p",{class:"text-center font-mono text-[11px] text-muted"}," PilotVault — live drone telemetry, command & control. ",-1))]))}};Ra(Kd).mount("#app");