diff --git a/404.html b/404.html index 8a732b2..24a6985 100644 --- a/404.html +++ b/404.html @@ -7,7 +7,7 @@ - + @@ -15,7 +15,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/README.html b/README.html index a81a533..0e6b58c 100644 --- a/README.html +++ b/README.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

show

- +
Skip to content

show

+ \ No newline at end of file diff --git a/assets/README.md.3310442b.js b/assets/README.md.48bdfa41.js similarity index 86% rename from assets/README.md.3310442b.js rename to assets/README.md.48bdfa41.js index ef3f899..a8c0ef7 100644 --- a/assets/README.md.3310442b.js +++ b/assets/README.md.48bdfa41.js @@ -1 +1 @@ -import{_ as t,o,c as a,k as e,a as s}from"./chunks/framework.7f46d7d2.js";const r="/ok.mp4",x=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1713769091000}'),i={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[s("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:r,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,p,_,m,f,u){return o(),a("div",null,d)}const w=t(i,[["render",l]]);export{x as __pageData,w as default}; +import{_ as t,o,c as a,k as e,a as s}from"./chunks/framework.c0711e93.js";const r="/ok.mp4",x=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1717747502000}'),i={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[s("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:r,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,p,_,m,f,u){return o(),a("div",null,d)}const w=t(i,[["render",l]]);export{x as __pageData,w as default}; diff --git a/assets/README.md.3310442b.lean.js b/assets/README.md.48bdfa41.lean.js similarity index 86% rename from assets/README.md.3310442b.lean.js rename to assets/README.md.48bdfa41.lean.js index ef3f899..a8c0ef7 100644 --- a/assets/README.md.3310442b.lean.js +++ b/assets/README.md.48bdfa41.lean.js @@ -1 +1 @@ -import{_ as t,o,c as a,k as e,a as s}from"./chunks/framework.7f46d7d2.js";const r="/ok.mp4",x=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1713769091000}'),i={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[s("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:r,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,p,_,m,f,u){return o(),a("div",null,d)}const w=t(i,[["render",l]]);export{x as __pageData,w as default}; +import{_ as t,o,c as a,k as e,a as s}from"./chunks/framework.c0711e93.js";const r="/ok.mp4",x=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1717747502000}'),i={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[s("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:r,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,p,_,m,f,u){return o(),a("div",null,d)}const w=t(i,[["render",l]]);export{x as __pageData,w as default}; diff --git a/assets/app.01db763b.js b/assets/app.cc7d0a0a.js similarity index 90% rename from assets/app.01db763b.js rename to assets/app.cc7d0a0a.js index 0aa0ef4..36d250a 100644 --- a/assets/app.01db763b.js +++ b/assets/app.cc7d0a0a.js @@ -1 +1 @@ -import{s,a0 as i,a1 as u,a2 as c,a3 as l,a4 as d,a5 as f,a6 as m,a7 as h,a8 as A,a9 as g,aa as P,d as v,u as y,j as C,y as w,ab as _,ac as b,ad as E,ae as R}from"./chunks/framework.7f46d7d2.js";import{t as D}from"./chunks/theme.570c1129.js";function p(e){if(e.extends){const a=p(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=p(D),j=v({name:"VitePressApp",setup(){const{site:e}=y();return C(()=>{w(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),_(),b(),E(),o.setup&&o.setup(),()=>R(o.Layout)}});async function O(){const e=T(),a=S();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",d),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function S(){return h(j)}function T(){let e=s,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp}; +import{s,a0 as i,a1 as u,a2 as c,a3 as l,a4 as d,a5 as f,a6 as m,a7 as h,a8 as A,a9 as g,aa as P,d as v,u as y,j as C,y as w,ab as _,ac as b,ad as E,ae as R}from"./chunks/framework.c0711e93.js";import{t as D}from"./chunks/theme.950f48e3.js";function p(e){if(e.extends){const a=p(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const o=p(D),j=v({name:"VitePressApp",setup(){const{site:e}=y();return C(()=>{w(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),_(),b(),E(),o.setup&&o.setup(),()=>R(o.Layout)}});async function O(){const e=T(),a=S();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",d),a.component("ClientOnly",f),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),o.enhanceApp&&await o.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function S(){return h(j)}function T(){let e=s,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=P(()=>import(n),[])),s&&(e=!1),r},o.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp}; diff --git a/assets/chunks/framework.7f46d7d2.js b/assets/chunks/framework.7f46d7d2.js deleted file mode 100644 index d95972d..0000000 --- a/assets/chunks/framework.7f46d7d2.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @vue/shared v3.4.23 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function Et(e,t){const n=new Set(e.split(","));return t?r=>n.has(r.toLowerCase()):r=>n.has(r)}const re={},_t=[],ve=()=>{},go=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),dr=e=>e.startsWith("onUpdate:"),ie=Object.assign,hr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mo=Object.prototype.hasOwnProperty,J=(e,t)=>mo.call(e,t),V=Array.isArray,yt=e=>bn(e)==="[object Map]",$s=e=>bn(e)==="[object Set]",K=e=>typeof e=="function",ee=e=>typeof e=="string",dt=e=>typeof e=="symbol",Q=e=>e!==null&&typeof e=="object",ks=e=>(Q(e)||K(e))&&K(e.then)&&K(e.catch),Ds=Object.prototype.toString,bn=e=>Ds.call(e),_o=e=>bn(e).slice(8,-1),js=e=>bn(e)==="[object Object]",pr=e=>ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=Et(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),vn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},yo=/-(\w)/g,Ne=vn(e=>e.replace(yo,(t,n)=>n?n.toUpperCase():"")),bo=/\B([A-Z])/g,tt=vn(e=>e.replace(bo,"-$1").toLowerCase()),wn=vn(e=>e.charAt(0).toUpperCase()+e.slice(1)),sn=vn(e=>e?`on${wn(e)}`:""),Qe=(e,t)=>!Object.is(e,t),jn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},vo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},wo=e=>{const t=ee(e)?Number(e):NaN;return isNaN(t)?e:t};let Dr;const gr=()=>Dr||(Dr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xn(e){if(V(e)){const t={};for(let n=0;n{if(n){const r=n.split(Co);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function To(e){let t="";if(!e||ee(e))return t;for(const n in e){const r=e[n],s=n.startsWith("--")?n:tt(n);(ee(r)||typeof r=="number")&&(t+=`${s}:${r};`)}return t}function Cn(e){let t="";if(ee(e))t=e;else if(V(e))for(let n=0;nee(e)?e:e==null?"":V(e)||Q(e)&&(e.toString===Ds||!K(e.toString))?JSON.stringify(e,Bs,2):String(e),Bs=(e,t)=>t&&t.__v_isRef?Bs(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[Un(r,i)+" =>"]=s,n),{})}:$s(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Un(n))}:dt(t)?Un(t):Q(t)&&!V(t)&&!js(t)?String(t):t,Un=(e,t="")=>{var n;return dt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.23 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let be;class Io{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=be,!t&&be&&(this.index=(be.scopes||(be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=be;try{return be=this,t()}finally{be=n}}}on(){be=this}off(){be=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),je()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Je,n=ct;try{return Je=!0,ct=this,this._runnings++,Ur(this),this.fn()}finally{Vr(this),this._runnings--,ct=n,Je=t}}stop(){var t;this.active&&(Ur(this),Vr(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function No(e){return e.value}function Ur(e){e._trackId++,e._depsLength=0}function Vr(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},un=new WeakMap,at=Symbol(""),er=Symbol("");function _e(e,t,n){if(Je&&ct){let r=un.get(e);r||un.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=Gs(()=>r.delete(n))),zs(ct,s)}}function $e(e,t,n,r,s,i){const o=un.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&V(e)){const c=Number(r);o.forEach((u,d)=>{(d==="length"||!dt(d)&&d>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":V(e)?pr(n)&&l.push(o.get("length")):(l.push(o.get(at)),yt(e)&&l.push(o.get(er)));break;case"delete":V(e)||(l.push(o.get(at)),yt(e)&&l.push(o.get(er)));break;case"set":yt(e)&&l.push(o.get(at));break}yr();for(const c of l)c&&Ys(c,4);br()}function Ho(e,t){var n;return(n=un.get(e))==null?void 0:n.get(t)}const Fo=Et("__proto__,__v_isRef,__isVue"),Js=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(dt)),Br=$o();function $o(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=G(this);for(let i=0,o=this.length;i{e[t]=function(...n){De(),yr();const r=G(this)[t].apply(this,n);return br(),je(),r}}),e}function ko(e){dt(e)||(e=String(e));const t=G(this);return _e(t,"has",e),t.hasOwnProperty(e)}class Xs{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Xo:ti:i?ei:Qs).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=V(t);if(!s){if(o&&J(Br,n))return Reflect.get(Br,n,r);if(n==="hasOwnProperty")return ko}const l=Reflect.get(t,n,r);return(dt(n)?Js.has(n):Fo(n))||(s||_e(t,"get",n),i)?l:ue(l)?o&&pr(n)?l:l.value:Q(l)?s?Tn(l):Sn(l):l}}class Zs extends Xs{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=$t(i);if(!fn(r)&&!$t(r)&&(i=G(i),r=G(r)),!V(t)&&ue(i)&&!ue(r))return c?!1:(i.value=r,!0)}const o=V(t)&&pr(n)?Number(n)e,En=e=>Reflect.getPrototypeOf(e);function qt(e,t,n=!1,r=!1){e=e.__v_raw;const s=G(e),i=G(t);n||(Qe(t,i)&&_e(s,"get",t),_e(s,"get",i));const{has:o}=En(s),l=r?vr:n?Cr:kt;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function zt(e,t=!1){const n=this.__v_raw,r=G(n),s=G(e);return t||(Qe(e,s)&&_e(r,"has",e),_e(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Yt(e,t=!1){return e=e.__v_raw,!t&&_e(G(e),"iterate",at),Reflect.get(e,"size",e)}function Kr(e){e=G(e);const t=G(this);return En(t).has.call(t,e)||(t.add(e),$e(t,"add",e,e)),this}function Wr(e,t){t=G(t);const n=G(this),{has:r,get:s}=En(n);let i=r.call(n,e);i||(e=G(e),i=r.call(n,e));const o=s.call(n,e);return n.set(e,t),i?Qe(t,o)&&$e(n,"set",e,t):$e(n,"add",e,t),this}function qr(e){const t=G(this),{has:n,get:r}=En(t);let s=n.call(t,e);s||(e=G(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&$e(t,"delete",e,void 0),i}function zr(){const e=G(this),t=e.size!==0,n=e.clear();return t&&$e(e,"clear",void 0,void 0),n}function Gt(e,t){return function(r,s){const i=this,o=i.__v_raw,l=G(o),c=t?vr:e?Cr:kt;return!e&&_e(l,"iterate",at),o.forEach((u,d)=>r.call(s,c(u),c(d),i))}}function Jt(e,t,n){return function(...r){const s=this.__v_raw,i=G(s),o=yt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=s[e](...r),d=n?vr:t?Cr:kt;return!t&&_e(i,"iterate",c?er:at),{next(){const{value:h,done:_}=u.next();return _?{value:h,done:_}:{value:l?[d(h[0]),d(h[1])]:d(h),done:_}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Bo(){const e={get(i){return qt(this,i)},get size(){return Yt(this)},has:zt,add:Kr,set:Wr,delete:qr,clear:zr,forEach:Gt(!1,!1)},t={get(i){return qt(this,i,!1,!0)},get size(){return Yt(this)},has:zt,add:Kr,set:Wr,delete:qr,clear:zr,forEach:Gt(!1,!0)},n={get(i){return qt(this,i,!0)},get size(){return Yt(this,!0)},has(i){return zt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!1)},r={get(i){return qt(this,i,!0,!0)},get size(){return Yt(this,!0)},has(i){return zt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Jt(i,!1,!1),n[i]=Jt(i,!0,!1),t[i]=Jt(i,!1,!0),r[i]=Jt(i,!0,!0)}),[e,n,t,r]}const[Ko,Wo,qo,zo]=Bo();function wr(e,t){const n=t?e?zo:qo:e?Wo:Ko;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(J(n,s)&&s in r?n:r,s,i)}const Yo={get:wr(!1,!1)},Go={get:wr(!1,!0)},Jo={get:wr(!0,!1)},Qs=new WeakMap,ei=new WeakMap,ti=new WeakMap,Xo=new WeakMap;function Zo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Qo(e){return e.__v_skip||!Object.isExtensible(e)?0:Zo(_o(e))}function Sn(e){return $t(e)?e:xr(e,!1,jo,Yo,Qs)}function el(e){return xr(e,!1,Vo,Go,ei)}function Tn(e){return xr(e,!0,Uo,Jo,ti)}function xr(e,t,n,r,s){if(!Q(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Qo(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function Mt(e){return $t(e)?Mt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function fn(e){return!!(e&&e.__v_isShallow)}function ni(e){return e?!!e.__v_raw:!1}function G(e){const t=e&&e.__v_raw;return t?G(t):e}function on(e){return Object.isExtensible(e)&&Us(e,"__v_skip",!0),e}const kt=e=>Q(e)?Sn(e):e,Cr=e=>Q(e)?Tn(e):e;class ri{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new _r(()=>t(this._value),()=>It(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=G(this);return(!t._cacheable||t.effect.dirty)&&Qe(t._value,t._value=t.effect.run())&&It(t,4),Er(t),t.effect._dirtyLevel>=2&&It(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function tl(e,t,n=!1){let r,s;const i=K(e);return i?(r=e,s=ve):(r=e.get,s=e.set),new ri(r,s,i||!s,n)}function Er(e){var t;Je&&ct&&(e=G(e),zs(ct,(t=e.dep)!=null?t:e.dep=Gs(()=>e.dep=void 0,e instanceof ri?e:void 0)))}function It(e,t=4,n){e=G(e);const r=e.dep;r&&Ys(r,t)}function ue(e){return!!(e&&e.__v_isRef===!0)}function me(e){return ii(e,!1)}function si(e){return ii(e,!0)}function ii(e,t){return ue(e)?e:new nl(e,t)}class nl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:G(t),this._value=n?t:kt(t)}get value(){return Er(this),this._value}set value(t){const n=this.__v_isShallow||fn(t)||$t(t);t=n?t:G(t),Qe(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:kt(t),It(this,4))}}function Sr(e){return ue(e)?e.value:e}const rl={get:(e,t,n)=>Sr(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ue(s)&&!ue(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function oi(e){return Mt(e)?e:new Proxy(e,rl)}class sl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Er(this),()=>It(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function il(e){return new sl(e)}class ol{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ho(G(this._object),this._key)}}class ll{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function cl(e,t,n){return ue(e)?e:K(e)?new ll(e):Q(e)&&arguments.length>1?al(e,t,n):me(e)}function al(e,t,n){const r=e[t];return ue(r)?r:new ol(e,t,n)}/** -* @vue/runtime-core v3.4.23 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Lt=[];function We(e,...t){De();const n=Lt.length?Lt[Lt.length-1].component:null,r=n&&n.appContext.config.warnHandler,s=ul();if(r)ke(r,n,11,[e+t.map(i=>{var o,l;return(l=(o=i.toString)==null?void 0:o.call(i))!=null?l:JSON.stringify(i)}).join(""),n&&n.proxy,s.map(({vnode:i})=>`at <${qi(n,i.type)}>`).join(` -`),s]);else{const i=[`[Vue warn]: ${e}`,...t];s.length&&i.push(` -`,...fl(s)),console.warn(...i)}je()}function ul(){let e=Lt[Lt.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function fl(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[` -`],...dl(n))}),t}function dl({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,s=` at <${qi(e.component,e.type,r)}`,i=">"+n;return e.props?[s,...hl(e.props),i]:[s+i]}function hl(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...li(r,e[r]))}),n.length>3&&t.push(" ..."),t}function li(e,t,n){return ee(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ue(t)?(t=li(e,G(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):K(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=G(t),n?t:[`${e}=`,t])}function ke(e,t,n,r){try{return r?e(...r):e()}catch(s){An(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=ke(e,t,n,r);return s&&ks(s)&&s.catch(i=>{An(i,t,n)}),s}if(V(e)){const s=[];for(let i=0;i>>1,s=fe[r],i=jt(s);iPe&&fe.splice(t,1)}function _l(e){V(e)?vt.push(...e):(!qe||!qe.includes(e,e.allowRecurse?ot+1:ot))&&vt.push(e),ai()}function Yr(e,t,n=Dt?Pe+1:0){for(;njt(n)-jt(r));if(vt.length=0,qe){qe.push(...t);return}for(qe=t,ot=0;ote.id==null?1/0:e.id,yl=(e,t)=>{const n=jt(e)-jt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ui(e){tr=!1,Dt=!0,fe.sort(yl);const t=ve;try{for(Pe=0;Peee(x)?x.trim():x)),h&&(s=n.map(vo))}let l,c=r[l=sn(t)]||r[l=sn(Ne(t))];!c&&i&&(c=r[l=sn(tt(t))]),c&&Se(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(u,e,6,s)}}function fi(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!K(e)){const c=u=>{const d=fi(u,t,!0);d&&(l=!0,ie(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Q(e)&&r.set(e,null),null):(V(i)?i.forEach(c=>o[c]=null):ie(o,i),Q(e)&&r.set(e,o),o)}function Rn(e,t){return!e||!Bt(t)?!1:(t=t.slice(2).replace(/Once$/,""),J(e,t[0].toLowerCase()+t.slice(1))||J(e,tt(t))||J(e,t))}let de=null,Mn=null;function hn(e){const t=de;return de=e,Mn=e&&e.type.__scopeId||null,t}function Za(e){Mn=e}function Qa(){Mn=null}function vl(e,t=de,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&cs(-1);const i=hn(t);let o;try{o=e(...s)}finally{hn(i),r._d&&cs(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Vn(e){const{type:t,vnode:n,proxy:r,withProxy:s,props:i,propsOptions:[o],slots:l,attrs:c,emit:u,render:d,renderCache:h,data:_,setupState:x,ctx:L,inheritAttrs:P}=e;let j,W;const X=hn(e);try{if(n.shapeFlag&4){const m=s||r,I=m;j=Ae(d.call(I,m,h,i,x,_,L)),W=c}else{const m=t;j=Ae(m.length>1?m(i,{attrs:c,slots:l,emit:u}):m(i,null)),W=t.props?c:wl(c)}}catch(m){Ft.length=0,An(m,e,1),j=ae(we)}let p=j;if(W&&P!==!1){const m=Object.keys(W),{shapeFlag:I}=p;m.length&&I&7&&(o&&m.some(dr)&&(W=xl(W,o)),p=et(p,W))}return n.dirs&&(p=et(p),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),j=p,hn(X),j}const wl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Bt(n))&&((t||(t={}))[n]=e[n]);return t},xl=(e,t)=>{const n={};for(const r in e)(!dr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Cl(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Gr(r,o,u):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function pi(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):_l(e)}const Tl=Symbol.for("v-scx"),Al=()=>xt(Tl);function gi(e,t){return In(e,null,t)}function nu(e,t){return In(e,null,{flush:"post"})}const Xt={};function Xe(e,t,n){return In(e,t,n)}function In(e,t,{immediate:n,deep:r,flush:s,once:i,onTrack:o,onTrigger:l}=re){if(t&&i){const R=t;t=(...U)=>{R(...U),I()}}const c=ce,u=R=>r===!0?R:mt(R,r===!1?1:void 0);let d,h=!1,_=!1;if(ue(e)?(d=()=>e.value,h=fn(e)):Mt(e)?(d=()=>u(e),h=!0):V(e)?(_=!0,h=e.some(R=>Mt(R)||fn(R)),d=()=>e.map(R=>{if(ue(R))return R.value;if(Mt(R))return u(R);if(K(R))return ke(R,c,2)})):K(e)?t?d=()=>ke(e,c,2):d=()=>(x&&x(),Se(e,c,3,[L])):d=ve,t&&r){const R=d;d=()=>mt(R())}let x,L=R=>{x=p.onStop=()=>{ke(R,c,4),x=p.onStop=void 0}},P;if(Fn)if(L=ve,t?n&&Se(t,c,3,[d(),_?[]:void 0,L]):d(),s==="sync"){const R=Al();P=R.__watcherHandles||(R.__watcherHandles=[])}else return ve;let j=_?new Array(e.length).fill(Xt):Xt;const W=()=>{if(!(!p.active||!p.dirty))if(t){const R=p.run();(r||h||(_?R.some((U,A)=>Qe(U,j[A])):Qe(R,j)))&&(x&&x(),Se(t,c,3,[R,j===Xt?void 0:_&&j[0]===Xt?[]:j,L]),j=R)}else p.run()};W.allowRecurse=!!t;let X;s==="sync"?X=W:s==="post"?X=()=>ge(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),X=()=>Ar(W));const p=new _r(d,ve,X),m=Ks(),I=()=>{p.stop(),m&&hr(m.effects,p)};return t?n?W():j=p.run():s==="post"?ge(p.run.bind(p),c&&c.suspense):p.run(),P&&P.push(I),I}function Ol(e,t,n){const r=this.proxy,s=ee(e)?e.includes(".")?mi(r,e):()=>r[e]:e.bind(r,r);let i;K(t)?i=t:(i=t.handler,n=t);const o=Kt(this),l=In(s,i.bind(r),n);return o(),l}function mi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s0){if(n>=t)return e;n++}if(r=r||new Set,r.has(e))return e;if(r.add(e),ue(e))mt(e.value,t,n,r);else if(V(e))for(let s=0;s{mt(s,t,n,r)});else if(js(e))for(const s in e)mt(e[s],t,n,r);return e}function Le(e,t,n,r){const s=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),xi(()=>{e.isUnmounting=!0}),e}const xe=[Function,Array],_i={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:xe,onEnter:xe,onAfterEnter:xe,onEnterCancelled:xe,onBeforeLeave:xe,onLeave:xe,onAfterLeave:xe,onLeaveCancelled:xe,onBeforeAppear:xe,onAppear:xe,onAfterAppear:xe,onAppearCancelled:xe},Ml={name:"BaseTransition",props:_i,setup(e,{slots:t}){const n=Hn(),r=Rl();return()=>{const s=t.default&&bi(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){for(const _ of s)if(_.type!==we){i=_;break}}const o=G(e),{mode:l}=o;if(r.isLeaving)return Bn(i);const c=Xr(i);if(!c)return Bn(i);const u=nr(c,o,r,n);rr(c,u);const d=n.subTree,h=d&&Xr(d);if(h&&h.type!==we&&!lt(c,h)){const _=nr(h,o,r,n);if(rr(h,_),l==="out-in")return r.isLeaving=!0,_.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Bn(i);l==="in-out"&&c.type!==we&&(_.delayLeave=(x,L,P)=>{const j=yi(r,h);j[String(h.key)]=h,x[ze]=()=>{L(),x[ze]=void 0,delete u.delayedLeave},u.delayedLeave=P})}return i}}},Il=Ml;function yi(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nr(e,t,n,r){const{appear:s,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:_,onAfterLeave:x,onLeaveCancelled:L,onBeforeAppear:P,onAppear:j,onAfterAppear:W,onAppearCancelled:X}=t,p=String(e.key),m=yi(n,e),I=(A,$)=>{A&&Se(A,r,9,$)},R=(A,$)=>{const w=$[1];I(A,$),V(A)?A.every(D=>D.length<=1)&&w():A.length<=1&&w()},U={mode:i,persisted:o,beforeEnter(A){let $=l;if(!n.isMounted)if(s)$=P||l;else return;A[ze]&&A[ze](!0);const w=m[p];w&<(e,w)&&w.el[ze]&&w.el[ze](),I($,[A])},enter(A){let $=c,w=u,D=d;if(!n.isMounted)if(s)$=j||c,w=W||u,D=X||d;else return;let T=!1;const q=A[Zt]=te=>{T||(T=!0,te?I(D,[A]):I(w,[A]),U.delayedLeave&&U.delayedLeave(),A[Zt]=void 0)};$?R($,[A,q]):q()},leave(A,$){const w=String(e.key);if(A[Zt]&&A[Zt](!0),n.isUnmounting)return $();I(h,[A]);let D=!1;const T=A[ze]=q=>{D||(D=!0,$(),q?I(L,[A]):I(x,[A]),A[ze]=void 0,m[w]===e&&delete m[w])};m[w]=e,_?R(_,[A,T]):T()},clone(A){return nr(A,t,n,r)}};return U}function Bn(e){if(Ln(e))return e=et(e),e.children=null,e}function Xr(e){return Ln(e)?e.children?e.children[0]:void 0:e}function rr(e,t){e.shapeFlag&6&&e.component?rr(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 bi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iie({name:e.name},t,{setup:e}))():e}const wt=e=>!!e.type.__asyncLoader,Ln=e=>e.type.__isKeepAlive;function Ll(e,t){wi(e,"a",t)}function Pl(e,t){wi(e,"da",t)}function wi(e,t,n=ce){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Pn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Ln(s.parent.vnode)&&Nl(r,t,n,s),s=s.parent}}function Nl(e,t,n,r){const s=Pn(t,e,r,!0);Nn(()=>{hr(r[t],s)},n)}function Pn(e,t,n=ce,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;De();const l=Kt(n),c=Se(t,n,e,o);return l(),je(),c});return r?s.unshift(i):s.push(i),i}}const Ue=e=>(t,n=ce)=>(!Fn||e==="sp")&&Pn(e,(...r)=>t(...r),n),Hl=Ue("bm"),St=Ue("m"),Fl=Ue("bu"),$l=Ue("u"),xi=Ue("bum"),Nn=Ue("um"),kl=Ue("sp"),Dl=Ue("rtg"),jl=Ue("rtc");function Ul(e,t=ce){Pn("ec",e,t)}function ru(e,t,n,r){let s;const i=n&&n[r];if(V(e)||ee(e)){s=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);s=new Array(o.length);for(let l=0,c=o.length;lmn(t)?!(t.type===we||t.type===pe&&!Ci(t.children)):!0)?e:null}function iu(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:sn(r)]=e[r];return n}const sr=e=>e?Vi(e)?Lr(e)||e.proxy:sr(e.parent):null,Pt=ie(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=>sr(e.parent),$root:e=>sr(e.root),$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ar(e.update)}),$nextTick:e=>e.n||(e.n=On.bind(e.proxy)),$watch:e=>Ol.bind(e)}),Kn=(e,t)=>e!==re&&!e.__isScriptSetup&&J(e,t),Vl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(Kn(r,t))return o[t]=1,r[t];if(s!==re&&J(s,t))return o[t]=2,s[t];if((u=e.propsOptions[0])&&J(u,t))return o[t]=3,i[t];if(n!==re&&J(n,t))return o[t]=4,n[t];ir&&(o[t]=0)}}const d=Pt[t];let h,_;if(d)return t==="$attrs"&&_e(e.attrs,"get",""),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==re&&J(n,t))return o[t]=4,n[t];if(_=c.config.globalProperties,J(_,t))return _[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return Kn(s,t)?(s[t]=n,!0):r!==re&&J(r,t)?(r[t]=n,!0):J(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==re&&J(e,o)||Kn(t,o)||(l=i[0])&&J(l,o)||J(r,o)||J(Pt,o)||J(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:J(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ou(){return Bl().slots}function Bl(){const e=Hn();return e.setupContext||(e.setupContext=Ki(e))}function Zr(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ir=!0;function Kl(e){const t=Rr(e),n=e.proxy,r=e.ctx;ir=!1,t.beforeCreate&&Qr(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:u,created:d,beforeMount:h,mounted:_,beforeUpdate:x,updated:L,activated:P,deactivated:j,beforeDestroy:W,beforeUnmount:X,destroyed:p,unmounted:m,render:I,renderTracked:R,renderTriggered:U,errorCaptured:A,serverPrefetch:$,expose:w,inheritAttrs:D,components:T,directives:q,filters:te}=t;if(u&&Wl(u,r,null),o)for(const Y in o){const N=o[Y];K(N)&&(r[Y]=N.bind(n))}if(s){const Y=s.call(n,n);Q(Y)&&(e.data=Sn(Y))}if(ir=!0,i)for(const Y in i){const N=i[Y],Re=K(N)?N.bind(n,n):K(N.get)?N.get.bind(n,n):ve,ht=!K(N)&&K(N.set)?N.set.bind(n):ve,nt=se({get:Re,set:ht});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(l)for(const Y in l)Ei(l[Y],r,n,Y);if(c){const Y=K(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(N=>{Xl(N,Y[N])})}d&&Qr(d,e,"c");function F(Y,N){V(N)?N.forEach(Re=>Y(Re.bind(n))):N&&Y(N.bind(n))}if(F(Hl,h),F(St,_),F(Fl,x),F($l,L),F(Ll,P),F(Pl,j),F(Ul,A),F(jl,R),F(Dl,U),F(xi,X),F(Nn,m),F(kl,$),V(w))if(w.length){const Y=e.exposed||(e.exposed={});w.forEach(N=>{Object.defineProperty(Y,N,{get:()=>n[N],set:Re=>n[N]=Re})})}else e.exposed||(e.exposed={});I&&e.render===ve&&(e.render=I),D!=null&&(e.inheritAttrs=D),T&&(e.components=T),q&&(e.directives=q)}function Wl(e,t,n=ve){V(e)&&(e=or(e));for(const r in e){const s=e[r];let i;Q(s)?"default"in s?i=xt(s.from||r,s.default,!0):i=xt(s.from||r):i=xt(s),ue(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Qr(e,t,n){Se(V(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ei(e,t,n,r){const s=r.includes(".")?mi(n,r):()=>n[r];if(ee(e)){const i=t[e];K(i)&&Xe(s,i)}else if(K(e))Xe(s,e.bind(n));else if(Q(e))if(V(e))e.forEach(i=>Ei(i,t,n,r));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&Xe(s,i,e)}}function Rr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>pn(c,u,o,!0)),pn(c,t,o)),Q(t)&&i.set(t,c),c}function pn(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&pn(e,i,n,!0),s&&s.forEach(o=>pn(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=ql[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const ql={data:es,props:ts,emits:ts,methods:Rt,computed:Rt,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Rt,directives:Rt,watch:Yl,provide:es,inject:zl};function es(e,t){return t?e?function(){return ie(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function zl(e,t){return Rt(or(e),or(t))}function or(e){if(V(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const Ti=Object.create(null),lr=()=>Object.create(Ti),Ai=e=>Object.getPrototypeOf(e)===Ti;function Zl(e,t,n,r=!1){const s={},i=lr();e.propsDefaults=Object.create(null),Oi(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Ql(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=G(s),[c]=e.propsOptions;let u=!1;if((r||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[_,x]=Ri(h,t,!0);ie(o,_),x&&l.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Q(e)&&r.set(e,_t),_t;if(V(i))for(let d=0;d-1,x[1]=P<0||L-1||J(x,"default"))&&l.push(h)}}}const u=[o,l];return Q(e)&&r.set(e,u),u}function ns(e){return e[0]!=="$"&&!bt(e)}function rs(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ss(e,t){return rs(e)===rs(t)}function is(e,t){return V(t)?t.findIndex(n=>ss(n,e)):K(t)&&ss(t,e)?0:-1}const Mi=e=>e[0]==="_"||e==="$stable",Mr=e=>V(e)?e.map(Ae):[Ae(e)],ec=(e,t,n)=>{if(t._n)return t;const r=vl((...s)=>Mr(t(...s)),n);return r._c=!1,r},Ii=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Mi(s))continue;const i=e[s];if(K(i))t[s]=ec(s,i,r);else if(i!=null){const o=Mr(i);t[s]=()=>o}}},Li=(e,t)=>{const n=Mr(t);e.slots.default=()=>n},tc=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=G(t),Us(e.slots,"_",n)):Ii(t,e.slots=lr())}else e.slots=lr(),t&&Li(e,t)},nc=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=re;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(ie(s,t),!n&&l===1&&delete s._):(i=!t.$stable,Ii(t,s)),o=t}else t&&(Li(e,t),o={default:1});if(i)for(const l in s)!Mi(l)&&o[l]==null&&delete s[l]};function gn(e,t,n,r,s=!1){if(V(e)){e.forEach((_,x)=>gn(_,t&&(V(t)?t[x]:t),n,r,s));return}if(wt(r)&&!s)return;const i=r.shapeFlag&4?Lr(r.component)||r.component.proxy:r.el,o=s?null:i,{i:l,r:c}=e,u=t&&t.r,d=l.refs===re?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ee(u)?(d[u]=null,J(h,u)&&(h[u]=null)):ue(u)&&(u.value=null)),K(c))ke(c,l,12,[o,d]);else{const _=ee(c),x=ue(c);if(_||x){const L=()=>{if(e.f){const P=_?J(h,c)?h[c]:d[c]:c.value;s?V(P)&&hr(P,i):V(P)?P.includes(i)||P.push(i):_?(d[c]=[i],J(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else _?(d[c]=o,J(h,c)&&(h[c]=o)):x&&(c.value=o,e.k&&(d[e.k]=o))};o?(L.id=-1,ge(L,n)):L()}}}let Fe=!1;const rc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sc=e=>e.namespaceURI.includes("MathML"),Qt=e=>{if(rc(e))return"svg";if(sc(e))return"mathml"},At=e=>e.nodeType===8;function ic(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,d=(p,m)=>{if(!m.hasChildNodes()){__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,p,m),dn(),m._vnode=p;return}Fe=!1,h(m.firstChild,p,null,null,null),dn(),m._vnode=p,Fe&&console.error("Hydration completed but contains mismatches.")},h=(p,m,I,R,U,A=!1)=>{A=A||!!m.dynamicChildren;const $=At(p)&&p.data==="[",w=()=>P(p,m,I,R,U,$),{type:D,ref:T,shapeFlag:q,patchFlag:te}=m;let le=p.nodeType;m.el=p,te===-2&&(A=!1,m.dynamicChildren=null);let F=null;switch(D){case Ct:le!==3?m.children===""?(c(m.el=s(""),o(p),p),F=p):F=w():(p.data!==m.children&&(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Hydration text mismatch in",p.parentNode,` - - rendered on server: ${JSON.stringify(p.data)} - - expected on client: ${JSON.stringify(m.children)}`),p.data=m.children),F=i(p));break;case we:X(p)?(F=i(p),W(m.el=p.content.firstChild,p,I)):le!==8||$?F=w():F=i(p);break;case Ht:if($&&(p=i(p),le=p.nodeType),le===1||le===3){F=p;const Y=!m.children.length;for(let N=0;N{A=A||!!m.dynamicChildren;const{type:$,props:w,patchFlag:D,shapeFlag:T,dirs:q,transition:te}=m,le=$==="input"||$==="option";if(le||D!==-1){q&&Le(m,null,I,"created");let F=!1;if(X(p)){F=Pi(R,te)&&I&&I.vnode.props&&I.vnode.props.appear;const N=p.content.firstChild;F&&te.beforeEnter(N),W(N,p,I),m.el=p=N}if(T&16&&!(w&&(w.innerHTML||w.textContent))){let N=x(p.firstChild,m,p,I,R,U,A),Re=!1;for(;N;){Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&!Re&&(We("Hydration children mismatch on",p,` -Server rendered element contains more child nodes than client vdom.`),Re=!0);const ht=N;N=N.nextSibling,l(ht)}}else T&8&&p.textContent!==m.children&&(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Hydration text content mismatch on",p,` - - rendered on server: ${p.textContent} - - expected on client: ${m.children}`),p.textContent=m.children);if(w)if(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__||le||!A||D&48)for(const N in w)__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&oc(p,N,w[N],m,I)&&(Fe=!0),(le&&(N.endsWith("value")||N==="indeterminate")||Bt(N)&&!bt(N)||N[0]===".")&&r(p,N,null,w[N],void 0,void 0,I);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,I);let Y;(Y=w&&w.onVnodeBeforeMount)&&Ce(Y,I,m),q&&Le(m,null,I,"beforeMount"),((Y=w&&w.onVnodeMounted)||q||F)&&pi(()=>{Y&&Ce(Y,I,m),F&&te.enter(p),q&&Le(m,null,I,"mounted")},R)}return p.nextSibling},x=(p,m,I,R,U,A,$)=>{$=$||!!m.dynamicChildren;const w=m.children,D=w.length;let T=!1;for(let q=0;q{const{slotScopeIds:$}=m;$&&(U=U?U.concat($):$);const w=o(p),D=x(i(p),m,w,I,R,U,A);return D&&At(D)&&D.data==="]"?i(m.anchor=D):(Fe=!0,c(m.anchor=u("]"),w,D),D)},P=(p,m,I,R,U,A)=>{if(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We(`Hydration node mismatch: -- rendered on server:`,p,p.nodeType===3?"(text)":At(p)&&p.data==="["?"(start of fragment)":"",` -- expected on client:`,m.type),m.el=null,A){const D=j(p);for(;;){const T=i(p);if(T&&T!==D)l(T);else break}}const $=i(p),w=o(p);return l(p),n(null,m,w,$,I,R,Qt(w),U),$},j=(p,m="[",I="]")=>{let R=0;for(;p;)if(p=i(p),p&&At(p)&&(p.data===m&&R++,p.data===I)){if(R===0)return i(p);R--}return p},W=(p,m,I)=>{const R=m.parentNode;R&&R.replaceChild(p,m);let U=I;for(;U;)U.vnode.el===m&&(U.vnode.el=U.subTree.el=p),U=U.parent},X=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[d,h]}function oc(e,t,n,r,s){var i;let o,l,c,u;if(t==="class")c=e.getAttribute("class"),u=Cn(n),lc(os(c||""),os(u))||(o=l="class");else if(t==="style"){c=e.getAttribute("style"),u=ee(n)?n:To(xn(n));const d=ls(c),h=ls(u);if(r.dirs)for(const{dir:x,value:L}of r.dirs)x.name==="show"&&!L&&h.set("display","none");const _=s==null?void 0:s.subTree;if(r===_||(_==null?void 0:_.type)===pe&&_.children.includes(r)){const x=(i=s==null?void 0:s.getCssVars)==null?void 0:i.call(s);for(const L in x)h.set(`--${L}`,String(x[L]))}cc(d,h)||(o=l="style")}else(e instanceof SVGElement&&Ro(t)||e instanceof HTMLElement&&(jr(t)||Oo(t)))&&(jr(t)?(c=e.hasAttribute(t),u=mr(n)):n==null?(c=e.hasAttribute(t),u=!1):(e.hasAttribute(t)?c=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?c=e.value:c=!1,u=Mo(n)?String(n):!1),c!==u&&(o="attribute",l=t));if(o){const d=x=>x===!1?"(not rendered)":`${l}="${x}"`,h=`Hydration ${o} mismatch on`,_=` - - rendered on server: ${d(c)} - - expected on client: ${d(u)} - Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`;return We(h,e,_),!0}return!1}function os(e){return new Set(e.trim().split(/\s+/))}function lc(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function ls(e){const t=new Map;for(const n of e.split(";")){let[r,s]=n.split(":");r=r==null?void 0:r.trim(),s=s==null?void 0:s.trim(),r&&s&&t.set(r,s)}return t}function cc(e,t){if(e.size!==t.size)return!1;for(const[n,r]of e)if(r!==t.get(n))return!1;return!0}function ac(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(gr().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const ge=pi;function uc(e){return fc(e,ic)}function fc(e,t){ac();const n=gr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:_,setScopeId:x=ve,insertStaticContent:L}=e,P=(a,f,g,y=null,b=null,E=null,O=void 0,C=null,S=!!f.dynamicChildren)=>{if(a===f)return;a&&!lt(a,f)&&(y=Wt(a),Me(a,b,E,!0),a=null),f.patchFlag===-2&&(S=!1,f.dynamicChildren=null);const{type:v,ref:M,shapeFlag:k}=f;switch(v){case Ct:j(a,f,g,y);break;case we:W(a,f,g,y);break;case Ht:a==null&&X(f,g,y,O);break;case pe:T(a,f,g,y,b,E,O,C,S);break;default:k&1?I(a,f,g,y,b,E,O,C,S):k&6?q(a,f,g,y,b,E,O,C,S):(k&64||k&128)&&v.process(a,f,g,y,b,E,O,C,S,pt)}M!=null&&b&&gn(M,a&&a.ref,E,f||a,!f)},j=(a,f,g,y)=>{if(a==null)r(f.el=l(f.children),g,y);else{const b=f.el=a.el;f.children!==a.children&&u(b,f.children)}},W=(a,f,g,y)=>{a==null?r(f.el=c(f.children||""),g,y):f.el=a.el},X=(a,f,g,y)=>{[a.el,a.anchor]=L(a.children,f,g,y,a.el,a.anchor)},p=({el:a,anchor:f},g,y)=>{let b;for(;a&&a!==f;)b=_(a),r(a,g,y),a=b;r(f,g,y)},m=({el:a,anchor:f})=>{let g;for(;a&&a!==f;)g=_(a),s(a),a=g;s(f)},I=(a,f,g,y,b,E,O,C,S)=>{f.type==="svg"?O="svg":f.type==="math"&&(O="mathml"),a==null?R(f,g,y,b,E,O,C,S):$(a,f,b,E,O,C,S)},R=(a,f,g,y,b,E,O,C)=>{let S,v;const{props:M,shapeFlag:k,transition:H,dirs:B}=a;if(S=a.el=o(a.type,E,M&&M.is,M),k&8?d(S,a.children):k&16&&A(a.children,S,null,y,b,Wn(a,E),O,C),B&&Le(a,null,y,"created"),U(S,a,a.scopeId,O,y),M){for(const Z in M)Z!=="value"&&!bt(Z)&&i(S,Z,null,M[Z],E,a.children,y,b,He);"value"in M&&i(S,"value",null,M.value,E),(v=M.onVnodeBeforeMount)&&Ce(v,y,a)}B&&Le(a,null,y,"beforeMount");const z=Pi(b,H);z&&H.beforeEnter(S),r(S,f,g),((v=M&&M.onVnodeMounted)||z||B)&&ge(()=>{v&&Ce(v,y,a),z&&H.enter(S),B&&Le(a,null,y,"mounted")},b)},U=(a,f,g,y,b)=>{if(g&&x(a,g),y)for(let E=0;E{for(let v=S;v{const C=f.el=a.el;let{patchFlag:S,dynamicChildren:v,dirs:M}=f;S|=a.patchFlag&16;const k=a.props||re,H=f.props||re;let B;if(g&&rt(g,!1),(B=H.onVnodeBeforeUpdate)&&Ce(B,g,f,a),M&&Le(f,a,g,"beforeUpdate"),g&&rt(g,!0),v?w(a.dynamicChildren,v,C,g,y,Wn(f,b),E):O||N(a,f,C,null,g,y,Wn(f,b),E,!1),S>0){if(S&16)D(C,f,k,H,g,y,b);else if(S&2&&k.class!==H.class&&i(C,"class",null,H.class,b),S&4&&i(C,"style",k.style,H.style,b),S&8){const z=f.dynamicProps;for(let Z=0;Z{B&&Ce(B,g,f,a),M&&Le(f,a,g,"updated")},y)},w=(a,f,g,y,b,E,O)=>{for(let C=0;C{if(g!==y){if(g!==re)for(const C in g)!bt(C)&&!(C in y)&&i(a,C,g[C],null,O,f.children,b,E,He);for(const C in y){if(bt(C))continue;const S=y[C],v=g[C];S!==v&&C!=="value"&&i(a,C,v,S,O,f.children,b,E,He)}"value"in y&&i(a,"value",g.value,y.value,O)}},T=(a,f,g,y,b,E,O,C,S)=>{const v=f.el=a?a.el:l(""),M=f.anchor=a?a.anchor:l("");let{patchFlag:k,dynamicChildren:H,slotScopeIds:B}=f;B&&(C=C?C.concat(B):B),a==null?(r(v,g,y),r(M,g,y),A(f.children||[],g,M,b,E,O,C,S)):k>0&&k&64&&H&&a.dynamicChildren?(w(a.dynamicChildren,H,g,b,E,O,C),(f.key!=null||b&&f===b.subTree)&&Ni(a,f,!0)):N(a,f,g,M,b,E,O,C,S)},q=(a,f,g,y,b,E,O,C,S)=>{f.slotScopeIds=C,a==null?f.shapeFlag&512?b.ctx.activate(f,g,y,O,S):te(f,g,y,b,E,O,S):le(a,f,S)},te=(a,f,g,y,b,E,O)=>{const C=a.component=vc(a,y,b);if(Ln(a)&&(C.ctx.renderer=pt),wc(C),C.asyncDep){if(b&&b.registerDep(C,F),!a.el){const S=C.subTree=ae(we);W(null,S,f,g)}}else F(C,a,f,g,b,E,O)},le=(a,f,g)=>{const y=f.component=a.component;if(Cl(a,f,g))if(y.asyncDep&&!y.asyncResolved){Y(y,f,g);return}else y.next=f,ml(y.update),y.effect.dirty=!0,y.update();else f.el=a.el,y.vnode=f},F=(a,f,g,y,b,E,O)=>{const C=()=>{if(a.isMounted){let{next:M,bu:k,u:H,parent:B,vnode:z}=a;{const gt=Hi(a);if(gt){M&&(M.el=z.el,Y(a,M,O)),gt.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Z=M,ne;rt(a,!1),M?(M.el=z.el,Y(a,M,O)):M=z,k&&jn(k),(ne=M.props&&M.props.onVnodeBeforeUpdate)&&Ce(ne,B,M,z),rt(a,!0);const oe=Vn(a),Te=a.subTree;a.subTree=oe,P(Te,oe,h(Te.el),Wt(Te),a,b,E),M.el=oe.el,Z===null&&El(a,oe.el),H&&ge(H,b),(ne=M.props&&M.props.onVnodeUpdated)&&ge(()=>Ce(ne,B,M,z),b)}else{let M;const{el:k,props:H}=f,{bm:B,m:z,parent:Z}=a,ne=wt(f);if(rt(a,!1),B&&jn(B),!ne&&(M=H&&H.onVnodeBeforeMount)&&Ce(M,Z,f),rt(a,!0),k&&Dn){const oe=()=>{a.subTree=Vn(a),Dn(k,a.subTree,a,b,null)};ne?f.type.__asyncLoader().then(()=>!a.isUnmounted&&oe()):oe()}else{const oe=a.subTree=Vn(a);P(null,oe,g,y,a,b,E),f.el=oe.el}if(z&&ge(z,b),!ne&&(M=H&&H.onVnodeMounted)){const oe=f;ge(()=>Ce(M,Z,oe),b)}(f.shapeFlag&256||Z&&wt(Z.vnode)&&Z.vnode.shapeFlag&256)&&a.a&&ge(a.a,b),a.isMounted=!0,f=g=y=null}},S=a.effect=new _r(C,ve,()=>Ar(v),a.scope),v=a.update=()=>{S.dirty&&S.run()};v.id=a.uid,rt(a,!0),v()},Y=(a,f,g)=>{f.component=a;const y=a.vnode.props;a.vnode=f,a.next=null,Ql(a,f.props,y,g),nc(a,f.children,g),De(),Yr(a),je()},N=(a,f,g,y,b,E,O,C,S=!1)=>{const v=a&&a.children,M=a?a.shapeFlag:0,k=f.children,{patchFlag:H,shapeFlag:B}=f;if(H>0){if(H&128){ht(v,k,g,y,b,E,O,C,S);return}else if(H&256){Re(v,k,g,y,b,E,O,C,S);return}}B&8?(M&16&&He(v,b,E),k!==v&&d(g,k)):M&16?B&16?ht(v,k,g,y,b,E,O,C,S):He(v,b,E,!0):(M&8&&d(g,""),B&16&&A(k,g,y,b,E,O,C,S))},Re=(a,f,g,y,b,E,O,C,S)=>{a=a||_t,f=f||_t;const v=a.length,M=f.length,k=Math.min(v,M);let H;for(H=0;HM?He(a,b,E,!0,!1,k):A(f,g,y,b,E,O,C,S,k)},ht=(a,f,g,y,b,E,O,C,S)=>{let v=0;const M=f.length;let k=a.length-1,H=M-1;for(;v<=k&&v<=H;){const B=a[v],z=f[v]=S?Ye(f[v]):Ae(f[v]);if(lt(B,z))P(B,z,g,null,b,E,O,C,S);else break;v++}for(;v<=k&&v<=H;){const B=a[k],z=f[H]=S?Ye(f[H]):Ae(f[H]);if(lt(B,z))P(B,z,g,null,b,E,O,C,S);else break;k--,H--}if(v>k){if(v<=H){const B=H+1,z=BH)for(;v<=k;)Me(a[v],b,E,!0),v++;else{const B=v,z=v,Z=new Map;for(v=z;v<=H;v++){const ye=f[v]=S?Ye(f[v]):Ae(f[v]);ye.key!=null&&Z.set(ye.key,v)}let ne,oe=0;const Te=H-z+1;let gt=!1,Fr=0;const Tt=new Array(Te);for(v=0;v=Te){Me(ye,b,E,!0);continue}let Ie;if(ye.key!=null)Ie=Z.get(ye.key);else for(ne=z;ne<=H;ne++)if(Tt[ne-z]===0&<(ye,f[ne])){Ie=ne;break}Ie===void 0?Me(ye,b,E,!0):(Tt[Ie-z]=v+1,Ie>=Fr?Fr=Ie:gt=!0,P(ye,f[Ie],g,null,b,E,O,C,S),oe++)}const $r=gt?dc(Tt):_t;for(ne=$r.length-1,v=Te-1;v>=0;v--){const ye=z+v,Ie=f[ye],kr=ye+1{const{el:E,type:O,transition:C,children:S,shapeFlag:v}=a;if(v&6){nt(a.component.subTree,f,g,y);return}if(v&128){a.suspense.move(f,g,y);return}if(v&64){O.move(a,f,g,pt);return}if(O===pe){r(E,f,g);for(let k=0;kC.enter(E),b);else{const{leave:k,delayLeave:H,afterLeave:B}=C,z=()=>r(E,f,g),Z=()=>{k(E,()=>{z(),B&&B()})};H?H(E,z,Z):Z()}else r(E,f,g)},Me=(a,f,g,y=!1,b=!1)=>{const{type:E,props:O,ref:C,children:S,dynamicChildren:v,shapeFlag:M,patchFlag:k,dirs:H}=a;if(C!=null&&gn(C,null,g,a,!0),M&256){f.ctx.deactivate(a);return}const B=M&1&&H,z=!wt(a);let Z;if(z&&(Z=O&&O.onVnodeBeforeUnmount)&&Ce(Z,f,a),M&6)po(a.component,g,y);else{if(M&128){a.suspense.unmount(g,y);return}B&&Le(a,null,f,"beforeUnmount"),M&64?a.type.remove(a,f,g,b,pt,y):v&&(E!==pe||k>0&&k&64)?He(v,f,g,!1,!0):(E===pe&&k&384||!b&&M&16)&&He(S,f,g),y&&Nr(a)}(z&&(Z=O&&O.onVnodeUnmounted)||B)&&ge(()=>{Z&&Ce(Z,f,a),B&&Le(a,null,f,"unmounted")},g)},Nr=a=>{const{type:f,el:g,anchor:y,transition:b}=a;if(f===pe){ho(g,y);return}if(f===Ht){m(a);return}const E=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(a.shapeFlag&1&&b&&!b.persisted){const{leave:O,delayLeave:C}=b,S=()=>O(g,E);C?C(a.el,E,S):S()}else E()},ho=(a,f)=>{let g;for(;a!==f;)g=_(a),s(a),a=g;s(f)},po=(a,f,g)=>{const{bum:y,scope:b,update:E,subTree:O,um:C}=a;y&&jn(y),b.stop(),E&&(E.active=!1,Me(O,a,f,g)),C&&ge(C,f),ge(()=>{a.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},He=(a,f,g,y=!1,b=!1,E=0)=>{for(let O=E;Oa.shapeFlag&6?Wt(a.component.subTree):a.shapeFlag&128?a.suspense.next():_(a.anchor||a.el);let $n=!1;const Hr=(a,f,g)=>{a==null?f._vnode&&Me(f._vnode,null,null,!0):P(f._vnode||null,a,f,null,null,null,g),$n||($n=!0,Yr(),dn(),$n=!1),f._vnode=a},pt={p:P,um:Me,m:nt,r:Nr,mt:te,mc:A,pc:N,pbc:w,n:Wt,o:e};let kn,Dn;return t&&([kn,Dn]=t(pt)),{render:Hr,hydrate:kn,createApp:Jl(Hr,kn)}}function Wn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Pi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ni(e,t,n=!1){const r=e.children,s=t.children;if(V(r)&&V(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}const hc=e=>e.__isTeleport,pe=Symbol.for("v-fgt"),Ct=Symbol.for("v-txt"),we=Symbol.for("v-cmt"),Ht=Symbol.for("v-stc"),Ft=[];let Oe=null;function Fi(e=!1){Ft.push(Oe=e?null:[])}function pc(){Ft.pop(),Oe=Ft[Ft.length-1]||null}let Ut=1;function cs(e){Ut+=e}function $i(e){return e.dynamicChildren=Ut>0?Oe||_t:null,pc(),Ut>0&&Oe&&Oe.push(e),e}function lu(e,t,n,r,s,i){return $i(ji(e,t,n,r,s,i,!0))}function ki(e,t,n,r,s){return $i(ae(e,t,n,r,s,!0))}function mn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const Di=({key:e})=>e??null,ln=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ee(e)||ue(e)||K(e)?{i:de,r:e,k:t,f:!!n}:e:null);function ji(e,t=null,n=null,r=0,s=null,i=e===pe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Di(t),ref:t&&ln(t),scopeId:Mn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(Ir(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ee(n)?8:16),Ut>0&&!o&&Oe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Oe.push(c),c}const ae=gc;function gc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===di)&&(e=we),mn(e)){const l=et(e,t,!0);return n&&Ir(l,n),Ut>0&&!i&&Oe&&(l.shapeFlag&6?Oe[Oe.indexOf(e)]=l:Oe.push(l)),l.patchFlag|=-2,l}if(Tc(e)&&(e=e.__vccOpts),t){t=mc(t);let{class:l,style:c}=t;l&&!ee(l)&&(t.class=Cn(l)),Q(c)&&(ni(c)&&!V(c)&&(c=ie({},c)),t.style=xn(c))}const o=ee(e)?1:Sl(e)?128:hc(e)?64:Q(e)?4:K(e)?2:0;return ji(e,t,n,r,s,o,i,!0)}function mc(e){return e?ni(e)||Ai(e)?ie({},e):e:null}function et(e,t,n=!1){const{props:r,ref:s,patchFlag:i,children:o}=e,l=t?_c(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Di(l),ref:t&&t.ref?n&&s?V(s)?s.concat(ln(t)):[s,ln(t)]:ln(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&et(e.ssContent),ssFallback:e.ssFallback&&et(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ui(e=" ",t=0){return ae(Ct,null,e,t)}function cu(e,t){const n=ae(Ht,null,e);return n.staticCount=t,n}function au(e="",t=!1){return t?(Fi(),ki(we,null,e)):ae(we,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ae(we):V(e)?ae(pe,null,e.slice()):typeof e=="object"?Ye(e):ae(Ct,null,String(e))}function Ye(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:et(e)}function Ir(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ir(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ai(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[Ui(t)]):n=8);e.children=t,e.shapeFlag|=n}function _c(...e){const t={};for(let n=0;nce||de;let _n,ar;{const e=gr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};_n=t("__VUE_INSTANCE_SETTERS__",n=>ce=n),ar=t("__VUE_SSR_SETTERS__",n=>Fn=n)}const Kt=e=>{const t=ce;return _n(e),e.scope.on(),()=>{e.scope.off(),_n(t)}},as=()=>{ce&&ce.scope.off(),_n(null)};function Vi(e){return e.vnode.shapeFlag&4}let Fn=!1;function wc(e,t=!1){t&&ar(t);const{props:n,children:r}=e.vnode,s=Vi(e);Zl(e,n,s,t),tc(e,r);const i=s?xc(e,t):void 0;return t&&ar(!1),i}function xc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Ki(e):null,i=Kt(e);De();const o=ke(r,e,0,[e.props,s]);if(je(),i(),ks(o)){if(o.then(as,as),t)return o.then(l=>{us(e,l,t)}).catch(l=>{An(l,e,0)});e.asyncDep=o}else us(e,o,t)}else Bi(e,t)}function us(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Q(t)&&(e.setupState=oi(t)),Bi(e,n)}let fs;function Bi(e,t,n){const r=e.type;if(!e.render){if(!t&&fs&&!r.render){const s=r.template||Rr(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=ie(ie({isCustomElement:i,delimiters:l},o),c);r.render=fs(s,u)}}e.render=r.render||ve}{const s=Kt(e);De();try{Kl(e)}finally{je(),s()}}}const Cc={get(e,t){return _e(e,"get",""),e[t]}};function Ki(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Cc),slots:e.slots,emit:e.emit,expose:t}}function Lr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(oi(on(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pt)return Pt[n](e)},has(t,n){return n in t||n in Pt}}))}const Ec=/(?:^|[-_])(\w)/g,Sc=e=>e.replace(Ec,t=>t.toUpperCase()).replace(/[-_]/g,"");function Wi(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function qi(e,t,n=!1){let r=Wi(t);if(!r&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(r=s[1])}if(!r&&e&&e.parent){const s=i=>{for(const o in i)if(i[o]===t)return o};r=s(e.components||e.parent.type.components)||s(e.appContext.components)}return r?Sc(r):n?"App":"Anonymous"}function Tc(e){return K(e)&&"__vccOpts"in e}const se=(e,t)=>tl(e,t,Fn);function ur(e,t,n){const r=arguments.length;return r===2?Q(t)&&!V(t)?mn(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&mn(n)&&(n=[n]),ae(e,t,n))}const Ac="3.4.23";/** -* @vue/runtime-dom v3.4.23 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Oc="http://www.w3.org/2000/svg",Rc="http://www.w3.org/1998/Math/MathML",Ge=typeof document<"u"?document:null,ds=Ge&&Ge.createElement("template"),Mc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ge.createElementNS(Oc,e):t==="mathml"?Ge.createElementNS(Rc,e):Ge.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ge.createTextNode(e),createComment:e=>Ge.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ge.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{ds.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=ds.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",Ot="animation",Vt=Symbol("_vtc"),zi=(e,{slots:t})=>ur(Il,Ic(e),t);zi.displayName="Transition";const Yi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};zi.props=ie({},_i,Yi);const st=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},hs=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function Ic(e){const t={};for(const T in e)T in Yi||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:_=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,L=Lc(s),P=L&&L[0],j=L&&L[1],{onBeforeEnter:W,onEnter:X,onEnterCancelled:p,onLeave:m,onLeaveCancelled:I,onBeforeAppear:R=W,onAppear:U=X,onAppearCancelled:A=p}=t,$=(T,q,te)=>{it(T,q?d:l),it(T,q?u:o),te&&te()},w=(T,q)=>{T._isLeaving=!1,it(T,h),it(T,x),it(T,_),q&&q()},D=T=>(q,te)=>{const le=T?U:X,F=()=>$(q,T,te);st(le,[q,F]),ps(()=>{it(q,T?c:i),Ke(q,T?d:l),hs(le)||gs(q,r,P,F)})};return ie(t,{onBeforeEnter(T){st(W,[T]),Ke(T,i),Ke(T,o)},onBeforeAppear(T){st(R,[T]),Ke(T,c),Ke(T,u)},onEnter:D(!1),onAppear:D(!0),onLeave(T,q){T._isLeaving=!0;const te=()=>w(T,q);Ke(T,h),Hc(),Ke(T,_),ps(()=>{T._isLeaving&&(it(T,h),Ke(T,x),hs(m)||gs(T,r,j,te))}),st(m,[T,te])},onEnterCancelled(T){$(T,!1),st(p,[T])},onAppearCancelled(T){$(T,!0),st(A,[T])},onLeaveCancelled(T){w(T),st(I,[T])}})}function Lc(e){if(e==null)return null;if(Q(e))return[qn(e.enter),qn(e.leave)];{const t=qn(e);return[t,t]}}function qn(e){return wo(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Vt]||(e[Vt]=new Set)).add(t)}function it(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Vt];n&&(n.delete(t),n.size||(e[Vt]=void 0))}function ps(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Pc=0;function gs(e,t,n,r){const s=e._endId=++Pc,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Nc(e,t);if(!o)return r();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,_),i()},_=x=>{x.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[L]||"").split(", "),s=r(`${Be}Delay`),i=r(`${Be}Duration`),o=ms(s,i),l=r(`${Ot}Delay`),c=r(`${Ot}Duration`),u=ms(l,c);let d=null,h=0,_=0;t===Be?o>0&&(d=Be,h=o,_=i.length):t===Ot?u>0&&(d=Ot,h=u,_=c.length):(h=Math.max(o,u),d=h>0?o>u?Be:Ot:null,_=d?d===Be?i.length:c.length:0);const x=d===Be&&/\b(transform|all)(,|$)/.test(r(`${Be}Property`).toString());return{type:d,timeout:h,propCount:_,hasTransform:x}}function ms(e,t){for(;e.length_s(n)+_s(e[r])))}function _s(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Hc(){return document.body.offsetHeight}function Fc(e,t,n){const r=e[Vt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const ys=Symbol("_vod"),$c=Symbol("_vsh"),kc=Symbol(""),Dc=/(^|;)\s*display\s*:/;function jc(e,t,n){const r=e.style,s=ee(n);let i=!1;if(n&&!s){if(t)if(ee(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&cn(r,l,"")}else for(const o in t)n[o]==null&&cn(r,o,"");for(const o in n)o==="display"&&(i=!0),cn(r,o,n[o])}else if(s){if(t!==n){const o=r[kc];o&&(n+=";"+o),r.cssText=n,i=Dc.test(n)}}else t&&e.removeAttribute("style");ys in e&&(e[ys]=i?r.display:"",e[$c]&&(r.display="none"))}const bs=/\s*!important$/;function cn(e,t,n){if(V(n))n.forEach(r=>cn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uc(e,t);bs.test(n)?e.setProperty(tt(r),n.replace(bs,""),"important"):e[r]=n}}const vs=["Webkit","Moz","ms"],zn={};function Uc(e,t){const n=zn[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return zn[t]=r;r=wn(r);for(let s=0;sYn||(Yc.then(()=>Yn=0),Yn=Date.now());function Jc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(Xc(r,n.value),t,5,[r])};return n.value=e,n.attached=Gc(),n}function Xc(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Es=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zc=(e,t,n,r,s,i,o,l,c)=>{const u=s==="svg";t==="class"?Fc(e,r,u):t==="style"?jc(e,n,r):Bt(t)?dr(t)||qc(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qc(e,t,r,u))?Bc(e,t,r,i,o,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Vc(e,t,r,u))};function Qc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Es(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Es(t)&&ee(n)?!1:t in e}const ea=["ctrl","shift","alt","meta"],ta={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ea.some(n=>e[`${n}Key`]&&!t.includes(n))},uu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=tt(s.key);if(t.some(o=>o===i||na[o]===i))return e(s)})},ra=ie({patchProp:Zc},Mc);let Gn,Ss=!1;function sa(){return Gn=Ss?Gn:uc(ra),Ss=!0,Gn}const du=(...e)=>{const t=sa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oa(r);if(s)return n(s,!0,ia(s))},t};function ia(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oa(e){return ee(e)?document.querySelector(e):e}const hu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},la="modulepreload",ca=function(e){return"/"+e},Ts={},pu=function(t,n,r){if(!n||n.length===0)return t();const s=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=ca(i),i in Ts)return;Ts[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!r)for(let d=s.length-1;d>=0;d--){const h=s[d];if(h.href===i&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":la,o||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),o)return new Promise((d,h)=>{u.addEventListener("load",d),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},aa=window.__VP_SITE_DATA__;function Pr(e){return Ks()?(Po(e),!0):!1}function Ze(e){return typeof e=="function"?e():Sr(e)}function gu(e,t){const n=(t==null?void 0:t.computedGetter)===!1?Sr:Ze;return function(...r){return se(()=>e.apply(this,r.map(s=>n(s))))}}const Gi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ua=Object.prototype.toString,fa=e=>ua.call(e)==="[object Object]",Ji=()=>{},As=da();function da(){var e,t;return Gi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ha(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Xi=e=>e();function pa(e=Xi){const t=me(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Tn(t),pause:n,resume:r,eventFilter:s}}function ga(e){return e||Hn()}function Zi(...e){if(e.length!==1)return cl(...e);const t=e[0];return typeof t=="function"?Tn(il(()=>({get:t,set:Ji}))):me(t)}function ma(e,t,n={}){const{eventFilter:r=Xi,...s}=n;return Xe(e,ha(r,t),s)}function _a(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=pa(r);return{stop:ma(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function Qi(e,t=!0,n){ga()?St(e,n):t?e():On(e)}function eo(e){var t;const n=Ze(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ft=Gi?window:void 0;function yn(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=ft):[t,n,r,s]=e,!t)return Ji;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,_,x)=>(d.addEventListener(h,_,x),()=>d.removeEventListener(h,_,x)),c=Xe(()=>[eo(t),Ze(s)],([d,h])=>{if(o(),!d)return;const _=fa(h)?{...h}:h;i.push(...n.flatMap(x=>r.map(L=>l(d,x,L,_))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return Pr(u),u}function ya(){const e=me(!1),t=Hn();return t&&St(()=>{e.value=!0},t),e}function ba(e){const t=ya();return se(()=>(t.value,!!e()))}function va(e,t={}){const{window:n=ft}=t,r=ba(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=me(!1),o=u=>{i.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=gi(()=>{r.value&&(l(),s=n.matchMedia(Ze(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return Pr(()=>{c(),l(),s=void 0}),i}const en=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},tn="__vueuse_ssr_handlers__",wa=xa();function xa(){return tn in en||(en[tn]=en[tn]||{}),en[tn]}function to(e,t){return wa[e]||t}function Ca(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ea={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Os="vueuse-storage";function Sa(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:d,window:h=ft,eventFilter:_,onError:x=w=>{console.error(w)},initOnMounted:L}=r,P=(d?si:me)(typeof t=="function"?t():t);if(!n)try{n=to("getDefaultStorage",()=>{var w;return(w=ft)==null?void 0:w.localStorage})()}catch(w){x(w)}if(!n)return P;const j=Ze(t),W=Ca(j),X=(s=r.serializer)!=null?s:Ea[W],{pause:p,resume:m}=_a(P,()=>R(P.value),{flush:i,deep:o,eventFilter:_});h&&l&&Qi(()=>{yn(h,"storage",A),yn(h,Os,$),L&&A()}),L||A();function I(w,D){h&&h.dispatchEvent(new CustomEvent(Os,{detail:{key:e,oldValue:w,newValue:D,storageArea:n}}))}function R(w){try{const D=n.getItem(e);if(w==null)I(D,null),n.removeItem(e);else{const T=X.write(w);D!==T&&(n.setItem(e,T),I(D,T))}}catch(D){x(D)}}function U(w){const D=w?w.newValue:n.getItem(e);if(D==null)return c&&j!=null&&n.setItem(e,X.write(j)),j;if(!w&&u){const T=X.read(D);return typeof u=="function"?u(T,j):W==="object"&&!Array.isArray(T)?{...j,...T}:T}else return typeof D!="string"?D:X.read(D)}function A(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){P.value=j;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==X.write(P.value)&&(P.value=U(w))}catch(D){x(D)}finally{w?On(m):m()}}}}function $(w){A(w.detail)}return P}function no(e){return va("(prefers-color-scheme: dark)",e)}function Ta(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=ft,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},_=no({window:s}),x=se(()=>_.value?"dark":"light"),L=c||(o==null?Zi(r):Sa(o,r,i,{window:s,listenToStorageChanges:l})),P=se(()=>L.value==="auto"?x.value:L.value),j=to("updateHTMLAttrs",(m,I,R)=>{const U=typeof m=="string"?s==null?void 0:s.document.querySelector(m):eo(m);if(!U)return;let A;if(d){A=s.document.createElement("style");const $="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";A.appendChild(document.createTextNode($)),s.document.head.appendChild(A)}if(I==="class"){const $=R.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{$.includes(w)?U.classList.add(w):U.classList.remove(w)})}else U.setAttribute(I,R);d&&(s.getComputedStyle(A).opacity,document.head.removeChild(A))});function W(m){var I;j(t,n,(I=h[m])!=null?I:m)}function X(m){e.onChanged?e.onChanged(m,W):W(m)}Xe(P,X,{flush:"post",immediate:!0}),Qi(()=>X(P.value));const p=se({get(){return u?L.value:P.value},set(m){L.value=m}});try{return Object.assign(p,{store:L,system:x,state:P})}catch{return p}}function Aa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=ft}=e,s=Ta({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=se(()=>s.system?s.system.value:no({window:r}).value?"dark":"light");return se({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function Jn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ro(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const nn=new WeakMap;function mu(e,t=!1){const n=me(t);let r=null;Xe(Zi(e),o=>{const l=Jn(Ze(o));if(l){const c=l;nn.get(c)||nn.set(c,c.style.overflow),n.value&&(c.style.overflow="hidden")}},{immediate:!0});const s=()=>{const o=Jn(Ze(e));!o||n.value||(As&&(r=yn(o,"touchmove",l=>{Oa(l)},{passive:!1})),o.style.overflow="hidden",n.value=!0)},i=()=>{var o;const l=Jn(Ze(e));!l||!n.value||(As&&(r==null||r()),l.style.overflow=(o=nn.get(l))!=null?o:"",nn.delete(l),n.value=!1)};return Pr(i),se({get(){return n.value},set(o){o?s():i()}})}function _u(e={}){const{window:t=ft,behavior:n="auto"}=e;if(!t)return{x:me(0),y:me(0)};const r=me(t.scrollX),s=me(t.scrollY),i=se({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=se({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return yn(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}const so=/^[a-z]+:/i,Ra="vitepress-theme-appearance",io=/#.*$/,Ma=/(index)?\.(md|html)$/,Ee=typeof document<"u",oo={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ia(e,t,n=!1){if(t===void 0)return!1;if(e=Rs(`/${e}`),n)return new RegExp(t).test(e);if(Rs(t)!==e)return!1;const r=t.match(io);return r?(Ee?location.hash:"")===r[0]:!0}function Rs(e){return decodeURI(e).replace(io,"").replace(Ma,"")}function La(e){return so.test(e)}function Pa(e,t){var r,s,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!La(d)&&Ia(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:co(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function lo(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Na(e.title,r);return`${n}${s}`}function Na(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ha(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function co(e,t){return[...e.filter(n=>!Ha(t,n)),...t]}const Fa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,$a=/^[a-z]:/i;function Ms(e){const t=$a.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Fa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const ka=Symbol(),ut=si(aa);function yu(e){const t=se(()=>Pa(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?me(!0):n?Aa({storageKey:Ra,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):me(!1);return{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>lo(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:r}}function Da(){const e=xt(ka);if(!e)throw new Error("vitepress data not properly injected in app");return e}function ja(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Is(e){return so.test(e)||!e.startsWith("/")?e:ja(ut.value.base,e)}function Ua(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ee){const n="/";t=Ms(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${Ms(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let an=[];function bu(e){an.push(e),Nn(()=>{an=an.filter(t=>t!==e)})}const Va=Symbol(),ao="http://a.com",Ba=()=>({path:"/",component:null,data:oo});function vu(e,t){const n=Sn(Ba()),r={route:n,go:s};async function s(l=Ee?location.href:"/"){var c,u;l=fr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(Ns(l),await o(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let i=null;async function o(l,c=0,u=!1){var _;if(await((_=r.onBeforePageLoad)==null?void 0:_.call(r,l))===!1)return;const d=new URL(l,ao),h=i=d.pathname;try{let x=await e(h);if(!x)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:L,__pageData:P}=x;if(!L)throw new Error(`Invalid route component: ${L}`);n.path=Ee?h:Is(h),n.component=on(L),n.data=on(P),Ee&&On(()=>{let j=ut.value.base+P.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!j.endsWith("/")&&(j+=".html"),j!==d.pathname&&(d.pathname=j,l=j+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(X){console.warn(X)}if(W){Ls(W,d.hash);return}}window.scrollTo(0,c)})}}catch(x){if(!/fetch|Page not found/.test(x.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(x),!u)try{const L=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await L.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=Ee?h:Is(h),n.component=t?on(t):null,n.data=oo)}}return Ee&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:_,pathname:x,hash:L,search:P}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),j=window.location,W=x.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&_===j.origin&&!(W&&W[0]!==".html")&&(l.preventDefault(),x===j.pathname&&P===j.search?(L!==j.hash&&(history.pushState(null,"",L),window.dispatchEvent(new Event("hashchange"))),L?Ls(u,L,u.classList.contains("header-anchor")):(Ns(h),window.scrollTo(0,0))):s(h))}},{capture:!0}),window.addEventListener("popstate",l=>{o(fr(location.href),l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ka(){const e=xt(Va);if(!e)throw new Error("useRouter() is called without provider.");return e}function uo(){return Ka().route}function Ls(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let u=function(){!n||Math.abs(c-window.scrollY)>window.innerHeight?window.scrollTo(0,c):window.scrollTo({left:0,top:c,behavior:"smooth"})},s=ut.value.scrollOffset,i=0,o=24;if(typeof s=="object"&&"padding"in s&&(o=s.padding,s=s.selector),typeof s=="number")i=s;else if(typeof s=="string")i=Ps(s,o);else if(Array.isArray(s))for(const d of s){const h=Ps(d,o);if(h){i=h;break}}const l=parseInt(window.getComputedStyle(r).paddingTop,10),c=window.scrollY+r.getBoundingClientRect().top-i+l;requestAnimationFrame(u)}}function Ps(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}function Ns(e){Ee&&e!==fr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}function fr(e){const t=new URL(e,ao);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const Hs=()=>an.forEach(e=>e()),wu=vi({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=uo(),{site:n}=Da();return()=>ur(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?ur(t.component,{onVnodeMounted:Hs,onVnodeUpdated:Hs}):"404 Page Not Found"])}}),xu=vi({setup(e,{slots:t}){const n=me(!1);return St(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Cu(){Ee&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Eu(){if(Ee){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` -`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Wa(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Wa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Su(e,t){let n=[],r=!0;const s=i=>{if(r){r=!1;return}const o=i.map(Fs);n.forEach((l,c)=>{const u=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete n[c])}),o.forEach(l=>l&&document.head.appendChild(l)),n=[...n,...o].filter(Boolean)};gi(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=lo(o,i);u!==document.title&&(document.title=u);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):Fs(["meta",{name:"description",content:d}]),s(co(o.head,za(c)))})}function Fs([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function qa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function za(e){return e.filter(t=>!qa(t))}const Xn=new Set,fo=()=>document.createElement("link"),Ya=e=>{const t=fo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ga=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let rn;const Ja=Ee&&(rn=fo())&&rn.relList&&rn.relList.supports&&rn.relList.supports("prefetch")?Ya:Ga;function Tu(){if(!Ee||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Xn.has(c)){Xn.add(c);const u=Ua(c);u&&Ja(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Xn.add(l))})})};St(r);const s=uo();Xe(()=>s.path,r),Nn(()=>{n&&n.disconnect()})}export{ou as $,nu as A,$l as B,eu as C,ru as D,si as E,pe as F,bu as G,ae as H,tu as I,so as J,uo as K,_c as L,xt as M,xn as N,On as O,_u as P,cu as Q,Tn as R,gu as S,zi as T,cl as U,mu as V,Xl as W,fu as X,iu as Y,uu as Z,hu as _,Ui as a,Su as a0,Va as a1,yu as a2,ka as a3,wu as a4,xu as a5,ut as a6,du as a7,vu as a8,Ua as a9,pu as aa,Tu as ab,Eu as ac,Cu as ad,ur as ae,ki as b,lu as c,vi as d,au as e,Is as f,se as g,me as h,La as i,St as j,ji as k,Sr as l,Qa as m,Cn as n,Fi as o,Za as p,Ia as q,su as r,Ee as s,Xa as t,Da as u,va as v,vl as w,Xe as x,gi as y,Nn as z}; diff --git a/assets/chunks/framework.c0711e93.js b/assets/chunks/framework.c0711e93.js new file mode 100644 index 0000000..79c0c0a --- /dev/null +++ b/assets/chunks/framework.c0711e93.js @@ -0,0 +1,33 @@ +/** +* @vue/shared v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Et(e,t){const n=new Set(e.split(","));return t?r=>n.has(r.toLowerCase()):r=>n.has(r)}const re={},_t=[],we=()=>{},go=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),fr=e=>e.startsWith("onUpdate:"),ie=Object.assign,dr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mo=Object.prototype.hasOwnProperty,X=(e,t)=>mo.call(e,t),U=Array.isArray,yt=e=>yn(e)==="[object Map]",Fs=e=>yn(e)==="[object Set]",K=e=>typeof e=="function",ee=e=>typeof e=="string",dt=e=>typeof e=="symbol",Q=e=>e!==null&&typeof e=="object",$s=e=>(Q(e)||K(e))&&K(e.then)&&K(e.catch),Ds=Object.prototype.toString,yn=e=>Ds.call(e),_o=e=>yn(e).slice(8,-1),ks=e=>yn(e)==="[object Object]",hr=e=>ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=Et(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},yo=/-(\w)/g,Ne=bn(e=>e.replace(yo,(t,n)=>n?n.toUpperCase():"")),bo=/\B([A-Z])/g,tt=bn(e=>e.replace(bo,"-$1").toLowerCase()),vn=bn(e=>e.charAt(0).toUpperCase()+e.slice(1)),rn=bn(e=>e?`on${vn(e)}`:""),Qe=(e,t)=>!Object.is(e,t),kn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},vo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},wo=e=>{const t=ee(e)?Number(e):NaN;return isNaN(t)?e:t};let Dr;const pr=()=>Dr||(Dr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function wn(e){if(U(e)){const t={};for(let n=0;n{if(n){const r=n.split(Co);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function To(e){let t="";if(!e||ee(e))return t;for(const n in e){const r=e[n];if(ee(r)||typeof r=="number"){const s=n.startsWith("--")?n:tt(n);t+=`${s}:${r};`}}return t}function xn(e){let t="";if(ee(e))t=e;else if(U(e))for(let n=0;nee(e)?e:e==null?"":U(e)||Q(e)&&(e.toString===Ds||!K(e.toString))?JSON.stringify(e,Vs,2):String(e),Vs=(e,t)=>t&&t.__v_isRef?Vs(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[jn(r,i)+" =>"]=s,n),{})}:Fs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>jn(n))}:dt(t)?jn(t):Q(t)&&!U(t)&&!ks(t)?String(t):t,jn=(e,t="")=>{var n;return dt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ve;class Io{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ve,!t&&ve&&(this.index=(ve.scopes||(ve.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=ve;try{return ve=this,t()}finally{ve=n}}}on(){ve=this}off(){ve=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),je()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Je,n=ct;try{return Je=!0,ct=this,this._runnings++,jr(this),this.fn()}finally{Ur(this),this._runnings--,ct=n,Je=t}}stop(){this.active&&(jr(this),Ur(this),this.onStop&&this.onStop(),this.active=!1)}}function No(e){return e.value}function jr(e){e._trackId++,e._depsLength=0}function Ur(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},an=new WeakMap,at=Symbol(""),er=Symbol("");function ye(e,t,n){if(Je&&ct){let r=an.get(e);r||an.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=Ys(()=>r.delete(n))),qs(ct,s)}}function $e(e,t,n,r,s,i){const o=an.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&U(e)){const c=Number(r);o.forEach((u,d)=>{(d==="length"||!dt(d)&&d>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":U(e)?hr(n)&&l.push(o.get("length")):(l.push(o.get(at)),yt(e)&&l.push(o.get(er)));break;case"delete":U(e)||(l.push(o.get(at)),yt(e)&&l.push(o.get(er)));break;case"set":yt(e)&&l.push(o.get(at));break}_r();for(const c of l)c&&zs(c,4);yr()}function Ho(e,t){const n=an.get(e);return n&&n.get(t)}const Fo=Et("__proto__,__v_isRef,__isVue"),Gs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(dt)),Vr=$o();function $o(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){ke(),_r();const r=J(this)[t].apply(this,n);return yr(),je(),r}}),e}function Do(e){dt(e)||(e=String(e));const t=J(this);return ye(t,"has",e),t.hasOwnProperty(e)}class Js{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Xo:ei:i?Qs:Zs).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=U(t);if(!s){if(o&&X(Vr,n))return Reflect.get(Vr,n,r);if(n==="hasOwnProperty")return Do}const l=Reflect.get(t,n,r);return(dt(n)?Gs.has(n):Fo(n))||(s||ye(t,"get",n),i)?l:ue(l)?o&&hr(n)?l:l.value:Q(l)?s?Sn(l):En(l):l}}class Xs extends Js{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=$t(i);if(!un(r)&&!$t(r)&&(i=J(i),r=J(r)),!U(t)&&ue(i)&&!ue(r))return c?!1:(i.value=r,!0)}const o=U(t)&&hr(n)?Number(n)e,Cn=e=>Reflect.getPrototypeOf(e);function qt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),i=J(t);n||(Qe(t,i)&&ye(s,"get",t),ye(s,"get",i));const{has:o}=Cn(s),l=r?br:n?xr:Dt;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function zt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(Qe(e,s)&&ye(r,"has",e),ye(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Yt(e,t=!1){return e=e.__v_raw,!t&&ye(J(e),"iterate",at),Reflect.get(e,"size",e)}function Br(e){e=J(e);const t=J(this);return Cn(t).has.call(t,e)||(t.add(e),$e(t,"add",e,e)),this}function Kr(e,t){t=J(t);const n=J(this),{has:r,get:s}=Cn(n);let i=r.call(n,e);i||(e=J(e),i=r.call(n,e));const o=s.call(n,e);return n.set(e,t),i?Qe(t,o)&&$e(n,"set",e,t):$e(n,"add",e,t),this}function Wr(e){const t=J(this),{has:n,get:r}=Cn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&$e(t,"delete",e,void 0),i}function qr(){const e=J(this),t=e.size!==0,n=e.clear();return t&&$e(e,"clear",void 0,void 0),n}function Gt(e,t){return function(r,s){const i=this,o=i.__v_raw,l=J(o),c=t?br:e?xr:Dt;return!e&&ye(l,"iterate",at),o.forEach((u,d)=>r.call(s,c(u),c(d),i))}}function Jt(e,t,n){return function(...r){const s=this.__v_raw,i=J(s),o=yt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=s[e](...r),d=n?br:t?xr:Dt;return!t&&ye(i,"iterate",c?er:at),{next(){const{value:h,done:_}=u.next();return _?{value:h,done:_}:{value:l?[d(h[0]),d(h[1])]:d(h),done:_}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Bo(){const e={get(i){return qt(this,i)},get size(){return Yt(this)},has:zt,add:Br,set:Kr,delete:Wr,clear:qr,forEach:Gt(!1,!1)},t={get(i){return qt(this,i,!1,!0)},get size(){return Yt(this)},has:zt,add:Br,set:Kr,delete:Wr,clear:qr,forEach:Gt(!1,!0)},n={get(i){return qt(this,i,!0)},get size(){return Yt(this,!0)},has(i){return zt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!1)},r={get(i){return qt(this,i,!0,!0)},get size(){return Yt(this,!0)},has(i){return zt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Jt(i,!1,!1),n[i]=Jt(i,!0,!1),t[i]=Jt(i,!1,!0),r[i]=Jt(i,!0,!0)}),[e,n,t,r]}const[Ko,Wo,qo,zo]=Bo();function vr(e,t){const n=t?e?zo:qo:e?Wo:Ko;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(X(n,s)&&s in r?n:r,s,i)}const Yo={get:vr(!1,!1)},Go={get:vr(!1,!0)},Jo={get:vr(!0,!1)};const Zs=new WeakMap,Qs=new WeakMap,ei=new WeakMap,Xo=new WeakMap;function Zo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Qo(e){return e.__v_skip||!Object.isExtensible(e)?0:Zo(_o(e))}function En(e){return $t(e)?e:wr(e,!1,jo,Yo,Zs)}function el(e){return wr(e,!1,Vo,Go,Qs)}function Sn(e){return wr(e,!0,Uo,Jo,ei)}function wr(e,t,n,r,s){if(!Q(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Qo(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function Mt(e){return $t(e)?Mt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function un(e){return!!(e&&e.__v_isShallow)}function ti(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function sn(e){return Object.isExtensible(e)&&js(e,"__v_skip",!0),e}const Dt=e=>Q(e)?En(e):e,xr=e=>Q(e)?Sn(e):e;class ni{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new mr(()=>t(this._value),()=>It(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Qe(t._value,t._value=t.effect.run())&&It(t,4),Cr(t),t.effect._dirtyLevel>=2&&It(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function tl(e,t,n=!1){let r,s;const i=K(e);return i?(r=e,s=we):(r=e.get,s=e.set),new ni(r,s,i||!s,n)}function Cr(e){var t;Je&&ct&&(e=J(e),qs(ct,(t=e.dep)!=null?t:e.dep=Ys(()=>e.dep=void 0,e instanceof ni?e:void 0)))}function It(e,t=4,n){e=J(e);const r=e.dep;r&&zs(r,t)}function ue(e){return!!(e&&e.__v_isRef===!0)}function me(e){return si(e,!1)}function ri(e){return si(e,!0)}function si(e,t){return ue(e)?e:new nl(e,t)}class nl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Dt(t)}get value(){return Cr(this),this._value}set value(t){const n=this.__v_isShallow||un(t)||$t(t);t=n?t:J(t),Qe(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Dt(t),It(this,4))}}function Er(e){return ue(e)?e.value:e}const rl={get:(e,t,n)=>Er(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ue(s)&&!ue(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function ii(e){return Mt(e)?e:new Proxy(e,rl)}class sl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Cr(this),()=>It(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function il(e){return new sl(e)}class ol{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ho(J(this._object),this._key)}}class ll{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function cl(e,t,n){return ue(e)?e:K(e)?new ll(e):Q(e)&&arguments.length>1?al(e,t,n):me(e)}function al(e,t,n){const r=e[t];return ue(r)?r:new ol(e,t,n)}/** +* @vue/runtime-core v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Lt=[];function We(e,...t){ke();const n=Lt.length?Lt[Lt.length-1].component:null,r=n&&n.appContext.config.warnHandler,s=ul();if(r)De(r,n,11,[e+t.map(i=>{var o,l;return(l=(o=i.toString)==null?void 0:o.call(i))!=null?l:JSON.stringify(i)}).join(""),n&&n.proxy,s.map(({vnode:i})=>`at <${qi(n,i.type)}>`).join(` +`),s]);else{const i=[`[Vue warn]: ${e}`,...t];s.length&&i.push(` +`,...fl(s)),console.warn(...i)}je()}function ul(){let e=Lt[Lt.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function fl(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[` +`],...dl(n))}),t}function dl({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,s=` at <${qi(e.component,e.type,r)}`,i=">"+n;return e.props?[s,...hl(e.props),i]:[s+i]}function hl(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...oi(r,e[r]))}),n.length>3&&t.push(" ..."),t}function oi(e,t,n){return ee(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ue(t)?(t=oi(e,J(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):K(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=J(t),n?t:[`${e}=`,t])}function De(e,t,n,r){try{return r?e(...r):e()}catch(s){Tn(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=De(e,t,n,r);return s&&$s(s)&&s.catch(i=>{Tn(i,t,n)}),s}if(U(e)){const s=[];for(let i=0;i>>1,s=fe[r],i=jt(s);iPe&&fe.splice(t,1)}function _l(e){U(e)?vt.push(...e):(!qe||!qe.includes(e,e.allowRecurse?ot+1:ot))&&vt.push(e),ci()}function zr(e,t,n=kt?Pe+1:0){for(;njt(n)-jt(r));if(vt.length=0,qe){qe.push(...t);return}for(qe=t,ot=0;ote.id==null?1/0:e.id,yl=(e,t)=>{const n=jt(e)-jt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ai(e){tr=!1,kt=!0,fe.sort(yl);const t=we;try{for(Pe=0;Peee(x)?x.trim():x)),h&&(s=n.map(vo))}let l,c=r[l=rn(t)]||r[l=rn(Ne(t))];!c&&i&&(c=r[l=rn(tt(t))]),c&&Se(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(u,e,6,s)}}function ui(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!K(e)){const c=u=>{const d=ui(u,t,!0);d&&(l=!0,ie(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Q(e)&&r.set(e,null),null):(U(i)?i.forEach(c=>o[c]=null):ie(o,i),Q(e)&&r.set(e,o),o)}function Rn(e,t){return!e||!Bt(t)?!1:(t=t.slice(2).replace(/Once$/,""),X(e,t[0].toLowerCase()+t.slice(1))||X(e,tt(t))||X(e,t))}let de=null,On=null;function dn(e){const t=de;return de=e,On=e&&e.type.__scopeId||null,t}function Za(e){On=e}function Qa(){On=null}function vl(e,t=de,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&ls(-1);const i=dn(t);let o;try{o=e(...s)}finally{dn(i),r._d&&ls(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Un(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:l,emit:c,render:u,renderCache:d,props:h,data:_,setupState:x,ctx:L,inheritAttrs:P}=e,V=dn(e);let W,z;try{if(n.shapeFlag&4){const m=s||r,I=m;W=Ae(u.call(I,m,d,h,x,_,L)),z=l}else{const m=t;W=Ae(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),z=t.props?l:wl(l)}}catch(m){Ft.length=0,Tn(m,e,1),W=ae(_e)}let p=W;if(z&&P!==!1){const m=Object.keys(z),{shapeFlag:I}=p;m.length&&I&7&&(i&&m.some(fr)&&(z=xl(z,i)),p=et(p,z,!1,!0))}return n.dirs&&(p=et(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,dn(V),W}const wl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Bt(n))&&((t||(t={}))[n]=e[n]);return t},xl=(e,t)=>{const n={};for(const r in e)(!fr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Cl(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Yr(r,o,u):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function hi(e,t){t&&t.pendingBranch?U(e)?t.effects.push(...e):t.effects.push(e):_l(e)}const Tl=Symbol.for("v-scx"),Al=()=>xt(Tl);function pi(e,t){return Mn(e,null,t)}function nu(e,t){return Mn(e,null,{flush:"post"})}const Xt={};function Xe(e,t,n){return Mn(e,t,n)}function Mn(e,t,{immediate:n,deep:r,flush:s,once:i,onTrack:o,onTrigger:l}=re){if(t&&i){const O=t;t=(...j)=>{O(...j),I()}}const c=ce,u=O=>r===!0?O:mt(O,r===!1?1:void 0);let d,h=!1,_=!1;if(ue(e)?(d=()=>e.value,h=un(e)):Mt(e)?(d=()=>u(e),h=!0):U(e)?(_=!0,h=e.some(O=>Mt(O)||un(O)),d=()=>e.map(O=>{if(ue(O))return O.value;if(Mt(O))return u(O);if(K(O))return De(O,c,2)})):K(e)?t?d=()=>De(e,c,2):d=()=>(x&&x(),Se(e,c,3,[L])):d=we,t&&r){const O=d;d=()=>mt(O())}let x,L=O=>{x=p.onStop=()=>{De(O,c,4),x=p.onStop=void 0}},P;if(Hn)if(L=we,t?n&&Se(t,c,3,[d(),_?[]:void 0,L]):d(),s==="sync"){const O=Al();P=O.__watcherHandles||(O.__watcherHandles=[])}else return we;let V=_?new Array(e.length).fill(Xt):Xt;const W=()=>{if(!(!p.active||!p.dirty))if(t){const O=p.run();(r||h||(_?O.some((j,A)=>Qe(j,V[A])):Qe(O,V)))&&(x&&x(),Se(t,c,3,[O,V===Xt?void 0:_&&V[0]===Xt?[]:V,L]),V=O)}else p.run()};W.allowRecurse=!!t;let z;s==="sync"?z=W:s==="post"?z=()=>ge(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),z=()=>Tr(W));const p=new mr(d,we,z),m=Bs(),I=()=>{p.stop(),m&&dr(m.effects,p)};return t?n?W():V=p.run():s==="post"?ge(p.run.bind(p),c&&c.suspense):p.run(),P&&P.push(I),I}function Rl(e,t,n){const r=this.proxy,s=ee(e)?e.includes(".")?gi(r,e):()=>r[e]:e.bind(r,r);let i;K(t)?i=t:(i=t.handler,n=t);const o=Kt(this),l=Mn(s,i.bind(r),n);return o(),l}function gi(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{mt(r,t,n)});else if(ks(e))for(const r in e)mt(e[r],t,n);return e}function Le(e,t,n,r){const s=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),wi(()=>{e.isUnmounting=!0}),e}const xe=[Function,Array],mi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:xe,onEnter:xe,onAfterEnter:xe,onEnterCancelled:xe,onBeforeLeave:xe,onLeave:xe,onAfterLeave:xe,onLeaveCancelled:xe,onBeforeAppear:xe,onAppear:xe,onAfterAppear:xe,onAppearCancelled:xe},Ml={name:"BaseTransition",props:mi,setup(e,{slots:t}){const n=Nn(),r=Ol();return()=>{const s=t.default&&yi(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){for(const _ of s)if(_.type!==_e){i=_;break}}const o=J(e),{mode:l}=o;if(r.isLeaving)return Vn(i);const c=Jr(i);if(!c)return Vn(i);const u=nr(c,o,r,n);rr(c,u);const d=n.subTree,h=d&&Jr(d);if(h&&h.type!==_e&&!lt(c,h)){const _=nr(h,o,r,n);if(rr(h,_),l==="out-in"&&c.type!==_e)return r.isLeaving=!0,_.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Vn(i);l==="in-out"&&c.type!==_e&&(_.delayLeave=(x,L,P)=>{const V=_i(r,h);V[String(h.key)]=h,x[ze]=()=>{L(),x[ze]=void 0,delete u.delayedLeave},u.delayedLeave=P})}return i}}},Il=Ml;function _i(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function nr(e,t,n,r){const{appear:s,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:_,onAfterLeave:x,onLeaveCancelled:L,onBeforeAppear:P,onAppear:V,onAfterAppear:W,onAppearCancelled:z}=t,p=String(e.key),m=_i(n,e),I=(A,$)=>{A&&Se(A,r,9,$)},O=(A,$)=>{const w=$[1];I(A,$),U(A)?A.every(k=>k.length<=1)&&w():A.length<=1&&w()},j={mode:i,persisted:o,beforeEnter(A){let $=l;if(!n.isMounted)if(s)$=P||l;else return;A[ze]&&A[ze](!0);const w=m[p];w&<(e,w)&&w.el[ze]&&w.el[ze](),I($,[A])},enter(A){let $=c,w=u,k=d;if(!n.isMounted)if(s)$=V||c,w=W||u,k=z||d;else return;let T=!1;const q=A[Zt]=te=>{T||(T=!0,te?I(k,[A]):I(w,[A]),j.delayedLeave&&j.delayedLeave(),A[Zt]=void 0)};$?O($,[A,q]):q()},leave(A,$){const w=String(e.key);if(A[Zt]&&A[Zt](!0),n.isUnmounting)return $();I(h,[A]);let k=!1;const T=A[ze]=q=>{k||(k=!0,$(),q?I(L,[A]):I(x,[A]),A[ze]=void 0,m[w]===e&&delete m[w])};m[w]=e,_?O(_,[A,T]):T()},clone(A){return nr(A,t,n,r)}};return j}function Vn(e){if(In(e))return e=et(e),e.children=null,e}function Jr(e){if(!In(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function rr(e,t){e.shapeFlag&6&&e.component?rr(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 yi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iie({name:e.name},t,{setup:e}))():e}const wt=e=>!!e.type.__asyncLoader,In=e=>e.type.__isKeepAlive;function Ll(e,t){vi(e,"a",t)}function Pl(e,t){vi(e,"da",t)}function vi(e,t,n=ce){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ln(t,r,n),n){let s=n.parent;for(;s&&s.parent;)In(s.parent.vnode)&&Nl(r,t,n,s),s=s.parent}}function Nl(e,t,n,r){const s=Ln(t,e,r,!0);Pn(()=>{dr(r[t],s)},n)}function Ln(e,t,n=ce,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ke();const l=Kt(n),c=Se(t,n,e,o);return l(),je(),c});return r?s.unshift(i):s.push(i),i}}const Ue=e=>(t,n=ce)=>(!Hn||e==="sp")&&Ln(e,(...r)=>t(...r),n),Hl=Ue("bm"),St=Ue("m"),Fl=Ue("bu"),$l=Ue("u"),wi=Ue("bum"),Pn=Ue("um"),Dl=Ue("sp"),kl=Ue("rtg"),jl=Ue("rtc");function Ul(e,t=ce){Ln("ec",e,t)}function ru(e,t,n,r){let s;const i=n&&n[r];if(U(e)||ee(e)){s=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);s=new Array(o.length);for(let l=0,c=o.length;lgn(t)?!(t.type===_e||t.type===pe&&!xi(t.children)):!0)?e:null}function iu(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:rn(r)]=e[r];return n}const sr=e=>e?Vi(e)?Ir(e)||e.proxy:sr(e.parent):null,Pt=ie(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=>sr(e.parent),$root:e=>sr(e.root),$emit:e=>e.emit,$options:e=>Rr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Tr(e.update)}),$nextTick:e=>e.n||(e.n=An.bind(e.proxy)),$watch:e=>Rl.bind(e)}),Bn=(e,t)=>e!==re&&!e.__isScriptSetup&&X(e,t),Vl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(Bn(r,t))return o[t]=1,r[t];if(s!==re&&X(s,t))return o[t]=2,s[t];if((u=e.propsOptions[0])&&X(u,t))return o[t]=3,i[t];if(n!==re&&X(n,t))return o[t]=4,n[t];ir&&(o[t]=0)}}const d=Pt[t];let h,_;if(d)return t==="$attrs"&&ye(e.attrs,"get",""),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==re&&X(n,t))return o[t]=4,n[t];if(_=c.config.globalProperties,X(_,t))return _[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return Bn(s,t)?(s[t]=n,!0):r!==re&&X(r,t)?(r[t]=n,!0):X(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==re&&X(e,o)||Bn(t,o)||(l=i[0])&&X(l,o)||X(r,o)||X(Pt,o)||X(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:X(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ou(){return Bl().slots}function Bl(){const e=Nn();return e.setupContext||(e.setupContext=Ki(e))}function Xr(e){return U(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ir=!0;function Kl(e){const t=Rr(e),n=e.proxy,r=e.ctx;ir=!1,t.beforeCreate&&Zr(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:u,created:d,beforeMount:h,mounted:_,beforeUpdate:x,updated:L,activated:P,deactivated:V,beforeDestroy:W,beforeUnmount:z,destroyed:p,unmounted:m,render:I,renderTracked:O,renderTriggered:j,errorCaptured:A,serverPrefetch:$,expose:w,inheritAttrs:k,components:T,directives:q,filters:te}=t;if(u&&Wl(u,r,null),o)for(const G in o){const N=o[G];K(N)&&(r[G]=N.bind(n))}if(s){const G=s.call(n,n);Q(G)&&(e.data=En(G))}if(ir=!0,i)for(const G in i){const N=i[G],Oe=K(N)?N.bind(n,n):K(N.get)?N.get.bind(n,n):we,ht=!K(N)&&K(N.set)?N.set.bind(n):we,nt=se({get:Oe,set:ht});Object.defineProperty(r,G,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(l)for(const G in l)Ci(l[G],r,n,G);if(c){const G=K(c)?c.call(n):c;Reflect.ownKeys(G).forEach(N=>{Xl(N,G[N])})}d&&Zr(d,e,"c");function F(G,N){U(N)?N.forEach(Oe=>G(Oe.bind(n))):N&&G(N.bind(n))}if(F(Hl,h),F(St,_),F(Fl,x),F($l,L),F(Ll,P),F(Pl,V),F(Ul,A),F(jl,O),F(kl,j),F(wi,z),F(Pn,m),F(Dl,$),U(w))if(w.length){const G=e.exposed||(e.exposed={});w.forEach(N=>{Object.defineProperty(G,N,{get:()=>n[N],set:Oe=>n[N]=Oe})})}else e.exposed||(e.exposed={});I&&e.render===we&&(e.render=I),k!=null&&(e.inheritAttrs=k),T&&(e.components=T),q&&(e.directives=q)}function Wl(e,t,n=we){U(e)&&(e=or(e));for(const r in e){const s=e[r];let i;Q(s)?"default"in s?i=xt(s.from||r,s.default,!0):i=xt(s.from||r):i=xt(s),ue(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Zr(e,t,n){Se(U(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ci(e,t,n,r){const s=r.includes(".")?gi(n,r):()=>n[r];if(ee(e)){const i=t[e];K(i)&&Xe(s,i)}else if(K(e))Xe(s,e.bind(n));else if(Q(e))if(U(e))e.forEach(i=>Ci(i,t,n,r));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&Xe(s,i,e)}}function Rr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>hn(c,u,o,!0)),hn(c,t,o)),Q(t)&&i.set(t,c),c}function hn(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&hn(e,i,n,!0),s&&s.forEach(o=>hn(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=ql[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const ql={data:Qr,props:es,emits:es,methods:Ot,computed:Ot,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Ot,directives:Ot,watch:Yl,provide:Qr,inject:zl};function Qr(e,t){return t?e?function(){return ie(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function zl(e,t){return Ot(or(e),or(t))}function or(e){if(U(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const Si={},Ti=()=>Object.create(Si),Ai=e=>Object.getPrototypeOf(e)===Si;function Zl(e,t,n,r=!1){const s={},i=Ti();e.propsDefaults=Object.create(null),Ri(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:el(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Ql(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=J(s),[c]=e.propsOptions;let u=!1;if((r||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[_,x]=Oi(h,t,!0);ie(o,_),x&&l.push(...x)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Q(e)&&r.set(e,_t),_t;if(U(i))for(let d=0;d-1,x[1]=P<0||L-1||X(x,"default"))&&l.push(h)}}}const u=[o,l];return Q(e)&&r.set(e,u),u}function ts(e){return e[0]!=="$"&&!bt(e)}function ns(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function rs(e,t){return ns(e)===ns(t)}function ss(e,t){return U(t)?t.findIndex(n=>rs(n,e)):K(t)&&rs(t,e)?0:-1}const Mi=e=>e[0]==="_"||e==="$stable",Or=e=>U(e)?e.map(Ae):[Ae(e)],ec=(e,t,n)=>{if(t._n)return t;const r=vl((...s)=>Or(t(...s)),n);return r._c=!1,r},Ii=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Mi(s))continue;const i=e[s];if(K(i))t[s]=ec(s,i,r);else if(i!=null){const o=Or(i);t[s]=()=>o}}},Li=(e,t)=>{const n=Or(t);e.slots.default=()=>n},tc=(e,t)=>{const n=e.slots=Ti();if(e.vnode.shapeFlag&32){const r=t._;r?(ie(n,t),js(n,"_",r,!0)):Ii(t,n)}else t&&Li(e,t)},nc=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=re;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(ie(s,t),!n&&l===1&&delete s._):(i=!t.$stable,Ii(t,s)),o=t}else t&&(Li(e,t),o={default:1});if(i)for(const l in s)!Mi(l)&&o[l]==null&&delete s[l]};function pn(e,t,n,r,s=!1){if(U(e)){e.forEach((_,x)=>pn(_,t&&(U(t)?t[x]:t),n,r,s));return}if(wt(r)&&!s)return;const i=r.shapeFlag&4?Ir(r.component)||r.component.proxy:r.el,o=s?null:i,{i:l,r:c}=e,u=t&&t.r,d=l.refs===re?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ee(u)?(d[u]=null,X(h,u)&&(h[u]=null)):ue(u)&&(u.value=null)),K(c))De(c,l,12,[o,d]);else{const _=ee(c),x=ue(c);if(_||x){const L=()=>{if(e.f){const P=_?X(h,c)?h[c]:d[c]:c.value;s?U(P)&&dr(P,i):U(P)?P.includes(i)||P.push(i):_?(d[c]=[i],X(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else _?(d[c]=o,X(h,c)&&(h[c]=o)):x&&(c.value=o,e.k&&(d[e.k]=o))};o?(L.id=-1,ge(L,n)):L()}}}let Fe=!1;const rc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sc=e=>e.namespaceURI.includes("MathML"),Qt=e=>{if(rc(e))return"svg";if(sc(e))return"mathml"},At=e=>e.nodeType===8;function ic(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,d=(p,m)=>{if(!m.hasChildNodes()){__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,p,m),fn(),m._vnode=p;return}Fe=!1,h(m.firstChild,p,null,null,null),fn(),m._vnode=p,Fe&&console.error("Hydration completed but contains mismatches.")},h=(p,m,I,O,j,A=!1)=>{A=A||!!m.dynamicChildren;const $=At(p)&&p.data==="[",w=()=>P(p,m,I,O,j,$),{type:k,ref:T,shapeFlag:q,patchFlag:te}=m;let le=p.nodeType;m.el=p,te===-2&&(A=!1,m.dynamicChildren=null);let F=null;switch(k){case Ct:le!==3?m.children===""?(c(m.el=s(""),o(p),p),F=p):F=w():(p.data!==m.children&&(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Hydration text mismatch in",p.parentNode,` + - rendered on server: ${JSON.stringify(p.data)} + - expected on client: ${JSON.stringify(m.children)}`),p.data=m.children),F=i(p));break;case _e:z(p)?(F=i(p),W(m.el=p.content.firstChild,p,I)):le!==8||$?F=w():F=i(p);break;case Ht:if($&&(p=i(p),le=p.nodeType),le===1||le===3){F=p;const G=!m.children.length;for(let N=0;N{A=A||!!m.dynamicChildren;const{type:$,props:w,patchFlag:k,shapeFlag:T,dirs:q,transition:te}=m,le=$==="input"||$==="option";if(le||k!==-1){q&&Le(m,null,I,"created");let F=!1;if(z(p)){F=Pi(O,te)&&I&&I.vnode.props&&I.vnode.props.appear;const N=p.content.firstChild;F&&te.beforeEnter(N),W(N,p,I),m.el=p=N}if(T&16&&!(w&&(w.innerHTML||w.textContent))){let N=x(p.firstChild,m,p,I,O,j,A),Oe=!1;for(;N;){Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&!Oe&&(We("Hydration children mismatch on",p,` +Server rendered element contains more child nodes than client vdom.`),Oe=!0);const ht=N;N=N.nextSibling,l(ht)}}else T&8&&p.textContent!==m.children&&(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We("Hydration text content mismatch on",p,` + - rendered on server: ${p.textContent} + - expected on client: ${m.children}`),p.textContent=m.children);if(w)if(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__||le||!A||k&48)for(const N in w)__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&oc(p,N,w[N],m,I)&&(Fe=!0),(le&&(N.endsWith("value")||N==="indeterminate")||Bt(N)&&!bt(N)||N[0]===".")&&r(p,N,null,w[N],void 0,void 0,I);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,I);let G;(G=w&&w.onVnodeBeforeMount)&&Ce(G,I,m),q&&Le(m,null,I,"beforeMount"),((G=w&&w.onVnodeMounted)||q||F)&&hi(()=>{G&&Ce(G,I,m),F&&te.enter(p),q&&Le(m,null,I,"mounted")},O)}return p.nextSibling},x=(p,m,I,O,j,A,$)=>{$=$||!!m.dynamicChildren;const w=m.children,k=w.length;let T=!1;for(let q=0;q{const{slotScopeIds:$}=m;$&&(j=j?j.concat($):$);const w=o(p),k=x(i(p),m,w,I,O,j,A);return k&&At(k)&&k.data==="]"?i(m.anchor=k):(Fe=!0,c(m.anchor=u("]"),w,k),k)},P=(p,m,I,O,j,A)=>{if(Fe=!0,__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&We(`Hydration node mismatch: +- rendered on server:`,p,p.nodeType===3?"(text)":At(p)&&p.data==="["?"(start of fragment)":"",` +- expected on client:`,m.type),m.el=null,A){const k=V(p);for(;;){const T=i(p);if(T&&T!==k)l(T);else break}}const $=i(p),w=o(p);return l(p),n(null,m,w,$,I,O,Qt(w),j),$},V=(p,m="[",I="]")=>{let O=0;for(;p;)if(p=i(p),p&&At(p)&&(p.data===m&&O++,p.data===I)){if(O===0)return i(p);O--}return p},W=(p,m,I)=>{const O=m.parentNode;O&&O.replaceChild(p,m);let j=I;for(;j;)j.vnode.el===m&&(j.vnode.el=j.subTree.el=p),j=j.parent},z=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[d,h]}function oc(e,t,n,r,s){var i;let o,l,c,u;if(t==="class")c=e.getAttribute("class"),u=xn(n),lc(is(c||""),is(u))||(o=l="class");else if(t==="style"){c=e.getAttribute("style")||"",u=ee(n)?n:To(wn(n));const d=os(c),h=os(u);if(r.dirs)for(const{dir:x,value:L}of r.dirs)x.name==="show"&&!L&&h.set("display","none");const _=s==null?void 0:s.subTree;if(r===_||(_==null?void 0:_.type)===pe&&_.children.includes(r)){const x=(i=s==null?void 0:s.getCssVars)==null?void 0:i.call(s);for(const L in x)h.set(`--${L}`,String(x[L]))}cc(d,h)||(o=l="style")}else(e instanceof SVGElement&&Oo(t)||e instanceof HTMLElement&&(kr(t)||Ro(t)))&&(kr(t)?(c=e.hasAttribute(t),u=gr(n)):n==null?(c=e.hasAttribute(t),u=!1):(e.hasAttribute(t)?c=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?c=e.value:c=!1,u=Mo(n)?String(n):!1),c!==u&&(o="attribute",l=t));if(o){const d=x=>x===!1?"(not rendered)":`${l}="${x}"`,h=`Hydration ${o} mismatch on`,_=` + - rendered on server: ${d(c)} + - expected on client: ${d(u)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`;return We(h,e,_),!0}return!1}function is(e){return new Set(e.trim().split(/\s+/))}function lc(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function os(e){const t=new Map;for(const n of e.split(";")){let[r,s]=n.split(":");r=r==null?void 0:r.trim(),s=s==null?void 0:s.trim(),r&&s&&t.set(r,s)}return t}function cc(e,t){if(e.size!==t.size)return!1;for(const[n,r]of e)if(r!==t.get(n))return!1;return!0}function ac(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(pr().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const ge=hi;function uc(e){return fc(e,ic)}function fc(e,t){ac();const n=pr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:_,setScopeId:x=we,insertStaticContent:L}=e,P=(a,f,g,y=null,b=null,E=null,R=void 0,C=null,S=!!f.dynamicChildren)=>{if(a===f)return;a&&!lt(a,f)&&(y=Wt(a),Me(a,b,E,!0),a=null),f.patchFlag===-2&&(S=!1,f.dynamicChildren=null);const{type:v,ref:M,shapeFlag:D}=f;switch(v){case Ct:V(a,f,g,y);break;case _e:W(a,f,g,y);break;case Ht:a==null&&z(f,g,y,R);break;case pe:T(a,f,g,y,b,E,R,C,S);break;default:D&1?I(a,f,g,y,b,E,R,C,S):D&6?q(a,f,g,y,b,E,R,C,S):(D&64||D&128)&&v.process(a,f,g,y,b,E,R,C,S,pt)}M!=null&&b&&pn(M,a&&a.ref,E,f||a,!f)},V=(a,f,g,y)=>{if(a==null)r(f.el=l(f.children),g,y);else{const b=f.el=a.el;f.children!==a.children&&u(b,f.children)}},W=(a,f,g,y)=>{a==null?r(f.el=c(f.children||""),g,y):f.el=a.el},z=(a,f,g,y)=>{[a.el,a.anchor]=L(a.children,f,g,y,a.el,a.anchor)},p=({el:a,anchor:f},g,y)=>{let b;for(;a&&a!==f;)b=_(a),r(a,g,y),a=b;r(f,g,y)},m=({el:a,anchor:f})=>{let g;for(;a&&a!==f;)g=_(a),s(a),a=g;s(f)},I=(a,f,g,y,b,E,R,C,S)=>{f.type==="svg"?R="svg":f.type==="math"&&(R="mathml"),a==null?O(f,g,y,b,E,R,C,S):$(a,f,b,E,R,C,S)},O=(a,f,g,y,b,E,R,C)=>{let S,v;const{props:M,shapeFlag:D,transition:H,dirs:B}=a;if(S=a.el=o(a.type,E,M&&M.is,M),D&8?d(S,a.children):D&16&&A(a.children,S,null,y,b,Kn(a,E),R,C),B&&Le(a,null,y,"created"),j(S,a,a.scopeId,R,y),M){for(const Z in M)Z!=="value"&&!bt(Z)&&i(S,Z,null,M[Z],E,a.children,y,b,He);"value"in M&&i(S,"value",null,M.value,E),(v=M.onVnodeBeforeMount)&&Ce(v,y,a)}B&&Le(a,null,y,"beforeMount");const Y=Pi(b,H);Y&&H.beforeEnter(S),r(S,f,g),((v=M&&M.onVnodeMounted)||Y||B)&&ge(()=>{v&&Ce(v,y,a),Y&&H.enter(S),B&&Le(a,null,y,"mounted")},b)},j=(a,f,g,y,b)=>{if(g&&x(a,g),y)for(let E=0;E{for(let v=S;v{const C=f.el=a.el;let{patchFlag:S,dynamicChildren:v,dirs:M}=f;S|=a.patchFlag&16;const D=a.props||re,H=f.props||re;let B;if(g&&rt(g,!1),(B=H.onVnodeBeforeUpdate)&&Ce(B,g,f,a),M&&Le(f,a,g,"beforeUpdate"),g&&rt(g,!0),v?w(a.dynamicChildren,v,C,g,y,Kn(f,b),E):R||N(a,f,C,null,g,y,Kn(f,b),E,!1),S>0){if(S&16)k(C,f,D,H,g,y,b);else if(S&2&&D.class!==H.class&&i(C,"class",null,H.class,b),S&4&&i(C,"style",D.style,H.style,b),S&8){const Y=f.dynamicProps;for(let Z=0;Z{B&&Ce(B,g,f,a),M&&Le(f,a,g,"updated")},y)},w=(a,f,g,y,b,E,R)=>{for(let C=0;C{if(g!==y){if(g!==re)for(const C in g)!bt(C)&&!(C in y)&&i(a,C,g[C],null,R,f.children,b,E,He);for(const C in y){if(bt(C))continue;const S=y[C],v=g[C];S!==v&&C!=="value"&&i(a,C,v,S,R,f.children,b,E,He)}"value"in y&&i(a,"value",g.value,y.value,R)}},T=(a,f,g,y,b,E,R,C,S)=>{const v=f.el=a?a.el:l(""),M=f.anchor=a?a.anchor:l("");let{patchFlag:D,dynamicChildren:H,slotScopeIds:B}=f;B&&(C=C?C.concat(B):B),a==null?(r(v,g,y),r(M,g,y),A(f.children||[],g,M,b,E,R,C,S)):D>0&&D&64&&H&&a.dynamicChildren?(w(a.dynamicChildren,H,g,b,E,R,C),(f.key!=null||b&&f===b.subTree)&&Ni(a,f,!0)):N(a,f,g,M,b,E,R,C,S)},q=(a,f,g,y,b,E,R,C,S)=>{f.slotScopeIds=C,a==null?f.shapeFlag&512?b.ctx.activate(f,g,y,R,S):te(f,g,y,b,E,R,S):le(a,f,S)},te=(a,f,g,y,b,E,R)=>{const C=a.component=vc(a,y,b);if(In(a)&&(C.ctx.renderer=pt),wc(C),C.asyncDep){if(b&&b.registerDep(C,F),!a.el){const S=C.subTree=ae(_e);W(null,S,f,g)}}else F(C,a,f,g,b,E,R)},le=(a,f,g)=>{const y=f.component=a.component;if(Cl(a,f,g))if(y.asyncDep&&!y.asyncResolved){G(y,f,g);return}else y.next=f,ml(y.update),y.effect.dirty=!0,y.update();else f.el=a.el,y.vnode=f},F=(a,f,g,y,b,E,R)=>{const C=()=>{if(a.isMounted){let{next:M,bu:D,u:H,parent:B,vnode:Y}=a;{const gt=Hi(a);if(gt){M&&(M.el=Y.el,G(a,M,R)),gt.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Z=M,ne;rt(a,!1),M?(M.el=Y.el,G(a,M,R)):M=Y,D&&kn(D),(ne=M.props&&M.props.onVnodeBeforeUpdate)&&Ce(ne,B,M,Y),rt(a,!0);const oe=Un(a),Te=a.subTree;a.subTree=oe,P(Te,oe,h(Te.el),Wt(Te),a,b,E),M.el=oe.el,Z===null&&El(a,oe.el),H&&ge(H,b),(ne=M.props&&M.props.onVnodeUpdated)&&ge(()=>Ce(ne,B,M,Y),b)}else{let M;const{el:D,props:H}=f,{bm:B,m:Y,parent:Z}=a,ne=wt(f);if(rt(a,!1),B&&kn(B),!ne&&(M=H&&H.onVnodeBeforeMount)&&Ce(M,Z,f),rt(a,!0),D&&Dn){const oe=()=>{a.subTree=Un(a),Dn(D,a.subTree,a,b,null)};ne?f.type.__asyncLoader().then(()=>!a.isUnmounted&&oe()):oe()}else{const oe=a.subTree=Un(a);P(null,oe,g,y,a,b,E),f.el=oe.el}if(Y&&ge(Y,b),!ne&&(M=H&&H.onVnodeMounted)){const oe=f;ge(()=>Ce(M,Z,oe),b)}(f.shapeFlag&256||Z&&wt(Z.vnode)&&Z.vnode.shapeFlag&256)&&a.a&&ge(a.a,b),a.isMounted=!0,f=g=y=null}},S=a.effect=new mr(C,we,()=>Tr(v),a.scope),v=a.update=()=>{S.dirty&&S.run()};v.id=a.uid,rt(a,!0),v()},G=(a,f,g)=>{f.component=a;const y=a.vnode.props;a.vnode=f,a.next=null,Ql(a,f.props,y,g),nc(a,f.children,g),ke(),zr(a),je()},N=(a,f,g,y,b,E,R,C,S=!1)=>{const v=a&&a.children,M=a?a.shapeFlag:0,D=f.children,{patchFlag:H,shapeFlag:B}=f;if(H>0){if(H&128){ht(v,D,g,y,b,E,R,C,S);return}else if(H&256){Oe(v,D,g,y,b,E,R,C,S);return}}B&8?(M&16&&He(v,b,E),D!==v&&d(g,D)):M&16?B&16?ht(v,D,g,y,b,E,R,C,S):He(v,b,E,!0):(M&8&&d(g,""),B&16&&A(D,g,y,b,E,R,C,S))},Oe=(a,f,g,y,b,E,R,C,S)=>{a=a||_t,f=f||_t;const v=a.length,M=f.length,D=Math.min(v,M);let H;for(H=0;HM?He(a,b,E,!0,!1,D):A(f,g,y,b,E,R,C,S,D)},ht=(a,f,g,y,b,E,R,C,S)=>{let v=0;const M=f.length;let D=a.length-1,H=M-1;for(;v<=D&&v<=H;){const B=a[v],Y=f[v]=S?Ye(f[v]):Ae(f[v]);if(lt(B,Y))P(B,Y,g,null,b,E,R,C,S);else break;v++}for(;v<=D&&v<=H;){const B=a[D],Y=f[H]=S?Ye(f[H]):Ae(f[H]);if(lt(B,Y))P(B,Y,g,null,b,E,R,C,S);else break;D--,H--}if(v>D){if(v<=H){const B=H+1,Y=BH)for(;v<=D;)Me(a[v],b,E,!0),v++;else{const B=v,Y=v,Z=new Map;for(v=Y;v<=H;v++){const be=f[v]=S?Ye(f[v]):Ae(f[v]);be.key!=null&&Z.set(be.key,v)}let ne,oe=0;const Te=H-Y+1;let gt=!1,Hr=0;const Tt=new Array(Te);for(v=0;v=Te){Me(be,b,E,!0);continue}let Ie;if(be.key!=null)Ie=Z.get(be.key);else for(ne=Y;ne<=H;ne++)if(Tt[ne-Y]===0&<(be,f[ne])){Ie=ne;break}Ie===void 0?Me(be,b,E,!0):(Tt[Ie-Y]=v+1,Ie>=Hr?Hr=Ie:gt=!0,P(be,f[Ie],g,null,b,E,R,C,S),oe++)}const Fr=gt?dc(Tt):_t;for(ne=Fr.length-1,v=Te-1;v>=0;v--){const be=Y+v,Ie=f[be],$r=be+1{const{el:E,type:R,transition:C,children:S,shapeFlag:v}=a;if(v&6){nt(a.component.subTree,f,g,y);return}if(v&128){a.suspense.move(f,g,y);return}if(v&64){R.move(a,f,g,pt);return}if(R===pe){r(E,f,g);for(let D=0;DC.enter(E),b);else{const{leave:D,delayLeave:H,afterLeave:B}=C,Y=()=>r(E,f,g),Z=()=>{D(E,()=>{Y(),B&&B()})};H?H(E,Y,Z):Z()}else r(E,f,g)},Me=(a,f,g,y=!1,b=!1)=>{const{type:E,props:R,ref:C,children:S,dynamicChildren:v,shapeFlag:M,patchFlag:D,dirs:H}=a;if(C!=null&&pn(C,null,g,a,!0),M&256){f.ctx.deactivate(a);return}const B=M&1&&H,Y=!wt(a);let Z;if(Y&&(Z=R&&R.onVnodeBeforeUnmount)&&Ce(Z,f,a),M&6)po(a.component,g,y);else{if(M&128){a.suspense.unmount(g,y);return}B&&Le(a,null,f,"beforeUnmount"),M&64?a.type.remove(a,f,g,b,pt,y):v&&(E!==pe||D>0&&D&64)?He(v,f,g,!1,!0):(E===pe&&D&384||!b&&M&16)&&He(S,f,g),y&&Pr(a)}(Y&&(Z=R&&R.onVnodeUnmounted)||B)&&ge(()=>{Z&&Ce(Z,f,a),B&&Le(a,null,f,"unmounted")},g)},Pr=a=>{const{type:f,el:g,anchor:y,transition:b}=a;if(f===pe){ho(g,y);return}if(f===Ht){m(a);return}const E=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(a.shapeFlag&1&&b&&!b.persisted){const{leave:R,delayLeave:C}=b,S=()=>R(g,E);C?C(a.el,E,S):S()}else E()},ho=(a,f)=>{let g;for(;a!==f;)g=_(a),s(a),a=g;s(f)},po=(a,f,g)=>{const{bum:y,scope:b,update:E,subTree:R,um:C}=a;y&&kn(y),b.stop(),E&&(E.active=!1,Me(R,a,f,g)),C&&ge(C,f),ge(()=>{a.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},He=(a,f,g,y=!1,b=!1,E=0)=>{for(let R=E;Ra.shapeFlag&6?Wt(a.component.subTree):a.shapeFlag&128?a.suspense.next():_(a.anchor||a.el);let Fn=!1;const Nr=(a,f,g)=>{a==null?f._vnode&&Me(f._vnode,null,null,!0):P(f._vnode||null,a,f,null,null,null,g),Fn||(Fn=!0,zr(),fn(),Fn=!1),f._vnode=a},pt={p:P,um:Me,m:nt,r:Pr,mt:te,mc:A,pc:N,pbc:w,n:Wt,o:e};let $n,Dn;return t&&([$n,Dn]=t(pt)),{render:Nr,hydrate:$n,createApp:Jl(Nr,$n)}}function Kn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Pi(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ni(e,t,n=!1){const r=e.children,s=t.children;if(U(r)&&U(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}const hc=e=>e.__isTeleport,pe=Symbol.for("v-fgt"),Ct=Symbol.for("v-txt"),_e=Symbol.for("v-cmt"),Ht=Symbol.for("v-stc"),Ft=[];let Re=null;function Fi(e=!1){Ft.push(Re=e?null:[])}function pc(){Ft.pop(),Re=Ft[Ft.length-1]||null}let Ut=1;function ls(e){Ut+=e}function $i(e){return e.dynamicChildren=Ut>0?Re||_t:null,pc(),Ut>0&&Re&&Re.push(e),e}function lu(e,t,n,r,s,i){return $i(ji(e,t,n,r,s,i,!0))}function Di(e,t,n,r,s){return $i(ae(e,t,n,r,s,!0))}function gn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const ki=({key:e})=>e??null,on=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ee(e)||ue(e)||K(e)?{i:de,r:e,k:t,f:!!n}:e:null);function ji(e,t=null,n=null,r=0,s=null,i=e===pe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ki(t),ref:t&&on(t),scopeId:On,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(Mr(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ee(n)?8:16),Ut>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const ae=gc;function gc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===fi)&&(e=_e),gn(e)){const l=et(e,t,!0);return n&&Mr(l,n),Ut>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Tc(e)&&(e=e.__vccOpts),t){t=mc(t);let{class:l,style:c}=t;l&&!ee(l)&&(t.class=xn(l)),Q(c)&&(ti(c)&&!U(c)&&(c=ie({},c)),t.style=wn(c))}const o=ee(e)?1:Sl(e)?128:hc(e)?64:Q(e)?4:K(e)?2:0;return ji(e,t,n,r,s,o,i,!0)}function mc(e){return e?ti(e)||Ai(e)?ie({},e):e:null}function et(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,u=t?_c(s||{},t):s,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ki(u),ref:t&&t.ref?n&&i?U(i)?i.concat(on(t)):[i,on(t)]:on(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&et(e.ssContent),ssFallback:e.ssFallback&&et(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&(d.transition=c.clone(d)),d}function Ui(e=" ",t=0){return ae(Ct,null,e,t)}function cu(e,t){const n=ae(Ht,null,e);return n.staticCount=t,n}function au(e="",t=!1){return t?(Fi(),Di(_e,null,e)):ae(_e,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ae(_e):U(e)?ae(pe,null,e.slice()):typeof e=="object"?Ye(e):ae(Ct,null,String(e))}function Ye(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:et(e)}function Mr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(U(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Mr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ai(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[Ui(t)]):n=8);e.children=t,e.shapeFlag|=n}function _c(...e){const t={};for(let n=0;nce||de;let mn,cr;{const e=pr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};mn=t("__VUE_INSTANCE_SETTERS__",n=>ce=n),cr=t("__VUE_SSR_SETTERS__",n=>Hn=n)}const Kt=e=>{const t=ce;return mn(e),e.scope.on(),()=>{e.scope.off(),mn(t)}},cs=()=>{ce&&ce.scope.off(),mn(null)};function Vi(e){return e.vnode.shapeFlag&4}let Hn=!1;function wc(e,t=!1){t&&cr(t);const{props:n,children:r}=e.vnode,s=Vi(e);Zl(e,n,s,t),tc(e,r);const i=s?xc(e,t):void 0;return t&&cr(!1),i}function xc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Vl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Ki(e):null,i=Kt(e);ke();const o=De(r,e,0,[e.props,s]);if(je(),i(),$s(o)){if(o.then(cs,cs),t)return o.then(l=>{as(e,l,t)}).catch(l=>{Tn(l,e,0)});e.asyncDep=o}else as(e,o,t)}else Bi(e,t)}function as(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Q(t)&&(e.setupState=ii(t)),Bi(e,n)}let us;function Bi(e,t,n){const r=e.type;if(!e.render){if(!t&&us&&!r.render){const s=r.template||Rr(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=ie(ie({isCustomElement:i,delimiters:l},o),c);r.render=us(s,u)}}e.render=r.render||we}{const s=Kt(e);ke();try{Kl(e)}finally{je(),s()}}}const Cc={get(e,t){return ye(e,"get",""),e[t]}};function Ki(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Cc),slots:e.slots,emit:e.emit,expose:t}}function Ir(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ii(sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pt)return Pt[n](e)},has(t,n){return n in t||n in Pt}}))}const Ec=/(?:^|[-_])(\w)/g,Sc=e=>e.replace(Ec,t=>t.toUpperCase()).replace(/[-_]/g,"");function Wi(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function qi(e,t,n=!1){let r=Wi(t);if(!r&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(r=s[1])}if(!r&&e&&e.parent){const s=i=>{for(const o in i)if(i[o]===t)return o};r=s(e.components||e.parent.type.components)||s(e.appContext.components)}return r?Sc(r):n?"App":"Anonymous"}function Tc(e){return K(e)&&"__vccOpts"in e}const se=(e,t)=>tl(e,t,Hn);function ar(e,t,n){const r=arguments.length;return r===2?Q(t)&&!U(t)?gn(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&gn(n)&&(n=[n]),ae(e,t,n))}const Ac="3.4.27";/** +* @vue/runtime-dom v3.4.27 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Rc="http://www.w3.org/2000/svg",Oc="http://www.w3.org/1998/Math/MathML",Ge=typeof document<"u"?document:null,fs=Ge&&Ge.createElement("template"),Mc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ge.createElementNS(Rc,e):t==="mathml"?Ge.createElementNS(Oc,e):Ge.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ge.createTextNode(e),createComment:e=>Ge.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ge.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{fs.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=fs.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",Rt="animation",Vt=Symbol("_vtc"),zi=(e,{slots:t})=>ar(Il,Ic(e),t);zi.displayName="Transition";const Yi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};zi.props=ie({},mi,Yi);const st=(e,t=[])=>{U(e)?e.forEach(n=>n(...t)):e&&e(...t)},ds=e=>e?U(e)?e.some(t=>t.length>1):e.length>1:!1;function Ic(e){const t={};for(const T in e)T in Yi||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:_=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,L=Lc(s),P=L&&L[0],V=L&&L[1],{onBeforeEnter:W,onEnter:z,onEnterCancelled:p,onLeave:m,onLeaveCancelled:I,onBeforeAppear:O=W,onAppear:j=z,onAppearCancelled:A=p}=t,$=(T,q,te)=>{it(T,q?d:l),it(T,q?u:o),te&&te()},w=(T,q)=>{T._isLeaving=!1,it(T,h),it(T,x),it(T,_),q&&q()},k=T=>(q,te)=>{const le=T?j:z,F=()=>$(q,T,te);st(le,[q,F]),hs(()=>{it(q,T?c:i),Ke(q,T?d:l),ds(le)||ps(q,r,P,F)})};return ie(t,{onBeforeEnter(T){st(W,[T]),Ke(T,i),Ke(T,o)},onBeforeAppear(T){st(O,[T]),Ke(T,c),Ke(T,u)},onEnter:k(!1),onAppear:k(!0),onLeave(T,q){T._isLeaving=!0;const te=()=>w(T,q);Ke(T,h),Ke(T,_),Hc(),hs(()=>{T._isLeaving&&(it(T,h),Ke(T,x),ds(m)||ps(T,r,V,te))}),st(m,[T,te])},onEnterCancelled(T){$(T,!1),st(p,[T])},onAppearCancelled(T){$(T,!0),st(A,[T])},onLeaveCancelled(T){w(T),st(I,[T])}})}function Lc(e){if(e==null)return null;if(Q(e))return[Wn(e.enter),Wn(e.leave)];{const t=Wn(e);return[t,t]}}function Wn(e){return wo(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Vt]||(e[Vt]=new Set)).add(t)}function it(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Vt];n&&(n.delete(t),n.size||(e[Vt]=void 0))}function hs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Pc=0;function ps(e,t,n,r){const s=e._endId=++Pc,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Nc(e,t);if(!o)return r();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,_),i()},_=x=>{x.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[L]||"").split(", "),s=r(`${Be}Delay`),i=r(`${Be}Duration`),o=gs(s,i),l=r(`${Rt}Delay`),c=r(`${Rt}Duration`),u=gs(l,c);let d=null,h=0,_=0;t===Be?o>0&&(d=Be,h=o,_=i.length):t===Rt?u>0&&(d=Rt,h=u,_=c.length):(h=Math.max(o,u),d=h>0?o>u?Be:Rt:null,_=d?d===Be?i.length:c.length:0);const x=d===Be&&/\b(transform|all)(,|$)/.test(r(`${Be}Property`).toString());return{type:d,timeout:h,propCount:_,hasTransform:x}}function gs(e,t){for(;e.lengthms(n)+ms(e[r])))}function ms(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Hc(){return document.body.offsetHeight}function Fc(e,t,n){const r=e[Vt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),$c=Symbol("_vsh"),Dc=Symbol(""),kc=/(^|;)\s*display\s*:/;function jc(e,t,n){const r=e.style,s=ee(n);let i=!1;if(n&&!s){if(t)if(ee(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&ln(r,l,"")}else for(const o in t)n[o]==null&&ln(r,o,"");for(const o in n)o==="display"&&(i=!0),ln(r,o,n[o])}else if(s){if(t!==n){const o=r[Dc];o&&(n+=";"+o),r.cssText=n,i=kc.test(n)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=i?r.display:"",e[$c]&&(r.display="none"))}const ys=/\s*!important$/;function ln(e,t,n){if(U(n))n.forEach(r=>ln(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uc(e,t);ys.test(n)?e.setProperty(tt(r),n.replace(ys,""),"important"):e[r]=n}}const bs=["Webkit","Moz","ms"],qn={};function Uc(e,t){const n=qn[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return qn[t]=r;r=vn(r);for(let s=0;szn||(Yc.then(()=>zn=0),zn=Date.now());function Jc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(Xc(r,n.value),t,5,[r])};return n.value=e,n.attached=Gc(),n}function Xc(e,t){if(U(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Cs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Zc=(e,t,n,r,s,i,o,l,c)=>{const u=s==="svg";t==="class"?Fc(e,r,u):t==="style"?jc(e,n,r):Bt(t)?fr(t)||qc(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qc(e,t,r,u))?Bc(e,t,r,i,o,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Vc(e,t,r,u))};function Qc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cs(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Cs(t)&&ee(n)?!1:t in e}const ea=["ctrl","shift","alt","meta"],ta={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ea.some(n=>e[`${n}Key`]&&!t.includes(n))},uu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=tt(s.key);if(t.some(o=>o===i||na[o]===i))return e(s)})},ra=ie({patchProp:Zc},Mc);let Yn,Es=!1;function sa(){return Yn=Es?Yn:uc(ra),Es=!0,Yn}const du=(...e)=>{const t=sa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oa(r);if(s)return n(s,!0,ia(s))},t};function ia(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oa(e){return ee(e)?document.querySelector(e):e}const hu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},la="modulepreload",ca=function(e){return"/"+e},Ss={},pu=function(t,n,r){if(!n||n.length===0)return t();const s=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=ca(i),i in Ss)return;Ss[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!r)for(let d=s.length-1;d>=0;d--){const h=s[d];if(h.href===i&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const u=document.createElement("link");if(u.rel=o?"stylesheet":la,o||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),o)return new Promise((d,h)=>{u.addEventListener("load",d),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},aa=window.__VP_SITE_DATA__;function Lr(e){return Bs()?(Po(e),!0):!1}function Ze(e){return typeof e=="function"?e():Er(e)}function gu(e,t){const n=(t==null?void 0:t.computedGetter)===!1?Er:Ze;return function(...r){return se(()=>e.apply(this,r.map(s=>n(s))))}}const Gi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ua=Object.prototype.toString,fa=e=>ua.call(e)==="[object Object]",Ji=()=>{},Ts=da();function da(){var e,t;return Gi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ha(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Xi=e=>e();function pa(e=Xi){const t=me(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Sn(t),pause:n,resume:r,eventFilter:s}}function ga(e){return e||Nn()}function Zi(...e){if(e.length!==1)return cl(...e);const t=e[0];return typeof t=="function"?Sn(il(()=>({get:t,set:Ji}))):me(t)}function ma(e,t,n={}){const{eventFilter:r=Xi,...s}=n;return Xe(e,ha(r,t),s)}function _a(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=pa(r);return{stop:ma(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function Qi(e,t=!0,n){ga()?St(e,n):t?e():An(e)}function eo(e){var t;const n=Ze(e);return(t=n==null?void 0:n.$el)!=null?t:n}const ft=Gi?window:void 0;function _n(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=ft):[t,n,r,s]=e,!t)return Ji;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,_,x)=>(d.addEventListener(h,_,x),()=>d.removeEventListener(h,_,x)),c=Xe(()=>[eo(t),Ze(s)],([d,h])=>{if(o(),!d)return;const _=fa(h)?{...h}:h;i.push(...n.flatMap(x=>r.map(L=>l(d,x,L,_))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return Lr(u),u}function ya(){const e=me(!1),t=Nn();return t&&St(()=>{e.value=!0},t),e}function ba(e){const t=ya();return se(()=>(t.value,!!e()))}function va(e,t={}){const{window:n=ft}=t,r=ba(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=me(!1),o=u=>{i.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=pi(()=>{r.value&&(l(),s=n.matchMedia(Ze(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return Lr(()=>{c(),l(),s=void 0}),i}const en=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},tn="__vueuse_ssr_handlers__",wa=xa();function xa(){return tn in en||(en[tn]=en[tn]||{}),en[tn]}function to(e,t){return wa[e]||t}function Ca(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ea={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},As="vueuse-storage";function Sa(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:d,window:h=ft,eventFilter:_,onError:x=w=>{console.error(w)},initOnMounted:L}=r,P=(d?ri:me)(typeof t=="function"?t():t);if(!n)try{n=to("getDefaultStorage",()=>{var w;return(w=ft)==null?void 0:w.localStorage})()}catch(w){x(w)}if(!n)return P;const V=Ze(t),W=Ca(V),z=(s=r.serializer)!=null?s:Ea[W],{pause:p,resume:m}=_a(P,()=>O(P.value),{flush:i,deep:o,eventFilter:_});h&&l&&Qi(()=>{_n(h,"storage",A),_n(h,As,$),L&&A()}),L||A();function I(w,k){h&&h.dispatchEvent(new CustomEvent(As,{detail:{key:e,oldValue:w,newValue:k,storageArea:n}}))}function O(w){try{const k=n.getItem(e);if(w==null)I(k,null),n.removeItem(e);else{const T=z.write(w);k!==T&&(n.setItem(e,T),I(k,T))}}catch(k){x(k)}}function j(w){const k=w?w.newValue:n.getItem(e);if(k==null)return c&&V!=null&&n.setItem(e,z.write(V)),V;if(!w&&u){const T=z.read(k);return typeof u=="function"?u(T,V):W==="object"&&!Array.isArray(T)?{...V,...T}:T}else return typeof k!="string"?k:z.read(k)}function A(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){P.value=V;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==z.write(P.value)&&(P.value=j(w))}catch(k){x(k)}finally{w?An(m):m()}}}}function $(w){A(w.detail)}return P}function no(e){return va("(prefers-color-scheme: dark)",e)}function Ta(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=ft,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},_=no({window:s}),x=se(()=>_.value?"dark":"light"),L=c||(o==null?Zi(r):Sa(o,r,i,{window:s,listenToStorageChanges:l})),P=se(()=>L.value==="auto"?x.value:L.value),V=to("updateHTMLAttrs",(m,I,O)=>{const j=typeof m=="string"?s==null?void 0:s.document.querySelector(m):eo(m);if(!j)return;let A;if(d){A=s.document.createElement("style");const $="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";A.appendChild(document.createTextNode($)),s.document.head.appendChild(A)}if(I==="class"){const $=O.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{$.includes(w)?j.classList.add(w):j.classList.remove(w)})}else j.setAttribute(I,O);d&&(s.getComputedStyle(A).opacity,document.head.removeChild(A))});function W(m){var I;V(t,n,(I=h[m])!=null?I:m)}function z(m){e.onChanged?e.onChanged(m,W):W(m)}Xe(P,z,{flush:"post",immediate:!0}),Qi(()=>z(P.value));const p=se({get(){return u?L.value:P.value},set(m){L.value=m}});try{return Object.assign(p,{store:L,system:x,state:P})}catch{return p}}function Aa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=ft}=e,s=Ta({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=se(()=>s.system?s.system.value:no({window:r}).value?"dark":"light");return se({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function Gn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ro(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Jn=new WeakMap;function mu(e,t=!1){const n=me(t);let r=null,s="";Xe(Zi(e),l=>{const c=Gn(Ze(l));if(c){const u=c;if(Jn.get(u)||Jn.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=Gn(Ze(e));!l||n.value||(Ts&&(r=_n(l,"touchmove",c=>{Ra(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=Gn(Ze(e));!l||!n.value||(Ts&&(r==null||r()),l.style.overflow=s,Jn.delete(l),n.value=!1)};return Lr(o),se({get(){return n.value},set(l){l?i():o()}})}function _u(e={}){const{window:t=ft,behavior:n="auto"}=e;if(!t)return{x:me(0),y:me(0)};const r=me(t.scrollX),s=me(t.scrollY),i=se({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=se({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return _n(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}const so=/^[a-z]+:/i,Oa="vitepress-theme-appearance",io=/#.*$/,Ma=/(index)?\.(md|html)$/,Ee=typeof document<"u",oo={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ia(e,t,n=!1){if(t===void 0)return!1;if(e=Rs(`/${e}`),n)return new RegExp(t).test(e);if(Rs(t)!==e)return!1;const r=t.match(io);return r?(Ee?location.hash:"")===r[0]:!0}function Rs(e){return decodeURI(e).replace(io,"").replace(Ma,"")}function La(e){return so.test(e)}function Pa(e,t){var r,s,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!La(d)&&Ia(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:co(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function lo(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Na(e.title,r);return`${n}${s}`}function Na(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ha(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function co(e,t){return[...e.filter(n=>!Ha(t,n)),...t]}const Fa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,$a=/^[a-z]:/i;function Os(e){const t=$a.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Fa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Da=Symbol(),ut=ri(aa);function yu(e){const t=se(()=>Pa(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?me(!0):n?Aa({storageKey:Oa,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):me(!1);return{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>lo(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:r}}function ka(){const e=xt(Da);if(!e)throw new Error("vitepress data not properly injected in app");return e}function ja(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ms(e){return so.test(e)||!e.startsWith("/")?e:ja(ut.value.base,e)}function Ua(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ee){const n="/";t=Os(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${Os(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let cn=[];function bu(e){cn.push(e),Pn(()=>{cn=cn.filter(t=>t!==e)})}const Va=Symbol(),ao="http://a.com",Ba=()=>({path:"/",component:null,data:oo});function vu(e,t){const n=En(Ba()),r={route:n,go:s};async function s(l=Ee?location.href:"/"){var c,u;l=ur(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(Ps(l),await o(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let i=null;async function o(l,c=0,u=!1){var _;if(await((_=r.onBeforePageLoad)==null?void 0:_.call(r,l))===!1)return;const d=new URL(l,ao),h=i=d.pathname;try{let x=await e(h);if(!x)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:L,__pageData:P}=x;if(!L)throw new Error(`Invalid route component: ${L}`);n.path=Ee?h:Ms(h),n.component=sn(L),n.data=sn(P),Ee&&An(()=>{let V=ut.value.base+P.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!V.endsWith("/")&&(V+=".html"),V!==d.pathname&&(d.pathname=V,l=V+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(z){console.warn(z)}if(W){Is(W,d.hash);return}}window.scrollTo(0,c)})}}catch(x){if(!/fetch|Page not found/.test(x.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(x),!u)try{const L=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await L.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=Ee?h:Ms(h),n.component=t?sn(t):null,n.data=oo)}}return Ee&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:_,pathname:x,hash:L,search:P}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),V=window.location,W=x.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&_===V.origin&&!(W&&W[0]!==".html")&&(l.preventDefault(),x===V.pathname&&P===V.search?(L!==V.hash&&(history.pushState(null,"",L),window.dispatchEvent(new Event("hashchange"))),L?Is(u,L,u.classList.contains("header-anchor")):(Ps(h),window.scrollTo(0,0))):s(h))}},{capture:!0}),window.addEventListener("popstate",l=>{o(ur(location.href),l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ka(){const e=xt(Va);if(!e)throw new Error("useRouter() is called without provider.");return e}function uo(){return Ka().route}function Is(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let u=function(){!n||Math.abs(c-window.scrollY)>window.innerHeight?window.scrollTo(0,c):window.scrollTo({left:0,top:c,behavior:"smooth"})},s=ut.value.scrollOffset,i=0,o=24;if(typeof s=="object"&&"padding"in s&&(o=s.padding,s=s.selector),typeof s=="number")i=s;else if(typeof s=="string")i=Ls(s,o);else if(Array.isArray(s))for(const d of s){const h=Ls(d,o);if(h){i=h;break}}const l=parseInt(window.getComputedStyle(r).paddingTop,10),c=window.scrollY+r.getBoundingClientRect().top-i+l;requestAnimationFrame(u)}}function Ls(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}function Ps(e){Ee&&e!==ur(location.href)&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}function ur(e){const t=new URL(e,ao);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const Ns=()=>cn.forEach(e=>e()),wu=bi({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=uo(),{site:n}=ka();return()=>ar(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?ar(t.component,{onVnodeMounted:Ns,onVnodeUpdated:Ns}):"404 Page Not Found"])}}),xu=bi({setup(e,{slots:t}){const n=me(!1);return St(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Cu(){Ee&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Eu(){if(Ee){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Wa(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Wa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Su(e,t){let n=[],r=!0;const s=i=>{if(r){r=!1;return}const o=i.map(Hs);n.forEach((l,c)=>{const u=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete n[c])}),o.forEach(l=>l&&document.head.appendChild(l)),n=[...n,...o].filter(Boolean)};pi(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=lo(o,i);u!==document.title&&(document.title=u);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):Hs(["meta",{name:"description",content:d}]),s(co(o.head,za(c)))})}function Hs([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function qa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function za(e){return e.filter(t=>!qa(t))}const Xn=new Set,fo=()=>document.createElement("link"),Ya=e=>{const t=fo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ga=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let nn;const Ja=Ee&&(nn=fo())&&nn.relList&&nn.relList.supports&&nn.relList.supports("prefetch")?Ya:Ga;function Tu(){if(!Ee||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Xn.has(c)){Xn.add(c);const u=Ua(c);u&&Ja(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Xn.add(l))})})};St(r);const s=uo();Xe(()=>s.path,r),Pn(()=>{n&&n.disconnect()})}export{ou as $,nu as A,$l as B,eu as C,ru as D,ri as E,pe as F,bu as G,ae as H,tu as I,so as J,uo as K,_c as L,xt as M,wn as N,An as O,_u as P,cu as Q,Sn as R,gu as S,zi as T,cl as U,mu as V,Xl as W,fu as X,iu as Y,uu as Z,hu as _,Ui as a,Su as a0,Va as a1,yu as a2,Da as a3,wu as a4,xu as a5,ut as a6,du as a7,vu as a8,Ua as a9,pu as aa,Tu as ab,Eu as ac,Cu as ad,ar as ae,Di as b,lu as c,bi as d,au as e,Ms as f,se as g,me as h,La as i,St as j,ji as k,Er as l,Qa as m,xn as n,Fi as o,Za as p,Ia as q,su as r,Ee as s,Xa as t,ka as u,va as v,vl as w,Xe as x,pi as y,Pn as z}; diff --git a/assets/chunks/theme.570c1129.js b/assets/chunks/theme.950f48e3.js similarity index 99% rename from assets/chunks/theme.570c1129.js rename to assets/chunks/theme.950f48e3.js index 9a55622..96cd12d 100644 --- a/assets/chunks/theme.570c1129.js +++ b/assets/chunks/theme.950f48e3.js @@ -1 +1 @@ -import{d as g,o as a,c as i,r as u,n as N,a as x,t as L,_ as m,b as $,w as v,T as ce,e as f,u as He,i as ze,f as ue,g as k,h as S,j as G,k as c,l,p as H,m as z,q as O,s as K,v as re,x as U,y as te,z as de,A as Pe,B as De,C as j,F as M,D as A,E as _e,G as Y,H as h,I as E,J as Ve,K as se,L as Q,M as ne,N as Fe,O as Ee,P as we,Q as Oe,R as Ge,S as Ue,U as je,V as Le,W as Se,X as qe,Y as Re,Z as Ke,$ as We}from"./framework.7f46d7d2.js";const Ye=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),i("span",{class:N(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[x(L(e.text),1)],!0)],2))}});const Je=m(Ye,[["__scopeId","data-v-9613cc9f"]]),Ze={key:0,class:"VPBackdrop"},Qe=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),$(ce,{name:"fade"},{default:v(()=>[e.show?(a(),i("div",Ze)):f("",!0)]),_:1}))}});const Xe=m(Qe,[["__scopeId","data-v-c79a1216"]]),P=He;function et(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function J(s){const{pathname:e,search:t,hash:n,protocol:o}=new URL(s,"http://a.com");if(ze(s)||s.startsWith("#")||!o.startsWith("http")||/\.(?!html|md)\w+($|\?)/i.test(s))return s;const{site:r}=P(),d=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return ue(d)}function Z({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:r}=P(),d=k(()=>{var _,b;return{label:(_=t.value.locales[n.value])==null?void 0:_.label,link:((b=t.value.locales[n.value])==null?void 0:b.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([_,b])=>s&&d.value.label===b.label?[]:{text:b.label,link:tt(b.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,o.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function tt(s,e,t,n){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const st=s=>(H("data-v-f87ff6e4"),s=s(),z(),s),nt={class:"NotFound"},ot={class:"code"},at={class:"title"},rt=st(()=>c("div",{class:"divider"},null,-1)),lt={class:"quote"},it={class:"action"},ct=["href","aria-label"],ut=g({__name:"NotFound",setup(s){const{site:e,theme:t}=P(),{localeLinks:n}=Z({removeCurrent:!1}),o=S("/");return G(()=>{var d;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((d=n.value.find(({link:p})=>p.startsWith(r)))==null?void 0:d.link)||n.value[0].link)}),(r,d)=>{var p,_,b,y,w;return a(),i("div",nt,[c("p",ot,L(((p=l(t).notFound)==null?void 0:p.code)??"404"),1),c("h1",at,L(((_=l(t).notFound)==null?void 0:_.title)??"PAGE NOT FOUND"),1),rt,c("blockquote",lt,L(((b=l(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),c("div",it,[c("a",{class:"link",href:l(ue)(o.value),"aria-label":((y=l(t).notFound)==null?void 0:y.linkLabel)??"go to home"},L(((w=l(t).notFound)==null?void 0:w.linkText)??"Take me home"),9,ct)])])}}});const dt=m(ut,[["__scopeId","data-v-f87ff6e4"]]);function Me(s,e){if(Array.isArray(s))return X(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>e.startsWith(le(o))),n=t?s[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function _t(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function vt(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function ie(s,e){return Array.isArray(e)?e.some(t=>ie(s,t)):O(s,e.link)?!0:e.items?ie(s,e.items):!1}function X(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=X(n.items,o)),n})}function D(){const{frontmatter:s,page:e,theme:t}=P(),n=re("(min-width: 960px)"),o=S(!1),r=k(()=>{const T=t.value.sidebar,V=e.value.relativePath;return T?Me(T,V):[]}),d=S(r.value);U(r,(T,V)=>{JSON.stringify(T)!==JSON.stringify(V)&&(d.value=r.value)});const p=k(()=>s.value.sidebar!==!1&&d.value.length>0&&s.value.layout!=="home"),_=k(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=k(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),y=k(()=>p.value&&n.value),w=k(()=>p.value?_t(d.value):[]);function C(){o.value=!0}function I(){o.value=!1}function B(){o.value?I():C()}return{isOpen:o,sidebar:d,sidebarGroups:w,hasSidebar:p,hasAside:b,leftAside:_,isSidebarEnabled:y,open:C,close:I,toggle:B}}function pt(s,e){let t;te(()=>{t=s.value?document.activeElement:void 0}),G(()=>{window.addEventListener("keyup",n)}),de(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}const Ne=S(K?location.hash:"");K&&window.addEventListener("hashchange",()=>{Ne.value=location.hash});function ht(s){const{page:e}=P(),t=S(!1),n=k(()=>s.value.collapsed!=null),o=k(()=>!!s.value.link),r=S(!1),d=()=>{r.value=O(e.value.relativePath,s.value.link)};U([e,s,Ne],d),G(d);const p=k(()=>r.value?!0:s.value.items?ie(e.value.relativePath,s.value.items):!1),_=k(()=>!!(s.value.items&&s.value.items.length));te(()=>{t.value=!!(n.value&&s.value.collapsed)}),Pe(()=>{(r.value||p.value)&&(t.value=!1)});function b(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:o,isActiveLink:r,hasActiveLink:p,hasChildren:_,toggle:b}}function ft(){const{hasSidebar:s}=D(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const mt=71;function ve(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function pe(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{title:gt(t),link:"#"+t.id,level:n}});return bt(e,s)}function gt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function bt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(d=>d.level>=n&&d.level<=o);const r=[];e:for(let d=0;d=0;_--){const b=s[_];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),De(()=>{d(location.hash)}),de(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const p=[].slice.call(s.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(I=>p.some(B=>B.hash===I.hash&&I.offsetParent!==null)),b=window.scrollY,y=window.innerHeight,w=document.body.offsetHeight,C=Math.abs(b+y-w)<1;if(_.length&&C){d(_[_.length-1].hash);return}for(let I=0;I<_.length;I++){const B=_[I],T=_[I+1],[V,q]=kt(I,B,T);if(V){d(q);return}}}function d(p){o&&o.classList.remove("active"),p==null?o=null:o=s.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const _=o;_?(_.classList.add("active"),e.value.style.top=_.offsetTop+33+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function ke(s){return s.parentElement.offsetTop-mt}function kt(s,e,t){const n=window.scrollY;return s===0&&n===0?[!0,null]:n{const o=j("VPDocOutlineItem",!0);return a(),i("ul",{class:N(t.root?"root":"nested")},[(a(!0),i(M,null,A(t.headers,({children:r,link:d,title:p})=>(a(),i("li",null,[c("a",{class:"outline-link",href:d,onClick:e,title:p},L(p),9,yt),r!=null&&r.length?(a(),$(o,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}});const he=m(Pt,[["__scopeId","data-v-d0ee3533"]]),Vt=s=>(H("data-v-d330b1bb"),s=s(),z(),s),wt={class:"content"},Lt={class:"outline-title",role:"heading","aria-level":"2"},St={"aria-labelledby":"doc-outline-aria-label"},Mt=Vt(()=>c("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Nt=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=P(),n=_e([]);Y(()=>{n.value=pe(e.value.outline??t.value.outline)});const o=S(),r=S();return $t(o,r),(d,p)=>(a(),i("div",{class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[c("div",wt,[c("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),c("div",Lt,L(l(ve)(l(t))),1),c("nav",St,[Mt,h(he,{headers:n.value,root:!0},null,8,["headers"])])])],2))}});const It=m(Nt,[["__scopeId","data-v-d330b1bb"]]),Ct={class:"VPDocAsideCarbonAds"},Tt=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),i("div",Ct,[h(l(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt=s=>(H("data-v-3f215769"),s=s(),z(),s),At={class:"VPDocAside"},xt=Bt(()=>c("div",{class:"spacer"},null,-1)),Ht=g({__name:"VPDocAside",setup(s){const{theme:e}=P();return(t,n)=>(a(),i("div",At,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),h(It),u(t.$slots,"aside-outline-after",{},void 0,!0),xt,u(t.$slots,"aside-ads-before",{},void 0,!0),l(e).carbonAds?(a(),$(Tt,{key:0,"carbon-ads":l(e).carbonAds},null,8,["carbon-ads"])):f("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}});const zt=m(Ht,[["__scopeId","data-v-3f215769"]]);function Dt(){const{theme:s,page:e}=P();return k(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Ft(){const{page:s,theme:e,frontmatter:t}=P();return k(()=>{var _,b,y,w,C,I,B,T;const n=Me(e.value.sidebar,s.value.relativePath),o=vt(n),r=o.findIndex(V=>O(s.value.relativePath,V.link)),d=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=o[r-1])==null?void 0:y.docFooterText)??((w=o[r-1])==null?void 0:w.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((C=o[r-1])==null?void 0:C.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((I=o[r+1])==null?void 0:I.docFooterText)??((B=o[r+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((T=o[r+1])==null?void 0:T.link)}}})}const Et={},Ot={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Gt=c("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),Ut=c("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),jt=[Gt,Ut];function qt(s,e){return a(),i("svg",Ot,jt)}const Rt=m(Et,[["render",qt]]),F=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.tag??(e.href?"a":"span")),n=k(()=>e.href&&Ve.test(e.href));return(o,r)=>(a(),$(E(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?l(J)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[u(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Kt={class:"VPLastUpdated"},Wt=["datetime"],Yt=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n,lang:o}=P(),r=k(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),d=k(()=>r.value.toISOString()),p=S("");return G(()=>{te(()=>{var _,b,y;p.value=new Intl.DateTimeFormat((b=(_=e.value.lastUpdated)==null?void 0:_.formatOptions)!=null&&b.forceLocale?o.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(_,b)=>{var y;return a(),i("p",Kt,[x(L(((y=l(e).lastUpdated)==null?void 0:y.text)||l(e).lastUpdatedText||"Last updated")+": ",1),c("time",{datetime:d.value},L(p.value),9,Wt)])}}});const Jt=m(Yt,[["__scopeId","data-v-7e05ebdb"]]),Zt={key:0,class:"VPDocFooter"},Qt={key:0,class:"edit-info"},Xt={key:0,class:"edit-link"},es={key:1,class:"last-updated"},ts={key:1,class:"prev-next"},ss={class:"pager"},ns=["href"],os=["innerHTML"],as=["innerHTML"],rs={class:"pager"},ls=["href"],is=["innerHTML"],cs=["innerHTML"],us=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=P(),o=Dt(),r=Ft(),d=k(()=>e.value.editLink&&n.value.editLink!==!1),p=k(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),_=k(()=>d.value||p.value||r.value.prev||r.value.next);return(b,y)=>{var w,C,I,B,T,V;return _.value?(a(),i("footer",Zt,[u(b.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),i("div",Qt,[d.value?(a(),i("div",Xt,[h(F,{class:"edit-link-button",href:l(o).url,"no-icon":!0},{default:v(()=>[h(Rt,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+L(l(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),i("div",es,[h(Jt)])):f("",!0)])):f("",!0),(w=l(r).prev)!=null&&w.link||(C=l(r).next)!=null&&C.link?(a(),i("nav",ts,[c("div",ss,[(I=l(r).prev)!=null&&I.link?(a(),i("a",{key:0,class:"pager-link prev",href:l(J)(l(r).prev.link)},[c("span",{class:"desc",innerHTML:((B=l(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,os),c("span",{class:"title",innerHTML:l(r).prev.text},null,8,as)],8,ns)):f("",!0)]),c("div",rs,[(T=l(r).next)!=null&&T.link?(a(),i("a",{key:0,class:"pager-link next",href:l(J)(l(r).next.link)},[c("span",{class:"desc",innerHTML:((V=l(e).docFooter)==null?void 0:V.next)||"Next page"},null,8,is),c("span",{class:"title",innerHTML:l(r).next.text},null,8,cs)],8,ls)):f("",!0)])])):f("",!0)])):f("",!0)}}});const ds=m(us,[["__scopeId","data-v-ef5dee53"]]),_s={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ps=c("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),hs=[ps];function fs(s,e){return a(),i("svg",vs,hs)}const fe=m(_s,[["render",fs]]),ms={key:0,class:"VPDocOutlineDropdown"},gs={key:0,class:"items"},bs=g({__name:"VPDocOutlineDropdown",setup(s){const{frontmatter:e,theme:t}=P(),n=S(!1);Y(()=>{n.value=!1});const o=_e([]);return Y(()=>{o.value=pe(e.value.outline??t.value.outline)}),(r,d)=>o.value.length>0?(a(),i("div",ms,[c("button",{onClick:d[0]||(d[0]=p=>n.value=!n.value),class:N({open:n.value})},[x(L(l(ve)(l(t)))+" ",1),h(fe,{class:"icon"})],2),n.value?(a(),i("div",gs,[h(he,{headers:o.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const $s=m(bs,[["__scopeId","data-v-eadfb36b"]]),ks=s=>(H("data-v-6b87e69f"),s=s(),z(),s),ys={class:"container"},Ps=ks(()=>c("div",{class:"aside-curtain"},null,-1)),Vs={class:"aside-container"},ws={class:"aside-content"},Ls={class:"content"},Ss={class:"content-container"},Ms={class:"main"},Ns=g({__name:"VPDoc",setup(s){const{theme:e}=P(),t=se(),{hasSidebar:n,hasAside:o,leftAside:r}=D(),d=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,_)=>{const b=j("Content");return a(),i("div",{class:N(["VPDoc",{"has-sidebar":l(n),"has-aside":l(o)}])},[u(p.$slots,"doc-top",{},void 0,!0),c("div",ys,[l(o)?(a(),i("div",{key:0,class:N(["aside",{"left-aside":l(r)}])},[Ps,c("div",Vs,[c("div",ws,[h(zt,null,{"aside-top":v(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),c("div",Ls,[c("div",Ss,[u(p.$slots,"doc-before",{},void 0,!0),h($s),c("main",Ms,[h(b,{class:N(["vp-doc",[d.value,l(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(ds,null,{"doc-footer-before":v(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}});const Is=m(Ns,[["__scopeId","data-v-6b87e69f"]]),Cs=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{}},setup(s){const e=s,t=k(()=>e.href&&Ve.test(e.href)),n=k(()=>e.tag||e.href?"a":"button");return(o,r)=>(a(),$(E(n.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?l(J)(o.href):void 0,target:t.value?"_blank":void 0,rel:t.value?"noreferrer":void 0},{default:v(()=>[x(L(o.text),1)]),_:1},8,["class","href","target","rel"]))}});const Ts=m(Cs,[["__scopeId","data-v-c1c5efc1"]]),Bs=["src","alt"],As=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=j("VPImage",!0);return e.image?(a(),i(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:l(ue)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Bs)):(a(),i(M,{key:1},[h(n,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(n,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const ee=m(As,[["__scopeId","data-v-8426fc1a"]]),xs=s=>(H("data-v-da5d1713"),s=s(),z(),s),Hs={class:"container"},zs={class:"main"},Ds={key:0,class:"name"},Fs=["innerHTML"],Es=["innerHTML"],Os=["innerHTML"],Gs={key:0,class:"actions"},Us={key:0,class:"image"},js={class:"image-container"},qs=xs(()=>c("div",{class:"image-bg"},null,-1)),Rs=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=ne("hero-image-slot-exists");return(t,n)=>(a(),i("div",{class:N(["VPHero",{"has-image":t.image||l(e)}])},[c("div",Hs,[c("div",zs,[u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),i("h1",Ds,[c("span",{innerHTML:t.name,class:"clip"},null,8,Fs)])):f("",!0),t.text?(a(),i("p",{key:1,innerHTML:t.text,class:"text"},null,8,Es)):f("",!0),t.tagline?(a(),i("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Os)):f("",!0)],!0),t.actions?(a(),i("div",Gs,[(a(!0),i(M,null,A(t.actions,o=>(a(),i("div",{key:o.link,class:"action"},[h(Ts,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||l(e)?(a(),i("div",Us,[c("div",js,[qs,u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(ee,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const Ks=m(Rs,[["__scopeId","data-v-da5d1713"]]),Ws=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=P();return(t,n)=>l(e).hero?(a(),$(Ks,{key:0,class:"VPHomeHero",name:l(e).hero.name,text:l(e).hero.text,tagline:l(e).hero.tagline,image:l(e).hero.image,actions:l(e).hero.actions},{"home-hero-info":v(()=>[u(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ys={},Js={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Zs=c("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Qs=[Zs];function Xs(s,e){return a(),i("svg",Js,Qs)}const en=m(Ys,[["render",Xs]]),tn={class:"box"},sn={key:0,class:"icon"},nn=["innerHTML"],on=["innerHTML"],an=["innerHTML"],rn={key:4,class:"link-text"},ln={class:"link-text-value"},cn=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[c("article",tn,[typeof e.icon=="object"&&e.icon.wrap?(a(),i("div",sn,[h(ee,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(ee,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),i("div",{key:2,class:"icon",innerHTML:e.icon},null,8,nn)):f("",!0),c("h2",{class:"title",innerHTML:e.title},null,8,on),e.details?(a(),i("p",{key:3,class:"details",innerHTML:e.details},null,8,an)):f("",!0),e.linkText?(a(),i("div",rn,[c("p",ln,[x(L(e.linkText)+" ",1),h(en,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}});const un=m(cn,[["__scopeId","data-v-33204567"]]),dn={key:0,class:"VPFeatures"},_n={class:"container"},vn={class:"items"},pn=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=k(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),i("div",dn,[c("div",_n,[c("div",vn,[(a(!0),i(M,null,A(n.features,r=>(a(),i("div",{key:r.title,class:N(["item",[t.value]])},[h(un,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}});const hn=m(pn,[["__scopeId","data-v-a6181336"]]),fn=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=P();return(t,n)=>l(e).features?(a(),$(hn,{key:0,class:"VPHomeFeatures",features:l(e).features},null,8,["features"])):f("",!0)}}),mn={class:"VPHome"},gn=g({__name:"VPHome",setup(s){return(e,t)=>{const n=j("Content");return a(),i("div",mn,[u(e.$slots,"home-hero-before",{},void 0,!0),h(Ws,null,{"home-hero-info":v(()=>[u(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(e.$slots,"home-hero-after",{},void 0,!0),u(e.$slots,"home-features-before",{},void 0,!0),h(fn),u(e.$slots,"home-features-after",{},void 0,!0),h(n)])}}});const bn=m(gn,[["__scopeId","data-v-d82743a8"]]),$n={},kn={class:"VPPage"};function yn(s,e){const t=j("Content");return a(),i("div",kn,[u(s.$slots,"page-top"),h(t),u(s.$slots,"page-bottom")])}const Pn=m($n,[["render",yn]]),Vn=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,r)=>(a(),i("div",{class:N(["VPContent",{"has-sidebar":l(n),"is-home":l(t).layout==="home"}]),id:"VPContent"},[l(e).isNotFound?u(o.$slots,"not-found",{key:0},()=>[h(dt)],!0):l(t).layout==="page"?(a(),$(Pn,{key:1},{"page-top":v(()=>[u(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):l(t).layout==="home"?(a(),$(bn,{key:2},{"home-hero-before":v(()=>[u(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):l(t).layout&&l(t).layout!=="doc"?(a(),$(E(l(t).layout),{key:3})):(a(),$(Is,{key:4},{"doc-top":v(()=>[u(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[u(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[u(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[u(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[u(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const wn=m(Vn,[["__scopeId","data-v-669faec9"]]),Ln={class:"container"},Sn=["innerHTML"],Mn=["innerHTML"],Nn=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,r)=>l(e).footer&&l(t).footer!==!1?(a(),i("footer",{key:0,class:N(["VPFooter",{"has-sidebar":l(n)}])},[c("div",Ln,[l(e).footer.message?(a(),i("p",{key:0,class:"message",innerHTML:l(e).footer.message},null,8,Sn)):f("",!0),l(e).footer.copyright?(a(),i("p",{key:1,class:"copyright",innerHTML:l(e).footer.copyright},null,8,Mn)):f("",!0)])],2)):f("",!0)}});const In=m(Nn,[["__scopeId","data-v-e03eb2e1"]]),Cn={class:"header"},Tn={class:"outline"},Bn=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=P(),n=S(!1),o=S(0),r=S();Y(()=>{n.value=!1});function d(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(b){b.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),Ee(()=>{n.value=!1}))}function _(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,y)=>(a(),i("div",{class:"VPLocalNavOutlineDropdown",style:Fe({"--vp-vh":o.value+"px"})},[b.headers.length>0?(a(),i("button",{key:0,onClick:d,class:N({open:n.value})},[x(L(l(ve)(l(t)))+" ",1),h(fe,{class:"icon"})],2)):(a(),i("button",{key:1,onClick:_},L(l(t).returnToTopLabel||"Return to top"),1)),h(ce,{name:"flyout"},{default:v(()=>[n.value?(a(),i("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:p},[c("div",Cn,[c("a",{class:"top-link",href:"#",onClick:_},L(l(t).returnToTopLabel||"Return to top"),1)]),c("div",Tn,[h(he,{headers:b.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}});const An=m(Bn,[["__scopeId","data-v-1c15a60a"]]),xn={},Hn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},zn=c("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Dn=c("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),Fn=c("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),En=c("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),On=[zn,Dn,Fn,En];function Gn(s,e){return a(),i("svg",Hn,On)}const Un=m(xn,[["render",Gn]]),jn=["aria-expanded"],qn={class:"menu-text"},Rn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D(),{y:o}=we(),r=_e([]),d=S(0);G(()=>{d.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{r.value=pe(t.value.outline??e.value.outline)});const p=k(()=>r.value.length===0&&!n.value),_=k(()=>({VPLocalNav:!0,fixed:p.value,"reached-top":o.value>=d.value}));return(b,y)=>l(t).layout!=="home"&&(!p.value||l(o)>=d.value)?(a(),i("div",{key:0,class:N(_.value)},[l(n)?(a(),i("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=w=>b.$emit("open-menu"))},[h(Un,{class:"menu-icon"}),c("span",qn,L(l(e).sidebarMenuLabel||"Menu"),1)],8,jn)):f("",!0),h(An,{headers:r.value,navHeight:d.value},null,8,["headers","navHeight"])],2)):f("",!0)}});const Kn=m(Rn,[["__scopeId","data-v-79c8c1df"]]);function Wn(){const s=S(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const r=se();return U(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const Yn={},Jn={class:"VPSwitch",type:"button",role:"switch"},Zn={class:"check"},Qn={key:0,class:"icon"};function Xn(s,e){return a(),i("button",Jn,[c("span",Zn,[s.$slots.default?(a(),i("span",Qn,[u(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const eo=m(Yn,[["render",Xn],["__scopeId","data-v-b1685198"]]),to={},so={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},no=c("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),oo=[no];function ao(s,e){return a(),i("svg",so,oo)}const ro=m(to,[["render",ao]]),lo={},io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},co=Oe('',9),uo=[co];function _o(s,e){return a(),i("svg",io,uo)}const vo=m(lo,[["render",_o]]),po=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e}=P(),t=ne("toggle-appearance",()=>{e.value=!e.value});return(n,o)=>(a(),$(eo,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":l(e),onClick:l(t)},{default:v(()=>[h(vo,{class:"sun"}),h(ro,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const me=m(po,[["__scopeId","data-v-ce54a7d1"]]),ho={key:0,class:"VPNavBarAppearance"},fo=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=P();return(t,n)=>l(e).appearance&&l(e).appearance!=="force-dark"?(a(),i("div",ho,[h(me)])):f("",!0)}});const mo=m(fo,[["__scopeId","data-v-e6aabb21"]]),ge=S();let Ie=!1,ae=0;function go(s){const e=S(!1);if(K){!Ie&&bo(),ae++;const t=U(ge,n=>{var o,r,d;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(d=s.onBlur)==null||d.call(s))});de(()=>{t(),ae--,ae||$o()})}return Ge(e)}function bo(){document.addEventListener("focusin",Ce),Ie=!0,ge.value=document.activeElement}function $o(){document.removeEventListener("focusin",Ce)}function Ce(){ge.value=document.activeElement}const ko={},yo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Po=c("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Vo=[Po];function wo(s,e){return a(),i("svg",yo,Vo)}const Te=m(ko,[["render",wo]]),Lo={},So={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Mo=c("circle",{cx:"12",cy:"12",r:"2"},null,-1),No=c("circle",{cx:"19",cy:"12",r:"2"},null,-1),Io=c("circle",{cx:"5",cy:"12",r:"2"},null,-1),Co=[Mo,No,Io];function To(s,e){return a(),i("svg",So,Co)}const Bo=m(Lo,[["render",To]]),Ao={class:"VPMenuLink"},xo=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),i("div",Ao,[h(F,{class:N({active:l(O)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const oe=m(xo,[["__scopeId","data-v-43f1e123"]]),Ho={class:"VPMenuGroup"},zo={key:0,class:"title"},Do=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",Ho,[e.text?(a(),i("p",zo,L(e.text),1)):f("",!0),(a(!0),i(M,null,A(e.items,n=>(a(),i(M,null,["link"in n?(a(),$(oe,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}});const Fo=m(Do,[["__scopeId","data-v-69e747b5"]]),Eo={class:"VPMenu"},Oo={key:0,class:"items"},Go=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),i("div",Eo,[e.items?(a(),i("div",Oo,[(a(!0),i(M,null,A(e.items,n=>(a(),i(M,{key:n.text},["link"in n?(a(),$(oe,{key:0,item:n},null,8,["item"])):(a(),$(Fo,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),u(e.$slots,"default",{},void 0,!0)]))}});const Uo=m(Go,[["__scopeId","data-v-e7ea1737"]]),jo=["aria-expanded","aria-label"],qo={key:0,class:"text"},Ro=["innerHTML"],Ko={class:"menu"},Wo=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=S(!1),t=S();go({el:t,onBlur:n});function n(){e.value=!1}return(o,r)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[c("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[o.button||o.icon?(a(),i("span",qo,[o.icon?(a(),$(E(o.icon),{key:0,class:"option-icon"})):f("",!0),o.button?(a(),i("span",{key:1,innerHTML:o.button},null,8,Ro)):f("",!0),h(Te,{class:"text-icon"})])):(a(),$(Bo,{key:1,class:"icon"}))],8,jo),c("div",Ko,[h(Uo,{items:o.items},{default:v(()=>[u(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const be=m(Wo,[["__scopeId","data-v-9c007e85"]]),Yo={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},Jo=["href","aria-label","innerHTML"],Zo=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=k(()=>typeof e.icon=="object"?e.icon.svg:Yo[e.icon]);return(n,o)=>(a(),i("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Jo))}});const Qo=m(Zo,[["__scopeId","data-v-f80f8133"]]),Xo={class:"VPSocialLinks"},ea=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),i("div",Xo,[(a(!0),i(M,null,A(e.links,({link:n,icon:o,ariaLabel:r})=>(a(),$(Qo,{key:n,icon:o,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const $e=m(ea,[["__scopeId","data-v-7bc22406"]]),ta={key:0,class:"group translations"},sa={class:"trans-title"},na={key:1,class:"group"},oa={class:"item appearance"},aa={class:"label"},ra={class:"appearance-action"},la={key:2,class:"group"},ia={class:"item social-links"},ca=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=P(),{localeLinks:n,currentLang:o}=Z({correspondingLink:!0}),r=k(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),$(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[l(n).length&&l(o).label?(a(),i("div",ta,[c("p",sa,L(l(o).label),1),(a(!0),i(M,null,A(l(n),_=>(a(),$(oe,{key:_.link,item:_},null,8,["item"]))),128))])):f("",!0),l(e).appearance?(a(),i("div",na,[c("div",oa,[c("p",aa,L(l(t).darkModeSwitchLabel||"Appearance"),1),c("div",ra,[h(me)])])])):f("",!0),l(t).socialLinks?(a(),i("div",la,[c("div",ia,[h($e,{class:"social-links-list",links:l(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const ua=m(ca,[["__scopeId","data-v-40855f84"]]),da=s=>(H("data-v-e5dd9c1c"),s=s(),z(),s),_a=["aria-expanded"],va=da(()=>c("span",{class:"container"},[c("span",{class:"top"}),c("span",{class:"middle"}),c("span",{class:"bottom"})],-1)),pa=[va],ha=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),i("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},pa,10,_a))}});const fa=m(ha,[["__scopeId","data-v-e5dd9c1c"]]),ma=["innerHTML"],ga=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:l(O)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[c("span",{innerHTML:t.item.text},null,8,ma)]),_:1},8,["class","href","target","rel"]))}});const ba=m(ga,[["__scopeId","data-v-42ef59de"]]),$a=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=P(),n=r=>"link"in r?O(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),o=k(()=>n(e.item));return(r,d)=>(a(),$(be,{class:N({VPNavBarMenuGroup:!0,active:l(O)(l(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||o.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ka=s=>(H("data-v-7f418b0f"),s=s(),z(),s),ya={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Pa=ka(()=>c("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Va=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=P();return(t,n)=>l(e).nav?(a(),i("nav",ya,[Pa,(a(!0),i(M,null,A(l(e).nav,o=>(a(),i(M,{key:o.text},["link"in o?(a(),$(ba,{key:0,item:o},null,8,["item"])):(a(),$($a,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}});const wa=m(Va,[["__scopeId","data-v-7f418b0f"]]);function La(s,e){const{localeIndex:t}=P();function n(o){var I,B;const r=o.split("."),d=s&&typeof s=="object",p=d&&((B=(I=s.locales)==null?void 0:I[t.value])==null?void 0:B.translations)||null,_=d&&s.translations||null;let b=p,y=_,w=e;const C=r.pop();for(const T of r){let V=null;const q=w==null?void 0:w[T];q&&(V=w=q);const W=y==null?void 0:y[T];W&&(V=y=W);const R=b==null?void 0:b[T];R&&(V=b=R),q||(w=V),W||(y=V),R||(b=V)}return(b==null?void 0:b[C])??(y==null?void 0:y[C])??(w==null?void 0:w[C])??""}return n}const Sa=["aria-label"],Ma={class:"DocSearch-Button-Container"},Na=c("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[c("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Ia={class:"DocSearch-Button-Placeholder"},Ca=c("span",{class:"DocSearch-Button-Keys"},[c("kbd",{class:"DocSearch-Button-Key"}),c("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=g({__name:"VPNavBarSearchButton",setup(s){const{theme:e}=P(),t={button:{buttonText:"Search",buttonAriaLabel:"Search"}},n=Ue(La)(je(()=>{var o;return(o=e.value.search)==null?void 0:o.options}),t);return(o,r)=>(a(),i("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":l(n)("button.buttonAriaLabel")},[c("span",Ma,[Na,c("span",Ia,L(l(n)("button.buttonText")),1)]),Ca],8,Sa))}});const Ta={class:"VPNavBarSearch"},Ba={id:"local-search"},Aa={key:1,id:"docsearch"},xa=g({__name:"VPNavBarSearch",setup(s){const e=()=>null,t=()=>null,{theme:n}=P(),o=S(!1),r=S(!1);G(()=>{});function d(){o.value||(o.value=!0,setTimeout(p,16))}function p(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}const _=S(!1),b="";return(y,w)=>{var C;return a(),i("div",Ta,[l(b)==="local"?(a(),i(M,{key:0},[_.value?(a(),$(l(e),{key:0,onClose:w[0]||(w[0]=I=>_.value=!1)})):f("",!0),c("div",Ba,[h(ye,{onClick:w[1]||(w[1]=I=>_.value=!0)})])],64)):l(b)==="algolia"?(a(),i(M,{key:1},[o.value?(a(),$(l(t),{key:0,algolia:((C=l(n).search)==null?void 0:C.options)??l(n).algolia,onVnodeBeforeMount:w[2]||(w[2]=I=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),i("div",Aa,[h(ye,{onClick:d})]))],64)):f("",!0)])}}});const Ha=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>l(e).socialLinks?(a(),$($e,{key:0,class:"VPNavBarSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}});const za=m(Ha,[["__scopeId","data-v-0394ad82"]]),Da=["href"],Fa=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=P(),{hasSidebar:n}=D(),{currentLang:o}=Z();return(r,d)=>(a(),i("div",{class:N(["VPNavBarTitle",{"has-sidebar":l(n)}])},[c("a",{class:"title",href:l(t).logoLink??l(J)(l(o).link)},[u(r.$slots,"nav-bar-title-before",{},void 0,!0),l(t).logo?(a(),$(ee,{key:0,class:"logo",image:l(t).logo},null,8,["image"])):f("",!0),l(t).siteTitle?(a(),i(M,{key:1},[x(L(l(t).siteTitle),1)],64)):l(t).siteTitle===void 0?(a(),i(M,{key:2},[x(L(l(e).title),1)],64)):f("",!0),u(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Da)],2))}});const Ea=m(Fa,[["__scopeId","data-v-86d1bed8"]]),Oa={},Ga={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ua=c("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),ja=c("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),qa=[Ua,ja];function Ra(s,e){return a(),i("svg",Ga,qa)}const Be=m(Oa,[["render",Ra]]),Ka={class:"items"},Wa={class:"title"},Ya=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=P(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(o,r)=>l(t).length&&l(n).label?(a(),$(be,{key:0,class:"VPNavBarTranslations",icon:Be,label:l(e).langMenuLabel||"Change language"},{default:v(()=>[c("div",Ka,[c("p",Wa,L(l(n).label),1),(a(!0),i(M,null,A(l(t),d=>(a(),$(oe,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const Ja=m(Ya,[["__scopeId","data-v-74abcbb9"]]),Za=s=>(H("data-v-a0fd61f4"),s=s(),z(),s),Qa={class:"container"},Xa={class:"title"},er={class:"content"},tr=Za(()=>c("div",{class:"curtain"},null,-1)),sr={class:"content-body"},nr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=we(),{hasSidebar:t}=D(),{frontmatter:n}=P(),o=S({});return Pe(()=>{o.value={"has-sidebar":t.value,top:n.value.layout==="home"&&e.value===0}}),(r,d)=>(a(),i("div",{class:N(["VPNavBar",o.value])},[c("div",Qa,[c("div",Xa,[h(Ea,null,{"nav-bar-title-before":v(()=>[u(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),c("div",er,[tr,c("div",sr,[u(r.$slots,"nav-bar-content-before",{},void 0,!0),h(xa,{class:"search"}),h(wa,{class:"menu"}),h(Ja,{class:"translations"}),h(mo,{class:"appearance"}),h(za,{class:"social-links"}),h(ua,{class:"extra"}),u(r.$slots,"nav-bar-content-after",{},void 0,!0),h(fa,{class:"hamburger",active:r.isScreenOpen,onClick:d[0]||(d[0]=p=>r.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const or=m(nr,[["__scopeId","data-v-a0fd61f4"]]),ar={key:0,class:"VPNavScreenAppearance"},rr={class:"text"},lr=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=P();return(n,o)=>l(e).appearance?(a(),i("div",ar,[c("p",rr,L(l(t).darkModeSwitchLabel||"Appearance"),1),h(me)])):f("",!0)}});const ir=m(lr,[["__scopeId","data-v-add8f686"]]),cr=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const ur=m(cr,[["__scopeId","data-v-05f27b2a"]]),dr={},_r={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},vr=c("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),pr=[vr];function hr(s,e){return a(),i("svg",_r,pr)}const fr=m(dr,[["render",hr]]),mr=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Ae=m(mr,[["__scopeId","data-v-19976ae1"]]),gr={class:"VPNavScreenMenuGroupSection"},br={key:0,class:"title"},$r=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",gr,[e.text?(a(),i("p",br,L(e.text),1)):f("",!0),(a(!0),i(M,null,A(e.items,n=>(a(),$(Ae,{key:n.text,item:n},null,8,["item"]))),128))]))}});const kr=m($r,[["__scopeId","data-v-8133b170"]]),yr=["aria-controls","aria-expanded"],Pr={class:"button-text"},Vr=["id"],wr={key:1,class:"group"},Lr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=S(!1),n=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(r,d)=>(a(),i("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[c("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[c("span",Pr,L(r.text),1),h(fr,{class:"button-icon"})],8,yr),c("div",{id:n.value,class:"items"},[(a(!0),i(M,null,A(r.items,p=>(a(),i(M,{key:p.text},["link"in p?(a(),i("div",{key:p.text,class:"item"},[h(Ae,{item:p},null,8,["item"])])):(a(),i("div",wr,[h(kr,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,Vr)],2))}});const Sr=m(Lr,[["__scopeId","data-v-1ecb84e7"]]),Mr={key:0,class:"VPNavScreenMenu"},Nr=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=P();return(t,n)=>l(e).nav?(a(),i("nav",Mr,[(a(!0),i(M,null,A(l(e).nav,o=>(a(),i(M,{key:o.text},["link"in o?(a(),$(ur,{key:0,item:o},null,8,["item"])):(a(),$(Sr,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ir=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>l(e).socialLinks?(a(),$($e,{key:0,class:"VPNavScreenSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}}),Cr={class:"list"},Tr=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=S(!1);function o(){n.value=!n.value}return(r,d)=>l(e).length&&l(t).label?(a(),i("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[c("button",{class:"title",onClick:o},[h(Be,{class:"icon lang"}),x(" "+L(l(t).label)+" ",1),h(Te,{class:"icon chevron"})]),c("ul",Cr,[(a(!0),i(M,null,A(l(e),p=>(a(),i("li",{key:p.link,class:"item"},[h(F,{class:"link",href:p.link},{default:v(()=>[x(L(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const Br=m(Tr,[["__scopeId","data-v-d72aa483"]]),Ar={class:"container"},xr=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=S(null),t=Le(K?document.body:null);return(n,o)=>(a(),$(ce,{name:"fade",onEnter:o[0]||(o[0]=r=>t.value=!0),onAfterLeave:o[1]||(o[1]=r=>t.value=!1)},{default:v(()=>[n.open?(a(),i("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[c("div",Ar,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),h(Nr,{class:"menu"}),h(Br,{class:"translations"}),h(ir,{class:"appearance"}),h(Ir,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const Hr=m(xr,[["__scopeId","data-v-cc5739dd"]]),zr={key:0,class:"VPNav"},Dr=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Wn(),{frontmatter:o}=P(),r=k(()=>o.value.navbar!==!1);return Se("close-screen",t),te(()=>{K&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(d,p)=>r.value?(a(),i("header",zr,[h(or,{"is-screen-open":l(e),onToggleScreen:l(n)},{"nav-bar-title-before":v(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(Hr,{open:l(e)},{"nav-screen-content-before":v(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}});const Fr=m(Dr,[["__scopeId","data-v-ae24b3ad"]]),Er=s=>(H("data-v-e31bd47b"),s=s(),z(),s),Or=["role","tabindex"],Gr=Er(()=>c("div",{class:"indicator"},null,-1)),Ur={key:1,class:"items"},jr=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=ht(k(()=>e.item)),b=k(()=>p.value?"section":"div"),y=k(()=>o.value?"a":"div"),w=k(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),C=k(()=>o.value?void 0:"button"),I=k(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":r.value},{"has-active":d.value}]);function B(V){"key"in V&&V.key!=="Enter"||!e.item.link&&_()}function T(){e.item.link&&_()}return(V,q)=>{const W=j("VPSidebarItem",!0);return a(),$(E(b.value),{class:N(["VPSidebarItem",I.value])},{default:v(()=>[V.item.text?(a(),i("div",Q({key:0,class:"item",role:C.value},Re(V.item.items?{click:B,keydown:B}:{},!0),{tabindex:V.item.items&&0}),[Gr,V.item.link?(a(),$(F,{key:0,tag:y.value,class:"link",href:V.item.link,rel:V.item.rel,target:V.item.target},{default:v(()=>[(a(),$(E(w.value),{class:"text",innerHTML:V.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(E(w.value),{key:1,class:"text",innerHTML:V.item.text},null,8,["innerHTML"])),V.item.collapsed!=null?(a(),i("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:T,onKeydown:qe(T,["enter"]),tabindex:"0"},[h(fe,{class:"caret-icon"})],32)):f("",!0)],16,Or)):f("",!0),V.item.items&&V.item.items.length?(a(),i("div",Ur,[V.depth<5?(a(!0),i(M,{key:0},A(V.item.items,R=>(a(),$(W,{key:R.text,item:R,depth:V.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const qr=m(jr,[["__scopeId","data-v-e31bd47b"]]),xe=s=>(H("data-v-b00e2fdd"),s=s(),z(),s),Rr=xe(()=>c("div",{class:"curtain"},null,-1)),Kr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Wr=xe(()=>c("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Yr=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=D(),n=s,o=S(null),r=Le(K?document.body:null);return U([n,o],()=>{var d;n.open?(r.value=!0,(d=o.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"}),(d,p)=>l(t)?(a(),i("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:p[0]||(p[0]=Ke(()=>{},["stop"]))},[Rr,c("nav",Kr,[Wr,u(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),i(M,null,A(l(e),_=>(a(),i("div",{key:_.text,class:"group"},[h(qr,{item:_,depth:0},null,8,["item"])]))),128)),u(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const Jr=m(Yr,[["__scopeId","data-v-b00e2fdd"]]),Zr=g({__name:"VPSkipLink",setup(s){const e=se(),t=S();U(()=>e.path,()=>t.value.focus());function n({target:o}){const r=document.getElementById(decodeURIComponent(o.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(a(),i(M,null,[c("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),c("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}});const Qr=m(Zr,[["__scopeId","data-v-0f60ec36"]]),Xr=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=D(),o=se();U(()=>o.path,n),pt(e,n);const{frontmatter:r}=P(),d=We(),p=k(()=>!!d["home-hero-image"]);return Se("hero-image-slot-exists",p),(_,b)=>{const y=j("Content");return l(r).layout!==!1?(a(),i("div",{key:0,class:N(["Layout",l(r).pageClass])},[u(_.$slots,"layout-top",{},void 0,!0),h(Qr),h(Xe,{class:"backdrop",show:l(e),onClick:l(n)},null,8,["show","onClick"]),h(Fr,null,{"nav-bar-title-before":v(()=>[u(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[u(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),h(Kn,{open:l(e),onOpenMenu:l(t)},null,8,["open","onOpenMenu"]),h(Jr,{open:l(e)},{"sidebar-nav-before":v(()=>[u(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[u(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(wn,null,{"page-top":v(()=>[u(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[u(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[u(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[u(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[u(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[u(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(In),u(_.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(y,{key:1}))}}});const el=m(Xr,[["__scopeId","data-v-5a346dfe"]]);const sl={Layout:el,enhanceApp:({app:s})=>{s.component("Badge",Je)}};export{sl as t}; +import{d as g,o as a,c as i,r as u,n as N,a as x,t as L,_ as m,b as $,w as v,T as ce,e as f,u as He,i as ze,f as ue,g as k,h as S,j as G,k as c,l,p as H,m as z,q as O,s as K,v as re,x as U,y as te,z as de,A as Pe,B as De,C as j,F as M,D as A,E as _e,G as Y,H as h,I as E,J as Ve,K as se,L as Q,M as ne,N as Fe,O as Ee,P as we,Q as Oe,R as Ge,S as Ue,U as je,V as Le,W as Se,X as qe,Y as Re,Z as Ke,$ as We}from"./framework.c0711e93.js";const Ye=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),i("span",{class:N(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[x(L(e.text),1)],!0)],2))}});const Je=m(Ye,[["__scopeId","data-v-9613cc9f"]]),Ze={key:0,class:"VPBackdrop"},Qe=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),$(ce,{name:"fade"},{default:v(()=>[e.show?(a(),i("div",Ze)):f("",!0)]),_:1}))}});const Xe=m(Qe,[["__scopeId","data-v-c79a1216"]]),P=He;function et(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function J(s){const{pathname:e,search:t,hash:n,protocol:o}=new URL(s,"http://a.com");if(ze(s)||s.startsWith("#")||!o.startsWith("http")||/\.(?!html|md)\w+($|\?)/i.test(s))return s;const{site:r}=P(),d=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return ue(d)}function Z({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:r}=P(),d=k(()=>{var _,b;return{label:(_=t.value.locales[n.value])==null?void 0:_.label,link:((b=t.value.locales[n.value])==null?void 0:b.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([_,b])=>s&&d.value.label===b.label?[]:{text:b.label,link:tt(b.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,o.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function tt(s,e,t,n){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const st=s=>(H("data-v-f87ff6e4"),s=s(),z(),s),nt={class:"NotFound"},ot={class:"code"},at={class:"title"},rt=st(()=>c("div",{class:"divider"},null,-1)),lt={class:"quote"},it={class:"action"},ct=["href","aria-label"],ut=g({__name:"NotFound",setup(s){const{site:e,theme:t}=P(),{localeLinks:n}=Z({removeCurrent:!1}),o=S("/");return G(()=>{var d;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((d=n.value.find(({link:p})=>p.startsWith(r)))==null?void 0:d.link)||n.value[0].link)}),(r,d)=>{var p,_,b,y,w;return a(),i("div",nt,[c("p",ot,L(((p=l(t).notFound)==null?void 0:p.code)??"404"),1),c("h1",at,L(((_=l(t).notFound)==null?void 0:_.title)??"PAGE NOT FOUND"),1),rt,c("blockquote",lt,L(((b=l(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),c("div",it,[c("a",{class:"link",href:l(ue)(o.value),"aria-label":((y=l(t).notFound)==null?void 0:y.linkLabel)??"go to home"},L(((w=l(t).notFound)==null?void 0:w.linkText)??"Take me home"),9,ct)])])}}});const dt=m(ut,[["__scopeId","data-v-f87ff6e4"]]);function Me(s,e){if(Array.isArray(s))return X(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((o,r)=>r.split("/").length-o.split("/").length).find(o=>e.startsWith(le(o))),n=t?s[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function _t(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function vt(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function ie(s,e){return Array.isArray(e)?e.some(t=>ie(s,t)):O(s,e.link)?!0:e.items?ie(s,e.items):!1}function X(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=X(n.items,o)),n})}function D(){const{frontmatter:s,page:e,theme:t}=P(),n=re("(min-width: 960px)"),o=S(!1),r=k(()=>{const T=t.value.sidebar,V=e.value.relativePath;return T?Me(T,V):[]}),d=S(r.value);U(r,(T,V)=>{JSON.stringify(T)!==JSON.stringify(V)&&(d.value=r.value)});const p=k(()=>s.value.sidebar!==!1&&d.value.length>0&&s.value.layout!=="home"),_=k(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=k(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),y=k(()=>p.value&&n.value),w=k(()=>p.value?_t(d.value):[]);function C(){o.value=!0}function I(){o.value=!1}function B(){o.value?I():C()}return{isOpen:o,sidebar:d,sidebarGroups:w,hasSidebar:p,hasAside:b,leftAside:_,isSidebarEnabled:y,open:C,close:I,toggle:B}}function pt(s,e){let t;te(()=>{t=s.value?document.activeElement:void 0}),G(()=>{window.addEventListener("keyup",n)}),de(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}const Ne=S(K?location.hash:"");K&&window.addEventListener("hashchange",()=>{Ne.value=location.hash});function ht(s){const{page:e}=P(),t=S(!1),n=k(()=>s.value.collapsed!=null),o=k(()=>!!s.value.link),r=S(!1),d=()=>{r.value=O(e.value.relativePath,s.value.link)};U([e,s,Ne],d),G(d);const p=k(()=>r.value?!0:s.value.items?ie(e.value.relativePath,s.value.items):!1),_=k(()=>!!(s.value.items&&s.value.items.length));te(()=>{t.value=!!(n.value&&s.value.collapsed)}),Pe(()=>{(r.value||p.value)&&(t.value=!1)});function b(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:o,isActiveLink:r,hasActiveLink:p,hasChildren:_,toggle:b}}function ft(){const{hasSidebar:s}=D(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const mt=71;function ve(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function pe(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{title:gt(t),link:"#"+t.id,level:n}});return bt(e,s)}function gt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function bt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(d=>d.level>=n&&d.level<=o);const r=[];e:for(let d=0;d=0;_--){const b=s[_];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),De(()=>{d(location.hash)}),de(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const p=[].slice.call(s.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(I=>p.some(B=>B.hash===I.hash&&I.offsetParent!==null)),b=window.scrollY,y=window.innerHeight,w=document.body.offsetHeight,C=Math.abs(b+y-w)<1;if(_.length&&C){d(_[_.length-1].hash);return}for(let I=0;I<_.length;I++){const B=_[I],T=_[I+1],[V,q]=kt(I,B,T);if(V){d(q);return}}}function d(p){o&&o.classList.remove("active"),p==null?o=null:o=s.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const _=o;_?(_.classList.add("active"),e.value.style.top=_.offsetTop+33+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function ke(s){return s.parentElement.offsetTop-mt}function kt(s,e,t){const n=window.scrollY;return s===0&&n===0?[!0,null]:n{const o=j("VPDocOutlineItem",!0);return a(),i("ul",{class:N(t.root?"root":"nested")},[(a(!0),i(M,null,A(t.headers,({children:r,link:d,title:p})=>(a(),i("li",null,[c("a",{class:"outline-link",href:d,onClick:e,title:p},L(p),9,yt),r!=null&&r.length?(a(),$(o,{key:0,headers:r},null,8,["headers"])):f("",!0)]))),256))],2)}}});const he=m(Pt,[["__scopeId","data-v-d0ee3533"]]),Vt=s=>(H("data-v-d330b1bb"),s=s(),z(),s),wt={class:"content"},Lt={class:"outline-title",role:"heading","aria-level":"2"},St={"aria-labelledby":"doc-outline-aria-label"},Mt=Vt(()=>c("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Nt=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=P(),n=_e([]);Y(()=>{n.value=pe(e.value.outline??t.value.outline)});const o=S(),r=S();return $t(o,r),(d,p)=>(a(),i("div",{class:N(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[c("div",wt,[c("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),c("div",Lt,L(l(ve)(l(t))),1),c("nav",St,[Mt,h(he,{headers:n.value,root:!0},null,8,["headers"])])])],2))}});const It=m(Nt,[["__scopeId","data-v-d330b1bb"]]),Ct={class:"VPDocAsideCarbonAds"},Tt=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),i("div",Ct,[h(l(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Bt=s=>(H("data-v-3f215769"),s=s(),z(),s),At={class:"VPDocAside"},xt=Bt(()=>c("div",{class:"spacer"},null,-1)),Ht=g({__name:"VPDocAside",setup(s){const{theme:e}=P();return(t,n)=>(a(),i("div",At,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),h(It),u(t.$slots,"aside-outline-after",{},void 0,!0),xt,u(t.$slots,"aside-ads-before",{},void 0,!0),l(e).carbonAds?(a(),$(Tt,{key:0,"carbon-ads":l(e).carbonAds},null,8,["carbon-ads"])):f("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}});const zt=m(Ht,[["__scopeId","data-v-3f215769"]]);function Dt(){const{theme:s,page:e}=P();return k(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Ft(){const{page:s,theme:e,frontmatter:t}=P();return k(()=>{var _,b,y,w,C,I,B,T;const n=Me(e.value.sidebar,s.value.relativePath),o=vt(n),r=o.findIndex(V=>O(s.value.relativePath,V.link)),d=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=o[r-1])==null?void 0:y.docFooterText)??((w=o[r-1])==null?void 0:w.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((C=o[r-1])==null?void 0:C.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((I=o[r+1])==null?void 0:I.docFooterText)??((B=o[r+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((T=o[r+1])==null?void 0:T.link)}}})}const Et={},Ot={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Gt=c("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),Ut=c("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),jt=[Gt,Ut];function qt(s,e){return a(),i("svg",Ot,jt)}const Rt=m(Et,[["render",qt]]),F=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.tag??(e.href?"a":"span")),n=k(()=>e.href&&Ve.test(e.href));return(o,r)=>(a(),$(E(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?l(J)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[u(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Kt={class:"VPLastUpdated"},Wt=["datetime"],Yt=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n,lang:o}=P(),r=k(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),d=k(()=>r.value.toISOString()),p=S("");return G(()=>{te(()=>{var _,b,y;p.value=new Intl.DateTimeFormat((b=(_=e.value.lastUpdated)==null?void 0:_.formatOptions)!=null&&b.forceLocale?o.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(_,b)=>{var y;return a(),i("p",Kt,[x(L(((y=l(e).lastUpdated)==null?void 0:y.text)||l(e).lastUpdatedText||"Last updated")+": ",1),c("time",{datetime:d.value},L(p.value),9,Wt)])}}});const Jt=m(Yt,[["__scopeId","data-v-7e05ebdb"]]),Zt={key:0,class:"VPDocFooter"},Qt={key:0,class:"edit-info"},Xt={key:0,class:"edit-link"},es={key:1,class:"last-updated"},ts={key:1,class:"prev-next"},ss={class:"pager"},ns=["href"],os=["innerHTML"],as=["innerHTML"],rs={class:"pager"},ls=["href"],is=["innerHTML"],cs=["innerHTML"],us=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=P(),o=Dt(),r=Ft(),d=k(()=>e.value.editLink&&n.value.editLink!==!1),p=k(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),_=k(()=>d.value||p.value||r.value.prev||r.value.next);return(b,y)=>{var w,C,I,B,T,V;return _.value?(a(),i("footer",Zt,[u(b.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),i("div",Qt,[d.value?(a(),i("div",Xt,[h(F,{class:"edit-link-button",href:l(o).url,"no-icon":!0},{default:v(()=>[h(Rt,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+L(l(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),i("div",es,[h(Jt)])):f("",!0)])):f("",!0),(w=l(r).prev)!=null&&w.link||(C=l(r).next)!=null&&C.link?(a(),i("nav",ts,[c("div",ss,[(I=l(r).prev)!=null&&I.link?(a(),i("a",{key:0,class:"pager-link prev",href:l(J)(l(r).prev.link)},[c("span",{class:"desc",innerHTML:((B=l(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,os),c("span",{class:"title",innerHTML:l(r).prev.text},null,8,as)],8,ns)):f("",!0)]),c("div",rs,[(T=l(r).next)!=null&&T.link?(a(),i("a",{key:0,class:"pager-link next",href:l(J)(l(r).next.link)},[c("span",{class:"desc",innerHTML:((V=l(e).docFooter)==null?void 0:V.next)||"Next page"},null,8,is),c("span",{class:"title",innerHTML:l(r).next.text},null,8,cs)],8,ls)):f("",!0)])])):f("",!0)])):f("",!0)}}});const ds=m(us,[["__scopeId","data-v-ef5dee53"]]),_s={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ps=c("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),hs=[ps];function fs(s,e){return a(),i("svg",vs,hs)}const fe=m(_s,[["render",fs]]),ms={key:0,class:"VPDocOutlineDropdown"},gs={key:0,class:"items"},bs=g({__name:"VPDocOutlineDropdown",setup(s){const{frontmatter:e,theme:t}=P(),n=S(!1);Y(()=>{n.value=!1});const o=_e([]);return Y(()=>{o.value=pe(e.value.outline??t.value.outline)}),(r,d)=>o.value.length>0?(a(),i("div",ms,[c("button",{onClick:d[0]||(d[0]=p=>n.value=!n.value),class:N({open:n.value})},[x(L(l(ve)(l(t)))+" ",1),h(fe,{class:"icon"})],2),n.value?(a(),i("div",gs,[h(he,{headers:o.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const $s=m(bs,[["__scopeId","data-v-eadfb36b"]]),ks=s=>(H("data-v-6b87e69f"),s=s(),z(),s),ys={class:"container"},Ps=ks(()=>c("div",{class:"aside-curtain"},null,-1)),Vs={class:"aside-container"},ws={class:"aside-content"},Ls={class:"content"},Ss={class:"content-container"},Ms={class:"main"},Ns=g({__name:"VPDoc",setup(s){const{theme:e}=P(),t=se(),{hasSidebar:n,hasAside:o,leftAside:r}=D(),d=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,_)=>{const b=j("Content");return a(),i("div",{class:N(["VPDoc",{"has-sidebar":l(n),"has-aside":l(o)}])},[u(p.$slots,"doc-top",{},void 0,!0),c("div",ys,[l(o)?(a(),i("div",{key:0,class:N(["aside",{"left-aside":l(r)}])},[Ps,c("div",Vs,[c("div",ws,[h(zt,null,{"aside-top":v(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),c("div",Ls,[c("div",Ss,[u(p.$slots,"doc-before",{},void 0,!0),h($s),c("main",Ms,[h(b,{class:N(["vp-doc",[d.value,l(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(ds,null,{"doc-footer-before":v(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}});const Is=m(Ns,[["__scopeId","data-v-6b87e69f"]]),Cs=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{}},setup(s){const e=s,t=k(()=>e.href&&Ve.test(e.href)),n=k(()=>e.tag||e.href?"a":"button");return(o,r)=>(a(),$(E(n.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?l(J)(o.href):void 0,target:t.value?"_blank":void 0,rel:t.value?"noreferrer":void 0},{default:v(()=>[x(L(o.text),1)]),_:1},8,["class","href","target","rel"]))}});const Ts=m(Cs,[["__scopeId","data-v-c1c5efc1"]]),Bs=["src","alt"],As=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=j("VPImage",!0);return e.image?(a(),i(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:l(ue)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Bs)):(a(),i(M,{key:1},[h(n,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(n,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const ee=m(As,[["__scopeId","data-v-8426fc1a"]]),xs=s=>(H("data-v-da5d1713"),s=s(),z(),s),Hs={class:"container"},zs={class:"main"},Ds={key:0,class:"name"},Fs=["innerHTML"],Es=["innerHTML"],Os=["innerHTML"],Gs={key:0,class:"actions"},Us={key:0,class:"image"},js={class:"image-container"},qs=xs(()=>c("div",{class:"image-bg"},null,-1)),Rs=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=ne("hero-image-slot-exists");return(t,n)=>(a(),i("div",{class:N(["VPHero",{"has-image":t.image||l(e)}])},[c("div",Hs,[c("div",zs,[u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),i("h1",Ds,[c("span",{innerHTML:t.name,class:"clip"},null,8,Fs)])):f("",!0),t.text?(a(),i("p",{key:1,innerHTML:t.text,class:"text"},null,8,Es)):f("",!0),t.tagline?(a(),i("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Os)):f("",!0)],!0),t.actions?(a(),i("div",Gs,[(a(!0),i(M,null,A(t.actions,o=>(a(),i("div",{key:o.link,class:"action"},[h(Ts,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||l(e)?(a(),i("div",Us,[c("div",js,[qs,u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(ee,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const Ks=m(Rs,[["__scopeId","data-v-da5d1713"]]),Ws=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=P();return(t,n)=>l(e).hero?(a(),$(Ks,{key:0,class:"VPHomeHero",name:l(e).hero.name,text:l(e).hero.text,tagline:l(e).hero.tagline,image:l(e).hero.image,actions:l(e).hero.actions},{"home-hero-info":v(()=>[u(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Ys={},Js={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Zs=c("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Qs=[Zs];function Xs(s,e){return a(),i("svg",Js,Qs)}const en=m(Ys,[["render",Xs]]),tn={class:"box"},sn={key:0,class:"icon"},nn=["innerHTML"],on=["innerHTML"],an=["innerHTML"],rn={key:4,class:"link-text"},ln={class:"link-text-value"},cn=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[c("article",tn,[typeof e.icon=="object"&&e.icon.wrap?(a(),i("div",sn,[h(ee,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(ee,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),i("div",{key:2,class:"icon",innerHTML:e.icon},null,8,nn)):f("",!0),c("h2",{class:"title",innerHTML:e.title},null,8,on),e.details?(a(),i("p",{key:3,class:"details",innerHTML:e.details},null,8,an)):f("",!0),e.linkText?(a(),i("div",rn,[c("p",ln,[x(L(e.linkText)+" ",1),h(en,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}});const un=m(cn,[["__scopeId","data-v-33204567"]]),dn={key:0,class:"VPFeatures"},_n={class:"container"},vn={class:"items"},pn=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=k(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),i("div",dn,[c("div",_n,[c("div",vn,[(a(!0),i(M,null,A(n.features,r=>(a(),i("div",{key:r.title,class:N(["item",[t.value]])},[h(un,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}});const hn=m(pn,[["__scopeId","data-v-a6181336"]]),fn=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=P();return(t,n)=>l(e).features?(a(),$(hn,{key:0,class:"VPHomeFeatures",features:l(e).features},null,8,["features"])):f("",!0)}}),mn={class:"VPHome"},gn=g({__name:"VPHome",setup(s){return(e,t)=>{const n=j("Content");return a(),i("div",mn,[u(e.$slots,"home-hero-before",{},void 0,!0),h(Ws,null,{"home-hero-info":v(()=>[u(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(e.$slots,"home-hero-after",{},void 0,!0),u(e.$slots,"home-features-before",{},void 0,!0),h(fn),u(e.$slots,"home-features-after",{},void 0,!0),h(n)])}}});const bn=m(gn,[["__scopeId","data-v-d82743a8"]]),$n={},kn={class:"VPPage"};function yn(s,e){const t=j("Content");return a(),i("div",kn,[u(s.$slots,"page-top"),h(t),u(s.$slots,"page-bottom")])}const Pn=m($n,[["render",yn]]),Vn=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,r)=>(a(),i("div",{class:N(["VPContent",{"has-sidebar":l(n),"is-home":l(t).layout==="home"}]),id:"VPContent"},[l(e).isNotFound?u(o.$slots,"not-found",{key:0},()=>[h(dt)],!0):l(t).layout==="page"?(a(),$(Pn,{key:1},{"page-top":v(()=>[u(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):l(t).layout==="home"?(a(),$(bn,{key:2},{"home-hero-before":v(()=>[u(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):l(t).layout&&l(t).layout!=="doc"?(a(),$(E(l(t).layout),{key:3})):(a(),$(Is,{key:4},{"doc-top":v(()=>[u(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[u(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[u(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[u(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[u(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const wn=m(Vn,[["__scopeId","data-v-669faec9"]]),Ln={class:"container"},Sn=["innerHTML"],Mn=["innerHTML"],Nn=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,r)=>l(e).footer&&l(t).footer!==!1?(a(),i("footer",{key:0,class:N(["VPFooter",{"has-sidebar":l(n)}])},[c("div",Ln,[l(e).footer.message?(a(),i("p",{key:0,class:"message",innerHTML:l(e).footer.message},null,8,Sn)):f("",!0),l(e).footer.copyright?(a(),i("p",{key:1,class:"copyright",innerHTML:l(e).footer.copyright},null,8,Mn)):f("",!0)])],2)):f("",!0)}});const In=m(Nn,[["__scopeId","data-v-e03eb2e1"]]),Cn={class:"header"},Tn={class:"outline"},Bn=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=P(),n=S(!1),o=S(0),r=S();Y(()=>{n.value=!1});function d(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(b){b.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),Ee(()=>{n.value=!1}))}function _(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,y)=>(a(),i("div",{class:"VPLocalNavOutlineDropdown",style:Fe({"--vp-vh":o.value+"px"})},[b.headers.length>0?(a(),i("button",{key:0,onClick:d,class:N({open:n.value})},[x(L(l(ve)(l(t)))+" ",1),h(fe,{class:"icon"})],2)):(a(),i("button",{key:1,onClick:_},L(l(t).returnToTopLabel||"Return to top"),1)),h(ce,{name:"flyout"},{default:v(()=>[n.value?(a(),i("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:p},[c("div",Cn,[c("a",{class:"top-link",href:"#",onClick:_},L(l(t).returnToTopLabel||"Return to top"),1)]),c("div",Tn,[h(he,{headers:b.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}});const An=m(Bn,[["__scopeId","data-v-1c15a60a"]]),xn={},Hn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},zn=c("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Dn=c("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),Fn=c("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),En=c("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),On=[zn,Dn,Fn,En];function Gn(s,e){return a(),i("svg",Hn,On)}const Un=m(xn,[["render",Gn]]),jn=["aria-expanded"],qn={class:"menu-text"},Rn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D(),{y:o}=we(),r=_e([]),d=S(0);G(()=>{d.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Y(()=>{r.value=pe(t.value.outline??e.value.outline)});const p=k(()=>r.value.length===0&&!n.value),_=k(()=>({VPLocalNav:!0,fixed:p.value,"reached-top":o.value>=d.value}));return(b,y)=>l(t).layout!=="home"&&(!p.value||l(o)>=d.value)?(a(),i("div",{key:0,class:N(_.value)},[l(n)?(a(),i("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=w=>b.$emit("open-menu"))},[h(Un,{class:"menu-icon"}),c("span",qn,L(l(e).sidebarMenuLabel||"Menu"),1)],8,jn)):f("",!0),h(An,{headers:r.value,navHeight:d.value},null,8,["headers","navHeight"])],2)):f("",!0)}});const Kn=m(Rn,[["__scopeId","data-v-79c8c1df"]]);function Wn(){const s=S(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const r=se();return U(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const Yn={},Jn={class:"VPSwitch",type:"button",role:"switch"},Zn={class:"check"},Qn={key:0,class:"icon"};function Xn(s,e){return a(),i("button",Jn,[c("span",Zn,[s.$slots.default?(a(),i("span",Qn,[u(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const eo=m(Yn,[["render",Xn],["__scopeId","data-v-b1685198"]]),to={},so={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},no=c("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),oo=[no];function ao(s,e){return a(),i("svg",so,oo)}const ro=m(to,[["render",ao]]),lo={},io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},co=Oe('',9),uo=[co];function _o(s,e){return a(),i("svg",io,uo)}const vo=m(lo,[["render",_o]]),po=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e}=P(),t=ne("toggle-appearance",()=>{e.value=!e.value});return(n,o)=>(a(),$(eo,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":l(e),onClick:l(t)},{default:v(()=>[h(vo,{class:"sun"}),h(ro,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const me=m(po,[["__scopeId","data-v-ce54a7d1"]]),ho={key:0,class:"VPNavBarAppearance"},fo=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=P();return(t,n)=>l(e).appearance&&l(e).appearance!=="force-dark"?(a(),i("div",ho,[h(me)])):f("",!0)}});const mo=m(fo,[["__scopeId","data-v-e6aabb21"]]),ge=S();let Ie=!1,ae=0;function go(s){const e=S(!1);if(K){!Ie&&bo(),ae++;const t=U(ge,n=>{var o,r,d;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(d=s.onBlur)==null||d.call(s))});de(()=>{t(),ae--,ae||$o()})}return Ge(e)}function bo(){document.addEventListener("focusin",Ce),Ie=!0,ge.value=document.activeElement}function $o(){document.removeEventListener("focusin",Ce)}function Ce(){ge.value=document.activeElement}const ko={},yo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Po=c("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Vo=[Po];function wo(s,e){return a(),i("svg",yo,Vo)}const Te=m(ko,[["render",wo]]),Lo={},So={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Mo=c("circle",{cx:"12",cy:"12",r:"2"},null,-1),No=c("circle",{cx:"19",cy:"12",r:"2"},null,-1),Io=c("circle",{cx:"5",cy:"12",r:"2"},null,-1),Co=[Mo,No,Io];function To(s,e){return a(),i("svg",So,Co)}const Bo=m(Lo,[["render",To]]),Ao={class:"VPMenuLink"},xo=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),i("div",Ao,[h(F,{class:N({active:l(O)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const oe=m(xo,[["__scopeId","data-v-43f1e123"]]),Ho={class:"VPMenuGroup"},zo={key:0,class:"title"},Do=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",Ho,[e.text?(a(),i("p",zo,L(e.text),1)):f("",!0),(a(!0),i(M,null,A(e.items,n=>(a(),i(M,null,["link"in n?(a(),$(oe,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}});const Fo=m(Do,[["__scopeId","data-v-69e747b5"]]),Eo={class:"VPMenu"},Oo={key:0,class:"items"},Go=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),i("div",Eo,[e.items?(a(),i("div",Oo,[(a(!0),i(M,null,A(e.items,n=>(a(),i(M,{key:n.text},["link"in n?(a(),$(oe,{key:0,item:n},null,8,["item"])):(a(),$(Fo,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),u(e.$slots,"default",{},void 0,!0)]))}});const Uo=m(Go,[["__scopeId","data-v-e7ea1737"]]),jo=["aria-expanded","aria-label"],qo={key:0,class:"text"},Ro=["innerHTML"],Ko={class:"menu"},Wo=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=S(!1),t=S();go({el:t,onBlur:n});function n(){e.value=!1}return(o,r)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=d=>e.value=!0),onMouseleave:r[2]||(r[2]=d=>e.value=!1)},[c("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[o.button||o.icon?(a(),i("span",qo,[o.icon?(a(),$(E(o.icon),{key:0,class:"option-icon"})):f("",!0),o.button?(a(),i("span",{key:1,innerHTML:o.button},null,8,Ro)):f("",!0),h(Te,{class:"text-icon"})])):(a(),$(Bo,{key:1,class:"icon"}))],8,jo),c("div",Ko,[h(Uo,{items:o.items},{default:v(()=>[u(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const be=m(Wo,[["__scopeId","data-v-9c007e85"]]),Yo={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},Jo=["href","aria-label","innerHTML"],Zo=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=k(()=>typeof e.icon=="object"?e.icon.svg:Yo[e.icon]);return(n,o)=>(a(),i("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Jo))}});const Qo=m(Zo,[["__scopeId","data-v-f80f8133"]]),Xo={class:"VPSocialLinks"},ea=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),i("div",Xo,[(a(!0),i(M,null,A(e.links,({link:n,icon:o,ariaLabel:r})=>(a(),$(Qo,{key:n,icon:o,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}});const $e=m(ea,[["__scopeId","data-v-7bc22406"]]),ta={key:0,class:"group translations"},sa={class:"trans-title"},na={key:1,class:"group"},oa={class:"item appearance"},aa={class:"label"},ra={class:"appearance-action"},la={key:2,class:"group"},ia={class:"item social-links"},ca=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=P(),{localeLinks:n,currentLang:o}=Z({correspondingLink:!0}),r=k(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),$(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[l(n).length&&l(o).label?(a(),i("div",ta,[c("p",sa,L(l(o).label),1),(a(!0),i(M,null,A(l(n),_=>(a(),$(oe,{key:_.link,item:_},null,8,["item"]))),128))])):f("",!0),l(e).appearance?(a(),i("div",na,[c("div",oa,[c("p",aa,L(l(t).darkModeSwitchLabel||"Appearance"),1),c("div",ra,[h(me)])])])):f("",!0),l(t).socialLinks?(a(),i("div",la,[c("div",ia,[h($e,{class:"social-links-list",links:l(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const ua=m(ca,[["__scopeId","data-v-40855f84"]]),da=s=>(H("data-v-e5dd9c1c"),s=s(),z(),s),_a=["aria-expanded"],va=da(()=>c("span",{class:"container"},[c("span",{class:"top"}),c("span",{class:"middle"}),c("span",{class:"bottom"})],-1)),pa=[va],ha=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),i("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},pa,10,_a))}});const fa=m(ha,[["__scopeId","data-v-e5dd9c1c"]]),ma=["innerHTML"],ga=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:l(O)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[c("span",{innerHTML:t.item.text},null,8,ma)]),_:1},8,["class","href","target","rel"]))}});const ba=m(ga,[["__scopeId","data-v-42ef59de"]]),$a=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=P(),n=r=>"link"in r?O(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),o=k(()=>n(e.item));return(r,d)=>(a(),$(be,{class:N({VPNavBarMenuGroup:!0,active:l(O)(l(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||o.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ka=s=>(H("data-v-7f418b0f"),s=s(),z(),s),ya={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Pa=ka(()=>c("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Va=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=P();return(t,n)=>l(e).nav?(a(),i("nav",ya,[Pa,(a(!0),i(M,null,A(l(e).nav,o=>(a(),i(M,{key:o.text},["link"in o?(a(),$(ba,{key:0,item:o},null,8,["item"])):(a(),$($a,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}});const wa=m(Va,[["__scopeId","data-v-7f418b0f"]]);function La(s,e){const{localeIndex:t}=P();function n(o){var I,B;const r=o.split("."),d=s&&typeof s=="object",p=d&&((B=(I=s.locales)==null?void 0:I[t.value])==null?void 0:B.translations)||null,_=d&&s.translations||null;let b=p,y=_,w=e;const C=r.pop();for(const T of r){let V=null;const q=w==null?void 0:w[T];q&&(V=w=q);const W=y==null?void 0:y[T];W&&(V=y=W);const R=b==null?void 0:b[T];R&&(V=b=R),q||(w=V),W||(y=V),R||(b=V)}return(b==null?void 0:b[C])??(y==null?void 0:y[C])??(w==null?void 0:w[C])??""}return n}const Sa=["aria-label"],Ma={class:"DocSearch-Button-Container"},Na=c("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[c("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Ia={class:"DocSearch-Button-Placeholder"},Ca=c("span",{class:"DocSearch-Button-Keys"},[c("kbd",{class:"DocSearch-Button-Key"}),c("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=g({__name:"VPNavBarSearchButton",setup(s){const{theme:e}=P(),t={button:{buttonText:"Search",buttonAriaLabel:"Search"}},n=Ue(La)(je(()=>{var o;return(o=e.value.search)==null?void 0:o.options}),t);return(o,r)=>(a(),i("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":l(n)("button.buttonAriaLabel")},[c("span",Ma,[Na,c("span",Ia,L(l(n)("button.buttonText")),1)]),Ca],8,Sa))}});const Ta={class:"VPNavBarSearch"},Ba={id:"local-search"},Aa={key:1,id:"docsearch"},xa=g({__name:"VPNavBarSearch",setup(s){const e=()=>null,t=()=>null,{theme:n}=P(),o=S(!1),r=S(!1);G(()=>{});function d(){o.value||(o.value=!0,setTimeout(p,16))}function p(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}const _=S(!1),b="";return(y,w)=>{var C;return a(),i("div",Ta,[l(b)==="local"?(a(),i(M,{key:0},[_.value?(a(),$(l(e),{key:0,onClose:w[0]||(w[0]=I=>_.value=!1)})):f("",!0),c("div",Ba,[h(ye,{onClick:w[1]||(w[1]=I=>_.value=!0)})])],64)):l(b)==="algolia"?(a(),i(M,{key:1},[o.value?(a(),$(l(t),{key:0,algolia:((C=l(n).search)==null?void 0:C.options)??l(n).algolia,onVnodeBeforeMount:w[2]||(w[2]=I=>r.value=!0)},null,8,["algolia"])):f("",!0),r.value?f("",!0):(a(),i("div",Aa,[h(ye,{onClick:d})]))],64)):f("",!0)])}}});const Ha=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>l(e).socialLinks?(a(),$($e,{key:0,class:"VPNavBarSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}});const za=m(Ha,[["__scopeId","data-v-0394ad82"]]),Da=["href"],Fa=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=P(),{hasSidebar:n}=D(),{currentLang:o}=Z();return(r,d)=>(a(),i("div",{class:N(["VPNavBarTitle",{"has-sidebar":l(n)}])},[c("a",{class:"title",href:l(t).logoLink??l(J)(l(o).link)},[u(r.$slots,"nav-bar-title-before",{},void 0,!0),l(t).logo?(a(),$(ee,{key:0,class:"logo",image:l(t).logo},null,8,["image"])):f("",!0),l(t).siteTitle?(a(),i(M,{key:1},[x(L(l(t).siteTitle),1)],64)):l(t).siteTitle===void 0?(a(),i(M,{key:2},[x(L(l(e).title),1)],64)):f("",!0),u(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Da)],2))}});const Ea=m(Fa,[["__scopeId","data-v-86d1bed8"]]),Oa={},Ga={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ua=c("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),ja=c("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),qa=[Ua,ja];function Ra(s,e){return a(),i("svg",Ga,qa)}const Be=m(Oa,[["render",Ra]]),Ka={class:"items"},Wa={class:"title"},Ya=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=P(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(o,r)=>l(t).length&&l(n).label?(a(),$(be,{key:0,class:"VPNavBarTranslations",icon:Be,label:l(e).langMenuLabel||"Change language"},{default:v(()=>[c("div",Ka,[c("p",Wa,L(l(n).label),1),(a(!0),i(M,null,A(l(t),d=>(a(),$(oe,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const Ja=m(Ya,[["__scopeId","data-v-74abcbb9"]]),Za=s=>(H("data-v-a0fd61f4"),s=s(),z(),s),Qa={class:"container"},Xa={class:"title"},er={class:"content"},tr=Za(()=>c("div",{class:"curtain"},null,-1)),sr={class:"content-body"},nr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=we(),{hasSidebar:t}=D(),{frontmatter:n}=P(),o=S({});return Pe(()=>{o.value={"has-sidebar":t.value,top:n.value.layout==="home"&&e.value===0}}),(r,d)=>(a(),i("div",{class:N(["VPNavBar",o.value])},[c("div",Qa,[c("div",Xa,[h(Ea,null,{"nav-bar-title-before":v(()=>[u(r.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(r.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),c("div",er,[tr,c("div",sr,[u(r.$slots,"nav-bar-content-before",{},void 0,!0),h(xa,{class:"search"}),h(wa,{class:"menu"}),h(Ja,{class:"translations"}),h(mo,{class:"appearance"}),h(za,{class:"social-links"}),h(ua,{class:"extra"}),u(r.$slots,"nav-bar-content-after",{},void 0,!0),h(fa,{class:"hamburger",active:r.isScreenOpen,onClick:d[0]||(d[0]=p=>r.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const or=m(nr,[["__scopeId","data-v-a0fd61f4"]]),ar={key:0,class:"VPNavScreenAppearance"},rr={class:"text"},lr=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=P();return(n,o)=>l(e).appearance?(a(),i("div",ar,[c("p",rr,L(l(t).darkModeSwitchLabel||"Appearance"),1),h(me)])):f("",!0)}});const ir=m(lr,[["__scopeId","data-v-add8f686"]]),cr=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const ur=m(cr,[["__scopeId","data-v-05f27b2a"]]),dr={},_r={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},vr=c("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),pr=[vr];function hr(s,e){return a(),i("svg",_r,pr)}const fr=m(dr,[["render",hr]]),mr=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=ne("close-screen");return(t,n)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:l(e)},{default:v(()=>[x(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Ae=m(mr,[["__scopeId","data-v-19976ae1"]]),gr={class:"VPNavScreenMenuGroupSection"},br={key:0,class:"title"},$r=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",gr,[e.text?(a(),i("p",br,L(e.text),1)):f("",!0),(a(!0),i(M,null,A(e.items,n=>(a(),$(Ae,{key:n.text,item:n},null,8,["item"]))),128))]))}});const kr=m($r,[["__scopeId","data-v-8133b170"]]),yr=["aria-controls","aria-expanded"],Pr={class:"button-text"},Vr=["id"],wr={key:1,class:"group"},Lr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=S(!1),n=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(r,d)=>(a(),i("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[c("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[c("span",Pr,L(r.text),1),h(fr,{class:"button-icon"})],8,yr),c("div",{id:n.value,class:"items"},[(a(!0),i(M,null,A(r.items,p=>(a(),i(M,{key:p.text},["link"in p?(a(),i("div",{key:p.text,class:"item"},[h(Ae,{item:p},null,8,["item"])])):(a(),i("div",wr,[h(kr,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,Vr)],2))}});const Sr=m(Lr,[["__scopeId","data-v-1ecb84e7"]]),Mr={key:0,class:"VPNavScreenMenu"},Nr=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=P();return(t,n)=>l(e).nav?(a(),i("nav",Mr,[(a(!0),i(M,null,A(l(e).nav,o=>(a(),i(M,{key:o.text},["link"in o?(a(),$(ur,{key:0,item:o},null,8,["item"])):(a(),$(Sr,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ir=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>l(e).socialLinks?(a(),$($e,{key:0,class:"VPNavScreenSocialLinks",links:l(e).socialLinks},null,8,["links"])):f("",!0)}}),Cr={class:"list"},Tr=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=S(!1);function o(){n.value=!n.value}return(r,d)=>l(e).length&&l(t).label?(a(),i("div",{key:0,class:N(["VPNavScreenTranslations",{open:n.value}])},[c("button",{class:"title",onClick:o},[h(Be,{class:"icon lang"}),x(" "+L(l(t).label)+" ",1),h(Te,{class:"icon chevron"})]),c("ul",Cr,[(a(!0),i(M,null,A(l(e),p=>(a(),i("li",{key:p.link,class:"item"},[h(F,{class:"link",href:p.link},{default:v(()=>[x(L(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const Br=m(Tr,[["__scopeId","data-v-d72aa483"]]),Ar={class:"container"},xr=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=S(null),t=Le(K?document.body:null);return(n,o)=>(a(),$(ce,{name:"fade",onEnter:o[0]||(o[0]=r=>t.value=!0),onAfterLeave:o[1]||(o[1]=r=>t.value=!1)},{default:v(()=>[n.open?(a(),i("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[c("div",Ar,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),h(Nr,{class:"menu"}),h(Br,{class:"translations"}),h(ir,{class:"appearance"}),h(Ir,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const Hr=m(xr,[["__scopeId","data-v-cc5739dd"]]),zr={key:0,class:"VPNav"},Dr=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Wn(),{frontmatter:o}=P(),r=k(()=>o.value.navbar!==!1);return Se("close-screen",t),te(()=>{K&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(d,p)=>r.value?(a(),i("header",zr,[h(or,{"is-screen-open":l(e),onToggleScreen:l(n)},{"nav-bar-title-before":v(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(Hr,{open:l(e)},{"nav-screen-content-before":v(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}});const Fr=m(Dr,[["__scopeId","data-v-ae24b3ad"]]),Er=s=>(H("data-v-e31bd47b"),s=s(),z(),s),Or=["role","tabindex"],Gr=Er(()=>c("div",{class:"indicator"},null,-1)),Ur={key:1,class:"items"},jr=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=ht(k(()=>e.item)),b=k(()=>p.value?"section":"div"),y=k(()=>o.value?"a":"div"),w=k(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),C=k(()=>o.value?void 0:"button"),I=k(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":r.value},{"has-active":d.value}]);function B(V){"key"in V&&V.key!=="Enter"||!e.item.link&&_()}function T(){e.item.link&&_()}return(V,q)=>{const W=j("VPSidebarItem",!0);return a(),$(E(b.value),{class:N(["VPSidebarItem",I.value])},{default:v(()=>[V.item.text?(a(),i("div",Q({key:0,class:"item",role:C.value},Re(V.item.items?{click:B,keydown:B}:{},!0),{tabindex:V.item.items&&0}),[Gr,V.item.link?(a(),$(F,{key:0,tag:y.value,class:"link",href:V.item.link,rel:V.item.rel,target:V.item.target},{default:v(()=>[(a(),$(E(w.value),{class:"text",innerHTML:V.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(E(w.value),{key:1,class:"text",innerHTML:V.item.text},null,8,["innerHTML"])),V.item.collapsed!=null?(a(),i("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:T,onKeydown:qe(T,["enter"]),tabindex:"0"},[h(fe,{class:"caret-icon"})],32)):f("",!0)],16,Or)):f("",!0),V.item.items&&V.item.items.length?(a(),i("div",Ur,[V.depth<5?(a(!0),i(M,{key:0},A(V.item.items,R=>(a(),$(W,{key:R.text,item:R,depth:V.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const qr=m(jr,[["__scopeId","data-v-e31bd47b"]]),xe=s=>(H("data-v-b00e2fdd"),s=s(),z(),s),Rr=xe(()=>c("div",{class:"curtain"},null,-1)),Kr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Wr=xe(()=>c("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Yr=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=D(),n=s,o=S(null),r=Le(K?document.body:null);return U([n,o],()=>{var d;n.open?(r.value=!0,(d=o.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"}),(d,p)=>l(t)?(a(),i("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:p[0]||(p[0]=Ke(()=>{},["stop"]))},[Rr,c("nav",Kr,[Wr,u(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),i(M,null,A(l(e),_=>(a(),i("div",{key:_.text,class:"group"},[h(qr,{item:_,depth:0},null,8,["item"])]))),128)),u(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const Jr=m(Yr,[["__scopeId","data-v-b00e2fdd"]]),Zr=g({__name:"VPSkipLink",setup(s){const e=se(),t=S();U(()=>e.path,()=>t.value.focus());function n({target:o}){const r=document.getElementById(decodeURIComponent(o.hash).slice(1));if(r){const d=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",d)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",d),r.focus(),window.scrollTo(0,0)}}return(o,r)=>(a(),i(M,null,[c("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),c("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}});const Qr=m(Zr,[["__scopeId","data-v-0f60ec36"]]),Xr=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=D(),o=se();U(()=>o.path,n),pt(e,n);const{frontmatter:r}=P(),d=We(),p=k(()=>!!d["home-hero-image"]);return Se("hero-image-slot-exists",p),(_,b)=>{const y=j("Content");return l(r).layout!==!1?(a(),i("div",{key:0,class:N(["Layout",l(r).pageClass])},[u(_.$slots,"layout-top",{},void 0,!0),h(Qr),h(Xe,{class:"backdrop",show:l(e),onClick:l(n)},null,8,["show","onClick"]),h(Fr,null,{"nav-bar-title-before":v(()=>[u(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[u(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),h(Kn,{open:l(e),onOpenMenu:l(t)},null,8,["open","onOpenMenu"]),h(Jr,{open:l(e)},{"sidebar-nav-before":v(()=>[u(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[u(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(wn,null,{"page-top":v(()=>[u(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[u(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[u(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[u(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[u(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[u(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[u(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(In),u(_.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(y,{key:1}))}}});const el=m(Xr,[["__scopeId","data-v-5a346dfe"]]);const sl={Layout:el,enhanceApp:({app:s})=>{s.component("Badge",Je)}};export{sl as t}; diff --git a/assets/guide_api_api.md.1cca9e0c.js b/assets/guide_api_api.md.a5803d1a.js similarity index 88% rename from assets/guide_api_api.md.1cca9e0c.js rename to assets/guide_api_api.md.a5803d1a.js index 5c8ef4c..7dbb700 100644 --- a/assets/guide_api_api.md.1cca9e0c.js +++ b/assets/guide_api_api.md.a5803d1a.js @@ -1 +1 @@ -import{_ as t,o,c as i,k as e,a}from"./chunks/framework.7f46d7d2.js";const k=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1713769091000}'),s={name:"guide/api/api.md"},n=e("h1",{id:"open-api",tabindex:"-1"},[a("OPEN-API "),e("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),r=e("h2",{id:"描述",tabindex:"-1"},[a("描述 "),e("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),c=e("p",null,[a("为满足各个平台用户,以及三方用户的使用需求。"),e("code",null,"chery"),a("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),e("code",null,"http"),a(","),e("code",null,"websocket"),a("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),d=[n,r,c];function l(p,_,h,u,m,f){return o(),i("div",null,d)}const x=t(s,[["render",l]]);export{k as __pageData,x as default}; +import{_ as t,o,c as i,k as e,a}from"./chunks/framework.c0711e93.js";const k=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1717747502000}'),s={name:"guide/api/api.md"},n=e("h1",{id:"open-api",tabindex:"-1"},[a("OPEN-API "),e("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),r=e("h2",{id:"描述",tabindex:"-1"},[a("描述 "),e("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),c=e("p",null,[a("为满足各个平台用户,以及三方用户的使用需求。"),e("code",null,"chery"),a("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),e("code",null,"http"),a(","),e("code",null,"websocket"),a("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),d=[n,r,c];function l(p,_,h,u,m,f){return o(),i("div",null,d)}const x=t(s,[["render",l]]);export{k as __pageData,x as default}; diff --git a/assets/guide_api_api.md.1cca9e0c.lean.js b/assets/guide_api_api.md.a5803d1a.lean.js similarity index 88% rename from assets/guide_api_api.md.1cca9e0c.lean.js rename to assets/guide_api_api.md.a5803d1a.lean.js index 5c8ef4c..7dbb700 100644 --- a/assets/guide_api_api.md.1cca9e0c.lean.js +++ b/assets/guide_api_api.md.a5803d1a.lean.js @@ -1 +1 @@ -import{_ as t,o,c as i,k as e,a}from"./chunks/framework.7f46d7d2.js";const k=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1713769091000}'),s={name:"guide/api/api.md"},n=e("h1",{id:"open-api",tabindex:"-1"},[a("OPEN-API "),e("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),r=e("h2",{id:"描述",tabindex:"-1"},[a("描述 "),e("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),c=e("p",null,[a("为满足各个平台用户,以及三方用户的使用需求。"),e("code",null,"chery"),a("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),e("code",null,"http"),a(","),e("code",null,"websocket"),a("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),d=[n,r,c];function l(p,_,h,u,m,f){return o(),i("div",null,d)}const x=t(s,[["render",l]]);export{k as __pageData,x as default}; +import{_ as t,o,c as i,k as e,a}from"./chunks/framework.c0711e93.js";const k=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1717747502000}'),s={name:"guide/api/api.md"},n=e("h1",{id:"open-api",tabindex:"-1"},[a("OPEN-API "),e("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),r=e("h2",{id:"描述",tabindex:"-1"},[a("描述 "),e("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),c=e("p",null,[a("为满足各个平台用户,以及三方用户的使用需求。"),e("code",null,"chery"),a("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),e("code",null,"http"),a(","),e("code",null,"websocket"),a("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),d=[n,r,c];function l(p,_,h,u,m,f){return o(),i("div",null,d)}const x=t(s,[["render",l]]);export{k as __pageData,x as default}; diff --git a/assets/guide_api_func.md.77ea9e58.js b/assets/guide_api_func.md.772a14b8.js similarity index 81% rename from assets/guide_api_func.md.77ea9e58.js rename to assets/guide_api_func.md.772a14b8.js index 1ccc1e6..a3a2116 100644 --- a/assets/guide_api_func.md.77ea9e58.js +++ b/assets/guide_api_func.md.772a14b8.js @@ -1 +1 @@ -import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.7f46d7d2.js";const n="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1713769091000}'),c={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[o("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:n,alt:"用例目录",style:{zoom:"100%"}},null,-1),i=[r,d];function _(l,p,f,m,u,h){return a(),s("div",null,i)}const k=t(c,[["render",_]]);export{x as __pageData,k as default}; +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.c0711e93.js";const n="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1717747502000}'),c={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[o("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:n,alt:"用例目录",style:{zoom:"100%"}},null,-1),i=[r,d];function _(l,p,f,m,u,h){return a(),s("div",null,i)}const k=t(c,[["render",_]]);export{x as __pageData,k as default}; diff --git a/assets/guide_api_func.md.77ea9e58.lean.js b/assets/guide_api_func.md.772a14b8.lean.js similarity index 81% rename from assets/guide_api_func.md.77ea9e58.lean.js rename to assets/guide_api_func.md.772a14b8.lean.js index 1ccc1e6..a3a2116 100644 --- a/assets/guide_api_func.md.77ea9e58.lean.js +++ b/assets/guide_api_func.md.772a14b8.lean.js @@ -1 +1 @@ -import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.7f46d7d2.js";const n="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1713769091000}'),c={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[o("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:n,alt:"用例目录",style:{zoom:"100%"}},null,-1),i=[r,d];function _(l,p,f,m,u,h){return a(),s("div",null,i)}const k=t(c,[["render",_]]);export{x as __pageData,k as default}; +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.c0711e93.js";const n="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1717747502000}'),c={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[o("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:n,alt:"用例目录",style:{zoom:"100%"}},null,-1),i=[r,d];function _(l,p,f,m,u,h){return a(),s("div",null,i)}const k=t(c,[["render",_]]);export{x as __pageData,k as default}; diff --git a/assets/guide_api_httpApi.md.62bb0a69.js b/assets/guide_api_httpApi.md.3f055102.js similarity index 99% rename from assets/guide_api_httpApi.md.62bb0a69.js rename to assets/guide_api_httpApi.md.3f055102.js index bd9218e..07bfabe 100644 --- a/assets/guide_api_httpApi.md.62bb0a69.js +++ b/assets/guide_api_httpApi.md.3f055102.js @@ -1,4 +1,4 @@ -import{_ as s,o as t,c as a,Q as n}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1713769091000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址
audioAudio当需要录制视频时传递,默认不开启视频录制

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

Audio 类型:object:

名称类型默认值说明
urlstring视频存储地址,远程执行时只支持http远程上报地址
sizeObject调整录制时的分辨率
-widthObject录制的宽度
-heighttObject录制的高度

当开始录制时,不要关闭page,否则将丢失关闭页面的录制内容。

请求示例:

js
  request
+import{_ as s,o as t,c as a,Q as n}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1717747502000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址
audioAudio当需要录制视频时传递,默认不开启视频录制

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

Audio 类型:object:

名称类型默认值说明
urlstring视频存储地址,远程执行时只支持http远程上报地址
sizeObject调整录制时的分辨率
-widthObject录制的宽度
-heighttObject录制的高度

当开始录制时,不要关闭page,否则将丢失关闭页面的录制内容。

请求示例:

js
  request
     .post(
       "http://localhost:8777/run",
       {
diff --git a/assets/guide_api_httpApi.md.62bb0a69.lean.js b/assets/guide_api_httpApi.md.3f055102.lean.js
similarity index 55%
rename from assets/guide_api_httpApi.md.62bb0a69.lean.js
rename to assets/guide_api_httpApi.md.3f055102.lean.js
index 6232d44..059c9ee 100644
--- a/assets/guide_api_httpApi.md.62bb0a69.lean.js
+++ b/assets/guide_api_httpApi.md.3f055102.lean.js
@@ -1 +1 @@
-import{_ as s,o as t,c as a,Q as n}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1713769091000}'),o={name:"guide/api/httpApi.md"},p=n("",50),l=[p];function e(c,r,d,i,E,y){return t(),a("div",null,l)}const q=s(o,[["render",e]]);export{h as __pageData,q as default};
+import{_ as s,o as t,c as a,Q as n}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1717747502000}'),o={name:"guide/api/httpApi.md"},p=n("",50),l=[p];function e(c,r,d,i,E,y){return t(),a("div",null,l)}const q=s(o,[["render",e]]);export{h as __pageData,q as default};
diff --git a/assets/guide_api_instruct.md.efccfedf.js b/assets/guide_api_instruct.md.ed48a7ac.js
similarity index 86%
rename from assets/guide_api_instruct.md.efccfedf.js
rename to assets/guide_api_instruct.md.ed48a7ac.js
index a69cf4b..55d86d5 100644
--- a/assets/guide_api_instruct.md.efccfedf.js
+++ b/assets/guide_api_instruct.md.ed48a7ac.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1713769091000}'),c={name:"guide/api/instruct.md"},d=o('

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

',6),i=[d];function r(s,n,_,p,l,h){return a(),t("div",null,i)}const f=e(c,[["render",r]]);export{m as __pageData,f as default}; +import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1717747502000}'),c={name:"guide/api/instruct.md"},d=o('

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

',6),i=[d];function r(s,n,_,p,l,h){return a(),t("div",null,i)}const f=e(c,[["render",r]]);export{m as __pageData,f as default}; diff --git a/assets/guide_api_instruct.md.efccfedf.lean.js b/assets/guide_api_instruct.md.ed48a7ac.lean.js similarity index 55% rename from assets/guide_api_instruct.md.efccfedf.lean.js rename to assets/guide_api_instruct.md.ed48a7ac.lean.js index 6a4ad26..8eb1752 100644 --- a/assets/guide_api_instruct.md.efccfedf.lean.js +++ b/assets/guide_api_instruct.md.ed48a7ac.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1713769091000}'),c={name:"guide/api/instruct.md"},d=o("",6),i=[d];function r(s,n,_,p,l,h){return a(),t("div",null,i)}const f=e(c,[["render",r]]);export{m as __pageData,f as default}; +import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1717747502000}'),c={name:"guide/api/instruct.md"},d=o("",6),i=[d];function r(s,n,_,p,l,h){return a(),t("div",null,i)}const f=e(c,[["render",r]]);export{m as __pageData,f as default}; diff --git a/assets/guide_api_pasteConfig.md.d62e103b.js b/assets/guide_api_pasteConfig.md.63933be4.js similarity index 98% rename from assets/guide_api_pasteConfig.md.d62e103b.js rename to assets/guide_api_pasteConfig.md.63933be4.js index c8a12ed..ed5c761 100644 --- a/assets/guide_api_pasteConfig.md.d62e103b.js +++ b/assets/guide_api_pasteConfig.md.63933be4.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const y=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1713769091000}'),p={name:"guide/api/pasteConfig.md"},l=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const y=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1717747502000}'),p={name:"guide/api/pasteConfig.md"},l=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
     "url": "https://jd.com"
 }
{
     "url": "https://jd.com"
diff --git a/assets/guide_api_pasteConfig.md.d62e103b.lean.js b/assets/guide_api_pasteConfig.md.63933be4.lean.js
similarity index 57%
rename from assets/guide_api_pasteConfig.md.d62e103b.lean.js
rename to assets/guide_api_pasteConfig.md.63933be4.lean.js
index a8c9744..53eeea6 100644
--- a/assets/guide_api_pasteConfig.md.d62e103b.lean.js
+++ b/assets/guide_api_pasteConfig.md.63933be4.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const y=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1713769091000}'),p={name:"guide/api/pasteConfig.md"},l=o("",20),e=[l];function t(c,r,i,d,E,u){return a(),n("div",null,e)}const q=s(p,[["render",t]]);export{y as __pageData,q as default};
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const y=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1717747502000}'),p={name:"guide/api/pasteConfig.md"},l=o("",20),e=[l];function t(c,r,i,d,E,u){return a(),n("div",null,e)}const q=s(p,[["render",t]]);export{y as __pageData,q as default};
diff --git a/assets/guide_api_wsApi.md.563a4716.js b/assets/guide_api_wsApi.md.2b6d9466.js
similarity index 98%
rename from assets/guide_api_wsApi.md.563a4716.js
rename to assets/guide_api_wsApi.md.2b6d9466.js
index a0a6eb4..30d2336 100644
--- a/assets/guide_api_wsApi.md.563a4716.js
+++ b/assets/guide_api_wsApi.md.2b6d9466.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const F=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1713769091000}'),p={name:"guide/api/wsApi.md"},l=o(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const F=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1717747502000}'),p={name:"guide/api/wsApi.md"},l=o(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
   "api": "run",
   "config": {
     "script":"page.to('https://baidu.com')",
diff --git a/assets/guide_api_wsApi.md.2b6d9466.lean.js b/assets/guide_api_wsApi.md.2b6d9466.lean.js
new file mode 100644
index 0000000..c44f56f
--- /dev/null
+++ b/assets/guide_api_wsApi.md.2b6d9466.lean.js
@@ -0,0 +1 @@
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const F=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1717747502000}'),p={name:"guide/api/wsApi.md"},l=o("",38),t=[l];function e(c,r,E,y,i,u){return a(),n("div",null,t)}const q=s(p,[["render",e]]);export{F as __pageData,q as default};
diff --git a/assets/guide_api_wsApi.md.563a4716.lean.js b/assets/guide_api_wsApi.md.563a4716.lean.js
deleted file mode 100644
index b60cd2d..0000000
--- a/assets/guide_api_wsApi.md.563a4716.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const F=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1713769091000}'),p={name:"guide/api/wsApi.md"},l=o("",38),t=[l];function e(c,r,E,y,i,u){return a(),n("div",null,t)}const q=s(p,[["render",e]]);export{F as __pageData,q as default};
diff --git a/assets/guide_course_step.md.ce73e212.js b/assets/guide_course_step.md.7f6fe6f3.js
similarity index 92%
rename from assets/guide_course_step.md.ce73e212.js
rename to assets/guide_course_step.md.7f6fe6f3.js
index 3128208..aea99b9 100644
--- a/assets/guide_course_step.md.ce73e212.js
+++ b/assets/guide_course_step.md.7f6fe6f3.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const i="/assets/mac_prb.e0261e25.png",s="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1713769091000}'),c={name:"guide/course/step.md"},l=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),n=[l];function d(p,h,_,u,m,g){return a(),t("div",null,n)}const q=e(c,[["render",d]]);export{f as __pageData,q as default}; +import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.c0711e93.js";const i="/assets/mac_prb.e0261e25.png",s="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1717747502000}'),c={name:"guide/course/step.md"},l=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),n=[l];function d(p,h,_,u,m,g){return a(),t("div",null,n)}const q=e(c,[["render",d]]);export{f as __pageData,q as default}; diff --git a/assets/guide_course_step.md.ce73e212.lean.js b/assets/guide_course_step.md.7f6fe6f3.lean.js similarity index 63% rename from assets/guide_course_step.md.ce73e212.lean.js rename to assets/guide_course_step.md.7f6fe6f3.lean.js index 5cadbd5..8ca169a 100644 --- a/assets/guide_course_step.md.ce73e212.lean.js +++ b/assets/guide_course_step.md.7f6fe6f3.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const i="/assets/mac_prb.e0261e25.png",s="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1713769091000}'),c={name:"guide/course/step.md"},l=o("",14),n=[l];function d(p,h,_,u,m,g){return a(),t("div",null,n)}const q=e(c,[["render",d]]);export{f as __pageData,q as default}; +import{_ as e,o as a,c as t,Q as o}from"./chunks/framework.c0711e93.js";const i="/assets/mac_prb.e0261e25.png",s="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1717747502000}'),c={name:"guide/course/step.md"},l=o("",14),n=[l];function d(p,h,_,u,m,g){return a(),t("div",null,n)}const q=e(c,[["render",d]]);export{f as __pageData,q as default}; diff --git a/assets/guide_course_trace.md.a45f8149.lean.js b/assets/guide_course_trace.md.a45f8149.lean.js deleted file mode 100644 index 3beb62e..0000000 --- a/assets/guide_course_trace.md.a45f8149.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1713769091000}'),o={name:"guide/course/trace.md"},l=p("",22),e=[l];function t(r,c,y,E,i,d){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{h as __pageData,u as default}; diff --git a/assets/guide_course_trace.md.a45f8149.js b/assets/guide_course_trace.md.ee1fa429.js similarity index 98% rename from assets/guide_course_trace.md.a45f8149.js rename to assets/guide_course_trace.md.ee1fa429.js index c1f336f..e130272 100644 --- a/assets/guide_course_trace.md.a45f8149.js +++ b/assets/guide_course_trace.md.ee1fa429.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1713769091000}'),o={name:"guide/course/trace.md"},l=p(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1717747502000}'),o={name:"guide/course/trace.md"},l=p(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
    "remoteReport": {
         "trace": "/Users/zhouyuan11/work/test/trace.zip"  // 本地路径需要以zip结尾
     },
diff --git a/assets/guide_course_trace.md.ee1fa429.lean.js b/assets/guide_course_trace.md.ee1fa429.lean.js
new file mode 100644
index 0000000..095ffe3
--- /dev/null
+++ b/assets/guide_course_trace.md.ee1fa429.lean.js
@@ -0,0 +1 @@
+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1717747502000}'),o={name:"guide/course/trace.md"},l=p("",22),e=[l];function t(r,c,y,E,i,d){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{h as __pageData,u as default};
diff --git a/assets/guide_course_use.md.7cd960c7.js b/assets/guide_course_use.md.30040698.js
similarity index 96%
rename from assets/guide_course_use.md.7cd960c7.js
rename to assets/guide_course_use.md.30040698.js
index 730c9a8..0acebf5 100644
--- a/assets/guide_course_use.md.7cd960c7.js
+++ b/assets/guide_course_use.md.30040698.js
@@ -1,4 +1,4 @@
-import{_ as n,o as e,c as o,a,Q as t,k as s}from"./chunks/framework.7f46d7d2.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",k=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1713769091000}'),c={name:"guide/course/use.md"},r=t(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
+import{_ as n,o as e,c as o,a,Q as t,k as s}from"./chunks/framework.c0711e93.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",k=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1717747502000}'),c={name:"guide/course/use.md"},r=t(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
   "url": "https://element.eleme.cn/#/zh-CN/component/cascader",
   "storage": {
     "id":123
diff --git a/assets/guide_course_use.md.7cd960c7.lean.js b/assets/guide_course_use.md.30040698.lean.js
similarity index 91%
rename from assets/guide_course_use.md.7cd960c7.lean.js
rename to assets/guide_course_use.md.30040698.lean.js
index a55073b..2996fef 100644
--- a/assets/guide_course_use.md.7cd960c7.lean.js
+++ b/assets/guide_course_use.md.30040698.lean.js
@@ -1 +1 @@
-import{_ as n,o as e,c as o,a,Q as t,k as s}from"./chunks/framework.7f46d7d2.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",k=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1713769091000}'),c={name:"guide/course/use.md"},r=t("",7),i=s("p",{style:{"text-align":"center"}},[s("img",{src:p})],-1),d=s("p",null,"使用过程中如果你有任何的意见或者问题,欢迎反馈。",-1);function u(E,h,m,y,_,g){return e(),o("div",null,[r,a(' - 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\\nawait page.change(0)\\nawait dom.click(`#kw`)\\nawait dom.set(`京东`,`#kw`)\\nawait keyboard.press(`Enter`)\\nawait dom.click(`(//*[string()=\'京东JD.COM官网 多快好省 只为品质生活\'])[1]`)\\nawait page.change(1)\\n", "storage": "123", } ``` - postman完整回放脚本截图如下 '),i,a(" - 点击上图的Send按钮,自动打开浏览器回放脚本。 "),d])}const w=n(c,[["render",u]]);export{k as __pageData,w as default};
+import{_ as n,o as e,c as o,a,Q as t,k as s}from"./chunks/framework.c0711e93.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",k=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1717747502000}'),c={name:"guide/course/use.md"},r=t("",7),i=s("p",{style:{"text-align":"center"}},[s("img",{src:p})],-1),d=s("p",null,"使用过程中如果你有任何的意见或者问题,欢迎反馈。",-1);function u(E,h,m,y,_,g){return e(),o("div",null,[r,a(' - 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\\nawait page.change(0)\\nawait dom.click(`#kw`)\\nawait dom.set(`京东`,`#kw`)\\nawait keyboard.press(`Enter`)\\nawait dom.click(`(//*[string()=\'京东JD.COM官网 多快好省 只为品质生活\'])[1]`)\\nawait page.change(1)\\n", "storage": "123", } ``` - postman完整回放脚本截图如下 '),i,a(" - 点击上图的Send按钮,自动打开浏览器回放脚本。 "),d])}const w=n(c,[["render",u]]);export{k as __pageData,w as default};
diff --git a/assets/guide_data_cookie.md.4fee46d7.js b/assets/guide_data_cookie.md.40a650e1.js
similarity index 85%
rename from assets/guide_data_cookie.md.4fee46d7.js
rename to assets/guide_data_cookie.md.40a650e1.js
index c08f9c5..45cbda2 100644
--- a/assets/guide_data_cookie.md.4fee46d7.js
+++ b/assets/guide_data_cookie.md.40a650e1.js
@@ -1 +1 @@
-import{_ as o,o as e,c as i,Q as c}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1713769091000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),l=[a];function d(n,s,r,_,k,p){return e(),i("div",null,l)}const m=o(t,[["render",d]]);export{h as __pageData,m as default}; +import{_ as o,o as e,c as i,Q as c}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1717747502000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),l=[a];function d(n,s,r,_,k,p){return e(),i("div",null,l)}const m=o(t,[["render",d]]);export{h as __pageData,m as default}; diff --git a/assets/guide_data_cookie.md.40a650e1.lean.js b/assets/guide_data_cookie.md.40a650e1.lean.js new file mode 100644 index 0000000..fb69a11 --- /dev/null +++ b/assets/guide_data_cookie.md.40a650e1.lean.js @@ -0,0 +1 @@ +import{_ as o,o as e,c as i,Q as c}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1717747502000}'),t={name:"guide/data/cookie.md"},a=c("",3),l=[a];function d(n,s,r,_,k,p){return e(),i("div",null,l)}const m=o(t,[["render",d]]);export{h as __pageData,m as default}; diff --git a/assets/guide_data_cookie.md.4fee46d7.lean.js b/assets/guide_data_cookie.md.4fee46d7.lean.js deleted file mode 100644 index e0e8a88..0000000 --- a/assets/guide_data_cookie.md.4fee46d7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o,o as e,c as i,Q as c}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1713769091000}'),t={name:"guide/data/cookie.md"},a=c("",3),l=[a];function d(n,s,r,_,k,p){return e(),i("div",null,l)}const m=o(t,[["render",d]]);export{h as __pageData,m as default}; diff --git a/assets/guide_data_errorCode.md.a4910578.js b/assets/guide_data_errorCode.md.057b0d7f.js similarity index 83% rename from assets/guide_data_errorCode.md.a4910578.js rename to assets/guide_data_errorCode.md.057b0d7f.js index 82a8e7b..6021c87 100644 --- a/assets/guide_data_errorCode.md.a4910578.js +++ b/assets/guide_data_errorCode.md.057b0d7f.js @@ -1 +1 @@ -import{_ as t,o as d,c as e,Q as a}from"./chunks/framework.7f46d7d2.js";const b=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1713769091000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function c(s,i,n,_,l,p){return d(),e("div",null,h)}const m=t(r,[["render",c]]);export{b as __pageData,m as default}; +import{_ as t,o as d,c as e,Q as a}from"./chunks/framework.c0711e93.js";const b=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1717747502000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function c(s,i,n,_,l,p){return d(),e("div",null,h)}const m=t(r,[["render",c]]);export{b as __pageData,m as default}; diff --git a/assets/guide_data_errorCode.md.057b0d7f.lean.js b/assets/guide_data_errorCode.md.057b0d7f.lean.js new file mode 100644 index 0000000..ec34e58 --- /dev/null +++ b/assets/guide_data_errorCode.md.057b0d7f.lean.js @@ -0,0 +1 @@ +import{_ as t,o as d,c as e,Q as a}from"./chunks/framework.c0711e93.js";const b=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1717747502000}'),r={name:"guide/data/errorCode.md"},o=a("",6),h=[o];function c(s,i,n,_,l,p){return d(),e("div",null,h)}const m=t(r,[["render",c]]);export{b as __pageData,m as default}; diff --git a/assets/guide_data_errorCode.md.a4910578.lean.js b/assets/guide_data_errorCode.md.a4910578.lean.js deleted file mode 100644 index 9e06321..0000000 --- a/assets/guide_data_errorCode.md.a4910578.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,o as d,c as e,Q as a}from"./chunks/framework.7f46d7d2.js";const b=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1713769091000}'),r={name:"guide/data/errorCode.md"},o=a("",6),h=[o];function c(s,i,n,_,l,p){return d(),e("div",null,h)}const m=t(r,[["render",c]]);export{b as __pageData,m as default}; diff --git a/assets/guide_data_keyCode.md.45a95f5b.js b/assets/guide_data_keyCode.md.4aa7360f.js similarity index 99% rename from assets/guide_data_keyCode.md.45a95f5b.js rename to assets/guide_data_keyCode.md.4aa7360f.js index cf806c2..4887a4c 100644 --- a/assets/guide_data_keyCode.md.45a95f5b.js +++ b/assets/guide_data_keyCode.md.4aa7360f.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const A=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1713769091000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
  | '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const A=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1717747502000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
  | '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
   | 'Power'| 'Eject'| 'Abort'| 'Help'| 'Backspace'| 'Tab'| 'Numpad5'| 'NumpadEnter'
   | 'Enter'| 'ShiftLeft'| 'ShiftRight'| 'ControlLeft'| 'ControlRight'| 'AltLeft'
   | 'AltRight'| 'Pause'| 'CapsLock'| 'Escape'| 'Convert'| 'NonConvert'| 'Space'
diff --git a/assets/guide_data_keyCode.md.45a95f5b.lean.js b/assets/guide_data_keyCode.md.4aa7360f.lean.js
similarity index 54%
rename from assets/guide_data_keyCode.md.45a95f5b.lean.js
rename to assets/guide_data_keyCode.md.4aa7360f.lean.js
index e2b2876..b4e12a8 100644
--- a/assets/guide_data_keyCode.md.45a95f5b.lean.js
+++ b/assets/guide_data_keyCode.md.4aa7360f.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const A=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1713769091000}'),p={name:"guide/data/keyCode.md"},o=l("",3),e=[o];function t(c,r,y,E,F,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const A=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1717747502000}'),p={name:"guide/data/keyCode.md"},o=l("",3),e=[o];function t(c,r,y,E,F,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default};
diff --git a/assets/guide_ex_ex1.md.ab70c4c8.js b/assets/guide_ex_ex1.md.f6cd2e00.js
similarity index 87%
rename from assets/guide_ex_ex1.md.ab70c4c8.js
rename to assets/guide_ex_ex1.md.f6cd2e00.js
index 510377d..f424c87 100644
--- a/assets/guide_ex_ex1.md.ab70c4c8.js
+++ b/assets/guide_ex_ex1.md.f6cd2e00.js
@@ -1 +1 @@
-import{_ as e,o as a,c as t,Q as i}from"./chunks/framework.7f46d7d2.js";const p=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1713769091000}'),l={name:"guide/ex/ex1.md"},r=i('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),o=[r];function s(d,n,_,c,h,u){return a(),t("div",null,o)}const x=e(l,[["render",s]]);export{p as __pageData,x as default}; +import{_ as e,o as a,c as t,Q as i}from"./chunks/framework.c0711e93.js";const p=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1717747502000}'),l={name:"guide/ex/ex1.md"},r=i('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),o=[r];function s(d,n,_,c,h,u){return a(),t("div",null,o)}const x=e(l,[["render",s]]);export{p as __pageData,x as default}; diff --git a/assets/guide_ex_ex1.md.ab70c4c8.lean.js b/assets/guide_ex_ex1.md.f6cd2e00.lean.js similarity index 53% rename from assets/guide_ex_ex1.md.ab70c4c8.lean.js rename to assets/guide_ex_ex1.md.f6cd2e00.lean.js index d356550..09dad26 100644 --- a/assets/guide_ex_ex1.md.ab70c4c8.lean.js +++ b/assets/guide_ex_ex1.md.f6cd2e00.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as t,Q as i}from"./chunks/framework.7f46d7d2.js";const p=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1713769091000}'),l={name:"guide/ex/ex1.md"},r=i("",5),o=[r];function s(d,n,_,c,h,u){return a(),t("div",null,o)}const x=e(l,[["render",s]]);export{p as __pageData,x as default}; +import{_ as e,o as a,c as t,Q as i}from"./chunks/framework.c0711e93.js";const p=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1717747502000}'),l={name:"guide/ex/ex1.md"},r=i("",5),o=[r];function s(d,n,_,c,h,u){return a(),t("div",null,o)}const x=e(l,[["render",s]]);export{p as __pageData,x as default}; diff --git a/assets/guide_ex_ex2.md.85d52ba5.js b/assets/guide_ex_ex2.md.9b4be7e7.js similarity index 88% rename from assets/guide_ex_ex2.md.85d52ba5.js rename to assets/guide_ex_ex2.md.9b4be7e7.js index a10c9dc..5e97fa7 100644 --- a/assets/guide_ex_ex2.md.85d52ba5.js +++ b/assets/guide_ex_ex2.md.9b4be7e7.js @@ -1 +1 @@ -import{_ as a,o as e,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const x=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1713769091000}'),r={name:"guide/ex/ex2.md"},i=o('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),d=[i];function n(s,c,h,l,_,p){return e(),t("div",null,d)}const m=a(r,[["render",n]]);export{x as __pageData,m as default}; +import{_ as a,o as e,c as t,Q as o}from"./chunks/framework.c0711e93.js";const x=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1717747502000}'),r={name:"guide/ex/ex2.md"},i=o('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),d=[i];function n(s,c,h,l,_,p){return e(),t("div",null,d)}const m=a(r,[["render",n]]);export{x as __pageData,m as default}; diff --git a/assets/guide_ex_ex2.md.85d52ba5.lean.js b/assets/guide_ex_ex2.md.9b4be7e7.lean.js similarity index 53% rename from assets/guide_ex_ex2.md.85d52ba5.lean.js rename to assets/guide_ex_ex2.md.9b4be7e7.lean.js index 01d83b6..86d52df 100644 --- a/assets/guide_ex_ex2.md.85d52ba5.lean.js +++ b/assets/guide_ex_ex2.md.9b4be7e7.lean.js @@ -1 +1 @@ -import{_ as a,o as e,c as t,Q as o}from"./chunks/framework.7f46d7d2.js";const x=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1713769091000}'),r={name:"guide/ex/ex2.md"},i=o("",9),d=[i];function n(s,c,h,l,_,p){return e(),t("div",null,d)}const m=a(r,[["render",n]]);export{x as __pageData,m as default}; +import{_ as a,o as e,c as t,Q as o}from"./chunks/framework.c0711e93.js";const x=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1717747502000}'),r={name:"guide/ex/ex2.md"},i=o("",9),d=[i];function n(s,c,h,l,_,p){return e(),t("div",null,d)}const m=a(r,[["render",n]]);export{x as __pageData,m as default}; diff --git a/assets/guide_exam_apiHook.md.7d2f176a.js b/assets/guide_exam_apiHook.md.def585a9.js similarity index 98% rename from assets/guide_exam_apiHook.md.7d2f176a.js rename to assets/guide_exam_apiHook.md.def585a9.js index a1fe42b..5f61f42 100644 --- a/assets/guide_exam_apiHook.md.7d2f176a.js +++ b/assets/guide_exam_apiHook.md.def585a9.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1713769091000}'),l={name:"guide/exam/apiHook.md"},o=p(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js

+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1717747502000}'),l={name:"guide/exam/apiHook.md"},o=p(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js

 await page.to('http://t.268xue.com/');
 await browser.on('request',(res)=>{
     // 监听页面请求
diff --git a/assets/guide_exam_apiHook.md.7d2f176a.lean.js b/assets/guide_exam_apiHook.md.def585a9.lean.js
similarity index 56%
rename from assets/guide_exam_apiHook.md.7d2f176a.lean.js
rename to assets/guide_exam_apiHook.md.def585a9.lean.js
index 4b561e7..4cb61ff 100644
--- a/assets/guide_exam_apiHook.md.7d2f176a.lean.js
+++ b/assets/guide_exam_apiHook.md.def585a9.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1713769091000}'),l={name:"guide/exam/apiHook.md"},o=p("",7),e=[o];function t(c,r,E,y,i,F){return a(),n("div",null,e)}const g=s(l,[["render",t]]);export{u as __pageData,g as default};
+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1717747502000}'),l={name:"guide/exam/apiHook.md"},o=p("",7),e=[o];function t(c,r,E,y,i,F){return a(),n("div",null,e)}const g=s(l,[["render",t]]);export{u as __pageData,g as default};
diff --git a/assets/guide_exam_baseOpt.md.b2e3a0c6.js b/assets/guide_exam_baseOpt.md.6d0d9d7c.js
similarity index 95%
rename from assets/guide_exam_baseOpt.md.b2e3a0c6.js
rename to assets/guide_exam_baseOpt.md.6d0d9d7c.js
index 8c492bd..6eef639 100644
--- a/assets/guide_exam_baseOpt.md.b2e3a0c6.js
+++ b/assets/guide_exam_baseOpt.md.6d0d9d7c.js
@@ -1,8 +1,8 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const d=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1713769091000}'),p={name:"guide/exam/baseOpt.md"},o=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const d=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1717747502000}'),p={name:"guide/exam/baseOpt.md"},o=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
 await page.create(homePage) // 使用变量打开页面
 await sleep(1000) // 固定等待
 await page.to(\`https://baidu.com\`) // 切换页面
-await assert.custom("#su","inputValue","百度一下",0) // 页面元素断言
+await assert.custom("#su","innerText","百度一下",0) // 页面元素断言
 await assert.location("https://www.baidu.com/") // 页面地址断言
 await assert.title("百度一下,你就知道") // 页面title 断言
 // 执行hover
@@ -33,7 +33,7 @@ import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const d=
 await page.create(homePage) // 使用变量打开页面
 await sleep(1000) // 固定等待
 await page.to(\`https://baidu.com\`) // 切换页面
-await assert.custom("#su","inputValue","百度一下",0) // 页面元素断言
+await assert.custom("#su","innerText","百度一下",0) // 页面元素断言
 await assert.location("https://www.baidu.com/") // 页面地址断言
 await assert.title("百度一下,你就知道") // 页面title 断言
 // 执行hover
diff --git a/assets/guide_exam_baseOpt.md.b2e3a0c6.lean.js b/assets/guide_exam_baseOpt.md.6d0d9d7c.lean.js
similarity index 56%
rename from assets/guide_exam_baseOpt.md.b2e3a0c6.lean.js
rename to assets/guide_exam_baseOpt.md.6d0d9d7c.lean.js
index 8133541..dce8cff 100644
--- a/assets/guide_exam_baseOpt.md.b2e3a0c6.lean.js
+++ b/assets/guide_exam_baseOpt.md.6d0d9d7c.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const d=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1713769091000}'),p={name:"guide/exam/baseOpt.md"},o=l("",2),t=[o];function e(c,r,y,E,i,F){return a(),n("div",null,t)}const C=s(p,[["render",e]]);export{d as __pageData,C as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const d=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1717747502000}'),p={name:"guide/exam/baseOpt.md"},o=l("",2),t=[o];function e(c,r,y,E,i,F){return a(),n("div",null,t)}const C=s(p,[["render",e]]);export{d as __pageData,C as default};
diff --git a/assets/guide_exam_mobile.md.9961d042.js b/assets/guide_exam_mobile.md.7ea8b1eb.js
similarity index 96%
rename from assets/guide_exam_mobile.md.9961d042.js
rename to assets/guide_exam_mobile.md.7ea8b1eb.js
index 68c5fc5..3a55521 100644
--- a/assets/guide_exam_mobile.md.9961d042.js
+++ b/assets/guide_exam_mobile.md.7ea8b1eb.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1713769091000}'),p={name:"guide/exam/mobile.md"},o=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1717747502000}'),p={name:"guide/exam/mobile.md"},o=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
 await page.setDevice('iPhone 11')
 await page.to(\`https://baidu.com\`)
 await dom.fill('label',"京东");
diff --git a/assets/guide_exam_mobile.md.9961d042.lean.js b/assets/guide_exam_mobile.md.7ea8b1eb.lean.js
similarity index 56%
rename from assets/guide_exam_mobile.md.9961d042.lean.js
rename to assets/guide_exam_mobile.md.7ea8b1eb.lean.js
index 8eb0c72..2598fd5 100644
--- a/assets/guide_exam_mobile.md.9961d042.lean.js
+++ b/assets/guide_exam_mobile.md.7ea8b1eb.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1713769091000}'),p={name:"guide/exam/mobile.md"},o=l("",2),e=[o];function t(c,r,E,i,y,d){return a(),n("div",null,e)}const h=s(p,[["render",t]]);export{m as __pageData,h as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1717747502000}'),p={name:"guide/exam/mobile.md"},o=l("",2),e=[o];function t(c,r,E,i,y,d){return a(),n("div",null,e)}const h=s(p,[["render",t]]);export{m as __pageData,h as default};
diff --git a/assets/guide_exam_modifyDate.md.5de19980.js b/assets/guide_exam_modifyDate.md.3932231b.js
similarity index 98%
rename from assets/guide_exam_modifyDate.md.5de19980.js
rename to assets/guide_exam_modifyDate.md.3932231b.js
index f037ad6..b992a9d 100644
--- a/assets/guide_exam_modifyDate.md.5de19980.js
+++ b/assets/guide_exam_modifyDate.md.3932231b.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const p="/assets/modifyDate.a6b50964.gif",C=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1713769091000}'),o={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
  //打开Element日期组件
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const p="/assets/modifyDate.a6b50964.gif",C=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1717747502000}'),o={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
  //打开Element日期组件
   await page.create(\`https://element.eleme.cn/#/zh-CN/component/date-picker\`)
   await sleep(1000)
   //js获取当前日期
diff --git a/assets/guide_exam_modifyDate.md.5de19980.lean.js b/assets/guide_exam_modifyDate.md.3932231b.lean.js
similarity index 61%
rename from assets/guide_exam_modifyDate.md.5de19980.lean.js
rename to assets/guide_exam_modifyDate.md.3932231b.lean.js
index 05fc30f..07ecf4e 100644
--- a/assets/guide_exam_modifyDate.md.5de19980.lean.js
+++ b/assets/guide_exam_modifyDate.md.3932231b.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const p="/assets/modifyDate.a6b50964.gif",C=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1713769091000}'),o={name:"guide/exam/modifyDate.md"},e=l("",6),t=[e];function c(r,E,y,i,F,d){return a(),n("div",null,t)}const h=s(o,[["render",c]]);export{C as __pageData,h as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const p="/assets/modifyDate.a6b50964.gif",C=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1717747502000}'),o={name:"guide/exam/modifyDate.md"},e=l("",6),t=[e];function c(r,E,y,i,F,d){return a(),n("div",null,t)}const h=s(o,[["render",c]]);export{C as __pageData,h as default};
diff --git a/assets/guide_exam_select.md.d45648c8.js b/assets/guide_exam_select.md.5a8910e6.js
similarity index 98%
rename from assets/guide_exam_select.md.d45648c8.js
rename to assets/guide_exam_select.md.5a8910e6.js
index d4d8b38..633375b 100644
--- a/assets/guide_exam_select.md.d45648c8.js
+++ b/assets/guide_exam_select.md.5a8910e6.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const p="/assets/find_element.1a2e8b50.png",m=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1713769091000}'),e={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell

+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const p="/assets/find_element.1a2e8b50.png",m=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1717747502000}'),e={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell

 //label[text()="活动名称"]    # 根据文本内容匹配元素
 
 //label[string()="活动名称"]    # 根据包含内容匹配子元素- 容易匹配多个
diff --git a/assets/guide_exam_select.md.d45648c8.lean.js b/assets/guide_exam_select.md.5a8910e6.lean.js
similarity index 59%
rename from assets/guide_exam_select.md.d45648c8.lean.js
rename to assets/guide_exam_select.md.5a8910e6.lean.js
index e41008e..a166d42 100644
--- a/assets/guide_exam_select.md.d45648c8.lean.js
+++ b/assets/guide_exam_select.md.5a8910e6.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const p="/assets/find_element.1a2e8b50.png",m=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1713769091000}'),e={name:"guide/exam/select.md"},o=l("",21),t=[o];function c(r,i,y,d,E,u){return a(),n("div",null,t)}const F=s(e,[["render",c]]);export{m as __pageData,F as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const p="/assets/find_element.1a2e8b50.png",m=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1717747502000}'),e={name:"guide/exam/select.md"},o=l("",21),t=[o];function c(r,i,y,d,E,u){return a(),n("div",null,t)}const F=s(e,[["render",c]]);export{m as __pageData,F as default};
diff --git a/assets/guide_instructs_assert.md.cd445f11.js b/assets/guide_instructs_assert.md.4d56cdc5.js
similarity index 98%
rename from assets/guide_instructs_assert.md.cd445f11.js
rename to assets/guide_instructs_assert.md.4d56cdc5.js
index 803a35a..d59040f 100644
--- a/assets/guide_instructs_assert.md.cd445f11.js
+++ b/assets/guide_instructs_assert.md.4d56cdc5.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as l,Q as o}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"assert","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/assert.md","filePath":"guide/instructs/assert.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/assert.md"},n=o(`

assert

assert.all(string,times)

全局断言,判断当前页面内是否存在指定字符串。 默认判断规则为,判定默认6次每次间隔500ms,如果在规定时间能为找到则断言失败

js
await assert.all('立即下单') // 判断页面内是否存在立即下单文字
+import{_ as s,o as a,c as l,Q as o}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"assert","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/assert.md","filePath":"guide/instructs/assert.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/assert.md"},n=o(`

assert

assert.all(string,times)

全局断言,判断当前页面内是否存在指定字符串。 默认判断规则为,判定默认6次每次间隔500ms,如果在规定时间能为找到则断言失败

js
await assert.all('立即下单') // 判断页面内是否存在立即下单文字
 await assert.all('立即下单',10) // 增加重试次数
await assert.all('立即下单') // 判断页面内是否存在立即下单文字
 await assert.all('立即下单',10) // 增加重试次数

assert.true(value: bool | string | number ,errHint)

判断value内容是否为true.

js
await assert.true('存在') // 
 await assert.all(false, "断言内容为false,请检查相关代码逻辑") // 当断言失败时会显示,提示文字
await assert.true('存在') // 
diff --git a/assets/guide_instructs_assert.md.cd445f11.lean.js b/assets/guide_instructs_assert.md.4d56cdc5.lean.js
similarity index 56%
rename from assets/guide_instructs_assert.md.cd445f11.lean.js
rename to assets/guide_instructs_assert.md.4d56cdc5.lean.js
index 2ae926f..f1e88fb 100644
--- a/assets/guide_instructs_assert.md.cd445f11.lean.js
+++ b/assets/guide_instructs_assert.md.4d56cdc5.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as l,Q as o}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"assert","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/assert.md","filePath":"guide/instructs/assert.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/assert.md"},n=o("",20),p=[n];function t(r,c,i,y,E,d){return a(),l("div",null,p)}const F=s(e,[["render",t]]);export{h as __pageData,F as default};
+import{_ as s,o as a,c as l,Q as o}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"assert","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/assert.md","filePath":"guide/instructs/assert.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/assert.md"},n=o("",20),p=[n];function t(r,c,i,y,E,d){return a(),l("div",null,p)}const F=s(e,[["render",t]]);export{h as __pageData,F as default};
diff --git a/assets/guide_instructs_browser.md.868e2f77.js b/assets/guide_instructs_browser.md.54f2a188.js
similarity index 97%
rename from assets/guide_instructs_browser.md.868e2f77.js
rename to assets/guide_instructs_browser.md.54f2a188.js
index 955f7cd..eefc840 100644
--- a/assets/guide_instructs_browser.md.868e2f77.js
+++ b/assets/guide_instructs_browser.md.54f2a188.js
@@ -1,4 +1,4 @@
-import{_ as s,o as e,c as a,Q as n}from"./chunks/framework.7f46d7d2.js";const g=JSON.parse('{"title":"browser","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/browser.md","filePath":"guide/instructs/browser.md","lastUpdated":1713769091000}'),o={name:"guide/instructs/browser.md"},l=n(`

browser

browser.on(event:'request'| 'requestfaile' | 'requestfinished' | 'response',callback:Function)

监听浏览器事件 注意:: 监听事件是异步的且持续的,你不能期待再事件中抛出错误并中断执行。如果你需要同步使用page.waitForResponse

js
await browser.on('request',(res)=>{
+import{_ as s,o as e,c as a,Q as n}from"./chunks/framework.c0711e93.js";const g=JSON.parse('{"title":"browser","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/browser.md","filePath":"guide/instructs/browser.md","lastUpdated":1717747502000}'),o={name:"guide/instructs/browser.md"},l=n(`

browser

browser.on(event:'request'| 'requestfaile' | 'requestfinished' | 'response',callback:Function)

监听浏览器事件 注意:: 监听事件是异步的且持续的,你不能期待再事件中抛出错误并中断执行。如果你需要同步使用page.waitForResponse

js
await browser.on('request',(res)=>{
     // 监听页面请求
     console.log('url',res._initializer.url)
 })
await browser.on('request',(res)=>{
diff --git a/assets/guide_instructs_browser.md.868e2f77.lean.js b/assets/guide_instructs_browser.md.54f2a188.lean.js
similarity index 56%
rename from assets/guide_instructs_browser.md.868e2f77.lean.js
rename to assets/guide_instructs_browser.md.54f2a188.lean.js
index 7ff42b4..22c36aa 100644
--- a/assets/guide_instructs_browser.md.868e2f77.lean.js
+++ b/assets/guide_instructs_browser.md.54f2a188.lean.js
@@ -1 +1 @@
-import{_ as s,o as e,c as a,Q as n}from"./chunks/framework.7f46d7d2.js";const g=JSON.parse('{"title":"browser","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/browser.md","filePath":"guide/instructs/browser.md","lastUpdated":1713769091000}'),o={name:"guide/instructs/browser.md"},l=n("",7),p=[l];function r(t,c,i,E,u,y){return e(),a("div",null,p)}const h=s(o,[["render",r]]);export{g as __pageData,h as default};
+import{_ as s,o as e,c as a,Q as n}from"./chunks/framework.c0711e93.js";const g=JSON.parse('{"title":"browser","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/browser.md","filePath":"guide/instructs/browser.md","lastUpdated":1717747502000}'),o={name:"guide/instructs/browser.md"},l=n("",7),p=[l];function r(t,c,i,E,u,y){return e(),a("div",null,p)}const h=s(o,[["render",r]]);export{g as __pageData,h as default};
diff --git a/assets/guide_instructs_cookies.md.097faba6.js b/assets/guide_instructs_cookies.md.5d039a45.js
similarity index 97%
rename from assets/guide_instructs_cookies.md.097faba6.js
rename to assets/guide_instructs_cookies.md.5d039a45.js
index 45ee842..1572852 100644
--- a/assets/guide_instructs_cookies.md.097faba6.js
+++ b/assets/guide_instructs_cookies.md.5d039a45.js
@@ -1,4 +1,4 @@
-import{_ as s,o as t,c as o,Q as a}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"cookies","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/cookies.md","filePath":"guide/instructs/cookies.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/cookies.md"},l=a(`

cookies

适用于用户身份认证,以及验证码跳过。

cookies.setAll(url, value)

对指定页面批量设置cookie

名称类型默认值说明
urlstring必填,要设置cookie的url
valuestring必填,string类型的cookie值

示例:

js
await cookies.setAll("https://www.baidu.com/","jZ0bGJpeXR3")
await cookies.setAll("https://www.baidu.com/","jZ0bGJpeXR3")

cookies.set(cookies)

通过浏览器cookie标准,设置完整的cookie信息。

  • cookies : details[]

details参数:

名称类型默认值说明
urlstring必填,与cookie相关联的url
namestring必填,cookie的名称
valuestring必填,cookie的值
domainstring必填,cookie的域,使用前面的点进行标准化,以便适用于子域
pathstring选填,cookie的路径
securebooleanfalse选填,cookie是否标记为安全
httpOnlybooleanfalse选填,cookie是否仅标记为HTTP
expirationDatedouble选填,cookie的到期日期,表示自UNIX纪元以来的秒数
sameSitebooleanno_restriction选填,应用于此cookie的相同站点策略,可选:unspecified,no_restriction,lax,strict

注意: 新版不允许同时设置url和domain, 设置url后会自动生成对应的domain.

如果你要设置单个cookie更推荐使用domain + path 设置, 而非url

示例:

js
await cookies.set([{
+import{_ as s,o as t,c as o,Q as a}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"cookies","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/cookies.md","filePath":"guide/instructs/cookies.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/cookies.md"},l=a(`

cookies

适用于用户身份认证,以及验证码跳过。

cookies.setAll(url, value)

对指定页面批量设置cookie

名称类型默认值说明
urlstring必填,要设置cookie的url
valuestring必填,string类型的cookie值

示例:

js
await cookies.setAll("https://www.baidu.com/","jZ0bGJpeXR3")
await cookies.setAll("https://www.baidu.com/","jZ0bGJpeXR3")

cookies.set(cookies)

通过浏览器cookie标准,设置完整的cookie信息。

  • cookies : details[]

details参数:

名称类型默认值说明
urlstring必填,与cookie相关联的url
namestring必填,cookie的名称
valuestring必填,cookie的值
domainstring必填,cookie的域,使用前面的点进行标准化,以便适用于子域
pathstring选填,cookie的路径
securebooleanfalse选填,cookie是否标记为安全
httpOnlybooleanfalse选填,cookie是否仅标记为HTTP
expirationDatedouble选填,cookie的到期日期,表示自UNIX纪元以来的秒数
sameSitebooleanno_restriction选填,应用于此cookie的相同站点策略,可选:unspecified,no_restriction,lax,strict

注意: 新版不允许同时设置url和domain, 设置url后会自动生成对应的domain.

如果你要设置单个cookie更推荐使用domain + path 设置, 而非url

示例:

js
await cookies.set([{
   "domain": ".jd.com",
   "name": "sso.jd.com",
   "path": "/",
diff --git a/assets/guide_instructs_cookies.md.097faba6.lean.js b/assets/guide_instructs_cookies.md.5d039a45.lean.js
similarity index 56%
rename from assets/guide_instructs_cookies.md.097faba6.lean.js
rename to assets/guide_instructs_cookies.md.5d039a45.lean.js
index 0127ca7..9864d4c 100644
--- a/assets/guide_instructs_cookies.md.097faba6.lean.js
+++ b/assets/guide_instructs_cookies.md.5d039a45.lean.js
@@ -1 +1 @@
-import{_ as s,o as t,c as o,Q as a}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"cookies","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/cookies.md","filePath":"guide/instructs/cookies.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/cookies.md"},l=a("",19),n=[l];function p(c,r,d,i,u,E){return t(),o("div",null,n)}const k=s(e,[["render",p]]);export{h as __pageData,k as default};
+import{_ as s,o as t,c as o,Q as a}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"cookies","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/cookies.md","filePath":"guide/instructs/cookies.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/cookies.md"},l=a("",19),n=[l];function p(c,r,d,i,u,E){return t(),o("div",null,n)}const k=s(e,[["render",p]]);export{h as __pageData,k as default};
diff --git a/assets/guide_instructs_dom.md.9936b571.js b/assets/guide_instructs_dom.md.98ac1260.js
similarity index 99%
rename from assets/guide_instructs_dom.md.9936b571.js
rename to assets/guide_instructs_dom.md.98ac1260.js
index 16ad87f..51de021 100644
--- a/assets/guide_instructs_dom.md.9936b571.js
+++ b/assets/guide_instructs_dom.md.98ac1260.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as o,Q as n}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"dom","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/dom.md","filePath":"guide/instructs/dom.md","lastUpdated":1713769091000}'),l={name:"guide/instructs/dom.md"},p=n(`

dom

页面元素类,对页面元素操作的方法通常都包含在此类下面。

exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
+import{_ as s,o as a,c as o,Q as n}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"dom","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/dom.md","filePath":"guide/instructs/dom.md","lastUpdated":1717747502000}'),l={name:"guide/instructs/dom.md"},p=n(`

dom

页面元素类,对页面元素操作的方法通常都包含在此类下面。

exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
 console.log('result:', result)
 // >  'result:' true
const result =  await dom.exist('#id')
 console.log('result:', result)
diff --git a/assets/guide_instructs_dom.md.9936b571.lean.js b/assets/guide_instructs_dom.md.98ac1260.lean.js
similarity index 55%
rename from assets/guide_instructs_dom.md.9936b571.lean.js
rename to assets/guide_instructs_dom.md.98ac1260.lean.js
index 95cbe64..1ec42ee 100644
--- a/assets/guide_instructs_dom.md.9936b571.lean.js
+++ b/assets/guide_instructs_dom.md.98ac1260.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as o,Q as n}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"dom","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/dom.md","filePath":"guide/instructs/dom.md","lastUpdated":1713769091000}'),l={name:"guide/instructs/dom.md"},p=n("",55),e=[p];function t(c,r,i,d,y,E){return a(),o("div",null,e)}const g=s(l,[["render",t]]);export{h as __pageData,g as default};
+import{_ as s,o as a,c as o,Q as n}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"dom","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/dom.md","filePath":"guide/instructs/dom.md","lastUpdated":1717747502000}'),l={name:"guide/instructs/dom.md"},p=n("",55),e=[p];function t(c,r,i,d,y,E){return a(),o("div",null,e)}const g=s(l,[["render",t]]);export{h as __pageData,g as default};
diff --git a/assets/guide_instructs_global.md.7147053b.js b/assets/guide_instructs_global.md.2e540510.js
similarity index 97%
rename from assets/guide_instructs_global.md.7147053b.js
rename to assets/guide_instructs_global.md.2e540510.js
index a9f4ee4..4c56620 100644
--- a/assets/guide_instructs_global.md.7147053b.js
+++ b/assets/guide_instructs_global.md.2e540510.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"通用指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/global.md","filePath":"guide/instructs/global.md","lastUpdated":1713769091000}'),p={name:"guide/instructs/global.md"},o=l(`

通用指令

常用的轻量指令

execJavaScript(script)

执行指定JavaScript脚本, 这里执行脚本将在页面环境内执行,并且锁定在当前操作的页面对象中或iframe中。

js
await execJavaScript(\`alert('hello ,word !')\`)
await execJavaScript(\`alert('hello ,word !')\`)

sleep(ms)

休眠, 控制程序停止一段时间。 脚本最后增加的sleep无效,sleep后面必须跟随其他指令。

js
await sleep(3000) // 等待3s
await sleep(3000) // 等待3s

hint(text,type)

用于页面中展示重要的提示信息。type可选'success','info','warning','error'。

js
await hint('成功提示的文案','success')
await hint('成功提示的文案','success')

errorSend(msg)

发送自定义错误, 可以在不影响任务执行的情况下,将错误记录,并修改当前执行结果为失败。

js

+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"通用指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/global.md","filePath":"guide/instructs/global.md","lastUpdated":1717747502000}'),p={name:"guide/instructs/global.md"},o=l(`

通用指令

常用的轻量指令

execJavaScript(script)

执行指定JavaScript脚本, 这里执行脚本将在页面环境内执行,并且锁定在当前操作的页面对象中或iframe中。

js
await execJavaScript(\`alert('hello ,word !')\`)
await execJavaScript(\`alert('hello ,word !')\`)

sleep(ms)

休眠, 控制程序停止一段时间。 脚本最后增加的sleep无效,sleep后面必须跟随其他指令。

js
await sleep(3000) // 等待3s
await sleep(3000) // 等待3s

hint(text,type)

用于页面中展示重要的提示信息。type可选'success','info','warning','error'。

js
await hint('成功提示的文案','success')
await hint('成功提示的文案','success')

errorSend(msg)

发送自定义错误, 可以在不影响任务执行的情况下,将错误记录,并修改当前执行结果为失败。

js

 errorSend("失败了,原因为未找到登陆框")
 
 // 通常配合try catch使用, 可以在不中断后续命令执行的情况下,记录错误
diff --git a/assets/guide_instructs_global.md.7147053b.lean.js b/assets/guide_instructs_global.md.2e540510.lean.js
similarity index 57%
rename from assets/guide_instructs_global.md.7147053b.lean.js
rename to assets/guide_instructs_global.md.2e540510.lean.js
index 5281c0b..0105de2 100644
--- a/assets/guide_instructs_global.md.7147053b.lean.js
+++ b/assets/guide_instructs_global.md.2e540510.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"通用指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/global.md","filePath":"guide/instructs/global.md","lastUpdated":1713769091000}'),p={name:"guide/instructs/global.md"},o=l("",14),e=[o];function t(c,r,i,y,E,d){return a(),n("div",null,e)}const g=s(p,[["render",t]]);export{u as __pageData,g as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"通用指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/global.md","filePath":"guide/instructs/global.md","lastUpdated":1717747502000}'),p={name:"guide/instructs/global.md"},o=l("",14),e=[o];function t(c,r,i,y,E,d){return a(),n("div",null,e)}const g=s(p,[["render",t]]);export{u as __pageData,g as default};
diff --git a/assets/guide_instructs_img.md.bbe5763f.js b/assets/guide_instructs_img.md.6ab19bdb.js
similarity index 92%
rename from assets/guide_instructs_img.md.bbe5763f.js
rename to assets/guide_instructs_img.md.6ab19bdb.js
index 9e2d488..a3013f5 100644
--- a/assets/guide_instructs_img.md.bbe5763f.js
+++ b/assets/guide_instructs_img.md.6ab19bdb.js
@@ -1,3 +1,3 @@
-import{_ as s,o as a,c as t,Q as n}from"./chunks/framework.7f46d7d2.js";const _=JSON.parse('{"title":"img","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/img.md","filePath":"guide/instructs/img.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/img.md"},o=n(`

img

通过图像进行操作

img.click(imgPath)

通过图像进行点击, 会点击当前页面匹配的图像中心区域。基于sift实现

js
await img.click("https://storage.360buyimg.com/assert/baidu_btn.jpg") // 使用远程图片操作点击
+import{_ as s,o as a,c as t,Q as n}from"./chunks/framework.c0711e93.js";const _=JSON.parse('{"title":"img","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/img.md","filePath":"guide/instructs/img.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/img.md"},o=n(`

img

通过图像进行操作

img.click(imgPath)

通过图像进行点击, 会点击当前页面匹配的图像中心区域。基于sift实现

js
await img.click("https://storage.360buyimg.com/assert/baidu_btn.jpg") // 使用远程图片操作点击
 await img.click("/use/app/baidu_btn.jpg") // 使用本地图像点击
await img.click("https://storage.360buyimg.com/assert/baidu_btn.jpg") // 使用远程图片操作点击
 await img.click("/use/app/baidu_btn.jpg") // 使用本地图像点击
`,5),p=[o];function l(i,c,r,g,d,m){return a(),t("div",null,p)}const y=s(e,[["render",l]]);export{_ as __pageData,y as default}; diff --git a/assets/guide_instructs_img.md.bbe5763f.lean.js b/assets/guide_instructs_img.md.6ab19bdb.lean.js similarity index 55% rename from assets/guide_instructs_img.md.bbe5763f.lean.js rename to assets/guide_instructs_img.md.6ab19bdb.lean.js index f44d5fb..4b124af 100644 --- a/assets/guide_instructs_img.md.bbe5763f.lean.js +++ b/assets/guide_instructs_img.md.6ab19bdb.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as t,Q as n}from"./chunks/framework.7f46d7d2.js";const _=JSON.parse('{"title":"img","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/img.md","filePath":"guide/instructs/img.md","lastUpdated":1713769091000}'),e={name:"guide/instructs/img.md"},o=n("",5),p=[o];function l(i,c,r,g,d,m){return a(),t("div",null,p)}const y=s(e,[["render",l]]);export{_ as __pageData,y as default}; +import{_ as s,o as a,c as t,Q as n}from"./chunks/framework.c0711e93.js";const _=JSON.parse('{"title":"img","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/img.md","filePath":"guide/instructs/img.md","lastUpdated":1717747502000}'),e={name:"guide/instructs/img.md"},o=n("",5),p=[o];function l(i,c,r,g,d,m){return a(),t("div",null,p)}const y=s(e,[["render",l]]);export{_ as __pageData,y as default}; diff --git a/assets/guide_instructs_keyboard.md.5621942a.js b/assets/guide_instructs_keyboard.md.a1aef5b2.js similarity index 96% rename from assets/guide_instructs_keyboard.md.5621942a.js rename to assets/guide_instructs_keyboard.md.a1aef5b2.js index 91d9f35..3f37ba6 100644 --- a/assets/guide_instructs_keyboard.md.5621942a.js +++ b/assets/guide_instructs_keyboard.md.a1aef5b2.js @@ -1 +1 @@ -import{_ as a,o as s,c as e,Q as o}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"keyboard","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/keyboard.md","filePath":"guide/instructs/keyboard.md","lastUpdated":1713769091000}'),t={name:"guide/instructs/keyboard.md"},l=o('

keyboard

使用键盘对页面进行操作

keyboard.press(keyCode)

模拟点击键盘。

js
await keyboard.press('KeyA')  // 模拟点击键盘a键
await keyboard.press('KeyA')  // 模拟点击键盘a键

keyboard.down(keyCode)

模拟按下键盘。

js
await keyboard.down('ControlLeft')  // 模拟按下
await keyboard.down('ControlLeft')  // 模拟按下

keyboard.up(keyCode)

模拟抬起键盘。

js
await keyboard.up('ControlLeft')  // 模拟键盘抬起
await keyboard.up('ControlLeft')  // 模拟键盘抬起

keyboard.type(keyCode)

模拟键盘输入。

js
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
',14),p=[l];function n(r,d,c,y,i,k){return s(),e("div",null,p)}const b=a(t,[["render",n]]);export{u as __pageData,b as default}; +import{_ as a,o as s,c as e,Q as o}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"keyboard","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/keyboard.md","filePath":"guide/instructs/keyboard.md","lastUpdated":1717747502000}'),t={name:"guide/instructs/keyboard.md"},l=o('

keyboard

使用键盘对页面进行操作

keyboard.press(keyCode)

模拟点击键盘。

js
await keyboard.press('KeyA')  // 模拟点击键盘a键
await keyboard.press('KeyA')  // 模拟点击键盘a键

keyboard.down(keyCode)

模拟按下键盘。

js
await keyboard.down('ControlLeft')  // 模拟按下
await keyboard.down('ControlLeft')  // 模拟按下

keyboard.up(keyCode)

模拟抬起键盘。

js
await keyboard.up('ControlLeft')  // 模拟键盘抬起
await keyboard.up('ControlLeft')  // 模拟键盘抬起

keyboard.type(keyCode)

模拟键盘输入。

js
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
',14),p=[l];function n(r,d,c,y,i,k){return s(),e("div",null,p)}const b=a(t,[["render",n]]);export{u as __pageData,b as default}; diff --git a/assets/guide_instructs_keyboard.md.5621942a.lean.js b/assets/guide_instructs_keyboard.md.a1aef5b2.lean.js similarity index 57% rename from assets/guide_instructs_keyboard.md.5621942a.lean.js rename to assets/guide_instructs_keyboard.md.a1aef5b2.lean.js index 6b06170..3655e3c 100644 --- a/assets/guide_instructs_keyboard.md.5621942a.lean.js +++ b/assets/guide_instructs_keyboard.md.a1aef5b2.lean.js @@ -1 +1 @@ -import{_ as a,o as s,c as e,Q as o}from"./chunks/framework.7f46d7d2.js";const u=JSON.parse('{"title":"keyboard","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/keyboard.md","filePath":"guide/instructs/keyboard.md","lastUpdated":1713769091000}'),t={name:"guide/instructs/keyboard.md"},l=o("",14),p=[l];function n(r,d,c,y,i,k){return s(),e("div",null,p)}const b=a(t,[["render",n]]);export{u as __pageData,b as default}; +import{_ as a,o as s,c as e,Q as o}from"./chunks/framework.c0711e93.js";const u=JSON.parse('{"title":"keyboard","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/keyboard.md","filePath":"guide/instructs/keyboard.md","lastUpdated":1717747502000}'),t={name:"guide/instructs/keyboard.md"},l=o("",14),p=[l];function n(r,d,c,y,i,k){return s(),e("div",null,p)}const b=a(t,[["render",n]]);export{u as __pageData,b as default}; diff --git a/assets/guide_instructs_mouse.md.a8ce2226.js b/assets/guide_instructs_mouse.md.6173ddd5.js similarity index 97% rename from assets/guide_instructs_mouse.md.a8ce2226.js rename to assets/guide_instructs_mouse.md.6173ddd5.js index 0b428bf..ec3dcac 100644 --- a/assets/guide_instructs_mouse.md.a8ce2226.js +++ b/assets/guide_instructs_mouse.md.6173ddd5.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"mouse","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/mouse.md","filePath":"guide/instructs/mouse.md","lastUpdated":1713769091000}'),l={name:"guide/instructs/mouse.md"},p=o(`

mouse

使用鼠标对页面进行操作

mouse.down(options:{button?: string;clickCount?: number;})

用于模拟鼠标按下事件,默认值:button = 'left', clickCount = 1。

js
await mouse.down()  // 模拟鼠标按下
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"mouse","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/mouse.md","filePath":"guide/instructs/mouse.md","lastUpdated":1717747502000}'),l={name:"guide/instructs/mouse.md"},p=o(`

mouse

使用鼠标对页面进行操作

mouse.down(options:{button?: string;clickCount?: number;})

用于模拟鼠标按下事件,默认值:button = 'left', clickCount = 1。

js
await mouse.down()  // 模拟鼠标按下
 // 鼠标移动到x,y位置点击右键,需web页面支持鼠标右键操作
 await mouse.move(x,y)
 await mouse.down({button:"right"})
diff --git a/assets/guide_instructs_mouse.md.6173ddd5.lean.js b/assets/guide_instructs_mouse.md.6173ddd5.lean.js
new file mode 100644
index 0000000..9ec6ebe
--- /dev/null
+++ b/assets/guide_instructs_mouse.md.6173ddd5.lean.js
@@ -0,0 +1 @@
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.c0711e93.js";const m=JSON.parse('{"title":"mouse","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/mouse.md","filePath":"guide/instructs/mouse.md","lastUpdated":1717747502000}'),l={name:"guide/instructs/mouse.md"},p=o("",20),e=[p];function t(c,r,i,y,u,E){return a(),n("div",null,e)}const b=s(l,[["render",t]]);export{m as __pageData,b as default};
diff --git a/assets/guide_instructs_mouse.md.a8ce2226.lean.js b/assets/guide_instructs_mouse.md.a8ce2226.lean.js
deleted file mode 100644
index 0747fe8..0000000
--- a/assets/guide_instructs_mouse.md.a8ce2226.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.7f46d7d2.js";const m=JSON.parse('{"title":"mouse","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/mouse.md","filePath":"guide/instructs/mouse.md","lastUpdated":1713769091000}'),l={name:"guide/instructs/mouse.md"},p=o("",20),e=[p];function t(c,r,i,y,u,E){return a(),n("div",null,e)}const b=s(l,[["render",t]]);export{m as __pageData,b as default};
diff --git a/assets/guide_instructs_page.md.234a192e.lean.js b/assets/guide_instructs_page.md.234a192e.lean.js
deleted file mode 100644
index 0214d38..0000000
--- a/assets/guide_instructs_page.md.234a192e.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"page","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/page.md","filePath":"guide/instructs/page.md","lastUpdated":1713769091000}'),o={name:"guide/instructs/page.md"},l=p("",57),e=[l];function t(c,r,i,y,E,d){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{h as __pageData,u as default};
diff --git a/assets/guide_instructs_page.md.234a192e.js b/assets/guide_instructs_page.md.5147f3dc.js
similarity index 99%
rename from assets/guide_instructs_page.md.234a192e.js
rename to assets/guide_instructs_page.md.5147f3dc.js
index 3530ed2..752b3fd 100644
--- a/assets/guide_instructs_page.md.234a192e.js
+++ b/assets/guide_instructs_page.md.5147f3dc.js
@@ -1,4 +1,4 @@
-import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.7f46d7d2.js";const h=JSON.parse('{"title":"page","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/page.md","filePath":"guide/instructs/page.md","lastUpdated":1713769091000}'),o={name:"guide/instructs/page.md"},l=p(`

page

页面类,包含对页面的操作、比如进入、刷新、返回、设置页面模拟等。

page.setViewSize(width,height)

设置页面视图宽高,可用于在运行时动态修改。

js
await page.setViewSize(200,400) // 设置页面视图大小为宽200高400
await page.setViewSize(200,400) // 设置页面视图大小为宽200高400

page.setDevice(name:string)

设置页面设备模拟, 注意需要在页面创建前设置,否则只在之后创建的页面生效.

更多可用设备名称

js
await page.setDevice('iPhone 11') // 模拟iPhone 11 访问
await page.setDevice('iPhone 11') // 模拟iPhone 11 访问

page.create(url:string)

创建新页面打开网页, 传入标准的url格式

js
await page.create('https://www.baidu.com') // 打开百度页面
await page.create('https://www.baidu.com') // 打开百度页面

page.waitPopup()

将页面上下文切换至弹出的新窗口中

js
  await dom.click("#pageOpen") // 该点击操作将启动新窗口
+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"page","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/page.md","filePath":"guide/instructs/page.md","lastUpdated":1717747502000}'),o={name:"guide/instructs/page.md"},l=p(`

page

页面类,包含对页面的操作、比如进入、刷新、返回、设置页面模拟等。

page.setViewSize(width,height)

设置页面视图宽高,可用于在运行时动态修改。

js
await page.setViewSize(200,400) // 设置页面视图大小为宽200高400
await page.setViewSize(200,400) // 设置页面视图大小为宽200高400

page.setDevice(name:string)

设置页面设备模拟, 注意需要在页面创建前设置,否则只在之后创建的页面生效.

更多可用设备名称

js
await page.setDevice('iPhone 11') // 模拟iPhone 11 访问
await page.setDevice('iPhone 11') // 模拟iPhone 11 访问

page.create(url:string)

创建新页面打开网页, 传入标准的url格式

js
await page.create('https://www.baidu.com') // 打开百度页面
await page.create('https://www.baidu.com') // 打开百度页面

page.waitPopup()

将页面上下文切换至弹出的新窗口中

js
  await dom.click("#pageOpen") // 该点击操作将启动新窗口
   await page.waitPopup() // 将上下文切换至最近打开的窗口中
   // 后续操作将在新窗口中进行
   await dom.fill("#id","123")
  await dom.click("#pageOpen") // 该点击操作将启动新窗口
diff --git a/assets/guide_instructs_page.md.5147f3dc.lean.js b/assets/guide_instructs_page.md.5147f3dc.lean.js
new file mode 100644
index 0000000..cfb1796
--- /dev/null
+++ b/assets/guide_instructs_page.md.5147f3dc.lean.js
@@ -0,0 +1 @@
+import{_ as s,o as a,c as n,Q as p}from"./chunks/framework.c0711e93.js";const h=JSON.parse('{"title":"page","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instructs/page.md","filePath":"guide/instructs/page.md","lastUpdated":1717747502000}'),o={name:"guide/instructs/page.md"},l=p("",57),e=[l];function t(c,r,i,y,E,d){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{h as __pageData,u as default};
diff --git a/assets/guide_introduce_download.md.d09d975b.js b/assets/guide_introduce_download.md.2e6aea48.js
similarity index 96%
rename from assets/guide_introduce_download.md.d09d975b.js
rename to assets/guide_introduce_download.md.2e6aea48.js
index 828d9e9..1ddb983 100644
--- a/assets/guide_introduce_download.md.d09d975b.js
+++ b/assets/guide_introduce_download.md.2e6aea48.js
@@ -1 +1 @@
-import{_ as i,o as t,c as d,k as e,t as a,Q as r}from"./chunks/framework.7f46d7d2.js";const T=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.7","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1713769091000}'),l={name:"guide/introduce/download.md"},n=r('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),s=["href"],c=["href"],p=r('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,_,m,b,u,g){return t(),d("div",null,[n,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/yintao-"+o.$frontmatter.version+".dmg"},"YinTao-"+a(o.$frontmatter.version)+" MAC下载",9,s)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/YinTaoSetup-"+o.$frontmatter.version+".exe"},"YinTao-"+a(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const k=i(l,[["render",h]]);export{T as __pageData,k as default}; +import{_ as i,o as t,c as d,k as e,t as a,Q as r}from"./chunks/framework.c0711e93.js";const T=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.7","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1717747502000}'),l={name:"guide/introduce/download.md"},n=r('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),s=["href"],c=["href"],p=r('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,_,m,b,u,g){return t(),d("div",null,[n,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/yintao-"+o.$frontmatter.version+".dmg"},"YinTao-"+a(o.$frontmatter.version)+" MAC下载",9,s)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/YinTaoSetup-"+o.$frontmatter.version+".exe"},"YinTao-"+a(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const k=i(l,[["render",h]]);export{T as __pageData,k as default}; diff --git a/assets/guide_introduce_download.md.d09d975b.lean.js b/assets/guide_introduce_download.md.2e6aea48.lean.js similarity index 90% rename from assets/guide_introduce_download.md.d09d975b.lean.js rename to assets/guide_introduce_download.md.2e6aea48.lean.js index a09223d..74fa011 100644 --- a/assets/guide_introduce_download.md.d09d975b.lean.js +++ b/assets/guide_introduce_download.md.2e6aea48.lean.js @@ -1 +1 @@ -import{_ as i,o as t,c as d,k as e,t as a,Q as r}from"./chunks/framework.7f46d7d2.js";const T=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.7","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1713769091000}'),l={name:"guide/introduce/download.md"},n=r("",4),s=["href"],c=["href"],p=r("",12);function h(o,_,m,b,u,g){return t(),d("div",null,[n,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/yintao-"+o.$frontmatter.version+".dmg"},"YinTao-"+a(o.$frontmatter.version)+" MAC下载",9,s)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/YinTaoSetup-"+o.$frontmatter.version+".exe"},"YinTao-"+a(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const k=i(l,[["render",h]]);export{T as __pageData,k as default}; +import{_ as i,o as t,c as d,k as e,t as a,Q as r}from"./chunks/framework.c0711e93.js";const T=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.7","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1717747502000}'),l={name:"guide/introduce/download.md"},n=r("",4),s=["href"],c=["href"],p=r("",12);function h(o,_,m,b,u,g){return t(),d("div",null,[n,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/yintao-"+o.$frontmatter.version+".dmg"},"YinTao-"+a(o.$frontmatter.version)+" MAC下载",9,s)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/YinTaoSetup-"+o.$frontmatter.version+".exe"},"YinTao-"+a(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const k=i(l,[["render",h]]);export{T as __pageData,k as default}; diff --git a/assets/guide_introduce_history.md.1fb6e66b.js b/assets/guide_introduce_history.md.1fb6e66b.js deleted file mode 100644 index 8c249f5..0000000 --- a/assets/guide_introduce_history.md.1fb6e66b.js +++ /dev/null @@ -1 +0,0 @@ -import{o as n,c as o,k as e,F as i,D as d,a,t,e as l}from"./chunks/framework.7f46d7d2.js";const c=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h=e("h3",null,"v2.0.7",-1),_=e("div",null,[e("span",null,"版本描述:"),a(),e("i",null,"历史问题修复: 修复未使用安装附录浏览器问题!")],-1),u=e("span",null,"win系统:",-1),p=["href"],m=e("span",null,"mac系统:",-1),v=["href"],f={key:0},g=e("span",null,"版本描述:",-1),x=e("span",null,"win系统:",-1),y=["href"],T=e("span",null,"mac系统:",-1),j=["href"],B=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1713769091000}'),k={name:"guide/introduce/history.md"},D=Object.assign(k,{setup(Y){const r=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(N,S)=>(n(),o("div",null,[c,e("div",null,[h,_,u,e("a",{href:"https://storage.jd.com/assert/YinTaoSetup-2.0.7.exe"},"YinTao-2.0.7.exe",8,p),e("div",null,[m,e("a",{href:"https://storage.jd.com/assert/yintao-2.0.7.dmg"},"YinTao-2.0.7.dmg",8,v)])]),(n(),o(i,null,d(r,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),o("div",f,[g,a(),e("i",null,t(s.desc),1)])):l("",!0),x,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,y),e("div",null,[T,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,j)])])),64))]))}});export{B as __pageData,D as default}; diff --git a/assets/guide_introduce_history.md.1fb6e66b.lean.js b/assets/guide_introduce_history.md.1fb6e66b.lean.js deleted file mode 100644 index 8c249f5..0000000 --- a/assets/guide_introduce_history.md.1fb6e66b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{o as n,c as o,k as e,F as i,D as d,a,t,e as l}from"./chunks/framework.7f46d7d2.js";const c=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h=e("h3",null,"v2.0.7",-1),_=e("div",null,[e("span",null,"版本描述:"),a(),e("i",null,"历史问题修复: 修复未使用安装附录浏览器问题!")],-1),u=e("span",null,"win系统:",-1),p=["href"],m=e("span",null,"mac系统:",-1),v=["href"],f={key:0},g=e("span",null,"版本描述:",-1),x=e("span",null,"win系统:",-1),y=["href"],T=e("span",null,"mac系统:",-1),j=["href"],B=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1713769091000}'),k={name:"guide/introduce/history.md"},D=Object.assign(k,{setup(Y){const r=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(N,S)=>(n(),o("div",null,[c,e("div",null,[h,_,u,e("a",{href:"https://storage.jd.com/assert/YinTaoSetup-2.0.7.exe"},"YinTao-2.0.7.exe",8,p),e("div",null,[m,e("a",{href:"https://storage.jd.com/assert/yintao-2.0.7.dmg"},"YinTao-2.0.7.dmg",8,v)])]),(n(),o(i,null,d(r,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),o("div",f,[g,a(),e("i",null,t(s.desc),1)])):l("",!0),x,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,y),e("div",null,[T,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,j)])])),64))]))}});export{B as __pageData,D as default}; diff --git a/assets/guide_introduce_history.md.8c2ed86d.js b/assets/guide_introduce_history.md.8c2ed86d.js new file mode 100644 index 0000000..9b7757f --- /dev/null +++ b/assets/guide_introduce_history.md.8c2ed86d.js @@ -0,0 +1 @@ +import{o as a,c as o,F as r,D as i,Q as d,k as e,t,a as c,e as _}from"./chunks/framework.c0711e93.js";const l=d('

历史版本

v2.0.7

版本描述: 历史问题修复: 修复未使用安装附录浏览器问题!
win系统:YinTao-2.0.7.exe
',2),h={key:0},p=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],m=e("span",null,"mac系统:",-1),g=["href"],N=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1717747502000}'),f={name:"guide/introduce/history.md"},V=Object.assign(f,{setup(T){const n=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(x,y)=>(a(),o("div",null,[l,(a(),o(r,null,i(n,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(a(),o("div",h,[p,c(),e("i",null,t(s.desc),1)])):_("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[m,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,g)])])),64))]))}});export{N as __pageData,V as default}; diff --git a/assets/guide_introduce_history.md.8c2ed86d.lean.js b/assets/guide_introduce_history.md.8c2ed86d.lean.js new file mode 100644 index 0000000..f9ccdbf --- /dev/null +++ b/assets/guide_introduce_history.md.8c2ed86d.lean.js @@ -0,0 +1 @@ +import{o as a,c as o,F as r,D as i,Q as d,k as e,t,a as c,e as _}from"./chunks/framework.c0711e93.js";const l=d("",2),h={key:0},p=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],m=e("span",null,"mac系统:",-1),g=["href"],N=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1717747502000}'),f={name:"guide/introduce/history.md"},V=Object.assign(f,{setup(T){const n=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(x,y)=>(a(),o("div",null,[l,(a(),o(r,null,i(n,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(a(),o("div",h,[p,c(),e("i",null,t(s.desc),1)])):_("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[m,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,g)])])),64))]))}});export{N as __pageData,V as default}; diff --git a/assets/guide_introduce_introduce.md.15d9a259.js b/assets/guide_introduce_introduce.md.07722395.js similarity index 92% rename from assets/guide_introduce_introduce.md.15d9a259.js rename to assets/guide_introduce_introduce.md.07722395.js index 050a475..b2aa68d 100644 --- a/assets/guide_introduce_introduce.md.15d9a259.js +++ b/assets/guide_introduce_introduce.md.07722395.js @@ -1 +1 @@ -import{_ as e,o as a,c as r,Q as o}from"./chunks/framework.7f46d7d2.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1713769091000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const m=e(t,[["render",d]]);export{f as __pageData,m as default}; +import{_ as e,o as a,c as r,Q as o}from"./chunks/framework.c0711e93.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1717747502000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const m=e(t,[["render",d]]);export{f as __pageData,m as default}; diff --git a/assets/guide_introduce_introduce.md.15d9a259.lean.js b/assets/guide_introduce_introduce.md.07722395.lean.js similarity index 57% rename from assets/guide_introduce_introduce.md.15d9a259.lean.js rename to assets/guide_introduce_introduce.md.07722395.lean.js index a27960f..5d186dd 100644 --- a/assets/guide_introduce_introduce.md.15d9a259.lean.js +++ b/assets/guide_introduce_introduce.md.07722395.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as r,Q as o}from"./chunks/framework.7f46d7d2.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1713769091000}'),t={name:"guide/introduce/introduce.md"},i=o("",11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const m=e(t,[["render",d]]);export{f as __pageData,m as default}; +import{_ as e,o as a,c as r,Q as o}from"./chunks/framework.c0711e93.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1717747502000}'),t={name:"guide/introduce/introduce.md"},i=o("",11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const m=e(t,[["render",d]]);export{f as __pageData,m as default}; diff --git a/assets/index.md.876e0131.js b/assets/index.md.35a4554e.js similarity index 92% rename from assets/index.md.876e0131.js rename to assets/index.md.35a4554e.js index a061460..3aa3816 100644 --- a/assets/index.md.876e0131.js +++ b/assets/index.md.35a4554e.js @@ -1 +1 @@ -import{_ as e,o as a,c as r,Q as t}from"./chunks/framework.7f46d7d2.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1713769091000}'),o={name:"index.md"},i=t('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function l(d,c,h,s,p,_){return a(),r("div",null,n)}const m=e(o,[["render",l]]);export{f as __pageData,m as default}; +import{_ as e,o as a,c as r,Q as t}from"./chunks/framework.c0711e93.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1717747502000}'),o={name:"index.md"},i=t('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function l(d,c,h,s,p,_){return a(),r("div",null,n)}const m=e(o,[["render",l]]);export{f as __pageData,m as default}; diff --git a/assets/index.md.876e0131.lean.js b/assets/index.md.35a4554e.lean.js similarity index 50% rename from assets/index.md.876e0131.lean.js rename to assets/index.md.35a4554e.lean.js index cdd1d36..4ca6992 100644 --- a/assets/index.md.876e0131.lean.js +++ b/assets/index.md.35a4554e.lean.js @@ -1 +1 @@ -import{_ as e,o as a,c as r,Q as t}from"./chunks/framework.7f46d7d2.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1713769091000}'),o={name:"index.md"},i=t("",11),n=[i];function l(d,c,h,s,p,_){return a(),r("div",null,n)}const m=e(o,[["render",l]]);export{f as __pageData,m as default}; +import{_ as e,o as a,c as r,Q as t}from"./chunks/framework.c0711e93.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1717747502000}'),o={name:"index.md"},i=t("",11),n=[i];function l(d,c,h,s,p,_){return a(),r("div",null,n)}const m=e(o,[["render",l]]);export{f as __pageData,m as default}; diff --git a/guide/api/api.html b/guide/api/api.html index f31387c..fd0a444 100644 --- a/guide/api/api.html +++ b/guide/api/api.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

OPEN-API

描述

为满足各个平台用户,以及三方用户的使用需求。chery提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持http,websocket两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。

- +
Skip to content

OPEN-API

描述

为满足各个平台用户,以及三方用户的使用需求。chery提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持http,websocket两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。

+ \ No newline at end of file diff --git a/guide/api/func.html b/guide/api/func.html index db82230..1368919 100644 --- a/guide/api/func.html +++ b/guide/api/func.html @@ -7,18 +7,18 @@ - + - - - + + + - - + + \ No newline at end of file diff --git a/guide/api/httpApi.html b/guide/api/httpApi.html index 2e6f88e..0e94420 100644 --- a/guide/api/httpApi.html +++ b/guide/api/httpApi.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -99,8 +99,8 @@ "ok":1 }
{
   "ok":1
-}
- +}
+ \ No newline at end of file diff --git a/guide/api/instruct.html b/guide/api/instruct.html index e84adbc..b0fa666 100644 --- a/guide/api/instruct.html +++ b/guide/api/instruct.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

- +
Skip to content

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

+ \ No newline at end of file diff --git a/guide/api/pasteConfig.html b/guide/api/pasteConfig.html index 45400c2..db0c5a4 100644 --- a/guide/api/pasteConfig.html +++ b/guide/api/pasteConfig.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -53,8 +53,8 @@ "compatibility":true }
{
     "compatibility":true
-}

全部参数,参考open-Api

- +}

全部参数,参考open-Api

+ \ No newline at end of file diff --git a/guide/api/wsApi.html b/guide/api/wsApi.html index c95289a..c5ccb40 100644 --- a/guide/api/wsApi.html +++ b/guide/api/wsApi.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -86,8 +86,8 @@ "api": "exit", }
{
   "api": "exit",
-}
- +} + \ No newline at end of file diff --git a/guide/course/step.html b/guide/course/step.html index f17ae07..ebc68b1 100644 --- a/guide/course/step.html +++ b/guide/course/step.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

- +
Skip to content

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

+ \ No newline at end of file diff --git a/guide/course/trace.html b/guide/course/trace.html index a2c5c01..5d586bb 100644 --- a/guide/course/trace.html +++ b/guide/course/trace.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -69,8 +69,8 @@ https://trace.playwright.dev/?trace=https://storage.jd.com/assert/nihao2.zip
https://trace.playwright.dev/?trace=http_url // 的方式进行
 
 // 例如:
-https://trace.playwright.dev/?trace=https://storage.jd.com/assert/nihao2.zip

点击此处在线查看跟踪效果

相关文档及资料参考

playwright-trace, chromium-trace

- +https://trace.playwright.dev/?trace=https://storage.jd.com/assert/nihao2.zip

点击此处在线查看跟踪效果

相关文档及资料参考

playwright-trace, chromium-trace

+ \ No newline at end of file diff --git a/guide/course/use.html b/guide/course/use.html index 1125507..cb56f88 100644 --- a/guide/course/use.html +++ b/guide/course/use.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -27,8 +27,8 @@ "storage": { "id":123 } -}
  • postman完整录制请求截图如下

- 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\nawait page.change(0)\nawait dom.click(`#kw`)\nawait dom.set(`京东`,`#kw`)\nawait keyboard.press(`Enter`)\nawait dom.click(`(//*[string()='京东JD.COM官网 多快好省 只为品质生活'])[1]`)\nawait page.change(1)\n", "storage": "123", } ``` - postman完整回放脚本截图如下

- 点击上图的Send按钮,自动打开浏览器回放脚本。

使用过程中如果你有任何的意见或者问题,欢迎反馈。

- +}
  • postman完整录制请求截图如下

- 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\nawait page.change(0)\nawait dom.click(`#kw`)\nawait dom.set(`京东`,`#kw`)\nawait keyboard.press(`Enter`)\nawait dom.click(`(//*[string()='京东JD.COM官网 多快好省 只为品质生活'])[1]`)\nawait page.change(1)\n", "storage": "123", } ``` - postman完整回放脚本截图如下

- 点击上图的Send按钮,自动打开浏览器回放脚本。

使用过程中如果你有任何的意见或者问题,欢迎反馈。

+ \ No newline at end of file diff --git a/guide/data/cookie.html b/guide/data/cookie.html index fc28cc3..6ec2ff9 100644 --- a/guide/data/cookie.html +++ b/guide/data/cookie.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content
- +
Skip to content
+ \ No newline at end of file diff --git a/guide/data/errorCode.html b/guide/data/errorCode.html index fcc1072..73452a7 100644 --- a/guide/data/errorCode.html +++ b/guide/data/errorCode.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
- +
Skip to content

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
+ \ No newline at end of file diff --git a/guide/data/keyCode.html b/guide/data/keyCode.html index 0162525..a863c12 100644 --- a/guide/data/keyCode.html +++ b/guide/data/keyCode.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -77,8 +77,8 @@ | 'A'| 'B'| 'C'| 'D'| 'E'| 'F'| 'G'| 'H'| 'I'| 'J'| 'K'| 'L'| 'M'| 'N'| 'O'| 'P'| 'Q'   | 'R'| 'S'| 'T'| 'U'| 'V'| 'W'| 'X'| 'Y'| 'Z' | ':'| '<'| '_'| '>'| '?'| '~'| '{'| '|'| '}'| '"' -  | 'SoftLeft'| 'SoftRight'| 'Camera'| 'Call'| 'EndCall'| 'VolumeDown'| 'VolumeUp' - +  | 'SoftLeft'| 'SoftRight'| 'Camera'| 'Call'| 'EndCall'| 'VolumeDown'| 'VolumeUp' + \ No newline at end of file diff --git a/guide/ex/ex1.html b/guide/ex/ex1.html index 32bdeae..3bbeaf1 100644 --- a/guide/ex/ex1.html +++ b/guide/ex/ex1.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
- +
Skip to content

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
+ \ No newline at end of file diff --git a/guide/ex/ex2.html b/guide/ex/ex2.html index 2830e0d..6396af9 100644 --- a/guide/ex/ex2.html +++ b/guide/ex/ex2.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

- +
Skip to content

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

+ \ No newline at end of file diff --git a/guide/exam/apiHook.html b/guide/exam/apiHook.html index 190bf34..4cf412e 100644 --- a/guide/exam/apiHook.html +++ b/guide/exam/apiHook.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -59,8 +59,8 @@ const res = await axios.get('http://YinTao.jd.com/ping') console.log('res',res.data) // 获取data数据 -await sleep(2000) - +await sleep(2000) + \ No newline at end of file diff --git a/guide/exam/baseOpt.html b/guide/exam/baseOpt.html index 70af5f6..3f4444d 100644 --- a/guide/exam/baseOpt.html +++ b/guide/exam/baseOpt.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -21,7 +21,7 @@ await page.create(homePage) // 使用变量打开页面 await sleep(1000) // 固定等待 await page.to(`https://baidu.com`) // 切换页面 -await assert.custom("#su","inputValue","百度一下",0) // 页面元素断言 +await assert.custom("#su","innerText","百度一下",0) // 页面元素断言 await assert.location("https://www.baidu.com/") // 页面地址断言 await assert.title("百度一下,你就知道") // 页面title 断言 // 执行hover @@ -52,7 +52,7 @@ await page.create(homePage) // 使用变量打开页面 await sleep(1000) // 固定等待 await page.to(`https://baidu.com`) // 切换页面 -await assert.custom("#su","inputValue","百度一下",0) // 页面元素断言 +await assert.custom("#su","innerText","百度一下",0) // 页面元素断言 await assert.location("https://www.baidu.com/") // 页面地址断言 await assert.title("百度一下,你就知道") // 页面title 断言 // 执行hover @@ -79,8 +79,8 @@ // 截图上传 await dom.upload(`#app > div.main-cnt > div > div.el-scrollbar__wrap > div > div > div.page-component__content > section > div:nth-child(4) > div.source > div > div > div.el-upload.el-upload--text > input`,`C:\\Users\\zhouyuan11\\AppData\\Local\\Programs\\cherry_driver\\cherry_tray@2x.png`) -await sleep(1000) - +await sleep(1000) + \ No newline at end of file diff --git a/guide/exam/mobile.html b/guide/exam/mobile.html index f37e570..4d7c68e 100644 --- a/guide/exam/mobile.html +++ b/guide/exam/mobile.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -33,8 +33,8 @@ await sleep(2000) // 在模拟移动端点击时可能出现dom.click 点击无效情况,可使用dom.dispatchEvent代替点击 -await dom.dispatchEvent('#index-bn','click') - +await dom.dispatchEvent('#index-bn','click') + \ No newline at end of file diff --git a/guide/exam/modifyDate.html b/guide/exam/modifyDate.html index c120df9..8a98892 100644 --- a/guide/exam/modifyDate.html +++ b/guide/exam/modifyDate.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -41,8 +41,8 @@ await dom.fill('//*[@id=\"app\"]/div[2]/div[1]/div[1]/div[1]/div[1]/div[2]/section[1]/div[1]/div[1]/div[1]/div[1]/div[1]/input[1]',nowDay) await sleep(1000) await keyboard.press(`Enter`) - await sleep(1000)

show

- + await sleep(1000)

show

+ \ No newline at end of file diff --git a/guide/exam/select.html b/guide/exam/select.html index 54cd378..749a865 100644 --- a/guide/exam/select.html +++ b/guide/exam/select.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -59,8 +59,8 @@ // document.getElementsByTagName 通过标签名获取元素 // document.getElementsByClassName 通过元素属性获取 // document.querySelector(); 通过selector 选择器获取元素 -// document.getElementsByName 通过元素名称获取

想了解全部的原生定位方式可以通过查看mdn document 来学习

- +// document.getElementsByName 通过元素名称获取

想了解全部的原生定位方式可以通过查看mdn document 来学习

+ \ No newline at end of file diff --git a/guide/instructs/assert.html b/guide/instructs/assert.html index 04956c4..fb63b7b 100644 --- a/guide/instructs/assert.html +++ b/guide/instructs/assert.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -23,8 +23,8 @@ await assert.all(false, "断言内容为false,请检查相关代码逻辑") // 当断言失败时会显示,提示文字
await assert.true('存在') // 
 await assert.all(false, "断言内容为false,请检查相关代码逻辑") // 当断言失败时会显示,提示文字

assert.custom(sign,attr,preValue,operate)

断言,获取元素的预期值与实际值进行比较。

sign:元素标记,支持传递元素的css选择器xpathid

attr:断言的元素的属性值;

preValue: 断言元素属性的预期值;

opreate: 比较方式:0-相等1-不相等2-包含3-不包含

js
await assert.custom('#su','value','百度一下',0) //判断su的value是否等于百度一下
 await assert.custom('.title','innerText','hello',0) // 获取class=tiile的文本内容进行断言
await assert.custom('#su','value','百度一下',0) //判断su的value是否等于百度一下
-await assert.custom('.title','innerText','hello',0) // 获取class=tiile的文本内容进行断言

assert.title(string)

断言,指定dom的title与入参进行比较。

js
await assert.title('百度一下,你就知道') //判断当前页面的title值是不是‘百度一下,你就知道’
await assert.title('百度一下,你就知道') //判断当前页面的title值是不是‘百度一下,你就知道’

assert.location(url)

断言,指定dom的url与文本进行比较。

js
await assert.location('https://www.baidu.com/') //判断当前页面的url值与传参是否一致
await assert.location('https://www.baidu.com/') //判断当前页面的url值与传参是否一致
- +await assert.custom('.title','innerText','hello',0) // 获取class=tiile的文本内容进行断言

assert.title(string)

断言,指定dom的title与入参进行比较。

js
await assert.title('百度一下,你就知道') //判断当前页面的title值是不是‘百度一下,你就知道’
await assert.title('百度一下,你就知道') //判断当前页面的title值是不是‘百度一下,你就知道’

assert.location(url)

断言,指定dom的url与文本进行比较。

js
await assert.location('https://www.baidu.com/') //判断当前页面的url值与传参是否一致
await assert.location('https://www.baidu.com/') //判断当前页面的url值与传参是否一致
+ \ No newline at end of file diff --git a/guide/instructs/browser.html b/guide/instructs/browser.html index 18f2638..13366ac 100644 --- a/guide/instructs/browser.html +++ b/guide/instructs/browser.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -31,8 +31,8 @@ await browser.route('**/*.{png}',(route)=>{ console.log('route',route) route.continue({url:'http://storage.360buyimg.com/assert/icon.png'}); -}) - +}) + \ No newline at end of file diff --git a/guide/instructs/cookies.html b/guide/instructs/cookies.html index 8ce78e2..22cbcc2 100644 --- a/guide/instructs/cookies.html +++ b/guide/instructs/cookies.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -27,8 +27,8 @@ "name": "sso.jd.com", "path": "/", "value": "jZ0bGJpeXR3Z1FCeWRPclJ1LTRtOUI2YWR6fkpXfmxKSDU1Sk5LS3htS3dDS3RoRUFBQUFBJ", -}])

cookies.clear

清空浏览器cookie

js
await cookies.clear()
await cookies.clear()
- +}])

cookies.clear

清空浏览器cookie

js
await cookies.clear()
await cookies.clear()
+ \ No newline at end of file diff --git a/guide/instructs/dom.html b/guide/instructs/dom.html index 1ec8cb1..cd03c5e 100644 --- a/guide/instructs/dom.html +++ b/guide/instructs/dom.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -44,8 +44,8 @@ strict?: boolean | undefined timeout?: number | undefined trial?: boolean | undefined -

})

鼠标悬浮操作, 其中参数sign支持传递元素的css选择器xpathid

js
  await dom.tap('#id') # 用于在h5中模拟按压
  await dom.tap('#id') # 用于在h5中模拟按压
- +

})

鼠标悬浮操作, 其中参数sign支持传递元素的css选择器xpathid

js
  await dom.tap('#id') # 用于在h5中模拟按压
  await dom.tap('#id') # 用于在h5中模拟按压
+ \ No newline at end of file diff --git a/guide/instructs/global.html b/guide/instructs/global.html index 4905327..af736d8 100644 --- a/guide/instructs/global.html +++ b/guide/instructs/global.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -35,8 +35,8 @@ }catch(e){ errorSend("错误未找到点击id") } -console.log("继续往下执行") - +console.log("继续往下执行") + \ No newline at end of file diff --git a/guide/instructs/img.html b/guide/instructs/img.html index dd68513..f0ef13a 100644 --- a/guide/instructs/img.html +++ b/guide/instructs/img.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -19,8 +19,8 @@
Skip to content

img

通过图像进行操作

img.click(imgPath)

通过图像进行点击, 会点击当前页面匹配的图像中心区域。基于sift实现

js
await img.click("https://storage.360buyimg.com/assert/baidu_btn.jpg") // 使用远程图片操作点击
 await img.click("/use/app/baidu_btn.jpg") // 使用本地图像点击
await img.click("https://storage.360buyimg.com/assert/baidu_btn.jpg") // 使用远程图片操作点击
-await img.click("/use/app/baidu_btn.jpg") // 使用本地图像点击
- +await img.click("/use/app/baidu_btn.jpg") // 使用本地图像点击 + \ No newline at end of file diff --git a/guide/instructs/keyboard.html b/guide/instructs/keyboard.html index b3c10e3..58dc0a4 100644 --- a/guide/instructs/keyboard.html +++ b/guide/instructs/keyboard.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

keyboard

使用键盘对页面进行操作

keyboard.press(keyCode)

模拟点击键盘。

js
await keyboard.press('KeyA')  // 模拟点击键盘a键
await keyboard.press('KeyA')  // 模拟点击键盘a键

keyboard.down(keyCode)

模拟按下键盘。

js
await keyboard.down('ControlLeft')  // 模拟按下
await keyboard.down('ControlLeft')  // 模拟按下

keyboard.up(keyCode)

模拟抬起键盘。

js
await keyboard.up('ControlLeft')  // 模拟键盘抬起
await keyboard.up('ControlLeft')  // 模拟键盘抬起

keyboard.type(keyCode)

模拟键盘输入。

js
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
- +
Skip to content

keyboard

使用键盘对页面进行操作

keyboard.press(keyCode)

模拟点击键盘。

js
await keyboard.press('KeyA')  // 模拟点击键盘a键
await keyboard.press('KeyA')  // 模拟点击键盘a键

keyboard.down(keyCode)

模拟按下键盘。

js
await keyboard.down('ControlLeft')  // 模拟按下
await keyboard.down('ControlLeft')  // 模拟按下

keyboard.up(keyCode)

模拟抬起键盘。

js
await keyboard.up('ControlLeft')  // 模拟键盘抬起
await keyboard.up('ControlLeft')  // 模拟键盘抬起

keyboard.type(keyCode)

模拟键盘输入。

js
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
await keyboard.type('hello word')  // 模拟输入,等同于使用 await set()
+ \ No newline at end of file diff --git a/guide/instructs/mouse.html b/guide/instructs/mouse.html index 83a5f28..27d82fc 100644 --- a/guide/instructs/mouse.html +++ b/guide/instructs/mouse.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -33,8 +33,8 @@ // todo在无法得知坐标的情况下,可以通过在控制台输入: document.onmousemove = (e)=>{console.log("x:",e.x,"y:",e.y)} -// 即可实时打印坐标位置

mouse.up(options:{button?: string;clickCount?: number;})

用于模拟鼠标抬起事件, 默认值:button = 'left', clickCount = 1。

js
await mouse.up()  // 模拟鼠标抬起
await mouse.up()  // 模拟鼠标抬起

mouse.click(x:number,y:number,options:{delay?: number;})

用于模拟鼠标点击事件,

js
await mouse.click(100,100)  // 模拟点击100,100位置
await mouse.click(100,100)  // 模拟点击100,100位置

mouse.move(options:{button?: string;clickCount?: number;})

用于模拟鼠标移动事件。

js
await mouse.move(100,100)  // 模拟鼠标移动至像素100,100位置
await mouse.move(100,100)  // 模拟鼠标移动至像素100,100位置

mouse.wheel(x, y)

用于模拟鼠标滚轮事件。

js
await mouse.wheel(0,300)  // 滚轮向下滚动300
await mouse.wheel(0,300)  // 滚轮向下滚动300
- +// 即可实时打印坐标位置

mouse.up(options:{button?: string;clickCount?: number;})

用于模拟鼠标抬起事件, 默认值:button = 'left', clickCount = 1。

js
await mouse.up()  // 模拟鼠标抬起
await mouse.up()  // 模拟鼠标抬起

mouse.click(x:number,y:number,options:{delay?: number;})

用于模拟鼠标点击事件,

js
await mouse.click(100,100)  // 模拟点击100,100位置
await mouse.click(100,100)  // 模拟点击100,100位置

mouse.move(options:{button?: string;clickCount?: number;})

用于模拟鼠标移动事件。

js
await mouse.move(100,100)  // 模拟鼠标移动至像素100,100位置
await mouse.move(100,100)  // 模拟鼠标移动至像素100,100位置

mouse.wheel(x, y)

用于模拟鼠标滚轮事件。

js
await mouse.wheel(0,300)  // 滚轮向下滚动300
await mouse.wheel(0,300)  // 滚轮向下滚动300
+ \ No newline at end of file diff --git a/guide/instructs/page.html b/guide/instructs/page.html index 511f23b..cc91d0e 100644 --- a/guide/instructs/page.html +++ b/guide/instructs/page.html @@ -7,11 +7,11 @@ - + - - - + + + @@ -79,8 +79,8 @@ const path = require('path') const os = require('os') const imgPath = path.resolve(os.tmpdir(),'nihao.jpg') // 获取跨平台的临时目录 -await page.screenshot(imgPath) - +await page.screenshot(imgPath) + \ No newline at end of file diff --git a/guide/introduce/download.html b/guide/introduce/download.html index a2b95fc..e38bc73 100644 --- a/guide/introduce/download.html +++ b/guide/introduce/download.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

YinTao-2.0.7 MAC下载

YinTao-2.0.7 WINDOW下载

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
- +
Skip to content

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

YinTao-2.0.7 MAC下载

YinTao-2.0.7 WINDOW下载

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
+ \ No newline at end of file diff --git a/guide/introduce/history.html b/guide/introduce/history.html index 338d2b2..a0d67fe 100644 --- a/guide/introduce/history.html +++ b/guide/introduce/history.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

历史版本

v2.0.7

版本描述: 历史问题修复: 修复未使用安装附录浏览器问题!
win系统:YinTao-2.0.7.exe

v2.0.4

win系统:YinTao-2.0.4.exe

v2.0.2

win系统:YinTao-2.0.2.exe

v2.0.0

win系统:YinTao-2.0.0.exe

v1.1.7

版本描述: deepTest录制推荐版本
win系统:YinTao-1.1.7.exe
- +
Skip to content

历史版本

v2.0.7

版本描述: 历史问题修复: 修复未使用安装附录浏览器问题!
win系统:YinTao-2.0.7.exe

v2.0.4

win系统:YinTao-2.0.4.exe

v2.0.2

win系统:YinTao-2.0.2.exe

v2.0.0

win系统:YinTao-2.0.0.exe

v1.1.7

版本描述: deepTest录制推荐版本
win系统:YinTao-1.1.7.exe
+ \ No newline at end of file diff --git a/guide/introduce/introduce.html b/guide/introduce/introduce.html index 3685e94..9ba29df 100644 --- a/guide/introduce/introduce.html +++ b/guide/introduce/introduce.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

- +
Skip to content

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index a2daa98..f083870 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_course_step.md":"ce73e212","guide_ex_ex1.md":"ab70c4c8","guide_course_use.md":"7cd960c7","guide_data_errorcode.md":"a4910578","guide_introduce_download.md":"d09d975b","guide_instructs_cookies.md":"097faba6","guide_ex_ex2.md":"85d52ba5","guide_api_httpapi.md":"62bb0a69","guide_introduce_history.md":"1fb6e66b","guide_exam_mobile.md":"9961d042","guide_introduce_introduce.md":"15d9a259","guide_instructs_browser.md":"868e2f77","guide_instructs_keyboard.md":"5621942a","guide_data_cookie.md":"4fee46d7","guide_instructs_mouse.md":"a8ce2226","guide_course_trace.md":"a45f8149","guide_exam_select.md":"d45648c8","guide_exam_modifydate.md":"5de19980","guide_instructs_global.md":"7147053b","guide_api_func.md":"77ea9e58","guide_exam_apihook.md":"7d2f176a","index.md":"876e0131","guide_api_pasteconfig.md":"d62e103b","guide_api_instruct.md":"efccfedf","readme.md":"3310442b","guide_api_api.md":"1cca9e0c","guide_api_wsapi.md":"563a4716","guide_instructs_assert.md":"cd445f11","guide_exam_baseopt.md":"b2e3a0c6","guide_instructs_img.md":"bbe5763f","guide_instructs_page.md":"234a192e","guide_data_keycode.md":"45a95f5b","guide_instructs_dom.md":"9936b571"} +{"guide_api_api.md":"a5803d1a","guide_exam_mobile.md":"7ea8b1eb","guide_api_pasteconfig.md":"63933be4","guide_api_func.md":"772a14b8","guide_api_instruct.md":"ed48a7ac","readme.md":"48bdfa41","guide_course_step.md":"7f6fe6f3","guide_api_wsapi.md":"2b6d9466","guide_course_use.md":"30040698","guide_data_cookie.md":"40a650e1","guide_data_errorcode.md":"057b0d7f","guide_api_httpapi.md":"3f055102","guide_data_keycode.md":"4aa7360f","guide_ex_ex2.md":"9b4be7e7","guide_instructs_mouse.md":"6173ddd5","guide_introduce_introduce.md":"07722395","guide_instructs_cookies.md":"5d039a45","index.md":"35a4554e","guide_instructs_dom.md":"98ac1260","guide_instructs_global.md":"2e540510","guide_instructs_keyboard.md":"a1aef5b2","guide_instructs_page.md":"5147f3dc","guide_introduce_download.md":"2e6aea48","guide_exam_apihook.md":"def585a9","guide_ex_ex1.md":"f6cd2e00","guide_instructs_assert.md":"4d56cdc5","guide_exam_baseopt.md":"6d0d9d7c","guide_instructs_browser.md":"54f2a188","guide_instructs_img.md":"6ab19bdb","guide_introduce_history.md":"8c2ed86d","guide_exam_select.md":"5a8910e6","guide_course_trace.md":"ee1fa429","guide_exam_modifydate.md":"3932231b"} diff --git a/index.html b/index.html index 4690f10..1d4ecde 100644 --- a/index.html +++ b/index.html @@ -7,18 +7,18 @@ - + - - - + + + -
Skip to content

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

- +
Skip to content

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

+ \ No newline at end of file