List all countries in the API panel bounding-box picker
Add API Server/panel/src/countries.js (the full world dataset, mirroring the Web App's) with a countryGroups() helper, and have the OpenSky bbox picker render every country grouped by continent instead of just Europe plus a handful. Panel picker now offers 177 countries (European, Asian, African, North/South American, Oceanian) alongside World, Continents and Custom. Verified live: Plugins → OpenSky → Configure shows the grouped list. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
94f6876024
commit
763cc67081
5 files changed
+238
-74
No files matched your search
@@ -0,0 +1,17 @@
|
||||
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();/**
|
||||
* @vue/shared v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const se={},jt=[],tt=()=>{},Fo=()=>!1,zn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Gn=e=>e.startsWith("onUpdate:"),Ae=Object.assign,Os=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Qi=Object.prototype.hasOwnProperty,Q=(e,t)=>Qi.call(e,t),j=Array.isArray,$t=e=>mn(e)==="[object Map]",Gt=e=>mn(e)==="[object Set]",eo=e=>mn(e)==="[object Date]",H=e=>typeof e=="function",ce=e=>typeof e=="string",nt=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",No=e=>(te(e)||H(e))&&H(e.then)&&H(e.catch),Lo=Object.prototype.toString,mn=e=>Lo.call(e),el=e=>mn(e).slice(8,-1),Do=e=>mn(e)==="[object Object]",Us=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,nn=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wn=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},tl=/-\w/g,He=Wn(e=>e.replace(tl,t=>t.slice(1).toUpperCase())),nl=/\B([A-Z])/g,yt=Wn(e=>e.replace(nl,"-$1").toLowerCase()),jo=Wn(e=>e.charAt(0).toUpperCase()+e.slice(1)),is=Wn(e=>e?`on${jo(e)}`:""),et=(e,t)=>!Object.is(e,t),Rn=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},$o=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Jn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let to;const qn=()=>to||(to=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ms(e){if(j(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],o=ce(s)?ll(s):Ms(s);if(o)for(const i in o)t[i]=o[i]}return t}else if(ce(e)||te(e))return e}const sl=/;(?![^(]*\))/g,ol=/:([^]+)/,il=/\/\*[^]*?\*\//g;function ll(e){const t={};return e.replace(il,"").split(sl).forEach(n=>{if(n){const s=n.split(ol);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ie(e){let t="";if(ce(e))t=e;else if(j(e))for(let n=0;n<e.length;n++){const s=Ie(e[n]);s&&(t+=s+" ")}else if(te(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const rl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",al=Ps(rl);function Bo(e){return!!e||e===""}function cl(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=gt(e[s],t[s]);return n}function gt(e,t){if(e===t)return!0;let n=eo(e),s=eo(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=nt(e),s=nt(t),n||s)return e===t;if(n=j(e),s=j(t),n||s)return n&&s?cl(e,t):!1;if(n=te(e),s=te(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),c=t.hasOwnProperty(l);if(r&&!c||!r&&c||!gt(e[l],t[l]))return!1}}return String(e)===String(t)}function Rs(e,t){return e.findIndex(n=>gt(n,t))}const Vo=e=>!!(e&&e.__v_isRef===!0),O=e=>ce(e)?e:e==null?"":j(e)||te(e)&&(e.toString===Lo||!H(e.toString))?Vo(e)?O(e.value):JSON.stringify(e,Ho,2):String(e),Ho=(e,t)=>Vo(t)?Ho(e,t.value):$t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],i)=>(n[ls(s,i)+" =>"]=o,n),{})}:Gt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ls(n))}:nt(t)?ls(t):te(t)&&!j(t)&&!Do(t)?String(t):t,ls=(e,t="")=>{var n;return nt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
|
||||
* @vue/reactivity v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/let ge;class ul{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ge&&(ge.active?(this.parent=ge,this.index=(ge.scopes||(ge.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;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 dl(){return ge}let re;const rs=new WeakSet;class Ko{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,rs.has(this)&&(rs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Go(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,no(this),Wo(this);const t=re,n=Ke;re=this,Ke=!0;try{return this.fn()}finally{Jo(this),re=t,Ke=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ns(t);this.deps=this.depsTail=void 0,no(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?rs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){gs(this)&&this.run()}get dirty(){return gs(this)}}let zo=0,sn,on;function Go(e,t=!1){if(e.flags|=8,t){e.next=on,on=e;return}e.next=sn,sn=e}function Is(){zo++}function Fs(){if(--zo>0)return;if(on){let t=on;for(on=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;sn;){let t=sn;for(sn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Wo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Jo(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ns(s),fl(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function gs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(qo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function qo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===un)||(e.globalVersion=un,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!gs(e))))return;e.flags|=2;const t=e.dep,n=re,s=Ke;re=e,Ke=!0;try{Wo(e);const o=e.fn(e._value);(t.version===0||et(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{re=n,Ke=s,Jo(e),e.flags&=-3}}function Ns(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ns(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function fl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ke=!0;const Yo=[];function st(){Yo.push(Ke),Ke=!1}function ot(){const e=Yo.pop();Ke=e===void 0?!0:e}function no(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=re;re=void 0;try{t()}finally{re=n}}}let un=0;class pl{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ls{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!re||!Ke||re===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==re)n=this.activeLink=new pl(re,this),re.deps?(n.prevDep=re.depsTail,re.depsTail.nextDep=n,re.depsTail=n):re.deps=re.depsTail=n,Zo(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=re.depsTail,n.nextDep=void 0,re.depsTail.nextDep=n,re.depsTail=n,re.deps===n&&(re.deps=s)}return n}trigger(t){this.versiLine truncated
|
||||
* @vue/runtime-core v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/function gn(e,t,n,s){try{return s?e(...s):e()}catch(o){Zn(o,t,n)}}function Ge(e,t,n,s){if(H(e)){const o=gn(e,t,n,s);return o&&No(o)&&o.catch(i=>{Zn(i,t,n)}),o}if(j(e)){const o=[];for(let i=0;i<e.length;i++)o.push(Ge(e[i],t,n,s));return o}}function Zn(e,t,n,s=!0){const o=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||se;if(t){let r=t.parent;const c=t.proxy,m=`https://vuejs.org/error-reference/#runtime-${n}`;for(;r;){const h=r.ec;if(h){for(let x=0;x<h.length;x++)if(h[x](e,c,m)===!1)return}r=r.parent}if(i){st(),gn(i,null,10,[e,c,m]),ot();return}}Dl(e,n,o,s,l)}function Dl(e,t,n,s=!0,o=!1){if(o)throw e;console.error(e)}const Te=[];let Ze=-1;const Bt=[];let mt=null,Lt=0;const ii=Promise.resolve();let Dn=null;function li(e){const t=Dn||ii;return e?t.then(this?e.bind(this):e):t}function jl(e){let t=Ze+1,n=Te.length;for(;t<n;){const s=t+n>>>1,o=Te[s],i=fn(o);i<e||i===e&&o.flags&2?t=s+1:n=s}return t}function Vs(e){if(!(e.flags&1)){const t=fn(e),n=Te[Te.length-1];!n||!(e.flags&2)&&t>=fn(n)?Te.push(e):Te.splice(jl(t),0,e),e.flags|=1,ri()}}function ri(){Dn||(Dn=ii.then(ci))}function $l(e){j(e)?Bt.push(...e):mt&&e.id===-1?mt.splice(Lt+1,0,e):e.flags&1||(Bt.push(e),e.flags|=1),ri()}function oo(e,t,n=Ze+1){for(;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 ai(e){if(Bt.length){const t=[...new Set(Bt)].sort((n,s)=>fn(n)-fn(s));if(Bt.length=0,mt){mt.push(...t);return}for(mt=t,Lt=0;Lt<mt.length;Lt++){const n=mt[Lt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}mt=null,Lt=0}}const fn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function ci(e){try{for(Ze=0;Ze<Te.length;Ze++){const t=Te[Ze];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),gn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Ze<Te.length;Ze++){const t=Te[Ze];t&&(t.flags&=-2)}Ze=-1,Te.length=0,ai(),Dn=null,(Te.length||Bt.length)&&ci()}}let $e=null,ui=null;function jn(e){const t=$e;return $e=e,ui=e&&e.type.__scopeId||null,t}function Bl(e,t=$e,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&mo(-1);const i=jn(t);let l;try{l=e(...o)}finally{jn(i),s._d&&mo(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function le(e,t){if($e===null)return e;const n=ts($e),s=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[i,l,r,c=se]=t[o];i&&(H(i)&&(i={mounted:i,updated:i}),i.deep&&dt(l),s.push({dir:i,instance:n,value:l,oldValue:void 0,arg:r,modifiers:c}))}return e}function At(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 c=r.dir[s];c&&(st(),Ge(c,n,8,[e.el,r,e,t]),ot())}}function Vl(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 In(e,t,n=!1){const s=Br();if(s||Vt){let o=Vt?Vt._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&&H(t)?t.call(s&&s.proxy):t}}const Hl=Symbol.for("v-scx"),Kl=()=>In(Hl);function us(e,t,n){return di(e,t,n)}function di(e,t,n=se){const{immediate:s,deep:o,flush:i,once:l}=n,r=Ae({},n),c=t&&s||!t&&i!=="post";let m;if(hn){if(i==="sync"){const R=Kl();m=R.__watcherHandles||(R.__watcherHandles=[])}else if(!c){const R=()=>{};return R.stop=tt,R.resume=tt,R.pause=tt,R}}const h=Pe;r.call=(R,J,I)=>Ge(R,h,J,I);let x=!1;i==="post"?r.scheduler=R=>{Ue(R,h&&h.suspense)}:i!=="sync"&&(x=!0,r.scheduler=(R,J)=>{J?R():Vs(R)}),r.augmentJob=R=>{t&&(R.flags|=4),x&&(R.flags|=2,h&&(R.id=h.uid,R.i=h))};const U=Ll(e,t,r);return hn&&(m?m.push(U):c&&U()),U}function zl(e,t,n){const s=this.proxy,o=ce(e)?e.includes(".")?fi(s,e):()=>s[e]:e.bind(s,s);let i;H(t)?i=t:(i=t.handler,n=t);const l=vn(this),r=di(o,i.bind(s),n);return l(),r}function fi(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o<n.length&&s;o++)s=s[n[o]];return s}}const Gl=Symbol("_vte"),Wl=e=>e.__isTeleport,ds=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function io(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const $n=new WeakMap;function ln(e,t,n,s,o=!1){if(j(e)){e.forEach((I,G)=>ln(I,t&&(j(t)?t[G]:t),n,s,o));return}if(rn(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&ln(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?ts(s.component):s.el,l=o?null:i,{i:r,r:c}=e,m=t&&t.r,h=r.refs===se?r.refs={}:r.refs,x=r.setupState,U=X(x),R=x===se?Fo:I=>io(h,I)?!1:Q(U,I),J=(I,G)=>!(G&&io(h,G));if(m!=null&&m!==c){if(lo(t),ce(m))h[m]=null,R(m)&&(x[m]=null);else if(Se(m)){const I=t;J(m,I.k)&&(m.value=null),I.k&&(h[I.k]=null)}}if(H(c)){st();try{gn(c,r,12,[l,h])}finally{ot()}}else{const I=ce(c),G=Se(c);if(I||G){const Y=()=>{if(e.f
Line truncated
|
||||
* @vue/runtime-dom v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/let Ts;const xo=typeof window<"u"&&window.trustedTypes;if(xo)try{Ts=xo.createPolicy("vue",{createHTML:e=>e})}catch{}const ji=Ts?e=>Ts.createHTML(e):e=>e,Jr="http://www.w3.org/2000/svg",qr="http://www.w3.org/1998/Math/MathML",at=typeof document<"u"?document:null,yo=at&&at.createElement("template"),Yr={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?at.createElementNS(Jr,e):t==="mathml"?at.createElementNS(qr,e):n?at.createElement(e,{is:n}):at.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,i){const l=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{yo.innerHTML=ji(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const r=yo.content;if(s==="svg"||s==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zr=Symbol("_vtc");function Xr(e,t,n){const s=e[Zr];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Kn=Symbol("_vod"),$i=Symbol("_vsh"),Zt={name:"show",beforeMount(e,{value:t},{transition:n}){e[Kn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Xt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Xt(e,!0),s.enter(e)):s.leave(e,()=>{Xt(e,!1)}):Xt(e,t))},beforeUnmount(e,{value:t}){Xt(e,t)}};function Xt(e,t){e.style.display=t?e[Kn]:"none",e[$i]=!t}const Qr=Symbol(""),ea=/(?:^|;)\s*display\s*:/;function ta(e,t,n){const s=e.style,o=ce(n);let i=!1;if(n&&!o){if(t)if(ce(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&tn(s,r,"")}else for(const l in t)n[l]==null&&tn(s,l,"");for(const l in n){l==="display"&&(i=!0);const r=n[l];r!=null?sa(e,l,!ce(t)&&t?t[l]:void 0,r)||tn(s,l,r):tn(s,l,"")}}else if(o){if(t!==n){const l=s[Qr];l&&(n+=";"+l),s.cssText=n,i=ea.test(n)}}else t&&e.removeAttribute("style");Kn in e&&(e[Kn]=i?s.display:"",e[$i]&&(s.display="none"))}const _o=/\s*!important$/;function tn(e,t,n){if(j(n))n.forEach(s=>tn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=na(e,t);_o.test(n)?e.setProperty(yt(s),n.replace(_o,""),"important"):e[s]=n}}const wo=["Webkit","Moz","ms"],hs={};function na(e,t){const n=hs[t];if(n)return n;let s=He(t);if(s!=="filter"&&s in e)return hs[t]=s;s=jo(s);for(let o=0;o<wo.length;o++){const i=wo[o]+s;if(i in e)return hs[t]=i}return t}function sa(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&ce(s)&&n===s}const So="http://www.w3.org/1999/xlink";function Ao(e,t,n,s,o,i=al(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(So,t.slice(6,t.length)):e.setAttributeNS(So,t,n):n==null||i&&!Bo(n)?e.removeAttribute(t):e.setAttribute(t,i?"":nt(n)?String(n):n)}function Co(e,t,n,s,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?ji(n):n);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,c=n==null?e.type==="checkbox"?"on":"":String(n);(r!==c||!("_value"in e))&&(e.value=c),n==null&&e.removeAttribute(t),e._value=n;return}let l=!1;if(n===""||n==null){const r=typeof e[t];r==="boolean"?n=Bo(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 ft(e,t,n,s){e.addEventListener(t,n,s)}function oa(e,t,n,s){e.removeEventListener(t,n,s)}const Eo=Symbol("_vei");function ia(e,t,n,s,o=null){const i=e[Eo]||(e[Eo]={}),l=i[t];if(s&&l)l.value=s;else{const[r,c]=aa(t);if(s){const m=i[t]=da(s,o);ft(e,r,m,c)}else l&&(oa(e,r,l,c),i[t]=void 0)}}const la=/(Once|Passive|Capture)$/,ra=/^on:?(?:Once|Passive|Capture)$/;function aa(e){let t,n;for(;(n=e.match(la))&&!ra.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):yt(e.slice(2)),t]}let bs=0;const ca=Promise.resolve(),ua=()=>bs||(ca.then(()=>bs=0),bs=Date.now());function da(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const o=n.value;if(j(o)){const i=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{i.call(s),s._stopped=!0};const l=o.slice(),r=[s];for(let c=0;c<l.length&&!s._stopped;c++){const m=l[c];m&&Ge(m,t,5,r)}}else Ge(o,t,5,[s])};return n.value=e,n.attached=ua(),n}const ko=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,fa=(e,t,n,s,o
Line truncated
|
||||
@@ -1,17 +0,0 @@
|
||||
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))n(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(l){if(l.ep)return;l.ep=!0;const o=s(l);fetch(l.href,o)}})();/**
|
||||
* @vue/shared v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/function An(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ne={},Nt=[],tt=()=>{},Ul=()=>!1,Ks=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zs=e=>e.startsWith("onUpdate:"),Se=Object.assign,On=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Qo=Object.prototype.hasOwnProperty,Q=(e,t)=>Qo.call(e,t),N=Array.isArray,Ft=e=>gs(e)==="[object Map]",Wt=e=>gs(e)==="[object Set]",el=e=>gs(e)==="[object Date]",B=e=>typeof e=="function",ce=e=>typeof e=="string",st=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",$l=e=>(te(e)||B(e))&&B(e.then)&&B(e.catch),jl=Object.prototype.toString,gs=e=>jl.call(e),ei=e=>gs(e).slice(8,-1),Ll=e=>gs(e)==="[object Object]",Mn=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ss=An(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ws=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ti=/-\w/g,Be=Ws(e=>e.replace(ti,t=>t.slice(1).toUpperCase())),si=/\B([A-Z])/g,xt=Ws(e=>e.replace(si,"-$1").toLowerCase()),Dl=Ws(e=>e.charAt(0).toUpperCase()+e.slice(1)),ln=Ws(e=>e?`on${Dl(e)}`:""),et=(e,t)=>!Object.is(e,t),Rs=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Nl=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Gs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let tl;const Js=()=>tl||(tl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Rn(e){if(N(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],l=ce(n)?ii(n):Rn(n);if(l)for(const o in l)t[o]=l[o]}return t}else if(ce(e)||te(e))return e}const ni=/;(?![^(]*\))/g,li=/:([^]+)/,oi=/\/\*[^]*?\*\//g;function ii(e){const t={};return e.replace(oi,"").split(ni).forEach(s=>{if(s){const n=s.split(li);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ue(e){let t="";if(ce(e))t=e;else if(N(e))for(let s=0;s<e.length;s++){const n=Ue(e[s]);n&&(t+=n+" ")}else if(te(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const ri="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",ai=An(ri);function Fl(e){return!!e||e===""}function ci(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=vt(e[n],t[n]);return s}function vt(e,t){if(e===t)return!0;let s=el(e),n=el(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=st(e),n=st(t),s||n)return e===t;if(s=N(e),n=N(t),s||n)return s&&n?ci(e,t):!1;if(s=te(e),n=te(t),s||n){if(!s||!n)return!1;const l=Object.keys(e).length,o=Object.keys(t).length;if(l!==o)return!1;for(const i in e){const r=e.hasOwnProperty(i),c=t.hasOwnProperty(i);if(r&&!c||!r&&c||!vt(e[i],t[i]))return!1}}return String(e)===String(t)}function In(e,t){return e.findIndex(s=>vt(s,t))}const Vl=e=>!!(e&&e.__v_isRef===!0),O=e=>ce(e)?e:e==null?"":N(e)||te(e)&&(e.toString===jl||!B(e.toString))?Vl(e)?O(e.value):JSON.stringify(e,Hl,2):String(e),Hl=(e,t)=>Vl(t)?Hl(e,t.value):Ft(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,l],o)=>(s[on(n,o)+" =>"]=l,s),{})}:Wt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>on(s))}:st(t)?on(t):te(t)&&!N(t)&&!Ll(t)?String(t):t,on=(e,t="")=>{var s;return st(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
|
||||
* @vue/reactivity v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/let ve;class ui{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ve&&(ve.active?(this.parent=ve,this.index=(ve.scopes||(ve.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=ve;try{return ve=this,t()}finally{ve=s}}}on(){++this._on===1&&(this.prevScope=ve,ve=this)}off(){if(this._on>0&&--this._on===0){if(ve===this)ve=this.prevScope;else{let t=ve;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const l=this.parent.scopes.pop();l&&l!==this&&(this.parent.scopes[this.index]=l,l.index=this.index)}this.parent=void 0}}}function fi(){return ve}let re;const rn=new WeakSet;class Bl{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,ve&&(ve.active?ve.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,rn.has(this)&&(rn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||zl(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,sl(this),Wl(this);const t=re,s=Ke;re=this,Ke=!0;try{return this.fn()}finally{Gl(this),re=t,Ke=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)jn(t);this.deps=this.depsTail=void 0,sl(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?rn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){vn(this)&&this.run()}get dirty(){return vn(this)}}let Kl=0,ns,ls;function zl(e,t=!1){if(e.flags|=8,t){e.next=ls,ls=e;return}e.next=ns,ns=e}function Un(){Kl++}function $n(){if(--Kl>0)return;if(ls){let t=ls;for(ls=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;ns;){let t=ns;for(ns=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function Wl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Gl(e){let t,s=e.depsTail,n=s;for(;n;){const l=n.prevDep;n.version===-1?(n===s&&(s=l),jn(n),di(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=l}e.deps=t,e.depsTail=s}function vn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Jl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Jl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===cs)||(e.globalVersion=cs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!vn(e))))return;e.flags|=2;const t=e.dep,s=re,n=Ke;re=e,Ke=!0;try{Wl(e);const l=e.fn(e._value);(t.version===0||et(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{re=s,Ke=n,Gl(e),e.flags&=-3}}function jn(e,t=!1){const{dep:s,prevSub:n,nextSub:l}=e;if(n&&(n.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)jn(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function di(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Ke=!0;const ql=[];function nt(){ql.push(Ke),Ke=!1}function lt(){const e=ql.pop();Ke=e===void 0?!0:e}function sl(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=re;re=void 0;try{t()}finally{re=s}}}let cs=0;class pi{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ln{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!re||!Ke||re===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==re)s=this.activeLink=new pi(re,this),re.deps?(s.prevDep=re.depsTail,re.depsTail.nextDep=s,re.depsTail=s):re.deps=re.depsTail=s,Yl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=re.depsTail,s.nextDep=void 0,re.depsTail.nextDep=s,re.depsTail=s,re.deps===s&&(re.deps=n)}return s}trigger(t){this.versiLine truncated
|
||||
* @vue/runtime-core v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/function ms(e,t,s,n){try{return n?e(...n):e()}catch(l){Ys(l,t,s)}}function We(e,t,s,n){if(B(e)){const l=ms(e,t,s,n);return l&&$l(l)&&l.catch(o=>{Ys(o,t,s)}),l}if(N(e)){const l=[];for(let o=0;o<e.length;o++)l.push(We(e[o],t,s,n));return l}}function Ys(e,t,s,n=!0){const l=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||ne;if(t){let r=t.parent;const c=t.proxy,m=`https://vuejs.org/error-reference/#runtime-${s}`;for(;r;){const h=r.ec;if(h){for(let y=0;y<h.length;y++)if(h[y](e,c,m)===!1)return}r=r.parent}if(o){nt(),ms(o,null,10,[e,c,m]),lt();return}}Di(e,s,l,n,i)}function Di(e,t,s,n=!0,l=!1){if(l)throw e;console.error(e)}const Pe=[];let Xe=-1;const Vt=[];let mt=null,Lt=0;const lo=Promise.resolve();let Ls=null;function oo(e){const t=Ls||lo;return e?t.then(this?e.bind(this):e):t}function Ni(e){let t=Xe+1,s=Pe.length;for(;t<s;){const n=t+s>>>1,l=Pe[n],o=fs(l);o<e||o===e&&l.flags&2?t=n+1:s=n}return t}function Hn(e){if(!(e.flags&1)){const t=fs(e),s=Pe[Pe.length-1];!s||!(e.flags&2)&&t>=fs(s)?Pe.push(e):Pe.splice(Ni(t),0,e),e.flags|=1,io()}}function io(){Ls||(Ls=lo.then(ao))}function Fi(e){N(e)?Vt.push(...e):mt&&e.id===-1?mt.splice(Lt+1,0,e):e.flags&1||(Vt.push(e),e.flags|=1),io()}function ll(e,t,s=Xe+1){for(;s<Pe.length;s++){const n=Pe[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;Pe.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function ro(e){if(Vt.length){const t=[...new Set(Vt)].sort((s,n)=>fs(s)-fs(n));if(Vt.length=0,mt){mt.push(...t);return}for(mt=t,Lt=0;Lt<mt.length;Lt++){const s=mt[Lt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}mt=null,Lt=0}}const fs=e=>e.id==null?e.flags&2?-1:1/0:e.id;function ao(e){try{for(Xe=0;Xe<Pe.length;Xe++){const t=Pe[Xe];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),ms(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Xe<Pe.length;Xe++){const t=Pe[Xe];t&&(t.flags&=-2)}Xe=-1,Pe.length=0,ro(),Ls=null,(Pe.length||Vt.length)&&ao()}}let Fe=null,co=null;function Ds(e){const t=Fe;return Fe=e,co=e&&e.type.__scopeId||null,t}function Vi(e,t=Fe,s){if(!t||e._n)return e;const n=(...l)=>{n._d&&gl(-1);const o=Ds(t);let i;try{i=e(...l)}finally{Ds(o),n._d&&gl(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ie(e,t){if(Fe===null)return e;const s=en(Fe),n=e.dirs||(e.dirs=[]);for(let l=0;l<t.length;l++){let[o,i,r,c=ne]=t[l];o&&(B(o)&&(o={mounted:o,updated:o}),o.deep&&ft(i),n.push({dir:o,instance:s,value:i,oldValue:void 0,arg:r,modifiers:c}))}return e}function St(e,t,s,n){const l=e.dirs,o=t&&t.dirs;for(let i=0;i<l.length;i++){const r=l[i];o&&(r.oldValue=o[i].value);let c=r.dir[n];c&&(nt(),We(c,s,8,[e.el,r,e,t]),lt())}}function Hi(e,t){if(Ae){let s=Ae.provides;const n=Ae.parent&&Ae.parent.provides;n===s&&(s=Ae.provides=Object.create(n)),s[e]=t}}function Is(e,t,s=!1){const n=Vr();if(n||Ht){let l=Ht?Ht._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(l&&e in l)return l[e];if(arguments.length>1)return s&&B(t)?t.call(n&&n.proxy):t}}const Bi=Symbol.for("v-scx"),Ki=()=>Is(Bi);function un(e,t,s){return uo(e,t,s)}function uo(e,t,s=ne){const{immediate:n,deep:l,flush:o,once:i}=s,r=Se({},s),c=t&&n||!t&&o!=="post";let m;if(ps){if(o==="sync"){const I=Ki();m=I.__watcherHandles||(I.__watcherHandles=[])}else if(!c){const I=()=>{};return I.stop=tt,I.resume=tt,I.pause=tt,I}}const h=Ae;r.call=(I,J,U)=>We(I,h,J,U);let y=!1;o==="post"?r.scheduler=I=>{Me(I,h&&h.suspense)}:o!=="sync"&&(y=!0,r.scheduler=(I,J)=>{J?I():Hn(I)}),r.augmentJob=I=>{t&&(I.flags|=4),y&&(I.flags|=2,h&&(I.id=h.uid,I.i=h))};const M=Li(e,t,r);return ps&&(m?m.push(M):c&&M()),M}function zi(e,t,s){const n=this.proxy,l=ce(e)?e.includes(".")?fo(n,e):()=>n[e]:e.bind(n,n);let o;B(t)?o=t:(o=t.handler,s=t);const i=vs(this),r=uo(l,o.bind(n),s);return i(),r}function fo(e,t){const s=t.split(".");return()=>{let n=e;for(let l=0;l<s.length&&n;l++)n=n[s[l]];return n}}const Wi=Symbol("_vte"),Gi=e=>e.__isTeleport,fn=Symbol("_leaveCb");function Bn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Bn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function po(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ol(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const Ns=new WeakMap;function os(e,t,s,n,l=!1){if(N(e)){e.forEach((U,W)=>os(U,t&&(N(t)?t[W]:t),s,n,l));return}if(is(n)&&!l){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&os(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?en(n.component):n.el,i=l?null:o,{i:r,r:c}=e,m=t&&t.r,h=r.refs===ne?r.refs={}:r.refs,y=r.setupState,M=Z(y),I=y===ne?Ul:U=>ol(h,U)?!1:Q(M,U),J=(U,W)=>!(W&&ol(h,W));if(m!=null&&m!==c){if(il(t),ce(m))h[m]=null,I(m)&&(y[m]=null);else if(Ce(m)){const U=t;J(m,U.k)&&(m.value=null),U.k&&(h[U.k]=null)}}if(B(c)){nt();try{ms(c,r,12,[i,h])}finally{lt()}}else{const U=ce(c),W=Ce(c);if(U||W){const Y=()=>{if(e.f
Line truncated
|
||||
* @vue/runtime-dom v3.5.39
|
||||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||||
* @license MIT
|
||||
**/let Pn;const bl=typeof window<"u"&&window.trustedTypes;if(bl)try{Pn=bl.createPolicy("vue",{createHTML:e=>e})}catch{}const No=Pn?e=>Pn.createHTML(e):e=>e,Jr="http://www.w3.org/2000/svg",qr="http://www.w3.org/1998/Math/MathML",at=typeof document<"u"?document:null,yl=at&&at.createElement("template"),Yr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const l=t==="svg"?at.createElementNS(Jr,e):t==="mathml"?at.createElementNS(qr,e):s?at.createElement(e,{is:s}):at.createElement(e);return e==="select"&&n&&n.multiple!=null&&l.setAttribute("multiple",n.multiple),l},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,l,o){const i=s?s.previousSibling:t.lastChild;if(l&&(l===o||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),s),!(l===o||!(l=l.nextSibling)););else{yl.innerHTML=No(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const r=yl.content;if(n==="svg"||n==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,s)}return[i?i.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Xr=Symbol("_vtc");function Zr(e,t,s){const n=e[Xr];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Bs=Symbol("_vod"),Fo=Symbol("_vsh"),Xt={name:"show",beforeMount(e,{value:t},{transition:s}){e[Bs]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Zt(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:n}){!t!=!s&&(n?t?(n.beforeEnter(e),Zt(e,!0),n.enter(e)):n.leave(e,()=>{Zt(e,!1)}):Zt(e,t))},beforeUnmount(e,{value:t}){Zt(e,t)}};function Zt(e,t){e.style.display=t?e[Bs]:"none",e[Fo]=!t}const Qr=Symbol(""),ea=/(?:^|;)\s*display\s*:/;function ta(e,t,s){const n=e.style,l=ce(s);let o=!1;if(s&&!l){if(t)if(ce(t))for(const i of t.split(";")){const r=i.slice(0,i.indexOf(":")).trim();s[r]==null&&ts(n,r,"")}else for(const i in t)s[i]==null&&ts(n,i,"");for(const i in s){i==="display"&&(o=!0);const r=s[i];r!=null?na(e,i,!ce(t)&&t?t[i]:void 0,r)||ts(n,i,r):ts(n,i,"")}}else if(l){if(t!==s){const i=n[Qr];i&&(s+=";"+i),n.cssText=s,o=ea.test(s)}}else t&&e.removeAttribute("style");Bs in e&&(e[Bs]=o?n.display:"",e[Fo]&&(n.display="none"))}const xl=/\s*!important$/;function ts(e,t,s){if(N(s))s.forEach(n=>ts(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=sa(e,t);xl.test(s)?e.setProperty(xt(n),s.replace(xl,""),"important"):e[n]=s}}const _l=["Webkit","Moz","ms"],hn={};function sa(e,t){const s=hn[t];if(s)return s;let n=Be(t);if(n!=="filter"&&n in e)return hn[t]=n;n=Dl(n);for(let l=0;l<_l.length;l++){const o=_l[l]+n;if(o in e)return hn[t]=o}return t}function na(e,t,s,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&ce(n)&&s===n}const wl="http://www.w3.org/1999/xlink";function Cl(e,t,s,n,l,o=ai(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(wl,t.slice(6,t.length)):e.setAttributeNS(wl,t,s):s==null||o&&!Fl(s)?e.removeAttribute(t):e.setAttribute(t,o?"":st(s)?String(s):s)}function Sl(e,t,s,n,l){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?No(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const r=o==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(r!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let i=!1;if(s===""||s==null){const r=typeof e[t];r==="boolean"?s=Fl(s):s==null&&r==="string"?(s="",i=!0):r==="number"&&(s=0,i=!0)}try{e[t]=s}catch{}i&&e.removeAttribute(l||t)}function dt(e,t,s,n){e.addEventListener(t,s,n)}function la(e,t,s,n){e.removeEventListener(t,s,n)}const kl=Symbol("_vei");function oa(e,t,s,n,l=null){const o=e[kl]||(e[kl]={}),i=o[t];if(n&&i)i.value=n;else{const[r,c]=aa(t);if(n){const m=o[t]=fa(n,l);dt(e,r,m,c)}else i&&(la(e,r,i,c),o[t]=void 0)}}const ia=/(Once|Passive|Capture)$/,ra=/^on:?(?:Once|Passive|Capture)$/;function aa(e){let t,s;for(;(s=e.match(ia))&&!ra.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):xt(e.slice(2)),t]}let gn=0;const ca=Promise.resolve(),ua=()=>gn||(ca.then(()=>gn=0),gn=Date.now());function fa(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;const l=s.value;if(N(l)){const o=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{o.call(n),n._stopped=!0};const i=l.slice(),r=[n];for(let c=0;c<i.length&&!n._stopped;c++){const m=i[c];m&&We(m,t,5,r)}}else We(l,t,5,[n])};return s.value=e,s.attached=ua(),s}const El=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,da=(e,t,s,n,l
Line truncated
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="theme-color" content="#0F1E3D" />
|
||||
<title>PilotVault · API Server</title>
|
||||
<script type="module" crossorigin src="/assets/index-CwiTp2Sb.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-B8Dqe_UO.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CVh8EDzq.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<script setup>
|
||||
import { ref, computed, onMounted, onUnmounted } from "vue";
|
||||
import { theme, toggleTheme } from "./theme";
|
||||
import { countryGroups } from "./countries";
|
||||
import EndpointTable from "./components/EndpointTable.vue";
|
||||
|
||||
// ---- Auth gate: this panel is restricted to superadmins ------------------
|
||||
@@ -190,62 +191,8 @@ const BBOX_GROUPS = [
|
||||
{ value: "-56,-82,13,-34", label: "South America" },
|
||||
{ value: "-48,110,-10,180", label: "Oceania" },
|
||||
] },
|
||||
// European countries (mirrors Web App/web/src/countries.js — keep in sync).
|
||||
{ label: "European countries", options: [
|
||||
{ value: "39.6,19.3,42.7,21.1", label: "Albania" },
|
||||
{ value: "42.4,1.4,42.7,1.8", label: "Andorra" },
|
||||
{ value: "46.4,9.5,49.0,17.2", label: "Austria" },
|
||||
{ value: "51.2,23.2,56.2,32.8", label: "Belarus" },
|
||||
{ value: "49.5,2.5,51.5,6.4", label: "Belgium" },
|
||||
{ value: "42.6,15.7,45.3,19.6", label: "Bosnia and Herzegovina" },
|
||||
{ value: "41.2,22.4,44.2,28.6", label: "Bulgaria" },
|
||||
{ value: "42.4,13.5,46.6,19.4", label: "Croatia" },
|
||||
{ value: "34.6,32.3,35.7,34.6", label: "Cyprus" },
|
||||
{ value: "48.6,12.1,51.1,18.9", label: "Czechia" },
|
||||
{ value: "54.6,8.1,57.8,12.7", label: "Denmark" },
|
||||
{ value: "57.5,21.8,59.7,28.2", label: "Estonia" },
|
||||
{ value: "59.8,20.6,70.1,31.6", label: "Finland" },
|
||||
{ value: "41.3,-5.2,51.1,9.6", label: "France" },
|
||||
{ value: "47.2,5.8,55.1,15.1", label: "Germany" },
|
||||
{ value: "34.8,19.4,41.8,28.3", label: "Greece" },
|
||||
{ value: "45.7,16.1,48.6,22.9", label: "Hungary" },
|
||||
{ value: "63.3,-24.6,66.6,-13.5", label: "Iceland" },
|
||||
{ value: "51.4,-10.6,55.4,-6.0", label: "Ireland" },
|
||||
{ value: "36.6,6.6,47.1,18.6", label: "Italy" },
|
||||
{ value: "41.8,20.0,43.3,21.8", label: "Kosovo" },
|
||||
{ value: "55.7,20.9,58.1,28.2", label: "Latvia" },
|
||||
{ value: "47.0,9.4,47.3,9.6", label: "Liechtenstein" },
|
||||
{ value: "53.9,20.9,56.5,26.9", label: "Lithuania" },
|
||||
{ value: "49.4,5.7,50.2,6.5", label: "Luxembourg" },
|
||||
{ value: "35.8,14.1,36.1,14.6", label: "Malta" },
|
||||
{ value: "45.4,26.6,48.5,30.2", label: "Moldova" },
|
||||
{ value: "43.72,7.40,43.75,7.44", label: "Monaco" },
|
||||
{ value: "41.8,18.4,43.6,20.4", label: "Montenegro" },
|
||||
{ value: "50.7,3.3,53.7,7.2", label: "Netherlands" },
|
||||
{ value: "40.8,20.4,42.4,23.0", label: "North Macedonia" },
|
||||
{ value: "57.9,4.6,71.2,31.1", label: "Norway" },
|
||||
{ value: "49.0,14.1,54.9,24.2", label: "Poland" },
|
||||
{ value: "36.9,-9.5,42.2,-6.2", label: "Portugal" },
|
||||
{ value: "43.6,20.2,48.3,29.7", label: "Romania" },
|
||||
{ value: "41.2,19.6,81.9,180", label: "Russia" },
|
||||
{ value: "43.89,12.40,43.99,12.52", label: "San Marino" },
|
||||
{ value: "42.2,18.8,46.2,23.0", label: "Serbia" },
|
||||
{ value: "47.7,16.8,49.6,22.6", label: "Slovakia" },
|
||||
{ value: "45.4,13.4,46.9,16.6", label: "Slovenia" },
|
||||
{ value: "35.9,-9.4,43.8,3.4", label: "Spain" },
|
||||
{ value: "55.3,11.1,69.1,24.2", label: "Sweden" },
|
||||
{ value: "45.8,5.9,47.8,10.5", label: "Switzerland" },
|
||||
{ value: "35.8,25.7,42.3,44.8", label: "Turkey" },
|
||||
{ value: "44.4,22.1,52.4,40.2", label: "Ukraine" },
|
||||
{ value: "49.9,-8.7,60.9,1.8", label: "United Kingdom" },
|
||||
{ value: "41.900,12.445,41.908,12.458", label: "Vatican City" },
|
||||
] },
|
||||
{ label: "Other countries", options: [
|
||||
{ value: "24,-125,49.5,-66.5", label: "United States" },
|
||||
{ value: "41.7,-141,83.1,-52.6", label: "Canada" },
|
||||
{ value: "-43.6,113.3,-10.7,153.6", label: "Australia" },
|
||||
{ value: "24,122.9,45.5,145.8", label: "Japan" },
|
||||
] },
|
||||
// All countries of the world, grouped by continent (from countries.js).
|
||||
...countryGroups(),
|
||||
];
|
||||
const BBOX_FLAT = BBOX_GROUPS.flatMap((g) => g.options);
|
||||
// Normalise to "n1,n2,n3,n4" so matching ignores spacing / trailing zeros.
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
// Country reference data for the OpenSky bounding-box picker.
|
||||
//
|
||||
// Mirrors Web App/web/src/countries.js — keep the two in sync. One record per
|
||||
// country: ISO alpha-2 `code`, display `name`, `continent`, and an approximate
|
||||
// `bbox` string "lamin,lomin,lamax,lomax". The panel has no live map or auto
|
||||
// cascade, so it only needs the picker options (grouped by continent below).
|
||||
|
||||
export const COUNTRIES = [
|
||||
// ---- Europe ----
|
||||
{ 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' },
|
||||
|
||||
// ---- Asia ----
|
||||
{ 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' },
|
||||
|
||||
// ---- Africa ----
|
||||
{ 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' },
|
||||
|
||||
// ---- North America ----
|
||||
{ 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' },
|
||||
|
||||
// ---- South America ----
|
||||
{ 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' },
|
||||
|
||||
// ---- Oceania ----
|
||||
{ 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' },
|
||||
]
|
||||
|
||||
// Per-continent picker groups ({ label, options:[{value:bbox, label:name}] }),
|
||||
// countries sorted A→Z within each. Continents ordered as below.
|
||||
const CONTINENT_LABELS = [
|
||||
['EU', 'European countries'],
|
||||
['AS', 'Asian countries'],
|
||||
['AF', 'African countries'],
|
||||
['NA', 'North American countries'],
|
||||
['SA', 'South American countries'],
|
||||
['OC', 'Oceanian countries'],
|
||||
]
|
||||
export function countryGroups() {
|
||||
return CONTINENT_LABELS.map(([code, label]) => ({
|
||||
label,
|
||||
options: COUNTRIES.filter((c) => c.continent === code)
|
||||
.slice()
|
||||
.sort((a, b) => a.name.localeCompare(b.name))
|
||||
.map((c) => ({ value: c.bbox, label: c.name })),
|
||||
}))
|
||||
}
|
||||
Reference in new issue
Block a user