diff --git a/404.html b/404.html index 216ce4a..14ba956 100644 --- a/404.html +++ b/404.html @@ -5,16 +5,19 @@ 404 | Vue-H5-Template - - - - - + + + + + + + + + -
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.

Released under the MIT License.

- +
+ \ No newline at end of file diff --git a/assets/app.88821414.js b/assets/app.88821414.js deleted file mode 100644 index 69c7a8e..0000000 --- a/assets/app.88821414.js +++ /dev/null @@ -1 +0,0 @@ -import{M as s,a4 as p,a5 as i,a6 as u,a7 as c,a8 as l,a9 as d,aa as f,ab as m,ac as h,ad as A,J as g,d as P,u as v,p as y,k as C,ae as w,af as _,ag as b,ah as E}from"./chunks/framework.6241eaf2.js";import{t as R}from"./chunks/theme.c4d303ac.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(R),D=P({name:"VitePressApp",setup(){const{site:e}=v();return y(()=>{C(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),w(),_(),b(),n.setup&&n.setup(),()=>E(n.Layout)}});async function O(){const e=T(),a=S();a.provide(i,e);const t=u(e.route);return a.provide(c,t),a.component("Content",l),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:f}),{app:a,router:e,data:t}}function S(){return m(D)}function T(){let e=s,a;return h(t=>{let o=A(t);return e&&(a=o),(e||a===o)&&(o=o.replace(/\.js$/,".lean.js")),s&&(e=!1),g(()=>import(o),[])},n.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{O as createApp}; diff --git a/assets/app.D4E_7pcT.js b/assets/app.D4E_7pcT.js new file mode 100644 index 0000000..0bd8c75 --- /dev/null +++ b/assets/app.D4E_7pcT.js @@ -0,0 +1 @@ +import{t as p}from"./chunks/theme.BGZVS_Sn.js";import{U as s,a5 as i,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,d as y,u as v,y as C,x as P,af as b,ag as w,ah as E,ai as R}from"./chunks/framework.DNhrqZu5.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=y({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),E(),n.setup&&n.setup(),()=>R(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=x();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function x(){return A(S)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/assets/chunks/VPAlgoliaSearchBox.57AC7P3e.js b/assets/chunks/VPAlgoliaSearchBox.57AC7P3e.js new file mode 100644 index 0000000..3394ea1 --- /dev/null +++ b/assets/chunks/VPAlgoliaSearchBox.57AC7P3e.js @@ -0,0 +1,12 @@ +import{d as pi,ak as vi,L as hi,y as di,v as yi,R as _i,c as gi,o as bi}from"./framework.DNhrqZu5.js";import{u as Si}from"./theme.BGZVS_Sn.js";/*! @docsearch/js 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function Hr(){return Hr=Object.assign?Object.assign.bind():function(e){for(var t=1;t2&&(a.children=arguments.length>3?Wt.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(i in e.defaultProps)a[i]===void 0&&(a[i]=e.defaultProps[i]);return Et(e,a,n,o,null)}function Et(e,t,r,n,o){var i={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o??++So,__i:-1,__u:0};return o==null&&H.vnode!=null&&H.vnode(i),i}function Re(e){return e.children}function Ce(e,t){this.props=e,this.context=t}function ct(e,t){if(t==null)return e.__?ct(e.__,e.__i+1):null;for(var r;tt&&Ge.sort(Ur));dr.__r=0}function Io(e,t,r,n,o,i,a,c,f,m,b){var l,v,s,S,g,y=n&&n.__k||Eo,_=t.length;for(r.__d=f,function(h,p,d){var P,E,C,N,I,x=p.length,k=d.length,U=k,z=0;for(h.__k=[],P=0;P0?Et(E.type,E.props,E.key,E.ref?E.ref:null,E.__v):E).__=h,E.__b=h.__b+1,C=null,(I=E.__i=wi(E,d,N,U))!==-1&&(U--,(C=d[I])&&(C.__u|=131072)),C==null||C.__v===null?(I==-1&&z--,typeof E.type!="function"&&(E.__u|=65536)):I!==N&&(I==N-1?z--:I==N+1?z++:(I>N?z--:z++,E.__u|=65536))):E=h.__k[P]=null;if(U)for(P=0;P(f==null||131072&f.__u?0:1))for(;a>=0||c=0){if((f=t[a])&&!(131072&f.__u)&&o==f.key&&i===f.type)return a;a--}if(c2&&(c.children=arguments.length>3?Wt.call(arguments,2):r),Et(e.type,c,n||e.key,o||e.ref,null)}Wt=Eo.slice,H={__e:function(e,t,r,n){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),a=o.__d),a)return o.__E=o}catch(c){e=c}throw e}},So=0,Ce.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Te({},this.state),typeof e=="function"&&(e=e(Te({},r),this.props)),e&&Te(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Vr(this))},Ce.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Vr(this))},Ce.prototype.render=Re,Ge=[],Oo=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ur=function(e,t){return e.__v.__b-t.__v.__b},dr.__r=0,en=0,Fr=bn(!1),Br=bn(!0),wo=0;var Be,Z,Dr,Sn,lt=0,Ao=[],Y=H,On=Y.__b,wn=Y.__r,En=Y.diffed,jn=Y.__c,Pn=Y.unmount,In=Y.__;function st(e,t){Y.__h&&Y.__h(Z,e,lt||t),lt=0;var r=Z.__H||(Z.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function zt(e){return lt=1,nn(Ho,e)}function nn(e,t,r){var n=st(Be++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):Ho(void 0,t),function(c){var f=n.__N?n.__N[0]:n.__[0],m=n.t(f,c);f!==m&&(n.__N=[m,n.__[1]],n.__c.setState({}))}],n.__c=Z,!Z.u)){var o=function(c,f,m){if(!n.__c.__H)return!0;var b=n.__c.__H.__.filter(function(v){return!!v.__c});if(b.every(function(v){return!v.__N}))return!i||i.call(this,c,f,m);var l=!1;return b.forEach(function(v){if(v.__N){var s=v.__[0];v.__=v.__N,v.__N=void 0,s!==v.__[0]&&(l=!0)}}),!(!l&&n.__c.props===c)&&(!i||i.call(this,c,f,m))};Z.u=!0;var i=Z.shouldComponentUpdate,a=Z.componentWillUpdate;Z.componentWillUpdate=function(c,f,m){if(this.__e){var b=i;i=void 0,o(c,f,m),i=b}a&&a.call(this,c,f,m)},Z.shouldComponentUpdate=o}return n.__N||n.__}function Jt(e,t){var r=st(Be++,3);!Y.__s&&on(r.__H,t)&&(r.__=e,r.i=t,Z.__H.__h.push(r))}function Qt(e,t){var r=st(Be++,4);!Y.__s&&on(r.__H,t)&&(r.__=e,r.i=t,Z.__h.push(r))}function No(e){return lt=5,_r(function(){return{current:e}},[])}function To(e,t,r){lt=6,Qt(function(){return typeof e=="function"?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},r==null?r:r.concat(e))}function _r(e,t){var r=st(Be++,7);return on(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function Ro(e,t){return lt=8,_r(function(){return e},t)}function Lo(e){var t=Z.context[e.__c],r=st(Be++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(Z)),t.props.value):e.__}function qo(e,t){Y.useDebugValue&&Y.useDebugValue(t?t(e):e)}function Mo(){var e=st(Be++,11);if(!e.__){for(var t=Z.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var r=t.__m||(t.__m=[0,0]);e.__="P"+r[0]+"-"+r[1]++}return e.__}function Ii(){for(var e;e=Ao.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(mr),e.__H.__h.forEach(Kr),e.__H.__h=[]}catch(t){e.__H.__h=[],Y.__e(t,e.__v)}}Y.__b=function(e){Z=null,On&&On(e)},Y.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),In&&In(e,t)},Y.__r=function(e){wn&&wn(e),Be=0;var t=(Z=e.__c).__H;t&&(Dr===Z?(t.__h=[],Z.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.i=r.__N=void 0})):(t.__h.forEach(mr),t.__h.forEach(Kr),t.__h=[],Be=0)),Dr=Z},Y.diffed=function(e){En&&En(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Ao.push(t)!==1&&Sn===Y.requestAnimationFrame||((Sn=Y.requestAnimationFrame)||ki)(Ii)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.i=void 0})),Dr=Z=null},Y.__c=function(e,t){t.some(function(r){try{r.__h.forEach(mr),r.__h=r.__h.filter(function(n){return!n.__||Kr(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],Y.__e(n,r.__v)}}),jn&&jn(e,t)},Y.unmount=function(e){Pn&&Pn(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{mr(n)}catch(o){t=o}}),r.__H=void 0,t&&Y.__e(t,r.__v))};var kn=typeof requestAnimationFrame=="function";function ki(e){var t,r=function(){clearTimeout(n),kn&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);kn&&(t=requestAnimationFrame(r))}function mr(e){var t=Z,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),Z=t}function Kr(e){var t=Z;e.__c=e.__(),Z=t}function on(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function Ho(e,t){return typeof t=="function"?t(e):t}function Wr(e,t){for(var r in e)if(r!=="__source"&&!(r in t))return!0;for(var n in t)if(n!=="__source"&&e[n]!==t[n])return!0;return!1}function zr(e,t){this.props=e,this.context=t}(zr.prototype=new Ce).isPureReactComponent=!0,zr.prototype.shouldComponentUpdate=function(e,t){return Wr(this.props,e)||Wr(this.state,t)};var Dn=H.__b;H.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Dn&&Dn(e)};var Di=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,Cn=function(e,t){return e==null?null:Le(Le(e).map(t))},Ci={map:Cn,forEach:Cn,count:function(e){return e?Le(e).length:0},only:function(e){var t=Le(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:Le},xi=H.__e;H.__e=function(e,t,r,n){if(e.then){for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return t.__e==null&&(t.__e=r.__e,t.__k=r.__k),o.__c(e,t)}xi(e,t,r,n)};var xn=H.unmount;function Uo(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(n){typeof n.__c=="function"&&n.__c()}),e.__c.__H=null),(e=function(n,o){for(var i in o)n[i]=o[i];return n}({},e)).__c!=null&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map(function(n){return Uo(n,t,r)})),e}function Fo(e,t,r){return e&&r&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(n){return Fo(n,t,r)}),e.__c&&e.__c.__P===t&&(e.__e&&r.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=r)),e}function pr(){this.__u=0,this.t=null,this.__b=null}function Bo(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function Ot(){this.u=null,this.o=null}H.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),xn&&xn(e)},(pr.prototype=new Ce).__c=function(e,t){var r=t.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var o=Bo(n.__v),i=!1,a=function(){i||(i=!0,r.__R=null,o?o(c):c())};r.__R=a;var c=function(){if(!--n.__u){if(n.state.__a){var f=n.state.__a;n.__v.__k[0]=Fo(f,f.__c.__P,f.__c.__O)}var m;for(n.setState({__a:n.__b=null});m=n.t.pop();)m.forceUpdate()}};n.__u++||32&t.__u||n.setState({__a:n.__b=n.__v.__k[0]}),e.then(a,a)},pr.prototype.componentWillUnmount=function(){this.t=[]},pr.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=Uo(this.__b,r,n.__O=n.__P)}this.__b=null}var o=t.__a&&De(Re,null,e.fallback);return o&&(o.__u&=-33),[De(Re,null,t.__a?null:e.children),o]};var An=function(e,t,r){if(++r[1]===r[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(r=e.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),t.i.removeChild(n)}}),Ft(De(Ai,{context:t.context},e.__v),t.l)}function Vo(e,t){var r=De(Ni,{__v:e,i:t});return r.containerInfo=t,r}(Ot.prototype=new Ce).__a=function(e){var t=this,r=Bo(t.__v),n=t.o.get(e);return n[0]++,function(o){var i=function(){t.props.revealOrder?(n.push(o),An(t,e,n)):o()};r?r(i):i()}},Ot.prototype.render=function(e){this.u=null,this.o=new Map;var t=Le(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var r=t.length;r--;)this.o.set(t[r],this.u=[1,0,this.u]);return e.children},Ot.prototype.componentDidUpdate=Ot.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,r){An(e,r,t)})};var Ko=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,Ti=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Ri=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Li=/[A-Z0-9]/g,qi=typeof document<"u",Mi=function(e){return(typeof Symbol<"u"&&A(Symbol())=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};function Wo(e,t,r){return t.__k==null&&(t.textContent=""),Ft(e,t),typeof r=="function"&&r(),e?e.__c:null}Ce.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(Ce.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Nn=H.event;function Hi(){}function Ui(){return this.cancelBubble}function Fi(){return this.defaultPrevented}H.event=function(e){return Nn&&(e=Nn(e)),e.persist=Hi,e.isPropagationStopped=Ui,e.isDefaultPrevented=Fi,e.nativeEvent=e};var an,Bi={enumerable:!1,configurable:!0,get:function(){return this.class}},Tn=H.vnode;H.vnode=function(e){typeof e.type=="string"&&function(t){var r=t.props,n=t.type,o={},i=n.indexOf("-")===-1;for(var a in r){var c=r[a];if(!(a==="value"&&"defaultValue"in r&&c==null||qi&&a==="children"&&n==="noscript"||a==="class"||a==="className")){var f=a.toLowerCase();a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&c===!0?c="":f==="translate"&&c==="no"?c=!1:f[0]==="o"&&f[1]==="n"?f==="ondoubleclick"?a="ondblclick":f!=="onchange"||n!=="input"&&n!=="textarea"||Mi(r.type)?f==="onfocus"?a="onfocusin":f==="onblur"?a="onfocusout":Ri.test(a)&&(a=f):f=a="oninput":i&&Ti.test(a)?a=a.replace(Li,"-$&").toLowerCase():c===null&&(c=void 0),f==="oninput"&&o[a=f]&&(a="oninputCapture"),o[a]=c}}n=="select"&&o.multiple&&Array.isArray(o.value)&&(o.value=Le(r.children).forEach(function(m){m.props.selected=o.value.indexOf(m.props.value)!=-1})),n=="select"&&o.defaultValue!=null&&(o.value=Le(r.children).forEach(function(m){m.props.selected=o.multiple?o.defaultValue.indexOf(m.props.value)!=-1:o.defaultValue==m.props.value})),r.class&&!r.className?(o.class=r.class,Object.defineProperty(o,"className",Bi)):(r.className&&!r.class||r.class&&r.className)&&(o.class=o.className=r.className),t.props=o}(e),e.$$typeof=Ko,Tn&&Tn(e)};var Rn=H.__r;H.__r=function(e){Rn&&Rn(e),an=e.__c};var Ln=H.diffed;H.diffed=function(e){Ln&&Ln(e);var t=e.props,r=e.__e;r!=null&&e.type==="textarea"&&"value"in t&&t.value!==r.value&&(r.value=t.value==null?"":t.value),an=null};var Vi={ReactCurrentDispatcher:{current:{readContext:function(e){return an.__n[e.__c].props.value},useCallback:Ro,useContext:Lo,useDebugValue:qo,useDeferredValue:Jo,useEffect:Jt,useId:Mo,useImperativeHandle:To,useInsertionEffect:$o,useLayoutEffect:Qt,useMemo:_r,useReducer:nn,useRef:No,useState:zt,useSyncExternalStore:Zo,useTransition:Qo}}};function rr(e){return!!e&&e.$$typeof===Ko}function zo(e){e()}function Jo(e){return e}function Qo(){return[!1,zo]}var $o=Qt;function Zo(e,t){var r=t(),n=zt({h:{__:r,v:t}}),o=n[0].h,i=n[1];return Qt(function(){o.__=r,o.v=t,Cr(o)&&i({h:o})},[e,r,t]),Jt(function(){return Cr(o)&&i({h:o}),e(function(){Cr(o)&&i({h:o})})},[e]),r}function Cr(e){var t,r,n=e.v,o=e.__;try{var i=n();return!((t=o)===(r=i)&&(t!==0||1/t==1/r)||t!=t&&r!=r)}catch{return!0}}var u={useState:zt,useId:Mo,useReducer:nn,useEffect:Jt,useLayoutEffect:Qt,useInsertionEffect:$o,useTransition:Qo,useDeferredValue:Jo,useSyncExternalStore:Zo,startTransition:zo,useRef:No,useImperativeHandle:To,useMemo:_r,useCallback:Ro,useContext:Lo,useDebugValue:qo,version:"18.3.1",Children:Ci,render:Wo,hydrate:function(e,t,r){return xo(e,t),typeof r=="function"&&r(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(Ft(null,e),!0)},createPortal:Vo,createElement:De,createContext:function(e,t){var r={__c:t="__cC"+wo++,__:e,Consumer:function(n,o){return n.children(o)},Provider:function(n){var o,i;return this.getChildContext||(o=new Set,(i={})[t]=this,this.getChildContext=function(){return i},this.componentWillUnmount=function(){o=null},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&o.forEach(function(c){c.__e=!0,Vr(c)})},this.sub=function(a){o.add(a);var c=a.componentWillUnmount;a.componentWillUnmount=function(){o&&o.delete(a),c&&c.call(a)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r},createFactory:function(e){return De.bind(null,e)},cloneElement:function(e){return rr(e)?Pi.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:Re,isValidElement:rr,isElement:rr,isFragment:function(e){return rr(e)&&e.type===Re},isMemo:function(e){return!!e&&!!e.displayName&&(typeof e.displayName=="string"||e.displayName instanceof String)&&e.displayName.startsWith("Memo(")},findDOMNode:function(e){return e&&(e.base||e.nodeType===1&&e)||null},Component:Ce,PureComponent:zr,memo:function(e,t){function r(o){var i=this.props.ref,a=i==o.ref;return!a&&i&&(i.call?i(null):i.current=null),t?!t(this.props,o)||!a:Wr(this.props,o)}function n(o){return this.shouldComponentUpdate=r,De(e,o)}return n.displayName="Memo("+(e.displayName||e.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n},forwardRef:function(e){function t(r){if(!("ref"in r))return e(r,null);var n=r.ref;delete r.ref;var o=e(r,n);return r.ref=n,o}return t.$$typeof=Di,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},flushSync:function(e,t){return e(t)},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:Re,Suspense:pr,SuspenseList:Ot,lazy:function(e){var t,r,n;function o(i){if(t||(t=e()).then(function(a){r=a.default||a},function(a){n=a}),n)throw n;if(!r)throw t;return De(r,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Vi};function Jr(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--R){var D=this.tryEntries[R],L=D.completion;if(D.tryLoc==="root")return j("end");if(D.tryLoc<=this.prev){var W=n.call(D,"catchLoc"),K=n.call(D,"finallyLoc");if(W&&K){if(this.prev=0;--j){var R=this.tryEntries[j];if(R.tryLoc<=this.prev&&n.call(R,"finallyLoc")&&this.prev=0;--w){var j=this.tryEntries[w];if(j.finallyLoc===O)return this.complete(j.completion,j.afterLoc),z(j),y}},catch:function(O){for(var w=this.tryEntries.length-1;w>=0;--w){var j=this.tryEntries[w];if(j.tryLoc===O){var R=j.completion;if(R.type==="throw"){var D=R.arg;z(j)}return D}}throw Error("illegal catch attempt")},delegateYield:function(O,w,j){return this.delegate={iterator:oe(O),resultName:w,nextLoc:j},this.method==="next"&&(this.arg=e),y}},t}function Vt(e,t){return Vt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},Vt(e,t)}function he(e,t){return function(r){if(Array.isArray(r))return r}(e)||function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var i,a,c,f,m=[],b=!0,l=!1;try{if(c=(o=o.call(r)).next,n===0){if(Object(o)!==o)return;b=!1}else for(;!(b=(i=c.call(o)).done)&&(m.push(i.value),m.length!==n);b=!0);}catch(v){l=!0,a=v}finally{try{if(!b&&o.return!=null&&(f=o.return(),Object(f)!==f))return}finally{if(l)throw a}}return m}}(e,t)||Go(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function jt(e){return function(t){if(Array.isArray(t))return Jr(t)}(e)||function(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}(e)||Go(e)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Go(e,t){if(e){if(typeof e=="string")return Jr(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jr(e,t):void 0}}function Qr(e){var t=typeof Map=="function"?new Map:void 0;return Qr=function(r){if(r===null||!function(o){try{return Function.toString.call(o).indexOf("[native code]")!==-1}catch{return typeof o=="function"}}(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(t!==void 0){if(t.has(r))return t.get(r);t.set(r,n)}function n(){return function(o,i,a){if(un())return Reflect.construct.apply(null,arguments);var c=[null];c.push.apply(c,i);var f=new(o.bind.apply(o,c));return a&&Vt(f,a.prototype),f}(r,arguments,Bt(this).constructor)}return n.prototype=Object.create(r.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Vt(n,r)},Qr(e)}function Ki(){return u.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},u.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Yo(){return u.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},u.createElement("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",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Wi=["translations"],Ar="Ctrl",zi=u.forwardRef(function(e,t){var r=e.translations,n=r===void 0?{}:r,o=xe(e,Wi),i=n.buttonText,a=i===void 0?"Search":i,c=n.buttonAriaLabel,f=c===void 0?"Search":c,m=he(zt(null),2),b=m[0],l=m[1];Jt(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?l("⌘"):l(Ar))},[]);var v=he(b===Ar?[Ar,"Ctrl",u.createElement(Ki,null)]:["Meta","Command",b],3),s=v[0],S=v[1],g=v[2];return u.createElement("button",le({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(f," (").concat(S,"+K)")},o,{ref:t}),u.createElement("span",{className:"DocSearch-Button-Container"},u.createElement(Yo,null),u.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),u.createElement("span",{className:"DocSearch-Button-Keys"},b!==null&&u.createElement(u.Fragment,null,u.createElement(Hn,{reactsToKey:s},g),u.createElement(Hn,{reactsToKey:"k"},"K"))))});function Hn(e){var t=e.reactsToKey,r=e.children,n=he(zt(!1),2),o=n[0],i=n[1];return Jt(function(){if(t)return window.addEventListener("keydown",a),window.addEventListener("keyup",c),function(){window.removeEventListener("keydown",a),window.removeEventListener("keyup",c)};function a(f){f.key===t&&i(!0)}function c(f){f.key!==t&&f.key!=="Meta"||i(!1)}},[t]),u.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},r)}function Xo(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(b[f]=a[f]);return b}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Vn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function at(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=3||S===2&&g>=4||S===1&&g>=10);function _(h,p,d){if(y&&d!==void 0){var P=d[0].__autocomplete_algoliaCredentials,E={"X-Algolia-Application-Id":P.appId,"X-Algolia-API-Key":P.apiKey};v.apply(void 0,[h].concat(nr(p),[{headers:E}]))}else v.apply(void 0,[h].concat(nr(p)))}return{init:function(h,p){v("init",{appId:h,apiKey:p})},setAuthenticatedUserToken:function(h){v("setAuthenticatedUserToken",h)},setUserToken:function(h){v("setUserToken",h)},clickedObjectIDsAfterSearch:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&_("clickedObjectIDsAfterSearch",or(p),p[0].items)},clickedObjectIDs:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&_("clickedObjectIDs",or(p),p[0].items)},clickedFilters:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&v.apply(void 0,["clickedFilters"].concat(p))},convertedObjectIDsAfterSearch:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&_("convertedObjectIDsAfterSearch",or(p),p[0].items)},convertedObjectIDs:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&_("convertedObjectIDs",or(p),p[0].items)},convertedFilters:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&v.apply(void 0,["convertedFilters"].concat(p))},viewedObjectIDs:function(){for(var h=arguments.length,p=new Array(h),d=0;d0&&p.reduce(function(P,E){var C=E.items,N=ti(E,Zi);return[].concat(nr(P),nr(function(I){for(var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20,k=[],U=0;U0&&v.apply(void 0,["viewedFilters"].concat(p))}}}(f),b={current:[]},l=Xo(function(v){var s=v.state;if(s.isOpen){var S=s.collections.reduce(function(g,y){return[].concat(ut(g),ut(y.items))},[]).filter(bt);ei(b.current.map(function(g){return g.objectID}),S.map(function(g){return g.objectID}))||(b.current=S,S.length>0&&ta({onItemsChange:o,items:S,insights:m,state:s}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(v){var s=v.setContext,S=v.onSelect,g=v.onActive,y=!1;function _(h){s({algoliaInsightsPlugin:{__algoliaSearchParameters:we(we({},c?{clickAnalytics:!0}:{}),h?{userToken:ra(h)}:{}),insights:m}})}f("addAlgoliaAgent","insights-plugin"),_(),f("onUserTokenChange",function(h){y||_(h)}),f("getUserToken",null,function(h,p){y||_(p)}),f("onAuthenticatedUserTokenChange",function(h){h?(y=!0,_(h)):(y=!1,f("getUserToken",null,function(p,d){return _(d)}))}),f("getAuthenticatedUserToken",null,function(h,p){p&&(y=!0,_(p))}),S(function(h){var p=h.item,d=h.state,P=h.event,E=h.source;bt(p)&&i({state:d,event:P,insights:m,item:p,insightsEvents:[we({eventName:"Item Selected"},Fn({item:p,items:E.getItems().filter(bt)}))]})}),g(function(h){var p=h.item,d=h.source,P=h.state,E=h.event;bt(p)&&a({state:P,event:E,insights:m,item:p,insightsEvents:[we({eventName:"Item Active"},Fn({item:p,items:d.getItems().filter(bt)}))]})})},onStateChange:function(v){var s=v.state;l({state:s})},__autocomplete_pluginOptions:e}}function zn(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(ut(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]),["autocomplete-internal"],ut((e=t.algoliaInsightsPlugin)!==null&&e!==void 0&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function ra(e){return typeof e=="number"?e.toString():e}function hr(e,t){var r=t;return{then:function(n,o){return hr(e.then(ir(n,r,e),ir(o,r,e)),r)},catch:function(n){return hr(e.catch(ir(n,r,e)),r)},finally:function(n){return n&&r.onCancelList.push(n),hr(e.finally(ir(n&&function(){return r.onCancelList=[],n()},r,e)),r)},cancel:function(){r.isCanceled=!0;var n=r.onCancelList;r.onCancelList=[],n.forEach(function(o){o()})},isCanceled:function(){return r.isCanceled===!0}}}function Jn(e){return hr(e,{isCanceled:!1,onCancelList:[]})}function ir(e,t,r){return e?function(n){return t.isCanceled?n:e(n)}:r}function Qn(e,t,r,n){if(!r)return null;if(e<0&&(t===null||n!==null&&t===0))return r+e;var o=(t===null?-1:t)+e;return o<=-1||o>=r?n===null?null:0:o}function $n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Zn(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(z[k]=I[k]);return z}(p,d);if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(p);for(E=0;E=0||Object.prototype.propertyIsEnumerable.call(p,P)&&(C[P]=p[P])}return C}(e,sa);St&&o.environment.clearTimeout(St);var m=f.setCollections,b=f.setIsOpen,l=f.setQuery,v=f.setActiveItemId,s=f.setStatus,S=f.setContext;if(l(i),v(o.defaultActiveItemId),!i&&o.openOnFocus===!1){var g,y=c.getState().collections.map(function(p){return ze(ze({},p),{},{items:[]})});s("idle"),m(y),b((g=n.isOpen)!==null&&g!==void 0?g:o.shouldPanelOpen({state:c.getState()}));var _=Jn(io(y).then(function(){return Promise.resolve()}));return c.pendingRequests.add(_)}s("loading"),St=o.environment.setTimeout(function(){s("stalled")},o.stallThreshold);var h=Jn(io(o.getSources(ze({query:i,refresh:a,state:c.getState()},f)).then(function(p){return Promise.all(p.map(function(d){return Promise.resolve(d.getItems(ze({query:i,refresh:a,state:c.getState()},f))).then(function(P){return function(E,C,N){if(x=E,!!(x!=null&&x.execute)){var I=E.requesterId==="algolia"?Object.assign.apply(Object,[{}].concat(oi(Object.keys(N.context).map(function(k){var U;return(U=N.context[k])===null||U===void 0?void 0:U.__algoliaSearchParameters})))):{};return nt(nt({},E),{},{requests:E.queries.map(function(k){return{query:E.requesterId==="algolia"?nt(nt({},k),{},{params:nt(nt({},I),k.params)}):k,sourceId:C,transformResponse:E.transformResponse}})})}var x;return{items:E,sourceId:C}}(P,d.sourceId,c.getState())})})).then(la).then(function(d){var P,E=d.some(function(C){return function(N){return!Array.isArray(N)&&!!(N!=null&&N._automaticInsights)}(C.items)});return E&&S({algoliaInsightsPlugin:ze(ze({},((P=c.getState().context)===null||P===void 0?void 0:P.algoliaInsightsPlugin)||{}),{},{__automaticInsights:E})}),function(C,N,I){return N.map(function(x){var k,U=C.filter(function(O){return O.sourceId===x.sourceId}),z=U.map(function(O){return O.items}),q=U[0].transformResponse,oe=q?q({results:k=z,hits:k.map(function(O){return O.hits}).filter(Boolean),facetHits:k.map(function(O){var w;return(w=O.facetHits)===null||w===void 0?void 0:w.map(function(j){return{label:j.value,count:j.count,_highlightResult:{label:{value:j.highlighted}}}})}).filter(Boolean)}):z;return x.onResolve({source:x,results:z,items:oe,state:I.getState()}),oe.every(Boolean),'The `getItems` function from source "'.concat(x.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),`. + +Did you forget to return items? + +See: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`),{source:x,items:oe}})}(d,p,c)}).then(function(d){return function(P){var E=P.props,C=P.state,N=P.collections.reduce(function(x,k){return ur(ur({},x),{},ni({},k.source.sourceId,ur(ur({},k.source),{},{getItems:function(){return Kt(k.items)}})))},{}),I=E.plugins.reduce(function(x,k){return k.reshape?k.reshape(x):x},{sourcesBySourceId:N,state:C}).sourcesBySourceId;return Kt(E.reshape({sourcesBySourceId:I,sources:Object.values(I),state:C})).filter(Boolean).map(function(x){return{source:x,items:x.getItems()}})}({collections:d,props:o,state:c.getState()})})}))).then(function(p){var d;s("idle"),m(p);var P=o.shouldPanelOpen({state:c.getState()});b((d=n.isOpen)!==null&&d!==void 0?d:o.openOnFocus&&!i&&P||P);var E=Ye(c.getState());if(c.getState().activeItemId!==null&&E){var C=E.item,N=E.itemInputValue,I=E.itemUrl,x=E.source;x.onActive(ze({event:t,item:C,itemInputValue:N,itemUrl:I,refresh:a,source:x,state:c.getState()},f))}}).finally(function(){s("idle"),St&&o.environment.clearTimeout(St)});return c.pendingRequests.add(h)}function Rt(e){return Rt=typeof Symbol=="function"&&A(Symbol.iterator)=="symbol"?function(t){return A(t)}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":A(t)},Rt(e)}var ma=["event","props","refresh","store"];function ao(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t=0||(b[f]=a[f]);return b}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function qt(e){return qt=typeof Symbol=="function"&&A(Symbol.iterator)=="symbol"?function(t){return A(t)}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":A(t)},qt(e)}function co(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Sa(e){for(var t=1;t0},reshape:function(g){return g.sources}},b),{},{id:(v=b.id)!==null&&v!==void 0?v:"autocomplete-".concat(Ji++),plugins:S,initialState:rt({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},b.initialState),onStateChange:function(g){var y;(y=b.onStateChange)===null||y===void 0||y.call(b,g),S.forEach(function(_){var h;return(h=_.onStateChange)===null||h===void 0?void 0:h.call(_,g)})},onSubmit:function(g){var y;(y=b.onSubmit)===null||y===void 0||y.call(b,g),S.forEach(function(_){var h;return(h=_.onSubmit)===null||h===void 0?void 0:h.call(_,g)})},onReset:function(g){var y;(y=b.onReset)===null||y===void 0||y.call(b,g),S.forEach(function(_){var h;return(h=_.onReset)===null||h===void 0?void 0:h.call(_,g)})},getSources:function(g){return Promise.all([].concat(function(y){return function(_){if(Array.isArray(_))return Rr(_)}(y)||function(_){if(typeof Symbol<"u"&&_[Symbol.iterator]!=null||_["@@iterator"]!=null)return Array.from(_)}(y)||function(_,h){if(_){if(typeof _=="string")return Rr(_,h);var p=Object.prototype.toString.call(_).slice(8,-1);return p==="Object"&&_.constructor&&(p=_.constructor.name),p==="Map"||p==="Set"?Array.from(_):p==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p)?Rr(_,h):void 0}}(y)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}(S.map(function(y){return y.getSources})),[b.getSources]).filter(Boolean).map(function(y){return function(_,h){var p=[];return Promise.resolve(_(h)).then(function(d){return Promise.all(d.filter(function(P){return!!P}).map(function(P){if(P.sourceId,p.includes(P.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(P.sourceId)," is not unique."));p.push(P.sourceId);var E={getItemInputValue:function(N){return N.state.query},getItemUrl:function(){},onSelect:function(N){(0,N.setIsOpen)(!1)},onActive:vr,onResolve:vr};Object.keys(E).forEach(function(N){E[N].__default=!0});var C=Zn(Zn({},E),P);return Promise.resolve(C)}))})}(y,g)})).then(function(y){return Kt(y)}).then(function(y){return y.map(function(_){return rt(rt({},_),{},{onSelect:function(h){_.onSelect(h),l.forEach(function(p){var d;return(d=p.onSelect)===null||d===void 0?void 0:d.call(p,h)})},onActive:function(h){_.onActive(h),l.forEach(function(p){var d;return(d=p.onActive)===null||d===void 0?void 0:d.call(p,h)})},onResolve:function(h){_.onResolve(h),l.forEach(function(p){var d;return(d=p.onResolve)===null||d===void 0?void 0:d.call(p,h)})}})})})},navigator:rt({navigate:function(g){var y=g.itemUrl;s.location.assign(y)},navigateNewTab:function(g){var y=g.itemUrl,_=s.open(y,"_blank","noopener");_==null||_.focus()},navigateNewWindow:function(g){var y=g.itemUrl;s.open(y,"_blank","noopener")}},b.navigator)})}(e,t),n=function(b,l,v){var s,S=l.initialState;return{getState:function(){return S},dispatch:function(g,y){var _=function(h){for(var p=1;p=0||(qe[je]=Ee[je]);return qe}(K,J);if(Object.getOwnPropertySymbols){var dt=Object.getOwnPropertySymbols(K);for(se=0;se=0||Object.prototype.propertyIsEnumerable.call(K,G)&&(ee[G]=K[G])}return ee}(x,ma);if(k.key==="ArrowUp"||k.key==="ArrowDown"){var O=function(){var K=Ye(q.getState()),J=U.environment.document.getElementById(be(U.id,"item-".concat(q.getState().activeItemId),K==null?void 0:K.source));J&&(J.scrollIntoViewIfNeeded?J.scrollIntoViewIfNeeded(!1):J.scrollIntoView(!1))},w=function(){var K=Ye(q.getState());if(q.getState().activeItemId!==null&&K){var J=K.item,G=K.itemInputValue,se=K.itemUrl,ee=K.source;ee.onActive(Qe({event:k,item:J,itemInputValue:G,itemUrl:se,refresh:z,source:ee,state:q.getState()},oe))}};k.preventDefault(),q.getState().isOpen===!1&&(U.openOnFocus||q.getState().query)?Je(Qe({event:k,props:U,query:q.getState().query,refresh:z,store:q},oe)).then(function(){q.dispatch(k.key,{nextActiveItemId:U.defaultActiveItemId}),w(),setTimeout(O,0)}):(q.dispatch(k.key,{}),w(),O())}else if(k.key==="Escape")k.preventDefault(),q.dispatch(k.key,null),q.pendingRequests.cancelAll();else if(k.key==="Tab")q.dispatch("blur",null),q.pendingRequests.cancelAll();else if(k.key==="Enter"){if(q.getState().activeItemId===null||q.getState().collections.every(function(K){return K.items.length===0}))return void(U.debug||q.pendingRequests.cancelAll());k.preventDefault();var j=Ye(q.getState()),R=j.item,D=j.itemInputValue,L=j.itemUrl,W=j.source;if(k.metaKey||k.ctrlKey)L!==void 0&&(W.onSelect(Qe({event:k,item:R,itemInputValue:D,itemUrl:L,refresh:z,source:W,state:q.getState()},oe)),U.navigator.navigateNewTab({itemUrl:L,item:R,state:q.getState()}));else if(k.shiftKey)L!==void 0&&(W.onSelect(Qe({event:k,item:R,itemInputValue:D,itemUrl:L,refresh:z,source:W,state:q.getState()},oe)),U.navigator.navigateNewWindow({itemUrl:L,item:R,state:q.getState()}));else if(!k.altKey){if(L!==void 0)return W.onSelect(Qe({event:k,item:R,itemInputValue:D,itemUrl:L,refresh:z,source:W,state:q.getState()},oe)),void U.navigator.navigate({itemUrl:L,item:R,state:q.getState()});Je(Qe({event:k,nextState:{isOpen:!1},props:U,query:D,refresh:z,store:q},oe)).then(function(){W.onSelect(Qe({event:k,item:R,itemInputValue:D,itemUrl:L,refresh:z,source:W,state:q.getState()},oe))})}}}(ie({event:I,props:l,refresh:v,store:s},S))},onFocus:_,onBlur:vr,onClick:function(I){g.inputElement!==l.environment.document.activeElement||s.getState().isOpen||_(I)}},P)},getPanelProps:function(g){return ie({onMouseDown:function(y){y.preventDefault()},onMouseLeave:function(){s.dispatch("mouseleave",null)}},g)},getListProps:function(g){var y=g||{},_=y.source,h=ot(y,_a);return ie({role:"listbox","aria-labelledby":be(l.id,"label"),id:be(l.id,"list",_)},h)},getItemProps:function(g){var y=g.item,_=g.source,h=ot(g,ga);return ie({id:be(l.id,"item-".concat(y.__autocomplete_id),_),role:"option","aria-selected":s.getState().activeItemId===y.__autocomplete_id,onMouseMove:function(p){if(y.__autocomplete_id!==s.getState().activeItemId){s.dispatch("mousemove",y.__autocomplete_id);var d=Ye(s.getState());if(s.getState().activeItemId!==null&&d){var P=d.item,E=d.itemInputValue,C=d.itemUrl,N=d.source;N.onActive(ie({event:p,item:P,itemInputValue:E,itemUrl:C,refresh:v,source:N,state:s.getState()},S))}}},onMouseDown:function(p){p.preventDefault()},onClick:function(p){var d=_.getItemInputValue({item:y,state:s.getState()}),P=_.getItemUrl({item:y,state:s.getState()});(P?Promise.resolve():Je(ie({event:p,nextState:{isOpen:!1},props:l,query:d,refresh:v,store:s},S))).then(function(){_.onSelect(ie({event:p,item:y,itemInputValue:d,itemUrl:P,refresh:v,source:_,state:s.getState()},S))})}},h)}}}($e({props:r,refresh:a,store:n,navigator:r.navigator},o));function a(){return Je($e({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,navigator:r.navigator,query:n.getState().query,refresh:a,store:n},o))}function c(b){b.forEach(function(l){var v;return(v=l.subscribe)===null||v===void 0?void 0:v.call(l,$e($e({},o),{},{navigator:r.navigator,refresh:a,onSelect:function(s){t.push({onSelect:s})},onActive:function(s){t.push({onActive:s})},onResolve:function(s){t.push({onResolve:s})}}))})}function f(){return r.plugins.some(function(b){return b.name==="aa.algoliaInsightsPlugin"})}if(r.insights&&!f()){var m=typeof r.insights=="boolean"?{}:r.insights;r.plugins.push(Wn(m))}return c(r.plugins),function(b){var l,v,s=b.metadata,S=b.environment;if(!((l=S.navigator)===null||l===void 0||(v=l.userAgent)===null||v===void 0)&&v.includes("Algolia Crawler")){var g=S.document.createElement("meta"),y=S.document.querySelector("head");g.name="algolia:metadata",setTimeout(function(){g.content=JSON.stringify(s),y.appendChild(g)},0)}}({metadata:Oa({plugins:r.plugins,options:e}),environment:r.environment}),$e($e({refresh:a,navigator:r.navigator},i),o)}function Ia(e){var t=e.translations,r=(t===void 0?{}:t).searchByText,n=r===void 0?"Search by":r;return u.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},u.createElement("span",{className:"DocSearch-Label"},n),u.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},u.createElement("defs",null,u.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),u.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),u.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),u.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),u.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),u.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),u.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),u.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),u.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),u.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function sr(e){return u.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},u.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function ka(e){var t=e.translations,r=t===void 0?{}:t,n=r.selectText,o=n===void 0?"to select":n,i=r.selectKeyAriaLabel,a=i===void 0?"Enter key":i,c=r.navigateText,f=c===void 0?"to navigate":c,m=r.navigateUpKeyAriaLabel,b=m===void 0?"Arrow up":m,l=r.navigateDownKeyAriaLabel,v=l===void 0?"Arrow down":l,s=r.closeText,S=s===void 0?"to close":s,g=r.closeKeyAriaLabel,y=g===void 0?"Escape key":g,_=r.searchByText,h=_===void 0?"Search by":_;return u.createElement(u.Fragment,null,u.createElement("div",{className:"DocSearch-Logo"},u.createElement(Ia,{translations:{searchByText:h}})),u.createElement("ul",{className:"DocSearch-Commands"},u.createElement("li",null,u.createElement("kbd",{className:"DocSearch-Commands-Key"},u.createElement(sr,{ariaLabel:a},u.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),u.createElement("span",{className:"DocSearch-Label"},o)),u.createElement("li",null,u.createElement("kbd",{className:"DocSearch-Commands-Key"},u.createElement(sr,{ariaLabel:v},u.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),u.createElement("kbd",{className:"DocSearch-Commands-Key"},u.createElement(sr,{ariaLabel:b},u.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),u.createElement("span",{className:"DocSearch-Label"},f)),u.createElement("li",null,u.createElement("kbd",{className:"DocSearch-Commands-Key"},u.createElement(sr,{ariaLabel:y},u.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),u.createElement("span",{className:"DocSearch-Label"},S))))}function Da(e){var t=e.hit,r=e.children;return u.createElement("a",{href:t.url},r)}function Ca(){return u.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},u.createElement("g",{fill:"none",fillRule:"evenodd"},u.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},u.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),u.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},u.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}function xa(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),u.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function Zr(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Aa(){return u.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),u.createElement("path",{d:"M8 17l-6-6 6-6"})))}var Na=function(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ta(e){switch(e.type){case"lvl1":return u.createElement(Na,null);case"content":return u.createElement(La,null);default:return u.createElement(Ra,null)}}function Ra(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function La(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function mo(){return u.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},u.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function qa(){return u.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function Ma(){return u.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},u.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}function Ha(e){var t=e.translations,r=t===void 0?{}:t,n=r.titleText,o=n===void 0?"Unable to fetch results":n,i=r.helpText,a=i===void 0?"You might want to check your network connection.":i;return u.createElement("div",{className:"DocSearch-ErrorScreen"},u.createElement("div",{className:"DocSearch-Screen-Icon"},u.createElement(qa,null)),u.createElement("p",{className:"DocSearch-Title"},o),u.createElement("p",{className:"DocSearch-Help"},a))}var Ua=["translations"];function Fa(e){var t=e.translations,r=t===void 0?{}:t,n=xe(e,Ua),o=r.noResultsText,i=o===void 0?"No results for":o,a=r.suggestedQueryText,c=a===void 0?"Try searching for":a,f=r.reportMissingResultsText,m=f===void 0?"Believe this query should return results?":f,b=r.reportMissingResultsLinkText,l=b===void 0?"Let us know.":b,v=n.state.context.searchSuggestions;return u.createElement("div",{className:"DocSearch-NoResults"},u.createElement("div",{className:"DocSearch-Screen-Icon"},u.createElement(Ma,null)),u.createElement("p",{className:"DocSearch-Title"},i,' "',u.createElement("strong",null,n.state.query),'"'),v&&v.length>0&&u.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},u.createElement("p",{className:"DocSearch-Help"},c,":"),u.createElement("ul",null,v.slice(0,3).reduce(function(s,S){return[].concat(jt(s),[u.createElement("li",{key:S},u.createElement("button",{className:"DocSearch-Prefill",key:S,type:"button",onClick:function(){n.setQuery(S.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},S))])},[]))),n.getMissingResultsUrl&&u.createElement("p",{className:"DocSearch-Help"},"".concat(m," "),u.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},l)))}var Ba=["hit","attribute","tagName"];function po(e,t){return t.split(".").reduce(function(r,n){return r!=null&&r[n]?r[n]:null},e)}function it(e){var t=e.hit,r=e.attribute,n=e.tagName;return De(n===void 0?"span":n,B(B({},xe(e,Ba)),{},{dangerouslySetInnerHTML:{__html:po(t,"_snippetResult.".concat(r,".value"))||po(t,r)}}))}function Gr(e){return e.collection&&e.collection.items.length!==0?u.createElement("section",{className:"DocSearch-Hits"},u.createElement("div",{className:"DocSearch-Hit-source"},e.title),u.createElement("ul",e.getListProps(),e.collection.items.map(function(t,r){return u.createElement(Va,le({key:[e.title,t.objectID].join(":"),item:t,index:r},e))}))):null}function Va(e){var t=e.item,r=e.index,n=e.renderIcon,o=e.renderAction,i=e.getItemProps,a=e.onItemClick,c=e.collection,f=e.hitComponent,m=he(u.useState(!1),2),b=m[0],l=m[1],v=he(u.useState(!1),2),s=v[0],S=v[1],g=u.useRef(null),y=f;return u.createElement("li",le({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",b&&"DocSearch-Hit--deleting",s&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){g.current&&g.current()}},i({item:t,source:c.source,onClick:function(_){a(t,_)}})),u.createElement(y,{hit:t},u.createElement("div",{className:"DocSearch-Hit-Container"},n({item:t,index:r}),t.hierarchy[t.type]&&t.type==="lvl1"&&u.createElement("div",{className:"DocSearch-Hit-content-wrapper"},u.createElement(it,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&u.createElement(it,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&(t.type==="lvl2"||t.type==="lvl3"||t.type==="lvl4"||t.type==="lvl5"||t.type==="lvl6")&&u.createElement("div",{className:"DocSearch-Hit-content-wrapper"},u.createElement(it,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),u.createElement(it,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),t.type==="content"&&u.createElement("div",{className:"DocSearch-Hit-content-wrapper"},u.createElement(it,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),u.createElement(it,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(_){l(!0),g.current=_},runFavoriteTransition:function(_){S(!0),g.current=_}}))))}function vo(e,t,r){return e.reduce(function(n,o){var i=t(o);return n.hasOwnProperty(i)||(n[i]=[]),n[i].length<(r||5)&&n[i].push(o),n},{})}function ho(e){return e}function fr(e){return e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function Ka(){}var ai=/(|<\/mark>)/g,Wa=RegExp(ai.source);function ui(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=n.__docsearch_parent?(t=n.__docsearch_parent)===null||t===void 0||(t=t._highlightResult)===null||t===void 0||(t=t.hierarchy)===null||t===void 0?void 0:t.lvl0:(r=e._highlightResult)===null||r===void 0||(r=r.hierarchy)===null||r===void 0?void 0:r.lvl0;return o?o.value&&Wa.test(o.value)?o.value.replace(ai,""):o.value:e.hierarchy.lvl0}function za(e){return u.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map(function(t){if(t.items.length===0)return null;var r=ui(t.items[0]);return u.createElement(Gr,le({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(n){var o,i=n.item,a=n.index;return u.createElement(u.Fragment,null,i.__docsearch_parent&&u.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},u.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},i.__docsearch_parent!==((o=t.items[a+1])===null||o===void 0?void 0:o.__docsearch_parent)?u.createElement("path",{d:"M8 6v21M20 27H8.3"}):u.createElement("path",{d:"M8 6v42M20 27H8.3"}))),u.createElement("div",{className:"DocSearch-Hit-icon"},u.createElement(Ta,{type:i.type})))},renderAction:function(){return u.createElement("div",{className:"DocSearch-Hit-action"},u.createElement(Aa,null))}}))}),e.resultsFooterComponent&&u.createElement("section",{className:"DocSearch-HitsFooter"},u.createElement(e.resultsFooterComponent,{state:e.state})))}var Ja=["translations"];function Qa(e){var t=e.translations,r=t===void 0?{}:t,n=xe(e,Ja),o=r.recentSearchesTitle,i=o===void 0?"Recent":o,a=r.noRecentSearchesText,c=a===void 0?"No recent searches":a,f=r.saveRecentSearchButtonTitle,m=f===void 0?"Save this search":f,b=r.removeRecentSearchButtonTitle,l=b===void 0?"Remove this search from history":b,v=r.favoriteSearchesTitle,s=v===void 0?"Favorite":v,S=r.removeFavoriteSearchButtonTitle,g=S===void 0?"Remove this search from favorites":S;return n.state.status==="idle"&&n.hasCollections===!1?n.disableUserPersonalization?null:u.createElement("div",{className:"DocSearch-StartScreen"},u.createElement("p",{className:"DocSearch-Help"},c)):n.hasCollections===!1?null:u.createElement("div",{className:"DocSearch-Dropdown-Container"},u.createElement(Gr,le({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return u.createElement("div",{className:"DocSearch-Hit-icon"},u.createElement(xa,null))},renderAction:function(y){var _=y.item,h=y.runFavoriteTransition,p=y.runDeleteTransition;return u.createElement(u.Fragment,null,u.createElement("div",{className:"DocSearch-Hit-action"},u.createElement("button",{className:"DocSearch-Hit-action-button",title:m,type:"submit",onClick:function(d){d.preventDefault(),d.stopPropagation(),h(function(){n.favoriteSearches.add(_),n.recentSearches.remove(_),n.refresh()})}},u.createElement(mo,null))),u.createElement("div",{className:"DocSearch-Hit-action"},u.createElement("button",{className:"DocSearch-Hit-action-button",title:l,type:"submit",onClick:function(d){d.preventDefault(),d.stopPropagation(),p(function(){n.recentSearches.remove(_),n.refresh()})}},u.createElement(Zr,null))))}})),u.createElement(Gr,le({},n,{title:s,collection:n.state.collections[1],renderIcon:function(){return u.createElement("div",{className:"DocSearch-Hit-icon"},u.createElement(mo,null))},renderAction:function(y){var _=y.item,h=y.runDeleteTransition;return u.createElement("div",{className:"DocSearch-Hit-action"},u.createElement("button",{className:"DocSearch-Hit-action-button",title:g,type:"submit",onClick:function(p){p.preventDefault(),p.stopPropagation(),h(function(){n.favoriteSearches.remove(_),n.refresh()})}},u.createElement(Zr,null)))}})))}var $a=["translations"],Za=u.memo(function(e){var t=e.translations,r=t===void 0?{}:t,n=xe(e,$a);if(n.state.status==="error")return u.createElement(Ha,{translations:r==null?void 0:r.errorScreen});var o=n.state.collections.some(function(i){return i.items.length>0});return n.state.query?o===!1?u.createElement(Fa,le({},n,{translations:r==null?void 0:r.noResultsScreen})):u.createElement(za,n):u.createElement(Qa,le({},n,{hasCollections:o,translations:r==null?void 0:r.startScreen}))},function(e,t){return t.state.status==="loading"||t.state.status==="stalled"}),Ga=["translations"];function Ya(e){var t=e.translations,r=t===void 0?{}:t,n=xe(e,Ga),o=r.resetButtonTitle,i=o===void 0?"Clear the query":o,a=r.resetButtonAriaLabel,c=a===void 0?"Clear the query":a,f=r.cancelButtonText,m=f===void 0?"Cancel":f,b=r.cancelButtonAriaLabel,l=b===void 0?"Cancel":b,v=r.searchInputLabel,s=v===void 0?"Search":v,S=n.getFormProps({inputElement:n.inputRef.current}).onReset;return u.useEffect(function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()},[n.autoFocus,n.inputRef]),u.useEffect(function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()},[n.isFromSelection,n.inputRef]),u.createElement(u.Fragment,null,u.createElement("form",{className:"DocSearch-Form",onSubmit:function(g){g.preventDefault()},onReset:S},u.createElement("label",le({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),u.createElement(Yo,null),u.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},s)),u.createElement("div",{className:"DocSearch-LoadingIndicator"},u.createElement(Ca,null)),u.createElement("input",le({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),u.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},u.createElement(Zr,null))),u.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":l,onClick:n.onClose},m))}var Xa=["_highlightResult","_snippetResult"];function yo(e){var t=e.key,r=e.limit,n=r===void 0?5:r,o=function(a){return function(){var c="__TEST_KEY__";try{return localStorage.setItem(c,""),localStorage.removeItem(c),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(c){return window.localStorage.setItem(a,JSON.stringify(c))},getItem:function(){var c=window.localStorage.getItem(a);return c?JSON.parse(c):[]}}}(t),i=o.getItem().slice(0,n);return{add:function(a){var c=a;c._highlightResult,c._snippetResult;var f=xe(c,Xa),m=i.findIndex(function(b){return b.objectID===f.objectID});m>-1&&i.splice(m,1),i.unshift(f),i=i.slice(0,n),o.setItem(i)},remove:function(a){i=i.filter(function(c){return c.objectID!==a.objectID}),o.setItem(i)},getAll:function(){return i}}}function eu(e){var t,r="algolia-client-js-".concat(e.key);function n(){return t===void 0&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(n().getItem(r)||"{}")}function i(a){n().setItem(r,JSON.stringify(a))}return{get:function(a,c){var f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){var m,b,l;return m=e.timeToLive?1e3*e.timeToLive:null,b=o(),i(l=Object.fromEntries(Object.entries(b).filter(function(v){return he(v,2)[1].timestamp!==void 0}))),m&&i(Object.fromEntries(Object.entries(l).filter(function(v){var s=he(v,2)[1],S=new Date().getTime();return!(s.timestamp+m2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(a){return Promise.all([a,i.miss(a)])}).then(function(a){return he(a,1)[0]})},set:function(n,o){return Promise.resolve(o)},delete:function(n){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(n,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(n,o,i).catch(function(){return wt({caches:t}).get(n,o,i)})},set:function(n,o){return r.set(n,o).catch(function(){return wt({caches:t}).set(n,o)})},delete:function(n){return r.delete(n).catch(function(){return wt({caches:t}).delete(n)})},clear:function(){return r.clear().catch(function(){return wt({caches:t}).clear()})}}}function Mr(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=n();return a.then(function(c){return o.miss(c)}).then(function(){return a})},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function tu(e){var t=e.algoliaAgents,r=e.client,n=e.version,o=function(i){var a={value:"Algolia for JavaScript (".concat(i,")"),add:function(c){var f="; ".concat(c.segment).concat(c.version!==void 0?" (".concat(c.version,")"):"");return a.value.indexOf(f)===-1&&(a.value="".concat(a.value).concat(f)),a}};return a}(n).add({segment:r,version:n});return t.forEach(function(i){return o.add(i)}),o}var _o=12e4;function go(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"up",r=Date.now();return B(B({},e),{},{status:t,lastUpdate:r,isUp:function(){return t==="up"||Date.now()-r>_o},isTimedOut:function(){return t==="timed out"&&Date.now()-r<=_o}})}var ci=function(){function e(t,r){var n;return mt(this,e),vt(n=ft(this,e,[t]),"name","AlgoliaError"),r&&(n.name=r),n}return ht(e,Qr(Error)),pt(e)}(),li=function(){function e(t,r,n){var o;return mt(this,e),vt(o=ft(this,e,[t,n]),"stackTrace",void 0),o.stackTrace=r,o}return ht(e,ci),pt(e)}(),ru=function(){function e(t){return mt(this,e),ft(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return ht(e,li),pt(e)}(),Yr=function(){function e(t,r,n){var o,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"ApiError";return mt(this,e),vt(o=ft(this,e,[t,n,i]),"status",void 0),o.status=r,o}return ht(e,li),pt(e)}(),nu=function(){function e(t,r){var n;return mt(this,e),vt(n=ft(this,e,[t,"DeserializationError"]),"response",void 0),n.response=r,n}return ht(e,ci),pt(e)}(),ou=function(){function e(t,r,n,o){var i;return mt(this,e),vt(i=ft(this,e,[t,r,o,"DetailedApiError"]),"error",void 0),i.error=n,i}return ht(e,Yr),pt(e)}();function iu(e,t,r){var n,o=(n=r,Object.keys(n).filter(function(a){return n[a]!==void 0}).sort().map(function(a){return"".concat(a,"=").concat(encodeURIComponent(Object.prototype.toString.call(n[a])==="[object Array]"?n[a].join(","):n[a]).replace(/\+/g,"%20"))}).join("&")),i="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat(t.charAt(0)==="/"?t.substring(1):t);return o.length&&(i+="?".concat(o)),i}function au(e,t){if(e.method!=="GET"&&(e.data!==void 0||t.data!==void 0)){var r=Array.isArray(e.data)?e.data:B(B({},e.data),t.data);return JSON.stringify(r)}}function uu(e,t,r){var n=B(B(B({Accept:"application/json"},e),t),r),o={};return Object.keys(n).forEach(function(i){var a=n[i];o[i.toLowerCase()]=a}),o}function cu(e){try{return JSON.parse(e.content)}catch(t){throw new nu(t.message,e)}}function lu(e,t){var r=e.content,n=e.status;try{var o=JSON.parse(r);return"error"in o?new ou(o.message,n,o.error,t):new Yr(o.message,n,t)}catch{}return new Yr(r,n,t)}function su(e){return e.map(function(t){return si(t)})}function si(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return B(B({},e),{},{request:B(B({},e.request),{},{headers:B(B({},e.request.headers),t)})})}var fu=["appId","apiKey","authMode","algoliaAgents"],mu=["params"],bo="5.14.2";function pu(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(t){for(var r=t,n=t.length-1;n>0;n--){var o=Math.floor(Math.random()*(n+1)),i=t[n];r[n]=t[o],r[o]=i}return r}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var Xr="3.8.2",vu=["footer","searchBox"];function hu(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=o===void 0?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,f=e.onClose,m=f===void 0?Ka:f,b=e.transformItems,l=b===void 0?ho:b,v=e.hitComponent,s=v===void 0?Da:v,S=e.resultsFooterComponent,g=S===void 0?function(){return null}:S,y=e.navigator,_=e.initialScrollY,h=_===void 0?0:_,p=e.transformSearchClient,d=p===void 0?ho:p,P=e.disableUserPersonalization,E=P!==void 0&&P,C=e.initialQuery,N=C===void 0?"":C,I=e.translations,x=I===void 0?{}:I,k=e.getMissingResultsUrl,U=e.insights,z=U!==void 0&&U,q=x.footer,oe=x.searchBox,O=xe(x,vu),w=he(u.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),j=w[0],R=w[1],D=u.useRef(null),L=u.useRef(null),W=u.useRef(null),K=u.useRef(null),J=u.useRef(null),G=u.useRef(10),se=u.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,ee=u.useRef(N||se).current,dt=function(F,Q,ae){return u.useMemo(function(){var me=function(de,_e){if(!de||typeof de!="string")throw new Error("`appId` is missing.");if(!_e||typeof _e!="string")throw new Error("`apiKey` is missing.");return function(M){var te=M.appId,X=M.apiKey,Pe=M.authMode,Me=M.algoliaAgents,Ie=xe(M,fu),Se=function(T,$){var re=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"WithinHeaders",ye={"x-algolia-api-key":$,"x-algolia-application-id":T};return{headers:function(){return re==="WithinHeaders"?ye:{}},queryParameters:function(){return re==="WithinQueryParameters"?ye:{}}}}(te,X,Pe),pe=function(T){var $=T.hosts,re=T.hostsCache,ye=T.baseHeaders,ke=T.logger,He=T.baseQueryParameters,Ke=T.algoliaAgent,ln=T.timeouts,sn=T.requester,yt=T.requestsCache,gr=T.responsesCache;function mi(ge){return fn.apply(this,arguments)}function fn(){return(fn=xr(Ze().mark(function ge(ue){var ne,Ae,ce,ve,Ue;return Ze().wrap(function(Ne){for(;;)switch(Ne.prev=Ne.next){case 0:return Ne.next=2,Promise.all(ue.map(function(fe){return re.get(fe,function(){return Promise.resolve(go(fe))})}));case 2:return ne=Ne.sent,Ae=ne.filter(function(fe){return fe.isUp()}),ce=ne.filter(function(fe){return fe.isTimedOut()}),ve=[].concat(jt(Ae),jt(ce)),Ue=ve.length>0?ve:ue,Ne.abrupt("return",{hosts:Ue,getTimeout:function(fe,et){return(ce.length===0&&fe===0?1:ce.length+3+fe)*et}});case 8:case"end":return Ne.stop()}},ge)}))).apply(this,arguments)}function mn(ge,ue){return br.apply(this,arguments)}function br(){return br=xr(Ze().mark(function ge(ue,ne){var Ae,ce,ve,Ue,Ne,fe,et,Sr,We,Zt,Or,pn,wr,Er=arguments;return Ze().wrap(function(tt){for(;;)switch(tt.prev=tt.next){case 0:if(Ae=!(Er.length>2&&Er[2]!==void 0)||Er[2],ce=[],ve=au(ue,ne),Ue=uu(ye,ue.headers,ne.headers),Ne=ue.method==="GET"?B(B({},ue.data),ne.data):{},fe=B(B(B({},He),ue.queryParameters),Ne),Ke.value&&(fe["x-algolia-agent"]=Ke.value),ne&&ne.queryParameters)for(et=0,Sr=Object.keys(ne.queryParameters);et1&&arguments[1]!==void 0?arguments[1]:{},ne=ge.useReadTransporter||ge.method==="GET";if(!ne)return mn(ge,ue,ne);var Ae=function(){return mn(ge,ue)};if((ue.cacheable||ge.cacheable)!==!0)return Ae();var ce={request:ge,requestOptions:ue,transporter:{queryParameters:He,headers:ye}};return gr.get(ce,function(){return yt.get(ce,function(){return yt.set(ce,Ae()).then(function(ve){return Promise.all([yt.delete(ce),ve])},function(ve){return Promise.all([yt.delete(ce),Promise.reject(ve)])}).then(function(ve){var Ue=he(ve,2);return Ue[0],Ue[1]})})},{miss:function(ve){return gr.set(ce,ve)}})},requestsCache:yt,responsesCache:gr}}(B(B({hosts:pu(te)},Ie),{},{algoliaAgent:tu({algoliaAgents:Me,client:"Lite",version:bo}),baseHeaders:B(B({"content-type":"text/plain"},Se.headers()),Ie.baseHeaders),baseQueryParameters:B(B({},Se.queryParameters()),Ie.baseQueryParameters)}));return{transporter:pe,appId:te,clearCache:function(){return Promise.all([pe.requestsCache.clear(),pe.responsesCache.clear()]).then(function(){})},get _ua(){return pe.algoliaAgent.value},addAlgoliaAgent:function(T,$){pe.algoliaAgent.add({segment:T,version:$})},setClientApiKey:function(T){var $=T.apiKey;Pe&&Pe!=="WithinHeaders"?pe.baseQueryParameters["x-algolia-api-key"]=$:pe.baseHeaders["x-algolia-api-key"]=$},searchForHits:function(T,$){return this.search(T,$)},searchForFacets:function(T,$){return this.search(T,$)},customPost:function(T,$){var re=T.path,ye=T.parameters,ke=T.body;if(!re)throw new Error("Parameter `path` is required when calling `customPost`.");var He={method:"POST",path:"/{path}".replace("{path}",re),queryParameters:ye||{},headers:{},data:ke||{}};return pe.request(He,$)},getRecommendations:function(T,$){if(T&&Array.isArray(T)&&(T={requests:T}),!T)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!T.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var re={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:T,useReadTransporter:!0,cacheable:!0};return pe.request(re,$)},search:function(T,$){if(T&&Array.isArray(T)){var re={requests:T.map(function(ke){var He=ke.params,Ke=xe(ke,mu);return Ke.type==="facet"?B(B(B({},Ke),He),{},{type:"facet"}):B(B(B({},Ke),He),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})})};T=re}if(!T)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!T.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var ye={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:T,useReadTransporter:!0,cacheable:!0};return pe.request(ye,$)}}}(B({appId:de,apiKey:_e,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(M,te){return Promise.resolve()},info:function(M,te){return Promise.resolve()},error:function(M,te){return Promise.resolve()}},requester:{send:function(M){return new Promise(function(te){var X=new XMLHttpRequest;X.open(M.method,M.url,!0),Object.keys(M.headers).forEach(function(Se){return X.setRequestHeader(Se,M.headers[Se])});var Pe,Me=function(Se,pe){return setTimeout(function(){X.abort(),te({status:0,content:pe,isTimedOut:!0})},Se)},Ie=Me(M.connectTimeout,"Connection timeout");X.onreadystatechange=function(){X.readyState>X.OPENED&&Pe===void 0&&(clearTimeout(Ie),Pe=Me(M.responseTimeout,"Socket timeout"))},X.onerror=function(){X.status===0&&(clearTimeout(Ie),clearTimeout(Pe),te({content:X.responseText||"Network request failed",status:X.status,isTimedOut:!1}))},X.onload=function(){clearTimeout(Ie),clearTimeout(Pe),te({content:X.responseText,status:X.status,isTimedOut:!1})},X.send(M.data)})}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Mr(),requestsCache:Mr({serializable:!1}),hostsCache:wt({caches:[eu({key:"".concat(bo,"-").concat(de)}),Mr()]})},void 0))}(F,Q);return me.addAlgoliaAgent("docsearch",Xr),/docsearch.js \(.*\)/.test(me.transporter.algoliaAgent.value)===!1&&me.addAlgoliaAgent("docsearch-react",Xr),ae(me)},[F,Q,ae])}(t,r,d),Ee=u.useRef(yo({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,Ve=u.useRef(yo({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:Ee.getAll().length===0?7:4})).current,je=u.useCallback(function(F){if(!E){var Q=F.type==="content"?F.__docsearch_parent:F;Q&&Ee.getAll().findIndex(function(ae){return ae.objectID===Q.objectID})===-1&&Ve.add(Q)}},[Ee,Ve,E]),Xe=u.useCallback(function(F){if(j.context.algoliaInsightsPlugin&&F.__autocomplete_id){var Q=F,ae={eventName:"Item Selected",index:Q.__autocomplete_indexName,items:[Q],positions:[F.__autocomplete_id],queryID:Q.__autocomplete_queryID};j.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(ae)}},[j.context.algoliaInsightsPlugin]),qe=u.useMemo(function(){return Pa({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:ee,context:{searchSuggestions:[]}},insights:z,navigator:y,onStateChange:function(F){R(F.state)},getSources:function(F){var Q=F.query,ae=F.state,me=F.setContext,de=F.setStatus;if(!Q)return E?[]:[{sourceId:"recentSearches",onSelect:function(M){var te=M.item,X=M.event;je(te),fr(X)||m()},getItemUrl:function(M){return M.item.url},getItems:function(){return Ve.getAll()}},{sourceId:"favoriteSearches",onSelect:function(M){var te=M.item,X=M.event;je(te),fr(X)||m()},getItemUrl:function(M){return M.item.url},getItems:function(){return Ee.getAll()}}];var _e=!!z;return dt.search({requests:[B({query:Q,indexName:n,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(G.current),"hierarchy.lvl2:".concat(G.current),"hierarchy.lvl3:".concat(G.current),"hierarchy.lvl4:".concat(G.current),"hierarchy.lvl5:".concat(G.current),"hierarchy.lvl6:".concat(G.current),"content:".concat(G.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:_e},a)]}).catch(function(M){throw M.name==="RetryError"&&de("error"),M}).then(function(M){var te=M.results[0],X=te.hits,Pe=te.nbHits,Me=vo(X,function(Se){return ui(Se)},c);ae.context.searchSuggestions.length0&&(cn(),J.current&&J.current.focus())},[ee,cn]),u.useEffect(function(){function F(){if(L.current){var Q=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(Q,"px"))}}return F(),window.addEventListener("resize",F),function(){window.removeEventListener("resize",F)}},[]),u.createElement("div",le({ref:D},fi({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",j.status==="stalled"&&"DocSearch-Container--Stalled",j.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(F){F.target===F.currentTarget&&m()}}),u.createElement("div",{className:"DocSearch-Modal",ref:L},u.createElement("header",{className:"DocSearch-SearchBar",ref:W},u.createElement(Ya,le({},qe,{state:j,autoFocus:ee.length===0,inputRef:J,isFromSelection:!!ee&&ee===se,translations:oe,onClose:m}))),u.createElement("div",{className:"DocSearch-Dropdown",ref:K},u.createElement(Za,le({},qe,{indexName:n,state:j,hitComponent:s,resultsFooterComponent:g,disableUserPersonalization:E,recentSearches:Ve,favoriteSearches:Ee,inputRef:J,translations:O,getMissingResultsUrl:k,onItemClick:function(F,Q){Xe(F),je(F),fr(Q)||m()}}))),u.createElement("footer",{className:"DocSearch-Footer"},u.createElement(ka,{translations:q}))))}function du(e){var t,r,n=u.useRef(null),o=he(u.useState(!1),2),i=o[0],a=o[1],c=he(u.useState((e==null?void 0:e.initialQuery)||void 0),2),f=c[0],m=c[1],b=u.useCallback(function(){a(!0)},[a]),l=u.useCallback(function(){a(!1),m(e==null?void 0:e.initialQuery)},[a,e.initialQuery]);return function(v){var s=v.isOpen,S=v.onOpen,g=v.onClose,y=v.onInput,_=v.searchButtonRef;u.useEffect(function(){function h(p){var d;if(p.code==="Escape"&&s||((d=p.key)===null||d===void 0?void 0:d.toLowerCase())==="k"&&(p.metaKey||p.ctrlKey)||!function(P){var E=P.target,C=E.tagName;return E.isContentEditable||C==="INPUT"||C==="SELECT"||C==="TEXTAREA"}(p)&&p.key==="/"&&!s)return p.preventDefault(),void(s?g():document.body.classList.contains("DocSearch--active")||S());_&&_.current===document.activeElement&&y&&/[a-zA-Z0-9]/.test(String.fromCharCode(p.keyCode))&&y(p)}return window.addEventListener("keydown",h),function(){window.removeEventListener("keydown",h)}},[s,S,g,y,_])}({isOpen:i,onOpen:b,onClose:l,onInput:u.useCallback(function(v){a(!0),m(v.key)},[a,m]),searchButtonRef:n}),u.createElement(u.Fragment,null,u.createElement(zi,{ref:n,translations:e==null||(t=e.translations)===null||t===void 0?void 0:t.button,onClick:b}),i&&Vo(u.createElement(hu,le({},e,{initialScrollY:window.scrollY,initialQuery:f,translations:e==null||(r=e.translations)===null||r===void 0?void 0:r.modal,onClose:l})),document.body))}function yu(e){Wo(u.createElement(du,Hr({},e,{transformSearchClient:function(t){return t.addAlgoliaAgent("docsearch.js",Xr),e.transformSearchClient?e.transformSearchClient(t):t}})),function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:window;return typeof t=="string"?r.document.querySelector(t):t}(e.container,e.environment))}const _u={id:"docsearch"},Su=pi({__name:"VPAlgoliaSearchBox",props:{algolia:{}},setup(e){const t=e,r=vi(),n=hi(),{site:o,localeIndex:i,lang:a}=Si();di(c),yi(i,c);async function c(){var s,S;await _i();const b={...t.algolia,...(s=t.algolia.locales)==null?void 0:s[i.value]},l=((S=b.searchParameters)==null?void 0:S.facetFilters)??[],v=[...(Array.isArray(l)?l:[l]).filter(g=>!g.startsWith("lang:")),`lang:${a.value}`];f({...b,searchParameters:{...b.searchParameters,facetFilters:v}})}function f(b){const l=Object.assign({},b,{container:"#docsearch",navigator:{navigate({itemUrl:v}){const{pathname:s}=new URL(window.location.origin+v);n.path===s?window.location.assign(window.location.origin+v):r.go(v)}},transformItems(v){return v.map(s=>Object.assign({},s,{url:m(s.url)}))},hitComponent({hit:v,children:s}){return{__v:null,type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:v.url,children:s}}}});yu(l)}function m(b){const{pathname:l,hash:v}=new URL(b,location.origin);return l.replace(/\.html$/,o.value.cleanUrls?"":".html")+v}return(b,l)=>(bi(),gi("div",_u))}});export{Su as default}; diff --git a/assets/chunks/VPAlgoliaSearchBox.81ddc2b4.js b/assets/chunks/VPAlgoliaSearchBox.81ddc2b4.js deleted file mode 100644 index 5c75868..0000000 --- a/assets/chunks/VPAlgoliaSearchBox.81ddc2b4.js +++ /dev/null @@ -1,14 +0,0 @@ -import{d as Dr,ai as Cr,x as xr,p as Ar,w as Nr,o as Rr,c as Tr}from"./framework.6241eaf2.js";import{u as Lr}from"./theme.c4d303ac.js";/*! @docsearch/js 3.4.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function Rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function I(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ze(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var a,c,i=[],u=!0,s=!1;try{for(o=o.call(n);!(u=(a=o.next()).done)&&(i.push(a.value),!r||i.length!==r);u=!0);}catch(l){s=!0,c=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw c}}return i}}(e,t)||Fn(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Je(e){return function(t){if(Array.isArray(t))return dt(t)}(e)||function(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}(e)||Fn(e)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Fn(e,t){if(e){if(typeof e=="string")return dt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?dt(e,t):void 0}}function dt(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n3)for(n=[n],a=3;a0?Ee(d.type,d.props,d.key,null,d.__v):d)!=null){if(d.__=n,d.__b=n.__b+1,(m=S[l])===null||m&&d.key==m.key&&d.type===m.type)S[l]=void 0;else for(p=0;p3)for(n=[n],a=3;a=n.__.length&&n.__.push({}),n.__[e]}function Xn(e){return se=1,er(nr,e)}function er(e,t,n){var r=De(fe++,2);return r.t=e,r.__c||(r.__=[n?n(t):nr(void 0,t),function(o){var a=r.t(r.__[0],o);r.__[0]!==a&&(r.__=[a,r.__[1]],r.__c.setState({}))}],r.__c=T),r.__}function tr(e,t){var n=De(fe++,3);!E.__s&&Dt(n.__H,t)&&(n.__=e,n.__H=t,T.__H.__h.push(n))}function Kt(e,t){var n=De(fe++,4);!E.__s&&Dt(n.__H,t)&&(n.__=e,n.__H=t,T.__h.push(n))}function ct(e,t){var n=De(fe++,7);return Dt(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Vr(){vt.forEach(function(e){if(e.__P)try{e.__H.__h.forEach(Be),e.__H.__h.forEach(yt),e.__H.__h=[]}catch(t){e.__H.__h=[],E.__e(t,e.__v)}}),vt=[]}E.__b=function(e){T=null,Ut&&Ut(e)},E.__r=function(e){Ft&&Ft(e),fe=0;var t=(T=e.__c).__H;t&&(t.__h.forEach(Be),t.__h.forEach(yt),t.__h=[])},E.diffed=function(e){Bt&&Bt(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(vt.push(t)!==1&&Ht===E.requestAnimationFrame||((Ht=E.requestAnimationFrame)||function(n){var r,o=function(){clearTimeout(a),zt&&cancelAnimationFrame(r),setTimeout(n)},a=setTimeout(o,100);zt&&(r=requestAnimationFrame(o))})(Vr)),T=void 0},E.__c=function(e,t){t.some(function(n){try{n.__h.forEach(Be),n.__h=n.__h.filter(function(r){return!r.__||yt(r)})}catch(r){t.some(function(o){o.__h&&(o.__h=[])}),t=[],E.__e(r,n.__v)}}),Vt&&Vt(e,t)},E.unmount=function(e){Wt&&Wt(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(Be)}catch(n){E.__e(n,t.__v)}};var zt=typeof requestAnimationFrame=="function";function Be(e){var t=T;typeof e.__c=="function"&&e.__c(),T=t}function yt(e){var t=T;e.__c=e.__(),T=t}function Dt(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function nr(e,t){return typeof t=="function"?t(e):t}function rr(e,t){for(var n in t)e[n]=t[n];return e}function _t(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var r in t)if(r!=="__source"&&e[r]!==t[r])return!0;return!1}function gt(e){this.props=e}(gt.prototype=new W).isPureReactComponent=!0,gt.prototype.shouldComponentUpdate=function(e,t){return _t(this.props,e)||_t(this.state,t)};var Jt=E.__b;E.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Jt&&Jt(e)};var Wr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,$t=function(e,t){return e==null?null:J(J(e).map(t))},Kr={map:$t,forEach:$t,count:function(e){return e?J(e).length:0},only:function(e){var t=J(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:J},zr=E.__e;function Ve(){this.__u=0,this.t=null,this.__b=null}function or(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function be(){this.u=null,this.o=null}E.__e=function(e,t,n){if(e.then){for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),r.__c(e,t)}zr(e,t,n)},(Ve.prototype=new W).__c=function(e,t){var n=t.__c,r=this;r.t==null&&(r.t=[]),r.t.push(n);var o=or(r.__v),a=!1,c=function(){a||(a=!0,n.componentWillUnmount=n.__c,o?o(i):i())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){c(),n.__c&&n.__c()};var i=function(){if(!--r.__u){if(r.state.__e){var s=r.state.__e;r.__v.__k[0]=function p(m,d,_){return m&&(m.__v=null,m.__k=m.__k&&m.__k.map(function(h){return p(h,d,_)}),m.__c&&m.__c.__P===d&&(m.__e&&_.insertBefore(m.__e,m.__d),m.__c.__e=!0,m.__c.__P=_)),m}(s,s.__c.__P,s.__c.__O)}var l;for(r.setState({__e:r.__b=null});l=r.t.pop();)l.forceUpdate()}},u=t.__h===!0;r.__u++||u||r.setState({__e:r.__b=r.__v.__k[0]}),e.then(c,c)},Ve.prototype.componentWillUnmount=function(){this.t=[]},Ve.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function a(c,i,u){return c&&(c.__c&&c.__c.__H&&(c.__c.__H.__.forEach(function(s){typeof s.__c=="function"&&s.__c()}),c.__c.__H=null),(c=rr({},c)).__c!=null&&(c.__c.__P===u&&(c.__c.__P=i),c.__c=null),c.__k=c.__k&&c.__k.map(function(s){return a(s,i,u)})),c}(this.__b,n,r.__O=r.__P)}this.__b=null}var o=t.__e&&V(Y,null,e.fallback);return o&&(o.__h=null),[V(Y,null,t.__e?null:e.children),o]};var Qt=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(r)}}),Ie(V(Jr,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function ar(e,t){return V($r,{__v:e,i:t})}(be.prototype=new W).__e=function(e){var t=this,n=or(t.__v),r=t.o.get(e);return r[0]++,function(o){var a=function(){t.props.revealOrder?(r.push(o),Qt(t,e,r)):o()};n?n(a):a()}},be.prototype.render=function(e){this.u=null,this.o=new Map;var t=J(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},be.prototype.componentDidUpdate=be.prototype.componentDidMount=function(){var e=this;this.o.forEach(function(t,n){Qt(e,n,t)})};var cr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,Qr=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Zr=function(e){return(typeof Symbol<"u"&&je(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(e)};function ir(e,t,n){return t.__k==null&&(t.textContent=""),Ie(e,t),typeof n=="function"&&n(),e?e.__c:null}W.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(W.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Zt=E.event;function Yr(){}function Gr(){return this.cancelBubble}function Xr(){return this.defaultPrevented}E.event=function(e){return Zt&&(e=Zt(e)),e.persist=Yr,e.isPropagationStopped=Gr,e.isDefaultPrevented=Xr,e.nativeEvent=e};var ur,Yt={configurable:!0,get:function(){return this.class}},Gt=E.vnode;E.vnode=function(e){var t=e.type,n=e.props,r=n;if(typeof t=="string"){for(var o in r={},n){var a=n[o];o==="value"&&"defaultValue"in n&&a==null||(o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&a===!0?a="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!Zr(n.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():Qr.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():a===null&&(a=void 0),r[o]=a)}t=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=J(n.children).forEach(function(c){c.props.selected=r.value.indexOf(c.props.value)!=-1})),t=="select"&&r.defaultValue!=null&&(r.value=J(n.children).forEach(function(c){c.props.selected=r.multiple?r.defaultValue.indexOf(c.props.value)!=-1:r.defaultValue==c.props.value})),e.props=r}t&&n.class!=n.className&&(Yt.enumerable="className"in n,n.className!=null&&(r.class=n.className),Object.defineProperty(r,"className",Yt)),e.$$typeof=cr,Gt&&Gt(e)};var Xt=E.__r;E.__r=function(e){Xt&&Xt(e),ur=e.__c};var eo={ReactCurrentDispatcher:{current:{readContext:function(e){return ur.__n[e.__c].props.value}}}};(typeof performance>"u"?"undefined":je(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function en(e){return!!e&&e.$$typeof===cr}var f={useState:Xn,useReducer:er,useEffect:tr,useLayoutEffect:Kt,useRef:function(e){return se=5,ct(function(){return{current:e}},[])},useImperativeHandle:function(e,t,n){se=6,Kt(function(){typeof e=="function"?e(t()):e&&(e.current=t())},n==null?n:n.concat(e))},useMemo:ct,useCallback:function(e,t){return se=8,ct(function(){return e},t)},useContext:function(e){var t=T.context[e.__c],n=De(fe++,9);return n.__c=e,t?(n.__==null&&(n.__=!0,t.sub(T)),t.props.value):e.__},useDebugValue:function(e,t){E.useDebugValue&&E.useDebugValue(t?t(e):e)},version:"16.8.0",Children:Kr,render:ir,hydrate:function(e,t,n){return Gn(e,t),typeof n=="function"&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(Ie(null,e),!0)},createPortal:ar,createElement:V,createContext:function(e,t){var n={__c:t="__cC"+Vn++,__:e,Consumer:function(r,o){return r.children(o)},Provider:function(r){var o,a;return this.getChildContext||(o=[],(a={})[t]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(c){this.props.value!==c.value&&o.some(ht)},this.sub=function(c){o.push(c);var i=c.componentWillUnmount;c.componentWillUnmount=function(){o.splice(o.indexOf(c),1),i&&i.call(c)}}),r.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(e){return V.bind(null,e)},cloneElement:function(e){return en(e)?Br.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:Y,isValidElement:en,findDOMNode:function(e){return e&&(e.base||e.nodeType===1&&e)||null},Component:W,PureComponent:gt,memo:function(e,t){function n(o){var a=this.props.ref,c=a==o.ref;return!c&&a&&(a.call?a(null):a.current=null),t?!t(this.props,o)||!c:_t(this.props,o)}function r(o){return this.shouldComponentUpdate=n,V(e,o)}return r.displayName="Memo("+(e.displayName||e.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(e){function t(n,r){var o=rr({},n);return delete o.ref,e(o,(r=n.ref||r)&&(je(r)!="object"||"current"in r)?r:null)}return t.$$typeof=Wr,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:Y,Suspense:Ve,SuspenseList:be,lazy:function(e){var t,n,r;function o(a){if(t||(t=e()).then(function(c){n=c.default||c},function(c){r=c}),r)throw r;if(!n)throw t;return V(n,a)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:eo};function to(){return f.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},f.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function lr(){return f.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},f.createElement("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",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var no=["translations"];function bt(){return bt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ao=f.forwardRef(function(e,t){var n=e.translations,r=n===void 0?{}:n,o=oo(e,no),a=r.buttonText,c=a===void 0?"Search":a,i=r.buttonAriaLabel,u=i===void 0?"Search":i,s=ro(Xn(null),2),l=s[0],p=s[1];return tr(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("⌘"):p("Ctrl"))},[]),f.createElement("button",bt({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),f.createElement("span",{className:"DocSearch-Button-Container"},f.createElement(lr,null),f.createElement("span",{className:"DocSearch-Button-Placeholder"},c)),f.createElement("span",{className:"DocSearch-Button-Keys"},l!==null&&f.createElement(f.Fragment,null,f.createElement("kbd",{className:"DocSearch-Button-Key"},l==="Ctrl"?f.createElement(to,null):l),f.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))});function ke(e){return e.reduce(function(t,n){return t.concat(n)},[])}var co=0;function Ot(e){return e.collections.length===0?0:e.collections.reduce(function(t,n){return t+n.items.length},0)}var St=function(){},io=[{segment:"autocomplete-core",version:"1.8.2"}];function We(e,t){var n=t;return{then:function(r,o){return We(e.then(Re(r,n,e),Re(o,n,e)),n)},catch:function(r){return We(e.catch(Re(r,n,e)),n)},finally:function(r){return r&&n.onCancelList.push(r),We(e.finally(Re(r&&function(){return n.onCancelList=[],r()},n,e)),n)},cancel:function(){n.isCanceled=!0;var r=n.onCancelList;n.onCancelList=[],r.forEach(function(o){o()})},isCanceled:function(){return n.isCanceled===!0}}}function nn(e){return We(e,{isCanceled:!1,onCancelList:[]})}function Re(e,t,n){return e?function(r){return t.isCanceled?r:e(r)}:n}function rn(e,t,n,r){if(!n)return null;if(e<0&&(t===null||r!==null&&t===0))return n+e;var o=(t===null?-1:t)+e;return o<=-1||o>=n?r===null?null:0:o}function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function an(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(a){return a.sources}},e),{},{id:(n=e.id)!==null&&n!==void 0?n:"autocomplete-".concat(co++),plugins:o,initialState:oe({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(a){var c;(c=e.onStateChange)===null||c===void 0||c.call(e,a),o.forEach(function(i){var u;return(u=i.onStateChange)===null||u===void 0?void 0:u.call(i,a)})},onSubmit:function(a){var c;(c=e.onSubmit)===null||c===void 0||c.call(e,a),o.forEach(function(i){var u;return(u=i.onSubmit)===null||u===void 0?void 0:u.call(i,a)})},onReset:function(a){var c;(c=e.onReset)===null||c===void 0||c.call(e,a),o.forEach(function(i){var u;return(u=i.onReset)===null||u===void 0?void 0:u.call(i,a)})},getSources:function(a){return Promise.all([].concat(ho(o.map(function(c){return c.getSources})),[e.getSources]).filter(Boolean).map(function(c){return function(i,u){var s=[];return Promise.resolve(i(u)).then(function(l){return Promise.all(l.filter(function(p){return!!p}).map(function(p){if(p.sourceId,s.includes(p.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(p.sourceId)," is not unique."));s.push(p.sourceId);var m={getItemInputValue:function(_){return _.state.query},getItemUrl:function(){},onSelect:function(_){(0,_.setIsOpen)(!1)},onActive:St,onResolve:St};Object.keys(m).forEach(function(_){m[_].__default=!0});var d=an(an({},m),p);return Promise.resolve(d)}))})}(c,a)})).then(function(c){return ke(c)}).then(function(c){return c.map(function(i){return oe(oe({},i),{},{onSelect:function(u){i.onSelect(u),t.forEach(function(s){var l;return(l=s.onSelect)===null||l===void 0?void 0:l.call(s,u)})},onActive:function(u){i.onActive(u),t.forEach(function(s){var l;return(l=s.onActive)===null||l===void 0?void 0:l.call(s,u)})},onResolve:function(u){i.onResolve(u),t.forEach(function(s){var l;return(l=s.onResolve)===null||l===void 0?void 0:l.call(s,u)})}})})})},navigator:oe({navigate:function(a){var c=a.itemUrl;r.location.assign(c)},navigateNewTab:function(a){var c=a.itemUrl,i=r.open(c,"_blank","noopener");i==null||i.focus()},navigateNewWindow:function(a){var c=a.itemUrl;r.open(c,"_blank","noopener")}},e.navigator)})}function fn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function qe(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var dn,lt,He,ge=null,hn=(dn=-1,lt=-1,He=void 0,function(e){var t=++dn;return Promise.resolve(e).then(function(n){return He&&t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ko=["props","refresh","store"],Do=["inputElement","formElement","panelElement"],Co=["inputElement"],xo=["inputElement","maxLength"],Ao=["sourceIndex"],No=["sourceIndex"],Ro=["item","source","sourceIndex"];function yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function R(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Lo(e){var t=e.props,n=e.refresh,r=e.store,o=te(e,ko),a=function(c,i){return i!==void 0?"".concat(c,"-").concat(i):c};return{getEnvironmentProps:function(c){var i=c.inputElement,u=c.formElement,s=c.panelElement;function l(p){!r.getState().isOpen&&r.pendingRequests.isEmpty()||p.target===i||[u,s].some(function(m){return d=m,_=p.target,d===_||d.contains(_);var d,_})===!1&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return R({onTouchStart:l,onMouseDown:l,onTouchMove:function(p){r.getState().isOpen!==!1&&i===t.environment.document.activeElement&&p.target!==i&&i.blur()}},te(c,Do))},getRootProps:function(c){return R({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},c)},getFormProps:function(c){return c.inputElement,R({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(R({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),(u=c.inputElement)===null||u===void 0||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(R({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),(u=c.inputElement)===null||u===void 0||u.focus()}},te(c,Co))},getLabelProps:function(c){var i=c||{},u=i.sourceIndex,s=te(i,Ao);return R({htmlFor:"".concat(a(t.id,u),"-input"),id:"".concat(a(t.id,u),"-label")},s)},getInputProps:function(c){var i;function u(y){(t.openOnFocus||r.getState().query)&&ie(R({event:y,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var s=c||{},l=(s.inputElement,s.maxLength),p=l===void 0?512:l,m=te(s,xo),d=ue(r.getState()),_=function(y){return!!(y&&y.match(lo))}(((i=t.environment.navigator)===null||i===void 0?void 0:i.userAgent)||""),h=d!=null&&d.itemUrl&&!_?"go":"search";return R({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&r.getState().activeItemId!==null?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:h,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:p,type:"search",onChange:function(y){ie(R({event:y,props:t,query:y.currentTarget.value.slice(0,p),refresh:n,store:r},o))},onKeyDown:function(y){(function(S){var g=S.event,O=S.props,b=S.refresh,v=S.store,j=Io(S,jo);if(g.key==="ArrowUp"||g.key==="ArrowDown"){var C=function(){var q=O.environment.document.getElementById("".concat(O.id,"-item-").concat(v.getState().activeItemId));q&&(q.scrollIntoViewIfNeeded?q.scrollIntoViewIfNeeded(!1):q.scrollIntoView(!1))},L=function(){var q=ue(v.getState());if(v.getState().activeItemId!==null&&q){var Ce=q.item,G=q.itemInputValue,nt=q.itemUrl,pe=q.source;pe.onActive(ee({event:g,item:Ce,itemInputValue:G,itemUrl:nt,refresh:b,source:pe,state:v.getState()},j))}};g.preventDefault(),v.getState().isOpen===!1&&(O.openOnFocus||v.getState().query)?ie(ee({event:g,props:O,query:v.getState().query,refresh:b,store:v},j)).then(function(){v.dispatch(g.key,{nextActiveItemId:O.defaultActiveItemId}),L(),setTimeout(C,0)}):(v.dispatch(g.key,{}),L(),C())}else if(g.key==="Escape")g.preventDefault(),v.dispatch(g.key,null),v.pendingRequests.cancelAll();else if(g.key==="Tab")v.dispatch("blur",null),v.pendingRequests.cancelAll();else if(g.key==="Enter"){if(v.getState().activeItemId===null||v.getState().collections.every(function(q){return q.items.length===0}))return void(O.debug||v.pendingRequests.cancelAll());g.preventDefault();var A=ue(v.getState()),D=A.item,N=A.itemInputValue,F=A.itemUrl,B=A.source;if(g.metaKey||g.ctrlKey)F!==void 0&&(B.onSelect(ee({event:g,item:D,itemInputValue:N,itemUrl:F,refresh:b,source:B,state:v.getState()},j)),O.navigator.navigateNewTab({itemUrl:F,item:D,state:v.getState()}));else if(g.shiftKey)F!==void 0&&(B.onSelect(ee({event:g,item:D,itemInputValue:N,itemUrl:F,refresh:b,source:B,state:v.getState()},j)),O.navigator.navigateNewWindow({itemUrl:F,item:D,state:v.getState()}));else if(!g.altKey){if(F!==void 0)return B.onSelect(ee({event:g,item:D,itemInputValue:N,itemUrl:F,refresh:b,source:B,state:v.getState()},j)),void O.navigator.navigate({itemUrl:F,item:D,state:v.getState()});ie(ee({event:g,nextState:{isOpen:!1},props:O,query:N,refresh:b,store:v},j)).then(function(){B.onSelect(ee({event:g,item:D,itemInputValue:N,itemUrl:F,refresh:b,source:B,state:v.getState()},j))})}}})(R({event:y,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:St,onClick:function(y){c.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(y)}},m)},getPanelProps:function(c){return R({onMouseDown:function(i){i.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},c)},getListProps:function(c){var i=c||{},u=i.sourceIndex,s=te(i,No);return R({role:"listbox","aria-labelledby":"".concat(a(t.id,u),"-label"),id:"".concat(a(t.id,u),"-list")},s)},getItemProps:function(c){var i=c.item,u=c.source,s=c.sourceIndex,l=te(c,Ro);return R({id:"".concat(a(t.id,s),"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(p){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var m=ue(r.getState());if(r.getState().activeItemId!==null&&m){var d=m.item,_=m.itemInputValue,h=m.itemUrl,y=m.source;y.onActive(R({event:p,item:d,itemInputValue:_,itemUrl:h,refresh:n,source:y,state:r.getState()},o))}}},onMouseDown:function(p){p.preventDefault()},onClick:function(p){var m=u.getItemInputValue({item:i,state:r.getState()}),d=u.getItemUrl({item:i,state:r.getState()});(d?Promise.resolve():ie(R({event:p,nextState:{isOpen:!1},props:t,query:m,refresh:n,store:r},o))).then(function(){u.onSelect(R({event:p,item:i,itemInputValue:m,itemUrl:d,refresh:n,source:u,state:r.getState()},o))})}},l)}}}function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function qo(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function aa(e){var t=e.translations,n=t===void 0?{}:t,r=oa(e,na),o=n.noResultsText,a=o===void 0?"No results for":o,c=n.suggestedQueryText,i=c===void 0?"Try searching for":c,u=n.reportMissingResultsText,s=u===void 0?"Believe this query should return results?":u,l=n.reportMissingResultsLinkText,p=l===void 0?"Let us know.":l,m=r.state.context.searchSuggestions;return f.createElement("div",{className:"DocSearch-NoResults"},f.createElement("div",{className:"DocSearch-Screen-Icon"},f.createElement(ea,null)),f.createElement("p",{className:"DocSearch-Title"},a,' "',f.createElement("strong",null,r.state.query),'"'),m&&m.length>0&&f.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},f.createElement("p",{className:"DocSearch-Help"},i,":"),f.createElement("ul",null,m.slice(0,3).reduce(function(d,_){return[].concat(ra(d),[f.createElement("li",{key:_},f.createElement("button",{className:"DocSearch-Prefill",key:_,type:"button",onClick:function(){r.setQuery(_.toLowerCase()+" "),r.refresh(),r.inputRef.current.focus()}},_))])},[]))),r.getMissingResultsUrl&&f.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),f.createElement("a",{href:r.getMissingResultsUrl({query:r.state.query}),target:"_blank",rel:"noopener noreferrer"},p)))}var ca=["hit","attribute","tagName"];function En(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function wn(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function jn(e,t){return t.split(".").reduce(function(n,r){return n!=null&&n[r]?n[r]:null},e)}function ce(e){var t=e.hit,n=e.attribute,r=e.tagName;return V(r===void 0?"span":r,wn(wn({},ua(e,ca)),{},{dangerouslySetInnerHTML:{__html:jn(t,"_snippetResult.".concat(n,".value"))||jn(t,n)}}))}function Pn(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var a,c,i=[],u=!0,s=!1;try{for(o=o.call(n);!(u=(a=o.next()).done)&&(i.push(a.value),!r||i.length!==r);u=!0);}catch(l){s=!0,c=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw c}}return i}}(e,t)||function(n,r){if(n){if(typeof n=="string")return In(n,r);var o=Object.prototype.toString.call(n).slice(8,-1);if(o==="Object"&&n.constructor&&(o=n.constructor.name),o==="Map"||o==="Set")return Array.from(n);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return In(n,r)}}(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function In(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n|<\/mark>)/g,fa=RegExp(mr.source);function dr(e){var t,n,r,o,a,c=e;if(!c.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var i=((c.__docsearch_parent?(t=c.__docsearch_parent)===null||t===void 0||(n=t._highlightResult)===null||n===void 0||(r=n.hierarchy)===null||r===void 0?void 0:r.lvl0:(o=e._highlightResult)===null||o===void 0||(a=o.hierarchy)===null||a===void 0?void 0:a.lvl0)||{}).value;return i&&fa.test(i)?i.replace(mr,""):i}function jt(){return jt=Object.assign||function(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ha(e){var t=e.translations,n=t===void 0?{}:t,r=da(e,ma),o=n.recentSearchesTitle,a=o===void 0?"Recent":o,c=n.noRecentSearchesText,i=c===void 0?"No recent searches":c,u=n.saveRecentSearchButtonTitle,s=u===void 0?"Save this search":u,l=n.removeRecentSearchButtonTitle,p=l===void 0?"Remove this search from history":l,m=n.favoriteSearchesTitle,d=m===void 0?"Favorite":m,_=n.removeFavoriteSearchButtonTitle,h=_===void 0?"Remove this search from favorites":_;return r.state.status==="idle"&&r.hasCollections===!1?r.disableUserPersonalization?null:f.createElement("div",{className:"DocSearch-StartScreen"},f.createElement("p",{className:"DocSearch-Help"},i)):r.hasCollections===!1?null:f.createElement("div",{className:"DocSearch-Dropdown-Container"},f.createElement(wt,Ye({},r,{title:a,collection:r.state.collections[0],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Jo,null))},renderAction:function(y){var S=y.item,g=y.runFavoriteTransition,O=y.runDeleteTransition;return f.createElement(f.Fragment,null,f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(b){b.preventDefault(),b.stopPropagation(),g(function(){r.favoriteSearches.add(S),r.recentSearches.remove(S),r.refresh()})}},f.createElement(Sn,null))),f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:p,type:"submit",onClick:function(b){b.preventDefault(),b.stopPropagation(),O(function(){r.recentSearches.remove(S),r.refresh()})}},f.createElement(Et,null))))}})),f.createElement(wt,Ye({},r,{title:d,collection:r.state.collections[1],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Sn,null))},renderAction:function(y){var S=y.item,g=y.runDeleteTransition;return f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),g(function(){r.favoriteSearches.remove(S),r.refresh()})}},f.createElement(Et,null)))}})))}var va=["translations"];function Ge(){return Ge=Object.assign||function(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _a=f.memo(function(e){var t=e.translations,n=t===void 0?{}:t,r=ya(e,va);if(r.state.status==="error")return f.createElement(ta,{translations:n==null?void 0:n.errorScreen});var o=r.state.collections.some(function(a){return a.items.length>0});return r.state.query?o===!1?f.createElement(aa,Ge({},r,{translations:n==null?void 0:n.noResultsScreen})):f.createElement(pa,r):f.createElement(ha,Ge({},r,{hasCollections:o,translations:n==null?void 0:n.startScreen}))},function(e,t){return t.state.status==="loading"||t.state.status==="stalled"}),ga=["translations"];function Xe(){return Xe=Object.assign||function(e){for(var t=1;t=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Oa(e){var t=e.translations,n=t===void 0?{}:t,r=ba(e,ga),o=n.resetButtonTitle,a=o===void 0?"Clear the query":o,c=n.resetButtonAriaLabel,i=c===void 0?"Clear the query":c,u=n.cancelButtonText,s=u===void 0?"Cancel":u,l=n.cancelButtonAriaLabel,p=l===void 0?"Cancel":l,m=r.getFormProps({inputElement:r.inputRef.current}).onReset;return f.useEffect(function(){r.autoFocus&&r.inputRef.current&&r.inputRef.current.focus()},[r.autoFocus,r.inputRef]),f.useEffect(function(){r.isFromSelection&&r.inputRef.current&&r.inputRef.current.select()},[r.isFromSelection,r.inputRef]),f.createElement(f.Fragment,null,f.createElement("form",{className:"DocSearch-Form",onSubmit:function(d){d.preventDefault()},onReset:m},f.createElement("label",Xe({className:"DocSearch-MagnifierLabel"},r.getLabelProps()),f.createElement(lr,null)),f.createElement("div",{className:"DocSearch-LoadingIndicator"},f.createElement(zo,null)),f.createElement("input",Xe({className:"DocSearch-Input",ref:r.inputRef},r.getInputProps({inputElement:r.inputRef.current,autoFocus:r.autoFocus,maxLength:64}))),f.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":i,hidden:!r.state.query},f.createElement(Et,null))),f.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":p,onClick:r.onClose},s))}var Sa=["_highlightResult","_snippetResult"];function Ea(e,t){if(e==null)return{};var n,r,o=function(c,i){if(c==null)return{};var u,s,l={},p=Object.keys(c);for(s=0;s=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function wa(e){return function(){var t="__TEST_KEY__";try{return localStorage.setItem(t,""),localStorage.removeItem(t),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function Cn(e){var t=e.key,n=e.limit,r=n===void 0?5:n,o=wa(t),a=o.getItem().slice(0,r);return{add:function(c){var i=c,u=(i._highlightResult,i._snippetResult,Ea(i,Sa)),s=a.findIndex(function(l){return l.objectID===u.objectID});s>-1&&a.splice(s,1),a.unshift(u),a=a.slice(0,r),o.setItem(a)},remove:function(c){a=a.filter(function(i){return i.objectID!==c.objectID}),o.setItem(a)},getAll:function(){return a}}}var ja=["facetName","facetQuery"];function Pa(e){var t,n="algoliasearch-client-js-".concat(e.key),r=function(){return t===void 0&&(t=e.localStorage||window.localStorage),t},o=function(){return JSON.parse(r().getItem(n)||"{}")};return{get:function(a,c){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){var u=JSON.stringify(a),s=o()[u];return Promise.all([s||c(),s!==void 0])}).then(function(u){var s=ze(u,2),l=s[0],p=s[1];return Promise.all([l,p||i.miss(l)])}).then(function(u){return ze(u,1)[0]})},set:function(a,c){return Promise.resolve().then(function(){var i=o();return i[JSON.stringify(a)]=c,r().setItem(n,JSON.stringify(i)),c})},delete:function(a){return Promise.resolve().then(function(){var c=o();delete c[JSON.stringify(a)],r().setItem(n,JSON.stringify(c))})},clear:function(){return Promise.resolve().then(function(){r().removeItem(n)})}}}function Oe(e){var t=Je(e.caches),n=t.shift();return n===void 0?{get:function(r,o){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(c){return Promise.all([c,a.miss(c)])}).then(function(c){return ze(c,1)[0]})},set:function(r,o){return Promise.resolve(o)},delete:function(r){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(r,o){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(r,o,a).catch(function(){return Oe({caches:t}).get(r,o,a)})},set:function(r,o){return n.set(r,o).catch(function(){return Oe({caches:t}).set(r,o)})},delete:function(r){return n.delete(r).catch(function(){return Oe({caches:t}).delete(r)})},clear:function(){return n.clear().catch(function(){return Oe({caches:t}).clear()})}}}function ft(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(n);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var c=r(),i=o&&o.miss||function(){return Promise.resolve()};return c.then(function(u){return i(u)}).then(function(){return c})},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(n){return delete t[JSON.stringify(n)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Ia(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function hr(e,t){return t&&Object.keys(t).forEach(function(n){e[n]=t[n](e)}),e}function et(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var le={Read:1,Write:2,Any:3},vr=1,ka=2,yr=3;function _r(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:vr;return I(I({},e),{},{status:t,lastUpdate:Date.now()})}function gr(e){return typeof e=="string"?{protocol:"https",url:e,accept:le.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||le.Any}}var An="GET",tt="POST";function Da(e,t){return Promise.all(t.map(function(n){return e.get(n,function(){return Promise.resolve(_r(n))})})).then(function(n){var r=n.filter(function(c){return function(i){return i.status===vr||Date.now()-i.lastUpdate>12e4}(c)}),o=n.filter(function(c){return function(i){return i.status===yr&&Date.now()-i.lastUpdate<=12e4}(c)}),a=[].concat(Je(r),Je(o));return{getTimeout:function(c,i){return(o.length===0&&c===0?1:o.length+3+c)*i},statelessHosts:a.length>0?a.map(function(c){return gr(c)}):t}})}function Nn(e,t,n,r){var o=[],a=function(m,d){if(!(m.method===An||m.data===void 0&&d.data===void 0)){var _=Array.isArray(m.data)?m.data:I(I({},m.data),d.data);return JSON.stringify(_)}}(n,r),c=function(m,d){var _=I(I({},m.headers),d.headers),h={};return Object.keys(_).forEach(function(y){var S=_[y];h[y.toLowerCase()]=S}),h}(e,r),i=n.method,u=n.method!==An?{}:I(I({},n.data),r.data),s=I(I(I({"x-algolia-agent":e.userAgent.value},e.queryParameters),u),r.queryParameters),l=0,p=function m(d,_){var h=d.pop();if(h===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Rn(o)};var y={data:a,headers:c,method:i,url:xa(h,n.path,s),connectTimeout:_(l,e.timeouts.connect),responseTimeout:_(l,r.timeout)},S=function(O){var b={request:y,response:O,host:h,triesLeft:d.length};return o.push(b),b},g={onSucess:function(O){return function(b){try{return JSON.parse(b.content)}catch(v){throw function(j,C){return{name:"DeserializationError",message:j,response:C}}(v.message,b)}}(O)},onRetry:function(O){var b=S(O);return O.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",Or(b)),e.hostsCache.set(h,_r(h,O.isTimedOut?yr:ka))]).then(function(){return m(d,_)})},onFail:function(O){throw S(O),function(b,v){var j=b.content,C=b.status,L=j;try{L=JSON.parse(j).message}catch{}return function(A,D,N){return{name:"ApiError",message:A,status:D,transporterStackTrace:N}}(L,C,v)}(O,Rn(o))}};return e.requester.send(y).then(function(O){return function(b,v){return function(j){var C=j.status;return j.isTimedOut||function(L){var A=L.isTimedOut,D=L.status;return!A&&~~D==0}(j)||~~(C/100)!=2&&~~(C/100)!=4}(b)?v.onRetry(b):~~(b.status/100)==2?v.onSucess(b):v.onFail(b)}(O,g)})};return Da(e.hostsCache,t).then(function(m){return p(Je(m.statelessHosts).reverse(),m.getTimeout)})}function Ca(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(n){var r="; ".concat(n.segment).concat(n.version!==void 0?" (".concat(n.version,")"):"");return t.value.indexOf(r)===-1&&(t.value="".concat(t.value).concat(r)),t}};return t}function xa(e,t,n){var r=br(n),o="".concat(e.protocol,"://").concat(e.url,"/").concat(t.charAt(0)==="/"?t.substr(1):t);return r.length&&(o+="?".concat(r)),o}function br(e){return Object.keys(e).map(function(t){return et("%s=%s",t,(n=e[t],Object.prototype.toString.call(n)==="[object Object]"||Object.prototype.toString.call(n)==="[object Array]"?JSON.stringify(e[t]):e[t]));var n}).join("&")}function Rn(e){return e.map(function(t){return Or(t)})}function Or(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return I(I({},e),{},{request:I(I({},e.request),{},{headers:I(I({},e.request.headers),t)})})}var Aa=function(e){var t=e.appId,n=function(a,c,i){var u={"x-algolia-api-key":i,"x-algolia-application-id":c};return{headers:function(){return a===Ke.WithinHeaders?u:{}},queryParameters:function(){return a===Ke.WithinQueryParameters?u:{}}}}(e.authMode!==void 0?e.authMode:Ke.WithinHeaders,t,e.apiKey),r=function(a){var c=a.hostsCache,i=a.logger,u=a.requester,s=a.requestsCache,l=a.responsesCache,p=a.timeouts,m=a.userAgent,d=a.hosts,_=a.queryParameters,h={hostsCache:c,logger:i,requester:u,requestsCache:s,responsesCache:l,timeouts:p,userAgent:m,headers:a.headers,queryParameters:_,hosts:d.map(function(y){return gr(y)}),read:function(y,S){var g=xn(S,h.timeouts.read),O=function(){return Nn(h,h.hosts.filter(function(v){return(v.accept&le.Read)!=0}),y,g)};if((g.cacheable!==void 0?g.cacheable:y.cacheable)!==!0)return O();var b={request:y,mappedRequestOptions:g,transporter:{queryParameters:h.queryParameters,headers:h.headers}};return h.responsesCache.get(b,function(){return h.requestsCache.get(b,function(){return h.requestsCache.set(b,O()).then(function(v){return Promise.all([h.requestsCache.delete(b),v])},function(v){return Promise.all([h.requestsCache.delete(b),Promise.reject(v)])}).then(function(v){var j=ze(v,2);return j[0],j[1]})})},{miss:function(v){return h.responsesCache.set(b,v)}})},write:function(y,S){return Nn(h,h.hosts.filter(function(g){return(g.accept&le.Write)!=0}),y,xn(S,h.timeouts.write))}};return h}(I(I({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:le.Read},{url:"".concat(t,".algolia.net"),accept:le.Write}].concat(Ia([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:I(I(I({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:I(I({},n.queryParameters()),e.queryParameters)})),o={transporter:r,appId:t,addAlgoliaAgent:function(a,c){r.userAgent.add({segment:a,version:c})},clearCache:function(){return Promise.all([r.requestsCache.clear(),r.responsesCache.clear()]).then(function(){})}};return hr(o,e.methods)},Sr=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r={transporter:e.transporter,appId:e.appId,indexName:t};return hr(r,n.methods)}},Tn=function(e){return function(t,n){var r=t.map(function(o){return I(I({},o),{},{params:br(o.params||{})})});return e.transporter.read({method:tt,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)}},Ln=function(e){return function(t,n){return Promise.all(t.map(function(r){var o=r.params,a=o.facetName,c=o.facetQuery,i=Mr(o,ja);return Sr(e)(r.indexName,{methods:{searchForFacetValues:Er}}).searchForFacetValues(a,c,I(I({},n),i))}))}},Na=function(e){return function(t,n,r){return e.transporter.read({method:tt,path:et("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:n},cacheable:!0},r)}},Ra=function(e){return function(t,n){return e.transporter.read({method:tt,path:et("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n)}},Er=function(e){return function(t,n,r){return e.transporter.read({method:tt,path:et("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},r)}},Ta=1,La=2,qa=3;function wr(e,t,n){var r,o={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(a){return new Promise(function(c){var i=new XMLHttpRequest;i.open(a.method,a.url,!0),Object.keys(a.headers).forEach(function(p){return i.setRequestHeader(p,a.headers[p])});var u,s=function(p,m){return setTimeout(function(){i.abort(),c({status:0,content:m,isTimedOut:!0})},1e3*p)},l=s(a.connectTimeout,"Connection timeout");i.onreadystatechange=function(){i.readyState>i.OPENED&&u===void 0&&(clearTimeout(l),u=s(a.responseTimeout,"Socket timeout"))},i.onerror=function(){i.status===0&&(clearTimeout(l),clearTimeout(u),c({content:i.responseText||"Network request failed",status:i.status,isTimedOut:!1}))},i.onload=function(){clearTimeout(l),clearTimeout(u),c({content:i.responseText,status:i.status,isTimedOut:!1})},i.send(a.data)})}},logger:(r=qa,{debug:function(a,c){return Ta>=r&&console.debug(a,c),Promise.resolve()},info:function(a,c){return La>=r&&console.info(a,c),Promise.resolve()},error:function(a,c){return console.error(a,c),Promise.resolve()}}),responsesCache:ft(),requestsCache:ft({serializable:!1}),hostsCache:Oe({caches:[Pa({key:"".concat("4.8.5","-").concat(e)}),ft()]}),userAgent:Ca("4.8.5").add({segment:"Browser",version:"lite"}),authMode:Ke.WithinQueryParameters};return Aa(I(I(I({},o),n),{},{methods:{search:Tn,searchForFacetValues:Ln,multipleQueries:Tn,multipleSearchForFacetValues:Ln,initIndex:function(a){return function(c){return Sr(a)(c,{methods:{search:Ra,searchForFacetValues:Er,findAnswers:Na}})}}}}))}wr.version="4.8.5";var Ma=["footer","searchBox"];function we(){return we=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(l[u]=c[u]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ba(e){var t=e.appId,n=e.apiKey,r=e.indexName,o=e.placeholder,a=o===void 0?"Search docs":o,c=e.searchParameters,i=e.maxResultsPerGroup,u=e.onClose,s=u===void 0?sa:u,l=e.transformItems,p=l===void 0?Dn:l,m=e.hitComponent,d=m===void 0?Ko:m,_=e.resultsFooterComponent,h=_===void 0?function(){return null}:_,y=e.navigator,S=e.initialScrollY,g=S===void 0?0:S,O=e.transformSearchClient,b=O===void 0?Dn:O,v=e.disableUserPersonalization,j=v!==void 0&&v,C=e.initialQuery,L=C===void 0?"":C,A=e.translations,D=A===void 0?{}:A,N=e.getMissingResultsUrl,F=D.footer,B=D.searchBox,q=Fa(D,Ma),Ce=Ua(f.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),G=Ce[0],nt=Ce[1],pe=f.useRef(null),rt=f.useRef(null),Ct=f.useRef(null),xe=f.useRef(null),me=f.useRef(null),$=f.useRef(10),xt=f.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,X=f.useRef(L||xt).current,At=function(P,k,M){return f.useMemo(function(){var H=wr(P,k);return H.addAlgoliaAgent("docsearch","3.4.0"),/docsearch.js \(.*\)/.test(H.transporter.userAgent.value)===!1&&H.addAlgoliaAgent("docsearch-react","3.4.0"),M(H)},[P,k,M])}(t,n,b),re=f.useRef(Cn({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,de=f.useRef(Cn({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:re.getAll().length===0?7:4})).current,he=f.useCallback(function(P){if(!j){var k=P.type==="content"?P.__docsearch_parent:P;k&&re.getAll().findIndex(function(M){return M.objectID===k.objectID})===-1&&de.add(k)}},[re,de,j]),ve=f.useMemo(function(){return Bo({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:X,context:{searchSuggestions:[]}},navigator:y,onStateChange:function(P){nt(P.state)},getSources:function(P){var k=P.query,M=P.state,H=P.setContext,Q=P.setStatus;return k?At.search([{query:k,indexName:r,params:pt({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat($.current),"hierarchy.lvl2:".concat($.current),"hierarchy.lvl3:".concat($.current),"hierarchy.lvl4:".concat($.current),"hierarchy.lvl5:".concat($.current),"hierarchy.lvl6:".concat($.current),"content:".concat($.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20},c)}]).catch(function(x){throw x.name==="RetryError"&&Q("error"),x}).then(function(x){var U=x.results[0],Z=U.hits,Ir=U.nbHits,ot=kn(Z,function(at){return dr(at)},i);return M.context.searchSuggestions.length0&&(Nt(),me.current&&me.current.focus())},[X,Nt]),f.useEffect(function(){function P(){if(rt.current){var k=.01*window.innerHeight;rt.current.style.setProperty("--docsearch-vh","".concat(k,"px"))}}return P(),window.addEventListener("resize",P),function(){window.removeEventListener("resize",P)}},[]),f.createElement("div",we({ref:pe},Pr({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",G.status==="stalled"&&"DocSearch-Container--Stalled",G.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(P){P.target===P.currentTarget&&s()}}),f.createElement("div",{className:"DocSearch-Modal",ref:rt},f.createElement("header",{className:"DocSearch-SearchBar",ref:Ct},f.createElement(Oa,we({},ve,{state:G,autoFocus:X.length===0,inputRef:me,isFromSelection:!!X&&X===xt,translations:B,onClose:s}))),f.createElement("div",{className:"DocSearch-Dropdown",ref:xe},f.createElement(_a,we({},ve,{indexName:r,state:G,hitComponent:d,resultsFooterComponent:h,disableUserPersonalization:j,recentSearches:de,favoriteSearches:re,inputRef:me,translations:q,getMissingResultsUrl:N,onItemClick:function(P,k){he(P),Fe(k)||s()}}))),f.createElement("footer",{className:"DocSearch-Footer"},f.createElement(Wo,{translations:F}))))}function Pt(){return Pt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:window;return typeof t=="string"?n.document.querySelector(t):t}(e.container,e.environment))}const Ka={id:"docsearch"},$a=Dr({__name:"VPAlgoliaSearchBox",props:{algolia:{}},setup(e){const t=e,n=Cr(),r=xr(),{site:o,localeIndex:a,lang:c}=Lr();Ar(i),Nr(a,i);function i(){var d,_;const l={...t.algolia,...(d=t.algolia.locales)==null?void 0:d[a.value]},p=((_=l.searchParameters)==null?void 0:_.facetFilters)??[],m=[...(Array.isArray(p)?p:[p]).filter(h=>!h.startsWith("lang:")),`lang:${c.value}`];u({...l,searchParameters:{...l.searchParameters,facetFilters:m}})}function u(l){const p=Object.assign({},l,{container:"#docsearch",navigator:{navigate({itemUrl:m}){const{pathname:d}=new URL(window.location.origin+m);r.path===d?window.location.assign(window.location.origin+m):n.go(m)}},transformItems(m){return m.map(d=>Object.assign({},d,{url:s(d.url)}))},hitComponent({hit:m,children:d}){return{__v:null,type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:m.url,children:d}}}});Wa(p)}function s(l){const{pathname:p,hash:m}=new URL(l);return p.replace(/\.html$/,o.value.cleanUrls?"":".html")+m}return(l,p)=>(Rr(),Tr("div",Ka))}});export{$a as default}; diff --git a/assets/chunks/framework.6241eaf2.js b/assets/chunks/framework.6241eaf2.js deleted file mode 100644 index c6ca624..0000000 --- a/assets/chunks/framework.6241eaf2.js +++ /dev/null @@ -1,2 +0,0 @@ -function Yn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const te={},ft=[],Pe=()=>{},xi=()=>!1,Ei=/^on[^a-z]/,Ht=e=>Ei.test(e),Jn=e=>e.startsWith("onUpdate:"),oe=Object.assign,Xn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ti=Object.prototype.hasOwnProperty,q=(e,t)=>Ti.call(e,t),N=Array.isArray,at=e=>an(e)==="[object Map]",hr=e=>an(e)==="[object Set]",B=e=>typeof e=="function",re=e=>typeof e=="string",Zn=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",pr=e=>ee(e)&&B(e.then)&&B(e.catch),gr=Object.prototype.toString,an=e=>gr.call(e),Ai=e=>an(e).slice(8,-1),mr=e=>an(e)==="[object Object]",Qn=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),un=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ri=/-(\w)/g,Me=un(e=>e.replace(Ri,(t,n)=>n?n.toUpperCase():"")),Pi=/\B([A-Z])/g,rt=un(e=>e.replace(Pi,"-$1").toLowerCase()),dn=un(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=un(e=>e?`on${dn(e)}`:""),Ft=(e,t)=>!Object.is(e,t),Tn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ii=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Oi=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let xs;const Nn=()=>xs||(xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Gn(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Si);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function es(e){let t="";if(re(e))t=e;else if(N(e))for(let n=0;nre(e)?e:e==null?"":N(e)||ee(e)&&(e.toString===gr||!B(e.toString))?JSON.stringify(e,br,2):String(e),br=(e,t)=>t&&t.__v_isRef?br(e,t.value):at(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:hr(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!N(t)&&!mr(t)?String(t):t;let _e;class $i{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},yr=e=>(e.w&Ve)>0,vr=e=>(e.n&Ve)>0,Bi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":N(e)?Qn(n)&&l.push(o.get("length")):(l.push(o.get(nt)),at(e)&&l.push(o.get($n)));break;case"delete":N(e)||(l.push(o.get(nt)),at(e)&&l.push(o.get($n)));break;case"set":at(e)&&l.push(o.get(nt));break}if(l.length===1)l[0]&&Un(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Un(ts(c))}}function Un(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Ts(s);for(const s of n)s.computed||Ts(s)}function Ts(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Ki(e,t){var n;return(n=tn.get(e))==null?void 0:n.get(t)}const ki=Yn("__proto__,__v_isRef,__isVue"),xr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Zn)),Wi=ss(),Vi=ss(!1,!0),qi=ss(!0),As=zi();function zi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=z(this);for(let i=0,o=this.length;i{e[t]=function(...n){vt();const s=z(this)[t].apply(this,n);return Ct(),s}}),e}function Yi(e){const t=z(this);return pe(t,"has",e),t.hasOwnProperty(e)}function ss(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?ao:Pr:t?Rr:Ar).get(s))return s;const o=N(s);if(!e){if(o&&q(As,r))return Reflect.get(As,r,i);if(r==="hasOwnProperty")return Yi}const l=Reflect.get(s,r,i);return(Zn(r)?xr.has(r):ki(r))||(e||pe(s,"get",r),t)?l:ce(l)?o&&Qn(r)?l:l.value:ee(l)?e?Ir(l):pn(l):l}}const Ji=Er(),Xi=Er(!0);function Er(e=!1){return function(n,s,r,i){let o=n[s];if(mt(o)&&ce(o)&&!ce(r))return!1;if(!e&&(!nn(r)&&!mt(r)&&(o=z(o),r=z(r)),!N(n)&&ce(o)&&!ce(r)))return o.value=r,!0;const l=N(n)&&Qn(s)?Number(s)e,hn=e=>Reflect.getPrototypeOf(e);function Dt(e,t,n=!1,s=!1){e=e.__v_raw;const r=z(e),i=z(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=hn(r),l=s?rs:n?ls:St;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Kt(e,t=!1){const n=this.__v_raw,s=z(n),r=z(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function kt(e,t=!1){return e=e.__v_raw,!t&&pe(z(e),"iterate",nt),Reflect.get(e,"size",e)}function Rs(e){e=z(e);const t=z(this);return hn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ps(e,t){t=z(t);const n=z(this),{has:s,get:r}=hn(n);let i=s.call(n,e);i||(e=z(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Ft(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Is(e){const t=z(this),{has:n,get:s}=hn(t);let r=n.call(t,e);r||(e=z(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function Os(){const e=z(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Wt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=z(o),c=t?rs:e?ls:St;return!e&&pe(l,"iterate",nt),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Vt(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),o=at(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?rs:t?ls:St;return!t&&pe(i,"iterate",c?$n:nt),{next(){const{value:p,done:y}=a.next();return y?{value:p,done:y}:{value:l?[d(p[0]),d(p[1])]:d(p),done:y}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:this}}function no(){const e={get(i){return Dt(this,i)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!1)},t={get(i){return Dt(this,i,!1,!0)},get size(){return kt(this)},has:Kt,add:Rs,set:Ps,delete:Is,clear:Os,forEach:Wt(!1,!0)},n={get(i){return Dt(this,i,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Wt(!0,!1)},s={get(i){return Dt(this,i,!0,!0)},get size(){return kt(this,!0)},has(i){return Kt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Wt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Vt(i,!1,!1),n[i]=Vt(i,!0,!1),t[i]=Vt(i,!1,!0),s[i]=Vt(i,!0,!0)}),[e,n,t,s]}const[so,ro,io,oo]=no();function is(e,t){const n=t?e?oo:io:e?ro:so;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(q(n,r)&&r in s?n:s,r,i)}const lo={get:is(!1,!1)},co={get:is(!1,!0)},fo={get:is(!0,!1)},Ar=new WeakMap,Rr=new WeakMap,Pr=new WeakMap,ao=new WeakMap;function uo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ho(e){return e.__v_skip||!Object.isExtensible(e)?0:uo(Ai(e))}function pn(e){return mt(e)?e:os(e,!1,Tr,lo,Ar)}function po(e){return os(e,!1,to,co,Rr)}function Ir(e){return os(e,!0,eo,fo,Pr)}function os(e,t,n,s,r){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=ho(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function ut(e){return mt(e)?ut(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function nn(e){return!!(e&&e.__v_isShallow)}function Or(e){return ut(e)||mt(e)}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Rt(e){return en(e,"__v_skip",!0),e}const St=e=>ee(e)?pn(e):e,ls=e=>ee(e)?Ir(e):e;function cs(e){ke&&Ae&&(e=z(e),wr(e.dep||(e.dep=ts())))}function fs(e,t){e=z(e);const n=e.dep;n&&Un(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function dt(e){return Fr(e,!1)}function go(e){return Fr(e,!0)}function Fr(e,t){return ce(e)?e:new mo(e,t)}class mo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:z(t),this._value=n?t:St(t)}get value(){return cs(this),this._value}set value(t){const n=this.__v_isShallow||nn(t)||mt(t);t=n?t:z(t),Ft(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:St(t),fs(this))}}function _o(e){return ce(e)?e.value:e}const bo={get:(e,t,n)=>_o(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ce(r)&&!ce(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Sr(e){return ut(e)?e:new Proxy(e,bo)}class yo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>cs(this),()=>fs(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Mc(e){return new yo(e)}class vo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 Ki(z(this._object),this._key)}}class Co{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Lc(e,t,n){return ce(e)?e:B(e)?new Co(e):ee(e)&&arguments.length>1?wo(e,t,n):dt(e)}function wo(e,t,n){const s=e[t];return ce(s)?s:new vo(e,t,n)}class xo{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new ns(t,()=>{this._dirty||(this._dirty=!0,fs(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=z(this);return cs(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Eo(e,t,n=!1){let s,r;const i=B(e);return i?(s=e,r=Pe):(s=e.get,r=e.set),new xo(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){$t(i,t,n)}return r}function we(e,t,n,s){if(B(e)){const i=We(e,t,n,s);return i&&pr(i)&&i.catch(o=>{$t(o,t,n)}),i}const r=[];for(let i=0;i>>1;Lt(fe[s])Se&&fe.splice(t,1)}function Po(e){N(e)?ht.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Qe+1:Qe))&&ht.push(e),Nr()}function Fs(e,t=Mt?Se+1:0){for(;tLt(n)-Lt(s)),Qe=0;Qee.id==null?1/0:e.id,Io=(e,t)=>{const n=Lt(e)-Lt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hr(e){jn=!1,Mt=!0,fe.sort(Io);const t=Pe;try{for(Se=0;Sere(x)?x.trim():x)),p&&(r=n.map(Ii))}let l,c=s[l=Xt(t)]||s[l=Xt(Me(t))];!c&&i&&(c=s[l=Xt(rt(t))]),c&&we(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,we(a,e,6,r)}}function $r(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!B(e)){const c=a=>{const d=$r(a,t,!0);d&&(l=!0,oe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ee(e)&&s.set(e,null),null):(N(i)?i.forEach(c=>o[c]=null):oe(o,i),ee(e)&&s.set(e,o),o)}function mn(e,t){return!e||!Ht(t)?!1:(t=t.slice(2).replace(/Once$/,""),q(e,t[0].toLowerCase()+t.slice(1))||q(e,rt(t))||q(e,t))}let ae=null,_n=null;function rn(e){const t=ae;return ae=e,_n=e&&e.type.__scopeId||null,t}function Nc(e){_n=e}function Hc(){_n=null}function Fo(e,t=ae,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&ks(-1);const i=rn(t);let o;try{o=e(...r)}finally{rn(i),s._d&&ks(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function An(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:p,data:y,setupState:x,ctx:I,inheritAttrs:R}=e;let $,_;const b=rn(e);try{if(n.shapeFlag&4){const P=r||s;$=Te(d.call(P,P,p,i,x,y,I)),_=c}else{const P=t;$=Te(P.length>1?P(i,{attrs:c,slots:l,emit:a}):P(i,null)),_=t.props?c:So(c)}}catch(P){Ot.length=0,$t(P,e,1),$=se(be)}let H=$;if(_&&R!==!1){const P=Object.keys(_),{shapeFlag:K}=H;P.length&&K&7&&(o&&P.some(Jn)&&(_=Mo(_,o)),H=qe(H,_))}return n.dirs&&(H=qe(H),H.dirs=H.dirs?H.dirs.concat(n.dirs):n.dirs),n.transition&&(H.transition=n.transition),$=H,rn(b),$}const So=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ht(n))&&((t||(t={}))[n]=e[n]);return t},Mo=(e,t)=>{const n={};for(const s in e)(!Jn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Lo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ss(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function Ur(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Po(e)}function $o(e,t){return bn(e,null,t)}function $c(e,t){return bn(e,null,{flush:"post"})}const qt={};function Zt(e,t,n){return bn(e,t,n)}function bn(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=te){var l;const c=ji()===((l=le)==null?void 0:l.scope)?le:null;let a,d=!1,p=!1;if(ce(e)?(a=()=>e.value,d=nn(e)):ut(e)?(a=()=>e,s=!0):N(e)?(p=!0,d=e.some(P=>ut(P)||nn(P)),a=()=>e.map(P=>{if(ce(P))return P.value;if(ut(P))return ct(P);if(B(P))return We(P,c,2)})):B(e)?t?a=()=>We(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return y&&y(),we(e,c,3,[x])}:a=Pe,t&&s){const P=a;a=()=>ct(P())}let y,x=P=>{y=b.onStop=()=>{We(P,c,4)}},I;if(yt)if(x=Pe,t?n&&we(t,c,3,[a(),p?[]:void 0,x]):a(),r==="sync"){const P=Fl();I=P.__watcherHandles||(P.__watcherHandles=[])}else return Pe;let R=p?new Array(e.length).fill(qt):qt;const $=()=>{if(b.active)if(t){const P=b.run();(s||d||(p?P.some((K,J)=>Ft(K,R[J])):Ft(P,R)))&&(y&&y(),we(t,c,3,[P,R===qt?void 0:p&&R[0]===qt?[]:R,x]),R=P)}else b.run()};$.allowRecurse=!!t;let _;r==="sync"?_=$:r==="post"?_=()=>de($,c&&c.suspense):($.pre=!0,c&&($.id=c.uid),_=()=>gn($));const b=new ns(a,_);t?n?$():R=b.run():r==="post"?de(b.run.bind(b),c&&c.suspense):b.run();const H=()=>{b.stop(),c&&c.scope&&Xn(c.scope.effects,b)};return I&&I.push(H),H}function Uo(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?jr(s,e):()=>s[e]:e.bind(s,s);let i;B(t)?i=t:(i=t.handler,n=t);const o=le;bt(this);const l=bn(r,i.bind(s),n);return o?bt(o):st(),l}function jr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{ct(n,t)});else if(mr(e))for(const n in e)ct(e[n],t);return e}function Fe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),Wr(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Br={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},Bo={name:"BaseTransition",props:Br,setup(e,{slots:t}){const n=ci(),s=jo();let r;return()=>{const i=t.default&&Kr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const R of i)if(R.type!==be){o=R;break}}const l=z(e),{mode:c}=l;if(s.isLeaving)return Rn(o);const a=Ms(o);if(!a)return Rn(o);const d=Bn(a,l,s,n);Dn(a,d);const p=n.subTree,y=p&&Ms(p);let x=!1;const{getTransitionKey:I}=a.type;if(I){const R=I();r===void 0?r=R:R!==r&&(r=R,x=!0)}if(y&&y.type!==be&&(!Ge(a,y)||x)){const R=Bn(y,l,s,n);if(Dn(y,R),c==="out-in")return s.isLeaving=!0,R.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},Rn(o);c==="in-out"&&a.type!==be&&(R.delayLeave=($,_,b)=>{const H=Dr(s,y);H[String(y.key)]=y,$._leaveCb=()=>{_(),$._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=b})}return o}}},Do=Bo;function Dr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Bn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:p,onLeave:y,onAfterLeave:x,onLeaveCancelled:I,onBeforeAppear:R,onAppear:$,onAfterAppear:_,onAppearCancelled:b}=t,H=String(e.key),P=Dr(n,e),K=(A,D)=>{A&&we(A,s,9,D)},J=(A,D)=>{const j=D[1];K(A,D),N(A)?A.every(Y=>Y.length<=1)&&j():A.length<=1&&j()},V={mode:i,persisted:o,beforeEnter(A){let D=l;if(!n.isMounted)if(r)D=R||l;else return;A._leaveCb&&A._leaveCb(!0);const j=P[H];j&&Ge(e,j)&&j.el._leaveCb&&j.el._leaveCb(),K(D,[A])},enter(A){let D=c,j=a,Y=d;if(!n.isMounted)if(r)D=$||c,j=_||a,Y=b||d;else return;let O=!1;const k=A._enterCb=S=>{O||(O=!0,S?K(Y,[A]):K(j,[A]),V.delayedLeave&&V.delayedLeave(),A._enterCb=void 0)};D?J(D,[A,k]):k()},leave(A,D){const j=String(e.key);if(A._enterCb&&A._enterCb(!0),n.isUnmounting)return D();K(p,[A]);let Y=!1;const O=A._leaveCb=k=>{Y||(Y=!0,D(),k?K(I,[A]):K(x,[A]),A._leaveCb=void 0,P[j]===e&&delete P[j])};P[j]=e,y?J(y,[A,O]):O()},clone(A){return Bn(A,t,n,s)}};return V}function Rn(e){if(Ut(e))return e=qe(e),e.children=null,e}function Ms(e){return Ut(e)?e.children?e.children[0]:void 0:e}function Dn(e,t){e.shapeFlag&6&&e.component?Dn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Kr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ioe({name:e.name},t,{setup:e}))():e}const pt=e=>!!e.type.__asyncLoader;function Uc(e){B(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,d=0;const p=()=>(d++,c=null,y()),y=()=>{let x;return c||(x=c=t().catch(I=>{if(I=I instanceof Error?I:new Error(String(I)),l)return new Promise((R,$)=>{l(I,()=>R(p()),()=>$(I),d+1)});throw I}).then(I=>x!==c&&c?c:(I&&(I.__esModule||I[Symbol.toStringTag]==="Module")&&(I=I.default),a=I,I)))};return us({name:"AsyncComponentWrapper",__asyncLoader:y,get __asyncResolved(){return a},setup(){const x=le;if(a)return()=>Pn(a,x);const I=b=>{c=null,$t(b,x,13,!s)};if(o&&x.suspense||yt)return y().then(b=>()=>Pn(b,x)).catch(b=>(I(b),()=>s?se(s,{error:b}):null));const R=dt(!1),$=dt(),_=dt(!!r);return r&&setTimeout(()=>{_.value=!1},r),i!=null&&setTimeout(()=>{if(!R.value&&!$.value){const b=new Error(`Async component timed out after ${i}ms.`);I(b),$.value=b}},i),y().then(()=>{R.value=!0,x.parent&&Ut(x.parent.vnode)&&gn(x.parent.update)}).catch(b=>{I(b),$.value=b}),()=>{if(R.value&&a)return Pn(a,x);if($.value&&s)return se(s,{error:$.value});if(n&&!_.value)return se(n)}}})}function Pn(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=se(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const Ut=e=>e.type.__isKeepAlive;function Ko(e,t){kr(e,"a",t)}function ko(e,t){kr(e,"da",t)}function kr(e,t,n=le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Ut(r.parent.vnode)&&Wo(s,t,n,r),r=r.parent}}function Wo(e,t,n,s){const r=yn(t,e,s,!0);Cn(()=>{Xn(s[t],r)},n)}function yn(e,t,n=le,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;vt(),bt(n);const l=we(t,n,e,o);return st(),Ct(),l});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=le)=>(!yt||e==="sp")&&yn(e,(...s)=>t(...s),n),Vo=$e("bm"),vn=$e("m"),qo=$e("bu"),zo=$e("u"),Wr=$e("bum"),Cn=$e("um"),Yo=$e("sp"),Jo=$e("rtg"),Xo=$e("rtc");function Zo(e,t=le){yn("ec",e,t)}const ds="components";function jc(e,t){return qr(ds,e,!0,t)||e}const Vr=Symbol.for("v-ndc");function Bc(e){return re(e)?qr(ds,e,!1)||e:e||Vr}function qr(e,t,n=!0,s=!1){const r=ae||le;if(r){const i=r.type;if(e===ds){const l=Pl(i,!1);if(l&&(l===t||l===Me(t)||l===dn(Me(t))))return i}const o=Ls(r[e]||i[e],t)||Ls(r.appContext[e],t);return!o&&s?i:o}}function Ls(e,t){return e&&(e[t]||e[Me(t)]||e[dn(Me(t))])}function Dc(e,t,n,s){let r;const i=n&&n[s];if(N(e)||re(e)){r=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);r=new Array(o.length);for(let l=0,c=o.length;lfn(t)?!(t.type===be||t.type===he&&!zr(t.children)):!0)?e:null}function kc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Xt(s)]=e[s];return n}const Kn=e=>e?fi(e)?_s(e)||e.proxy:Kn(e.parent):null,Pt=oe(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=>Kn(e.parent),$root:e=>Kn(e.root),$emit:e=>e.emit,$options:e=>hs(e),$forceUpdate:e=>e.f||(e.f=()=>gn(e.update)),$nextTick:e=>e.n||(e.n=Lr.bind(e.proxy)),$watch:e=>Uo.bind(e)}),In=(e,t)=>e!==te&&!e.__isScriptSetup&&q(e,t),Qo={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const x=o[t];if(x!==void 0)switch(x){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(In(s,t))return o[t]=1,s[t];if(r!==te&&q(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&q(a,t))return o[t]=3,i[t];if(n!==te&&q(n,t))return o[t]=4,n[t];kn&&(o[t]=0)}}const d=Pt[t];let p,y;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==te&&q(n,t))return o[t]=4,n[t];if(y=c.config.globalProperties,q(y,t))return y[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return In(r,t)?(r[t]=n,!0):s!==te&&q(s,t)?(s[t]=n,!0):q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&q(e,o)||In(t,o)||(l=i[0])&&q(l,o)||q(s,o)||q(Pt,o)||q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wc(){return Go().slots}function Go(){const e=ci();return e.setupContext||(e.setupContext=ui(e))}function Ns(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let kn=!0;function el(e){const t=hs(e),n=e.proxy,s=e.ctx;kn=!1,t.beforeCreate&&Hs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:p,mounted:y,beforeUpdate:x,updated:I,activated:R,deactivated:$,beforeDestroy:_,beforeUnmount:b,destroyed:H,unmounted:P,render:K,renderTracked:J,renderTriggered:V,errorCaptured:A,serverPrefetch:D,expose:j,inheritAttrs:Y,components:O,directives:k,filters:S}=t;if(a&&tl(a,s,null),o)for(const ne in o){const Q=o[ne];B(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);ee(ne)&&(e.data=pn(ne))}if(kn=!0,i)for(const ne in i){const Q=i[ne],ze=B(Q)?Q.bind(n,n):B(Q.get)?Q.get.bind(n,n):Pe,jt=!B(Q)&&B(Q.set)?Q.set.bind(n):Pe,Ye=Ee({get:ze,set:jt});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Ie=>Ye.value=Ie})}if(l)for(const ne in l)Yr(l[ne],s,n,ne);if(c){const ne=B(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{ll(Q,ne[Q])})}d&&Hs(d,e,"c");function X(ne,Q){N(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(Vo,p),X(vn,y),X(qo,x),X(zo,I),X(Ko,R),X(ko,$),X(Zo,A),X(Xo,J),X(Jo,V),X(Wr,b),X(Cn,P),X(Yo,D),N(j))if(j.length){const ne=e.exposed||(e.exposed={});j.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});K&&e.render===Pe&&(e.render=K),Y!=null&&(e.inheritAttrs=Y),O&&(e.components=O),k&&(e.directives=k)}function tl(e,t,n=Pe){N(e)&&(e=Wn(e));for(const s in e){const r=e[s];let i;ee(r)?"default"in r?i=gt(r.from||s,r.default,!0):i=gt(r.from||s):i=gt(r),ce(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Hs(e,t,n){we(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Yr(e,t,n,s){const r=s.includes(".")?jr(n,s):()=>n[s];if(re(e)){const i=t[e];B(i)&&Zt(r,i)}else if(B(e))Zt(r,e.bind(n));else if(ee(e))if(N(e))e.forEach(i=>Yr(i,t,n,s));else{const i=B(e.handler)?e.handler.bind(n):t[e.handler];B(i)&&Zt(r,i,e)}}function hs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>on(c,a,o,!0)),on(c,t,o)),ee(t)&&i.set(t,c),c}function on(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&on(e,i,n,!0),r&&r.forEach(o=>on(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=nl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const nl={data:$s,props:Us,emits:Us,methods:Tt,computed:Tt,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Tt,directives:Tt,watch:rl,provide:$s,inject:sl};function $s(e,t){return t?e?function(){return oe(B(e)?e.call(this,this):e,B(t)?t.call(this,this):t)}:t:e}function sl(e,t){return Tt(Wn(e),Wn(t))}function Wn(e){if(N(e)){const t={};for(let n=0;n1)return n&&B(t)?t.call(s&&s.proxy):t}}function cl(e,t,n,s=!1){const r={},i={};en(i,wn,1),e.propsDefaults=Object.create(null),Xr(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:po(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function fl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=z(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[y,x]=Zr(p,t,!0);oe(o,y),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 ee(e)&&s.set(e,ft),ft;if(N(i))for(let d=0;d-1,x[1]=R<0||I-1||q(x,"default"))&&l.push(p)}}}const a=[o,l];return ee(e)&&s.set(e,a),a}function js(e){return e[0]!=="$"}function Bs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Ds(e,t){return Bs(e)===Bs(t)}function Ks(e,t){return N(t)?t.findIndex(n=>Ds(n,e)):B(t)&&Ds(t,e)?0:-1}const Qr=e=>e[0]==="_"||e==="$stable",ps=e=>N(e)?e.map(Te):[Te(e)],al=(e,t,n)=>{if(t._n)return t;const s=Fo((...r)=>ps(t(...r)),n);return s._c=!1,s},Gr=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Qr(r))continue;const i=e[r];if(B(i))t[r]=al(r,i,s);else if(i!=null){const o=ps(i);t[r]=()=>o}}},ei=(e,t)=>{const n=ps(t);e.slots.default=()=>n},ul=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=z(t),en(t,"_",n)):Gr(t,e.slots={})}else e.slots={},t&&ei(e,t);en(e.slots,wn,1)},dl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Gr(t,r)),o=t}else t&&(ei(e,t),o={default:1});if(i)for(const l in r)!Qr(l)&&!(l in o)&&delete r[l]};function cn(e,t,n,s,r=!1){if(N(e)){e.forEach((y,x)=>cn(y,t&&(N(t)?t[x]:t),n,s,r));return}if(pt(s)&&!r)return;const i=s.shapeFlag&4?_s(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===te?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(re(a)?(d[a]=null,q(p,a)&&(p[a]=null)):ce(a)&&(a.value=null)),B(c))We(c,l,12,[o,d]);else{const y=re(c),x=ce(c);if(y||x){const I=()=>{if(e.f){const R=y?q(p,c)?p[c]:d[c]:c.value;r?N(R)&&Xn(R,i):N(R)?R.includes(i)||R.push(i):y?(d[c]=[i],q(p,c)&&(p[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else y?(d[c]=o,q(p,c)&&(p[c]=o)):x&&(c.value=o,e.k&&(d[e.k]=o))};o?(I.id=-1,de(I,n)):I()}}}let je=!1;const zt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Yt=e=>e.nodeType===8;function hl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(_,b)=>{if(!b.hasChildNodes()){n(null,_,b),sn(),b._vnode=_;return}je=!1,p(b.firstChild,_,null,null,null),sn(),b._vnode=_,je&&console.error("Hydration completed but contains mismatches.")},p=(_,b,H,P,K,J=!1)=>{const V=Yt(_)&&_.data==="[",A=()=>R(_,b,H,P,K,V),{type:D,ref:j,shapeFlag:Y,patchFlag:O}=b;let k=_.nodeType;b.el=_,O===-2&&(J=!1,b.dynamicChildren=null);let S=null;switch(D){case _t:k!==3?b.children===""?(c(b.el=r(""),o(_),_),S=_):S=A():(_.data!==b.children&&(je=!0,_.data=b.children),S=i(_));break;case be:k!==8||V?S=A():S=i(_);break;case It:if(V&&(_=i(_),k=_.nodeType),k===1||k===3){S=_;const ge=!b.children.length;for(let X=0;X{J=J||!!b.dynamicChildren;const{type:V,props:A,patchFlag:D,shapeFlag:j,dirs:Y}=b,O=V==="input"&&Y||V==="option";if(O||D!==-1){if(Y&&Fe(b,null,H,"created"),A)if(O||!J||D&48)for(const S in A)(O&&S.endsWith("value")||Ht(S)&&!At(S))&&s(_,S,null,A[S],!1,void 0,H);else A.onClick&&s(_,"onClick",null,A.onClick,!1,void 0,H);let k;if((k=A&&A.onVnodeBeforeMount)&&ve(k,H,b),Y&&Fe(b,null,H,"beforeMount"),((k=A&&A.onVnodeMounted)||Y)&&Ur(()=>{k&&ve(k,H,b),Y&&Fe(b,null,H,"mounted")},P),j&16&&!(A&&(A.innerHTML||A.textContent))){let S=x(_.firstChild,b,_,H,P,K,J);for(;S;){je=!0;const ge=S;S=S.nextSibling,l(ge)}}else j&8&&_.textContent!==b.children&&(je=!0,_.textContent=b.children)}return _.nextSibling},x=(_,b,H,P,K,J,V)=>{V=V||!!b.dynamicChildren;const A=b.children,D=A.length;for(let j=0;j{const{slotScopeIds:V}=b;V&&(K=K?K.concat(V):V);const A=o(_),D=x(i(_),b,A,H,P,K,J);return D&&Yt(D)&&D.data==="]"?i(b.anchor=D):(je=!0,c(b.anchor=a("]"),A,D),D)},R=(_,b,H,P,K,J)=>{if(je=!0,b.el=null,J){const D=$(_);for(;;){const j=i(_);if(j&&j!==D)l(j);else break}}const V=i(_),A=o(_);return l(_),n(null,b,A,V,H,P,zt(A),K),V},$=_=>{let b=0;for(;_;)if(_=i(_),_&&Yt(_)&&(_.data==="["&&b++,_.data==="]")){if(b===0)return i(_);b--}return _};return[d,p]}const de=Ur;function pl(e){return gl(e,hl)}function gl(e,t){const n=Nn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:p,nextSibling:y,setScopeId:x=Pe,insertStaticContent:I}=e,R=(f,u,h,m=null,g=null,w=null,T=!1,C=null,E=!!u.dynamicChildren)=>{if(f===u)return;f&&!Ge(f,u)&&(m=Bt(f),Ie(f,g,w,!0),f=null),u.patchFlag===-2&&(E=!1,u.dynamicChildren=null);const{type:v,ref:M,shapeFlag:F}=u;switch(v){case _t:$(f,u,h,m);break;case be:_(f,u,h,m);break;case It:f==null&&b(u,h,m,T);break;case he:O(f,u,h,m,g,w,T,C,E);break;default:F&1?K(f,u,h,m,g,w,T,C,E):F&6?k(f,u,h,m,g,w,T,C,E):(F&64||F&128)&&v.process(f,u,h,m,g,w,T,C,E,it)}M!=null&&g&&cn(M,f&&f.ref,w,u||f,!u)},$=(f,u,h,m)=>{if(f==null)s(u.el=l(u.children),h,m);else{const g=u.el=f.el;u.children!==f.children&&a(g,u.children)}},_=(f,u,h,m)=>{f==null?s(u.el=c(u.children||""),h,m):u.el=f.el},b=(f,u,h,m)=>{[f.el,f.anchor]=I(f.children,u,h,m,f.el,f.anchor)},H=({el:f,anchor:u},h,m)=>{let g;for(;f&&f!==u;)g=y(f),s(f,h,m),f=g;s(u,h,m)},P=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=y(f),r(f),f=h;r(u)},K=(f,u,h,m,g,w,T,C,E)=>{T=T||u.type==="svg",f==null?J(u,h,m,g,w,T,C,E):D(f,u,g,w,T,C,E)},J=(f,u,h,m,g,w,T,C)=>{let E,v;const{type:M,props:F,shapeFlag:L,transition:U,dirs:W}=f;if(E=f.el=o(f.type,w,F&&F.is,F),L&8?d(E,f.children):L&16&&A(f.children,E,null,m,g,w&&M!=="foreignObject",T,C),W&&Fe(f,null,m,"created"),V(E,f,f.scopeId,T,m),F){for(const Z in F)Z!=="value"&&!At(Z)&&i(E,Z,null,F[Z],w,f.children,m,g,Le);"value"in F&&i(E,"value",null,F.value),(v=F.onVnodeBeforeMount)&&ve(v,m,f)}W&&Fe(f,null,m,"beforeMount");const G=(!g||g&&!g.pendingBranch)&&U&&!U.persisted;G&&U.beforeEnter(E),s(E,u,h),((v=F&&F.onVnodeMounted)||G||W)&&de(()=>{v&&ve(v,m,f),G&&U.enter(E),W&&Fe(f,null,m,"mounted")},g)},V=(f,u,h,m,g)=>{if(h&&x(f,h),m)for(let w=0;w{for(let v=E;v{const C=u.el=f.el;let{patchFlag:E,dynamicChildren:v,dirs:M}=u;E|=f.patchFlag&16;const F=f.props||te,L=u.props||te;let U;h&&Je(h,!1),(U=L.onVnodeBeforeUpdate)&&ve(U,h,u,f),M&&Fe(u,f,h,"beforeUpdate"),h&&Je(h,!0);const W=g&&u.type!=="foreignObject";if(v?j(f.dynamicChildren,v,C,h,m,W,w):T||Q(f,u,C,null,h,m,W,w,!1),E>0){if(E&16)Y(C,u,F,L,h,m,g);else if(E&2&&F.class!==L.class&&i(C,"class",null,L.class,g),E&4&&i(C,"style",F.style,L.style,g),E&8){const G=u.dynamicProps;for(let Z=0;Z{U&&ve(U,h,u,f),M&&Fe(u,f,h,"updated")},m)},j=(f,u,h,m,g,w,T)=>{for(let C=0;C{if(h!==m){if(h!==te)for(const C in h)!At(C)&&!(C in m)&&i(f,C,h[C],null,T,u.children,g,w,Le);for(const C in m){if(At(C))continue;const E=m[C],v=h[C];E!==v&&C!=="value"&&i(f,C,v,E,T,u.children,g,w,Le)}"value"in m&&i(f,"value",h.value,m.value)}},O=(f,u,h,m,g,w,T,C,E)=>{const v=u.el=f?f.el:l(""),M=u.anchor=f?f.anchor:l("");let{patchFlag:F,dynamicChildren:L,slotScopeIds:U}=u;U&&(C=C?C.concat(U):U),f==null?(s(v,h,m),s(M,h,m),A(u.children,h,M,g,w,T,C,E)):F>0&&F&64&&L&&f.dynamicChildren?(j(f.dynamicChildren,L,h,g,w,T,C),(u.key!=null||g&&u===g.subTree)&&ti(f,u,!0)):Q(f,u,h,M,g,w,T,C,E)},k=(f,u,h,m,g,w,T,C,E)=>{u.slotScopeIds=C,f==null?u.shapeFlag&512?g.ctx.activate(u,h,m,T,E):S(u,h,m,g,w,T,E):ge(f,u,E)},S=(f,u,h,m,g,w,T)=>{const C=f.component=El(f,m,g);if(Ut(f)&&(C.ctx.renderer=it),Tl(C),C.asyncDep){if(g&&g.registerDep(C,X),!f.el){const E=C.subTree=se(be);_(null,E,u,h)}return}X(C,f,u,h,g,w,T)},ge=(f,u,h)=>{const m=u.component=f.component;if(Lo(f,u,h))if(m.asyncDep&&!m.asyncResolved){ne(m,u,h);return}else m.next=u,Ro(m.update),m.update();else u.el=f.el,m.vnode=u},X=(f,u,h,m,g,w,T)=>{const C=()=>{if(f.isMounted){let{next:M,bu:F,u:L,parent:U,vnode:W}=f,G=M,Z;Je(f,!1),M?(M.el=W.el,ne(f,M,T)):M=W,F&&Tn(F),(Z=M.props&&M.props.onVnodeBeforeUpdate)&&ve(Z,U,M,W),Je(f,!0);const ie=An(f),xe=f.subTree;f.subTree=ie,R(xe,ie,p(xe.el),Bt(xe),f,g,w),M.el=ie.el,G===null&&No(f,ie.el),L&&de(L,g),(Z=M.props&&M.props.onVnodeUpdated)&&de(()=>ve(Z,U,M,W),g)}else{let M;const{el:F,props:L}=u,{bm:U,m:W,parent:G}=f,Z=pt(u);if(Je(f,!1),U&&Tn(U),!Z&&(M=L&&L.onVnodeBeforeMount)&&ve(M,G,u),Je(f,!0),F&&En){const ie=()=>{f.subTree=An(f),En(F,f.subTree,f,g,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=An(f);R(null,ie,h,m,f,g,w),u.el=ie.el}if(W&&de(W,g),!Z&&(M=L&&L.onVnodeMounted)){const ie=u;de(()=>ve(M,G,ie),g)}(u.shapeFlag&256||G&&pt(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,g),f.isMounted=!0,u=h=m=null}},E=f.effect=new ns(C,()=>gn(v),f.scope),v=f.update=()=>E.run();v.id=f.uid,Je(f,!0),v()},ne=(f,u,h)=>{u.component=f;const m=f.vnode.props;f.vnode=u,f.next=null,fl(f,u.props,m,h),dl(f,u.children,h),vt(),Fs(),Ct()},Q=(f,u,h,m,g,w,T,C,E=!1)=>{const v=f&&f.children,M=f?f.shapeFlag:0,F=u.children,{patchFlag:L,shapeFlag:U}=u;if(L>0){if(L&128){jt(v,F,h,m,g,w,T,C,E);return}else if(L&256){ze(v,F,h,m,g,w,T,C,E);return}}U&8?(M&16&&Le(v,g,w),F!==v&&d(h,F)):M&16?U&16?jt(v,F,h,m,g,w,T,C,E):Le(v,g,w,!0):(M&8&&d(h,""),U&16&&A(F,h,m,g,w,T,C,E))},ze=(f,u,h,m,g,w,T,C,E)=>{f=f||ft,u=u||ft;const v=f.length,M=u.length,F=Math.min(v,M);let L;for(L=0;LM?Le(f,g,w,!0,!1,F):A(u,h,m,g,w,T,C,E,F)},jt=(f,u,h,m,g,w,T,C,E)=>{let v=0;const M=u.length;let F=f.length-1,L=M-1;for(;v<=F&&v<=L;){const U=f[v],W=u[v]=E?Ke(u[v]):Te(u[v]);if(Ge(U,W))R(U,W,h,null,g,w,T,C,E);else break;v++}for(;v<=F&&v<=L;){const U=f[F],W=u[L]=E?Ke(u[L]):Te(u[L]);if(Ge(U,W))R(U,W,h,null,g,w,T,C,E);else break;F--,L--}if(v>F){if(v<=L){const U=L+1,W=UL)for(;v<=F;)Ie(f[v],g,w,!0),v++;else{const U=v,W=v,G=new Map;for(v=W;v<=L;v++){const me=u[v]=E?Ke(u[v]):Te(u[v]);me.key!=null&&G.set(me.key,v)}let Z,ie=0;const xe=L-W+1;let ot=!1,vs=0;const wt=new Array(xe);for(v=0;v=xe){Ie(me,g,w,!0);continue}let Oe;if(me.key!=null)Oe=G.get(me.key);else for(Z=W;Z<=L;Z++)if(wt[Z-W]===0&&Ge(me,u[Z])){Oe=Z;break}Oe===void 0?Ie(me,g,w,!0):(wt[Oe-W]=v+1,Oe>=vs?vs=Oe:ot=!0,R(me,u[Oe],h,null,g,w,T,C,E),ie++)}const Cs=ot?ml(wt):ft;for(Z=Cs.length-1,v=xe-1;v>=0;v--){const me=W+v,Oe=u[me],ws=me+1{const{el:w,type:T,transition:C,children:E,shapeFlag:v}=f;if(v&6){Ye(f.component.subTree,u,h,m);return}if(v&128){f.suspense.move(u,h,m);return}if(v&64){T.move(f,u,h,it);return}if(T===he){s(w,u,h);for(let F=0;FC.enter(w),g);else{const{leave:F,delayLeave:L,afterLeave:U}=C,W=()=>s(w,u,h),G=()=>{F(w,()=>{W(),U&&U()})};L?L(w,W,G):G()}else s(w,u,h)},Ie=(f,u,h,m=!1,g=!1)=>{const{type:w,props:T,ref:C,children:E,dynamicChildren:v,shapeFlag:M,patchFlag:F,dirs:L}=f;if(C!=null&&cn(C,null,h,f,!0),M&256){u.ctx.deactivate(f);return}const U=M&1&&L,W=!pt(f);let G;if(W&&(G=T&&T.onVnodeBeforeUnmount)&&ve(G,u,f),M&6)wi(f.component,h,m);else{if(M&128){f.suspense.unmount(h,m);return}U&&Fe(f,null,u,"beforeUnmount"),M&64?f.type.remove(f,u,h,g,it,m):v&&(w!==he||F>0&&F&64)?Le(v,u,h,!1,!0):(w===he&&F&384||!g&&M&16)&&Le(E,u,h),m&&bs(f)}(W&&(G=T&&T.onVnodeUnmounted)||U)&&de(()=>{G&&ve(G,u,f),U&&Fe(f,null,u,"unmounted")},h)},bs=f=>{const{type:u,el:h,anchor:m,transition:g}=f;if(u===he){Ci(h,m);return}if(u===It){P(f);return}const w=()=>{r(h),g&&!g.persisted&&g.afterLeave&&g.afterLeave()};if(f.shapeFlag&1&&g&&!g.persisted){const{leave:T,delayLeave:C}=g,E=()=>T(h,w);C?C(f.el,w,E):E()}else w()},Ci=(f,u)=>{let h;for(;f!==u;)h=y(f),r(f),f=h;r(u)},wi=(f,u,h)=>{const{bum:m,scope:g,update:w,subTree:T,um:C}=f;m&&Tn(m),g.stop(),w&&(w.active=!1,Ie(T,f,u,h)),C&&de(C,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Le=(f,u,h,m=!1,g=!1,w=0)=>{for(let T=w;Tf.shapeFlag&6?Bt(f.component.subTree):f.shapeFlag&128?f.suspense.next():y(f.anchor||f.el),ys=(f,u,h)=>{f==null?u._vnode&&Ie(u._vnode,null,null,!0):R(u._vnode||null,f,u,null,null,null,h),Fs(),sn(),u._vnode=f},it={p:R,um:Ie,m:Ye,r:bs,mt:S,mc:A,pc:Q,pbc:j,n:Bt,o:e};let xn,En;return t&&([xn,En]=t(it)),{render:ys,hydrate:xn,createApp:ol(ys,xn)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ti(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const _l=e=>e.__isTeleport,he=Symbol.for("v-fgt"),_t=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),It=Symbol.for("v-stc"),Ot=[];let Re=null;function ni(e=!1){Ot.push(Re=e?null:[])}function bl(){Ot.pop(),Re=Ot[Ot.length-1]||null}let Nt=1;function ks(e){Nt+=e}function si(e){return e.dynamicChildren=Nt>0?Re||ft:null,bl(),Nt>0&&Re&&Re.push(e),e}function Vc(e,t,n,s,r,i){return si(oi(e,t,n,s,r,i,!0))}function ri(e,t,n,s,r){return si(se(e,t,n,s,r,!0))}function fn(e){return e?e.__v_isVNode===!0:!1}function Ge(e,t){return e.type===t.type&&e.key===t.key}const wn="__vInternal",ii=({key:e})=>e??null,Qt=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||ce(e)||B(e)?{i:ae,r:e,k:t,f:!!n}:e:null);function oi(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ii(t),ref:t&&Qt(t),scopeId:_n,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:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:ae};return l?(gs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),Nt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const se=yl;function yl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Vr)&&(e=be),fn(e)){const l=qe(e,t,!0);return n&&gs(l,n),Nt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Il(e)&&(e=e.__vccOpts),t){t=vl(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=es(l)),ee(c)&&(Or(c)&&!N(c)&&(c=oe({},c)),t.style=Gn(c))}const o=re(e)?1:Ho(e)?128:_l(e)?64:ee(e)?4:B(e)?2:0;return oi(e,t,n,s,r,o,i,!0)}function vl(e){return e?Or(e)||wn in e?oe({},e):e:null}function qe(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Cl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ii(l),ref:t&&t.ref?n&&r?N(r)?r.concat(Qt(t)):[r,Qt(t)]:Qt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?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&&qe(e.ssContent),ssFallback:e.ssFallback&&qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function li(e=" ",t=0){return se(_t,null,e,t)}function qc(e,t){const n=se(It,null,e);return n.staticCount=t,n}function zc(e="",t=!1){return t?(ni(),ri(be,null,e)):se(be,null,e)}function Te(e){return e==null||typeof e=="boolean"?se(be):N(e)?se(he,null,e.slice()):typeof e=="object"?Ke(e):se(_t,null,String(e))}function Ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qe(e)}function gs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),gs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(wn in t)?t._ctx=ae:r===3&&ae&&(ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else B(t)?(t={default:t,_ctx:ae},n=32):(t=String(t),s&64?(n=16,t=[li(t)]):n=8);e.children=t,e.shapeFlag|=n}function Cl(...e){const t={};for(let n=0;nle||ae;let ms,lt,Ws="__VUE_INSTANCE_SETTERS__";(lt=Nn()[Ws])||(lt=Nn()[Ws]=[]),lt.push(e=>le=e),ms=e=>{lt.length>1?lt.forEach(t=>t(e)):lt[0](e)};const bt=e=>{ms(e),e.scope.on()},st=()=>{le&&le.scope.off(),ms(null)};function fi(e){return e.vnode.shapeFlag&4}let yt=!1;function Tl(e,t=!1){yt=t;const{props:n,children:s}=e.vnode,r=fi(e);cl(e,n,r,t),ul(e,s);const i=r?Al(e,t):void 0;return yt=!1,i}function Al(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Rt(new Proxy(e.ctx,Qo));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?ui(e):null;bt(e),vt();const i=We(s,e,0,[e.props,r]);if(Ct(),st(),pr(i)){if(i.then(st,st),t)return i.then(o=>{Vs(e,o,t)}).catch(o=>{$t(o,e,0)});e.asyncDep=i}else Vs(e,i,t)}else ai(e,t)}function Vs(e,t,n){B(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Sr(t)),ai(e,n)}let qs;function ai(e,t,n){const s=e.type;if(!e.render){if(!t&&qs&&!s.render){const r=s.template||hs(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=qs(r,a)}}e.render=s.render||Pe}bt(e),vt(),el(e),Ct(),st()}function Rl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}}))}function ui(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return Rl(e)},slots:e.slots,emit:e.emit,expose:t}}function _s(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Sr(Rt(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}}))}function Pl(e,t=!0){return B(e)?e.displayName||e.name:e.name||t&&e.__name}function Il(e){return B(e)&&"__vccOpts"in e}const Ee=(e,t)=>Eo(e,t,yt);function qn(e,t,n){const s=arguments.length;return s===2?ee(t)&&!N(t)?fn(t)?se(e,null,[t]):se(e,t):se(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&fn(n)&&(n=[n]),se(e,t,n))}const Ol=Symbol.for("v-scx"),Fl=()=>gt(Ol),Sl="3.3.4",Ml="http://www.w3.org/2000/svg",et=typeof document<"u"?document:null,zs=et&&et.createElement("template"),Ll={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?et.createElementNS(Ml,e):et.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>et.createTextNode(e),createComment:e=>et.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>et.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{zs.innerHTML=s?`${e}`:e;const l=zs.content;if(s){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]}};function Nl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Hl(e,t,n){const s=e.style,r=re(n);if(n&&!r){if(t&&!re(t))for(const i in t)n[i]==null&&zn(s,i,"");for(const i in n)zn(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Ys=/\s*!important$/;function zn(e,t,n){if(N(n))n.forEach(s=>zn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=$l(e,t);Ys.test(n)?e.setProperty(rt(s),n.replace(Ys,""),"important"):e[s]=n}}const Js=["Webkit","Moz","ms"],On={};function $l(e,t){const n=On[t];if(n)return n;let s=Me(t);if(s!=="filter"&&s in e)return On[t]=s;s=dn(s);for(let r=0;rFn||(Wl.then(()=>Fn=0),Fn=Date.now());function ql(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;we(zl(s,n.value),t,5,[s])};return n.value=e,n.attached=Vl(),n}function zl(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Qs=/^on[a-z]/,Yl=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Nl(e,s,r):t==="style"?Hl(e,n,s):Ht(t)?Jn(t)||Kl(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Jl(e,t,s,r))?jl(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Ul(e,t,s,r))};function Jl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Qs.test(t)&&B(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Qs.test(t)&&re(n)?!1:t in e}const Be="transition",xt="animation",di=(e,{slots:t})=>qn(Do,Xl(e),t);di.displayName="Transition";const hi={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};di.props=oe({},Br,hi);const Xe=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},Gs=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function Xl(e){const t={};for(const O in e)O in hi||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:y=`${n}-leave-active`,leaveToClass:x=`${n}-leave-to`}=e,I=Zl(r),R=I&&I[0],$=I&&I[1],{onBeforeEnter:_,onEnter:b,onEnterCancelled:H,onLeave:P,onLeaveCancelled:K,onBeforeAppear:J=_,onAppear:V=b,onAppearCancelled:A=H}=t,D=(O,k,S)=>{Ze(O,k?d:l),Ze(O,k?a:o),S&&S()},j=(O,k)=>{O._isLeaving=!1,Ze(O,p),Ze(O,x),Ze(O,y),k&&k()},Y=O=>(k,S)=>{const ge=O?V:b,X=()=>D(k,O,S);Xe(ge,[k,X]),er(()=>{Ze(k,O?c:i),De(k,O?d:l),Gs(ge)||tr(k,s,R,X)})};return oe(t,{onBeforeEnter(O){Xe(_,[O]),De(O,i),De(O,o)},onBeforeAppear(O){Xe(J,[O]),De(O,c),De(O,a)},onEnter:Y(!1),onAppear:Y(!0),onLeave(O,k){O._isLeaving=!0;const S=()=>j(O,k);De(O,p),ec(),De(O,y),er(()=>{O._isLeaving&&(Ze(O,p),De(O,x),Gs(P)||tr(O,s,$,S))}),Xe(P,[O,S])},onEnterCancelled(O){D(O,!1),Xe(H,[O])},onAppearCancelled(O){D(O,!0),Xe(A,[O])},onLeaveCancelled(O){j(O),Xe(K,[O])}})}function Zl(e){if(e==null)return null;if(ee(e))return[Sn(e.enter),Sn(e.leave)];{const t=Sn(e);return[t,t]}}function Sn(e){return Oi(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function er(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ql=0;function tr(e,t,n,s){const r=e._endId=++Ql,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Gl(e,t);if(!o)return s();const a=o+"end";let d=0;const p=()=>{e.removeEventListener(a,y),i()},y=x=>{x.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[I]||"").split(", "),r=s(`${Be}Delay`),i=s(`${Be}Duration`),o=nr(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),a=nr(l,c);let d=null,p=0,y=0;t===Be?o>0&&(d=Be,p=o,y=i.length):t===xt?a>0&&(d=xt,p=a,y=c.length):(p=Math.max(o,a),d=p>0?o>a?Be:xt:null,y=d?d===Be?i.length:c.length:0);const x=d===Be&&/\b(transform|all)(,|$)/.test(s(`${Be}Property`).toString());return{type:d,timeout:p,propCount:y,hasTransform:x}}function nr(e,t){for(;e.lengthsr(n)+sr(e[s])))}function sr(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function ec(){return document.body.offsetHeight}const tc=["ctrl","shift","alt","meta"],nc={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)=>tc.some(n=>e[`${n}Key`]&&!t.includes(n))},Yc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=rt(n.key);if(t.some(r=>r===s||sc[r]===s))return e(n)},rc=oe({patchProp:Yl},Ll);let Mn,rr=!1;function ic(){return Mn=rr?Mn:pl(rc),rr=!0,Mn}const Xc=(...e)=>{const t=ic().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=oc(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function oc(e){return re(e)?document.querySelector(e):e}const Zc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},lc=window.__VP_SITE_DATA__,pi=/^[a-z]+:/i,Qc=/^pathname:\/\//,Gc="vitepress-theme-appearance",gi=/#.*$/,cc=/(index)?\.(md|html)$/,Ce=typeof document<"u",mi={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function fc(e,t,n=!1){if(t===void 0)return!1;if(e=ir(`/${e}`),n)return new RegExp(t).test(e);if(ir(t)!==e)return!1;const s=t.match(gi);return s?(Ce?location.hash:"")===s[0]:!0}function ir(e){return decodeURI(e).replace(gi,"").replace(cc,"")}function ac(e){return pi.test(e)}function uc(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!ac(d)&&fc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.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:bi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function _i(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=dc(e.title,s);return`${n}${r}`}function dc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function hc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function bi(e,t){return[...e.filter(n=>!hc(t,n)),...t]}const pc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,gc=/^[a-z]:/i;function or(e){const t=gc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(pc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const mc=Symbol(),tt=go(lc);function ef(e){const t=Ee(()=>uc(tt.value,e.data.relativePath));return{site:t,theme:Ee(()=>t.value.themeConfig),page:Ee(()=>e.data),frontmatter:Ee(()=>e.data.frontmatter),params:Ee(()=>e.data.params),lang:Ee(()=>t.value.lang),dir:Ee(()=>t.value.dir),localeIndex:Ee(()=>t.value.localeIndex||"root"),title:Ee(()=>_i(t.value,e.data)),description:Ee(()=>e.data.description||t.value.description),isDark:dt(!1)}}function tf(){const e=gt(mc);if(!e)throw new Error("vitepress data not properly injected in app");return e}function _c(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function lr(e){return pi.test(e)||e.startsWith(".")?e:_c(tt.value.base,e)}function bc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/vue-h5-template/";t=or(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${or(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Gt=[];function nf(e){Gt.push(e),Cn(()=>{Gt=Gt.filter(t=>t!==e)})}const yc=Symbol(),cr="http://a.com",vc=()=>({path:"/",component:null,data:mi});function sf(e,t){const n=pn(vc()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var a,d;await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l));const c=new URL(l,cr);tt.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),Ce&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){const d=new URL(l,cr),p=i=d.pathname;try{let y=await e(p);if(i===p){i=null;const{default:x,__pageData:I}=y;if(!x)throw new Error(`Invalid route component: ${x}`);n.path=Ce?p:lr(p),n.component=Rt(x),n.data=Rt(I),Ce&&Lr(()=>{let R=tt.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!tt.value.cleanUrls&&!R.endsWith("/")&&(R+=".html"),R!==d.pathname&&(d.pathname=R,l=R+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let $=null;try{$=document.querySelector(decodeURIComponent(d.hash))}catch(_){console.warn(_)}if($){fr($,d.hash);return}}window.scrollTo(0,c)})}}catch(y){if(!/fetch/.test(y.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(y),!a)try{const x=await fetch(tt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await x.json(),await o(l,c,!0);return}catch{}i===p&&(i=null,n.path=Ce?p:lr(p),n.component=t?Rt(t):null,n.data=mi)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:d}=a,{href:p,origin:y,pathname:x,hash:I,search:R}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),$=window.location,_=x.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&y===$.origin&&!(_&&_[0]!==".html")&&(l.preventDefault(),x===$.pathname&&R===$.search?I&&(I!==$.hash&&(history.pushState(null,"",I),window.dispatchEvent(new Event("hashchange"))),fr(a,I,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Cc(){const e=gt(yc);if(!e)throw new Error("useRouter() is called without provider.");return e}function yi(){return Cc().route}function fr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){const r=tt.value.scrollOffset;let i=0;if(typeof r=="number")i=r;else if(typeof r=="string")i=ar(r);else if(Array.isArray(r))for(const c of r){const a=ar(c);if(a){i=a;break}}const o=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-i+o;!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})}}function ar(e){const t=document.querySelector(e);if(!t)return 0;const n=t.getBoundingClientRect().bottom;return n<0?0:n+24}const ur=()=>Gt.forEach(e=>e()),rf=us({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=yi();return()=>qn(e.as,{style:{position:"relative"}},[t.component?qn(t.component,{onVnodeMounted:ur,onVnodeUpdated:ur}):"404 Page Not Found"])}}),wc="modulepreload",xc=function(e){return"/vue-h5-template/"+e},dr={},of=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=xc(i),i in dr)return;dr[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const p=r[d];if(p.href===i&&(!o||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":wc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,p)=>{a.addEventListener("load",d),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())};function lf(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=Ec(o);document.head.appendChild(l),n.push(l)})};$o(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=_i(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(bi(o.head,Ac(c)))})}function Ec([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function Tc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Ac(e){return e.filter(t=>!Tc(t))}const Ln=new Set,vi=()=>document.createElement("link"),Rc=e=>{const t=vi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Pc=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Jt;const Ic=Ce&&(Jt=vi())&&Jt.relList&&Jt.relList.supports&&Jt.relList.supports("prefetch")?Rc:Pc;function cf(){if(!Ce||!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 s=()=>{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(!Ln.has(c)){Ln.add(c);const a=bc(c);Ic(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),a=c.match(/\.\w+$/);a&&a[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Ln.add(c))})})};vn(s);const r=yi();Zt(()=>r.path,s),Cn(()=>{n&&n.disconnect()})}const ff=us({setup(e,{slots:t}){const n=dt(!1);return vn(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function af(){if(Ce){const e=new Map;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.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()),Oc(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 Oc(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 s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function uf(){Ce&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}export{Jc as $,ri as A,Fo as B,zc as C,jc as D,Cl as E,he as F,se as G,Gn as H,Uc as I,of as J,Bc as K,pi as L,Ce as M,Dc as N,Nc as O,Qc as P,Hc as Q,qc as R,Gc as S,di as T,gt as U,ll as V,zo as W,nf as X,go as Y,Lr as Z,Zc as _,li as a,kc as a0,$c as a1,Yc as a2,Wc as a3,lf as a4,yc as a5,ef as a6,mc as a7,rf as a8,ff as a9,tt as aa,Xc as ab,sf as ac,bc as ad,cf as ae,af,uf as ag,qn as ah,Cc as ai,_o as b,Vc as c,us as d,Lc as e,Ir as f,Mc as g,dt as h,ji as i,Sc as j,$o as k,Ee as l,ci as m,es as n,ni as o,vn as p,ac as q,Kc as r,lr as s,Fc as t,tf as u,fc as v,Zt as w,yi as x,Cn as y,oi as z}; diff --git a/assets/chunks/framework.DNhrqZu5.js b/assets/chunks/framework.DNhrqZu5.js new file mode 100644 index 0000000..5c574c4 --- /dev/null +++ b/assets/chunks/framework.DNhrqZu5.js @@ -0,0 +1 @@ +function vr(e,t){const n=Object.create(null),r=e.split(",");for(let s=0;s!!n[s]}const re={},vt=[],He=()=>{},ri=()=>!1,si=/^on[^a-z]/,Vt=e=>si.test(e),yr=e=>e.startsWith("onUpdate:"),ue=Object.assign,_r=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},oi=Object.prototype.hasOwnProperty,X=(e,t)=>oi.call(e,t),W=Array.isArray,yt=e=>wn(e)==="[object Map]",$s=e=>wn(e)==="[object Set]",V=e=>typeof e=="function",se=e=>typeof e=="string",br=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",js=e=>te(e)&&V(e.then)&&V(e.catch),Ds=Object.prototype.toString,wn=e=>Ds.call(e),ii=e=>wn(e).slice(8,-1),ks=e=>wn(e)==="[object Object]",wr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ft=vr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),En=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},li=/-(\w)/g,je=En(e=>e.replace(li,(t,n)=>n?n.toUpperCase():"")),ci=/\B([A-Z])/g,dt=En(e=>e.replace(ci,"-$1").toLowerCase()),Cn=En(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=En(e=>e?`on${Cn(e)}`:""),Dt=(e,t)=>!Object.is(e,t),Dn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},ai=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ui=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let zr;const sr=()=>zr||(zr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xn(e){if(W(e)){const t={};for(let n=0;n{if(n){const r=n.split(di);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tn(e){let t="";if(se(e))t=e;else if(W(e))for(let n=0;nse(e)?e:e==null?"":W(e)||te(e)&&(e.toString===Ds||!V(e.toString))?JSON.stringify(e,Us,2):String(e),Us=(e,t)=>t&&t.__v_isRef?Us(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s])=>(n[`${r} =>`]=s,n),{})}:$s(t)?{[`Set(${t.size})`]:[...t.values()]}:te(t)&&!W(t)&&!ks(t)?String(t):t;let be;class vi{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{const t=new Set(e);return t.w=0,t.n=0,t},Ks=e=>(e.w&Ze)>0,Vs=e=>(e.n&Ze)>0,bi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":W(e)?wr(n)&&l.push(i.get("length")):(l.push(i.get(lt)),yt(e)&&l.push(i.get(ir)));break;case"delete":W(e)||(l.push(i.get(lt)),yt(e)&&l.push(i.get(ir)));break;case"set":yt(e)&&l.push(i.get(lt));break}if(l.length===1)l[0]&&lr(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);lr(Er(c))}}function lr(e,t){const n=W(e)?e:[...e];for(const r of n)r.computed&&Xr(r);for(const r of n)r.computed||Xr(r)}function Xr(e,t){(e!==Ie||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Ei(e,t){var n;return(n=pn.get(e))==null?void 0:n.get(t)}const Ci=vr("__proto__,__v_isRef,__isVue"),Xs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(br)),xi=xr(),Ti=xr(!1,!0),Si=xr(!0),Yr=Ai();function Ai(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Y(this);for(let o=0,i=this.length;o{e[t]=function(...n){At();const r=Y(this)[t].apply(this,n);return Rt(),r}}),e}function Ri(e){const t=Y(this);return ye(t,"has",e),t.hasOwnProperty(e)}function xr(e=!1,t=!1){return function(r,s,o){if(s==="__v_isReactive")return!e;if(s==="__v_isReadonly")return e;if(s==="__v_isShallow")return t;if(s==="__v_raw"&&o===(e?t?Ki:Gs:t?Zs:Qs).get(r))return r;const i=W(r);if(!e){if(i&&X(Yr,s))return Reflect.get(Yr,s,o);if(s==="hasOwnProperty")return Ri}const l=Reflect.get(r,s,o);return(br(s)?Xs.has(s):Ci(s))||(e||ye(r,"get",s),t)?l:ae(l)?i&&wr(s)?l:l.value:te(l)?e?An(l):Et(l):l}}const Ii=Ys(),Oi=Ys(!0);function Ys(e=!1){return function(n,r,s,o){let i=n[r];if(Ct(i)&&ae(i)&&!ae(s))return!1;if(!e&&(!gn(s)&&!Ct(s)&&(i=Y(i),s=Y(s)),!W(n)&&ae(i)&&!ae(s)))return i.value=s,!0;const l=W(n)&&wr(r)?Number(r)e,Sn=e=>Reflect.getPrototypeOf(e);function Qt(e,t,n=!1,r=!1){e=e.__v_raw;const s=Y(e),o=Y(t);n||(t!==o&&ye(s,"get",t),ye(s,"get",o));const{has:i}=Sn(s),l=r?Tr:n?Rr:kt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Zt(e,t=!1){const n=this.__v_raw,r=Y(n),s=Y(e);return t||(e!==s&&ye(r,"has",e),ye(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Gt(e,t=!1){return e=e.__v_raw,!t&&ye(Y(e),"iterate",lt),Reflect.get(e,"size",e)}function Jr(e){e=Y(e);const t=Y(this);return Sn(t).has.call(t,e)||(t.add(e),Be(t,"add",e,e)),this}function Qr(e,t){t=Y(t);const n=Y(this),{has:r,get:s}=Sn(n);let o=r.call(n,e);o||(e=Y(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Dt(t,i)&&Be(n,"set",e,t):Be(n,"add",e,t),this}function Zr(e){const t=Y(this),{has:n,get:r}=Sn(t);let s=n.call(t,e);s||(e=Y(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Be(t,"delete",e,void 0),o}function Gr(){const e=Y(this),t=e.size!==0,n=e.clear();return t&&Be(e,"clear",void 0,void 0),n}function en(e,t){return function(r,s){const o=this,i=o.__v_raw,l=Y(i),c=t?Tr:e?Rr:kt;return!e&&ye(l,"iterate",lt),i.forEach((a,d)=>r.call(s,c(a),c(d),o))}}function tn(e,t,n){return function(...r){const s=this.__v_raw,o=Y(s),i=yt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),d=n?Tr:t?Rr:kt;return!t&&ye(o,"iterate",c?ir:lt),{next(){const{value:h,done:m}=a.next();return m?{value:h,done:m}:{value:l?[d(h[0]),d(h[1])]:d(h),done:m}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:this}}function Hi(){const e={get(o){return Qt(this,o)},get size(){return Gt(this)},has:Zt,add:Jr,set:Qr,delete:Zr,clear:Gr,forEach:en(!1,!1)},t={get(o){return Qt(this,o,!1,!0)},get size(){return Gt(this)},has:Zt,add:Jr,set:Qr,delete:Zr,clear:Gr,forEach:en(!1,!0)},n={get(o){return Qt(this,o,!0)},get size(){return Gt(this,!0)},has(o){return Zt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:en(!0,!1)},r={get(o){return Qt(this,o,!0,!0)},get size(){return Gt(this,!0)},has(o){return Zt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:en(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=tn(o,!1,!1),n[o]=tn(o,!0,!1),t[o]=tn(o,!1,!0),r[o]=tn(o,!0,!0)}),[e,n,t,r]}const[$i,ji,Di,ki]=Hi();function Sr(e,t){const n=t?e?ki:Di:e?ji:$i;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(X(n,s)&&s in r?n:r,s,o)}const Bi={get:Sr(!1,!1)},Ui={get:Sr(!1,!0)},Wi={get:Sr(!0,!1)},Qs=new WeakMap,Zs=new WeakMap,Gs=new WeakMap,Ki=new WeakMap;function Vi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function zi(e){return e.__v_skip||!Object.isExtensible(e)?0:Vi(ii(e))}function Et(e){return Ct(e)?e:Ar(e,!1,Js,Bi,Qs)}function qi(e){return Ar(e,!1,Ni,Ui,Zs)}function An(e){return Ar(e,!0,Fi,Wi,Gs)}function Ar(e,t,n,r,s){if(!te(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=zi(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function _t(e){return Ct(e)?_t(e.__v_raw):!!(e&&e.__v_isReactive)}function Ct(e){return!!(e&&e.__v_isReadonly)}function gn(e){return!!(e&&e.__v_isShallow)}function eo(e){return _t(e)||Ct(e)}function Y(e){const t=e&&e.__v_raw;return t?Y(t):e}function Nt(e){return hn(e,"__v_skip",!0),e}const kt=e=>te(e)?Et(e):e,Rr=e=>te(e)?An(e):e;function Ir(e){Je&&Ie&&(e=Y(e),qs(e.dep||(e.dep=Er())))}function Or(e,t){e=Y(e);const n=e.dep;n&&lr(n)}function ae(e){return!!(e&&e.__v_isRef===!0)}function $e(e){return to(e,!1)}function xe(e){return to(e,!0)}function to(e,t){return ae(e)?e:new Xi(e,t)}class Xi{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Y(t),this._value=n?t:kt(t)}get value(){return Ir(this),this._value}set value(t){const n=this.__v_isShallow||gn(t)||Ct(t);t=n?t:Y(t),Dt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:kt(t),Or(this))}}function Pr(e){return ae(e)?e.value:e}function oe(e){return V(e)?e():Pr(e)}const Yi={get:(e,t,n)=>Pr(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ae(s)&&!ae(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function no(e){return _t(e)?e:new Proxy(e,Yi)}class Ji{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Ir(this),()=>Or(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function Qi(e){return new Ji(e)}class Zi{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 Ei(Y(this._object),this._key)}}class Gi{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function el(e,t,n){return ae(e)?e:V(e)?new Gi(e):te(e)&&arguments.length>1?tl(e,t,n):$e(e)}function tl(e,t,n){const r=e[t];return ae(r)?r:new Zi(e,t,n)}class nl{constructor(t,n,r,s){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Cr(t,()=>{this._dirty||(this._dirty=!0,Or(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=Y(this);return Ir(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function rl(e,t,n=!1){let r,s;const o=V(e);return o?(r=e,s=He):(r=e.get,s=e.set),new nl(r,s,o||!s,n)}function Qe(e,t,n,r){let s;try{s=r?e(...r):e()}catch(o){zt(o,t,n)}return s}function Te(e,t,n,r){if(V(e)){const o=Qe(e,t,n,r);return o&&js(o)&&o.catch(i=>{zt(i,t,n)}),o}const s=[];for(let o=0;o>>1;Ut(pe[r])Ne&&pe.splice(t,1)}function ll(e){W(e)?bt.push(...e):(!ke||!ke.includes(e,e.allowRecurse?st+1:st))&&bt.push(e),so()}function es(e,t=Bt?Ne+1:0){for(;tUt(n)-Ut(r)),st=0;ste.id==null?1/0:e.id,cl=(e,t)=>{const n=Ut(e)-Ut(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function oo(e){cr=!1,Bt=!0,pe.sort(cl);try{for(Ne=0;Nese(y)?y.trim():y)),h&&(s=n.map(ai))}let l,c=r[l=un(t)]||r[l=un(je(t))];!c&&o&&(c=r[l=un(dt(t))]),c&&Te(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Te(a,e,6,s)}}function io(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!V(e)){const c=a=>{const d=io(a,t,!0);d&&(l=!0,ue(i,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(te(e)&&r.set(e,null),null):(W(o)?o.forEach(c=>i[c]=null):ue(i,o),te(e)&&r.set(e,i),i)}function On(e,t){return!e||!Vt(t)?!1:(t=t.slice(2).replace(/Once$/,""),X(e,t[0].toLowerCase()+t.slice(1))||X(e,dt(t))||X(e,t))}let fe=null,Pn=null;function vn(e){const t=fe;return fe=e,Pn=e&&e.type.__scopeId||null,t}function Va(e){Pn=e}function za(){Pn=null}function ul(e,t=fe,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&ds(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&ds(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function kn(e){const{type:t,vnode:n,proxy:r,withProxy:s,props:o,propsOptions:[i],slots:l,attrs:c,emit:a,render:d,renderCache:h,data:m,setupState:y,ctx:C,inheritAttrs:E}=e;let j,g;const v=vn(e);try{if(n.shapeFlag&4){const R=s||r;j=Re(d.call(R,R,h,o,y,m,C)),g=c}else{const R=t;j=Re(R.length>1?R(o,{attrs:c,slots:l,emit:a}):R(o,null)),g=t.props?c:fl(c)}}catch(R){jt.length=0,zt(R,e,1),j=ie(we)}let $=j;if(g&&E!==!1){const R=Object.keys(g),{shapeFlag:U}=$;R.length&&U&7&&(i&&R.some(yr)&&(g=dl(g,i)),$=Ge($,g))}return n.dirs&&($=Ge($),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&($.transition=n.transition),j=$,vn(v),j}const fl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vt(n))&&((t||(t={}))[n]=e[n]);return t},dl=(e,t)=>{const n={};for(const r in e)(!yr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function hl(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?ts(r,i,a):!!i;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function lo(e,t){t&&t.pendingBranch?W(e)?t.effects.push(...e):t.effects.push(e):ll(e)}function co(e,t){return Mn(e,null,t)}function qa(e,t){return Mn(e,null,{flush:"post"})}const nn={};function Se(e,t,n){return Mn(e,t,n)}function Mn(e,t,{immediate:n,deep:r,flush:s,onTrack:o,onTrigger:i}=re){var l;const c=Ws()===((l=ce)==null?void 0:l.scope)?ce:null;let a,d=!1,h=!1;if(ae(e)?(a=()=>e.value,d=gn(e)):_t(e)?(a=()=>e,r=!0):W(e)?(h=!0,d=e.some(R=>_t(R)||gn(R)),a=()=>e.map(R=>{if(ae(R))return R.value;if(_t(R))return mt(R);if(V(R))return Qe(R,c,2)})):V(e)?t?a=()=>Qe(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return m&&m(),Te(e,c,3,[y])}:a=He,t&&r){const R=a;a=()=>mt(R())}let m,y=R=>{m=v.onStop=()=>{Qe(R,c,4)}},C;if(St)if(y=He,t?n&&Te(t,c,3,[a(),h?[]:void 0,y]):a(),s==="sync"){const R=ac();C=R.__watcherHandles||(R.__watcherHandles=[])}else return He;let E=h?new Array(e.length).fill(nn):nn;const j=()=>{if(v.active)if(t){const R=v.run();(r||d||(h?R.some((U,z)=>Dt(U,E[z])):Dt(R,E)))&&(m&&m(),Te(t,c,3,[R,E===nn?void 0:h&&E[0]===nn?[]:E,y]),E=R)}else v.run()};j.allowRecurse=!!t;let g;s==="sync"?g=j:s==="post"?g=()=>me(j,c&&c.suspense):(j.pre=!0,c&&(j.id=c.uid),g=()=>In(j));const v=new Cr(a,g);t?n?j():E=v.run():s==="post"?me(v.run.bind(v),c&&c.suspense):v.run();const $=()=>{v.stop(),c&&c.scope&&_r(c.scope.effects,v)};return C&&C.push($),$}function ml(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?ao(r,e):()=>r[e]:e.bind(r,r);let o;V(t)?o=t:(o=t.handler,n=t);const i=ce;Tt(this);const l=Mn(s,o.bind(r),n);return i?Tt(i):at(),l}function ao(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{mt(n,t)});else if(ks(e))for(const n in e)mt(e[n],t);return e}function Fe(e,t,n,r){const s=e.dirs,o=t&&t.dirs;for(let i=0;i{e.isMounted=!0}),go(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],uo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},yl={name:"BaseTransition",props:uo,setup(e,{slots:t}){const n=Xt(),r=vl();let s;return()=>{const o=t.default&&ho(t.default(),!0);if(!o||!o.length)return;let i=o[0];if(o.length>1){for(const E of o)if(E.type!==we){i=E;break}}const l=Y(e),{mode:c}=l;if(r.isLeaving)return Bn(i);const a=ns(i);if(!a)return Bn(i);const d=ar(a,l,r,n);ur(a,d);const h=n.subTree,m=h&&ns(h);let y=!1;const{getTransitionKey:C}=a.type;if(C){const E=C();s===void 0?s=E:E!==s&&(s=E,y=!0)}if(m&&m.type!==we&&(!ot(a,m)||y)){const E=ar(m,l,r,n);if(ur(m,E),c==="out-in")return r.isLeaving=!0,E.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},Bn(i);c==="in-out"&&a.type!==we&&(E.delayLeave=(j,g,v)=>{const $=fo(r,m);$[String(m.key)]=m,j._leaveCb=()=>{g(),j._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=v})}return i}}},_l=yl;function fo(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 ar(e,t,n,r){const{appear:s,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:h,onLeave:m,onAfterLeave:y,onLeaveCancelled:C,onBeforeAppear:E,onAppear:j,onAfterAppear:g,onAppearCancelled:v}=t,$=String(e.key),R=fo(n,e),U=(S,N)=>{S&&Te(S,r,9,N)},z=(S,N)=>{const D=N[1];U(S,N),W(S)?S.every(O=>O.length<=1)&&D():S.length<=1&&D()},P={mode:o,persisted:i,beforeEnter(S){let N=l;if(!n.isMounted)if(s)N=E||l;else return;S._leaveCb&&S._leaveCb(!0);const D=R[$];D&&ot(e,D)&&D.el._leaveCb&&D.el._leaveCb(),U(N,[S])},enter(S){let N=c,D=a,O=d;if(!n.isMounted)if(s)N=j||c,D=g||a,O=v||d;else return;let x=!1;const L=S._enterCb=F=>{x||(x=!0,F?U(O,[S]):U(D,[S]),P.delayedLeave&&P.delayedLeave(),S._enterCb=void 0)};N?z(N,[S,L]):L()},leave(S,N){const D=String(e.key);if(S._enterCb&&S._enterCb(!0),n.isUnmounting)return N();U(h,[S]);let O=!1;const x=S._leaveCb=L=>{O||(O=!0,N(),L?U(C,[S]):U(y,[S]),S._leaveCb=void 0,R[D]===e&&delete R[D])};R[D]=e,m?z(m,[S,x]):x()},clone(S){return ar(S,t,n,r)}};return P}function Bn(e){if(qt(e))return e=Ge(e),e.children=null,e}function ns(e){return qt(e)?e.children?e.children[0]:void 0:e}function ur(e,t){e.shapeFlag&6&&e.component?ur(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 ho(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;function Xa(e){V(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,d=0;const h=()=>(d++,c=null,m()),m=()=>{let y;return c||(y=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((E,j)=>{l(C,()=>E(h()),()=>j(C),d+1)});throw C}).then(C=>y!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return Lr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return a},setup(){const y=ce;if(a)return()=>Un(a,y);const C=v=>{c=null,zt(v,y,13,!r)};if(i&&y.suspense||St)return m().then(v=>()=>Un(v,y)).catch(v=>(C(v),()=>r?ie(r,{error:v}):null));const E=$e(!1),j=$e(),g=$e(!!s);return s&&setTimeout(()=>{g.value=!1},s),o!=null&&setTimeout(()=>{if(!E.value&&!j.value){const v=new Error(`Async component timed out after ${o}ms.`);C(v),j.value=v}},o),m().then(()=>{E.value=!0,y.parent&&qt(y.parent.vnode)&&In(y.parent.update)}).catch(v=>{C(v),j.value=v}),()=>{if(E.value&&a)return Un(a,y);if(j.value&&r)return ie(r,{error:j.value});if(n&&!g.value)return ie(n)}}})}function Un(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ie(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const qt=e=>e.type.__isKeepAlive;function bl(e,t){po(e,"a",t)}function wl(e,t){po(e,"da",t)}function po(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;)qt(s.parent.vnode)&&El(r,t,n,s),s=s.parent}}function El(e,t,n,r){const s=Ln(t,e,r,!0);Fn(()=>{_r(r[t],s)},n)}function Ln(e,t,n=ce,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;At(),Tt(n);const l=Te(t,n,e,i);return at(),Rt(),l});return r?s.unshift(o):s.push(o),o}}const Ke=e=>(t,n=ce)=>(!St||e==="sp")&&Ln(e,(...r)=>t(...r),n),Cl=Ke("bm"),It=Ke("m"),xl=Ke("bu"),Tl=Ke("u"),go=Ke("bum"),Fn=Ke("um"),Sl=Ke("sp"),Al=Ke("rtg"),Rl=Ke("rtc");function Il(e,t=ce){Ln("ec",e,t)}const mo="components";function Ya(e,t){return yo(mo,e,!0,t)||e}const vo=Symbol.for("v-ndc");function Ja(e){return se(e)?yo(mo,e,!1)||e:e||vo}function yo(e,t,n=!0,r=!1){const s=fe||ce;if(s){const o=s.type;{const l=ic(o,!1);if(l&&(l===t||l===je(t)||l===Cn(je(t))))return o}const i=rs(s[e]||o[e],t)||rs(s.appContext[e],t);return!i&&r?o:i}}function rs(e,t){return e&&(e[t]||e[je(t)]||e[Cn(je(t))])}function Qa(e,t,n,r){let s;const o=n;if(W(e)||se(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lbn(t)?!(t.type===we||t.type===ve&&!_o(t.children)):!0)?e:null}function Ga(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:un(r)]=e[r];return n}const fr=e=>e?Ho(e)?$r(e)||e.proxy:fr(e.parent):null,Ht=ue(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=>fr(e.parent),$root:e=>fr(e.root),$emit:e=>e.emit,$options:e=>wo(e),$forceUpdate:e=>e.f||(e.f=()=>In(e.update)),$nextTick:e=>e.n||(e.n=Rn.bind(e.proxy)),$watch:e=>ml.bind(e)}),Wn=(e,t)=>e!==re&&!e.__isScriptSetup&&X(e,t),Ol={get({_:e},t){const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const y=i[t];if(y!==void 0)switch(y){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Wn(r,t))return i[t]=1,r[t];if(s!==re&&X(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&X(a,t))return i[t]=3,o[t];if(n!==re&&X(n,t))return i[t]=4,n[t];dr&&(i[t]=0)}}const d=Ht[t];let h,m;if(d)return t==="$attrs"&&ye(e,"get",t),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==re&&X(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,X(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Wn(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:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==re&&X(e,i)||Wn(t,i)||(l=o[0])&&X(l,i)||X(r,i)||X(Ht,i)||X(s.config.globalProperties,i)},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 eu(){return Pl().slots}function Pl(){const e=Xt();return e.setupContext||(e.setupContext=jo(e))}function ss(e){return W(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let dr=!0;function Ml(e){const t=wo(e),n=e.proxy,r=e.ctx;dr=!1,t.beforeCreate&&os(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:d,beforeMount:h,mounted:m,beforeUpdate:y,updated:C,activated:E,deactivated:j,beforeDestroy:g,beforeUnmount:v,destroyed:$,unmounted:R,render:U,renderTracked:z,renderTriggered:P,errorCaptured:S,serverPrefetch:N,expose:D,inheritAttrs:O,components:x,directives:L,filters:F}=t;if(a&&Ll(a,r,null),i)for(const Q in i){const Z=i[Q];V(Z)&&(r[Q]=Z.bind(n))}if(s){const Q=s.call(n,n);te(Q)&&(e.data=Et(Q))}if(dr=!0,o)for(const Q in o){const Z=o[Q],Pe=V(Z)?Z.bind(n,n):V(Z.get)?Z.get.bind(n,n):He,Yt=!V(Z)&&V(Z.set)?Z.set.bind(n):He,et=ne({get:Pe,set:Yt});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>et.value,set:Me=>et.value=Me})}if(l)for(const Q in l)bo(l[Q],r,n,Q);if(c){const Q=V(c)?c.call(n):c;Reflect.ownKeys(Q).forEach(Z=>{Dl(Z,Q[Z])})}d&&os(d,e,"c");function J(Q,Z){W(Z)?Z.forEach(Pe=>Q(Pe.bind(n))):Z&&Q(Z.bind(n))}if(J(Cl,h),J(It,m),J(xl,y),J(Tl,C),J(bl,E),J(wl,j),J(Il,S),J(Rl,z),J(Al,P),J(go,v),J(Fn,R),J(Sl,N),W(D))if(D.length){const Q=e.exposed||(e.exposed={});D.forEach(Z=>{Object.defineProperty(Q,Z,{get:()=>n[Z],set:Pe=>n[Z]=Pe})})}else e.exposed||(e.exposed={});U&&e.render===He&&(e.render=U),O!=null&&(e.inheritAttrs=O),x&&(e.components=x),L&&(e.directives=L)}function Ll(e,t,n=He){W(e)&&(e=hr(e));for(const r in e){const s=e[r];let o;te(s)?"default"in s?o=ct(s.from||r,s.default,!0):o=ct(s.from||r):o=ct(s),ae(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function os(e,t,n){Te(W(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function bo(e,t,n,r){const s=r.includes(".")?ao(n,r):()=>n[r];if(se(e)){const o=t[e];V(o)&&Se(s,o)}else if(V(e))Se(s,e.bind(n));else if(te(e))if(W(e))e.forEach(o=>bo(o,t,n,r));else{const o=V(e.handler)?e.handler.bind(n):t[e.handler];V(o)&&Se(s,o,e)}}function wo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>yn(c,a,i,!0)),yn(c,t,i)),te(t)&&o.set(t,c),c}function yn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&yn(e,o,n,!0),s&&s.forEach(i=>yn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Fl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Fl={data:is,props:ls,emits:ls,methods:Lt,computed:Lt,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Lt,directives:Lt,watch:Hl,provide:is,inject:Nl};function is(e,t){return t?e?function(){return ue(V(e)?e.call(this,this):e,V(t)?t.call(this,this):t)}:t:e}function Nl(e,t){return Lt(hr(e),hr(t))}function hr(e){if(W(e)){const t={};for(let n=0;n1)return n&&V(t)?t.call(r&&r.proxy):t}}function Co(){return!!(ce||fe||Wt)}function kl(e,t,n,r=!1){const s={},o={};hn(o,Nn,1),e.propsDefaults=Object.create(null),xo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:qi(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Bl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=Y(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,y]=To(h,t,!0);ue(i,m),y&&l.push(...y)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!o&&!c)return te(e)&&r.set(e,vt),vt;if(W(o))for(let d=0;d-1,y[1]=E<0||C-1||X(y,"default"))&&l.push(h)}}}const a=[i,l];return te(e)&&r.set(e,a),a}function cs(e){return e[0]!=="$"}function as(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function us(e,t){return as(e)===as(t)}function fs(e,t){return W(t)?t.findIndex(n=>us(n,e)):V(t)&&us(t,e)?0:-1}const So=e=>e[0]==="_"||e==="$stable",Fr=e=>W(e)?e.map(Re):[Re(e)],Ul=(e,t,n)=>{if(t._n)return t;const r=ul((...s)=>Fr(t(...s)),n);return r._c=!1,r},Ao=(e,t,n)=>{const r=e._ctx;for(const s in e){if(So(s))continue;const o=e[s];if(V(o))t[s]=Ul(s,o,r);else if(o!=null){const i=Fr(o);t[s]=()=>i}}},Ro=(e,t)=>{const n=Fr(t);e.slots.default=()=>n},Wl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Y(t),hn(t,"_",n)):Ao(t,e.slots={})}else e.slots={},t&&Ro(e,t);hn(e.slots,Nn,1)},Kl=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=re;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ue(s,t),!n&&l===1&&delete s._):(o=!t.$stable,Ao(t,s)),i=t}else t&&(Ro(e,t),i={default:1});if(o)for(const l in s)!So(l)&&!(l in i)&&delete s[l]};function _n(e,t,n,r,s=!1){if(W(e)){e.forEach((m,y)=>_n(m,t&&(W(t)?t[y]:t),n,r,s));return}if(wt(r)&&!s)return;const o=r.shapeFlag&4?$r(r.component)||r.component.proxy:r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,d=l.refs===re?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(se(a)?(d[a]=null,X(h,a)&&(h[a]=null)):ae(a)&&(a.value=null)),V(c))Qe(c,l,12,[i,d]);else{const m=se(c),y=ae(c);if(m||y){const C=()=>{if(e.f){const E=m?X(h,c)?h[c]:d[c]:c.value;s?W(E)&&_r(E,o):W(E)?E.includes(o)||E.push(o):m?(d[c]=[o],X(h,c)&&(h[c]=d[c])):(c.value=[o],e.k&&(d[e.k]=c.value))}else m?(d[c]=i,X(h,c)&&(h[c]=i)):y&&(c.value=i,e.k&&(d[e.k]=i))};i?(C.id=-1,me(C,n)):C()}}}let ze=!1;const rn=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",sn=e=>e.nodeType===8;function Vl(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,d=(g,v)=>{if(!v.hasChildNodes()){n(null,g,v),mn(),v._vnode=g;return}ze=!1,h(v.firstChild,g,null,null,null),mn(),v._vnode=g,ze&&console.error("Hydration completed but contains mismatches.")},h=(g,v,$,R,U,z=!1)=>{const P=sn(g)&&g.data==="[",S=()=>E(g,v,$,R,U,P),{type:N,ref:D,shapeFlag:O,patchFlag:x}=v;let L=g.nodeType;v.el=g,x===-2&&(z=!1,v.dynamicChildren=null);let F=null;switch(N){case xt:L!==3?v.children===""?(c(v.el=s(""),i(g),g),F=g):F=S():(g.data!==v.children&&(ze=!0,g.data=v.children),F=o(g));break;case we:L!==8||P?F=S():F=o(g);break;case $t:if(P&&(g=o(g),L=g.nodeType),L===1||L===3){F=g;const de=!v.children.length;for(let J=0;J{z=z||!!v.dynamicChildren;const{type:P,props:S,patchFlag:N,shapeFlag:D,dirs:O}=v,x=P==="input"&&O||P==="option";if(x||N!==-1){if(O&&Fe(v,null,$,"created"),S)if(x||!z||N&48)for(const F in S)(x&&F.endsWith("value")||Vt(F)&&!Ft(F))&&r(g,F,null,S[F],!1,void 0,$);else S.onClick&&r(g,"onClick",null,S.onClick,!1,void 0,$);let L;if((L=S&&S.onVnodeBeforeMount)&&Ce(L,$,v),O&&Fe(v,null,$,"beforeMount"),((L=S&&S.onVnodeMounted)||O)&&lo(()=>{L&&Ce(L,$,v),O&&Fe(v,null,$,"mounted")},R),D&16&&!(S&&(S.innerHTML||S.textContent))){let F=y(g.firstChild,v,g,$,R,U,z);for(;F;){ze=!0;const de=F;F=F.nextSibling,l(de)}}else D&8&&g.textContent!==v.children&&(ze=!0,g.textContent=v.children)}return g.nextSibling},y=(g,v,$,R,U,z,P)=>{P=P||!!v.dynamicChildren;const S=v.children,N=S.length;for(let D=0;D{const{slotScopeIds:P}=v;P&&(U=U?U.concat(P):P);const S=i(g),N=y(o(g),v,S,$,R,U,z);return N&&sn(N)&&N.data==="]"?o(v.anchor=N):(ze=!0,c(v.anchor=a("]"),S,N),N)},E=(g,v,$,R,U,z)=>{if(ze=!0,v.el=null,z){const N=j(g);for(;;){const D=o(g);if(D&&D!==N)l(D);else break}}const P=o(g),S=i(g);return l(g),n(null,v,S,P,$,R,rn(S),U),P},j=g=>{let v=0;for(;g;)if(g=o(g),g&&sn(g)&&(g.data==="["&&v++,g.data==="]")){if(v===0)return o(g);v--}return g};return[d,h]}const me=lo;function zl(e){return ql(e,Vl)}function ql(e,t){const n=sr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:d,parentNode:h,nextSibling:m,setScopeId:y=He,insertStaticContent:C}=e,E=(u,f,p,b=null,_=null,A=null,M=!1,T=null,I=!!f.dynamicChildren)=>{if(u===f)return;u&&!ot(u,f)&&(b=Jt(u),Me(u,_,A,!0),u=null),f.patchFlag===-2&&(I=!1,f.dynamicChildren=null);const{type:w,ref:k,shapeFlag:H}=f;switch(w){case xt:j(u,f,p,b);break;case we:g(u,f,p,b);break;case $t:u==null&&v(f,p,b,M);break;case ve:x(u,f,p,b,_,A,M,T,I);break;default:H&1?U(u,f,p,b,_,A,M,T,I):H&6?L(u,f,p,b,_,A,M,T,I):(H&64||H&128)&&w.process(u,f,p,b,_,A,M,T,I,ht)}k!=null&&_&&_n(k,u&&u.ref,A,f||u,!f)},j=(u,f,p,b)=>{if(u==null)r(f.el=l(f.children),p,b);else{const _=f.el=u.el;f.children!==u.children&&a(_,f.children)}},g=(u,f,p,b)=>{u==null?r(f.el=c(f.children||""),p,b):f.el=u.el},v=(u,f,p,b)=>{[u.el,u.anchor]=C(u.children,f,p,b,u.el,u.anchor)},$=({el:u,anchor:f},p,b)=>{let _;for(;u&&u!==f;)_=m(u),r(u,p,b),u=_;r(f,p,b)},R=({el:u,anchor:f})=>{let p;for(;u&&u!==f;)p=m(u),s(u),u=p;s(f)},U=(u,f,p,b,_,A,M,T,I)=>{M=M||f.type==="svg",u==null?z(f,p,b,_,A,M,T,I):N(u,f,_,A,M,T,I)},z=(u,f,p,b,_,A,M,T)=>{let I,w;const{type:k,props:H,shapeFlag:B,transition:K,dirs:q}=u;if(I=u.el=i(u.type,A,H&&H.is,H),B&8?d(I,u.children):B&16&&S(u.children,I,null,b,_,A&&k!=="foreignObject",M,T),q&&Fe(u,null,b,"created"),P(I,u,u.scopeId,M,b),H){for(const G in H)G!=="value"&&!Ft(G)&&o(I,G,null,H[G],A,u.children,b,_,De);"value"in H&&o(I,"value",null,H.value),(w=H.onVnodeBeforeMount)&&Ce(w,b,u)}q&&Fe(u,null,b,"beforeMount");const ee=(!_||_&&!_.pendingBranch)&&K&&!K.persisted;ee&&K.beforeEnter(I),r(I,f,p),((w=H&&H.onVnodeMounted)||ee||q)&&me(()=>{w&&Ce(w,b,u),ee&&K.enter(I),q&&Fe(u,null,b,"mounted")},_)},P=(u,f,p,b,_)=>{if(p&&y(u,p),b)for(let A=0;A{for(let w=I;w{const T=f.el=u.el;let{patchFlag:I,dynamicChildren:w,dirs:k}=f;I|=u.patchFlag&16;const H=u.props||re,B=f.props||re;let K;p&&tt(p,!1),(K=B.onVnodeBeforeUpdate)&&Ce(K,p,f,u),k&&Fe(f,u,p,"beforeUpdate"),p&&tt(p,!0);const q=_&&f.type!=="foreignObject";if(w?D(u.dynamicChildren,w,T,p,b,q,A):M||Z(u,f,T,null,p,b,q,A,!1),I>0){if(I&16)O(T,f,H,B,p,b,_);else if(I&2&&H.class!==B.class&&o(T,"class",null,B.class,_),I&4&&o(T,"style",H.style,B.style,_),I&8){const ee=f.dynamicProps;for(let G=0;G{K&&Ce(K,p,f,u),k&&Fe(f,u,p,"updated")},b)},D=(u,f,p,b,_,A,M)=>{for(let T=0;T{if(p!==b){if(p!==re)for(const T in p)!Ft(T)&&!(T in b)&&o(u,T,p[T],null,M,f.children,_,A,De);for(const T in b){if(Ft(T))continue;const I=b[T],w=p[T];I!==w&&T!=="value"&&o(u,T,w,I,M,f.children,_,A,De)}"value"in b&&o(u,"value",p.value,b.value)}},x=(u,f,p,b,_,A,M,T,I)=>{const w=f.el=u?u.el:l(""),k=f.anchor=u?u.anchor:l("");let{patchFlag:H,dynamicChildren:B,slotScopeIds:K}=f;K&&(T=T?T.concat(K):K),u==null?(r(w,p,b),r(k,p,b),S(f.children,p,k,_,A,M,T,I)):H>0&&H&64&&B&&u.dynamicChildren?(D(u.dynamicChildren,B,p,_,A,M,T),(f.key!=null||_&&f===_.subTree)&&Io(u,f,!0)):Z(u,f,p,k,_,A,M,T,I)},L=(u,f,p,b,_,A,M,T,I)=>{f.slotScopeIds=T,u==null?f.shapeFlag&512?_.ctx.activate(f,p,b,M,I):F(f,p,b,_,A,M,I):de(u,f,I)},F=(u,f,p,b,_,A,M)=>{const T=u.component=nc(u,b,_);if(qt(u)&&(T.ctx.renderer=ht),rc(T),T.asyncDep){if(_&&_.registerDep(T,J),!u.el){const I=T.subTree=ie(we);g(null,I,f,p)}return}J(T,u,f,p,_,A,M)},de=(u,f,p)=>{const b=f.component=u.component;if(hl(u,f,p))if(b.asyncDep&&!b.asyncResolved){Q(b,f,p);return}else b.next=f,il(b.update),b.update();else f.el=u.el,b.vnode=f},J=(u,f,p,b,_,A,M)=>{const T=()=>{if(u.isMounted){let{next:k,bu:H,u:B,parent:K,vnode:q}=u,ee=k,G;tt(u,!1),k?(k.el=q.el,Q(u,k,M)):k=q,H&&Dn(H),(G=k.props&&k.props.onVnodeBeforeUpdate)&&Ce(G,K,k,q),tt(u,!0);const le=kn(u),Ae=u.subTree;u.subTree=le,E(Ae,le,h(Ae.el),Jt(Ae),u,_,A),k.el=le.el,ee===null&&pl(u,le.el),B&&me(B,_),(G=k.props&&k.props.onVnodeUpdated)&&me(()=>Ce(G,K,k,q),_)}else{let k;const{el:H,props:B}=f,{bm:K,m:q,parent:ee}=u,G=wt(f);if(tt(u,!1),K&&Dn(K),!G&&(k=B&&B.onVnodeBeforeMount)&&Ce(k,ee,f),tt(u,!0),H&&jn){const le=()=>{u.subTree=kn(u),jn(H,u.subTree,u,_,null)};G?f.type.__asyncLoader().then(()=>!u.isUnmounted&&le()):le()}else{const le=u.subTree=kn(u);E(null,le,p,b,u,_,A),f.el=le.el}if(q&&me(q,_),!G&&(k=B&&B.onVnodeMounted)){const le=f;me(()=>Ce(k,ee,le),_)}(f.shapeFlag&256||ee&&wt(ee.vnode)&&ee.vnode.shapeFlag&256)&&u.a&&me(u.a,_),u.isMounted=!0,f=p=b=null}},I=u.effect=new Cr(T,()=>In(w),u.scope),w=u.update=()=>I.run();w.id=u.uid,tt(u,!0),w()},Q=(u,f,p)=>{f.component=u;const b=u.vnode.props;u.vnode=f,u.next=null,Bl(u,f.props,b,p),Kl(u,f.children,p),At(),es(),Rt()},Z=(u,f,p,b,_,A,M,T,I=!1)=>{const w=u&&u.children,k=u?u.shapeFlag:0,H=f.children,{patchFlag:B,shapeFlag:K}=f;if(B>0){if(B&128){Yt(w,H,p,b,_,A,M,T,I);return}else if(B&256){Pe(w,H,p,b,_,A,M,T,I);return}}K&8?(k&16&&De(w,_,A),H!==w&&d(p,H)):k&16?K&16?Yt(w,H,p,b,_,A,M,T,I):De(w,_,A,!0):(k&8&&d(p,""),K&16&&S(H,p,b,_,A,M,T,I))},Pe=(u,f,p,b,_,A,M,T,I)=>{u=u||vt,f=f||vt;const w=u.length,k=f.length,H=Math.min(w,k);let B;for(B=0;Bk?De(u,_,A,!0,!1,H):S(f,p,b,_,A,M,T,I,H)},Yt=(u,f,p,b,_,A,M,T,I)=>{let w=0;const k=f.length;let H=u.length-1,B=k-1;for(;w<=H&&w<=B;){const K=u[w],q=f[w]=I?Ye(f[w]):Re(f[w]);if(ot(K,q))E(K,q,p,null,_,A,M,T,I);else break;w++}for(;w<=H&&w<=B;){const K=u[H],q=f[B]=I?Ye(f[B]):Re(f[B]);if(ot(K,q))E(K,q,p,null,_,A,M,T,I);else break;H--,B--}if(w>H){if(w<=B){const K=B+1,q=KB)for(;w<=H;)Me(u[w],_,A,!0),w++;else{const K=w,q=w,ee=new Map;for(w=q;w<=B;w++){const _e=f[w]=I?Ye(f[w]):Re(f[w]);_e.key!=null&&ee.set(_e.key,w)}let G,le=0;const Ae=B-q+1;let pt=!1,Wr=0;const Ot=new Array(Ae);for(w=0;w=Ae){Me(_e,_,A,!0);continue}let Le;if(_e.key!=null)Le=ee.get(_e.key);else for(G=q;G<=B;G++)if(Ot[G-q]===0&&ot(_e,f[G])){Le=G;break}Le===void 0?Me(_e,_,A,!0):(Ot[Le-q]=w+1,Le>=Wr?Wr=Le:pt=!0,E(_e,f[Le],p,null,_,A,M,T,I),le++)}const Kr=pt?Xl(Ot):vt;for(G=Kr.length-1,w=Ae-1;w>=0;w--){const _e=q+w,Le=f[_e],Vr=_e+1{const{el:A,type:M,transition:T,children:I,shapeFlag:w}=u;if(w&6){et(u.component.subTree,f,p,b);return}if(w&128){u.suspense.move(f,p,b);return}if(w&64){M.move(u,f,p,ht);return}if(M===ve){r(A,f,p);for(let H=0;HT.enter(A),_);else{const{leave:H,delayLeave:B,afterLeave:K}=T,q=()=>r(A,f,p),ee=()=>{H(A,()=>{q(),K&&K()})};B?B(A,q,ee):ee()}else r(A,f,p)},Me=(u,f,p,b=!1,_=!1)=>{const{type:A,props:M,ref:T,children:I,dynamicChildren:w,shapeFlag:k,patchFlag:H,dirs:B}=u;if(T!=null&&_n(T,null,p,u,!0),k&256){f.ctx.deactivate(u);return}const K=k&1&&B,q=!wt(u);let ee;if(q&&(ee=M&&M.onVnodeBeforeUnmount)&&Ce(ee,f,u),k&6)ni(u.component,p,b);else{if(k&128){u.suspense.unmount(p,b);return}K&&Fe(u,null,f,"beforeUnmount"),k&64?u.type.remove(u,f,p,_,ht,b):w&&(A!==ve||H>0&&H&64)?De(w,f,p,!1,!0):(A===ve&&H&384||!_&&k&16)&&De(I,f,p),b&&Br(u)}(q&&(ee=M&&M.onVnodeUnmounted)||K)&&me(()=>{ee&&Ce(ee,f,u),K&&Fe(u,null,f,"unmounted")},p)},Br=u=>{const{type:f,el:p,anchor:b,transition:_}=u;if(f===ve){ti(p,b);return}if(f===$t){R(u);return}const A=()=>{s(p),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(u.shapeFlag&1&&_&&!_.persisted){const{leave:M,delayLeave:T}=_,I=()=>M(p,A);T?T(u.el,A,I):I()}else A()},ti=(u,f)=>{let p;for(;u!==f;)p=m(u),s(u),u=p;s(f)},ni=(u,f,p)=>{const{bum:b,scope:_,update:A,subTree:M,um:T}=u;b&&Dn(b),_.stop(),A&&(A.active=!1,Me(M,u,f,p)),T&&me(T,f),me(()=>{u.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},De=(u,f,p,b=!1,_=!1,A=0)=>{for(let M=A;Mu.shapeFlag&6?Jt(u.component.subTree):u.shapeFlag&128?u.suspense.next():m(u.anchor||u.el),Ur=(u,f,p)=>{u==null?f._vnode&&Me(f._vnode,null,null,!0):E(f._vnode||null,u,f,null,null,null,p),es(),mn(),f._vnode=u},ht={p:E,um:Me,m:et,r:Br,mt:F,mc:S,pc:Z,pbc:D,n:Jt,o:e};let $n,jn;return t&&([$n,jn]=t(ht)),{render:Ur,hydrate:$n,createApp:jl(Ur,$n)}}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Io(e,t,n=!1){const r=e.children,s=t.children;if(W(r)&&W(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const Yl=e=>e.__isTeleport,ve=Symbol.for("v-fgt"),xt=Symbol.for("v-txt"),we=Symbol.for("v-cmt"),$t=Symbol.for("v-stc"),jt=[];let Oe=null;function Oo(e=!1){jt.push(Oe=e?null:[])}function Jl(){jt.pop(),Oe=jt[jt.length-1]||null}let Kt=1;function ds(e){Kt+=e}function Po(e){return e.dynamicChildren=Kt>0?Oe||vt:null,Jl(),Kt>0&&Oe&&Oe.push(e),e}function tu(e,t,n,r,s,o){return Po(Fo(e,t,n,r,s,o,!0))}function Mo(e,t,n,r,s){return Po(ie(e,t,n,r,s,!0))}function bn(e){return e?e.__v_isVNode===!0:!1}function ot(e,t){return e.type===t.type&&e.key===t.key}const Nn="__vInternal",Lo=({key:e})=>e??null,fn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ae(e)||V(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function Fo(e,t=null,n=null,r=0,s=null,o=e===ve?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Lo(t),ref:t&&fn(t),scopeId:Pn,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:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:fe};return l?(Nr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Kt>0&&!i&&Oe&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Oe.push(c),c}const ie=Ql;function Ql(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===vo)&&(e=we),bn(e)){const l=Ge(e,t,!0);return n&&Nr(l,n),Kt>0&&!o&&Oe&&(l.shapeFlag&6?Oe[Oe.indexOf(e)]=l:Oe.push(l)),l.patchFlag|=-2,l}if(lc(e)&&(e=e.__vccOpts),t){t=Zl(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Tn(l)),te(c)&&(eo(c)&&!W(c)&&(c=ue({},c)),t.style=xn(c))}const i=se(e)?1:gl(e)?128:Yl(e)?64:te(e)?4:V(e)?2:0;return Fo(e,t,n,r,s,i,o,!0)}function Zl(e){return e?eo(e)||Nn in e?ue({},e):e:null}function Ge(e,t,n=!1){const{props:r,ref:s,patchFlag:o,children:i}=e,l=t?Gl(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Lo(l),ref:t&&t.ref?n&&s?W(s)?s.concat(fn(t)):[s,fn(t)]:fn(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ve?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ge(e.ssContent),ssFallback:e.ssFallback&&Ge(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function No(e=" ",t=0){return ie(xt,null,e,t)}function nu(e,t){const n=ie($t,null,e);return n.staticCount=t,n}function ru(e="",t=!1){return t?(Oo(),Mo(we,null,e)):ie(we,null,e)}function Re(e){return e==null||typeof e=="boolean"?ie(we):W(e)?ie(ve,null,e.slice()):typeof e=="object"?Ye(e):ie(xt,null,String(e))}function Ye(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ge(e)}function Nr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(W(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Nr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!(Nn in t)?t._ctx=fe:s===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else V(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),r&64?(n=16,t=[No(t)]):n=8);e.children=t,e.shapeFlag|=n}function Gl(...e){const t={};for(let n=0;nce||fe;let Hr,gt,hs="__VUE_INSTANCE_SETTERS__";(gt=sr()[hs])||(gt=sr()[hs]=[]),gt.push(e=>ce=e),Hr=e=>{gt.length>1?gt.forEach(t=>t(e)):gt[0](e)};const Tt=e=>{Hr(e),e.scope.on()},at=()=>{ce&&ce.scope.off(),Hr(null)};function Ho(e){return e.vnode.shapeFlag&4}let St=!1;function rc(e,t=!1){St=t;const{props:n,children:r}=e.vnode,s=Ho(e);kl(e,n,s,t),Wl(e,r);const o=s?sc(e,t):void 0;return St=!1,o}function sc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Nt(new Proxy(e.ctx,Ol));const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?jo(e):null;Tt(e),At();const o=Qe(r,e,0,[e.props,s]);if(Rt(),at(),js(o)){if(o.then(at,at),t)return o.then(i=>{ps(e,i)}).catch(i=>{zt(i,e,0)});e.asyncDep=o}else ps(e,o)}else $o(e)}function ps(e,t,n){V(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:te(t)&&(e.setupState=no(t)),$o(e)}function $o(e,t,n){const r=e.type;e.render||(e.render=r.render||He),Tt(e),At(),Ml(e),Rt(),at()}function oc(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return ye(e,"get","$attrs"),t[n]}}))}function jo(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return oc(e)},slots:e.slots,emit:e.emit,expose:t}}function $r(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(no(Nt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ht)return Ht[n](e)},has(t,n){return n in t||n in Ht}}))}function ic(e,t=!0){return V(e)?e.displayName||e.name:e.name||t&&e.__name}function lc(e){return V(e)&&"__vccOpts"in e}const ne=(e,t)=>rl(e,t,St);function gr(e,t,n){const r=arguments.length;return r===2?te(t)&&!W(t)?bn(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&bn(n)&&(n=[n]),ie(e,t,n))}const cc=Symbol.for("v-scx"),ac=()=>ct(cc),uc="3.3.4",fc="http://www.w3.org/2000/svg",it=typeof document<"u"?document:null,gs=it&&it.createElement("template"),dc={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?it.createElementNS(fc,e):it.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>it.createTextNode(e),createComment:e=>it.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>it.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{gs.innerHTML=r?`${e}`:e;const l=gs.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function hc(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function pc(e,t,n){const r=e.style,s=se(n);if(n&&!s){if(t&&!se(t))for(const o in t)n[o]==null&&mr(r,o,"");for(const o in n)mr(r,o,n[o])}else{const o=r.display;s?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const ms=/\s*!important$/;function mr(e,t,n){if(W(n))n.forEach(r=>mr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=gc(e,t);ms.test(n)?e.setProperty(dt(r),n.replace(ms,""),"important"):e[r]=n}}const vs=["Webkit","Moz","ms"],Kn={};function gc(e,t){const n=Kn[t];if(n)return n;let r=je(t);if(r!=="filter"&&r in e)return Kn[t]=r;r=Cn(r);for(let s=0;sVn||(Ec.then(()=>Vn=0),Vn=Date.now());function xc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Te(Tc(r,n.value),t,5,[r])};return n.value=e,n.attached=Cc(),n}function Tc(e,t){if(W(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 bs=/^on[a-z]/,Sc=(e,t,n,r,s=!1,o,i,l,c)=>{t==="class"?hc(e,r,s):t==="style"?pc(e,n,r):Vt(t)?yr(t)||bc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ac(e,t,r,s))?vc(e,t,r,o,i,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),mc(e,t,r,s))};function Ac(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&bs.test(t)&&V(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||bs.test(t)&&se(n)?!1:t in e}const qe="transition",Pt="animation",Do=(e,{slots:t})=>gr(_l,Rc(e),t);Do.displayName="Transition";const ko={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};Do.props=ue({},uo,ko);const nt=(e,t=[])=>{W(e)?e.forEach(n=>n(...t)):e&&e(...t)},ws=e=>e?W(e)?e.some(t=>t.length>1):e.length>1:!1;function Rc(e){const t={};for(const x in e)x in ko||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:y=`${n}-leave-to`}=e,C=Ic(s),E=C&&C[0],j=C&&C[1],{onBeforeEnter:g,onEnter:v,onEnterCancelled:$,onLeave:R,onLeaveCancelled:U,onBeforeAppear:z=g,onAppear:P=v,onAppearCancelled:S=$}=t,N=(x,L,F)=>{rt(x,L?d:l),rt(x,L?a:i),F&&F()},D=(x,L)=>{x._isLeaving=!1,rt(x,h),rt(x,y),rt(x,m),L&&L()},O=x=>(L,F)=>{const de=x?P:v,J=()=>N(L,x,F);nt(de,[L,J]),Es(()=>{rt(L,x?c:o),Xe(L,x?d:l),ws(de)||Cs(L,r,E,J)})};return ue(t,{onBeforeEnter(x){nt(g,[x]),Xe(x,o),Xe(x,i)},onBeforeAppear(x){nt(z,[x]),Xe(x,c),Xe(x,a)},onEnter:O(!1),onAppear:O(!0),onLeave(x,L){x._isLeaving=!0;const F=()=>D(x,L);Xe(x,h),Mc(),Xe(x,m),Es(()=>{x._isLeaving&&(rt(x,h),Xe(x,y),ws(R)||Cs(x,r,j,F))}),nt(R,[x,F])},onEnterCancelled(x){N(x,!1),nt($,[x])},onAppearCancelled(x){N(x,!0),nt(S,[x])},onLeaveCancelled(x){D(x),nt(U,[x])}})}function Ic(e){if(e==null)return null;if(te(e))return[zn(e.enter),zn(e.leave)];{const t=zn(e);return[t,t]}}function zn(e){return ui(e)}function Xe(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function rt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Es(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Oc=0;function Cs(e,t,n,r){const s=e._endId=++Oc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Pc(e,t);if(!i)return r();const a=i+"end";let d=0;const h=()=>{e.removeEventListener(a,m),o()},m=y=>{y.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[C]||"").split(", "),s=r(`${qe}Delay`),o=r(`${qe}Duration`),i=xs(s,o),l=r(`${Pt}Delay`),c=r(`${Pt}Duration`),a=xs(l,c);let d=null,h=0,m=0;t===qe?i>0&&(d=qe,h=i,m=o.length):t===Pt?a>0&&(d=Pt,h=a,m=c.length):(h=Math.max(i,a),d=h>0?i>a?qe:Pt:null,m=d?d===qe?o.length:c.length:0);const y=d===qe&&/\b(transform|all)(,|$)/.test(r(`${qe}Property`).toString());return{type:d,timeout:h,propCount:m,hasTransform:y}}function xs(e,t){for(;e.lengthTs(n)+Ts(e[r])))}function Ts(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Mc(){return document.body.offsetHeight}const Lc=["ctrl","shift","alt","meta"],Fc={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)=>Lc.some(n=>e[`${n}Key`]&&!t.includes(n))},su=(e,t)=>(n,...r)=>{for(let s=0;sn=>{if(!("key"in n))return;const r=dt(n.key);if(t.some(s=>s===r||Nc[s]===r))return e(n)},Hc=ue({patchProp:Sc},dc);let qn,Ss=!1;function $c(){return qn=Ss?qn:zl(Hc),Ss=!0,qn}const iu=(...e)=>{const t=$c().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=jc(r);if(s)return n(s,!0,s instanceof SVGElement)},t};function jc(e){return se(e)?document.querySelector(e):e}const Dc=window.__VP_SITE_DATA__;function Bo(e){return Ws()?(_i(e),!0):!1}const Xn=new WeakMap,kc=(...e)=>{var t;const n=e[0],r=(t=Xt())==null?void 0:t.proxy;if(r==null&&!Co())throw new Error("injectLocal must be called in setup");return r&&Xn.has(r)&&n in Xn.get(r)?Xn.get(r)[n]:ct(...e)},Uo=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Bc=Object.prototype.toString,Uc=e=>Bc.call(e)==="[object Object]",ft=()=>{},As=Wc();function Wc(){var e,t;return Uo&&((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 jr(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const Wo=e=>e();function Kc(e,t={}){let n,r,s=ft;const o=c=>{clearTimeout(c),s(),s=ft};let i;return c=>{const a=oe(e),d=oe(t.maxWait);return n&&o(n),a<=0||d!==void 0&&d<=0?(r&&(o(r),r=null),Promise.resolve(c())):new Promise((h,m)=>{s=t.rejectOnCancel?m:h,i=c,d&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,h(i())},d)),n=setTimeout(()=>{r&&o(r),r=null,h(c())},a)})}}function Vc(...e){let t=0,n,r=!0,s=ft,o,i,l,c,a;!ae(e[0])&&typeof e[0]=="object"?{delay:i,trailing:l=!0,leading:c=!0,rejectOnCancel:a=!1}=e[0]:[i,l=!0,c=!0,a=!1]=e;const d=()=>{n&&(clearTimeout(n),n=void 0,s(),s=ft)};return m=>{const y=oe(i),C=Date.now()-t,E=()=>o=m();return d(),y<=0?(t=Date.now(),E()):(C>y&&(c||!r)?(t=Date.now(),E()):l&&(o=new Promise((j,g)=>{s=a?g:j,n=setTimeout(()=>{t=Date.now(),r=!0,j(E()),d()},Math.max(0,y-C))})),!c&&!n&&(n=setTimeout(()=>r=!0,y)),r=!1,o)}}function zc(e=Wo,t={}){const{initialState:n="active"}=t,r=Dr(n==="active");function s(){r.value=!1}function o(){r.value=!0}const i=(...l)=>{r.value&&e(...l)};return{isActive:An(r),pause:s,resume:o,eventFilter:i}}function Rs(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function qc(e){return Xt()}function Yn(e){return Array.isArray(e)?e:[e]}function Dr(...e){if(e.length!==1)return el(...e);const t=e[0];return typeof t=="function"?An(Qi(()=>({get:t,set:ft}))):$e(t)}function Xc(e,t=200,n={}){return jr(Kc(t,n),e)}function Yc(e,t=200,n=!1,r=!0,s=!1){return jr(Vc(t,n,r,s),e)}function Jc(e,t,n={}){const{eventFilter:r=Wo,...s}=n;return Se(e,jr(r,t),s)}function Qc(e,t,n={}){const{eventFilter:r,initialState:s="active",...o}=n,{eventFilter:i,pause:l,resume:c,isActive:a}=zc(r,{initialState:s});return{stop:Jc(e,t,{...o,eventFilter:i}),pause:l,resume:c,isActive:a}}function Hn(e,t=!0,n){qc()?It(e,n):t?e():Rn(e)}function Zc(e,t,n){return Se(e,t,{...n,immediate:!0})}const Ue=Uo?window:void 0;function kr(e){var t;const n=oe(e);return(t=n==null?void 0:n.$el)!=null?t:n}function We(...e){const t=[],n=()=>{t.forEach(l=>l()),t.length=0},r=(l,c,a,d)=>(l.addEventListener(c,a,d),()=>l.removeEventListener(c,a,d)),s=ne(()=>{const l=Yn(oe(e[0])).filter(c=>c!=null);return l.every(c=>typeof c!="string")?l:void 0}),o=Zc(()=>{var l,c;return[(c=(l=s.value)==null?void 0:l.map(a=>kr(a)))!=null?c:[Ue].filter(a=>a!=null),Yn(oe(s.value?e[1]:e[0])),Yn(Pr(s.value?e[2]:e[1])),oe(s.value?e[3]:e[2])]},([l,c,a,d])=>{if(n(),!(l!=null&&l.length)||!(c!=null&&c.length)||!(a!=null&&a.length))return;const h=Uc(d)?{...d}:d;t.push(...l.flatMap(m=>c.flatMap(y=>a.map(C=>r(m,y,C,h)))))},{flush:"post"}),i=()=>{o(),n()};return Bo(n),i}function Gc(){const e=xe(!1),t=Xt();return t&&It(()=>{e.value=!0},t),e}function ea(e){const t=Gc();return ne(()=>(t.value,!!e()))}function ta(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function lu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Ue,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=ta(t);return We(s,o,d=>{d.repeat&&oe(l)||c(d)&&n(d)},i)}const na=Symbol("vueuse-ssr-width");function ra(){const e=Co()?kc(na,null):null;return typeof e=="number"?e:void 0}function Ko(e,t={}){const{window:n=Ue,ssrWidth:r=ra()}=t,s=ea(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),o=xe(typeof r=="number"),i=xe(),l=xe(!1),c=a=>{l.value=a.matches};return co(()=>{if(o.value){o.value=!s.value;const a=oe(e).split(",");l.value=a.some(d=>{const h=d.includes("not all"),m=d.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),y=d.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let C=!!(m||y);return m&&C&&(C=r>=Rs(m[1])),y&&C&&(C=r<=Rs(y[1])),h?!C:C});return}s.value&&(i.value=n.matchMedia(oe(e)),l.value=i.value.matches)}),We(i,"change",c,{passive:!0}),ne(()=>l.value)}const on=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ln="__vueuse_ssr_handlers__",sa=oa();function oa(){return ln in on||(on[ln]=on[ln]||{}),on[ln]}function Vo(e,t){return sa[e]||t}function zo(e){return Ko("(prefers-color-scheme: dark)",e)}function ia(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 la={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()}},Is="vueuse-storage";function ca(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:d,window:h=Ue,eventFilter:m,onError:y=O=>{console.error(O)},initOnMounted:C}=r,E=(d?xe:$e)(typeof t=="function"?t():t),j=ne(()=>oe(e));if(!n)try{n=Vo("getDefaultStorage",()=>{var O;return(O=Ue)==null?void 0:O.localStorage})()}catch(O){y(O)}if(!n)return E;const g=oe(t),v=ia(g),$=(s=r.serializer)!=null?s:la[v],{pause:R,resume:U}=Qc(E,()=>P(E.value),{flush:o,deep:i,eventFilter:m});Se(j,()=>N(),{flush:o}),h&&l&&Hn(()=>{n instanceof Storage?We(h,"storage",N,{passive:!0}):We(h,Is,D),C&&N()}),C||N();function z(O,x){if(h){const L={key:j.value,oldValue:O,newValue:x,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",L):new CustomEvent(Is,{detail:L}))}}function P(O){try{const x=n.getItem(j.value);if(O==null)z(x,null),n.removeItem(j.value);else{const L=$.write(O);x!==L&&(n.setItem(j.value,L),z(x,L))}}catch(x){y(x)}}function S(O){const x=O?O.newValue:n.getItem(j.value);if(x==null)return c&&g!=null&&n.setItem(j.value,$.write(g)),g;if(!O&&a){const L=$.read(x);return typeof a=="function"?a(L,g):v==="object"&&!Array.isArray(L)?{...g,...L}:L}else return typeof x!="string"?x:$.read(x)}function N(O){if(!(O&&O.storageArea!==n)){if(O&&O.key==null){E.value=g;return}if(!(O&&O.key!==j.value)){R();try{(O==null?void 0:O.newValue)!==$.write(E.value)&&(E.value=S(O))}catch(x){y(x)}finally{O?Rn(U):U()}}}}function D(O){N(O.detail)}return E}const aa="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function ua(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Ue,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=zo({window:s}),y=ne(()=>m.value?"dark":"light"),C=c||(i==null?Dr(r):ca(i,r,o,{window:s,listenToStorageChanges:l})),E=ne(()=>C.value==="auto"?y.value:C.value),j=Vo("updateHTMLAttrs",(R,U,z)=>{const P=typeof R=="string"?s==null?void 0:s.document.querySelector(R):kr(R);if(!P)return;const S=new Set,N=new Set;let D=null;if(U==="class"){const x=z.split(/\s/g);Object.values(h).flatMap(L=>(L||"").split(/\s/g)).filter(Boolean).forEach(L=>{x.includes(L)?S.add(L):N.add(L)})}else D={key:U,value:z};if(S.size===0&&N.size===0&&D===null)return;let O;d&&(O=s.document.createElement("style"),O.appendChild(document.createTextNode(aa)),s.document.head.appendChild(O));for(const x of S)P.classList.add(x);for(const x of N)P.classList.remove(x);D&&P.setAttribute(D.key,D.value),d&&(s.getComputedStyle(O).opacity,document.head.removeChild(O))});function g(R){var U;j(t,n,(U=h[R])!=null?U:R)}function v(R){e.onChanged?e.onChanged(R,g):g(R)}Se(E,v,{flush:"post",immediate:!0}),Hn(()=>v(E.value));const $=ne({get(){return a?C.value:E.value},set(R){C.value=R}});return Object.assign($,{store:C,system:y,state:E})}function fa(e={}){const{valueDark:t="dark",valueLight:n=""}=e,r=ua({...e,onChanged:(i,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,i==="dark",l,i):l(i)},modes:{dark:t,light:n}}),s=ne(()=>r.system.value);return ne({get(){return r.value==="dark"},set(i){const l=i?"dark":"light";s.value===l?r.value="auto":r.value=l}})}function Jn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const Os=1;function da(e,t={}){const{throttle:n=0,idle:r=200,onStop:s=ft,onScroll:o=ft,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:c="auto",window:a=Ue,onError:d=P=>{console.error(P)}}=t,h=xe(0),m=xe(0),y=ne({get(){return h.value},set(P){E(P,void 0)}}),C=ne({get(){return m.value},set(P){E(void 0,P)}});function E(P,S){var N,D,O,x;if(!a)return;const L=oe(e);if(!L)return;(O=L instanceof Document?a.document.body:L)==null||O.scrollTo({top:(N=oe(S))!=null?N:C.value,left:(D=oe(P))!=null?D:y.value,behavior:oe(c)});const F=((x=L==null?void 0:L.document)==null?void 0:x.documentElement)||(L==null?void 0:L.documentElement)||L;y!=null&&(h.value=F.scrollLeft),C!=null&&(m.value=F.scrollTop)}const j=xe(!1),g=Et({left:!0,right:!1,top:!0,bottom:!1}),v=Et({left:!1,right:!1,top:!1,bottom:!1}),$=P=>{j.value&&(j.value=!1,v.left=!1,v.right=!1,v.top=!1,v.bottom=!1,s(P))},R=Xc($,n+r),U=P=>{var S;if(!a)return;const N=((S=P==null?void 0:P.document)==null?void 0:S.documentElement)||(P==null?void 0:P.documentElement)||kr(P),{display:D,flexDirection:O,direction:x}=getComputedStyle(N),L=x==="rtl"?-1:1,F=N.scrollLeft;v.left=Fh.value;const de=Math.abs(F*L)<=(i.left||0),J=Math.abs(F*L)+N.clientWidth>=N.scrollWidth-(i.right||0)-Os;D==="flex"&&O==="row-reverse"?(g.left=J,g.right=de):(g.left=de,g.right=J),h.value=F;let Q=N.scrollTop;P===a.document&&!Q&&(Q=a.document.body.scrollTop),v.top=Qm.value;const Z=Math.abs(Q)<=(i.top||0),Pe=Math.abs(Q)+N.clientHeight>=N.scrollHeight-(i.bottom||0)-Os;D==="flex"&&O==="column-reverse"?(g.top=Pe,g.bottom=Z):(g.top=Z,g.bottom=Pe),m.value=Q},z=P=>{var S;if(!a)return;const N=(S=P.target.documentElement)!=null?S:P.target;U(N),j.value=!0,R(P),o(P)};return We(e,"scroll",n?Yc(z,n,!0,!1):z,l),Hn(()=>{try{const P=oe(e);if(!P)return;U(P)}catch(P){d(P)}}),We(e,"scrollend",$,l),{x:y,y:C,isScrolling:j,arrivedState:g,directions:v,measure(){const P=oe(e);a&&P&&U(P)}}}function qo(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 Qn=new WeakMap;function cu(e,t=!1){const n=xe(t);let r=null,s="";Se(Dr(e),l=>{const c=Jn(oe(l));if(c){const a=c;if(Qn.get(a)||Qn.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Jn(oe(e));!l||n.value||(As&&(r=We(l,"touchmove",c=>{ha(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Jn(oe(e));!l||!n.value||(As&&(r==null||r()),l.style.overflow=s,Qn.delete(l),n.value=!1)};return Bo(i),ne({get(){return n.value},set(l){l?o():i()}})}function au(e={}){const{window:t=Ue,...n}=e;return da(t,n)}function uu(e={}){const{window:t=Ue,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0,type:i="inner"}=e,l=xe(n),c=xe(r),a=()=>{if(t)if(i==="outer")l.value=t.outerWidth,c.value=t.outerHeight;else if(i==="visual"&&t.visualViewport){const{width:h,height:m,scale:y}=t.visualViewport;l.value=Math.round(h*y),c.value=Math.round(m*y)}else o?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};a(),Hn(a);const d={passive:!0};if(We("resize",a,d),t&&i==="visual"&&t.visualViewport&&We(t.visualViewport,"resize",a,d),s){const h=Ko("(orientation: portrait)");Se(h,()=>a())}return{width:l,height:c}}const Zn={};var Gn={};const Xo=/^(?:[a-z]+:|\/\/)/i,pa="vitepress-theme-appearance",ga=/#.*$/,ma=/[?#].*$/,va=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Yo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ya(e,t,n=!1){if(t===void 0)return!1;if(e=Ps(`/${e}`),n)return new RegExp(t).test(e);if(Ps(t)!==e)return!1;const r=t.match(ga);return r?(he?location.hash:"")===r[0]:!0}function Ps(e){return decodeURI(e).replace(ma,"").replace(va,"$1")}function _a(e){return Xo.test(e)}function ba(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!_a(n)&&ya(t,`/${n}/`,!0))||"root"}function wa(e,t){var r,s,o,i,l,c,a;const n=ba(e,t);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:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Qo(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function Jo(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=Ea(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Ea(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ca(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Qo(e,t){return[...e.filter(n=>!Ca(t,n)),...t]}const xa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ta=/^[a-z]:/i;function Ms(e){const t=Ta.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(xa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const er=new Set;function Sa(e){if(er.size===0){const n=typeof process=="object"&&(Gn==null?void 0:Gn.VITE_EXTRA_EXTENSIONS)||(Zn==null?void 0:Zn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>er.add(r))}const t=e.split(".").pop();return t==null||!er.has(t.toLowerCase())}const Aa=Symbol(),ut=xe(Dc);function fu(e){const t=ne(()=>wa(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?$e(!0):n==="force-auto"?zo():n?fa({storageKey:pa,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):$e(!1),s=$e(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Se(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:ne(()=>t.value.themeConfig),page:ne(()=>e.data),frontmatter:ne(()=>e.data.frontmatter),params:ne(()=>e.data.params),lang:ne(()=>t.value.lang),dir:ne(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ne(()=>t.value.localeIndex||"root"),title:ne(()=>Jo(t.value,e.data)),description:ne(()=>e.data.description||t.value.description),isDark:r,hash:ne(()=>s.value)}}function Ra(){const e=ct(Aa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ia(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ls(e){return Xo.test(e)||!e.startsWith("/")?e:Ia(ut.value.base,e)}function Oa(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/vue-h5-template/";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 dn=[];function du(e){dn.push(e),Fn(()=>{dn=dn.filter(t=>t!==e)})}function Pa(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Fs(e,n);else if(Array.isArray(e))for(const r of e){const s=Fs(r,n);if(s){t=s;break}}return t}function Fs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Ma=Symbol(),Zo="http://a.com",La=()=>({path:"/",component:null,data:Yo});function hu(e,t){const n=Et(La()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=tr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==tr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChange??r.onAfterRouteChanged)==null?void 0:a(l)))}let o=null;async function i(l,c=0,a=!1){var m,y;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const d=new URL(l,Zo),h=o=d.pathname;try{let C=await e(h);if(!C)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:E,__pageData:j}=C;if(!E)throw new Error(`Invalid route component: ${E}`);await((y=r.onAfterPageLoad)==null?void 0:y.call(r,l)),n.path=he?h:Ls(h),n.component=Nt(E),n.data=Nt(j),he&&Rn(()=>{let g=ut.value.base+j.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!g.endsWith("/")&&(g+=".html"),g!==d.pathname&&(d.pathname=g,l=g+d.search+d.hash,history.replaceState({},"",l)),d.hash&&!c){let v=null;try{v=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch($){console.warn($)}if(v){Ns(v,d.hash);return}}window.scrollTo(0,c)})}}catch(C){if(!/fetch|Page not found/.test(C.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(C),!a)try{const E=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await E.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Ls(h),n.component=t?Nt(t):null;const E=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Yo,relativePath:E}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const a=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(a==null)return;const{href:d,origin:h,pathname:m,hash:y,search:C}=new URL(a,c.baseURI),E=new URL(location.href);h===E.origin&&Sa(m)&&(l.preventDefault(),m===E.pathname&&C===E.search?(y!==E.hash&&(history.pushState({},"",d),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:E.href,newURL:d}))),y?Ns(c,y,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(d))},{capture:!0}),window.addEventListener("popstate",async l=>{var a;if(l.state===null)return;const c=tr(location.href);await i(c,l.state&&l.state.scrollPosition||0),await((a=r.onAfterRouteChange??r.onAfterRouteChanged)==null?void 0:a(c))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Fa(){const e=ct(Ma);if(!e)throw new Error("useRouter() is called without provider.");return e}function Go(){return Fa().route}function Ns(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 s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Pa()+o;requestAnimationFrame(s)}}function tr(e){const t=new URL(e,Zo);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 cn=()=>dn.forEach(e=>e()),pu=Lr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Go(),{frontmatter:n,site:r}=Ra();return Se(n,cn,{deep:!0,flush:"post"}),()=>gr(e.as,r.value.contentProps??{style:{position:"relative"}},[t.component?gr(t.component,{onVnodeMounted:cn,onVnodeUpdated:cn,onVnodeUnmounted:cn}):"404 Page Not Found"])}}),gu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Na="modulepreload",Ha=function(e){return"/vue-h5-template/"+e},Hs={},mu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=Promise.allSettled(n.map(c=>{if(c=Ha(c),c in Hs)return;Hs[c]=!0;const a=c.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const h=document.createElement("link");if(h.rel=a?"stylesheet":Na,a||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),a)return new Promise((m,y)=>{h.addEventListener("load",m),h.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},vu=Lr({setup(e,{slots:t}){const n=$e(!1);return It(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function yu(){he&&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 o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.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 _u(){if(he){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,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(d=>d.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),$a(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const d=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,d)})}})}}async function $a(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 bu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=nr(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(nr);r.forEach((l,c)=>{const a=i.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};co(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=Jo(i,o);a!==document.title&&(document.title=a);const d=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):nr(["meta",{name:"description",content:d}]),s(Qo(i.head,Da(c)))})}function nr([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==null&&(r.async=!1),r}function ja(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Da(e){return e.filter(t=>!ja(t))}const rr=new Set,ei=()=>document.createElement("link"),ka=e=>{const t=ei();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ba=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const Ua=he&&(an=ei())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?ka:Ba;function wu(){if(!he||!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(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!rr.has(c)){rr.add(c);const a=Oa(c);a&&Ua(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):rr.add(l))})})};It(r);const s=Go();Se(()=>s.path,r),Fn(()=>{n&&n.disconnect()})}export{Dl as $,qa as A,Tl as B,Pa as C,Qa as D,Ya as E,ve as F,xe as G,du as H,ie as I,Ja as J,Xo as K,Go as L,Gl as M,ct as N,uu as O,xn as P,lu as Q,Rn as R,au as S,Do as T,he as U,An as V,Wa as W,Xa as X,mu as Y,cu as Z,gu as _,No as a,Ga as a0,ou as a1,go as a2,su as a3,eu as a4,bu as a5,Ma as a6,fu as a7,Aa as a8,pu as a9,vu as aa,ut as ab,hu as ac,Oa as ad,iu as ae,wu as af,_u as ag,yu as ah,gr as ai,nu as aj,Fa as ak,Mo as b,tu as c,Lr as d,ru as e,Sa as f,Ls as g,ne as h,_a as i,Fo as j,Pr as k,za as l,ya as m,Tn as n,Oo as o,Va as p,Ko as q,Za as r,$e as s,Ka as t,Ra as u,Se as v,ul as w,co as x,It as y,Fn as z}; diff --git a/assets/chunks/theme.BGZVS_Sn.js b/assets/chunks/theme.BGZVS_Sn.js new file mode 100644 index 0000000..0a0fd7f --- /dev/null +++ b/assets/chunks/theme.BGZVS_Sn.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPAlgoliaSearchBox.57AC7P3e.js","assets/chunks/framework.DNhrqZu5.js"])))=>i.map(i=>d[i]); +import{d as m,c as u,r as l,n as N,o as a,a as q,t as M,b as k,w as v,T as ve,e as f,_ as b,u as Ue,i as je,f as ze,g as pe,h as $,j as d,k as r,p as H,l as B,m as W,q as le,s as w,v as O,x as Z,y as K,z as x,A as he,B as Ke,C as qe,F as A,D as E,E as R,G as ye,H as ee,I as _,J as F,K as Pe,L as te,M as z,N as ne,O as We,P as Le,Q as Re,R as Ve,S as Se,U as oe,V as Je,W as Te,X as Xe,Y as Ye,Z as Ie,$ as we,a0 as Qe,a1 as Ze,a2 as xe,a3 as et,a4 as tt}from"./framework.DNhrqZu5.js";const nt=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[q(M(e.text),1)])],2))}}),ot={key:0,class:"VPBackdrop"},st=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),k(ve,{name:"fade"},{default:v(()=>[e.show?(a(),u("div",ot)):f("",!0)]),_:1}))}}),at=b(st,[["__scopeId","data-v-c79a1216"]]),V=Ue;function rt(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(n){return n.startsWith("/")?n:`/${n}`}function fe(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(je(n)||n.startsWith("#")||!o.startsWith("http")||!ze(e))return n;const{site:i}=V(),c=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return pe(c)}function X({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),c=$(()=>{var h,g;return{label:(h=e.value.locales[t.value])==null?void 0:h.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:$(()=>Object.entries(e.value.locales).flatMap(([h,g])=>c.value.label===g.label?[]:{text:g.label,link:it(g.link||(h==="root"?"/":`/${h}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:c}}function it(n,e,t,s){return e?n.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const lt=n=>(H("data-v-d6be1790"),n=n(),B(),n),ct={class:"NotFound"},ut={class:"code"},dt={class:"title"},vt=lt(()=>d("div",{class:"divider"},null,-1)),pt={class:"quote"},ht={class:"action"},ft=["href","aria-label"],mt=m({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=X();return(s,o)=>{var i,c,p,h,g;return a(),u("div",ct,[d("p",ut,M(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),d("h1",dt,M(((c=r(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),vt,d("blockquote",pt,M(((p=r(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",ht,[d("a",{class:"link",href:r(pe)(r(t).link),"aria-label":((h=r(e).notFound)==null?void 0:h.linkLabel)??"go to home"},M(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ft)])])}}}),_t=b(mt,[["__scopeId","data-v-d6be1790"]]);function Ne(n,e){if(Array.isArray(n))return Y(n);if(n==null)return[];e=ce(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ce(o))),s=t?n[t]:[];return Array.isArray(s)?Y(s):Y(s.items,s.base)}function kt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function bt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function ue(n,e){return Array.isArray(e)?e.some(t=>ue(n,t)):W(n,e.link)?!0:e.items?ue(n,e.items):!1}function Y(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Y(s.items,o)),s})}function G(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=w(!1),i=$(()=>{const C=t.value.sidebar,I=e.value.relativePath;return C?Ne(C,I):[]}),c=w(i.value);O(i,(C,I)=>{JSON.stringify(C)!==JSON.stringify(I)&&(c.value=i.value)});const p=$(()=>n.value.sidebar!==!1&&c.value.length>0&&n.value.layout!=="home"),h=$(()=>g?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),g=$(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),T=$(()=>p.value&&s.value),y=$(()=>p.value?kt(c.value):[]);function P(){o.value=!0}function S(){o.value=!1}function L(){o.value?S():P()}return{isOpen:o,sidebar:c,sidebarGroups:y,hasSidebar:p,hasAside:g,leftAside:h,isSidebarEnabled:T,open:P,close:S,toggle:L}}function $t(n,e){let t;Z(()=>{t=n.value?document.activeElement:void 0}),K(()=>{window.addEventListener("keyup",s)}),x(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function gt(n){const{page:e,hash:t}=V(),s=w(!1),o=$(()=>n.value.collapsed!=null),i=$(()=>!!n.value.link),c=w(!1),p=()=>{c.value=W(e.value.relativePath,n.value.link)};O([e,n,t],p),K(p);const h=$(()=>c.value?!0:n.value.items?ue(e.value.relativePath,n.value.items):!1),g=$(()=>!!(n.value.items&&n.value.items.length));Z(()=>{s.value=!!(o.value&&n.value.collapsed)}),he(()=>{(c.value||h.value)&&(s.value=!1)});function T(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:c,hasActiveLink:h,hasChildren:g,toggle:T}}function yt(){const{hasSidebar:n}=G(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Pt=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,de=[];function Me(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function me(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Lt(t),link:"#"+t.id,level:s}});return Vt(e,n)}function Lt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(Pt.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Vt(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return It(n,s,o)}function St(n,e){const{isAsideEnabled:t}=yt(),s=rt(i,100);let o=null;K(()=>{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Ke(()=>{c(location.hash)}),x(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const p=window.scrollY,h=window.innerHeight,g=document.body.offsetHeight,T=Math.abs(p+h-g)<1,y=de.map(({element:S,link:L})=>({link:L,top:Tt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,L)=>S.top-L.top);if(!y.length){c(null);return}if(p<1){c(null);return}if(T){c(y[y.length-1].link);return}let P=null;for(const{link:S,top:L}of y){if(L>p+qe()+4)break;P=S}c(P)}function c(p){o&&o.classList.remove("active"),p==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const h=o;h?(h.classList.add("active"),e.value.style.top=h.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Tt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}function It(n,e,t){de.length=0;const s=[],o=[];return n.forEach(i=>{const c={...i,children:[]};let p=o[o.length-1];for(;p&&p.level>=c.level;)o.pop(),p=o[o.length-1];if(c.element.classList.contains("ignore-header")||p&&"shouldIgnore"in p){o.push({level:c.level,shouldIgnore:!0});return}c.level>t||c.level{const o=R("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(A,null,E(t.headers,({children:i,link:c,title:p})=>(a(),u("li",null,[d("a",{class:"outline-link",href:c,onClick:e,title:p},M(p),9,wt),i!=null&&i.length?(a(),k(o,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Ce=b(Nt,[["__scopeId","data-v-b933a997"]]),Mt={class:"content"},Ct={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},At=m({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=ye([]);ee(()=>{s.value=me(e.value.outline??t.value.outline)});const o=w(),i=w();return St(o,i),(c,p)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[d("div",Mt,[d("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),d("div",Ct,M(r(Me)(r(t))),1),_(Ce,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Ht=b(At,[["__scopeId","data-v-a5bbad30"]]),Bt={class:"VPDocAsideCarbonAds"},Et=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Bt,[_(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft=n=>(H("data-v-3f215769"),n=n(),B(),n),Dt={class:"VPDocAside"},Ot=Ft(()=>d("div",{class:"spacer"},null,-1)),Gt=m({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Dt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),_(Ht),l(t.$slots,"aside-outline-after",{},void 0,!0),Ot,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Et,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ut=b(Gt,[["__scopeId","data-v-3f215769"]]);function jt(){const{theme:n,page:e}=V();return $(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function zt(){const{page:n,theme:e,frontmatter:t}=V();return $(()=>{var g,T,y,P,S,L,C,I;const s=Ne(e.value.sidebar,n.value.relativePath),o=bt(s),i=Kt(o,U=>U.link.replace(/[?#].*$/,"")),c=i.findIndex(U=>W(n.value.relativePath,U.link)),p=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((T=e.value.docFooter)==null?void 0:T.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=i[c-1])==null?void 0:y.docFooterText)??((P=i[c-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[c-1])==null?void 0:S.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((L=i[c+1])==null?void 0:L.docFooterText)??((C=i[c+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((I=i[c+1])==null?void 0:I.link)}}})}function Kt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=$(()=>e.tag??(e.href?"a":"span")),s=$(()=>e.href&&Pe.test(e.href)||e.target==="_blank");return(o,i)=>(a(),k(F(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(fe)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:v(()=>[l(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),qt={class:"VPLastUpdated"},Wt=["datetime"],Rt=m({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=$(()=>new Date(t.value.lastUpdated)),i=$(()=>o.value.toISOString()),c=w("");return K(()=>{Z(()=>{var p,h,g;c.value=new Intl.DateTimeFormat((h=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&h.forceLocale?s.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(p,h)=>{var g;return a(),u("p",qt,[q(M(((g=r(e).lastUpdated)==null?void 0:g.text)||r(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:i.value},M(c.value),9,Wt)])}}}),Jt=b(Rt,[["__scopeId","data-v-e98dd255"]]),Ae=n=>(H("data-v-e257564d"),n=n(),B(),n),Xt={key:0,class:"VPDocFooter"},Yt={key:0,class:"edit-info"},Qt={key:0,class:"edit-link"},Zt=Ae(()=>d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),xt={key:1,class:"last-updated"},en={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},tn=Ae(()=>d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),nn={class:"pager"},on=["innerHTML"],sn=["innerHTML"],an={class:"pager"},rn=["innerHTML"],ln=["innerHTML"],cn=m({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=jt(),i=zt(),c=$(()=>e.value.editLink&&s.value.editLink!==!1),p=$(()=>t.value.lastUpdated),h=$(()=>c.value||p.value||i.value.prev||i.value.next);return(g,T)=>{var y,P,S,L;return h.value?(a(),u("footer",Xt,[l(g.$slots,"doc-footer-before",{},void 0,!0),c.value||p.value?(a(),u("div",Yt,[c.value?(a(),u("div",Qt,[_(D,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:v(()=>[Zt,q(" "+M(r(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),u("div",xt,[_(Jt)])):f("",!0)])):f("",!0),(y=r(i).prev)!=null&&y.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",en,[tn,d("div",nn,[(S=r(i).prev)!=null&&S.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:v(()=>{var C;return[d("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,on),d("span",{class:"title",innerHTML:r(i).prev.text},null,8,sn)]}),_:1},8,["href"])):f("",!0)]),d("div",an,[(L=r(i).next)!=null&&L.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:v(()=>{var C;return[d("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,rn),d("span",{class:"title",innerHTML:r(i).next.text},null,8,ln)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),un=b(cn,[["__scopeId","data-v-e257564d"]]),dn=n=>(H("data-v-39a288b8"),n=n(),B(),n),vn={class:"container"},pn=dn(()=>d("div",{class:"aside-curtain"},null,-1)),hn={class:"aside-container"},fn={class:"aside-content"},mn={class:"content"},_n={class:"content-container"},kn={class:"main"},bn=m({__name:"VPDoc",setup(n){const{theme:e}=V(),t=te(),{hasSidebar:s,hasAside:o,leftAside:i}=G(),c=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,h)=>{const g=R("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[l(p.$slots,"doc-top",{},void 0,!0),d("div",vn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[pn,d("div",hn,[d("div",fn,[_(Ut,null,{"aside-top":v(()=>[l(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),d("div",mn,[d("div",_n,[l(p.$slots,"doc-before",{},void 0,!0),d("main",kn,[_(g,{class:N(["vp-doc",[c.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(un,null,{"doc-footer-before":v(()=>[l(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(p.$slots,"doc-after",{},void 0,!0)])])]),l(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),$n=b(bn,[["__scopeId","data-v-39a288b8"]]),gn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=$(()=>e.href&&Pe.test(e.href)),s=$(()=>e.tag||(e.href?"a":"button"));return(o,i)=>(a(),k(F(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(fe)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[q(M(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),yn=b(gn,[["__scopeId","data-v-fa7799d5"]]),Pn=["src","alt"],Ln=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=R("VPImage",!0);return e.image?(a(),u(A,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Pn)):(a(),u(A,{key:1},[_(s,z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(s,z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Q=b(Ln,[["__scopeId","data-v-8426fc1a"]]),Vn=n=>(H("data-v-4f9c455b"),n=n(),B(),n),Sn={class:"container"},Tn={class:"main"},In={class:"heading"},wn=["innerHTML"],Nn=["innerHTML"],Mn=["innerHTML"],Cn={key:0,class:"actions"},An={key:0,class:"image"},Hn={class:"image-container"},Bn=Vn(()=>d("div",{class:"image-bg"},null,-1)),En=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=ne("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[d("div",Sn,[d("div",Tn,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[d("h1",In,[t.name?(a(),u("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,wn)):f("",!0),t.text?(a(),u("span",{key:1,innerHTML:t.text,class:"text"},null,8,Nn)):f("",!0)]),t.tagline?(a(),u("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,Mn)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Cn,[(a(!0),u(A,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[_(yn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",An,[d("div",Hn,[Bn,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Fn=b(En,[["__scopeId","data-v-4f9c455b"]]),Dn=m({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),k(Fn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),On=n=>(H("data-v-a3976bdc"),n=n(),B(),n),Gn={class:"box"},Un={key:0,class:"icon"},jn=["innerHTML"],zn=["innerHTML"],Kn=["innerHTML"],qn={key:4,class:"link-text"},Wn={class:"link-text-value"},Rn=On(()=>d("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Jn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[d("article",Gn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Un,[_(Q,{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(),k(Q,{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(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,jn)):f("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,zn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Kn)):f("",!0),e.linkText?(a(),u("div",qn,[d("p",Wn,[q(M(e.linkText)+" ",1),Rn])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Xn=b(Jn,[["__scopeId","data-v-a3976bdc"]]),Yn={key:0,class:"VPFeatures"},Qn={class:"container"},Zn={class:"items"},xn=m({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=$(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",Yn,[d("div",Qn,[d("div",Zn,[(a(!0),u(A,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[_(Xn,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),eo=b(xn,[["__scopeId","data-v-a6181336"]]),to=m({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),k(eo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),no=m({__name:"VPHomeContent",setup(n){const{width:e}=We({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),oo=b(no,[["__scopeId","data-v-8e2d4988"]]),so=m({__name:"VPHome",setup(n){const{frontmatter:e,theme:t}=V();return(s,o)=>{const i=R("Content");return a(),u("div",{class:N(["VPHome",{"external-link-icon-enabled":r(t).externalLinkIcon}])},[l(s.$slots,"home-hero-before",{},void 0,!0),_(Dn,null,{"home-hero-info-before":v(()=>[l(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(s.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(s.$slots,"home-hero-after",{},void 0,!0),l(s.$slots,"home-features-before",{},void 0,!0),_(to),l(s.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(oo,{key:0},{default:v(()=>[_(i)]),_:1})):(a(),k(i,{key:1}))],2)}}}),ao=b(so,[["__scopeId","data-v-8b561e3d"]]),ro={},io={class:"VPPage"};function lo(n,e){const t=R("Content");return a(),u("div",io,[l(n.$slots,"page-top"),_(t),l(n.$slots,"page-bottom")])}const co=b(ro,[["render",lo]]),uo=m({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=G();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(o.$slots,"not-found",{key:0},()=>[_(_t)],!0):r(t).layout==="page"?(a(),k(co,{key:1},{"page-top":v(()=>[l(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(ao,{key:2},{"home-hero-before":v(()=>[l(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(F(r(t).layout),{key:3})):(a(),k($n,{key:4},{"doc-top":v(()=>[l(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[l(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[l(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[l(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[l(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),vo=b(uo,[["__scopeId","data-v-1428d186"]]),po={class:"container"},ho=["innerHTML"],fo=["innerHTML"],mo=m({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=G();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[d("div",po,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,ho)):f("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,fo)):f("",!0)])],2)):f("",!0)}}),_o=b(mo,[["__scopeId","data-v-e315a0ad"]]);function ko(){const{theme:n,frontmatter:e}=V(),t=ye([]),s=$(()=>t.value.length>0);return ee(()=>{t.value=me(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const bo=n=>(H("data-v-8a42e2b4"),n=n(),B(),n),$o={class:"menu-text"},go=bo(()=>d("span",{class:"vpi-chevron-right icon"},null,-1)),yo={class:"header"},Po={class:"outline"},Lo=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=w(!1),o=w(0),i=w(),c=w();function p(y){var P;(P=i.value)!=null&&P.contains(y.target)||(s.value=!1)}O(s,y=>{if(y){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),Re("Escape",()=>{s.value=!1}),ee(()=>{s.value=!1});function h(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g(y){y.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Ve(()=>{s.value=!1}))}function T(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),u("button",{key:0,onClick:h,class:N({open:s.value})},[d("span",$o,M(r(Me)(r(t))),1),go],2)):(a(),u("button",{key:1,onClick:T},M(r(t).returnToTopLabel||"Return to top"),1)),_(ve,{name:"flyout"},{default:v(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:g},[d("div",yo,[d("a",{class:"top-link",href:"#",onClick:T},M(r(t).returnToTopLabel||"Return to top"),1)]),d("div",Po,[_(Ce,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),Vo=b(Lo,[["__scopeId","data-v-8a42e2b4"]]),So=n=>(H("data-v-a6f0e41e"),n=n(),B(),n),To={class:"container"},Io=["aria-expanded"],wo=So(()=>d("span",{class:"vpi-align-left menu-icon"},null,-1)),No={class:"menu-text"},Mo=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=G(),{headers:o}=ko(),{y:i}=Se(),c=w(0);K(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{o.value=me(t.value.outline??e.value.outline)});const p=$(()=>o.value.length===0),h=$(()=>p.value&&!s.value),g=$(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:p.value,fixed:h.value}));return(T,y)=>r(t).layout!=="home"&&(!h.value||r(i)>=c.value)?(a(),u("div",{key:0,class:N(g.value)},[d("div",To,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":T.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=P=>T.$emit("open-menu"))},[wo,d("span",No,M(r(e).sidebarMenuLabel||"Menu"),1)],8,Io)):f("",!0),_(Vo,{headers:r(o),navHeight:c.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Co=b(Mo,[["__scopeId","data-v-a6f0e41e"]]);function Ao(){const n=w(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=te();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Ho={},Bo={class:"VPSwitch",type:"button",role:"switch"},Eo={class:"check"},Fo={key:0,class:"icon"};function Do(n,e){return a(),u("button",Bo,[d("span",Eo,[n.$slots.default?(a(),u("span",Fo,[l(n.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Oo=b(Ho,[["render",Do],["__scopeId","data-v-1d5665e3"]]),He=n=>(H("data-v-5337faa4"),n=n(),B(),n),Go=He(()=>d("span",{class:"vpi-sun sun"},null,-1)),Uo=He(()=>d("span",{class:"vpi-moon moon"},null,-1)),jo=m({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=ne("toggle-appearance",()=>{e.value=!e.value}),o=w("");return he(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,c)=>(a(),k(Oo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:v(()=>[Go,Uo]),_:1},8,["title","aria-checked","onClick"]))}}),_e=b(jo,[["__scopeId","data-v-5337faa4"]]),zo={key:0,class:"VPNavBarAppearance"},Ko=m({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",zo,[_(_e)])):f("",!0)}}),qo=b(Ko,[["__scopeId","data-v-6c893767"]]),ke=w();let Be=!1,ie=0;function Wo(n){const e=w(!1);if(oe){!Be&&Ro(),ie++;const t=O(ke,s=>{var o,i,c;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(c=n.onBlur)==null||c.call(n))});x(()=>{t(),ie--,ie||Jo()})}return Je(e)}function Ro(){document.addEventListener("focusin",Ee),Be=!0,ke.value=document.activeElement}function Jo(){document.removeEventListener("focusin",Ee)}function Ee(){ke.value=document.activeElement}const Xo={class:"VPMenuLink"},Yo=["innerHTML"],Qo=m({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",Xo,[_(D,{class:N({active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Yo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),se=b(Qo,[["__scopeId","data-v-35975db6"]]),Zo={class:"VPMenuGroup"},xo={key:0,class:"title"},es=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Zo,[e.text?(a(),u("p",xo,M(e.text),1)):f("",!0),(a(!0),u(A,null,E(e.items,s=>(a(),u(A,null,["link"in s?(a(),k(se,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),ts=b(es,[["__scopeId","data-v-69e747b5"]]),ns={class:"VPMenu"},os={key:0,class:"items"},ss=m({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ns,[e.items?(a(),u("div",os,[(a(!0),u(A,null,E(e.items,s=>(a(),u(A,{key:JSON.stringify(s)},["link"in s?(a(),k(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(F(s.component),Te(z({key:1},s.props)),null,16)):(a(),k(ts,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),as=b(ss,[["__scopeId","data-v-b98bc113"]]),rs=n=>(H("data-v-cf11d7a2"),n=n(),B(),n),is=["aria-expanded","aria-label"],ls={key:0,class:"text"},cs=["innerHTML"],us=rs(()=>d("span",{class:"vpi-chevron-down text-icon"},null,-1)),ds={key:1,class:"vpi-more-horizontal icon"},vs={class:"menu"},ps=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=w(!1),t=w();Wo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=c=>e.value=!0),onMouseleave:i[2]||(i[2]=c=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=c=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",ls,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):f("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,cs)):f("",!0),us])):(a(),u("span",ds))],8,is),d("div",vs,[_(as,{items:o.items},{default:v(()=>[l(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(ps,[["__scopeId","data-v-cf11d7a2"]]),hs=["href","aria-label","innerHTML"],fs=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=w();K(async()=>{var i;await Ve();const o=(i=t.value)==null?void 0:i.children[0];o instanceof HTMLElement&&o.className.startsWith("vpi-social-")&&(getComputedStyle(o).maskImage||getComputedStyle(o).webkitMaskImage)==="none"&&o.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=$(()=>typeof e.icon=="object"?e.icon.svg:``);return(o,i)=>(a(),u("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,hs))}}),ms=b(fs,[["__scopeId","data-v-bd121fe5"]]),_s={class:"VPSocialLinks"},ks=m({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",_s,[(a(!0),u(A,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),k(ms,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=b(ks,[["__scopeId","data-v-7bc22406"]]),bs={key:0,class:"group translations"},$s={class:"trans-title"},gs={key:1,class:"group"},ys={class:"item appearance"},Ps={class:"label"},Ls={class:"appearance-action"},Vs={key:2,class:"group"},Ss={class:"item social-links"},Ts=m({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=X({correspondingLink:!0}),i=$(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(c,p)=>i.value?(a(),k(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[r(s).length&&r(o).label?(a(),u("div",bs,[d("p",$s,M(r(o).label),1),(a(!0),u(A,null,E(r(s),h=>(a(),k(se,{key:h.link,item:h},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",gs,[d("div",ys,[d("p",Ps,M(r(t).darkModeSwitchLabel||"Appearance"),1),d("div",Ls,[_(_e)])])])):f("",!0),r(t).socialLinks?(a(),u("div",Vs,[d("div",Ss,[_($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Is=b(Ts,[["__scopeId","data-v-bb2aa2f0"]]),ws=n=>(H("data-v-e5dd9c1c"),n=n(),B(),n),Ns=["aria-expanded"],Ms=ws(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),Cs=[Ms],As=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("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]=s=>e.$emit("click"))},Cs,10,Ns))}}),Hs=b(As,[["__scopeId","data-v-e5dd9c1c"]]),Bs=["innerHTML"],Es=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),k(D,{class:N({VPNavBarMenuLink:!0,active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Bs)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Fs=b(Es,[["__scopeId","data-v-e56f3d57"]]),Ds=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?W(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=$(()=>s(e.item));return(i,c)=>(a(),k(be,{class:N({VPNavBarMenuGroup:!0,active:r(W)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Os=n=>(H("data-v-dc692963"),n=n(),B(),n),Gs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Us=Os(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),js=m({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Gs,[Us,(a(!0),u(A,null,E(r(e).nav,o=>(a(),u(A,{key:JSON.stringify(o)},["link"in o?(a(),k(Fs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),k(F(o.component),Te(z({key:1},o.props)),null,16)):(a(),k(Ds,{key:2,item:o},null,8,["item"]))],64))),128))])):f("",!0)}}),zs=b(js,[["__scopeId","data-v-dc692963"]]);function Ks(n){const{localeIndex:e,theme:t}=V();function s(o){var L,C,I;const i=o.split("."),c=(L=t.value.search)==null?void 0:L.options,p=c&&typeof c=="object",h=p&&((I=(C=c.locales)==null?void 0:C[e.value])==null?void 0:I.translations)||null,g=p&&c.translations||null;let T=h,y=g,P=n;const S=i.pop();for(const U of i){let j=null;const J=P==null?void 0:P[U];J&&(j=P=J);const ae=y==null?void 0:y[U];ae&&(j=y=ae);const re=T==null?void 0:T[U];re&&(j=T=re),J||(P=j),ae||(y=j),re||(T=j)}return(T==null?void 0:T[S])??(y==null?void 0:y[S])??(P==null?void 0:P[S])??""}return s}const qs=["aria-label"],Ws={class:"DocSearch-Button-Container"},Rs=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Js={class:"DocSearch-Button-Placeholder"},Xs=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=m({__name:"VPNavBarSearchButton",setup(n){const t=Ks({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[d("span",Ws,[Rs,d("span",Js,M(r(t)("button.buttonText")),1)]),Xs],8,qs))}}),Ys={class:"VPNavBarSearch"},Qs={id:"local-search"},Zs={key:1,id:"docsearch"},xs=m({__name:"VPNavBarSearch",setup(n){const e=()=>null,t=Xe(()=>Ye(()=>import("./VPAlgoliaSearchBox.57AC7P3e.js"),__vite__mapDeps([0,1]))),{theme:s}=V(),o=w(!1),i=w(!1),c=()=>{const P="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var C;const L=document.createElement("link");L.id=P,L.rel="preconnect",L.href=`https://${(((C=s.value.search)==null?void 0:C.options)??s.value.algolia).appId}-dsn.algolia.net`,L.crossOrigin="",document.head.appendChild(L)})};K(()=>{c();const P=L=>{(L.key.toLowerCase()==="k"&&(L.metaKey||L.ctrlKey)||!g(L)&&L.key==="/")&&(L.preventDefault(),p(),S())},S=()=>{window.removeEventListener("keydown",P)};window.addEventListener("keydown",P),x(S)});function p(){o.value||(o.value=!0,setTimeout(h,16))}function h(){const P=new Event("keydown");P.key="k",P.metaKey=!0,window.dispatchEvent(P),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function g(P){const S=P.target,L=S.tagName;return S.isContentEditable||L==="INPUT"||L==="SELECT"||L==="TEXTAREA"}const T=w(!1),y="algolia";return(P,S)=>{var L;return a(),u("div",Ys,[r(y)==="local"?(a(),u(A,{key:0},[T.value?(a(),k(r(e),{key:0,onClose:S[0]||(S[0]=C=>T.value=!1)})):f("",!0),d("div",Qs,[_(ge,{onClick:S[1]||(S[1]=C=>T.value=!0)})])],64)):r(y)==="algolia"?(a(),u(A,{key:1},[o.value?(a(),k(r(t),{key:0,algolia:((L=r(s).search)==null?void 0:L.options)??r(s).algolia,onVnodeBeforeMount:S[2]||(S[2]=C=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),u("div",Zs,[_(ge,{onClick:p})]))],64)):f("",!0)])}}}),ea=m({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),ta=b(ea,[["__scopeId","data-v-0394ad82"]]),na=["href","rel","target"],oa=["innerHTML"],sa={key:2},aa=m({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=G(),{currentLang:o}=X(),i=$(()=>{var h;return typeof t.value.logoLink=="string"?t.value.logoLink:(h=t.value.logoLink)==null?void 0:h.link}),c=$(()=>{var h;return typeof t.value.logoLink=="string"||(h=t.value.logoLink)==null?void 0:h.rel}),p=$(()=>{var h;return typeof t.value.logoLink=="string"||(h=t.value.logoLink)==null?void 0:h.target});return(h,g)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[d("a",{class:"title",href:i.value??r(fe)(r(o).link),rel:c.value,target:p.value},[l(h.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),u("span",{key:1,innerHTML:r(t).siteTitle},null,8,oa)):r(t).siteTitle===void 0?(a(),u("span",sa,M(r(e).title),1)):f("",!0),l(h.$slots,"nav-bar-title-after",{},void 0,!0)],8,na)],2))}}),ra=b(aa,[["__scopeId","data-v-1168a8e4"]]),ia={class:"items"},la={class:"title"},ca=m({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=X({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),k(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:v(()=>[d("div",ia,[d("p",la,M(r(s).label),1),(a(!0),u(A,null,E(r(t),c=>(a(),k(se,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ua=b(ca,[["__scopeId","data-v-88af2de4"]]),da=n=>(H("data-v-6aa21345"),n=n(),B(),n),va={class:"wrapper"},pa={class:"container"},ha={class:"title"},fa={class:"content"},ma={class:"content-body"},_a=da(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),ka=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Se(),{hasSidebar:s}=G(),{frontmatter:o}=V(),i=w({});return he(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,p)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[d("div",va,[d("div",pa,[d("div",ha,[_(ra,null,{"nav-bar-title-before":v(()=>[l(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",fa,[d("div",ma,[l(c.$slots,"nav-bar-content-before",{},void 0,!0),_(xs,{class:"search"}),_(zs,{class:"menu"}),_(ua,{class:"translations"}),_(qo,{class:"appearance"}),_(ta,{class:"social-links"}),_(Is,{class:"extra"}),l(c.$slots,"nav-bar-content-after",{},void 0,!0),_(Hs,{class:"hamburger",active:c.isScreenOpen,onClick:p[0]||(p[0]=h=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),_a],2))}}),ba=b(ka,[["__scopeId","data-v-6aa21345"]]),$a={key:0,class:"VPNavScreenAppearance"},ga={class:"text"},ya=m({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",$a,[d("p",ga,M(r(t).darkModeSwitchLabel||"Appearance"),1),_(_e)])):f("",!0)}}),Pa=b(ya,[["__scopeId","data-v-b44890b2"]]),La=["innerHTML"],Va=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=ne("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,La)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Sa=b(Va,[["__scopeId","data-v-df37e6dd"]]),Ta=["innerHTML"],Ia=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=ne("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Ta)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Fe=b(Ia,[["__scopeId","data-v-3e9c20e4"]]),wa={class:"VPNavScreenMenuGroupSection"},Na={key:0,class:"title"},Ma=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",wa,[e.text?(a(),u("p",Na,M(e.text),1)):f("",!0),(a(!0),u(A,null,E(e.items,s=>(a(),k(Fe,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ca=b(Ma,[["__scopeId","data-v-8133b170"]]),Aa=n=>(H("data-v-b9ab8c58"),n=n(),B(),n),Ha=["aria-controls","aria-expanded"],Ba=["innerHTML"],Ea=Aa(()=>d("span",{class:"vpi-plus button-icon"},null,-1)),Fa=["id"],Da={key:0,class:"item"},Oa={key:1,class:"item"},Ga={key:2,class:"group"},Ua=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=w(!1),s=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,c)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[d("span",{class:"button-text",innerHTML:i.text},null,8,Ba),Ea],8,Ha),d("div",{id:s.value,class:"items"},[(a(!0),u(A,null,E(i.items,p=>(a(),u(A,{key:JSON.stringify(p)},["link"in p?(a(),u("div",Da,[_(Fe,{item:p},null,8,["item"])])):"component"in p?(a(),u("div",Oa,[(a(),k(F(p.component),z(p.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ga,[_(Ca,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,Fa)],2))}}),ja=b(Ua,[["__scopeId","data-v-b9ab8c58"]]),za={key:0,class:"VPNavScreenMenu"},Ka=m({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",za,[(a(!0),u(A,null,E(r(e).nav,o=>(a(),u(A,{key:JSON.stringify(o)},["link"in o?(a(),k(Sa,{key:0,item:o},null,8,["item"])):"component"in o?(a(),k(F(o.component),z({key:1},o.props,{"screen-menu":""}),null,16)):(a(),k(ja,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),qa=m({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),De=n=>(H("data-v-858fe1a4"),n=n(),B(),n),Wa=De(()=>d("span",{class:"vpi-languages icon lang"},null,-1)),Ra=De(()=>d("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ja={class:"list"},Xa=m({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),s=w(!1);function o(){s.value=!s.value}return(i,c)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[d("button",{class:"title",onClick:o},[Wa,q(" "+M(r(t).label)+" ",1),Ra]),d("ul",Ja,[(a(!0),u(A,null,E(r(e),p=>(a(),u("li",{key:p.link,class:"item"},[_(D,{class:"link",href:p.link},{default:v(()=>[q(M(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ya=b(Xa,[["__scopeId","data-v-858fe1a4"]]),Qa={class:"container"},Za=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=w(null),t=Ie(oe?document.body:null);return(s,o)=>(a(),k(ve,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:v(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",Qa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),_(Ka,{class:"menu"}),_(Ya,{class:"translations"}),_(Pa,{class:"appearance"}),_(qa,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),xa=b(Za,[["__scopeId","data-v-f2779853"]]),er={key:0,class:"VPNav"},tr=m({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Ao(),{frontmatter:o}=V(),i=$(()=>o.value.navbar!==!1);return we("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(c,p)=>i.value?(a(),u("header",er,[_(ba,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":v(()=>[l(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(xa,{open:r(e)},{"nav-screen-content-before":v(()=>[l(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),nr=b(tr,[["__scopeId","data-v-ae24b3ad"]]),Oe=n=>(H("data-v-b3fd67f8"),n=n(),B(),n),or=["role","tabindex"],sr=Oe(()=>d("div",{class:"indicator"},null,-1)),ar=["onKeydown"],rr=Oe(()=>d("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ir=[rr],lr={key:1,class:"items"},cr=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:c,hasChildren:p,toggle:h}=gt($(()=>e.item)),g=$(()=>p.value?"section":"div"),T=$(()=>o.value?"a":"div"),y=$(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=$(()=>o.value?void 0:"button"),S=$(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":c.value}]);function L(I){"key"in I&&I.key!=="Enter"||!e.item.link&&h()}function C(){e.item.link&&h()}return(I,U)=>{const j=R("VPSidebarItem",!0);return a(),k(F(g.value),{class:N(["VPSidebarItem",S.value])},{default:v(()=>[I.item.text?(a(),u("div",z({key:0,class:"item",role:P.value},Qe(I.item.items?{click:L,keydown:L}:{},!0),{tabindex:I.item.items&&0}),[sr,I.item.link?(a(),k(D,{key:0,tag:T.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:v(()=>[(a(),k(F(y.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(F(y.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null&&I.item.items&&I.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Ze(C,["enter"]),tabindex:"0"},ir,40,ar)):f("",!0)],16,or)):f("",!0),I.item.items&&I.item.items.length?(a(),u("div",lr,[I.depth<5?(a(!0),u(A,{key:0},E(I.item.items,J=>(a(),k(j,{key:J.text,item:J,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),ur=b(cr,[["__scopeId","data-v-b3fd67f8"]]),dr=m({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=w(!0);let t=null;return K(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),xe(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(A,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[_(ur,{item:i,depth:0},null,8,["item"])],2))),128))}}),vr=b(dr,[["__scopeId","data-v-c40bc020"]]),Ge=n=>(H("data-v-319d5ca6"),n=n(),B(),n),pr=Ge(()=>d("div",{class:"curtain"},null,-1)),hr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},fr=Ge(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),mr=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const e=n,{sidebarGroups:t,hasSidebar:s}=G(),o=w(null),i=Ie(oe?document.body:null);O([e,o],()=>{var p;e.open?(i.value=!0,(p=o.value)==null||p.focus()):i.value=!1},{immediate:!0,flush:"post"});const c=w(0);return O(t,()=>{c.value+=1},{deep:!0}),(p,h)=>r(s)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:o,onClick:h[0]||(h[0]=et(()=>{},["stop"]))},[pr,d("nav",hr,[fr,l(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(vr,{items:r(t),key:c.value},null,8,["items"])),l(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),_r=b(mr,[["__scopeId","data-v-319d5ca6"]]),kr=m({__name:"VPSkipLink",setup(n){const{theme:e}=V(),t=te(),s=w();O(()=>t.path,()=>s.value.focus());function o({target:i}){const c=document.getElementById(decodeURIComponent(i.hash).slice(1));if(c){const p=()=>{c.removeAttribute("tabindex"),c.removeEventListener("blur",p)};c.setAttribute("tabindex","-1"),c.addEventListener("blur",p),c.focus(),window.scrollTo(0,0)}}return(i,c)=>(a(),u(A,null,[d("span",{ref_key:"backToTop",ref:s,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o},M(r(e).skipToContentLabel||"Skip to content"),1)],64))}}),br=b(kr,[["__scopeId","data-v-0b0ada53"]]),$r=m({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=G(),o=te();O(()=>o.path,s),$t(e,s);const{frontmatter:i}=V(),c=tt(),p=$(()=>!!c["home-hero-image"]);return we("hero-image-slot-exists",p),(h,g)=>{const T=R("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[l(h.$slots,"layout-top",{},void 0,!0),_(br),_(at,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),_(nr,null,{"nav-bar-title-before":v(()=>[l(h.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(h.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(h.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(h.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[l(h.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(h.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(Co,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),_(_r,{open:r(e)},{"sidebar-nav-before":v(()=>[l(h.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[l(h.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(vo,null,{"page-top":v(()=>[l(h.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(h.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[l(h.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[l(h.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(h.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(h.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(h.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(h.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(h.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(h.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(h.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(h.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(h.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(h.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[l(h.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(h.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(_o),l(h.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(T,{key:1}))}}}),gr=b($r,[["__scopeId","data-v-5d98c3a5"]]),Pr={Layout:gr,enhanceApp:({app:n})=>{n.component("Badge",nt)}};export{Pr as t,V as u}; diff --git a/assets/chunks/theme.c4d303ac.js b/assets/chunks/theme.c4d303ac.js deleted file mode 100644 index 12c2261..0000000 --- a/assets/chunks/theme.c4d303ac.js +++ /dev/null @@ -1,7 +0,0 @@ -import{d as g,o as a,c as l,r as c,n as I,a as A,t as P,_ as f,u as Ze,b as i,e as et,f as He,g as tt,h as S,i as nt,j as st,w as j,k as Q,l as $,m as ot,p as F,q as at,P as rt,s as he,v as K,x as ee,y as le,z as u,F as M,A as y,B as v,T as fe,C as m,D as R,E as se,G as h,H as ze,I as it,J as lt,K as U,L as De,M as ct,N as x,O as H,Q as z,R as ut,S as Ne,U as me,V as oe,W as dt,X as J,Y as ge,Z as _t,$ as vt,a0 as pt,a1 as ht,a2 as ft,a3 as mt}from"./framework.6241eaf2.js";const gt=g({__name:"VPBadge",props:{text:{},type:{}},setup(n){return(e,t)=>(a(),l("span",{class:I(["VPBadge",e.type??"tip"])},[c(e.$slots,"default",{},()=>[A(P(e.text),1)],!0)],2))}});const yt=f(gt,[["__scopeId","data-v-350d3852"]]),V=Ze;function Fe(n){return nt()?(st(n),!0):!1}function Oe(n){return typeof n=="function"?n():i(n)}const bt=typeof window<"u",Ge=()=>{};function $t(...n){if(n.length!==1)return et(...n);const e=n[0];return typeof e=="function"?He(tt(()=>({get:e,set:Ge}))):S(e)}function kt(n){var e;const t=Oe(n);return(e=t==null?void 0:t.$el)!=null?e:t}const ye=bt?window:void 0;function Pt(...n){let e,t,o,s;if(typeof n[0]=="string"||Array.isArray(n[0])?([t,o,s]=n,e=ye):[e,t,o,s]=n,!e)return Ge;Array.isArray(t)||(t=[t]),Array.isArray(o)||(o=[o]);const r=[],d=()=>{r.forEach(C=>C()),r.length=0},p=(C,T,N,L)=>(C.addEventListener(T,N,L),()=>C.removeEventListener(T,N,L)),_=j(()=>[kt(e),Oe(s)],([C,T])=>{d(),C&&r.push(...t.flatMap(N=>o.map(L=>p(C,N,L,T))))},{immediate:!0,flush:"post"}),k=()=>{_(),d()};return Fe(k),k}function Vt(){const n=S(!1);return ot()&&F(()=>{n.value=!0}),n}function wt(n){const e=Vt();return $(()=>(e.value,!!n()))}function _e(n,e={}){const{window:t=ye}=e,o=wt(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function");let s;const r=S(!1),d=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",p):s.removeListener(p))},p=()=>{o.value&&(d(),s=t.matchMedia($t(n).value),r.value=!!(s!=null&&s.matches),s&&("addEventListener"in s?s.addEventListener("change",p):s.addListener(p)))};return Q(p),Fe(()=>d()),r}function St({window:n=ye}={}){if(!n)return{x:S(0),y:S(0)};const e=S(n.scrollX),t=S(n.scrollY);return Pt(n,"scroll",()=>{e.value=n.scrollX,t.value=n.scrollY},{capture:!1,passive:!0}),{x:e,y:t}}function Lt(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),o=!0,setTimeout(()=>{o=!1},e))}}function ve(n){return/^\//.test(n)?n:`/${n}`}function Z(n){if(at(n))return n.replace(rt,"");const{site:e}=V(),{pathname:t,search:o,hash:s}=new URL(n,"http://example.com"),r=t.endsWith("/")||t.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return he(r)}function Re(n,e){if(Array.isArray(n))return n;if(n==null)return[];e=ve(e);const t=Object.keys(n).sort((o,s)=>s.split("/").length-o.split("/").length).find(o=>e.startsWith(ve(o)));return t?n[t]:[]}function Mt(n){const e=[];let t=0;for(const o in n){const s=n[o];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function Ct(n){const e=[];function t(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link}),s.items&&t(s.items)}return t(n),e}function pe(n,e){return Array.isArray(e)?e.some(t=>pe(n,t)):K(n,e.link)?!0:e.items?pe(n,e.items):!1}function D(){const n=ee(),{theme:e,frontmatter:t}=V(),o=_e("(min-width: 960px)"),s=S(!1),r=$(()=>{const w=e.value.sidebar,B=n.data.relativePath;return w?Re(w,B):[]}),d=$(()=>t.value.sidebar!==!1&&r.value.length>0&&t.value.layout!=="home"),p=$(()=>_?t.value.aside==null?e.value.aside==="left":t.value.aside==="left":!1),_=$(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:e.value.aside!==!1),k=$(()=>d.value&&o.value),C=$(()=>d.value?Mt(r.value):[]);function T(){s.value=!0}function N(){s.value=!1}function L(){s.value?N():T()}return{isOpen:s,sidebar:r,sidebarGroups:C,hasSidebar:d,hasAside:_,leftAside:p,isSidebarEnabled:k,open:T,close:N,toggle:L}}function It(n,e){let t;Q(()=>{t=n.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",o)}),le(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function Bt(n){const{page:e}=V(),t=S(!1),o=$(()=>n.value.collapsed!=null),s=$(()=>!!n.value.link),r=$(()=>K(e.value.relativePath,n.value.link)),d=$(()=>r.value?!0:n.value.items?pe(e.value.relativePath,n.value.items):!1),p=$(()=>!!(n.value.items&&n.value.items.length));Q(()=>{t.value=!!(o.value&&n.value.collapsed)}),Q(()=>{(r.value||d.value)&&(t.value=!1)});function _(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}}const Tt=g({__name:"VPSkipLink",setup(n){const e=ee(),t=S();j(()=>e.path,()=>t.value.focus());function o({target:s}){const r=document.querySelector(decodeURIComponent(s.hash));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(s,r)=>(a(),l(M,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Nt=f(Tt,[["__scopeId","data-v-c8616af1"]]),At={key:0,class:"VPBackdrop"},xt=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),y(fe,{name:"fade"},{default:v(()=>[e.show?(a(),l("div",At)):m("",!0)]),_:1}))}});const Et=f(xt,[["__scopeId","data-v-c79a1216"]]);function Ht(){const n=S(!1);function e(){n.value=!0,window.addEventListener("resize",s)}function t(){n.value=!1,window.removeEventListener("resize",s)}function o(){n.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ee();return j(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}function te({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:s,theme:r}=V(),d=$(()=>{var _,k;return{label:(_=t.value.locales[o.value])==null?void 0:_.label,link:((k=t.value.locales[o.value])==null?void 0:k.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:$(()=>Object.entries(t.value.locales).flatMap(([_,k])=>n&&d.value.label===k.label?[]:{text:k.label,link:zt(k.link||(_==="root"?"/":`/${_}/`),r.value.i18nRouting!==!1&&e,s.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function zt(n,e,t,o){return e?n.replace(/\/$/,"")+ve(t.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const Dt=["src","alt"],Ft={inheritAttrs:!1},Ot=g({...Ft,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=R("VPImage",!0);return e.image?(a(),l(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",se({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Dt)):(a(),l(M,{key:1},[h(o,se({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(o,se({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}});const be=f(Ot,[["__scopeId","data-v-6db2186b"]]),Gt=["href"],Rt=g({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:o}=D(),{currentLang:s}=te();return(r,d)=>(a(),l("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(o)}])},[u("a",{class:"title",href:i(Z)(i(s).link)},[c(r.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),y(be,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(a(),l(M,{key:1},[A(P(i(t).siteTitle),1)],64)):i(t).siteTitle===void 0?(a(),l(M,{key:2},[A(P(i(e).title),1)],64)):m("",!0),c(r.$slots,"nav-bar-title-after",{},void 0,!0)],8,Gt)],2))}});const Ut=f(Rt,[["__scopeId","data-v-4d981103"]]);const qt={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},jt={class:"DocSearch-Button-Container"},Kt=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("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),Wt={class:"DocSearch-Button-Placeholder"},Yt=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Ae=g({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(n){return(e,t)=>(a(),l("button",qt,[u("span",jt,[Kt,u("span",Wt,P(e.placeholder),1)]),Yt]))}});const Xt={id:"local-search"},Qt={key:1,id:"docsearch"},Jt=g({__name:"VPNavBarSearch",setup(n){const e=()=>null,t=it(()=>lt(()=>import("./VPAlgoliaSearchBox.81ddc2b4.js"),["assets/chunks/VPAlgoliaSearchBox.81ddc2b4.js","assets/chunks/framework.6241eaf2.js"])),{theme:o,localeIndex:s}=V(),r=S(!1),d=$(()=>{var B,b,E,ne,W,Be,Te;const w=((B=o.value.search)==null?void 0:B.options)??o.value.algolia;return((W=(ne=(E=(b=w==null?void 0:w.locales)==null?void 0:b[s.value])==null?void 0:E.translations)==null?void 0:ne.button)==null?void 0:W.buttonText)||((Te=(Be=w==null?void 0:w.translations)==null?void 0:Be.button)==null?void 0:Te.buttonText)||"Search"}),p=()=>{const w="VPAlgoliaPreconnect";(window.requestIdleCallback||setTimeout)(()=>{var E;const b=document.createElement("link");b.id=w,b.rel="preconnect",b.href=`https://${(((E=o.value.search)==null?void 0:E.options)??o.value.algolia).appId}-dsn.algolia.net`,b.crossOrigin="",document.head.appendChild(b)})};F(()=>{p();const w=b=>{(b.key.toLowerCase()==="k"&&(b.metaKey||b.ctrlKey)||!C(b)&&b.key==="/")&&(b.preventDefault(),_(),B())},B=()=>{window.removeEventListener("keydown",w)};window.addEventListener("keydown",w),le(B)});function _(){r.value||(r.value=!0,setTimeout(k,16))}function k(){const w=new Event("keydown");w.key="k",w.metaKey=!0,window.dispatchEvent(w),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||k()},16)}function C(w){const B=w.target,b=B.tagName;return B.isContentEditable||b==="INPUT"||b==="SELECT"||b==="TEXTAREA"}const T=S(!1),N=S("'Meta'");F(()=>{N.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const L="algolia";return(w,B)=>{var b;return a(),l("div",{class:"VPNavBarSearch",style:ze({"--vp-meta-key":N.value})},[i(L)==="local"?(a(),l(M,{key:0},[T.value?(a(),y(i(e),{key:0,placeholder:d.value,onClose:B[0]||(B[0]=E=>T.value=!1)},null,8,["placeholder"])):m("",!0),u("div",Xt,[h(Ae,{placeholder:d.value,onClick:B[1]||(B[1]=E=>T.value=!0)},null,8,["placeholder"])])],64)):i(L)==="algolia"?(a(),l(M,{key:1},[r.value?(a(),y(i(t),{key:0,algolia:((b=i(o).search)==null?void 0:b.options)??i(o).algolia},null,8,["algolia"])):(a(),l("div",Qt,[h(Ae,{placeholder:d.value,onClick:_},null,8,["placeholder"])]))],64)):m("",!0)],4)}}});const Zt={},en={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},tn=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),nn=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),sn=[tn,nn];function on(n,e){return a(),l("svg",en,sn)}const an=f(Zt,[["render",on]]),rn=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=$(()=>e.tag??e.href?"a":"span"),o=$(()=>e.href&&De.test(e.href));return(s,r)=>(a(),y(U(t.value),{class:I(["VPLink",{link:s.href}]),href:s.href?i(Z)(s.href):void 0,target:s.target||(o.value?"_blank":void 0),rel:s.rel||(o.value?"noreferrer":void 0)},{default:v(()=>[c(s.$slots,"default",{},void 0,!0),o.value&&!s.noIcon?(a(),y(an,{key:0,class:"icon"})):m("",!0)]),_:3},8,["class","href","target","rel"]))}});const O=f(rn,[["__scopeId","data-v-8f4dc553"]]),ln=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),y(O,{class:I({VPNavBarMenuLink:!0,active:i(K)(i(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(()=>[A(P(t.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const cn=f(ln,[["__scopeId","data-v-5e623618"]]),$e=S();let Ue=!1,de=0;function un(n){const e=S(!1);if(ct){!Ue&&dn(),de++;const t=j($e,o=>{var s,r,d;o===n.el.value||(s=n.el.value)!=null&&s.contains(o)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(d=n.onBlur)==null||d.call(n))});le(()=>{t(),de--,de||_n()})}return He(e)}function dn(){document.addEventListener("focusin",qe),Ue=!0,$e.value=document.activeElement}function _n(){document.removeEventListener("focusin",qe)}function qe(){$e.value=document.activeElement}const vn={},pn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},hn=u("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),fn=[hn];function mn(n,e){return a(),l("svg",pn,fn)}const je=f(vn,[["render",mn]]),gn={},yn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bn=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),$n=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),kn=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Pn=[bn,$n,kn];function Vn(n,e){return a(),l("svg",yn,Pn)}const wn=f(gn,[["render",Vn]]),Sn={class:"VPMenuLink"},Ln=g({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),l("div",Sn,[h(O,{class:I({active:i(K)(i(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(()=>[A(P(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ce=f(Ln,[["__scopeId","data-v-2f2cfafc"]]),Mn={class:"VPMenuGroup"},Cn={key:0,class:"title"},In=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",Mn,[e.text?(a(),l("p",Cn,P(e.text),1)):m("",!0),(a(!0),l(M,null,x(e.items,o=>(a(),l(M,null,["link"in o?(a(),y(ce,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const Bn=f(In,[["__scopeId","data-v-69e747b5"]]),Tn={class:"VPMenu"},Nn={key:0,class:"items"},An=g({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),l("div",Tn,[e.items?(a(),l("div",Nn,[(a(!0),l(M,null,x(e.items,o=>(a(),l(M,{key:o.text},["link"in o?(a(),y(ce,{key:0,item:o},null,8,["item"])):(a(),y(Bn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),c(e.$slots,"default",{},void 0,!0)]))}});const xn=f(An,[["__scopeId","data-v-e7ea1737"]]),En=["aria-expanded","aria-label"],Hn={key:0,class:"text"},zn={class:"menu"},Dn=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=S(!1),t=S();un({el:t,onBlur:o});function o(){e.value=!1}return(s,r)=>(a(),l("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)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=d=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",Hn,[s.icon?(a(),y(U(s.icon),{key:0,class:"option-icon"})):m("",!0),A(" "+P(s.button)+" ",1),h(je,{class:"text-icon"})])):(a(),y(wn,{key:1,class:"icon"}))],8,En),u("div",zn,[h(xn,{items:s.items},{default:v(()=>[c(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const ke=f(Dn,[["__scopeId","data-v-764effdf"]]),Fn=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(a(),y(ke,{class:I({VPNavBarMenuGroup:!0,active:i(K)(i(e).relativePath,t.item.activeMatch,!!t.item.activeMatch)}),button:t.item.text,items:t.item.items},null,8,["class","button","items"]))}}),On=n=>(H("data-v-7f418b0f"),n=n(),z(),n),Gn={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Rn=On(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Un=g({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(a(),l("nav",Gn,[Rn,(a(!0),l(M,null,x(i(e).nav,s=>(a(),l(M,{key:s.text},["link"in s?(a(),y(cn,{key:0,item:s},null,8,["item"])):(a(),y(Fn,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const qn=f(Un,[["__scopeId","data-v-7f418b0f"]]),jn={},Kn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Wn=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Yn=u("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),Xn=[Wn,Yn];function Qn(n,e){return a(),l("svg",Kn,Xn)}const Ke=f(jn,[["render",Qn]]),Jn={class:"items"},Zn={class:"title"},es=g({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:o}=te({correspondingLink:!0});return(s,r)=>i(t).length&&i(o).label?(a(),y(ke,{key:0,class:"VPNavBarTranslations",icon:Ke,label:i(e).langMenuLabel||"Change language"},{default:v(()=>[u("div",Jn,[u("p",Zn,P(i(o).label),1),(a(!0),l(M,null,x(i(t),d=>(a(),y(ce,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const ts=f(es,[["__scopeId","data-v-74abcbb9"]]);const ns={},ss={class:"VPSwitch",type:"button",role:"switch"},os={class:"check"},as={key:0,class:"icon"};function rs(n,e){return a(),l("button",ss,[u("span",os,[n.$slots.default?(a(),l("span",as,[c(n.$slots,"default",{},void 0,!0)])):m("",!0)])])}const is=f(ns,[["render",rs],["__scopeId","data-v-f3c41672"]]),ls={},cs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},us=ut('',9),ds=[us];function _s(n,e){return a(),l("svg",cs,ds)}const vs=f(ls,[["render",_s]]),ps={},hs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},fs=u("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),ms=[fs];function gs(n,e){return a(),l("svg",hs,ms)}const ys=f(ps,[["render",gs]]),bs=g({__name:"VPSwitchAppearance",setup(n){const{site:e,isDark:t}=V(),o=S(!1),s=typeof localStorage<"u"?r():()=>{};F(()=>{o.value=document.documentElement.classList.contains("dark")});function r(){const d=window.matchMedia("(prefers-color-scheme: dark)"),p=document.documentElement.classList;let _=localStorage.getItem(Ne),k=e.value.appearance==="dark"&&_==null||(_==="auto"||_==null?d.matches:_==="dark");d.onchange=N=>{_==="auto"&&T(k=N.matches)};function C(){T(k=!k),_=k?d.matches?"auto":"dark":d.matches?"light":"auto",localStorage.setItem(Ne,_)}function T(N){const L=document.createElement("style");L.type="text/css",L.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -}`)),document.head.appendChild(L),o.value=N,p[N?"add":"remove"]("dark"),window.getComputedStyle(L).opacity,document.head.removeChild(L)}return C}return j(o,d=>{t.value=d}),(d,p)=>(a(),y(is,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:v(()=>[h(vs,{class:"sun"}),h(ys,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const Pe=f(bs,[["__scopeId","data-v-87de0873"]]),$s={key:0,class:"VPNavBarAppearance"},ks=g({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,o)=>i(e).appearance?(a(),l("div",$s,[h(Pe)])):m("",!0)}});const Ps=f(ks,[["__scopeId","data-v-f6a63727"]]),Vs={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},ws=["href","aria-label","innerHTML"],Ss=g({__name:"VPSocialLink",props:{icon:{},link:{}},setup(n){const e=n,t=$(()=>typeof e.icon=="object"?e.icon.svg:Vs[e.icon]);return(o,s)=>(a(),l("a",{class:"VPSocialLink",href:o.link,"aria-label":typeof o.icon=="string"?o.icon:"",target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ws))}});const Ls=f(Ss,[["__scopeId","data-v-c530cc0a"]]),Ms={class:"VPSocialLinks"},Cs=g({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),l("div",Ms,[(a(!0),l(M,null,x(e.links,({link:o,icon:s})=>(a(),y(Ls,{key:o,icon:s,link:o},null,8,["icon","link"]))),128))]))}});const Ve=f(Cs,[["__scopeId","data-v-d7a53887"]]),Is=g({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(a(),y(Ve,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}});const Bs=f(Is,[["__scopeId","data-v-0394ad82"]]),Ts={key:0,class:"group translations"},Ns={class:"trans-title"},As={key:1,class:"group"},xs={class:"item appearance"},Es={class:"label"},Hs={class:"appearance-action"},zs={key:2,class:"group"},Ds={class:"item social-links"},Fs=g({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:o,currentLang:s}=te({correspondingLink:!0}),r=$(()=>o.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>r.value?(a(),y(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(o).length&&i(s).label?(a(),l("div",Ts,[u("p",Ns,P(i(s).label),1),(a(!0),l(M,null,x(i(o),_=>(a(),y(ce,{key:_.link,item:_},null,8,["item"]))),128))])):m("",!0),i(e).appearance?(a(),l("div",As,[u("div",xs,[u("p",Es,P(i(t).darkModeSwitchLabel||"Appearance"),1),u("div",Hs,[h(Pe)])])])):m("",!0),i(t).socialLinks?(a(),l("div",zs,[u("div",Ds,[h(Ve,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}});const Os=f(Fs,[["__scopeId","data-v-40855f84"]]),Gs=n=>(H("data-v-e5dd9c1c"),n=n(),z(),n),Rs=["aria-expanded"],Us=Gs(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),qs=[Us],js=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),l("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},qs,10,Rs))}});const Ks=f(js,[["__scopeId","data-v-e5dd9c1c"]]),Ws=n=>(H("data-v-7c10cd25"),n=n(),z(),n),Ys={class:"container"},Xs={class:"title"},Qs={class:"content"},Js=Ws(()=>u("div",{class:"curtain"},null,-1)),Zs={class:"content-body"},eo=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const{y:e}=St(),{hasSidebar:t}=D(),o=$(()=>({"has-sidebar":t.value,fill:e.value>0}));return(s,r)=>(a(),l("div",{class:I(["VPNavBar",o.value])},[u("div",Ys,[u("div",Xs,[h(Ut,null,{"nav-bar-title-before":v(()=>[c(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(s.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",Qs,[Js,u("div",Zs,[c(s.$slots,"nav-bar-content-before",{},void 0,!0),h(Jt,{class:"search"}),h(qn,{class:"menu"}),h(ts,{class:"translations"}),h(Ps,{class:"appearance"}),h(Bs,{class:"social-links"}),h(Os,{class:"extra"}),c(s.$slots,"nav-bar-content-after",{},void 0,!0),h(Ks,{class:"hamburger",active:s.isScreenOpen,onClick:r[0]||(r[0]=d=>s.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const to=f(eo,[["__scopeId","data-v-7c10cd25"]]);function no(n){if(Array.isArray(n)){for(var e=0,t=Array(n.length);e1),q=[],re=!1,Se=-1,Y=void 0,G=void 0,X=void 0,We=function(e){return q.some(function(t){return!!(t.options.allowTouchMove&&t.options.allowTouchMove(e))})},ie=function(e){var t=e||window.event;return We(t.target)||t.touches.length>1?!0:(t.preventDefault&&t.preventDefault(),!1)},so=function(e){if(X===void 0){var t=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(t&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);X=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}Y===void 0&&(Y=document.body.style.overflow,document.body.style.overflow="hidden")},oo=function(){X!==void 0&&(document.body.style.paddingRight=X,X=void 0),Y!==void 0&&(document.body.style.overflow=Y,Y=void 0)},ao=function(){return window.requestAnimationFrame(function(){if(G===void 0){G={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,t=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-t,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var r=s-window.innerHeight;r&&t>=s&&(document.body.style.top=-(t+r))})},300)}})},ro=function(){if(G!==void 0){var e=-parseInt(document.body.style.top,10),t=-parseInt(document.body.style.left,10);document.body.style.position=G.position,document.body.style.top=G.top,document.body.style.left=G.left,window.scrollTo(t,e),G=void 0}},io=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},lo=function(e,t){var o=e.targetTouches[0].clientY-Se;return We(e.target)?!1:t&&t.scrollTop===0&&o>0||io(t)&&o<0?ie(e):(e.stopPropagation(),!0)},Ye=function(e,t){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!q.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:t||{}};q=[].concat(no(q),[o]),ae?ao():so(t),ae&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Se=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&lo(s,e)},re||(document.addEventListener("touchmove",ie,we?{passive:!1}:void 0),re=!0))}},Xe=function(){ae&&(q.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),re&&(document.removeEventListener("touchmove",ie,we?{passive:!1}:void 0),re=!1),Se=-1),ae?ro():oo(),q=[]};const co=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(a(),y(O,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[A(P(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const uo=f(co,[["__scopeId","data-v-30be0acb"]]),_o={},vo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},po=u("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),ho=[po];function fo(n,e){return a(),l("svg",vo,ho)}const mo=f(_o,[["render",fo]]),go=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(a(),y(O,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:v(()=>[A(P(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Qe=f(go,[["__scopeId","data-v-6656c42a"]]),yo={class:"VPNavScreenMenuGroupSection"},bo={key:0,class:"title"},$o=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),l("div",yo,[e.text?(a(),l("p",bo,P(e.text),1)):m("",!0),(a(!0),l(M,null,x(e.items,o=>(a(),y(Qe,{key:o.text,item:o},null,8,["item"]))),128))]))}});const ko=f($o,[["__scopeId","data-v-8133b170"]]),Po=["aria-controls","aria-expanded"],Vo={class:"button-text"},wo=["id"],So={key:1,class:"group"},Lo=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=S(!1),o=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,d)=>(a(),l("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:s},[u("span",Vo,P(r.text),1),h(mo,{class:"button-icon"})],8,Po),u("div",{id:o.value,class:"items"},[(a(!0),l(M,null,x(r.items,p=>(a(),l(M,{key:p.text},["link"in p?(a(),l("div",{key:p.text,class:"item"},[h(Qe,{item:p},null,8,["item"])])):(a(),l("div",So,[h(ko,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,wo)],2))}});const Mo=f(Lo,[["__scopeId","data-v-338a1689"]]),Co={key:0,class:"VPNavScreenMenu"},Io=g({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(a(),l("nav",Co,[(a(!0),l(M,null,x(i(e).nav,s=>(a(),l(M,{key:s.text},["link"in s?(a(),y(uo,{key:0,item:s},null,8,["item"])):(a(),y(Mo,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),Bo={key:0,class:"VPNavScreenAppearance"},To={class:"text"},No=g({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(o,s)=>i(e).appearance?(a(),l("div",Bo,[u("p",To,P(i(t).darkModeSwitchLabel||"Appearance"),1),h(Pe)])):m("",!0)}});const Ao=f(No,[["__scopeId","data-v-add8f686"]]),xo={class:"list"},Eo=g({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=te({correspondingLink:!0}),o=S(!1);function s(){o.value=!o.value}return(r,d)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:I(["VPNavScreenTranslations",{open:o.value}])},[u("button",{class:"title",onClick:s},[h(Ke,{class:"icon lang"}),A(" "+P(i(t).label)+" ",1),h(je,{class:"icon chevron"})]),u("ul",xo,[(a(!0),l(M,null,x(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[h(O,{class:"link",href:p.link},{default:v(()=>[A(P(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}});const Ho=f(Eo,[["__scopeId","data-v-d72aa483"]]),zo=g({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(a(),y(Ve,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Do={class:"container"},Fo=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=S(null);function t(){Ye(e.value,{reserveScrollBarGap:!0})}function o(){Xe()}return(s,r)=>(a(),y(fe,{name:"fade",onEnter:t,onAfterLeave:o},{default:v(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e},[u("div",Do,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),h(Io,{class:"menu"}),h(Ho,{class:"translations"}),h(Ao,{class:"appearance"}),h(zo,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}});const Oo=f(Fo,[["__scopeId","data-v-724636ae"]]),Go={class:"VPNav"},Ro=g({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=Ht();return oe("close-screen",t),(s,r)=>(a(),l("header",Go,[h(to,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":v(()=>[c(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(Oo,{open:i(e)},{"nav-screen-content-before":v(()=>[c(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const Uo=f(Ro,[["__scopeId","data-v-7e5bc4a5"]]),qo={},jo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ko=u("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),Wo=u("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),Yo=u("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),Xo=u("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),Qo=[Ko,Wo,Yo,Xo];function Jo(n,e){return a(),l("svg",jo,Qo)}const Zo=f(qo,[["render",Jo]]);function ea(){const{hasSidebar:n}=D(),e=_e("(min-width: 960px)"),t=_e("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ta=71;function Le(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function Me(n){const e=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{title:na(t),link:"#"+t.id,level:o}});return sa(e,n)}function na(n){let e="";for(const t of n.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 sa(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(d=>d.level>=o&&d.level<=s);const r=[];e:for(let d=0;d=0;_--){const k=n[_];if(k.level{requestAnimationFrame(r),window.addEventListener("scroll",o)}),dt(()=>{d(location.hash)}),le(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const p=[].slice.call(n.value.querySelectorAll(".outline-link")),_=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(L=>p.some(w=>w.hash===L.hash&&L.offsetParent!==null)),k=window.scrollY,C=window.innerHeight,T=document.body.offsetHeight,N=Math.abs(k+C-T)<1;if(_.length&&N){d(_[_.length-1].hash);return}for(let L=0;L<_.length;L++){const w=_[L],B=_[L+1],[b,E]=aa(L,w,B);if(b){d(E);return}}}function d(p){s&&s.classList.remove("active"),p!==null&&(s=n.value.querySelector(`a[href="${decodeURIComponent(p)}"]`));const _=s;_?(_.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 Ee(n){return n.parentElement.offsetTop-ta}function aa(n,e,t){const o=window.scrollY;return n===0&&o===0?[!0,null]:o{const s=R("VPDocOutlineItem",!0);return a(),l("ul",{class:I(t.root?"root":"nested")},[(a(!0),l(M,null,x(t.headers,({children:r,link:d,title:p})=>(a(),l("li",null,[u("a",{class:"outline-link",href:d,onClick:e,title:p},P(p),9,ra),r!=null&&r.length?(a(),y(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}});const Ce=f(ia,[["__scopeId","data-v-9a431c33"]]),la={},ca={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ua=u("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),da=[ua];function _a(n,e){return a(),l("svg",ca,da)}const Ie=f(la,[["render",_a]]),va=g({__name:"VPLocalNavOutlineDropdown",setup(n){const{frontmatter:e,theme:t}=V(),o=S(!1),s=S(0),r=S();J(()=>{o.value=!1});function d(){o.value=!o.value,s.value=window.innerHeight+Math.min(window.scrollY-64,0)}function p(C){C.target.classList.contains("outline-link")&&(r.value&&(r.value.style.transition="none"),_t(()=>{o.value=!1}))}function _(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}const k=ge([]);return J(()=>{k.value=Me(e.value.outline??t.value.outline)}),(C,T)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:ze({"--vp-vh":s.value+"px"})},[k.value.length>0?(a(),l("button",{key:0,onClick:d,class:I({open:o.value})},[A(P(i(Le)(i(t)))+" ",1),h(Ie,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:_},P(i(t).returnToTopLabel||"Return to top"),1)),h(fe,{name:"flyout"},{default:v(()=>[o.value?(a(),l("div",{key:0,ref_key:"items",ref:r,class:"items",onClick:p},[u("a",{class:"top-link",href:"#",onClick:_},P(i(t).returnToTopLabel||"Return to top"),1),h(Ce,{headers:k.value},null,8,["headers"])],512)):m("",!0)]),_:1})],4))}});const pa=f(va,[["__scopeId","data-v-079b16a8"]]),ha={key:0,class:"VPLocalNav"},fa=["aria-expanded"],ma={class:"menu-text"},ga=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:o}=D();return(s,r)=>i(t).layout!=="home"?(a(),l("div",ha,[i(o)?(a(),l("button",{key:0,class:"menu","aria-expanded":s.open,"aria-controls":"VPSidebarNav",onClick:r[0]||(r[0]=d=>s.$emit("open-menu"))},[h(Zo,{class:"menu-icon"}),u("span",ma,P(i(e).sidebarMenuLabel||"Menu"),1)],8,fa)):m("",!0),h(pa)])):m("",!0)}});const ya=f(ga,[["__scopeId","data-v-392e1bf8"]]),ba=n=>(H("data-v-c4656e6d"),n=n(),z(),n),$a=["role","tabindex"],ka=ba(()=>u("div",{class:"indicator"},null,-1)),Pa=["onKeydown"],Va={key:1,class:"items"},wa=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:o,isLink:s,isActiveLink:r,hasActiveLink:d,hasChildren:p,toggle:_}=Bt($(()=>e.item)),k=$(()=>p.value?"section":"div"),C=$(()=>s.value?"a":"div"),T=$(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),N=$(()=>s.value?void 0:"button"),L=$(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":d.value}]);function w(b){"key"in b&&b.key!=="Enter"||!e.item.link&&_()}function B(){e.item.link&&_()}return(b,E)=>{const ne=R("VPSidebarItem",!0);return a(),y(U(k.value),{class:I(["VPSidebarItem",L.value])},{default:v(()=>[b.item.text?(a(),l("div",se({key:0,class:"item",role:N.value},pt(b.item.items?{click:w,keydown:w}:{},!0),{tabindex:b.item.items&&0}),[ka,b.item.link?(a(),y(O,{key:0,tag:C.value,class:"link",href:b.item.link},{default:v(()=>[(a(),y(U(T.value),{class:"text",innerHTML:b.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(a(),y(U(T.value),{key:1,class:"text",innerHTML:b.item.text},null,8,["innerHTML"])),b.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:vt(B,["enter"]),tabindex:"0"},[h(Ie,{class:"caret-icon"})],40,Pa)):m("",!0)],16,$a)):m("",!0),b.item.items&&b.item.items.length?(a(),l("div",Va,[b.depth<5?(a(!0),l(M,{key:0},x(b.item.items,W=>(a(),y(ne,{key:W.text,item:W,depth:b.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}});const Sa=f(wa,[["__scopeId","data-v-c4656e6d"]]),Je=n=>(H("data-v-af16598e"),n=n(),z(),n),La=Je(()=>u("div",{class:"curtain"},null,-1)),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ca=Je(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ia=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const e=n,{sidebarGroups:t,hasSidebar:o}=D();let s=S(null);function r(){Ye(s.value,{reserveScrollBarGap:!0})}function d(){Xe()}return ht(async()=>{var p;e.open?(r(),(p=s.value)==null||p.focus()):d()}),(p,_)=>i(o)?(a(),l("aside",{key:0,class:I(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:s,onClick:_[0]||(_[0]=ft(()=>{},["stop"]))},[La,u("nav",Ma,[Ca,c(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(M,null,x(i(t),k=>(a(),l("div",{key:k.text,class:"group"},[h(Sa,{item:k,depth:0},null,8,["item"])]))),128)),c(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}});const Ba=f(Ia,[["__scopeId","data-v-af16598e"]]),Ta={},Na={class:"VPPage"};function Aa(n,e){const t=R("Content");return a(),l("div",Na,[c(n.$slots,"page-top"),h(t),c(n.$slots,"page-bottom")])}const xa=f(Ta,[["render",Aa]]),Ea=g({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(n){const e=n,t=$(()=>[e.size??"medium",e.theme??"brand"]),o=$(()=>e.href&&De.test(e.href)),s=$(()=>e.tag?e.tag:e.href?"a":"button");return(r,d)=>(a(),y(U(s.value),{class:I(["VPButton",t.value]),href:r.href?i(Z)(r.href):void 0,target:o.value?"_blank":void 0,rel:o.value?"noreferrer":void 0},{default:v(()=>[A(P(r.text),1)]),_:1},8,["class","href","target","rel"]))}});const Ha=f(Ea,[["__scopeId","data-v-567ba664"]]),za=n=>(H("data-v-fd2650d5"),n=n(),z(),n),Da={class:"container"},Fa={class:"main"},Oa={key:0,class:"name"},Ga={class:"clip"},Ra={key:1,class:"text"},Ua={key:2,class:"tagline"},qa={key:0,class:"actions"},ja={key:0,class:"image"},Ka={class:"image-container"},Wa=za(()=>u("div",{class:"image-bg"},null,-1)),Ya=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=me("hero-image-slot-exists");return(t,o)=>(a(),l("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[u("div",Da,[u("div",Fa,[c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Oa,[u("span",Ga,P(t.name),1)])):m("",!0),t.text?(a(),l("p",Ra,P(t.text),1)):m("",!0),t.tagline?(a(),l("p",Ua,P(t.tagline),1)):m("",!0)],!0),t.actions?(a(),l("div",qa,[(a(!0),l(M,null,x(t.actions,s=>(a(),l("div",{key:s.link,class:"action"},[h(Ha,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link},null,8,["theme","text","href"])]))),128))])):m("",!0)]),t.image||i(e)?(a(),l("div",ja,[u("div",Ka,[Wa,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),y(be,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}});const Xa=f(Ya,[["__scopeId","data-v-fd2650d5"]]),Qa=g({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).hero?(a(),y(Xa,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ja={},Za={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},er=u("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),tr=[er];function nr(n,e){return a(),l("svg",Za,tr)}const sr=f(Ja,[["render",nr]]),or={class:"box"},ar=["innerHTML"],rr=["innerHTML"],ir=["innerHTML"],lr={key:3,class:"link-text"},cr={class:"link-text-value"},ur=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{}},setup(n){return(e,t)=>(a(),y(O,{class:"VPFeature",href:e.link,"no-icon":!0},{default:v(()=>[u("article",or,[typeof e.icon=="object"?(a(),y(be,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:1,class:"icon",innerHTML:e.icon},null,8,ar)):m("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,rr),e.details?(a(),l("p",{key:2,class:"details",innerHTML:e.details},null,8,ir)):m("",!0),e.linkText?(a(),l("div",lr,[u("p",cr,[A(P(e.linkText)+" ",1),h(sr,{class:"link-text-icon"})])])):m("",!0)])]),_:1},8,["href"]))}});const dr=f(ur,[["__scopeId","data-v-837f6cca"]]),_r={key:0,class:"VPFeatures"},vr={class:"container"},pr={class:"items"},hr=g({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=$(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>o.features?(a(),l("div",_r,[u("div",vr,[u("div",pr,[(a(!0),l(M,null,x(o.features,r=>(a(),l("div",{key:r.title,class:I(["item",[t.value]])},[h(dr,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):m("",!0)}});const fr=f(hr,[["__scopeId","data-v-ba861f23"]]),mr=g({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).features?(a(),y(fr,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),gr={class:"VPHome"},yr=g({__name:"VPHome",setup(n){return(e,t)=>{const o=R("Content");return a(),l("div",gr,[c(e.$slots,"home-hero-before",{},void 0,!0),h(Qa,null,{"home-hero-info":v(()=>[c(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(e.$slots,"home-hero-after",{},void 0,!0),c(e.$slots,"home-features-before",{},void 0,!0),h(mr),c(e.$slots,"home-features-after",{},void 0,!0),h(o)])}}});const br=f(yr,[["__scopeId","data-v-d82743a8"]]),$r=n=>(H("data-v-ff0f39c8"),n=n(),z(),n),kr={class:"content"},Pr={class:"outline-title"},Vr={"aria-labelledby":"doc-outline-aria-label"},wr=$r(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Sr=g({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),o=ge([]);J(()=>{o.value=Me(e.value.outline??t.value.outline)});const s=S(),r=S();return oa(s,r),(d,p)=>(a(),l("div",{class:I(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[u("div",kr,[u("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),u("div",Pr,P(i(Le)(i(t))),1),u("nav",Vr,[wr,h(Ce,{headers:o.value,root:!0},null,8,["headers"])])])],2))}});const Lr=f(Sr,[["__scopeId","data-v-ff0f39c8"]]),Mr={class:"VPDocAsideCarbonAds"},Cr=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,o)=>(a(),l("div",Mr,[h(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ir=n=>(H("data-v-3f215769"),n=n(),z(),n),Br={class:"VPDocAside"},Tr=Ir(()=>u("div",{class:"spacer"},null,-1)),Nr=g({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,o)=>(a(),l("div",Br,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),h(Lr),c(t.$slots,"aside-outline-after",{},void 0,!0),Tr,c(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),y(Cr,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}});const Ar=f(Nr,[["__scopeId","data-v-3f215769"]]);function xr(){const{theme:n,page:e}=V();return $(()=>{const{text:t="Edit this page",pattern:o=""}=n.value.editLink||{};let s;return typeof o=="function"?s=o(e.value):s=o.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Er(){const{page:n,theme:e,frontmatter:t}=V();return $(()=>{var d,p,_,k;const o=Re(e.value.sidebar,n.value.relativePath),s=Ct(o),r=s.findIndex(C=>K(n.value.relativePath,C.link));return{prev:t.value.prev===!1?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((d=s[r-1])==null?void 0:d.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((p=s[r-1])==null?void 0:p.link)},next:t.value.next===!1?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((_=s[r+1])==null?void 0:_.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((k=s[r+1])==null?void 0:k.link)}}})}const Hr={},zr={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Dr=u("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),Fr=u("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),Or=[Dr,Fr];function Gr(n,e){return a(),l("svg",zr,Or)}const Rr=f(Hr,[["render",Gr]]),Ur={class:"VPLastUpdated"},qr=["datetime"],jr=g({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:o}=V(),s=$(()=>new Date(t.value.lastUpdated)),r=$(()=>s.value.toISOString()),d=S("");return F(()=>{Q(()=>{d.value=s.value.toLocaleString(o.value)})}),(p,_)=>(a(),l("p",Ur,[A(P(i(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:r.value},P(d.value),9,qr)]))}});const Kr=f(jr,[["__scopeId","data-v-7b3ebfe1"]]),Wr={key:0,class:"VPDocFooter"},Yr={key:0,class:"edit-info"},Xr={key:0,class:"edit-link"},Qr={key:1,class:"last-updated"},Jr={key:1,class:"prev-next"},Zr={class:"pager"},ei=["href"],ti=["innerHTML"],ni=["innerHTML"],si=["href"],oi=["innerHTML"],ai=["innerHTML"],ri=g({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:o}=V(),s=xr(),r=Er(),d=$(()=>e.value.editLink&&o.value.editLink!==!1),p=$(()=>t.value.lastUpdated&&o.value.lastUpdated!==!1),_=$(()=>d.value||p.value||r.value.prev||r.value.next);return(k,C)=>{var T,N,L,w,B,b,E;return _.value?(a(),l("footer",Wr,[c(k.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),l("div",Yr,[d.value?(a(),l("div",Xr,[h(O,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:v(()=>[h(Rr,{class:"edit-link-icon","aria-label":"edit icon"}),A(" "+P(i(s).text),1)]),_:1},8,["href"])])):m("",!0),p.value?(a(),l("div",Qr,[h(Kr)])):m("",!0)])):m("",!0),(T=i(r).prev)!=null&&T.link||(N=i(r).next)!=null&&N.link?(a(),l("div",Jr,[u("div",Zr,[(L=i(r).prev)!=null&&L.link?(a(),l("a",{key:0,class:"pager-link prev",href:i(Z)(i(r).prev.link)},[u("span",{class:"desc",innerHTML:((w=i(e).docFooter)==null?void 0:w.prev)||"Previous page"},null,8,ti),u("span",{class:"title",innerHTML:i(r).prev.text},null,8,ni)],8,ei)):m("",!0)]),u("div",{class:I(["pager",{"has-prev":(B=i(r).prev)==null?void 0:B.link}])},[(b=i(r).next)!=null&&b.link?(a(),l("a",{key:0,class:"pager-link next",href:i(Z)(i(r).next.link)},[u("span",{class:"desc",innerHTML:((E=i(e).docFooter)==null?void 0:E.next)||"Next page"},null,8,oi),u("span",{class:"title",innerHTML:i(r).next.text},null,8,ai)],8,si)):m("",!0)],2)])):m("",!0)])):m("",!0)}}});const ii=f(ri,[["__scopeId","data-v-face870a"]]),li={key:0,class:"VPDocOutlineDropdown"},ci={key:0,class:"items"},ui=g({__name:"VPDocOutlineDropdown",setup(n){const{frontmatter:e,theme:t}=V(),o=S(!1);J(()=>{o.value=!1});const s=ge([]);return J(()=>{s.value=Me(e.value.outline??t.value.outline)}),(r,d)=>s.value.length>0?(a(),l("div",li,[u("button",{onClick:d[0]||(d[0]=p=>o.value=!o.value),class:I({open:o.value})},[A(P(i(Le)(i(t)))+" ",1),h(Ie,{class:"icon"})],2),o.value?(a(),l("div",ci,[h(Ce,{headers:s.value},null,8,["headers"])])):m("",!0)])):m("",!0)}});const di=f(ui,[["__scopeId","data-v-2edece88"]]),_i=n=>(H("data-v-c4b0d3cf"),n=n(),z(),n),vi={class:"container"},pi=_i(()=>u("div",{class:"aside-curtain"},null,-1)),hi={class:"aside-container"},fi={class:"aside-content"},mi={class:"content"},gi={class:"content-container"},yi={class:"main"},bi=g({__name:"VPDoc",setup(n){const e=ee(),{hasSidebar:t,hasAside:o,leftAside:s}=D(),r=$(()=>e.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,p)=>{const _=R("Content");return a(),l("div",{class:I(["VPDoc",{"has-sidebar":i(t),"has-aside":i(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),u("div",vi,[i(o)?(a(),l("div",{key:0,class:I(["aside",{"left-aside":i(s)}])},[pi,u("div",hi,[u("div",fi,[h(Ar,null,{"aside-top":v(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),u("div",mi,[u("div",gi,[c(d.$slots,"doc-before",{},void 0,!0),h(di),u("main",yi,[h(_,{class:I(["vp-doc",r.value])},null,8,["class"])]),h(ii,null,{"doc-footer-before":v(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}});const $i=f(bi,[["__scopeId","data-v-c4b0d3cf"]]),ue=n=>(H("data-v-c70503b8"),n=n(),z(),n),ki={class:"NotFound"},Pi=ue(()=>u("p",{class:"code"},"404",-1)),Vi=ue(()=>u("h1",{class:"title"},"PAGE NOT FOUND",-1)),wi=ue(()=>u("div",{class:"divider"},null,-1)),Si=ue(()=>u("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Li={class:"action"},Mi=["href"],Ci=g({__name:"NotFound",setup(n){const{site:e}=V(),{localeLinks:t}=te({removeCurrent:!1}),o=S("/");return F(()=>{var r;const s=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");t.value.length&&(o.value=((r=t.value.find(({link:d})=>d.startsWith(s)))==null?void 0:r.link)||t.value[0].link)}),(s,r)=>(a(),l("div",ki,[Pi,Vi,wi,Si,u("div",Li,[u("a",{class:"link",href:i(he)(o.value),"aria-label":"go to home"}," Take me home ",8,Mi)])]))}});const Ii=f(Ci,[["__scopeId","data-v-c70503b8"]]),Bi=g({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:o}=D();return(s,r)=>(a(),l("div",{class:I(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(s.$slots,"not-found",{key:0},()=>[h(Ii)],!0):i(t).layout==="page"?(a(),y(xa,{key:1},{"page-top":v(()=>[c(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),y(br,{key:2},{"home-hero-before":v(()=>[c(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):(a(),y($i,{key:3},{"doc-top":v(()=>[c(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Ti=f(Bi,[["__scopeId","data-v-a494bd1d"]]),Ni={class:"container"},Ai=["innerHTML"],xi=["innerHTML"],Ei=g({__name:"VPFooter",setup(n){const{theme:e}=V(),{hasSidebar:t}=D();return(o,s)=>i(e).footer?(a(),l("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(t)}])},[u("div",Ni,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Ai)):m("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,xi)):m("",!0)])],2)):m("",!0)}});const Hi=f(Ei,[["__scopeId","data-v-2f86ebd2"]]),zi={key:0,class:"Layout"},Di=g({__name:"Layout",setup(n){const{isOpen:e,open:t,close:o}=D(),s=ee();j(()=>s.path,o),It(e,o),oe("close-sidebar",o),oe("is-sidebar-open",e);const{frontmatter:r}=V(),d=mt(),p=$(()=>!!d["home-hero-image"]);return oe("hero-image-slot-exists",p),(_,k)=>{const C=R("Content");return i(r).layout!==!1?(a(),l("div",zi,[c(_.$slots,"layout-top",{},void 0,!0),h(Nt),h(Et,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),h(Uo,null,{"nav-bar-title-before":v(()=>[c(_.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(_.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(_.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(_.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(_.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(_.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),h(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),h(Ba,{open:i(e)},{"sidebar-nav-before":v(()=>[c(_.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(_.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(Ti,null,{"page-top":v(()=>[c(_.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(_.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(_.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(_.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(_.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[c(_.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(_.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(_.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(_.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(_.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(_.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(_.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(_.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(_.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(_.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(_.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(_.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(_.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(_.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(_.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(Hi),c(_.$slots,"layout-bottom",{},void 0,!0)])):(a(),y(C,{key:1}))}}});const Fi=f(Di,[["__scopeId","data-v-b2cf3e0b"]]);const Gi={Layout:Fi,enhanceApp:({app:n})=>{n.component("Badge",yt)}};export{Gi as t,V as u}; diff --git a/assets/guide_about_index.md.3268f72f.js b/assets/guide_about_index.md.3268f72f.js deleted file mode 100644 index 4341d83..0000000 --- a/assets/guide_about_index.md.3268f72f.js +++ /dev/null @@ -1 +0,0 @@ -import"./chunks/theme.c4d303ac.js";import{_ as o,o as s,c as d,O as n,Q as c,z as t}from"./chunks/framework.6241eaf2.js";const a=e=>(n("data-v-72ad4494"),e=e(),c(),e),p=a(()=>t("p",{style:{"margin-bottom":"50px"}},[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/account.jpg",width:"300"})],-1)),_=a(()=>t("p",null,[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/group.jpg",width:"300"})],-1)),i=[p,_],x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"guide/about/index.md","filePath":"guide/about/index.md","lastUpdated":1731315864000}'),r={name:"guide/about/index.md"},l=Object.assign(r,{setup(e){return(u,h)=>(s(),d("div",null,i))}}),f=o(l,[["__scopeId","data-v-72ad4494"]]);export{x as __pageData,f as default}; diff --git a/assets/guide_about_index.md.3268f72f.lean.js b/assets/guide_about_index.md.3268f72f.lean.js deleted file mode 100644 index 4341d83..0000000 --- a/assets/guide_about_index.md.3268f72f.lean.js +++ /dev/null @@ -1 +0,0 @@ -import"./chunks/theme.c4d303ac.js";import{_ as o,o as s,c as d,O as n,Q as c,z as t}from"./chunks/framework.6241eaf2.js";const a=e=>(n("data-v-72ad4494"),e=e(),c(),e),p=a(()=>t("p",{style:{"margin-bottom":"50px"}},[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/account.jpg",width:"300"})],-1)),_=a(()=>t("p",null,[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/group.jpg",width:"300"})],-1)),i=[p,_],x=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"guide/about/index.md","filePath":"guide/about/index.md","lastUpdated":1731315864000}'),r={name:"guide/about/index.md"},l=Object.assign(r,{setup(e){return(u,h)=>(s(),d("div",null,i))}}),f=o(l,[["__scopeId","data-v-72ad4494"]]);export{x as __pageData,f as default}; diff --git a/assets/guide_about_index.md.BInAGpOZ.js b/assets/guide_about_index.md.BInAGpOZ.js new file mode 100644 index 0000000..a8b579c --- /dev/null +++ b/assets/guide_about_index.md.BInAGpOZ.js @@ -0,0 +1 @@ +import"./chunks/theme.BGZVS_Sn.js";import{_ as a,c as s,o as c,j as t,p as d,l as p}from"./chunks/framework.DNhrqZu5.js";const o=e=>(d("data-v-4991c6c3"),e=e(),p(),e),n=o(()=>t("p",{style:{"margin-bottom":"50px"}},[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/account.jpg",width:"300"})],-1)),i=o(()=>t("p",null,[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/group.jpg",width:"300"})],-1)),r=[n,i],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"guide/about/index.md","filePath":"guide/about/index.md","lastUpdated":1756280434000}'),_={name:"guide/about/index.md"},l=Object.assign(_,{setup(e){return(h,u)=>(c(),s("div",null,r))}}),x=a(l,[["__scopeId","data-v-4991c6c3"]]);export{f as __pageData,x as default}; diff --git a/assets/guide_about_index.md.BInAGpOZ.lean.js b/assets/guide_about_index.md.BInAGpOZ.lean.js new file mode 100644 index 0000000..a8b579c --- /dev/null +++ b/assets/guide_about_index.md.BInAGpOZ.lean.js @@ -0,0 +1 @@ +import"./chunks/theme.BGZVS_Sn.js";import{_ as a,c as s,o as c,j as t,p as d,l as p}from"./chunks/framework.DNhrqZu5.js";const o=e=>(d("data-v-4991c6c3"),e=e(),p(),e),n=o(()=>t("p",{style:{"margin-bottom":"50px"}},[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/account.jpg",width:"300"})],-1)),i=o(()=>t("p",null,[t("img",{src:"https://cdn.jsdelivr.net/gh/fonghehe/picture/personal/group.jpg",width:"300"})],-1)),r=[n,i],f=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"guide/about/index.md","filePath":"guide/about/index.md","lastUpdated":1756280434000}'),_={name:"guide/about/index.md"},l=Object.assign(_,{setup(e){return(h,u)=>(c(),s("div",null,r))}}),x=a(l,[["__scopeId","data-v-4991c6c3"]]);export{f as __pageData,x as default}; diff --git a/assets/guide_edit.md.7944bd49.js b/assets/guide_edit.md.7944bd49.js deleted file mode 100644 index c73cea8..0000000 --- a/assets/guide_edit.md.7944bd49.js +++ /dev/null @@ -1,11 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const h=JSON.parse('{"title":"参与编辑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/edit.md","filePath":"guide/edit.md","lastUpdated":1731315864000}'),e={name:"guide/edit.md"},t=l(`

参与编辑

欢迎有意愿参与到开源的朋友,加入到本文档的编写,书写文档不仅是教会别人知识,更是用自己的表达方式概括自己所学习知识的一种方式,这对个人来说是不可多得的成长机会。

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
-
-# 切换分支
-git checkout -b docs origin/docs
-
-# 安装依赖
-yarn install
-
-# 启动项目
-yarn start
`,3),p=[t];function o(c,i,r,d,y,C){return a(),n("div",null,p)}const A=s(e,[["render",o]]);export{h as __pageData,A as default}; diff --git a/assets/guide_edit.md.7944bd49.lean.js b/assets/guide_edit.md.7944bd49.lean.js deleted file mode 100644 index a740065..0000000 --- a/assets/guide_edit.md.7944bd49.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const h=JSON.parse('{"title":"参与编辑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/edit.md","filePath":"guide/edit.md","lastUpdated":1731315864000}'),e={name:"guide/edit.md"},t=l("",3),p=[t];function o(c,i,r,d,y,C){return a(),n("div",null,p)}const A=s(e,[["render",o]]);export{h as __pageData,A as default}; diff --git a/assets/guide_edit.md.BFTKW4N6.js b/assets/guide_edit.md.BFTKW4N6.js new file mode 100644 index 0000000..6f28a02 --- /dev/null +++ b/assets/guide_edit.md.BFTKW4N6.js @@ -0,0 +1,12 @@ +import{_ as s,c as a,o as i,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"参与编辑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/edit.md","filePath":"guide/edit.md","lastUpdated":1756280434000}'),t={name:"guide/edit.md"},e=n(`

参与编辑

欢迎有意愿参与到开源的朋友,加入到本文档的编写,书写文档不仅是教会别人知识,更是用自己的表达方式概括自己所学习知识的一种方式,这对个人来说是不可多得的成长机会。

bash

+# 拉取项目
+git clone https://github.com/sunniejs/vue-h5-template
+
+# 切换分支
+git checkout -b docs origin/docs
+
+# 安装依赖
+yarn install
+
+# 启动项目
+yarn start
`,3),l=[e];function p(h,k,d,c,r,o){return i(),a("div",null,l)}const _=s(t,[["render",p]]);export{g as __pageData,_ as default}; diff --git a/assets/guide_edit.md.BFTKW4N6.lean.js b/assets/guide_edit.md.BFTKW4N6.lean.js new file mode 100644 index 0000000..f0eae66 --- /dev/null +++ b/assets/guide_edit.md.BFTKW4N6.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"参与编辑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/edit.md","filePath":"guide/edit.md","lastUpdated":1756280434000}'),t={name:"guide/edit.md"},e=n("",3),l=[e];function p(h,k,d,c,r,o){return i(),a("div",null,l)}const _=s(t,[["render",p]]);export{g as __pageData,_ as default}; diff --git a/assets/guide_index.md.46287c77.js b/assets/guide_index.md.46287c77.js deleted file mode 100644 index b5fde9f..0000000 --- a/assets/guide_index.md.46287c77.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as i}from"./chunks/framework.6241eaf2.js";const m=JSON.parse('{"title":"Vue-H5-Template","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1731315864000}'),r={name:"guide/index.md"},l=i('

Vue-H5-Template

Vue-H5-Template,是基于 vite3 + vue3 + pinia + ( Vant or Varlet or NutUI ) + viewport 适配方案 ,构建移动端快速开发脚手架

特点

最新技术栈

  • 框架选型基于当下流行的 vue + vite + ts 模式,精选社区 star 和满意度均不错的 ui 框架和 vite 插件,并时常进行更新,确保与官方文档一致

基于 TypeScript

  • Typescript 逐渐在各种大型的 js 项目中使用,明确的类型定义可以省下不少的开发和维护成本

轻量级

  • 不同于集成的脚手架,尽量做到轻量不冗杂,只引入高频次的插件和清晰的示例
  • 轻装上阵,便于拓展开发,减少学习成本

通俗易懂的文档

  • 基于最新 VitePress 构建的文档,更快,更便捷
  • 更快的热更新
',11),o=[l];function n(s,h,u,d,c,p){return a(),t("div",null,o)}const f=e(r,[["render",n]]);export{m as __pageData,f as default}; diff --git a/assets/guide_index.md.46287c77.lean.js b/assets/guide_index.md.46287c77.lean.js deleted file mode 100644 index 5362544..0000000 --- a/assets/guide_index.md.46287c77.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as i}from"./chunks/framework.6241eaf2.js";const m=JSON.parse('{"title":"Vue-H5-Template","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1731315864000}'),r={name:"guide/index.md"},l=i("",11),o=[l];function n(s,h,u,d,c,p){return a(),t("div",null,o)}const f=e(r,[["render",n]]);export{m as __pageData,f as default}; diff --git a/assets/guide_index.md.DbPegufj.js b/assets/guide_index.md.DbPegufj.js new file mode 100644 index 0000000..f4b71da --- /dev/null +++ b/assets/guide_index.md.DbPegufj.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as i}from"./chunks/framework.DNhrqZu5.js";const m=JSON.parse('{"title":"Vue-H5-Template","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1756280434000}'),r={name:"guide/index.md"},l=i('

Vue-H5-Template

Vue-H5-Template,是基于 vite7 + vue3.5 + pinia + ( Vant or Varlet or NutUI ) + viewport(VW) 适配方案 ,构建移动端快速开发脚手架

特点

最新技术栈

  • 框架选型基于当下流行的 vue + vite + ts 模式,精选社区 star 数 和满意度均不错的 ui 框架和 vite 插件,并时常进行更新,确保与官方文档一致

基于 TypeScript

  • Typescript 逐渐在各种大型的 js 项目中使用,明确的类型定义可以省下不少的开发和维护成本

轻量级

  • 不同于集成的脚手架,尽量做到轻量不冗杂,只引入高频次的插件和清晰的示例
  • 轻装上阵,便于拓展开发,减少学习成本

通俗易懂的文档

  • 基于最新 VitePress 构建的文档,更快,更便捷
  • 更快的热更新
',11),o=[l];function n(s,h,u,d,c,p){return t(),a("div",null,o)}const f=e(r,[["render",n]]);export{m as __pageData,f as default}; diff --git a/assets/guide_index.md.DbPegufj.lean.js b/assets/guide_index.md.DbPegufj.lean.js new file mode 100644 index 0000000..b7efc5a --- /dev/null +++ b/assets/guide_index.md.DbPegufj.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as i}from"./chunks/framework.DNhrqZu5.js";const m=JSON.parse('{"title":"Vue-H5-Template","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1756280434000}'),r={name:"guide/index.md"},l=i("",11),o=[l];function n(s,h,u,d,c,p){return t(),a("div",null,o)}const f=e(r,[["render",n]]);export{m as __pageData,f as default}; diff --git a/assets/guide_other_index.md.5aef07ec.js b/assets/guide_other_index.md.5aef07ec.js deleted file mode 100644 index bbf025c..0000000 --- a/assets/guide_other_index.md.5aef07ec.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as r}from"./chunks/framework.6241eaf2.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/index.md","filePath":"guide/other/index.md","lastUpdated":1731315864000}'),o={name:"guide/other/index.md"},i=r('

1、为什么有多个组件库?

本模版想做到的是尽可能的开箱即用,不用去看别的文档引入相关组件库,毕竟做减法比做加法要容易些,如你不需要某个组件库可以根据这篇指引去移除某个组件库

2、我可以用在个人或公司的项目吗?

模版基于 MIT License,你可以根据自己的需求用到不同的项目里,如果对你有帮助点个 star 支持一下呗 🌟

3、我是一个新手,有什么好的学习建议吗?

过来人的经验就是熟读文档可以少走很多弯路,很多的人文档没读熟就开始动手,出了问题也不知道如何去解决,墙裂建议先把文档熟读

',6),n=[i];function _(d,s,h,c,l,p){return a(),t("div",null,n)}const m=e(o,[["render",_]]);export{f as __pageData,m as default}; diff --git a/assets/guide_other_index.md.5aef07ec.lean.js b/assets/guide_other_index.md.5aef07ec.lean.js deleted file mode 100644 index c9aa830..0000000 --- a/assets/guide_other_index.md.5aef07ec.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as r}from"./chunks/framework.6241eaf2.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/index.md","filePath":"guide/other/index.md","lastUpdated":1731315864000}'),o={name:"guide/other/index.md"},i=r("",6),n=[i];function _(d,s,h,c,l,p){return a(),t("div",null,n)}const m=e(o,[["render",_]]);export{f as __pageData,m as default}; diff --git a/assets/guide_other_index.md.CY3kK2YF.js b/assets/guide_other_index.md.CY3kK2YF.js new file mode 100644 index 0000000..5fc8647 --- /dev/null +++ b/assets/guide_other_index.md.CY3kK2YF.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as r}from"./chunks/framework.DNhrqZu5.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/index.md","filePath":"guide/other/index.md","lastUpdated":1756280434000}'),o={name:"guide/other/index.md"},i=r('

1、为什么有多个组件库?

本模版想做到的是尽可能的开箱即用,不用去看别的文档引入相关组件库,毕竟做减法比做加法要容易些,如你不需要某个组件库可以根据这篇指引去移除某个组件库

2、我可以用在个人或公司的项目吗?

模版基于 MIT License,你可以根据自己的需求用到不同的项目里,如果对你有帮助点个 star 支持一下呗 🌟

3、我是一个新手,有什么好的学习建议吗?

过来人的经验就是熟读文档可以少走很多弯路,很多的人文档没读熟就开始动手,出了问题也不知道如何去解决,墙裂建议先把文档熟读

',6),n=[i];function _(d,s,h,c,l,p){return t(),a("div",null,n)}const m=e(o,[["render",_]]);export{f as __pageData,m as default}; diff --git a/assets/guide_other_index.md.CY3kK2YF.lean.js b/assets/guide_other_index.md.CY3kK2YF.lean.js new file mode 100644 index 0000000..76245c8 --- /dev/null +++ b/assets/guide_other_index.md.CY3kK2YF.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as r}from"./chunks/framework.DNhrqZu5.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/index.md","filePath":"guide/other/index.md","lastUpdated":1756280434000}'),o={name:"guide/other/index.md"},i=r("",6),n=[i];function _(d,s,h,c,l,p){return t(),a("div",null,n)}const m=e(o,[["render",_]]);export{f as __pageData,m as default}; diff --git a/assets/guide_start.md.634b98ba.js b/assets/guide_start.md.634b98ba.js deleted file mode 100644 index 7c5e8b2..0000000 --- a/assets/guide_start.md.634b98ba.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as r}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start.md","filePath":"guide/start.md","lastUpdated":1731315864000}'),n={name:"guide/start.md"},o=r('

快速上手

node 版本要求

推荐 16.17.0+以上的版本,毕竟 2022 年了,别掐着 12+的版本了,你也可以使用nvmnvm-windows在同一台电脑上管理多个 node 版本。

包管理器

尽量使用 yarn 或者 pnpm,本项目仅保证在 yarn 或 pnpm 下正确运行,npm 涉及到网络环境等各种情况的限制不做过多考虑。如要使用 npm 请不要切换淘宝镜像,会有各种奇怪的 bug。

启动项目

项目中包含 vue2 和 vue3 两套模版

如你使用的是 vue2-template,请参考vue2 项目启动

如你使用的是 vue3-template,请参考vue3 项目启动

',9),s=[o];function d(h,i,l,p,c,_){return a(),t("div",null,s)}const f=e(n,[["render",d]]);export{u as __pageData,f as default}; diff --git a/assets/guide_start.md.634b98ba.lean.js b/assets/guide_start.md.634b98ba.lean.js deleted file mode 100644 index 7e19a90..0000000 --- a/assets/guide_start.md.634b98ba.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as a,c as t,R as r}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start.md","filePath":"guide/start.md","lastUpdated":1731315864000}'),n={name:"guide/start.md"},o=r("",9),s=[o];function d(h,i,l,p,c,_){return a(),t("div",null,s)}const f=e(n,[["render",d]]);export{u as __pageData,f as default}; diff --git a/assets/guide_start.md.DHBrOjyQ.js b/assets/guide_start.md.DHBrOjyQ.js new file mode 100644 index 0000000..9e7c327 --- /dev/null +++ b/assets/guide_start.md.DHBrOjyQ.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as r}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start.md","filePath":"guide/start.md","lastUpdated":1756280434000}'),n={name:"guide/start.md"},o=r('

快速上手

node 版本要求

推荐 20.19.0+以上的版本,毕竟 2025 年了,别掐着 16+的版本了,你也可以使用nvmnvm-windows在同一台电脑上管理多个 node 版本。

包管理器

尽量使用 yarn 或者 pnpm,本项目仅保证在 yarn 或 pnpm 下正确运行,npm 涉及到网络环境等各种情况的限制不做过多考虑。

启动项目

项目中包含 vue2 和 vue3 两套模版

如你使用的是 vue2-template,请参考vue2 项目启动

如你使用的是 vue3-template,请参考vue3 项目启动

',9),s=[o];function d(h,i,l,p,c,_){return t(),a("div",null,s)}const f=e(n,[["render",d]]);export{u as __pageData,f as default}; diff --git a/assets/guide_start.md.DHBrOjyQ.lean.js b/assets/guide_start.md.DHBrOjyQ.lean.js new file mode 100644 index 0000000..33a2de5 --- /dev/null +++ b/assets/guide_start.md.DHBrOjyQ.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,aj as r}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"快速上手","description":"","frontmatter":{},"headers":[],"relativePath":"guide/start.md","filePath":"guide/start.md","lastUpdated":1756280434000}'),n={name:"guide/start.md"},o=r("",9),s=[o];function d(h,i,l,p,c,_){return t(),a("div",null,s)}const f=e(n,[["render",d]]);export{u as __pageData,f as default}; diff --git a/assets/guide_vue2_alias.md.Bpsu5tkg.js b/assets/guide_vue2_alias.md.Bpsu5tkg.js new file mode 100644 index 0000000..9bd55cf --- /dev/null +++ b/assets/guide_vue2_alias.md.Bpsu5tkg.js @@ -0,0 +1,15 @@ +import{_ as s,c as i,o as a,aj as h}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"配置 alias 别名","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/alias.md","filePath":"guide/vue2/alias.md","lastUpdated":1756280434000}'),n={name:"guide/vue2/alias.md"},t=h(`

配置 alias 别名

javascript
const path = require("path");
+const resolve = (dir) => path.join(__dirname, dir);
+const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+
+module.exports = {
+  chainWebpack: (config) => {
+    // 添加别名
+    config.resolve.alias
+      .set("@", resolve("src"))
+      .set("assets", resolve("src/assets"))
+      .set("api", resolve("src/api"))
+      .set("views", resolve("src/views"))
+      .set("components", resolve("src/components"));
+  },
+};
`,2),k=[t];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default}; diff --git a/assets/guide_vue2_alias.md.Bpsu5tkg.lean.js b/assets/guide_vue2_alias.md.Bpsu5tkg.lean.js new file mode 100644 index 0000000..f5e820a --- /dev/null +++ b/assets/guide_vue2_alias.md.Bpsu5tkg.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as h}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"配置 alias 别名","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/alias.md","filePath":"guide/vue2/alias.md","lastUpdated":1756280434000}'),n={name:"guide/vue2/alias.md"},t=h("",2),k=[t];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(n,[["render",l]]);export{y as __pageData,o as default}; diff --git a/assets/guide_vue2_alias.md.c0d9e31c.js b/assets/guide_vue2_alias.md.c0d9e31c.js deleted file mode 100644 index 7bb272f..0000000 --- a/assets/guide_vue2_alias.md.c0d9e31c.js +++ /dev/null @@ -1,15 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"配置 alias 别名","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/alias.md","filePath":"guide/vue2/alias.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/alias.md"},p=o(`

配置 alias 别名

javascript
const path = require("path");
-const resolve = (dir) => path.join(__dirname, dir);
-const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
-
-module.exports = {
-  chainWebpack: (config) => {
-    // 添加别名
-    config.resolve.alias
-      .set("@", resolve("src"))
-      .set("assets", resolve("src/assets"))
-      .set("api", resolve("src/api"))
-      .set("views", resolve("src/views"))
-      .set("components", resolve("src/components"));
-  },
-};
`,2),e=[p];function t(c,r,F,D,y,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_alias.md.c0d9e31c.lean.js b/assets/guide_vue2_alias.md.c0d9e31c.lean.js deleted file mode 100644 index b9dd079..0000000 --- a/assets/guide_vue2_alias.md.c0d9e31c.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"配置 alias 别名","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/alias.md","filePath":"guide/vue2/alias.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/alias.md"},p=o("",2),e=[p];function t(c,r,F,D,y,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_axios.md.DaUELcSq.js b/assets/guide_vue2_axios.md.DaUELcSq.js new file mode 100644 index 0000000..6ffbd70 --- /dev/null +++ b/assets/guide_vue2_axios.md.DaUELcSq.js @@ -0,0 +1,76 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/axios.md","filePath":"guide/vue2/axios.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/axios.md"},k=n(`

Axios 封装及接口管理

utils/request.js 封装 axios ,开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
+import store from "@/store";
+import { Toast } from "vant";
+// 根据环境不同引入不同api地址
+import { baseApi } from "@/config";
+// create an axios instance
+const service = axios.create({
+  baseURL: baseApi, // url = base api url + request url
+  withCredentials: true, // send cookies when cross-domain requests
+  timeout: 5000, // request timeout
+});
+
+// request 拦截器 request interceptor
+service.interceptors.request.use(
+  (config) => {
+    // 不传递默认开启loading
+    if (!config.hideloading) {
+      // loading
+      Toast.loading({
+        forbidClick: true,
+      });
+    }
+    if (store.getters.token) {
+      config.headers["X-Token"] = "";
+    }
+    return config;
+  },
+  (error) => {
+    // do something with request error
+    console.log(error); // for debug
+    return Promise.reject(error);
+  }
+);
+// respone拦截器
+service.interceptors.response.use(
+  (response) => {
+    Toast.clear();
+    const res = response.data;
+    if (res.status && res.status !== 200) {
+      // 登录超时,重新登录
+      if (res.status === 401) {
+        store.dispatch("FedLogOut").then(() => {
+          location.reload();
+        });
+      }
+      return Promise.reject(res || "error");
+    } else {
+      return Promise.resolve(res);
+    }
+  },
+  (error) => {
+    Toast.clear();
+    console.log("err" + error); // for debug
+    return Promise.reject(error);
+  }
+);
+export default service;

接口管理

src/api 文件夹下统一管理接口

  • 你可以建立多个模块对接接口, 比如 home.js 里是首页的接口这里讲解 user.js
  • url 接口地址,请求的时候会拼接上 config 下的 baseApi
  • method 请求方法
  • data 请求参数 qs.stringify(params) 是对数据系列化操作
  • hideloading 默认 false,设置为 true 后,不显示 loading ui 交互中有些接口不需要让用户感知
javascript
import qs from "qs";
+// axios
+import request from "@/utils/request";
+//user api
+
+// 用户信息
+export function getUserInfo(params) {
+  return request({
+    url: "/user/userinfo",
+    method: "post",
+    data: qs.stringify(params),
+    hideloading: true, // 隐藏 loading 组件
+  });
+}

如何调用

javascript
// 请求接口
+import { getUserInfo } from "@/api/user.js";
+
+const params = { user: "sunnie" };
+getUserInfo(params)
+  .then(() => {})
+  .catch(() => {});
`,10),l=[k];function p(t,e,E,r,d,g){return a(),i("div",null,l)}const c=s(h,[["render",p]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue2_axios.md.DaUELcSq.lean.js b/assets/guide_vue2_axios.md.DaUELcSq.lean.js new file mode 100644 index 0000000..cfafd6a --- /dev/null +++ b/assets/guide_vue2_axios.md.DaUELcSq.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/axios.md","filePath":"guide/vue2/axios.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/axios.md"},k=n("",10),l=[k];function p(t,e,E,r,d,g){return a(),i("div",null,l)}const c=s(h,[["render",p]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue2_axios.md.f273628e.js b/assets/guide_vue2_axios.md.f273628e.js deleted file mode 100644 index 64d7229..0000000 --- a/assets/guide_vue2_axios.md.f273628e.js +++ /dev/null @@ -1,76 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"Axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/axios.md","filePath":"guide/vue2/axios.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/axios.md"},p=l(`

Axios 封装及接口管理

utils/request.js 封装 axios ,开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
-import store from "@/store";
-import { Toast } from "vant";
-// 根据环境不同引入不同api地址
-import { baseApi } from "@/config";
-// create an axios instance
-const service = axios.create({
-  baseURL: baseApi, // url = base api url + request url
-  withCredentials: true, // send cookies when cross-domain requests
-  timeout: 5000, // request timeout
-});
-
-// request 拦截器 request interceptor
-service.interceptors.request.use(
-  (config) => {
-    // 不传递默认开启loading
-    if (!config.hideloading) {
-      // loading
-      Toast.loading({
-        forbidClick: true,
-      });
-    }
-    if (store.getters.token) {
-      config.headers["X-Token"] = "";
-    }
-    return config;
-  },
-  (error) => {
-    // do something with request error
-    console.log(error); // for debug
-    return Promise.reject(error);
-  }
-);
-// respone拦截器
-service.interceptors.response.use(
-  (response) => {
-    Toast.clear();
-    const res = response.data;
-    if (res.status && res.status !== 200) {
-      // 登录超时,重新登录
-      if (res.status === 401) {
-        store.dispatch("FedLogOut").then(() => {
-          location.reload();
-        });
-      }
-      return Promise.reject(res || "error");
-    } else {
-      return Promise.resolve(res);
-    }
-  },
-  (error) => {
-    Toast.clear();
-    console.log("err" + error); // for debug
-    return Promise.reject(error);
-  }
-);
-export default service;

接口管理

src/api 文件夹下统一管理接口

  • 你可以建立多个模块对接接口, 比如 home.js 里是首页的接口这里讲解 user.js
  • url 接口地址,请求的时候会拼接上 config 下的 baseApi
  • method 请求方法
  • data 请求参数 qs.stringify(params) 是对数据系列化操作
  • hideloading 默认 false,设置为 true 后,不显示 loading ui 交互中有些接口不需要让用户感知
javascript
import qs from "qs";
-// axios
-import request from "@/utils/request";
-//user api
-
-// 用户信息
-export function getUserInfo(params) {
-  return request({
-    url: "/user/userinfo",
-    method: "post",
-    data: qs.stringify(params),
-    hideloading: true, // 隐藏 loading 组件
-  });
-}

如何调用

javascript
// 请求接口
-import { getUserInfo } from "@/api/user.js";
-
-const params = { user: "sunnie" };
-getUserInfo(params)
-  .then(() => {})
-  .catch(() => {});
`,10),e=[p];function t(c,r,F,y,D,i){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default}; diff --git a/assets/guide_vue2_axios.md.f273628e.lean.js b/assets/guide_vue2_axios.md.f273628e.lean.js deleted file mode 100644 index 660092c..0000000 --- a/assets/guide_vue2_axios.md.f273628e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"Axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/axios.md","filePath":"guide/vue2/axios.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/axios.md"},p=l("",10),e=[p];function t(c,r,F,y,D,i){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default}; diff --git a/assets/guide_vue2_base.md.BDU01QnP.js b/assets/guide_vue2_base.md.BDU01QnP.js new file mode 100644 index 0000000..7fa2cf8 --- /dev/null +++ b/assets/guide_vue2_base.md.BDU01QnP.js @@ -0,0 +1,47 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"Webpack 4 vue.config.js 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/base.md","filePath":"guide/vue2/base.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/base.md"},t=n(`

Webpack 4 vue.config.js 基础配置

如果你的 Vue Router 模式是 hash

javascript
publicPath: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
publicPath: '/app/',

配置如下

javascript
import { createVitePlugins } from "./config/vite/plugins";
+import { resolve } from "path";
+import { ConfigEnv, UserConfigExport } from "vite";
+
+const pathResolve = (dir: string) => {
+  return resolve(process.cwd(), ".", dir);
+};
+
+// https://vitejs.dev/config/
+export default function ({ command }: ConfigEnv): UserConfigExport {
+  const isProduction = command === "build";
+  const root = process.cwd();
+  return {
+    root,
+    resolve: {
+      alias: [
+        {
+          find: "vue-i18n",
+          replacement: "vue-i18n/dist/vue-i18n.cjs.js",
+        },
+        // /@/xxxx => src/xxxx
+        {
+          find: /\\/@\\//,
+          replacement: pathResolve("src") + "/",
+        },
+        // /#/xxxx => types/xxxx
+        {
+          find: /\\/#\\//,
+          replacement: pathResolve("types") + "/",
+        },
+      ],
+    },
+    server: {
+      host: true,
+      hmr: true,
+    },
+    plugins: createVitePlugins(isProduction),
+    css: {
+      preprocessorOptions: {
+        scss: {
+          // 配置 nutui 全局 scss 变量
+          additionalData: \`@import "@nutui/nutui/dist/styles/variables.scss";@import '/@/styles/mixin.scss';\`,
+        },
+      },
+    },
+  };
+}
`,7),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{y as __pageData,c as default}; diff --git a/assets/guide_vue2_base.md.BDU01QnP.lean.js b/assets/guide_vue2_base.md.BDU01QnP.lean.js new file mode 100644 index 0000000..8f2c744 --- /dev/null +++ b/assets/guide_vue2_base.md.BDU01QnP.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"Webpack 4 vue.config.js 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/base.md","filePath":"guide/vue2/base.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/base.md"},t=n("",7),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{y as __pageData,c as default}; diff --git a/assets/guide_vue2_base.md.bd933227.js b/assets/guide_vue2_base.md.bd933227.js deleted file mode 100644 index 16866ea..0000000 --- a/assets/guide_vue2_base.md.bd933227.js +++ /dev/null @@ -1,47 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"Webpack 4 vue.config.js 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/base.md","filePath":"guide/vue2/base.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/base.md"},o=l(`

Webpack 4 vue.config.js 基础配置

如果你的 Vue Router 模式是 hash

javascript
publicPath: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
publicPath: '/app/',

配置如下

javascript
import { createVitePlugins } from "./config/vite/plugins";
-import { resolve } from "path";
-import { ConfigEnv, UserConfigExport } from "vite";
-
-const pathResolve = (dir: string) => {
-  return resolve(process.cwd(), ".", dir);
-};
-
-// https://vitejs.dev/config/
-export default function ({ command }: ConfigEnv): UserConfigExport {
-  const isProduction = command === "build";
-  const root = process.cwd();
-  return {
-    root,
-    resolve: {
-      alias: [
-        {
-          find: "vue-i18n",
-          replacement: "vue-i18n/dist/vue-i18n.cjs.js",
-        },
-        // /@/xxxx => src/xxxx
-        {
-          find: /\\/@\\//,
-          replacement: pathResolve("src") + "/",
-        },
-        // /#/xxxx => types/xxxx
-        {
-          find: /\\/#\\//,
-          replacement: pathResolve("types") + "/",
-        },
-      ],
-    },
-    server: {
-      host: true,
-      hmr: true,
-    },
-    plugins: createVitePlugins(isProduction),
-    css: {
-      preprocessorOptions: {
-        scss: {
-          // 配置 nutui 全局 scss 变量
-          additionalData: \`@import "@nutui/nutui/dist/styles/variables.scss";@import '/@/styles/mixin.scss';\`,
-        },
-      },
-    },
-  };
-}
`,7),e=[o];function t(c,r,F,D,y,i){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue2_base.md.bd933227.lean.js b/assets/guide_vue2_base.md.bd933227.lean.js deleted file mode 100644 index 498ded4..0000000 --- a/assets/guide_vue2_base.md.bd933227.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"Webpack 4 vue.config.js 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/base.md","filePath":"guide/vue2/base.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/base.md"},o=l("",7),e=[o];function t(c,r,F,D,y,i){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue2_bundle.md.73aeb293.js b/assets/guide_vue2_bundle.md.73aeb293.js deleted file mode 100644 index 818148c..0000000 --- a/assets/guide_vue2_bundle.md.73aeb293.js +++ /dev/null @@ -1,15 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"配置打包分析","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/bundle.md","filePath":"guide/vue2/bundle.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/bundle.md"},o=l(`

配置打包分析

javascript
const BundleAnalyzerPlugin =
-  require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
-
-module.exports = {
-  chainWebpack: (config) => {
-    // 打包分析
-    if (IS_PROD) {
-      config.plugin("webpack-report").use(BundleAnalyzerPlugin, [
-        {
-          analyzerMode: "static",
-        },
-      ]);
-    }
-  },
-};
bash
npm run build
`,3),e=[o];function t(c,r,y,D,F,i){return a(),n("div",null,e)}const d=s(p,[["render",t]]);export{C as __pageData,d as default}; diff --git a/assets/guide_vue2_bundle.md.73aeb293.lean.js b/assets/guide_vue2_bundle.md.73aeb293.lean.js deleted file mode 100644 index f1bbe5d..0000000 --- a/assets/guide_vue2_bundle.md.73aeb293.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"配置打包分析","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/bundle.md","filePath":"guide/vue2/bundle.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/bundle.md"},o=l("",3),e=[o];function t(c,r,y,D,F,i){return a(),n("div",null,e)}const d=s(p,[["render",t]]);export{C as __pageData,d as default}; diff --git a/assets/guide_vue2_bundle.md.CNUozxFc.js b/assets/guide_vue2_bundle.md.CNUozxFc.js new file mode 100644 index 0000000..7dc400e --- /dev/null +++ b/assets/guide_vue2_bundle.md.CNUozxFc.js @@ -0,0 +1,15 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"配置打包分析","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/bundle.md","filePath":"guide/vue2/bundle.md","lastUpdated":1756280434000}'),l={name:"guide/vue2/bundle.md"},t=n(`

配置打包分析

javascript
const BundleAnalyzerPlugin =
+  require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
+
+module.exports = {
+  chainWebpack: (config) => {
+    // 打包分析
+    if (IS_PROD) {
+      config.plugin("webpack-report").use(BundleAnalyzerPlugin, [
+        {
+          analyzerMode: "static",
+        },
+      ]);
+    }
+  },
+};
bash
npm run build
`,3),p=[t];function h(e,k,d,E,r,g){return a(),i("div",null,p)}const y=s(l,[["render",h]]);export{o as __pageData,y as default}; diff --git a/assets/guide_vue2_bundle.md.CNUozxFc.lean.js b/assets/guide_vue2_bundle.md.CNUozxFc.lean.js new file mode 100644 index 0000000..0e65610 --- /dev/null +++ b/assets/guide_vue2_bundle.md.CNUozxFc.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"配置打包分析","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/bundle.md","filePath":"guide/vue2/bundle.md","lastUpdated":1756280434000}'),l={name:"guide/vue2/bundle.md"},t=n("",3),p=[t];function h(e,k,d,E,r,g){return a(),i("div",null,p)}const y=s(l,[["render",h]]);export{o as __pageData,y as default}; diff --git a/assets/guide_vue2_chunks.md.93504c3d.js b/assets/guide_vue2_chunks.md.93504c3d.js deleted file mode 100644 index f46bdee..0000000 --- a/assets/guide_vue2_chunks.md.93504c3d.js +++ /dev/null @@ -1,41 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"splitChunks 单独打包第三方模块","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/chunks.md","filePath":"guide/vue2/chunks.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/chunks.md"},o=l(`

splitChunks 单独打包第三方模块

javascript
module.exports = {
-  chainWebpack: (config) => {
-    config.when(IS_PROD, (config) => {
-      config
-        .plugin("ScriptExtHtmlWebpackPlugin")
-        .after("html")
-        .use("script-ext-html-webpack-plugin", [
-          {
-            // 将 runtime 作为内联引入不单独存在
-            inline: /runtime\\..*\\.js$/,
-          },
-        ])
-        .end();
-      config.optimization.splitChunks({
-        chunks: "all",
-        cacheGroups: {
-          // cacheGroups 下可以可以配置多个组,每个组根据test设置条件,符合test条件的模块
-          commons: {
-            name: "chunk-commons",
-            test: resolve("src/components"),
-            minChunks: 3, //  被至少用三次以上打包分离
-            priority: 5, // 优先级
-            reuseExistingChunk: true, // 表示是否使用已有的 chunk,如果为 true 则表示如果当前的 chunk 包含的模块已经被抽取出去了,那么将不会重新生成新的。
-          },
-          node_vendors: {
-            name: "chunk-libs",
-            chunks: "initial", // 只打包初始时依赖的第三方
-            test: /[\\\\/]node_modules[\\\\/]/,
-            priority: 10,
-          },
-          vantUI: {
-            name: "chunk-vantUI", // 单独将 vantUI 拆包
-            priority: 20, // 数字大权重到,满足多个 cacheGroups 的条件时候分到权重高的
-            test: /[\\\\/]node_modules[\\\\/]_?vant(.*)/,
-          },
-        },
-      });
-      config.optimization.runtimeChunk("single");
-    });
-  },
-};
`,2),t=[o];function e(c,F,r,y,D,i){return n(),a("div",null,t)}const A=s(p,[["render",e]]);export{u as __pageData,A as default}; diff --git a/assets/guide_vue2_chunks.md.93504c3d.lean.js b/assets/guide_vue2_chunks.md.93504c3d.lean.js deleted file mode 100644 index 728c7ab..0000000 --- a/assets/guide_vue2_chunks.md.93504c3d.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"splitChunks 单独打包第三方模块","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/chunks.md","filePath":"guide/vue2/chunks.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/chunks.md"},o=l("",2),t=[o];function e(c,F,r,y,D,i){return n(),a("div",null,t)}const A=s(p,[["render",e]]);export{u as __pageData,A as default}; diff --git a/assets/guide_vue2_chunks.md.DuIfKUrd.js b/assets/guide_vue2_chunks.md.DuIfKUrd.js new file mode 100644 index 0000000..4371121 --- /dev/null +++ b/assets/guide_vue2_chunks.md.DuIfKUrd.js @@ -0,0 +1,41 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"splitChunks 单独打包第三方模块","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/chunks.md","filePath":"guide/vue2/chunks.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/chunks.md"},k=n(`

splitChunks 单独打包第三方模块

javascript
module.exports = {
+  chainWebpack: (config) => {
+    config.when(IS_PROD, (config) => {
+      config
+        .plugin("ScriptExtHtmlWebpackPlugin")
+        .after("html")
+        .use("script-ext-html-webpack-plugin", [
+          {
+            // 将 runtime 作为内联引入不单独存在
+            inline: /runtime\\..*\\.js$/,
+          },
+        ])
+        .end();
+      config.optimization.splitChunks({
+        chunks: "all",
+        cacheGroups: {
+          // cacheGroups 下可以可以配置多个组,每个组根据test设置条件,符合test条件的模块
+          commons: {
+            name: "chunk-commons",
+            test: resolve("src/components"),
+            minChunks: 3, //  被至少用三次以上打包分离
+            priority: 5, // 优先级
+            reuseExistingChunk: true, // 表示是否使用已有的 chunk,如果为 true 则表示如果当前的 chunk 包含的模块已经被抽取出去了,那么将不会重新生成新的。
+          },
+          node_vendors: {
+            name: "chunk-libs",
+            chunks: "initial", // 只打包初始时依赖的第三方
+            test: /[\\\\/]node_modules[\\\\/]/,
+            priority: 10,
+          },
+          vantUI: {
+            name: "chunk-vantUI", // 单独将 vantUI 拆包
+            priority: 20, // 数字大权重到,满足多个 cacheGroups 的条件时候分到权重高的
+            test: /[\\\\/]node_modules[\\\\/]_?vant(.*)/,
+          },
+        },
+      });
+      config.optimization.runtimeChunk("single");
+    });
+  },
+};
`,2),t=[k];function l(p,E,e,r,d,g){return a(),i("div",null,t)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/assets/guide_vue2_chunks.md.DuIfKUrd.lean.js b/assets/guide_vue2_chunks.md.DuIfKUrd.lean.js new file mode 100644 index 0000000..b80b4ef --- /dev/null +++ b/assets/guide_vue2_chunks.md.DuIfKUrd.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"splitChunks 单独打包第三方模块","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/chunks.md","filePath":"guide/vue2/chunks.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/chunks.md"},k=n("",2),t=[k];function l(p,E,e,r,d,g){return a(),i("div",null,t)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/assets/guide_vue2_console.md.68673d37.js b/assets/guide_vue2_console.md.68673d37.js deleted file mode 100644 index ebdd7e3..0000000 --- a/assets/guide_vue2_console.md.68673d37.js +++ /dev/null @@ -1,22 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"去掉 console.log","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/console.md","filePath":"guide/vue2/console.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/console.md"},p=l(`

去掉 console.log

保留了测试环境和本地环境的 console.log

bash
npm i -D babel-plugin-transform-remove-console

在 babel.config.js 中配置

javascript
// 获取 VUE_APP_ENV 非 NODE_ENV,测试环境依然 console
-const IS_PROD = ["production", "prod"].includes(process.env.VUE_APP_ENV);
-const plugins = [
-  [
-    "import",
-    {
-      libraryName: "vant",
-      libraryDirectory: "es",
-      style: true,
-    },
-    "vant",
-  ],
-];
-// 去除 console.log
-if (IS_PROD) {
-  plugins.push("transform-remove-console");
-}
-
-module.exports = {
-  presets: [["@vue/cli-plugin-babel/preset", { useBuiltIns: "entry" }]],
-  plugins,
-};
`,5),e=[p];function t(c,r,D,y,F,C){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_console.md.68673d37.lean.js b/assets/guide_vue2_console.md.68673d37.lean.js deleted file mode 100644 index 95264cf..0000000 --- a/assets/guide_vue2_console.md.68673d37.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"去掉 console.log","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/console.md","filePath":"guide/vue2/console.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/console.md"},p=l("",5),e=[p];function t(c,r,D,y,F,C){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_console.md.Gs0-ejrb.js b/assets/guide_vue2_console.md.Gs0-ejrb.js new file mode 100644 index 0000000..b04c897 --- /dev/null +++ b/assets/guide_vue2_console.md.Gs0-ejrb.js @@ -0,0 +1,22 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"去掉 console.log","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/console.md","filePath":"guide/vue2/console.md","lastUpdated":1756280434000}'),l={name:"guide/vue2/console.md"},t=n(`

去掉 console.log

保留了测试环境和本地环境的 console.log

bash
npm i -D babel-plugin-transform-remove-console

在 babel.config.js 中配置

javascript
// 获取 VUE_APP_ENV 非 NODE_ENV,测试环境依然 console
+const IS_PROD = ["production", "prod"].includes(process.env.VUE_APP_ENV);
+const plugins = [
+  [
+    "import",
+    {
+      libraryName: "vant",
+      libraryDirectory: "es",
+      style: true,
+    },
+    "vant",
+  ],
+];
+// 去除 console.log
+if (IS_PROD) {
+  plugins.push("transform-remove-console");
+}
+
+module.exports = {
+  presets: [["@vue/cli-plugin-babel/preset", { useBuiltIns: "entry" }]],
+  plugins,
+};
`,5),p=[t];function h(e,k,E,r,o,d){return a(),i("div",null,p)}const y=s(l,[["render",h]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue2_console.md.Gs0-ejrb.lean.js b/assets/guide_vue2_console.md.Gs0-ejrb.lean.js new file mode 100644 index 0000000..eb2cae1 --- /dev/null +++ b/assets/guide_vue2_console.md.Gs0-ejrb.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"去掉 console.log","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/console.md","filePath":"guide/vue2/console.md","lastUpdated":1756280434000}'),l={name:"guide/vue2/console.md"},t=n("",5),p=[t];function h(e,k,E,r,o,d){return a(),i("div",null,p)}const y=s(l,[["render",h]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue2_env.md.71078dec.js b/assets/guide_vue2_env.md.71078dec.js deleted file mode 100644 index b089454..0000000 --- a/assets/guide_vue2_env.md.71078dec.js +++ /dev/null @@ -1,22 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"配置多环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/env.md","filePath":"guide/vue2/env.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/env.md"},p=o(`

配置多环境变量

package.json 里的 scripts 配置 serve stage build,通过 --mode xxx 来执行不同环境

  • 通过 npm run serve 启动本地 , 执行 development
  • 通过 npm run stage 打包测试 , 执行 staging
  • 通过 npm run build 打包正式 , 执行 production
javascript
"scripts": {
-  "serve": "vue-cli-service serve --open",
-  "stage": "vue-cli-service build --mode staging",
-  "build": "vue-cli-service build",
-}
配置介绍

  以 VUE_APP_ 开头的变量,在代码中可以通过 process.env.VUE_APP_ 访问。   比如:VUE_APP_ENV = 'development' 通过 process.env.VUE_APP_ENV 访问。   当然,除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENVBASE_URL

在项目根目录中新建.env.*

  • .env.development 本地开发环境配置
bash
NODE_ENV='development'
-# must start with VUE_APP_
-VUE_APP_ENV = 'development'
  • .env.staging 测试环境配置
bash
NODE_ENV='production'
-# must start with VUE_APP_
-VUE_APP_ENV = 'staging'
  • .env.production 正式环境配置
bash
NODE_ENV='production'
-# must start with VUE_APP_
-VUE_APP_ENV = 'production'

这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development staging production 变量我们统一在 src/config/env.*.js 里进行管理。

这里有个问题,既然这里有了根据不同环境设置变量的文件,为什么还要去 config 下新建三个对应的文件呢? 修改起来方便,不需 要重启项目,符合开发习惯。

config/index.js

javascript
// 根据环境引入不同配置 process.env.NODE_ENV
-const config = require("./env." + process.env.VUE_APP_ENV);
-module.exports = config;

配置对应环境的变量,拿本地环境文件 env.development.js 举例,用户可以根据需求修改

javascript
// 本地环境配置
-module.exports = {
-  title: "vue-h5-template",
-  baseUrl: "http://localhost:9018", // 项目地址
-  baseApi: "https://test.xxx.com/api", // 本地api请求地址
-  APPID: "xxx",
-  APPSECRET: "xxx",
-};

根据环境不同,变量就会不同了

javascript
// 根据环境不同引入不同baseApi地址
-import { baseApi } from "@/config";
-console.log(baseApi);
`,21),e=[p];function t(c,r,D,y,i,F){return a(),n("div",null,e)}const A=s(l,[["render",t]]);export{C as __pageData,A as default}; diff --git a/assets/guide_vue2_env.md.71078dec.lean.js b/assets/guide_vue2_env.md.71078dec.lean.js deleted file mode 100644 index 2f1ff42..0000000 --- a/assets/guide_vue2_env.md.71078dec.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"配置多环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/env.md","filePath":"guide/vue2/env.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/env.md"},p=o("",21),e=[p];function t(c,r,D,y,i,F){return a(),n("div",null,e)}const A=s(l,[["render",t]]);export{C as __pageData,A as default}; diff --git a/assets/guide_vue2_env.md.RerSN2s4.js b/assets/guide_vue2_env.md.RerSN2s4.js new file mode 100644 index 0000000..dfe9ac0 --- /dev/null +++ b/assets/guide_vue2_env.md.RerSN2s4.js @@ -0,0 +1,22 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"配置多环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/env.md","filePath":"guide/vue2/env.md","lastUpdated":1756280434000}'),e={name:"guide/vue2/env.md"},t=n(`

配置多环境变量

package.json 里的 scripts 配置 serve stage build,通过 --mode xxx 来执行不同环境

  • 通过 npm run serve 启动本地 , 执行 development
  • 通过 npm run stage 打包测试 , 执行 staging
  • 通过 npm run build 打包正式 , 执行 production
javascript
"scripts": {
+  "serve": "vue-cli-service serve --open",
+  "stage": "vue-cli-service build --mode staging",
+  "build": "vue-cli-service build",
+}
配置介绍

  以 VUE_APP_ 开头的变量,在代码中可以通过 process.env.VUE_APP_ 访问。   比如:VUE_APP_ENV = 'development' 通过 process.env.VUE_APP_ENV 访问。   当然,除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENVBASE_URL

在项目根目录中新建.env.*

  • .env.development 本地开发环境配置
bash
NODE_ENV='development'
+# must start with VUE_APP_
+VUE_APP_ENV = 'development'
  • .env.staging 测试环境配置
bash
NODE_ENV='production'
+# must start with VUE_APP_
+VUE_APP_ENV = 'staging'
  • .env.production 正式环境配置
bash
 NODE_ENV='production'
+# must start with VUE_APP_
+VUE_APP_ENV = 'production'

这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development staging production 变量我们统一在 src/config/env.*.js 里进行管理。

这里有个问题,既然这里有了根据不同环境设置变量的文件,为什么还要去 config 下新建三个对应的文件呢? 修改起来方便,不需 要重启项目,符合开发习惯。

config/index.js

javascript
// 根据环境引入不同配置 process.env.NODE_ENV
+const config = require("./env." + process.env.VUE_APP_ENV);
+module.exports = config;

配置对应环境的变量,拿本地环境文件 env.development.js 举例,用户可以根据需求修改

javascript
// 本地环境配置
+module.exports = {
+  title: "vue-h5-template",
+  baseUrl: "http://localhost:9018", // 项目地址
+  baseApi: "https://test.xxx.com/api", // 本地api请求地址
+  APPID: "xxx",
+  APPSECRET: "xxx",
+};

根据环境不同,变量就会不同了

javascript
// 根据环境不同引入不同baseApi地址
+import { baseApi } from "@/config";
+console.log(baseApi);
`,21),p=[t];function l(h,k,d,o,c,E){return a(),i("div",null,p)}const u=s(e,[["render",l]]);export{g as __pageData,u as default}; diff --git a/assets/guide_vue2_env.md.RerSN2s4.lean.js b/assets/guide_vue2_env.md.RerSN2s4.lean.js new file mode 100644 index 0000000..baf2388 --- /dev/null +++ b/assets/guide_vue2_env.md.RerSN2s4.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"配置多环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/env.md","filePath":"guide/vue2/env.md","lastUpdated":1756280434000}'),e={name:"guide/vue2/env.md"},t=n("",21),p=[t];function l(h,k,d,o,c,E){return a(),i("div",null,p)}const u=s(e,[["render",l]]);export{g as __pageData,u as default}; diff --git a/assets/guide_vue2_externals.md.6744fb41.js b/assets/guide_vue2_externals.md.6744fb41.js deleted file mode 100644 index 7661c91..0000000 --- a/assets/guide_vue2_externals.md.6744fb41.js +++ /dev/null @@ -1,64 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"配置 externals 引入 cdn 资源","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/externals.md","filePath":"guide/vue2/externals.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/externals.md"},o=l(`

配置 externals 引入 cdn 资源

这个版本 CDN 不再引入,我测试了一下使用引入 CDN 和不使用,不使用会比使用时间少。网上不少文章测试 CDN 速度块,这个开发者可 以实际测试一下。

另外项目中使用的是公共 CDN 不稳定,域名解析也是需要时间的(如果你要使用请尽量使用同一个域名)

因为页面每次遇到<script>标签都会停下来解析执行,所以应该尽可能减少<script>标签的数量 HTTP请求存在一定的开销,100K 的文件比 5 个 20K 的文件下载的更快,所以较少脚本数量也是很有必要的

暂时还没有研究放到自己的 cdn 服务器上。

javascript
const defaultSettings = require("./src/config/index.js");
-const name = defaultSettings.title || "vue mobile template";
-const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
-
-// externals
-const externals = {
-  vue: "Vue",
-  "vue-router": "VueRouter",
-  vuex: "Vuex",
-  vant: "vant",
-  axios: "axios",
-};
-// CDN外链,会插入到index.html中
-const cdn = {
-  // 开发环境
-  dev: {
-    css: [],
-    js: [],
-  },
-  // 生产环境
-  build: {
-    css: ["https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.css"],
-    js: [
-      "https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js",
-      "https://cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js",
-      "https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js",
-      "https://cdn.jsdelivr.net/npm/vuex@3.1.2/dist/vuex.min.js",
-      "https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.min.js",
-    ],
-  },
-};
-module.exports = {
-  configureWebpack: (config) => {
-    config.name = name;
-    // 为生产环境修改配置...
-    if (IS_PROD) {
-      // externals
-      config.externals = externals;
-    }
-  },
-  chainWebpack: (config) => {
-    /**
-     * 添加CDN参数到htmlWebpackPlugin配置中
-     */
-    config.plugin("html").tap((args) => {
-      if (IS_PROD) {
-        args[0].cdn = cdn.build;
-      } else {
-        args[0].cdn = cdn.dev;
-      }
-      return args;
-    });
-  },
-};

在 public/index.html 中添加

javascript
<!-- 使用CDN的CSS文件 -->
-    <% for (var i in
-      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
-      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
-      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
-    <% } %>
-     <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
-    <% for (var i in
-      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
-      <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
-    <% } %>
`,8),t=[o];function e(c,D,r,F,y,C){return n(),a("div",null,t)}const u=s(p,[["render",e]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_externals.md.6744fb41.lean.js b/assets/guide_vue2_externals.md.6744fb41.lean.js deleted file mode 100644 index 180a910..0000000 --- a/assets/guide_vue2_externals.md.6744fb41.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"配置 externals 引入 cdn 资源","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/externals.md","filePath":"guide/vue2/externals.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/externals.md"},o=l("",8),t=[o];function e(c,D,r,F,y,C){return n(),a("div",null,t)}const u=s(p,[["render",e]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_externals.md.CU1FcDNo.js b/assets/guide_vue2_externals.md.CU1FcDNo.js new file mode 100644 index 0000000..47b5410 --- /dev/null +++ b/assets/guide_vue2_externals.md.CU1FcDNo.js @@ -0,0 +1,64 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"配置 externals 引入 cdn 资源","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/externals.md","filePath":"guide/vue2/externals.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/externals.md"},l=n(`

配置 externals 引入 cdn 资源

这个版本 CDN 不再引入,我测试了一下使用引入 CDN 和不使用,不使用会比使用时间少。网上不少文章测试 CDN 速度块,这个开发者可 以实际测试一下。

另外项目中使用的是公共 CDN 不稳定,域名解析也是需要时间的(如果你要使用请尽量使用同一个域名)

因为页面每次遇到<script>标签都会停下来解析执行,所以应该尽可能减少<script>标签的数量 HTTP请求存在一定的开销,100K 的文件比 5 个 20K 的文件下载的更快,所以较少脚本数量也是很有必要的

暂时还没有研究放到自己的 cdn 服务器上。

javascript
const defaultSettings = require("./src/config/index.js");
+const name = defaultSettings.title || "vue mobile template";
+const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+
+// externals
+const externals = {
+  vue: "Vue",
+  "vue-router": "VueRouter",
+  vuex: "Vuex",
+  vant: "vant",
+  axios: "axios",
+};
+// CDN外链,会插入到index.html中
+const cdn = {
+  // 开发环境
+  dev: {
+    css: [],
+    js: [],
+  },
+  // 生产环境
+  build: {
+    css: ["https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.css"],
+    js: [
+      "https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js",
+      "https://cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js",
+      "https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js",
+      "https://cdn.jsdelivr.net/npm/vuex@3.1.2/dist/vuex.min.js",
+      "https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.min.js",
+    ],
+  },
+};
+module.exports = {
+  configureWebpack: (config) => {
+    config.name = name;
+    // 为生产环境修改配置...
+    if (IS_PROD) {
+      // externals
+      config.externals = externals;
+    }
+  },
+  chainWebpack: (config) => {
+    /**
+     * 添加CDN参数到htmlWebpackPlugin配置中
+     */
+    config.plugin("html").tap((args) => {
+      if (IS_PROD) {
+        args[0].cdn = cdn.build;
+      } else {
+        args[0].cdn = cdn.dev;
+      }
+      return args;
+    });
+  },
+};

在 public/index.html 中添加

javascript
    <!-- 使用CDN的CSS文件 -->
+    <% for (var i in
+      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
+      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
+      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
+    <% } %>
+     <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
+    <% for (var i in
+      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
+      <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
+    <% } %>
`,8),t=[l];function k(p,e,E,d,r,g){return a(),i("div",null,t)}const F=s(h,[["render",k]]);export{c as __pageData,F as default}; diff --git a/assets/guide_vue2_externals.md.CU1FcDNo.lean.js b/assets/guide_vue2_externals.md.CU1FcDNo.lean.js new file mode 100644 index 0000000..9d7421e --- /dev/null +++ b/assets/guide_vue2_externals.md.CU1FcDNo.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"配置 externals 引入 cdn 资源","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/externals.md","filePath":"guide/vue2/externals.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/externals.md"},l=n("",8),t=[l];function k(p,e,E,d,r,g){return a(),i("div",null,t)}const F=s(h,[["render",k]]);export{c as __pageData,F as default}; diff --git a/assets/guide_vue2_ie.md.EjrCACXt.js b/assets/guide_vue2_ie.md.EjrCACXt.js new file mode 100644 index 0000000..cc0fdc2 --- /dev/null +++ b/assets/guide_vue2_ie.md.EjrCACXt.js @@ -0,0 +1,11 @@ +import{_ as s,c as i,o as a,aj as e}from"./chunks/framework.DNhrqZu5.js";const E=JSON.parse('{"title":"添加 IE 兼容","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/ie.md","filePath":"guide/vue2/ie.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/ie.md"},n=e(`

添加 IE 兼容

之前的方式 会报 @babel/polyfill is deprecated. Please, use required parts of core-js and regenerator-runtime/runtime separately

@babel/polyfill 废弃,使用 core-jsregenerator-runtime

bash
npm i --save core-js regenerator-runtime

main.js 中添加

javascript
// 兼容 IE
+// https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
+import "core-js/stable";
+import "regenerator-runtime/runtime";

配置 babel.config.js

javascript
const plugins = [];
+
+module.exports = {
+  presets: [
+    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
+  ],
+  plugins,
+};
`,8),p=[n];function l(h,k,r,d,o,c){return a(),i("div",null,p)}const u=s(t,[["render",l]]);export{E as __pageData,u as default}; diff --git a/assets/guide_vue2_ie.md.EjrCACXt.lean.js b/assets/guide_vue2_ie.md.EjrCACXt.lean.js new file mode 100644 index 0000000..0d109f0 --- /dev/null +++ b/assets/guide_vue2_ie.md.EjrCACXt.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as e}from"./chunks/framework.DNhrqZu5.js";const E=JSON.parse('{"title":"添加 IE 兼容","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/ie.md","filePath":"guide/vue2/ie.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/ie.md"},n=e("",8),p=[n];function l(h,k,r,d,o,c){return a(),i("div",null,p)}const u=s(t,[["render",l]]);export{E as __pageData,u as default}; diff --git a/assets/guide_vue2_ie.md.f5d567e9.js b/assets/guide_vue2_ie.md.f5d567e9.js deleted file mode 100644 index b872ba0..0000000 --- a/assets/guide_vue2_ie.md.f5d567e9.js +++ /dev/null @@ -1,11 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"添加 IE 兼容","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/ie.md","filePath":"guide/vue2/ie.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/ie.md"},l=e(`

添加 IE 兼容

之前的方式 会报 @babel/polyfill is deprecated. Please, use required parts of core-js and regenerator-runtime/runtime separately

@babel/polyfill 废弃,使用 core-jsregenerator-runtime

bash
npm i --save core-js regenerator-runtime

main.js 中添加

javascript
// 兼容 IE
-// https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
-import "core-js/stable";
-import "regenerator-runtime/runtime";

配置 babel.config.js

javascript
const plugins = [];
-
-module.exports = {
-  presets: [
-    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
-  ],
-  plugins,
-};
`,8),p=[l];function t(c,r,i,D,y,C){return a(),n("div",null,p)}const u=s(o,[["render",t]]);export{d as __pageData,u as default}; diff --git a/assets/guide_vue2_ie.md.f5d567e9.lean.js b/assets/guide_vue2_ie.md.f5d567e9.lean.js deleted file mode 100644 index 52badc6..0000000 --- a/assets/guide_vue2_ie.md.f5d567e9.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"添加 IE 兼容","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/ie.md","filePath":"guide/vue2/ie.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/ie.md"},l=e("",8),p=[l];function t(c,r,i,D,y,C){return a(),n("div",null,p)}const u=s(o,[["render",t]]);export{d as __pageData,u as default}; diff --git a/assets/guide_vue2_lint.md.94bcc728.js b/assets/guide_vue2_lint.md.94bcc728.js deleted file mode 100644 index 383d2ef..0000000 --- a/assets/guide_vue2_lint.md.94bcc728.js +++ /dev/null @@ -1,149 +0,0 @@ -import{_ as s,o as n,c as a,R as o}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"Eslint + Pettier 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/lint.md","filePath":"guide/vue2/lint.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/lint.md"},p=o(`

Eslint + Pettier 统一开发规范

VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化,其他使用prettier,后面会专门写个如何使用配合使用这三个玩意儿

在文件 .prettierrc 里写 属于你的 pettier 规则

bash
{
-   "printWidth": 120,
-   "tabWidth": 2,
-   "singleQuote": true,
-   "trailingComma": "none",
-   "semi": false,
-   "wrap_line_length": 120,
-   "wrap_attributes": "auto",
-   "proseWrap": "always",
-   "arrowParens": "avoid",
-   "bracketSpacing": false,
-   "jsxBracketSameLine": true,
-   "useTabs": false,
-   "overrides": [{
-       "files": ".prettierrc",
-       "options": {
-           "parser": "json"
-       }
-   }]
-}

Vscode setting.json 设置

bash
{
-  // 将设置放入此文件中以覆盖默认设置
-  "files.autoSave": "off",
-  // 控制字体系列。
-  "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'",
-  "terminal.integrated.shell.windows": "C:\\\\Program Files\\\\Git\\\\bin\\\\bash.exe",
-  // 以像素为单位控制字号。
-  "editor.fontSize": 16,
-  // 控制选取范围是否有圆角
-  "editor.roundedSelection": false,
-  // 建议小组件的字号
-  "editor.suggestFontSize": 16,
-  // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。
-  "explorer.openEditors.visible": 0,
-  // 是否已启用自动刷新
-  "git.autorefresh": true,
-  // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。
-  "terminal.integrated.fontSize": 14,
-  // 控制终端游标是否闪烁。
-  "terminal.integrated.cursorBlinking": true,
-  // 一个制表符等于的空格数。该设置在 \`editor.detectIndentation\` 启用时根据文件内容进行重写。
-  // Tab Size
-  "editor.tabSize": 2,
-  // By default, common template. Do not modify it!!!!!
-  "editor.formatOnType": true,
-  "window.zoomLevel": 0,
-  "editor.detectIndentation": false,
-  "css.fileExtensions": ["css", "scss"],
-  "files.associations": {
-    "*.string": "html",
-    "*.vue": "vue",
-    "*.wxss": "css",
-    "*.wxml": "wxml",
-    "*.wxs": "javascript",
-    "*.cjson": "jsonc",
-    "*.js": "javascript"
-  },
-  // 为指定的语法定义配置文件或使用带有特定规则的配置文件。
-  "emmet.syntaxProfiles": {
-    "vue-html": "html",
-    "vue": "html"
-  },
-  "search.exclude": {
-    "**/node_modules": true,
-    "**/bower_components": true
-  },
-  //保存时eslint自动修复错误
-  "editor.formatOnSave": true,
-  // Enable per-language
-  //配置 ESLint 检查的文件类型
-  "editor.quickSuggestions": {
-    "strings": true
-  },
-  // 添加 vue 支持
-  // 这里是针对vue文件的格式化设置,vue的规则在这里生效
-  "vetur.format.options.tabSize": 2,
-  "vetur.format.options.useTabs": false,
-  "vetur.format.defaultFormatter.html": "js-beautify-html",
-  "vetur.format.defaultFormatter.css": "prettier",
-  "vetur.format.defaultFormatter.scss": "prettier",
-  "vetur.format.defaultFormatter.postcss": "prettier",
-  "vetur.format.defaultFormatter.less": "prettier",
-  "vetur.format.defaultFormatter.js": "vscode-typescript",
-  "vetur.format.defaultFormatter.sass": "sass-formatter",
-  "vetur.format.defaultFormatter.ts": "prettier",
-  "vetur.format.defaultFormatterOptions": {
-    "js-beautify-html": {
-      "wrap_attributes": "aligned-multiple", // 超过150折行
-      "wrap-line-length": 150
-    },
-    // #vue组件中html代码格式化样式
-    "prettier": {
-      "printWidth": 120,
-      "tabWidth": 2,
-      "singleQuote": false,
-      "trailingComma": "none",
-      "semi": false,
-      "wrap_line_length": 120,
-      "wrap_attributes": "aligned-multiple", // 超过150折行
-      "proseWrap": "always",
-      "arrowParens": "avoid",
-      "bracketSpacing": true,
-      "jsxBracketSameLine": true,
-      "useTabs": false,
-      "overrides": [
-        {
-          "files": ".prettierrc",
-          "options": {
-            "parser": "json"
-          }
-        }
-      ]
-    }
-  },
-  // Enable per-language
-  "[json]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "vetur.validation.template": false,
-  "html.format.enable": false,
-  "json.format.enable": false,
-  "javascript.format.enable": false,
-  "typescript.format.enable": false,
-  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
-  "[html]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[javascript]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[jsonc]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[vue]": {
-    "editor.defaultFormatter": "octref.vetur"
-  },
-  "emmet.includeLanguages": {
-    "wxml": "html"
-  },
-  "[typescriptreact]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  // 开启eslint自动修复js/ts功能
-  "editor.codeActionsOnSave": {
-    "source.fixAll.eslint": true
-  },
-  "minapp-vscode.disableAutoConfig": true,
-  "javascript.implicitProjectConfig.experimentalDecorators": true,
-  "editor.maxTokenizationLineLength": 200000
-}
`,6),t=[p];function e(c,r,C,y,A,F){return n(),a("div",null,t)}const i=s(l,[["render",e]]);export{u as __pageData,i as default}; diff --git a/assets/guide_vue2_lint.md.94bcc728.lean.js b/assets/guide_vue2_lint.md.94bcc728.lean.js deleted file mode 100644 index 02759bd..0000000 --- a/assets/guide_vue2_lint.md.94bcc728.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as o}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"Eslint + Pettier 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/lint.md","filePath":"guide/vue2/lint.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/lint.md"},p=o("",6),t=[p];function e(c,r,C,y,A,F){return n(),a("div",null,t)}const i=s(l,[["render",e]]);export{u as __pageData,i as default}; diff --git a/assets/guide_vue2_lint.md.CabJs37Q.js b/assets/guide_vue2_lint.md.CabJs37Q.js new file mode 100644 index 0000000..58537ea --- /dev/null +++ b/assets/guide_vue2_lint.md.CabJs37Q.js @@ -0,0 +1,149 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"Eslint + Pettier 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/lint.md","filePath":"guide/vue2/lint.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/lint.md"},h=n(`

Eslint + Pettier 统一开发规范

VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化,其他使用prettier,后面会专门写个如何使用配合使用这三个玩意儿

在文件 .prettierrc 里写 属于你的 pettier 规则

bash
{
+   "printWidth": 120,
+   "tabWidth": 2,
+   "singleQuote": true,
+   "trailingComma": "none",
+   "semi": false,
+   "wrap_line_length": 120,
+   "wrap_attributes": "auto",
+   "proseWrap": "always",
+   "arrowParens": "avoid",
+   "bracketSpacing": false,
+   "jsxBracketSameLine": true,
+   "useTabs": false,
+   "overrides": [{
+       "files": ".prettierrc",
+       "options": {
+           "parser": "json"
+       }
+   }]
+}

Vscode setting.json 设置

bash
    {
+  // 将设置放入此文件中以覆盖默认设置
+  "files.autoSave": "off",
+  // 控制字体系列。
+  "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'",
+  "terminal.integrated.shell.windows": "C:\\\\Program Files\\\\Git\\\\bin\\\\bash.exe",
+  // 以像素为单位控制字号。
+  "editor.fontSize": 16,
+  // 控制选取范围是否有圆角
+  "editor.roundedSelection": false,
+  // 建议小组件的字号
+  "editor.suggestFontSize": 16,
+  // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。
+  "explorer.openEditors.visible": 0,
+  // 是否已启用自动刷新
+  "git.autorefresh": true,
+  // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。
+  "terminal.integrated.fontSize": 14,
+  // 控制终端游标是否闪烁。
+  "terminal.integrated.cursorBlinking": true,
+  // 一个制表符等于的空格数。该设置在 \`editor.detectIndentation\` 启用时根据文件内容进行重写。
+  // Tab Size
+  "editor.tabSize": 2,
+  // By default, common template. Do not modify it!!!!!
+  "editor.formatOnType": true,
+  "window.zoomLevel": 0,
+  "editor.detectIndentation": false,
+  "css.fileExtensions": ["css", "scss"],
+  "files.associations": {
+    "*.string": "html",
+    "*.vue": "vue",
+    "*.wxss": "css",
+    "*.wxml": "wxml",
+    "*.wxs": "javascript",
+    "*.cjson": "jsonc",
+    "*.js": "javascript"
+  },
+  // 为指定的语法定义配置文件或使用带有特定规则的配置文件。
+  "emmet.syntaxProfiles": {
+    "vue-html": "html",
+    "vue": "html"
+  },
+  "search.exclude": {
+    "**/node_modules": true,
+    "**/bower_components": true
+  },
+  //保存时eslint自动修复错误
+  "editor.formatOnSave": true,
+  // Enable per-language
+  //配置 ESLint 检查的文件类型
+  "editor.quickSuggestions": {
+    "strings": true
+  },
+  // 添加 vue 支持
+  // 这里是针对vue文件的格式化设置,vue的规则在这里生效
+  "vetur.format.options.tabSize": 2,
+  "vetur.format.options.useTabs": false,
+  "vetur.format.defaultFormatter.html": "js-beautify-html",
+  "vetur.format.defaultFormatter.css": "prettier",
+  "vetur.format.defaultFormatter.scss": "prettier",
+  "vetur.format.defaultFormatter.postcss": "prettier",
+  "vetur.format.defaultFormatter.less": "prettier",
+  "vetur.format.defaultFormatter.js": "vscode-typescript",
+  "vetur.format.defaultFormatter.sass": "sass-formatter",
+  "vetur.format.defaultFormatter.ts": "prettier",
+  "vetur.format.defaultFormatterOptions": {
+    "js-beautify-html": {
+      "wrap_attributes": "aligned-multiple", // 超过150折行
+      "wrap-line-length": 150
+    },
+    // #vue组件中html代码格式化样式
+    "prettier": {
+      "printWidth": 120,
+      "tabWidth": 2,
+      "singleQuote": false,
+      "trailingComma": "none",
+      "semi": false,
+      "wrap_line_length": 120,
+      "wrap_attributes": "aligned-multiple", // 超过150折行
+      "proseWrap": "always",
+      "arrowParens": "avoid",
+      "bracketSpacing": true,
+      "jsxBracketSameLine": true,
+      "useTabs": false,
+      "overrides": [
+        {
+          "files": ".prettierrc",
+          "options": {
+            "parser": "json"
+          }
+        }
+      ]
+    }
+  },
+  // Enable per-language
+  "[json]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "vetur.validation.template": false,
+  "html.format.enable": false,
+  "json.format.enable": false,
+  "javascript.format.enable": false,
+  "typescript.format.enable": false,
+  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
+  "[html]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[javascript]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[jsonc]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[vue]": {
+    "editor.defaultFormatter": "octref.vetur"
+  },
+  "emmet.includeLanguages": {
+    "wxml": "html"
+  },
+  "[typescriptreact]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  // 开启eslint自动修复js/ts功能
+  "editor.codeActionsOnSave": {
+    "source.fixAll.eslint": true
+  },
+  "minapp-vscode.disableAutoConfig": true,
+  "javascript.implicitProjectConfig.experimentalDecorators": true,
+  "editor.maxTokenizationLineLength": 200000
+}
`,6),k=[h];function l(p,e,F,r,d,C){return a(),i("div",null,k)}const y=s(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_lint.md.CabJs37Q.lean.js b/assets/guide_vue2_lint.md.CabJs37Q.lean.js new file mode 100644 index 0000000..d7deb54 --- /dev/null +++ b/assets/guide_vue2_lint.md.CabJs37Q.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"Eslint + Pettier 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/lint.md","filePath":"guide/vue2/lint.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/lint.md"},h=n("",6),k=[h];function l(p,e,F,r,d,C){return a(),i("div",null,k)}const y=s(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_proxy.md.0d483f53.js b/assets/guide_vue2_proxy.md.0d483f53.js deleted file mode 100644 index b472294..0000000 --- a/assets/guide_vue2_proxy.md.0d483f53.js +++ /dev/null @@ -1,22 +0,0 @@ -import{_ as s,o as a,c as n,R as p}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"配置 proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/proxy.md","filePath":"guide/vue2/proxy.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/proxy.md"},o=p(`

配置 proxy 跨域

如果你的项目需要跨域设置,你需要打来 vue.config.js proxy 注释 并且配置相应参数

!!!注意:你还需要将 src/config/env.development.js 里的 baseApi 设置成 '/'

javascript
module.exports = {
-  devServer: {
-    // ....
-    proxy: {
-      //配置跨域
-      "/api": {
-        target: "https://test.xxx.com", // 接口的域名
-        // ws: true, // 是否启用websockets
-        changOrigin: true, // 开启代理,在本地创建一个虚拟服务端
-        pathRewrite: {
-          "^/api": "/",
-        },
-      },
-    },
-  },
-};

使用 例如: src/api/home.js

javascript
export function getUserInfo(params) {
-  return request({
-    url: "/api/userinfo",
-    method: "post",
-    data: qs.stringify(params),
-  });
-}
`,6),e=[o];function t(c,r,D,y,F,i){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue2_proxy.md.0d483f53.lean.js b/assets/guide_vue2_proxy.md.0d483f53.lean.js deleted file mode 100644 index 60d1abe..0000000 --- a/assets/guide_vue2_proxy.md.0d483f53.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as p}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"配置 proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/proxy.md","filePath":"guide/vue2/proxy.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/proxy.md"},o=p("",6),e=[o];function t(c,r,D,y,F,i){return a(),n("div",null,e)}const d=s(l,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue2_proxy.md.BO5v8-sy.js b/assets/guide_vue2_proxy.md.BO5v8-sy.js new file mode 100644 index 0000000..f992793 --- /dev/null +++ b/assets/guide_vue2_proxy.md.BO5v8-sy.js @@ -0,0 +1,22 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"配置 proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/proxy.md","filePath":"guide/vue2/proxy.md","lastUpdated":1756280434000}'),p={name:"guide/vue2/proxy.md"},t=n(`

配置 proxy 跨域

如果你的项目需要跨域设置,你需要打来 vue.config.js proxy 注释 并且配置相应参数

!!!注意:你还需要将 src/config/env.development.js 里的 baseApi 设置成 '/'

javascript
module.exports = {
+  devServer: {
+    // ....
+    proxy: {
+      //配置跨域
+      "/api": {
+        target: "https://test.xxx.com", // 接口的域名
+        // ws: true, // 是否启用websockets
+        changOrigin: true, // 开启代理,在本地创建一个虚拟服务端
+        pathRewrite: {
+          "^/api": "/",
+        },
+      },
+    },
+  },
+};

使用 例如: src/api/home.js

javascript
export function getUserInfo(params) {
+  return request({
+    url: "/api/userinfo",
+    method: "post",
+    data: qs.stringify(params),
+  });
+}
`,6),e=[t];function h(l,k,E,r,d,o){return a(),i("div",null,e)}const y=s(p,[["render",h]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_proxy.md.BO5v8-sy.lean.js b/assets/guide_vue2_proxy.md.BO5v8-sy.lean.js new file mode 100644 index 0000000..c0cedab --- /dev/null +++ b/assets/guide_vue2_proxy.md.BO5v8-sy.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"配置 proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/proxy.md","filePath":"guide/vue2/proxy.md","lastUpdated":1756280434000}'),p={name:"guide/vue2/proxy.md"},t=n("",6),e=[t];function h(l,k,E,r,d,o){return a(),i("div",null,e)}const y=s(p,[["render",h]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_rem.md.05f1a99e.js b/assets/guide_vue2_rem.md.05f1a99e.js deleted file mode 100644 index 99d3f20..0000000 --- a/assets/guide_vue2_rem.md.05f1a99e.js +++ /dev/null @@ -1,31 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"rem 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/rem.md","filePath":"guide/vue2/rem.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/rem.md"},p=o(`

rem 适配方案

不用担心,项目已经配置好了 rem 适配, 下面仅做介绍:

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: {
-      overrideBrowserslist: [
-        "Android 4.1",
-        "iOS 7.1",
-        "Chrome > 31",
-        "ff > 31",
-        "ie >= 8",
-      ],
-    },
-    "postcss-pxtorem": {
-      rootValue: 37.5,
-      propList: ["*"],
-    },
-  },
-};

更多详细信息: vant

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题,因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5,你可以看到在 iPhone 6 下看到 (1rem 等于 37.5px):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的font-size。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕,其他机型适配。

  • rootValue: 70 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
-
-<style>
-  /* rootValue: 75 */
-  .image {
-    width: 750px;
-    height: 1334px;
-  }
-  /* rootValue: 37.5 */
-  .image {
-    width: 375px;
-    height: 667px;
-  }
-</style>
`,19),e=[p];function t(c,r,D,F,y,i){return a(),n("div",null,e)}const A=s(l,[["render",t]]);export{d as __pageData,A as default}; diff --git a/assets/guide_vue2_rem.md.05f1a99e.lean.js b/assets/guide_vue2_rem.md.05f1a99e.lean.js deleted file mode 100644 index 642f113..0000000 --- a/assets/guide_vue2_rem.md.05f1a99e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"rem 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/rem.md","filePath":"guide/vue2/rem.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/rem.md"},p=o("",19),e=[p];function t(c,r,D,F,y,i){return a(),n("div",null,e)}const A=s(l,[["render",t]]);export{d as __pageData,A as default}; diff --git a/assets/guide_vue2_rem.md.C61I_gc0.js b/assets/guide_vue2_rem.md.C61I_gc0.js new file mode 100644 index 0000000..cfd3957 --- /dev/null +++ b/assets/guide_vue2_rem.md.C61I_gc0.js @@ -0,0 +1,31 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"rem 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/rem.md","filePath":"guide/vue2/rem.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/rem.md"},p=n(`

rem 适配方案

不用担心,项目已经配置好了 rem 适配, 下面仅做介绍:

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: {
+      overrideBrowserslist: [
+        "Android 4.1",
+        "iOS 7.1",
+        "Chrome > 31",
+        "ff > 31",
+        "ie >= 8",
+      ],
+    },
+    "postcss-pxtorem": {
+      rootValue: 37.5,
+      propList: ["*"],
+    },
+  },
+};

更多详细信息: vant

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题,因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5,你可以看到在 iPhone 6 下看到 (1rem 等于 37.5px):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的font-size。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕,其他机型适配。

  • rootValue: 70 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
+
+<style>
+  /* rootValue: 75 */
+  .image {
+    width: 750px;
+    height: 1334px;
+  }
+  /* rootValue: 37.5 */
+  .image {
+    width: 375px;
+    height: 667px;
+  }
+</style>
`,19),h=[p];function l(e,k,E,r,d,o){return a(),i("div",null,h)}const y=s(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_rem.md.C61I_gc0.lean.js b/assets/guide_vue2_rem.md.C61I_gc0.lean.js new file mode 100644 index 0000000..ec7c65c --- /dev/null +++ b/assets/guide_vue2_rem.md.C61I_gc0.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"rem 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/rem.md","filePath":"guide/vue2/rem.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/rem.md"},p=n("",19),h=[p];function l(e,k,E,r,d,o){return a(),i("div",null,h)}const y=s(t,[["render",l]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_router.md.369637ff.js b/assets/guide_vue2_router.md.369637ff.js deleted file mode 100644 index b737998..0000000 --- a/assets/guide_vue2_router.md.369637ff.js +++ /dev/null @@ -1,24 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/router.md","filePath":"guide/vue2/router.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/router.md"},p=o(`

Vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式,vue.config.js 中的 publicPath 要做对应的修改

前往: vue.config.js 基础配置

javascript
import Vue from "vue";
-import Router from "vue-router";
-
-Vue.use(Router);
-export const router = [
-  {
-    path: "/",
-    name: "index",
-    component: () => import("@/views/home/index"), // 路由懒加载
-    meta: {
-      title: "首页", // 页面标题
-      keepAlive: false, // keep-alive 标识
-    },
-  },
-];
-const createRouter = () =>
-  new Router({
-    // mode: 'history', // 如果你是 history模式 需要配置 vue.config.js publicPath
-    // base: '/app/',
-    scrollBehavior: () => ({ y: 0 }),
-    routes: router,
-  });
-
-export default createRouter();
`,5),e=[p];function t(c,r,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_router.md.369637ff.lean.js b/assets/guide_vue2_router.md.369637ff.lean.js deleted file mode 100644 index 1d0802a..0000000 --- a/assets/guide_vue2_router.md.369637ff.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/router.md","filePath":"guide/vue2/router.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/router.md"},p=o("",5),e=[p];function t(c,r,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_router.md.C_XNmJ7g.js b/assets/guide_vue2_router.md.C_XNmJ7g.js new file mode 100644 index 0000000..ef3a4f6 --- /dev/null +++ b/assets/guide_vue2_router.md.C_XNmJ7g.js @@ -0,0 +1,24 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"Vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/router.md","filePath":"guide/vue2/router.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/router.md"},h=n(`

Vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式,vue.config.js 中的 publicPath 要做对应的修改

前往: vue.config.js 基础配置

javascript
import Vue from "vue";
+import Router from "vue-router";
+
+Vue.use(Router);
+export const router = [
+  {
+    path: "/",
+    name: "index",
+    component: () => import("@/views/home/index"), // 路由懒加载
+    meta: {
+      title: "首页", // 页面标题
+      keepAlive: false, // keep-alive 标识
+    },
+  },
+];
+const createRouter = () =>
+  new Router({
+    // mode: 'history', // 如果你是 history模式 需要配置 vue.config.js publicPath
+    // base: '/app/',
+    scrollBehavior: () => ({ y: 0 }),
+    routes: router,
+  });
+
+export default createRouter();
`,5),p=[h];function e(l,k,r,E,d,o){return a(),i("div",null,p)}const y=s(t,[["render",e]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue2_router.md.C_XNmJ7g.lean.js b/assets/guide_vue2_router.md.C_XNmJ7g.lean.js new file mode 100644 index 0000000..a3a407d --- /dev/null +++ b/assets/guide_vue2_router.md.C_XNmJ7g.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"Vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/router.md","filePath":"guide/vue2/router.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/router.md"},h=n("",5),p=[h];function e(l,k,r,E,d,o){return a(),i("div",null,p)}const y=s(t,[["render",e]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue2_sass.md.3616d11c.js b/assets/guide_vue2_sass.md.3616d11c.js deleted file mode 100644 index 80f3d65..0000000 --- a/assets/guide_vue2_sass.md.3616d11c.js +++ /dev/null @@ -1,53 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"Sass 全局样式","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/sass.md","filePath":"guide/vue2/sass.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/sass.md"},o=l(`

Sass 全局样式

首先 你可能会遇到 node-sass 安装不成功,别放弃多试几次!!!

每个页面自己对应的样式都写在自己的 .vue 文件之中 scoped 它顾名思义给 css 加了一个域的概念。

html
<style lang="scss">
-  /* global styles */
-</style>
-
-<style lang="scss" scoped>
-  /* local styles */
-</style>

目录结构

vue-h5-template 所有全局样式都在 @/src/assets/css 目录下设置

bash
├── assets
-   ├── css
-      ├── index.scss               # 全局通用样式
-      ├── mixin.scss               # 全局mixin
-      └── variables.scss           # 全局变量

自定义 vant-ui 样式

现在我们来说说怎么重写 vant-ui 样式。由于 vant-ui 的样式我们是在全局引入的,所以你想在某个页面里面覆盖它的样式就不能加 scoped,但你又想只覆盖这个页面的 vant 样式,你就可在它的父级加一个 class,用命名空间来解决问题。

css
.about-container {
-  /* 你的命名空间 */
-  .van-button {
-    /* vant-ui 元素*/
-    margin-right: 0px;
-  }
-}

父组件改变子组件样式 深度选择器

当你子组件使用了 scoped 但在父组件又想修改子组件的样式可以 通过 >>> 来实现:

css
<style scoped>
-.a >>> .b { /* ... */ }
-</style>

全局变量

vue.config.js 配置使用 css.loaderOptions 选项,注入 sassmixin variables 到全局,不需要手动引入,配置$cdn通过变量形式引入 cdn 地址,这样向所有 Sass/Less 样式传入共享的全局变量:

javascript
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
-const defaultSettings = require("./src/config/index.js");
-module.exports = {
-  css: {
-    extract: IS_PROD,
-    sourceMap: false,
-    loaderOptions: {
-      // 给 scss-loader 传递选项
-      scss: {
-        // 注入 \`sass\` 的 \`mixin\` \`variables\` 到全局, $cdn可以配置图片cdn
-        // 详情: https://cli.vuejs.org/guide/css.html#passing-options-to-pre-processor-loaders
-        prependData: \`
-                @import "assets/css/mixin.scss";
-                @import "assets/css/variables.scss";
-                $cdn: "\${defaultSettings.$cdn}";
-                 \`,
-      },
-    },
-  },
-};

设置 js 中可以访问 $cdn.vue 文件中使用this.$cdn访问

javascript
// 引入全局样式
-import "@/assets/css/index.scss";
-
-// 设置 js中可以访问 $cdn
-// 引入cdn
-import { $cdn } from "@/config";
-Vue.prototype.$cdn = $cdn;

在 css 和 js 使用

html
<script>
-  console.log(this.$cdn);
-</script>
-<style lang="scss" scoped>
-  .logo {
-    width: 120px;
-    height: 120px;
-    background: url($cdn + "/weapp/logo.png") center / contain no-repeat;
-  }
-</style>
`,20),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue2_sass.md.3616d11c.lean.js b/assets/guide_vue2_sass.md.3616d11c.lean.js deleted file mode 100644 index c073fdf..0000000 --- a/assets/guide_vue2_sass.md.3616d11c.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"Sass 全局样式","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/sass.md","filePath":"guide/vue2/sass.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/sass.md"},o=l("",20),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue2_sass.md._wz-u2Mv.js b/assets/guide_vue2_sass.md._wz-u2Mv.js new file mode 100644 index 0000000..be56c37 --- /dev/null +++ b/assets/guide_vue2_sass.md._wz-u2Mv.js @@ -0,0 +1,53 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Sass 全局样式","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/sass.md","filePath":"guide/vue2/sass.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/sass.md"},t=n(`

Sass 全局样式

首先 你可能会遇到 node-sass 安装不成功,别放弃多试几次!!!

每个页面自己对应的样式都写在自己的 .vue 文件之中 scoped 它顾名思义给 css 加了一个域的概念。

html
<style lang="scss">
+  /* global styles */
+</style>
+
+<style lang="scss" scoped>
+  /* local styles */
+</style>

目录结构

vue-h5-template 所有全局样式都在 @/src/assets/css 目录下设置

bash
├── assets
+   ├── css
+   ├── index.scss               # 全局通用样式
+   ├── mixin.scss               # 全局mixin
+   └── variables.scss           # 全局变量

自定义 vant-ui 样式

现在我们来说说怎么重写 vant-ui 样式。由于 vant-ui 的样式我们是在全局引入的,所以你想在某个页面里面覆盖它的样式就不能加 scoped,但你又想只覆盖这个页面的 vant 样式,你就可在它的父级加一个 class,用命名空间来解决问题。

css
.about-container {
+  /* 你的命名空间 */
+  .van-button {
+    /* vant-ui 元素*/
+    margin-right: 0px;
+  }
+}

父组件改变子组件样式 深度选择器

当你子组件使用了 scoped 但在父组件又想修改子组件的样式可以 通过 >>> 来实现:

css
<style scoped>
+.a >>> .b { /* ... */ }
+</style>

全局变量

vue.config.js 配置使用 css.loaderOptions 选项,注入 sassmixin variables 到全局,不需要手动引入,配置$cdn通过变量形式引入 cdn 地址,这样向所有 Sass/Less 样式传入共享的全局变量:

javascript
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+const defaultSettings = require("./src/config/index.js");
+module.exports = {
+  css: {
+    extract: IS_PROD,
+    sourceMap: false,
+    loaderOptions: {
+      // 给 scss-loader 传递选项
+      scss: {
+        // 注入 \`sass\` 的 \`mixin\` \`variables\` 到全局, $cdn可以配置图片cdn
+        // 详情: https://cli.vuejs.org/guide/css.html#passing-options-to-pre-processor-loaders
+        prependData: \`
+                @import "assets/css/mixin.scss";
+                @import "assets/css/variables.scss";
+                $cdn: "\${defaultSettings.$cdn}";
+                 \`,
+      },
+    },
+  },
+};

设置 js 中可以访问 $cdn.vue 文件中使用this.$cdn访问

javascript
// 引入全局样式
+import "@/assets/css/index.scss";
+
+// 设置 js中可以访问 $cdn
+// 引入cdn
+import { $cdn } from "@/config";
+Vue.prototype.$cdn = $cdn;

在 css 和 js 使用

html
<script>
+  console.log(this.$cdn);
+</script>
+<style lang="scss" scoped>
+  .logo {
+    width: 120px;
+    height: 120px;
+    background: url($cdn + "/weapp/logo.png") center / contain no-repeat;
+  }
+</style>
`,20),l=[t];function p(k,e,d,E,r,g){return a(),i("div",null,l)}const y=s(h,[["render",p]]);export{o as __pageData,y as default}; diff --git a/assets/guide_vue2_sass.md._wz-u2Mv.lean.js b/assets/guide_vue2_sass.md._wz-u2Mv.lean.js new file mode 100644 index 0000000..404346c --- /dev/null +++ b/assets/guide_vue2_sass.md._wz-u2Mv.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Sass 全局样式","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/sass.md","filePath":"guide/vue2/sass.md","lastUpdated":1756280434000}'),h={name:"guide/vue2/sass.md"},t=n("",20),l=[t];function p(k,e,d,E,r,g){return a(),i("div",null,l)}const y=s(h,[["render",p]]);export{o as __pageData,y as default}; diff --git a/assets/guide_vue2_start.md.BiD_Lb5X.js b/assets/guide_vue2_start.md.BiD_Lb5X.js new file mode 100644 index 0000000..6af5ebe --- /dev/null +++ b/assets/guide_vue2_start.md.BiD_Lb5X.js @@ -0,0 +1,12 @@ +import{_ as s,c as a,o as i,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/start.md","filePath":"guide/vue2/start.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/start.md"},e=n(`

启动项目

bash

+# 拉取项目
+git clone https://github.com/sunniejs/vue-h5-template
+
+# 切换分支
+git checkout -b vue2-h5-template origin/vue2-h5-template
+
+# 安装依赖
+yarn install
+
+# 启动项目
+yarn serve
`,2),l=[e];function p(h,k,r,d,c,o){return i(),a("div",null,l)}const _=s(t,[["render",p]]);export{g as __pageData,_ as default}; diff --git a/assets/guide_vue2_start.md.BiD_Lb5X.lean.js b/assets/guide_vue2_start.md.BiD_Lb5X.lean.js new file mode 100644 index 0000000..e8207bd --- /dev/null +++ b/assets/guide_vue2_start.md.BiD_Lb5X.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/start.md","filePath":"guide/vue2/start.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/start.md"},e=n("",2),l=[e];function p(h,k,r,d,c,o){return i(),a("div",null,l)}const _=s(t,[["render",p]]);export{g as __pageData,_ as default}; diff --git a/assets/guide_vue2_start.md.f6e40312.js b/assets/guide_vue2_start.md.f6e40312.js deleted file mode 100644 index 3f0bbc8..0000000 --- a/assets/guide_vue2_start.md.f6e40312.js +++ /dev/null @@ -1,11 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const h=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/start.md","filePath":"guide/vue2/start.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/start.md"},t=e(`

启动项目

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
-
-# 切换分支
-git checkout -b vue2-h5-template origin/vue2-h5-template
-
-# 安装依赖
-yarn install
-
-# 启动项目
-yarn serve
`,2),p=[t];function o(c,r,i,y,C,_){return a(),n("div",null,p)}const u=s(l,[["render",o]]);export{h as __pageData,u as default}; diff --git a/assets/guide_vue2_start.md.f6e40312.lean.js b/assets/guide_vue2_start.md.f6e40312.lean.js deleted file mode 100644 index 5a05c38..0000000 --- a/assets/guide_vue2_start.md.f6e40312.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const h=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/start.md","filePath":"guide/vue2/start.md","lastUpdated":1731315864000}'),l={name:"guide/vue2/start.md"},t=e("",2),p=[t];function o(c,r,i,y,C,_){return a(),n("div",null,p)}const u=s(l,[["render",o]]);export{h as __pageData,u as default}; diff --git a/assets/guide_vue2_vant.md.4ed27c84.js b/assets/guide_vue2_vant.md.4ed27c84.js deleted file mode 100644 index f62a8f9..0000000 --- a/assets/guide_vue2_vant.md.4ed27c84.js +++ /dev/null @@ -1,24 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"VantUI 组件按需加载","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vant.md","filePath":"guide/vue2/vant.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/vant.md"},o=l(`

VantUI 组件按需加载

项目采 用Vant 自动按需引入组件 (推荐)下 面安装插件介绍:

babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式

安装插件

bash
npm i babel-plugin-import -D

babel.config.js 设置

javascript
// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
-const plugins = [
-  [
-    "import",
-    {
-      libraryName: "vant",
-      libraryDirectory: "es",
-      style: true,
-    },
-    "vant",
-  ],
-];
-module.exports = {
-  presets: [
-    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
-  ],
-  plugins,
-};

使用组件

项目在 src/plugins/vant.js 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入 vant组件
-import Vue from "vue";
-import { Button, List, Cell, Tabbar, TabbarItem } from "vant";
-Vue.use(Button);
-Vue.use(Cell);
-Vue.use(List);
-Vue.use(Tabbar).use(TabbarItem);
`,10),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue2_vant.md.4ed27c84.lean.js b/assets/guide_vue2_vant.md.4ed27c84.lean.js deleted file mode 100644 index d26cbb2..0000000 --- a/assets/guide_vue2_vant.md.4ed27c84.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"VantUI 组件按需加载","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vant.md","filePath":"guide/vue2/vant.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/vant.md"},o=l("",10),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue2_vant.md.B9mf6FC_.js b/assets/guide_vue2_vant.md.B9mf6FC_.js new file mode 100644 index 0000000..1f669bf --- /dev/null +++ b/assets/guide_vue2_vant.md.B9mf6FC_.js @@ -0,0 +1,24 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"VantUI 组件按需加载","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vant.md","filePath":"guide/vue2/vant.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/vant.md"},l=n(`

VantUI 组件按需加载

项目采 用Vant 自动按需引入组件 (推荐)下 面安装插件介绍:

babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式

安装插件

bash
npm i babel-plugin-import -D

babel.config.js 设置

javascript
// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
+const plugins = [
+  [
+    "import",
+    {
+      libraryName: "vant",
+      libraryDirectory: "es",
+      style: true,
+    },
+    "vant",
+  ],
+];
+module.exports = {
+  presets: [
+    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
+  ],
+  plugins,
+};

使用组件

项目在 src/plugins/vant.js 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入 vant组件
+import Vue from "vue";
+import { Button, List, Cell, Tabbar, TabbarItem } from "vant";
+Vue.use(Button);
+Vue.use(Cell);
+Vue.use(List);
+Vue.use(Tabbar).use(TabbarItem);
`,10),p=[l];function h(e,k,E,r,d,g){return a(),i("div",null,p)}const u=s(t,[["render",h]]);export{c as __pageData,u as default}; diff --git a/assets/guide_vue2_vant.md.B9mf6FC_.lean.js b/assets/guide_vue2_vant.md.B9mf6FC_.lean.js new file mode 100644 index 0000000..75c3763 --- /dev/null +++ b/assets/guide_vue2_vant.md.B9mf6FC_.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"VantUI 组件按需加载","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vant.md","filePath":"guide/vue2/vant.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/vant.md"},l=n("",10),p=[l];function h(e,k,E,r,d,g){return a(),i("div",null,p)}const u=s(t,[["render",h]]);export{c as __pageData,u as default}; diff --git a/assets/guide_vue2_vuex.md.399839b6.js b/assets/guide_vue2_vuex.md.399839b6.js deleted file mode 100644 index 043ec49..0000000 --- a/assets/guide_vue2_vuex.md.399839b6.js +++ /dev/null @@ -1,30 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Vuex 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vuex.md","filePath":"guide/vue2/vuex.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/vuex.md"},o=l(`

Vuex 状态管理

目录结构

bash
├── store
-   ├── modules
-      └── app.js
-   ├── index.js
-   ├── getters.js

main.js 引入

javascript
import Vue from "vue";
-import App from "./App.vue";
-import store from "./store";
-new Vue({
-  el: "#app",
-  router,
-  store,
-  render: (h) => h(App),
-});

使用

html
<script>
-  import { mapGetters } from "vuex";
-  export default {
-    computed: {
-      ...mapGetters(["userName"]),
-    },
-
-    methods: {
-      // Action 通过 store.dispatch 方法触发
-      doDispatch() {
-        this.$store.dispatch(
-          "setUserName",
-          "真乖,赶紧关注公众号,组织都在等你~"
-        );
-      },
-    },
-  };
-</script>
`,7),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_vuex.md.399839b6.lean.js b/assets/guide_vue2_vuex.md.399839b6.lean.js deleted file mode 100644 index f4e9e6b..0000000 --- a/assets/guide_vue2_vuex.md.399839b6.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Vuex 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vuex.md","filePath":"guide/vue2/vuex.md","lastUpdated":1731315864000}'),p={name:"guide/vue2/vuex.md"},o=l("",7),e=[o];function t(c,r,D,y,F,C){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue2_vuex.md.Bq0nNGtS.js b/assets/guide_vue2_vuex.md.Bq0nNGtS.js new file mode 100644 index 0000000..83ea9fe --- /dev/null +++ b/assets/guide_vue2_vuex.md.Bq0nNGtS.js @@ -0,0 +1,30 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Vuex 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vuex.md","filePath":"guide/vue2/vuex.md","lastUpdated":1756280434000}'),p={name:"guide/vue2/vuex.md"},t=n(`

Vuex 状态管理

目录结构

bash
├── store
+   ├── modules
+   └── app.js
+   ├── index.js
+   ├── getters.js

main.js 引入

javascript
import Vue from "vue";
+import App from "./App.vue";
+import store from "./store";
+new Vue({
+  el: "#app",
+  router,
+  store,
+  render: (h) => h(App),
+});

使用

html
<script>
+  import { mapGetters } from "vuex";
+  export default {
+    computed: {
+      ...mapGetters(["userName"]),
+    },
+
+    methods: {
+      // Action 通过 store.dispatch 方法触发
+      doDispatch() {
+        this.$store.dispatch(
+          "setUserName",
+          "真乖,赶紧关注公众号,组织都在等你~"
+        );
+      },
+    },
+  };
+</script>
`,7),h=[t];function l(k,e,E,r,d,g){return a(),i("div",null,h)}const c=s(p,[["render",l]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue2_vuex.md.Bq0nNGtS.lean.js b/assets/guide_vue2_vuex.md.Bq0nNGtS.lean.js new file mode 100644 index 0000000..4a34ca5 --- /dev/null +++ b/assets/guide_vue2_vuex.md.Bq0nNGtS.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"Vuex 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vuex.md","filePath":"guide/vue2/vuex.md","lastUpdated":1756280434000}'),p={name:"guide/vue2/vuex.md"},t=n("",7),h=[t];function l(k,e,E,r,d,g){return a(),i("div",null,h)}const c=s(p,[["render",l]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue2_vw.md.RpXdfcrI.js b/assets/guide_vue2_vw.md.RpXdfcrI.js new file mode 100644 index 0000000..a97f521 --- /dev/null +++ b/assets/guide_vue2_vw.md.RpXdfcrI.js @@ -0,0 +1,25 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vm 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vw.md","filePath":"guide/vue2/vw.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/vw.md"},p=n(`

vm 适配方案

本项目使用的是 rem 的 适配方案,其实无论你使用哪种方案,都不需要你去计算 12px 是多少 rem 或者 vw, 会有专门的工具去帮你做 。如果你想用 vw,你可以按照下面的方式切换。

1.安装依赖

bash

+npm install postcss-px-to-viewport -D

2.修改 .postcssrc.js

将根目录下 .postcssrc.js 文件修改如下

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: {
+      overrideBrowserslist: [
+        "Android 4.1",
+        "iOS 7.1",
+        "Chrome > 31",
+        "ff > 31",
+        "ie >= 8",
+      ],
+    },
+    "postcss-px-to-viewport": {
+      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
+      unitPrecision: 3, // 指定\`px\`转换为视窗单位值的小数位数(很多时候无法整除)
+      viewportUnit: "vw", // 指定需要转换成的视窗单位,建议使用vw
+      selectorBlackList: [".ignore", ".hairlines"], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
+      minPixelValue: 1, // 小于或等于\`1px\`不转换为视窗单位,你也可以设置为你想要的值
+      mediaQuery: false, // 允许在媒体查询中转换\`px\`
+    },
+  },
+};

3.删除原来的 rem 相关代码

src/main.js 删除如下代码

javascript
// 移动端适配
+import "lib-flexible/flexible.js";

package.json 删除如下代码

javascript
"lib-flexible": "^0.3.2",
+"postcss-pxtorem": "^5.1.1",

运行起来,F12 元素 css style 就是 vw 单位了

`,13),l=[p];function h(e,k,r,E,d,o){return a(),i("div",null,l)}const y=s(t,[["render",h]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_vw.md.RpXdfcrI.lean.js b/assets/guide_vue2_vw.md.RpXdfcrI.lean.js new file mode 100644 index 0000000..3fb5544 --- /dev/null +++ b/assets/guide_vue2_vw.md.RpXdfcrI.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vm 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vw.md","filePath":"guide/vue2/vw.md","lastUpdated":1756280434000}'),t={name:"guide/vue2/vw.md"},p=n("",13),l=[p];function h(e,k,r,E,d,o){return a(),i("div",null,l)}const y=s(t,[["render",h]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue2_vw.md.f3d8795c.js b/assets/guide_vue2_vw.md.f3d8795c.js deleted file mode 100644 index 821b29d..0000000 --- a/assets/guide_vue2_vw.md.f3d8795c.js +++ /dev/null @@ -1,24 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"vm 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vw.md","filePath":"guide/vue2/vw.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/vw.md"},p=l(`

vm 适配方案

本项目使用的是 rem 的 适配方案,其实无论你使用哪种方案,都不需要你去计算 12px 是多少 rem 或者 vw, 会有专门的工具去帮你做 。如果你想用 vw,你可以按照下面的方式切换。

1.安装依赖

bash
npm install postcss-px-to-viewport -D

2.修改 .postcssrc.js

将根目录下 .postcssrc.js 文件修改如下

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: {
-      overrideBrowserslist: [
-        "Android 4.1",
-        "iOS 7.1",
-        "Chrome > 31",
-        "ff > 31",
-        "ie >= 8",
-      ],
-    },
-    "postcss-px-to-viewport": {
-      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
-      unitPrecision: 3, // 指定\`px\`转换为视窗单位值的小数位数(很多时候无法整除)
-      viewportUnit: "vw", // 指定需要转换成的视窗单位,建议使用vw
-      selectorBlackList: [".ignore", ".hairlines"], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
-      minPixelValue: 1, // 小于或等于\`1px\`不转换为视窗单位,你也可以设置为你想要的值
-      mediaQuery: false, // 允许在媒体查询中转换\`px\`
-    },
-  },
-};

3.删除原来的 rem 相关代码

src/main.js 删除如下代码

javascript
// 移动端适配
-import "lib-flexible/flexible.js";

package.json 删除如下代码

javascript
"lib-flexible": "^0.3.2",
-"postcss-pxtorem": "^5.1.1",

运行起来,F12 元素 css style 就是 vw 单位了

`,13),e=[p];function t(c,r,D,y,F,i){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue2_vw.md.f3d8795c.lean.js b/assets/guide_vue2_vw.md.f3d8795c.lean.js deleted file mode 100644 index 7ef015f..0000000 --- a/assets/guide_vue2_vw.md.f3d8795c.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"vm 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/vw.md","filePath":"guide/vue2/vw.md","lastUpdated":1731315864000}'),o={name:"guide/vue2/vw.md"},p=l("",13),e=[p];function t(c,r,D,y,F,i){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue3_alias.md.6e50bff0.js b/assets/guide_vue3_alias.md.6e50bff0.js deleted file mode 100644 index 97f79ca..0000000 --- a/assets/guide_vue3_alias.md.6e50bff0.js +++ /dev/null @@ -1,17 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const _=JSON.parse('{"title":"alias","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/alias.md","filePath":"guide/vue3/alias.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/alias.md"},o=l(`

alias

javascript
resolve: {
-    alias: [{
-            find: 'vue-i18n',
-            replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
-        },
-        // /@/xxxx => src/xxxx
-        {
-            find: /\\/@\\//,
-            replacement: pathResolve('src') + '/',
-        },
-        // /#/xxxx => types/xxxx
-        {
-            find: /\\/#\\//,
-            replacement: pathResolve('types') + '/',
-        },
-    ],
-},
`,2),e=[o];function t(c,r,F,D,y,i){return a(),n("div",null,e)}const C=s(p,[["render",t]]);export{_ as __pageData,C as default}; diff --git a/assets/guide_vue3_alias.md.6e50bff0.lean.js b/assets/guide_vue3_alias.md.6e50bff0.lean.js deleted file mode 100644 index 2eb24ed..0000000 --- a/assets/guide_vue3_alias.md.6e50bff0.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const _=JSON.parse('{"title":"alias","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/alias.md","filePath":"guide/vue3/alias.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/alias.md"},o=l("",2),e=[o];function t(c,r,F,D,y,i){return a(),n("div",null,e)}const C=s(p,[["render",t]]);export{_ as __pageData,C as default}; diff --git a/assets/guide_vue3_alias.md.DDoW2ox6.js b/assets/guide_vue3_alias.md.DDoW2ox6.js new file mode 100644 index 0000000..3665fbe --- /dev/null +++ b/assets/guide_vue3_alias.md.DDoW2ox6.js @@ -0,0 +1,8 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"alias","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/alias.md","filePath":"guide/vue3/alias.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/alias.md"},h=n(`

alias

javascript
import { fileURLToPath, URL } from 'node:url';
+
+resolve: {
+    alias: {
+      '@': fileURLToPath(new URL('./src', import.meta.url)),
+      '#': fileURLToPath(new URL('./types', import.meta.url))
+    },
+},
`,2),l=[h];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const y=s(t,[["render",k]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_alias.md.DDoW2ox6.lean.js b/assets/guide_vue3_alias.md.DDoW2ox6.lean.js new file mode 100644 index 0000000..0adb113 --- /dev/null +++ b/assets/guide_vue3_alias.md.DDoW2ox6.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"alias","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/alias.md","filePath":"guide/vue3/alias.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/alias.md"},h=n("",2),l=[h];function k(p,e,E,r,d,g){return a(),i("div",null,l)}const y=s(t,[["render",k]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_axios.md.0778382b.js b/assets/guide_vue3_axios.md.0778382b.js deleted file mode 100644 index 310ef53..0000000 --- a/assets/guide_vue3_axios.md.0778382b.js +++ /dev/null @@ -1,57 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/axios.md","filePath":"guide/vue3/axios.md","lastUpdated":1731315864000}'),o={name:"guide/vue3/axios.md"},p=l(`

axios 封装及接口管理

utils/request.js 封装 axios , 开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
-import store from "@/store";
-import { Toast } from "vant";
-// 根据环境不同引入不同api地址
-import { baseApi } from "@/config";
-// create an axios instance
-const service = axios.create({
-  baseURL: baseApi, // url = base api url + request url
-  withCredentials: true, // send cookies when cross-domain requests
-  timeout: 5000, // request timeout
-});
-
-// request 拦截器 request interceptor
-service.interceptors.request.use(
-  (config) => {
-    // 不传递默认开启loading
-    if (!config.hideloading) {
-      // loading
-      Toast.loading({
-        forbidClick: true,
-      });
-    }
-    if (store.getters.token) {
-      config.headers["X-Token"] = "";
-    }
-    return config;
-  },
-  (error) => {
-    // do something with request error
-    console.log(error); // for debug
-    return Promise.reject(error);
-  }
-);
-// respone拦截器
-service.interceptors.response.use(
-  (response) => {
-    Toast.clear();
-    const res = response.data;
-    if (res.status && res.status !== 200) {
-      // 登录超时,重新登录
-      if (res.status === 401) {
-        store.dispatch("FedLogOut").then(() => {
-          location.reload();
-        });
-      }
-      return Promise.reject(res || "error");
-    } else {
-      return Promise.resolve(res);
-    }
-  },
-  (error) => {
-    Toast.clear();
-    console.log("err" + error); // for debug
-    return Promise.reject(error);
-  }
-);
-export default service;
`,4),e=[p];function t(c,r,F,y,D,i){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default}; diff --git a/assets/guide_vue3_axios.md.0778382b.lean.js b/assets/guide_vue3_axios.md.0778382b.lean.js deleted file mode 100644 index f796f23..0000000 --- a/assets/guide_vue3_axios.md.0778382b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const C=JSON.parse('{"title":"axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/axios.md","filePath":"guide/vue3/axios.md","lastUpdated":1731315864000}'),o={name:"guide/vue3/axios.md"},p=l("",4),e=[p];function t(c,r,F,y,D,i){return n(),a("div",null,e)}const u=s(o,[["render",t]]);export{C as __pageData,u as default}; diff --git a/assets/guide_vue3_axios.md.B5xKedqx.js b/assets/guide_vue3_axios.md.B5xKedqx.js new file mode 100644 index 0000000..4acfc50 --- /dev/null +++ b/assets/guide_vue3_axios.md.B5xKedqx.js @@ -0,0 +1,57 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/axios.md","filePath":"guide/vue3/axios.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/axios.md"},k=n(`

axios 封装及接口管理

utils/request.js 封装 axios , 开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
+import store from "@/store";
+import { Toast } from "vant";
+// 根据环境不同引入不同api地址
+import { baseApi } from "@/config";
+// create an axios instance
+const service = axios.create({
+  baseURL: baseApi, // url = base api url + request url
+  withCredentials: true, // send cookies when cross-domain requests
+  timeout: 5000, // request timeout
+});
+
+// request 拦截器 request interceptor
+service.interceptors.request.use(
+  (config) => {
+    // 不传递默认开启loading
+    if (!config.hideloading) {
+      // loading
+      Toast.loading({
+        forbidClick: true,
+      });
+    }
+    if (store.getters.token) {
+      config.headers["X-Token"] = "";
+    }
+    return config;
+  },
+  (error) => {
+    // do something with request error
+    console.log(error); // for debug
+    return Promise.reject(error);
+  }
+);
+// respone拦截器
+service.interceptors.response.use(
+  (response) => {
+    Toast.clear();
+    const res = response.data;
+    if (res.status && res.status !== 200) {
+      // 登录超时,重新登录
+      if (res.status === 401) {
+        store.dispatch("FedLogOut").then(() => {
+          location.reload();
+        });
+      }
+      return Promise.reject(res || "error");
+    } else {
+      return Promise.resolve(res);
+    }
+  },
+  (error) => {
+    Toast.clear();
+    console.log("err" + error); // for debug
+    return Promise.reject(error);
+  }
+);
+export default service;
`,4),l=[k];function p(t,e,E,r,d,g){return a(),i("div",null,l)}const c=s(h,[["render",p]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue3_axios.md.B5xKedqx.lean.js b/assets/guide_vue3_axios.md.B5xKedqx.lean.js new file mode 100644 index 0000000..9b64ab8 --- /dev/null +++ b/assets/guide_vue3_axios.md.B5xKedqx.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const o=JSON.parse('{"title":"axios 封装及接口管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/axios.md","filePath":"guide/vue3/axios.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/axios.md"},k=n("",4),l=[k];function p(t,e,E,r,d,g){return a(),i("div",null,l)}const c=s(h,[["render",p]]);export{o as __pageData,c as default}; diff --git a/assets/guide_vue3_base.md.462dbdb9.js b/assets/guide_vue3_base.md.462dbdb9.js deleted file mode 100644 index f5ec6cc..0000000 --- a/assets/guide_vue3_base.md.462dbdb9.js +++ /dev/null @@ -1,29 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"vite.config.ts 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/base.md","filePath":"guide/vue3/base.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/base.md"},o=l(`

vite.config.ts 基础配置

如果你的 Vue Router 模式是 hash

javascript
base: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
base: '/app/',
javascript
export default function ({ command }: ConfigEnv): UserConfigExport {
-  const isProduction = command === "build";
-  return {
-    server: {
-      host: "0.0.0.0",
-    },
-    plugins: [
-      vue(),
-      vueJsx(),
-      createStyleImportPlugin({
-        resolves: [NutuiResolve()],
-      }),
-      eruda(),
-      viteMockServe({
-        mockPath: "./src/mock",
-        localEnabled: command === "serve",
-        logger: true,
-      }),
-    ],
-    css: {
-      preprocessorOptions: {
-        scss: {
-          // 配置 nutui 全局 scss 变量
-          additionalData: \`@import "@nutui/nutui/dist/styles/variables.scss";\`,
-        },
-      },
-    },
-  };
-}
`,6),e=[o];function t(c,r,F,y,D,i){return a(),n("div",null,e)}const C=s(p,[["render",t]]);export{d as __pageData,C as default}; diff --git a/assets/guide_vue3_base.md.462dbdb9.lean.js b/assets/guide_vue3_base.md.462dbdb9.lean.js deleted file mode 100644 index edb0678..0000000 --- a/assets/guide_vue3_base.md.462dbdb9.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const d=JSON.parse('{"title":"vite.config.ts 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/base.md","filePath":"guide/vue3/base.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/base.md"},o=l("",6),e=[o];function t(c,r,F,y,D,i){return a(),n("div",null,e)}const C=s(p,[["render",t]]);export{d as __pageData,C as default}; diff --git a/assets/guide_vue3_base.md.CQ5z0jOy.js b/assets/guide_vue3_base.md.CQ5z0jOy.js new file mode 100644 index 0000000..94fdfd6 --- /dev/null +++ b/assets/guide_vue3_base.md.CQ5z0jOy.js @@ -0,0 +1,42 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"vite.config.ts 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/base.md","filePath":"guide/vue3/base.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/base.md"},t=n(`

vite.config.ts 基础配置

如果你的 Vue Router 模式是 hash

javascript
base: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
base: '/app/',
javascript
export default function ({ command, mode }: ConfigEnv): UserConfig {
+  const isProduction = command === "build";
+  const root = process.cwd();
+  const env = loadEnv(mode, root);
+  const viteEnv = wrapperEnv(env);
+
+  return {
+    base: "/",
+    root,
+    resolve: {
+      alias: {
+        "@": fileURLToPath(new URL("./src", import.meta.url)),
+        "#": fileURLToPath(new URL("./types", import.meta.url)),
+      },
+    },
+    server: {
+      host: true,
+      hmr: true,
+    },
+    plugins: createVitePlugins(viteEnv, isProduction),
+    build: {
+      minify: "terser",
+      terserOptions: {
+        compress: {
+          //生产环境时移除console
+          drop_console: true,
+          drop_debugger: true,
+        },
+      },
+    },
+    css: {
+      preprocessorOptions: {
+        scss: {
+          quietDeps: true,
+          silenceDeprecations: ["legacy-js-api"],
+          // 配置 nutui 全局 scss 变量
+          additionalData: \`@use "@nutui/nutui/dist/styles/variables.scss" as *; @use '@/styles/vant.scss' as *;\`,
+        },
+      },
+    },
+  };
+}
`,6),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const o=s(h,[["render",l]]);export{c as __pageData,o as default}; diff --git a/assets/guide_vue3_base.md.CQ5z0jOy.lean.js b/assets/guide_vue3_base.md.CQ5z0jOy.lean.js new file mode 100644 index 0000000..13bd0b4 --- /dev/null +++ b/assets/guide_vue3_base.md.CQ5z0jOy.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"vite.config.ts 基础配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/base.md","filePath":"guide/vue3/base.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/base.md"},t=n("",6),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const o=s(h,[["render",l]]);export{c as __pageData,o as default}; diff --git a/assets/guide_vue3_env.md.DWttYdli.js b/assets/guide_vue3_env.md.DWttYdli.js new file mode 100644 index 0000000..0603014 --- /dev/null +++ b/assets/guide_vue3_env.md.DWttYdli.js @@ -0,0 +1,5 @@ +import{_ as s,c as e,o as i,aj as t}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/env.md","filePath":"guide/vue3/env.md","lastUpdated":1756280434000}'),a={name:"guide/vue3/env.md"},d=t(`

package.json 里的 scripts 配置 dev dev:test dev:prod ,通过 --mode xxx 来执行不同环境

  • 通过 yarn dev 启动本地环境参数 , 执行 development
  • 通过 yarn dev:test 启动测试环境参数 , 执行 test
  • 通过 yarn dev:prod 启动正式环境参数 , 执行 prod
javascript
"scripts": {
+    "dev": "vite",
+    "dev:test": "vite --mode test",
+    "dev:prod": "vite --mode production",
+}
`,3),n=[d];function o(p,l,c,h,k,r){return i(),e("div",null,n)}const v=s(a,[["render",o]]);export{u as __pageData,v as default}; diff --git a/assets/guide_vue3_env.md.DWttYdli.lean.js b/assets/guide_vue3_env.md.DWttYdli.lean.js new file mode 100644 index 0000000..4b86e73 --- /dev/null +++ b/assets/guide_vue3_env.md.DWttYdli.lean.js @@ -0,0 +1 @@ +import{_ as s,c as e,o as i,aj as t}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/env.md","filePath":"guide/vue3/env.md","lastUpdated":1756280434000}'),a={name:"guide/vue3/env.md"},d=t("",3),n=[d];function o(p,l,c,h,k,r){return i(),e("div",null,n)}const v=s(a,[["render",o]]);export{u as __pageData,v as default}; diff --git a/assets/guide_vue3_env.md.b928542e.js b/assets/guide_vue3_env.md.b928542e.js deleted file mode 100644 index e9ebbc8..0000000 --- a/assets/guide_vue3_env.md.b928542e.js +++ /dev/null @@ -1,5 +0,0 @@ -import{_ as s,o,c as e,R as a}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/env.md","filePath":"guide/vue3/env.md","lastUpdated":1731315864000}'),n={name:"guide/vue3/env.md"},p=a(`

package.json 里的 scripts 配置 dev dev:test dev:prod ,通过 --mode xxx 来执行不同环境

  • 通过 yarn dev 启动本地环境参数 , 执行 development
  • 通过 yarn dev:test 启动测试环境参数 , 执行 test
  • 通过 yarn dev:prod 启动正式环境参数 , 执行 prod
javascript
"scripts": {
-    "dev": "vite",
-    "dev:test": "vite --mode test",
-    "dev:prod": "vite --mode production",
-}
`,3),t=[p];function l(c,r,d,D,F,i){return o(),e("div",null,t)}const _=s(n,[["render",l]]);export{u as __pageData,_ as default}; diff --git a/assets/guide_vue3_env.md.b928542e.lean.js b/assets/guide_vue3_env.md.b928542e.lean.js deleted file mode 100644 index dc3e98a..0000000 --- a/assets/guide_vue3_env.md.b928542e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o,c as e,R as a}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/env.md","filePath":"guide/vue3/env.md","lastUpdated":1731315864000}'),n={name:"guide/vue3/env.md"},p=a("",3),t=[p];function l(c,r,d,D,F,i){return o(),e("div",null,t)}const _=s(n,[["render",l]]);export{u as __pageData,_ as default}; diff --git a/assets/guide_vue3_i18n.md.51f27eff.js b/assets/guide_vue3_i18n.md.51f27eff.js deleted file mode 100644 index ccf4304..0000000 --- a/assets/guide_vue3_i18n.md.51f27eff.js +++ /dev/null @@ -1,62 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"i18n 文本多语言解决方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/i18n.md","filePath":"guide/vue3/i18n.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/i18n.md"},o=l(`

i18n 文本多语言解决方案

javascript
import { createI18n } from 'vue-i18n'; // 引入第三方最新的i18n注意版本
-
-/**
- * @description: 加载当前配置的语言配置目录,随意添加
- */
-export function loadLang() {
-  const modules: Record<string, any> = import.meta.glob('./lang/*.ts', { eager: true });
-  const langs: Record<string, any> = {};
-
-  for (const path in modules) {
-    const name = path.replace(/(\\.\\/lang\\/|\\.ts)/g, '');
-    langs[name] = modules[path].lang;
-  }
-  return langs;
-}
-
-export const i18n = createI18n({
-  // globalInjection: true,
-  // legacy: false,
-  locale: 'zh-cn', // 默认语言,当前这里的数据要跟配置的lang目录下面的文件名字前缀一致
-  fallbackLocale: 'zh-cn',
-  messages: loadLang(), // 记载当前引入的语言目录的处理过后的数据
-});
-
-/**
- * @description: 切换当前多语言
- */
-export function setLang(locale?: string) {
-  if (locale) {
-    localStorage.setItem('lang', locale);
-  }
-  i18n.global.locale = locale || localStorage.getItem('lang') || '';
-}

css图片解决方案

目前在业务开发中,CSS 的样式多语言也会经常用到,可能一些图片的字体比较复杂,代码很难实现。或者我们为了减少多语言的配置,加快开发效率也会使用多语言的配置,目前这里提供 scss 的图片多语言的方案

css
@mixin main-lang-bg($width, $height, $preUrl, $posUrl) {
-  width: $width;
-  height: $height;
-  background-repeat: no-repeat;
-  background-size: 100% 100%;
-  @include loop-lang-bg($preUrl, $posUrl);
-}
-// 背景图多语言
-@mixin loop-lang-bg($preUrl, $posUrl) {
-  $list: zh-cn, en-us; // 配置需要的多语言,根据项目来
-  @each $i in $list {
-    &.#{$i} {
-      background-image: url('#{$preUrl}/#{$i}/#{$posUrl}');
-    }
-  }
-}

定义图片的目录格式

bash
├── button
-   ├── en-us
-      └── confirm.png
-   ├── zh-cn
-      └── confirm.png

HTML的使用方式

html
<template>
- <div :class="['btn-confirm', i18n.global.locale]"></div>
-</template>
-<script lang="ts" setup name="HomePage">
-    import { i18n } from '/@/i18n';
-</script>
-<style lang="scss" scoped>
-    .btn-confirm {
-        @include main-lang-bg(302px, 82px, '/@/assets/button', 'confirm.png');
-    }
-</style>
`,9),t=[o];function e(c,r,y,F,D,C){return n(),a("div",null,t)}const g=s(p,[["render",e]]);export{A as __pageData,g as default}; diff --git a/assets/guide_vue3_i18n.md.51f27eff.lean.js b/assets/guide_vue3_i18n.md.51f27eff.lean.js deleted file mode 100644 index d2f713b..0000000 --- a/assets/guide_vue3_i18n.md.51f27eff.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"i18n 文本多语言解决方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/i18n.md","filePath":"guide/vue3/i18n.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/i18n.md"},o=l("",9),t=[o];function e(c,r,y,F,D,C){return n(),a("div",null,t)}const g=s(p,[["render",e]]);export{A as __pageData,g as default}; diff --git a/assets/guide_vue3_i18n.md.DxHteO6i.js b/assets/guide_vue3_i18n.md.DxHteO6i.js new file mode 100644 index 0000000..90e4614 --- /dev/null +++ b/assets/guide_vue3_i18n.md.DxHteO6i.js @@ -0,0 +1,62 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"i18n 文本多语言解决方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/i18n.md","filePath":"guide/vue3/i18n.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/i18n.md"},l=n(`

i18n 文本多语言解决方案

javascript
import { createI18n } from 'vue-i18n'; // 引入第三方最新的i18n注意版本
+
+/**
+ * @description: 加载当前配置的语言配置目录,随意添加
+ */
+export function loadLang() {
+  const modules: Record<string, any> = import.meta.glob('./lang/*.ts', { eager: true });
+  const langs: Record<string, any> = {};
+
+  for (const path in modules) {
+    const name = path.replace(/(\\.\\/lang\\/|\\.ts)/g, '');
+    langs[name] = modules[path].lang;
+  }
+  return langs;
+}
+
+export const i18n = createI18n({
+  // globalInjection: true,
+  // legacy: false,
+  locale: 'zh-cn', // 默认语言,当前这里的数据要跟配置的lang目录下面的文件名字前缀一致
+  fallbackLocale: 'zh-cn',
+  messages: loadLang(), // 记载当前引入的语言目录的处理过后的数据
+});
+
+/**
+ * @description: 切换当前多语言
+ */
+export function setLang(locale?: string) {
+  if (locale) {
+    localStorage.setItem('lang', locale);
+  }
+  i18n.global.locale = locale || localStorage.getItem('lang') || '';
+}

css图片解决方案

目前在业务开发中,CSS 的样式多语言也会经常用到,可能一些图片的字体比较复杂,代码很难实现。或者我们为了减少多语言的配置,加快开发效率也会使用多语言的配置,目前这里提供 scss 的图片多语言的方案

css
@mixin main-lang-bg($width, $height, $preUrl, $posUrl) {
+  width: $width;
+  height: $height;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  @include loop-lang-bg($preUrl, $posUrl);
+}
+// 背景图多语言
+@mixin loop-lang-bg($preUrl, $posUrl) {
+  $list: zh-cn, en-us; // 配置需要的多语言,根据项目来
+  @each $i in $list {
+    &.#{$i} {
+      background-image: url('#{$preUrl}/#{$i}/#{$posUrl}');
+    }
+  }
+}

定义图片的目录格式

bash
├── button
+   ├── en-us
+   └── confirm.png
+   ├── zh-cn
+   └── confirm.png

HTML的使用方式

html
<template>
+ <div :class="['btn-confirm', i18n.global.locale]"></div>
+</template>
+<script lang="ts" setup name="HomePage">
+    import { i18n } from '/@/i18n';
+</script>
+<style lang="scss" scoped>
+    .btn-confirm {
+        @include main-lang-bg(302px, 82px, '/@/assets/button', 'confirm.png');
+    }
+</style>
`,9),k=[l];function p(t,e,E,r,d,g){return a(),i("div",null,k)}const c=s(h,[["render",p]]);export{F as __pageData,c as default}; diff --git a/assets/guide_vue3_i18n.md.DxHteO6i.lean.js b/assets/guide_vue3_i18n.md.DxHteO6i.lean.js new file mode 100644 index 0000000..77f6864 --- /dev/null +++ b/assets/guide_vue3_i18n.md.DxHteO6i.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"i18n 文本多语言解决方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/i18n.md","filePath":"guide/vue3/i18n.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/i18n.md"},l=n("",9),k=[l];function p(t,e,E,r,d,g){return a(),i("div",null,k)}const c=s(h,[["render",p]]);export{F as __pageData,c as default}; diff --git a/assets/guide_vue3_lint.md.18663aed.js b/assets/guide_vue3_lint.md.Be77P98W.js similarity index 76% rename from assets/guide_vue3_lint.md.18663aed.js rename to assets/guide_vue3_lint.md.Be77P98W.js index c0f2fa9..f785db7 100644 --- a/assets/guide_vue3_lint.md.18663aed.js +++ b/assets/guide_vue3_lint.md.Be77P98W.js @@ -1 +1 @@ -import{_ as i,o as l,c as n,z as e,a as t}from"./chunks/framework.6241eaf2.js";const g=JSON.parse('{"title":"Eslint + Pettier + Stylelint 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/lint.md","filePath":"guide/vue3/lint.md","lastUpdated":1731315864000}'),s={name:"guide/vue3/lint.md"},a=e("h1",{id:"eslint-pettier-stylelint-统一开发规范",tabindex:"-1"},[t("Eslint + Pettier + Stylelint 统一开发规范 "),e("a",{class:"header-anchor",href:"#eslint-pettier-stylelint-统一开发规范","aria-label":'Permalink to "Eslint + Pettier + Stylelint 统一开发规范"'},"​")],-1),r=e("p",null,[t("根目录下的 "),e("code",null,".eslintrc.js"),t("、"),e("code",null,".stylelint.config.js"),t("、"),e("code",null,".prettier.config.js"),t(" 内置了 lint 规则,帮助你规范地开发代码,有助于提高团队的代码质量和协作性,可以根据团队的规则进行修改")],-1),o=[a,r];function c(d,_,p,u,f,h){return l(),n("div",null,o)}const y=i(s,[["render",c]]);export{g as __pageData,y as default}; +import{_ as i,c as l,o as n,j as e,a as t}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"Eslint + Pettier + Stylelint 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/lint.md","filePath":"guide/vue3/lint.md","lastUpdated":1756280434000}'),s={name:"guide/vue3/lint.md"},a=e("h1",{id:"eslint-pettier-stylelint-统一开发规范",tabindex:"-1"},[t("Eslint + Pettier + Stylelint 统一开发规范 "),e("a",{class:"header-anchor",href:"#eslint-pettier-stylelint-统一开发规范","aria-label":'Permalink to "Eslint + Pettier + Stylelint 统一开发规范"'},"​")],-1),r=e("p",null,[t("根目录下的 "),e("code",null,".eslintrc.js"),t("、"),e("code",null,".stylelint.config.js"),t("、"),e("code",null,".prettier.config.js"),t(" 内置了 lint 规则,帮助你规范地开发代码,有助于提高团队的代码质量和协作性,可以根据团队的规则进行修改")],-1),o=[a,r];function c(d,_,p,u,f,h){return n(),l("div",null,o)}const y=i(s,[["render",c]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue3_lint.md.18663aed.lean.js b/assets/guide_vue3_lint.md.Be77P98W.lean.js similarity index 76% rename from assets/guide_vue3_lint.md.18663aed.lean.js rename to assets/guide_vue3_lint.md.Be77P98W.lean.js index c0f2fa9..f785db7 100644 --- a/assets/guide_vue3_lint.md.18663aed.lean.js +++ b/assets/guide_vue3_lint.md.Be77P98W.lean.js @@ -1 +1 @@ -import{_ as i,o as l,c as n,z as e,a as t}from"./chunks/framework.6241eaf2.js";const g=JSON.parse('{"title":"Eslint + Pettier + Stylelint 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/lint.md","filePath":"guide/vue3/lint.md","lastUpdated":1731315864000}'),s={name:"guide/vue3/lint.md"},a=e("h1",{id:"eslint-pettier-stylelint-统一开发规范",tabindex:"-1"},[t("Eslint + Pettier + Stylelint 统一开发规范 "),e("a",{class:"header-anchor",href:"#eslint-pettier-stylelint-统一开发规范","aria-label":'Permalink to "Eslint + Pettier + Stylelint 统一开发规范"'},"​")],-1),r=e("p",null,[t("根目录下的 "),e("code",null,".eslintrc.js"),t("、"),e("code",null,".stylelint.config.js"),t("、"),e("code",null,".prettier.config.js"),t(" 内置了 lint 规则,帮助你规范地开发代码,有助于提高团队的代码质量和协作性,可以根据团队的规则进行修改")],-1),o=[a,r];function c(d,_,p,u,f,h){return l(),n("div",null,o)}const y=i(s,[["render",c]]);export{g as __pageData,y as default}; +import{_ as i,c as l,o as n,j as e,a as t}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"Eslint + Pettier + Stylelint 统一开发规范","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/lint.md","filePath":"guide/vue3/lint.md","lastUpdated":1756280434000}'),s={name:"guide/vue3/lint.md"},a=e("h1",{id:"eslint-pettier-stylelint-统一开发规范",tabindex:"-1"},[t("Eslint + Pettier + Stylelint 统一开发规范 "),e("a",{class:"header-anchor",href:"#eslint-pettier-stylelint-统一开发规范","aria-label":'Permalink to "Eslint + Pettier + Stylelint 统一开发规范"'},"​")],-1),r=e("p",null,[t("根目录下的 "),e("code",null,".eslintrc.js"),t("、"),e("code",null,".stylelint.config.js"),t("、"),e("code",null,".prettier.config.js"),t(" 内置了 lint 规则,帮助你规范地开发代码,有助于提高团队的代码质量和协作性,可以根据团队的规则进行修改")],-1),o=[a,r];function c(d,_,p,u,f,h){return n(),l("div",null,o)}const y=i(s,[["render",c]]);export{g as __pageData,y as default}; diff --git a/assets/guide_vue3_pinia.md.0d738d45.js b/assets/guide_vue3_pinia.md.0d738d45.js deleted file mode 100644 index effa77f..0000000 --- a/assets/guide_vue3_pinia.md.0d738d45.js +++ /dev/null @@ -1,65 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Pinia 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/pinia.md","filePath":"guide/vue3/pinia.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/pinia.md"},o=l(`

Pinia 状态管理

下一代 vuex,使用极其方便,ts 兼容好

目录结构

bash
├── store
-   ├── modules
-      └── user.js
-   ├── index.js

目前pinia分为两种编程模式,Options API 和 Composition API,我们这边都会列举出来实现的业务逻辑效果是一样的,提供大家思路

Options API:

javascript
interface StoreUser {
-  token: string;
-  info: Record<any, any>;
-}
-
-export const useUserStore = defineStore({
-  id: 'app-user',
-  state: (): StoreUser => ({
-    token: token,
-    info: {},
-  }),
-  getters: {
-    getUserInfo(): any {
-      return this.info || {};
-    },
-  },
-  actions: {
-    setInfo(info: any) {
-      this.info = info ? info : '';
-    },
-    login() {
-      return new Promise((resolve) => {
-        const { data } = loginPassword();
-        watch(data, () => {
-          this.setInfo(data.value);
-          // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
-          resolve(data.value);
-        });
-      });
-    },
-  },
-});

Composition API:

javascript
export const useUserStore = defineStore('app-user', () => {
-  const Token = ref(token);
-  const info = ref<Record<any, any>>({});
-  const setInfo = (info: any) => {
-    info.value = info ? info : '';
-  };
-  const getUserInfo = () => {
-    return info || {};
-  };
-  const login = () => {
-    return new Promise((resolve) => {
-      const { data } = loginPassword();
-      watch(data, () => {
-        setInfo(data.value);
-        // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
-        resolve(data.value);
-      });
-    });
-  };
-  return {
-    Token,
-    info,
-    setInfo,
-    login,
-    getUserInfo,
-  };
-})

使用

html
<script lang="ts" setup>
-  import { useUserStore } from "@/store/modules/user";
-  const userStore = useUserStore();
-  userStore.login();
-</script>
`,11),e=[o];function t(c,r,F,y,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{i as __pageData,d as default}; diff --git a/assets/guide_vue3_pinia.md.0d738d45.lean.js b/assets/guide_vue3_pinia.md.0d738d45.lean.js deleted file mode 100644 index dd28ecf..0000000 --- a/assets/guide_vue3_pinia.md.0d738d45.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"Pinia 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/pinia.md","filePath":"guide/vue3/pinia.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/pinia.md"},o=l("",11),e=[o];function t(c,r,F,y,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{i as __pageData,d as default}; diff --git a/assets/guide_vue3_pinia.md.C2AjkaWQ.js b/assets/guide_vue3_pinia.md.C2AjkaWQ.js new file mode 100644 index 0000000..e86c783 --- /dev/null +++ b/assets/guide_vue3_pinia.md.C2AjkaWQ.js @@ -0,0 +1,65 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"Pinia 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/pinia.md","filePath":"guide/vue3/pinia.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/pinia.md"},k=n(`

Pinia 状态管理

下一代 vuex,使用极其方便,ts 兼容好

目录结构

bash
├── store
+   ├── modules
+   └── user.js
+   ├── index.js

目前pinia分为两种编程模式,Options API 和 Composition API,我们这边都会列举出来实现的业务逻辑效果是一样的,提供大家思路

Options API:

javascript
interface StoreUser {
+  token: string;
+  info: Record<any, any>;
+}
+
+export const useUserStore = defineStore({
+  id: 'app-user',
+  state: (): StoreUser => ({
+    token: token,
+    info: {},
+  }),
+  getters: {
+    getUserInfo(): any {
+      return this.info || {};
+    },
+  },
+  actions: {
+    setInfo(info: any) {
+      this.info = info ? info : '';
+    },
+    login() {
+      return new Promise((resolve) => {
+        const { data } = loginPassword();
+        watch(data, () => {
+          this.setInfo(data.value);
+          // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
+          resolve(data.value);
+        });
+      });
+    },
+  },
+});

Composition API:

javascript
export const useUserStore = defineStore('app-user', () => {
+  const Token = ref(token);
+  const info = ref<Record<any, any>>({});
+  const setInfo = (info: any) => {
+    info.value = info ? info : '';
+  };
+  const getUserInfo = () => {
+    return info || {};
+  };
+  const login = () => {
+    return new Promise((resolve) => {
+      const { data } = loginPassword();
+      watch(data, () => {
+        setInfo(data.value);
+        // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
+        resolve(data.value);
+      });
+    });
+  };
+  return {
+    Token,
+    info,
+    setInfo,
+    login,
+    getUserInfo,
+  };
+})

使用

html
<script lang="ts" setup>
+  import { useUserStore } from "@/store/modules/user";
+  const userStore = useUserStore();
+  userStore.login();
+</script>
`,11),p=[k];function l(t,e,E,r,d,g){return a(),i("div",null,p)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/assets/guide_vue3_pinia.md.C2AjkaWQ.lean.js b/assets/guide_vue3_pinia.md.C2AjkaWQ.lean.js new file mode 100644 index 0000000..5a1bbc6 --- /dev/null +++ b/assets/guide_vue3_pinia.md.C2AjkaWQ.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const F=JSON.parse('{"title":"Pinia 状态管理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/pinia.md","filePath":"guide/vue3/pinia.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/pinia.md"},k=n("",11),p=[k];function l(t,e,E,r,d,g){return a(),i("div",null,p)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/assets/guide_vue3_proxy.md.94d7124b.js b/assets/guide_vue3_proxy.md.94d7124b.js deleted file mode 100644 index 98bf95a..0000000 --- a/assets/guide_vue3_proxy.md.94d7124b.js +++ /dev/null @@ -1,9 +0,0 @@ -import{_ as s,o as a,c as n,R as p}from"./chunks/framework.6241eaf2.js";const _=JSON.parse('{"title":"proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/proxy.md","filePath":"guide/vue3/proxy.md","lastUpdated":1731315864000}'),l={name:"guide/vue3/proxy.md"},o=p(`

proxy 跨域

javascript
server: {
-    proxy: {
-        '/api': {
-            target: 'https://baidu.com',
-            changeOrigin: true,
-            rewrite: (path) => path.replace(/^\\/api/, '')
-        }
-    }
-},
`,2),e=[o];function t(r,c,F,y,D,i){return a(),n("div",null,e)}const C=s(l,[["render",t]]);export{_ as __pageData,C as default}; diff --git a/assets/guide_vue3_proxy.md.94d7124b.lean.js b/assets/guide_vue3_proxy.md.94d7124b.lean.js deleted file mode 100644 index b1c40d0..0000000 --- a/assets/guide_vue3_proxy.md.94d7124b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as p}from"./chunks/framework.6241eaf2.js";const _=JSON.parse('{"title":"proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/proxy.md","filePath":"guide/vue3/proxy.md","lastUpdated":1731315864000}'),l={name:"guide/vue3/proxy.md"},o=p("",2),e=[o];function t(r,c,F,y,D,i){return a(),n("div",null,e)}const C=s(l,[["render",t]]);export{_ as __pageData,C as default}; diff --git a/assets/guide_vue3_proxy.md.ERXS0FOC.js b/assets/guide_vue3_proxy.md.ERXS0FOC.js new file mode 100644 index 0000000..7ff72aa --- /dev/null +++ b/assets/guide_vue3_proxy.md.ERXS0FOC.js @@ -0,0 +1,9 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/proxy.md","filePath":"guide/vue3/proxy.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/proxy.md"},h=n(`

proxy 跨域

javascript
server: {
+    proxy: {
+        '/api': {
+            target: 'https://baidu.com',
+            changeOrigin: true,
+            rewrite: (path) => path.replace(/^\\/api/, '')
+        }
+    }
+},
`,2),p=[h];function e(l,k,r,E,d,o){return a(),i("div",null,p)}const y=s(t,[["render",e]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_proxy.md.ERXS0FOC.lean.js b/assets/guide_vue3_proxy.md.ERXS0FOC.lean.js new file mode 100644 index 0000000..4b7576b --- /dev/null +++ b/assets/guide_vue3_proxy.md.ERXS0FOC.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"proxy 跨域","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/proxy.md","filePath":"guide/vue3/proxy.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/proxy.md"},h=n("",2),p=[h];function e(l,k,r,E,d,o){return a(),i("div",null,p)}const y=s(t,[["render",e]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_router.md.84936a90.js b/assets/guide_vue3_router.md.84936a90.js deleted file mode 100644 index 3a8a4c4..0000000 --- a/assets/guide_vue3_router.md.84936a90.js +++ /dev/null @@ -1,19 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/router.md","filePath":"guide/vue3/router.md","lastUpdated":1731315864000}'),l={name:"guide/vue3/router.md"},p=o(`

vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式, vue.config.js 中的 publicPath 要做对应的修改

前往: vite.config.js 基础配置

javascript
import Vue from "vue";
-import { createRouter, createWebHistory, Router } from "vue-router";
-
-Vue.use(Router);
-export const router = [
-  {
-    name: "root",
-    path: "/",
-    redirect: "/home",
-    component: () => import("@/layout/basic/index.vue"),
-  },
-];
-
-const router: Router = createRouter({
-  history: createWebHistory(),
-  routes: routes,
-});
-
-export default router;
`,5),e=[p];function t(r,c,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue3_router.md.84936a90.lean.js b/assets/guide_vue3_router.md.84936a90.lean.js deleted file mode 100644 index fc7b5a8..0000000 --- a/assets/guide_vue3_router.md.84936a90.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as o}from"./chunks/framework.6241eaf2.js";const i=JSON.parse('{"title":"vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/router.md","filePath":"guide/vue3/router.md","lastUpdated":1731315864000}'),l={name:"guide/vue3/router.md"},p=o("",5),e=[p];function t(r,c,D,y,F,A){return a(),n("div",null,e)}const u=s(l,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/guide_vue3_router.md.CRRf7Qv7.js b/assets/guide_vue3_router.md.CRRf7Qv7.js new file mode 100644 index 0000000..138fe0c --- /dev/null +++ b/assets/guide_vue3_router.md.CRRf7Qv7.js @@ -0,0 +1,19 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/router.md","filePath":"guide/vue3/router.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/router.md"},e=n(`

vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式, vue.config.js 中的 publicPath 要做对应的修改

前往: vite.config.js 基础配置

javascript
import Vue from "vue";
+import { createRouter, createWebHistory, Router } from "vue-router";
+
+Vue.use(Router);
+export const router = [
+  {
+    name: "root",
+    path: "/",
+    redirect: "/home",
+    component: () => import("@/layout/basic/index.vue"),
+  },
+];
+
+const router: Router = createRouter({
+  history: createWebHistory(),
+  routes: routes,
+});
+
+export default router;
`,5),h=[e];function p(l,k,r,E,o,d){return a(),i("div",null,h)}const u=s(t,[["render",p]]);export{g as __pageData,u as default}; diff --git a/assets/guide_vue3_router.md.CRRf7Qv7.lean.js b/assets/guide_vue3_router.md.CRRf7Qv7.lean.js new file mode 100644 index 0000000..f7e69e2 --- /dev/null +++ b/assets/guide_vue3_router.md.CRRf7Qv7.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vue-router","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/router.md","filePath":"guide/vue3/router.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/router.md"},e=n("",5),h=[e];function p(l,k,r,E,o,d){return a(),i("div",null,h)}const u=s(t,[["render",p]]);export{g as __pageData,u as default}; diff --git a/assets/guide_vue3_start.md.6f88b41c.js b/assets/guide_vue3_start.md.6f88b41c.js deleted file mode 100644 index 6c5c31d..0000000 --- a/assets/guide_vue3_start.md.6f88b41c.js +++ /dev/null @@ -1,8 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/start.md","filePath":"guide/vue3/start.md","lastUpdated":1731315864000}'),t={name:"guide/vue3/start.md"},l=e(`

启动项目

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
-
-# 安装依赖
-yarn install
-
-# 启动项目
-yarn dev
`,2),o=[l];function p(c,r,i,d,_,y){return a(),n("div",null,o)}const C=s(t,[["render",p]]);export{u as __pageData,C as default}; diff --git a/assets/guide_vue3_start.md.6f88b41c.lean.js b/assets/guide_vue3_start.md.6f88b41c.lean.js deleted file mode 100644 index d52a0bd..0000000 --- a/assets/guide_vue3_start.md.6f88b41c.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as e}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/start.md","filePath":"guide/vue3/start.md","lastUpdated":1731315864000}'),t={name:"guide/vue3/start.md"},l=e("",2),o=[l];function p(c,r,i,d,_,y){return a(),n("div",null,o)}const C=s(t,[["render",p]]);export{u as __pageData,C as default}; diff --git a/assets/guide_vue3_start.md.CPrQRCQ4.js b/assets/guide_vue3_start.md.CPrQRCQ4.js new file mode 100644 index 0000000..7a987d7 --- /dev/null +++ b/assets/guide_vue3_start.md.CPrQRCQ4.js @@ -0,0 +1,19 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/start.md","filePath":"guide/vue3/start.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/start.md"},l=n(`

启动项目

bash

+# 拉取项目
+git clone https://github.com/sunniejs/vue-h5-template
+
+<<<<<<< Updated upstream
+# 安装依赖
+yarn install
+
+# 启动项目
+yarn dev
+=======
+// 安装依赖
+- pnpm install
+- yarn install
+
+// 启动项目
+- pnpm dev
+- yarn dev
+>>>>>>> Stashed changes
`,2),p=[l];function h(e,k,F,d,r,g){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{y as __pageData,o as default}; diff --git a/assets/guide_vue3_start.md.CPrQRCQ4.lean.js b/assets/guide_vue3_start.md.CPrQRCQ4.lean.js new file mode 100644 index 0000000..7d7952a --- /dev/null +++ b/assets/guide_vue3_start.md.CPrQRCQ4.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const y=JSON.parse('{"title":"启动项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/start.md","filePath":"guide/vue3/start.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/start.md"},l=n("",2),p=[l];function h(e,k,F,d,r,g){return a(),i("div",null,p)}const o=s(t,[["render",h]]);export{y as __pageData,o as default}; diff --git a/assets/guide_vue3_ui.md.385fc808.js b/assets/guide_vue3_ui.md.385fc808.js deleted file mode 100644 index e764c5d..0000000 --- a/assets/guide_vue3_ui.md.385fc808.js +++ /dev/null @@ -1,18 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"多 UI 组件库供选择","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/ui.md","filePath":"guide/vue3/ui.md","lastUpdated":1731315864000}'),o={name:"guide/vue3/ui.md"},p=l(`

多 UI 组件库供选择

Vite 构建工具,使用 vite-plugin-style-importunplugin-vue-components/vite 实现按需引入。

安装插件

bash
yarn add vite-plugin-style-import -D
-yarn add unplugin-vue-components/vite -D

使用组件库

nutUI 没有按需加载的 resolvers,style 需要自己配置按需加载

config/vite/plugins/styleImport.ts 设置

javascript
// 按需加载样式文件
-  ...
-    createStyleImportPlugin({
-      resolves: [NutuiResolve()],
-    }),
-  ...

项目在 src/plugins/nutUI.ts 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入nutUI组件
-import Vue from "vue";
-import { Button, Cell, CellGroup } from "@nutui/nutui";
-export const nutUiComponents = [Button, Cell, CellGroup];
-
-// 在main.ts文件中引入
-nutUiComponents.forEach((item) => {
-  app.use(item);
-});

vant 和 varlet 可以使用组件按需加载

config/vite/plugins/component.ts

javascript
import { VueUseComponentsResolver, VantResolver, VarletUIResolver } from 'unplugin-vue-components/resolvers';
-...
-resolvers: [VantResolver(), VarletUIResolver()],
-...

不需要某个组件库

nutUI 需删除src/plugins/nutUI.tsmain.ts文件下的引入

vant 和 varlet 只需删除对应的 resolvers 即可

删除后需全局搜索删除不需要的组件,避免报错

参考文档

`,19),e=[p];function t(r,c,i,y,D,C){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue3_ui.md.385fc808.lean.js b/assets/guide_vue3_ui.md.385fc808.lean.js deleted file mode 100644 index 15c2334..0000000 --- a/assets/guide_vue3_ui.md.385fc808.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"多 UI 组件库供选择","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/ui.md","filePath":"guide/vue3/ui.md","lastUpdated":1731315864000}'),o={name:"guide/vue3/ui.md"},p=l("",19),e=[p];function t(r,c,i,y,D,C){return a(),n("div",null,e)}const u=s(o,[["render",t]]);export{A as __pageData,u as default}; diff --git a/assets/guide_vue3_ui.md.UjYB3lCr.js b/assets/guide_vue3_ui.md.UjYB3lCr.js new file mode 100644 index 0000000..9dce13c --- /dev/null +++ b/assets/guide_vue3_ui.md.UjYB3lCr.js @@ -0,0 +1,5 @@ +import{_ as s,c as a,o as i,aj as e}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"多 UI 组件库供选择","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/ui.md","filePath":"guide/vue3/ui.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/ui.md"},n=e(`

多 UI 组件库供选择

Vite 构建工具,使用 vite-plugin-style-importunplugin-vue-components/vite 实现按需引入。

安装插件

bash
pnpm add unplugin-vue-components/vite -D

使用组件库

vant 、 varlet 和 nutUI 可以使用组件按需加载

config/vite/plugins/component.ts

javascript
import { VantResolver, VarletUIResolver } from 'unplugin-vue-components/resolvers';
+import NutUIResolver from '@nutui/auto-import-resolver';
+...
+resolvers: [VantResolver(), VarletUIResolver(), NutUIResolver()],
+...

不需要某个组件库

只需删除对应的 resolvers 即可

删除后需全局搜索删除不需要的组件,避免报错

参考文档

`,13),l=[n];function p(h,r,o,k,d,c){return i(),a("div",null,l)}const v=s(t,[["render",p]]);export{g as __pageData,v as default}; diff --git a/assets/guide_vue3_ui.md.UjYB3lCr.lean.js b/assets/guide_vue3_ui.md.UjYB3lCr.lean.js new file mode 100644 index 0000000..b024a97 --- /dev/null +++ b/assets/guide_vue3_ui.md.UjYB3lCr.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,aj as e}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"多 UI 组件库供选择","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/ui.md","filePath":"guide/vue3/ui.md","lastUpdated":1756280434000}'),t={name:"guide/vue3/ui.md"},n=e("",13),l=[n];function p(h,r,o,k,d,c){return i(),a("div",null,l)}const v=s(t,[["render",p]]);export{g as __pageData,v as default}; diff --git a/assets/guide_vue3_viewport.md.0ef62fba.js b/assets/guide_vue3_viewport.md.0ef62fba.js deleted file mode 100644 index e5b9240..0000000 --- a/assets/guide_vue3_viewport.md.0ef62fba.js +++ /dev/null @@ -1,37 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"viewport 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/viewport.md","filePath":"guide/vue3/viewport.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/viewport.md"},o=l(`

viewport 适配方案

不用担心,项目已经配置好了 viewport 适配,下面仅做介绍:

  • cnjm-postcss-px-to-viewport 是一款 postcss 插件,用于将单位转化为 vw, 现在很多浏览器对vw的支持都很好,适配首选方案。

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: { overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8'] },
-    'cnjm-postcss-px-to-viewport': {
-      unitToConvert: 'px', // 要转化的单位
-      viewportWidth: 750, // UI设计稿的宽度
-      unitPrecision: 6, // 转换后的精度,即小数点位数
-      propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
-      viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
-      fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
-      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
-      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
-      replace: true, // 是否转换后直接更换属性值
-      include: [],
-      exclude: [], // 设置忽略文件,用正则做目录名匹配
-      customFun: ({ file }) => {
-        // 这个自定义的方法是针对处理vant组件下的设计稿为375问题
-        const designWidth = judgeComponent(file) ? 375 : 750;
-        return designWidth;
-      },
-  },
-};

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题, 因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于 html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5 , 你可以看到在 iPhone 6 下看到 ( 1rem 等于 37.5px ):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的 font-size 。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕, 其他机型适配。

  • rootValue: 75 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
-
-<style>
-  /* rootValue: 75 */
-  .image {
-    width: 750px;
-    height: 1334px;
-  }
-
-  /* rootValue: 37.5 */
-  .image {
-    width: 375px;
-    height: 667px;
-  }
-</style>
`,17),e=[o];function t(c,r,D,y,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue3_viewport.md.0ef62fba.lean.js b/assets/guide_vue3_viewport.md.0ef62fba.lean.js deleted file mode 100644 index f87c2b9..0000000 --- a/assets/guide_vue3_viewport.md.0ef62fba.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,R as l}from"./chunks/framework.6241eaf2.js";const A=JSON.parse('{"title":"viewport 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/viewport.md","filePath":"guide/vue3/viewport.md","lastUpdated":1731315864000}'),p={name:"guide/vue3/viewport.md"},o=l("",17),e=[o];function t(c,r,D,y,F,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{A as __pageData,d as default}; diff --git a/assets/guide_vue3_viewport.md.TgabUsci.js b/assets/guide_vue3_viewport.md.TgabUsci.js new file mode 100644 index 0000000..b1bfa56 --- /dev/null +++ b/assets/guide_vue3_viewport.md.TgabUsci.js @@ -0,0 +1,37 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"viewport 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/viewport.md","filePath":"guide/vue3/viewport.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/viewport.md"},t=n(`

viewport 适配方案

不用担心,项目已经配置好了 viewport 适配,下面仅做介绍:

  • cnjm-postcss-px-to-viewport 是一款 postcss 插件,用于将单位转化为 vw, 现在很多浏览器对vw的支持都很好,适配首选方案。

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: { overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8'] },
+    'cnjm-postcss-px-to-viewport': {
+      unitToConvert: 'px', // 要转化的单位
+      viewportWidth: 750, // UI设计稿的宽度
+      unitPrecision: 6, // 转换后的精度,即小数点位数
+      propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
+      viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
+      fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
+      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
+      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
+      replace: true, // 是否转换后直接更换属性值
+      include: [],
+      exclude: [], // 设置忽略文件,用正则做目录名匹配
+      customFun: ({ file }) => {
+        // 这个自定义的方法是针对处理vant组件下的设计稿为375问题
+        const designWidth = judgeComponent(file) ? 375 : 750;
+        return designWidth;
+      },
+  },
+};

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题, 因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于 html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5 , 你可以看到在 iPhone 6 下看到 ( 1rem 等于 37.5px ):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的 font-size 。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕, 其他机型适配。

  • rootValue: 75 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
+
+<style>
+  /* rootValue: 75 */
+  .image {
+    width: 750px;
+    height: 1334px;
+  }
+
+  /* rootValue: 37.5 */
+  .image {
+    width: 375px;
+    height: 667px;
+  }
+</style>
`,17),p=[t];function l(k,e,E,d,r,g){return a(),i("div",null,p)}const y=s(h,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_viewport.md.TgabUsci.lean.js b/assets/guide_vue3_viewport.md.TgabUsci.lean.js new file mode 100644 index 0000000..7573830 --- /dev/null +++ b/assets/guide_vue3_viewport.md.TgabUsci.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,aj as n}from"./chunks/framework.DNhrqZu5.js";const c=JSON.parse('{"title":"viewport 适配方案","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/viewport.md","filePath":"guide/vue3/viewport.md","lastUpdated":1756280434000}'),h={name:"guide/vue3/viewport.md"},t=n("",17),p=[t];function l(k,e,E,d,r,g){return a(),i("div",null,p)}const y=s(h,[["render",l]]);export{c as __pageData,y as default}; diff --git a/assets/guide_vue3_vite.md.7a4b4162.js b/assets/guide_vue3_vite.md.7a4b4162.js deleted file mode 100644 index fa46405..0000000 --- a/assets/guide_vue3_vite.md.7a4b4162.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as i,c as t,R as l}from"./chunks/framework.6241eaf2.js";const g=JSON.parse('{"title":"vite","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/vite.md","filePath":"guide/vue3/vite.md","lastUpdated":1731315864000}'),a={name:"guide/vue3/vite.md"},n=l('

vite

基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR),使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。更多关于vite

模版集成了如下的 vite 插件

  • unplugin-auto-import(按需加载,自动引入)
  • unplugin-vue-components(按需加载,自动引入组件)
  • vite-plugin-compression(开启.gz 压缩)
  • vite-plugin-eruda(控制台,方便移动端调试)
  • vite-plugin-imagemin(图片压缩)
  • vite-plugin-mock(引入 mockjs,本地模拟接口)
  • vite-plugin-pages(动态生成路由)
  • vite-plugin-progress(构建显示进度条)
  • vite-plugin-restart(监听配置文件修改自动重启 Vite)
  • vite-plugin-style-import(按需引入样式文件)
  • vite-plugin-svg-icons(加载 SVG 文件,自动引入)
',4),o=[n];function r(s,p,u,v,_,c){return i(),t("div",null,o)}const m=e(a,[["render",r]]);export{g as __pageData,m as default}; diff --git a/assets/guide_vue3_vite.md.7a4b4162.lean.js b/assets/guide_vue3_vite.md.7a4b4162.lean.js deleted file mode 100644 index f9ea659..0000000 --- a/assets/guide_vue3_vite.md.7a4b4162.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,o as i,c as t,R as l}from"./chunks/framework.6241eaf2.js";const g=JSON.parse('{"title":"vite","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/vite.md","filePath":"guide/vue3/vite.md","lastUpdated":1731315864000}'),a={name:"guide/vue3/vite.md"},n=l("",4),o=[n];function r(s,p,u,v,_,c){return i(),t("div",null,o)}const m=e(a,[["render",r]]);export{g as __pageData,m as default}; diff --git a/assets/guide_vue3_vite.md.BCuL8Srk.js b/assets/guide_vue3_vite.md.BCuL8Srk.js new file mode 100644 index 0000000..c564130 --- /dev/null +++ b/assets/guide_vue3_vite.md.BCuL8Srk.js @@ -0,0 +1 @@ +import{_ as e,c as i,o as t,aj as l}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vite","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/vite.md","filePath":"guide/vue3/vite.md","lastUpdated":1756280434000}'),a={name:"guide/vue3/vite.md"},n=l('

vite

基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR),使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。更多关于vite

模版集成了如下的 vite 插件

  • unplugin-auto-import(按需加载,自动引入)
  • unplugin-vue-components(按需加载,自动引入组件)
  • vite-plugin-compression(开启.gz 压缩)
  • vite-plugin-eruda(控制台,方便移动端调试)
  • vite-plugin-imagemin(图片压缩)
  • vite-plugin-mock(引入 mockjs,本地模拟接口)
  • vite-plugin-pages(动态生成路由)
  • vite-plugin-progress(构建显示进度条)
  • vite-plugin-restart(监听配置文件修改自动重启 Vite)
  • vite-plugin-style-import(按需引入样式文件)
  • vite-plugin-svg-icons(加载 SVG 文件,自动引入)
',4),o=[n];function r(s,p,u,v,_,c){return t(),i("div",null,o)}const m=e(a,[["render",r]]);export{g as __pageData,m as default}; diff --git a/assets/guide_vue3_vite.md.BCuL8Srk.lean.js b/assets/guide_vue3_vite.md.BCuL8Srk.lean.js new file mode 100644 index 0000000..438d170 --- /dev/null +++ b/assets/guide_vue3_vite.md.BCuL8Srk.lean.js @@ -0,0 +1 @@ +import{_ as e,c as i,o as t,aj as l}from"./chunks/framework.DNhrqZu5.js";const g=JSON.parse('{"title":"vite","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue3/vite.md","filePath":"guide/vue3/vite.md","lastUpdated":1756280434000}'),a={name:"guide/vue3/vite.md"},n=l("",4),o=[n];function r(s,p,u,v,_,c){return t(),i("div",null,o)}const m=e(a,[["render",r]]);export{g as __pageData,m as default}; diff --git a/assets/index.md.b1dbb931.js b/assets/index.md.ClCgxQxg.js similarity index 86% rename from assets/index.md.b1dbb931.js rename to assets/index.md.ClCgxQxg.js index 73a7eb8..35d4b40 100644 --- a/assets/index.md.b1dbb931.js +++ b/assets/index.md.ClCgxQxg.js @@ -1 +1 @@ -import{_ as e,o as t,c as i}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","description":"","frontmatter":{"layout":"home","title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","hero":{"name":"Vue-H5-Template","text":"一个快速开发的Vue H5移动端脚手架","image":{"src":"https://cdn.jsdelivr.net/gh/fonghehe/picture/vue-h5-template/logo.png","alt":"sunnie"},"actions":[{"theme":"brand","text":"开始","link":"/guide/"},{"theme":"alt","text":"Github仓库","link":"https://github.com/sunniejs/vue-h5-template"}]},"features":[{"icon":"💡","title":"开箱即用","details":"集成vue2、vue3的移动端快速开发模版,学习成本低,易上手"},{"icon":"📦","title":"代码规范","details":"完整的eslint、prettier、stylelint规范,加上husky,帮助你更好的管理代码"},{"icon":"🛠️","title":"配置优化","details":"完整配置的vue脚手架插件和优化,让你专注于业务开发,更高效"},{"icon":"⚙️","title":"More","details":"加入我们,更多能力等你挖掘...."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1731315864000}'),a={name:"index.md"};function n(l,s,o,r,c,d){return t(),i("div")}const m=e(a,[["render",n]]);export{u as __pageData,m as default}; +import{_ as e,c as t,o as i}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","description":"","frontmatter":{"layout":"home","title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","hero":{"name":"Vue-H5-Template","text":"一个快速开发的Vue H5移动端脚手架","image":{"src":"https://cdn.jsdelivr.net/gh/fonghehe/picture/vue-h5-template/logo.png","alt":"sunnie"},"actions":[{"theme":"brand","text":"开始","link":"/guide/"},{"theme":"alt","text":"Github仓库","link":"https://github.com/sunniejs/vue-h5-template"}]},"features":[{"icon":"💡","title":"开箱即用","details":"集成vue2、vue3的移动端快速开发模版,学习成本低,易上手"},{"icon":"📦","title":"代码规范","details":"完整的eslint、prettier、stylelint规范,加上husky,帮助你更好的管理代码"},{"icon":"🛠️","title":"配置优化","details":"完整配置的vue脚手架插件和优化,让你专注于业务开发,更高效"},{"icon":"⚙️","title":"More","details":"加入我们,更多能力等你挖掘...."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1756280434000}'),a={name:"index.md"};function n(l,s,o,r,c,d){return i(),t("div")}const m=e(a,[["render",n]]);export{u as __pageData,m as default}; diff --git a/assets/index.md.b1dbb931.lean.js b/assets/index.md.ClCgxQxg.lean.js similarity index 86% rename from assets/index.md.b1dbb931.lean.js rename to assets/index.md.ClCgxQxg.lean.js index 73a7eb8..35d4b40 100644 --- a/assets/index.md.b1dbb931.lean.js +++ b/assets/index.md.ClCgxQxg.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as i}from"./chunks/framework.6241eaf2.js";const u=JSON.parse('{"title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","description":"","frontmatter":{"layout":"home","title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","hero":{"name":"Vue-H5-Template","text":"一个快速开发的Vue H5移动端脚手架","image":{"src":"https://cdn.jsdelivr.net/gh/fonghehe/picture/vue-h5-template/logo.png","alt":"sunnie"},"actions":[{"theme":"brand","text":"开始","link":"/guide/"},{"theme":"alt","text":"Github仓库","link":"https://github.com/sunniejs/vue-h5-template"}]},"features":[{"icon":"💡","title":"开箱即用","details":"集成vue2、vue3的移动端快速开发模版,学习成本低,易上手"},{"icon":"📦","title":"代码规范","details":"完整的eslint、prettier、stylelint规范,加上husky,帮助你更好的管理代码"},{"icon":"🛠️","title":"配置优化","details":"完整配置的vue脚手架插件和优化,让你专注于业务开发,更高效"},{"icon":"⚙️","title":"More","details":"加入我们,更多能力等你挖掘...."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1731315864000}'),a={name:"index.md"};function n(l,s,o,r,c,d){return t(),i("div")}const m=e(a,[["render",n]]);export{u as __pageData,m as default}; +import{_ as e,c as t,o as i}from"./chunks/framework.DNhrqZu5.js";const u=JSON.parse('{"title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","description":"","frontmatter":{"layout":"home","title":"Vue-H5-Template","titleTemplate":"一个快速开发的vue h5移动端脚手架","hero":{"name":"Vue-H5-Template","text":"一个快速开发的Vue H5移动端脚手架","image":{"src":"https://cdn.jsdelivr.net/gh/fonghehe/picture/vue-h5-template/logo.png","alt":"sunnie"},"actions":[{"theme":"brand","text":"开始","link":"/guide/"},{"theme":"alt","text":"Github仓库","link":"https://github.com/sunniejs/vue-h5-template"}]},"features":[{"icon":"💡","title":"开箱即用","details":"集成vue2、vue3的移动端快速开发模版,学习成本低,易上手"},{"icon":"📦","title":"代码规范","details":"完整的eslint、prettier、stylelint规范,加上husky,帮助你更好的管理代码"},{"icon":"🛠️","title":"配置优化","details":"完整配置的vue脚手架插件和优化,让你专注于业务开发,更高效"},{"icon":"⚙️","title":"More","details":"加入我们,更多能力等你挖掘...."}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1756280434000}'),a={name:"index.md"};function n(l,s,o,r,c,d){return i(),t("div")}const m=e(a,[["render",n]]);export{u as __pageData,m as default}; diff --git a/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 b/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 deleted file mode 100644 index 2a68729..0000000 Binary files a/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2 and /dev/null differ diff --git a/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 0000000..b6b603d Binary files /dev/null and b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 differ diff --git a/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 0000000..def40a4 Binary files /dev/null and b/assets/inter-italic-cyrillic.By2_1cv3.woff2 differ diff --git a/assets/inter-italic-cyrillic.ea42a392.woff2 b/assets/inter-italic-cyrillic.ea42a392.woff2 deleted file mode 100644 index f640351..0000000 Binary files a/assets/inter-italic-cyrillic.ea42a392.woff2 and /dev/null differ diff --git a/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 new file mode 100644 index 0000000..e070c3d Binary files /dev/null and b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 differ diff --git a/assets/inter-italic-greek-ext.4fbe9427.woff2 b/assets/inter-italic-greek-ext.4fbe9427.woff2 deleted file mode 100644 index 0021896..0000000 Binary files a/assets/inter-italic-greek-ext.4fbe9427.woff2 and /dev/null differ diff --git a/assets/inter-italic-greek.8f4463c4.woff2 b/assets/inter-italic-greek.8f4463c4.woff2 deleted file mode 100644 index 71c265f..0000000 Binary files a/assets/inter-italic-greek.8f4463c4.woff2 and /dev/null differ diff --git a/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 0000000..a3c16ca Binary files /dev/null and b/assets/inter-italic-greek.DJ8dCoTZ.woff2 differ diff --git a/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 0000000..2210a89 Binary files /dev/null and b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 differ diff --git a/assets/inter-italic-latin-ext.bd8920cc.woff2 b/assets/inter-italic-latin-ext.bd8920cc.woff2 deleted file mode 100644 index 9c1b944..0000000 Binary files a/assets/inter-italic-latin-ext.bd8920cc.woff2 and /dev/null differ diff --git a/assets/inter-italic-latin.C2AdPX0b.woff2 b/assets/inter-italic-latin.C2AdPX0b.woff2 new file mode 100644 index 0000000..790d62d Binary files /dev/null and b/assets/inter-italic-latin.C2AdPX0b.woff2 differ diff --git a/assets/inter-italic-latin.bd3b6f56.woff2 b/assets/inter-italic-latin.bd3b6f56.woff2 deleted file mode 100644 index 01fcf20..0000000 Binary files a/assets/inter-italic-latin.bd3b6f56.woff2 and /dev/null differ diff --git a/assets/inter-italic-vietnamese.6ce511fb.woff2 b/assets/inter-italic-vietnamese.6ce511fb.woff2 deleted file mode 100644 index e4f788e..0000000 Binary files a/assets/inter-italic-vietnamese.6ce511fb.woff2 and /dev/null differ diff --git a/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/assets/inter-italic-vietnamese.BSbpV94h.woff2 new file mode 100644 index 0000000..1eec077 Binary files /dev/null and b/assets/inter-italic-vietnamese.BSbpV94h.woff2 differ diff --git a/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 new file mode 100644 index 0000000..2cfe615 Binary files /dev/null and b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 differ diff --git a/assets/inter-roman-cyrillic-ext.e75737ce.woff2 b/assets/inter-roman-cyrillic-ext.e75737ce.woff2 deleted file mode 100644 index 28593cc..0000000 Binary files a/assets/inter-roman-cyrillic-ext.e75737ce.woff2 and /dev/null differ diff --git a/assets/inter-roman-cyrillic.5f2c6c8c.woff2 b/assets/inter-roman-cyrillic.5f2c6c8c.woff2 deleted file mode 100644 index a20adc1..0000000 Binary files a/assets/inter-roman-cyrillic.5f2c6c8c.woff2 and /dev/null differ diff --git a/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 new file mode 100644 index 0000000..e3886dd Binary files /dev/null and b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 differ diff --git a/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 0000000..36d6748 Binary files /dev/null and b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 differ diff --git a/assets/inter-roman-greek-ext.ab0619bc.woff2 b/assets/inter-roman-greek-ext.ab0619bc.woff2 deleted file mode 100644 index e3b0be7..0000000 Binary files a/assets/inter-roman-greek-ext.ab0619bc.woff2 and /dev/null differ diff --git a/assets/inter-roman-greek.BBVDIX6e.woff2 b/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 0000000..2bed1e8 Binary files /dev/null and b/assets/inter-roman-greek.BBVDIX6e.woff2 differ diff --git a/assets/inter-roman-greek.d5a6d92a.woff2 b/assets/inter-roman-greek.d5a6d92a.woff2 deleted file mode 100644 index f790e04..0000000 Binary files a/assets/inter-roman-greek.d5a6d92a.woff2 and /dev/null differ diff --git a/assets/inter-roman-latin-ext.0030eebd.woff2 b/assets/inter-roman-latin-ext.0030eebd.woff2 deleted file mode 100644 index 715bd90..0000000 Binary files a/assets/inter-roman-latin-ext.0030eebd.woff2 and /dev/null differ diff --git a/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 0000000..9a8d1e2 Binary files /dev/null and b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 differ diff --git a/assets/inter-roman-latin.2ed14f66.woff2 b/assets/inter-roman-latin.2ed14f66.woff2 deleted file mode 100644 index a540b7a..0000000 Binary files a/assets/inter-roman-latin.2ed14f66.woff2 and /dev/null differ diff --git a/assets/inter-roman-latin.Di8DUHzh.woff2 b/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 0000000..07d3c53 Binary files /dev/null and b/assets/inter-roman-latin.Di8DUHzh.woff2 differ diff --git a/assets/inter-roman-vietnamese.14ce25a6.woff2 b/assets/inter-roman-vietnamese.14ce25a6.woff2 deleted file mode 100644 index 5a9f9cb..0000000 Binary files a/assets/inter-roman-vietnamese.14ce25a6.woff2 and /dev/null differ diff --git a/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 0000000..57bdc22 Binary files /dev/null and b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 differ diff --git a/assets/style.16a63e98.css b/assets/style.16a63e98.css deleted file mode 100644 index 8778391..0000000 --- a/assets/style.16a63e98.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/vue-h5-template/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/vue-h5-template/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg)}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:10;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-350d3852]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-350d3852],h2 .VPBadge[data-v-350d3852],h3 .VPBadge[data-v-350d3852],h4 .VPBadge[data-v-350d3852],h5 .VPBadge[data-v-350d3852],h6 .VPBadge[data-v-350d3852]{vertical-align:top}h2 .VPBadge[data-v-350d3852]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-350d3852]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-350d3852]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-350d3852]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-350d3852]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPSkipLink[data-v-c8616af1]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-c8616af1]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-c8616af1]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-c8616af1]{top:14px;left:16px}}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}html:not(.dark) .VPImage.dark[data-v-6db2186b]{display:none}.dark .VPImage.light[data-v-6db2186b]{display:none}.title[data-v-4d981103]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-4d981103]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-4d981103]{border-bottom-color:var(--vp-c-divider)}}[data-v-4d981103] .logo{margin-right:8px;height:24px}/*! @docsearch/css 3.4.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.icon[data-v-8f4dc553]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s;flex-shrink:0}.VPNavBarMenuLink[data-v-5e623618]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-5e623618],.VPNavBarMenuLink[data-v-5e623618]:hover{color:var(--vp-c-brand)}.VPMenuGroup+.VPMenuLink[data-v-2f2cfafc]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2f2cfafc]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2f2cfafc]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2f2cfafc]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-764effdf]{position:relative}.VPFlyout[data-v-764effdf]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-764effdf]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-764effdf]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-764effdf]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-764effdf]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-764effdf],.button[aria-expanded=true]+.menu[data-v-764effdf]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-764effdf]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-764effdf]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-764effdf]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-764effdf]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-764effdf]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-764effdf]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-f3c41672]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-f3c41672]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-f3c41672]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-f3c41672]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-f3c41672] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-f3c41672] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-87de0873]{opacity:1}.moon[data-v-87de0873],.dark .sun[data-v-87de0873]{opacity:0}.dark .moon[data-v-87de0873]{opacity:1}.dark .VPSwitchAppearance[data-v-87de0873] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-f6a63727]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-f6a63727]{display:flex;align-items:center}}.VPSocialLink[data-v-c530cc0a]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-c530cc0a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-c530cc0a]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-d7a53887]{display:flex;justify-content:center}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.VPNavBarExtra[data-v-40855f84]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-40855f84]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-40855f84]{display:none}}.trans-title[data-v-40855f84]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-40855f84],.item.social-links[data-v-40855f84]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-40855f84]{min-width:176px}.appearance-action[data-v-40855f84]{margin-right:-2px}.social-links-list[data-v-40855f84]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-7c10cd25]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);transition:border-color .5s,background-color .5s;pointer-events:none;white-space:nowrap}.VPNavBar.has-sidebar[data-v-7c10cd25]{border-bottom-color:var(--vp-c-gutter)}@media (min-width: 768px){.VPNavBar[data-v-7c10cd25]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-7c10cd25]{border-bottom-color:transparent;padding:0}.VPNavBar.fill[data-v-7c10cd25]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-7c10cd25]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-7c10cd25],.container>.content[data-v-7c10cd25]{pointer-events:none}.container[data-v-7c10cd25] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-7c10cd25]{max-width:100%}}.title[data-v-7c10cd25]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-7c10cd25]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-7c10cd25]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-7c10cd25]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-7c10cd25]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-7c10cd25]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-7c10cd25]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-7c10cd25],.VPNavBar.fill .content-body[data-v-7c10cd25]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 768px){.content-body[data-v-7c10cd25]{column-gap:.5rem}}.menu+.translations[data-v-7c10cd25]:before,.menu+.appearance[data-v-7c10cd25]:before,.menu+.social-links[data-v-7c10cd25]:before,.translations+.appearance[data-v-7c10cd25]:before,.appearance+.social-links[data-v-7c10cd25]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-7c10cd25]:before,.translations+.appearance[data-v-7c10cd25]:before{margin-right:16px}.appearance+.social-links[data-v-7c10cd25]:before{margin-left:16px}.social-links[data-v-7c10cd25]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-7c10cd25]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-7c10cd25]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-7c10cd25]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-30be0acb]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-30be0acb]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-6656c42a]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-6656c42a]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-338a1689]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-338a1689]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-338a1689]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-338a1689]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-338a1689]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-338a1689]{transform:rotate(45deg)}.button[data-v-338a1689]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-338a1689]:hover{color:var(--vp-c-brand)}.button-icon[data-v-338a1689]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-338a1689]:first-child{padding-top:0}.group+.group[data-v-338a1689],.group+.item[data-v-338a1689]{padding-top:4px}.VPNavScreenAppearance[data-v-add8f686]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-add8f686]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-724636ae]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-724636ae],.VPNavScreen.fade-leave-active[data-v-724636ae]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-724636ae],.VPNavScreen.fade-leave-active .container[data-v-724636ae]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-724636ae],.VPNavScreen.fade-leave-to[data-v-724636ae]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-724636ae],.VPNavScreen.fade-leave-to .container[data-v-724636ae]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-724636ae]{display:none}}.container[data-v-724636ae]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-724636ae],.menu+.appearance[data-v-724636ae],.translations+.appearance[data-v-724636ae]{margin-top:24px}.menu+.social-links[data-v-724636ae]{margin-top:16px}.appearance+.social-links[data-v-724636ae]{margin-top:16px}.VPNav[data-v-7e5bc4a5]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7e5bc4a5]{position:fixed}}.root[data-v-9a431c33]{position:relative;z-index:1}.nested[data-v-9a431c33]{padding-left:13px}.outline-link[data-v-9a431c33]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-9a431c33]:hover,.outline-link.active[data-v-9a431c33]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-9a431c33]{padding-left:13px}.VPLocalNavOutlineDropdown[data-v-079b16a8]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-079b16a8]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-079b16a8]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-079b16a8]{color:var(--vp-c-text-1)}.icon[data-v-079b16a8]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-079b16a8] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-079b16a8]{transform:rotate(90deg)}.items[data-v-079b16a8]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-079b16a8]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-079b16a8]{transition:all .2s ease-out}.flyout-leave-active[data-v-079b16a8]{transition:all .15s ease-in}.flyout-enter-from[data-v-079b16a8],.flyout-leave-to[data-v-079b16a8]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-392e1bf8]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-392e1bf8]{display:none}}.menu[data-v-392e1bf8]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-392e1bf8]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-392e1bf8]{padding:0 32px}}.menu-icon[data-v-392e1bf8]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-392e1bf8]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-392e1bf8]{padding:12px 32px 11px}}.VPSidebarItem.level-0[data-v-c4656e6d]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-c4656e6d]{padding-bottom:10px}.item[data-v-c4656e6d]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-c4656e6d]{cursor:pointer}.indicator[data-v-c4656e6d]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-c4656e6d],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-c4656e6d]{background-color:var(--vp-c-brand)}.link[data-v-c4656e6d]{display:flex;align-items:center;flex-grow:1}.text[data-v-c4656e6d]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-c4656e6d]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-c4656e6d],.VPSidebarItem.level-2 .text[data-v-c4656e6d],.VPSidebarItem.level-3 .text[data-v-c4656e6d],.VPSidebarItem.level-4 .text[data-v-c4656e6d],.VPSidebarItem.level-5 .text[data-v-c4656e6d]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-c4656e6d],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-c4656e6d]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-c4656e6d],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-c4656e6d]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-c4656e6d],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-c4656e6d]{color:var(--vp-c-brand)}.caret[data-v-c4656e6d]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s}.item:hover .caret[data-v-c4656e6d]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-c4656e6d]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-c4656e6d]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-c4656e6d]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-c4656e6d],.VPSidebarItem.level-2 .items[data-v-c4656e6d],.VPSidebarItem.level-3 .items[data-v-c4656e6d],.VPSidebarItem.level-4 .items[data-v-c4656e6d],.VPSidebarItem.level-5 .items[data-v-c4656e6d]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-c4656e6d]{display:none}.VPSidebar[data-v-af16598e]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-af16598e]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-af16598e]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-af16598e]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-af16598e]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-af16598e]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-af16598e]{outline:0}.group+.group[data-v-af16598e]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-af16598e]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPButton[data-v-567ba664]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-567ba664]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-567ba664]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-567ba664]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-567ba664]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-567ba664]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-567ba664]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-567ba664]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-567ba664]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-567ba664]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-567ba664]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-567ba664]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-567ba664]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-fd2650d5]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-fd2650d5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-fd2650d5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-fd2650d5]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-fd2650d5]{flex-direction:row}}.main[data-v-fd2650d5]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-fd2650d5]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-fd2650d5]{text-align:left}}@media (min-width: 960px){.main[data-v-fd2650d5]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-fd2650d5]{max-width:592px}}.name[data-v-fd2650d5],.text[data-v-fd2650d5]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-fd2650d5],.VPHero.has-image .text[data-v-fd2650d5]{margin:0 auto}.name[data-v-fd2650d5]{color:var(--vp-home-hero-name-color)}.clip[data-v-fd2650d5]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-fd2650d5],.text[data-v-fd2650d5]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-fd2650d5],.text[data-v-fd2650d5]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-fd2650d5],.VPHero.has-image .text[data-v-fd2650d5]{margin:0}}.tagline[data-v-fd2650d5]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-fd2650d5]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-fd2650d5]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-fd2650d5]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-fd2650d5]{margin:0}}.actions[data-v-fd2650d5]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-fd2650d5]{justify-content:center}@media (min-width: 640px){.actions[data-v-fd2650d5]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-fd2650d5]{justify-content:flex-start}}.action[data-v-fd2650d5]{flex-shrink:0;padding:6px}.image[data-v-fd2650d5]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-fd2650d5]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-fd2650d5]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-fd2650d5]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-fd2650d5]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-fd2650d5]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-fd2650d5]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-fd2650d5]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-fd2650d5]{width:320px;height:320px}}[data-v-fd2650d5] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-fd2650d5] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-fd2650d5] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-837f6cca]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-837f6cca]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-837f6cca]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-837f6cca] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-837f6cca]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-837f6cca]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-837f6cca]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-837f6cca]{padding-top:8px}.link-text-value[data-v-837f6cca]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-837f6cca]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-ba861f23]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-ba861f23]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-ba861f23]{padding:0 64px}}.container[data-v-ba861f23]{margin:0 auto;max-width:1152px}.items[data-v-ba861f23]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-ba861f23]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-ba861f23],.item.grid-4[data-v-ba861f23],.item.grid-6[data-v-ba861f23]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-ba861f23],.item.grid-4[data-v-ba861f23]{width:50%}.item.grid-3[data-v-ba861f23],.item.grid-6[data-v-ba861f23]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-ba861f23]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPDocAsideOutline[data-v-ff0f39c8]{display:none}.VPDocAsideOutline.has-outline[data-v-ff0f39c8]{display:block}.content[data-v-ff0f39c8]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-ff0f39c8]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-ff0f39c8]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7b3ebfe1]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7b3ebfe1]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-face870a]{margin-top:64px}.edit-info[data-v-face870a]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-face870a]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-face870a]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-face870a]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-face870a]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-face870a]{border-top:1px solid var(--vp-c-divider);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-face870a]{display:flex}}.pager.has-prev[data-v-face870a]{padding-top:8px}@media (min-width: 640px){.pager[data-v-face870a]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-face870a]{padding-top:0;padding-left:16px}}.pager-link[data-v-face870a]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-face870a]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-face870a]{margin-left:auto;text-align:right}.desc[data-v-face870a]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-face870a]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-2edece88]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-2edece88]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-2edece88]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-2edece88]{color:var(--vp-c-text-1)}.icon[data-v-2edece88]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-2edece88] .outline-link{font-size:13px}.open>.icon[data-v-2edece88]{transform:rotate(90deg)}.items[data-v-2edece88]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-c4b0d3cf]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-c4b0d3cf]{display:none}@media (min-width: 960px) and (max-width: 1280px){.VPDoc .VPDocOutlineDropdown[data-v-c4b0d3cf]{display:block}}@media (min-width: 768px){.VPDoc[data-v-c4b0d3cf]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-c4b0d3cf]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-c4b0d3cf]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-c4b0d3cf]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-c4b0d3cf]{display:flex;justify-content:center}.VPDoc .aside[data-v-c4b0d3cf]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-c4b0d3cf]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-c4b0d3cf]{max-width:1104px}}.container[data-v-c4b0d3cf]{margin:0 auto;width:100%}.aside[data-v-c4b0d3cf]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-c4b0d3cf]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-c4b0d3cf]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-c4b0d3cf]::-webkit-scrollbar{display:none}.aside-curtain[data-v-c4b0d3cf]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-c4b0d3cf]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-c4b0d3cf]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-c4b0d3cf]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-c4b0d3cf]{order:1;margin:0;min-width:640px}}.content-container[data-v-c4b0d3cf]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-c4b0d3cf]{max-width:688px}.NotFound[data-v-c70503b8]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-c70503b8]{padding:96px 32px 168px}}.code[data-v-c70503b8]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-c70503b8]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-c70503b8]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-c70503b8]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-c70503b8]{padding-top:20px}.link[data-v-c70503b8]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-c70503b8]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPContent[data-v-a494bd1d]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-a494bd1d]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-a494bd1d]{margin:0}@media (min-width: 960px){.VPContent[data-v-a494bd1d]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-a494bd1d]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-a494bd1d]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-2f86ebd2]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-2f86ebd2]{display:none}@media (min-width: 768px){.VPFooter[data-v-2f86ebd2]{padding:32px}}.container[data-v-2f86ebd2]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-2f86ebd2],.copyright[data-v-2f86ebd2]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-2f86ebd2]{order:2}.copyright[data-v-2f86ebd2]{order:1}.Layout[data-v-b2cf3e0b]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3c6e61c2]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-3c6e61c2]{margin:0 auto;max-width:1152px}.love[data-v-3c6e61c2]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-3c6e61c2]{width:28px;height:28px;fill:currentColor}.message[data-v-3c6e61c2]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3c6e61c2]{padding-top:32px}.action[data-v-3c6e61c2]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-a3462077]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-a3462077]{padding:32px}.VPTeamMembersItem.small .data[data-v-a3462077]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-a3462077]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-a3462077]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-a3462077]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-a3462077]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-a3462077]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-a3462077]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-a3462077]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-a3462077]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-a3462077]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-a3462077]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-a3462077]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-a3462077]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-a3462077]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-a3462077]{text-align:center}.avatar[data-v-a3462077]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-a3462077]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-a3462077]{margin:0;font-weight:600}.affiliation[data-v-a3462077]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-a3462077]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-a3462077]:hover{color:var(--vp-c-brand)}.desc[data-v-a3462077]{margin:0 auto}.desc[data-v-a3462077] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-a3462077]{display:flex;justify-content:center;height:56px}.sp-link[data-v-a3462077]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-a3462077]:hover,.sp .sp-link.link[data-v-a3462077]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-a3462077]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-04685dce]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-04685dce]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-04685dce]{max-width:876px}.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-04685dce]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-04685dce]{max-width:760px}.container[data-v-04685dce]{display:grid;gap:24px;margin:0 auto;max-width:1152px}img[data-v-72ad4494]{margin:0 auto}:root{--vp-c-brand: #16c5fe;--vp-c-green: #16c5fe;--vp-c-green-light: #109ef7;--vp-c-green-lighter: #109ef7;--vp-c-green-dark: #109ef7;--vp-c-green-darker: #109ef7}.dark{--vp-c-bg: #000;--vp-code-block-bg: #111;--vp-c-bg-alt: rgba(0, 0, 0, .5)}@media (min-width: 960px){.dark .VPNavBar.has-sidebar .content[data-v-d84f2262]{background:rgba(36,36,36,.1)}}.Layout:before{content:"";background-size:100% 100%;background-position:right;background-repeat:no-repeat;opacity:1;max-width:100%;height:100%;width:50%;position:fixed;top:-20%;right:-10%;display:block}.Layout:after{content:"";background-size:100% 100%;background-position:right;background-repeat:no-repeat;opacity:1;max-width:100%;height:100%;width:50%;position:fixed;bottom:-20%;left:-10%;display:block;z-index:-1}@media (min-width: 960px){.title{font-size:18px!important}}.image-src{max-width:220px!important} diff --git a/assets/style.Cp16RYUD.css b/assets/style.Cp16RYUD.css new file mode 100644 index 0000000..2e56d79 --- /dev/null +++ b/assets/style.Cp16RYUD.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/vue-h5-template/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-d6be1790]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-d6be1790]{padding:96px 32px 168px}}.code[data-v-d6be1790]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-d6be1790]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-d6be1790]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-d6be1790]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-d6be1790]{padding-top:20px}.link[data-v-d6be1790]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-d6be1790]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-a5bbad30]{display:none}.VPDocAsideOutline.has-outline[data-v-a5bbad30]{display:block}.content[data-v-a5bbad30]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-a5bbad30]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-a5bbad30]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-e98dd255]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-e98dd255]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-e257564d]{margin-top:64px}.edit-info[data-v-e257564d]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-e257564d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-e257564d]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-e257564d]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-e257564d]{margin-right:8px}.prev-next[data-v-e257564d]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-e257564d]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-e257564d]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-e257564d]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-e257564d]{margin-left:auto;text-align:right}.desc[data-v-e257564d]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-e257564d]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-39a288b8]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-39a288b8]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-39a288b8]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-39a288b8]{display:flex;justify-content:center}.VPDoc .aside[data-v-39a288b8]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-39a288b8]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-39a288b8]{max-width:1104px}}.container[data-v-39a288b8]{margin:0 auto;width:100%}.aside[data-v-39a288b8]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-39a288b8]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-39a288b8]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-39a288b8]::-webkit-scrollbar{display:none}.aside-curtain[data-v-39a288b8]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-39a288b8]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-39a288b8]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-39a288b8]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-39a288b8]{order:1;margin:0;min-width:640px}}.content-container[data-v-39a288b8]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-39a288b8]{max-width:688px}.VPButton[data-v-fa7799d5]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-fa7799d5]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-fa7799d5]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-fa7799d5]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-fa7799d5]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-fa7799d5]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-fa7799d5]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-fa7799d5]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-fa7799d5]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-fa7799d5]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-fa7799d5]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-fa7799d5]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-fa7799d5]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-4f9c455b]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-4f9c455b]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-4f9c455b]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-4f9c455b]{flex-direction:row}}.main[data-v-4f9c455b]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-4f9c455b]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-4f9c455b]{text-align:left}}@media (min-width: 960px){.main[data-v-4f9c455b]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-4f9c455b]{max-width:592px}}.heading[data-v-4f9c455b]{display:flex;flex-direction:column}.name[data-v-4f9c455b],.text[data-v-4f9c455b]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0 auto}.name[data-v-4f9c455b]{color:var(--vp-home-hero-name-color)}.clip[data-v-4f9c455b]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-4f9c455b],.text[data-v-4f9c455b]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-4f9c455b],.VPHero.has-image .text[data-v-4f9c455b]{margin:0}}.tagline[data-v-4f9c455b]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-4f9c455b]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-4f9c455b]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-4f9c455b]{margin:0}}.actions[data-v-4f9c455b]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:center}@media (min-width: 640px){.actions[data-v-4f9c455b]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-4f9c455b]{justify-content:flex-start}}.action[data-v-4f9c455b]{flex-shrink:0;padding:6px}.image[data-v-4f9c455b]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-4f9c455b]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-4f9c455b]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-4f9c455b]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-4f9c455b]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-4f9c455b]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-4f9c455b]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-4f9c455b]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-4f9c455b]{width:320px;height:320px}}[data-v-4f9c455b] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-4f9c455b] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-4f9c455b] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-a3976bdc]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-a3976bdc]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-a3976bdc]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-a3976bdc]>.VPImage{margin-bottom:20px}.icon[data-v-a3976bdc]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-a3976bdc]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-a3976bdc]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-a3976bdc]{padding-top:8px}.link-text-value[data-v-a3976bdc]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-a3976bdc]{margin-left:6px}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.container[data-v-8e2d4988]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-8e2d4988]{padding:0 48px}}@media (min-width: 960px){.container[data-v-8e2d4988]{width:100%;padding:0 64px}}.vp-doc[data-v-8e2d4988] .VPHomeSponsors,.vp-doc[data-v-8e2d4988] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-8e2d4988] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-8e2d4988] .VPHomeSponsors a,.vp-doc[data-v-8e2d4988] .VPTeamPage a{text-decoration:none}.VPHome[data-v-8b561e3d]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-8b561e3d]{margin-bottom:128px}}.VPContent[data-v-1428d186]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1428d186]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1428d186]{margin:0}@media (min-width: 960px){.VPContent[data-v-1428d186]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1428d186]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-1428d186]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-8a42e2b4]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-8a42e2b4]{color:var(--vp-c-text-1)}.icon[data-v-8a42e2b4]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-8a42e2b4]{font-size:14px}.icon[data-v-8a42e2b4]{font-size:16px}}.open>.icon[data-v-8a42e2b4]{transform:rotate(90deg)}.items[data-v-8a42e2b4]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-8a42e2b4]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-8a42e2b4]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-8a42e2b4]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-8a42e2b4]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-8a42e2b4]{transition:all .2s ease-out}.flyout-leave-active[data-v-8a42e2b4]{transition:all .15s ease-in}.flyout-enter-from[data-v-8a42e2b4],.flyout-leave-to[data-v-8a42e2b4]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-a6f0e41e]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-a6f0e41e]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-a6f0e41e]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-a6f0e41e]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-a6f0e41e]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-a6f0e41e]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-a6f0e41e]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-a6f0e41e]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-a6f0e41e]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-a6f0e41e]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-a6f0e41e]{display:none}}.menu-icon[data-v-a6f0e41e]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-a6f0e41e]{padding:12px 32px 11px}}.VPSwitch[data-v-1d5665e3]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-1d5665e3]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-1d5665e3]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-1d5665e3]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-1d5665e3] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-1d5665e3] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-5337faa4]{opacity:1}.moon[data-v-5337faa4],.dark .sun[data-v-5337faa4]{opacity:0}.dark .moon[data-v-5337faa4]{opacity:1}.dark .VPSwitchAppearance[data-v-5337faa4] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-6c893767]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-6c893767]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-35975db6]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-35975db6]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-35975db6]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-35975db6]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-b98bc113]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-b98bc113] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-b98bc113] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-b98bc113] .group:last-child{padding-bottom:0}.VPMenu[data-v-b98bc113] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-b98bc113] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-b98bc113] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-b98bc113] .action{padding-left:24px}.VPFlyout[data-v-cf11d7a2]{position:relative}.VPFlyout[data-v-cf11d7a2]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-cf11d7a2]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-cf11d7a2]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-cf11d7a2]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-cf11d7a2]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-cf11d7a2]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-cf11d7a2],.button[aria-expanded=true]+.menu[data-v-cf11d7a2]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-cf11d7a2]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-cf11d7a2]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-cf11d7a2]{margin-right:0;font-size:16px}.text-icon[data-v-cf11d7a2]{margin-left:4px;font-size:14px}.icon[data-v-cf11d7a2]{font-size:20px;transition:fill .25s}.menu[data-v-cf11d7a2]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-bd121fe5]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-bd121fe5]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-bd121fe5]>svg,.VPSocialLink[data-v-bd121fe5]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-bb2aa2f0]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-bb2aa2f0]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-bb2aa2f0]{display:none}}.trans-title[data-v-bb2aa2f0]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-bb2aa2f0],.item.social-links[data-v-bb2aa2f0]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-bb2aa2f0]{min-width:176px}.appearance-action[data-v-bb2aa2f0]{margin-right:-2px}.social-links-list[data-v-bb2aa2f0]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-e56f3d57]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-e56f3d57],.VPNavBarMenuLink[data-v-e56f3d57]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-dc692963]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-dc692963]{display:flex}}/*! @docsearch/css 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-1168a8e4]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-1168a8e4]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-1168a8e4]{border-bottom-color:var(--vp-c-divider)}}[data-v-1168a8e4] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-88af2de4]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-88af2de4]{display:flex;align-items:center}}.title[data-v-88af2de4]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-6aa21345]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-6aa21345]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-6aa21345]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-6aa21345]:not(.home){background-color:transparent}.VPNavBar[data-v-6aa21345]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-6aa21345]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-6aa21345]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-6aa21345]{padding:0}}.container[data-v-6aa21345]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-6aa21345],.container>.content[data-v-6aa21345]{pointer-events:none}.container[data-v-6aa21345] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-6aa21345]{max-width:100%}}.title[data-v-6aa21345]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-6aa21345]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-6aa21345]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-6aa21345]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-6aa21345]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-6aa21345]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-6aa21345]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-6aa21345]{column-gap:.5rem}}.menu+.translations[data-v-6aa21345]:before,.menu+.appearance[data-v-6aa21345]:before,.menu+.social-links[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before,.appearance+.social-links[data-v-6aa21345]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-6aa21345]:before,.translations+.appearance[data-v-6aa21345]:before{margin-right:16px}.appearance+.social-links[data-v-6aa21345]:before{margin-left:16px}.social-links[data-v-6aa21345]{margin-right:-8px}.divider[data-v-6aa21345]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-6aa21345]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-6aa21345]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-6aa21345]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-6aa21345]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-b44890b2]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-b44890b2]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-df37e6dd]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-df37e6dd]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-3e9c20e4]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-b9ab8c58]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-b9ab8c58]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-b9ab8c58]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-b9ab8c58]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-b9ab8c58]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-b9ab8c58]{transform:rotate(45deg)}.button[data-v-b9ab8c58]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-b9ab8c58]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-b9ab8c58]{transition:transform .25s}.group[data-v-b9ab8c58]:first-child{padding-top:0}.group+.group[data-v-b9ab8c58],.group+.item[data-v-b9ab8c58]{padding-top:4px}.VPNavScreenTranslations[data-v-858fe1a4]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-858fe1a4]{height:auto}.title[data-v-858fe1a4]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-858fe1a4]{font-size:16px}.icon.lang[data-v-858fe1a4]{margin-right:8px}.icon.chevron[data-v-858fe1a4]{margin-left:4px}.list[data-v-858fe1a4]{padding:4px 0 0 24px}.link[data-v-858fe1a4]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-f2779853]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-f2779853],.VPNavScreen.fade-leave-active[data-v-f2779853]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-f2779853],.VPNavScreen.fade-leave-active .container[data-v-f2779853]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-f2779853],.VPNavScreen.fade-leave-to[data-v-f2779853]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-f2779853],.VPNavScreen.fade-leave-to .container[data-v-f2779853]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-f2779853]{display:none}}.container[data-v-f2779853]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-f2779853],.menu+.appearance[data-v-f2779853],.translations+.appearance[data-v-f2779853]{margin-top:24px}.menu+.social-links[data-v-f2779853]{margin-top:16px}.appearance+.social-links[data-v-f2779853]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-b3fd67f8]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-b3fd67f8]{padding-bottom:10px}.item[data-v-b3fd67f8]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-b3fd67f8]{cursor:pointer}.indicator[data-v-b3fd67f8]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-b3fd67f8]{background-color:var(--vp-c-brand-1)}.link[data-v-b3fd67f8]{display:flex;align-items:center;flex-grow:1}.text[data-v-b3fd67f8]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-b3fd67f8]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-b3fd67f8],.VPSidebarItem.level-2 .text[data-v-b3fd67f8],.VPSidebarItem.level-3 .text[data-v-b3fd67f8],.VPSidebarItem.level-4 .text[data-v-b3fd67f8],.VPSidebarItem.level-5 .text[data-v-b3fd67f8]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.text[data-v-b3fd67f8],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-b3fd67f8]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-b3fd67f8],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-b3fd67f8]{color:var(--vp-c-brand-1)}.caret[data-v-b3fd67f8]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-b3fd67f8]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-b3fd67f8]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-b3fd67f8]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-b3fd67f8]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-b3fd67f8],.VPSidebarItem.level-2 .items[data-v-b3fd67f8],.VPSidebarItem.level-3 .items[data-v-b3fd67f8],.VPSidebarItem.level-4 .items[data-v-b3fd67f8],.VPSidebarItem.level-5 .items[data-v-b3fd67f8]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-b3fd67f8]{display:none}.no-transition[data-v-c40bc020] .caret-icon{transition:none}.group+.group[data-v-c40bc020]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-c40bc020]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-319d5ca6]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-319d5ca6]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-319d5ca6]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-319d5ca6]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-319d5ca6]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-319d5ca6]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-319d5ca6]{outline:0}.VPSkipLink[data-v-0b0ada53]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0b0ada53]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0b0ada53]{top:14px;left:16px}}.Layout[data-v-5d98c3a5]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3d121b4a]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-3d121b4a]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{margin:128px 0}}.VPHomeSponsors[data-v-3d121b4a]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-3d121b4a]{padding:0 64px}}.container[data-v-3d121b4a]{margin:0 auto;max-width:1152px}.love[data-v-3d121b4a]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-3d121b4a]{display:inline-block}.message[data-v-3d121b4a]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3d121b4a]{padding-top:32px}.action[data-v-3d121b4a]{padding-top:40px;text-align:center}.VPTeamMembersItem[data-v-f3fa364a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-f3fa364a]{padding:32px}.VPTeamMembersItem.small .data[data-v-f3fa364a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-f3fa364a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-f3fa364a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-f3fa364a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-f3fa364a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-f3fa364a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-f3fa364a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-f3fa364a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-f3fa364a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-f3fa364a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-f3fa364a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-f3fa364a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-f3fa364a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-f3fa364a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-f3fa364a]{text-align:center}.avatar[data-v-f3fa364a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-f3fa364a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-f3fa364a]{margin:0;font-weight:600}.affiliation[data-v-f3fa364a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-f3fa364a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-f3fa364a]:hover{color:var(--vp-c-brand-1)}.desc[data-v-f3fa364a]{margin:0 auto}.desc[data-v-f3fa364a] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-f3fa364a]{display:flex;justify-content:center;height:56px}.sp-link[data-v-f3fa364a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-f3fa364a]:hover,.sp .sp-link.link[data-v-f3fa364a]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-f3fa364a]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.VPTeamPage[data-v-7c57f839]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-7c57f839]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-7c57f839-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-7c57f839-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-7c57f839-s],.VPTeamMembers+.VPTeamPageSection[data-v-7c57f839-s]{margin-top:96px}}.VPTeamMembers[data-v-7c57f839-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-7c57f839-s]{padding:0 64px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}:root{--vp-c-brand: #16c5fe;--vp-c-green: #16c5fe;--vp-c-green-light: #109ef7;--vp-c-green-lighter: #109ef7;--vp-c-green-dark: #109ef7;--vp-c-green-darker: #109ef7}.dark{--vp-c-bg: #000;--vp-code-block-bg: #111;--vp-c-bg-alt: rgba(0, 0, 0, .5)}@media (min-width: 960px){.dark .VPNavBar.has-sidebar .content[data-v-d84f2262]{background:#2424241a}}.Layout:before{content:"";background-size:100% 100%;background-position:right;background-repeat:no-repeat;opacity:1;max-width:100%;height:100%;width:50%;position:fixed;top:-20%;right:-10%;display:block}.Layout:after{content:"";background-size:100% 100%;background-position:right;background-repeat:no-repeat;opacity:1;max-width:100%;height:100%;width:50%;position:fixed;bottom:-20%;left:-10%;display:block;z-index:-1}@media (min-width: 960px){.title{font-size:18px!important}}.image-src{max-width:220px!important}img[data-v-4991c6c3]{margin:0 auto} diff --git a/guide/about/index.html b/guide/about/index.html index ae42f5c..967a100 100644 --- a/guide/about/index.html +++ b/guide/about/index.html @@ -3,21 +3,24 @@ - Vue-H5-Template | Vue-H5-Template + Vue-H5-Template - - - - - - - - + + + + + + + + + + + + - - + + \ No newline at end of file diff --git a/guide/edit.html b/guide/edit.html index 9946152..ce8f058 100644 --- a/guide/edit.html +++ b/guide/edit.html @@ -5,29 +5,33 @@ 参与编辑 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

参与编辑

欢迎有意愿参与到开源的朋友,加入到本文档的编写,书写文档不仅是教会别人知识,更是用自己的表达方式概括自己所学习知识的一种方式,这对个人来说是不可多得的成长机会。

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
+    
Skip to content

参与编辑

欢迎有意愿参与到开源的朋友,加入到本文档的编写,书写文档不仅是教会别人知识,更是用自己的表达方式概括自己所学习知识的一种方式,这对个人来说是不可多得的成长机会。

bash

+# 拉取项目
+git clone https://github.com/sunniejs/vue-h5-template
 
-# 切换分支
-git checkout -b docs origin/docs
+# 切换分支
+git checkout -b docs origin/docs
 
-# 安装依赖
-yarn install
+# 安装依赖
+yarn install
 
-# 启动项目
-yarn start

Released under the MIT License.

- +# 启动项目 +yarn start

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/index.html b/guide/index.html index 85badd8..d571a0c 100644 --- a/guide/index.html +++ b/guide/index.html @@ -3,21 +3,24 @@ - Vue-H5-Template | Vue-H5-Template + Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Vue-H5-Template

Vue-H5-Template,是基于 vite3 + vue3 + pinia + ( Vant or Varlet or NutUI ) + viewport 适配方案 ,构建移动端快速开发脚手架

特点

最新技术栈

  • 框架选型基于当下流行的 vue + vite + ts 模式,精选社区 star 和满意度均不错的 ui 框架和 vite 插件,并时常进行更新,确保与官方文档一致

基于 TypeScript

  • Typescript 逐渐在各种大型的 js 项目中使用,明确的类型定义可以省下不少的开发和维护成本

轻量级

  • 不同于集成的脚手架,尽量做到轻量不冗杂,只引入高频次的插件和清晰的示例
  • 轻装上阵,便于拓展开发,减少学习成本

通俗易懂的文档

  • 基于最新 VitePress 构建的文档,更快,更便捷
  • 更快的热更新

Released under the MIT License.

- +
Skip to content

Vue-H5-Template

Vue-H5-Template,是基于 vite7 + vue3.5 + pinia + ( Vant or Varlet or NutUI ) + viewport(VW) 适配方案 ,构建移动端快速开发脚手架

特点

最新技术栈

  • 框架选型基于当下流行的 vue + vite + ts 模式,精选社区 star 数 和满意度均不错的 ui 框架和 vite 插件,并时常进行更新,确保与官方文档一致

基于 TypeScript

  • Typescript 逐渐在各种大型的 js 项目中使用,明确的类型定义可以省下不少的开发和维护成本

轻量级

  • 不同于集成的脚手架,尽量做到轻量不冗杂,只引入高频次的插件和清晰的示例
  • 轻装上阵,便于拓展开发,减少学习成本

通俗易懂的文档

  • 基于最新 VitePress 构建的文档,更快,更便捷
  • 更快的热更新

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/other/index.html b/guide/other/index.html index 1c80791..047c367 100644 --- a/guide/other/index.html +++ b/guide/other/index.html @@ -3,21 +3,24 @@ - Vue-H5-Template | Vue-H5-Template + Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

1、为什么有多个组件库?

本模版想做到的是尽可能的开箱即用,不用去看别的文档引入相关组件库,毕竟做减法比做加法要容易些,如你不需要某个组件库可以根据这篇指引去移除某个组件库

2、我可以用在个人或公司的项目吗?

模版基于 MIT License,你可以根据自己的需求用到不同的项目里,如果对你有帮助点个 star 支持一下呗 🌟

3、我是一个新手,有什么好的学习建议吗?

过来人的经验就是熟读文档可以少走很多弯路,很多的人文档没读熟就开始动手,出了问题也不知道如何去解决,墙裂建议先把文档熟读

Released under the MIT License.

- +
Skip to content

1、为什么有多个组件库?

本模版想做到的是尽可能的开箱即用,不用去看别的文档引入相关组件库,毕竟做减法比做加法要容易些,如你不需要某个组件库可以根据这篇指引去移除某个组件库

2、我可以用在个人或公司的项目吗?

模版基于 MIT License,你可以根据自己的需求用到不同的项目里,如果对你有帮助点个 star 支持一下呗 🌟

3、我是一个新手,有什么好的学习建议吗?

过来人的经验就是熟读文档可以少走很多弯路,很多的人文档没读熟就开始动手,出了问题也不知道如何去解决,墙裂建议先把文档熟读

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/start.html b/guide/start.html index 139422b..fa73737 100644 --- a/guide/start.html +++ b/guide/start.html @@ -5,19 +5,22 @@ 快速上手 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

快速上手

node 版本要求

推荐 16.17.0+以上的版本,毕竟 2022 年了,别掐着 12+的版本了,你也可以使用nvmnvm-windows在同一台电脑上管理多个 node 版本。

包管理器

尽量使用 yarn 或者 pnpm,本项目仅保证在 yarn 或 pnpm 下正确运行,npm 涉及到网络环境等各种情况的限制不做过多考虑。如要使用 npm 请不要切换淘宝镜像,会有各种奇怪的 bug。

启动项目

项目中包含 vue2 和 vue3 两套模版

如你使用的是 vue2-template,请参考vue2 项目启动

如你使用的是 vue3-template,请参考vue3 项目启动

Released under the MIT License.

- +
Skip to content

快速上手

node 版本要求

推荐 20.19.0+以上的版本,毕竟 2025 年了,别掐着 16+的版本了,你也可以使用nvmnvm-windows在同一台电脑上管理多个 node 版本。

包管理器

尽量使用 yarn 或者 pnpm,本项目仅保证在 yarn 或 pnpm 下正确运行,npm 涉及到网络环境等各种情况的限制不做过多考虑。

启动项目

项目中包含 vue2 和 vue3 两套模版

如你使用的是 vue2-template,请参考vue2 项目启动

如你使用的是 vue3-template,请参考vue3 项目启动

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/alias.html b/guide/vue2/alias.html index 14927fc..3233cb4 100644 --- a/guide/vue2/alias.html +++ b/guide/vue2/alias.html @@ -5,33 +5,36 @@ 配置 alias 别名 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

配置 alias 别名

javascript
const path = require("path");
-const resolve = (dir) => path.join(__dirname, dir);
-const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+    
Skip to content

配置 alias 别名

javascript
const path = require("path");
+const resolve = (dir) => path.join(__dirname, dir);
+const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
 
-module.exports = {
-  chainWebpack: (config) => {
-    // 添加别名
-    config.resolve.alias
-      .set("@", resolve("src"))
-      .set("assets", resolve("src/assets"))
-      .set("api", resolve("src/api"))
-      .set("views", resolve("src/views"))
-      .set("components", resolve("src/components"));
-  },
-};

Released under the MIT License.

- +module.exports = { + chainWebpack: (config) => { + // 添加别名 + config.resolve.alias + .set("@", resolve("src")) + .set("assets", resolve("src/assets")) + .set("api", resolve("src/api")) + .set("views", resolve("src/views")) + .set("components", resolve("src/components")); + }, +};

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/axios.html b/guide/vue2/axios.html index 53d0f85..ce01e37 100644 --- a/guide/vue2/axios.html +++ b/guide/vue2/axios.html @@ -5,94 +5,97 @@ Axios 封装及接口管理 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Axios 封装及接口管理

utils/request.js 封装 axios ,开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
-import store from "@/store";
-import { Toast } from "vant";
-// 根据环境不同引入不同api地址
-import { baseApi } from "@/config";
-// create an axios instance
-const service = axios.create({
-  baseURL: baseApi, // url = base api url + request url
-  withCredentials: true, // send cookies when cross-domain requests
-  timeout: 5000, // request timeout
-});
+    
Skip to content

Axios 封装及接口管理

utils/request.js 封装 axios ,开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
+import store from "@/store";
+import { Toast } from "vant";
+// 根据环境不同引入不同api地址
+import { baseApi } from "@/config";
+// create an axios instance
+const service = axios.create({
+  baseURL: baseApi, // url = base api url + request url
+  withCredentials: true, // send cookies when cross-domain requests
+  timeout: 5000, // request timeout
+});
 
-// request 拦截器 request interceptor
-service.interceptors.request.use(
-  (config) => {
-    // 不传递默认开启loading
-    if (!config.hideloading) {
-      // loading
-      Toast.loading({
-        forbidClick: true,
-      });
-    }
-    if (store.getters.token) {
-      config.headers["X-Token"] = "";
-    }
-    return config;
-  },
-  (error) => {
-    // do something with request error
-    console.log(error); // for debug
-    return Promise.reject(error);
-  }
-);
-// respone拦截器
-service.interceptors.response.use(
-  (response) => {
-    Toast.clear();
-    const res = response.data;
-    if (res.status && res.status !== 200) {
-      // 登录超时,重新登录
-      if (res.status === 401) {
-        store.dispatch("FedLogOut").then(() => {
-          location.reload();
-        });
-      }
-      return Promise.reject(res || "error");
-    } else {
-      return Promise.resolve(res);
-    }
-  },
-  (error) => {
-    Toast.clear();
-    console.log("err" + error); // for debug
-    return Promise.reject(error);
-  }
-);
-export default service;

接口管理

src/api 文件夹下统一管理接口

  • 你可以建立多个模块对接接口, 比如 home.js 里是首页的接口这里讲解 user.js
  • url 接口地址,请求的时候会拼接上 config 下的 baseApi
  • method 请求方法
  • data 请求参数 qs.stringify(params) 是对数据系列化操作
  • hideloading 默认 false,设置为 true 后,不显示 loading ui 交互中有些接口不需要让用户感知
javascript
import qs from "qs";
-// axios
-import request from "@/utils/request";
-//user api
+// request 拦截器 request interceptor
+service.interceptors.request.use(
+  (config) => {
+    // 不传递默认开启loading
+    if (!config.hideloading) {
+      // loading
+      Toast.loading({
+        forbidClick: true,
+      });
+    }
+    if (store.getters.token) {
+      config.headers["X-Token"] = "";
+    }
+    return config;
+  },
+  (error) => {
+    // do something with request error
+    console.log(error); // for debug
+    return Promise.reject(error);
+  }
+);
+// respone拦截器
+service.interceptors.response.use(
+  (response) => {
+    Toast.clear();
+    const res = response.data;
+    if (res.status && res.status !== 200) {
+      // 登录超时,重新登录
+      if (res.status === 401) {
+        store.dispatch("FedLogOut").then(() => {
+          location.reload();
+        });
+      }
+      return Promise.reject(res || "error");
+    } else {
+      return Promise.resolve(res);
+    }
+  },
+  (error) => {
+    Toast.clear();
+    console.log("err" + error); // for debug
+    return Promise.reject(error);
+  }
+);
+export default service;

接口管理

src/api 文件夹下统一管理接口

  • 你可以建立多个模块对接接口, 比如 home.js 里是首页的接口这里讲解 user.js
  • url 接口地址,请求的时候会拼接上 config 下的 baseApi
  • method 请求方法
  • data 请求参数 qs.stringify(params) 是对数据系列化操作
  • hideloading 默认 false,设置为 true 后,不显示 loading ui 交互中有些接口不需要让用户感知
javascript
import qs from "qs";
+// axios
+import request from "@/utils/request";
+//user api
 
-// 用户信息
-export function getUserInfo(params) {
-  return request({
-    url: "/user/userinfo",
-    method: "post",
-    data: qs.stringify(params),
-    hideloading: true, // 隐藏 loading 组件
-  });
-}

如何调用

javascript
// 请求接口
-import { getUserInfo } from "@/api/user.js";
+// 用户信息
+export function getUserInfo(params) {
+  return request({
+    url: "/user/userinfo",
+    method: "post",
+    data: qs.stringify(params),
+    hideloading: true, // 隐藏 loading 组件
+  });
+}

如何调用

javascript
// 请求接口
+import { getUserInfo } from "@/api/user.js";
 
-const params = { user: "sunnie" };
-getUserInfo(params)
-  .then(() => {})
-  .catch(() => {});

Released under the MIT License.

- +const params = { user: "sunnie" }; +getUserInfo(params) + .then(() => {}) + .catch(() => {});

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/base.html b/guide/vue2/base.html index 936adf5..2d912ee 100644 --- a/guide/vue2/base.html +++ b/guide/vue2/base.html @@ -5,65 +5,68 @@ Webpack 4 vue.config.js 基础配置 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Webpack 4 vue.config.js 基础配置

如果你的 Vue Router 模式是 hash

javascript
publicPath: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
publicPath: '/app/',

配置如下

javascript
import { createVitePlugins } from "./config/vite/plugins";
-import { resolve } from "path";
-import { ConfigEnv, UserConfigExport } from "vite";
+    
Skip to content

Webpack 4 vue.config.js 基础配置

如果你的 Vue Router 模式是 hash

javascript
publicPath: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
publicPath: '/app/',

配置如下

javascript
import { createVitePlugins } from "./config/vite/plugins";
+import { resolve } from "path";
+import { ConfigEnv, UserConfigExport } from "vite";
 
-const pathResolve = (dir: string) => {
-  return resolve(process.cwd(), ".", dir);
-};
+const pathResolve = (dir: string) => {
+  return resolve(process.cwd(), ".", dir);
+};
 
-// https://vitejs.dev/config/
-export default function ({ command }: ConfigEnv): UserConfigExport {
-  const isProduction = command === "build";
-  const root = process.cwd();
-  return {
-    root,
-    resolve: {
-      alias: [
-        {
-          find: "vue-i18n",
-          replacement: "vue-i18n/dist/vue-i18n.cjs.js",
-        },
-        // /@/xxxx => src/xxxx
-        {
-          find: /\/@\//,
-          replacement: pathResolve("src") + "/",
-        },
-        // /#/xxxx => types/xxxx
-        {
-          find: /\/#\//,
-          replacement: pathResolve("types") + "/",
-        },
-      ],
-    },
-    server: {
-      host: true,
-      hmr: true,
-    },
-    plugins: createVitePlugins(isProduction),
-    css: {
-      preprocessorOptions: {
-        scss: {
-          // 配置 nutui 全局 scss 变量
-          additionalData: `@import "@nutui/nutui/dist/styles/variables.scss";@import '/@/styles/mixin.scss';`,
-        },
-      },
-    },
-  };
-}

Released under the MIT License.

- +// https://vitejs.dev/config/ +export default function ({ command }: ConfigEnv): UserConfigExport { + const isProduction = command === "build"; + const root = process.cwd(); + return { + root, + resolve: { + alias: [ + { + find: "vue-i18n", + replacement: "vue-i18n/dist/vue-i18n.cjs.js", + }, + // /@/xxxx => src/xxxx + { + find: /\/@\//, + replacement: pathResolve("src") + "/", + }, + // /#/xxxx => types/xxxx + { + find: /\/#\//, + replacement: pathResolve("types") + "/", + }, + ], + }, + server: { + host: true, + hmr: true, + }, + plugins: createVitePlugins(isProduction), + css: { + preprocessorOptions: { + scss: { + // 配置 nutui 全局 scss 变量 + additionalData: `@import "@nutui/nutui/dist/styles/variables.scss";@import '/@/styles/mixin.scss';`, + }, + }, + }, + }; +}

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/bundle.html b/guide/vue2/bundle.html index d17b0a0..b2fc978 100644 --- a/guide/vue2/bundle.html +++ b/guide/vue2/bundle.html @@ -5,33 +5,36 @@ 配置打包分析 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

配置打包分析

javascript
const BundleAnalyzerPlugin =
-  require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
+    
Skip to content

配置打包分析

javascript
const BundleAnalyzerPlugin =
+  require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
 
-module.exports = {
-  chainWebpack: (config) => {
-    // 打包分析
-    if (IS_PROD) {
-      config.plugin("webpack-report").use(BundleAnalyzerPlugin, [
-        {
-          analyzerMode: "static",
-        },
-      ]);
-    }
-  },
-};
bash
npm run build

Released under the MIT License.

- +module.exports = { + chainWebpack: (config) => { + // 打包分析 + if (IS_PROD) { + config.plugin("webpack-report").use(BundleAnalyzerPlugin, [ + { + analyzerMode: "static", + }, + ]); + } + }, +};
bash
npm run build

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/chunks.html b/guide/vue2/chunks.html index e07001b..5a3fcd9 100644 --- a/guide/vue2/chunks.html +++ b/guide/vue2/chunks.html @@ -5,59 +5,62 @@ splitChunks 单独打包第三方模块 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

splitChunks 单独打包第三方模块

javascript
module.exports = {
-  chainWebpack: (config) => {
-    config.when(IS_PROD, (config) => {
-      config
-        .plugin("ScriptExtHtmlWebpackPlugin")
-        .after("html")
-        .use("script-ext-html-webpack-plugin", [
-          {
-            // 将 runtime 作为内联引入不单独存在
-            inline: /runtime\..*\.js$/,
-          },
-        ])
-        .end();
-      config.optimization.splitChunks({
-        chunks: "all",
-        cacheGroups: {
-          // cacheGroups 下可以可以配置多个组,每个组根据test设置条件,符合test条件的模块
-          commons: {
-            name: "chunk-commons",
-            test: resolve("src/components"),
-            minChunks: 3, //  被至少用三次以上打包分离
-            priority: 5, // 优先级
-            reuseExistingChunk: true, // 表示是否使用已有的 chunk,如果为 true 则表示如果当前的 chunk 包含的模块已经被抽取出去了,那么将不会重新生成新的。
-          },
-          node_vendors: {
-            name: "chunk-libs",
-            chunks: "initial", // 只打包初始时依赖的第三方
-            test: /[\\/]node_modules[\\/]/,
-            priority: 10,
-          },
-          vantUI: {
-            name: "chunk-vantUI", // 单独将 vantUI 拆包
-            priority: 20, // 数字大权重到,满足多个 cacheGroups 的条件时候分到权重高的
-            test: /[\\/]node_modules[\\/]_?vant(.*)/,
-          },
-        },
-      });
-      config.optimization.runtimeChunk("single");
-    });
-  },
-};

Released under the MIT License.

- +
Skip to content

splitChunks 单独打包第三方模块

javascript
module.exports = {
+  chainWebpack: (config) => {
+    config.when(IS_PROD, (config) => {
+      config
+        .plugin("ScriptExtHtmlWebpackPlugin")
+        .after("html")
+        .use("script-ext-html-webpack-plugin", [
+          {
+            // 将 runtime 作为内联引入不单独存在
+            inline: /runtime\..*\.js$/,
+          },
+        ])
+        .end();
+      config.optimization.splitChunks({
+        chunks: "all",
+        cacheGroups: {
+          // cacheGroups 下可以可以配置多个组,每个组根据test设置条件,符合test条件的模块
+          commons: {
+            name: "chunk-commons",
+            test: resolve("src/components"),
+            minChunks: 3, //  被至少用三次以上打包分离
+            priority: 5, // 优先级
+            reuseExistingChunk: true, // 表示是否使用已有的 chunk,如果为 true 则表示如果当前的 chunk 包含的模块已经被抽取出去了,那么将不会重新生成新的。
+          },
+          node_vendors: {
+            name: "chunk-libs",
+            chunks: "initial", // 只打包初始时依赖的第三方
+            test: /[\\/]node_modules[\\/]/,
+            priority: 10,
+          },
+          vantUI: {
+            name: "chunk-vantUI", // 单独将 vantUI 拆包
+            priority: 20, // 数字大权重到,满足多个 cacheGroups 的条件时候分到权重高的
+            test: /[\\/]node_modules[\\/]_?vant(.*)/,
+          },
+        },
+      });
+      config.optimization.runtimeChunk("single");
+    });
+  },
+};

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/console.html b/guide/vue2/console.html index a31cd05..e2cf28a 100644 --- a/guide/vue2/console.html +++ b/guide/vue2/console.html @@ -5,40 +5,43 @@ 去掉 console.log | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

去掉 console.log

保留了测试环境和本地环境的 console.log

bash
npm i -D babel-plugin-transform-remove-console

在 babel.config.js 中配置

javascript
// 获取 VUE_APP_ENV 非 NODE_ENV,测试环境依然 console
-const IS_PROD = ["production", "prod"].includes(process.env.VUE_APP_ENV);
-const plugins = [
-  [
-    "import",
-    {
-      libraryName: "vant",
-      libraryDirectory: "es",
-      style: true,
-    },
-    "vant",
-  ],
-];
-// 去除 console.log
-if (IS_PROD) {
-  plugins.push("transform-remove-console");
-}
+    
Skip to content

去掉 console.log

保留了测试环境和本地环境的 console.log

bash
npm i -D babel-plugin-transform-remove-console

在 babel.config.js 中配置

javascript
// 获取 VUE_APP_ENV 非 NODE_ENV,测试环境依然 console
+const IS_PROD = ["production", "prod"].includes(process.env.VUE_APP_ENV);
+const plugins = [
+  [
+    "import",
+    {
+      libraryName: "vant",
+      libraryDirectory: "es",
+      style: true,
+    },
+    "vant",
+  ],
+];
+// 去除 console.log
+if (IS_PROD) {
+  plugins.push("transform-remove-console");
+}
 
-module.exports = {
-  presets: [["@vue/cli-plugin-babel/preset", { useBuiltIns: "entry" }]],
-  plugins,
-};

Released under the MIT License.

- +module.exports = { + presets: [["@vue/cli-plugin-babel/preset", { useBuiltIns: "entry" }]], + plugins, +};

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/env.html b/guide/vue2/env.html index ca6539d..1ff23e7 100644 --- a/guide/vue2/env.html +++ b/guide/vue2/env.html @@ -5,40 +5,43 @@ 配置多环境变量 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

配置多环境变量

package.json 里的 scripts 配置 serve stage build,通过 --mode xxx 来执行不同环境

  • 通过 npm run serve 启动本地 , 执行 development
  • 通过 npm run stage 打包测试 , 执行 staging
  • 通过 npm run build 打包正式 , 执行 production
javascript
"scripts": {
-  "serve": "vue-cli-service serve --open",
-  "stage": "vue-cli-service build --mode staging",
-  "build": "vue-cli-service build",
-}
配置介绍

  以 VUE_APP_ 开头的变量,在代码中可以通过 process.env.VUE_APP_ 访问。   比如:VUE_APP_ENV = 'development' 通过 process.env.VUE_APP_ENV 访问。   当然,除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENVBASE_URL

在项目根目录中新建.env.*

  • .env.development 本地开发环境配置
bash
NODE_ENV='development'
-# must start with VUE_APP_
-VUE_APP_ENV = 'development'
  • .env.staging 测试环境配置
bash
NODE_ENV='production'
-# must start with VUE_APP_
-VUE_APP_ENV = 'staging'
  • .env.production 正式环境配置
bash
NODE_ENV='production'
-# must start with VUE_APP_
-VUE_APP_ENV = 'production'

这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development staging production 变量我们统一在 src/config/env.*.js 里进行管理。

这里有个问题,既然这里有了根据不同环境设置变量的文件,为什么还要去 config 下新建三个对应的文件呢? 修改起来方便,不需 要重启项目,符合开发习惯。

config/index.js

javascript
// 根据环境引入不同配置 process.env.NODE_ENV
-const config = require("./env." + process.env.VUE_APP_ENV);
-module.exports = config;

配置对应环境的变量,拿本地环境文件 env.development.js 举例,用户可以根据需求修改

javascript
// 本地环境配置
-module.exports = {
-  title: "vue-h5-template",
-  baseUrl: "http://localhost:9018", // 项目地址
-  baseApi: "https://test.xxx.com/api", // 本地api请求地址
-  APPID: "xxx",
-  APPSECRET: "xxx",
-};

根据环境不同,变量就会不同了

javascript
// 根据环境不同引入不同baseApi地址
-import { baseApi } from "@/config";
-console.log(baseApi);

Released under the MIT License.

- +
Skip to content

配置多环境变量

package.json 里的 scripts 配置 serve stage build,通过 --mode xxx 来执行不同环境

  • 通过 npm run serve 启动本地 , 执行 development
  • 通过 npm run stage 打包测试 , 执行 staging
  • 通过 npm run build 打包正式 , 执行 production
javascript
"scripts": {
+  "serve": "vue-cli-service serve --open",
+  "stage": "vue-cli-service build --mode staging",
+  "build": "vue-cli-service build",
+}
配置介绍

  以 VUE_APP_ 开头的变量,在代码中可以通过 process.env.VUE_APP_ 访问。   比如:VUE_APP_ENV = 'development' 通过 process.env.VUE_APP_ENV 访问。   当然,除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENVBASE_URL

在项目根目录中新建.env.*

  • .env.development 本地开发环境配置
bash
NODE_ENV='development'
+# must start with VUE_APP_
+VUE_APP_ENV = 'development'
  • .env.staging 测试环境配置
bash
NODE_ENV='production'
+# must start with VUE_APP_
+VUE_APP_ENV = 'staging'
  • .env.production 正式环境配置
bash
 NODE_ENV='production'
+# must start with VUE_APP_
+VUE_APP_ENV = 'production'

这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development staging production 变量我们统一在 src/config/env.*.js 里进行管理。

这里有个问题,既然这里有了根据不同环境设置变量的文件,为什么还要去 config 下新建三个对应的文件呢? 修改起来方便,不需 要重启项目,符合开发习惯。

config/index.js

javascript
// 根据环境引入不同配置 process.env.NODE_ENV
+const config = require("./env." + process.env.VUE_APP_ENV);
+module.exports = config;

配置对应环境的变量,拿本地环境文件 env.development.js 举例,用户可以根据需求修改

javascript
// 本地环境配置
+module.exports = {
+  title: "vue-h5-template",
+  baseUrl: "http://localhost:9018", // 项目地址
+  baseApi: "https://test.xxx.com/api", // 本地api请求地址
+  APPID: "xxx",
+  APPSECRET: "xxx",
+};

根据环境不同,变量就会不同了

javascript
// 根据环境不同引入不同baseApi地址
+import { baseApi } from "@/config";
+console.log(baseApi);

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/externals.html b/guide/vue2/externals.html index 3d10caf..30adfe5 100644 --- a/guide/vue2/externals.html +++ b/guide/vue2/externals.html @@ -5,82 +5,85 @@ 配置 externals 引入 cdn 资源 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

配置 externals 引入 cdn 资源

这个版本 CDN 不再引入,我测试了一下使用引入 CDN 和不使用,不使用会比使用时间少。网上不少文章测试 CDN 速度块,这个开发者可 以实际测试一下。

另外项目中使用的是公共 CDN 不稳定,域名解析也是需要时间的(如果你要使用请尽量使用同一个域名)

因为页面每次遇到<script>标签都会停下来解析执行,所以应该尽可能减少<script>标签的数量 HTTP请求存在一定的开销,100K 的文件比 5 个 20K 的文件下载的更快,所以较少脚本数量也是很有必要的

暂时还没有研究放到自己的 cdn 服务器上。

javascript
const defaultSettings = require("./src/config/index.js");
-const name = defaultSettings.title || "vue mobile template";
-const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+    
Skip to content

配置 externals 引入 cdn 资源

这个版本 CDN 不再引入,我测试了一下使用引入 CDN 和不使用,不使用会比使用时间少。网上不少文章测试 CDN 速度块,这个开发者可 以实际测试一下。

另外项目中使用的是公共 CDN 不稳定,域名解析也是需要时间的(如果你要使用请尽量使用同一个域名)

因为页面每次遇到<script>标签都会停下来解析执行,所以应该尽可能减少<script>标签的数量 HTTP请求存在一定的开销,100K 的文件比 5 个 20K 的文件下载的更快,所以较少脚本数量也是很有必要的

暂时还没有研究放到自己的 cdn 服务器上。

javascript
const defaultSettings = require("./src/config/index.js");
+const name = defaultSettings.title || "vue mobile template";
+const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
 
-// externals
-const externals = {
-  vue: "Vue",
-  "vue-router": "VueRouter",
-  vuex: "Vuex",
-  vant: "vant",
-  axios: "axios",
-};
-// CDN外链,会插入到index.html中
-const cdn = {
-  // 开发环境
-  dev: {
-    css: [],
-    js: [],
-  },
-  // 生产环境
-  build: {
-    css: ["https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.css"],
-    js: [
-      "https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js",
-      "https://cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js",
-      "https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js",
-      "https://cdn.jsdelivr.net/npm/vuex@3.1.2/dist/vuex.min.js",
-      "https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.min.js",
-    ],
-  },
-};
-module.exports = {
-  configureWebpack: (config) => {
-    config.name = name;
-    // 为生产环境修改配置...
-    if (IS_PROD) {
-      // externals
-      config.externals = externals;
-    }
-  },
-  chainWebpack: (config) => {
-    /**
-     * 添加CDN参数到htmlWebpackPlugin配置中
-     */
-    config.plugin("html").tap((args) => {
-      if (IS_PROD) {
-        args[0].cdn = cdn.build;
-      } else {
-        args[0].cdn = cdn.dev;
-      }
-      return args;
-    });
-  },
-};

在 public/index.html 中添加

javascript
<!-- 使用CDN的CSS文件 -->
-    <% for (var i in
-      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
-      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
-      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
-    <% } %>
-     <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
-    <% for (var i in
-      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
-      <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
-    <% } %>

Released under the MIT License.

- +// externals +const externals = { + vue: "Vue", + "vue-router": "VueRouter", + vuex: "Vuex", + vant: "vant", + axios: "axios", +}; +// CDN外链,会插入到index.html中 +const cdn = { + // 开发环境 + dev: { + css: [], + js: [], + }, + // 生产环境 + build: { + css: ["https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.css"], + js: [ + "https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js", + "https://cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js", + "https://cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js", + "https://cdn.jsdelivr.net/npm/vuex@3.1.2/dist/vuex.min.js", + "https://cdn.jsdelivr.net/npm/vant@2.4.7/lib/index.min.js", + ], + }, +}; +module.exports = { + configureWebpack: (config) => { + config.name = name; + // 为生产环境修改配置... + if (IS_PROD) { + // externals + config.externals = externals; + } + }, + chainWebpack: (config) => { + /** + * 添加CDN参数到htmlWebpackPlugin配置中 + */ + config.plugin("html").tap((args) => { + if (IS_PROD) { + args[0].cdn = cdn.build; + } else { + args[0].cdn = cdn.dev; + } + return args; + }); + }, +};

在 public/index.html 中添加

javascript
    <!-- 使用CDN的CSS文件 -->
+    <% for (var i in
+      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>
+      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="preload" as="style" />
+      <link href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" rel="stylesheet" />
+    <% } %>
+     <!-- 使用CDN加速的JS文件,配置在vue.config.js下 -->
+    <% for (var i in
+      htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.js) { %>
+      <script src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
+    <% } %>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/ie.html b/guide/vue2/ie.html index eea5ed1..72309c1 100644 --- a/guide/vue2/ie.html +++ b/guide/vue2/ie.html @@ -5,29 +5,32 @@ 添加 IE 兼容 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

添加 IE 兼容

之前的方式 会报 @babel/polyfill is deprecated. Please, use required parts of core-js and regenerator-runtime/runtime separately

@babel/polyfill 废弃,使用 core-jsregenerator-runtime

bash
npm i --save core-js regenerator-runtime

main.js 中添加

javascript
// 兼容 IE
-// https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
-import "core-js/stable";
-import "regenerator-runtime/runtime";

配置 babel.config.js

javascript
const plugins = [];
+    
Skip to content

添加 IE 兼容

之前的方式 会报 @babel/polyfill is deprecated. Please, use required parts of core-js and regenerator-runtime/runtime separately

@babel/polyfill 废弃,使用 core-jsregenerator-runtime

bash
npm i --save core-js regenerator-runtime

main.js 中添加

javascript
// 兼容 IE
+// https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
+import "core-js/stable";
+import "regenerator-runtime/runtime";

配置 babel.config.js

javascript
const plugins = [];
 
-module.exports = {
-  presets: [
-    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
-  ],
-  plugins,
-};

Released under the MIT License.

- +module.exports = { + presets: [ + ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }], + ], + plugins, +};

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/lint.html b/guide/vue2/lint.html index 78ca683..3130b5f 100644 --- a/guide/vue2/lint.html +++ b/guide/vue2/lint.html @@ -5,167 +5,170 @@ Eslint + Pettier 统一开发规范 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Eslint + Pettier 统一开发规范

VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化,其他使用prettier,后面会专门写个如何使用配合使用这三个玩意儿

在文件 .prettierrc 里写 属于你的 pettier 规则

bash
{
-   "printWidth": 120,
-   "tabWidth": 2,
-   "singleQuote": true,
-   "trailingComma": "none",
-   "semi": false,
-   "wrap_line_length": 120,
-   "wrap_attributes": "auto",
-   "proseWrap": "always",
-   "arrowParens": "avoid",
-   "bracketSpacing": false,
-   "jsxBracketSameLine": true,
-   "useTabs": false,
-   "overrides": [{
-       "files": ".prettierrc",
-       "options": {
-           "parser": "json"
-       }
-   }]
-}

Vscode setting.json 设置

bash
{
-  // 将设置放入此文件中以覆盖默认设置
-  "files.autoSave": "off",
-  // 控制字体系列。
-  "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'",
-  "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
-  // 以像素为单位控制字号。
-  "editor.fontSize": 16,
-  // 控制选取范围是否有圆角
-  "editor.roundedSelection": false,
-  // 建议小组件的字号
-  "editor.suggestFontSize": 16,
-  // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。
-  "explorer.openEditors.visible": 0,
-  // 是否已启用自动刷新
-  "git.autorefresh": true,
-  // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。
-  "terminal.integrated.fontSize": 14,
-  // 控制终端游标是否闪烁。
-  "terminal.integrated.cursorBlinking": true,
-  // 一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。
-  // Tab Size
-  "editor.tabSize": 2,
-  // By default, common template. Do not modify it!!!!!
-  "editor.formatOnType": true,
-  "window.zoomLevel": 0,
-  "editor.detectIndentation": false,
-  "css.fileExtensions": ["css", "scss"],
-  "files.associations": {
-    "*.string": "html",
-    "*.vue": "vue",
-    "*.wxss": "css",
-    "*.wxml": "wxml",
-    "*.wxs": "javascript",
-    "*.cjson": "jsonc",
-    "*.js": "javascript"
-  },
-  // 为指定的语法定义配置文件或使用带有特定规则的配置文件。
-  "emmet.syntaxProfiles": {
-    "vue-html": "html",
-    "vue": "html"
-  },
-  "search.exclude": {
-    "**/node_modules": true,
-    "**/bower_components": true
-  },
-  //保存时eslint自动修复错误
-  "editor.formatOnSave": true,
-  // Enable per-language
-  //配置 ESLint 检查的文件类型
-  "editor.quickSuggestions": {
-    "strings": true
-  },
-  // 添加 vue 支持
-  // 这里是针对vue文件的格式化设置,vue的规则在这里生效
-  "vetur.format.options.tabSize": 2,
-  "vetur.format.options.useTabs": false,
-  "vetur.format.defaultFormatter.html": "js-beautify-html",
-  "vetur.format.defaultFormatter.css": "prettier",
-  "vetur.format.defaultFormatter.scss": "prettier",
-  "vetur.format.defaultFormatter.postcss": "prettier",
-  "vetur.format.defaultFormatter.less": "prettier",
-  "vetur.format.defaultFormatter.js": "vscode-typescript",
-  "vetur.format.defaultFormatter.sass": "sass-formatter",
-  "vetur.format.defaultFormatter.ts": "prettier",
-  "vetur.format.defaultFormatterOptions": {
-    "js-beautify-html": {
-      "wrap_attributes": "aligned-multiple", // 超过150折行
-      "wrap-line-length": 150
-    },
-    // #vue组件中html代码格式化样式
-    "prettier": {
-      "printWidth": 120,
-      "tabWidth": 2,
-      "singleQuote": false,
-      "trailingComma": "none",
-      "semi": false,
-      "wrap_line_length": 120,
-      "wrap_attributes": "aligned-multiple", // 超过150折行
-      "proseWrap": "always",
-      "arrowParens": "avoid",
-      "bracketSpacing": true,
-      "jsxBracketSameLine": true,
-      "useTabs": false,
-      "overrides": [
-        {
-          "files": ".prettierrc",
-          "options": {
-            "parser": "json"
-          }
-        }
-      ]
-    }
-  },
-  // Enable per-language
-  "[json]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "vetur.validation.template": false,
-  "html.format.enable": false,
-  "json.format.enable": false,
-  "javascript.format.enable": false,
-  "typescript.format.enable": false,
-  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
-  "[html]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[javascript]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[jsonc]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  "[vue]": {
-    "editor.defaultFormatter": "octref.vetur"
-  },
-  "emmet.includeLanguages": {
-    "wxml": "html"
-  },
-  "[typescriptreact]": {
-    "editor.defaultFormatter": "esbenp.prettier-vscode"
-  },
-  // 开启eslint自动修复js/ts功能
-  "editor.codeActionsOnSave": {
-    "source.fixAll.eslint": true
-  },
-  "minapp-vscode.disableAutoConfig": true,
-  "javascript.implicitProjectConfig.experimentalDecorators": true,
-  "editor.maxTokenizationLineLength": 200000
-}

Released under the MIT License.

- +
Skip to content

Eslint + Pettier 统一开发规范

VScode (版本 1.47.3)安装 eslint prettier vetur 插件 .vue 文件使用 vetur 进行格式化,其他使用prettier,后面会专门写个如何使用配合使用这三个玩意儿

在文件 .prettierrc 里写 属于你的 pettier 规则

bash
{
+   "printWidth": 120,
+   "tabWidth": 2,
+   "singleQuote": true,
+   "trailingComma": "none",
+   "semi": false,
+   "wrap_line_length": 120,
+   "wrap_attributes": "auto",
+   "proseWrap": "always",
+   "arrowParens": "avoid",
+   "bracketSpacing": false,
+   "jsxBracketSameLine": true,
+   "useTabs": false,
+   "overrides": [{
+       "files": ".prettierrc",
+       "options": {
+           "parser": "json"
+       }
+   }]
+}

Vscode setting.json 设置

bash
    {
+  // 将设置放入此文件中以覆盖默认设置
+  "files.autoSave": "off",
+  // 控制字体系列。
+  "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'",
+  "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
+  // 以像素为单位控制字号。
+  "editor.fontSize": 16,
+  // 控制选取范围是否有圆角
+  "editor.roundedSelection": false,
+  // 建议小组件的字号
+  "editor.suggestFontSize": 16,
+  // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。
+  "explorer.openEditors.visible": 0,
+  // 是否已启用自动刷新
+  "git.autorefresh": true,
+  // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。
+  "terminal.integrated.fontSize": 14,
+  // 控制终端游标是否闪烁。
+  "terminal.integrated.cursorBlinking": true,
+  // 一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。
+  // Tab Size
+  "editor.tabSize": 2,
+  // By default, common template. Do not modify it!!!!!
+  "editor.formatOnType": true,
+  "window.zoomLevel": 0,
+  "editor.detectIndentation": false,
+  "css.fileExtensions": ["css", "scss"],
+  "files.associations": {
+    "*.string": "html",
+    "*.vue": "vue",
+    "*.wxss": "css",
+    "*.wxml": "wxml",
+    "*.wxs": "javascript",
+    "*.cjson": "jsonc",
+    "*.js": "javascript"
+  },
+  // 为指定的语法定义配置文件或使用带有特定规则的配置文件。
+  "emmet.syntaxProfiles": {
+    "vue-html": "html",
+    "vue": "html"
+  },
+  "search.exclude": {
+    "**/node_modules": true,
+    "**/bower_components": true
+  },
+  //保存时eslint自动修复错误
+  "editor.formatOnSave": true,
+  // Enable per-language
+  //配置 ESLint 检查的文件类型
+  "editor.quickSuggestions": {
+    "strings": true
+  },
+  // 添加 vue 支持
+  // 这里是针对vue文件的格式化设置,vue的规则在这里生效
+  "vetur.format.options.tabSize": 2,
+  "vetur.format.options.useTabs": false,
+  "vetur.format.defaultFormatter.html": "js-beautify-html",
+  "vetur.format.defaultFormatter.css": "prettier",
+  "vetur.format.defaultFormatter.scss": "prettier",
+  "vetur.format.defaultFormatter.postcss": "prettier",
+  "vetur.format.defaultFormatter.less": "prettier",
+  "vetur.format.defaultFormatter.js": "vscode-typescript",
+  "vetur.format.defaultFormatter.sass": "sass-formatter",
+  "vetur.format.defaultFormatter.ts": "prettier",
+  "vetur.format.defaultFormatterOptions": {
+    "js-beautify-html": {
+      "wrap_attributes": "aligned-multiple", // 超过150折行
+      "wrap-line-length": 150
+    },
+    // #vue组件中html代码格式化样式
+    "prettier": {
+      "printWidth": 120,
+      "tabWidth": 2,
+      "singleQuote": false,
+      "trailingComma": "none",
+      "semi": false,
+      "wrap_line_length": 120,
+      "wrap_attributes": "aligned-multiple", // 超过150折行
+      "proseWrap": "always",
+      "arrowParens": "avoid",
+      "bracketSpacing": true,
+      "jsxBracketSameLine": true,
+      "useTabs": false,
+      "overrides": [
+        {
+          "files": ".prettierrc",
+          "options": {
+            "parser": "json"
+          }
+        }
+      ]
+    }
+  },
+  // Enable per-language
+  "[json]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "vetur.validation.template": false,
+  "html.format.enable": false,
+  "json.format.enable": false,
+  "javascript.format.enable": false,
+  "typescript.format.enable": false,
+  "javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
+  "[html]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[javascript]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[jsonc]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  "[vue]": {
+    "editor.defaultFormatter": "octref.vetur"
+  },
+  "emmet.includeLanguages": {
+    "wxml": "html"
+  },
+  "[typescriptreact]": {
+    "editor.defaultFormatter": "esbenp.prettier-vscode"
+  },
+  // 开启eslint自动修复js/ts功能
+  "editor.codeActionsOnSave": {
+    "source.fixAll.eslint": true
+  },
+  "minapp-vscode.disableAutoConfig": true,
+  "javascript.implicitProjectConfig.experimentalDecorators": true,
+  "editor.maxTokenizationLineLength": 200000
+}

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/proxy.html b/guide/vue2/proxy.html index 3527c09..63739df 100644 --- a/guide/vue2/proxy.html +++ b/guide/vue2/proxy.html @@ -5,40 +5,43 @@ 配置 proxy 跨域 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

配置 proxy 跨域

如果你的项目需要跨域设置,你需要打来 vue.config.js proxy 注释 并且配置相应参数

!!!注意:你还需要将 src/config/env.development.js 里的 baseApi 设置成 '/'

javascript
module.exports = {
-  devServer: {
-    // ....
-    proxy: {
-      //配置跨域
-      "/api": {
-        target: "https://test.xxx.com", // 接口的域名
-        // ws: true, // 是否启用websockets
-        changOrigin: true, // 开启代理,在本地创建一个虚拟服务端
-        pathRewrite: {
-          "^/api": "/",
-        },
-      },
-    },
-  },
-};

使用 例如: src/api/home.js

javascript
export function getUserInfo(params) {
-  return request({
-    url: "/api/userinfo",
-    method: "post",
-    data: qs.stringify(params),
-  });
-}

Released under the MIT License.

- +
Skip to content

配置 proxy 跨域

如果你的项目需要跨域设置,你需要打来 vue.config.js proxy 注释 并且配置相应参数

!!!注意:你还需要将 src/config/env.development.js 里的 baseApi 设置成 '/'

javascript
module.exports = {
+  devServer: {
+    // ....
+    proxy: {
+      //配置跨域
+      "/api": {
+        target: "https://test.xxx.com", // 接口的域名
+        // ws: true, // 是否启用websockets
+        changOrigin: true, // 开启代理,在本地创建一个虚拟服务端
+        pathRewrite: {
+          "^/api": "/",
+        },
+      },
+    },
+  },
+};

使用 例如: src/api/home.js

javascript
export function getUserInfo(params) {
+  return request({
+    url: "/api/userinfo",
+    method: "post",
+    data: qs.stringify(params),
+  });
+}

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/rem.html b/guide/vue2/rem.html index 0cacfda..f22b67c 100644 --- a/guide/vue2/rem.html +++ b/guide/vue2/rem.html @@ -5,49 +5,52 @@ rem 适配方案 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

rem 适配方案

不用担心,项目已经配置好了 rem 适配, 下面仅做介绍:

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: {
-      overrideBrowserslist: [
-        "Android 4.1",
-        "iOS 7.1",
-        "Chrome > 31",
-        "ff > 31",
-        "ie >= 8",
-      ],
-    },
-    "postcss-pxtorem": {
-      rootValue: 37.5,
-      propList: ["*"],
-    },
-  },
-};

更多详细信息: vant

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题,因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5,你可以看到在 iPhone 6 下看到 (1rem 等于 37.5px):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的font-size。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕,其他机型适配。

  • rootValue: 70 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
+    
Skip to content

rem 适配方案

不用担心,项目已经配置好了 rem 适配, 下面仅做介绍:

Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具:

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: {
+      overrideBrowserslist: [
+        "Android 4.1",
+        "iOS 7.1",
+        "Chrome > 31",
+        "ff > 31",
+        "ie >= 8",
+      ],
+    },
+    "postcss-pxtorem": {
+      rootValue: 37.5,
+      propList: ["*"],
+    },
+  },
+};

更多详细信息: vant

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题,因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5,你可以看到在 iPhone 6 下看到 (1rem 等于 37.5px):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的font-size。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕,其他机型适配。

  • rootValue: 70 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
 
-<style>
-  /* rootValue: 75 */
-  .image {
-    width: 750px;
-    height: 1334px;
-  }
-  /* rootValue: 37.5 */
-  .image {
-    width: 375px;
-    height: 667px;
-  }
-</style>

Released under the MIT License.

- +<style> + /* rootValue: 75 */ + .image { + width: 750px; + height: 1334px; + } + /* rootValue: 37.5 */ + .image { + width: 375px; + height: 667px; + } +</style>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/router.html b/guide/vue2/router.html index 2b29328..2253fb3 100644 --- a/guide/vue2/router.html +++ b/guide/vue2/router.html @@ -5,42 +5,45 @@ Vue-router | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式,vue.config.js 中的 publicPath 要做对应的修改

前往: vue.config.js 基础配置

javascript
import Vue from "vue";
-import Router from "vue-router";
+    
Skip to content

Vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式,vue.config.js 中的 publicPath 要做对应的修改

前往: vue.config.js 基础配置

javascript
import Vue from "vue";
+import Router from "vue-router";
 
-Vue.use(Router);
-export const router = [
-  {
-    path: "/",
-    name: "index",
-    component: () => import("@/views/home/index"), // 路由懒加载
-    meta: {
-      title: "首页", // 页面标题
-      keepAlive: false, // keep-alive 标识
-    },
-  },
-];
-const createRouter = () =>
-  new Router({
-    // mode: 'history', // 如果你是 history模式 需要配置 vue.config.js publicPath
-    // base: '/app/',
-    scrollBehavior: () => ({ y: 0 }),
-    routes: router,
-  });
+Vue.use(Router);
+export const router = [
+  {
+    path: "/",
+    name: "index",
+    component: () => import("@/views/home/index"), // 路由懒加载
+    meta: {
+      title: "首页", // 页面标题
+      keepAlive: false, // keep-alive 标识
+    },
+  },
+];
+const createRouter = () =>
+  new Router({
+    // mode: 'history', // 如果你是 history模式 需要配置 vue.config.js publicPath
+    // base: '/app/',
+    scrollBehavior: () => ({ y: 0 }),
+    routes: router,
+  });
 
-export default createRouter();

Released under the MIT License.

- +export default createRouter();

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/sass.html b/guide/vue2/sass.html index 0ddcd1e..2fb1fff 100644 --- a/guide/vue2/sass.html +++ b/guide/vue2/sass.html @@ -5,71 +5,74 @@ Sass 全局样式 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Sass 全局样式

首先 你可能会遇到 node-sass 安装不成功,别放弃多试几次!!!

每个页面自己对应的样式都写在自己的 .vue 文件之中 scoped 它顾名思义给 css 加了一个域的概念。

html
<style lang="scss">
-  /* global styles */
-</style>
+    
Skip to content

Sass 全局样式

首先 你可能会遇到 node-sass 安装不成功,别放弃多试几次!!!

每个页面自己对应的样式都写在自己的 .vue 文件之中 scoped 它顾名思义给 css 加了一个域的概念。

html
<style lang="scss">
+  /* global styles */
+</style>
 
-<style lang="scss" scoped>
-  /* local styles */
-</style>

目录结构

vue-h5-template 所有全局样式都在 @/src/assets/css 目录下设置

bash
├── assets
-   ├── css
-      ├── index.scss               # 全局通用样式
-      ├── mixin.scss               # 全局mixin
-      └── variables.scss           # 全局变量

自定义 vant-ui 样式

现在我们来说说怎么重写 vant-ui 样式。由于 vant-ui 的样式我们是在全局引入的,所以你想在某个页面里面覆盖它的样式就不能加 scoped,但你又想只覆盖这个页面的 vant 样式,你就可在它的父级加一个 class,用命名空间来解决问题。

css
.about-container {
-  /* 你的命名空间 */
-  .van-button {
-    /* vant-ui 元素*/
-    margin-right: 0px;
-  }
-}

父组件改变子组件样式 深度选择器

当你子组件使用了 scoped 但在父组件又想修改子组件的样式可以 通过 >>> 来实现:

css
<style scoped>
-.a >>> .b { /* ... */ }
-</style>

全局变量

vue.config.js 配置使用 css.loaderOptions 选项,注入 sassmixin variables 到全局,不需要手动引入,配置$cdn通过变量形式引入 cdn 地址,这样向所有 Sass/Less 样式传入共享的全局变量:

javascript
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
-const defaultSettings = require("./src/config/index.js");
-module.exports = {
-  css: {
-    extract: IS_PROD,
-    sourceMap: false,
-    loaderOptions: {
-      // 给 scss-loader 传递选项
-      scss: {
-        // 注入 `sass` 的 `mixin` `variables` 到全局, $cdn可以配置图片cdn
-        // 详情: https://cli.vuejs.org/guide/css.html#passing-options-to-pre-processor-loaders
-        prependData: `
-                @import "assets/css/mixin.scss";
-                @import "assets/css/variables.scss";
-                $cdn: "${defaultSettings.$cdn}";
-                 `,
-      },
-    },
-  },
-};

设置 js 中可以访问 $cdn.vue 文件中使用this.$cdn访问

javascript
// 引入全局样式
-import "@/assets/css/index.scss";
+<style lang="scss" scoped>
+  /* local styles */
+</style>

目录结构

vue-h5-template 所有全局样式都在 @/src/assets/css 目录下设置

bash
├── assets
+   ├── css
+   ├── index.scss               # 全局通用样式
+   ├── mixin.scss               # 全局mixin
+   └── variables.scss           # 全局变量

自定义 vant-ui 样式

现在我们来说说怎么重写 vant-ui 样式。由于 vant-ui 的样式我们是在全局引入的,所以你想在某个页面里面覆盖它的样式就不能加 scoped,但你又想只覆盖这个页面的 vant 样式,你就可在它的父级加一个 class,用命名空间来解决问题。

css
.about-container {
+  /* 你的命名空间 */
+  .van-button {
+    /* vant-ui 元素*/
+    margin-right: 0px;
+  }
+}

父组件改变子组件样式 深度选择器

当你子组件使用了 scoped 但在父组件又想修改子组件的样式可以 通过 >>> 来实现:

css
<style scoped>
+.a >>> .b { /* ... */ }
+</style>

全局变量

vue.config.js 配置使用 css.loaderOptions 选项,注入 sassmixin variables 到全局,不需要手动引入,配置$cdn通过变量形式引入 cdn 地址,这样向所有 Sass/Less 样式传入共享的全局变量:

javascript
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
+const defaultSettings = require("./src/config/index.js");
+module.exports = {
+  css: {
+    extract: IS_PROD,
+    sourceMap: false,
+    loaderOptions: {
+      // 给 scss-loader 传递选项
+      scss: {
+        // 注入 `sass` 的 `mixin` `variables` 到全局, $cdn可以配置图片cdn
+        // 详情: https://cli.vuejs.org/guide/css.html#passing-options-to-pre-processor-loaders
+        prependData: `
+                @import "assets/css/mixin.scss";
+                @import "assets/css/variables.scss";
+                $cdn: "${defaultSettings.$cdn}";
+                 `,
+      },
+    },
+  },
+};

设置 js 中可以访问 $cdn.vue 文件中使用this.$cdn访问

javascript
// 引入全局样式
+import "@/assets/css/index.scss";
 
-// 设置 js中可以访问 $cdn
-// 引入cdn
-import { $cdn } from "@/config";
-Vue.prototype.$cdn = $cdn;

在 css 和 js 使用

html
<script>
-  console.log(this.$cdn);
-</script>
-<style lang="scss" scoped>
-  .logo {
-    width: 120px;
-    height: 120px;
-    background: url($cdn + "/weapp/logo.png") center / contain no-repeat;
-  }
-</style>

Released under the MIT License.

- +// 设置 js中可以访问 $cdn +// 引入cdn +import { $cdn } from "@/config"; +Vue.prototype.$cdn = $cdn;

在 css 和 js 使用

html
<script>
+  console.log(this.$cdn);
+</script>
+<style lang="scss" scoped>
+  .logo {
+    width: 120px;
+    height: 120px;
+    background: url($cdn + "/weapp/logo.png") center / contain no-repeat;
+  }
+</style>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/start.html b/guide/vue2/start.html index 6605706..52bfe53 100644 --- a/guide/vue2/start.html +++ b/guide/vue2/start.html @@ -5,29 +5,33 @@ 启动项目 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

启动项目

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
+    
Skip to content

启动项目

bash

+# 拉取项目
+git clone https://github.com/sunniejs/vue-h5-template
 
-# 切换分支
-git checkout -b vue2-h5-template origin/vue2-h5-template
+# 切换分支
+git checkout -b vue2-h5-template origin/vue2-h5-template
 
-# 安装依赖
-yarn install
+# 安装依赖
+yarn install
 
-# 启动项目
-yarn serve

Released under the MIT License.

- +# 启动项目 +yarn serve

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/vant.html b/guide/vue2/vant.html index 0e754f1..f198a2c 100644 --- a/guide/vue2/vant.html +++ b/guide/vue2/vant.html @@ -5,42 +5,45 @@ VantUI 组件按需加载 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

VantUI 组件按需加载

项目采 用Vant 自动按需引入组件 (推荐)下 面安装插件介绍:

babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式

安装插件

bash
npm i babel-plugin-import -D

babel.config.js 设置

javascript
// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
-const plugins = [
-  [
-    "import",
-    {
-      libraryName: "vant",
-      libraryDirectory: "es",
-      style: true,
-    },
-    "vant",
-  ],
-];
-module.exports = {
-  presets: [
-    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
-  ],
-  plugins,
-};

使用组件

项目在 src/plugins/vant.js 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入 vant组件
-import Vue from "vue";
-import { Button, List, Cell, Tabbar, TabbarItem } from "vant";
-Vue.use(Button);
-Vue.use(Cell);
-Vue.use(List);
-Vue.use(Tabbar).use(TabbarItem);

Released under the MIT License.

- +
Skip to content

VantUI 组件按需加载

项目采 用Vant 自动按需引入组件 (推荐)下 面安装插件介绍:

babel-plugin-import 是一款 babel 插件,它会在编译过程中将 import 的写法自动转换为按需引入的方式

安装插件

bash
npm i babel-plugin-import -D

babel.config.js 设置

javascript
// 对于使用 babel7 的用户,可以在 babel.config.js 中配置
+const plugins = [
+  [
+    "import",
+    {
+      libraryName: "vant",
+      libraryDirectory: "es",
+      style: true,
+    },
+    "vant",
+  ],
+];
+module.exports = {
+  presets: [
+    ["@vue/cli-plugin-babel/preset", { useBuiltIns: "usage", corejs: 3 }],
+  ],
+  plugins,
+};

使用组件

项目在 src/plugins/vant.js 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入 vant组件
+import Vue from "vue";
+import { Button, List, Cell, Tabbar, TabbarItem } from "vant";
+Vue.use(Button);
+Vue.use(Cell);
+Vue.use(List);
+Vue.use(Tabbar).use(TabbarItem);

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/vuex.html b/guide/vue2/vuex.html index 8ee1176..4641dda 100644 --- a/guide/vue2/vuex.html +++ b/guide/vue2/vuex.html @@ -5,48 +5,51 @@ Vuex 状态管理 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Vuex 状态管理

目录结构

bash
├── store
-   ├── modules
-      └── app.js
-   ├── index.js
-   ├── getters.js

main.js 引入

javascript
import Vue from "vue";
-import App from "./App.vue";
-import store from "./store";
-new Vue({
-  el: "#app",
-  router,
-  store,
-  render: (h) => h(App),
-});

使用

html
<script>
-  import { mapGetters } from "vuex";
-  export default {
-    computed: {
-      ...mapGetters(["userName"]),
-    },
+    
Skip to content

Vuex 状态管理

目录结构

bash
├── store
+   ├── modules
+   └── app.js
+   ├── index.js
+   ├── getters.js

main.js 引入

javascript
import Vue from "vue";
+import App from "./App.vue";
+import store from "./store";
+new Vue({
+  el: "#app",
+  router,
+  store,
+  render: (h) => h(App),
+});

使用

html
<script>
+  import { mapGetters } from "vuex";
+  export default {
+    computed: {
+      ...mapGetters(["userName"]),
+    },
 
-    methods: {
-      // Action 通过 store.dispatch 方法触发
-      doDispatch() {
-        this.$store.dispatch(
-          "setUserName",
-          "真乖,赶紧关注公众号,组织都在等你~"
-        );
-      },
-    },
-  };
-</script>

Released under the MIT License.

- + methods: { + // Action 通过 store.dispatch 方法触发 + doDispatch() { + this.$store.dispatch( + "setUserName", + "真乖,赶紧关注公众号,组织都在等你~" + ); + }, + }, + }; +</script>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue2/vw.html b/guide/vue2/vw.html index 6c79000..dacbb21 100644 --- a/guide/vue2/vw.html +++ b/guide/vue2/vw.html @@ -5,42 +5,46 @@ vm 适配方案 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

vm 适配方案

本项目使用的是 rem 的 适配方案,其实无论你使用哪种方案,都不需要你去计算 12px 是多少 rem 或者 vw, 会有专门的工具去帮你做 。如果你想用 vw,你可以按照下面的方式切换。

1.安装依赖

bash
npm install postcss-px-to-viewport -D

2.修改 .postcssrc.js

将根目录下 .postcssrc.js 文件修改如下

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: {
-      overrideBrowserslist: [
-        "Android 4.1",
-        "iOS 7.1",
-        "Chrome > 31",
-        "ff > 31",
-        "ie >= 8",
-      ],
-    },
-    "postcss-px-to-viewport": {
-      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
-      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
-      viewportUnit: "vw", // 指定需要转换成的视窗单位,建议使用vw
-      selectorBlackList: [".ignore", ".hairlines"], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
-      minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
-      mediaQuery: false, // 允许在媒体查询中转换`px`
-    },
-  },
-};

3.删除原来的 rem 相关代码

src/main.js 删除如下代码

javascript
// 移动端适配
-import "lib-flexible/flexible.js";

package.json 删除如下代码

javascript
"lib-flexible": "^0.3.2",
-"postcss-pxtorem": "^5.1.1",

运行起来,F12 元素 css style 就是 vw 单位了

Released under the MIT License.

- +
Skip to content

vm 适配方案

本项目使用的是 rem 的 适配方案,其实无论你使用哪种方案,都不需要你去计算 12px 是多少 rem 或者 vw, 会有专门的工具去帮你做 。如果你想用 vw,你可以按照下面的方式切换。

1.安装依赖

bash

+npm install postcss-px-to-viewport -D

2.修改 .postcssrc.js

将根目录下 .postcssrc.js 文件修改如下

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: {
+      overrideBrowserslist: [
+        "Android 4.1",
+        "iOS 7.1",
+        "Chrome > 31",
+        "ff > 31",
+        "ie >= 8",
+      ],
+    },
+    "postcss-px-to-viewport": {
+      viewportWidth: 375, // 视窗的宽度,对应的是我们设计稿的宽度,一般是750
+      unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
+      viewportUnit: "vw", // 指定需要转换成的视窗单位,建议使用vw
+      selectorBlackList: [".ignore", ".hairlines"], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
+      minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
+      mediaQuery: false, // 允许在媒体查询中转换`px`
+    },
+  },
+};

3.删除原来的 rem 相关代码

src/main.js 删除如下代码

javascript
// 移动端适配
+import "lib-flexible/flexible.js";

package.json 删除如下代码

javascript
"lib-flexible": "^0.3.2",
+"postcss-pxtorem": "^5.1.1",

运行起来,F12 元素 css style 就是 vw 单位了

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/alias.html b/guide/vue3/alias.html index c622e04..ae1100a 100644 --- a/guide/vue3/alias.html +++ b/guide/vue3/alias.html @@ -5,35 +5,29 @@ alias | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

alias

javascript
resolve: {
-    alias: [{
-            find: 'vue-i18n',
-            replacement: 'vue-i18n/dist/vue-i18n.cjs.js',
-        },
-        // /@/xxxx => src/xxxx
-        {
-            find: /\/@\//,
-            replacement: pathResolve('src') + '/',
-        },
-        // /#/xxxx => types/xxxx
-        {
-            find: /\/#\//,
-            replacement: pathResolve('types') + '/',
-        },
-    ],
-},

Released under the MIT License.

- + + \ No newline at end of file diff --git a/guide/vue3/axios.html b/guide/vue3/axios.html index 8f8819a..e797ad7 100644 --- a/guide/vue3/axios.html +++ b/guide/vue3/axios.html @@ -5,75 +5,78 @@ axios 封装及接口管理 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

axios 封装及接口管理

utils/request.js 封装 axios , 开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
-import store from "@/store";
-import { Toast } from "vant";
-// 根据环境不同引入不同api地址
-import { baseApi } from "@/config";
-// create an axios instance
-const service = axios.create({
-  baseURL: baseApi, // url = base api url + request url
-  withCredentials: true, // send cookies when cross-domain requests
-  timeout: 5000, // request timeout
-});
+    
Skip to content

axios 封装及接口管理

utils/request.js 封装 axios , 开发者需要根据后台接口做修改。

  • service.interceptors.request.use 里可以设置请求头,比如设置 token
  • config.hideloading 是在 api 文件夹下的接口参数里设置,下文会讲
  • service.interceptors.response.use 里可以对接口返回数据处理,比如 401 删除本地信息,重新登录
javascript
import axios from "axios";
+import store from "@/store";
+import { Toast } from "vant";
+// 根据环境不同引入不同api地址
+import { baseApi } from "@/config";
+// create an axios instance
+const service = axios.create({
+  baseURL: baseApi, // url = base api url + request url
+  withCredentials: true, // send cookies when cross-domain requests
+  timeout: 5000, // request timeout
+});
 
-// request 拦截器 request interceptor
-service.interceptors.request.use(
-  (config) => {
-    // 不传递默认开启loading
-    if (!config.hideloading) {
-      // loading
-      Toast.loading({
-        forbidClick: true,
-      });
-    }
-    if (store.getters.token) {
-      config.headers["X-Token"] = "";
-    }
-    return config;
-  },
-  (error) => {
-    // do something with request error
-    console.log(error); // for debug
-    return Promise.reject(error);
-  }
-);
-// respone拦截器
-service.interceptors.response.use(
-  (response) => {
-    Toast.clear();
-    const res = response.data;
-    if (res.status && res.status !== 200) {
-      // 登录超时,重新登录
-      if (res.status === 401) {
-        store.dispatch("FedLogOut").then(() => {
-          location.reload();
-        });
-      }
-      return Promise.reject(res || "error");
-    } else {
-      return Promise.resolve(res);
-    }
-  },
-  (error) => {
-    Toast.clear();
-    console.log("err" + error); // for debug
-    return Promise.reject(error);
-  }
-);
-export default service;

Released under the MIT License.

- +// request 拦截器 request interceptor +service.interceptors.request.use( + (config) => { + // 不传递默认开启loading + if (!config.hideloading) { + // loading + Toast.loading({ + forbidClick: true, + }); + } + if (store.getters.token) { + config.headers["X-Token"] = ""; + } + return config; + }, + (error) => { + // do something with request error + console.log(error); // for debug + return Promise.reject(error); + } +); +// respone拦截器 +service.interceptors.response.use( + (response) => { + Toast.clear(); + const res = response.data; + if (res.status && res.status !== 200) { + // 登录超时,重新登录 + if (res.status === 401) { + store.dispatch("FedLogOut").then(() => { + location.reload(); + }); + } + return Promise.reject(res || "error"); + } else { + return Promise.resolve(res); + } + }, + (error) => { + Toast.clear(); + console.log("err" + error); // for debug + return Promise.reject(error); + } +); +export default service;

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/base.html b/guide/vue3/base.html index 1665cb7..982ff8c 100644 --- a/guide/vue3/base.html +++ b/guide/vue3/base.html @@ -5,47 +5,63 @@ vite.config.ts 基础配置 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

vite.config.ts 基础配置

如果你的 Vue Router 模式是 hash

javascript
base: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
base: '/app/',
javascript
export default function ({ command }: ConfigEnv): UserConfigExport {
-  const isProduction = command === "build";
-  return {
-    server: {
-      host: "0.0.0.0",
-    },
-    plugins: [
-      vue(),
-      vueJsx(),
-      createStyleImportPlugin({
-        resolves: [NutuiResolve()],
-      }),
-      eruda(),
-      viteMockServe({
-        mockPath: "./src/mock",
-        localEnabled: command === "serve",
-        logger: true,
-      }),
-    ],
-    css: {
-      preprocessorOptions: {
-        scss: {
-          // 配置 nutui 全局 scss 变量
-          additionalData: `@import "@nutui/nutui/dist/styles/variables.scss";`,
-        },
-      },
-    },
-  };
-}

Released under the MIT License.

- +
Skip to content

vite.config.ts 基础配置

如果你的 Vue Router 模式是 hash

javascript
base: './',

如果你的 Vue Router 模式是 history 这里的 publicPath 和你的 Vue Router base 保持一致

javascript
base: '/app/',
javascript
export default function ({ command, mode }: ConfigEnv): UserConfig {
+  const isProduction = command === "build";
+  const root = process.cwd();
+  const env = loadEnv(mode, root);
+  const viteEnv = wrapperEnv(env);
+
+  return {
+    base: "/",
+    root,
+    resolve: {
+      alias: {
+        "@": fileURLToPath(new URL("./src", import.meta.url)),
+        "#": fileURLToPath(new URL("./types", import.meta.url)),
+      },
+    },
+    server: {
+      host: true,
+      hmr: true,
+    },
+    plugins: createVitePlugins(viteEnv, isProduction),
+    build: {
+      minify: "terser",
+      terserOptions: {
+        compress: {
+          //生产环境时移除console
+          drop_console: true,
+          drop_debugger: true,
+        },
+      },
+    },
+    css: {
+      preprocessorOptions: {
+        scss: {
+          quietDeps: true,
+          silenceDeprecations: ["legacy-js-api"],
+          // 配置 nutui 全局 scss 变量
+          additionalData: `@use "@nutui/nutui/dist/styles/variables.scss" as *; @use '@/styles/vant.scss' as *;`,
+        },
+      },
+    },
+  };
+}

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/env.html b/guide/vue3/env.html index 68e414f..852cdc9 100644 --- a/guide/vue3/env.html +++ b/guide/vue3/env.html @@ -3,25 +3,28 @@ - Vue-H5-Template | Vue-H5-Template + Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

package.json 里的 scripts 配置 dev dev:test dev:prod ,通过 --mode xxx 来执行不同环境

  • 通过 yarn dev 启动本地环境参数 , 执行 development
  • 通过 yarn dev:test 启动测试环境参数 , 执行 test
  • 通过 yarn dev:prod 启动正式环境参数 , 执行 prod
javascript
"scripts": {
-    "dev": "vite",
-    "dev:test": "vite --mode test",
-    "dev:prod": "vite --mode production",
-}

Released under the MIT License.

- +
Skip to content

package.json 里的 scripts 配置 dev dev:test dev:prod ,通过 --mode xxx 来执行不同环境

  • 通过 yarn dev 启动本地环境参数 , 执行 development
  • 通过 yarn dev:test 启动测试环境参数 , 执行 test
  • 通过 yarn dev:prod 启动正式环境参数 , 执行 prod
javascript
"scripts": {
+    "dev": "vite",
+    "dev:test": "vite --mode test",
+    "dev:prod": "vite --mode production",
+}

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/i18n.html b/guide/vue3/i18n.html index a96ef39..176123f 100644 --- a/guide/vue3/i18n.html +++ b/guide/vue3/i18n.html @@ -5,80 +5,83 @@ i18n 文本多语言解决方案 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

i18n 文本多语言解决方案

javascript
import { createI18n } from 'vue-i18n'; // 引入第三方最新的i18n注意版本
+    
Skip to content

i18n 文本多语言解决方案

javascript
import { createI18n } from 'vue-i18n'; // 引入第三方最新的i18n注意版本
 
-/**
- * @description: 加载当前配置的语言配置目录,随意添加
- */
-export function loadLang() {
-  const modules: Record<string, any> = import.meta.glob('./lang/*.ts', { eager: true });
-  const langs: Record<string, any> = {};
+/**
+ * @description: 加载当前配置的语言配置目录,随意添加
+ */
+export function loadLang() {
+  const modules: Record<string, any> = import.meta.glob('./lang/*.ts', { eager: true });
+  const langs: Record<string, any> = {};
 
-  for (const path in modules) {
-    const name = path.replace(/(\.\/lang\/|\.ts)/g, '');
-    langs[name] = modules[path].lang;
-  }
-  return langs;
-}
+  for (const path in modules) {
+    const name = path.replace(/(\.\/lang\/|\.ts)/g, '');
+    langs[name] = modules[path].lang;
+  }
+  return langs;
+}
 
-export const i18n = createI18n({
-  // globalInjection: true,
-  // legacy: false,
-  locale: 'zh-cn', // 默认语言,当前这里的数据要跟配置的lang目录下面的文件名字前缀一致
-  fallbackLocale: 'zh-cn',
-  messages: loadLang(), // 记载当前引入的语言目录的处理过后的数据
-});
+export const i18n = createI18n({
+  // globalInjection: true,
+  // legacy: false,
+  locale: 'zh-cn', // 默认语言,当前这里的数据要跟配置的lang目录下面的文件名字前缀一致
+  fallbackLocale: 'zh-cn',
+  messages: loadLang(), // 记载当前引入的语言目录的处理过后的数据
+});
 
-/**
- * @description: 切换当前多语言
- */
-export function setLang(locale?: string) {
-  if (locale) {
-    localStorage.setItem('lang', locale);
-  }
-  i18n.global.locale = locale || localStorage.getItem('lang') || '';
-}

css图片解决方案

目前在业务开发中,CSS 的样式多语言也会经常用到,可能一些图片的字体比较复杂,代码很难实现。或者我们为了减少多语言的配置,加快开发效率也会使用多语言的配置,目前这里提供 scss 的图片多语言的方案

css
@mixin main-lang-bg($width, $height, $preUrl, $posUrl) {
-  width: $width;
-  height: $height;
-  background-repeat: no-repeat;
-  background-size: 100% 100%;
-  @include loop-lang-bg($preUrl, $posUrl);
-}
-// 背景图多语言
-@mixin loop-lang-bg($preUrl, $posUrl) {
-  $list: zh-cn, en-us; // 配置需要的多语言,根据项目来
-  @each $i in $list {
-    &.#{$i} {
-      background-image: url('#{$preUrl}/#{$i}/#{$posUrl}');
-    }
-  }
-}

定义图片的目录格式

bash
├── button
-   ├── en-us
-      └── confirm.png
-   ├── zh-cn
-      └── confirm.png

HTML的使用方式

html
<template>
- <div :class="['btn-confirm', i18n.global.locale]"></div>
-</template>
-<script lang="ts" setup name="HomePage">
-    import { i18n } from '/@/i18n';
-</script>
-<style lang="scss" scoped>
-    .btn-confirm {
-        @include main-lang-bg(302px, 82px, '/@/assets/button', 'confirm.png');
-    }
-</style>

Released under the MIT License.

- +/** + * @description: 切换当前多语言 + */ +export function setLang(locale?: string) { + if (locale) { + localStorage.setItem('lang', locale); + } + i18n.global.locale = locale || localStorage.getItem('lang') || ''; +}

css图片解决方案

目前在业务开发中,CSS 的样式多语言也会经常用到,可能一些图片的字体比较复杂,代码很难实现。或者我们为了减少多语言的配置,加快开发效率也会使用多语言的配置,目前这里提供 scss 的图片多语言的方案

css
@mixin main-lang-bg($width, $height, $preUrl, $posUrl) {
+  width: $width;
+  height: $height;
+  background-repeat: no-repeat;
+  background-size: 100% 100%;
+  @include loop-lang-bg($preUrl, $posUrl);
+}
+// 背景图多语言
+@mixin loop-lang-bg($preUrl, $posUrl) {
+  $list: zh-cn, en-us; // 配置需要的多语言,根据项目来
+  @each $i in $list {
+    &.#{$i} {
+      background-image: url('#{$preUrl}/#{$i}/#{$posUrl}');
+    }
+  }
+}

定义图片的目录格式

bash
├── button
+   ├── en-us
+   └── confirm.png
+   ├── zh-cn
+   └── confirm.png

HTML的使用方式

html
<template>
+ <div :class="['btn-confirm', i18n.global.locale]"></div>
+</template>
+<script lang="ts" setup name="HomePage">
+    import { i18n } from '/@/i18n';
+</script>
+<style lang="scss" scoped>
+    .btn-confirm {
+        @include main-lang-bg(302px, 82px, '/@/assets/button', 'confirm.png');
+    }
+</style>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/lint.html b/guide/vue3/lint.html index b3700fb..f2771c2 100644 --- a/guide/vue3/lint.html +++ b/guide/vue3/lint.html @@ -5,19 +5,22 @@ Eslint + Pettier + Stylelint 统一开发规范 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + - - + + \ No newline at end of file diff --git a/guide/vue3/pinia.html b/guide/vue3/pinia.html index 0979f42..06628cc 100644 --- a/guide/vue3/pinia.html +++ b/guide/vue3/pinia.html @@ -5,83 +5,86 @@ Pinia 状态管理 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

Pinia 状态管理

下一代 vuex,使用极其方便,ts 兼容好

目录结构

bash
├── store
-   ├── modules
-      └── user.js
-   ├── index.js

目前pinia分为两种编程模式,Options API 和 Composition API,我们这边都会列举出来实现的业务逻辑效果是一样的,提供大家思路

Options API:

javascript
interface StoreUser {
-  token: string;
-  info: Record<any, any>;
-}
+    
Skip to content

Pinia 状态管理

下一代 vuex,使用极其方便,ts 兼容好

目录结构

bash
├── store
+   ├── modules
+   └── user.js
+   ├── index.js

目前pinia分为两种编程模式,Options API 和 Composition API,我们这边都会列举出来实现的业务逻辑效果是一样的,提供大家思路

Options API:

javascript
interface StoreUser {
+  token: string;
+  info: Record<any, any>;
+}
 
-export const useUserStore = defineStore({
-  id: 'app-user',
-  state: (): StoreUser => ({
-    token: token,
-    info: {},
-  }),
-  getters: {
-    getUserInfo(): any {
-      return this.info || {};
-    },
-  },
-  actions: {
-    setInfo(info: any) {
-      this.info = info ? info : '';
-    },
-    login() {
-      return new Promise((resolve) => {
-        const { data } = loginPassword();
-        watch(data, () => {
-          this.setInfo(data.value);
-          // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
-          resolve(data.value);
-        });
-      });
-    },
-  },
-});

Composition API:

javascript
export const useUserStore = defineStore('app-user', () => {
-  const Token = ref(token);
-  const info = ref<Record<any, any>>({});
-  const setInfo = (info: any) => {
-    info.value = info ? info : '';
-  };
-  const getUserInfo = () => {
-    return info || {};
-  };
-  const login = () => {
-    return new Promise((resolve) => {
-      const { data } = loginPassword();
-      watch(data, () => {
-        setInfo(data.value);
-        // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
-        resolve(data.value);
-      });
-    });
-  };
-  return {
-    Token,
-    info,
-    setInfo,
-    login,
-    getUserInfo,
-  };
-})

使用

html
<script lang="ts" setup>
-  import { useUserStore } from "@/store/modules/user";
-  const userStore = useUserStore();
-  userStore.login();
-</script>

Released under the MIT License.

- +export const useUserStore = defineStore({ + id: 'app-user', + state: (): StoreUser => ({ + token: token, + info: {}, + }), + getters: { + getUserInfo(): any { + return this.info || {}; + }, + }, + actions: { + setInfo(info: any) { + this.info = info ? info : ''; + }, + login() { + return new Promise((resolve) => { + const { data } = loginPassword(); + watch(data, () => { + this.setInfo(data.value); + // useCookies().set(VITE_TOKEN_KEY as string, data.value.token); + resolve(data.value); + }); + }); + }, + }, +});

Composition API:

javascript
export const useUserStore = defineStore('app-user', () => {
+  const Token = ref(token);
+  const info = ref<Record<any, any>>({});
+  const setInfo = (info: any) => {
+    info.value = info ? info : '';
+  };
+  const getUserInfo = () => {
+    return info || {};
+  };
+  const login = () => {
+    return new Promise((resolve) => {
+      const { data } = loginPassword();
+      watch(data, () => {
+        setInfo(data.value);
+        // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
+        resolve(data.value);
+      });
+    });
+  };
+  return {
+    Token,
+    info,
+    setInfo,
+    login,
+    getUserInfo,
+  };
+})

使用

html
<script lang="ts" setup>
+  import { useUserStore } from "@/store/modules/user";
+  const userStore = useUserStore();
+  userStore.login();
+</script>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/proxy.html b/guide/vue3/proxy.html index 6f08d2f..c19277f 100644 --- a/guide/vue3/proxy.html +++ b/guide/vue3/proxy.html @@ -5,27 +5,30 @@ proxy 跨域 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + - - + + \ No newline at end of file diff --git a/guide/vue3/router.html b/guide/vue3/router.html index 01d650a..49389af 100644 --- a/guide/vue3/router.html +++ b/guide/vue3/router.html @@ -5,37 +5,40 @@ vue-router | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式, vue.config.js 中的 publicPath 要做对应的修改

前往: vite.config.js 基础配置

javascript
import Vue from "vue";
-import { createRouter, createWebHistory, Router } from "vue-router";
+    
Skip to content

vue-router

本案例采用 hash 模式,开发者根据需求修改 mode base

注意:如果你使用了 history 模式, vue.config.js 中的 publicPath 要做对应的修改

前往: vite.config.js 基础配置

javascript
import Vue from "vue";
+import { createRouter, createWebHistory, Router } from "vue-router";
 
-Vue.use(Router);
-export const router = [
-  {
-    name: "root",
-    path: "/",
-    redirect: "/home",
-    component: () => import("@/layout/basic/index.vue"),
-  },
-];
+Vue.use(Router);
+export const router = [
+  {
+    name: "root",
+    path: "/",
+    redirect: "/home",
+    component: () => import("@/layout/basic/index.vue"),
+  },
+];
 
-const router: Router = createRouter({
-  history: createWebHistory(),
-  routes: routes,
-});
+const router: Router = createRouter({
+  history: createWebHistory(),
+  routes: routes,
+});
 
-export default router;

Released under the MIT License.

- +export default router;

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/start.html b/guide/vue3/start.html index 0a093f8..194aee7 100644 --- a/guide/vue3/start.html +++ b/guide/vue3/start.html @@ -5,26 +5,40 @@ 启动项目 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

启动项目

bash
# 拉取项目
-git clone https://github.com/sunniejs/vue-h5-template
+    
-    
+# 启动项目
+yarn dev
+=======
+// 安装依赖
+- pnpm install
+- yarn install
+
+// 启动项目
+- pnpm dev
+- yarn dev
+>>>>>>> Stashed changes

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/ui.html b/guide/vue3/ui.html index cbda90b..d30e293 100644 --- a/guide/vue3/ui.html +++ b/guide/vue3/ui.html @@ -5,36 +5,26 @@ 多 UI 组件库供选择 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

多 UI 组件库供选择

Vite 构建工具,使用 vite-plugin-style-importunplugin-vue-components/vite 实现按需引入。

安装插件

bash
yarn add vite-plugin-style-import -D
-yarn add unplugin-vue-components/vite -D

使用组件库

nutUI 没有按需加载的 resolvers,style 需要自己配置按需加载

config/vite/plugins/styleImport.ts 设置

javascript
// 按需加载样式文件
-  ...
-    createStyleImportPlugin({
-      resolves: [NutuiResolve()],
-    }),
-  ...

项目在 src/plugins/nutUI.ts 下统一管理组件,用哪个引入哪个,无需在页面里重复引用

javascript
// 按需全局引入nutUI组件
-import Vue from "vue";
-import { Button, Cell, CellGroup } from "@nutui/nutui";
-export const nutUiComponents = [Button, Cell, CellGroup];
-
-// 在main.ts文件中引入
-nutUiComponents.forEach((item) => {
-  app.use(item);
-});

vant 和 varlet 可以使用组件按需加载

config/vite/plugins/component.ts

javascript
import { VueUseComponentsResolver, VantResolver, VarletUIResolver } from 'unplugin-vue-components/resolvers';
-...
-resolvers: [VantResolver(), VarletUIResolver()],
-...

不需要某个组件库

nutUI 需删除src/plugins/nutUI.tsmain.ts文件下的引入

vant 和 varlet 只需删除对应的 resolvers 即可

删除后需全局搜索删除不需要的组件,避免报错

参考文档

Released under the MIT License.

- +
Skip to content

多 UI 组件库供选择

Vite 构建工具,使用 vite-plugin-style-importunplugin-vue-components/vite 实现按需引入。

安装插件

bash
pnpm add unplugin-vue-components/vite -D

使用组件库

vant 、 varlet 和 nutUI 可以使用组件按需加载

config/vite/plugins/component.ts

javascript
import { VantResolver, VarletUIResolver } from 'unplugin-vue-components/resolvers';
+import NutUIResolver from '@nutui/auto-import-resolver';
+...
+resolvers: [VantResolver(), VarletUIResolver(), NutUIResolver()],
+...

不需要某个组件库

只需删除对应的 resolvers 即可

删除后需全局搜索删除不需要的组件,避免报错

参考文档

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/viewport.html b/guide/vue3/viewport.html index 7e646eb..abd20c5 100644 --- a/guide/vue3/viewport.html +++ b/guide/vue3/viewport.html @@ -5,55 +5,58 @@ viewport 适配方案 | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

viewport 适配方案

不用担心,项目已经配置好了 viewport 适配,下面仅做介绍:

  • cnjm-postcss-px-to-viewport 是一款 postcss 插件,用于将单位转化为 vw, 现在很多浏览器对vw的支持都很好,适配首选方案。

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
-module.exports = {
-  plugins: {
-    autoprefixer: { overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8'] },
-    'cnjm-postcss-px-to-viewport': {
-      unitToConvert: 'px', // 要转化的单位
-      viewportWidth: 750, // UI设计稿的宽度
-      unitPrecision: 6, // 转换后的精度,即小数点位数
-      propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
-      viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
-      fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
-      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
-      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
-      replace: true, // 是否转换后直接更换属性值
-      include: [],
-      exclude: [], // 设置忽略文件,用正则做目录名匹配
-      customFun: ({ file }) => {
-        // 这个自定义的方法是针对处理vant组件下的设计稿为375问题
-        const designWidth = judgeComponent(file) ? 375 : 750;
-        return designWidth;
-      },
-  },
-};

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题, 因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于 html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5 , 你可以看到在 iPhone 6 下看到 ( 1rem 等于 37.5px ):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的 font-size 。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕, 其他机型适配。

  • rootValue: 75 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
+    
Skip to content

viewport 适配方案

不用担心,项目已经配置好了 viewport 适配,下面仅做介绍:

  • cnjm-postcss-px-to-viewport 是一款 postcss 插件,用于将单位转化为 vw, 现在很多浏览器对vw的支持都很好,适配首选方案。

PostCSS 配置

下面提供了一份基本的 postcss 配置,可以在此配置的基础上根据项目需求进行修改

javascript
// https://github.com/michael-ciniawsky/postcss-load-config
+module.exports = {
+  plugins: {
+    autoprefixer: { overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8'] },
+    'cnjm-postcss-px-to-viewport': {
+      unitToConvert: 'px', // 要转化的单位
+      viewportWidth: 750, // UI设计稿的宽度
+      unitPrecision: 6, // 转换后的精度,即小数点位数
+      propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
+      viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
+      fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
+      minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
+      mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
+      replace: true, // 是否转换后直接更换属性值
+      include: [],
+      exclude: [], // 设置忽略文件,用正则做目录名匹配
+      customFun: ({ file }) => {
+        // 这个自定义的方法是针对处理vant组件下的设计稿为375问题
+        const designWidth = judgeComponent(file) ? 375 : 750;
+        return designWidth;
+      },
+  },
+};

新手必看,老鸟跳过

很多小伙伴会问我,适配的问题, 因为我们使用的是 Vant UI,所以必须根据 Vant UI 375 的设计规范走,一般我们的设计会将 UI 图上传到蓝湖,我们就可以得到需要的尺寸了。下面就简单普及一下 rem 适配的原理。

我们知道 1rem 等于 html 根元素设定的 font-sizepx 值。Vant UI 设置 rootValue: 37.5 , 你可以看到在 iPhone 6 下看到 ( 1rem 等于 37.5px ):

html
<html data-dpr="1" style="font-size: 37.5px;"></html>

切换不同的机型,根元素可能会有不同的 font-size 。当你写 css px 样式时,会被程序换算成 rem 达到适配。

因为我们用了 Vant 的组件,需要按照 rootValue: 37.5 来写样式。

举个例子:设计给了你一张 750px * 1334px 图片,在 iPhone6 上铺满屏幕, 其他机型适配。

  • rootValue: 75 , 样式 width: 750px;height: 1334px; 图片会撑满 iPhone6 屏幕,这个时候切换其他机型,图片也会跟着撑满。
  • rootValue: 37.5 的时候,样式 width: 375px;height: 667px; 图片会撑满 iPhone6 屏幕。

也就是 iphone 6 下 375px 宽度写 CSS。其他的你就可以根据你设计图,去写对应的样式就可以了。

当然,想要撑满屏幕你可以使用 100%,这里只是举例说明。

html
<img class="image" src="https://www.sunniejs.cn/static/weapp/logo.png" />
 
-<style>
-  /* rootValue: 75 */
-  .image {
-    width: 750px;
-    height: 1334px;
-  }
+<style>
+  /* rootValue: 75 */
+  .image {
+    width: 750px;
+    height: 1334px;
+  }
 
-  /* rootValue: 37.5 */
-  .image {
-    width: 375px;
-    height: 667px;
-  }
-</style>

Released under the MIT License.

- + /* rootValue: 37.5 */ + .image { + width: 375px; + height: 667px; + } +</style>

Released under the MIT License.

+ \ No newline at end of file diff --git a/guide/vue3/vite.html b/guide/vue3/vite.html index 03c414a..505e02e 100644 --- a/guide/vue3/vite.html +++ b/guide/vue3/vite.html @@ -5,19 +5,22 @@ vite | Vue-H5-Template - - - - - - - - + + + + + + + + + + + + -
Skip to content
On this page

vite

基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR),使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。更多关于vite

模版集成了如下的 vite 插件

  • unplugin-auto-import(按需加载,自动引入)
  • unplugin-vue-components(按需加载,自动引入组件)
  • vite-plugin-compression(开启.gz 压缩)
  • vite-plugin-eruda(控制台,方便移动端调试)
  • vite-plugin-imagemin(图片压缩)
  • vite-plugin-mock(引入 mockjs,本地模拟接口)
  • vite-plugin-pages(动态生成路由)
  • vite-plugin-progress(构建显示进度条)
  • vite-plugin-restart(监听配置文件修改自动重启 Vite)
  • vite-plugin-style-import(按需引入样式文件)
  • vite-plugin-svg-icons(加载 SVG 文件,自动引入)

Released under the MIT License.

- +
Skip to content

vite

基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR),使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。更多关于vite

模版集成了如下的 vite 插件

  • unplugin-auto-import(按需加载,自动引入)
  • unplugin-vue-components(按需加载,自动引入组件)
  • vite-plugin-compression(开启.gz 压缩)
  • vite-plugin-eruda(控制台,方便移动端调试)
  • vite-plugin-imagemin(图片压缩)
  • vite-plugin-mock(引入 mockjs,本地模拟接口)
  • vite-plugin-pages(动态生成路由)
  • vite-plugin-progress(构建显示进度条)
  • vite-plugin-restart(监听配置文件修改自动重启 Vite)
  • vite-plugin-style-import(按需引入样式文件)
  • vite-plugin-svg-icons(加载 SVG 文件,自动引入)

Released under the MIT License.

+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 2b92091..dd44de1 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_about_index.md":"3268f72f","guide_index.md":"46287c77","guide_vue2_base.md":"bd933227","guide_edit.md":"7944bd49","guide_vue2_alias.md":"c0d9e31c","guide_vue2_env.md":"71078dec","guide_vue2_chunks.md":"93504c3d","guide_vue3_axios.md":"0778382b","guide_vue2_router.md":"369637ff","guide_vue2_vant.md":"4ed27c84","guide_vue2_vw.md":"f3d8795c","guide_start.md":"634b98ba","guide_vue3_i18n.md":"51f27eff","guide_vue2_rem.md":"05f1a99e","guide_vue3_pinia.md":"0d738d45","guide_vue3_lint.md":"18663aed","guide_vue3_start.md":"6f88b41c","guide_vue3_proxy.md":"94d7124b","guide_vue2_vuex.md":"399839b6","guide_vue2_proxy.md":"0d483f53","guide_vue3_base.md":"462dbdb9","guide_vue2_console.md":"68673d37","guide_other_index.md":"5aef07ec","guide_vue2_bundle.md":"73aeb293","guide_vue3_alias.md":"6e50bff0","guide_vue2_sass.md":"3616d11c","guide_vue2_start.md":"f6e40312","guide_vue3_env.md":"b928542e","guide_vue3_ui.md":"385fc808","guide_vue3_viewport.md":"0ef62fba","guide_vue3_router.md":"84936a90","guide_vue2_lint.md":"94bcc728","guide_vue2_axios.md":"f273628e","guide_vue2_externals.md":"6744fb41","guide_vue3_vite.md":"7a4b4162","index.md":"b1dbb931","guide_vue2_ie.md":"f5d567e9"} +{"guide_about_index.md":"BInAGpOZ","guide_edit.md":"BFTKW4N6","guide_index.md":"DbPegufj","guide_other_index.md":"CY3kK2YF","guide_start.md":"DHBrOjyQ","guide_vue2_alias.md":"Bpsu5tkg","guide_vue2_axios.md":"DaUELcSq","guide_vue2_base.md":"BDU01QnP","guide_vue2_bundle.md":"CNUozxFc","guide_vue2_chunks.md":"DuIfKUrd","guide_vue2_console.md":"Gs0-ejrb","guide_vue2_env.md":"RerSN2s4","guide_vue2_externals.md":"CU1FcDNo","guide_vue2_ie.md":"EjrCACXt","guide_vue2_lint.md":"CabJs37Q","guide_vue2_proxy.md":"BO5v8-sy","guide_vue2_rem.md":"C61I_gc0","guide_vue2_router.md":"C_XNmJ7g","guide_vue2_sass.md":"_wz-u2Mv","guide_vue2_start.md":"BiD_Lb5X","guide_vue2_vant.md":"B9mf6FC_","guide_vue2_vuex.md":"Bq0nNGtS","guide_vue2_vw.md":"RpXdfcrI","guide_vue3_alias.md":"DDoW2ox6","guide_vue3_axios.md":"B5xKedqx","guide_vue3_base.md":"CQ5z0jOy","guide_vue3_env.md":"DWttYdli","guide_vue3_i18n.md":"DxHteO6i","guide_vue3_lint.md":"Be77P98W","guide_vue3_pinia.md":"C2AjkaWQ","guide_vue3_proxy.md":"ERXS0FOC","guide_vue3_router.md":"CRRf7Qv7","guide_vue3_start.md":"CPrQRCQ4","guide_vue3_ui.md":"UjYB3lCr","guide_vue3_viewport.md":"TgabUsci","guide_vue3_vite.md":"BCuL8Srk","index.md":"ClCgxQxg"} diff --git a/index.html b/index.html index 0ee9114..52bcab0 100644 --- a/index.html +++ b/index.html @@ -5,19 +5,22 @@ Vue-H5-Template | 一个快速开发的vue h5移动端脚手架 - - - - - - - - + + + + + + + + + + + + -
Skip to content

Vue-H5-Template

一个快速开发的Vue H5移动端脚手架

sunnie
💡

开箱即用

集成vue2、vue3的移动端快速开发模版,学习成本低,易上手

📦

代码规范

完整的eslint、prettier、stylelint规范,加上husky,帮助你更好的管理代码

🛠️

配置优化

完整配置的vue脚手架插件和优化,让你专注于业务开发,更高效

⚙️

More

加入我们,更多能力等你挖掘....

Released under the MIT License.

- +
Skip to content

Vue-H5-Template一个快速开发的Vue H5移动端脚手架

sunnie

Released under the MIT License.

+ \ No newline at end of file diff --git a/vp-icons.css b/vp-icons.css new file mode 100644 index 0000000..ddc5bd8 --- /dev/null +++ b/vp-icons.css @@ -0,0 +1 @@ +.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")} \ No newline at end of file