summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjose-donato <zmcdonato@gmail.com>2023-03-08 16:40:08 +0000
committerjose-donato <zmcdonato@gmail.com>2023-03-08 16:40:08 +0000
commit450b2ee40f873b1cb78e53bbe4ed9136be6f407a (patch)
tree0b5afa1a530dda3853b901e7f77bd78c7300299d
parent4b199b570ebd3909729a11423e621e53d057dee6 (diff)
-rw-r--r--openbb_terminal/core/plots/backend.py54
-rw-r--r--openbb_terminal/core/plots/liveoptions.html21
-rw-r--r--openbb_terminal/stocks/options/options_controller.py16
3 files changed, 91 insertions, 0 deletions
diff --git a/openbb_terminal/core/plots/backend.py b/openbb_terminal/core/plots/backend.py
index d26945d4295..a39d03693cd 100644
--- a/openbb_terminal/core/plots/backend.py
+++ b/openbb_terminal/core/plots/backend.py
@@ -54,6 +54,7 @@ class Backend(pywry.PyWry):
super().__init__(daemon=daemon, max_retries=max_retries)
self.plotly_html: Path = (PLOTS_CORE_PATH / "plotly_temp.html").resolve()
self.table_html: Path = (PLOTS_CORE_PATH / "table.html").resolve()
+ self.liveoptions_html: Path = (PLOTS_CORE_PATH / "liveoptions.html").resolve()
self.inject_path_to_html()
self.isatty = (
not JUPYTER_NOTEBOOK
@@ -103,6 +104,12 @@ class Backend(pywry.PyWry):
return str(self.table_html)
return ""
+ def get_liveoptions_html(self) -> str:
+ """Get the table html file."""
+ if self.liveoptions_html and self.liveoptions_html.exists():
+ return str(self.liveoptions_html)
+ return ""
+
def get_window_icon(self) -> str:
"""Get the window icon."""
icon_path = PLOTS_CORE_PATH / "assets" / "Terminal_icon.png"
@@ -231,6 +238,53 @@ class Backend(pywry.PyWry):
)
)
+ def send_liveoptions(self, df_table: pd.DataFrame, title: str = ""):
+ """Send table data to the backend to be displayed in a table.
+
+ Parameters
+ ----------
+ df_table : pd.DataFrame
+ Dataframe to send to backend.
+ title : str, optional
+ Title to display in the window, by default ""
+ """
+ self.loop.run_until_complete(self.check_backend())
+
+ if title:
+ # We remove any html tags and markdown from the title
+ title = re.sub(r"<[^>]*>", "", title)
+ title = re.sub(r"\[\/?[a-z]+\]", "", title)
+
+ # we get the length of each column using the max length of the column
+ # name and the max length of the column values as the column width
+ columnwidth = [
+ max(len(str(df_table[col].name)), df_table[col].astype(str).str.len().max())
+ for col in df_table.columns
+ ]
+
+ # we add a percentage of max to the min column width
+ columnwidth = [
+ int(x + (max(columnwidth) - min(columnwidth)) * 0.2) for x in columnwidth
+ ]
+
+ # in case of a very small table we set a min width
+ width = max(int(min(sum(columnwidth) * 9.7, self.WIDTH + 100)), 800)
+
+ json_data = json.loads(df_table.to_json(orient="split"))
+ json_data.update(dict(title=title))
+
+ self.outgoing.append(
+ json.dumps(
+ {
+ "html_path": self.get_liveoptions_html(),
+ "json_data": json.dumps(json_data),
+ "width": width,
+ "height": self.HEIGHT - 100,
+ **self.get_kwargs(title),
+ }
+ )
+ )
+
def send_html(self, html_str: str = "", html_path: str = "", title: str = ""):
"""Send HTML to the backend to be displayed in a window.
diff --git a/openbb_terminal/core/plots/liveoptions.html b/openbb_terminal/core/plots/liveoptions.html
new file mode 100644
index 00000000000..aba4cb2bd6d
--- /dev/null
+++ b/openbb_terminal/core/plots/liveoptions.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>Vite + Vue</title>
+ <script type="module" crossorigin>
+(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function xn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r<s.length;r++)n[s[r]]=!0;return t?r=>!!n[r.toLowerCase()]:r=>!!n[r]}function yn(e){if(F(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=X(s)?Er(s):yn(s);if(r)for(const i in r)t[i]=r[i]}return t}else{if(X(e))return e;if(q(e))return e}}const xr=/;(?![^(]*\))/g,yr=/:([^]+)/,Cr=/\/\*.*?\*\//gs;function Er(e){const t={};return e.replace(Cr,"").split(xr).forEach(n=>{if(n){const s=n.split(yr);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Cn(e){let t="";if(X(e))t=e;else if(F(e))for(let n=0;n<e.length;n++){const s=Cn(e[n]);s&&(t+=s+" ")}else if(q(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const wr="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Tr=xn(wr);function ys(e){return!!e||e===""}const Vn=e=>X(e)?e:e==null?"":F(e)||q(e)&&(e.toString===Ts||!M(e.toString))?JSON.stringify(e,Cs,2):String(e),Cs=(e,t)=>t&&t.__v_isRef?Cs(e,t.value):et(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:Es(t)?{[`Set(${t.size})`]:[...t.values()]}:q(t)&&!F(t)&&!vs(t)?String(t):t,D={},Ge=[],me=()=>{},vr=()=>!1,Or=/^on[^a-z]/,St=e=>Or.test(e),En=e=>e.startsWith("onUpdate:"),ee=Object.assign,wn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ir=Object.prototype.hasOwnProperty,L=(e,t)=>Ir.call(e,t),F=Array.isArray,et=e=>jt(e)==="[object Map]",Es=e=>jt(e)==="[object Set]",M=e=>typeof e=="function",X=e=>typeof e=="string",Tn=e=>typeof e=="symbol",q=e=>e!==null&&typeof e=="object",ws=e=>q(e)&&M(e.then)&&M(e.catch),Ts=Object.prototype.toString,jt=e=>Ts.call(e),Ar=e=>jt(e).slice(8,-1),vs=e=>jt(e)==="[object Object]",vn=e=>X(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=xn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Bt=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Fr=/-(\w)/g,st=Bt(e=>e.replace(Fr,(t,n)=>n?n.toUpperCase():"")),Pr=/\B([A-Z])/g,ot=Bt(e=>e.replace(Pr,"-$1").toLowerCase()),Os=Bt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=Bt(e=>e?`on${Os(e)}`:""),pt=(e,t)=>!Object.is(e,t),Zt=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},Rt=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Mr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let kn;const Rr=()=>kn||(kn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let de;class Nr{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=de,!t&&de&&(this.index=(de.scopes||(de.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=de;try{return de=this,t()}finally{de=n}}}on(){de=this}off(){de=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.scopes)for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);if(!this.detached&&this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0,this._active=!1}}}function Lr(e,t=de){t&&t.active&&t.effects.push(e)}function Hr(){return de}const On=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Is=e=>(e.w&Se)>0,As=e=>(e.n&Se)>0,Sr=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Se},jr=e=>{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s<t.length;s++){const r=t[s];Is(r)&&!As(r)?r.delete(e):t[n++]=r,r.w&=~Se,r.n&=~Se}t.length=n}},on=new WeakMap;let at=0,Se=1;const ln=30;let pe;const Ve=Symbol(""),cn=Symbol("");class In{constructor(t,n=null,s){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,Lr(this,s)}run(){if(!this.active)return this.fn();let t=pe,n=Ne;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=pe,pe=this,Ne=!0,Se=1<<++at,at<=ln?Sr(this):Jn(this),this.fn()}finally{at<=ln&&jr(this),Se=1<<--at,pe=this.parent,Ne=n,this.parent=void 0,this.deferStop&&this.stop()}}stop(){pe===this?this.deferStop=!0:this.active&&(Jn(this),this.onStop&&this.onStop(),this.active=!1)}}function Jn(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let Ne=!0;const Fs=[];function lt(){Fs.push(Ne),Ne=!1}function ct(){const e=Fs.pop();Ne=e===void 0?!0:e}function re(e,t,n){if(Ne&&pe){let s=on.get(e);s||on.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=On()),Ps(r)}}function Ps(e,t){let n=!1;at<=ln?As(e)||(e.n|=Se,n=!Is(e)):n=!e.has(pe),n&&(e.add(pe),pe.deps.push(e))}function Ae(e,t,n,s,r,i){const o=on.get(e);if(!o)return;let c=[];if(t==="clear")c=[...o.values()];else if(n==="length"&&F(e)){const u=Number(s);o.forEach((d,g)=>{(g==="length"||g>=u)&&c.push(d)})}else switch(n!==void 0&&c.push(o.get(n)),t){case"add":F(e)?vn(n)&&c.push(o.get("length")):(c.push(o.get(Ve)),et(e)&&c.push(o.get(cn)));break;case"delete":F(e)||(c.push(o.get(Ve)),et(e)&&c.push(o.get(cn)));break;case"set":et(e)&&c.push(o.get(Ve));break}if(c.length===1)c[0]&&fn(c[0]);else{const u=[];for(const d of c)d&&u.push(...d);fn(On(u))}}function fn(e,t){const n=F(e)?e:[...e];for(const s of n)s.computed&&Yn(s);for(const s of n)s.computed||Yn(s)}function Yn(e,t){(e!==pe||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Br=xn("__proto__,__v_isRef,__isVue"),Ms=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Tn)),Ur=An(),$r=An(!1,!0),Dr=An(!0),Xn=Kr();function Kr(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=H(this);for(let i=0,o=this.length;i<o;i++)re(s,"get",i+"");const r=s[t](...n);return r===-1||r===!1?s[t](...n.map(H)):r}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...n){lt();const s=H(this)[t].apply(this,n);return ct(),s}}),e}function Wr(e){const t=H(this);return re(t,"has",e),t.hasOwnProperty(e)}function An(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?ii:Ss:t?Hs:Ls).get(s))return s;const o=F(s);if(!e){if(o&&L(Xn,r))return Reflect.get(Xn,r,i);if(r==="hasOwnProperty")return Wr}const c=Reflect.get(s,r,i);return(Tn(r)?Ms.has(r):Br(r))||(e||re(s,"get",r),t)?c:G(c)?o&&vn(r)?c:c.value:q(c)?e?js(c):Mn(c):c}}const zr=Rs(),qr=Rs(!0);function Rs(e=!1){return function(n,s,r,i){let o=n[s];if(rt(o)&&G(o)&&!G(r))return!1;if(!e&&(!Nt(r)&&!rt(r)&&(o=H(o),r=H(r)),!F(n)&&G(o)&&!G(r)))return o.value=r,!0;const c=F(n)&&vn(s)?Number(s)<n.length:L(n,s),u=Reflect.set(n,s,r,i);return n===H(i)&&(c?pt(r,o)&&Ae(n,"set",s,r):Ae(n,"add",s,r)),u}}function Vr(e,t){const n=L(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&n&&Ae(e,"delete",t,void 0),s}function kr(e,t){const n=Reflect.has(e,t);return(!Tn(t)||!Ms.has(t))&&re(e,"has",t),n}function Jr(e){return re(e,"iterate",F(e)?"length":Ve),Reflect.ownKeys(e)}const Ns={get:Ur,set:zr,deleteProperty:Vr,has:kr,ownKeys:Jr},Yr={get:Dr,set(e,t){return!0},deleteProperty(e,t){return!0}},Xr=ee({},Ns,{get:$r,set:qr}),Fn=e=>e,Ut=e=>Reflect.getPrototypeOf(e);function Et(e,t,n=!1,s=!1){e=e.__v_raw;const r=H(e),i=H(t);n||(t!==i&&re(r,"get",t),re(r,"get",i));const{has:o}=Ut(r),c=s?Fn:n?Nn:gt;if(o.call(r,t))return c(e.get(t));if(o.call(r,i))return c(e.get(i));e!==r&&e.get(t)}function wt(e,t=!1){const n=this.__v_raw,s=H(n),r=H(e);return t||(e!==r&&re(s,"has",e),re(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Tt(e,t=!1){return e=e.__v_raw,!t&&re(H(e),"iterate",Ve),Reflect.get(e,"size",e)}function Zn(e){e=H(e);const t=H(this);return Ut(t).has.call(t,e)||(t.add(e),Ae(t,"add",e,e)),this}function Qn(e,t){t=H(t);const n=H(this),{has:s,get:r}=Ut(n);let i=s.call(n,e);i||(e=H(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?pt(t,o)&&Ae(n,"set",e,t):Ae(n,"add",e,t),this}function Gn(e){const t=H(this),{has:n,get:s}=Ut(t);let r=n.call(t,e);r||(e=H(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&Ae(t,"delete",e,void 0),i}function es(){const e=H(this),t=e.size!==0,n=e.clear();return t&&Ae(e,"clear",void 0,void 0),n}function vt(e,t){return function(s,r){const i=this,o=i.__v_raw,c=H(o),u=t?Fn:e?Nn:gt;return!e&&re(c,"iterate",Ve),o.forEach((d,g)=>s.call(r,u(d),u(g),i))}}function Ot(e,t,n){return function(...s){const r=this.__v_raw,i=H(r),o=et(i),c=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,d=r[e](...s),g=n?Fn:t?Nn:gt;return!t&&re(i,"iterate",u?cn:Ve),{next(){const{value:y,done:E}=d.next();return E?{value:y,done:E}:{value:c?[g(y[0]),g(y[1])]:g(y),done:E}},[Symbol.iterator](){return this}}}}function Me(e){return function(...t){return e==="delete"?!1:this}}function Zr(){const e={get(i){return Et(this,i)},get size(){return Tt(this)},has:wt,add:Zn,set:Qn,delete:Gn,clear:es,forEach:vt(!1,!1)},t={get(i){return Et(this,i,!1,!0)},get size(){return Tt(this)},has:wt,add:Zn,set:Qn,delete:Gn,clear:es,forEach:vt(!1,!0)},n={get(i){return Et(this,i,!0)},get size(){return Tt(this,!0)},has(i){return wt.call(this,i,!0)},add:Me("add"),set:Me("set"),delete:Me("delete"),clear:Me("clear"),forEach:vt(!0,!1)},s={get(i){return Et(this,i,!0,!0)},get size(){return Tt(this,!0)},has(i){return wt.call(this,i,!0)},add:Me("add"),set:Me("set"),delete:Me("delete"),clear:Me("clear"),forEach:vt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Ot(i,!1,!1),n[i]=Ot(i,!0,!1),t[i]=Ot(i,!1,!0),s[i]=Ot(i,!0,!0)}),[e,n,t,s]}const[Qr,Gr,ei,ti]=Zr();function Pn(e,t){const n=t?e?ti:ei:e?Gr:Qr;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(L(n,r)&&r in s?n:s,r,i)}const ni={get:Pn(!1,!1)},si={get:Pn(!1,!0)},ri={get:Pn(!0,!1)},Ls=new WeakMap,Hs=new WeakMap,Ss=new WeakMap,ii=new WeakMap;function oi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function li(e){return e.__v_skip||!Object.isExtensible(e)?0:oi(Ar(e))}function Mn(e){return rt(e)?e:Rn(e,!1,Ns,ni,Ls)}function ci(e){return Rn(e,!1,Xr,si,Hs)}function js(e){return Rn(e,!0,Yr,ri,Ss)}function Rn(e,t,n,s,r){if(!q(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=li(e);if(o===0)return e;const c=new Proxy(e,o===2?s:n);return r.set(e,c),c}function tt(e){return rt(e)?tt(e.__v_raw):!!(e&&e.__v_isReactive)}function rt(e){return!!(e&&e.__v_isReadonly)}function Nt(e){return!!(e&&e.__v_isShallow)}function Bs(e){return tt(e)||rt(e)}function H(e){const t=e&&e.__v_raw;return t?H(t):e}function Us(e){return Rt(e,"__v_skip",!0),e}const gt=e=>q(e)?Mn(e):e,Nn=e=>q(e)?js(e):e;function $s(e){Ne&&pe&&(e=H(e),Ps(e.dep||(e.dep=On())))}function Ds(e,t){e=H(e);const n=e.dep;n&&fn(n)}function G(e){return!!(e&&e.__v_isRef===!0)}function fi(e){return ui(e,!1)}function ui(e,t){return G(e)?e:new ai(e,t)}class ai{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:H(t),this._value=n?t:gt(t)}get value(){return $s(this),this._value}set value(t){const n=this.__v_isShallow||Nt(t)||rt(t);t=n?t:H(t),pt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:gt(t),Ds(this))}}function di(e){return G(e)?e.value:e}const hi={get:(e,t,n)=>di(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return G(r)&&!G(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Ks(e){return tt(e)?e:new Proxy(e,hi)}var Ws;class pi{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Ws]=!1,this._dirty=!0,this.effect=new In(t,()=>{this._dirty||(this._dirty=!0,Ds(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=H(this);return $s(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Ws="__v_isReadonly";function gi(e,t,n=!1){let s,r;const i=M(e);return i?(s=e,r=me):(s=e.get,r=e.set),new pi(s,r,i||!r,n)}function Le(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){$t(i,t,n)}return r}function fe(e,t,n,s){if(M(e)){const i=Le(e,t,n,s);return i&&ws(i)&&i.catch(o=>{$t(o,t,n)}),i}const r=[];for(let i=0;i<e.length;i++)r.push(fe(e[i],t,n,s));return r}function $t(e,t,n,s=!0){const r=t?t.vnode:null;if(t){let i=t.parent;const o=t.proxy,c=n;for(;i;){const d=i.ec;if(d){for(let g=0;g<d.length;g++)if(d[g](e,o,c)===!1)return}i=i.parent}const u=t.appContext.config.errorHandler;if(u){Le(u,null,10,[e,o,c]);return}}_i(e,n,r,s)}function _i(e,t,n,s=!0){console.error(e)}let _t=!1,un=!1;const Q=[];let we=0;const nt=[];let Oe=null,We=0;const zs=Promise.resolve();let Ln=null;function mi(e){const t=Ln||zs;return e?t.then(this?e.bind(this):e):t}function bi(e){let t=we+1,n=Q.length;for(;t<n;){const s=t+n>>>1;mt(Q[s])<e?t=s+1:n=s}return t}function Hn(e){(!Q.length||!Q.includes(e,_t&&e.allowRecurse?we+1:we))&&(e.id==null?Q.push(e):Q.splice(bi(e.id),0,e),qs())}function qs(){!_t&&!un&&(un=!0,Ln=zs.then(ks))}function xi(e){const t=Q.indexOf(e);t>we&&Q.splice(t,1)}function yi(e){F(e)?nt.push(...e):(!Oe||!Oe.includes(e,e.allowRecurse?We+1:We))&&nt.push(e),qs()}function ts(e,t=_t?we+1:0){for(;t<Q.length;t++){const n=Q[t];n&&n.pre&&(Q.splice(t,1),t--,n())}}function Vs(e){if(nt.length){const t=[...new Set(nt)];if(nt.length=0,Oe){Oe.push(...t);return}for(Oe=t,Oe.sort((n,s)=>mt(n)-mt(s)),We=0;We<Oe.length;We++)Oe[We]();Oe=null,We=0}}const mt=e=>e.id==null?1/0:e.id,Ci=(e,t)=>{const n=mt(e)-mt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ks(e){un=!1,_t=!0,Q.sort(Ci);const t=me;try{for(we=0;we<Q.length;we++){const n=Q[we];n&&n.active!==!1&&Le(n,null,14)}}finally{we=0,Q.length=0,Vs(),_t=!1,Ln=null,(Q.length||nt.length)&&ks()}}function Ei(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||D;let r=n;const i=t.startsWith("update:"),o=i&&t.slice(7);if(o&&o in s){const g=`${o==="modelValue"?"model":o}Modifiers`,{number:y,trim:E}=s[g]||D;E&&(r=n.map(A=>X(A)?A.trim():A)),y&&(r=n.map(Mr))}let c,u=s[c=Xt(t)]||s[c=Xt(st(t))];!u&&i&&(u=s[c=Xt(ot(t))]),u&&fe(u,e,6,r);const d=s[c+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,fe(d,e,6,r)}}function Js(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},c=!1;if(!M(e)){const u=d=>{const g=Js(d,t,!0);g&&(c=!0,ee(o,g))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!c?(q(e)&&s.set(e,null),null):(F(i)?i.forEach(u=>o[u]=null):ee(o,i),q(e)&&s.set(e,o),o)}function Dt(e,t){return!e||!St(t)?!1:(t=t.slice(2).replace(/Once$/,""),L(e,t[0].toLowerCase()+t.slice(1))||L(e,ot(t))||L(e,t))}let ge=null,Kt=null;function Lt(e){const t=ge;return ge=e,Kt=e&&e.type.__scopeId||null,t}function wi(e){Kt=e}function Ti(){Kt=null}function vi(e,t=ge,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&us(-1);const i=Lt(t);let o;try{o=e(...r)}finally{Lt(i),s._d&&us(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Qt(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:c,attrs:u,emit:d,render:g,renderCache:y,data:E,setupState:A,ctx:S,inheritAttrs:O}=e;let V,B;const le=Lt(e);try{if(n.shapeFlag&4){const K=r||s;V=Ee(g.call(K,K,y,i,A,E,S)),B=u}else{const K=t;V=Ee(K.length>1?K(i,{attrs:u,slots:c,emit:d}):K(i,null)),B=t.props?u:Oi(u)}}catch(K){ht.length=0,$t(K,e,1),V=He(Ie)}let P=V;if(B&&O!==!1){const K=Object.keys(B),{shapeFlag:Z}=P;K.length&&Z&7&&(o&&K.some(En)&&(B=Ii(B,o)),P=je(P,B))}return n.dirs&&(P=je(P),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition&&(P.transition=n.transition),V=P,Lt(le),V}const Oi=e=>{let t;for(const n in e)(n==="class"||n==="style"||St(n))&&((t||(t={}))[n]=e[n]);return t},Ii=(e,t)=>{const n={};for(const s in e)(!En(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Ai(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:c,patchFlag:u}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return s?ns(s,o,d):!!o;if(u&8){const g=t.dynamicProps;for(let y=0;y<g.length;y++){const E=g[y];if(o[E]!==s[E]&&!Dt(d,E))return!0}}}else return(r||c)&&(!c||!c.$stable)?!0:s===o?!1:s?o?ns(s,o,d):!0:!!o;return!1}function ns(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const i=s[r];if(t[i]!==e[i]&&!Dt(n,i))return!0}return!1}function Fi({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const Pi=e=>e.__isSuspense;function Mi(e,t){t&&t.pendingBranch?F(e)?t.effects.push(...e):t.effects.push(e):yi(e)}function Ri(e,t){if(J){let n=J.provides;const s=J.parent&&J.parent.provides;s===n&&(n=J.provides=Object.create(s)),n[e]=t}}function Ft(e,t,n=!1){const s=J||ge;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&M(t)?t.call(s.proxy):t}}const It={};function Gt(e,t,n){return Ys(e,t,n)}function Ys(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=D){const c=Hr()===(J==null?void 0:J.scope)?J:null;let u,d=!1,g=!1;if(G(e)?(u=()=>e.value,d=Nt(e)):tt(e)?(u=()=>e,s=!0):F(e)?(g=!0,d=e.some(P=>tt(P)||Nt(P)),u=()=>e.map(P=>{if(G(P))return P.value;if(tt(P))return Qe(P);if(M(P))return Le(P,c,2)})):M(e)?t?u=()=>Le(e,c,2):u=()=>{if(!(c&&c.isUnmounted))return y&&y(),fe(e,c,3,[E])}:u=me,t&&s){const P=u;u=()=>Qe(P())}let y,E=P=>{y=B.onStop=()=>{Le(P,c,4)}},A;if(xt)if(E=me,t?n&&fe(t,c,3,[u(),g?[]:void 0,E]):u(),r==="sync"){const P=Po();A=P.__watcherHandles||(P.__watcherHandles=[])}else return me;let S=g?new Array(e.length).fill(It):It;const O=()=>{if(B.active)if(t){const P=B.run();(s||d||(g?P.some((K,Z)=>pt(K,S[Z])):pt(P,S)))&&(y&&y(),fe(t,c,3,[P,S===It?void 0:g&&S[0]===It?[]:S,E]),S=P)}else B.run()};O.allowRecurse=!!t;let V;r==="sync"?V=O:r==="post"?V=()=>se(O,c&&c.suspense):(O.pre=!0,c&&(O.id=c.uid),V=()=>Hn(O));const B=new In(u,V);t?n?O():S=B.run():r==="post"?se(B.run.bind(B),c&&c.suspense):B.run();const le=()=>{B.stop(),c&&c.scope&&wn(c.scope.effects,B)};return A&&A.push(le),le}function Ni(e,t,n){const s=this.proxy,r=X(e)?e.includes(".")?Xs(s,e):()=>s[e]:e.bind(s,s);let i;M(t)?i=t:(i=t.handler,n=t);const o=J;it(this);const c=Ys(r,i.bind(s),n);return o?it(o):ke(),c}function Xs(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}function Qe(e,t){if(!q(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),G(e))Qe(e.value,t);else if(F(e))for(let n=0;n<e.length;n++)Qe(e[n],t);else if(Es(e)||et(e))e.forEach(n=>{Qe(n,t)});else if(vs(e))for(const n in e)Qe(e[n],t);return e}function Li(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return er(()=>{e.isMounted=!0}),tr(()=>{e.isUnmounting=!0}),e}const ce=[Function,Array],Hi={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ce,onEnter:ce,onAfterEnter:ce,onEnterCancelled:ce,onBeforeLeave:ce,onLeave:ce,onAfterLeave:ce,onLeaveCancelled:ce,onBeforeAppear:ce,onAppear:ce,onAfterAppear:ce,onAppearCancelled:ce},setup(e,{slots:t}){const n=Eo(),s=Li();let r;return()=>{const i=t.default&&Qs(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const O of i)if(O.type!==Ie){o=O;break}}const c=H(e),{mode:u}=c;if(s.isLeaving)return en(o);const d=ss(o);if(!d)return en(o);const g=an(d,c,s,n);dn(d,g);const y=n.subTree,E=y&&ss(y);let A=!1;const{getTransitionKey:S}=d.type;if(S){const O=S();r===void 0?r=O:O!==r&&(r=O,A=!0)}if(E&&E.type!==Ie&&(!ze(d,E)||A)){const O=an(E,c,s,n);if(dn(E,O),u==="out-in")return s.isLeaving=!0,O.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},en(o);u==="in-out"&&d.type!==Ie&&(O.delayLeave=(V,B,le)=>{const P=Zs(s,E);P[String(E.key)]=E,V._leaveCb=()=>{B(),V._leaveCb=void 0,delete g.delayedLeave},g.delayedLeave=le})}return o}}},Si=Hi;function Zs(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function an(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:y,onLeave:E,onAfterLeave:A,onLeaveCancelled:S,onBeforeAppear:O,onAppear:V,onAfterAppear:B,onAppearCancelled:le}=t,P=String(e.key),K=Zs(n,e),Z=(R,Y)=>{R&&fe(R,s,9,Y)},Ye=(R,Y)=>{const W=Y[1];Z(R,Y),F(R)?R.every(ie=>ie.length<=1)&&W():R.length<=1&&W()},Pe={mode:i,persisted:o,beforeEnter(R){let Y=c;if(!n.isMounted)if(r)Y=O||c;else return;R._leaveCb&&R._leaveCb(!0);const W=K[P];W&&ze(e,W)&&W.el._leaveCb&&W.el._leaveCb(),Z(Y,[R])},enter(R){let Y=u,W=d,ie=g;if(!n.isMounted)if(r)Y=V||u,W=B||d,ie=le||g;else return;let be=!1;const Te=R._enterCb=ft=>{be||(be=!0,ft?Z(ie,[R]):Z(W,[R]),Pe.delayedLeave&&Pe.delayedLeave(),R._enterCb=void 0)};Y?Ye(Y,[R,Te]):Te()},leave(R,Y){const W=String(e.key);if(R._enterCb&&R._enterCb(!0),n.isUnmounting)return Y();Z(y,[R]);let ie=!1;const be=R._leaveCb=Te=>{ie||(ie=!0,Y(),Te?Z(S,[R]):Z(A,[R]),R._leaveCb=void 0,K[W]===e&&delete K[W])};K[W]=e,E?Ye(E,[R,be]):be()},clone(R){return an(R,t,n,s)}};return Pe}function en(e){if(Wt(e))return e=je(e),e.children=null,e}function ss(e){return Wt(e)?e.children?e.children[0]:void 0:e}function dn(e,t){e.shapeFlag&6&&e.component?dn(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 Qs(e,t=!1,n){let s=[],r=0;for(let i=0;i<e.length;i++){let o=e[i];const c=n==null?o.key:String(n)+String(o.key!=null?o.key:i);o.type===he?(o.patchFlag&128&&r++,s=s.concat(Qs(o.children,t,c))):(t||o.type!==Ie)&&s.push(c!=null?je(o,{key:c}):o)}if(r>1)for(let i=0;i<s.length;i++)s[i].patchFlag=-2;return s}const Pt=e=>!!e.type.__asyncLoader,Wt=e=>e.type.__isKeepAlive;function ji(e,t){Gs(e,"a",t)}function Bi(e,t){Gs(e,"da",t)}function Gs(e,t,n=J){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(zt(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Wt(r.parent.vnode)&&Ui(s,t,n,r),r=r.parent}}function Ui(e,t,n,s){const r=zt(t,e,s,!0);nr(()=>{wn(s[t],r)},n)}function zt(e,t,n=J,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;lt(),it(n);const c=fe(t,n,e,o);return ke(),ct(),c});return s?r.unshift(i):r.push(i),i}}const Fe=e=>(t,n=J)=>(!xt||e==="sp")&&zt(e,(...s)=>t(...s),n),$i=Fe("bm"),er=Fe("m"),Di=Fe("bu"),Ki=Fe("u"),tr=Fe("bum"),nr=Fe("um"),Wi=Fe("sp"),zi=Fe("rtg"),qi=Fe("rtc");function Vi(e,t=J){zt("ec",e,t)}function $e(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o<r.length;o++){const c=r[o];i&&(c.oldValue=i[o].value);let u=c.dir[s];u&&(lt(),fe(u,n,8,[e.el,c,e,t]),ct())}}const ki=Symbol(),hn=e=>e?pr(e)?Un(e)||e.proxy:hn(e.parent):null,dt=ee(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=>hn(e.parent),$root:e=>hn(e.root),$emit:e=>e.emit,$options:e=>Sn(e),$forceUpdate:e=>e.f||(e.f=()=>Hn(e.update)),$nextTick:e=>e.n||(e.n=mi.bind(e.proxy)),$watch:e=>Ni.bind(e)}),tn=(e,t)=>e!==D&&!e.__isScriptSetup&&L(e,t),Ji={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:c,appContext:u}=e;let d;if(t[0]!=="$"){const A=o[t];if(A!==void 0)switch(A){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(tn(s,t))return o[t]=1,s[t];if(r!==D&&L(r,t))return o[t]=2,r[t];if((d=e.propsOptions[0])&&L(d,t))return o[t]=3,i[t];if(n!==D&&L(n,t))return o[t]=4,n[t];pn&&(o[t]=0)}}const g=dt[t];let y,E;if(g)return t==="$attrs"&&re(e,"get",t),g(e);if((y=c.__cssModules)&&(y=y[t]))return y;if(n!==D&&L(n,t))return o[t]=4,n[t];if(E=u.config.globalProperties,L(E,t))return E[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return tn(r,t)?(r[t]=n,!0):s!==D&&L(s,t)?(s[t]=n,!0):L(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:r,propsOptions:i}},o){let c;return!!n[o]||e!==D&&L(e,o)||tn(t,o)||(c=i[0])&&L(c,o)||L(s,o)||L(dt,o)||L(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:L(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let pn=!0;function Yi(e){const t=Sn(e),n=e.proxy,s=e.ctx;pn=!1,t.beforeCreate&&rs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:c,provide:u,inject:d,created:g,beforeMount:y,mounted:E,beforeUpdate:A,updated:S,activated:O,deactivated:V,beforeDestroy:B,beforeUnmount:le,destroyed:P,unmounted:K,render:Z,renderTracked:Ye,renderTriggered:Pe,errorCaptured:R,serverPrefetch:Y,expose:W,inheritAttrs:ie,components:be,directives:Te,filters:ft}=t;if(d&&Xi(d,s,null,e.appContext.config.unwrapInjectedRef),o)for(const z in o){const U=o[z];M(U)&&(s[z]=U.bind(n))}if(r){const z=r.call(n,n);q(z)&&(e.data=Mn(z))}if(pn=!0,i)for(const z in i){const U=i[z],Be=M(U)?U.bind(n,n):M(U.get)?U.get.bind(n,n):me,yt=!M(U)&&M(U.set)?U.set.bind(n):me,Ue=Ao({get:Be,set:yt});Object.defineProperty(s,z,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:xe=>Ue.value=xe})}if(c)for(const z in c)sr(c[z],s,n,z);if(u){const z=M(u)?u.call(n):u;Reflect.ownKeys(z).forEach(U=>{Ri(U,z[U])})}g&&rs(g,e,"c");function te(z,U){F(U)?U.forEach(Be=>z(Be.bind(n))):U&&z(U.bind(n))}if(te($i,y),te(er,E),te(Di,A),te(Ki,S),te(ji,O),te(Bi,V),te(Vi,R),te(qi,Ye),te(zi,Pe),te(tr,le),te(nr,K),te(Wi,Y),F(W))if(W.length){const z=e.exposed||(e.exposed={});W.forEach(U=>{Object.defineProperty(z,U,{get:()=>n[U],set:Be=>n[U]=Be})})}else e.exposed||(e.exposed={});Z&&e.render===me&&(e.render=Z),ie!=null&&(e.inheritAttrs=ie),be&&(e.components=be),Te&&(e.directives=Te)}function Xi(e,t,n=me,s=!1){F(e)&&(e=gn(e));for(const r in e){const i=e[r];let o;q(i)?"default"in i?o=Ft(i.from||r,i.default,!0):o=Ft(i.from||r):o=Ft(i),G(o)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:c=>o.value=c}):t[r]=o}}function rs(e,t,n){fe(F(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function sr(e,t,n,s){const r=s.includes(".")?Xs(n,s):()=>n[s];if(X(e)){const i=t[e];M(i)&&Gt(r,i)}else if(M(e))Gt(r,e.bind(n));else if(q(e))if(F(e))e.forEach(i=>sr(i,t,n,s));else{const i=M(e.handler)?e.handler.bind(n):t[e.handler];M(i)&&Gt(r,i,e)}}function Sn(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,c=i.get(t);let u;return c?u=c:!r.length&&!n&&!s?u=t:(u={},r.length&&r.forEach(d=>Ht(u,d,o,!0)),Ht(u,t,o)),q(t)&&i.set(t,u),u}function Ht(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&Ht(e,i,n,!0),r&&r.forEach(o=>Ht(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const c=Zi[o]||n&&n[o];e[o]=c?c(e[o],t[o]):t[o]}return e}const Zi={data:is,props:Ke,emits:Ke,methods:Ke,computed:Ke,beforeCreate:ne,created:ne,beforeMount:ne,mounted:ne,beforeUpdate:ne,updated:ne,beforeDestroy:ne,beforeUnmount:ne,destroyed:ne,unmounted:ne,activated:ne,deactivated:ne,errorCaptured:ne,serverPrefetch:ne,components:Ke,directives:Ke,watch:Gi,provide:is,inject:Qi};function is(e,t){return t?e?function(){return ee(M(e)?e.call(this,this):e,M(t)?t.call(this,this):t)}:t:e}function Qi(e,t){return Ke(gn(e),gn(t))}function gn(e){if(F(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function ne(e,t){return e?[...new Set([].concat(e,t))]:t}function Ke(e,t){return e?ee(ee(Object.create(null),e),t):t}function Gi(e,t){if(!e)return t;if(!t)return e;const n=ee(Object.create(null),e);for(const s in t)n[s]=ne(e[s],t[s]);return n}function eo(e,t,n,s=!1){const r={},i={};Rt(i,Vt,1),e.propsDefaults=Object.create(null),rr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:ci(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function to(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,c=H(r),[u]=e.propsOptions;let d=!1;if((s||o>0)&&!(o&16)){if(o&8){const g=e.vnode.dynamicProps;for(let y=0;y<g.length;y++){let E=g[y];if(Dt(e.emitsOptions,E))continue;const A=t[E];if(u)if(L(i,E))A!==i[E]&&(i[E]=A,d=!0);else{const S=st(E);r[S]=_n(u,c,S,A,e,!1)}else A!==i[E]&&(i[E]=A,d=!0)}}}else{rr(e,t,r,i)&&(d=!0);let g;for(const y in c)(!t||!L(t,y)&&((g=ot(y))===y||!L(t,g)))&&(u?n&&(n[y]!==void 0||n[g]!==void 0)&&(r[y]=_n(u,c,y,void 0,e,!0)):delete r[y]);if(i!==c)for(const y in i)(!t||!L(t,y))&&(delete i[y],d=!0)}d&&Ae(e,"set","$attrs")}function rr(e,t,n,s){const[r,i]=e.propsOptions;let o=!1,c;if(t)for(let u in t){if(At(u))continue;const d=t[u];let g;r&&L(r,g=st(u))?!i||!i.includes(g)?n[g]=d:(c||(c={}))[g]=d:Dt(e.emitsOptions,u)||(!(u in s)||d!==s[u])&&(s[u]=d,o=!0)}if(i){const u=H(n),d=c||D;for(let g=0;g<i.length;g++){const y=i[g];n[y]=_n(r,u,y,d[y],e,!L(d,y))}}return o}function _n(e,t,n,s,r,i){const o=e[n];if(o!=null){const c=L(o,"default");if(c&&s===void 0){const u=o.default;if(o.type!==Function&&M(u)){const{propsDefaults:d}=r;n in d?s=d[n]:(it(r),s=d[n]=u.call(null,t),ke())}else s=u}o[0]&&(i&&!c?s=!1:o[1]&&(s===""||s===ot(n))&&(s=!0))}return s}function ir(e,t,n=!1){const s=t.propsCache,r=s.get(e);if(r)return r;const i=e.props,o={},c=[];let u=!1;if(!M(e)){const g=y=>{u=!0;const[E,A]=ir(y,t,!0);ee(o,E),A&&c.push(...A)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!i&&!u)return q(e)&&s.set(e,Ge),Ge;if(F(i))for(let g=0;g<i.length;g++){const y=st(i[g]);os(y)&&(o[y]=D)}else if(i)for(const g in i){const y=st(g);if(os(y)){const E=i[g],A=o[y]=F(E)||M(E)?{type:E}:Object.assign({},E);if(A){const S=fs(Boolean,A.type),O=fs(String,A.type);A[0]=S>-1,A[1]=O<0||S<O,(S>-1||L(A,"default"))&&c.push(y)}}}const d=[o,c];return q(e)&&s.set(e,d),d}function os(e){return e[0]!=="$"}function ls(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function cs(e,t){return ls(e)===ls(t)}function fs(e,t){return F(t)?t.findIndex(n=>cs(n,e)):M(t)&&cs(t,e)?0:-1}const or=e=>e[0]==="_"||e==="$stable",jn=e=>F(e)?e.map(Ee):[Ee(e)],no=(e,t,n)=>{if(t._n)return t;const s=vi((...r)=>jn(t(...r)),n);return s._c=!1,s},lr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(or(r))continue;const i=e[r];if(M(i))t[r]=no(r,i,s);else if(i!=null){const o=jn(i);t[r]=()=>o}}},cr=(e,t)=>{const n=jn(t);e.slots.default=()=>n},so=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=H(t),Rt(t,"_",n)):lr(t,e.slots={})}else e.slots={},t&&cr(e,t);Rt(e.slots,Vt,1)},ro=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=D;if(s.shapeFlag&32){const c=t._;c?n&&c===1?i=!1:(ee(r,t),!n&&c===1&&delete r._):(i=!t.$stable,lr(t,r)),o=t}else t&&(cr(e,t),o={default:1});if(i)for(const c in r)!or(c)&&!(c in o)&&delete r[c]};function fr(){return{app:null,config:{isNativeTag:vr,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 io=0;function oo(e,t){return function(s,r=null){M(s)||(s=Object.assign({},s)),r!=null&&!q(r)&&(r=null);const i=fr(),o=new Set;let c=!1;const u=i.app={_uid:io++,_component:s,_props:r,_container:null,_context:i,_instance:null,version:Mo,get config(){return i.config},set config(d){},use(d,...g){return o.has(d)||(d&&M(d.install)?(o.add(d),d.install(u,...g)):M(d)&&(o.add(d),d(u,...g))),u},mixin(d){return i.mixins.includes(d)||i.mixins.push(d),u},component(d,g){return g?(i.components[d]=g,u):i.components[d]},directive(d,g){return g?(i.directives[d]=g,u):i.directives[d]},mount(d,g,y){if(!c){const E=He(s,r);return E.appContext=i,g&&t?t(E,d):e(E,d,y),c=!0,u._container=d,d.__vue_app__=u,Un(E.component)||E.component.proxy}},unmount(){c&&(e(null,u._container),delete u._container.__vue_app__)},provide(d,g){return i.provides[d]=g,u}};return u}}function mn(e,t,n,s,r=!1){if(F(e)){e.forEach((E,A)=>mn(E,t&&(F(t)?t[A]:t),n,s,r));return}if(Pt(s)&&!r)return;const i=s.shapeFlag&4?Un(s.component)||s.component.proxy:s.el,o=r?null:i,{i:c,r:u}=e,d=t&&t.r,g=c.refs===D?c.refs={}:c.refs,y=c.setupState;if(d!=null&&d!==u&&(X(d)?(g[d]=null,L(y,d)&&(y[d]=null)):G(d)&&(d.value=null)),M(u))Le(u,c,12,[o,g]);else{const E=X(u),A=G(u);if(E||A){const S=()=>{if(e.f){const O=E?L(y,u)?y[u]:g[u]:u.value;r?F(O)&&wn(O,i):F(O)?O.includes(i)||O.push(i):E?(g[u]=[i],L(y,u)&&(y[u]=g[u])):(u.value=[i],e.k&&(g[e.k]=u.value))}else E?(g[u]=o,L(y,u)&&(y[u]=o)):A&&(u.value=o,e.k&&(g[e.k]=o))};o?(S.id=-1,se(S,n)):S()}}}const se=Mi;function lo(e){return co(e)}function co(e,t){const n=Rr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:c,createComment:u,setText:d,setElementText:g,parentNode:y,nextSibling:E,setScopeId:A=me,insertStaticContent:S}=e,O=(l,f,a,p=null,h=null,b=null,C=!1,m=null,x=!!f.dynamicChildren)=>{if(l===f)return;l&&!ze(l,f)&&(p=Ct(l),xe(l,h,b,!0),l=null),f.patchFlag===-2&&(x=!1,f.dynamicChildren=null);const{type:_,ref:T,shapeFlag:w}=f;switch(_){case qt:V(l,f,a,p);break;case Ie:B(l,f,a,p);break;case nn:l==null&&le(f,a,p,C);break;case he:be(l,f,a,p,h,b,C,m,x);break;default:w&1?Z(l,f,a,p,h,b,C,m,x):w&6?Te(l,f,a,p,h,b,C,m,x):(w&64||w&128)&&_.process(l,f,a,p,h,b,C,m,x,Xe)}T!=null&&h&&mn(T,l&&l.ref,b,f||l,!f)},V=(l,f,a,p)=>{if(l==null)s(f.el=c(f.children),a,p);else{const h=f.el=l.el;f.children!==l.children&&d(h,f.children)}},B=(l,f,a,p)=>{l==null?s(f.el=u(f.children||""),a,p):f.el=l.el},le=(l,f,a,p)=>{[l.el,l.anchor]=S(l.children,f,a,p,l.el,l.anchor)},P=({el:l,anchor:f},a,p)=>{let h;for(;l&&l!==f;)h=E(l),s(l,a,p),l=h;s(f,a,p)},K=({el:l,anchor:f})=>{let a;for(;l&&l!==f;)a=E(l),r(l),l=a;r(f)},Z=(l,f,a,p,h,b,C,m,x)=>{C=C||f.type==="svg",l==null?Ye(f,a,p,h,b,C,m,x):Y(l,f,h,b,C,m,x)},Ye=(l,f,a,p,h,b,C,m)=>{let x,_;const{type:T,props:w,shapeFlag:v,transition:I,dirs:N}=l;if(x=l.el=o(l.type,b,w&&w.is,w),v&8?g(x,l.children):v&16&&R(l.children,x,null,p,h,b&&T!=="foreignObject",C,m),N&&$e(l,null,p,"created"),Pe(x,l,l.scopeId,C,p),w){for(const j in w)j!=="value"&&!At(j)&&i(x,j,null,w[j],b,l.children,p,h,ve);"value"in w&&i(x,"value",null,w.value),(_=w.onVnodeBeforeMount)&&Ce(_,p,l)}N&&$e(l,null,p,"beforeMount");const $=(!h||h&&!h.pendingBranch)&&I&&!I.persisted;$&&I.beforeEnter(x),s(x,f,a),((_=w&&w.onVnodeMounted)||$||N)&&se(()=>{_&&Ce(_,p,l),$&&I.enter(x),N&&$e(l,null,p,"mounted")},h)},Pe=(l,f,a,p,h)=>{if(a&&A(l,a),p)for(let b=0;b<p.length;b++)A(l,p[b]);if(h){let b=h.subTree;if(f===b){const C=h.vnode;Pe(l,C,C.scopeId,C.slotScopeIds,h.parent)}}},R=(l,f,a,p,h,b,C,m,x=0)=>{for(let _=x;_<l.length;_++){const T=l[_]=m?Re(l[_]):Ee(l[_]);O(null,T,f,a,p,h,b,C,m)}},Y=(l,f,a,p,h,b,C)=>{const m=f.el=l.el;let{patchFlag:x,dynamicChildren:_,dirs:T}=f;x|=l.patchFlag&16;const w=l.props||D,v=f.props||D;let I;a&&De(a,!1),(I=v.onVnodeBeforeUpdate)&&Ce(I,a,f,l),T&&$e(f,l,a,"beforeUpdate"),a&&De(a,!0);const N=h&&f.type!=="foreignObject";if(_?W(l.dynamicChildren,_,m,a,p,N,b):C||U(l,f,m,null,a,p,N,b,!1),x>0){if(x&16)ie(m,f,w,v,a,p,h);else if(x&2&&w.class!==v.class&&i(m,"class",null,v.class,h),x&4&&i(m,"style",w.style,v.style,h),x&8){const $=f.dynamicProps;for(let j=0;j<$.length;j++){const k=$[j],ae=w[k],Ze=v[k];(Ze!==ae||k==="value")&&i(m,k,ae,Ze,h,l.children,a,p,ve)}}x&1&&l.children!==f.children&&g(m,f.children)}else!C&&_==null&&ie(m,f,w,v,a,p,h);((I=v.onVnodeUpdated)||T)&&se(()=>{I&&Ce(I,a,f,l),T&&$e(f,l,a,"updated")},p)},W=(l,f,a,p,h,b,C)=>{for(let m=0;m<f.length;m++){const x=l[m],_=f[m],T=x.el&&(x.type===he||!ze(x,_)||x.shapeFlag&70)?y(x.el):a;O(x,_,T,null,p,h,b,C,!0)}},ie=(l,f,a,p,h,b,C)=>{if(a!==p){if(a!==D)for(const m in a)!At(m)&&!(m in p)&&i(l,m,a[m],null,C,f.children,h,b,ve);for(const m in p){if(At(m))continue;const x=p[m],_=a[m];x!==_&&m!=="value"&&i(l,m,_,x,C,f.children,h,b,ve)}"value"in p&&i(l,"value",a.value,p.value)}},be=(l,f,a,p,h,b,C,m,x)=>{const _=f.el=l?l.el:c(""),T=f.anchor=l?l.anchor:c("");let{patchFlag:w,dynamicChildren:v,slotScopeIds:I}=f;I&&(m=m?m.concat(I):I),l==null?(s(_,a,p),s(T,a,p),R(f.children,a,T,h,b,C,m,x)):w>0&&w&64&&v&&l.dynamicChildren?(W(l.dynamicChildren,v,a,h,b,C,m),(f.key!=null||h&&f===h.subTree)&&ur(l,f,!0)):U(l,f,a,T,h,b,C,m,x)},Te=(l,f,a,p,h,b,C,m,x)=>{f.slotScopeIds=m,l==null?f.shapeFlag&512?h.ctx.activate(f,a,p,C,x):ft(f,a,p,h,b,C,x):$n(l,f,x)},ft=(l,f,a,p,h,b,C)=>{const m=l.component=Co(l,p,h);if(Wt(l)&&(m.ctx.renderer=Xe),wo(m),m.asyncDep){if(h&&h.registerDep(m,te),!l.el){const x=m.subTree=He(Ie);B(null,x,f,a)}return}te(m,l,f,a,h,b,C)},$n=(l,f,a)=>{const p=f.component=l.component;if(Ai(l,f,a))if(p.asyncDep&&!p.asyncResolved){z(p,f,a);return}else p.next=f,xi(p.update),p.update();else f.el=l.el,p.vnode=f},te=(l,f,a,p,h,b,C)=>{const m=()=>{if(l.isMounted){let{next:T,bu:w,u:v,parent:I,vnode:N}=l,$=T,j;De(l,!1),T?(T.el=N.el,z(l,T,C)):T=N,w&&Zt(w),(j=T.props&&T.props.onVnodeBeforeUpdate)&&Ce(j,I,T,N),De(l,!0);const k=Qt(l),ae=l.subTree;l.subTree=k,O(ae,k,y(ae.el),Ct(ae),l,h,b),T.el=k.el,$===null&&Fi(l,k.el),v&&se(v,h),(j=T.props&&T.props.onVnodeUpdated)&&se(()=>Ce(j,I,T,N),h)}else{let T;const{el:w,props:v}=f,{bm:I,m:N,parent:$}=l,j=Pt(f);if(De(l,!1),I&&Zt(I),!j&&(T=v&&v.onVnodeBeforeMount)&&Ce(T,$,f),De(l,!0),w&&Yt){const k=()=>{l.subTree=Qt(l),Yt(w,l.subTree,l,h,null)};j?f.type.__asyncLoader().then(()=>!l.isUnmo