From 3743b5ddcd9860f8a98f18c8ff8112a9aa1174bc Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Wed, 10 Sep 2025 20:04:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=9B=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AE=A1=E5=88=92=E5=9F=BA=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/dist/assets/index.48fb8fe6.js | 21 -- ...{index.2ad61d14.css => index.bcc76856.css} | 2 +- frontend/dist/assets/index.cb9d3828.js | 21 ++ frontend/dist/index.html | 4 +- frontend/src/components/FeedPlanForm.vue | 303 ++++++++++++++++++ frontend/src/pages/FeedPlan.vue | 121 ++++++- frontend/vite.config.js | 6 + internal/controller/feed/feed.go | 1 + internal/storage/repository/feed.go | 3 + 9 files changed, 453 insertions(+), 29 deletions(-) delete mode 100644 frontend/dist/assets/index.48fb8fe6.js rename frontend/dist/assets/{index.2ad61d14.css => index.bcc76856.css} (51%) create mode 100644 frontend/dist/assets/index.cb9d3828.js create mode 100644 frontend/src/components/FeedPlanForm.vue diff --git a/frontend/dist/assets/index.48fb8fe6.js b/frontend/dist/assets/index.48fb8fe6.js deleted file mode 100644 index ddee3f7..0000000 --- a/frontend/dist/assets/index.48fb8fe6.js +++ /dev/null @@ -1,21 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerpolicy&&(i.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?i.credentials="include":o.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();/** -* @vue/shared v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Dt=[],Ne=()=>{},qo=()=>!1,Vn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ts=e=>e.startsWith("onUpdate:"),ue=Object.assign,As=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},pr=Object.prototype.hasOwnProperty,Y=(e,t)=>pr.call(e,t),V=Array.isArray,Mt=e=>pn(e)==="[object Map]",Bn=e=>pn(e)==="[object Set]",Ys=e=>pn(e)==="[object Date]",U=e=>typeof e=="function",le=e=>typeof e=="string",ze=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",zo=e=>(se(e)||U(e))&&U(e.then)&&U(e.catch),Go=Object.prototype.toString,pn=e=>Go.call(e),hr=e=>pn(e).slice(8,-1),Jo=e=>pn(e)==="[object Object]",Rs=e=>le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Yt=Ps(",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))},gr=/-\w/g,De=Un(e=>e.replace(gr,t=>t.slice(1).toUpperCase())),mr=/\B([A-Z])/g,Et=Un(e=>e.replace(mr,"-$1").toLowerCase()),Kn=Un(e=>e.charAt(0).toUpperCase()+e.slice(1)),es=Un(e=>e?`on${Kn(e)}`:""),gt=(e,t)=>!Object.is(e,t),Sn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},An=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Qs;const hn=()=>Qs||(Qs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Os(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(vr);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function tt(e){let t="";if(le(e))t=e;else if(V(e))for(let n=0;nWn(n,t))}const Xo=e=>!!(e&&e.__v_isRef===!0),F=e=>le(e)?e:e==null?"":V(e)||se(e)&&(e.toString===Go||!U(e.toString))?Xo(e)?F(e.value):JSON.stringify(e,Zo,2):String(e),Zo=(e,t)=>Xo(t)?Zo(e,t.value):Mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o],i)=>(n[ts(s,i)+" =>"]=o,n),{})}:Bn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ts(n))}:ze(t)?ts(t):se(t)&&!V(t)&&!Jo(t)?String(t):t,ts=(e,t="")=>{var n;return ze(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Se;class Er{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Se,!t&&Se&&(this.index=(Se.scopes||(Se.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Se=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n0)return;if(Xt){let t=Xt;for(Xt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Qt;){let t=Qt;for(Qt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function oi(e){let t,n=e.depsTail,s=n;for(;s;){const o=s.prevDep;s.version===-1?(s===n&&(n=o),Ms(s),Tr(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=o}e.deps=t,e.depsTail=n}function ps(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ii(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ii(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===rn)||(e.globalVersion=rn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ps(e))))return;e.flags|=2;const t=e.dep,n=ne,s=$e;ne=e,$e=!0;try{si(e);const o=e.fn(e._value);(t.version===0||gt(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ne=n,$e=s,oi(e),e.flags&=-3}}function Ms(e,t=!1){const{dep:n,prevSub:s,nextSub:o}=e;if(s&&(s.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ms(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Tr(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let $e=!0;const ri=[];function st(){ri.push($e),$e=!1}function ot(){const e=ri.pop();$e=e===void 0?!0:e}function Xs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ne;ne=void 0;try{t()}finally{ne=n}}}let rn=0;class Ar{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Fs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ne||!$e||ne===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ne)n=this.activeLink=new Ar(ne,this),ne.deps?(n.prevDep=ne.depsTail,ne.depsTail.nextDep=n,ne.depsTail=n):ne.deps=ne.depsTail=n,li(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ne.depsTail,n.nextDep=void 0,ne.depsTail.nextDep=n,ne.depsTail=n,ne.deps===n&&(ne.deps=s)}return n}trigger(t){this.version++,rn++,this.notify(t)}notify(t){Is();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ds()}}}function li(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)li(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const hs=new WeakMap,Ct=Symbol(""),gs=Symbol(""),ln=Symbol("");function ge(e,t,n){if($e&&ne){let s=hs.get(e);s||hs.set(e,s=new Map);let o=s.get(n);o||(s.set(n,o=new Fs),o.map=s,o.key=n),o.track()}}function Ze(e,t,n,s,o,i){const l=hs.get(e);if(!l){rn++;return}const r=c=>{c&&c.trigger()};if(Is(),t==="clear")l.forEach(r);else{const c=V(e),p=c&&Rs(n);if(c&&n==="length"){const u=Number(s);l.forEach((h,m)=>{(m==="length"||m===ln||!ze(m)&&m>=u)&&r(h)})}else switch((n!==void 0||l.has(void 0))&&r(l.get(n)),p&&r(l.get(ln)),t){case"add":c?p&&r(l.get("length")):(r(l.get(Ct)),Mt(e)&&r(l.get(gs)));break;case"delete":c||(r(l.get(Ct)),Mt(e)&&r(l.get(gs)));break;case"set":Mt(e)&&r(l.get(Ct));break}}Ds()}function Rt(e){const t=J(e);return t===e?t:(ge(t,"iterate",ln),Ie(e)?t:t.map(de))}function qn(e){return ge(e=J(e),"iterate",ln),e}const Rr={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,de)},concat(...e){return Rt(this).concat(...e.map(t=>V(t)?Rt(t):t))},entries(){return ss(this,"entries",e=>(e[1]=de(e[1]),e))},every(e,t){return Ye(this,"every",e,t,void 0,arguments)},filter(e,t){return Ye(this,"filter",e,t,n=>n.map(de),arguments)},find(e,t){return Ye(this,"find",e,t,de,arguments)},findIndex(e,t){return Ye(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ye(this,"findLast",e,t,de,arguments)},findLastIndex(e,t){return Ye(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ye(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return Rt(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return Ye(this,"map",e,t,void 0,arguments)},pop(){return Wt(this,"pop")},push(...e){return Wt(this,"push",e)},reduce(e,...t){return Zs(this,"reduce",e,t)},reduceRight(e,...t){return Zs(this,"reduceRight",e,t)},shift(){return Wt(this,"shift")},some(e,t){return Ye(this,"some",e,t,void 0,arguments)},splice(...e){return Wt(this,"splice",e)},toReversed(){return Rt(this).toReversed()},toSorted(e){return Rt(this).toSorted(e)},toSpliced(...e){return Rt(this).toSpliced(...e)},unshift(...e){return Wt(this,"unshift",e)},values(){return ss(this,"values",de)}};function ss(e,t,n){const s=qn(e),o=s[t]();return s!==e&&!Ie(e)&&(o._next=o.next,o.next=()=>{const i=o._next();return i.value&&(i.value=n(i.value)),i}),o}const Or=Array.prototype;function Ye(e,t,n,s,o,i){const l=qn(e),r=l!==e&&!Ie(e),c=l[t];if(c!==Or[t]){const h=c.apply(e,i);return r?de(h):h}let p=n;l!==e&&(r?p=function(h,m){return n.call(this,de(h),m,e)}:n.length>2&&(p=function(h,m){return n.call(this,h,m,e)}));const u=c.call(l,p,s);return r&&o?o(u):u}function Zs(e,t,n,s){const o=qn(e);let i=n;return o!==e&&(Ie(e)?n.length>3&&(i=function(l,r,c){return n.call(this,l,r,c,e)}):i=function(l,r,c){return n.call(this,l,de(r),c,e)}),o[t](i,...s)}function os(e,t,n){const s=J(e);ge(s,"iterate",ln);const o=s[t](...n);return(o===-1||o===!1)&&$s(n[0])?(n[0]=J(n[0]),s[t](...n)):o}function Wt(e,t,n=[]){st(),Is();const s=J(e)[t].apply(e,n);return Ds(),ot(),s}const Ir=Ps("__proto__,__v_isRef,__isVue"),ci=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ze));function Dr(e){ze(e)||(e=String(e));const t=J(this);return ge(t,"has",e),t.hasOwnProperty(e)}class ai{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(o?i?Br:pi:i?di:fi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const l=V(t);if(!o){let c;if(l&&(c=Rr[n]))return c;if(n==="hasOwnProperty")return Dr}const r=Reflect.get(t,n,_e(t)?t:s);return(ze(n)?ci.has(n):Ir(n))||(o||ge(t,"get",n),i)?r:_e(r)?l&&Rs(n)?r:r.value:se(r)?o?gi(r):zn(r):r}}class ui extends ai{constructor(t=!1){super(!1,t)}set(t,n,s,o){let i=t[n];if(!this._isShallow){const c=mt(i);if(!Ie(s)&&!mt(s)&&(i=J(i),s=J(s)),!V(t)&&_e(i)&&!_e(s))return c||(i.value=s),!0}const l=V(t)&&Rs(n)?Number(n)e,yn=e=>Reflect.getPrototypeOf(e);function $r(e,t,n){return function(...s){const o=this.__v_raw,i=J(o),l=Mt(i),r=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,p=o[e](...s),u=n?ms:t?Rn:de;return!t&&ge(i,"iterate",c?gs:Ct),{next(){const{value:h,done:m}=p.next();return m?{value:h,done:m}:{value:r?[u(h[0]),u(h[1])]:u(h),done:m}},[Symbol.iterator](){return this}}}}function bn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Lr(e,t){const n={get(o){const i=this.__v_raw,l=J(i),r=J(o);e||(gt(o,r)&&ge(l,"get",o),ge(l,"get",r));const{has:c}=yn(l),p=t?ms:e?Rn:de;if(c.call(l,o))return p(i.get(o));if(c.call(l,r))return p(i.get(r));i!==l&&i.get(o)},get size(){const o=this.__v_raw;return!e&&ge(J(o),"iterate",Ct),o.size},has(o){const i=this.__v_raw,l=J(i),r=J(o);return e||(gt(o,r)&&ge(l,"has",o),ge(l,"has",r)),o===r?i.has(o):i.has(o)||i.has(r)},forEach(o,i){const l=this,r=l.__v_raw,c=J(r),p=t?ms:e?Rn:de;return!e&&ge(c,"iterate",Ct),r.forEach((u,h)=>o.call(i,p(u),p(h),l))}};return ue(n,e?{add:bn("add"),set:bn("set"),delete:bn("delete"),clear:bn("clear")}:{add(o){!t&&!Ie(o)&&!mt(o)&&(o=J(o));const i=J(this);return yn(i).has.call(i,o)||(i.add(o),Ze(i,"add",o,o)),this},set(o,i){!t&&!Ie(i)&&!mt(i)&&(i=J(i));const l=J(this),{has:r,get:c}=yn(l);let p=r.call(l,o);p||(o=J(o),p=r.call(l,o));const u=c.call(l,o);return l.set(o,i),p?gt(i,u)&&Ze(l,"set",o,i):Ze(l,"add",o,i),this},delete(o){const i=J(this),{has:l,get:r}=yn(i);let c=l.call(i,o);c||(o=J(o),c=l.call(i,o)),r&&r.call(i,o);const p=i.delete(o);return c&&Ze(i,"delete",o,void 0),p},clear(){const o=J(this),i=o.size!==0,l=o.clear();return i&&Ze(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=$r(o,e,t)}),n}function ks(e,t){const n=Lr(e,t);return(s,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(Y(n,o)&&o in s?n:s,o,i)}const jr={get:ks(!1,!1)},Hr={get:ks(!1,!0)},Vr={get:ks(!0,!1)};const fi=new WeakMap,di=new WeakMap,pi=new WeakMap,Br=new WeakMap;function Ur(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Kr(e){return e.__v_skip||!Object.isExtensible(e)?0:Ur(hr(e))}function zn(e){return mt(e)?e:Ns(e,!1,Fr,jr,fi)}function hi(e){return Ns(e,!1,Nr,Hr,di)}function gi(e){return Ns(e,!0,kr,Vr,pi)}function Ns(e,t,n,s,o){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=Kr(e);if(i===0)return e;const l=o.get(e);if(l)return l;const r=new Proxy(e,i===2?s:n);return o.set(e,r),r}function Ft(e){return mt(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Ie(e){return!!(e&&e.__v_isShallow)}function $s(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Wr(e){return!Y(e,"__v_skip")&&Object.isExtensible(e)&&Yo(e,"__v_skip",!0),e}const de=e=>se(e)?zn(e):e,Rn=e=>se(e)?gi(e):e;function _e(e){return e?e.__v_isRef===!0:!1}function qr(e){return mi(e,!1)}function zr(e){return mi(e,!0)}function mi(e,t){return _e(e)?e:new Gr(e,t)}class Gr{constructor(t,n){this.dep=new Fs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:J(t),this._value=n?t:de(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Ie(t)||mt(t);t=s?t:J(t),gt(t,n)&&(this._rawValue=t,this._value=s?t:de(t),this.dep.trigger())}}function kt(e){return _e(e)?e.value:e}const Jr={get:(e,t,n)=>t==="__v_raw"?e:kt(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return _e(o)&&!_e(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function _i(e){return Ft(e)?e:new Proxy(e,Jr)}class Yr{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Fs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=rn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ne!==this)return ni(this,!0),!0}get value(){const t=this.dep.track();return ii(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Qr(e,t,n=!1){let s,o;return U(e)?s=e:(s=e.get,o=e.set),new Yr(s,o,n)}const xn={},On=new WeakMap;let xt;function Xr(e,t=!1,n=xt){if(n){let s=On.get(n);s||On.set(n,s=[]),s.push(e)}}function Zr(e,t,n=ee){const{immediate:s,deep:o,once:i,scheduler:l,augmentJob:r,call:c}=n,p=M=>o?M:Ie(M)||o===!1||o===0?et(M,1):et(M);let u,h,m,_,A=!1,O=!1;if(_e(e)?(h=()=>e.value,A=Ie(e)):Ft(e)?(h=()=>p(e),A=!0):V(e)?(O=!0,A=e.some(M=>Ft(M)||Ie(M)),h=()=>e.map(M=>{if(_e(M))return M.value;if(Ft(M))return p(M);if(U(M))return c?c(M,2):M()})):U(e)?t?h=c?()=>c(e,2):e:h=()=>{if(m){st();try{m()}finally{ot()}}const M=xt;xt=u;try{return c?c(e,3,[_]):e(_)}finally{xt=M}}:h=Ne,t&&o){const M=h,Z=o===!0?1/0:o;h=()=>et(M(),Z)}const K=Pr(),N=()=>{u.stop(),K&&K.active&&As(K.effects,u)};if(i&&t){const M=t;t=(...Z)=>{M(...Z),N()}}let I=O?new Array(e.length).fill(xn):xn;const j=M=>{if(!(!(u.flags&1)||!u.dirty&&!M))if(t){const Z=u.run();if(o||A||(O?Z.some((fe,re)=>gt(fe,I[re])):gt(Z,I))){m&&m();const fe=xt;xt=u;try{const re=[Z,I===xn?void 0:O&&I[0]===xn?[]:I,_];I=Z,c?c(t,3,re):t(...re)}finally{xt=fe}}}else u.run()};return r&&r(j),u=new ei(h),u.scheduler=l?()=>l(j,!1):j,_=M=>Xr(M,!1,u),m=u.onStop=()=>{const M=On.get(u);if(M){if(c)c(M,4);else for(const Z of M)Z();On.delete(u)}},t?s?j(!0):I=u.run():l?l(j.bind(null,!0),!0):u.run(),N.pause=u.pause.bind(u),N.resume=u.resume.bind(u),N.stop=N,N}function et(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,_e(e))et(e.value,t,n);else if(V(e))for(let s=0;s{et(s,t,n)});else if(Jo(e)){for(const s in e)et(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&et(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function gn(e,t,n,s){try{return s?e(...s):e()}catch(o){Gn(o,t,n)}}function Ge(e,t,n,s){if(U(e)){const o=gn(e,t,n,s);return o&&zo(o)&&o.catch(i=>{Gn(i,t,n)}),o}if(V(e)){const o=[];for(let i=0;i>>1,o=ye[s],i=cn(o);i=cn(n)?ye.push(e):ye.splice(tl(t),0,e),e.flags|=1,yi()}}function yi(){In||(In=vi.then(xi))}function nl(e){V(e)?Nt.push(...e):ft&&e.id===-1?ft.splice(Ot+1,0,e):e.flags&1||(Nt.push(e),e.flags|=1),yi()}function eo(e,t,n=We+1){for(;ncn(n)-cn(s));if(Nt.length=0,ft){ft.push(...t);return}for(ft=t,Ot=0;Ote.id==null?e.flags&2?-1:1/0:e.id;function xi(e){const t=Ne;try{for(We=0;We{s._d&&kn(-1);const i=Dn(t);let l;try{l=e(...o)}finally{Dn(i),s._d&&kn(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function Fe(e,t){if(Ae===null)return e;const n=Xn(Ae),s=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,il=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function wi(e,t){return U(e)?(()=>ue({name:e.name},t,{setup:e}))():e}function Ci(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Mn=new WeakMap;function Zt(e,t,n,s,o=!1){if(V(e)){e.forEach((A,O)=>Zt(A,t&&(V(t)?t[O]:t),n,s,o));return}if(en(s)&&!o){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Zt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Xn(s.component):s.el,l=o?null:i,{i:r,r:c}=e,p=t&&t.r,u=r.refs===ee?r.refs={}:r.refs,h=r.setupState,m=J(h),_=h===ee?qo:A=>Y(m,A);if(p!=null&&p!==c){if(to(t),le(p))u[p]=null,_(p)&&(h[p]=null);else if(_e(p)){p.value=null;const A=t;A.k&&(u[A.k]=null)}}if(U(c))gn(c,r,12,[l,u]);else{const A=le(c),O=_e(c);if(A||O){const K=()=>{if(e.f){const N=A?_(c)?h[c]:u[c]:c.value;if(o)V(N)&&As(N,i);else if(V(N))N.includes(i)||N.push(i);else if(A)u[c]=[i],_(c)&&(h[c]=u[c]);else{const I=[i];c.value=I,e.k&&(u[e.k]=I)}}else A?(u[c]=l,_(c)&&(h[c]=l)):O&&(c.value=l,e.k&&(u[e.k]=l))};if(l){const N=()=>{K(),Mn.delete(e)};N.id=-1,Mn.set(e,N),Te(N,n)}else to(e),K()}}}function to(e){const t=Mn.get(e);t&&(t.flags|=8,Mn.delete(e))}hn().requestIdleCallback;hn().cancelIdleCallback;const en=e=>!!e.type.__asyncLoader,Ei=e=>e.type.__isKeepAlive;function rl(e,t){Pi(e,"a",t)}function ll(e,t){Pi(e,"da",t)}function Pi(e,t,n=me){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Jn(t,s,n),n){let o=n.parent;for(;o&&o.parent;)Ei(o.parent.vnode)&&cl(s,t,n,o),o=o.parent}}function cl(e,t,n,s){const o=Jn(t,e,s,!0);Ti(()=>{As(s[t],o)},n)}function Jn(e,t,n=me,s=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{st();const r=_n(n),c=Ge(t,n,e,l);return r(),ot(),c});return s?o.unshift(i):o.push(i),i}}const it=e=>(t,n=me)=>{(!un||e==="sp")&&Jn(e,(...s)=>t(...s),n)},al=it("bm"),ul=it("m"),fl=it("bu"),dl=it("u"),pl=it("bum"),Ti=it("um"),hl=it("sp"),gl=it("rtg"),ml=it("rtc");function _l(e,t=me){Jn("ec",e,t)}const Ai="components";function mn(e,t){return yl(Ai,e,!0,t)||e}const vl=Symbol.for("v-ndc");function yl(e,t,n=!0,s=!1){const o=Ae||me;if(o){const i=o.type;if(e===Ai){const r=uc(i,!1);if(r&&(r===t||r===De(t)||r===Kn(De(t))))return i}const l=no(o[e]||i[e],t)||no(o.appContext[e],t);return!l&&s?i:l}}function no(e,t){return e&&(e[t]||e[De(t)]||e[Kn(De(t))])}function ht(e,t,n,s){let o;const i=n&&n[s],l=V(e);if(l||le(e)){const r=l&&Ft(e);let c=!1,p=!1;r&&(c=!Ie(e),p=mt(e),e=qn(e)),o=new Array(e.length);for(let u=0,h=e.length;ut(r,c,void 0,i&&i[c]));else{const r=Object.keys(e);o=new Array(r.length);for(let c=0,p=r.length;ce?zi(e)?Xn(e):_s(e.parent):null,tn=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=>_s(e.parent),$root:e=>_s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Vs(e),$forceUpdate:e=>e.f||(e.f=()=>{js(e.update)}),$nextTick:e=>e.n||(e.n=Ls.bind(e.proxy)),$watch:e=>Vl.bind(e)}),is=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:o,props:i,accessCache:l,type:r,appContext:c}=e;let p;if(t[0]!=="$"){const _=l[t];if(_!==void 0)switch(_){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(is(s,t))return l[t]=1,s[t];if(o!==ee&&Y(o,t))return l[t]=2,o[t];if((p=e.propsOptions[0])&&Y(p,t))return l[t]=3,i[t];if(n!==ee&&Y(n,t))return l[t]=4,n[t];vs&&(l[t]=0)}}const u=tn[t];let h,m;if(u)return t==="$attrs"&&ge(e.attrs,"get",""),u(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Y(n,t))return l[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:i}=e;return is(o,t)?(o[t]=n,!0):s!==ee&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:i,type:l}},r){let c,p;return!!(n[r]||e!==ee&&r[0]!=="$"&&Y(e,r)||is(t,r)||(c=i[0])&&Y(c,r)||Y(s,r)||Y(tn,r)||Y(o.config.globalProperties,r)||(p=l.__cssModules)&&p[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function so(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let vs=!0;function xl(e){const t=Vs(e),n=e.proxy,s=e.ctx;vs=!1,t.beforeCreate&&oo(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:l,watch:r,provide:c,inject:p,created:u,beforeMount:h,mounted:m,beforeUpdate:_,updated:A,activated:O,deactivated:K,beforeDestroy:N,beforeUnmount:I,destroyed:j,unmounted:M,render:Z,renderTracked:fe,renderTriggered:re,errorCaptured:je,serverPrefetch:rt,expose:He,inheritAttrs:lt,components:vt,directives:Ve,filters:Ut}=t;if(p&&Sl(p,s,null),l)for(const X in l){const q=l[X];U(q)&&(s[X]=q.bind(n))}if(o){const X=o.call(n,n);se(X)&&(e.data=zn(X))}if(vs=!0,i)for(const X in i){const q=i[X],Je=U(q)?q.bind(n,n):U(q.get)?q.get.bind(n,n):Ne,ct=!U(q)&&U(q.set)?q.set.bind(n):Ne,Be=ke({get:Je,set:ct});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>Be.value,set:be=>Be.value=be})}if(r)for(const X in r)Ri(r[X],s,n,X);if(c){const X=U(c)?c.call(n):c;Reflect.ownKeys(X).forEach(q=>{wn(q,X[q])})}u&&oo(u,e,"c");function ce(X,q){V(q)?q.forEach(Je=>X(Je.bind(n))):q&&X(q.bind(n))}if(ce(al,h),ce(ul,m),ce(fl,_),ce(dl,A),ce(rl,O),ce(ll,K),ce(_l,je),ce(ml,fe),ce(gl,re),ce(pl,I),ce(Ti,M),ce(hl,rt),V(He))if(He.length){const X=e.exposed||(e.exposed={});He.forEach(q=>{Object.defineProperty(X,q,{get:()=>n[q],set:Je=>n[q]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});Z&&e.render===Ne&&(e.render=Z),lt!=null&&(e.inheritAttrs=lt),vt&&(e.components=vt),Ve&&(e.directives=Ve),rt&&Ci(e)}function Sl(e,t,n=Ne){V(e)&&(e=ys(e));for(const s in e){const o=e[s];let i;se(o)?"default"in o?i=nt(o.from||s,o.default,!0):i=nt(o.from||s):i=nt(o),_e(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function oo(e,t,n){Ge(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ri(e,t,n,s){let o=s.includes(".")?Bi(n,s):()=>n[s];if(le(e)){const i=t[e];U(i)&&Cn(o,i)}else if(U(e))Cn(o,e.bind(n));else if(se(e))if(V(e))e.forEach(i=>Ri(i,t,n,s));else{const i=U(e.handler)?e.handler.bind(n):t[e.handler];U(i)&&Cn(o,i,e)}}function Vs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let c;return r?c=r:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(p=>Fn(c,p,l,!0)),Fn(c,t,l)),se(t)&&i.set(t,c),c}function Fn(e,t,n,s=!1){const{mixins:o,extends:i}=t;i&&Fn(e,i,n,!0),o&&o.forEach(l=>Fn(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const r=wl[l]||n&&n[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const wl={data:io,props:ro,emits:ro,methods:Jt,computed:Jt,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:Jt,directives:Jt,watch:El,provide:io,inject:Cl};function io(e,t){return t?e?function(){return ue(U(e)?e.call(this,this):e,U(t)?t.call(this,this):t)}:t:e}function Cl(e,t){return Jt(ys(e),ys(t))}function ys(e){if(V(e)){const t={};for(let n=0;n1)return n&&U(t)?t.call(s&&s.proxy):t}}const Ii={},Di=()=>Object.create(Ii),Mi=e=>Object.getPrototypeOf(e)===Ii;function Al(e,t,n,s=!1){const o={},i=Di();e.propsDefaults=Object.create(null),Fi(e,t,o,i);for(const l in e.propsOptions[0])l in o||(o[l]=void 0);n?e.props=s?o:hi(o):e.type.props?e.props=o:e.props=i,e.attrs=i}function Rl(e,t,n,s){const{props:o,attrs:i,vnode:{patchFlag:l}}=e,r=J(o),[c]=e.propsOptions;let p=!1;if((s||l>0)&&!(l&16)){if(l&8){const u=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=ki(h,t,!0);ue(l,m),_&&r.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!c)return se(e)&&s.set(e,Dt),Dt;if(V(i))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Us=e=>V(e)?e.map(qe):[qe(e)],Il=(e,t,n)=>{if(t._n)return t;const s=we((...o)=>Us(t(...o)),n);return s._c=!1,s},Ni=(e,t,n)=>{const s=e._ctx;for(const o in e){if(Bs(o))continue;const i=e[o];if(U(i))t[o]=Il(o,i,s);else if(i!=null){const l=Us(i);t[o]=()=>l}}},$i=(e,t)=>{const n=Us(t);e.slots.default=()=>n},Li=(e,t,n)=>{for(const s in t)(n||!Bs(s))&&(e[s]=t[s])},Dl=(e,t,n)=>{const s=e.slots=Di();if(e.vnode.shapeFlag&32){const o=t._;o?(Li(s,t,n),n&&Yo(s,"_",o,!0)):Ni(t,s)}else t&&$i(e,t)},Ml=(e,t,n)=>{const{vnode:s,slots:o}=e;let i=!0,l=ee;if(s.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Li(o,t,n):(i=!t.$stable,Ni(t,o)),l=t}else t&&($i(e,t),l={default:1});if(i)for(const r in o)!Bs(r)&&l[r]==null&&delete o[r]};function Fl(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(hn().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const Te=Jl;function kl(e){return Nl(e)}function Nl(e,t){Fl();const n=hn();n.__VUE__=!0;const{insert:s,remove:o,patchProp:i,createElement:l,createText:r,createComment:c,setText:p,setElementText:u,parentNode:h,nextSibling:m,setScopeId:_=Ne,insertStaticContent:A}=e,O=(a,d,g,b=null,v=null,x=null,E=void 0,C=null,w=!!d.dynamicChildren)=>{if(a===d)return;a&&!qt(a,d)&&(b=y(a),be(a,v,x,!0),a=null),d.patchFlag===-2&&(w=!1,d.dynamicChildren=null);const{type:S,ref:H,shapeFlag:T}=d;switch(S){case Qn:K(a,d,g,b);break;case _t:N(a,d,g,b);break;case En:a==null&&I(d,g,b,E);break;case pe:vt(a,d,g,b,v,x,E,C,w);break;default:T&1?Z(a,d,g,b,v,x,E,C,w):T&6?Ve(a,d,g,b,v,x,E,C,w):(T&64||T&128)&&S.process(a,d,g,b,v,x,E,C,w,D)}H!=null&&v?Zt(H,a&&a.ref,x,d||a,!d):H==null&&a&&a.ref!=null&&Zt(a.ref,null,x,a,!0)},K=(a,d,g,b)=>{if(a==null)s(d.el=r(d.children),g,b);else{const v=d.el=a.el;d.children!==a.children&&p(v,d.children)}},N=(a,d,g,b)=>{a==null?s(d.el=c(d.children||""),g,b):d.el=a.el},I=(a,d,g,b)=>{[a.el,a.anchor]=A(a.children,d,g,b,a.el,a.anchor)},j=({el:a,anchor:d},g,b)=>{let v;for(;a&&a!==d;)v=m(a),s(a,g,b),a=v;s(d,g,b)},M=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),o(a),a=g;o(d)},Z=(a,d,g,b,v,x,E,C,w)=>{d.type==="svg"?E="svg":d.type==="math"&&(E="mathml"),a==null?fe(d,g,b,v,x,E,C,w):rt(a,d,v,x,E,C,w)},fe=(a,d,g,b,v,x,E,C)=>{let w,S;const{props:H,shapeFlag:T,transition:k,dirs:B}=a;if(w=a.el=l(a.type,x,H&&H.is,H),T&8?u(w,a.children):T&16&&je(a.children,w,null,b,v,rs(a,x),E,C),B&&yt(a,null,b,"created"),re(w,a,a.scopeId,E,b),H){for(const te in H)te!=="value"&&!Yt(te)&&i(w,te,null,H[te],x,b);"value"in H&&i(w,"value",null,H.value,x),(S=H.onVnodeBeforeMount)&&Ke(S,b,a)}B&&yt(a,null,b,"beforeMount");const W=$l(v,k);W&&k.beforeEnter(w),s(w,d,g),((S=H&&H.onVnodeMounted)||W||B)&&Te(()=>{S&&Ke(S,b,a),W&&k.enter(w),B&&yt(a,null,b,"mounted")},v)},re=(a,d,g,b,v)=>{if(g&&_(a,g),b)for(let x=0;x{for(let S=w;S{const C=d.el=a.el;let{patchFlag:w,dynamicChildren:S,dirs:H}=d;w|=a.patchFlag&16;const T=a.props||ee,k=d.props||ee;let B;if(g&&bt(g,!1),(B=k.onVnodeBeforeUpdate)&&Ke(B,g,d,a),H&&yt(d,a,g,"beforeUpdate"),g&&bt(g,!0),(T.innerHTML&&k.innerHTML==null||T.textContent&&k.textContent==null)&&u(C,""),S?He(a.dynamicChildren,S,C,g,b,rs(d,v),x):E||q(a,d,C,null,g,b,rs(d,v),x,!1),w>0){if(w&16)lt(C,T,k,g,v);else if(w&2&&T.class!==k.class&&i(C,"class",null,k.class,v),w&4&&i(C,"style",T.style,k.style,v),w&8){const W=d.dynamicProps;for(let te=0;te{B&&Ke(B,g,d,a),H&&yt(d,a,g,"updated")},b)},He=(a,d,g,b,v,x,E)=>{for(let C=0;C{if(d!==g){if(d!==ee)for(const x in d)!Yt(x)&&!(x in g)&&i(a,x,d[x],null,v,b);for(const x in g){if(Yt(x))continue;const E=g[x],C=d[x];E!==C&&x!=="value"&&i(a,x,C,E,v,b)}"value"in g&&i(a,"value",d.value,g.value,v)}},vt=(a,d,g,b,v,x,E,C,w)=>{const S=d.el=a?a.el:r(""),H=d.anchor=a?a.anchor:r("");let{patchFlag:T,dynamicChildren:k,slotScopeIds:B}=d;B&&(C=C?C.concat(B):B),a==null?(s(S,g,b),s(H,g,b),je(d.children||[],g,H,v,x,E,C,w)):T>0&&T&64&&k&&a.dynamicChildren?(He(a.dynamicChildren,k,g,v,x,E,C),(d.key!=null||v&&d===v.subTree)&&ji(a,d,!0)):q(a,d,g,H,v,x,E,C,w)},Ve=(a,d,g,b,v,x,E,C,w)=>{d.slotScopeIds=C,a==null?d.shapeFlag&512?v.ctx.activate(d,g,b,E,w):Ut(d,g,b,v,x,E,w):Pt(a,d,w)},Ut=(a,d,g,b,v,x,E)=>{const C=a.component=oc(a,b,v);if(Ei(a)&&(C.ctx.renderer=D),rc(C,!1,E),C.asyncDep){if(v&&v.registerDep(C,ce,E),!a.el){const w=C.subTree=oe(_t);N(null,w,d,g),a.placeholder=w.el}}else ce(C,a,d,g,v,x,E)},Pt=(a,d,g)=>{const b=d.component=a.component;if(zl(a,d,g))if(b.asyncDep&&!b.asyncResolved){X(b,d,g);return}else b.next=d,b.update();else d.el=a.el,b.vnode=d},ce=(a,d,g,b,v,x,E)=>{const C=()=>{if(a.isMounted){let{next:T,bu:k,u:B,parent:W,vnode:te}=a;{const Ee=Hi(a);if(Ee){T&&(T.el=te.el,X(a,T,E)),Ee.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=T,xe;bt(a,!1),T?(T.el=te.el,X(a,T,E)):T=te,k&&Sn(k),(xe=T.props&&T.props.onVnodeBeforeUpdate)&&Ke(xe,W,T,te),bt(a,!0);const he=ls(a),Me=a.subTree;a.subTree=he,O(Me,he,h(Me.el),y(Me),a,v,x),T.el=he.el,Q===null&&Gl(a,he.el),B&&Te(B,v),(xe=T.props&&T.props.onVnodeUpdated)&&Te(()=>Ke(xe,W,T,te),v)}else{let T;const{el:k,props:B}=d,{bm:W,m:te,parent:Q,root:xe,type:he}=a,Me=en(d);if(bt(a,!1),W&&Sn(W),!Me&&(T=B&&B.onVnodeBeforeMount)&&Ke(T,Q,d),bt(a,!0),k&&ie){const Ee=()=>{a.subTree=ls(a),ie(k,a.subTree,a,v,null)};Me&&he.__asyncHydrate?he.__asyncHydrate(k,a,Ee):Ee()}else{xe.ce&&xe.ce._def.shadowRoot!==!1&&xe.ce._injectChildStyle(he);const Ee=a.subTree=ls(a);O(null,Ee,g,b,a,v,x),d.el=Ee.el}if(te&&Te(te,v),!Me&&(T=B&&B.onVnodeMounted)){const Ee=d;Te(()=>Ke(T,Q,Ee),v)}(d.shapeFlag&256||Q&&en(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&Te(a.a,v),a.isMounted=!0,d=g=b=null}};a.scope.on();const w=a.effect=new ei(C);a.scope.off();const S=a.update=w.run.bind(w),H=a.job=w.runIfDirty.bind(w);H.i=a,H.id=a.uid,w.scheduler=()=>js(H),bt(a,!0),S()},X=(a,d,g)=>{d.component=a;const b=a.vnode.props;a.vnode=d,a.next=null,Rl(a,d.props,b,g),Ml(a,d.children,g),st(),eo(a),ot()},q=(a,d,g,b,v,x,E,C,w=!1)=>{const S=a&&a.children,H=a?a.shapeFlag:0,T=d.children,{patchFlag:k,shapeFlag:B}=d;if(k>0){if(k&128){ct(S,T,g,b,v,x,E,C,w);return}else if(k&256){Je(S,T,g,b,v,x,E,C,w);return}}B&8?(H&16&&Oe(S,v,x),T!==S&&u(g,T)):H&16?B&16?ct(S,T,g,b,v,x,E,C,w):Oe(S,v,x,!0):(H&8&&u(g,""),B&16&&je(T,g,b,v,x,E,C,w))},Je=(a,d,g,b,v,x,E,C,w)=>{a=a||Dt,d=d||Dt;const S=a.length,H=d.length,T=Math.min(S,H);let k;for(k=0;kH?Oe(a,v,x,!0,!1,T):je(d,g,b,v,x,E,C,w,T)},ct=(a,d,g,b,v,x,E,C,w)=>{let S=0;const H=d.length;let T=a.length-1,k=H-1;for(;S<=T&&S<=k;){const B=a[S],W=d[S]=w?dt(d[S]):qe(d[S]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;S++}for(;S<=T&&S<=k;){const B=a[T],W=d[k]=w?dt(d[k]):qe(d[k]);if(qt(B,W))O(B,W,g,null,v,x,E,C,w);else break;T--,k--}if(S>T){if(S<=k){const B=k+1,W=Bk)for(;S<=T;)be(a[S],v,x,!0),S++;else{const B=S,W=S,te=new Map;for(S=W;S<=k;S++){const Pe=d[S]=w?dt(d[S]):qe(d[S]);Pe.key!=null&&te.set(Pe.key,S)}let Q,xe=0;const he=k-W+1;let Me=!1,Ee=0;const Kt=new Array(he);for(S=0;S=he){be(Pe,v,x,!0);continue}let Ue;if(Pe.key!=null)Ue=te.get(Pe.key);else for(Q=W;Q<=k;Q++)if(Kt[Q-W]===0&&qt(Pe,d[Q])){Ue=Q;break}Ue===void 0?be(Pe,v,x,!0):(Kt[Ue-W]=S+1,Ue>=Ee?Ee=Ue:Me=!0,O(Pe,d[Ue],g,null,v,x,E,C,w),xe++)}const zs=Me?Ll(Kt):Dt;for(Q=zs.length-1,S=he-1;S>=0;S--){const Pe=W+S,Ue=d[Pe],Gs=d[Pe+1],Js=Pe+1{const{el:x,type:E,transition:C,children:w,shapeFlag:S}=a;if(S&6){Be(a.component.subTree,d,g,b);return}if(S&128){a.suspense.move(d,g,b);return}if(S&64){E.move(a,d,g,D);return}if(E===pe){s(x,d,g);for(let T=0;TC.enter(x),v);else{const{leave:T,delayLeave:k,afterLeave:B}=C,W=()=>{a.ctx.isUnmounted?o(x):s(x,d,g)},te=()=>{x._isLeaving&&x[il](!0),T(x,()=>{W(),B&&B()})};k?k(x,W,te):te()}else s(x,d,g)},be=(a,d,g,b=!1,v=!1)=>{const{type:x,props:E,ref:C,children:w,dynamicChildren:S,shapeFlag:H,patchFlag:T,dirs:k,cacheIndex:B}=a;if(T===-2&&(v=!1),C!=null&&(st(),Zt(C,null,g,a,!0),ot()),B!=null&&(d.renderCache[B]=void 0),H&256){d.ctx.deactivate(a);return}const W=H&1&&k,te=!en(a);let Q;if(te&&(Q=E&&E.onVnodeBeforeUnmount)&&Ke(Q,d,a),H&6)vn(a.component,g,b);else{if(H&128){a.suspense.unmount(g,b);return}W&&yt(a,null,d,"beforeUnmount"),H&64?a.type.remove(a,d,g,D,b):S&&!S.hasOnce&&(x!==pe||T>0&&T&64)?Oe(S,d,g,!1,!0):(x===pe&&T&384||!v&&H&16)&&Oe(w,d,g),b&&Tt(a)}(te&&(Q=E&&E.onVnodeUnmounted)||W)&&Te(()=>{Q&&Ke(Q,d,a),W&&yt(a,null,d,"unmounted")},g)},Tt=a=>{const{type:d,el:g,anchor:b,transition:v}=a;if(d===pe){At(g,b);return}if(d===En){M(a);return}const x=()=>{o(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:E,delayLeave:C}=v,w=()=>E(g,x);C?C(a.el,x,w):w()}else x()},At=(a,d)=>{let g;for(;a!==d;)g=m(a),o(a),a=g;o(d)},vn=(a,d,g)=>{const{bum:b,scope:v,job:x,subTree:E,um:C,m:w,a:S}=a;co(w),co(S),b&&Sn(b),v.stop(),x&&(x.flags|=8,be(E,a,d,g)),C&&Te(C,d),Te(()=>{a.isUnmounted=!0},d)},Oe=(a,d,g,b=!1,v=!1,x=0)=>{for(let E=x;E{if(a.shapeFlag&6)return y(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[sl];return g?m(g):d};let R=!1;const P=(a,d,g)=>{a==null?d._vnode&&be(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),d._vnode=a,R||(R=!0,eo(),bi(),R=!1)},D={p:O,um:be,m:Be,r:Tt,mt:Ut,mc:je,pc:q,pbc:He,n:y,o:e};let z,ie;return t&&([z,ie]=t(D)),{render:P,hydrate:z,createApp:Tl(P,z)}}function rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function bt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function $l(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ji(e,t,n=!1){const s=e.children,o=t.children;if(V(s)&&V(o))for(let i=0;i>1,e[n[r]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function Hi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hi(t)}function co(e){if(e)for(let t=0;tnt(jl);function Cn(e,t,n){return Vi(e,t,n)}function Vi(e,t,n=ee){const{immediate:s,deep:o,flush:i,once:l}=n,r=ue({},n),c=t&&s||!t&&i!=="post";let p;if(un){if(i==="sync"){const _=Hl();p=_.__watcherHandles||(_.__watcherHandles=[])}else if(!c){const _=()=>{};return _.stop=Ne,_.resume=Ne,_.pause=Ne,_}}const u=me;r.call=(_,A,O)=>Ge(_,u,A,O);let h=!1;i==="post"?r.scheduler=_=>{Te(_,u&&u.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(_,A)=>{A?_():js(_)}),r.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,u&&(_.id=u.uid,_.i=u))};const m=Zr(e,t,r);return un&&(p?p.push(m):c&&m()),m}function Vl(e,t,n){const s=this.proxy,o=le(e)?e.includes(".")?Bi(s,e):()=>s[e]:e.bind(s,s);let i;U(t)?i=t:(i=t.handler,n=t);const l=_n(this),r=Vi(o,i.bind(s),n);return l(),r}function Bi(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${De(t)}Modifiers`]||e[`${Et(t)}Modifiers`];function Ul(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ee;let o=n;const i=t.startsWith("update:"),l=i&&Bl(s,t.slice(7));l&&(l.trim&&(o=n.map(u=>le(u)?u.trim():u)),l.number&&(o=n.map(An)));let r,c=s[r=es(t)]||s[r=es(De(t))];!c&&i&&(c=s[r=es(Et(t))]),c&&Ge(c,e,6,o);const p=s[r+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Ge(p,e,6,o)}}const Kl=new WeakMap;function Ui(e,t,n=!1){const s=n?Kl:t.emitsCache,o=s.get(e);if(o!==void 0)return o;const i=e.emits;let l={},r=!1;if(!U(e)){const c=p=>{const u=Ui(p,t,!0);u&&(r=!0,ue(l,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!r?(se(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>l[c]=null):ue(l,i),se(e)&&s.set(e,l),l)}function Yn(e,t){return!e||!Vn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,Et(t))||Y(e,t))}function ls(e){const{type:t,vnode:n,proxy:s,withProxy:o,propsOptions:[i],slots:l,attrs:r,emit:c,render:p,renderCache:u,props:h,data:m,setupState:_,ctx:A,inheritAttrs:O}=e,K=Dn(e);let N,I;try{if(n.shapeFlag&4){const M=o||s,Z=M;N=qe(p.call(Z,M,u,h,_,m,A)),I=r}else{const M=t;N=qe(M.length>1?M(h,{attrs:r,slots:l,emit:c}):M(h,null)),I=t.props?r:Wl(r)}}catch(M){nn.length=0,Gn(M,e,1),N=oe(_t)}let j=N;if(I&&O!==!1){const M=Object.keys(I),{shapeFlag:Z}=j;M.length&&Z&7&&(i&&M.some(Ts)&&(I=ql(I,i)),j=jt(j,I,!1,!0))}return n.dirs&&(j=jt(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&Hs(j,n.transition),N=j,Dn(K),N}const Wl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vn(n))&&((t||(t={}))[n]=e[n]);return t},ql=(e,t)=>{const n={};for(const s in e)(!Ts(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zl(e,t,n){const{props:s,children:o,component:i}=e,{props:l,children:r,patchFlag:c}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?ao(s,l,p):!!l;if(c&8){const u=t.dynamicProps;for(let h=0;he.__isSuspense;function Jl(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):nl(e)}const pe=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),_t=Symbol.for("v-cmt"),En=Symbol.for("v-stc"),nn=[];let Re=null;function $(e=!1){nn.push(Re=e?null:[])}function Yl(){nn.pop(),Re=nn[nn.length-1]||null}let an=1;function kn(e,t=!1){an+=e,e<0&&Re&&t&&(Re.hasOnce=!0)}function Wi(e){return e.dynamicChildren=an>0?Re||Dt:null,Yl(),an>0&&Re&&Re.push(e),e}function L(e,t,n,s,o,i){return Wi(f(e,t,n,s,o,i,!0))}function Ql(e,t,n,s,o){return Wi(oe(e,t,n,s,o,!0))}function Nn(e){return e?e.__v_isVNode===!0:!1}function qt(e,t){return e.type===t.type&&e.key===t.key}const qi=({key:e})=>e!=null?e:null,Pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?le(e)||_e(e)||U(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function f(e,t=null,n=null,s=0,o=null,i=e===pe?0:1,l=!1,r=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&Pn(t),scopeId:Si,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Ae};return r?(Ks(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=le(n)?8:16),an>0&&!l&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const oe=Xl;function Xl(e,t=null,n=null,s=0,o=null,i=!1){if((!e||e===vl)&&(e=_t),Nn(e)){const r=jt(e,t,!0);return n&&Ks(r,n),an>0&&!i&&Re&&(r.shapeFlag&6?Re[Re.indexOf(e)]=r:Re.push(r)),r.patchFlag=-2,r}if(fc(e)&&(e=e.__vccOpts),t){t=Zl(t);let{class:r,style:c}=t;r&&!le(r)&&(t.class=tt(r)),se(c)&&($s(c)&&!V(c)&&(c=ue({},c)),t.style=Os(c))}const l=le(e)?1:Ki(e)?128:ol(e)?64:se(e)?4:U(e)?2:0;return f(e,t,n,s,o,l,i,!0)}function Zl(e){return e?$s(e)||Mi(e)?ue({},e):e:null}function jt(e,t,n=!1,s=!1){const{props:o,ref:i,patchFlag:l,children:r,transition:c}=e,p=t?tc(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&qi(p),ref:t&&t.ref?n&&i?V(i)?i.concat(Pn(t)):[i,Pn(t)]:Pn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==pe?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jt(e.ssContent),ssFallback:e.ssFallback&&jt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Hs(u,c.clone(u)),u}function Ce(e=" ",t=0){return oe(Qn,null,e,t)}function ec(e,t){const n=oe(En,null,e);return n.staticCount=t,n}function ae(e="",t=!1){return t?($(),Ql(_t,null,e)):oe(_t,null,e)}function qe(e){return e==null||typeof e=="boolean"?oe(_t):V(e)?oe(pe,null,e.slice()):Nn(e)?dt(e):oe(Qn,null,String(e))}function dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jt(e)}function Ks(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),Ks(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Mi(t)?t._ctx=Ae:o===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else U(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),s&64?(n=16,t=[Ce(t)]):n=8);e.children=t,e.shapeFlag|=n}function tc(...e){const t={};for(let n=0;nme||Ae;let $n,xs;{const e=hn(),t=(n,s)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(s),i=>{o.length>1?o.forEach(l=>l(i)):o[0](i)}};$n=t("__VUE_INSTANCE_SETTERS__",n=>me=n),xs=t("__VUE_SSR_SETTERS__",n=>un=n)}const _n=e=>{const t=me;return $n(e),e.scope.on(),()=>{e.scope.off(),$n(t)}},uo=()=>{me&&me.scope.off(),$n(null)};function zi(e){return e.vnode.shapeFlag&4}let un=!1;function rc(e,t=!1,n=!1){t&&xs(t);const{props:s,children:o}=e.vnode,i=zi(e);Al(e,s,i,t),Dl(e,o,n||t);const l=i?lc(e,t):void 0;return t&&xs(!1),l}function lc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,bl);const{setup:s}=n;if(s){st();const o=e.setupContext=s.length>1?ac(e):null,i=_n(e),l=gn(s,e,0,[e.props,o]),r=zo(l);if(ot(),i(),(r||e.sp)&&!en(e)&&Ci(e),r){if(l.then(uo,uo),t)return l.then(c=>{fo(e,c,t)}).catch(c=>{Gn(c,e,0)});e.asyncDep=l}else fo(e,l,t)}else Gi(e,t)}function fo(e,t,n){U(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=_i(t)),Gi(e,n)}let po;function Gi(e,t,n){const s=e.type;if(!e.render){if(!t&&po&&!s.render){const o=s.template||Vs(e).template;if(o){const{isCustomElement:i,compilerOptions:l}=e.appContext.config,{delimiters:r,compilerOptions:c}=s,p=ue(ue({isCustomElement:i,delimiters:r},l),c);s.render=po(o,p)}}e.render=s.render||Ne}{const o=_n(e);st();try{xl(e)}finally{ot(),o()}}}const cc={get(e,t){return ge(e,"get",""),e[t]}};function ac(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cc),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(_i(Wr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in tn)return tn[n](e)},has(t,n){return n in t||n in tn}})):e.proxy}function uc(e,t=!0){return U(e)?e.displayName||e.name:e.name||t&&e.__name}function fc(e){return U(e)&&"__vccOpts"in e}const ke=(e,t)=>Qr(e,t,un);function Ji(e,t,n){const s=(i,l,r)=>{kn(-1);try{return oe(i,l,r)}finally{kn(1)}},o=arguments.length;return o===2?se(t)&&!V(t)?Nn(t)?s(e,null,[t]):s(e,t):s(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Nn(n)&&(n=[n]),s(e,t,n))}const dc="3.5.21";/** -* @vue/runtime-dom v3.5.21 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ss;const ho=typeof window<"u"&&window.trustedTypes;if(ho)try{Ss=ho.createPolicy("vue",{createHTML:e=>e})}catch{}const Yi=Ss?e=>Ss.createHTML(e):e=>e,pc="http://www.w3.org/2000/svg",hc="http://www.w3.org/1998/Math/MathML",Xe=typeof document<"u"?document:null,go=Xe&&Xe.createElement("template"),gc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t==="svg"?Xe.createElementNS(pc,e):t==="mathml"?Xe.createElementNS(hc,e):n?Xe.createElement(e,{is:n}):Xe.createElement(e);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>Xe.createTextNode(e),createComment:e=>Xe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Xe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,i){const l=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{go.innerHTML=Yi(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const r=go.content;if(s==="svg"||s==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},mc=Symbol("_vtc");function _c(e,t,n){const s=e[mc];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ln=Symbol("_vod"),Qi=Symbol("_vsh"),mo={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ln]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):zt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),zt(e,!0),s.enter(e)):s.leave(e,()=>{zt(e,!1)}):zt(e,t))},beforeUnmount(e,{value:t}){zt(e,t)}};function zt(e,t){e.style.display=t?e[Ln]:"none",e[Qi]=!t}const vc=Symbol(""),yc=/(?:^|;)\s*display\s*:/;function bc(e,t,n){const s=e.style,o=le(n);let i=!1;if(n&&!o){if(t)if(le(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&Tn(s,r,"")}else for(const l in t)n[l]==null&&Tn(s,l,"");for(const l in n)l==="display"&&(i=!0),Tn(s,l,n[l])}else if(o){if(t!==n){const l=s[vc];l&&(n+=";"+l),s.cssText=n,i=yc.test(n)}}else t&&e.removeAttribute("style");Ln in e&&(e[Ln]=i?s.display:"",e[Qi]&&(s.display="none"))}const _o=/\s*!important$/;function Tn(e,t,n){if(V(n))n.forEach(s=>Tn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=xc(e,t);_o.test(n)?e.setProperty(Et(s),n.replace(_o,""),"important"):e[s]=n}}const vo=["Webkit","Moz","ms"],cs={};function xc(e,t){const n=cs[t];if(n)return n;let s=De(t);if(s!=="filter"&&s in e)return cs[t]=s;s=Kn(s);for(let o=0;oas||(Ec.then(()=>as=0),as=Date.now());function Tc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ge(Ac(s,n.value),t,5,[s])};return n.value=e,n.attached=Pc(),n}function Ac(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const Co=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Rc=(e,t,n,s,o,i)=>{const l=o==="svg";t==="class"?_c(e,s,l):t==="style"?bc(e,n,s):Vn(t)?Ts(t)||wc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Oc(e,t,s,l))?(xo(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bo(e,t,s,l,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!le(s))?xo(e,De(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),bo(e,t,s,l))};function Oc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Co(t)&&U(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Co(t)&&le(n)?!1:t in e}const jn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return V(t)?n=>Sn(t,n):t};function Ic(e){e.target.composing=!0}function Eo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Lt=Symbol("_assign"),wt={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e[Lt]=jn(o);const i=s||o.props&&o.props.type==="number";St(e,t?"change":"input",l=>{if(l.target.composing)return;let r=e.value;n&&(r=r.trim()),i&&(r=An(r)),e[Lt](r)}),n&&St(e,"change",()=>{e.value=e.value.trim()}),t||(St(e,"compositionstart",Ic),St(e,"compositionend",Eo),St(e,"change",Eo))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:o,number:i}},l){if(e[Lt]=jn(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?An(e.value):e.value,c=t==null?"":t;r!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||o&&e.value.trim()===c)||(e.value=c))}},Po={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const o=Bn(t);St(e,"change",()=>{const i=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?An(Hn(l)):Hn(l));e[Lt](e.multiple?o?new Set(i):i:i[0]),e._assigning=!0,Ls(()=>{e._assigning=!1})}),e[Lt]=jn(s)},mounted(e,{value:t}){To(e,t)},beforeUpdate(e,t,n){e[Lt]=jn(n)},updated(e,{value:t}){e._assigning||To(e,t)}};function To(e,t){const n=e.multiple,s=V(t);if(!(n&&!s&&!Bn(t))){for(let o=0,i=e.options.length;oString(p)===String(r)):l.selected=Cr(t,r)>-1}else l.selected=t.has(r);else if(Wn(Hn(l),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Hn(e){return"_value"in e?e._value:e.value}const Dc=["ctrl","shift","alt","meta"],Mc={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)=>Dc.some(n=>e[`${n}Key`]&&!t.includes(n))},ut=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(o,...i)=>{for(let l=0;l{const t=kc().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Lc(s);if(!o)return;const i=t._component;!U(i)&&!i.render&&!i.template&&(i.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=n(o,!1,$c(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},t};function $c(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Lc(e){return le(e)?document.querySelector(e):e}const Bt=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},jc={name:"App"},Hc={id:"app"};function Vc(e,t,n,s,o,i){const l=mn("router-view");return $(),L("div",Hc,[oe(l)])}const Bc=Bt(jc,[["render",Vc]]);/*! - * vue-router v4.5.1 - * (c) 2025 Eduardo San Martin Morote - * @license MIT - */const It=typeof document<"u";function Xi(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Uc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Xi(e.default)}const G=Object.assign;function us(e,t){const n={};for(const s in t){const o=t[s];n[s]=Le(o)?o.map(e):e(o)}return n}const sn=()=>{},Le=Array.isArray,Zi=/#/g,Kc=/&/g,Wc=/\//g,qc=/=/g,zc=/\?/g,er=/\+/g,Gc=/%5B/g,Jc=/%5D/g,tr=/%5E/g,Yc=/%60/g,nr=/%7B/g,Qc=/%7C/g,sr=/%7D/g,Xc=/%20/g;function Ws(e){return encodeURI(""+e).replace(Qc,"|").replace(Gc,"[").replace(Jc,"]")}function Zc(e){return Ws(e).replace(nr,"{").replace(sr,"}").replace(tr,"^")}function ws(e){return Ws(e).replace(er,"%2B").replace(Xc,"+").replace(Zi,"%23").replace(Kc,"%26").replace(Yc,"`").replace(nr,"{").replace(sr,"}").replace(tr,"^")}function ea(e){return ws(e).replace(qc,"%3D")}function ta(e){return Ws(e).replace(Zi,"%23").replace(zc,"%3F")}function na(e){return e==null?"":ta(e).replace(Wc,"%2F")}function fn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const sa=/\/$/,oa=e=>e.replace(sa,"");function fs(e,t,n="/"){let s,o={},i="",l="";const r=t.indexOf("#");let c=t.indexOf("?");return r=0&&(c=-1),c>-1&&(s=t.slice(0,c),i=t.slice(c+1,r>-1?r:t.length),o=e(i)),r>-1&&(s=s||t.slice(0,r),l=t.slice(r,t.length)),s=ca(s!=null?s:t,n),{fullPath:s+(i&&"?")+i+l,path:s,query:o,hash:fn(l)}}function ia(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Ro(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ra(e,t,n){const s=t.matched.length-1,o=n.matched.length-1;return s>-1&&s===o&&Ht(t.matched[s],n.matched[o])&&or(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ht(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function or(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!la(e[n],t[n]))return!1;return!0}function la(e,t){return Le(e)?Oo(e,t):Le(t)?Oo(t,e):e===t}function Oo(e,t){return Le(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function ca(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),o=s[s.length-1];(o===".."||o===".")&&s.push("");let i=n.length-1,l,r;for(l=0;l1&&i--;else break;return n.slice(0,i).join("/")+"/"+s.slice(l).join("/")}const at={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var dn;(function(e){e.pop="pop",e.push="push"})(dn||(dn={}));var on;(function(e){e.back="back",e.forward="forward",e.unknown=""})(on||(on={}));function aa(e){if(!e)if(It){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),oa(e)}const ua=/^[^#]+#/;function fa(e,t){return e.replace(ua,"#")+t}function da(e,t){const n=document.documentElement.getBoundingClientRect(),s=e.getBoundingClientRect();return{behavior:t.behavior,left:s.left-n.left-(t.left||0),top:s.top-n.top-(t.top||0)}}const Zn=()=>({left:window.scrollX,top:window.scrollY});function pa(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=da(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Io(e,t){return(history.state?history.state.position-t:-1)+e}const Cs=new Map;function ha(e,t){Cs.set(e,t)}function ga(e){const t=Cs.get(e);return Cs.delete(e),t}let ma=()=>location.protocol+"//"+location.host;function ir(e,t){const{pathname:n,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){let r=o.includes(e.slice(i))?e.slice(i).length:1,c=o.slice(r);return c[0]!=="/"&&(c="/"+c),Ro(c,"")}return Ro(n,e)+s+o}function _a(e,t,n,s){let o=[],i=[],l=null;const r=({state:m})=>{const _=ir(e,location),A=n.value,O=t.value;let K=0;if(m){if(n.value=_,t.value=m,l&&l===A){l=null;return}K=O?m.position-O.position:0}else s(_);o.forEach(N=>{N(n.value,A,{delta:K,type:dn.pop,direction:K?K>0?on.forward:on.back:on.unknown})})};function c(){l=n.value}function p(m){o.push(m);const _=()=>{const A=o.indexOf(m);A>-1&&o.splice(A,1)};return i.push(_),_}function u(){const{history:m}=window;!m.state||m.replaceState(G({},m.state,{scroll:Zn()}),"")}function h(){for(const m of i)m();i=[],window.removeEventListener("popstate",r),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",r),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:p,destroy:h}}function Do(e,t,n,s=!1,o=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:o?Zn():null}}function va(e){const{history:t,location:n}=window,s={value:ir(e,n)},o={value:t.state};o.value||i(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,p,u){const h=e.indexOf("#"),m=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:ma()+e+c;try{t[u?"replaceState":"pushState"](p,"",m),o.value=p}catch(_){console.error(_),n[u?"replace":"assign"](m)}}function l(c,p){const u=G({},t.state,Do(o.value.back,c,o.value.forward,!0),p,{position:o.value.position});i(c,u,!0),s.value=c}function r(c,p){const u=G({},o.value,t.state,{forward:c,scroll:Zn()});i(u.current,u,!0);const h=G({},Do(s.value,c,null),{position:u.position+1},p);i(c,h,!1),s.value=c}return{location:s,state:o,push:r,replace:l}}function ya(e){e=aa(e);const t=va(e),n=_a(e,t.state,t.location,t.replace);function s(i,l=!0){l||n.pauseListeners(),history.go(i)}const o=G({location:"",base:e,go:s,createHref:fa.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function ba(e){return typeof e=="string"||e&&typeof e=="object"}function rr(e){return typeof e=="string"||typeof e=="symbol"}const lr=Symbol("");var Mo;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Mo||(Mo={}));function Vt(e,t){return G(new Error,{type:e,[lr]:!0},t)}function Qe(e,t){return e instanceof Error&&lr in e&&(t==null||!!(e.type&t))}const Fo="[^/]+?",xa={sensitive:!1,strict:!1,start:!0,end:!0},Sa=/[.+*?^${}()[\]/\\]/g;function wa(e,t){const n=G({},xa,t),s=[];let o=n.start?"^":"";const i=[];for(const p of e){const u=p.length?[]:[90];n.strict&&!p.length&&(o+="/");for(let h=0;ht.length?t.length===1&&t[0]===40+40?1:-1:0}function cr(e,t){let n=0;const s=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const Ea={type:0,value:""},Pa=/[a-zA-Z0-9_]/;function Ta(e){if(!e)return[[]];if(e==="/")return[[Ea]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${p}": ${_}`)}let n=0,s=n;const o=[];let i;function l(){i&&o.push(i),i=[]}let r=0,c,p="",u="";function h(){!p||(n===0?i.push({type:0,value:p}):n===1||n===2||n===3?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:p,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function m(){p+=c}for(;r{l(j)}:sn}function l(h){if(rr(h)){const m=s.get(h);m&&(s.delete(h),n.splice(n.indexOf(m),1),m.children.forEach(l),m.alias.forEach(l))}else{const m=n.indexOf(h);m>-1&&(n.splice(m,1),h.record.name&&s.delete(h.record.name),h.children.forEach(l),h.alias.forEach(l))}}function r(){return n}function c(h){const m=Da(h,n);n.splice(m,0,h),h.record.name&&!Lo(h)&&s.set(h.record.name,h)}function p(h,m){let _,A={},O,K;if("name"in h&&h.name){if(_=s.get(h.name),!_)throw Vt(1,{location:h});K=_.record.name,A=G(No(m.params,_.keys.filter(j=>!j.optional).concat(_.parent?_.parent.keys.filter(j=>j.optional):[]).map(j=>j.name)),h.params&&No(h.params,_.keys.map(j=>j.name))),O=_.stringify(A)}else if(h.path!=null)O=h.path,_=n.find(j=>j.re.test(O)),_&&(A=_.parse(O),K=_.record.name);else{if(_=m.name?s.get(m.name):n.find(j=>j.re.test(m.path)),!_)throw Vt(1,{location:h,currentLocation:m});K=_.record.name,A=G({},m.params,h.params),O=_.stringify(A)}const N=[];let I=_;for(;I;)N.unshift(I.record),I=I.parent;return{name:K,path:O,params:A,matched:N,meta:Ia(N)}}e.forEach(h=>i(h));function u(){n.length=0,s.clear()}return{addRoute:i,resolve:p,removeRoute:l,clearRoutes:u,getRoutes:r,getRecordMatcher:o}}function No(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function $o(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oa(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Oa(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const s in e.components)t[s]=typeof n=="object"?n[s]:n;return t}function Lo(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Ia(e){return e.reduce((t,n)=>G(t,n.meta),{})}function jo(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}function Da(e,t){let n=0,s=t.length;for(;n!==s;){const i=n+s>>1;cr(e,t[i])<0?s=i:n=i+1}const o=Ma(e);return o&&(s=t.lastIndexOf(o,s-1)),s}function Ma(e){let t=e;for(;t=t.parent;)if(ar(t)&&cr(e,t)===0)return t}function ar({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Fa(e){const t={};if(e===""||e==="?")return t;const s=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;oi&&ws(i)):[s&&ws(s)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function ka(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Le(s)?s.map(o=>o==null?null:""+o):s==null?s:""+s)}return t}const Na=Symbol(""),Vo=Symbol(""),qs=Symbol(""),ur=Symbol(""),Es=Symbol("");function Gt(){let e=[];function t(s){return e.push(s),()=>{const o=e.indexOf(s);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function pt(e,t,n,s,o,i=l=>l()){const l=s&&(s.enterCallbacks[o]=s.enterCallbacks[o]||[]);return()=>new Promise((r,c)=>{const p=m=>{m===!1?c(Vt(4,{from:n,to:t})):m instanceof Error?c(m):ba(m)?c(Vt(2,{from:t,to:m})):(l&&s.enterCallbacks[o]===l&&typeof m=="function"&&l.push(m),r())},u=i(()=>e.call(s&&s.instances[o],t,n,p));let h=Promise.resolve(u);e.length<3&&(h=h.then(p)),h.catch(m=>c(m))})}function ds(e,t,n,s,o=i=>i()){const i=[];for(const l of e)for(const r in l.components){let c=l.components[r];if(!(t!=="beforeRouteEnter"&&!l.instances[r]))if(Xi(c)){const u=(c.__vccOpts||c)[t];u&&i.push(pt(u,n,s,l,r,o))}else{let p=c();i.push(()=>p.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${r}" at "${l.path}"`);const h=Uc(u)?u.default:u;l.mods[r]=u,l.components[r]=h;const _=(h.__vccOpts||h)[t];return _&&pt(_,n,s,l,r,o)()}))}}return i}function Bo(e){const t=nt(qs),n=nt(ur),s=ke(()=>{const c=kt(e.to);return t.resolve(c)}),o=ke(()=>{const{matched:c}=s.value,{length:p}=c,u=c[p-1],h=n.matched;if(!u||!h.length)return-1;const m=h.findIndex(Ht.bind(null,u));if(m>-1)return m;const _=Uo(c[p-2]);return p>1&&Uo(u)===_&&h[h.length-1].path!==_?h.findIndex(Ht.bind(null,c[p-2])):m}),i=ke(()=>o.value>-1&&Va(n.params,s.value.params)),l=ke(()=>o.value>-1&&o.value===n.matched.length-1&&or(n.params,s.value.params));function r(c={}){if(Ha(c)){const p=t[kt(e.replace)?"replace":"push"](kt(e.to)).catch(sn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>p),p}return Promise.resolve()}return{route:s,href:ke(()=>s.value.href),isActive:i,isExactActive:l,navigate:r}}function $a(e){return e.length===1?e[0]:e}const La=wi({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Bo,setup(e,{slots:t}){const n=zn(Bo(e)),{options:s}=nt(qs),o=ke(()=>({[Ko(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[Ko(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&$a(t.default(n));return e.custom?i:Ji("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},i)}}}),ja=La;function Ha(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Va(e,t){for(const n in t){const s=t[n],o=e[n];if(typeof s=="string"){if(s!==o)return!1}else if(!Le(o)||o.length!==s.length||s.some((i,l)=>i!==o[l]))return!1}return!0}function Uo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ko=(e,t,n)=>e!=null?e:t!=null?t:n,Ba=wi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=nt(Es),o=ke(()=>e.route||s.value),i=nt(Vo,0),l=ke(()=>{let p=kt(i);const{matched:u}=o.value;let h;for(;(h=u[p])&&!h.components;)p++;return p}),r=ke(()=>o.value.matched[l.value]);wn(Vo,ke(()=>l.value+1)),wn(Na,r),wn(Es,o);const c=qr();return Cn(()=>[c.value,r.value,e.name],([p,u,h],[m,_,A])=>{u&&(u.instances[h]=p,_&&_!==u&&p&&p===m&&(u.leaveGuards.size||(u.leaveGuards=_.leaveGuards),u.updateGuards.size||(u.updateGuards=_.updateGuards))),p&&u&&(!_||!Ht(u,_)||!m)&&(u.enterCallbacks[h]||[]).forEach(O=>O(p))},{flush:"post"}),()=>{const p=o.value,u=e.name,h=r.value,m=h&&h.components[u];if(!m)return Wo(n.default,{Component:m,route:p});const _=h.props[u],A=_?_===!0?p.params:typeof _=="function"?_(p):_:null,K=Ji(m,G({},A,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(h.instances[u]=null)},ref:c}));return Wo(n.default,{Component:K,route:p})||K}}});function Wo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ua=Ba;function Ka(e){const t=Ra(e.routes,e),n=e.parseQuery||Fa,s=e.stringifyQuery||Ho,o=e.history,i=Gt(),l=Gt(),r=Gt(),c=zr(at);let p=at;It&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=us.bind(null,y=>""+y),h=us.bind(null,na),m=us.bind(null,fn);function _(y,R){let P,D;return rr(y)?(P=t.getRecordMatcher(y),D=R):D=y,t.addRoute(D,P)}function A(y){const R=t.getRecordMatcher(y);R&&t.removeRoute(R)}function O(){return t.getRoutes().map(y=>y.record)}function K(y){return!!t.getRecordMatcher(y)}function N(y,R){if(R=G({},R||c.value),typeof y=="string"){const d=fs(n,y,R.path),g=t.resolve({path:d.path},R),b=o.createHref(d.fullPath);return G(d,g,{params:m(g.params),hash:fn(d.hash),redirectedFrom:void 0,href:b})}let P;if(y.path!=null)P=G({},y,{path:fs(n,y.path,R.path).path});else{const d=G({},y.params);for(const g in d)d[g]==null&&delete d[g];P=G({},y,{params:h(d)}),R.params=h(R.params)}const D=t.resolve(P,R),z=y.hash||"";D.params=u(m(D.params));const ie=ia(s,G({},y,{hash:Zc(z),path:D.path})),a=o.createHref(ie);return G({fullPath:ie,hash:z,query:s===Ho?ka(y.query):y.query||{}},D,{redirectedFrom:void 0,href:a})}function I(y){return typeof y=="string"?fs(n,y,c.value.path):G({},y)}function j(y,R){if(p!==y)return Vt(8,{from:R,to:y})}function M(y){return re(y)}function Z(y){return M(G(I(y),{replace:!0}))}function fe(y){const R=y.matched[y.matched.length-1];if(R&&R.redirect){const{redirect:P}=R;let D=typeof P=="function"?P(y):P;return typeof D=="string"&&(D=D.includes("?")||D.includes("#")?D=I(D):{path:D},D.params={}),G({query:y.query,hash:y.hash,params:D.path!=null?{}:y.params},D)}}function re(y,R){const P=p=N(y),D=c.value,z=y.state,ie=y.force,a=y.replace===!0,d=fe(P);if(d)return re(G(I(d),{state:typeof d=="object"?G({},z,d.state):z,force:ie,replace:a}),R||P);const g=P;g.redirectedFrom=R;let b;return!ie&&ra(s,D,P)&&(b=Vt(16,{to:g,from:D}),Be(D,D,!0,!1)),(b?Promise.resolve(b):He(g,D)).catch(v=>Qe(v)?Qe(v,2)?v:ct(v):q(v,g,D)).then(v=>{if(v){if(Qe(v,2))return re(G({replace:a},I(v.to),{state:typeof v.to=="object"?G({},z,v.to.state):z,force:ie}),R||g)}else v=vt(g,D,!0,a,z);return lt(g,D,v),v})}function je(y,R){const P=j(y,R);return P?Promise.reject(P):Promise.resolve()}function rt(y){const R=At.values().next().value;return R&&typeof R.runWithContext=="function"?R.runWithContext(y):y()}function He(y,R){let P;const[D,z,ie]=Wa(y,R);P=ds(D.reverse(),"beforeRouteLeave",y,R);for(const d of D)d.leaveGuards.forEach(g=>{P.push(pt(g,y,R))});const a=je.bind(null,y,R);return P.push(a),Oe(P).then(()=>{P=[];for(const d of i.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).then(()=>{P=ds(z,"beforeRouteUpdate",y,R);for(const d of z)d.updateGuards.forEach(g=>{P.push(pt(g,y,R))});return P.push(a),Oe(P)}).then(()=>{P=[];for(const d of ie)if(d.beforeEnter)if(Le(d.beforeEnter))for(const g of d.beforeEnter)P.push(pt(g,y,R));else P.push(pt(d.beforeEnter,y,R));return P.push(a),Oe(P)}).then(()=>(y.matched.forEach(d=>d.enterCallbacks={}),P=ds(ie,"beforeRouteEnter",y,R,rt),P.push(a),Oe(P))).then(()=>{P=[];for(const d of l.list())P.push(pt(d,y,R));return P.push(a),Oe(P)}).catch(d=>Qe(d,8)?d:Promise.reject(d))}function lt(y,R,P){r.list().forEach(D=>rt(()=>D(y,R,P)))}function vt(y,R,P,D,z){const ie=j(y,R);if(ie)return ie;const a=R===at,d=It?history.state:{};P&&(D||a?o.replace(y.fullPath,G({scroll:a&&d&&d.scroll},z)):o.push(y.fullPath,z)),c.value=y,Be(y,R,P,a),ct()}let Ve;function Ut(){Ve||(Ve=o.listen((y,R,P)=>{if(!vn.listening)return;const D=N(y),z=fe(D);if(z){re(G(z,{replace:!0,force:!0}),D).catch(sn);return}p=D;const ie=c.value;It&&ha(Io(ie.fullPath,P.delta),Zn()),He(D,ie).catch(a=>Qe(a,12)?a:Qe(a,2)?(re(G(I(a.to),{force:!0}),D).then(d=>{Qe(d,20)&&!P.delta&&P.type===dn.pop&&o.go(-1,!1)}).catch(sn),Promise.reject()):(P.delta&&o.go(-P.delta,!1),q(a,D,ie))).then(a=>{a=a||vt(D,ie,!1),a&&(P.delta&&!Qe(a,8)?o.go(-P.delta,!1):P.type===dn.pop&&Qe(a,20)&&o.go(-1,!1)),lt(D,ie,a)}).catch(sn)}))}let Pt=Gt(),ce=Gt(),X;function q(y,R,P){ct(y);const D=ce.list();return D.length?D.forEach(z=>z(y,R,P)):console.error(y),Promise.reject(y)}function Je(){return X&&c.value!==at?Promise.resolve():new Promise((y,R)=>{Pt.add([y,R])})}function ct(y){return X||(X=!y,Ut(),Pt.list().forEach(([R,P])=>y?P(y):R()),Pt.reset()),y}function Be(y,R,P,D){const{scrollBehavior:z}=e;if(!It||!z)return Promise.resolve();const ie=!P&&ga(Io(y.fullPath,0))||(D||!P)&&history.state&&history.state.scroll||null;return Ls().then(()=>z(y,R,ie)).then(a=>a&&pa(a)).catch(a=>q(a,y,R))}const be=y=>o.go(y);let Tt;const At=new Set,vn={currentRoute:c,listening:!0,addRoute:_,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:K,getRoutes:O,resolve:N,options:e,push:M,replace:Z,go:be,back:()=>be(-1),forward:()=>be(1),beforeEach:i.add,beforeResolve:l.add,afterEach:r.add,onError:ce.add,isReady:Je,install(y){const R=this;y.component("RouterLink",ja),y.component("RouterView",Ua),y.config.globalProperties.$router=R,Object.defineProperty(y.config.globalProperties,"$route",{enumerable:!0,get:()=>kt(c)}),It&&!Tt&&c.value===at&&(Tt=!0,M(o.location).catch(z=>{}));const P={};for(const z in at)Object.defineProperty(P,z,{get:()=>c.value[z],enumerable:!0});y.provide(qs,R),y.provide(ur,hi(P)),y.provide(Es,c);const D=y.unmount;At.add(y),y.unmount=function(){At.delete(y),At.size<1&&(p=at,Ve&&Ve(),Ve=null,c.value=at,Tt=!1,X=!1),D()}}};function Oe(y){return y.reduce((R,P)=>R.then(()=>rt(P)),Promise.resolve())}return vn}function Wa(e,t){const n=[],s=[],o=[],i=Math.max(t.matched.length,e.matched.length);for(let l=0;lHt(p,r))?s.push(r):n.push(r));const c=e.matched[l];c&&(t.matched.find(p=>Ht(p,c))||o.push(c))}return[n,s,o]}const qa={name:"Login",data(){return{loginForm:{username:"",password:""},loading:!1,error:"",success:""}},methods:{async handleLogin(){this.loading=!0,this.error="",this.success="";try{const e=await fetch("/api/v1/user/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(this.loginForm)}),t=await e.json();e.ok&&t.code===0?(this.success=t.message,localStorage.setItem("authToken",t.data.token),localStorage.setItem("userId",t.data.id),localStorage.setItem("username",t.data.username),setTimeout(()=>{this.$router.push("/dashboard")},500)):this.error=t.message||"\u767B\u5F55\u5931\u8D25"}catch{this.error="\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"}finally{this.loading=!1}}}},za={class:"login-container"},Ga={class:"form-group"},Ja={class:"form-group"},Ya=["disabled"],Qa={key:0,class:"error-message"},Xa={key:1,class:"success-message"};function Za(e,t,n,s,o,i){return $(),L("div",za,[t[5]||(t[5]=f("div",{class:"logo"},"\u{1F437}",-1)),t[6]||(t[6]=f("h1",null,"\u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),t[7]||(t[7]=f("p",{class:"subtitle"},"\u8BF7\u767B\u5F55\u60A8\u7684\u8D26\u6237",-1)),f("form",{onSubmit:t[2]||(t[2]=ut((...l)=>i.handleLogin&&i.handleLogin(...l),["prevent"]))},[f("div",Ga,[t[3]||(t[3]=f("label",{for:"username"},"\u7528\u6237\u540D",-1)),Fe(f("input",{type:"text",id:"username","onUpdate:modelValue":t[0]||(t[0]=l=>o.loginForm.username=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"},null,512),[[wt,o.loginForm.username]])]),f("div",Ja,[t[4]||(t[4]=f("label",{for:"password"},"\u5BC6\u7801",-1)),Fe(f("input",{type:"password",id:"password","onUpdate:modelValue":t[1]||(t[1]=l=>o.loginForm.password=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801"},null,512),[[wt,o.loginForm.password]])]),f("button",{type:"submit",disabled:o.loading},F(o.loading?"\u767B\u5F55\u4E2D...":"\u767B\u5F55"),9,Ya)],32),o.error?($(),L("div",Qa,F(o.error),1)):ae("",!0),o.success?($(),L("div",Xa,F(o.success),1)):ae("",!0)])}const eu=Bt(qa,[["render",Za],["__scopeId","data-v-bb5c78dc"]]);const tu={name:"Dashboard",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458"}},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},controlDevice(e,t){alert(`\u6B63\u5728${t==="on"?"\u5F00\u542F":"\u5173\u95ED"}${e==="fan"?"\u98CE\u673A":"\u6C34\u5E18"}`)}}},nu={class:"header"},su={class:"user-info"},ou={class:"nav"},iu={class:"container"},ru={class:"device-control"},lu={class:"control-grid"},cu={class:"control-item"},au={class:"control-buttons"},uu={class:"control-item"},fu={class:"control-buttons"};function du(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",null,[f("div",nu,[t[5]||(t[5]=f("h1",null,"\u{1F437} \u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),f("div",su,[f("span",null,F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA\u767B\u5F55")])]),f("div",ou,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard",class:"active"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[8]||(t[8]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("div",iu,[t[12]||(t[12]=f("div",{class:"dashboard-grid"},[f("div",{class:"card"},[f("h3",null,"\u{1F4C8} \u73AF\u5883\u76D1\u63A7"),f("p",null,"\u5B9E\u65F6\u76D1\u63A7\u732A\u820D\u73AF\u5883\u53C2\u6570\uFF0C\u5305\u62EC\u6E29\u5EA6\u3001\u6E7F\u5EA6\u3001\u6C28\u6C14\u6D53\u5EA6\u7B49\u5173\u952E\u6307\u6807\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F514} \u544A\u8B66\u4FE1\u606F"),f("p",null,"\u67E5\u770B\u7CFB\u7EDF\u544A\u8B66\u548C\u5F02\u5E38\u60C5\u51B5\uFF0C\u53CA\u65F6\u5904\u7406\u5404\u79CD\u8BBE\u5907\u6545\u969C\u548C\u73AF\u5883\u5F02\u5E38\u3002")]),f("div",{class:"card"},[f("h3",null,"\u{1F4CA} \u6570\u636E\u5206\u6790"),f("p",null,"\u5206\u6790\u5386\u53F2\u6570\u636E\uFF0C\u751F\u6210\u8D8B\u52BF\u56FE\u8868\uFF0C\u4E3A\u517B\u6B96\u51B3\u7B56\u63D0\u4F9B\u6570\u636E\u652F\u6301\u3002")])],-1)),f("div",ru,[t[11]||(t[11]=f("h3",null,"\u2699\uFE0F \u8BBE\u5907\u63A7\u5236",-1)),f("div",lu,[f("div",cu,[t[9]||(t[9]=f("h4",null,"\u98CE\u673A\u63A7\u5236",-1)),f("div",au,[f("button",{class:"control-btn on-btn",onClick:t[1]||(t[1]=r=>i.controlDevice("fan","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[2]||(t[2]=r=>i.controlDevice("fan","off"))},"\u5173\u95ED")])]),f("div",uu,[t[10]||(t[10]=f("h4",null,"\u6C34\u5E18\u63A7\u5236",-1)),f("div",fu,[f("button",{class:"control-btn on-btn",onClick:t[3]||(t[3]=r=>i.controlDevice("water_curtain","on"))},"\u5F00\u542F"),f("button",{class:"control-btn off-btn",onClick:t[4]||(t[4]=r=>i.controlDevice("water_curtain","off"))},"\u5173\u95ED")])])])])])])}const pu=Bt(tu,[["render",du],["__scopeId","data-v-904f2d71"]]);const hu={name:"Device",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458",devices:[],showModal:!1,editingDevice:null,deviceForm:{id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},expandedNodes:new Set}},computed:{relayDevices(){return this.devices.filter(e=>e.type==="relay")}},mounted(){this.loadDevices()},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)},getControllerDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="pig_pen_controller"||t.type==="feed_mill_controller"))},getLeafDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="fan"||t.type==="water_curtain"))},getDeviceTypeText(e){return{relay:"\u4E2D\u7EE7",pig_pen_controller:"\u732A\u820D\u4E3B\u63A7",feed_mill_controller:"\u505A\u6599\u8F66\u95F4\u4E3B\u63A7",fan:"\u98CE\u673A",water_curtain:"\u6C34\u5E18"}[e]||e},getParentDevices(e){return e==="pig_pen_controller"||e==="feed_mill_controller"?this.devices.filter(t=>t.type==="relay"):e==="fan"||e==="water_curtain"?this.devices.filter(t=>t.type==="pig_pen_controller"||t.type==="feed_mill_controller"):[]},getParentDevicesWithDisplayName(e){const t=this.getParentDevices(e);return e==="pig_pen_controller"||e==="feed_mill_controller"?t.map(n=>({...n,display_name:n.name})):e==="fan"||e==="water_curtain"?t.map(n=>{const s=this.devices.find(i=>i.id===n.parent_id),o=s?s.name:"\u672A\u77E5\u4E2D\u7EE7";return{...n,display_name:`${o} - ${n.name}`}}):[]},async loadDevices(){try{const e=await fetch("/api/v1/device/list",{headers:{Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?(this.devices=t.data.devices,this.expandAllNodes()):console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",e)}},expandAllNodes(){this.expandedNodes.clear(),this.relayDevices.forEach(e=>{this.expandedNodes.add(e.id),this.getControllerDevices(e.id).forEach(n=>{this.expandedNodes.add(n.id)})})},openAddDeviceModal(){this.editingDevice=null,this.deviceForm={id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},this.showModal=!0},editDevice(e){if(this.editingDevice=e,this.deviceForm={...e},(e.type==="fan"||e.type==="water_curtain")&&e.address){const t=e.address.split(":");t.length===2?(this.deviceForm.bus_number=parseInt(t[0]),this.deviceForm.device_address=t[1]):this.deviceForm.device_address=e.address}this.showModal=!0},initializeDeviceForm(){return{id:null,name:"",type:"",parent_id:null,address:null}},closeDeviceModal(){this.showModal=!1},async saveDevice(){if(!this.deviceForm.name||!this.deviceForm.type){alert("\u8BF7\u586B\u5199\u5FC5\u586B\u5B57\u6BB5");return}if(this.deviceForm.type!=="relay"&&!this.deviceForm.parent_id){alert("\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907");return}try{let e,t;const n={name:this.deviceForm.name,type:this.deviceForm.type,parent_id:this.deviceForm.parent_id,address:this.deviceForm.address,bus_number:this.deviceForm.bus_number,device_address:this.deviceForm.device_address};this.editingDevice?(e="/api/v1/device/update",t="POST",n.id=this.deviceForm.id):(e="/api/v1/device/create",t="POST");const s=await fetch(e,{method:t,headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify(n)}),o=await s.json();s.ok&&o.code===0?(await this.loadDevices(),this.closeDeviceModal()):alert("\u4FDD\u5B58\u5931\u8D25: "+o.message)}catch(e){console.error("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25:",e),alert("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25: "+e.message)}},async deleteDevice(e){if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u8BBE\u5907\u5417\uFF1F"))try{const t=await fetch("/api/v1/device/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),n=await t.json();t.ok&&n.code===0?await this.loadDevices():alert("\u5220\u9664\u5931\u8D25: "+n.message)}catch(t){console.error("\u5220\u9664\u8BBE\u5907\u5931\u8D25:",t),alert("\u5220\u9664\u8BBE\u5907\u5931\u8D25: "+t.message)}},toggleParentField(){this.deviceForm.type==="relay"&&(this.deviceForm.parent_id=null)},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)}}},gu={class:"device-management"},mu={class:"header"},_u={class:"user-info"},vu={class:"nav"},yu={class:"main-content"},bu={class:"toolbar"},xu={class:"device-tree"},Su={key:0,class:"no-devices"},wu={key:1},Cu=["onClick"],Eu={class:"node-info"},Pu={class:"toggle-icon"},Tu={class:"node-title"},Au={class:"node-type relay-type"},Ru={key:0,class:"node-address"},Ou={class:"node-actions"},Iu=["onClick"],Du=["onClick"],Mu={class:"children-container"},Fu=["onClick"],ku={class:"node-info"},Nu={class:"toggle-icon"},$u={class:"node-title"},Lu={class:"node-type controller-type"},ju={key:0,class:"node-address"},Hu={class:"node-actions"},Vu=["onClick"],Bu=["onClick"],Uu={class:"children-container"},Ku={class:"node-header"},Wu={class:"node-info"},qu={class:"node-title"},zu={class:"node-type device-type"},Gu={key:0,class:"node-address"},Ju={class:"node-actions"},Yu=["onClick"],Qu=["onClick"],Xu={key:0,class:"modal"},Zu={class:"modal-content"},ef={class:"modal-header"},tf={class:"modal-body"},nf={class:"form-group"},sf={class:"form-group"},of={key:0,class:"form-group"},rf={key:1,class:"form-group"},lf={key:2,class:"form-group"},cf={key:3,class:"form-group"},af=["value"],uf={class:"modal-footer"};function ff(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",gu,[f("header",mu,[t[14]||(t[14]=f("h1",null,"\u8BBE\u5907\u7BA1\u7406",-1)),f("div",_u,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",vu,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[15]||(t[15]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device",class:"active"},{default:we(()=>[...t[16]||(t[16]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[17]||(t[17]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",yu,[f("div",bu,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...r)=>i.openAddDeviceModal&&i.openAddDeviceModal(...r))},"\u6DFB\u52A0\u8BBE\u5907")]),f("div",xu,[o.devices.length===0?($(),L("div",Su," \u6682\u65E0\u8BBE\u5907\u6570\u636E ")):($(),L("div",wu,[($(!0),L(pe,null,ht(i.relayDevices,r=>($(),L("div",{key:r.id,class:"tree-node relay-node"},[f("div",{class:"node-header",onClick:c=>i.toggleNode(r.id)},[f("div",Eu,[f("span",Pu,F(o.expandedNodes.has(r.id)?"\u25BC":"\u25BA"),1),f("span",Tu,F(r.name),1),f("span",Au,F(i.getDeviceTypeText(r.type)),1),r.address?($(),L("span",Ru,"["+F(r.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":r.active,"status-inactive":!r.active}])},F(r.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ou,[f("button",{class:"action-btn edit-btn",onClick:ut(c=>i.editDevice(r),["stop"])},"\u7F16\u8F91",8,Iu),f("button",{class:"action-btn delete-btn",onClick:ut(c=>i.deleteDevice(r.id),["stop"])},"\u5220\u9664",8,Du)])],8,Cu),Fe(f("div",Mu,[($(!0),L(pe,null,ht(i.getControllerDevices(r.id),c=>($(),L("div",{key:c.id,class:"tree-node controller-node"},[f("div",{class:"node-header",onClick:p=>i.toggleNode(c.id)},[f("div",ku,[f("span",Nu,F(o.expandedNodes.has(c.id)?"\u25BC":"\u25BA"),1),f("span",$u,F(c.name),1),f("span",Lu,F(i.getDeviceTypeText(c.type)),1),c.address?($(),L("span",ju,"["+F(c.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":c.active,"status-inactive":!c.active}])},F(c.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Hu,[f("button",{class:"action-btn edit-btn",onClick:ut(p=>i.editDevice(c),["stop"])},"\u7F16\u8F91",8,Vu),f("button",{class:"action-btn delete-btn",onClick:ut(p=>i.deleteDevice(c.id),["stop"])},"\u5220\u9664",8,Bu)])],8,Fu),Fe(f("div",Uu,[($(!0),L(pe,null,ht(i.getLeafDevices(c.id),p=>($(),L("div",{key:p.id,class:"tree-node device-node"},[f("div",Ku,[f("div",Wu,[f("span",qu,F(p.name),1),f("span",zu,F(i.getDeviceTypeText(p.type)),1),p.address?($(),L("span",Gu,"["+F(p.address)+"]",1)):ae("",!0),f("span",{class:tt(["node-status",{"status-active":p.active,"status-inactive":!p.active}])},F(p.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),f("div",Ju,[f("button",{class:"action-btn edit-btn",onClick:ut(u=>i.editDevice(p),["stop"])},"\u7F16\u8F91",8,Yu),f("button",{class:"action-btn delete-btn",onClick:ut(u=>i.deleteDevice(p.id),["stop"])},"\u5220\u9664",8,Qu)])])]))),128))],512),[[mo,o.expandedNodes.has(c.id)]])]))),128))],512),[[mo,o.expandedNodes.has(r.id)]])]))),128))]))])]),o.showModal?($(),L("div",Xu,[f("div",Zu,[f("div",ef,[f("h3",null,F(o.editingDevice?"\u7F16\u8F91\u8BBE\u5907":"\u6DFB\u52A0\u8BBE\u5907"),1),f("button",{class:"close-btn",onClick:t[2]||(t[2]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\xD7")]),f("div",tf,[f("form",{onSubmit:t[11]||(t[11]=ut((...r)=>i.saveDevice&&i.saveDevice(...r),["prevent"]))},[Fe(f("input",{type:"hidden","onUpdate:modelValue":t[3]||(t[3]=r=>o.deviceForm.id=r)},null,512),[[wt,o.deviceForm.id]]),f("div",nf,[t[18]||(t[18]=f("label",{for:"deviceName"},"\u8BBE\u5907\u540D\u79F0",-1)),Fe(f("input",{type:"text",id:"deviceName","onUpdate:modelValue":t[4]||(t[4]=r=>o.deviceForm.name=r),required:""},null,512),[[wt,o.deviceForm.name]])]),f("div",sf,[t[20]||(t[20]=f("label",{for:"deviceType"},"\u8BBE\u5907\u7C7B\u578B",-1)),Fe(f("select",{id:"deviceType","onUpdate:modelValue":t[5]||(t[5]=r=>o.deviceForm.type=r),required:"",onChange:t[6]||(t[6]=(...r)=>i.toggleParentField&&i.toggleParentField(...r))},[...t[19]||(t[19]=[ec('',6)])],544),[[Po,o.deviceForm.type]])]),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",of,[t[21]||(t[21]=f("label",{for:"busNumber"},"485\u603B\u7EBF\u53F7",-1)),Fe(f("input",{type:"number",id:"busNumber","onUpdate:modelValue":t[7]||(t[7]=r=>o.deviceForm.bus_number=r),placeholder:"\u8BF7\u8F93\u5165485\u603B\u7EBF\u53F7"},null,512),[[wt,o.deviceForm.bus_number,void 0,{number:!0}]])])):ae("",!0),(o.deviceForm.type==="fan"||o.deviceForm.type==="water_curtain")&&o.deviceForm.type!==""?($(),L("div",rf,[t[22]||(t[22]=f("label",{for:"device485Address"},"485\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"device485Address","onUpdate:modelValue":t[8]||(t[8]=r=>o.deviceForm.device_address=r),placeholder:"\u8BF7\u8F93\u5165485\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.device_address]])])):ae("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""&&o.deviceForm.type!=="fan"&&o.deviceForm.type!=="water_curtain"?($(),L("div",lf,[t[23]||(t[23]=f("label",{for:"deviceAddress"},"\u8BBE\u5907\u5730\u5740",-1)),Fe(f("input",{type:"text",id:"deviceAddress","onUpdate:modelValue":t[9]||(t[9]=r=>o.deviceForm.address=r),placeholder:"\u8BF7\u8F93\u5165\u8BBE\u5907\u5730\u5740"},null,512),[[wt,o.deviceForm.address]])])):ae("",!0),o.deviceForm.type!=="relay"&&o.deviceForm.type!==""?($(),L("div",cf,[t[25]||(t[25]=f("label",{for:"parentId"},"\u4E0A\u7EA7\u8BBE\u5907",-1)),Fe(f("select",{id:"parentId","onUpdate:modelValue":t[10]||(t[10]=r=>o.deviceForm.parent_id=r)},[t[24]||(t[24]=f("option",{value:""},"\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907",-1)),($(!0),L(pe,null,ht(i.getParentDevicesWithDisplayName(o.deviceForm.type),r=>($(),L("option",{key:r.id,value:r.id},F(r.display_name),9,af))),128))],512),[[Po,o.deviceForm.parent_id]])])):ae("",!0)],32)]),f("div",uf,[f("button",{class:"btn btn-secondary",onClick:t[12]||(t[12]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\u53D6\u6D88"),f("button",{class:"btn btn-primary",onClick:t[13]||(t[13]=(...r)=>i.saveDevice&&i.saveDevice(...r))},"\u4FDD\u5B58")])])])):ae("",!0)])}const df=Bt(hu,[["render",ff],["__scopeId","data-v-a2f9bd42"]]);const pf={name:"FeedPlan",data(){return{username:"",plans:[],loading:!0}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlans()},methods:{async loadPlans(){this.loading=!0;try{const e=await fetch("/api/v1/feed/plan/list",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?this.plans=t.data.plans||[]:console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",e)}finally{this.loading=!1}},viewDetail(e){this.$router.push(`/feed/plan/detail/${e}`)},createPlan(){alert("\u521B\u5EFA\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},editPlan(e){alert(`\u7F16\u8F91\u8BA1\u5212: ${e.name}`)},async deletePlan(e){var t,n,s;if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u9972\u5582\u8BA1\u5212\u5417\uFF1F"))try{const o=await fetch("/api/v1/feed/plan/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),i=await o.json();o.ok&&i.code===0?(await this.loadPlans(),(t=this.$message)!=null&&t.success("\u5220\u9664\u6210\u529F")||alert("\u5220\u9664\u6210\u529F")):(n=this.$message)!=null&&n.error("\u5220\u9664\u5931\u8D25: "+i.message)||alert("\u5220\u9664\u5931\u8D25: "+i.message)}catch(o){console.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25:",o),(s=this.$message)!=null&&s.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)||alert("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+o.message)}},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},hf={class:"feed-plan-management"},gf={class:"header"},mf={class:"user-info"},_f={class:"nav"},vf={class:"main-content"},yf={class:"toolbar"},bf={class:"plan-list"},xf={key:0,class:"loading"},Sf={key:1,class:"no-plans"},wf={key:2,class:"plans-container"},Cf={class:"plan-header"},Ef={class:"plan-details"},Pf={class:"plan-description"},Tf={class:"plan-meta"},Af={class:"plan-type"},Rf={key:0,class:"plan-cron"},Of={class:"plan-actions"},If=["onClick"],Df=["onClick"],Mf=["onClick"];function Ff(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",hf,[f("div",gf,[t[2]||(t[2]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u7BA1\u7406",-1)),f("div",mf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",_f,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[3]||(t[3]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan",class:"active"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),f("main",vf,[f("div",yf,[f("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...r)=>i.createPlan&&i.createPlan(...r))},"\u521B\u5EFA\u8BA1\u5212")]),f("div",bf,[o.loading?($(),L("div",xf," \u52A0\u8F7D\u4E2D... ")):o.plans.length===0?($(),L("div",Sf," \u6682\u65E0\u9972\u5582\u8BA1\u5212 ")):($(),L("div",wf,[($(!0),L(pe,null,ht(o.plans,r=>($(),L("div",{key:r.id,class:"plan-card"},[f("div",Cf,[f("h3",null,F(r.name),1),f("span",{class:tt(["plan-status",{enabled:r.enabled,disabled:!r.enabled}])},F(r.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",Ef,[f("p",Pf,F(r.description||"\u6682\u65E0\u63CF\u8FF0"),1),f("div",Tf,[f("span",Af,F(r.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1),r.schedule_cron?($(),L("span",Rf,"\u5B9A\u65F6: "+F(r.schedule_cron),1)):ae("",!0)])]),f("div",Of,[f("button",{class:"action-btn detail-btn",onClick:c=>i.viewDetail(r.id)},"\u8BE6\u60C5",8,If),f("button",{class:"action-btn edit-btn",onClick:c=>i.editPlan(r)},"\u7F16\u8F91",8,Df),f("button",{class:"action-btn delete-btn",onClick:c=>i.deletePlan(r.id)},"\u5220\u9664",8,Mf)])]))),128))]))])])])}const kf=Bt(pf,[["render",Ff],["__scopeId","data-v-32cbd47e"]]);const Nf={name:"FeedPlanDetail",data(){return{username:"",plan:null,loading:!0,error:null}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlanDetail()},methods:{async loadPlanDetail(){this.loading=!0,this.error=null;try{const e=this.$route.query.id||this.$route.params.id;if(!e){this.error="\u65E0\u6548\u7684\u8BA1\u5212ID";return}const t=await fetch(`/api/v1/feed/plan/detail?id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),n=await t.json();t.ok&&n.code===0?(this.plan=n.data,await this.loadSubPlanDetails()):this.error=n.message||"\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25"}catch(e){console.error("\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25:",e),this.error="\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25: "+e.message}finally{this.loading=!1}},async loadSubPlanDetails(){if(!(!this.plan||!this.plan.sub_plans||this.plan.sub_plans.length===0))for(let e=0;en.id===e);if(t)return t.name}return"\u672A\u77E5\u7236\u8BA1\u5212"},editPlan(){alert("\u7F16\u8F91\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},$f={class:"feed-plan-detail"},Lf={class:"header"},jf={class:"user-info"},Hf={class:"nav"},Vf={class:"main-content"},Bf={key:0,class:"loading"},Uf={key:1,class:"error"},Kf={key:2,class:"plan-detail-container"},Wf={class:"plan-header"},qf={class:"plan-info"},zf={class:"info-item"},Gf={class:"info-item"},Jf={key:0,class:"info-item"},Yf={class:"info-item"},Qf={class:"plan-steps"},Xf={key:0,class:"steps-list"},Zf={class:"step-header"},ed={class:"step-number"},td={key:0,class:"step-cron"},nd={class:"step-details"},sd={class:"detail-item"},od={class:"detail-item"},id={class:"detail-item"},rd={class:"detail-item"},ld={key:1,class:"no-steps"},cd={key:0,class:"sub-plans"},ad={class:"sub-plans-list"},ud={class:"sub-plan-header"},fd={class:"sub-plan-info"},dd={class:"info-item"},pd={class:"info-item"},hd={key:0,class:"info-item"},gd={class:"info-item"},md={key:1,class:"info-item"},_d={class:"sub-plan-steps"},vd={key:0,class:"steps-list"},yd={class:"step-header"},bd={class:"step-number"},xd={key:0,class:"step-cron"},Sd={class:"step-details"},wd={class:"detail-item"},Cd={class:"detail-item"},Ed={class:"detail-item"},Pd={class:"detail-item"},Td={key:1,class:"no-steps"},Ad={class:"actions"};function Rd(e,t,n,s,o,i){const l=mn("router-link");return $(),L("div",$f,[f("div",Lf,[t[3]||(t[3]=f("h1",null,"\u9972\u5582\u8BA1\u5212\u8BE6\u60C5",-1)),f("div",jf,[f("span",null,"\u6B22\u8FCE, "+F(o.username),1),f("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),f("nav",Hf,[f("ul",null,[f("li",null,[oe(l,{to:"/dashboard"},{default:we(()=>[...t[4]||(t[4]=[Ce("\u63A7\u5236\u53F0",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/device"},{default:we(()=>[...t[5]||(t[5]=[Ce("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan"},{default:we(()=>[...t[6]||(t[6]=[Ce("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})]),f("li",null,[oe(l,{to:"/feed/plan/detail",class:"active"},{default:we(()=>[...t[7]||(t[7]=[Ce("\u8BA1\u5212\u8BE6\u60C5",-1)])]),_:1})])])]),f("main",Vf,[o.loading?($(),L("div",Bf," \u52A0\u8F7D\u4E2D... ")):o.error?($(),L("div",Uf,F(o.error),1)):o.plan?($(),L("div",Kf,[f("div",Wf,[f("h2",null,F(o.plan.name),1),f("span",{class:tt(["plan-status",{enabled:o.plan.enabled,disabled:!o.plan.enabled}])},F(o.plan.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",qf,[f("div",zf,[t[8]||(t[8]=f("label",null,"\u8BA1\u5212\u63CF\u8FF0:",-1)),f("span",null,F(o.plan.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",Gf,[t[9]||(t[9]=f("label",null,"\u8BA1\u5212\u7C7B\u578B:",-1)),f("span",null,F(o.plan.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),o.plan.schedule_cron?($(),L("div",Jf,[t[10]||(t[10]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(o.plan.schedule_cron),1)])):ae("",!0),f("div",Yf,[t[11]||(t[11]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(o.plan.execution_limit>0?o.plan.execution_limit:"\u65E0\u9650\u5236"),1)])]),f("div",Qf,[t[16]||(t[16]=f("h3",null,"\u8BA1\u5212\u6B65\u9AA4",-1)),o.plan.steps&&o.plan.steps.length>0?($(),L("div",Xf,[($(!0),L(pe,null,ht(o.plan.steps,(r,c)=>($(),L("div",{key:r.id,class:"step-item"},[f("div",Zf,[f("span",ed,"\u6B65\u9AA4 "+F(c+1),1),r.schedule_cron?($(),L("span",td,"\u5B9A\u65F6: "+F(r.schedule_cron),1)):ae("",!0)]),f("div",nd,[f("div",sd,[t[12]||(t[12]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(r.device_id),1)]),f("div",od,[t[13]||(t[13]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(r.target_value),1)]),f("div",id,[t[14]||(t[14]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(r.action),1)]),f("div",rd,[t[15]||(t[15]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(r.execution_limit>0?r.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",ld," \u8BE5\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))]),o.plan.sub_plans&&o.plan.sub_plans.length>0?($(),L("div",cd,[t[27]||(t[27]=f("h3",null,"\u5B50\u8BA1\u5212",-1)),f("div",ad,[($(!0),L(pe,null,ht(o.plan.sub_plans,r=>($(),L("div",{key:r.id,class:"sub-plan-item"},[f("div",ud,[f("h4",null,F(r.name),1),f("span",{class:tt(["plan-status",{enabled:r.enabled,disabled:!r.enabled}])},F(r.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),f("div",fd,[f("div",dd,[t[17]||(t[17]=f("label",null,"\u63CF\u8FF0:",-1)),f("span",null,F(r.description||"\u65E0\u63CF\u8FF0"),1)]),f("div",pd,[t[18]||(t[18]=f("label",null,"\u7C7B\u578B:",-1)),f("span",null,F(r.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),r.schedule_cron?($(),L("div",hd,[t[19]||(t[19]=f("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),f("span",null,F(r.schedule_cron),1)])):ae("",!0),f("div",gd,[t[20]||(t[20]=f("label",null,"\u987A\u5E8F:",-1)),f("span",null,F((r.order_in_parent||0)+1),1)]),r.parent_id?($(),L("div",md,[t[21]||(t[21]=f("label",null,"\u7236\u8BA1\u5212:",-1)),f("span",null,F(i.getParentPlanName(r.parent_id))+"(id:"+F(r.parent_id)+")",1)])):ae("",!0)]),f("div",_d,[t[26]||(t[26]=f("h5",null,"\u5B50\u8BA1\u5212\u6B65\u9AA4",-1)),r.steps&&r.steps.length>0?($(),L("div",vd,[($(!0),L(pe,null,ht(r.steps,(c,p)=>($(),L("div",{key:c.id,class:"step-item"},[f("div",yd,[f("span",bd,"\u6B65\u9AA4 "+F(p+1),1),c.schedule_cron?($(),L("span",xd,"\u5B9A\u65F6: "+F(c.schedule_cron),1)):ae("",!0)]),f("div",Sd,[f("div",wd,[t[22]||(t[22]=f("label",null,"\u8BBE\u5907ID:",-1)),f("span",null,F(c.device_id),1)]),f("div",Cd,[t[23]||(t[23]=f("label",null,"\u76EE\u6807\u503C:",-1)),f("span",null,F(c.target_value),1)]),f("div",Ed,[t[24]||(t[24]=f("label",null,"\u52A8\u4F5C:",-1)),f("span",null,F(c.action),1)]),f("div",Pd,[t[25]||(t[25]=f("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),f("span",null,F(c.execution_limit>0?c.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):($(),L("div",Td," \u8BE5\u5B50\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))])]))),128))])])):ae("",!0),f("div",Ad,[f("button",{class:"btn btn-secondary",onClick:t[1]||(t[1]=(...r)=>i.goBack&&i.goBack(...r))},"\u8FD4\u56DE\u5217\u8868"),f("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=(...r)=>i.editPlan&&i.editPlan(...r))},"\u7F16\u8F91\u8BA1\u5212")])])):ae("",!0)])])}const Od=Bt(Nf,[["render",Rd],["__scopeId","data-v-c22942b5"]]),Id=[{path:"/",name:"Login",component:eu},{path:"/dashboard",name:"Dashboard",component:pu,meta:{requiresAuth:!0}},{path:"/device",name:"Device",component:df,meta:{requiresAuth:!0}},{path:"/feed/plan",name:"FeedPlan",component:kf,meta:{requiresAuth:!0}},{path:"/feed/plan/detail/:id",name:"FeedPlanDetail",component:Od,meta:{requiresAuth:!0},props:!0}],fr=Ka({history:ya(),routes:Id});fr.beforeEach((e,t,n)=>{const s=localStorage.getItem("authToken");e.matched.some(o=>o.meta.requiresAuth)?s?n():n("/"):s&&e.name==="Login"?n("/dashboard"):n()});const dr=Nc(Bc);dr.use(fr);dr.mount("#app"); diff --git a/frontend/dist/assets/index.2ad61d14.css b/frontend/dist/assets/index.bcc76856.css similarity index 51% rename from frontend/dist/assets/index.2ad61d14.css rename to frontend/dist/assets/index.bcc76856.css index 24ac7c6..ff30993 100644 --- a/frontend/dist/assets/index.2ad61d14.css +++ b/frontend/dist/assets/index.bcc76856.css @@ -1 +1 @@ -*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f5f7fa;min-height:100vh}.login-container[data-v-bb5c78dc]{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 15px 35px #0003;padding:40px;width:100%;max-width:400px;text-align:center;animation:fadeIn-bb5c78dc .5s ease-out;margin:100px auto}@keyframes fadeIn-bb5c78dc{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo[data-v-bb5c78dc]{width:80px;height:80px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700}h1[data-v-bb5c78dc]{color:#333;margin-bottom:10px;font-size:28px}.subtitle[data-v-bb5c78dc]{color:#666;margin-bottom:30px;font-size:14px}.form-group[data-v-bb5c78dc]{margin-bottom:20px;text-align:left}label[data-v-bb5c78dc]{display:block;margin-bottom:8px;color:#555;font-weight:500}input[data-v-bb5c78dc]{width:100%;padding:15px;border:2px solid #e1e1e1;border-radius:10px;font-size:16px;transition:all .3s ease;outline:none}input[data-v-bb5c78dc]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button[data-v-bb5c78dc]{width:100%;padding:15px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}button[data-v-bb5c78dc]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}button[data-v-bb5c78dc]:disabled{opacity:.7;cursor:not-allowed}.error-message[data-v-bb5c78dc]{color:#dc3545;margin-top:15px;padding:10px;background-color:#f8d7da;border-radius:5px}.success-message[data-v-bb5c78dc]{color:#28a745;margin-top:15px;padding:10px;background-color:#d4edda;border-radius:5px}.header[data-v-904f2d71]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center}.header h1[data-v-904f2d71]{font-size:24px;display:flex;align-items:center;gap:10px}.user-info[data-v-904f2d71]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-904f2d71]{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 15px;border-radius:5px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-904f2d71]:hover{background:rgba(255,255,255,.3)}.nav[data-v-904f2d71]{background:white;padding:15px 20px;box-shadow:0 2px 5px #0000000d}.nav ul[data-v-904f2d71]{display:flex;list-style:none;gap:20px}.nav a[data-v-904f2d71]{text-decoration:none;color:#666;padding:8px 15px;border-radius:5px;transition:all .3s ease}.nav a[data-v-904f2d71]:hover,.nav a.active[data-v-904f2d71]{background:#667eea;color:#fff}.container[data-v-904f2d71]{max-width:1200px;margin:30px auto;padding:0 20px}.dashboard-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.card[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;transition:transform .3s ease,box-shadow .3s ease}.card[data-v-904f2d71]:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.card h3[data-v-904f2d71]{color:#333;margin-bottom:15px;display:flex;align-items:center;gap:10px}.card p[data-v-904f2d71]{color:#666;line-height:1.6}.device-control[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;margin-bottom:30px}.control-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:20px}.control-item[data-v-904f2d71]{background:#f8f9fa;border-radius:10px;padding:20px;text-align:center}.control-item h4[data-v-904f2d71]{margin-bottom:15px;color:#333}.control-buttons[data-v-904f2d71]{display:flex;gap:10px;justify-content:center}.control-btn[data-v-904f2d71]{padding:8px 15px;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s ease}.on-btn[data-v-904f2d71]{background:#28a745;color:#fff}.off-btn[data-v-904f2d71]{background:#dc3545;color:#fff}.control-btn[data-v-904f2d71]:hover{opacity:.9;transform:translateY(-2px)}@media (max-width: 768px){.dashboard-grid[data-v-904f2d71]{grid-template-columns:1fr}.header[data-v-904f2d71]{flex-direction:column;gap:15px}}.device-management[data-v-a2f9bd42]{height:100vh;display:flex;flex-direction:column;background-color:#f5f7fa}.nav[data-v-a2f9bd42]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-a2f9bd42]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-a2f9bd42]{margin:0}.nav a[data-v-a2f9bd42]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-a2f9bd42]:hover{background-color:#495057}.nav a.active[data-v-a2f9bd42]{background-color:#007bff}.header[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.header h1[data-v-a2f9bd42]{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:10px}.user-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:1rem}.logout-btn[data-v-a2f9bd42]{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-a2f9bd42]:hover{background:rgba(255,255,255,.3)}.main-content[data-v-a2f9bd42]{flex:1;padding:1.5rem;overflow-y:auto}.toolbar[data-v-a2f9bd42]{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.btn[data-v-a2f9bd42]{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 15px #0003}.btn-primary[data-v-a2f9bd42]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn-secondary[data-v-a2f9bd42]{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary[data-v-a2f9bd42]:hover{background:#e0e0e0}.device-tree[data-v-a2f9bd42]{background:white;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;overflow:hidden}.tree-node[data-v-a2f9bd42]{margin-bottom:.75rem;border-radius:8px;transition:all .3s ease;box-shadow:0 1px 3px #0000001a}.tree-node[data-v-a2f9bd42]:hover{box-shadow:0 2px 8px #00000026}.tree-node.relay-node[data-v-a2f9bd42]{background:#fff3e0;border-left:4px solid #ff9800}.tree-node.controller-node[data-v-a2f9bd42]{background:#e3f2fd;border-left:4px solid #2196f3;margin-left:1.5rem}.tree-node.device-node[data-v-a2f9bd42]{background:#e8f5e9;border-left:4px solid #4caf50;margin-left:3rem}.node-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer}.node-header[data-v-a2f9bd42]:hover{background-color:#00000005}.node-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:.75rem}.toggle-icon[data-v-a2f9bd42]{width:20px;text-align:center;font-size:.8rem;color:#666}.node-title[data-v-a2f9bd42]{font-weight:600;color:#333;font-size:1.1rem}.node-address[data-v-a2f9bd42]{font-size:.9rem;color:#666;background:rgba(0,0,0,.05);padding:.2rem .5rem;border-radius:4px}.node-type[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500;text-transform:uppercase}.node-status[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500}.status-active[data-v-a2f9bd42]{background:#4caf50;color:#fff}.status-inactive[data-v-a2f9bd42]{background:#9e9e9e;color:#fff}.relay-type[data-v-a2f9bd42]{background:#ff9800;color:#fff}.controller-type[data-v-a2f9bd42]{background:#2196f3;color:#fff}.device-type[data-v-a2f9bd42]{background:#4caf50;color:#fff}.node-actions[data-v-a2f9bd42]{display:flex;gap:.5rem}.action-btn[data-v-a2f9bd42]{padding:.4rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.edit-btn[data-v-a2f9bd42]{background:#1976d2;color:#fff}.edit-btn[data-v-a2f9bd42]:hover{background:#1565c0;transform:translateY(-1px)}.delete-btn[data-v-a2f9bd42]{background:#d32f2f;color:#fff}.delete-btn[data-v-a2f9bd42]:hover{background:#c62828;transform:translateY(-1px)}.children-container[data-v-a2f9bd42]{padding:.5rem 0 .5rem 1rem;border-left:2px dashed rgba(0,0,0,.1);margin-left:1rem}.modal[data-v-a2f9bd42]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn-a2f9bd42 .3s ease}@keyframes fadeIn-a2f9bd42{0%{opacity:0}to{opacity:1}}.modal-content[data-v-a2f9bd42]{background:white;border-radius:10px;width:90%;max-width:500px;box-shadow:0 10px 30px #0000004d;animation:slideIn-a2f9bd42 .3s ease}@keyframes slideIn-a2f9bd42{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-a2f9bd42]{margin:0;color:#333;font-size:1.3rem}.close-btn[data-v-a2f9bd42]{background:none;border:none;font-size:1.8rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#999;transition:color .2s ease}.close-btn[data-v-a2f9bd42]:hover{color:#333}.modal-body[data-v-a2f9bd42]{padding:1.5rem}.form-group[data-v-a2f9bd42]{margin-bottom:1.5rem}.form-group label[data-v-a2f9bd42]{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input[data-v-a2f9bd42],.form-group select[data-v-a2f9bd42]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.form-group input[data-v-a2f9bd42]:focus,.form-group select[data-v-a2f9bd42]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-footer[data-v-a2f9bd42]{padding:1.5rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:.75rem}.no-devices[data-v-a2f9bd42]{text-align:center;color:#7f8c8d;padding:3rem;font-style:italic;font-size:1.1rem}@media (max-width: 768px){.main-content[data-v-a2f9bd42],.header[data-v-a2f9bd42]{padding:1rem}.node-header[data-v-a2f9bd42]{flex-direction:column;align-items:flex-start;gap:.75rem}.node-actions[data-v-a2f9bd42]{align-self:flex-end}.tree-node.controller-node[data-v-a2f9bd42],.tree-node.device-node[data-v-a2f9bd42]{margin-left:1rem}}.feed-plan-management[data-v-32cbd47e]{padding:20px}.header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-32cbd47e]{margin:0;color:#333}.user-info[data-v-32cbd47e]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-32cbd47e]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-32cbd47e]:hover{background-color:#c82333}.nav[data-v-32cbd47e]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-32cbd47e]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-32cbd47e]{margin:0}.nav a[data-v-32cbd47e]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-32cbd47e]:hover{background-color:#495057}.nav a.active[data-v-32cbd47e]{background-color:#007bff}.toolbar[data-v-32cbd47e]{margin-bottom:20px}.btn[data-v-32cbd47e]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-32cbd47e]{background-color:#007bff;color:#fff}.btn-primary[data-v-32cbd47e]:hover{background-color:#0069d9}.plan-list[data-v-32cbd47e]{min-height:400px}.loading[data-v-32cbd47e],.no-plans[data-v-32cbd47e]{text-align:center;padding:50px;color:#666;font-size:16px}.plans-container[data-v-32cbd47e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.plan-card[data-v-32cbd47e]{border:1px solid #ddd;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;background-color:#fff;transition:box-shadow .3s,transform .3s}.plan-card[data-v-32cbd47e]:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.plan-header[data-v-32cbd47e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.plan-header h3[data-v-32cbd47e]{margin:0;color:#333;font-size:18px}.plan-status[data-v-32cbd47e]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700}.plan-status.enabled[data-v-32cbd47e]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-32cbd47e]{background-color:#f8d7da;color:#721c24}.plan-details[data-v-32cbd47e]{margin-bottom:20px}.plan-description[data-v-32cbd47e]{margin:0 0 15px;color:#666;line-height:1.5}.plan-meta[data-v-32cbd47e]{display:flex;flex-wrap:wrap;gap:10px}.plan-type[data-v-32cbd47e],.plan-cron[data-v-32cbd47e]{padding:4px 8px;background-color:#e9ecef;border-radius:4px;font-size:12px;color:#495057}.plan-actions[data-v-32cbd47e]{display:flex;gap:10px;justify-content:flex-end}.action-btn[data-v-32cbd47e]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .3s}.detail-btn[data-v-32cbd47e]{background-color:#17a2b8;color:#fff}.detail-btn[data-v-32cbd47e]:hover{background-color:#138496}.edit-btn[data-v-32cbd47e]{background-color:#ffc107;color:#212529}.edit-btn[data-v-32cbd47e]:hover{background-color:#e0a800}.delete-btn[data-v-32cbd47e]{background-color:#dc3545;color:#fff}.delete-btn[data-v-32cbd47e]:hover{background-color:#c82333}@media (max-width: 768px){.plans-container[data-v-32cbd47e]{grid-template-columns:1fr}.header[data-v-32cbd47e]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-32cbd47e]{flex-direction:column}}.feed-plan-detail[data-v-c22942b5]{padding:20px}.header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-c22942b5]{margin:0;color:#333}.user-info[data-v-c22942b5]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-c22942b5]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-c22942b5]:hover{background-color:#c82333}.nav[data-v-c22942b5]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-c22942b5]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-c22942b5]{margin:0}.nav a[data-v-c22942b5]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-c22942b5]:hover{background-color:#495057}.nav a.active[data-v-c22942b5]{background-color:#007bff}.loading[data-v-c22942b5],.error[data-v-c22942b5]{text-align:center;padding:50px;font-size:16px}.loading[data-v-c22942b5]{color:#666}.error[data-v-c22942b5]{color:#dc3545}.plan-detail-container[data-v-c22942b5]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.plan-header h2[data-v-c22942b5]{margin:0;color:#333}.plan-status[data-v-c22942b5]{padding:6px 12px;border-radius:4px;font-size:14px;font-weight:700}.plan-status.enabled[data-v-c22942b5]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-c22942b5]{background-color:#f8d7da;color:#721c24}.plan-info[data-v-c22942b5]{margin-bottom:30px}.info-item[data-v-c22942b5]{display:flex;margin-bottom:15px;align-items:center}.info-item label[data-v-c22942b5]{width:150px;font-weight:700;color:#333}.info-item span[data-v-c22942b5]{flex:1;color:#666}.plan-steps[data-v-c22942b5],.sub-plans[data-v-c22942b5]{margin-bottom:30px}.plan-steps h3[data-v-c22942b5],.sub-plans h3[data-v-c22942b5]{margin-top:0;margin-bottom:20px;color:#333;padding-bottom:10px;border-bottom:1px solid #eee}.steps-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:20px}.step-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:6px;padding:20px;background-color:#f8f9fa}.step-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.step-number[data-v-c22942b5]{font-weight:700;color:#007bff}.step-cron[data-v-c22942b5]{font-size:12px;color:#666;background-color:#e9ecef;padding:2px 6px;border-radius:3px}.step-details[data-v-c22942b5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.detail-item[data-v-c22942b5]{display:flex;flex-direction:column}.detail-item label[data-v-c22942b5]{font-size:12px;color:#666;margin-bottom:3px}.detail-item span[data-v-c22942b5]{font-weight:500;color:#333}.no-steps[data-v-c22942b5]{text-align:center;padding:30px;color:#666;font-style:italic}.sub-plans-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:25px}.sub-plan-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:8px;padding:20px;background-color:#fff;box-shadow:0 1px 3px #0000001a}.sub-plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.sub-plan-header h4[data-v-c22942b5]{margin:0;color:#333}.sub-plan-info[data-v-c22942b5]{margin-bottom:20px}.sub-plan-info .info-item[data-v-c22942b5]{margin-bottom:10px}.sub-plan-steps h5[data-v-c22942b5]{margin-top:0;margin-bottom:15px;color:#333}.actions[data-v-c22942b5]{display:flex;justify-content:flex-end;gap:15px;padding-top:20px;border-top:1px solid #eee}.btn[data-v-c22942b5]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-c22942b5]{background-color:#007bff;color:#fff}.btn-primary[data-v-c22942b5]:hover{background-color:#0069d9}.btn-secondary[data-v-c22942b5]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-c22942b5]:hover{background-color:#5a6268}@media (max-width: 768px){.header[data-v-c22942b5]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-c22942b5]{flex-direction:column}.info-item[data-v-c22942b5]{flex-direction:column;align-items:flex-start;gap:5px}.info-item label[data-v-c22942b5]{width:auto}.step-details[data-v-c22942b5]{grid-template-columns:1fr}.actions[data-v-c22942b5]{flex-direction:column}} +*{margin:0;padding:0;box-sizing:border-box}#app{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f5f7fa;min-height:100vh}.login-container[data-v-bb5c78dc]{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 15px 35px #0003;padding:40px;width:100%;max-width:400px;text-align:center;animation:fadeIn-bb5c78dc .5s ease-out;margin:100px auto}@keyframes fadeIn-bb5c78dc{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo[data-v-bb5c78dc]{width:80px;height:80px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700}h1[data-v-bb5c78dc]{color:#333;margin-bottom:10px;font-size:28px}.subtitle[data-v-bb5c78dc]{color:#666;margin-bottom:30px;font-size:14px}.form-group[data-v-bb5c78dc]{margin-bottom:20px;text-align:left}label[data-v-bb5c78dc]{display:block;margin-bottom:8px;color:#555;font-weight:500}input[data-v-bb5c78dc]{width:100%;padding:15px;border:2px solid #e1e1e1;border-radius:10px;font-size:16px;transition:all .3s ease;outline:none}input[data-v-bb5c78dc]:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}button[data-v-bb5c78dc]{width:100%;padding:15px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:10px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}button[data-v-bb5c78dc]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}button[data-v-bb5c78dc]:disabled{opacity:.7;cursor:not-allowed}.error-message[data-v-bb5c78dc]{color:#dc3545;margin-top:15px;padding:10px;background-color:#f8d7da;border-radius:5px}.success-message[data-v-bb5c78dc]{color:#28a745;margin-top:15px;padding:10px;background-color:#d4edda;border-radius:5px}.header[data-v-904f2d71]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:20px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center}.header h1[data-v-904f2d71]{font-size:24px;display:flex;align-items:center;gap:10px}.user-info[data-v-904f2d71]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-904f2d71]{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 15px;border-radius:5px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-904f2d71]:hover{background:rgba(255,255,255,.3)}.nav[data-v-904f2d71]{background:white;padding:15px 20px;box-shadow:0 2px 5px #0000000d}.nav ul[data-v-904f2d71]{display:flex;list-style:none;gap:20px}.nav a[data-v-904f2d71]{text-decoration:none;color:#666;padding:8px 15px;border-radius:5px;transition:all .3s ease}.nav a[data-v-904f2d71]:hover,.nav a.active[data-v-904f2d71]{background:#667eea;color:#fff}.container[data-v-904f2d71]{max-width:1200px;margin:30px auto;padding:0 20px}.dashboard-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.card[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;transition:transform .3s ease,box-shadow .3s ease}.card[data-v-904f2d71]:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.card h3[data-v-904f2d71]{color:#333;margin-bottom:15px;display:flex;align-items:center;gap:10px}.card p[data-v-904f2d71]{color:#666;line-height:1.6}.device-control[data-v-904f2d71]{background:white;border-radius:15px;box-shadow:0 5px 15px #00000014;padding:25px;margin-bottom:30px}.control-grid[data-v-904f2d71]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:20px}.control-item[data-v-904f2d71]{background:#f8f9fa;border-radius:10px;padding:20px;text-align:center}.control-item h4[data-v-904f2d71]{margin-bottom:15px;color:#333}.control-buttons[data-v-904f2d71]{display:flex;gap:10px;justify-content:center}.control-btn[data-v-904f2d71]{padding:8px 15px;border:none;border-radius:5px;cursor:pointer;font-size:14px;transition:all .3s ease}.on-btn[data-v-904f2d71]{background:#28a745;color:#fff}.off-btn[data-v-904f2d71]{background:#dc3545;color:#fff}.control-btn[data-v-904f2d71]:hover{opacity:.9;transform:translateY(-2px)}@media (max-width: 768px){.dashboard-grid[data-v-904f2d71]{grid-template-columns:1fr}.header[data-v-904f2d71]{flex-direction:column;gap:15px}}.device-management[data-v-a2f9bd42]{height:100vh;display:flex;flex-direction:column;background-color:#f5f7fa}.nav[data-v-a2f9bd42]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-a2f9bd42]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-a2f9bd42]{margin:0}.nav a[data-v-a2f9bd42]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-a2f9bd42]:hover{background-color:#495057}.nav a.active[data-v-a2f9bd42]{background-color:#007bff}.header[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.header h1[data-v-a2f9bd42]{margin:0;font-size:1.5rem;display:flex;align-items:center;gap:10px}.user-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:1rem}.logout-btn[data-v-a2f9bd42]{background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .3s ease}.logout-btn[data-v-a2f9bd42]:hover{background:rgba(255,255,255,.3)}.main-content[data-v-a2f9bd42]{flex:1;padding:1.5rem;overflow-y:auto}.toolbar[data-v-a2f9bd42]{margin-bottom:1.5rem;display:flex;justify-content:flex-end}.btn[data-v-a2f9bd42]{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary[data-v-a2f9bd42]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 15px #0003}.btn-primary[data-v-a2f9bd42]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn-secondary[data-v-a2f9bd42]{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary[data-v-a2f9bd42]:hover{background:#e0e0e0}.device-tree[data-v-a2f9bd42]{background:white;border-radius:10px;box-shadow:0 2px 10px #0000001a;padding:1.5rem;overflow:hidden}.tree-node[data-v-a2f9bd42]{margin-bottom:.75rem;border-radius:8px;transition:all .3s ease;box-shadow:0 1px 3px #0000001a}.tree-node[data-v-a2f9bd42]:hover{box-shadow:0 2px 8px #00000026}.tree-node.relay-node[data-v-a2f9bd42]{background:#fff3e0;border-left:4px solid #ff9800}.tree-node.controller-node[data-v-a2f9bd42]{background:#e3f2fd;border-left:4px solid #2196f3;margin-left:1.5rem}.tree-node.device-node[data-v-a2f9bd42]{background:#e8f5e9;border-left:4px solid #4caf50;margin-left:3rem}.node-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer}.node-header[data-v-a2f9bd42]:hover{background-color:#00000005}.node-info[data-v-a2f9bd42]{display:flex;align-items:center;gap:.75rem}.toggle-icon[data-v-a2f9bd42]{width:20px;text-align:center;font-size:.8rem;color:#666}.node-title[data-v-a2f9bd42]{font-weight:600;color:#333;font-size:1.1rem}.node-address[data-v-a2f9bd42]{font-size:.9rem;color:#666;background:rgba(0,0,0,.05);padding:.2rem .5rem;border-radius:4px}.node-type[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500;text-transform:uppercase}.node-status[data-v-a2f9bd42]{font-size:.8rem;padding:.3rem .6rem;border-radius:12px;font-weight:500}.status-active[data-v-a2f9bd42]{background:#4caf50;color:#fff}.status-inactive[data-v-a2f9bd42]{background:#9e9e9e;color:#fff}.relay-type[data-v-a2f9bd42]{background:#ff9800;color:#fff}.controller-type[data-v-a2f9bd42]{background:#2196f3;color:#fff}.device-type[data-v-a2f9bd42]{background:#4caf50;color:#fff}.node-actions[data-v-a2f9bd42]{display:flex;gap:.5rem}.action-btn[data-v-a2f9bd42]{padding:.4rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.edit-btn[data-v-a2f9bd42]{background:#1976d2;color:#fff}.edit-btn[data-v-a2f9bd42]:hover{background:#1565c0;transform:translateY(-1px)}.delete-btn[data-v-a2f9bd42]{background:#d32f2f;color:#fff}.delete-btn[data-v-a2f9bd42]:hover{background:#c62828;transform:translateY(-1px)}.children-container[data-v-a2f9bd42]{padding:.5rem 0 .5rem 1rem;border-left:2px dashed rgba(0,0,0,.1);margin-left:1rem}.modal[data-v-a2f9bd42]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn-a2f9bd42 .3s ease}@keyframes fadeIn-a2f9bd42{0%{opacity:0}to{opacity:1}}.modal-content[data-v-a2f9bd42]{background:white;border-radius:10px;width:90%;max-width:500px;box-shadow:0 10px 30px #0000004d;animation:slideIn-a2f9bd42 .3s ease}@keyframes slideIn-a2f9bd42{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-a2f9bd42]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h3[data-v-a2f9bd42]{margin:0;color:#333;font-size:1.3rem}.close-btn[data-v-a2f9bd42]{background:none;border:none;font-size:1.8rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#999;transition:color .2s ease}.close-btn[data-v-a2f9bd42]:hover{color:#333}.modal-body[data-v-a2f9bd42]{padding:1.5rem}.form-group[data-v-a2f9bd42]{margin-bottom:1.5rem}.form-group label[data-v-a2f9bd42]{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input[data-v-a2f9bd42],.form-group select[data-v-a2f9bd42]{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.form-group input[data-v-a2f9bd42]:focus,.form-group select[data-v-a2f9bd42]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.modal-footer[data-v-a2f9bd42]{padding:1.5rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:.75rem}.no-devices[data-v-a2f9bd42]{text-align:center;color:#7f8c8d;padding:3rem;font-style:italic;font-size:1.1rem}@media (max-width: 768px){.main-content[data-v-a2f9bd42],.header[data-v-a2f9bd42]{padding:1rem}.node-header[data-v-a2f9bd42]{flex-direction:column;align-items:flex-start;gap:.75rem}.node-actions[data-v-a2f9bd42]{align-self:flex-end}.tree-node.controller-node[data-v-a2f9bd42],.tree-node.device-node[data-v-a2f9bd42]{margin-left:1rem}}.feed-plan-form[data-v-2631d092]{background:white;border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000001a}.form-header h2[data-v-2631d092]{margin-top:0;color:#333;text-align:center}.form-group[data-v-2631d092]{margin-bottom:20px}.form-group label[data-v-2631d092]{display:block;margin-bottom:5px;font-weight:500;color:#333}.form-group input[type=text][data-v-2631d092],.form-group input[type=number][data-v-2631d092],.form-group textarea[data-v-2631d092]{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input[type=text][data-v-2631d092]:focus,.form-group input[type=number][data-v-2631d092]:focus,.form-group textarea[data-v-2631d092]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group input[data-v-2631d092]:disabled,.form-group textarea[data-v-2631d092]:disabled{background-color:#f8f9fa;cursor:not-allowed}.radio-group[data-v-2631d092]{display:flex;gap:20px}.radio-item[data-v-2631d092]{display:flex;align-items:center;gap:5px;cursor:pointer}.help-text[data-v-2631d092]{font-size:12px;color:#666;margin-top:5px}.form-actions[data-v-2631d092]{display:flex;justify-content:flex-end;gap:15px;margin-top:30px;padding-top:20px;border-top:1px solid #eee}.btn[data-v-2631d092]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn[data-v-2631d092]:disabled{cursor:not-allowed;opacity:.6}.btn-primary[data-v-2631d092]{background-color:#007bff;color:#fff}.btn-primary[data-v-2631d092]:hover:not(:disabled){background-color:#0069d9}.btn-secondary[data-v-2631d092]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-2631d092]:hover:not(:disabled){background-color:#5a6268}.feed-plan-management[data-v-17d33d17]{padding:20px}.header[data-v-17d33d17]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-17d33d17]{margin:0;color:#333}.user-info[data-v-17d33d17]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-17d33d17]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-17d33d17]:hover{background-color:#c82333}.nav[data-v-17d33d17]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-17d33d17]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-17d33d17]{margin:0}.nav a[data-v-17d33d17]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-17d33d17]:hover{background-color:#495057}.nav a.active[data-v-17d33d17]{background-color:#007bff}.toolbar[data-v-17d33d17]{margin-bottom:20px}.btn[data-v-17d33d17]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-17d33d17]{background-color:#007bff;color:#fff}.btn-primary[data-v-17d33d17]:hover{background-color:#0069d9}.plan-list[data-v-17d33d17]{min-height:400px}.loading[data-v-17d33d17],.no-plans[data-v-17d33d17]{text-align:center;padding:50px;color:#666;font-size:16px}.plans-container[data-v-17d33d17]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.plan-card[data-v-17d33d17]{border:1px solid #ddd;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;background-color:#fff;transition:box-shadow .3s,transform .3s}.plan-card[data-v-17d33d17]:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.plan-header[data-v-17d33d17]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.plan-header h3[data-v-17d33d17]{margin:0;color:#333;font-size:18px}.plan-status[data-v-17d33d17]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700}.plan-status.enabled[data-v-17d33d17]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-17d33d17]{background-color:#f8d7da;color:#721c24}.plan-details[data-v-17d33d17]{margin-bottom:20px}.plan-description[data-v-17d33d17]{margin:0 0 15px;color:#666;line-height:1.5}.plan-meta[data-v-17d33d17]{display:flex;flex-wrap:wrap;gap:10px}.plan-type[data-v-17d33d17],.plan-cron[data-v-17d33d17]{padding:4px 8px;background-color:#e9ecef;border-radius:4px;font-size:12px;color:#495057}.plan-actions[data-v-17d33d17]{display:flex;gap:10px;justify-content:flex-end}.action-btn[data-v-17d33d17]{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background-color .3s}.detail-btn[data-v-17d33d17]{background-color:#17a2b8;color:#fff}.detail-btn[data-v-17d33d17]:hover{background-color:#138496}.edit-btn[data-v-17d33d17]{background-color:#ffc107;color:#212529}.edit-btn[data-v-17d33d17]:hover{background-color:#e0a800}.delete-btn[data-v-17d33d17]{background-color:#dc3545;color:#fff}.delete-btn[data-v-17d33d17]:hover{background-color:#c82333}@media (max-width: 768px){.plans-container[data-v-17d33d17]{grid-template-columns:1fr}.header[data-v-17d33d17]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-17d33d17]{flex-direction:column}}.modal-overlay[data-v-17d33d17]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-17d33d17]{max-width:600px;width:90%;max-height:90vh;overflow-y:auto;background:white;border-radius:8px;box-shadow:0 4px 20px #0000004d}.feed-plan-detail[data-v-c22942b5]{padding:20px}.header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.header h1[data-v-c22942b5]{margin:0;color:#333}.user-info[data-v-c22942b5]{display:flex;align-items:center;gap:15px}.logout-btn[data-v-c22942b5]{padding:8px 16px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.logout-btn[data-v-c22942b5]:hover{background-color:#c82333}.nav[data-v-c22942b5]{background-color:#343a40;padding:0;margin-bottom:20px}.nav ul[data-v-c22942b5]{list-style-type:none;margin:0;padding:0;display:flex}.nav li[data-v-c22942b5]{margin:0}.nav a[data-v-c22942b5]{display:block;padding:15px 20px;color:#fff;text-decoration:none;transition:background-color .3s}.nav a[data-v-c22942b5]:hover{background-color:#495057}.nav a.active[data-v-c22942b5]{background-color:#007bff}.loading[data-v-c22942b5],.error[data-v-c22942b5]{text-align:center;padding:50px;font-size:16px}.loading[data-v-c22942b5]{color:#666}.error[data-v-c22942b5]{color:#dc3545}.plan-detail-container[data-v-c22942b5]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #eee}.plan-header h2[data-v-c22942b5]{margin:0;color:#333}.plan-status[data-v-c22942b5]{padding:6px 12px;border-radius:4px;font-size:14px;font-weight:700}.plan-status.enabled[data-v-c22942b5]{background-color:#d4edda;color:#155724}.plan-status.disabled[data-v-c22942b5]{background-color:#f8d7da;color:#721c24}.plan-info[data-v-c22942b5]{margin-bottom:30px}.info-item[data-v-c22942b5]{display:flex;margin-bottom:15px;align-items:center}.info-item label[data-v-c22942b5]{width:150px;font-weight:700;color:#333}.info-item span[data-v-c22942b5]{flex:1;color:#666}.plan-steps[data-v-c22942b5],.sub-plans[data-v-c22942b5]{margin-bottom:30px}.plan-steps h3[data-v-c22942b5],.sub-plans h3[data-v-c22942b5]{margin-top:0;margin-bottom:20px;color:#333;padding-bottom:10px;border-bottom:1px solid #eee}.steps-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:20px}.step-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:6px;padding:20px;background-color:#f8f9fa}.step-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.step-number[data-v-c22942b5]{font-weight:700;color:#007bff}.step-cron[data-v-c22942b5]{font-size:12px;color:#666;background-color:#e9ecef;padding:2px 6px;border-radius:3px}.step-details[data-v-c22942b5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.detail-item[data-v-c22942b5]{display:flex;flex-direction:column}.detail-item label[data-v-c22942b5]{font-size:12px;color:#666;margin-bottom:3px}.detail-item span[data-v-c22942b5]{font-weight:500;color:#333}.no-steps[data-v-c22942b5]{text-align:center;padding:30px;color:#666;font-style:italic}.sub-plans-list[data-v-c22942b5]{display:flex;flex-direction:column;gap:25px}.sub-plan-item[data-v-c22942b5]{border:1px solid #ddd;border-radius:8px;padding:20px;background-color:#fff;box-shadow:0 1px 3px #0000001a}.sub-plan-header[data-v-c22942b5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #eee}.sub-plan-header h4[data-v-c22942b5]{margin:0;color:#333}.sub-plan-info[data-v-c22942b5]{margin-bottom:20px}.sub-plan-info .info-item[data-v-c22942b5]{margin-bottom:10px}.sub-plan-steps h5[data-v-c22942b5]{margin-top:0;margin-bottom:15px;color:#333}.actions[data-v-c22942b5]{display:flex;justify-content:flex-end;gap:15px;padding-top:20px;border-top:1px solid #eee}.btn[data-v-c22942b5]{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s}.btn-primary[data-v-c22942b5]{background-color:#007bff;color:#fff}.btn-primary[data-v-c22942b5]:hover{background-color:#0069d9}.btn-secondary[data-v-c22942b5]{background-color:#6c757d;color:#fff}.btn-secondary[data-v-c22942b5]:hover{background-color:#5a6268}@media (max-width: 768px){.header[data-v-c22942b5]{flex-direction:column;gap:15px;align-items:flex-start}.nav ul[data-v-c22942b5]{flex-direction:column}.info-item[data-v-c22942b5]{flex-direction:column;align-items:flex-start;gap:5px}.info-item label[data-v-c22942b5]{width:auto}.step-details[data-v-c22942b5]{grid-template-columns:1fr}.actions[data-v-c22942b5]{flex-direction:column}} diff --git a/frontend/dist/assets/index.cb9d3828.js b/frontend/dist/assets/index.cb9d3828.js new file mode 100644 index 0000000..10ac042 --- /dev/null +++ b/frontend/dist/assets/index.cb9d3828.js @@ -0,0 +1,21 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerpolicy&&(i.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?i.credentials="include":s.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();/** +* @vue/shared v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ps(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Nt=[],je=()=>{},Jo=()=>!1,Un=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ts=e=>e.startsWith("onUpdate:"),fe=Object.assign,As=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},_r=Object.prototype.hasOwnProperty,Y=(e,t)=>_r.call(e,t),H=Array.isArray,$t=e=>vn(e)==="[object Map]",zt=e=>vn(e)==="[object Set]",Qs=e=>vn(e)==="[object Date]",U=e=>typeof e=="function",ce=e=>typeof e=="string",Ye=e=>typeof e=="symbol",oe=e=>e!==null&&typeof e=="object",Yo=e=>(oe(e)||U(e))&&U(e.then)&&U(e.catch),Qo=Object.prototype.toString,vn=e=>Qo.call(e),vr=e=>vn(e).slice(8,-1),Xo=e=>vn(e)==="[object Object]",Rs=e=>ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,tn=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},br=/-\w/g,Ie=Kn(e=>e.replace(br,t=>t.slice(1).toUpperCase())),yr=/\B([A-Z])/g,At=Kn(e=>e.replace(yr,"-$1").toLowerCase()),Wn=Kn(e=>e.charAt(0).toUpperCase()+e.slice(1)),es=Kn(e=>e?`on${Wn(e)}`:""),vt=(e,t)=>!Object.is(e,t),Pn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Mn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Xs;const bn=()=>Xs||(Xs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Os(e){if(H(e)){const t={};for(let n=0;n{if(n){const o=n.split(Sr);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function it(e){let t="";if(ce(e))t=e;else if(H(e))for(let n=0;nTt(n,t))}const ti=e=>!!(e&&e.__v_isRef===!0),F=e=>ce(e)?e:e==null?"":H(e)||oe(e)&&(e.toString===Qo||!U(e.toString))?ti(e)?F(e.value):JSON.stringify(e,ni,2):String(e),ni=(e,t)=>ti(t)?ni(e,t.value):$t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],i)=>(n[ts(o,i)+" =>"]=s,n),{})}:zt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ts(n))}:Ye(t)?ts(t):oe(t)&&!H(t)&&!Xo(t)?String(t):t,ts=(e,t="")=>{var n;return Ye(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ce;class Ar{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ce,!t&&Ce&&(this.index=(Ce.scopes||(Ce.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Ce=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(sn){let t=sn;for(sn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;nn;){let t=nn;for(nn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function ri(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function li(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),Is(o),Or(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function ps(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ci(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ci(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===fn)||(e.globalVersion=fn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ps(e))))return;e.flags|=2;const t=e.dep,n=ne,o=Le;ne=e,Le=!0;try{ri(e);const s=e.fn(e._value);(t.version===0||vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ne=n,Le=o,li(e),e.flags&=-3}}function Is(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Is(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Or(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const ai=[];function lt(){ai.push(Le),Le=!1}function ct(){const e=ai.pop();Le=e===void 0?!0:e}function Zs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ne;ne=void 0;try{t()}finally{ne=n}}}let fn=0;class kr{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ds{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ne||!Le||ne===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ne)n=this.activeLink=new kr(ne,this),ne.deps?(n.prevDep=ne.depsTail,ne.depsTail.nextDep=n,ne.depsTail=n):ne.deps=ne.depsTail=n,ui(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=ne.depsTail,n.nextDep=void 0,ne.depsTail.nextDep=n,ne.depsTail=n,ne.deps===n&&(ne.deps=o)}return n}trigger(t){this.version++,fn++,this.notify(t)}notify(t){Ms();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Fs()}}}function ui(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)ui(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const hs=new WeakMap,Pt=Symbol(""),ms=Symbol(""),dn=Symbol("");function _e(e,t,n){if(Le&&ne){let o=hs.get(e);o||hs.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new Ds),s.map=o,s.key=n),s.track()}}function nt(e,t,n,o,s,i){const l=hs.get(e);if(!l){fn++;return}const r=c=>{c&&c.trigger()};if(Ms(),t==="clear")l.forEach(r);else{const c=H(e),p=c&&Rs(n);if(c&&n==="length"){const f=Number(o);l.forEach((h,g)=>{(g==="length"||g===dn||!Ye(g)&&g>=f)&&r(h)})}else switch((n!==void 0||l.has(void 0))&&r(l.get(n)),p&&r(l.get(dn)),t){case"add":c?p&&r(l.get("length")):(r(l.get(Pt)),$t(e)&&r(l.get(ms)));break;case"delete":c||(r(l.get(Pt)),$t(e)&&r(l.get(ms)));break;case"set":$t(e)&&r(l.get(Pt));break}}Fs()}function Ft(e){const t=J(e);return t===e?t:(_e(t,"iterate",dn),Me(e)?t:t.map(pe))}function qn(e){return _e(e=J(e),"iterate",dn),e}const Mr={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,pe)},concat(...e){return Ft(this).concat(...e.map(t=>H(t)?Ft(t):t))},entries(){return ss(this,"entries",e=>(e[1]=pe(e[1]),e))},every(e,t){return Ze(this,"every",e,t,void 0,arguments)},filter(e,t){return Ze(this,"filter",e,t,n=>n.map(pe),arguments)},find(e,t){return Ze(this,"find",e,t,pe,arguments)},findIndex(e,t){return Ze(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ze(this,"findLast",e,t,pe,arguments)},findLastIndex(e,t){return Ze(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ze(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return Ft(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return Ze(this,"map",e,t,void 0,arguments)},pop(){return Yt(this,"pop")},push(...e){return Yt(this,"push",e)},reduce(e,...t){return eo(this,"reduce",e,t)},reduceRight(e,...t){return eo(this,"reduceRight",e,t)},shift(){return Yt(this,"shift")},some(e,t){return Ze(this,"some",e,t,void 0,arguments)},splice(...e){return Yt(this,"splice",e)},toReversed(){return Ft(this).toReversed()},toSorted(e){return Ft(this).toSorted(e)},toSpliced(...e){return Ft(this).toSpliced(...e)},unshift(...e){return Yt(this,"unshift",e)},values(){return ss(this,"values",pe)}};function ss(e,t,n){const o=qn(e),s=o[t]();return o!==e&&!Me(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const Fr=Array.prototype;function Ze(e,t,n,o,s,i){const l=qn(e),r=l!==e&&!Me(e),c=l[t];if(c!==Fr[t]){const h=c.apply(e,i);return r?pe(h):h}let p=n;l!==e&&(r?p=function(h,g){return n.call(this,pe(h),g,e)}:n.length>2&&(p=function(h,g){return n.call(this,h,g,e)}));const f=c.call(l,p,o);return r&&s?s(f):f}function eo(e,t,n,o){const s=qn(e);let i=n;return s!==e&&(Me(e)?n.length>3&&(i=function(l,r,c){return n.call(this,l,r,c,e)}):i=function(l,r,c){return n.call(this,l,pe(r),c,e)}),s[t](i,...o)}function os(e,t,n){const o=J(e);_e(o,"iterate",dn);const s=o[t](...n);return(s===-1||s===!1)&&js(n[0])?(n[0]=J(n[0]),o[t](...n)):s}function Yt(e,t,n=[]){lt(),Ms();const o=J(e)[t].apply(e,n);return Fs(),ct(),o}const Ir=Ps("__proto__,__v_isRef,__isVue"),fi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ye));function Dr(e){Ye(e)||(e=String(e));const t=J(this);return _e(t,"has",e),t.hasOwnProperty(e)}class di{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(s?i?Wr:gi:i?mi:hi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=H(t);if(!s){let c;if(l&&(c=Mr[n]))return c;if(n==="hasOwnProperty")return Dr}const r=Reflect.get(t,n,be(t)?t:o);return(Ye(n)?fi.has(n):Ir(n))||(s||_e(t,"get",n),i)?r:be(r)?l&&Rs(n)?r:r.value:oe(r)?s?vi(r):zn(r):r}}class pi extends di{constructor(t=!1){super(!1,t)}set(t,n,o,s){let i=t[n];if(!this._isShallow){const c=bt(i);if(!Me(o)&&!bt(o)&&(i=J(i),o=J(o)),!H(t)&&be(i)&&!be(o))return c||(i.value=o),!0}const l=H(t)&&Rs(n)?Number(n)e,wn=e=>Reflect.getPrototypeOf(e);function Vr(e,t,n){return function(...o){const s=this.__v_raw,i=J(s),l=$t(i),r=e==="entries"||e===Symbol.iterator&&l,c=e==="keys"&&l,p=s[e](...o),f=n?gs:t?Fn:pe;return!t&&_e(i,"iterate",c?ms:Pt),{next(){const{value:h,done:g}=p.next();return g?{value:h,done:g}:{value:r?[f(h[0]),f(h[1])]:f(h),done:g}},[Symbol.iterator](){return this}}}}function Cn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Hr(e,t){const n={get(s){const i=this.__v_raw,l=J(i),r=J(s);e||(vt(s,r)&&_e(l,"get",s),_e(l,"get",r));const{has:c}=wn(l),p=t?gs:e?Fn:pe;if(c.call(l,s))return p(i.get(s));if(c.call(l,r))return p(i.get(r));i!==l&&i.get(s)},get size(){const s=this.__v_raw;return!e&&_e(J(s),"iterate",Pt),s.size},has(s){const i=this.__v_raw,l=J(i),r=J(s);return e||(vt(s,r)&&_e(l,"has",s),_e(l,"has",r)),s===r?i.has(s):i.has(s)||i.has(r)},forEach(s,i){const l=this,r=l.__v_raw,c=J(r),p=t?gs:e?Fn:pe;return!e&&_e(c,"iterate",Pt),r.forEach((f,h)=>s.call(i,p(f),p(h),l))}};return fe(n,e?{add:Cn("add"),set:Cn("set"),delete:Cn("delete"),clear:Cn("clear")}:{add(s){!t&&!Me(s)&&!bt(s)&&(s=J(s));const i=J(this);return wn(i).has.call(i,s)||(i.add(s),nt(i,"add",s,s)),this},set(s,i){!t&&!Me(i)&&!bt(i)&&(i=J(i));const l=J(this),{has:r,get:c}=wn(l);let p=r.call(l,s);p||(s=J(s),p=r.call(l,s));const f=c.call(l,s);return l.set(s,i),p?vt(i,f)&&nt(l,"set",s,i):nt(l,"add",s,i),this},delete(s){const i=J(this),{has:l,get:r}=wn(i);let c=l.call(i,s);c||(s=J(s),c=l.call(i,s)),r&&r.call(i,s);const p=i.delete(s);return c&&nt(i,"delete",s,void 0),p},clear(){const s=J(this),i=s.size!==0,l=s.clear();return i&&nt(s,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Vr(s,e,t)}),n}function Ns(e,t){const n=Hr(e,t);return(o,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(Y(n,s)&&s in o?n:o,s,i)}const Br={get:Ns(!1,!1)},Ur={get:Ns(!1,!0)},Kr={get:Ns(!0,!1)};const hi=new WeakMap,mi=new WeakMap,gi=new WeakMap,Wr=new WeakMap;function qr(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function zr(e){return e.__v_skip||!Object.isExtensible(e)?0:qr(vr(e))}function zn(e){return bt(e)?e:$s(e,!1,$r,Br,hi)}function _i(e){return $s(e,!1,Lr,Ur,mi)}function vi(e){return $s(e,!0,jr,Kr,gi)}function $s(e,t,n,o,s){if(!oe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=zr(e);if(i===0)return e;const l=s.get(e);if(l)return l;const r=new Proxy(e,i===2?o:n);return s.set(e,r),r}function jt(e){return bt(e)?jt(e.__v_raw):!!(e&&e.__v_isReactive)}function bt(e){return!!(e&&e.__v_isReadonly)}function Me(e){return!!(e&&e.__v_isShallow)}function js(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Gr(e){return!Y(e,"__v_skip")&&Object.isExtensible(e)&&Zo(e,"__v_skip",!0),e}const pe=e=>oe(e)?zn(e):e,Fn=e=>oe(e)?vi(e):e;function be(e){return e?e.__v_isRef===!0:!1}function Jr(e){return bi(e,!1)}function Yr(e){return bi(e,!0)}function bi(e,t){return be(e)?e:new Qr(e,t)}class Qr{constructor(t,n){this.dep=new Ds,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:J(t),this._value=n?t:pe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||Me(t)||bt(t);t=o?t:J(t),vt(t,n)&&(this._rawValue=t,this._value=o?t:pe(t),this.dep.trigger())}}function Lt(e){return be(e)?e.value:e}const Xr={get:(e,t,n)=>t==="__v_raw"?e:Lt(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return be(s)&&!be(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function yi(e){return jt(e)?e:new Proxy(e,Xr)}class Zr{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Ds(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=fn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&ne!==this)return ii(this,!0),!0}get value(){const t=this.dep.track();return ci(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function el(e,t,n=!1){let o,s;return U(e)?o=e:(o=e.get,s=e.set),new Zr(o,s,n)}const En={},In=new WeakMap;let Et;function tl(e,t=!1,n=Et){if(n){let o=In.get(n);o||In.set(n,o=[]),o.push(e)}}function nl(e,t,n=ee){const{immediate:o,deep:s,once:i,scheduler:l,augmentJob:r,call:c}=n,p=I=>s?I:Me(I)||s===!1||s===0?st(I,1):st(I);let f,h,g,_,A=!1,O=!1;if(be(e)?(h=()=>e.value,A=Me(e)):jt(e)?(h=()=>p(e),A=!0):H(e)?(O=!0,A=e.some(I=>jt(I)||Me(I)),h=()=>e.map(I=>{if(be(I))return I.value;if(jt(I))return p(I);if(U(I))return c?c(I,2):I()})):U(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){lt();try{g()}finally{ct()}}const I=Et;Et=f;try{return c?c(e,3,[_]):e(_)}finally{Et=I}}:h=je,t&&s){const I=h,Z=s===!0?1/0:s;h=()=>st(I(),Z)}const K=Rr(),$=()=>{f.stop(),K&&K.active&&As(K.effects,f)};if(i&&t){const I=t;t=(...Z)=>{I(...Z),$()}}let k=O?new Array(e.length).fill(En):En;const L=I=>{if(!(!(f.flags&1)||!f.dirty&&!I))if(t){const Z=f.run();if(s||A||(O?Z.some((de,re)=>vt(de,k[re])):vt(Z,k))){g&&g();const de=Et;Et=f;try{const re=[Z,k===En?void 0:O&&k[0]===En?[]:k,_];k=Z,c?c(t,3,re):t(...re)}finally{Et=de}}}else f.run()};return r&&r(L),f=new si(h),f.scheduler=l?()=>l(L,!1):L,_=I=>tl(I,!1,f),g=f.onStop=()=>{const I=In.get(f);if(I){if(c)c(I,4);else for(const Z of I)Z();In.delete(f)}},t?o?L(!0):k=f.run():l?l(L.bind(null,!0),!0):f.run(),$.pause=f.pause.bind(f),$.resume=f.resume.bind(f),$.stop=$,$}function st(e,t=1/0,n){if(t<=0||!oe(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,be(e))st(e.value,t,n);else if(H(e))for(let o=0;o{st(o,t,n)});else if(Xo(e)){for(const o in e)st(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&st(e[o],t,n)}return e}/** +* @vue/runtime-core v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function yn(e,t,n,o){try{return o?e(...o):e()}catch(s){Gn(s,t,n)}}function Qe(e,t,n,o){if(U(e)){const s=yn(e,t,n,o);return s&&Yo(s)&&s.catch(i=>{Gn(i,t,n)}),s}if(H(e)){const s=[];for(let i=0;i>>1,s=xe[o],i=pn(s);i=pn(n)?xe.push(e):xe.splice(ol(t),0,e),e.flags|=1,Si()}}function Si(){Dn||(Dn=xi.then(Ci))}function il(e){H(e)?Vt.push(...e):ht&&e.id===-1?ht.splice(It+1,0,e):e.flags&1||(Vt.push(e),e.flags|=1),Si()}function to(e,t,n=ze+1){for(;npn(n)-pn(o));if(Vt.length=0,ht){ht.push(...t);return}for(ht=t,It=0;Ite.id==null?e.flags&2?-1:1/0:e.id;function Ci(e){const t=je;try{for(ze=0;ze{o._d&&Ln(-1);const i=Nn(t);let l;try{l=e(...s)}finally{Nn(i),o._d&&Ln(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function ue(e,t){if(Re===null)return e;const n=Xn(Re),o=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,cl=Symbol("_leaveCb");function Hs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Hs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Pi(e,t){return U(e)?(()=>fe({name:e.name},t,{setup:e}))():e}function Ti(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const $n=new WeakMap;function on(e,t,n,o,s=!1){if(H(e)){e.forEach((A,O)=>on(A,t&&(H(t)?t[O]:t),n,o,s));return}if(rn(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&on(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?Xn(o.component):o.el,l=s?null:i,{i:r,r:c}=e,p=t&&t.r,f=r.refs===ee?r.refs={}:r.refs,h=r.setupState,g=J(h),_=h===ee?Jo:A=>Y(g,A);if(p!=null&&p!==c){if(no(t),ce(p))f[p]=null,_(p)&&(h[p]=null);else if(be(p)){p.value=null;const A=t;A.k&&(f[A.k]=null)}}if(U(c))yn(c,r,12,[l,f]);else{const A=ce(c),O=be(c);if(A||O){const K=()=>{if(e.f){const $=A?_(c)?h[c]:f[c]:c.value;if(s)H($)&&As($,i);else if(H($))$.includes(i)||$.push(i);else if(A)f[c]=[i],_(c)&&(h[c]=f[c]);else{const k=[i];c.value=k,e.k&&(f[e.k]=k)}}else A?(f[c]=l,_(c)&&(h[c]=l)):O&&(c.value=l,e.k&&(f[e.k]=l))};if(l){const $=()=>{K(),$n.delete(e)};$.id=-1,$n.set(e,$),Ae($,n)}else no(e),K()}}}function no(e){const t=$n.get(e);t&&(t.flags|=8,$n.delete(e))}bn().requestIdleCallback;bn().cancelIdleCallback;const rn=e=>!!e.type.__asyncLoader,Ai=e=>e.type.__isKeepAlive;function al(e,t){Ri(e,"a",t)}function ul(e,t){Ri(e,"da",t)}function Ri(e,t,n=ve){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Jn(t,o,n),n){let s=n.parent;for(;s&&s.parent;)Ai(s.parent.vnode)&&fl(o,t,n,s),s=s.parent}}function fl(e,t,n,o){const s=Jn(t,e,o,!0);Oi(()=>{As(o[t],s)},n)}function Jn(e,t,n=ve,o=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...l)=>{lt();const r=xn(n),c=Qe(t,n,e,l);return r(),ct(),c});return o?s.unshift(i):s.push(i),i}}const at=e=>(t,n=ve)=>{(!mn||e==="sp")&&Jn(e,(...o)=>t(...o),n)},dl=at("bm"),pl=at("m"),hl=at("bu"),ml=at("u"),gl=at("bum"),Oi=at("um"),_l=at("sp"),vl=at("rtg"),bl=at("rtc");function yl(e,t=ve){Jn("ec",e,t)}const ki="components";function Bt(e,t){return Sl(ki,e,!0,t)||e}const xl=Symbol.for("v-ndc");function Sl(e,t,n=!0,o=!1){const s=Re||ve;if(s){const i=s.type;if(e===ki){const r=pc(i,!1);if(r&&(r===t||r===Ie(t)||r===Wn(Ie(t))))return i}const l=so(s[e]||i[e],t)||so(s.appContext[e],t);return!l&&o?i:l}}function so(e,t){return e&&(e[t]||e[Ie(t)]||e[Wn(Ie(t))])}function _t(e,t,n,o){let s;const i=n&&n[o],l=H(e);if(l||ce(e)){const r=l&&jt(e);let c=!1,p=!1;r&&(c=!Me(e),p=bt(e),e=qn(e)),s=new Array(e.length);for(let f=0,h=e.length;ft(r,c,void 0,i&&i[c]));else{const r=Object.keys(e);s=new Array(r.length);for(let c=0,p=r.length;ce?Yi(e)?Xn(e):_s(e.parent):null,ln=fe(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=>_s(e.parent),$root:e=>_s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Bs(e),$forceUpdate:e=>e.f||(e.f=()=>{Vs(e.update)}),$nextTick:e=>e.n||(e.n=Ls.bind(e.proxy)),$watch:e=>Kl.bind(e)}),is=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:i,accessCache:l,type:r,appContext:c}=e;let p;if(t[0]!=="$"){const _=l[t];if(_!==void 0)switch(_){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(is(o,t))return l[t]=1,o[t];if(s!==ee&&Y(s,t))return l[t]=2,s[t];if((p=e.propsOptions[0])&&Y(p,t))return l[t]=3,i[t];if(n!==ee&&Y(n,t))return l[t]=4,n[t];vs&&(l[t]=0)}}const f=ln[t];let h,g;if(f)return t==="$attrs"&&_e(e.attrs,"get",""),f(e);if((h=r.__cssModules)&&(h=h[t]))return h;if(n!==ee&&Y(n,t))return l[t]=4,n[t];if(g=c.config.globalProperties,Y(g,t))return g[t]},set({_:e},t,n){const{data:o,setupState:s,ctx:i}=e;return is(s,t)?(s[t]=n,!0):o!==ee&&Y(o,t)?(o[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:s,propsOptions:i,type:l}},r){let c,p;return!!(n[r]||e!==ee&&r[0]!=="$"&&Y(e,r)||is(t,r)||(c=i[0])&&Y(c,r)||Y(o,r)||Y(ln,r)||Y(s.config.globalProperties,r)||(p=l.__cssModules)&&p[r])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function oo(e){return H(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let vs=!0;function Cl(e){const t=Bs(e),n=e.proxy,o=e.ctx;vs=!1,t.beforeCreate&&io(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:l,watch:r,provide:c,inject:p,created:f,beforeMount:h,mounted:g,beforeUpdate:_,updated:A,activated:O,deactivated:K,beforeDestroy:$,beforeUnmount:k,destroyed:L,unmounted:I,render:Z,renderTracked:de,renderTriggered:re,errorCaptured:He,serverPrefetch:ut,expose:Be,inheritAttrs:ft,components:St,directives:Ue,filters:Gt}=t;if(p&&El(p,o,null),l)for(const X in l){const q=l[X];U(q)&&(o[X]=q.bind(n))}if(s){const X=s.call(n,n);oe(X)&&(e.data=zn(X))}if(vs=!0,i)for(const X in i){const q=i[X],Xe=U(q)?q.bind(n,n):U(q.get)?q.get.bind(n,n):je,dt=!U(q)&&U(q.set)?q.set.bind(n):je,Ke=Ne({get:Xe,set:dt});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>Ke.value,set:Se=>Ke.value=Se})}if(r)for(const X in r)Mi(r[X],o,n,X);if(c){const X=U(c)?c.call(n):c;Reflect.ownKeys(X).forEach(q=>{Tn(q,X[q])})}f&&io(f,e,"c");function ae(X,q){H(q)?q.forEach(Xe=>X(Xe.bind(n))):q&&X(q.bind(n))}if(ae(dl,h),ae(pl,g),ae(hl,_),ae(ml,A),ae(al,O),ae(ul,K),ae(yl,He),ae(bl,de),ae(vl,re),ae(gl,k),ae(Oi,I),ae(_l,ut),H(Be))if(Be.length){const X=e.exposed||(e.exposed={});Be.forEach(q=>{Object.defineProperty(X,q,{get:()=>n[q],set:Xe=>n[q]=Xe,enumerable:!0})})}else e.exposed||(e.exposed={});Z&&e.render===je&&(e.render=Z),ft!=null&&(e.inheritAttrs=ft),St&&(e.components=St),Ue&&(e.directives=Ue),ut&&Ti(e)}function El(e,t,n=je){H(e)&&(e=bs(e));for(const o in e){const s=e[o];let i;oe(s)?"default"in s?i=rt(s.from||o,s.default,!0):i=rt(s.from||o):i=rt(s),be(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function io(e,t,n){Qe(H(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mi(e,t,n,o){let s=o.includes(".")?Wi(n,o):()=>n[o];if(ce(e)){const i=t[e];U(i)&&An(s,i)}else if(U(e))An(s,e.bind(n));else if(oe(e))if(H(e))e.forEach(i=>Mi(i,t,n,o));else{const i=U(e.handler)?e.handler.bind(n):t[e.handler];U(i)&&An(s,i,e)}}function Bs(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let c;return r?c=r:!s.length&&!n&&!o?c=t:(c={},s.length&&s.forEach(p=>jn(c,p,l,!0)),jn(c,t,l)),oe(t)&&i.set(t,c),c}function jn(e,t,n,o=!1){const{mixins:s,extends:i}=t;i&&jn(e,i,n,!0),s&&s.forEach(l=>jn(e,l,n,!0));for(const l in t)if(!(o&&l==="expose")){const r=Pl[l]||n&&n[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const Pl={data:ro,props:lo,emits:lo,methods:en,computed:en,beforeCreate:ye,created:ye,beforeMount:ye,mounted:ye,beforeUpdate:ye,updated:ye,beforeDestroy:ye,beforeUnmount:ye,destroyed:ye,unmounted:ye,activated:ye,deactivated:ye,errorCaptured:ye,serverPrefetch:ye,components:en,directives:en,watch:Al,provide:ro,inject:Tl};function ro(e,t){return t?e?function(){return fe(U(e)?e.call(this,this):e,U(t)?t.call(this,this):t)}:t:e}function Tl(e,t){return en(bs(e),bs(t))}function bs(e){if(H(e)){const t={};for(let n=0;n1)return n&&U(t)?t.call(o&&o.proxy):t}}const Ii={},Di=()=>Object.create(Ii),Ni=e=>Object.getPrototypeOf(e)===Ii;function kl(e,t,n,o=!1){const s={},i=Di();e.propsDefaults=Object.create(null),$i(e,t,s,i);for(const l in e.propsOptions[0])l in s||(s[l]=void 0);n?e.props=o?s:_i(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Ml(e,t,n,o){const{props:s,attrs:i,vnode:{patchFlag:l}}=e,r=J(s),[c]=e.propsOptions;let p=!1;if((o||l>0)&&!(l&16)){if(l&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,_]=ji(h,t,!0);fe(l,g),_&&r.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!i&&!c)return oe(e)&&o.set(e,Nt),Nt;if(H(i))for(let f=0;fe==="_"||e==="_ctx"||e==="$stable",Ks=e=>H(e)?e.map(Je):[Je(e)],Il=(e,t,n)=>{if(t._n)return t;const o=Ee((...s)=>Ks(t(...s)),n);return o._c=!1,o},Li=(e,t,n)=>{const o=e._ctx;for(const s in e){if(Us(s))continue;const i=e[s];if(U(i))t[s]=Il(s,i,o);else if(i!=null){const l=Ks(i);t[s]=()=>l}}},Vi=(e,t)=>{const n=Ks(t);e.slots.default=()=>n},Hi=(e,t,n)=>{for(const o in t)(n||!Us(o))&&(e[o]=t[o])},Dl=(e,t,n)=>{const o=e.slots=Di();if(e.vnode.shapeFlag&32){const s=t._;s?(Hi(o,t,n),n&&Zo(o,"_",s,!0)):Li(t,o)}else t&&Vi(e,t)},Nl=(e,t,n)=>{const{vnode:o,slots:s}=e;let i=!0,l=ee;if(o.shapeFlag&32){const r=t._;r?n&&r===1?i=!1:Hi(s,t,n):(i=!t.$stable,Li(t,s)),l=t}else t&&(Vi(e,t),l={default:1});if(i)for(const r in s)!Us(r)&&l[r]==null&&delete s[r]};function $l(){typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__!="boolean"&&(bn().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1)}const Ae=Xl;function jl(e){return Ll(e)}function Ll(e,t){$l();const n=bn();n.__VUE__=!0;const{insert:o,remove:s,patchProp:i,createElement:l,createText:r,createComment:c,setText:p,setElementText:f,parentNode:h,nextSibling:g,setScopeId:_=je,insertStaticContent:A}=e,O=(a,d,m,y=null,v=null,x=null,E=void 0,C=null,w=!!d.dynamicChildren)=>{if(a===d)return;a&&!Qt(a,d)&&(y=b(a),Se(a,v,x,!0),a=null),d.patchFlag===-2&&(w=!1,d.dynamicChildren=null);const{type:S,ref:V,shapeFlag:T}=d;switch(S){case Qn:K(a,d,m,y);break;case yt:$(a,d,m,y);break;case Rn:a==null&&k(d,m,y,E);break;case he:St(a,d,m,y,v,x,E,C,w);break;default:T&1?Z(a,d,m,y,v,x,E,C,w):T&6?Ue(a,d,m,y,v,x,E,C,w):(T&64||T&128)&&S.process(a,d,m,y,v,x,E,C,w,M)}V!=null&&v?on(V,a&&a.ref,x,d||a,!d):V==null&&a&&a.ref!=null&&on(a.ref,null,x,a,!0)},K=(a,d,m,y)=>{if(a==null)o(d.el=r(d.children),m,y);else{const v=d.el=a.el;d.children!==a.children&&p(v,d.children)}},$=(a,d,m,y)=>{a==null?o(d.el=c(d.children||""),m,y):d.el=a.el},k=(a,d,m,y)=>{[a.el,a.anchor]=A(a.children,d,m,y,a.el,a.anchor)},L=({el:a,anchor:d},m,y)=>{let v;for(;a&&a!==d;)v=g(a),o(a,m,y),a=v;o(d,m,y)},I=({el:a,anchor:d})=>{let m;for(;a&&a!==d;)m=g(a),s(a),a=m;s(d)},Z=(a,d,m,y,v,x,E,C,w)=>{d.type==="svg"?E="svg":d.type==="math"&&(E="mathml"),a==null?de(d,m,y,v,x,E,C,w):ut(a,d,v,x,E,C,w)},de=(a,d,m,y,v,x,E,C)=>{let w,S;const{props:V,shapeFlag:T,transition:D,dirs:B}=a;if(w=a.el=l(a.type,x,V&&V.is,V),T&8?f(w,a.children):T&16&&He(a.children,w,null,y,v,rs(a,x),E,C),B&&wt(a,null,y,"created"),re(w,a,a.scopeId,E,y),V){for(const te in V)te!=="value"&&!tn(te)&&i(w,te,null,V[te],x,y);"value"in V&&i(w,"value",null,V.value,x),(S=V.onVnodeBeforeMount)&&qe(S,y,a)}B&&wt(a,null,y,"beforeMount");const W=Vl(v,D);W&&D.beforeEnter(w),o(w,d,m),((S=V&&V.onVnodeMounted)||W||B)&&Ae(()=>{S&&qe(S,y,a),W&&D.enter(w),B&&wt(a,null,y,"mounted")},v)},re=(a,d,m,y,v)=>{if(m&&_(a,m),y)for(let x=0;x{for(let S=w;S{const C=d.el=a.el;let{patchFlag:w,dynamicChildren:S,dirs:V}=d;w|=a.patchFlag&16;const T=a.props||ee,D=d.props||ee;let B;if(m&&Ct(m,!1),(B=D.onVnodeBeforeUpdate)&&qe(B,m,d,a),V&&wt(d,a,m,"beforeUpdate"),m&&Ct(m,!0),(T.innerHTML&&D.innerHTML==null||T.textContent&&D.textContent==null)&&f(C,""),S?Be(a.dynamicChildren,S,C,m,y,rs(d,v),x):E||q(a,d,C,null,m,y,rs(d,v),x,!1),w>0){if(w&16)ft(C,T,D,m,v);else if(w&2&&T.class!==D.class&&i(C,"class",null,D.class,v),w&4&&i(C,"style",T.style,D.style,v),w&8){const W=d.dynamicProps;for(let te=0;te{B&&qe(B,m,d,a),V&&wt(d,a,m,"updated")},y)},Be=(a,d,m,y,v,x,E)=>{for(let C=0;C{if(d!==m){if(d!==ee)for(const x in d)!tn(x)&&!(x in m)&&i(a,x,d[x],null,v,y);for(const x in m){if(tn(x))continue;const E=m[x],C=d[x];E!==C&&x!=="value"&&i(a,x,C,E,v,y)}"value"in m&&i(a,"value",d.value,m.value,v)}},St=(a,d,m,y,v,x,E,C,w)=>{const S=d.el=a?a.el:r(""),V=d.anchor=a?a.anchor:r("");let{patchFlag:T,dynamicChildren:D,slotScopeIds:B}=d;B&&(C=C?C.concat(B):B),a==null?(o(S,m,y),o(V,m,y),He(d.children||[],m,V,v,x,E,C,w)):T>0&&T&64&&D&&a.dynamicChildren?(Be(a.dynamicChildren,D,m,v,x,E,C),(d.key!=null||v&&d===v.subTree)&&Bi(a,d,!0)):q(a,d,m,V,v,x,E,C,w)},Ue=(a,d,m,y,v,x,E,C,w)=>{d.slotScopeIds=C,a==null?d.shapeFlag&512?v.ctx.activate(d,m,y,E,w):Gt(d,m,y,v,x,E,w):Ot(a,d,w)},Gt=(a,d,m,y,v,x,E)=>{const C=a.component=lc(a,y,v);if(Ai(a)&&(C.ctx.renderer=M),ac(C,!1,E),C.asyncDep){if(v&&v.registerDep(C,ae,E),!a.el){const w=C.subTree=se(yt);$(null,w,d,m),a.placeholder=w.el}}else ae(C,a,d,m,v,x,E)},Ot=(a,d,m)=>{const y=d.component=a.component;if(Yl(a,d,m))if(y.asyncDep&&!y.asyncResolved){X(y,d,m);return}else y.next=d,y.update();else d.el=a.el,y.vnode=d},ae=(a,d,m,y,v,x,E)=>{const C=()=>{if(a.isMounted){let{next:T,bu:D,u:B,parent:W,vnode:te}=a;{const Pe=Ui(a);if(Pe){T&&(T.el=te.el,X(a,T,E)),Pe.asyncDep.then(()=>{a.isUnmounted||C()});return}}let Q=T,we;Ct(a,!1),T?(T.el=te.el,X(a,T,E)):T=te,D&&Pn(D),(we=T.props&&T.props.onVnodeBeforeUpdate)&&qe(we,W,T,te),Ct(a,!0);const ge=ls(a),De=a.subTree;a.subTree=ge,O(De,ge,h(De.el),b(De),a,v,x),T.el=ge.el,Q===null&&Ql(a,ge.el),B&&Ae(B,v),(we=T.props&&T.props.onVnodeUpdated)&&Ae(()=>qe(we,W,T,te),v)}else{let T;const{el:D,props:B}=d,{bm:W,m:te,parent:Q,root:we,type:ge}=a,De=rn(d);if(Ct(a,!1),W&&Pn(W),!De&&(T=B&&B.onVnodeBeforeMount)&&qe(T,Q,d),Ct(a,!0),D&&ie){const Pe=()=>{a.subTree=ls(a),ie(D,a.subTree,a,v,null)};De&&ge.__asyncHydrate?ge.__asyncHydrate(D,a,Pe):Pe()}else{we.ce&&we.ce._def.shadowRoot!==!1&&we.ce._injectChildStyle(ge);const Pe=a.subTree=ls(a);O(null,Pe,m,y,a,v,x),d.el=Pe.el}if(te&&Ae(te,v),!De&&(T=B&&B.onVnodeMounted)){const Pe=d;Ae(()=>qe(T,Q,Pe),v)}(d.shapeFlag&256||Q&&rn(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&Ae(a.a,v),a.isMounted=!0,d=m=y=null}};a.scope.on();const w=a.effect=new si(C);a.scope.off();const S=a.update=w.run.bind(w),V=a.job=w.runIfDirty.bind(w);V.i=a,V.id=a.uid,w.scheduler=()=>Vs(V),Ct(a,!0),S()},X=(a,d,m)=>{d.component=a;const y=a.vnode.props;a.vnode=d,a.next=null,Ml(a,d.props,y,m),Nl(a,d.children,m),lt(),to(a),ct()},q=(a,d,m,y,v,x,E,C,w=!1)=>{const S=a&&a.children,V=a?a.shapeFlag:0,T=d.children,{patchFlag:D,shapeFlag:B}=d;if(D>0){if(D&128){dt(S,T,m,y,v,x,E,C,w);return}else if(D&256){Xe(S,T,m,y,v,x,E,C,w);return}}B&8?(V&16&&ke(S,v,x),T!==S&&f(m,T)):V&16?B&16?dt(S,T,m,y,v,x,E,C,w):ke(S,v,x,!0):(V&8&&f(m,""),B&16&&He(T,m,y,v,x,E,C,w))},Xe=(a,d,m,y,v,x,E,C,w)=>{a=a||Nt,d=d||Nt;const S=a.length,V=d.length,T=Math.min(S,V);let D;for(D=0;DV?ke(a,v,x,!0,!1,T):He(d,m,y,v,x,E,C,w,T)},dt=(a,d,m,y,v,x,E,C,w)=>{let S=0;const V=d.length;let T=a.length-1,D=V-1;for(;S<=T&&S<=D;){const B=a[S],W=d[S]=w?mt(d[S]):Je(d[S]);if(Qt(B,W))O(B,W,m,null,v,x,E,C,w);else break;S++}for(;S<=T&&S<=D;){const B=a[T],W=d[D]=w?mt(d[D]):Je(d[D]);if(Qt(B,W))O(B,W,m,null,v,x,E,C,w);else break;T--,D--}if(S>T){if(S<=D){const B=D+1,W=BD)for(;S<=T;)Se(a[S],v,x,!0),S++;else{const B=S,W=S,te=new Map;for(S=W;S<=D;S++){const Te=d[S]=w?mt(d[S]):Je(d[S]);Te.key!=null&&te.set(Te.key,S)}let Q,we=0;const ge=D-W+1;let De=!1,Pe=0;const Jt=new Array(ge);for(S=0;S=ge){Se(Te,v,x,!0);continue}let We;if(Te.key!=null)We=te.get(Te.key);else for(Q=W;Q<=D;Q++)if(Jt[Q-W]===0&&Qt(Te,d[Q])){We=Q;break}We===void 0?Se(Te,v,x,!0):(Jt[We-W]=S+1,We>=Pe?Pe=We:De=!0,O(Te,d[We],m,null,v,x,E,C,w),we++)}const Gs=De?Hl(Jt):Nt;for(Q=Gs.length-1,S=ge-1;S>=0;S--){const Te=W+S,We=d[Te],Js=d[Te+1],Ys=Te+1{const{el:x,type:E,transition:C,children:w,shapeFlag:S}=a;if(S&6){Ke(a.component.subTree,d,m,y);return}if(S&128){a.suspense.move(d,m,y);return}if(S&64){E.move(a,d,m,M);return}if(E===he){o(x,d,m);for(let T=0;TC.enter(x),v);else{const{leave:T,delayLeave:D,afterLeave:B}=C,W=()=>{a.ctx.isUnmounted?s(x):o(x,d,m)},te=()=>{x._isLeaving&&x[cl](!0),T(x,()=>{W(),B&&B()})};D?D(x,W,te):te()}else o(x,d,m)},Se=(a,d,m,y=!1,v=!1)=>{const{type:x,props:E,ref:C,children:w,dynamicChildren:S,shapeFlag:V,patchFlag:T,dirs:D,cacheIndex:B}=a;if(T===-2&&(v=!1),C!=null&&(lt(),on(C,null,m,a,!0),ct()),B!=null&&(d.renderCache[B]=void 0),V&256){d.ctx.deactivate(a);return}const W=V&1&&D,te=!rn(a);let Q;if(te&&(Q=E&&E.onVnodeBeforeUnmount)&&qe(Q,d,a),V&6)Sn(a.component,m,y);else{if(V&128){a.suspense.unmount(m,y);return}W&&wt(a,null,d,"beforeUnmount"),V&64?a.type.remove(a,d,m,M,y):S&&!S.hasOnce&&(x!==he||T>0&&T&64)?ke(S,d,m,!1,!0):(x===he&&T&384||!v&&V&16)&&ke(w,d,m),y&&kt(a)}(te&&(Q=E&&E.onVnodeUnmounted)||W)&&Ae(()=>{Q&&qe(Q,d,a),W&&wt(a,null,d,"unmounted")},m)},kt=a=>{const{type:d,el:m,anchor:y,transition:v}=a;if(d===he){Mt(m,y);return}if(d===Rn){I(a);return}const x=()=>{s(m),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:E,delayLeave:C}=v,w=()=>E(m,x);C?C(a.el,x,w):w()}else x()},Mt=(a,d)=>{let m;for(;a!==d;)m=g(a),s(a),a=m;s(d)},Sn=(a,d,m)=>{const{bum:y,scope:v,job:x,subTree:E,um:C,m:w,a:S}=a;ao(w),ao(S),y&&Pn(y),v.stop(),x&&(x.flags|=8,Se(E,a,d,m)),C&&Ae(C,d),Ae(()=>{a.isUnmounted=!0},d)},ke=(a,d,m,y=!1,v=!1,x=0)=>{for(let E=x;E{if(a.shapeFlag&6)return b(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=g(a.anchor||a.el),m=d&&d[rl];return m?g(m):d};let R=!1;const P=(a,d,m)=>{a==null?d._vnode&&Se(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,m),d._vnode=a,R||(R=!0,to(),wi(),R=!1)},M={p:O,um:Se,m:Ke,r:kt,mt:Gt,mc:He,pc:q,pbc:Be,n:b,o:e};let z,ie;return t&&([z,ie]=t(M)),{render:P,hydrate:z,createApp:Ol(P,z)}}function rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Vl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Bi(e,t,n=!1){const o=e.children,s=t.children;if(H(o)&&H(s))for(let i=0;i>1,e[n[r]]0&&(t[o]=n[i-1]),n[i]=o)}}for(i=n.length,l=n[i-1];i-- >0;)n[i]=l,l=t[l];return n}function Ui(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ui(t)}function ao(e){if(e)for(let t=0;trt(Bl);function An(e,t,n){return Ki(e,t,n)}function Ki(e,t,n=ee){const{immediate:o,deep:s,flush:i,once:l}=n,r=fe({},n),c=t&&o||!t&&i!=="post";let p;if(mn){if(i==="sync"){const _=Ul();p=_.__watcherHandles||(_.__watcherHandles=[])}else if(!c){const _=()=>{};return _.stop=je,_.resume=je,_.pause=je,_}}const f=ve;r.call=(_,A,O)=>Qe(_,f,A,O);let h=!1;i==="post"?r.scheduler=_=>{Ae(_,f&&f.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(_,A)=>{A?_():Vs(_)}),r.augmentJob=_=>{t&&(_.flags|=4),h&&(_.flags|=2,f&&(_.id=f.uid,_.i=f))};const g=nl(e,t,r);return mn&&(p?p.push(g):c&&g()),g}function Kl(e,t,n){const o=this.proxy,s=ce(e)?e.includes(".")?Wi(o,e):()=>o[e]:e.bind(o,o);let i;U(t)?i=t:(i=t.handler,n=t);const l=xn(this),r=Ki(s,i.bind(o),n);return l(),r}function Wi(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ie(t)}Modifiers`]||e[`${At(t)}Modifiers`];function ql(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||ee;let s=n;const i=t.startsWith("update:"),l=i&&Wl(o,t.slice(7));l&&(l.trim&&(s=n.map(f=>ce(f)?f.trim():f)),l.number&&(s=n.map(Mn)));let r,c=o[r=es(t)]||o[r=es(Ie(t))];!c&&i&&(c=o[r=es(At(t))]),c&&Qe(c,e,6,s);const p=o[r+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,Qe(p,e,6,s)}}const zl=new WeakMap;function qi(e,t,n=!1){const o=n?zl:t.emitsCache,s=o.get(e);if(s!==void 0)return s;const i=e.emits;let l={},r=!1;if(!U(e)){const c=p=>{const f=qi(p,t,!0);f&&(r=!0,fe(l,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!r?(oe(e)&&o.set(e,null),null):(H(i)?i.forEach(c=>l[c]=null):fe(l,i),oe(e)&&o.set(e,l),l)}function Yn(e,t){return!e||!Un(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,At(t))||Y(e,t))}function ls(e){const{type:t,vnode:n,proxy:o,withProxy:s,propsOptions:[i],slots:l,attrs:r,emit:c,render:p,renderCache:f,props:h,data:g,setupState:_,ctx:A,inheritAttrs:O}=e,K=Nn(e);let $,k;try{if(n.shapeFlag&4){const I=s||o,Z=I;$=Je(p.call(Z,I,f,h,_,g,A)),k=r}else{const I=t;$=Je(I.length>1?I(h,{attrs:r,slots:l,emit:c}):I(h,null)),k=t.props?r:Gl(r)}}catch(I){cn.length=0,Gn(I,e,1),$=se(yt)}let L=$;if(k&&O!==!1){const I=Object.keys(k),{shapeFlag:Z}=L;I.length&&Z&7&&(i&&I.some(Ts)&&(k=Jl(k,i)),L=Ut(L,k,!1,!0))}return n.dirs&&(L=Ut(L,null,!1,!0),L.dirs=L.dirs?L.dirs.concat(n.dirs):n.dirs),n.transition&&Hs(L,n.transition),$=L,Nn(K),$}const Gl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Un(n))&&((t||(t={}))[n]=e[n]);return t},Jl=(e,t)=>{const n={};for(const o in e)(!Ts(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Yl(e,t,n){const{props:o,children:s,component:i}=e,{props:l,children:r,patchFlag:c}=t,p=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return o?uo(o,l,p):!!l;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function Xl(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):il(e)}const he=Symbol.for("v-fgt"),Qn=Symbol.for("v-txt"),yt=Symbol.for("v-cmt"),Rn=Symbol.for("v-stc"),cn=[];let Oe=null;function N(e=!1){cn.push(Oe=e?null:[])}function Zl(){cn.pop(),Oe=cn[cn.length-1]||null}let hn=1;function Ln(e,t=!1){hn+=e,e<0&&Oe&&t&&(Oe.hasOnce=!0)}function Gi(e){return e.dynamicChildren=hn>0?Oe||Nt:null,Zl(),hn>0&&Oe&&Oe.push(e),e}function j(e,t,n,o,s,i){return Gi(u(e,t,n,o,s,i,!0))}function ec(e,t,n,o,s){return Gi(se(e,t,n,o,s,!0))}function Vn(e){return e?e.__v_isVNode===!0:!1}function Qt(e,t){return e.type===t.type&&e.key===t.key}const Ji=({key:e})=>e!=null?e:null,On=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ce(e)||be(e)||U(e)?{i:Re,r:e,k:t,f:!!n}:e:null);function u(e,t=null,n=null,o=0,s=null,i=e===he?0:1,l=!1,r=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ji(t),ref:t&&On(t),scopeId:Ei,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Re};return r?(Ws(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ce(n)?8:16),hn>0&&!l&&Oe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Oe.push(c),c}const se=tc;function tc(e,t=null,n=null,o=0,s=null,i=!1){if((!e||e===xl)&&(e=yt),Vn(e)){const r=Ut(e,t,!0);return n&&Ws(r,n),hn>0&&!i&&Oe&&(r.shapeFlag&6?Oe[Oe.indexOf(e)]=r:Oe.push(r)),r.patchFlag=-2,r}if(hc(e)&&(e=e.__vccOpts),t){t=nc(t);let{class:r,style:c}=t;r&&!ce(r)&&(t.class=it(r)),oe(c)&&(js(c)&&!H(c)&&(c=fe({},c)),t.style=Os(c))}const l=ce(e)?1:zi(e)?128:ll(e)?64:oe(e)?4:U(e)?2:0;return u(e,t,n,o,s,l,i,!0)}function nc(e){return e?js(e)||Ni(e)?fe({},e):e:null}function Ut(e,t,n=!1,o=!1){const{props:s,ref:i,patchFlag:l,children:r,transition:c}=e,p=t?oc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&Ji(p),ref:t&&t.ref?n&&i?H(i)?i.concat(On(t)):[i,On(t)]:On(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ut(e.ssContent),ssFallback:e.ssFallback&&Ut(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&o&&Hs(f,c.clone(f)),f}function me(e=" ",t=0){return se(Qn,null,e,t)}function sc(e,t){const n=se(Rn,null,e);return n.staticCount=t,n}function le(e="",t=!1){return t?(N(),ec(yt,null,e)):se(yt,null,e)}function Je(e){return e==null||typeof e=="boolean"?se(yt):H(e)?se(he,null,e.slice()):Vn(e)?mt(e):se(Qn,null,String(e))}function mt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ut(e)}function Ws(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(H(t))n=16;else if(typeof t=="object")if(o&65){const s=t.default;s&&(s._c&&(s._d=!1),Ws(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ni(t)?t._ctx=Re:s===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else U(t)?(t={default:t,_ctx:Re},n=32):(t=String(t),o&64?(n=16,t=[me(t)]):n=8);e.children=t,e.shapeFlag|=n}function oc(...e){const t={};for(let n=0;nve||Re;let Hn,xs;{const e=bn(),t=(n,o)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(o),i=>{s.length>1?s.forEach(l=>l(i)):s[0](i)}};Hn=t("__VUE_INSTANCE_SETTERS__",n=>ve=n),xs=t("__VUE_SSR_SETTERS__",n=>mn=n)}const xn=e=>{const t=ve;return Hn(e),e.scope.on(),()=>{e.scope.off(),Hn(t)}},fo=()=>{ve&&ve.scope.off(),Hn(null)};function Yi(e){return e.vnode.shapeFlag&4}let mn=!1;function ac(e,t=!1,n=!1){t&&xs(t);const{props:o,children:s}=e.vnode,i=Yi(e);kl(e,o,i,t),Dl(e,s,n||t);const l=i?uc(e,t):void 0;return t&&xs(!1),l}function uc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,wl);const{setup:o}=n;if(o){lt();const s=e.setupContext=o.length>1?dc(e):null,i=xn(e),l=yn(o,e,0,[e.props,s]),r=Yo(l);if(ct(),i(),(r||e.sp)&&!rn(e)&&Ti(e),r){if(l.then(fo,fo),t)return l.then(c=>{po(e,c,t)}).catch(c=>{Gn(c,e,0)});e.asyncDep=l}else po(e,l,t)}else Qi(e,t)}function po(e,t,n){U(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:oe(t)&&(e.setupState=yi(t)),Qi(e,n)}let ho;function Qi(e,t,n){const o=e.type;if(!e.render){if(!t&&ho&&!o.render){const s=o.template||Bs(e).template;if(s){const{isCustomElement:i,compilerOptions:l}=e.appContext.config,{delimiters:r,compilerOptions:c}=o,p=fe(fe({isCustomElement:i,delimiters:r},l),c);o.render=ho(s,p)}}e.render=o.render||je}{const s=xn(e);lt();try{Cl(e)}finally{ct(),s()}}}const fc={get(e,t){return _e(e,"get",""),e[t]}};function dc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,fc),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(yi(Gr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ln)return ln[n](e)},has(t,n){return n in t||n in ln}})):e.proxy}function pc(e,t=!0){return U(e)?e.displayName||e.name:e.name||t&&e.__name}function hc(e){return U(e)&&"__vccOpts"in e}const Ne=(e,t)=>el(e,t,mn);function Xi(e,t,n){const o=(i,l,r)=>{Ln(-1);try{return se(i,l,r)}finally{Ln(1)}},s=arguments.length;return s===2?oe(t)&&!H(t)?Vn(t)?o(e,null,[t]):o(e,t):o(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Vn(n)&&(n=[n]),o(e,t,n))}const mc="3.5.21";/** +* @vue/runtime-dom v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ss;const mo=typeof window<"u"&&window.trustedTypes;if(mo)try{Ss=mo.createPolicy("vue",{createHTML:e=>e})}catch{}const Zi=Ss?e=>Ss.createHTML(e):e=>e,gc="http://www.w3.org/2000/svg",_c="http://www.w3.org/1998/Math/MathML",tt=typeof document<"u"?document:null,go=tt&&tt.createElement("template"),vc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const s=t==="svg"?tt.createElementNS(gc,e):t==="mathml"?tt.createElementNS(_c,e):n?tt.createElement(e,{is:n}):tt.createElement(e);return e==="select"&&o&&o.multiple!=null&&s.setAttribute("multiple",o.multiple),s},createText:e=>tt.createTextNode(e),createComment:e=>tt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>tt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,s,i){const l=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{go.innerHTML=Zi(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const r=go.content;if(o==="svg"||o==="mathml"){const c=r.firstChild;for(;c.firstChild;)r.appendChild(c.firstChild);r.removeChild(c)}t.insertBefore(r,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},bc=Symbol("_vtc");function yc(e,t,n){const o=e[bc];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Bn=Symbol("_vod"),er=Symbol("_vsh"),_o={name:"show",beforeMount(e,{value:t},{transition:n}){e[Bn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Xt(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Xt(e,!0),o.enter(e)):o.leave(e,()=>{Xt(e,!1)}):Xt(e,t))},beforeUnmount(e,{value:t}){Xt(e,t)}};function Xt(e,t){e.style.display=t?e[Bn]:"none",e[er]=!t}const xc=Symbol(""),Sc=/(?:^|;)\s*display\s*:/;function wc(e,t,n){const o=e.style,s=ce(n);let i=!1;if(n&&!s){if(t)if(ce(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();n[r]==null&&kn(o,r,"")}else for(const l in t)n[l]==null&&kn(o,l,"");for(const l in n)l==="display"&&(i=!0),kn(o,l,n[l])}else if(s){if(t!==n){const l=o[xc];l&&(n+=";"+l),o.cssText=n,i=Sc.test(n)}}else t&&e.removeAttribute("style");Bn in e&&(e[Bn]=i?o.display:"",e[er]&&(o.display="none"))}const vo=/\s*!important$/;function kn(e,t,n){if(H(n))n.forEach(o=>kn(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Cc(e,t);vo.test(n)?e.setProperty(At(o),n.replace(vo,""),"important"):e[o]=n}}const bo=["Webkit","Moz","ms"],cs={};function Cc(e,t){const n=cs[t];if(n)return n;let o=Ie(t);if(o!=="filter"&&o in e)return cs[t]=o;o=Wn(o);for(let s=0;sas||(Ac.then(()=>as=0),as=Date.now());function Oc(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Qe(kc(o,n.value),t,5,[o])};return n.value=e,n.attached=Rc(),n}function kc(e,t){if(H(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>s=>!s._stopped&&o&&o(s))}else return t}const Eo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Mc=(e,t,n,o,s,i)=>{const l=s==="svg";t==="class"?yc(e,o,l):t==="style"?wc(e,n,o):Un(t)?Ts(t)||Pc(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Fc(e,t,o,l))?(So(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&xo(e,t,o,l,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ce(o))?So(e,Ie(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),xo(e,t,o,l))};function Fc(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Eo(t)&&U(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Eo(t)&&ce(n)?!1:t in e}const xt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return H(t)?n=>Pn(t,n):t};function Ic(e){e.target.composing=!0}function Po(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Fe=Symbol("_assign"),$e={created(e,{modifiers:{lazy:t,trim:n,number:o}},s){e[Fe]=xt(s);const i=o||s.props&&s.props.type==="number";ot(e,t?"change":"input",l=>{if(l.target.composing)return;let r=e.value;n&&(r=r.trim()),i&&(r=Mn(r)),e[Fe](r)}),n&&ot(e,"change",()=>{e.value=e.value.trim()}),t||(ot(e,"compositionstart",Ic),ot(e,"compositionend",Po),ot(e,"change",Po))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:s,number:i}},l){if(e[Fe]=xt(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Mn(e.value):e.value,c=t==null?"":t;r!==c&&(document.activeElement===e&&e.type!=="range"&&(o&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Dc={deep:!0,created(e,t,n){e[Fe]=xt(n),ot(e,"change",()=>{const o=e._modelValue,s=Kt(e),i=e.checked,l=e[Fe];if(H(o)){const r=ks(o,s),c=r!==-1;if(i&&!c)l(o.concat(s));else if(!i&&c){const p=[...o];p.splice(r,1),l(p)}}else if(zt(o)){const r=new Set(o);i?r.add(s):r.delete(s),l(r)}else l(tr(e,i))})},mounted:To,beforeUpdate(e,t,n){e[Fe]=xt(n),To(e,t,n)}};function To(e,{value:t,oldValue:n},o){e._modelValue=t;let s;if(H(t))s=ks(t,o.props.value)>-1;else if(zt(t))s=t.has(o.props.value);else{if(t===n)return;s=Tt(t,tr(e,!0))}e.checked!==s&&(e.checked=s)}const Ao={created(e,{value:t},n){e.checked=Tt(t,n.props.value),e[Fe]=xt(n),ot(e,"change",()=>{e[Fe](Kt(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[Fe]=xt(o),t!==n&&(e.checked=Tt(t,o.props.value))}},Ro={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const s=zt(t);ot(e,"change",()=>{const i=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?Mn(Kt(l)):Kt(l));e[Fe](e.multiple?s?new Set(i):i:i[0]),e._assigning=!0,Ls(()=>{e._assigning=!1})}),e[Fe]=xt(o)},mounted(e,{value:t}){Oo(e,t)},beforeUpdate(e,t,n){e[Fe]=xt(n)},updated(e,{value:t}){e._assigning||Oo(e,t)}};function Oo(e,t){const n=e.multiple,o=H(t);if(!(n&&!o&&!zt(t))){for(let s=0,i=e.options.length;sString(p)===String(r)):l.selected=ks(t,r)>-1}else l.selected=t.has(r);else if(Tt(Kt(l),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Kt(e){return"_value"in e?e._value:e.value}function tr(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Nc=["ctrl","shift","alt","meta"],$c={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)=>Nc.some(n=>e[`${n}Key`]&&!t.includes(n))},Ge=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=(s,...i)=>{for(let l=0;l{const t=Lc().createApp(...e),{mount:n}=t;return t.mount=o=>{const s=Bc(o);if(!s)return;const i=t._component;!U(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const l=n(s,!1,Hc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),l},t};function Hc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Bc(e){return ce(e)?document.querySelector(e):e}const Rt=(e,t)=>{const n=e.__vccOpts||e;for(const[o,s]of t)n[o]=s;return n},Uc={name:"App"},Kc={id:"app"};function Wc(e,t,n,o,s,i){const l=Bt("router-view");return N(),j("div",Kc,[se(l)])}const qc=Rt(Uc,[["render",Wc]]);/*! + * vue-router v4.5.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Dt=typeof document<"u";function nr(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function zc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&nr(e.default)}const G=Object.assign;function us(e,t){const n={};for(const o in t){const s=t[o];n[o]=Ve(s)?s.map(e):e(s)}return n}const an=()=>{},Ve=Array.isArray,sr=/#/g,Gc=/&/g,Jc=/\//g,Yc=/=/g,Qc=/\?/g,or=/\+/g,Xc=/%5B/g,Zc=/%5D/g,ir=/%5E/g,ea=/%60/g,rr=/%7B/g,ta=/%7C/g,lr=/%7D/g,na=/%20/g;function qs(e){return encodeURI(""+e).replace(ta,"|").replace(Xc,"[").replace(Zc,"]")}function sa(e){return qs(e).replace(rr,"{").replace(lr,"}").replace(ir,"^")}function ws(e){return qs(e).replace(or,"%2B").replace(na,"+").replace(sr,"%23").replace(Gc,"%26").replace(ea,"`").replace(rr,"{").replace(lr,"}").replace(ir,"^")}function oa(e){return ws(e).replace(Yc,"%3D")}function ia(e){return qs(e).replace(sr,"%23").replace(Qc,"%3F")}function ra(e){return e==null?"":ia(e).replace(Jc,"%2F")}function gn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const la=/\/$/,ca=e=>e.replace(la,"");function fs(e,t,n="/"){let o,s={},i="",l="";const r=t.indexOf("#");let c=t.indexOf("?");return r=0&&(c=-1),c>-1&&(o=t.slice(0,c),i=t.slice(c+1,r>-1?r:t.length),s=e(i)),r>-1&&(o=o||t.slice(0,r),l=t.slice(r,t.length)),o=da(o!=null?o:t,n),{fullPath:o+(i&&"?")+i+l,path:o,query:s,hash:gn(l)}}function aa(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Mo(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ua(e,t,n){const o=t.matched.length-1,s=n.matched.length-1;return o>-1&&o===s&&Wt(t.matched[o],n.matched[s])&&cr(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Wt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cr(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!fa(e[n],t[n]))return!1;return!0}function fa(e,t){return Ve(e)?Fo(e,t):Ve(t)?Fo(t,e):e===t}function Fo(e,t){return Ve(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function da(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),s=o[o.length-1];(s===".."||s===".")&&o.push("");let i=n.length-1,l,r;for(l=0;l1&&i--;else break;return n.slice(0,i).join("/")+"/"+o.slice(l).join("/")}const pt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var _n;(function(e){e.pop="pop",e.push="push"})(_n||(_n={}));var un;(function(e){e.back="back",e.forward="forward",e.unknown=""})(un||(un={}));function pa(e){if(!e)if(Dt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ca(e)}const ha=/^[^#]+#/;function ma(e,t){return e.replace(ha,"#")+t}function ga(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Zn=()=>({left:window.scrollX,top:window.scrollY});function _a(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=ga(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Io(e,t){return(history.state?history.state.position-t:-1)+e}const Cs=new Map;function va(e,t){Cs.set(e,t)}function ba(e){const t=Cs.get(e);return Cs.delete(e),t}let ya=()=>location.protocol+"//"+location.host;function ar(e,t){const{pathname:n,search:o,hash:s}=t,i=e.indexOf("#");if(i>-1){let r=s.includes(e.slice(i))?e.slice(i).length:1,c=s.slice(r);return c[0]!=="/"&&(c="/"+c),Mo(c,"")}return Mo(n,e)+o+s}function xa(e,t,n,o){let s=[],i=[],l=null;const r=({state:g})=>{const _=ar(e,location),A=n.value,O=t.value;let K=0;if(g){if(n.value=_,t.value=g,l&&l===A){l=null;return}K=O?g.position-O.position:0}else o(_);s.forEach($=>{$(n.value,A,{delta:K,type:_n.pop,direction:K?K>0?un.forward:un.back:un.unknown})})};function c(){l=n.value}function p(g){s.push(g);const _=()=>{const A=s.indexOf(g);A>-1&&s.splice(A,1)};return i.push(_),_}function f(){const{history:g}=window;!g.state||g.replaceState(G({},g.state,{scroll:Zn()}),"")}function h(){for(const g of i)g();i=[],window.removeEventListener("popstate",r),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",r),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:c,listen:p,destroy:h}}function Do(e,t,n,o=!1,s=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:s?Zn():null}}function Sa(e){const{history:t,location:n}=window,o={value:ar(e,n)},s={value:t.state};s.value||i(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(c,p,f){const h=e.indexOf("#"),g=h>-1?(n.host&&document.querySelector("base")?e:e.slice(h))+c:ya()+e+c;try{t[f?"replaceState":"pushState"](p,"",g),s.value=p}catch(_){console.error(_),n[f?"replace":"assign"](g)}}function l(c,p){const f=G({},t.state,Do(s.value.back,c,s.value.forward,!0),p,{position:s.value.position});i(c,f,!0),o.value=c}function r(c,p){const f=G({},s.value,t.state,{forward:c,scroll:Zn()});i(f.current,f,!0);const h=G({},Do(o.value,c,null),{position:f.position+1},p);i(c,h,!1),o.value=c}return{location:o,state:s,push:r,replace:l}}function wa(e){e=pa(e);const t=Sa(e),n=xa(e,t.state,t.location,t.replace);function o(i,l=!0){l||n.pauseListeners(),history.go(i)}const s=G({location:"",base:e,go:o,createHref:ma.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Ca(e){return typeof e=="string"||e&&typeof e=="object"}function ur(e){return typeof e=="string"||typeof e=="symbol"}const fr=Symbol("");var No;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(No||(No={}));function qt(e,t){return G(new Error,{type:e,[fr]:!0},t)}function et(e,t){return e instanceof Error&&fr in e&&(t==null||!!(e.type&t))}const $o="[^/]+?",Ea={sensitive:!1,strict:!1,start:!0,end:!0},Pa=/[.+*?^${}()[\]/\\]/g;function Ta(e,t){const n=G({},Ea,t),o=[];let s=n.start?"^":"";const i=[];for(const p of e){const f=p.length?[]:[90];n.strict&&!p.length&&(s+="/");for(let h=0;ht.length?t.length===1&&t[0]===40+40?1:-1:0}function dr(e,t){let n=0;const o=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Ra={type:0,value:""},Oa=/[a-zA-Z0-9_]/;function ka(e){if(!e)return[[]];if(e==="/")return[[Ra]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(_){throw new Error(`ERR (${n})/"${p}": ${_}`)}let n=0,o=n;const s=[];let i;function l(){i&&s.push(i),i=[]}let r=0,c,p="",f="";function h(){!p||(n===0?i.push({type:0,value:p}):n===1||n===2||n===3?(i.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:p,regexp:f,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function g(){p+=c}for(;r{l(L)}:an}function l(h){if(ur(h)){const g=o.get(h);g&&(o.delete(h),n.splice(n.indexOf(g),1),g.children.forEach(l),g.alias.forEach(l))}else{const g=n.indexOf(h);g>-1&&(n.splice(g,1),h.record.name&&o.delete(h.record.name),h.children.forEach(l),h.alias.forEach(l))}}function r(){return n}function c(h){const g=Na(h,n);n.splice(g,0,h),h.record.name&&!Ho(h)&&o.set(h.record.name,h)}function p(h,g){let _,A={},O,K;if("name"in h&&h.name){if(_=o.get(h.name),!_)throw qt(1,{location:h});K=_.record.name,A=G(Lo(g.params,_.keys.filter(L=>!L.optional).concat(_.parent?_.parent.keys.filter(L=>L.optional):[]).map(L=>L.name)),h.params&&Lo(h.params,_.keys.map(L=>L.name))),O=_.stringify(A)}else if(h.path!=null)O=h.path,_=n.find(L=>L.re.test(O)),_&&(A=_.parse(O),K=_.record.name);else{if(_=g.name?o.get(g.name):n.find(L=>L.re.test(g.path)),!_)throw qt(1,{location:h,currentLocation:g});K=_.record.name,A=G({},g.params,h.params),O=_.stringify(A)}const $=[];let k=_;for(;k;)$.unshift(k.record),k=k.parent;return{name:K,path:O,params:A,matched:$,meta:Da($)}}e.forEach(h=>i(h));function f(){n.length=0,o.clear()}return{addRoute:i,resolve:p,removeRoute:l,clearRoutes:f,getRoutes:r,getRecordMatcher:s}}function Lo(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function Vo(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ia(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ia(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Ho(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Da(e){return e.reduce((t,n)=>G(t,n.meta),{})}function Bo(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function Na(e,t){let n=0,o=t.length;for(;n!==o;){const i=n+o>>1;dr(e,t[i])<0?o=i:n=i+1}const s=$a(e);return s&&(o=t.lastIndexOf(s,o-1)),o}function $a(e){let t=e;for(;t=t.parent;)if(pr(t)&&dr(e,t)===0)return t}function pr({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ja(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;si&&ws(i)):[o&&ws(o)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function La(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=Ve(o)?o.map(s=>s==null?null:""+s):o==null?o:""+o)}return t}const Va=Symbol(""),Ko=Symbol(""),zs=Symbol(""),hr=Symbol(""),Es=Symbol("");function Zt(){let e=[];function t(o){return e.push(o),()=>{const s=e.indexOf(o);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function gt(e,t,n,o,s,i=l=>l()){const l=o&&(o.enterCallbacks[s]=o.enterCallbacks[s]||[]);return()=>new Promise((r,c)=>{const p=g=>{g===!1?c(qt(4,{from:n,to:t})):g instanceof Error?c(g):Ca(g)?c(qt(2,{from:t,to:g})):(l&&o.enterCallbacks[s]===l&&typeof g=="function"&&l.push(g),r())},f=i(()=>e.call(o&&o.instances[s],t,n,p));let h=Promise.resolve(f);e.length<3&&(h=h.then(p)),h.catch(g=>c(g))})}function ds(e,t,n,o,s=i=>i()){const i=[];for(const l of e)for(const r in l.components){let c=l.components[r];if(!(t!=="beforeRouteEnter"&&!l.instances[r]))if(nr(c)){const f=(c.__vccOpts||c)[t];f&&i.push(gt(f,n,o,l,r,s))}else{let p=c();i.push(()=>p.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${r}" at "${l.path}"`);const h=zc(f)?f.default:f;l.mods[r]=f,l.components[r]=h;const _=(h.__vccOpts||h)[t];return _&>(_,n,o,l,r,s)()}))}}return i}function Wo(e){const t=rt(zs),n=rt(hr),o=Ne(()=>{const c=Lt(e.to);return t.resolve(c)}),s=Ne(()=>{const{matched:c}=o.value,{length:p}=c,f=c[p-1],h=n.matched;if(!f||!h.length)return-1;const g=h.findIndex(Wt.bind(null,f));if(g>-1)return g;const _=qo(c[p-2]);return p>1&&qo(f)===_&&h[h.length-1].path!==_?h.findIndex(Wt.bind(null,c[p-2])):g}),i=Ne(()=>s.value>-1&&Wa(n.params,o.value.params)),l=Ne(()=>s.value>-1&&s.value===n.matched.length-1&&cr(n.params,o.value.params));function r(c={}){if(Ka(c)){const p=t[Lt(e.replace)?"replace":"push"](Lt(e.to)).catch(an);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>p),p}return Promise.resolve()}return{route:o,href:Ne(()=>o.value.href),isActive:i,isExactActive:l,navigate:r}}function Ha(e){return e.length===1?e[0]:e}const Ba=Pi({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Wo,setup(e,{slots:t}){const n=zn(Wo(e)),{options:o}=rt(zs),s=Ne(()=>({[zo(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[zo(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&Ha(t.default(n));return e.custom?i:Xi("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),Ua=Ba;function Ka(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Wa(e,t){for(const n in t){const o=t[n],s=e[n];if(typeof o=="string"){if(o!==s)return!1}else if(!Ve(s)||s.length!==o.length||o.some((i,l)=>i!==s[l]))return!1}return!0}function qo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const zo=(e,t,n)=>e!=null?e:t!=null?t:n,qa=Pi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=rt(Es),s=Ne(()=>e.route||o.value),i=rt(Ko,0),l=Ne(()=>{let p=Lt(i);const{matched:f}=s.value;let h;for(;(h=f[p])&&!h.components;)p++;return p}),r=Ne(()=>s.value.matched[l.value]);Tn(Ko,Ne(()=>l.value+1)),Tn(Va,r),Tn(Es,s);const c=Jr();return An(()=>[c.value,r.value,e.name],([p,f,h],[g,_,A])=>{f&&(f.instances[h]=p,_&&_!==f&&p&&p===g&&(f.leaveGuards.size||(f.leaveGuards=_.leaveGuards),f.updateGuards.size||(f.updateGuards=_.updateGuards))),p&&f&&(!_||!Wt(f,_)||!g)&&(f.enterCallbacks[h]||[]).forEach(O=>O(p))},{flush:"post"}),()=>{const p=s.value,f=e.name,h=r.value,g=h&&h.components[f];if(!g)return Go(n.default,{Component:g,route:p});const _=h.props[f],A=_?_===!0?p.params:typeof _=="function"?_(p):_:null,K=Xi(g,G({},A,t,{onVnodeUnmounted:$=>{$.component.isUnmounted&&(h.instances[f]=null)},ref:c}));return Go(n.default,{Component:K,route:p})||K}}});function Go(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const za=qa;function Ga(e){const t=Fa(e.routes,e),n=e.parseQuery||ja,o=e.stringifyQuery||Uo,s=e.history,i=Zt(),l=Zt(),r=Zt(),c=Yr(pt);let p=pt;Dt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=us.bind(null,b=>""+b),h=us.bind(null,ra),g=us.bind(null,gn);function _(b,R){let P,M;return ur(b)?(P=t.getRecordMatcher(b),M=R):M=b,t.addRoute(M,P)}function A(b){const R=t.getRecordMatcher(b);R&&t.removeRoute(R)}function O(){return t.getRoutes().map(b=>b.record)}function K(b){return!!t.getRecordMatcher(b)}function $(b,R){if(R=G({},R||c.value),typeof b=="string"){const d=fs(n,b,R.path),m=t.resolve({path:d.path},R),y=s.createHref(d.fullPath);return G(d,m,{params:g(m.params),hash:gn(d.hash),redirectedFrom:void 0,href:y})}let P;if(b.path!=null)P=G({},b,{path:fs(n,b.path,R.path).path});else{const d=G({},b.params);for(const m in d)d[m]==null&&delete d[m];P=G({},b,{params:h(d)}),R.params=h(R.params)}const M=t.resolve(P,R),z=b.hash||"";M.params=f(g(M.params));const ie=aa(o,G({},b,{hash:sa(z),path:M.path})),a=s.createHref(ie);return G({fullPath:ie,hash:z,query:o===Uo?La(b.query):b.query||{}},M,{redirectedFrom:void 0,href:a})}function k(b){return typeof b=="string"?fs(n,b,c.value.path):G({},b)}function L(b,R){if(p!==b)return qt(8,{from:R,to:b})}function I(b){return re(b)}function Z(b){return I(G(k(b),{replace:!0}))}function de(b){const R=b.matched[b.matched.length-1];if(R&&R.redirect){const{redirect:P}=R;let M=typeof P=="function"?P(b):P;return typeof M=="string"&&(M=M.includes("?")||M.includes("#")?M=k(M):{path:M},M.params={}),G({query:b.query,hash:b.hash,params:M.path!=null?{}:b.params},M)}}function re(b,R){const P=p=$(b),M=c.value,z=b.state,ie=b.force,a=b.replace===!0,d=de(P);if(d)return re(G(k(d),{state:typeof d=="object"?G({},z,d.state):z,force:ie,replace:a}),R||P);const m=P;m.redirectedFrom=R;let y;return!ie&&ua(o,M,P)&&(y=qt(16,{to:m,from:M}),Ke(M,M,!0,!1)),(y?Promise.resolve(y):Be(m,M)).catch(v=>et(v)?et(v,2)?v:dt(v):q(v,m,M)).then(v=>{if(v){if(et(v,2))return re(G({replace:a},k(v.to),{state:typeof v.to=="object"?G({},z,v.to.state):z,force:ie}),R||m)}else v=St(m,M,!0,a,z);return ft(m,M,v),v})}function He(b,R){const P=L(b,R);return P?Promise.reject(P):Promise.resolve()}function ut(b){const R=Mt.values().next().value;return R&&typeof R.runWithContext=="function"?R.runWithContext(b):b()}function Be(b,R){let P;const[M,z,ie]=Ja(b,R);P=ds(M.reverse(),"beforeRouteLeave",b,R);for(const d of M)d.leaveGuards.forEach(m=>{P.push(gt(m,b,R))});const a=He.bind(null,b,R);return P.push(a),ke(P).then(()=>{P=[];for(const d of i.list())P.push(gt(d,b,R));return P.push(a),ke(P)}).then(()=>{P=ds(z,"beforeRouteUpdate",b,R);for(const d of z)d.updateGuards.forEach(m=>{P.push(gt(m,b,R))});return P.push(a),ke(P)}).then(()=>{P=[];for(const d of ie)if(d.beforeEnter)if(Ve(d.beforeEnter))for(const m of d.beforeEnter)P.push(gt(m,b,R));else P.push(gt(d.beforeEnter,b,R));return P.push(a),ke(P)}).then(()=>(b.matched.forEach(d=>d.enterCallbacks={}),P=ds(ie,"beforeRouteEnter",b,R,ut),P.push(a),ke(P))).then(()=>{P=[];for(const d of l.list())P.push(gt(d,b,R));return P.push(a),ke(P)}).catch(d=>et(d,8)?d:Promise.reject(d))}function ft(b,R,P){r.list().forEach(M=>ut(()=>M(b,R,P)))}function St(b,R,P,M,z){const ie=L(b,R);if(ie)return ie;const a=R===pt,d=Dt?history.state:{};P&&(M||a?s.replace(b.fullPath,G({scroll:a&&d&&d.scroll},z)):s.push(b.fullPath,z)),c.value=b,Ke(b,R,P,a),dt()}let Ue;function Gt(){Ue||(Ue=s.listen((b,R,P)=>{if(!Sn.listening)return;const M=$(b),z=de(M);if(z){re(G(z,{replace:!0,force:!0}),M).catch(an);return}p=M;const ie=c.value;Dt&&va(Io(ie.fullPath,P.delta),Zn()),Be(M,ie).catch(a=>et(a,12)?a:et(a,2)?(re(G(k(a.to),{force:!0}),M).then(d=>{et(d,20)&&!P.delta&&P.type===_n.pop&&s.go(-1,!1)}).catch(an),Promise.reject()):(P.delta&&s.go(-P.delta,!1),q(a,M,ie))).then(a=>{a=a||St(M,ie,!1),a&&(P.delta&&!et(a,8)?s.go(-P.delta,!1):P.type===_n.pop&&et(a,20)&&s.go(-1,!1)),ft(M,ie,a)}).catch(an)}))}let Ot=Zt(),ae=Zt(),X;function q(b,R,P){dt(b);const M=ae.list();return M.length?M.forEach(z=>z(b,R,P)):console.error(b),Promise.reject(b)}function Xe(){return X&&c.value!==pt?Promise.resolve():new Promise((b,R)=>{Ot.add([b,R])})}function dt(b){return X||(X=!b,Gt(),Ot.list().forEach(([R,P])=>b?P(b):R()),Ot.reset()),b}function Ke(b,R,P,M){const{scrollBehavior:z}=e;if(!Dt||!z)return Promise.resolve();const ie=!P&&ba(Io(b.fullPath,0))||(M||!P)&&history.state&&history.state.scroll||null;return Ls().then(()=>z(b,R,ie)).then(a=>a&&_a(a)).catch(a=>q(a,b,R))}const Se=b=>s.go(b);let kt;const Mt=new Set,Sn={currentRoute:c,listening:!0,addRoute:_,removeRoute:A,clearRoutes:t.clearRoutes,hasRoute:K,getRoutes:O,resolve:$,options:e,push:I,replace:Z,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:i.add,beforeResolve:l.add,afterEach:r.add,onError:ae.add,isReady:Xe,install(b){const R=this;b.component("RouterLink",Ua),b.component("RouterView",za),b.config.globalProperties.$router=R,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Lt(c)}),Dt&&!kt&&c.value===pt&&(kt=!0,I(s.location).catch(z=>{}));const P={};for(const z in pt)Object.defineProperty(P,z,{get:()=>c.value[z],enumerable:!0});b.provide(zs,R),b.provide(hr,_i(P)),b.provide(Es,c);const M=b.unmount;Mt.add(b),b.unmount=function(){Mt.delete(b),Mt.size<1&&(p=pt,Ue&&Ue(),Ue=null,c.value=pt,kt=!1,X=!1),M()}}};function ke(b){return b.reduce((R,P)=>R.then(()=>ut(P)),Promise.resolve())}return Sn}function Ja(e,t){const n=[],o=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let l=0;lWt(p,r))?o.push(r):n.push(r));const c=e.matched[l];c&&(t.matched.find(p=>Wt(p,c))||s.push(c))}return[n,o,s]}const Ya={name:"Login",data(){return{loginForm:{username:"",password:""},loading:!1,error:"",success:""}},methods:{async handleLogin(){this.loading=!0,this.error="",this.success="";try{const e=await fetch("/api/v1/user/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(this.loginForm)}),t=await e.json();e.ok&&t.code===0?(this.success=t.message,localStorage.setItem("authToken",t.data.token),localStorage.setItem("userId",t.data.id),localStorage.setItem("username",t.data.username),setTimeout(()=>{this.$router.push("/dashboard")},500)):this.error=t.message||"\u767B\u5F55\u5931\u8D25"}catch{this.error="\u7F51\u7EDC\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"}finally{this.loading=!1}}}},Qa={class:"login-container"},Xa={class:"form-group"},Za={class:"form-group"},eu=["disabled"],tu={key:0,class:"error-message"},nu={key:1,class:"success-message"};function su(e,t,n,o,s,i){return N(),j("div",Qa,[t[5]||(t[5]=u("div",{class:"logo"},"\u{1F437}",-1)),t[6]||(t[6]=u("h1",null,"\u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),t[7]||(t[7]=u("p",{class:"subtitle"},"\u8BF7\u767B\u5F55\u60A8\u7684\u8D26\u6237",-1)),u("form",{onSubmit:t[2]||(t[2]=Ge((...l)=>i.handleLogin&&i.handleLogin(...l),["prevent"]))},[u("div",Xa,[t[3]||(t[3]=u("label",{for:"username"},"\u7528\u6237\u540D",-1)),ue(u("input",{type:"text",id:"username","onUpdate:modelValue":t[0]||(t[0]=l=>s.loginForm.username=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u7528\u6237\u540D"},null,512),[[$e,s.loginForm.username]])]),u("div",Za,[t[4]||(t[4]=u("label",{for:"password"},"\u5BC6\u7801",-1)),ue(u("input",{type:"password",id:"password","onUpdate:modelValue":t[1]||(t[1]=l=>s.loginForm.password=l),required:"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801"},null,512),[[$e,s.loginForm.password]])]),u("button",{type:"submit",disabled:s.loading},F(s.loading?"\u767B\u5F55\u4E2D...":"\u767B\u5F55"),9,eu)],32),s.error?(N(),j("div",tu,F(s.error),1)):le("",!0),s.success?(N(),j("div",nu,F(s.success),1)):le("",!0)])}const ou=Rt(Ya,[["render",su],["__scopeId","data-v-bb5c78dc"]]);const iu={name:"Dashboard",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458"}},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},controlDevice(e,t){alert(`\u6B63\u5728${t==="on"?"\u5F00\u542F":"\u5173\u95ED"}${e==="fan"?"\u98CE\u673A":"\u6C34\u5E18"}`)}}},ru={class:"header"},lu={class:"user-info"},cu={class:"nav"},au={class:"container"},uu={class:"device-control"},fu={class:"control-grid"},du={class:"control-item"},pu={class:"control-buttons"},hu={class:"control-item"},mu={class:"control-buttons"};function gu(e,t,n,o,s,i){const l=Bt("router-link");return N(),j("div",null,[u("div",ru,[t[5]||(t[5]=u("h1",null,"\u{1F437} \u732A\u573A\u7BA1\u7406\u7CFB\u7EDF",-1)),u("div",lu,[u("span",null,F(s.username),1),u("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA\u767B\u5F55")])]),u("div",cu,[u("ul",null,[u("li",null,[se(l,{to:"/dashboard",class:"active"},{default:Ee(()=>[...t[6]||(t[6]=[me("\u63A7\u5236\u53F0",-1)])]),_:1})]),u("li",null,[se(l,{to:"/device"},{default:Ee(()=>[...t[7]||(t[7]=[me("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),u("li",null,[se(l,{to:"/feed/plan"},{default:Ee(()=>[...t[8]||(t[8]=[me("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),u("div",au,[t[12]||(t[12]=u("div",{class:"dashboard-grid"},[u("div",{class:"card"},[u("h3",null,"\u{1F4C8} \u73AF\u5883\u76D1\u63A7"),u("p",null,"\u5B9E\u65F6\u76D1\u63A7\u732A\u820D\u73AF\u5883\u53C2\u6570\uFF0C\u5305\u62EC\u6E29\u5EA6\u3001\u6E7F\u5EA6\u3001\u6C28\u6C14\u6D53\u5EA6\u7B49\u5173\u952E\u6307\u6807\u3002")]),u("div",{class:"card"},[u("h3",null,"\u{1F514} \u544A\u8B66\u4FE1\u606F"),u("p",null,"\u67E5\u770B\u7CFB\u7EDF\u544A\u8B66\u548C\u5F02\u5E38\u60C5\u51B5\uFF0C\u53CA\u65F6\u5904\u7406\u5404\u79CD\u8BBE\u5907\u6545\u969C\u548C\u73AF\u5883\u5F02\u5E38\u3002")]),u("div",{class:"card"},[u("h3",null,"\u{1F4CA} \u6570\u636E\u5206\u6790"),u("p",null,"\u5206\u6790\u5386\u53F2\u6570\u636E\uFF0C\u751F\u6210\u8D8B\u52BF\u56FE\u8868\uFF0C\u4E3A\u517B\u6B96\u51B3\u7B56\u63D0\u4F9B\u6570\u636E\u652F\u6301\u3002")])],-1)),u("div",uu,[t[11]||(t[11]=u("h3",null,"\u2699\uFE0F \u8BBE\u5907\u63A7\u5236",-1)),u("div",fu,[u("div",du,[t[9]||(t[9]=u("h4",null,"\u98CE\u673A\u63A7\u5236",-1)),u("div",pu,[u("button",{class:"control-btn on-btn",onClick:t[1]||(t[1]=r=>i.controlDevice("fan","on"))},"\u5F00\u542F"),u("button",{class:"control-btn off-btn",onClick:t[2]||(t[2]=r=>i.controlDevice("fan","off"))},"\u5173\u95ED")])]),u("div",hu,[t[10]||(t[10]=u("h4",null,"\u6C34\u5E18\u63A7\u5236",-1)),u("div",mu,[u("button",{class:"control-btn on-btn",onClick:t[3]||(t[3]=r=>i.controlDevice("water_curtain","on"))},"\u5F00\u542F"),u("button",{class:"control-btn off-btn",onClick:t[4]||(t[4]=r=>i.controlDevice("water_curtain","off"))},"\u5173\u95ED")])])])])])])}const _u=Rt(iu,[["render",gu],["__scopeId","data-v-904f2d71"]]);const vu={name:"Device",data(){return{username:localStorage.getItem("username")||"\u7BA1\u7406\u5458",devices:[],showModal:!1,editingDevice:null,deviceForm:{id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},expandedNodes:new Set}},computed:{relayDevices(){return this.devices.filter(e=>e.type==="relay")}},mounted(){this.loadDevices()},methods:{logout(){localStorage.removeItem("authToken"),localStorage.removeItem("userId"),localStorage.removeItem("username"),this.$router.push("/")},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)},getControllerDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="pig_pen_controller"||t.type==="feed_mill_controller"))},getLeafDevices(e){return this.devices.filter(t=>t.parent_id===e&&(t.type==="fan"||t.type==="water_curtain"))},getDeviceTypeText(e){return{relay:"\u4E2D\u7EE7",pig_pen_controller:"\u732A\u820D\u4E3B\u63A7",feed_mill_controller:"\u505A\u6599\u8F66\u95F4\u4E3B\u63A7",fan:"\u98CE\u673A",water_curtain:"\u6C34\u5E18"}[e]||e},getParentDevices(e){return e==="pig_pen_controller"||e==="feed_mill_controller"?this.devices.filter(t=>t.type==="relay"):e==="fan"||e==="water_curtain"?this.devices.filter(t=>t.type==="pig_pen_controller"||t.type==="feed_mill_controller"):[]},getParentDevicesWithDisplayName(e){const t=this.getParentDevices(e);return e==="pig_pen_controller"||e==="feed_mill_controller"?t.map(n=>({...n,display_name:n.name})):e==="fan"||e==="water_curtain"?t.map(n=>{const o=this.devices.find(i=>i.id===n.parent_id),s=o?o.name:"\u672A\u77E5\u4E2D\u7EE7";return{...n,display_name:`${s} - ${n.name}`}}):[]},async loadDevices(){try{const e=await fetch("/api/v1/device/list",{headers:{Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?(this.devices=t.data.devices,this.expandAllNodes()):console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u8BBE\u5907\u5217\u8868\u5931\u8D25:",e)}},expandAllNodes(){this.expandedNodes.clear(),this.relayDevices.forEach(e=>{this.expandedNodes.add(e.id),this.getControllerDevices(e.id).forEach(n=>{this.expandedNodes.add(n.id)})})},openAddDeviceModal(){this.editingDevice=null,this.deviceForm={id:null,name:"",type:"",parent_id:null,address:null,bus_number:null,device_address:null},this.showModal=!0},editDevice(e){if(this.editingDevice=e,this.deviceForm={...e},(e.type==="fan"||e.type==="water_curtain")&&e.address){const t=e.address.split(":");t.length===2?(this.deviceForm.bus_number=parseInt(t[0]),this.deviceForm.device_address=t[1]):this.deviceForm.device_address=e.address}this.showModal=!0},initializeDeviceForm(){return{id:null,name:"",type:"",parent_id:null,address:null}},closeDeviceModal(){this.showModal=!1},async saveDevice(){if(!this.deviceForm.name||!this.deviceForm.type){alert("\u8BF7\u586B\u5199\u5FC5\u586B\u5B57\u6BB5");return}if(this.deviceForm.type!=="relay"&&!this.deviceForm.parent_id){alert("\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907");return}try{let e,t;const n={name:this.deviceForm.name,type:this.deviceForm.type,parent_id:this.deviceForm.parent_id,address:this.deviceForm.address,bus_number:this.deviceForm.bus_number,device_address:this.deviceForm.device_address};this.editingDevice?(e="/api/v1/device/update",t="POST",n.id=this.deviceForm.id):(e="/api/v1/device/create",t="POST");const o=await fetch(e,{method:t,headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify(n)}),s=await o.json();o.ok&&s.code===0?(await this.loadDevices(),this.closeDeviceModal()):alert("\u4FDD\u5B58\u5931\u8D25: "+s.message)}catch(e){console.error("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25:",e),alert("\u4FDD\u5B58\u8BBE\u5907\u5931\u8D25: "+e.message)}},async deleteDevice(e){if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u8BBE\u5907\u5417\uFF1F"))try{const t=await fetch("/api/v1/device/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),n=await t.json();t.ok&&n.code===0?await this.loadDevices():alert("\u5220\u9664\u5931\u8D25: "+n.message)}catch(t){console.error("\u5220\u9664\u8BBE\u5907\u5931\u8D25:",t),alert("\u5220\u9664\u8BBE\u5907\u5931\u8D25: "+t.message)}},toggleParentField(){this.deviceForm.type==="relay"&&(this.deviceForm.parent_id=null)},toggleNode(e){this.expandedNodes.has(e)?this.expandedNodes.delete(e):this.expandedNodes.add(e)}}},bu={class:"device-management"},yu={class:"header"},xu={class:"user-info"},Su={class:"nav"},wu={class:"main-content"},Cu={class:"toolbar"},Eu={class:"device-tree"},Pu={key:0,class:"no-devices"},Tu={key:1},Au=["onClick"],Ru={class:"node-info"},Ou={class:"toggle-icon"},ku={class:"node-title"},Mu={class:"node-type relay-type"},Fu={key:0,class:"node-address"},Iu={class:"node-actions"},Du=["onClick"],Nu=["onClick"],$u={class:"children-container"},ju=["onClick"],Lu={class:"node-info"},Vu={class:"toggle-icon"},Hu={class:"node-title"},Bu={class:"node-type controller-type"},Uu={key:0,class:"node-address"},Ku={class:"node-actions"},Wu=["onClick"],qu=["onClick"],zu={class:"children-container"},Gu={class:"node-header"},Ju={class:"node-info"},Yu={class:"node-title"},Qu={class:"node-type device-type"},Xu={key:0,class:"node-address"},Zu={class:"node-actions"},ef=["onClick"],tf=["onClick"],nf={key:0,class:"modal"},sf={class:"modal-content"},of={class:"modal-header"},rf={class:"modal-body"},lf={class:"form-group"},cf={class:"form-group"},af={key:0,class:"form-group"},uf={key:1,class:"form-group"},ff={key:2,class:"form-group"},df={key:3,class:"form-group"},pf=["value"],hf={class:"modal-footer"};function mf(e,t,n,o,s,i){const l=Bt("router-link");return N(),j("div",bu,[u("header",yu,[t[14]||(t[14]=u("h1",null,"\u8BBE\u5907\u7BA1\u7406",-1)),u("div",xu,[u("span",null,"\u6B22\u8FCE, "+F(s.username),1),u("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),u("nav",Su,[u("ul",null,[u("li",null,[se(l,{to:"/dashboard"},{default:Ee(()=>[...t[15]||(t[15]=[me("\u63A7\u5236\u53F0",-1)])]),_:1})]),u("li",null,[se(l,{to:"/device",class:"active"},{default:Ee(()=>[...t[16]||(t[16]=[me("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),u("li",null,[se(l,{to:"/feed/plan"},{default:Ee(()=>[...t[17]||(t[17]=[me("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),u("main",wu,[u("div",Cu,[u("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...r)=>i.openAddDeviceModal&&i.openAddDeviceModal(...r))},"\u6DFB\u52A0\u8BBE\u5907")]),u("div",Eu,[s.devices.length===0?(N(),j("div",Pu," \u6682\u65E0\u8BBE\u5907\u6570\u636E ")):(N(),j("div",Tu,[(N(!0),j(he,null,_t(i.relayDevices,r=>(N(),j("div",{key:r.id,class:"tree-node relay-node"},[u("div",{class:"node-header",onClick:c=>i.toggleNode(r.id)},[u("div",Ru,[u("span",Ou,F(s.expandedNodes.has(r.id)?"\u25BC":"\u25BA"),1),u("span",ku,F(r.name),1),u("span",Mu,F(i.getDeviceTypeText(r.type)),1),r.address?(N(),j("span",Fu,"["+F(r.address)+"]",1)):le("",!0),u("span",{class:it(["node-status",{"status-active":r.active,"status-inactive":!r.active}])},F(r.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),u("div",Iu,[u("button",{class:"action-btn edit-btn",onClick:Ge(c=>i.editDevice(r),["stop"])},"\u7F16\u8F91",8,Du),u("button",{class:"action-btn delete-btn",onClick:Ge(c=>i.deleteDevice(r.id),["stop"])},"\u5220\u9664",8,Nu)])],8,Au),ue(u("div",$u,[(N(!0),j(he,null,_t(i.getControllerDevices(r.id),c=>(N(),j("div",{key:c.id,class:"tree-node controller-node"},[u("div",{class:"node-header",onClick:p=>i.toggleNode(c.id)},[u("div",Lu,[u("span",Vu,F(s.expandedNodes.has(c.id)?"\u25BC":"\u25BA"),1),u("span",Hu,F(c.name),1),u("span",Bu,F(i.getDeviceTypeText(c.type)),1),c.address?(N(),j("span",Uu,"["+F(c.address)+"]",1)):le("",!0),u("span",{class:it(["node-status",{"status-active":c.active,"status-inactive":!c.active}])},F(c.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),u("div",Ku,[u("button",{class:"action-btn edit-btn",onClick:Ge(p=>i.editDevice(c),["stop"])},"\u7F16\u8F91",8,Wu),u("button",{class:"action-btn delete-btn",onClick:Ge(p=>i.deleteDevice(c.id),["stop"])},"\u5220\u9664",8,qu)])],8,ju),ue(u("div",zu,[(N(!0),j(he,null,_t(i.getLeafDevices(c.id),p=>(N(),j("div",{key:p.id,class:"tree-node device-node"},[u("div",Gu,[u("div",Ju,[u("span",Yu,F(p.name),1),u("span",Qu,F(i.getDeviceTypeText(p.type)),1),p.address?(N(),j("span",Xu,"["+F(p.address)+"]",1)):le("",!0),u("span",{class:it(["node-status",{"status-active":p.active,"status-inactive":!p.active}])},F(p.active?"\u5728\u7EBF":"\u79BB\u7EBF"),3)]),u("div",Zu,[u("button",{class:"action-btn edit-btn",onClick:Ge(f=>i.editDevice(p),["stop"])},"\u7F16\u8F91",8,ef),u("button",{class:"action-btn delete-btn",onClick:Ge(f=>i.deleteDevice(p.id),["stop"])},"\u5220\u9664",8,tf)])])]))),128))],512),[[_o,s.expandedNodes.has(c.id)]])]))),128))],512),[[_o,s.expandedNodes.has(r.id)]])]))),128))]))])]),s.showModal?(N(),j("div",nf,[u("div",sf,[u("div",of,[u("h3",null,F(s.editingDevice?"\u7F16\u8F91\u8BBE\u5907":"\u6DFB\u52A0\u8BBE\u5907"),1),u("button",{class:"close-btn",onClick:t[2]||(t[2]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\xD7")]),u("div",rf,[u("form",{onSubmit:t[11]||(t[11]=Ge((...r)=>i.saveDevice&&i.saveDevice(...r),["prevent"]))},[ue(u("input",{type:"hidden","onUpdate:modelValue":t[3]||(t[3]=r=>s.deviceForm.id=r)},null,512),[[$e,s.deviceForm.id]]),u("div",lf,[t[18]||(t[18]=u("label",{for:"deviceName"},"\u8BBE\u5907\u540D\u79F0",-1)),ue(u("input",{type:"text",id:"deviceName","onUpdate:modelValue":t[4]||(t[4]=r=>s.deviceForm.name=r),required:""},null,512),[[$e,s.deviceForm.name]])]),u("div",cf,[t[20]||(t[20]=u("label",{for:"deviceType"},"\u8BBE\u5907\u7C7B\u578B",-1)),ue(u("select",{id:"deviceType","onUpdate:modelValue":t[5]||(t[5]=r=>s.deviceForm.type=r),required:"",onChange:t[6]||(t[6]=(...r)=>i.toggleParentField&&i.toggleParentField(...r))},[...t[19]||(t[19]=[sc('',6)])],544),[[Ro,s.deviceForm.type]])]),(s.deviceForm.type==="fan"||s.deviceForm.type==="water_curtain")&&s.deviceForm.type!==""?(N(),j("div",af,[t[21]||(t[21]=u("label",{for:"busNumber"},"485\u603B\u7EBF\u53F7",-1)),ue(u("input",{type:"number",id:"busNumber","onUpdate:modelValue":t[7]||(t[7]=r=>s.deviceForm.bus_number=r),placeholder:"\u8BF7\u8F93\u5165485\u603B\u7EBF\u53F7"},null,512),[[$e,s.deviceForm.bus_number,void 0,{number:!0}]])])):le("",!0),(s.deviceForm.type==="fan"||s.deviceForm.type==="water_curtain")&&s.deviceForm.type!==""?(N(),j("div",uf,[t[22]||(t[22]=u("label",{for:"device485Address"},"485\u8BBE\u5907\u5730\u5740",-1)),ue(u("input",{type:"text",id:"device485Address","onUpdate:modelValue":t[8]||(t[8]=r=>s.deviceForm.device_address=r),placeholder:"\u8BF7\u8F93\u5165485\u8BBE\u5907\u5730\u5740"},null,512),[[$e,s.deviceForm.device_address]])])):le("",!0),s.deviceForm.type!=="relay"&&s.deviceForm.type!==""&&s.deviceForm.type!=="fan"&&s.deviceForm.type!=="water_curtain"?(N(),j("div",ff,[t[23]||(t[23]=u("label",{for:"deviceAddress"},"\u8BBE\u5907\u5730\u5740",-1)),ue(u("input",{type:"text",id:"deviceAddress","onUpdate:modelValue":t[9]||(t[9]=r=>s.deviceForm.address=r),placeholder:"\u8BF7\u8F93\u5165\u8BBE\u5907\u5730\u5740"},null,512),[[$e,s.deviceForm.address]])])):le("",!0),s.deviceForm.type!=="relay"&&s.deviceForm.type!==""?(N(),j("div",df,[t[25]||(t[25]=u("label",{for:"parentId"},"\u4E0A\u7EA7\u8BBE\u5907",-1)),ue(u("select",{id:"parentId","onUpdate:modelValue":t[10]||(t[10]=r=>s.deviceForm.parent_id=r)},[t[24]||(t[24]=u("option",{value:""},"\u8BF7\u9009\u62E9\u4E0A\u7EA7\u8BBE\u5907",-1)),(N(!0),j(he,null,_t(i.getParentDevicesWithDisplayName(s.deviceForm.type),r=>(N(),j("option",{key:r.id,value:r.id},F(r.display_name),9,pf))),128))],512),[[Ro,s.deviceForm.parent_id]])])):le("",!0)],32)]),u("div",hf,[u("button",{class:"btn btn-secondary",onClick:t[12]||(t[12]=(...r)=>i.closeDeviceModal&&i.closeDeviceModal(...r))},"\u53D6\u6D88"),u("button",{class:"btn btn-primary",onClick:t[13]||(t[13]=(...r)=>i.saveDevice&&i.saveDevice(...r))},"\u4FDD\u5B58")])])])):le("",!0)])}const gf=Rt(vu,[["render",mf],["__scopeId","data-v-a2f9bd42"]]);const _f={name:"FeedPlanForm",props:{initialData:{type:Object,default:()=>({name:"",description:"",type:"manual",enabled:!0,schedule_cron:"",execution_limit:0})},isEditMode:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},data(){return{form:{...this.initialData},isSubmitting:!1}},watch:{initialData:{handler(e){this.form={...e}},deep:!0}},methods:{async handleSubmit(){if(!(this.isSubmitting||this.loading)){this.isSubmitting=!0;try{if(!this.form.name.trim()){alert("\u8BF7\u8F93\u5165\u8BA1\u5212\u540D\u79F0");return}if(this.form.type==="auto"&&this.form.schedule_cron&&!this.isValidCron(this.form.schedule_cron)){alert("\u8BF7\u8F93\u5165\u6709\u6548\u7684Cron\u8868\u8FBE\u5F0F");return}this.$emit("submit",{...this.form})}finally{this.$nextTick(()=>{this.isSubmitting=!1})}}},isValidCron(e){return typeof e=="string"&&e.trim().length>0}}},vf={class:"feed-plan-form"},bf={class:"form-header"},yf={class:"form-group"},xf=["disabled"],Sf={class:"form-group"},wf=["disabled"],Cf={class:"form-group"},Ef={class:"radio-group"},Pf={class:"radio-item"},Tf=["disabled"],Af={class:"radio-item"},Rf=["disabled"],Of={class:"form-group"},kf=["disabled"],Mf={key:0,class:"form-group"},Ff=["disabled"],If={class:"form-group"},Df=["disabled"],Nf={class:"form-actions"},$f=["disabled"],jf=["disabled"];function Lf(e,t,n,o,s,i){return N(),j("div",vf,[u("div",bf,[u("h2",null,F(n.isEditMode?"\u7F16\u8F91\u9972\u5582\u8BA1\u5212":"\u65B0\u5EFA\u9972\u5582\u8BA1\u5212"),1)]),u("form",{onSubmit:t[8]||(t[8]=Ge((...l)=>i.handleSubmit&&i.handleSubmit(...l),["prevent"]))},[u("div",yf,[t[9]||(t[9]=u("label",{for:"name"},"\u8BA1\u5212\u540D\u79F0 *",-1)),ue(u("input",{type:"text",id:"name","onUpdate:modelValue":t[0]||(t[0]=l=>s.form.name=l),required:"",disabled:n.loading},null,8,xf),[[$e,s.form.name]])]),u("div",Sf,[t[10]||(t[10]=u("label",{for:"description"},"\u8BA1\u5212\u63CF\u8FF0",-1)),ue(u("textarea",{id:"description","onUpdate:modelValue":t[1]||(t[1]=l=>s.form.description=l),rows:"3",disabled:n.loading},null,8,wf),[[$e,s.form.description]])]),u("div",Cf,[t[13]||(t[13]=u("label",null,"\u8BA1\u5212\u7C7B\u578B *",-1)),u("div",Ef,[u("label",Pf,[ue(u("input",{type:"radio","onUpdate:modelValue":t[2]||(t[2]=l=>s.form.type=l),value:"manual",disabled:n.loading},null,8,Tf),[[Ao,s.form.type]]),t[11]||(t[11]=me(" \u624B\u52A8\u89E6\u53D1 ",-1))]),u("label",Af,[ue(u("input",{type:"radio","onUpdate:modelValue":t[3]||(t[3]=l=>s.form.type=l),value:"auto",disabled:n.loading},null,8,Rf),[[Ao,s.form.type]]),t[12]||(t[12]=me(" \u81EA\u52A8\u89E6\u53D1 ",-1))])])]),u("div",Of,[u("label",null,[ue(u("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=l=>s.form.enabled=l),disabled:n.loading},null,8,kf),[[Dc,s.form.enabled]]),t[14]||(t[14]=me(" \u542F\u7528\u8BA1\u5212 ",-1))])]),s.form.type==="auto"?(N(),j("div",Mf,[t[15]||(t[15]=u("label",{for:"schedule_cron"},"\u5B9A\u65F6\u8868\u8FBE\u5F0F",-1)),ue(u("input",{type:"text",id:"schedule_cron","onUpdate:modelValue":t[5]||(t[5]=l=>s.form.schedule_cron=l),placeholder:"\u4F8B\u5982: 0 0 7 * * *",disabled:n.loading},null,8,Ff),[[$e,s.form.schedule_cron]]),t[16]||(t[16]=u("div",{class:"help-text"},"Cron\u8868\u8FBE\u5F0F\uFF0C\u7528\u4E8E\u8BBE\u7F6E\u81EA\u52A8\u6267\u884C\u65F6\u95F4",-1))])):le("",!0),u("div",If,[t[17]||(t[17]=u("label",{for:"execution_limit"},"\u6267\u884C\u6B21\u6570\u9650\u5236",-1)),ue(u("input",{type:"number",id:"execution_limit","onUpdate:modelValue":t[6]||(t[6]=l=>s.form.execution_limit=l),min:"0",disabled:n.loading},null,8,Df),[[$e,s.form.execution_limit,void 0,{number:!0}]]),t[18]||(t[18]=u("div",{class:"help-text"},"0\u8868\u793A\u65E0\u9650\u5236",-1))]),u("div",Nf,[u("button",{type:"button",class:"btn btn-secondary",onClick:t[7]||(t[7]=l=>e.$emit("cancel")),disabled:n.loading}," \u53D6\u6D88 ",8,$f),u("button",{type:"submit",class:"btn btn-primary",disabled:n.loading||s.isSubmitting},F(n.loading||s.isSubmitting?"\u5904\u7406\u4E2D...":n.isEditMode?"\u66F4\u65B0\u8BA1\u5212":"\u521B\u5EFA\u8BA1\u5212"),9,jf)])],32)])}const Vf=Rt(_f,[["render",Lf],["__scopeId","data-v-2631d092"]]);const Hf={name:"FeedPlan",components:{FeedPlanForm:Vf},data(){return{username:"",plans:[],loading:!0,showModal:!1,modalType:"create",currentPlan:null,submitting:!1}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlans()},methods:{async loadPlans(){this.loading=!0;try{const e=await fetch("/api/v1/feed/plan/list",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),t=await e.json();e.ok&&t.code===0?this.plans=t.data.plans||[]:console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",t.message)}catch(e){console.error("\u83B7\u53D6\u9972\u5582\u8BA1\u5212\u5217\u8868\u5931\u8D25:",e)}finally{this.loading=!1}},viewDetail(e){this.$router.push(`/feed/plan/detail/${e}`)},createPlan(){this.modalType="create",this.currentPlan={name:"",description:"",type:"manual",enabled:!0,schedule_cron:"",execution_limit:0},this.showModal=!0},editPlan(e){this.modalType="edit",this.currentPlan=JSON.parse(JSON.stringify(e)),this.showModal=!0},closeModal(){this.showModal=!1,this.currentPlan=null},async submitForm(e){if(!this.submitting){this.submitting=!0;try{let t,n;this.modalType==="create"?(t="/api/v1/feed/plan/create",n="POST"):(t="/api/v1/feed/plan/update",n="POST");const o=await fetch(t,{method:n,headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify(e)}),s=await o.json();o.ok&&s.code===0?(this.closeModal(),await this.loadPlans(),alert(this.modalType==="create"?"\u521B\u5EFA\u8BA1\u5212\u6210\u529F":"\u66F4\u65B0\u8BA1\u5212\u6210\u529F")):alert((this.modalType==="create"?"\u521B\u5EFA\u8BA1\u5212\u5931\u8D25: ":"\u66F4\u65B0\u8BA1\u5212\u5931\u8D25: ")+(s.message||"\u672A\u77E5\u9519\u8BEF"))}catch(t){console.error(this.modalType==="create"?"\u521B\u5EFA\u8BA1\u5212\u5931\u8D25:":"\u66F4\u65B0\u8BA1\u5212\u5931\u8D25:",t),alert((this.modalType==="create"?"\u521B\u5EFA\u8BA1\u5212\u5931\u8D25: ":"\u66F4\u65B0\u8BA1\u5212\u5931\u8D25: ")+t.message)}finally{this.submitting=!1}}},async deletePlan(e){var t,n,o;if(!!confirm("\u786E\u5B9A\u8981\u5220\u9664\u8FD9\u4E2A\u9972\u5582\u8BA1\u5212\u5417\uFF1F"))try{const s=await fetch("/api/v1/feed/plan/delete",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")},body:JSON.stringify({id:e})}),i=await s.json();s.ok&&i.code===0?(await this.loadPlans(),(t=this.$message)!=null&&t.success("\u5220\u9664\u6210\u529F")||alert("\u5220\u9664\u6210\u529F")):(n=this.$message)!=null&&n.error("\u5220\u9664\u5931\u8D25: "+i.message)||alert("\u5220\u9664\u5931\u8D25: "+i.message)}catch(s){console.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25:",s),(o=this.$message)!=null&&o.error("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+s.message)||alert("\u5220\u9664\u9972\u5582\u8BA1\u5212\u5931\u8D25: "+s.message)}},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},Bf={class:"feed-plan-management"},Uf={class:"header"},Kf={class:"user-info"},Wf={class:"nav"},qf={class:"main-content"},zf={class:"toolbar"},Gf={class:"plan-list"},Jf={key:0,class:"loading"},Yf={key:1,class:"no-plans"},Qf={key:2,class:"plans-container"},Xf={class:"plan-header"},Zf={class:"plan-details"},ed={class:"plan-description"},td={class:"plan-meta"},nd={class:"plan-type"},sd={key:0,class:"plan-cron"},od={class:"plan-actions"},id=["onClick"],rd=["onClick"],ld=["onClick"];function cd(e,t,n,o,s,i){const l=Bt("router-link"),r=Bt("FeedPlanForm");return N(),j("div",Bf,[u("div",Uf,[t[4]||(t[4]=u("h1",null,"\u9972\u5582\u8BA1\u5212\u7BA1\u7406",-1)),u("div",Kf,[u("span",null,"\u6B22\u8FCE, "+F(s.username),1),u("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...c)=>i.logout&&i.logout(...c))},"\u9000\u51FA")])]),u("nav",Wf,[u("ul",null,[u("li",null,[se(l,{to:"/dashboard"},{default:Ee(()=>[...t[5]||(t[5]=[me("\u63A7\u5236\u53F0",-1)])]),_:1})]),u("li",null,[se(l,{to:"/device"},{default:Ee(()=>[...t[6]||(t[6]=[me("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),u("li",null,[se(l,{to:"/feed/plan",class:"active"},{default:Ee(()=>[...t[7]||(t[7]=[me("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})])])]),u("main",qf,[u("div",zf,[u("button",{class:"btn btn-primary",onClick:t[1]||(t[1]=(...c)=>i.createPlan&&i.createPlan(...c))},"\u521B\u5EFA\u8BA1\u5212")]),u("div",Gf,[s.loading?(N(),j("div",Jf," \u52A0\u8F7D\u4E2D... ")):s.plans.length===0?(N(),j("div",Yf," \u6682\u65E0\u9972\u5582\u8BA1\u5212 ")):(N(),j("div",Qf,[(N(!0),j(he,null,_t(s.plans,c=>(N(),j("div",{key:c.id,class:"plan-card"},[u("div",Xf,[u("h3",null,F(c.name),1),u("span",{class:it(["plan-status",{enabled:c.enabled,disabled:!c.enabled}])},F(c.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),u("div",Zf,[u("p",ed,F(c.description||"\u6682\u65E0\u63CF\u8FF0"),1),u("div",td,[u("span",nd,F(c.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1),c.schedule_cron?(N(),j("span",sd,"\u5B9A\u65F6: "+F(c.schedule_cron),1)):le("",!0)])]),u("div",od,[u("button",{class:"action-btn detail-btn",onClick:p=>i.viewDetail(c.id)},"\u8BE6\u60C5",8,id),u("button",{class:"action-btn edit-btn",onClick:p=>i.editPlan(c)},"\u7F16\u8F91",8,rd),u("button",{class:"action-btn delete-btn",onClick:p=>i.deletePlan(c.id)},"\u5220\u9664",8,ld)])]))),128))]))])]),s.showModal?(N(),j("div",{key:0,class:"modal-overlay",onClick:t[3]||(t[3]=(...c)=>i.closeModal&&i.closeModal(...c))},[u("div",{class:"modal-content",onClick:t[2]||(t[2]=Ge(()=>{},["stop"]))},[se(r,{"initial-data":s.currentPlan,"is-edit-mode":s.modalType==="edit",loading:s.submitting,onSubmit:i.submitForm,onCancel:i.closeModal},null,8,["initial-data","is-edit-mode","loading","onSubmit","onCancel"])])])):le("",!0)])}const ad=Rt(Hf,[["render",cd],["__scopeId","data-v-17d33d17"]]);const ud={name:"FeedPlanDetail",data(){return{username:"",plan:null,loading:!0,error:null}},mounted(){this.username=localStorage.getItem("username")||"\u7BA1\u7406\u5458",this.loadPlanDetail()},methods:{async loadPlanDetail(){this.loading=!0,this.error=null;try{const e=this.$route.query.id||this.$route.params.id;if(!e){this.error="\u65E0\u6548\u7684\u8BA1\u5212ID";return}const t=await fetch(`/api/v1/feed/plan/detail?id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+localStorage.getItem("authToken")}}),n=await t.json();t.ok&&n.code===0?(this.plan=n.data,await this.loadSubPlanDetails()):this.error=n.message||"\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25"}catch(e){console.error("\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25:",e),this.error="\u83B7\u53D6\u8BA1\u5212\u8BE6\u60C5\u5931\u8D25: "+e.message}finally{this.loading=!1}},async loadSubPlanDetails(){if(!(!this.plan||!this.plan.sub_plans||this.plan.sub_plans.length===0))for(let e=0;en.id===e);if(t)return t.name}return"\u672A\u77E5\u7236\u8BA1\u5212"},editPlan(){alert("\u7F16\u8F91\u8BA1\u5212\u529F\u80FD\u5F85\u5B9E\u73B0")},logout(){localStorage.removeItem("authToken"),localStorage.removeItem("username"),this.$router.push("/")}}},fd={class:"feed-plan-detail"},dd={class:"header"},pd={class:"user-info"},hd={class:"nav"},md={class:"main-content"},gd={key:0,class:"loading"},_d={key:1,class:"error"},vd={key:2,class:"plan-detail-container"},bd={class:"plan-header"},yd={class:"plan-info"},xd={class:"info-item"},Sd={class:"info-item"},wd={key:0,class:"info-item"},Cd={class:"info-item"},Ed={class:"plan-steps"},Pd={key:0,class:"steps-list"},Td={class:"step-header"},Ad={class:"step-number"},Rd={key:0,class:"step-cron"},Od={class:"step-details"},kd={class:"detail-item"},Md={class:"detail-item"},Fd={class:"detail-item"},Id={class:"detail-item"},Dd={key:1,class:"no-steps"},Nd={key:0,class:"sub-plans"},$d={class:"sub-plans-list"},jd={class:"sub-plan-header"},Ld={class:"sub-plan-info"},Vd={class:"info-item"},Hd={class:"info-item"},Bd={key:0,class:"info-item"},Ud={class:"info-item"},Kd={key:1,class:"info-item"},Wd={class:"sub-plan-steps"},qd={key:0,class:"steps-list"},zd={class:"step-header"},Gd={class:"step-number"},Jd={key:0,class:"step-cron"},Yd={class:"step-details"},Qd={class:"detail-item"},Xd={class:"detail-item"},Zd={class:"detail-item"},ep={class:"detail-item"},tp={key:1,class:"no-steps"},np={class:"actions"};function sp(e,t,n,o,s,i){const l=Bt("router-link");return N(),j("div",fd,[u("div",dd,[t[3]||(t[3]=u("h1",null,"\u9972\u5582\u8BA1\u5212\u8BE6\u60C5",-1)),u("div",pd,[u("span",null,"\u6B22\u8FCE, "+F(s.username),1),u("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...r)=>i.logout&&i.logout(...r))},"\u9000\u51FA")])]),u("nav",hd,[u("ul",null,[u("li",null,[se(l,{to:"/dashboard"},{default:Ee(()=>[...t[4]||(t[4]=[me("\u63A7\u5236\u53F0",-1)])]),_:1})]),u("li",null,[se(l,{to:"/device"},{default:Ee(()=>[...t[5]||(t[5]=[me("\u8BBE\u5907\u7BA1\u7406",-1)])]),_:1})]),u("li",null,[se(l,{to:"/feed/plan"},{default:Ee(()=>[...t[6]||(t[6]=[me("\u9972\u5582\u8BA1\u5212",-1)])]),_:1})]),u("li",null,[se(l,{to:"/feed/plan/detail",class:"active"},{default:Ee(()=>[...t[7]||(t[7]=[me("\u8BA1\u5212\u8BE6\u60C5",-1)])]),_:1})])])]),u("main",md,[s.loading?(N(),j("div",gd," \u52A0\u8F7D\u4E2D... ")):s.error?(N(),j("div",_d,F(s.error),1)):s.plan?(N(),j("div",vd,[u("div",bd,[u("h2",null,F(s.plan.name),1),u("span",{class:it(["plan-status",{enabled:s.plan.enabled,disabled:!s.plan.enabled}])},F(s.plan.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),u("div",yd,[u("div",xd,[t[8]||(t[8]=u("label",null,"\u8BA1\u5212\u63CF\u8FF0:",-1)),u("span",null,F(s.plan.description||"\u65E0\u63CF\u8FF0"),1)]),u("div",Sd,[t[9]||(t[9]=u("label",null,"\u8BA1\u5212\u7C7B\u578B:",-1)),u("span",null,F(s.plan.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),s.plan.schedule_cron?(N(),j("div",wd,[t[10]||(t[10]=u("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),u("span",null,F(s.plan.schedule_cron),1)])):le("",!0),u("div",Cd,[t[11]||(t[11]=u("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),u("span",null,F(s.plan.execution_limit>0?s.plan.execution_limit:"\u65E0\u9650\u5236"),1)])]),u("div",Ed,[t[16]||(t[16]=u("h3",null,"\u8BA1\u5212\u6B65\u9AA4",-1)),s.plan.steps&&s.plan.steps.length>0?(N(),j("div",Pd,[(N(!0),j(he,null,_t(s.plan.steps,(r,c)=>(N(),j("div",{key:r.id,class:"step-item"},[u("div",Td,[u("span",Ad,"\u6B65\u9AA4 "+F(c+1),1),r.schedule_cron?(N(),j("span",Rd,"\u5B9A\u65F6: "+F(r.schedule_cron),1)):le("",!0)]),u("div",Od,[u("div",kd,[t[12]||(t[12]=u("label",null,"\u8BBE\u5907ID:",-1)),u("span",null,F(r.device_id),1)]),u("div",Md,[t[13]||(t[13]=u("label",null,"\u76EE\u6807\u503C:",-1)),u("span",null,F(r.target_value),1)]),u("div",Fd,[t[14]||(t[14]=u("label",null,"\u52A8\u4F5C:",-1)),u("span",null,F(r.action),1)]),u("div",Id,[t[15]||(t[15]=u("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),u("span",null,F(r.execution_limit>0?r.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):(N(),j("div",Dd," \u8BE5\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))]),s.plan.sub_plans&&s.plan.sub_plans.length>0?(N(),j("div",Nd,[t[27]||(t[27]=u("h3",null,"\u5B50\u8BA1\u5212",-1)),u("div",$d,[(N(!0),j(he,null,_t(s.plan.sub_plans,r=>(N(),j("div",{key:r.id,class:"sub-plan-item"},[u("div",jd,[u("h4",null,F(r.name),1),u("span",{class:it(["plan-status",{enabled:r.enabled,disabled:!r.enabled}])},F(r.enabled?"\u5DF2\u542F\u7528":"\u5DF2\u7981\u7528"),3)]),u("div",Ld,[u("div",Vd,[t[17]||(t[17]=u("label",null,"\u63CF\u8FF0:",-1)),u("span",null,F(r.description||"\u65E0\u63CF\u8FF0"),1)]),u("div",Hd,[t[18]||(t[18]=u("label",null,"\u7C7B\u578B:",-1)),u("span",null,F(r.type==="manual"?"\u624B\u52A8\u89E6\u53D1":"\u81EA\u52A8\u89E6\u53D1"),1)]),r.schedule_cron?(N(),j("div",Bd,[t[19]||(t[19]=u("label",null,"\u5B9A\u65F6\u8868\u8FBE\u5F0F:",-1)),u("span",null,F(r.schedule_cron),1)])):le("",!0),u("div",Ud,[t[20]||(t[20]=u("label",null,"\u987A\u5E8F:",-1)),u("span",null,F((r.order_in_parent||0)+1),1)]),r.parent_id?(N(),j("div",Kd,[t[21]||(t[21]=u("label",null,"\u7236\u8BA1\u5212:",-1)),u("span",null,F(i.getParentPlanName(r.parent_id))+"(id:"+F(r.parent_id)+")",1)])):le("",!0)]),u("div",Wd,[t[26]||(t[26]=u("h5",null,"\u5B50\u8BA1\u5212\u6B65\u9AA4",-1)),r.steps&&r.steps.length>0?(N(),j("div",qd,[(N(!0),j(he,null,_t(r.steps,(c,p)=>(N(),j("div",{key:c.id,class:"step-item"},[u("div",zd,[u("span",Gd,"\u6B65\u9AA4 "+F(p+1),1),c.schedule_cron?(N(),j("span",Jd,"\u5B9A\u65F6: "+F(c.schedule_cron),1)):le("",!0)]),u("div",Yd,[u("div",Qd,[t[22]||(t[22]=u("label",null,"\u8BBE\u5907ID:",-1)),u("span",null,F(c.device_id),1)]),u("div",Xd,[t[23]||(t[23]=u("label",null,"\u76EE\u6807\u503C:",-1)),u("span",null,F(c.target_value),1)]),u("div",Zd,[t[24]||(t[24]=u("label",null,"\u52A8\u4F5C:",-1)),u("span",null,F(c.action),1)]),u("div",ep,[t[25]||(t[25]=u("label",null,"\u6267\u884C\u6B21\u6570\u9650\u5236:",-1)),u("span",null,F(c.execution_limit>0?c.execution_limit:"\u65E0\u9650\u5236"),1)])])]))),128))])):(N(),j("div",tp," \u8BE5\u5B50\u8BA1\u5212\u6682\u65E0\u6B65\u9AA4 "))])]))),128))])])):le("",!0),u("div",np,[u("button",{class:"btn btn-secondary",onClick:t[1]||(t[1]=(...r)=>i.goBack&&i.goBack(...r))},"\u8FD4\u56DE\u5217\u8868"),u("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=(...r)=>i.editPlan&&i.editPlan(...r))},"\u7F16\u8F91\u8BA1\u5212")])])):le("",!0)])])}const op=Rt(ud,[["render",sp],["__scopeId","data-v-c22942b5"]]),ip=[{path:"/",name:"Login",component:ou},{path:"/dashboard",name:"Dashboard",component:_u,meta:{requiresAuth:!0}},{path:"/device",name:"Device",component:gf,meta:{requiresAuth:!0}},{path:"/feed/plan",name:"FeedPlan",component:ad,meta:{requiresAuth:!0}},{path:"/feed/plan/detail/:id",name:"FeedPlanDetail",component:op,meta:{requiresAuth:!0},props:!0}],mr=Ga({history:wa(),routes:ip});mr.beforeEach((e,t,n)=>{const o=localStorage.getItem("authToken");e.matched.some(s=>s.meta.requiresAuth)?o?n():n("/"):o&&e.name==="Login"?n("/dashboard"):n()});const gr=Vc(qc);gr.use(mr);gr.mount("#app"); diff --git a/frontend/dist/index.html b/frontend/dist/index.html index bf4fef8..5f710f9 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,8 +4,8 @@ 猪场管理系统 - - + +
diff --git a/frontend/src/components/FeedPlanForm.vue b/frontend/src/components/FeedPlanForm.vue new file mode 100644 index 0000000..01164ff --- /dev/null +++ b/frontend/src/components/FeedPlanForm.vue @@ -0,0 +1,303 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/pages/FeedPlan.vue b/frontend/src/pages/FeedPlan.vue index 7d7572e..2874eb7 100644 --- a/frontend/src/pages/FeedPlan.vue +++ b/frontend/src/pages/FeedPlan.vue @@ -60,17 +60,43 @@ + + +