(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const r of a)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(a){const r={};return a.integrity&&(r.integrity=a.integrity),a.referrerPolicy&&(r.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?r.credentials="include":a.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(a){if(a.ep)return;a.ep=!0;const r=n(a);fetch(a.href,r)}})();/**
* @vue/shared v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function za(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Ne={},An=[],Ot=()=>{},Ui=()=>!1,Os=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Fs=e=>e.startsWith("onUpdate:"),tt=Object.assign,Ka=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Nl=Object.prototype.hasOwnProperty,Ce=(e,t)=>Nl.call(e,t),ye=Array.isArray,xn=e=>us(e)==="[object Map]",Bi=e=>us(e)==="[object Set]",xr=e=>us(e)==="[object Date]",be=e=>typeof e=="function",He=e=>typeof e=="string",yt=e=>typeof e=="symbol",$e=e=>e!==null&&typeof e=="object",ji=e=>($e(e)||be(e))&&be(e.then)&&be(e.catch),Vi=Object.prototype.toString,us=e=>Vi.call(e),Ml=e=>us(e).slice(8,-1),Hi=e=>us(e)==="[object Object]",Ns=e=>He(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,zn=za(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ms=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Ul=/-\w/g,ft=Ms(e=>e.replace(Ul,t=>t.slice(1).toUpperCase())),Bl=/\B([A-Z])/g,an=Ms(e=>e.replace(Bl,"-$1").toLowerCase()),Us=Ms(e=>e.charAt(0).toUpperCase()+e.slice(1)),sa=Ms(e=>e?`on${Us(e)}`:""),Lt=(e,t)=>!Object.is(e,t),aa=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Gi=(e,t,n,s=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},jl=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Cr;const Bs=()=>Cr||(Cr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Wa(e){if(ye(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],a=He(s)?ql(s):Wa(s);if(a)for(const r in a)t[r]=a[r]}return t}else if(He(e)||$e(e))return e}const Vl=/;(?![^(]*\))/g,Hl=/:([^]+)/,Gl=/\/\*[^]*?\*\//g;function ql(e){const t={};return e.replace(Gl,"").split(Vl).forEach(n=>{if(n){const s=n.split(Hl);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ft(e){let t="";if(He(e))t=e;else if(ye(e))for(let n=0;n<e.length;n++){const s=Ft(e[n]);s&&(t+=s+" ")}else if($e(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const zl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Kl=za(zl);function qi(e){return!!e||e===""}function Wl(e,t){if(e.length!==t.length)return!1;let n=!0;for(let s=0;n&&s<e.length;s++)n=Ja(e[s],t[s]);return n}function Ja(e,t){if(e===t)return!0;let n=xr(e),s=xr(t);if(n||s)return n&&s?e.getTime()===t.getTime():!1;if(n=yt(e),s=yt(t),n||s)return e===t;if(n=ye(e),s=ye(t),n||s)return n&&s?Wl(e,t):!1;if(n=$e(e),s=$e(t),n||s){if(!n||!s)return!1;const a=Object.keys(e).length,r=Object.keys(t).length;if(a!==r)return!1;for(const i in e){const o=e.hasOwnProperty(i),l=t.hasOwnProperty(i);if(o&&!l||!o&&l||!Ja(e[i],t[i]))return!1}}return String(e)===String(t)}const zi=e=>!!(e&&e.__v_isRef===!0),N=e=>He(e)?e:e==null?"":ye(e)||$e(e)&&(e.toString===Vi||!be(e.toString))?zi(e)?N(e.value):JSON.stringify(e,Ki,2):String(e),Ki=(e,t)=>zi(t)?Ki(e,t.value):xn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,a],r)=>(n[ra(s,r)+" =>"]=a,n),{})}:Bi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ra(n))}:yt(t)?ra(t):$e(t)&&!ye(t)&&!Hi(t)?String(t):t,ra=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/**
* @vue/reactivity v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Xe;class Wi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.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;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){++this._on===1&&(this.prevScope=Xe,Xe=this)}off(){if(this._on>0&&--this._on===0){if(Xe===this)Xe=this.prevScope;else{let t=Xe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(this.effects.length=0,n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0}}}function Ji(e){return new Wi(e)}function Yi(){return Xe}function Jl(e,t=!1){Xe&&Xe.cleanups.push(e)}let Fe;const ia=new WeakSet;class Xi{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Xe&&Xe.active&&Xe.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ia.has(this)&&(ia.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Qi(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Er(this),eo(this);const t=Fe,n=St;Fe=this,St=!0;try{return this.fn()}finally{to(this),Fe=t,St=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Za(t);this.deps=this.depsTail=void 0,Er(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ia.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ka(this)&&this.run()}get dirty(){return ka(this)}}let Zi=0,Kn,Wn;function Qi(e,t=!1){if(e.flags|=8,t){e.next=Wn,Wn=e;return}e.next=Kn,Kn=e}function Ya(){Zi++}function Xa(){if(--Zi>0)return;if(Wn){let t=Wn;for(Wn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Kn;){let t=Kn;for(Kn=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 eo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function to(e){let t,n=e.depsTail,s=n;for(;s;){const a=s.prevDep;s.version===-1?(s===n&&(n=a),Za(s),Yl(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=a}e.deps=t,e.depsTail=n}function ka(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(no(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function no(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ts)||(e.globalVersion=ts,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ka(e))))return;e.flags|=2;const t=e.dep,n=Fe,s=St;Fe=e,St=!0;try{eo(e);const a=e.fn(e._value);(t.version===0||Lt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Fe=n,St=s,to(e),e.flags&=-3}}function Za(e,t=!1){const{dep:n,prevSub:s,nextSub:a}=e;if(s&&(s.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)Za(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Yl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let St=!0;const so=[];function qt(){so.push(St),St=!1}function zt(){const e=so.pop();St=e===void 0?!0:e}function Er(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Fe;Fe=void 0;try{t()}finally{Fe=n}}}let ts=0;class Xl{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 Qa{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(!Fe||!St||Fe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Fe)n=this.activeLink=new Xl(Fe,this),Fe.deps?(n.prevDep=Fe.depsTail,Fe.depsTail.nextDep=n,Fe.depsTail=n):Fe.deps=Fe.depsTail=n,ao(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=Fe.depsTail,n.nextDep=void 0,Fe.depsTail.nextDep=n,Fe.depsTail=n,Fe.deps===n&&(Fe.deps=s)}return n}trigger(t){this.version++,ts++,this.notify(t)}notify(t){Ya();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Xa()}}}function ao(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)ao(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const As=new WeakMap,pn=Symbol(""),Aa=Symbol(""),ns=Symbol("");function st(e,t,n){if(St&&Fe){let s=As.get(e);s||As.set(e,s=new Map);let a=s.get(n);a||(s.set(n,a=new Qa),a.map=s,a.key=n),a.track()}}function Ht(e,t,n,s,a,r){const i=As.get(e);if(!i){ts++;return}const o=l=>{l&&l.trigger()};if(Ya(),t==="clear")i.forEach(o);else{const l=ye(e),u=l&&Ns(n);if(l&&n==="length"){const c=Number(s);i.forEach((d,f)=>{(f==="length"||f===ns||!yt(f)&&f>=c)&&o(d)})}else switch((n!==void 0||i.has(void 0))&&o(i.get(n)),u&&o(i.get(ns)),t){case"add":l?u&&o(i.get("length")):(o(i.get(pn)),xn(e)&&o(i.get(Aa)));break;case"delete":l||(o(i.get(pn)),xn(e)&&o(i.get(Aa)));break;case"set":xn(e)&&o(i.get(pn));break}}Xa()}function Zl(e,t){const n=As.get(e);return n&&n.get(t)}function _n(e){const t=Ae(e);return t===e?t:(st(t,"iterate",ns),ht(e)?t:t.map(xt))}function js(e){return st(e=Ae(e),"iterate",ns),e}function It(e,t){return Kt(e)?$n(Gt(e)?xt(t):t):xt(t)}const Ql={__proto__:null,[Symbol.iterator](){return oa(this,Symbol.iterator,e=>It(this,e))},concat(...e){return _n(this).concat(...e.map(t=>ye(t)?_n(t):t))},entries(){return oa(this,"entries",e=>(e[1]=It(this,e[1]),e))},every(e,t){return Ut(this,"every",e,t,void 0,arguments)},filter(e,t){return Ut(this,"filter",e,t,n=>n.map(s=>It(this,s)),arguments)},find(e,t){return Ut(this,"find",e,t,n=>It(this,n),arguments)},findIndex(e,t){return Ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ut(this,"findLast",e,t,n=>It(this,n),arguments)},findLastIndex(e,t){return Ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return la(this,"includes",e)},indexOf(...e){return la(this,"indexOf",e)},join(e){return _n(this).join(e)},lastIndexOf(...e){return la(this,"lastIndexOf",e)},map(e,t){return Ut(this,"map",e,t,void 0,arguments)},pop(){return Nn(this,"pop")},push(...e){return Nn(this,"push",e)},reduce(e,...t){return Rr(this,"reduce",e,t)},reduceRight(e,...t){return Rr(this,"reduceRight",e,t)},shift(){return Nn(this,"shift")},some(e,t){return Ut(this,"some",e,t,void 0,arguments)},splice(...e){return Nn(this,"splice",e)},toReversed(){return _n(this).toReversed()},toSorted(e){return _n(this).toSorted(e)},toSpliced(...e){return _n(this).toSpliced(...e)},unshift(...e){return Nn(this,"unshift",e)},values(){return oa(this,"values",e=>It(this,e))}};function oa(e,t,n){const s=js(e),a=s[t]();return s!==e&&!ht(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=n(r.value)),r}),a}const eu=Array.prototype;function Ut(e,t,n,s,a,r){const i=js(e),o=i!==e&&!ht(e),l=i[t];if(l!==eu[t]){const d=l.apply(e,r);return o?xt(d):d}let u=n;i!==e&&(o?u=function(d,f){return n.call(this,It(e,d),f,e)}:n.length>2&&(u=function(d,f){return n.call(this,d,f,e)}));const c=l.call(i,u,s);return o&&a?a(c):c}function Rr(e,t,n,s){const a=js(e),r=a!==e&&!ht(e);let i=n,o=!1;a!==e&&(r?(o=s.length===0,i=function(u,c,d){return o&&(o=!1,u=It(e,u)),n.call(this,u,It(e,c),d,e)}):n.length>3&&(i=function(u,c,d){return n.call(this,u,c,d,e)}));const l=a[t](i,...s);return o?It(e,l):l}function la(e,t,n){const s=Ae(e);st(s,"iterate",ns);const a=s[t](...n);return(a===-1||a===!1)&&Vs(n[0])?(n[0]=Ae(n[0]),s[t](...n)):a}function Nn(e,t,n=[]){qt(),Ya();const s=Ae(e)[t].apply(e,n);return Xa(),zt(),s}const tu=za("__proto__,__v_isRef,__isVue"),ro=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function nu(e){yt(e)||(e=String(e));const t=Ae(this);return st(t,"has",e),t.hasOwnProperty(e)}class io{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(a?r?fu:co:r?uo:lo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=ye(t);if(!a){let l;if(i&&(l=Ql[n]))return l;if(n==="hasOwnProperty")return nu}const o=Reflect.get(t,n,Ue(t)?t:s);if((yt(n)?ro.has(n):tu(n))||(a||st(t,"get",n),r))return o;if(Ue(o)){const l=i&&Ns(n)?o:o.value;return a&&$e(l)?Ca(l):l}return $e(o)?a?Ca(o):Yt(o):o}}class oo extends io{constructor(t=!1){super(!1,t)}set(t,n,s,a){let r=t[n];const i=ye(t)&&Ns(n);if(!this._isShallow){const u=Kt(r);if(!ht(s)&&!Kt(s)&&(r=Ae(r),s=Ae(s)),!i&&Ue(r)&&!Ue(s))return u||(r.value=s),!0}const o=i?Number(n)<t.length:Ce(t,n),l=Reflect.set(t,n,s,Ue(t)?t:a);return t===Ae(a)&&(o?Lt(s,r)&&Ht(t,"set",n,s):Ht(t,"add",n,s)),l}deleteProperty(t,n){const s=Ce(t,n);t[n];const a=Reflect.deleteProperty(t,n);return a&&s&&Ht(t,"delete",n,void 0),a}has(t,n){const s=Reflect.has(t,n);return(!yt(n)||!ro.has(n))&&st(t,"has",n),s}ownKeys(t){return st(t,"iterate",ye(t)?"length":pn),Reflect.ownKeys(t)}}class su extends io{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const au=new oo,ru=new su,iu=new oo(!0);const xa=e=>e,gs=e=>Reflect.getPrototypeOf(e);function ou(e,t,n){return function(...s){const a=this.__v_raw,r=Ae(a),i=xn(r),o=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=a[e](...s),c=n?xa:t?$n:xt;return!t&&st(r,"iterate",l?Aa:pn),tt(Object.create(u),{next(){const{value:d,done:f}=u.next();return f?{value:d,done:f}:{value:o?[c(d[0]),c(d[1])]:c(d),done:f}}})}}function hs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function lu(e,t){const n={get(a){const r=this.__v_raw,i=Ae(r),o=Ae(a);e||(Lt(a,o)&&st(i,"get",a),st(i,"get",o));const{has:l}=gs(i),u=t?xa:e?$n:xt;if(l.call(i,a))return u(r.get(a));if(l.call(i,o))return u(r.get(o));r!==i&&r.get(a)},get size(){const a=this.__v_raw;return!e&&st(Ae(a),"iterate",pn),a.size},has(a){const r=this.__v_raw,i=Ae(r),o=Ae(a);return e||(Lt(a,o)&&st(i,"has",a),st(i,"has",o)),a===o?r.has(a):r.has(a)||r.has(o)},forEach(a,r){const i=this,o=i.__v_raw,l=Ae(o),u=t?xa:e?$n:xt;return!e&&st(l,"iterate",pn),o.forEach((c,d)=>a.call(r,u(c),u(d),i))}};return tt(n,e?{add:hs("add"),set:hs("set"),delete:hs("delete"),clear:hs("clear")}:{add(a){const r=Ae(this),i=gs(r),o=Ae(a),l=!t&&!ht(a)&&!Kt(a)?o:a;return i.has.call(r,l)||Lt(a,l)&&i.has.call(r,a)||Lt(o,l)&&i.has.call(r,o)||(r.add(l),Ht(r,"add",l,l)),this},set(a,r){!t&&!ht(r)&&!Kt(r)&&(r=Ae(r));const i=Ae(this),{has:o,get:l}=gs(i);let u=o.call(i,a);u||(a=Ae(a),u=o.call(i,a));const c=l.call(i,a);return i.set(a,r),u?Lt(r,c)&&Ht(i,"set",a,r):Ht(i,"add",a,r),this},delete(a){const r=Ae(this),{has:i,get:o}=gs(r);let l=i.call(r,a);l||(a=Ae(a),l=i.call(r,a)),o&&o.call(r,a);const u=r.delete(a);return l&&Ht(r,"delete",a,void 0),u},clear(){const a=Ae(this),r=a.size!==0,i=a.clear();return r&&Ht(a,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=ou(a,e,t)}),n}function er(e,t){const n=lu(e,t);return(s,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?s:Reflect.get(Ce(n,a)&&a in s?n:s,a,r)}const uu={get:er(!1,!1)},cu={get:er(!1,!0)},du={get:er(!0,!1)};const lo=new WeakMap,uo=new WeakMap,co=new WeakMap,fu=new WeakMap;function pu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vu(e){return e.__v_skip||!Object.isExtensible(e)?0:pu(Ml(e))}function Yt(e){return Kt(e)?e:tr(e,!1,au,uu,lo)}function fo(e){return tr(e,!1,iu,cu,uo)}function Ca(e){return tr(e,!0,ru,du,co)}function tr(e,t,n,s,a){if(!$e(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=vu(e);if(r===0)return e;const i=a.get(e);if(i)return i;const o=new Proxy(e,r===2?s:n);return a.set(e,o),o}function Gt(e){return Kt(e)?Gt(e.__v_raw):!!(e&&e.__v_isReactive)}function Kt(e){return!!(e&&e.__v_isReadonly)}function ht(e){return!!(e&&e.__v_isShallow)}function Vs(e){return e?!!e.__v_raw:!1}function Ae(e){const t=e&&e.__v_raw;return t?Ae(t):e}function nr(e){return!Ce(e,"__v_skip")&&Object.isExtensible(e)&&Gi(e,"__v_skip",!0),e}const xt=e=>$e(e)?Yt(e):e,$n=e=>$e(e)?Ca(e):e;function Ue(e){return e?e.__v_isRef===!0:!1}function J(e){return po(e,!1)}function gu(e){return po(e,!0)}function po(e,t){return Ue(e)?e:new hu(e,t)}class hu{constructor(t,n){this.dep=new Qa,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Ae(t),this._value=n?t:xt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||ht(t)||Kt(t);t=s?t:Ae(t),Lt(t,n)&&(this._rawValue=t,this._value=s?t:xt(t),this.dep.trigger())}}function p(e){return Ue(e)?e.value:e}const mu={get:(e,t,n)=>t==="__v_raw"?e:p(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const a=e[t];return Ue(a)&&!Ue(n)?(a.value=n,!0):Reflect.set(e,t,n,s)}};function vo(e){return Gt(e)?e:new Proxy(e,mu)}function yu(e){const t=ye(e)?new Array(e.length):{};for(const n in e)t[n]=bu(e,n);return t}class _u{constructor(t,n,s){this._object=t,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0,this._key=yt(n)?n:String(n),this._raw=Ae(t);let a=!0,r=t;if(!ye(t)||yt(this._key)||!Ns(this._key))do a=!Vs(r)||ht(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=p(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ue(this._raw[this._key])){const n=this._object[this._key];if(Ue(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Zl(this._raw,this._key)}}function bu(e,t,n){return new _u(e,t,n)}class wu{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Qa(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ts-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return Qi(this,!0),!0}get value(){const t=this.dep.track();return no(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Su(e,t,n=!1){let s,a;return be(e)?s=e:(s=e.get,a=e.set),new wu(s,a,n)}const ms={},xs=new WeakMap;let cn;function ku(e,t=!1,n=cn){if(n){let s=xs.get(n);s||xs.set(n,s=[]),s.push(e)}}function Au(e,t,n=Ne){const{immediate:s,deep:a,once:r,scheduler:i,augmentJob:o,call:l}=n,u=E=>a?E:ht(E)||a===!1||a===0?sn(E,1):sn(E);let c,d,f,h,g=!1,y=!1;if(Ue(e)?(d=()=>e.value,g=ht(e)):Gt(e)?(d=()=>u(e),g=!0):ye(e)?(y=!0,g=e.some(E=>Gt(E)||ht(E)),d=()=>e.map(E=>{if(Ue(E))return E.value;if(Gt(E))return u(E);if(be(E))return l?l(E,2):E()})):be(e)?t?d=l?()=>l(e,2):e:d=()=>{if(f){qt();try{f()}finally{zt()}}const E=cn;cn=c;try{return l?l(e,3,[h]):e(h)}finally{cn=E}}:d=Ot,t&&a){const E=d,F=a===!0?1/0:a;d=()=>sn(E(),F)}const m=Yi(),P=()=>{c.stop(),m&&m.active&&Ka(m.effects,c)};if(r&&t){const E=t;t=(...F)=>{E(...F),P()}}let _=y?new Array(e.length).fill(ms):ms;const S=E=>{if(!(!(c.flags&1)||!c.dirty&&!E))if(t){const F=c.run();if(a||g||(y?F.some((D,T)=>Lt(D,_[T])):Lt(F,_))){f&&f();const D=cn;cn=c;try{const T=[F,_===ms?void 0:y&&_[0]===ms?[]:_,h];_=F,l?l(t,3,T):t(...T)}finally{cn=D}}}else c.run()};return o&&o(S),c=new Xi(d),c.scheduler=i?()=>i(S,!1):S,h=E=>ku(E,!1,c),f=c.onStop=()=>{const E=xs.get(c);if(E){if(l)l(E,4);else for(const F of E)F();xs.delete(c)}},t?s?S(!0):_=c.run():i?i(S.bind(null,!0),!0):c.run(),P.pause=c.pause.bind(c),P.resume=c.resume.bind(c),P.stop=P,P}function sn(e,t=1/0,n){if(t<=0||!$e(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ue(e))sn(e.value,t,n);else if(ye(e))for(let s=0;s<e.length;s++)sn(e[s],t,n);else if(Bi(e)||xn(e))e.forEach(s=>{sn(s,t,n)});else if(Hi(e)){for(const s in e)sn(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&sn(e[s],t,n)}return e}/**
* @vue/runtime-core v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function cs(e,t,n,s){try{return s?e(...s):e()}catch(a){Hs(a,t,n)}}function Nt(e,t,n,s){if(be(e)){const a=cs(e,t,n,s);return a&&ji(a)&&a.catch(r=>{Hs(r,t,n)}),a}if(ye(e)){const a=[];for(let r=0;r<e.length;r++)a.push(Nt(e[r],t,n,s));return a}}function Hs(e,t,n,s=!0){const a=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||Ne;if(t){let o=t.parent;const l=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;o;){const c=o.ec;if(c){for(let d=0;d<c.length;d++)if(c[d](e,l,u)===!1)return}o=o.parent}if(r){qt(),cs(r,null,10,[e,l,u]),zt();return}}xu(e,n,a,s,i)}function xu(e,t,n,s=!0,a=!1){if(a)throw e;console.error(e)}const ct=[];let Pt=-1;const Cn=[];let tn=null,wn=0;const go=Promise.resolve();let Cs=null;function gn(e){const t=Cs||go;return e?t.then(this?e.bind(this):e):t}function Cu(e){let t=Pt+1,n=ct.length;for(;t<n;){const s=t+n>>>1,a=ct[s],r=ss(a);r<e||r===e&&a.flags&2?t=s+1:n=s}return t}function sr(e){if(!(e.flags&1)){const t=ss(e),n=ct[ct.length-1];!n||!(e.flags&2)&&t>=ss(n)?ct.push(e):ct.splice(Cu(t),0,e),e.flags|=1,ho()}}function ho(){Cs||(Cs=go.then(yo))}function Eu(e){ye(e)?Cn.push(...e):tn&&e.id===-1?tn.splice(wn+1,0,e):e.flags&1||(Cn.push(e),e.flags|=1),ho()}function $r(e,t,n=Pt+1){for(;n<ct.length;n++){const s=ct[n];if(s&&s.flags&2){if(e&&s.id!==e.uid)continue;ct.splice(n,1),n--,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function mo(e){if(Cn.length){const t=[...new Set(Cn)].sort((n,s)=>ss(n)-ss(s));if(Cn.length=0,tn){tn.push(...t);return}for(tn=t,wn=0;wn<tn.length;wn++){const n=tn[wn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}tn=null,wn=0}}const ss=e=>e.id==null?e.flags&2?-1:1/0:e.id;function yo(e){try{for(Pt=0;Pt<ct.length;Pt++){const t=ct[Pt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),cs(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Pt<ct.length;Pt++){const t=ct[Pt];t&&(t.flags&=-2)}Pt=-1,ct.length=0,mo(),Cs=null,(ct.length||Cn.length)&&yo()}}let dt=null,_o=null;function Es(e){const t=dt;return dt=e,_o=e&&e.type.__scopeId||null,t}function k(e,t=dt,n){if(!t||e._n)return e;const s=(...a)=>{s._d&&Ts(-1);const r=Es(t);let i;try{i=e(...a)}finally{Es(r),s._d&&Ts(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function ln(e,t,n,s){const a=e.dirs,r=t&&t.dirs;for(let i=0;i<a.length;i++){const o=a[i];r&&(o.oldValue=r[i].value);let l=o.dir[s];l&&(qt(),Nt(l,n,8,[e.el,o,e,t]),zt())}}function Jn(e,t){if(at){let n=at.provides;const s=at.parent&&at.parent.provides;s===n&&(n=at.provides=Object.create(s)),n[e]=t}}function mt(e,t,n=!1){const s=Js();if(s||vn){let a=vn?vn._context.provides:s?s.parent==null||s.ce?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides:void 0;if(a&&e in a)return a[e];if(arguments.length>1)return n&&be(t)?t.call(s&&s.proxy):t}}function Ru(){return!!(Js()||vn)}const $u=Symbol.for("v-scx"),Tu=()=>mt($u);function kt(e,t,n){return bo(e,t,n)}function bo(e,t,n=Ne){const{immediate:s,deep:a,flush:r,once:i}=n,o=tt({},n),l=t&&s||!t&&r!=="post";let u;if(is){if(r==="sync"){const h=Tu();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=Ot,h.resume=Ot,h.pause=Ot,h}}const c=at;o.call=(h,g,y)=>Nt(h,c,g,y);let d=!1;r==="post"?o.scheduler=h=>{ot(h,c&&c.suspense)}:r!=="sync"&&(d=!0,o.scheduler=(h,g)=>{g?h():sr(h)}),o.augmentJob=h=>{t&&(h.flags|=4),d&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const f=Au(e,t,o);return is&&(u?u.push(f):l&&f()),f}function Pu(e,t,n){const s=this.proxy,a=He(e)?e.includes(".")?wo(s,e):()=>s[e]:e.bind(s,s);let r;be(t)?r=t:(r=t.handler,n=t);const i=fs(this),o=bo(a,r.bind(s),n);return i(),o}function wo(e,t){const n=t.split(".");return()=>{let s=e;for(let a=0;a<n.length&&s;a++)s=s[n[a]];return s}}const Qt=new WeakMap,So=Symbol("_vte"),Iu=e=>e.__isTeleport,dn=e=>e&&(e.disabled||e.disabled===""),Du=e=>e&&(e.defer||e.defer===""),Tr=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Pr=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ea=(e,t)=>{const n=e&&e.to;return He(n)?t?t(n):null:n},Lu={name:"Teleport",__isTeleport:!0,process(e,t,n,s,a,r,i,o,l,u){const{mc:c,pc:d,pbc:f,o:{insert:h,querySelector:g,createText:y,createComment:m,parentNode:P}}=u,_=dn(t.props);let{dynamicChildren:S}=t;const E=(T,A,R)=>{T.shapeFlag&16&&c(T.children,A,R,a,r,i,o,l)},F=(T=t)=>{const A=dn(T.props),R=T.target=Ea(T.props,g),Z=Ra(R,T,y,h);R&&(i!=="svg"&&Tr(R)?i="svg":i!=="mathml"&&Pr(R)&&(i="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(R),A||(E(T,R,Z),Hn(T,!1)))},D=T=>{const A=()=>{if(Qt.get(T)===A){if(Qt.delete(T),dn(T.props)){const R=P(T.el)||n;E(T,R,T.anchor),Hn(T,!0)}F(T)}};Qt.set(T,A),ot(A,r)};if(e==null){const T=t.el=y(""),A=t.anchor=y("");if(h(T,n,s),h(A,n,s),Du(t.props)||r&&r.pendingBranch){D(t);return}_&&(E(t,n,A),Hn(t,!0)),F()}else{t.el=e.el;const T=t.anchor=e.anchor,A=Qt.get(e);if(A){A.flags|=8,Qt.delete(e),D(t);return}t.targetStart=e.targetStart;const R=t.target=e.target,Z=t.targetAnchor=e.targetAnchor,ue=dn(e.props),de=ue?n:R,pe=ue?T:Z;if(i==="svg"||Tr(R)?i="svg":(i==="mathml"||Pr(R))&&(i="mathml"),S?(f(e.dynamicChildren,S,de,a,r,i,o),or(e,t,!0)):l||d(e,t,de,pe,a,r,i,o,!1),_)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ys(t,n,T,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const B=t.target=Ea(t.props,g);B&&ys(t,B,null,u,0)}else ue&&ys(t,R,Z,u,1);Hn(t,_)}},remove(e,t,n,{um:s,o:{remove:a}},r){const{shapeFlag:i,children:o,anchor:l,targetStart:u,targetAnchor:c,target:d,props:f}=e;let h=r||!dn(f);const g=Qt.get(e);if(g&&(g.flags|=8,Qt.delete(e),h=!1),d&&(a(u),a(c)),r&&a(l),i&16)for(let y=0;y<o.length;y++){const m=o[y];s(m,t,n,h,!!m.dynamicChildren)}},move:ys,hydrate:Ou};function ys(e,t,n,{o:{insert:s},m:a},r=2){r===0&&s(e.targetAnchor,t,n);const{el:i,anchor:o,shapeFlag:l,children:u,props:c}=e,d=r===2;if(d&&s(i,t,n),!Qt.has(e)&&(!d||dn(c))&&l&16)for(let f=0;f<u.length;f++)a(u[f],t,n,2);d&&s(o,t,n)}function Ou(e,t,n,s,a,r,{o:{nextSibling:i,parentNode:o,querySelector:l,insert:u,createText:c}},d){function f(m,P){let _=P;for(;_;){if(_&&_.nodeType===8){if(_.data==="teleport start anchor")t.targetStart=_;else if(_.data==="teleport anchor"){t.targetAnchor=_,m._lpa=t.targetAnchor&&i(t.targetAnchor);break}}_=i(_)}}function h(m,P){P.anchor=d(i(m),P,o(m),n,s,a,r)}const g=t.target=Ea(t.props,l),y=dn(t.props);if(g){const m=g._lpa||g.firstChild;t.shapeFlag&16&&(y?(h(e,t),f(g,m),t.targetAnchor||Ra(g,t,c,u,o(e)===g?e:null)):(t.anchor=i(e),f(g,m),t.targetAnchor||Ra(g,t,c,u),d(m&&i(m),t,g,n,s,a,r))),Hn(t,y)}else y&&t.shapeFlag&16&&(h(e,t),t.targetStart=e,t.targetAnchor=i(e));return t.anchor&&i(t.anchor)}const Fu=Lu;function Hn(e,t){const n=e.ctx;if(n&&n.ut){let s,a;for(t?(s=e.el,a=e.anchor):(s=e.targetStart,a=e.targetAnchor);s&&s!==a;)s.nodeType===1&&s.setAttribute("data-v-owner",n.uid),s=s.nextSibling;n.ut()}}function Ra(e,t,n,s,a=null){const r=t.targetStart=n(""),i=t.targetAnchor=n("");return r[So]=i,e&&(s(r,e,a),s(i,e,a)),i}const Nu=Symbol("_leaveCb");function ar(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ar(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 qe(e,t){return be(e)?tt({name:e.name},t,{setup:e}):e}function ko(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ir(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Rs=new WeakMap;function Yn(e,t,n,s,a=!1){if(ye(e)){e.forEach((y,m)=>Yn(y,t&&(ye(t)?t[m]:t),n,s,a));return}if(En(s)&&!a){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&Yn(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?ur(s.component):s.el,i=a?null:r,{i:o,r:l}=e,u=t&&t.r,c=o.refs===Ne?o.refs={}:o.refs,d=o.setupState,f=Ae(d),h=d===Ne?Ui:y=>Ir(c,y)?!1:Ce(f,y),g=(y,m)=>!(m&&Ir(c,m));if(u!=null&&u!==l){if(Dr(t),He(u))c[u]=null,h(u)&&(d[u]=null);else if(Ue(u)){const y=t;g(u,y.k)&&(u.value=null),y.k&&(c[y.k]=null)}}if(be(l))cs(l,o,12,[i,c]);else{const y=He(l),m=Ue(l);if(y||m){const P=()=>{if(e.f){const _=y?h(l)?d[l]:c[l]:g()||!e.k?l.value:c[e.k];if(a)ye(_)&&Ka(_,r);else if(ye(_))_.includes(r)||_.push(r);else if(y)c[l]=[r],h(l)&&(d[l]=c[l]);else{const S=[r];g(l,e.k)&&(l.value=S),e.k&&(c[e.k]=S)}}else y?(c[l]=i,h(l)&&(d[l]=i)):m&&(g(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const _=()=>{P(),Rs.delete(e)};_.id=-1,Rs.set(e,_),ot(_,n)}else Dr(e),P()}}}function Dr(e){const t=Rs.get(e);t&&(t.flags|=8,Rs.delete(e))}Bs().requestIdleCallback;Bs().cancelIdleCallback;const En=e=>!!e.type.__asyncLoader,Ao=e=>e.type.__isKeepAlive;function Mu(e,t){xo(e,"a",t)}function Uu(e,t){xo(e,"da",t)}function xo(e,t,n=at){const s=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Gs(t,s,n),n){let a=n.parent;for(;a&&a.parent;)Ao(a.parent.vnode)&&Bu(s,t,n,a),a=a.parent}}function Bu(e,t,n,s){const a=Gs(t,e,s,!0);ds(()=>{Ka(s[t],a)},n)}function Gs(e,t,n=at,s=!1){if(n){const a=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...i)=>{qt();const o=fs(n),l=Nt(t,n,e,i);return o(),zt(),l});return s?a.unshift(r):a.push(r),r}}const Xt=e=>(t,n=at)=>{(!is||e==="sp")&&Gs(e,(...s)=>t(...s),n)},ju=Xt("bm"),bt=Xt("m"),Vu=Xt("bu"),Hu=Xt("u"),qs=Xt("bum"),ds=Xt("um"),Gu=Xt("sp"),qu=Xt("rtg"),zu=Xt("rtc");function Co(e,t=at){Gs("ec",e,t)}const Ku="components";function rn(e,t){return Ju(Ku,e,!0,t)||e}const Wu=Symbol.for("v-ndc");function Ju(e,t,n=!0,s=!1){const a=dt||at;if(a){const r=a.type;{const o=Ic(r,!1);if(o&&(o===t||o===ft(t)||o===Us(ft(t))))return r}const i=Lr(a[e]||r[e],t)||Lr(a.appContext[e],t);return!i&&s?r:i}}function Lr(e,t){return e&&(e[t]||e[ft(t)]||e[Us(ft(t))])}function Wt(e,t,n,s){let a;const r=n,i=ye(e);if(i||He(e)){const o=i&&Gt(e);let l=!1,u=!1;o&&(l=!ht(e),u=Kt(e),e=js(e)),a=new Array(e.length);for(let c=0,d=e.length;c<d;c++)a[c]=t(l?u?$n(xt(e[c])):xt(e[c]):e[c],c,void 0,r)}else if(typeof e=="number"){a=new Array(e);for(let o=0;o<e;o++)a[o]=t(o+1,o,void 0,r)}else if($e(e))if(e[Symbol.iterator])a=Array.from(e,(o,l)=>t(o,l,void 0,r));else{const o=Object.keys(e);a=new Array(o.length);for(let l=0,u=o.length;l<u;l++){const c=o[l];a[l]=t(e[c],c,l,r)}}else a=[];return a}function Eo(e,t){for(let n=0;n<t.length;n++){const s=t[n];if(ye(s))for(let a=0;a<s.length;a++)e[s[a].name]=s[a].fn;else s&&(e[s.name]=s.key?(...a)=>{const r=s.fn(...a);return r&&(r.key=s.key),r}:s.fn)}return e}function zs(e,t,n={},s,a){if(dt.ce||dt.parent&&En(dt.parent)&&dt.parent.ce){const u=Object.keys(n).length>0;return t!=="default"&&(n.name=t),w(),K(De,null,[I("slot",n,s&&s())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),w();const i=r&&Ro(r(n)),o=n.key||i&&i.key,l=K(De,{key:(o&&!yt(o)?o:`_${t}`)+(!i&&s?"_fb":"")},i||(s?s():[]),i&&e._===1?64:-2);return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),r&&r._c&&(r._d=!0),l}function Ro(e){return e.some(t=>rs(t)?!(t.type===Jt||t.type===De&&!Ro(t.children)):!0)?e:null}const $a=e=>e?Jo(e)?ur(e):$a(e.parent):null,Xn=tt(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=>$a(e.parent),$root:e=>$a(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>To(e),$forceUpdate:e=>e.f||(e.f=()=>{sr(e.update)}),$nextTick:e=>e.n||(e.n=gn.bind(e.proxy)),$watch:e=>Pu.bind(e)}),ua=(e,t)=>e!==Ne&&!e.__isScriptSetup&&Ce(e,t),Yu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:a,props:r,accessCache:i,type:o,appContext:l}=e;if(t[0]!=="$"){const f=i[t];if(f!==void 0)switch(f){case 1:return s[t];case 2:return a[t];case 4:return n[t];case 3:return r[t]}else{if(ua(s,t))return i[t]=1,s[t];if(a!==Ne&&Ce(a,t))return i[t]=2,a[t];if(Ce(r,t))return i[t]=3,r[t];if(n!==Ne&&Ce(n,t))return i[t]=4,n[t];Ta&&(i[t]=0)}}const u=Xn[t];let c,d;if(u)return t==="$attrs"&&st(e.attrs,"get",""),u(e);if((c=o.__cssModules)&&(c=c[t]))return c;if(n!==Ne&&Ce(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,Ce(d,t))return d[t]},set({_:e},t,n){const{data:s,setupState:a,ctx:r}=e;return ua(a,t)?(a[t]=n,!0):s!==Ne&&Ce(s,t)?(s[t]=n,!0):Ce(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:a,props:r,type:i}},o){let l;return!!(n[o]||e!==Ne&&o[0]!=="$"&&Ce(e,o)||ua(t,o)||Ce(r,o)||Ce(s,o)||Ce(Xn,o)||Ce(a.config.globalProperties,o)||(l=i.__cssModules)&&l[o])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ce(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Or(e){return ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ta=!0;function Xu(e){const t=To(e),n=e.proxy,s=e.ctx;Ta=!1,t.beforeCreate&&Fr(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:i,watch:o,provide:l,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:h,updated:g,activated:y,deactivated:m,beforeDestroy:P,beforeUnmount:_,destroyed:S,unmounted:E,render:F,renderTracked:D,renderTriggered:T,errorCaptured:A,serverPrefetch:R,expose:Z,inheritAttrs:ue,components:de,directives:pe,filters:B}=t;if(u&&Zu(u,s,null),i)for(const W in i){const te=i[W];be(te)&&(s[W]=te.bind(n))}if(a){const W=a.call(n,n);$e(W)&&(e.data=Yt(W))}if(Ta=!0,r)for(const W in r){const te=r[W],ve=be(te)?te.bind(n,n):be(te.get)?te.get.bind(n,n):Ot,Se=!be(te)&&be(te.set)?te.set.bind(n):Ot,Ee=Q({get:ve,set:Se});Object.defineProperty(s,W,{enumerable:!0,configurable:!0,get:()=>Ee.value,set:we=>Ee.value=we})}if(o)for(const W in o)$o(o[W],s,n,W);if(l){const W=be(l)?l.call(n):l;Reflect.ownKeys(W).forEach(te=>{Jn(te,W[te])})}c&&Fr(c,e,"c");function X(W,te){ye(te)?te.forEach(ve=>W(ve.bind(n))):te&&W(te.bind(n))}if(X(ju,d),X(bt,f),X(Vu,h),X(Hu,g),X(Mu,y),X(Uu,m),X(Co,A),X(zu,D),X(qu,T),X(qs,_),X(ds,E),X(Gu,R),ye(Z))if(Z.length){const W=e.exposed||(e.exposed={});Z.forEach(te=>{Object.defineProperty(W,te,{get:()=>n[te],set:ve=>n[te]=ve,enumerable:!0})})}else e.exposed||(e.exposed={});F&&e.render===Ot&&(e.render=F),ue!=null&&(e.inheritAttrs=ue),de&&(e.components=de),pe&&(e.directives=pe),R&&ko(e)}function Zu(e,t,n=Ot){ye(e)&&(e=Pa(e));for(const s in e){const a=e[s];let r;$e(a)?"default"in a?r=mt(a.from||s,a.default,!0):r=mt(a.from||s):r=mt(a),Ue(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:i=>r.value=i}):t[s]=r}}function Fr(e,t,n){Nt(ye(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function $o(e,t,n,s){let a=s.includes(".")?wo(n,s):()=>n[s];if(He(e)){const r=t[e];be(r)&&kt(a,r)}else if(be(e))kt(a,e.bind(n));else if($e(e))if(ye(e))e.forEach(r=>$o(r,t,n,s));else{const r=be(e.handler)?e.handler.bind(n):t[e.handler];be(r)&&kt(a,r,e)}}function To(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:i}}=e.appContext,o=r.get(t);let l;return o?l=o:!a.length&&!n&&!s?l=t:(l={},a.length&&a.forEach(u=>$s(l,u,i,!0)),$s(l,t,i)),$e(t)&&r.set(t,l),l}function $s(e,t,n,s=!1){const{mixins:a,extends:r}=t;r&&$s(e,r,n,!0),a&&a.forEach(i=>$s(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const o=Qu[i]||n&&n[i];e[i]=o?o(e[i],t[i]):t[i]}return e}const Qu={data:Nr,props:Mr,emits:Mr,methods:Gn,computed:Gn,beforeCreate:it,created:it,beforeMount:it,mounted:it,beforeUpdate:it,updated:it,beforeDestroy:it,beforeUnmount:it,destroyed:it,unmounted:it,activated:it,deactivated:it,errorCaptured:it,serverPrefetch:it,components:Gn,directives:Gn,watch:tc,provide:Nr,inject:ec};function Nr(e,t){return t?e?function(){return tt(be(e)?e.call(this,this):e,be(t)?t.call(this,this):t)}:t:e}function ec(e,t){return Gn(Pa(e),Pa(t))}function Pa(e){if(ye(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function it(e,t){return e?[...new Set([].concat(e,t))]:t}function Gn(e,t){return e?tt(Object.create(null),e,t):t}function Mr(e,t){return e?ye(e)&&ye(t)?[...new Set([...e,...t])]:tt(Object.create(null),Or(e),Or(t??{})):t}function tc(e,t){if(!e)return t;if(!t)return e;const n=tt(Object.create(null),e);for(const s in t)n[s]=it(e[s],t[s]);return n}function Po(){return{app:null,config:{isNativeTag:Ui,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let nc=0;function sc(e,t){return function(s,a=null){be(s)||(s=tt({},s)),a!=null&&!$e(a)&&(a=null);const r=Po(),i=new WeakSet,o=[];let l=!1;const u=r.app={_uid:nc++,_component:s,_props:a,_container:null,_context:r,_instance:null,version:Lc,get config(){return r.config},set config(c){},use(c,...d){return i.has(c)||(c&&be(c.install)?(i.add(c),c.install(u,...d)):be(c)&&(i.add(c),c(u,...d))),u},mixin(c){return r.mixins.includes(c)||r.mixins.push(c),u},component(c,d){return d?(r.components[c]=d,u):r.components[c]},directive(c,d){return d?(r.directives[c]=d,u):r.directives[c]},mount(c,d,f){if(!l){const h=u._ceVNode||I(s,a);return h.appContext=r,f===!0?f="svg":f===!1&&(f=void 0),e(h,c,f),l=!0,u._container=c,c.__vue_app__=u,ur(h.component)}},onUnmount(c){o.push(c)},unmount(){l&&(Nt(o,u._instance,16),e(null,u._container),delete u._container.__vue_app__)},provide(c,d){return r.provides[c]=d,u},runWithContext(c){const d=vn;vn=u;try{return c()}finally{vn=d}}};return u}}let vn=null;const ac=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ft(t)}Modifiers`]||e[`${an(t)}Modifiers`];function rc(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||Ne;let a=n;const r=t.startsWith("update:"),i=r&&ac(s,t.slice(7));i&&(i.trim&&(a=n.map(c=>He(c)?c.trim():c)),i.number&&(a=n.map(jl)));let o,l=s[o=sa(t)]||s[o=sa(ft(t))];!l&&r&&(l=s[o=sa(an(t))]),l&&Nt(l,e,6,a);const u=s[o+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[o])return;e.emitted[o]=!0,Nt(u,e,6,a)}}const ic=new WeakMap;function Io(e,t,n=!1){const s=n?ic:t.emitsCache,a=s.get(e);if(a!==void 0)return a;const r=e.emits;let i={},o=!1;if(!be(e)){const l=u=>{const c=Io(u,t,!0);c&&(o=!0,tt(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!o?($e(e)&&s.set(e,null),null):(ye(r)?r.forEach(l=>i[l]=null):tt(i,r),$e(e)&&s.set(e,i),i)}function Ks(e,t){return!e||!Os(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ce(e,t[0].toLowerCase()+t.slice(1))||Ce(e,an(t))||Ce(e,t))}function Ur(e){const{type:t,vnode:n,proxy:s,withProxy:a,propsOptions:[r],slots:i,attrs:o,emit:l,render:u,renderCache:c,props:d,data:f,setupState:h,ctx:g,inheritAttrs:y}=e,m=Es(e);let P,_;try{if(n.shapeFlag&4){const E=a||s,F=E;P=Dt(u.call(F,E,c,d,h,f,g)),_=o}else{const E=t;P=Dt(E.length>1?E(d,{attrs:o,slots:i,emit:l}):E(d,null)),_=t.props?o:oc(o)}}catch(E){Zn.length=0,Hs(E,e,1),P=I(Jt)}let S=P;if(_&&y!==!1){const E=Object.keys(_),{shapeFlag:F}=S;E.length&&F&7&&(r&&E.some(Fs)&&(_=lc(_,r)),S=Tn(S,_,!1,!0))}return n.dirs&&(S=Tn(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&ar(S,n.transition),P=S,Es(m),P}const oc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Os(n))&&((t||(t={}))[n]=e[n]);return t},lc=(e,t)=>{const n={};for(const s in e)(!Fs(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function uc(e,t,n){const{props:s,children:a,component:r}=e,{props:i,children:o,patchFlag:l}=t,u=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return s?Br(s,i,u):!!i;if(l&8){const c=t.dynamicProps;for(let d=0;d<c.length;d++){const f=c[d];if(Do(i,s,f)&&!Ks(u,f))return!0}}}else return(a||o)&&(!o||!o.$stable)?!0:s===i?!1:s?i?Br(s,i,u):!0:!!i;return!1}function Br(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let a=0;a<s.length;a++){const r=s[a];if(Do(t,e,r)&&!Ks(n,r))return!0}return!1}function Do(e,t,n){const s=e[n],a=t[n];return n==="style"&&$e(s)&&$e(a)?!Ja(s,a):s!==a}function cc({vnode:e,parent:t,suspense:n},s){for(;t;){const a=t.subTree;if(a.suspense&&a.suspense.activeBranch===e&&(a.suspense.vnode.el=a.el=s,e=a),a===e)(e=t.vnode).el=s,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=s)}const Lo={},Oo=()=>Object.create(Lo),Fo=e=>Object.getPrototypeOf(e)===Lo;function dc(e,t,n,s=!1){const a={},r=Oo();e.propsDefaults=Object.create(null),No(e,t,a,r);for(const i in e.propsOptions[0])i in a||(a[i]=void 0);n?e.props=s?a:fo(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function fc(e,t,n,s){const{props:a,attrs:r,vnode:{patchFlag:i}}=e,o=Ae(a),[l]=e.propsOptions;let u=!1;if((s||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let d=0;d<c.length;d++){let f=c[d];if(Ks(e.emitsOptions,f))continue;const h=t[f];if(l)if(Ce(r,f))h!==r[f]&&(r[f]=h,u=!0);else{const g=ft(f);a[g]=Ia(l,o,g,h,e,!1)}else h!==r[f]&&(r[f]=h,u=!0)}}}else{No(e,t,a,r)&&(u=!0);let c;for(const d in o)(!t||!Ce(t,d)&&((c=an(d))===d||!Ce(t,c)))&&(l?n&&(n[d]!==void 0||n[c]!==void 0)&&(a[d]=Ia(l,o,d,void 0,e,!0)):delete a[d]);if(r!==o)for(const d in r)(!t||!Ce(t,d))&&(delete r[d],u=!0)}u&&Ht(e.attrs,"set","")}function No(e,t,n,s){const[a,r]=e.propsOptions;let i=!1,o;if(t)for(let l in t){if(zn(l))continue;const u=t[l];let c;a&&Ce(a,c=ft(l))?!r||!r.includes(c)?n[c]=u:(o||(o={}))[c]=u:Ks(e.emitsOptions,l)||(!(l in s)||u!==s[l])&&(s[l]=u,i=!0)}if(r){const l=Ae(n),u=o||Ne;for(let c=0;c<r.length;c++){const d=r[c];n[d]=Ia(a,l,d,u[d],e,!Ce(u,d))}}return i}function Ia(e,t,n,s,a,r){const i=e[n];if(i!=null){const o=Ce(i,"default");if(o&&s===void 0){const l=i.default;if(i.type!==Function&&!i.skipFactory&&be(l)){const{propsDefaults:u}=a;if(n in u)s=u[n];else{const c=fs(a);s=u[n]=l.call(null,t),c()}}else s=l;a.ce&&a.ce._setProp(n,s)}i[0]&&(r&&!o?s=!1:i[1]&&(s===""||s===an(n))&&(s=!0))}return s}const pc=new WeakMap;function Mo(e,t,n=!1){const s=n?pc:t.propsCache,a=s.get(e);if(a)return a;const r=e.props,i={},o=[];let l=!1;if(!be(e)){const c=d=>{l=!0;const[f,h]=Mo(d,t,!0);tt(i,f),h&&o.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!l)return $e(e)&&s.set(e,An),An;if(ye(r))for(let c=0;c<r.length;c++){const d=ft(r[c]);jr(d)&&(i[d]=Ne)}else if(r)for(const c in r){const d=ft(c);if(jr(d)){const f=r[c],h=i[d]=ye(f)||be(f)?{type:f}:tt({},f),g=h.type;let y=!1,m=!0;if(ye(g))for(let P=0;P<g.length;++P){const _=g[P],S=be(_)&&_.name;if(S==="Boolean"){y=!0;break}else S==="String"&&(m=!1)}else y=be(g)&&g.name==="Boolean";h[0]=y,h[1]=m,(y||Ce(h,"default"))&&o.push(d)}}const u=[i,o];return $e(e)&&s.set(e,u),u}function jr(e){return e[0]!=="$"&&!zn(e)}const rr=e=>e==="_"||e==="_ctx"||e==="$stable",ir=e=>ye(e)?e.map(Dt):[Dt(e)],vc=(e,t,n)=>{if(t._n)return t;const s=k((...a)=>ir(t(...a)),n);return s._c=!1,s},Uo=(e,t,n)=>{const s=e._ctx;for(const a in e){if(rr(a))continue;const r=e[a];if(be(r))t[a]=vc(a,r,s);else if(r!=null){const i=ir(r);t[a]=()=>i}}},Bo=(e,t)=>{const n=ir(t);e.slots.default=()=>n},jo=(e,t,n)=>{for(const s in t)(n||!rr(s))&&(e[s]=t[s])},gc=(e,t,n)=>{const s=e.slots=Oo();if(e.vnode.shapeFlag&32){const a=t._;a?(jo(s,t,n),n&&Gi(s,"_",a,!0)):Uo(t,s)}else t&&Bo(e,t)},hc=(e,t,n)=>{const{vnode:s,slots:a}=e;let r=!0,i=Ne;if(s.shapeFlag&32){const o=t._;o?n&&o===1?r=!1:jo(a,t,n):(r=!t.$stable,Uo(t,a)),i=t}else t&&(Bo(e,t),i={default:1});if(r)for(const o in a)!rr(o)&&i[o]==null&&delete a[o]},ot=wc;function mc(e){return yc(e)}function yc(e,t){const n=Bs();n.__VUE__=!0;const{insert:s,remove:a,patchProp:r,createElement:i,createText:o,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:f,setScopeId:h=Ot,insertStaticContent:g}=e,y=(v,b,C,j=null,z=null,H=null,oe=void 0,re=null,ne=!!b.dynamicChildren)=>{if(v===b)return;v&&!Mn(v,b)&&(j=M(v),we(v,z,H,!0),v=null),b.patchFlag===-2&&(ne=!1,b.dynamicChildren=null);const{type:Y,ref:fe,shapeFlag:le}=b;switch(Y){case Ws:m(v,b,C,j);break;case Jt:P(v,b,C,j);break;case ws:v==null&&_(b,C,j,oe);break;case De:de(v,b,C,j,z,H,oe,re,ne);break;default:le&1?F(v,b,C,j,z,H,oe,re,ne):le&6?pe(v,b,C,j,z,H,oe,re,ne):(le&64||le&128)&&Y.process(v,b,C,j,z,H,oe,re,ne,x)}fe!=null&&z?Yn(fe,v&&v.ref,H,b||v,!b):fe==null&&v&&v.ref!=null&&Yn(v.ref,null,H,v,!0)},m=(v,b,C,j)=>{if(v==null)s(b.el=o(b.children),C,j);else{const z=b.el=v.el;b.children!==v.children&&u(z,b.children)}},P=(v,b,C,j)=>{v==null?s(b.el=l(b.children||""),C,j):b.el=v.el},_=(v,b,C,j)=>{[v.el,v.anchor]=g(v.children,b,C,j,v.el,v.anchor)},S=({el:v,anchor:b},C,j)=>{let z;for(;v&&v!==b;)z=f(v),s(v,C,j),v=z;s(b,C,j)},E=({el:v,anchor:b})=>{let C;for(;v&&v!==b;)C=f(v),a(v),v=C;a(b)},F=(v,b,C,j,z,H,oe,re,ne)=>{if(b.type==="svg"?oe="svg":b.type==="math"&&(oe="mathml"),v==null)D(b,C,j,z,H,oe,re,ne);else{const Y=v.el&&v.el._isVueCE?v.el:null;try{Y&&Y._beginPatch(),R(v,b,z,H,oe,re,ne)}finally{Y&&Y._endPatch()}}},D=(v,b,C,j,z,H,oe,re)=>{let ne,Y;const{props:fe,shapeFlag:le,transition:ce,dirs:me}=v;if(ne=v.el=i(v.type,H,fe&&fe.is,fe),le&8?c(ne,v.children):le&16&&A(v.children,ne,null,j,z,ca(v,H),oe,re),me&&ln(v,null,j,"created"),T(ne,v,v.scopeId,oe,j),fe){for(const Re in fe)Re!=="value"&&!zn(Re)&&r(ne,Re,null,fe[Re],H,j);"value"in fe&&r(ne,"value",null,fe.value,H),(Y=fe.onVnodeBeforeMount)&&Rt(Y,j,v)}me&&ln(v,null,j,"beforeMount");const ke=_c(z,ce);ke&&ce.beforeEnter(ne),s(ne,b,C),((Y=fe&&fe.onVnodeMounted)||ke||me)&&ot(()=>{try{Y&&Rt(Y,j,v),ke&&ce.enter(ne),me&&ln(v,null,j,"mounted")}finally{}},z)},T=(v,b,C,j,z)=>{if(C&&h(v,C),j)for(let H=0;H<j.length;H++)h(v,j[H]);if(z){let H=z.subTree;if(b===H||Go(H.type)&&(H.ssContent===b||H.ssFallback===b)){const oe=z.vnode;T(v,oe,oe.scopeId,oe.slotScopeIds,z.parent)}}},A=(v,b,C,j,z,H,oe,re,ne=0)=>{for(let Y=ne;Y<v.length;Y++){const fe=v[Y]=re?Vt(v[Y]):Dt(v[Y]);y(null,fe,b,C,j,z,H,oe,re)}},R=(v,b,C,j,z,H,oe)=>{const re=b.el=v.el;let{patchFlag:ne,dynamicChildren:Y,dirs:fe}=b;ne|=v.patchFlag&16;const le=v.props||Ne,ce=b.props||Ne;let me;if(C&&un(C,!1),(me=ce.onVnodeBeforeUpdate)&&Rt(me,C,b,v),fe&&ln(b,v,C,"beforeUpdate"),C&&un(C,!0),(le.innerHTML&&ce.innerHTML==null||le.textContent&&ce.textContent==null)&&c(re,""),Y?Z(v.dynamicChildren,Y,re,C,j,ca(b,z),H):oe||te(v,b,re,null,C,j,ca(b,z),H,!1),ne>0){if(ne&16)ue(re,le,ce,C,z);else if(ne&2&&le.class!==ce.class&&r(re,"class",null,ce.class,z),ne&4&&r(re,"style",le.style,ce.style,z),ne&8){const ke=b.dynamicProps;for(let Re=0;Re<ke.length;Re++){const Pe=ke[Re],Be=le[Pe],ie=ce[Pe];(ie!==Be||Pe==="value")&&r(re,Pe,Be,ie,z,C)}}ne&1&&v.children!==b.children&&c(re,b.children)}else!oe&&Y==null&&ue(re,le,ce,C,z);((me=ce.onVnodeUpdated)||fe)&&ot(()=>{me&&Rt(me,C,b,v),fe&&ln(b,v,C,"updated")},j)},Z=(v,b,C,j,z,H,oe)=>{for(let re=0;re<b.length;re++){const ne=v[re],Y=b[re],fe=ne.el&&(ne.type===De||!Mn(ne,Y)||ne.shapeFlag&198)?d(ne.el):C;y(ne,Y,fe,null,j,z,H,oe,!0)}},ue=(v,b,C,j,z)=>{if(b!==C){if(b!==Ne)for(const H in b)!zn(H)&&!(H in C)&&r(v,H,b[H],null,z,j);for(const H in C){if(zn(H))continue;const oe=C[H],re=b[H];oe!==re&&H!=="value"&&r(v,H,re,oe,z,j)}"value"in C&&r(v,"value",b.value,C.value,z)}},de=(v,b,C,j,z,H,oe,re,ne)=>{const Y=b.el=v?v.el:o(""),fe=b.anchor=v?v.anchor:o("");let{patchFlag:le,dynamicChildren:ce,slotScopeIds:me}=b;me&&(re=re?re.concat(me):me),v==null?(s(Y,C,j),s(fe,C,j),A(b.children||[],C,fe,z,H,oe,re,ne)):le>0&&le&64&&ce&&v.dynamicChildren&&v.dynamicChildren.length===ce.length?(Z(v.dynamicChildren,ce,C,z,H,oe,re),(b.key!=null||z&&b===z.subTree)&&or(v,b,!0)):te(v,b,C,fe,z,H,oe,re,ne)},pe=(v,b,C,j,z,H,oe,re,ne)=>{b.slotScopeIds=re,v==null?b.shapeFlag&512?z.ctx.activate(b,C,j,oe,ne):B(b,C,j,z,H,oe,ne):q(v,b,ne)},B=(v,b,C,j,z,H,oe)=>{const re=v.component=Ec(v,j,z);if(Ao(v)&&(re.ctx.renderer=x),Rc(re,!1,oe),re.asyncDep){if(z&&z.registerDep(re,X,oe),!v.el){const ne=re.subTree=I(Jt);P(null,ne,b,C),v.placeholder=ne.el}}else X(re,v,b,C,z,H,oe)},q=(v,b,C)=>{const j=b.component=v.component;if(uc(v,b,C))if(j.asyncDep&&!j.asyncResolved){W(j,b,C);return}else j.next=b,j.update();else b.el=v.el,j.vnode=b},X=(v,b,C,j,z,H,oe)=>{const re=()=>{if(v.isMounted){let{next:le,bu:ce,u:me,parent:ke,vnode:Re}=v;{const Ie=Vo(v);if(Ie){le&&(le.el=Re.el,W(v,le,oe)),Ie.asyncDep.then(()=>{ot(()=>{v.isUnmounted||Y()},z)});return}}let Pe=le,Be;un(v,!1),le?(le.el=Re.el,W(v,le,oe)):le=Re,ce&&aa(ce),(Be=le.props&&le.props.onVnodeBeforeUpdate)&&Rt(Be,ke,le,Re),un(v,!0);const ie=Ur(v),O=v.subTree;v.subTree=ie,y(O,ie,d(O.el),M(O),v,z,H),le.el=ie.el,Pe===null&&cc(v,ie.el),me&&ot(me,z),(Be=le.props&&le.props.onVnodeUpdated)&&ot(()=>Rt(Be,ke,le,Re),z)}else{let le;const{el:ce,props:me}=b,{bm:ke,m:Re,parent:Pe,root:Be,type:ie}=v,O=En(b);un(v,!1),ke&&aa(ke),!O&&(le=me&&me.onVnodeBeforeMount)&&Rt(le,Pe,b),un(v,!0);{Be.ce&&Be.ce._hasShadowRoot()&&Be.ce._injectChildStyle(ie,v.parent?v.parent.type:void 0);const Ie=v.subTree=Ur(v);y(null,Ie,C,j,v,z,H),b.el=Ie.el}if(Re&&ot(Re,z),!O&&(le=me&&me.onVnodeMounted)){const Ie=b;ot(()=>Rt(le,Pe,Ie),z)}(b.shapeFlag&256||Pe&&En(Pe.vnode)&&Pe.vnode.shapeFlag&256)&&v.a&&ot(v.a,z),v.isMounted=!0,b=C=j=null}};v.scope.on();const ne=v.effect=new Xi(re);v.scope.off();const Y=v.update=ne.run.bind(ne),fe=v.job=ne.runIfDirty.bind(ne);fe.i=v,fe.id=v.uid,ne.scheduler=()=>sr(fe),un(v,!0),Y()},W=(v,b,C)=>{b.component=v;const j=v.vnode.props;v.vnode=b,v.next=null,fc(v,b.props,j,C),hc(v,b.children,C),qt(),$r(v),zt()},te=(v,b,C,j,z,H,oe,re,ne=!1)=>{const Y=v&&v.children,fe=v?v.shapeFlag:0,le=b.children,{patchFlag:ce,shapeFlag:me}=b;if(ce>0){if(ce&128){Se(Y,le,C,j,z,H,oe,re,ne);return}else if(ce&256){ve(Y,le,C,j,z,H,oe,re,ne);return}}me&8?(fe&16&&Te(Y,z,H),le!==Y&&c(C,le)):fe&16?me&16?Se(Y,le,C,j,z,H,oe,re,ne):Te(Y,z,H,!0):(fe&8&&c(C,""),me&16&&A(le,C,j,z,H,oe,re,ne))},ve=(v,b,C,j,z,H,oe,re,ne)=>{v=v||An,b=b||An;const Y=v.length,fe=b.length,le=Math.min(Y,fe);let ce;for(ce=0;ce<le;ce++){const me=b[ce]=ne?Vt(b[ce]):Dt(b[ce]);y(v[ce],me,C,null,z,H,oe,re,ne)}Y>fe?Te(v,z,H,!0,!1,le):A(b,C,j,z,H,oe,re,ne,le)},Se=(v,b,C,j,z,H,oe,re,ne)=>{let Y=0;const fe=b.length;let le=v.length-1,ce=fe-1;for(;Y<=le&&Y<=ce;){const me=v[Y],ke=b[Y]=ne?Vt(b[Y]):Dt(b[Y]);if(Mn(me,ke))y(me,ke,C,null,z,H,oe,re,ne);else break;Y++}for(;Y<=le&&Y<=ce;){const me=v[le],ke=b[ce]=ne?Vt(b[ce]):Dt(b[ce]);if(Mn(me,ke))y(me,ke,C,null,z,H,oe,re,ne);else break;le--,ce--}if(Y>le){if(Y<=ce){const me=ce+1,ke=me<fe?b[me].el:j;for(;Y<=ce;)y(null,b[Y]=ne?Vt(b[Y]):Dt(b[Y]),C,ke,z,H,oe,re,ne),Y++}}else if(Y>ce)for(;Y<=le;)we(v[Y],z,H,!0),Y++;else{const me=Y,ke=Y,Re=new Map;for(Y=ke;Y<=ce;Y++){const We=b[Y]=ne?Vt(b[Y]):Dt(b[Y]);We.key!=null&&Re.set(We.key,Y)}let Pe,Be=0;const ie=ce-ke+1;let O=!1,Ie=0;const et=new Array(ie);for(Y=0;Y<ie;Y++)et[Y]=0;for(Y=me;Y<=le;Y++){const We=v[Y];if(Be>=ie){we(We,z,H,!0);continue}let ze;if(We.key!=null)ze=Re.get(We.key);else for(Pe=ke;Pe<=ce;Pe++)if(et[Pe-ke]===0&&Mn(We,b[Pe])){ze=Pe;break}ze===void 0?we(We,z,H,!0):(et[ze-ke]=Y+1,ze>=Ie?Ie=ze:O=!0,y(We,b[ze],C,null,z,H,oe,re,ne),Be++)}const he=O?bc(et):An;for(Pe=he.length-1,Y=ie-1;Y>=0;Y--){const We=ke+Y,ze=b[We],Fn=b[We+1],Ar=We+1<fe?Fn.el||Ho(Fn):j;et[Y]===0?y(null,ze,C,Ar,z,H,oe,re,ne):O&&(Pe<0||Y!==he[Pe]?Ee(ze,C,Ar,2):Pe--)}}},Ee=(v,b,C,j,z=null)=>{const{el:H,type:oe,transition:re,children:ne,shapeFlag:Y}=v;if(Y&6){Ee(v.component.subTree,b,C,j);return}if(Y&128){v.suspense.move(b,C,j);return}if(Y&64){oe.move(v,b,C,x);return}if(oe===De){s(H,b,C);for(let le=0;le<ne.length;le++)Ee(ne[le],b,C,j);s(v.anchor,b,C);return}if(oe===ws){S(v,b,C);return}if(j!==2&&Y&1&&re)if(j===0)re.beforeEnter(H),s(H,b,C),ot(()=>re.enter(H),z);else{const{leave:le,delayLeave:ce,afterLeave:me}=re,ke=()=>{v.ctx.isUnmounted?a(H):s(H,b,C)},Re=()=>{H._isLeaving&&H[Nu](!0),le(H,()=>{ke(),me&&me()})};ce?ce(H,ke,Re):Re()}else s(H,b,C)},we=(v,b,C,j=!1,z=!1)=>{const{type:H,props:oe,ref:re,children:ne,dynamicChildren:Y,shapeFlag:fe,patchFlag:le,dirs:ce,cacheIndex:me,memo:ke}=v;if(le===-2&&(z=!1),re!=null&&(qt(),Yn(re,null,C,v,!0),zt()),me!=null&&(b.renderCache[me]=void 0),fe&256){b.ctx.deactivate(v);return}const Re=fe&1&&ce,Pe=!En(v);let Be;if(Pe&&(Be=oe&&oe.onVnodeBeforeUnmount)&&Rt(Be,b,v),fe&6)Ve(v.component,C,j);else{if(fe&128){v.suspense.unmount(C,j);return}Re&&ln(v,null,b,"beforeUnmount"),fe&64?v.type.remove(v,b,C,x,j):Y&&!Y.hasOnce&&(H!==De||le>0&&le&64)?Te(Y,b,C,!1,!0):(H===De&&le&384||!z&&fe&16)&&Te(ne,b,C),j&&Me(v)}const ie=ke!=null&&me==null;(Pe&&(Be=oe&&oe.onVnodeUnmounted)||Re||ie)&&ot(()=>{Be&&Rt(Be,b,v),Re&&ln(v,null,b,"unmounted"),ie&&(v.el=null)},C)},Me=v=>{const{type:b,el:C,anchor:j,transition:z}=v;if(b===De){je(C,j);return}if(b===ws){E(v);return}const H=()=>{a(C),z&&!z.persisted&&z.afterLeave&&z.afterLeave()};if(v.shapeFlag&1&&z&&!z.persisted){const{leave:oe,delayLeave:re}=z,ne=()=>oe(C,H);re?re(v.el,H,ne):ne()}else H()},je=(v,b)=>{let C;for(;v!==b;)C=f(v),a(v),v=C;a(b)},Ve=(v,b,C)=>{const{bum:j,scope:z,job:H,subTree:oe,um:re,m:ne,a:Y}=v;Vr(ne),Vr(Y),j&&aa(j),z.stop(),H&&(H.flags|=8,we(oe,v,b,C)),re&&ot(re,b),ot(()=>{v.isUnmounted=!0},b)},Te=(v,b,C,j=!1,z=!1,H=0)=>{for(let oe=H;oe<v.length;oe++)we(v[oe],b,C,j,z)},M=v=>{if(v.shapeFlag&6)return M(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const b=f(v.anchor||v.el),C=b&&b[So];return C?f(C):b};let se=!1;const $=(v,b,C)=>{let j;v==null?b._vnode&&(we(b._vnode,null,null,!0),j=b._vnode.component):y(b._vnode||null,v,b,null,null,null,C),b._vnode=v,se||(se=!0,$r(j),mo(),se=!1)},x={p:y,um:we,m:Ee,r:Me,mt:B,mc:A,pc:te,pbc:Z,n:M,o:e};return{render:$,hydrate:void 0,createApp:sc($)}}function ca({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 un({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function _c(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function or(e,t,n=!1){const s=e.children,a=t.children;if(ye(s)&&ye(a))for(let r=0;r<s.length;r++){const i=s[r];let o=a[r];o.shapeFlag&1&&!o.dynamicChildren&&((o.patchFlag<=0||o.patchFlag===32)&&(o=a[r]=Vt(a[r]),o.el=i.el),!n&&o.patchFlag!==-2&&or(i,o)),o.type===Ws&&(o.patchFlag===-1&&(o=a[r]=Vt(o)),o.el=i.el),o.type===Jt&&!o.el&&(o.el=i.el)}}function bc(e){const t=e.slice(),n=[0];let s,a,r,i,o;const l=e.length;for(s=0;s<l;s++){const u=e[s];if(u!==0){if(a=n[n.length-1],e[a]<u){t[s]=a,n.push(s);continue}for(r=0,i=n.length-1;r<i;)o=r+i>>1,e[n[o]]<u?r=o+1:i=o;u<e[n[r]]&&(r>0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,i=n[r-1];r-- >0;)n[r]=i,i=t[i];return n}function Vo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vo(t)}function Vr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Ho(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Ho(t.subTree):null}const Go=e=>e.__isSuspense;function wc(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):Eu(e)}const De=Symbol.for("v-fgt"),Ws=Symbol.for("v-txt"),Jt=Symbol.for("v-cmt"),ws=Symbol.for("v-stc"),Zn=[];let vt=null;function w(e=!1){Zn.push(vt=e?null:[])}function Sc(){Zn.pop(),vt=Zn[Zn.length-1]||null}let as=1;function Ts(e,t=!1){as+=e,e<0&&vt&&t&&(vt.hasOnce=!0)}function qo(e){return e.dynamicChildren=as>0?vt||An:null,Sc(),as>0&&vt&&vt.push(e),e}function G(e,t,n,s,a,r){return qo(L(e,t,n,s,a,r,!0))}function K(e,t,n,s,a){return qo(I(e,t,n,s,a,!0))}function rs(e){return e?e.__v_isVNode===!0:!1}function Mn(e,t){return e.type===t.type&&e.key===t.key}const zo=({key:e})=>e??null,Ss=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?He(e)||Ue(e)||be(e)?{i:dt,r:e,k:t,f:!!n}:e:null);function L(e,t=null,n=null,s=0,a=null,r=e===De?0:1,i=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&zo(t),ref:t&&Ss(t),scopeId:_o,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:r,patchFlag:s,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:dt};return o?(lr(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=He(n)?8:16),as>0&&!i&&vt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&vt.push(l),l}const I=kc;function kc(e,t=null,n=null,s=0,a=null,r=!1){if((!e||e===Wu)&&(e=Jt),rs(e)){const o=Tn(e,t,!0);return n&&lr(o,n),as>0&&!r&&vt&&(o.shapeFlag&6?vt[vt.indexOf(e)]=o:vt.push(o)),o.patchFlag=-2,o}if(Dc(e)&&(e=e.__vccOpts),t){t=Ac(t);let{class:o,style:l}=t;o&&!He(o)&&(t.class=Ft(o)),$e(l)&&(Vs(l)&&!ye(l)&&(l=tt({},l)),t.style=Wa(l))}const i=He(e)?1:Go(e)?128:Iu(e)?64:$e(e)?4:be(e)?2:0;return L(e,t,n,s,a,i,r,!0)}function Ac(e){return e?Vs(e)||Fo(e)?tt({},e):e:null}function Tn(e,t,n=!1,s=!1){const{props:a,ref:r,patchFlag:i,children:o,transition:l}=e,u=t?Wo(a||{},t):a,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&zo(u),ref:t&&t.ref?n&&r?ye(r)?r.concat(Ss(t)):[r,Ss(t)]:Ss(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==De?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Tn(e.ssContent),ssFallback:e.ssFallback&&Tn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&s&&ar(c,l.clone(c)),c}function U(e=" ",t=0){return I(Ws,null,e,t)}function Ko(e,t){const n=I(ws,null,e);return n.staticCount=t,n}function ae(e="",t=!1){return t?(w(),K(Jt,null,e)):I(Jt,null,e)}function Dt(e){return e==null||typeof e=="boolean"?I(Jt):ye(e)?I(De,null,e.slice()):rs(e)?Vt(e):I(Ws,null,String(e))}function Vt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Tn(e)}function lr(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(ye(t))n=16;else if(typeof t=="object")if(s&65){const a=t.default;a&&(a._c&&(a._d=!1),lr(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!Fo(t)?t._ctx=dt:a===3&&dt&&(dt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else be(t)?(t={default:t,_ctx:dt},n=32):(t=String(t),s&64?(n=16,t=[U(t)]):n=8);e.children=t,e.shapeFlag|=n}function Wo(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const a in s)if(a==="class")t.class!==s.class&&(t.class=Ft([t.class,s.class]));else if(a==="style")t.style=Wa([t.style,s.style]);else if(Os(a)){const r=t[a],i=s[a];i&&r!==i&&!(ye(r)&&r.includes(i))?t[a]=r?[].concat(r,i):i:i==null&&r==null&&!Fs(a)&&(t[a]=i)}else a!==""&&(t[a]=s[a])}return t}function Rt(e,t,n,s=null){Nt(e,t,7,[n,s])}const xc=Po();let Cc=0;function Ec(e,t,n){const s=e.type,a=(t?t.appContext:e.appContext)||xc,r={uid:Cc++,vnode:e,type:s,parent:t,appContext:a,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Wi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(a.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Mo(s,a),emitsOptions:Io(s,a),emit:null,emitted:null,propsDefaults:Ne,inheritAttrs:s.inheritAttrs,ctx:Ne,data:Ne,props:Ne,attrs:Ne,slots:Ne,refs:Ne,setupState:Ne,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=t?t.root:r,r.emit=rc.bind(null,r),e.ce&&e.ce(r),r}let at=null;const Js=()=>at||dt;let Ps,Da;{const e=Bs(),t=(n,s)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(s),r=>{a.length>1?a.forEach(i=>i(r)):a[0](r)}};Ps=t("__VUE_INSTANCE_SETTERS__",n=>at=n),Da=t("__VUE_SSR_SETTERS__",n=>is=n)}const fs=e=>{const t=at;return Ps(e),e.scope.on(),()=>{e.scope.off(),Ps(t)}},Hr=()=>{at&&at.scope.off(),Ps(null)};function Jo(e){return e.vnode.shapeFlag&4}let is=!1;function Rc(e,t=!1,n=!1){t&&Da(t);const{props:s,children:a}=e.vnode,r=Jo(e);dc(e,s,r,t),gc(e,a,n||t);const i=r?$c(e,t):void 0;return t&&Da(!1),i}function $c(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Yu);const{setup:s}=n;if(s){qt();const a=e.setupContext=s.length>1?Pc(e):null,r=fs(e),i=cs(s,e,0,[e.props,a]),o=ji(i);if(zt(),r(),(o||e.sp)&&!En(e)&&ko(e),o){if(i.then(Hr,Hr),t)return i.then(l=>{Gr(e,l)}).catch(l=>{Hs(l,e,0)});e.asyncDep=i}else Gr(e,i)}else Yo(e)}function Gr(e,t,n){be(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:$e(t)&&(e.setupState=vo(t)),Yo(e)}function Yo(e,t,n){const s=e.type;e.render||(e.render=s.render||Ot);{const a=fs(e);qt();try{Xu(e)}finally{zt(),a()}}}const Tc={get(e,t){return st(e,"get",""),e[t]}};function Pc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Tc),slots:e.slots,emit:e.emit,expose:t}}function ur(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(vo(nr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Xn)return Xn[n](e)},has(t,n){return n in t||n in Xn}})):e.proxy}function Ic(e,t=!0){return be(e)?e.displayName||e.name:e.name||t&&e.__name}function Dc(e){return be(e)&&"__vccOpts"in e}const Q=(e,t)=>Su(e,t,is);function V(e,t,n){try{Ts(-1);const s=arguments.length;return s===2?$e(t)&&!ye(t)?rs(t)?I(e,null,[t]):I(e,t):I(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&rs(n)&&(n=[n]),I(e,t,n))}finally{Ts(1)}}const Lc="3.5.33";/**
* @vue/runtime-dom v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let La;const qr=typeof window<"u"&&window.trustedTypes;if(qr)try{La=qr.createPolicy("vue",{createHTML:e=>e})}catch{}const Xo=La?e=>La.createHTML(e):e=>e,Oc="http://www.w3.org/2000/svg",Fc="http://www.w3.org/1998/Math/MathML",jt=typeof document<"u"?document:null,zr=jt&&jt.createElement("template"),Nc={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 a=t==="svg"?jt.createElementNS(Oc,e):t==="mathml"?jt.createElementNS(Fc,e):n?jt.createElement(e,{is:n}):jt.createElement(e);return e==="select"&&s&&s.multiple!=null&&a.setAttribute("multiple",s.multiple),a},createText:e=>jt.createTextNode(e),createComment:e=>jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,a,r){const i=n?n.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===r||!(a=a.nextSibling)););else{zr.innerHTML=Xo(s==="svg"?`<svg>${e}</svg>`:s==="mathml"?`<math>${e}</math>`:e);const o=zr.content;if(s==="svg"||s==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}t.insertBefore(o,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Mc=Symbol("_vtc");function Uc(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 Kr=Symbol("_vod"),Bc=Symbol("_vsh"),jc=Symbol(""),Vc=/(?:^|;)\s*display\s*:/;function Hc(e,t,n){const s=e.style,a=He(n);let r=!1;if(n&&!a){if(t)if(He(t))for(const i of t.split(";")){const o=i.slice(0,i.indexOf(":")).trim();n[o]==null&&qn(s,o,"")}else for(const i in t)n[i]==null&&qn(s,i,"");for(const i in n){i==="display"&&(r=!0);const o=n[i];o!=null?qc(e,i,!He(t)&&t?t[i]:void 0,o)||qn(s,i,o):qn(s,i,"")}}else if(a){if(t!==n){const i=s[jc];i&&(n+=";"+i),s.cssText=n,r=Vc.test(n)}}else t&&e.removeAttribute("style");Kr in e&&(e[Kr]=r?s.display:"",e[Bc]&&(s.display="none"))}const Wr=/\s*!important$/;function qn(e,t,n){if(ye(n))n.forEach(s=>qn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Gc(e,t);Wr.test(n)?e.setProperty(an(s),n.replace(Wr,""),"important"):e[s]=n}}const Jr=["Webkit","Moz","ms"],da={};function Gc(e,t){const n=da[t];if(n)return n;let s=ft(t);if(s!=="filter"&&s in e)return da[t]=s;s=Us(s);for(let a=0;a<Jr.length;a++){const r=Jr[a]+s;if(r in e)return da[t]=r}return t}function qc(e,t,n,s){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&He(s)&&n===s}const Yr="http://www.w3.org/1999/xlink";function Xr(e,t,n,s,a,r=Kl(t)){s&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(Yr,t.slice(6,t.length)):e.setAttributeNS(Yr,t,n):n==null||r&&!qi(n)?e.removeAttribute(t):e.setAttribute(t,r?"":yt(n)?String(n):n)}function Zr(e,t,n,s,a){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Xo(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const o=r==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(o!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const o=typeof e[t];o==="boolean"?n=qi(n):n==null&&o==="string"?(n="",i=!0):o==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(a||t)}function zc(e,t,n,s){e.addEventListener(t,n,s)}function Kc(e,t,n,s){e.removeEventListener(t,n,s)}const Qr=Symbol("_vei");function Wc(e,t,n,s,a=null){const r=e[Qr]||(e[Qr]={}),i=r[t];if(s&&i)i.value=s;else{const[o,l]=Jc(t);if(s){const u=r[t]=Zc(s,a);zc(e,o,u,l)}else i&&(Kc(e,o,i,l),r[t]=void 0)}}const ei=/(?:Once|Passive|Capture)$/;function Jc(e){let t;if(ei.test(e)){t={};let s;for(;s=e.match(ei);)e=e.slice(0,e.length-s[0].length),t[s[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):an(e.slice(2)),t]}let fa=0;const Yc=Promise.resolve(),Xc=()=>fa||(Yc.then(()=>fa=0),fa=Date.now());function Zc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Nt(Qc(s,n.value),t,5,[s])};return n.value=e,n.attached=Xc(),n}function Qc(e,t){if(ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>a=>!a._stopped&&s&&s(a))}else return t}const ti=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ed=(e,t,n,s,a,r)=>{const i=a==="svg";t==="class"?Uc(e,s,i):t==="style"?Hc(e,n,s):Os(t)?Fs(t)||Wc(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):td(e,t,s,i))?(Zr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xr(e,t,s,i,r,t!=="value")):e._isVueCE&&(nd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!He(s)))?Zr(e,ft(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Xr(e,t,s,i))};function td(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&ti(t)&&be(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return ti(t)&&He(n)?!1:t in e}function nd(e,t){const n=e._def.props;if(!n)return!1;const s=ft(t);return Array.isArray(n)?n.some(a=>ft(a)===s):Object.keys(n).some(a=>ft(a)===s)}const sd=["ctrl","shift","alt","meta"],ad={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)=>sd.some(n=>e[`${n}Key`]&&!t.includes(n))},Ys=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=((a,...r)=>{for(let i=0;i<t.length;i++){const o=ad[t[i]];if(o&&o(a,t))return}return e(a,...r)}))},rd={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},id=(e,t)=>{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=(a=>{if(!("key"in a))return;const r=an(a.key);if(t.some(i=>i===r||rd[i]===r))return e(a)}))},od=tt({patchProp:ed},Nc);let ni;function ld(){return ni||(ni=mc(od))}const ud=((...e)=>{const t=ld().createApp(...e),{mount:n}=t;return t.mount=s=>{const a=dd(s);if(!a)return;const r=t._component;!be(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const i=n(a,!1,cd(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),i},t});function cd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function dd(e){return He(e)?document.querySelector(e):e}/*!
* pinia v2.3.1
* (c) 2025 Eduardo San Martin Morote
* @license MIT
*/let Zo;const Xs=e=>Zo=e,Qo=Symbol();function Oa(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Qn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Qn||(Qn={}));function fd(){const e=Ji(!0),t=e.run(()=>J({}));let n=[],s=[];const a=nr({install(r){Xs(a),a._a=r,r.provide(Qo,a),r.config.globalProperties.$pinia=a,s.forEach(i=>n.push(i)),s=[]},use(r){return this._a?n.push(r):s.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return a}const el=()=>{};function si(e,t,n,s=el){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),s())};return!n&&Yi()&&Jl(a),a}function bn(e,...t){e.slice().forEach(n=>{n(...t)})}const pd=e=>e(),ai=Symbol(),pa=Symbol();function Fa(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,s)=>e.set(s,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const s=t[n],a=e[n];Oa(a)&&Oa(s)&&e.hasOwnProperty(n)&&!Ue(s)&&!Gt(s)?e[n]=Fa(a,s):e[n]=s}return e}const vd=Symbol();function gd(e){return!Oa(e)||!e.hasOwnProperty(vd)}const{assign:en}=Object;function hd(e){return!!(Ue(e)&&e.effect)}function md(e,t,n,s){const{state:a,actions:r,getters:i}=t,o=n.state.value[e];let l;function u(){o||(n.state.value[e]=a?a():{});const c=yu(n.state.value[e]);return en(c,r,Object.keys(i||{}).reduce((d,f)=>(d[f]=nr(Q(()=>{Xs(n);const h=n._s.get(e);return i[f].call(h,h)})),d),{}))}return l=tl(e,u,t,n,s,!0),l}function tl(e,t,n={},s,a,r){let i;const o=en({actions:{}},n),l={deep:!0};let u,c,d=[],f=[],h;const g=s.state.value[e];!r&&!g&&(s.state.value[e]={});let y;function m(A){let R;u=c=!1,typeof A=="function"?(A(s.state.value[e]),R={type:Qn.patchFunction,storeId:e,events:h}):(Fa(s.state.value[e],A),R={type:Qn.patchObject,payload:A,storeId:e,events:h});const Z=y=Symbol();gn().then(()=>{y===Z&&(u=!0)}),c=!0,bn(d,R,s.state.value[e])}const P=r?function(){const{state:R}=n,Z=R?R():{};this.$patch(ue=>{en(ue,Z)})}:el;function _(){i.stop(),d=[],f=[],s._s.delete(e)}const S=(A,R="")=>{if(ai in A)return A[pa]=R,A;const Z=function(){Xs(s);const ue=Array.from(arguments),de=[],pe=[];function B(W){de.push(W)}function q(W){pe.push(W)}bn(f,{args:ue,name:Z[pa],store:F,after:B,onError:q});let X;try{X=A.apply(this&&this.$id===e?this:F,ue)}catch(W){throw bn(pe,W),W}return X instanceof Promise?X.then(W=>(bn(de,W),W)).catch(W=>(bn(pe,W),Promise.reject(W))):(bn(de,X),X)};return Z[ai]=!0,Z[pa]=R,Z},E={_p:s,$id:e,$onAction:si.bind(null,f),$patch:m,$reset:P,$subscribe(A,R={}){const Z=si(d,A,R.detached,()=>ue()),ue=i.run(()=>kt(()=>s.state.value[e],de=>{(R.flush==="sync"?c:u)&&A({storeId:e,type:Qn.direct,events:h},de)},en({},l,R)));return Z},$dispose:_},F=Yt(E);s._s.set(e,F);const T=(s._a&&s._a.runWithContext||pd)(()=>s._e.run(()=>(i=Ji()).run(()=>t({action:S}))));for(const A in T){const R=T[A];if(Ue(R)&&!hd(R)||Gt(R))r||(g&&gd(R)&&(Ue(R)?R.value=g[A]:Fa(R,g[A])),s.state.value[e][A]=R);else if(typeof R=="function"){const Z=S(R,A);T[A]=Z,o.actions[A]=R}}return en(F,T),en(Ae(F),T),Object.defineProperty(F,"$state",{get:()=>s.state.value[e],set:A=>{m(R=>{en(R,A)})}}),s._p.forEach(A=>{en(F,i.run(()=>A({store:F,app:s._a,pinia:s,options:o})))}),g&&r&&n.hydrate&&n.hydrate(F.$state,g),u=!0,c=!0,F}/*! #__NO_SIDE_EFFECTS__ */function hn(e,t,n){let s,a;const r=typeof t=="function";typeof e=="string"?(s=e,a=r?n:t):(a=e,s=e.id);function i(o,l){const u=Ru();return o=o||(u?mt(Qo,null):null),o&&Xs(o),o=Zo,o._s.has(s)||(r?tl(s,t,a,o):md(s,a,o)),o._s.get(s)}return i.$id=s,i}/*!
* vue-router v4.6.4
* (c) 2025 Eduardo San Martin Morote
* @license MIT
*/const Sn=typeof document<"u";function nl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function yd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&nl(e.default)}const xe=Object.assign;function va(e,t){const n={};for(const s in t){const a=t[s];n[s]=Ct(a)?a.map(e):e(a)}return n}const es=()=>{},Ct=Array.isArray;function ri(e,t){const n={};for(const s in e)n[s]=s in t?t[s]:e[s];return n}const sl=/#/g,_d=/&/g,bd=/\//g,wd=/=/g,Sd=/\?/g,al=/\+/g,kd=/%5B/g,Ad=/%5D/g,rl=/%5E/g,xd=/%60/g,il=/%7B/g,Cd=/%7C/g,ol=/%7D/g,Ed=/%20/g;function cr(e){return e==null?"":encodeURI(""+e).replace(Cd,"|").replace(kd,"[").replace(Ad,"]")}function Rd(e){return cr(e).replace(il,"{").replace(ol,"}").replace(rl,"^")}function Na(e){return cr(e).replace(al,"%2B").replace(Ed,"+").replace(sl,"%23").replace(_d,"%26").replace(xd,"`").replace(il,"{").replace(ol,"}").replace(rl,"^")}function $d(e){return Na(e).replace(wd,"%3D")}function Td(e){return cr(e).replace(sl,"%23").replace(Sd,"%3F")}function Pd(e){return Td(e).replace(bd,"%2F")}function os(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Id=/\/$/,Dd=e=>e.replace(Id,"");function ga(e,t,n="/"){let s,a={},r="",i="";const o=t.indexOf("#");let l=t.indexOf("?");return l=o>=0&&l>o?-1:l,l>=0&&(s=t.slice(0,l),r=t.slice(l,o>0?o:t.length),a=e(r.slice(1))),o>=0&&(s=s||t.slice(0,o),i=t.slice(o,t.length)),s=Nd(s??t,n),{fullPath:s+r+i,path:s,query:a,hash:os(i)}}function Ld(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ii(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Od(e,t,n){const s=t.matched.length-1,a=n.matched.length-1;return s>-1&&s===a&&Pn(t.matched[s],n.matched[a])&&ll(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ll(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Fd(e[n],t[n]))return!1;return!0}function Fd(e,t){return Ct(e)?oi(e,t):Ct(t)?oi(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function oi(e,t){return Ct(t)?e.length===t.length&&e.every((n,s)=>n===t[s]):e.length===1&&e[0]===t}function Nd(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),s=e.split("/"),a=s[s.length-1];(a===".."||a===".")&&s.push("");let r=n.length-1,i,o;for(i=0;i<s.length;i++)if(o=s[i],o!==".")if(o==="..")r>1&&r--;else break;return n.slice(0,r).join("/")+"/"+s.slice(i).join("/")}const Zt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ma=(function(e){return e.pop="pop",e.push="push",e})({}),ha=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Md(e){if(!e)if(Sn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Dd(e)}const Ud=/^[^#]+#/;function Bd(e,t){return e.replace(Ud,"#")+t}function jd(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 Zs=()=>({left:window.scrollX,top:window.scrollY});function Vd(e){let t;if("el"in e){const n=e.el,s=typeof n=="string"&&n.startsWith("#"),a=typeof n=="string"?s?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!a)return;t=jd(a,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 li(e,t){return(history.state?history.state.position-t:-1)+e}const Ua=new Map;function Hd(e,t){Ua.set(e,t)}function Gd(e){const t=Ua.get(e);return Ua.delete(e),t}function qd(e){return typeof e=="string"||e&&typeof e=="object"}function ul(e){return typeof e=="string"||typeof e=="symbol"}let Ge=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const cl=Symbol("");Ge.MATCHER_NOT_FOUND+"",Ge.NAVIGATION_GUARD_REDIRECT+"",Ge.NAVIGATION_ABORTED+"",Ge.NAVIGATION_CANCELLED+"",Ge.NAVIGATION_DUPLICATED+"";function In(e,t){return xe(new Error,{type:e,[cl]:!0},t)}function Bt(e,t){return e instanceof Error&&cl in e&&(t==null||!!(e.type&t))}const zd=["params","query","hash"];function Kd(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of zd)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Wd(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<n.length;++s){const a=n[s].replace(al," "),r=a.indexOf("="),i=os(r<0?a:a.slice(0,r)),o=r<0?null:os(a.slice(r+1));if(i in t){let l=t[i];Ct(l)||(l=t[i]=[l]),l.push(o)}else t[i]=o}return t}function ui(e){let t="";for(let n in e){const s=e[n];if(n=$d(n),s==null){s!==void 0&&(t+=(t.length?"&":"")+n);continue}(Ct(s)?s.map(a=>a&&Na(a)):[s&&Na(s)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function Jd(e){const t={};for(const n in e){const s=e[n];s!==void 0&&(t[n]=Ct(s)?s.map(a=>a==null?null:""+a):s==null?s:""+s)}return t}const Yd=Symbol(""),ci=Symbol(""),Qs=Symbol(""),dr=Symbol(""),Ba=Symbol("");function Un(){let e=[];function t(s){return e.push(s),()=>{const a=e.indexOf(s);a>-1&&e.splice(a,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function nn(e,t,n,s,a,r=i=>i()){const i=s&&(s.enterCallbacks[a]=s.enterCallbacks[a]||[]);return()=>new Promise((o,l)=>{const u=f=>{f===!1?l(In(Ge.NAVIGATION_ABORTED,{from:n,to:t})):f instanceof Error?l(f):qd(f)?l(In(Ge.NAVIGATION_GUARD_REDIRECT,{from:t,to:f})):(i&&s.enterCallbacks[a]===i&&typeof f=="function"&&i.push(f),o())},c=r(()=>e.call(s&&s.instances[a],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(f=>l(f))})}function ma(e,t,n,s,a=r=>r()){const r=[];for(const i of e)for(const o in i.components){let l=i.components[o];if(!(t!=="beforeRouteEnter"&&!i.instances[o]))if(nl(l)){const u=(l.__vccOpts||l)[t];u&&r.push(nn(u,n,s,i,o,a))}else{let u=l();r.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${o}" at "${i.path}"`);const d=yd(c)?c.default:c;i.mods[o]=c,i.components[o]=d;const f=(d.__vccOpts||d)[t];return f&&nn(f,n,s,i,o,a)()}))}}return r}function Xd(e,t){const n=[],s=[],a=[],r=Math.max(t.matched.length,e.matched.length);for(let i=0;i<r;i++){const o=t.matched[i];o&&(e.matched.find(u=>Pn(u,o))?s.push(o):n.push(o));const l=e.matched[i];l&&(t.matched.find(u=>Pn(u,l))||a.push(l))}return[n,s,a]}/*!
* vue-router v4.6.4
* (c) 2025 Eduardo San Martin Morote
* @license MIT
*/let Zd=()=>location.protocol+"//"+location.host;function dl(e,t){const{pathname:n,search:s,hash:a}=t,r=e.indexOf("#");if(r>-1){let i=a.includes(e.slice(r))?e.slice(r).length:1,o=a.slice(i);return o[0]!=="/"&&(o="/"+o),ii(o,"")}return ii(n,e)+s+a}function Qd(e,t,n,s){let a=[],r=[],i=null;const o=({state:f})=>{const h=dl(e,location),g=n.value,y=t.value;let m=0;if(f){if(n.value=h,t.value=f,i&&i===g){i=null;return}m=y?f.position-y.position:0}else s(h);a.forEach(P=>{P(n.value,g,{delta:m,type:Ma.pop,direction:m?m>0?ha.forward:ha.back:ha.unknown})})};function l(){i=n.value}function u(f){a.push(f);const h=()=>{const g=a.indexOf(f);g>-1&&a.splice(g,1)};return r.push(h),h}function c(){if(document.visibilityState==="hidden"){const{history:f}=window;if(!f.state)return;f.replaceState(xe({},f.state,{scroll:Zs()}),"")}}function d(){for(const f of r)f();r=[],window.removeEventListener("popstate",o),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",o),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:u,destroy:d}}function di(e,t,n,s=!1,a=!1){return{back:e,current:t,forward:n,replaced:s,position:window.history.length,scroll:a?Zs():null}}function ef(e){const{history:t,location:n}=window,s={value:dl(e,n)},a={value:t.state};a.value||r(s.value,{back:null,current:s.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(l,u,c){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+l:Zd()+e+l;try{t[c?"replaceState":"pushState"](u,"",f),a.value=u}catch(h){console.error(h),n[c?"replace":"assign"](f)}}function i(l,u){r(l,xe({},t.state,di(a.value.back,l,a.value.forward,!0),u,{position:a.value.position}),!0),s.value=l}function o(l,u){const c=xe({},a.value,t.state,{forward:l,scroll:Zs()});r(c.current,c,!0),r(l,xe({},di(s.value,l,null),{position:c.position+1},u),!1),s.value=l}return{location:s,state:a,push:o,replace:i}}function tf(e){e=Md(e);const t=ef(e),n=Qd(e,t.state,t.location,t.replace);function s(r,i=!0){i||n.pauseListeners(),history.go(r)}const a=xe({location:"",base:e,go:s,createHref:Bd.bind(null,e)},t,n);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function nf(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),tf(e)}let fn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Je=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Je||{});const sf={type:fn.Static,value:""},af=/[a-zA-Z0-9_]/;function rf(e){if(!e)return[[]];if(e==="/")return[[sf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=Je.Static,s=n;const a=[];let r;function i(){r&&a.push(r),r=[]}let o=0,l,u="",c="";function d(){u&&(n===Je.Static?r.push({type:fn.Static,value:u}):n===Je.Param||n===Je.ParamRegExp||n===Je.ParamRegExpEnd?(r.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:fn.Param,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;o<e.length;){if(l=e[o++],l==="\\"&&n!==Je.ParamRegExp){s=n,n=Je.EscapeNext;continue}switch(n){case Je.Static:l==="/"?(u&&d(),i()):l===":"?(d(),n=Je.Param):f();break;case Je.EscapeNext:f(),n=s;break;case Je.Param:l==="("?n=Je.ParamRegExp:af.test(l)?f():(d(),n=Je.Static,l!=="*"&&l!=="?"&&l!=="+"&&o--);break;case Je.ParamRegExp:l===")"?c[c.length-1]=="\\"?c=c.slice(0,-1)+l:n=Je.ParamRegExpEnd:c+=l;break;case Je.ParamRegExpEnd:d(),n=Je.Static,l!=="*"&&l!=="?"&&l!=="+"&&o--,c="";break;default:t("Unknown state");break}}return n===Je.ParamRegExp&&t(`Unfinished custom RegExp for param "${u}"`),d(),i(),a}const fi="[^/]+?",of={sensitive:!1,strict:!1,start:!0,end:!0};var lt=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})(lt||{});const lf=/[.+*?^${}()[\]/\\]/g;function uf(e,t){const n=xe({},of,t),s=[];let a=n.start?"^":"";const r=[];for(const u of e){const c=u.length?[]:[lt.Root];n.strict&&!u.length&&(a+="/");for(let d=0;d<u.length;d++){const f=u[d];let h=lt.Segment+(n.sensitive?lt.BonusCaseSensitive:0);if(f.type===fn.Static)d||(a+="/"),a+=f.value.replace(lf,"\\$&"),h+=lt.Static;else if(f.type===fn.Param){const{value:g,repeatable:y,optional:m,regexp:P}=f;r.push({name:g,repeatable:y,optional:m});const _=P||fi;if(_!==fi){h+=lt.BonusCustomRegExp;try{`${_}`}catch(E){throw new Error(`Invalid custom RegExp for param "${g}" (${_}): `+E.message)}}let S=y?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;d||(S=m&&u.length<2?`(?:/${S})`:"/"+S),m&&(S+="?"),a+=S,h+=lt.Dynamic,m&&(h+=lt.BonusOptional),y&&(h+=lt.BonusRepeatable),_===".*"&&(h+=lt.BonusWildcard)}c.push(h)}s.push(c)}if(n.strict&&n.end){const u=s.length-1;s[u][s[u].length-1]+=lt.BonusStrict}n.strict||(a+="/?"),n.end?a+="$":n.strict&&!a.endsWith("/")&&(a+="(?:/|$)");const i=new RegExp(a,n.sensitive?"":"i");function o(u){const c=u.match(i),d={};if(!c)return null;for(let f=1;f<c.length;f++){const h=c[f]||"",g=r[f-1];d[g.name]=h&&g.repeatable?h.split("/"):h}return d}function l(u){let c="",d=!1;for(const f of e){(!d||!c.endsWith("/"))&&(c+="/"),d=!1;for(const h of f)if(h.type===fn.Static)c+=h.value;else if(h.type===fn.Param){const{value:g,repeatable:y,optional:m}=h,P=g in u?u[g]:"";if(Ct(P)&&!y)throw new Error(`Provided param "${g}" is an array but it is not repeatable (* or + modifiers)`);const _=Ct(P)?P.join("/"):P;if(!_)if(m)f.length<2&&(c.endsWith("/")?c=c.slice(0,-1):d=!0);else throw new Error(`Missing required param "${g}"`);c+=_}}return c||"/"}return{re:i,score:s,keys:r,parse:o,stringify:l}}function cf(e,t){let n=0;for(;n<e.length&&n<t.length;){const s=t[n]-e[n];if(s)return s;n++}return e.length<t.length?e.length===1&&e[0]===lt.Static+lt.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===lt.Static+lt.Segment?1:-1:0}function fl(e,t){let n=0;const s=e.score,a=t.score;for(;n<s.length&&n<a.length;){const r=cf(s[n],a[n]);if(r)return r;n++}if(Math.abs(a.length-s.length)===1){if(pi(s))return 1;if(pi(a))return-1}return a.length-s.length}function pi(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const df={strict:!1,end:!0,sensitive:!1};function ff(e,t,n){const s=uf(rf(e.path),n),a=xe(s,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function pf(e,t){const n=[],s=new Map;t=ri(df,t);function a(d){return s.get(d)}function r(d,f,h){const g=!h,y=gi(d);y.aliasOf=h&&h.record;const m=ri(t,d),P=[y];if("alias"in d){const E=typeof d.alias=="string"?[d.alias]:d.alias;for(const F of E)P.push(gi(xe({},y,{components:h?h.record.components:y.components,path:F,aliasOf:h?h.record:y})))}let _,S;for(const E of P){const{path:F}=E;if(f&&F[0]!=="/"){const D=f.record.path,T=D[D.length-1]==="/"?"":"/";E.path=f.record.path+(F&&T+F)}if(_=ff(E,f,m),h?h.alias.push(_):(S=S||_,S!==_&&S.alias.push(_),g&&d.name&&!hi(_)&&i(d.name)),pl(_)&&l(_),y.children){const D=y.children;for(let T=0;T<D.length;T++)r(D[T],_,h&&h.children[T])}h=h||_}return S?()=>{i(S)}:es}function i(d){if(ul(d)){const f=s.get(d);f&&(s.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&s.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function o(){return n}function l(d){const f=hf(d,n);n.splice(f,0,d),d.record.name&&!hi(d)&&s.set(d.record.name,d)}function u(d,f){let h,g={},y,m;if("name"in d&&d.name){if(h=s.get(d.name),!h)throw In(Ge.MATCHER_NOT_FOUND,{location:d});m=h.record.name,g=xe(vi(f.params,h.keys.filter(S=>!S.optional).concat(h.parent?h.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),d.params&&vi(d.params,h.keys.map(S=>S.name))),y=h.stringify(g)}else if(d.path!=null)y=d.path,h=n.find(S=>S.re.test(y)),h&&(g=h.parse(y),m=h.record.name);else{if(h=f.name?s.get(f.name):n.find(S=>S.re.test(f.path)),!h)throw In(Ge.MATCHER_NOT_FOUND,{location:d,currentLocation:f});m=h.record.name,g=xe({},f.params,d.params),y=h.stringify(g)}const P=[];let _=h;for(;_;)P.unshift(_.record),_=_.parent;return{name:m,path:y,params:g,matched:P,meta:gf(P)}}e.forEach(d=>r(d));function c(){n.length=0,s.clear()}return{addRoute:r,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:o,getRecordMatcher:a}}function vi(e,t){const n={};for(const s of t)s in e&&(n[s]=e[s]);return n}function gi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:vf(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 vf(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 hi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function gf(e){return e.reduce((t,n)=>xe(t,n.meta),{})}function hf(e,t){let n=0,s=t.length;for(;n!==s;){const r=n+s>>1;fl(e,t[r])<0?s=r:n=r+1}const a=mf(e);return a&&(s=t.lastIndexOf(a,s-1)),s}function mf(e){let t=e;for(;t=t.parent;)if(pl(t)&&fl(e,t)===0)return t}function pl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function mi(e){const t=mt(Qs),n=mt(dr),s=Q(()=>{const l=p(e.to);return t.resolve(l)}),a=Q(()=>{const{matched:l}=s.value,{length:u}=l,c=l[u-1],d=n.matched;if(!c||!d.length)return-1;const f=d.findIndex(Pn.bind(null,c));if(f>-1)return f;const h=yi(l[u-2]);return u>1&&yi(c)===h&&d[d.length-1].path!==h?d.findIndex(Pn.bind(null,l[u-2])):f}),r=Q(()=>a.value>-1&&Sf(n.params,s.value.params)),i=Q(()=>a.value>-1&&a.value===n.matched.length-1&&ll(n.params,s.value.params));function o(l={}){if(wf(l)){const u=t[p(e.replace)?"replace":"push"](p(e.to)).catch(es);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:s,href:Q(()=>s.value.href),isActive:r,isExactActive:i,navigate:o}}function yf(e){return e.length===1?e[0]:e}const _f=qe({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:mi,setup(e,{slots:t}){const n=Yt(mi(e)),{options:s}=mt(Qs),a=Q(()=>({[_i(e.activeClass,s.linkActiveClass,"router-link-active")]:n.isActive,[_i(e.exactActiveClass,s.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&yf(t.default(n));return e.custom?r:V("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},r)}}}),bf=_f;function wf(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 Sf(e,t){for(const n in t){const s=t[n],a=e[n];if(typeof s=="string"){if(s!==a)return!1}else if(!Ct(a)||a.length!==s.length||s.some((r,i)=>r.valueOf()!==a[i].valueOf()))return!1}return!0}function yi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const _i=(e,t,n)=>e??t??n,kf=qe({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const s=mt(Ba),a=Q(()=>e.route||s.value),r=mt(ci,0),i=Q(()=>{let u=p(r);const{matched:c}=a.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),o=Q(()=>a.value.matched[i.value]);Jn(ci,Q(()=>i.value+1)),Jn(Yd,o),Jn(Ba,a);const l=J();return kt(()=>[l.value,o.value,e.name],([u,c,d],[f,h,g])=>{c&&(c.instances[d]=u,h&&h!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!Pn(c,h)||!f)&&(c.enterCallbacks[d]||[]).forEach(y=>y(u))},{flush:"post"}),()=>{const u=a.value,c=e.name,d=o.value,f=d&&d.components[c];if(!f)return bi(n.default,{Component:f,route:u});const h=d.props[c],g=h?h===!0?u.params:typeof h=="function"?h(u):h:null,m=V(f,xe({},g,t,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(d.instances[c]=null)},ref:l}));return bi(n.default,{Component:m,route:u})||m}}});function bi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const vl=kf;function Af(e){const t=pf(e.routes,e),n=e.parseQuery||Wd,s=e.stringifyQuery||ui,a=e.history,r=Un(),i=Un(),o=Un(),l=gu(Zt);let u=Zt;Sn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=va.bind(null,M=>""+M),d=va.bind(null,Pd),f=va.bind(null,os);function h(M,se){let $,x;return ul(M)?($=t.getRecordMatcher(M),x=se):x=M,t.addRoute(x,$)}function g(M){const se=t.getRecordMatcher(M);se&&t.removeRoute(se)}function y(){return t.getRoutes().map(M=>M.record)}function m(M){return!!t.getRecordMatcher(M)}function P(M,se){if(se=xe({},se||l.value),typeof M=="string"){const C=ga(n,M,se.path),j=t.resolve({path:C.path},se),z=a.createHref(C.fullPath);return xe(C,j,{params:f(j.params),hash:os(C.hash),redirectedFrom:void 0,href:z})}let $;if(M.path!=null)$=xe({},M,{path:ga(n,M.path,se.path).path});else{const C=xe({},M.params);for(const j in C)C[j]==null&&delete C[j];$=xe({},M,{params:d(C)}),se.params=d(se.params)}const x=t.resolve($,se),ee=M.hash||"";x.params=c(f(x.params));const v=Ld(s,xe({},M,{hash:Rd(ee),path:x.path})),b=a.createHref(v);return xe({fullPath:v,hash:ee,query:s===ui?Jd(M.query):M.query||{}},x,{redirectedFrom:void 0,href:b})}function _(M){return typeof M=="string"?ga(n,M,l.value.path):xe({},M)}function S(M,se){if(u!==M)return In(Ge.NAVIGATION_CANCELLED,{from:se,to:M})}function E(M){return T(M)}function F(M){return E(xe(_(M),{replace:!0}))}function D(M,se){const $=M.matched[M.matched.length-1];if($&&$.redirect){const{redirect:x}=$;let ee=typeof x=="function"?x(M,se):x;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=_(ee):{path:ee},ee.params={}),xe({query:M.query,hash:M.hash,params:ee.path!=null?{}:M.params},ee)}}function T(M,se){const $=u=P(M),x=l.value,ee=M.state,v=M.force,b=M.replace===!0,C=D($,x);if(C)return T(xe(_(C),{state:typeof C=="object"?xe({},ee,C.state):ee,force:v,replace:b}),se||$);const j=$;j.redirectedFrom=se;let z;return!v&&Od(s,x,$)&&(z=In(Ge.NAVIGATION_DUPLICATED,{to:j,from:x}),Ee(x,x,!0,!1)),(z?Promise.resolve(z):Z(j,x)).catch(H=>Bt(H)?Bt(H,Ge.NAVIGATION_GUARD_REDIRECT)?H:Se(H):te(H,j,x)).then(H=>{if(H){if(Bt(H,Ge.NAVIGATION_GUARD_REDIRECT))return T(xe({replace:b},_(H.to),{state:typeof H.to=="object"?xe({},ee,H.to.state):ee,force:v}),se||j)}else H=de(j,x,!0,b,ee);return ue(j,x,H),H})}function A(M,se){const $=S(M,se);return $?Promise.reject($):Promise.resolve()}function R(M){const se=je.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(M):M()}function Z(M,se){let $;const[x,ee,v]=Xd(M,se);$=ma(x.reverse(),"beforeRouteLeave",M,se);for(const C of x)C.leaveGuards.forEach(j=>{$.push(nn(j,M,se))});const b=A.bind(null,M,se);return $.push(b),Te($).then(()=>{$=[];for(const C of r.list())$.push(nn(C,M,se));return $.push(b),Te($)}).then(()=>{$=ma(ee,"beforeRouteUpdate",M,se);for(const C of ee)C.updateGuards.forEach(j=>{$.push(nn(j,M,se))});return $.push(b),Te($)}).then(()=>{$=[];for(const C of v)if(C.beforeEnter)if(Ct(C.beforeEnter))for(const j of C.beforeEnter)$.push(nn(j,M,se));else $.push(nn(C.beforeEnter,M,se));return $.push(b),Te($)}).then(()=>(M.matched.forEach(C=>C.enterCallbacks={}),$=ma(v,"beforeRouteEnter",M,se,R),$.push(b),Te($))).then(()=>{$=[];for(const C of i.list())$.push(nn(C,M,se));return $.push(b),Te($)}).catch(C=>Bt(C,Ge.NAVIGATION_CANCELLED)?C:Promise.reject(C))}function ue(M,se,$){o.list().forEach(x=>R(()=>x(M,se,$)))}function de(M,se,$,x,ee){const v=S(M,se);if(v)return v;const b=se===Zt,C=Sn?history.state:{};$&&(x||b?a.replace(M.fullPath,xe({scroll:b&&C&&C.scroll},ee)):a.push(M.fullPath,ee)),l.value=M,Ee(M,se,$,b),Se()}let pe;function B(){pe||(pe=a.listen((M,se,$)=>{if(!Ve.listening)return;const x=P(M),ee=D(x,Ve.currentRoute.value);if(ee){T(xe(ee,{replace:!0,force:!0}),x).catch(es);return}u=x;const v=l.value;Sn&&Hd(li(v.fullPath,$.delta),Zs()),Z(x,v).catch(b=>Bt(b,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_CANCELLED)?b:Bt(b,Ge.NAVIGATION_GUARD_REDIRECT)?(T(xe(_(b.to),{force:!0}),x).then(C=>{Bt(C,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_DUPLICATED)&&!$.delta&&$.type===Ma.pop&&a.go(-1,!1)}).catch(es),Promise.reject()):($.delta&&a.go(-$.delta,!1),te(b,x,v))).then(b=>{b=b||de(x,v,!1),b&&($.delta&&!Bt(b,Ge.NAVIGATION_CANCELLED)?a.go(-$.delta,!1):$.type===Ma.pop&&Bt(b,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_DUPLICATED)&&a.go(-1,!1)),ue(x,v,b)}).catch(es)}))}let q=Un(),X=Un(),W;function te(M,se,$){Se(M);const x=X.list();return x.length?x.forEach(ee=>ee(M,se,$)):console.error(M),Promise.reject(M)}function ve(){return W&&l.value!==Zt?Promise.resolve():new Promise((M,se)=>{q.add([M,se])})}function Se(M){return W||(W=!M,B(),q.list().forEach(([se,$])=>M?$(M):se()),q.reset()),M}function Ee(M,se,$,x){const{scrollBehavior:ee}=e;if(!Sn||!ee)return Promise.resolve();const v=!$&&Gd(li(M.fullPath,0))||(x||!$)&&history.state&&history.state.scroll||null;return gn().then(()=>ee(M,se,v)).then(b=>b&&Vd(b)).catch(b=>te(b,M,se))}const we=M=>a.go(M);let Me;const je=new Set,Ve={currentRoute:l,listening:!0,addRoute:h,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:m,getRoutes:y,resolve:P,options:e,push:E,replace:F,go:we,back:()=>we(-1),forward:()=>we(1),beforeEach:r.add,beforeResolve:i.add,afterEach:o.add,onError:X.add,isReady:ve,install(M){M.component("RouterLink",bf),M.component("RouterView",vl),M.config.globalProperties.$router=Ve,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>p(l)}),Sn&&!Me&&l.value===Zt&&(Me=!0,E(a.location).catch(x=>{}));const se={};for(const x in Zt)Object.defineProperty(se,x,{get:()=>l.value[x],enumerable:!0});M.provide(Qs,Ve),M.provide(dr,fo(se)),M.provide(Ba,l);const $=M.unmount;je.add(M),M.unmount=function(){je.delete(M),je.size<1&&(u=Zt,pe&&pe(),pe=null,l.value=Zt,Me=!1,W=!1),$()}}};function Te(M){return M.reduce((se,$)=>se.then(()=>R($)),Promise.resolve())}return Ve}function on(){return mt(Qs)}function ea(e){return mt(dr)}var xf={},Cf=new Set(["primary","secondary","accent","success","warning","danger","error","info"]);function Oe(...e){return e.flatMap(t=>t?Array.isArray(t)?t:typeof t=="object"?Object.entries(t).filter(([,n])=>n).map(([n])=>n):[t]:[]).filter(Boolean).join(" ")}function On(e,t="primary"){return Cf.has(e)?e:t}function Ye(e,t=""){if(!e)return null;const n=e.includes("ph ")||e.startsWith("ph-");n||typeof process<"u"&&xf&&console.warn(`[gnexus-ui-kit] Icon "${e}" is missing the required "ph-" prefix. Use "ph-${e}" instead.`);const s=n?e:`ph-${e}`;return V("i",{class:Oe("ph",s,t),"aria-hidden":"true"})}function gl(e){const t=e.target;return t.type==="checkbox"?t.checked:t.value}var Ef=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[tabindex]:not([tabindex='-1'])"].join(",");function Rf(e,t){if(e.key!=="Tab"||!t)return;const n=[...t.querySelectorAll(Ef)].filter(r=>!r.hasAttribute("disabled")&&r.offsetParent!==null);if(!n.length){e.preventDefault(),t.focus();return}const s=n[0],a=n[n.length-1];e.shiftKey&&document.activeElement===s?(e.preventDefault(),a.focus()):!e.shiftKey&&document.activeElement===a&&(e.preventDefault(),s.focus())}var $f=qe({name:"GnActionCard",props:{kicker:{type:String,default:""},title:{type:String,required:!0},text:{type:String,default:""}},setup(e,{slots:t}){return()=>{var n,s,a;return V("article",{class:"card action-card"},[V("div",{class:"card-content"},[(e.kicker||t.kicker)&&V("span",{class:"action-card-kicker"},((n=t.kicker)==null?void 0:n.call(t))||e.kicker),V("h3",{class:"action-card-title"},((s=t.title)==null?void 0:s.call(t))||e.title),(e.text||t.default)&&V("p",{class:"action-card-text"},((a=t.default)==null?void 0:a.call(t))||e.text),t.actions&&V("div",{class:"action-card-actions"},t.actions())])])}}}),Ze=qe({name:"GnAlert",inheritAttrs:!1,props:{variant:{type:String,default:"primary"},role:{type:String,default:"status"}},setup(e,{attrs:t,slots:n}){return()=>{var s;const a=On(e.variant);return V("div",{...t,role:e.role,class:Oe("alert",`alert-${a}`,t.class)},(s=n.default)==null?void 0:s.call(n))}}}),Tf=qe({name:"GnAvatar",inheritAttrs:!1,props:{src:{type:String,default:""},alt:{type:String,default:""},initials:{type:String,default:""},icon:{type:String,default:""},size:{type:String,default:"md"},variant:{type:String,default:"primary"},outline:{type:Boolean,default:!1},status:{type:String,default:""}},setup(e,{attrs:t}){return()=>{const n=On(e.variant);return V("span",{...t,class:Oe("avatar",`avatar-${n}`,{"avatar-sm":e.size==="sm","avatar-lg":e.size==="lg","avatar-outline":e.outline,"is-online":e.status==="online","is-busy":e.status==="busy","is-offline":e.status==="offline"},t.class)},[e.src?V("img",{src:e.src,alt:e.alt}):Ye(e.icon)||e.initials,e.status&&V("span",{class:"avatar-status","aria-hidden":"true"})])}}}),_e=qe({name:"GnBadge",inheritAttrs:!1,props:{variant:{type:String,default:"primary"},outline:{type:Boolean,default:!1}},setup(e,{attrs:t,slots:n}){return()=>{var s;const a=On(e.variant);return V("span",{...t,class:Oe("badge",e.outline&&a==="primary"?"badge-primary-outline":`badge-${a}`,t.class)},(s=n.default)==null?void 0:s.call(n))}}}),ge=qe({name:"GnButton",inheritAttrs:!1,props:{variant:{type:String,default:"primary"},size:{type:String,default:"md"},icon:{type:String,default:""},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},type:{type:String,default:"button"}},setup(e,{attrs:t,slots:n}){return()=>{var s;const a=!!(e.icon||e.loading),r=On(e.variant);return V("button",{...t,type:e.type,disabled:e.disabled||e.loading,class:Oe("btn",`btn-${r}`,{"btn-small":e.size==="sm","btn-large":e.size==="lg","with-icon":a,"loading-state":e.loading},t.class)},[e.loading?Ye("ph-bold ph-spinner"):Ye(e.icon),(s=n.default)==null?void 0:s.call(n)])}}}),wi=qe({name:"GnChip",inheritAttrs:!1,props:{variant:{type:String,default:""},icon:{type:String,default:""},selected:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},removable:{type:Boolean,default:!1},clickable:{type:Boolean,default:!1}},emits:["remove"],setup(e,{attrs:t,emit:n,slots:s}){return()=>{var a,r,i,o;const l=e.clickable?"button":"span",u=e.variant?On(e.variant):"",c=(i=(r=(a=s.default)==null?void 0:a.call(s))==null?void 0:r[0])==null?void 0:i.children;return V(l,{...t,type:l==="button"?"button":void 0,disabled:l==="button"?e.disabled:void 0,"aria-pressed":l==="button"?String(e.selected):void 0,class:Oe("chip",u&&`chip-${u}`,{"chip-selected":e.selected,"chip-disabled":e.disabled},t.class)},[Ye(e.icon),(o=s.default)==null?void 0:o.call(s),e.removable&&V("button",{class:"chip-remove",type:"button","aria-label":c?`Remove ${c}`:"Remove",onClick:d=>{d.stopPropagation(),n("remove")}},[Ye("ph-x")])])}}}),Pf=0,ut=qe({name:"GnModal",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},closeOnBackdrop:{type:Boolean,default:!0}},emits:["update:open","close"],setup(e,{emit:t,slots:n}){const s=`gn-modal-title-${++Pf}`,a=J(null),r=J(!1),i=J(!1);let o=null,l=null;const u=()=>{t("update:open",!1),t("close")},c=f=>{f.key==="Escape"?(f.preventDefault(),u()):Rf(f,a.value)},d=()=>{gn(()=>{var f;(f=a.value)==null||f.focus()})};return kt(()=>e.open,f=>{var h;f?(i.value=!0,r.value=!0,gn(()=>{requestAnimationFrame(()=>{i.value=!1})}),o=document.activeElement,document.addEventListener("keydown",c),d()):(i.value=!0,document.removeEventListener("keydown",c),(h=o==null?void 0:o.focus)==null||h.call(o),o=null,l=window.setTimeout(()=>{r.value=!1,i.value=!1},300))},{flush:"post"}),qs(()=>{document.removeEventListener("keydown",c),window.clearTimeout(l)}),()=>{var f,h,g;return r.value?V(Fu,{to:"body"},[V("div",{class:Oe("modal",i.value?"a-hide":"a-show"),"aria-hidden":"false"},[V("div",{class:"modal-backdrop",onClick:()=>e.closeOnBackdrop&&u()}),V("div",{ref:a,class:"modal-dialog",role:"dialog","aria-modal":"true","aria-labelledby":s,tabindex:"-1"},[V("header",{class:"modal-header"},[V("h4",{class:"modal-title",id:s},((f=n.title)==null?void 0:f.call(n))||e.title),V("button",{class:"btn-icon modal-close",type:"button","aria-label":"Close",onClick:u},[Ye("ph-x")])]),V("div",{class:"modal-panel"},[V("div",{class:"modal-body"},(h=n.default)==null?void 0:h.call(n)),(n.footer||n.actions)&&V("footer",{class:"modal-footer"},[(g=n.footer)==null?void 0:g.call(n),n.actions&&V("div",{class:"actions"},n.actions({close:u}))])])])])]):null}}}),If=qe({name:"GnCopyButton",props:{text:{type:String,required:!0},icon:{type:String,default:"ph-copy"},successIcon:{type:String,default:"ph-check"},duration:{type:Number,default:3e3},label:{type:String,default:"Copy"},size:{type:String,default:null}},emits:["copy"],setup(e,{emit:t}){const n=J(!1);let s=null;const a=async()=>{try{await navigator.clipboard.writeText(e.text)}catch{const i=document.createElement("textarea");i.value=e.text,i.style.position="fixed",i.style.opacity="0",document.body.appendChild(i),i.select(),document.execCommand("copy"),document.body.removeChild(i)}n.value=!0,window.clearTimeout(s),s=window.setTimeout(()=>{n.value=!1},e.duration),t("copy",e.text)};return()=>V("button",{class:Oe("btn-icon",{"btn-icon-sm":e.size==="sm"}),type:"button","aria-label":e.label,onClick:a},[Ye(n.value?e.successIcon:e.icon)])}}),Df=qe({name:"GnDropdown",props:{label:{type:String,default:"Actions"},icon:{type:String,default:"ph-dots-three-outline"},variant:{type:String,default:"secondary"},items:{type:Array,default:()=>[]}},emits:["select"],setup(e,{emit:t,slots:n}){const s=J(!1),a=J(null),r=()=>{s.value=!1,document.removeEventListener("click",i),document.removeEventListener("keydown",o)},i=c=>{a.value&&!a.value.contains(c.target)&&r()},o=c=>{c.key==="Escape"&&(c.preventDefault(),r())},l=()=>{s.value=!s.value,s.value?(setTimeout(()=>document.addEventListener("click",i),0),document.addEventListener("keydown",o)):r()},u=c=>{var d;c.disabled||((d=c.onSelect)==null||d.call(c,c),t("select",c),r())};return qs(r),()=>{var c,d;return V("div",{ref:a,class:Oe("dropdown",{"is-open":s.value})},[((c=n.trigger)==null?void 0:c.call(n,{open:s.value,toggle:l}))||V(ge,{variant:e.variant,icon:e.icon,"aria-expanded":s.value?"true":"false",onClick:l},()=>e.label),V("div",{class:"dropdown-menu",role:"menu"},((d=n.default)==null?void 0:d.call(n,{close:r}))||e.items.map(f=>V("button",{class:Oe("dropdown-item",f.danger&&"dropdown-item-danger"),type:"button",role:"menuitem",disabled:f.disabled,onClick:()=>u(f)},[Ye(f.icon),f.label])))])}}}),Lf=qe({name:"GnEmptyState",inheritAttrs:!1,props:{title:{type:String,required:!0},text:{type:String,default:""},icon:{type:String,default:"ph-package"},variant:{type:String,default:""}},setup(e,{attrs:t,slots:n}){return()=>{var s,a;return V("div",{...t,class:Oe("empty-state",e.variant&&`empty-state-${e.variant}`,t.class)},[V("div",{class:"empty-state-icon"},[Ye(e.icon)]),V("h3",{class:"empty-state-title"},((s=n.title)==null?void 0:s.call(n))||e.title),(e.text||n.default)&&V("p",{class:"empty-state-text"},((a=n.default)==null?void 0:a.call(n))||e.text),n.actions&&V("div",{class:"empty-state-actions"},n.actions())])}}}),At=qe({name:"GnInput",inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},label:{type:String,default:""},type:{type:String,default:"text"},icon:{type:String,default:""},state:{type:String,default:""},help:{type:String,default:""},bare:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{attrs:t,emit:n}){return()=>{const s=V("input",{...t,type:e.type,value:e.modelValue,class:Oe(e.bare?"":"input",t.class),onInput:a=>n("update:modelValue",gl(a))});return e.bare?s:V("div",{class:"form-group"},[V("label",{class:Oe("label",e.state)},[e.label,Ye(e.icon),s]),e.help&&V("div",{class:Oe("input-info",e.state==="error"&&"error")},e.help)])}}}),hl=qe({name:"GnLoader",inheritAttrs:!1,props:{circle:{type:Boolean,default:!1},label:{type:String,default:"Loading"}},setup(e,{attrs:t}){return()=>e.circle?V("div",{...t,class:Oe("circle-loader",t.class)},[Ye("ph-bold ph-spinner normalize"),e.label]):V("div",{...t,class:Oe("loader",t.class),role:"status","aria-label":e.label})}});function Of(){var e;const t=Js();return((e=t==null?void 0:t.proxy)==null?void 0:e.$router)||null}function Ff(){var e;const t=Js();return((e=t==null?void 0:t.proxy)==null?void 0:e.$route)||null}function Nf(e,t,n="prefix"){if(!e)return!1;const s=e.value||e;return typeof t=="string"?n==="exact"?s.path===t:s.path===t||s.path.startsWith(t+"/"):t.path?n==="exact"?s.path===t.path:s.path===t.path||s.path.startsWith(t.path+"/"):t.name?s.name===t.name:!1}var Mf=qe({name:"GnNavList",inheritAttrs:!1,props:{items:{type:Array,default:()=>[]},activeMatch:{type:String,default:"prefix"}},emits:["select"],setup(e,{attrs:t,emit:n,slots:s}){const a=Of(),r=Ff(),i=!!(a&&r),o=u=>{if(u){if(typeof u=="string")return u;if(u.path)return u.path}},l=Q(()=>e.items.map(u=>{const c=!!u.to,d=c?i?a.resolve(u.to).href:o(u.to):u.href,f=c&&i?Nf(r,u.to,e.activeMatch):!!u.active;return{...u,resolvedHref:d,isActive:f,hasTo:c}}));return()=>V("ul",{...t,class:Oe("list list-nav",t.class)},l.value.map(u=>{var c,d;return V("li",{class:Oe("list-item",{"list-item-active":u.isActive})},[V(u.resolvedHref?"a":"button",{class:"list-action",href:u.resolvedHref,type:u.resolvedHref?void 0:"button",onClick:f=>{var h;u.hasTo&&i&&(f.preventDefault(),a.push(u.to)),(h=u.onSelect)==null||h.call(u,u,f),n("select",u)}},[V("span",{class:"list-label"},[Ye(u.icon),((c=s.label)==null?void 0:c.call(s,{item:u}))||u.label]),(u.meta||s.meta)&&V("span",{class:"list-meta"},((d=s.meta)==null?void 0:d.call(s,{item:u}))||u.meta)])])}))}}),Uf=0,Bf=qe({name:"GnNavigationShell",props:{brand:{type:String,default:"GNexus UI Kit"},logoSrc:{type:String,default:"/assets/imgs/gnexus-mark.svg"},current:{type:String,default:""},title:{type:String,default:"Sections"},subtitle:{type:String,default:"Navigation"},footerLeft:{type:String,default:""},footerRight:{type:String,default:""},items:{type:Array,default:()=>[]},activeMatch:{type:String,default:"prefix"}},emits:["select"],setup(e,{emit:t,slots:n}){const s=J(!1),a=`gn-nav-drawer-${++Uf}`,r=J(null);let i=null;const o=()=>{s.value=!1},l=()=>{s.value=!s.value},u=c=>{c.key==="Escape"&&(c.preventDefault(),o())};return kt(s,c=>{var d;c?(i=document.activeElement,document.body.classList.add("nav-drawer-open"),document.addEventListener("keydown",u),gn(()=>{var f;return(f=r.value)==null?void 0:f.focus()})):(document.body.classList.remove("nav-drawer-open"),document.removeEventListener("keydown",u),(d=i==null?void 0:i.focus)==null||d.call(i),i=null)}),qs(()=>{document.body.classList.remove("nav-drawer-open"),document.removeEventListener("keydown",u)}),()=>{var c,d,f,h,g,y,m;return[V("header",{class:"nav-topbar"},[V("button",{class:"nav-topbar-toggle",type:"button","aria-controls":a,"aria-expanded":s.value?"true":"false",onClick:l},[Ye("ph-sidebar-simple"),V("span",{},"Menu")]),V("div",{class:"nav-topbar-brand"},[e.logoSrc&&V("img",{src:e.logoSrc,alt:"","aria-hidden":"true"}),V("span",{},((c=n.brand)==null?void 0:c.call(n))||e.brand)]),V("div",{class:"nav-topbar-current"},((d=n.current)==null?void 0:d.call(n))||e.current)]),V("div",{class:"nav-drawer-backdrop",onClick:o}),V("aside",{ref:r,class:["nav-drawer",{"is-open":s.value}],id:a,"aria-label":"Navigation","aria-hidden":s.value?"false":"true",tabindex:"-1"},[V("header",{class:"nav-drawer-header"},[V("div",{},[V("div",{class:"nav-drawer-title"},((f=n.title)==null?void 0:f.call(n))||e.title),V("div",{class:"nav-drawer-subtitle"},((h=n.subtitle)==null?void 0:h.call(n))||e.subtitle)]),V("button",{class:"nav-drawer-close",type:"button","aria-label":"Close navigation",onClick:o},[Ye("ph-x")])]),V("nav",{class:"nav-drawer-body"},[((g=n.default)==null?void 0:g.call(n,{close:o}))||V(Mf,{items:e.items,activeMatch:e.activeMatch,onSelect:P=>{t("select",P),o()}})]),(n.footer||e.footerLeft||e.footerRight)&&V("footer",{class:"nav-drawer-footer"},((y=n.footer)==null?void 0:y.call(n))||[V("span",{},e.footerLeft),V("span",{},e.footerRight)])]),(m=n.content)==null?void 0:m.call(n)]}}}),Et=qe({name:"GnPageHeader",inheritAttrs:!1,props:{title:{type:String,required:!0},subtitle:{type:String,default:""},kicker:{type:String,default:""},compact:{type:Boolean,default:!1},accent:{type:Boolean,default:!1}},setup(e,{attrs:t,slots:n}){return()=>{var s,a,r;return V("header",{...t,class:Oe("page-header",{"page-header-compact":e.compact,"page-header-accent":e.accent},t.class)},[V("div",{class:"page-header-content"},[(e.kicker||n.kicker)&&V("div",{class:"page-header-kicker"},((s=n.kicker)==null?void 0:s.call(n))||e.kicker),V("h1",{class:"page-header-title"},((a=n.title)==null?void 0:a.call(n))||e.title),(e.subtitle||n.subtitle)&&V("p",{class:"page-header-subtitle"},((r=n.subtitle)==null?void 0:r.call(n))||e.subtitle),n.meta&&V("div",{class:"page-header-meta"},n.meta())]),n.actions&&V("div",{class:"page-header-actions"},n.actions())])}}}),fr=qe({name:"GnSelect",inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},label:{type:String,default:""},icon:{type:String,default:""},state:{type:String,default:""},help:{type:String,default:""},options:{type:Array,default:()=>[]}},emits:["update:modelValue"],setup(e,{attrs:t,emit:n,slots:s}){const a=()=>e.options.map(r=>{const i=typeof r=="object"?r.value:r,o=typeof r=="object"?r.label:r;return V("option",{value:i},o)});return()=>{var r;return V("div",{class:"form-group"},[V("label",{class:Oe("label",e.state)},[e.label,Ye(e.icon),V("div",{class:"select-wrap"},[V("select",{...t,value:e.modelValue,class:Oe("input select",t.class),onChange:i=>n("update:modelValue",gl(i))},((r=s.default)==null?void 0:r.call(s))||a())])]),e.help&&V("div",{class:Oe("input-info",e.state==="error"&&"error")},e.help)])}}}),jf=qe({name:"GnSwitch",inheritAttrs:!1,props:{modelValue:{type:Boolean,default:!1},label:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{attrs:t,emit:n,slots:s}){return()=>{var a;return V("label",{class:Oe("switch",t.class)},[V("input",{...t,type:"checkbox",checked:e.modelValue,disabled:e.disabled,onChange:r=>n("update:modelValue",r.target.checked)}),V("span",{class:"switch-control","aria-hidden":"true"}),V("span",{class:"switch-label"},((a=s.default)==null?void 0:a.call(s))||e.label)])}}}),Dn=qe({name:"GnTable",props:{columns:{type:Array,required:!0},rows:{type:Array,default:()=>[]},caption:{type:String,default:""},emptyText:{type:String,default:"Empty"}},setup(e,{attrs:t,slots:n}){return()=>{var s;return V("div",{class:"table-wrapper"},[V("table",{class:Oe("table data-list",{"table-empty":!e.rows.length},t.class)},[e.caption&&V("caption",{class:"table-caption"},e.caption),V("thead",{class:"table-head"},[V("tr",{class:"table-row"},e.columns.map(a=>V("th",{scope:"col"},a.label)))]),V("tbody",{class:"table-body"},e.rows.length?e.rows.map(a=>V("tr",{class:"table-row"},e.columns.map(r=>{var i;const o=`cell-${r.key}`;return V("td",{},((i=n[o])==null?void 0:i.call(n,{row:a,column:r,value:a[r.key]}))||a[r.key])}))):V("tr",{},[V("td",{class:"is-empty",colspan:e.columns.length},((s=n.empty)==null?void 0:s.call(n))||e.emptyText)]))])])}}}),ml=Symbol("gnexus-ui-kit-toast"),Si={info:"ph-info",success:"ph-check-circle",warning:"ph-warning",danger:"ph-warning-octagon",error:"ph-warning-octagon",primary:"ph-info",secondary:"ph-info"},Vf=qe({name:"GnToastProvider",props:{lifetime:{type:Number,default:4e3}},setup(e,{slots:t,expose:n}){const s=J(null),a=J(!1),r=J(!1);let i=null,o=null,l=null;const u=J(100),c=()=>{window.clearTimeout(o),window.clearInterval(l),a.value=!0,r.value=!1,o=window.setTimeout(()=>{s.value=null,a.value=!1,u.value=100,window.clearTimeout(i),i=null},300)},d=()=>{window.clearTimeout(o),window.clearTimeout(i),window.clearInterval(l),a.value=!1,r.value=!1,u.value=100,s.value=null},f=y=>{window.clearTimeout(o),window.clearInterval(l),a.value=!1,r.value=!1,u.value=100;const m=On(y.variant||y.type||"info","info"),P=y.lifetime!==void 0?y.lifetime:e.lifetime;if(s.value={id:Date.now(),variant:m==="error"?"danger":m,title:y.title||"",text:y.text||y.message||"",icon:y.icon||Si[m]||Si.info,lifetime:P},window.clearTimeout(i),P!==0){const S=P/100;u.value=100,l=window.setInterval(()=>{u.value-=100/S,u.value<=0&&window.clearInterval(l)},100),i=window.setTimeout(c,P)}gn(()=>{requestAnimationFrame(()=>{r.value=!0})})},h={show:f,close:d,info:y=>f({...y,variant:"info"}),success:y=>f({...y,variant:"success"}),warning:y=>f({...y,variant:"warning"}),danger:y=>f({...y,variant:"danger"}),error:y=>f({...y,variant:"danger"})};Jn(ml,h),n(h);const g=()=>a.value?"a-hide":r.value?"a-show":"";return()=>{var y;return[(y=t.default)==null?void 0:y.call(t),s.value&&V("div",{class:Oe("toast",g(),`toast-${s.value.variant}`),role:"alert"},[V("div",{class:"toast-content"},[V("div",{class:"toast-header"},[Ye(s.value.icon),s.value.title]),s.value.text&&V("p",{class:"toast-text"},s.value.text)]),V("button",{class:"btn-icon toast-close",type:"button","aria-label":"Close",onClick:c},[Ye("ph-x")]),s.value.lifetime!==0&&V("div",{class:"toast-progress"},[V("div",{class:"toast-progress-bar",style:{transform:`scaleX(${Math.max(0,u.value/100)})`}})])])]}}}),Hf=qe({name:"GnUserCard",props:{name:{type:String,required:!0},email:{type:String,default:""},role:{type:String,default:""},avatar:{type:Object,default:()=>({})},href:{type:String,default:""},compact:{type:Boolean,default:!1},actions:{type:Array,default:()=>[]}},setup(e,{slots:t}){const n=()=>{var r;return((r=t.avatar)==null?void 0:r.call(t))||V(Tf,{...e.avatar,size:e.compact?"sm":"md"})},s=()=>V("span",{class:"identity"},[n(),V("span",{class:"identity-content"},[V("span",{class:"identity-title"},e.name),e.email&&V("span",{class:"identity-meta"},e.email)])]),a=()=>t.actions?t.actions():e.actions.length?V("div",{class:"user-card-actions"},e.actions.map(r=>{if(e.compact)return V("button",{class:"btn-icon",type:"button","aria-label":r.label,onClick:r.onClick},[Ye(r.icon)]);const i=!!r.icon,o=Oe("btn","btn-small",{[`btn-${r.variant}`]:r.variant,"btn-secondary":!r.variant,"with-icon":i});return V("button",{class:o,type:"button",onClick:r.onClick},[i&&Ye(r.icon),r.label])})):null;return()=>{const r=Oe("card","user-card",{"user-card-compact":e.compact}),i=[];e.href?i.push(V("a",{class:"profile-identity",href:e.href,target:"_blank",rel:"noopener noreferrer"},[s()])):i.push(s()),!e.compact&&e.role&&i.push(V("span",{class:"user-card-role"},e.role)),t.default&&!e.compact&&i.push(V("div",{class:"user-card-extra"},t.default()));const o=a();return o&&i.push(o),V("article",{class:r},[V("div",{class:"user-card-body"},i)])}}});function mn(){const e=mt(ml,null);if(e)return e;const t=()=>{throw new Error("GNexus UI Kit: useToast() requires <GnToastProvider> near the app root.")};return{show:t,info:t,success:t,warning:t,danger:t,error:t,close:t}}const Is="shserv_access_token",Ds="shserv_expires_at";let Rn=null;function yl(e,t=null){Rn=e||null;try{if(Rn){if(localStorage.setItem(Is,Rn),t!=null&&t>0){const n=Date.now()+t*1e3;localStorage.setItem(Ds,String(n))}}else localStorage.removeItem(Is),localStorage.removeItem(Ds)}catch{}}function _l(){if(Rn)return Rn;try{return localStorage.getItem(Is)||null}catch{return null}}function Gf(){try{const e=localStorage.getItem(Ds);return e?Number(e):null}catch{return null}}function kn(){Rn=null;try{localStorage.removeItem(Is),localStorage.removeItem(Ds)}catch{}}const qf="modulepreload",zf=function(e){return"/"+e},ki={},bl=function(t,n,s){let a=Promise.resolve();if(n&&n.length>0){let i=function(u){return Promise.all(u.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));a=i(n.map(u=>{if(u=zf(u),u in ki)return;ki[u]=!0;const c=u.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${d}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":qf,c||(f.as="script"),f.crossOrigin="",f.href=u,l&&f.setAttribute("nonce",l),document.head.appendChild(f),c)return new Promise((h,g)=>{f.addEventListener("load",h),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return a.then(i=>{for(const o of i||[])o.status==="rejected"&&r(o.reason);return t().catch(r)})};/*! Capacitor: https://capacitorjs.com/ - MIT License */var Ln;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(Ln||(Ln={}));class ya extends Error{constructor(t,n,s){super(t),this.message=t,this.code=n,this.data=s}}const Kf=e=>{var t,n;return e!=null&&e.androidBridge?"android":!((n=(t=e==null?void 0:e.webkit)===null||t===void 0?void 0:t.messageHandlers)===null||n===void 0)&&n.bridge?"ios":"web"},Wf=e=>{const t=e.CapacitorCustomPlatform||null,n=e.Capacitor||{},s=n.Plugins=n.Plugins||{},a=()=>t!==null?t.name:Kf(e),r=()=>a()!=="web",i=d=>{const f=u.get(d);return!!(f!=null&&f.platforms.has(a())||o(d))},o=d=>{var f;return(f=n.PluginHeaders)===null||f===void 0?void 0:f.find(h=>h.name===d)},l=d=>e.console.error(d),u=new Map,c=(d,f={})=>{const h=u.get(d);if(h)return console.warn(`Capacitor plugin "${d}" already registered. Cannot register plugins twice.`),h.proxy;const g=a(),y=o(d);let m;const P=async()=>(!m&&g in f?m=typeof f[g]=="function"?m=await f[g]():m=f[g]:t!==null&&!m&&"web"in f&&(m=typeof f.web=="function"?m=await f.web():m=f.web),m),_=(A,R)=>{var Z,ue;if(y){const de=y==null?void 0:y.methods.find(pe=>R===pe.name);if(de)return de.rtype==="promise"?pe=>n.nativePromise(d,R.toString(),pe):(pe,B)=>n.nativeCallback(d,R.toString(),pe,B);if(A)return(Z=A[R])===null||Z===void 0?void 0:Z.bind(A)}else{if(A)return(ue=A[R])===null||ue===void 0?void 0:ue.bind(A);throw new ya(`"${d}" plugin is not implemented on ${g}`,Ln.Unimplemented)}},S=A=>{let R;const Z=(...ue)=>{const de=P().then(pe=>{const B=_(pe,A);if(B){const q=B(...ue);return R=q==null?void 0:q.remove,q}else throw new ya(`"${d}.${A}()" is not implemented on ${g}`,Ln.Unimplemented)});return A==="addListener"&&(de.remove=async()=>R()),de};return Z.toString=()=>`${A.toString()}() { [capacitor code] }`,Object.defineProperty(Z,"name",{value:A,writable:!1,configurable:!1}),Z},E=S("addListener"),F=S("removeListener"),D=(A,R)=>{const Z=E({eventName:A},R),ue=async()=>{const pe=await Z;F({eventName:A,callbackId:pe},R)},de=new Promise(pe=>Z.then(()=>pe({remove:ue})));return de.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await ue()},de},T=new Proxy({},{get(A,R){switch(R){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return y?D:E;case"removeListener":return F;default:return S(R)}}});return s[d]=T,u.set(d,{name:d,proxy:T,platforms:new Set([...Object.keys(f),...y?[g]:[]])}),T};return n.convertFileSrc||(n.convertFileSrc=d=>d),n.getPlatform=a,n.handleError=l,n.isNativePlatform=r,n.isPluginAvailable=i,n.registerPlugin=c,n.Exception=ya,n.DEBUG=!!n.DEBUG,n.isLoggingEnabled=!!n.isLoggingEnabled,n},Jf=e=>e.Capacitor=Wf(e),ja=Jf(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),ta=ja.registerPlugin;class pr{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(t,n){let s=!1;this.listeners[t]||(this.listeners[t]=[],s=!0),this.listeners[t].push(n);const r=this.windowListeners[t];r&&!r.registered&&this.addWindowListener(r),s&&this.sendRetainedArgumentsForEvent(t);const i=async()=>this.removeListener(t,n);return Promise.resolve({remove:i})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,n,s){const a=this.listeners[t];if(!a){if(s){let r=this.retainedEventArguments[t];r||(r=[]),r.push(n),this.retainedEventArguments[t]=r}return}a.forEach(r=>r(n))}hasListeners(t){var n;return!!(!((n=this.listeners[t])===null||n===void 0)&&n.length)}registerWindowListener(t,n){this.windowListeners[n]={registered:!1,windowEventName:t,pluginEventName:n,handler:s=>{this.notifyListeners(n,s)}}}unimplemented(t="not implemented"){return new ja.Exception(t,Ln.Unimplemented)}unavailable(t="not available"){return new ja.Exception(t,Ln.Unavailable)}async removeListener(t,n){const s=this.listeners[t];if(!s)return;const a=s.indexOf(n);this.listeners[t].splice(a,1),this.listeners[t].length||this.removeWindowListener(this.windowListeners[t])}addWindowListener(t){window.addEventListener(t.windowEventName,t.handler),t.registered=!0}removeWindowListener(t){t&&(window.removeEventListener(t.windowEventName,t.handler),t.registered=!1)}sendRetainedArgumentsForEvent(t){const n=this.retainedEventArguments[t];n&&(delete this.retainedEventArguments[t],n.forEach(s=>{this.notifyListeners(t,s)}))}}const Ai=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),xi=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Yf extends pr{async getCookies(){const t=document.cookie,n={};return t.split(";").forEach(s=>{if(s.length<=0)return;let[a,r]=s.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");a=xi(a).trim(),r=xi(r).trim(),n[a]=r}),n}async setCookie(t){try{const n=Ai(t.key),s=Ai(t.value),a=t.expires?`; expires=${t.expires.replace("expires=","")}`:"",r=(t.path||"/").replace("path=",""),i=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${s||""}${a}; path=${r}; ${i};`}catch(n){return Promise.reject(n)}}async deleteCookie(t){try{document.cookie=`${t.key}=; Max-Age=0`}catch(n){return Promise.reject(n)}}async clearCookies(){try{const t=document.cookie.split(";")||[];for(const n of t)document.cookie=n.replace(/^ +/,"").replace(/=.*/,`=;expires=${new Date().toUTCString()};path=/`)}catch(t){return Promise.reject(t)}}async clearAllCookies(){try{await this.clearCookies()}catch(t){return Promise.reject(t)}}}ta("CapacitorCookies",{web:()=>new Yf});const Xf=async e=>new Promise((t,n)=>{const s=new FileReader;s.onload=()=>{const a=s.result;t(a.indexOf(",")>=0?a.split(",")[1]:a)},s.onerror=a=>n(a),s.readAsDataURL(e)}),Zf=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(a=>a.toLocaleLowerCase()).reduce((a,r,i)=>(a[r]=e[t[i]],a),{})},Qf=(e,t=!0)=>e?Object.entries(e).reduce((s,a)=>{const[r,i]=a;let o,l;return Array.isArray(i)?(l="",i.forEach(u=>{o=t?encodeURIComponent(u):u,l+=`${r}=${o}&`}),l.slice(0,-1)):(o=t?encodeURIComponent(i):i,l=`${r}=${o}`),`${s}&${l}`},"").substr(1):null,ep=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),a=Zf(e.headers)["content-type"]||"";if(typeof e.data=="string")n.body=e.data;else if(a.includes("application/x-www-form-urlencoded")){const r=new URLSearchParams;for(const[i,o]of Object.entries(e.data||{}))r.set(i,o);n.body=r.toString()}else if(a.includes("multipart/form-data")||e.data instanceof FormData){const r=new FormData;if(e.data instanceof FormData)e.data.forEach((o,l)=>{r.append(l,o)});else for(const o of Object.keys(e.data))r.append(o,e.data[o]);n.body=r;const i=new Headers(n.headers);i.delete("content-type"),n.headers=i}else(a.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class tp extends pr{async request(t){const n=ep(t,t.webFetchExtra),s=Qf(t.params,t.shouldEncodeUrlParams),a=s?`${t.url}?${s}`:t.url,r=await fetch(a,n),i=r.headers.get("content-type")||"";let{responseType:o="text"}=r.ok?t:{};i.includes("application/json")&&(o="json");let l,u;switch(o){case"arraybuffer":case"blob":u=await r.blob(),l=await Xf(u);break;case"json":l=await r.json();break;case"document":case"text":default:l=await r.text()}const c={};return r.headers.forEach((d,f)=>{c[f]=d}),{data:l,headers:c,status:r.status,url:r.url}}async get(t){return this.request(Object.assign(Object.assign({},t),{method:"GET"}))}async post(t){return this.request(Object.assign(Object.assign({},t),{method:"POST"}))}async put(t){return this.request(Object.assign(Object.assign({},t),{method:"PUT"}))}async patch(t){return this.request(Object.assign(Object.assign({},t),{method:"PATCH"}))}async delete(t){return this.request(Object.assign(Object.assign({},t),{method:"DELETE"}))}}ta("CapacitorHttp",{web:()=>new tp});var Ci;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(Ci||(Ci={}));var Ei;(function(e){e.StatusBar="StatusBar",e.NavigationBar="NavigationBar"})(Ei||(Ei={}));class np extends pr{async setStyle(){this.unavailable("not available for web")}async setAnimation(){this.unavailable("not available for web")}async show(){this.unavailable("not available for web")}async hide(){this.unavailable("not available for web")}}ta("SystemBars",{web:()=>new np});const vr=ta("Preferences",{web:()=>bl(()=>import("./web-CM9X8UBB.js"),[]).then(e=>new e.PreferencesWeb)}),gr="shserv_server_url";let wl="";function ps(){return typeof window<"u"&&window.Capacitor!==void 0}function Sl(){return wl}function ks(e){wl=String(e||"").replace(/\/+$/,"")}async function sp(){if(!ps()){ks("");return}try{const{value:e}=await vr.get({key:gr});ks(e||"")}catch{ks("")}}async function ap(e){const t=String(e||"").replace(/\/+$/,"");if(ks(t),!!ps())try{await vr.set({key:gr,value:t})}catch{}}function ls(e){const t=Sl();if(!t)return e;const n=String(e||"").replace(/^\/+/,"");return n?`${t}/${n}`:t}async function rp(){if(!ps())return!0;const{value:e}=await vr.get({key:gr});return!!e}const Ls={DEBUG:0,INFO:1,WARN:2,ERROR:3};function kl(){return Ls[void 0]??Ls.INFO}function hr(){return kl()<=Ls.DEBUG}function Ri(e){return Ls[e]>=kl()}function $i(e){return e<10?`${e.toFixed(1)}ms`:`${Math.round(e)}ms`}function Al(e,t=500){if(!e)return"";const n=String(e);return n.length>t?n.slice(0,t)+"…":n}function xl(e,t){try{const n=JSON.stringify(e);return t?Al(n,t):n}catch{return"[Circular]"}}const ip=1e4,_a="[vue:http]";function op(e){const t=new URLSearchParams;for(const[s,a]of Object.entries(e||{}))a!=null&&t.append(s,String(a));const n=t.toString();return n?`?${n}`:""}function lp(e,t){const n=String(e||"").replace(/\/+$/,""),s=String(t||"").replace(/^\/+/,"");return n?`${n}/${s}`:`/${s}`}function up(e,t){return`${e}${op(t)}`}async function Ti(e,t,n,s={}){const a=Number(s.timeoutMs||ip),r=new AbortController,i=setTimeout(()=>r.abort(),a),o=Sl(),l=lp(o,up(t,s.query)),u={Accept:"application/json",...s.headers||{}},c=_l();c&&(u.Authorization=`Bearer ${c}`);const d={method:e,headers:u,signal:r.signal,credentials:"include"};s.signal&&s.signal.addEventListener("abort",()=>r.abort(),{once:!0}),n!=null&&(u["Content-Type"]="application/json",d.body=JSON.stringify(n)),hr()&&console.debug(_a,e,l,n?xl(n,500):"");const f=performance.now();try{const h=await fetch(l,d),g=await h.text();let y=g;if(g)try{y=JSON.parse(g)}catch{y=g}const m=performance.now()-f,P=h.status>=500?"ERROR":h.status>=400?"WARN":"INFO";return Ri(P)&&console[P.toLowerCase()](_a,`${e} ${l} — ${h.status} in ${$i(m)}`,Al(g||"",200)),{response:h,data:y,meta:{url:l,method:e,statusCode:h.status,headers:h.headers}}}catch(h){const g=performance.now()-f;throw Ri("ERROR")&&console.error(_a,`${e} ${l} — FAILED in ${$i(g)}`,(h==null?void 0:h.message)||h),h}finally{clearTimeout(i)}}let ba=!1,Va=[];function cp(e){Va.push(e)}function Pi(e){Va.forEach(t=>t(e)),Va=[]}function Bn(e,t,n={}){return{type:e,message:t,...n}}async function mr(e,t,n,s){var a,r;try{const{response:i,data:o,meta:l}=await Ti(e,t,n,s);if(!i.ok){if(i.status===401&&!(s!=null&&s._retryOnce)){if(ba)await new Promise(c=>{cp(d=>c(d))});else{ba=!0;try{const c=await Ti("POST","/auth/refresh",null);if(c.response.ok){const d=(r=(a=c.data)==null?void 0:a.data)==null?void 0:r.access_token;if(d)yl(d),Pi(d);else throw new Error("No token in refresh response")}else throw new Error("Refresh failed")}catch{return Pi(null),kn(),window.location.hash.includes("/login")||(window.location.href=ls(`/auth/login?return_to=${encodeURIComponent(window.location.href)}`)),{ok:!1,error:Bn("http_error","HTTP 401",{statusCode:401,raw:o}),meta:l}}finally{ba=!1}}return _l()?mr(e,t,n,{...s,_retryOnce:!0}):{ok:!1,error:Bn("http_error","HTTP 401",{statusCode:401,raw:o}),meta:l}}return{ok:!1,error:Bn("http_error",`HTTP ${i.status}`,{statusCode:i.status,raw:o}),meta:l}}return o&&typeof o=="object"&&(o.status===!1||o.status==="error")?{ok:!1,error:Bn("api_error",o.msg||o.message||"API error",{errorAlias:o.error_alias,failedFields:o.failed_fields||[],raw:o}),meta:l}:{ok:!0,data:o,meta:l}}catch(i){const o=(i==null?void 0:i.name)==="AbortError";return{ok:!1,error:Bn(o?"timeout":"network_error",(i==null?void 0:i.message)||"Network error",{details:i}),meta:{url:t,method:e,statusCode:0,headers:null}}}}function Le(e,t){return mr("GET",e,null,t)}function Qe(e,t,n){return mr("POST",e,t,n)}const vs=hn("auth",()=>{const e=J(null),t=J([]),n=J(!1),s=J(null),a=Q(()=>!!e.value),r=Q(()=>new Set(t.value));function i(y){return r.value.has(y)}function o(y){return Array.isArray(y)?y.some(m=>r.value.has(m)):!1}function l(){s.value&&(clearTimeout(s.value),s.value=null);const y=Gf();if(!y)return;const m=y-Date.now()-6e4;m>0?s.value=setTimeout(()=>{f().then(()=>{l()})},m):f().then(()=>{l()})}function u(){s.value&&(clearTimeout(s.value),s.value=null)}let c=null;async function d(){return c||(n.value=!0,c=Le("/auth/me").then(async y=>{var m,P,_;if(y.ok){const S=((m=y.data)==null?void 0:m.data)||{};e.value=S.user||null,t.value=S.permissions||[],l()}else if(((P=y.error)==null?void 0:P.statusCode)===401){await f();const S=await Le("/auth/me");if(S.ok){const E=((_=S.data)==null?void 0:_.data)||{};e.value=E.user||null,t.value=E.permissions||[],l()}else e.value=null,t.value=[],kn(),u()}else e.value=null,t.value=[],kn(),u()}).catch(()=>{e.value=null,t.value=[],kn(),u()}).finally(()=>{n.value=!1}),c)}async function f(){var m,P,_,S;const y=await Qe("/auth/refresh");if(y.ok){const E=((P=(m=y.data)==null?void 0:m.data)==null?void 0:P.access_token)||null,F=((S=(_=y.data)==null?void 0:_.data)==null?void 0:S.expires_in)||null;yl(E,F),l()}else kn(),u()}async function h(){try{await Qe("/auth/logout")}catch{}e.value=null,t.value=[],kn(),u(),window.location.href=ls("/#/login")}function g(){const y=window.location.href;window.location.href=ls(`/auth/login?return_to=${encodeURIComponent(y)}`)}return{user:e,permissions:t,isLoading:n,isAuthenticated:a,hasPermission:i,hasAnyPermission:o,init:d,refreshToken:f,logout:h,redirectToLogin:g}}),dp={__name:"AppShell",setup(e){const t=ea(),n=vs(),s={login:"Login","areas-favorites":"Favorites","areas-tree":"Areas","area-detail":"Area",devices:"Devices","device-detail":"Device","devices-scanning":"Scanning","scripts-actions":"Actions","scripts-regular":"Regular","scripts-scopes":"Scopes","script-detail":"Script",firmwares:"Firmwares"},a=Q(()=>{const f=t==null?void 0:t.name;return f&&s[f]?s[f]:""}),r=[{label:"Favorites",to:"/areas/favorites",icon:"ph-bookmarks",permission:"areas.view"},{label:"Areas",to:"/areas/tree",icon:"ph-map-trifold",permission:"areas.view"},{label:"Devices",to:"/devices",icon:"ph-cpu",permission:"devices.view"},{label:"Scanning",to:"/devices/scanning",icon:"ph-magnifying-glass",permission:"devices.scan"},{label:"Actions",to:"/scripts/actions",icon:"ph-play",permission:"scripts.run"},{label:"Regular",to:"/scripts/regular",icon:"ph-clock",permission:"scripts.view"},{label:"Scopes",to:"/scripts/scopes",icon:"ph-brackets-curly",permission:"scripts.view"},{label:"Firmwares",to:"/firmwares",icon:"ph-cloud-arrow-down",permission:"firmware.view"}],i=Q(()=>r.filter(f=>f.permission?n.hasPermission(f.permission):!0));function o(f){return f?f.split(/\s+/).slice(0,2).map(h=>{var g;return(g=h[0])==null?void 0:g.toUpperCase()}).join(""):""}function l(f){return f?f.charAt(0).toUpperCase()+f.slice(1):""}function u(){const f=window.location.href;window.location.href=ls(`/auth/login?return_to=${encodeURIComponent(f)}`)}function c(){const f=document.querySelector(".nav-drawer-backdrop");f&&f.click()}function d(){c(),n.logout()}return(f,h)=>(w(),K(p(Bf),{brand:"SHSERV","logo-src":"/logo-cube-square.svg",title:"Navigation",subtitle:"Smart Home",items:i.value,"active-match":"prefix",current:a.value},{content:k(()=>[zs(f.$slots,"default")]),footer:k(()=>{var g,y,m,P,_,S;return[p(n).isAuthenticated?(w(),K(p(Hf),{key:0,name:((g=p(n).user)==null?void 0:g.display_name)||"User",email:((y=p(n).user)==null?void 0:y.email)||"",role:l((m=p(n).user)==null?void 0:m.system_role),avatar:{src:((P=p(n).user)==null?void 0:P.avatar_url)||"",initials:o((_=p(n).user)==null?void 0:_.display_name),size:"sm"},href:((S=p(n).user)==null?void 0:S.gauth_profile_url)||"",compact:"",actions:[{label:"Logout",icon:"ph-sign-out",variant:"ghost",onClick:d}]},null,8,["name","email","role","avatar","href","actions"])):(w(),K(p(ge),{key:1,variant:"primary",size:"sm",onClick:u},{icon:k(()=>[...h[0]||(h[0]=[L("i",{class:"ph ph-sign-in"},null,-1)])]),default:k(()=>[h[1]||(h[1]=U(" Sign in ",-1))]),_:1}))]}),_:3},8,["items","current"]))}},Ke=(e,t)=>{const n=e.__vccOpts||e;for(const[s,a]of t)n[s]=a;return n},fp={key:0},pp={key:1,class:"error-meta"},vp={class:"error-actions"},gp={__name:"AppErrorState",props:{title:{type:String,default:"Request failed"},message:{type:String,default:""},retry:{type:Function,default:null},error:{type:Object,default:null}},setup(e){const t=e,n=Q(()=>{var a;return t.message||((a=t.error)==null?void 0:a.message)||""}),s=Q(()=>{if(!t.error)return"";try{return JSON.stringify(t.error,null,2)}catch{return String(t.error)}});return(a,r)=>(w(),K(p(Ze),{variant:"danger",role:"alert"},{default:k(()=>[L("strong",null,N(e.title),1),n.value?(w(),G("p",fp,N(n.value),1)):ae("",!0),e.error?(w(),G("div",pp,[e.error.type?(w(),K(p(_e),{key:0,variant:"secondary"},{default:k(()=>[U(N(e.error.type),1)]),_:1})):ae("",!0),e.error.statusCode?(w(),K(p(_e),{key:1,variant:"secondary"},{default:k(()=>[U("HTTP "+N(e.error.statusCode),1)]),_:1})):ae("",!0),e.error.errorAlias?(w(),K(p(_e),{key:2,variant:"warning"},{default:k(()=>[U(N(e.error.errorAlias),1)]),_:1})):ae("",!0)])):ae("",!0),L("div",vp,[e.error?(w(),K(p(If),{key:0,text:s.value,label:"Copy error details",size:"sm"},null,8,["text"])):ae("",!0),e.retry?(w(),K(p(ge),{key:1,variant:"danger",onClick:e.retry},{default:k(()=>[...r[0]||(r[0]=[U("Retry",-1)])]),_:1},8,["onClick"])):ae("",!0)])]),_:1}))}},pt=Ke(gp,[["__scopeId","data-v-f1e6bcb8"]]),hp={key:0,class:"error-boundary",role:"alert"},mp={__name:"AppErrorBoundary",setup(e){const t=J(!1),n=J("");Co((a,r,i)=>{const o=(a==null?void 0:a.message)||String(a);return console.error("[AppErrorBoundary] Caught Vue error:",o,"| info:",i,a),t.value=!0,n.value=o,!1});function s(){t.value=!1,n.value=""}return(a,r)=>t.value?(w(),G("div",hp,[I(pt,{title:"Something went wrong",message:n.value,retry:s},null,8,["message"])])):zs(a.$slots,"default",{key:1},void 0,!0)}},yp=Ke(mp,[["__scopeId","data-v-1e10ea7f"]]),_p={__name:"App",setup(e){return(t,n)=>(w(),K(dp,null,{default:k(()=>[I(p(Vf),null,{default:k(()=>[I(yp,null,{default:k(()=>[I(p(vl))]),_:1})]),_:1})]),_:1}))}},$t={list(e){return Le("/api/v1/areas/list",e)},innerList(e,t){return Le(`/api/v1/areas/id/${encodeURIComponent(String(e))}/list`,t)},newArea(e){return Qe("/api/v1/areas/new-area",e)},remove(e){return Le(`/api/v1/areas/id/${encodeURIComponent(String(e))}/remove`)},devices(e,t){return Le(`/api/v1/areas/id/${encodeURIComponent(String(e))}/devices`,t)},scripts(e,t){return Le(`/api/v1/areas/id/${encodeURIComponent(String(e))}/scripts`,t)},updateDisplayName(e){return Qe("/api/v1/areas/update-display-name",e)},updateAlias(e){return Qe("/api/v1/areas/update-alias",e)},placeInArea(e){return Qe("/api/v1/areas/place-in-area",e)},unassign(e){return Le(`/api/v1/areas/id/${encodeURIComponent(String(e))}/unassign-from-area`)}};function gt(e={}){const t=J(null),n=J(!1),s=J(null);async function a(o){var u,c;(u=t.value)==null||u.abort();const l=new AbortController;t.value=l,n.value=!0,s.value=null;try{const d=await o(l.signal);return t.value=null,n.value=!1,d.ok||e.ignoreTimeout!==!1&&((c=d.error)==null?void 0:c.type)==="timeout"||(s.value=d.error),d}catch(d){return t.value=null,n.value=!1,s.value={type:"network_error",message:(d==null?void 0:d.message)||"Network error"},{ok:!1,error:s.value}}}function r(){var o;(o=t.value)==null||o.abort(),t.value=null}function i(){s.value=null,r()}return{abortController:t,isLoading:n,error:s,execute:a,abort:r,clear:i}}const Cl="sh:areas:expandedNodes";function bp(){try{const e=localStorage.getItem(Cl);if(e){const t=JSON.parse(e);if(Array.isArray(t))return new Set(t)}}catch{}return new Set}function wp(e){try{localStorage.setItem(Cl,JSON.stringify([...e]))}catch{}}function Sp(e){const t={},n=[];for(const s of e)t[s.id]={...s,children:[]};for(const s of e){const a=t[s.id],r=s.parent_id&&s.parent_id==s.id,i=s.parent_id&&t[s.parent_id];!r&&i?t[s.parent_id].children.push(a):n.push(a)}return n.length===0&&e.length>0?Object.values(t):n}const wt=hn("areas",()=>{const e=J([]),t=J(null),n=J([]),s=J([]),a=gt(),r=gt(),i=Q(()=>Object.fromEntries(e.value.map(D=>[String(D.id),D]))),o=Q(()=>Sp(e.value)),l=J(bp());kt(l,D=>{wp(D)},{deep:!0});function u(D){const T=new Set(l.value);T.has(D)?T.delete(D):T.add(D),l.value=T}function c(D){return l.value.has(D)}async function d(){return a.execute(async D=>{var A,R;const T=await $t.list({signal:D});return T.ok&&(e.value=((R=(A=T.data)==null?void 0:A.data)==null?void 0:R.areas)||[]),T})}async function f(D){var A,R,Z,ue,de,pe;r.abort();const T=new AbortController;r.abortController.value=T,r.isLoading.value=!0,r.error.value=null,t.value=i.value[String(D)]||null,n.value=[],s.value=[];try{const[B,q]=await Promise.all([$t.devices(D,{signal:T.signal}),$t.scripts(D,{signal:T.signal})]);return r.abortController.value=null,r.isLoading.value=!1,B.ok?q.ok?(n.value=((ue=(Z=B.data)==null?void 0:Z.data)==null?void 0:ue.devices)||[],s.value=((pe=(de=q.data)==null?void 0:de.data)==null?void 0:pe.scripts)||[],{ok:!0}):(((R=q.error)==null?void 0:R.type)!=="timeout"&&(r.error.value=q.error),{ok:!1,error:r.error.value}):(((A=B.error)==null?void 0:A.type)!=="timeout"&&(r.error.value=B.error),{ok:!1,error:r.error.value})}catch(B){return r.abortController.value=null,r.isLoading.value=!1,r.error.value={type:"network_error",message:(B==null?void 0:B.message)||"Network error"},{ok:!1,error:r.error.value}}}function h(){t.value=null,n.value=[],s.value=[],r.clear()}async function g(D){var A,R;const T=await $t.devices(D);return T.ok&&(n.value=((R=(A=T.data)==null?void 0:A.data)==null?void 0:R.devices)||[]),T}async function y(D){var A,R;const T=await $t.scripts(D);return T.ok&&(s.value=((R=(A=T.data)==null?void 0:A.data)==null?void 0:R.scripts)||[]),T}async function m(D){var A,R;const T=await $t.newArea(D);if(T.ok){const Z=(R=(A=T.data)==null?void 0:A.data)==null?void 0:R.area;Z&&e.value.push(Z)}return T}async function P(D,T){const A=await $t.updateDisplayName({area_id:D,display_name:T});if(A.ok){const R=e.value.findIndex(Z=>Z.id===D);R!==-1&&(e.value[R]={...e.value[R],display_name:T})}return A}async function _(D){const T=await $t.remove(D);return T.ok&&(e.value=e.value.filter(A=>A.id!==D)),T}function S(D){return!(D!=null&&D.parent_id)||D.parent_id<=0}async function E(D,T){const A=e.value.find(ue=>ue.id===D),R=e.value.filter(S).length;if(A&&S(A)&&R===1)return{ok:!1,error:{message:"Cannot assign the last root area as a child."}};const Z=await $t.placeInArea({target_id:D,place_in_area_id:T});if(Z.ok){const ue=e.value.findIndex(de=>de.id===D);ue!==-1&&e.value.splice(ue,1,{...e.value[ue],parent_id:Number(T)})}return Z}async function F(D){const T=await $t.unassign(D);if(T.ok){const A=e.value.findIndex(R=>R.id===D);A!==-1&&e.value.splice(A,1,{...e.value[A],parent_id:0})}return T}return{areas:e,isLoading:a.isLoading,error:a.error,currentArea:t,currentAreaDevices:n,currentAreaScripts:s,isLoadingAreaDetail:r.isLoading,errorAreaDetail:r.error,areasById:i,areaTree:o,expandedNodeIds:l,toggleNode:u,isNodeExpanded:c,loadAreas:d,loadAreaDetail:f,clearAreaDetail:h,loadAreaDevices:g,loadAreaScripts:y,createArea:m,renameArea:P,removeArea:_,assignToArea:E,unassignArea:F}}),El="sh_fav_areas";function kp(){try{return JSON.parse(localStorage.getItem(El)||"[]").map(String)}catch{return[]}}function Ii(e){localStorage.setItem(El,JSON.stringify(e.map(String)))}const yr=hn("favorites",()=>{const e=J(kp());function t(r){return e.value.includes(String(r))}function n(r){const i=String(r);e.value.includes(i)||(e.value.push(i),Ii(e.value))}function s(r){e.value=e.value.filter(i=>i!==String(r)),Ii(e.value)}function a(r){return t(r)?(s(r),!1):(n(r),!0)}return{ids:e,has:t,add:n,remove:s,toggle:a}}),Ap=["aria-label"],Rl={__name:"AreaFavoriteButton",props:{areaId:{type:[String,Number],required:!0}},setup(e){const t=e,n=yr(),s=Q(()=>n.has(t.areaId));return(a,r)=>(w(),G("button",{class:Ft(["btn-icon area-favorite-btn",{"is-active":s.value,"text-muted":!s.value,"text-warning":s.value}]),type:"button","aria-label":s.value?"Remove bookmark":"Bookmark",onClick:r[0]||(r[0]=Ys(i=>p(n).toggle(e.areaId),["stop"]))},[L("i",{class:Ft(["ph",s.value?"ph-fill ph-bookmark-simple":"ph-bookmark-simple"])},null,2)],10,Ap))}},_t={__name:"AppLoadingState",props:{text:{type:String,default:"Loading"}},setup(e){return(t,n)=>(w(),K(p(hl),{circle:"",label:e.text},null,8,["label"]))}},rt={__name:"AppEmptyState",props:{title:{type:String,default:"Nothing here"},message:{type:String,default:""}},setup(e){return(t,n)=>(w(),K(p(Lf),{title:e.title,text:e.message,icon:"ph-package"},{actions:k(()=>[zs(t.$slots,"action")]),_:3},8,["title","text"]))}},xp={class:"page"},Cp={key:3,class:"area-favorites-list"},Ep=["onClick"],Rp={class:"area-favorite-info"},$p={class:"area-favorite-title"},Tp={class:"area-favorite-meta"},Pp={key:0,class:"area-favorite-parent"},Ip={class:"area-favorite-actions"},Dp={__name:"AreaFavoritesPage",setup(e){const t=wt(),n=yr(),s=on(),a=Q(()=>{const o=new Set(n.ids.map(String));return t.areas.filter(l=>o.has(String(l.id)))});function r(o){if(!o.parent_id)return null;const l=t.areasById[String(o.parent_id)];return(l==null?void 0:l.display_name)||null}function i(o){s.push({name:"area-detail",params:{id:String(o.id)}})}return bt(()=>{t.areas.length===0&&t.loadAreas()}),(o,l)=>{const u=rn("router-link");return w(),G("section",xp,[I(p(Et),{title:"Favorites",kicker:"Areas"},{actions:k(()=>[I(p(_e),{variant:"primary"},{default:k(()=>[U(N(a.value.length)+" favorite areas",1)]),_:1})]),_:1}),p(t).isLoading?(w(),K(_t,{key:0,text:"Loading areas"})):p(t).error?(w(),K(pt,{key:1,title:"Areas loading failed",error:p(t).error,retry:p(t).loadAreas},null,8,["error","retry"])):a.value.length===0?(w(),K(rt,{key:2,title:"No favorite areas",message:"Favorite areas from the current client are preserved through localStorage."})):(w(),G("ul",Cp,[(w(!0),G(De,null,Wt(a.value,c=>(w(),G("li",{key:c.id,class:"area-favorite-item"},[L("article",{class:"area-favorite-card",onClick:d=>i(c)},[l[2]||(l[2]=L("div",{class:"area-favorite-icon"},[L("i",{class:"ph ph-fill ph-bookmark-simple"})],-1)),L("div",Rp,[L("h2",$p,N(c.display_name),1),L("p",Tp,[I(p(_e),{variant:"secondary"},{default:k(()=>[U(N(c.type),1)]),_:2},1024),L("code",null,N(c.alias),1),r(c)?(w(),G("span",Pp,[l[1]||(l[1]=U(" in ",-1)),I(u,{to:{name:"area-detail",params:{id:String(c.parent_id)}},class:"parent-link",onClick:l[0]||(l[0]=Ys(()=>{},["stop"]))},{default:k(()=>[U(N(r(c)),1)]),_:2},1032,["to"])])):ae("",!0)])]),L("div",Ip,[I(Rl,{"area-id":c.id},null,8,["area-id"])])],8,Ep)]))),128))]))])}}},Lp=Ke(Dp,[["__scopeId","data-v-f8795944"]]);function Mt(){const e=vs();return{has:t=>e.hasPermission(t),hasAny:t=>e.hasAnyPermission(t),permissions:e.permissions}}const Op=["disabled","aria-expanded"],Fp={class:"area-tree-info"},Np={class:"text-muted"},Mp={class:"area-tree-actions"},Up={key:0,class:"area-tree-children"},Bp={key:1,class:"area-tree-node"},jp={class:"area-tree-card area-tree-cycle text-danger"},Vp={__name:"AreaTreeNode",props:{area:{type:Object,required:!0},ancestors:{type:Array,default:()=>[]}},setup(e){const t=e,n=on(),s=wt(),a=Q(()=>s.isNodeExpanded(t.area.id)),r=Q(()=>{var c;return!((c=t.area.children)!=null&&c.length)}),i=Q(()=>t.ancestors.includes(String(t.area.id))),o=Q(()=>[...t.ancestors,String(t.area.id)]);function l(){s.toggleNode(t.area.id)}function u(){n.push({name:"area-detail",params:{id:String(t.area.id)}})}return(c,d)=>{var h;const f=rn("AreaTreeNode",!0);return i.value?(w(),G("li",Bp,[L("article",jp," Cycle skipped for area ID "+N(e.area.id),1)])):(w(),G("li",{key:0,class:Ft(["area-tree-node",{"is-open":a.value,"is-leaf":r.value}])},[L("article",{class:"area-tree-card",onClick:u},[L("button",{class:Ft(["tree-toggle",{"text-primary":!r.value,"text-muted":r.value}]),type:"button",disabled:r.value,"aria-expanded":a.value,onClick:Ys(l,["stop"])},N(r.value?"·":a.value?"−":"+"),11,Op),L("div",Fp,[L("h2",null,N(e.area.display_name),1),L("p",Np,[I(p(_e),{variant:"secondary"},{default:k(()=>[U(N(e.area.type),1)]),_:1}),L("code",null,N(e.area.alias),1)])]),L("div",Mp,[I(Rl,{"area-id":e.area.id},null,8,["area-id"])])]),(h=e.area.children)!=null&&h.length&&a.value?(w(),G("ul",Up,[(w(!0),G(De,null,Wt(e.area.children,g=>(w(),K(f,{key:g.id,area:g,ancestors:o.value},null,8,["area","ancestors"]))),128))])):ae("",!0)],2))}}},Hp={class:"page"},Gp={key:3,class:"area-tree"},qp={class:"form-group"},zp={class:"form-group"},Kp={class:"form-group"},Wp={key:0,class:"form-group"},Jp={__name:"AreaTreePage",setup(e){const t=wt(),n=mn(),s=Mt(),a=J(!1),r=J(!1),i=J(""),o=Yt({type:"",alias:"",display_name:""});function l(){o.type="",o.alias="",o.display_name="",i.value="",a.value=!0}async function u(){var d;r.value=!0,i.value="";const c=await t.createArea({...o});if(r.value=!1,!c.ok){i.value=((d=c.error)==null?void 0:d.message)||"Failed to create area";return}a.value=!1,n.success({title:"Created",text:"Area created successfully"})}return bt(()=>{t.loadAreas()}),(c,d)=>(w(),G("section",Hp,[I(p(Et),{title:"Tree",kicker:"Areas"},{actions:k(()=>[p(s).has("areas.manage")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-plus",onClick:l},{default:k(()=>[...d[5]||(d[5]=[U("Create area",-1)])]),_:1})):ae("",!0)]),_:1}),p(t).isLoading?(w(),K(_t,{key:0,text:"Loading areas tree"})):p(t).error?(w(),K(pt,{key:1,title:"Areas loading failed",error:p(t).error,retry:p(t).loadAreas},null,8,["error","retry"])):p(t).areaTree.length===0?(w(),K(rt,{key:2,title:"No areas",message:"No areas found. Create one to get started."})):(w(),G("ul",Gp,[(w(!0),G(De,null,Wt(p(t).areaTree,f=>(w(),K(Vp,{key:f.id,area:f},null,8,["area"]))),128))])),I(p(ut),{open:a.value,title:"Create area","onUpdate:open":d[4]||(d[4]=f=>a.value=f)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:d[3]||(d[3]=f=>a.value=!1)},{default:k(()=>[...d[6]||(d[6]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-plus",loading:r.value,onClick:u},{default:k(()=>[...d[7]||(d[7]=[U("Create",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("div",qp,[I(p(At),{modelValue:o.type,"onUpdate:modelValue":d[0]||(d[0]=f=>o.type=f),label:"Type",placeholder:"room"},null,8,["modelValue"])]),L("div",zp,[I(p(At),{modelValue:o.alias,"onUpdate:modelValue":d[1]||(d[1]=f=>o.alias=f),label:"Alias",placeholder:"kitchen"},null,8,["modelValue"])]),L("div",Kp,[I(p(At),{modelValue:o.display_name,"onUpdate:modelValue":d[2]||(d[2]=f=>o.display_name=f),label:"Display name",placeholder:"Kitchen"},null,8,["modelValue"])]),i.value?(w(),G("div",Wp,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(i.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"])]))}},Yp=Ke(Jp,[["__scopeId","data-v-5f02f384"]]),Xp={device_name:"name",device_hard_id:"device_id",device_ip:"ip",ip_address:"ip",mac_address:"mac",device_mac:"mac",core_version:"firmware_core_version",type:"device_type"};function Zp(e){const t={};for(const[n,s]of Object.entries(e||{}))t[Xp[n]||n]=s;return t}function jn(e){return encodeURIComponent(String(e))}function Qp(e){var n,s,a;if(!e.ok)return e;const t=((s=(n=e.data)==null?void 0:n.data)==null?void 0:s.devices)||[];return{...e,data:{...e.data,data:{...(a=e.data)==null?void 0:a.data,devices:t.map(Zp)}}}}const nt={async list(){return Qp(await Le("/api/v1/devices/list"))},status(e,t){return Le(`/api/v1/devices/id/${jn(e)}/status`,t)},reboot(e){return Le(`/api/v1/devices/id/${jn(e)}/reboot`)},action(e){return Qe("/api/v1/devices/action",e)},scanningSetup(e){return Le("/api/v1/devices/scanning/setup",{timeoutMs:12e4,...e})},scanningAll(e){return Le("/api/v1/devices/scanning/all",{timeoutMs:12e4,...e})},setupNewDevice(e){return Qe("/api/v1/devices/setup/new-device",e)},detail(e,t){return Le(`/api/v1/devices/id/${jn(e)}`,t)},updateName(e,t){return Qe("/api/v1/devices/update-name",{device_id:e,name:t})},updateDescription(e,t){return Qe("/api/v1/devices/update-description",{device_id:e,description:t})},updateAlias(e,t){return Qe("/api/v1/devices/update-alias",{device_id:e,new_alias:t})},remove(e){return Le(`/api/v1/devices/id/${jn(e)}/remove`)},resetup(e){return Qe("/api/v1/devices/resetup",{device_id:e})},reset(e){return Qe("/api/v1/devices/reset",{device_id:e})},unassign(e){return Le(`/api/v1/devices/id/${jn(e)}/unassign-from-area`)},placeInArea(e){return Qe("/api/v1/devices/place-in-area",e)}},ev=4;function Ha(e){return String((e==null?void 0:e.id)||"")}function _r(e,t){return{deviceId:Ha(e),status:"idle",message:"",response:null,connectionStatus:(e==null?void 0:e.connection_status)||"unknown",updatedAt:null,...t}}function tv(e,t){var a,r;const s=(((r=(a=t.data)==null?void 0:a.data)==null?void 0:r.device)||{}).device_response||{};return _r(e,{status:"ready",message:s.status||"ok",response:s,connectionStatus:"active",updatedAt:new Date().toISOString()})}function nv(e,t){var a,r,i;const n=((a=t.error)==null?void 0:a.raw)||{},s=((r=n==null?void 0:n.data)==null?void 0:r.connection_status)||(e==null?void 0:e.connection_status)||"unknown";return _r(e,{status:"error",message:((i=t.error)==null?void 0:i.message)||"Device state is unavailable",response:n,connectionStatus:s,updatedAt:new Date().toISOString()})}async function sv(e,t,n){let s=0;const a=Math.max(1,Math.min(t,e.length));async function r(){for(;s<e.length;){const i=e[s];s+=1,await n(i)}}await Promise.all(Array.from({length:a},r))}const na=hn("devices",()=>{const e=J([]),t=J({}),n=J(0),s=J(new Set),a=J(null),r=J(null),i=J(null),o=J(!1),l=J(null),u=gt(),c=gt(),d=Q(()=>e.value.length),f=Q(()=>B=>s.value.has(String(B)));async function h(){return u.execute(async B=>{var X,W;const q=await nt.list({signal:B});return q.ok&&(e.value=((W=(X=q.data)==null?void 0:X.data)==null?void 0:W.devices)||[],i.value=new Date().toISOString()),q})}function g(B,q){const X=Ha(B);X&&(t.value={...t.value,[X]:_r(B,q)})}async function y(B,q,X){const W=n.value+1;n.value=W,o.value=!0,l.value=null,X&&(t.value={});const te=[];for(const ve of B)ve.connection_status==="lost"?g(ve,{status:"skipped",message:"Connection lost",connectionStatus:"lost"}):(g(ve,{status:"loading",message:"Loading"}),te.push(ve));try{await sv(te,q.concurrency||ev,async ve=>{const Se=await nt.status(ve.id);n.value===W&&(t.value={...t.value,[Ha(ve)]:Se.ok?tv(ve,Se):nv(ve,Se)})})}catch(ve){n.value===W&&(l.value={type:"state_loader_error",message:(ve==null?void 0:ve.message)||"Device states loader failed"})}finally{n.value===W&&(o.value=!1)}}async function m(B,q={}){return y(B,q,!1)}async function P(B={}){return y(e.value,B,!0)}async function _(B){const q=String(B);s.value=new Set(s.value).add(q);const X=await nt.reboot(B),W=new Set(s.value);return W.delete(q),s.value=W,X}async function S(B){return c.execute(async q=>{var W,te;const X=await nt.detail(B,{signal:q});return X.ok&&(a.value=((te=(W=X.data)==null?void 0:W.data)==null?void 0:te.device)||null),X})}async function E(B){var te,ve;const q=await nt.status(B);if(!q.ok)return r.value={ok:!1,error:q.error,channels:[]},q;const W=(((ve=(te=q.data)==null?void 0:te.data)==null?void 0:ve.device)||{}).device_response||{};return r.value={ok:!0,channels:W.channels||[],raw:W},q}async function F(B,q){const X=await nt.updateName(B,q);return X.ok&&a.value&&(a.value={...a.value,name:q}),X}async function D(B,q){const X=await nt.updateDescription(B,q);return X.ok&&a.value&&(a.value={...a.value,description:q}),X}async function T(B,q){const X=await nt.updateAlias(B,q);return X.ok&&a.value&&(a.value={...a.value,alias:q}),X}async function A(B){return nt.remove(B)}async function R(B){return nt.resetup(B)}async function Z(B){return nt.reset(B)}async function ue(B){const q=await nt.unassign(B);return q.ok&&a.value&&(a.value={...a.value,area_id:null}),q}async function de(B,q){const X=await nt.placeInArea({target_id:B,place_in_area_id:q});return X.ok&&a.value&&(a.value={...a.value,area_id:q}),X}function pe(){a.value=null,r.value=null,c.clear()}return{devices:e,isLoading:u.isLoading,error:u.error,isLoadingStates:o,stateError:l,stateByDeviceId:t,stateRunId:n,rebootingIds:s,lastLoadedAt:i,currentDevice:a,currentDeviceStatus:r,isLoadingDetail:c.isLoading,errorDetail:c.error,total:d,isRebooting:f,loadDevices:h,setDeviceState:g,loadDeviceStates:P,loadStatesFor:m,rebootDevice:_,loadDeviceDetail:S,loadDeviceStatus:E,updateDeviceName:F,updateDeviceDescription:D,updateDeviceAlias:T,removeDevice:A,unassignDevice:ue,assignToArea:de,resetupDevice:R,resetDevice:Z,clearDeviceDetail:pe}}),Tt={actionsList(e){return Le("/api/v1/scripts/actions/list",e)},regularList(e){return Le("/api/v1/scripts/regular/list",e)},scopesList(e){return Le("/api/v1/scripts/scopes/list",e)},runAction(e,t={}){return Qe("/api/v1/scripts/actions/run",{alias:e,params:t})},setActionState(e,t){return Le(`/api/v1/scripts/actions/alias/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},setRegularState(e,t){return Le(`/api/v1/scripts/regular/alias/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},setScopeState(e,t){return Le(`/api/v1/scripts/scopes/name/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},scopeCode(e,t){return Le(`/api/v1/scripts/scopes/name/${encodeURIComponent(e)}`,t)},placeInArea(e){return Qe("/api/v1/scripts/place-in-area",e)},unassign(e){return Le(`/api/v1/scripts/id/${encodeURIComponent(String(e))}/unassign-from-area`)}},yn=hn("scripts",()=>{const e=J([]),t=J([]),n=J([]),s=J(new Set),a=J(null),r=J(""),i=gt(),o=gt(),l=gt(),u=gt(),c=Q(()=>e.value.length),d=Q(()=>t.value.length),f=Q(()=>n.value.length),h=Q(()=>B=>s.value.has(B)),g=Q(()=>B=>e.value.find(q=>q.alias===B)||null),y=Q(()=>B=>t.value.find(q=>q.alias===B)||null),m=Q(()=>B=>n.value.find(q=>q.name===B)||null),P=Q(()=>B=>e.value.filter(q=>q.scope===B)),_=Q(()=>B=>t.value.filter(q=>q.scope===B));async function S(){return i.execute(async B=>{var X,W;const q=await Tt.actionsList({signal:B});return q.ok&&(e.value=((W=(X=q.data)==null?void 0:X.data)==null?void 0:W.scripts)||[]),q})}async function E(){return o.execute(async B=>{var X,W;const q=await Tt.regularList({signal:B});return q.ok&&(t.value=((W=(X=q.data)==null?void 0:X.data)==null?void 0:W.scripts)||[]),q})}async function F(){return l.execute(async B=>{var X,W;const q=await Tt.scopesList({signal:B});return q.ok&&(n.value=((W=(X=q.data)==null?void 0:X.data)==null?void 0:W.scopes)||[]),q})}async function D(B,q={}){var te,ve,Se,Ee,we,Me;s.value=new Set(s.value).add(B),a.value=null;const X=await Tt.runAction(B,q),W=new Set(s.value);return W.delete(B),s.value=W,X.ok?(a.value={alias:B,ok:!0,data:(Se=(ve=(te=X.data)==null?void 0:te.data)==null?void 0:ve.return)==null?void 0:Se.result,execTime:(Me=(we=(Ee=X.data)==null?void 0:Ee.data)==null?void 0:we.return)==null?void 0:Me.exec_time},X):(a.value={alias:B,ok:!1,error:X.error},X)}async function T(B,q){const X=await Tt.setActionState(B,q);if(X.ok){const W=e.value.findIndex(te=>te.alias===B);W!==-1&&(e.value[W]={...e.value[W],state:q?"enabled":"disabled"})}return X}async function A(B,q){const X=await Tt.setRegularState(B,q);if(X.ok){const W=t.value.findIndex(te=>te.alias===B);W!==-1&&(t.value[W]={...t.value[W],state:q?"enabled":"disabled"})}return X}async function R(B,q){const X=await Tt.setScopeState(B,q);if(X.ok){const W=n.value.findIndex(te=>te.name===B);W!==-1&&(n.value[W]={...n.value[W],state:q?"enabled":"disabled"})}return X}async function Z(B,q){const X=await Tt.placeInArea({target_id:B,place_in_area_id:q});if(X.ok){const W=e.value.findIndex(ve=>ve.id===B);W!==-1&&e.value.splice(W,1,{...e.value[W],area_id:q});const te=t.value.findIndex(ve=>ve.id===B);te!==-1&&t.value.splice(te,1,{...t.value[te],area_id:q})}return X}async function ue(B){const q=await Tt.unassign(B);if(q.ok){const X=e.value.findIndex(te=>te.id===B);X!==-1&&e.value.splice(X,1,{...e.value[X],area_id:null});const W=t.value.findIndex(te=>te.id===B);W!==-1&&t.value.splice(W,1,{...t.value[W],area_id:null})}return q}async function de(B){return u.execute(async q=>{const X=await Tt.scopeCode(B,{signal:q});return X.ok&&(r.value=typeof X.data=="string"?X.data:""),X})}function pe(){r.value="",u.clear()}return{actions:e,regular:t,scopes:n,isLoadingActions:i.isLoading,isLoadingRegular:o.isLoading,isLoadingScopes:l.isLoading,errorActions:i.error,errorRegular:o.error,errorScopes:l.error,runningAliases:s,lastRunResult:a,currentScopeCode:r,isLoadingScopeCode:u.isLoading,errorScopeCode:u.error,totalActions:c,totalRegular:d,totalScopes:f,isRunning:h,actionByAlias:g,regularByAlias:y,scopeByName:m,actionsByScope:P,regularByScope:_,loadActions:S,loadRegular:E,loadScopes:F,runScript:D,setActionState:T,setRegularState:A,setScopeState:R,assignToArea:Z,unassignFromArea:ue,loadScopeCode:de,clearScopeCode:pe}});function br(){const e=wt(),t=J(""),n=Q(()=>e.areas.filter(u=>String(u.id)!==String(t.value)).map(u=>({value:String(u.id),label:`${u.display_name} (${u.type})`}))),s=J(!1),a=J(""),r=J(!1),i=J("");function o(u){a.value=u?String(u):"",t.value=u?String(u):"",i.value="",s.value=!0}async function l(u,c){var f;if(!u||!c)return;r.value=!0,i.value="";const d=await c(u,a.value);return r.value=!1,d.ok?(s.value=!1,d):(i.value=((f=d.error)==null?void 0:f.message)||"Failed to assign area",d)}return{areaOptions:n,showAssignModal:s,selectedAreaId:a,assignLoading:r,assignError:i,openAssign:o,submitAssignCore:l}}const av={key:1,class:"text-muted",style:{"font-size":"13px"}},rv={__name:"AreaBadgeLink",props:{area:{type:Object,default:null},areaId:{type:[Number,String],default:null}},setup(e){return(t,n)=>{const s=rn("router-link");return e.area?(w(),K(s,{key:0,to:{name:"area-detail",params:{id:e.area.id}},class:"area-link"},{default:k(()=>[I(p(_e),{variant:"info"},{default:k(()=>[U(N(e.area.display_name),1)]),_:1})]),_:1},8,["to"])):e.areaId?(w(),G("span",av,"Area ID: "+N(e.areaId),1)):ae("",!0)}}},wr=Ke(rv,[["__scopeId","data-v-91230b95"]]),iv={class:"devices-panel"},ov={class:"block-title"},lv={key:0,class:"area-assigned"},uv={class:"area-card-info"},cv={class:"text-muted"},dv={__name:"AreaAssignSection",props:{item:{type:Object,default:null},areaId:{type:[Number,String],default:null},title:{type:String,default:"Area"},emptyMessage:{type:String,default:"This item is not assigned to any area."}},emits:["assign"],setup(e,{emit:t}){const n=e,s=t,a=wt(),r=Q(()=>{var o;const i=n.areaId!=null?n.areaId:(o=n.item)==null?void 0:o.area_id;return i&&a.areasById[String(i)]||null});return(i,o)=>{const l=rn("router-link");return w(),G("div",iv,[L("div",ov,N(e.title),1),r.value?(w(),G("div",lv,[I(l,{to:{name:"area-detail",params:{id:r.value.id}},class:"area-card"},{default:k(()=>[o[1]||(o[1]=L("div",{class:"area-card-icon text-primary"},[L("i",{class:"ph ph-map-trifold"})],-1)),L("div",uv,[L("strong",null,N(r.value.display_name),1),L("small",cv,N(r.value.type)+" — "+N(r.value.alias),1)])]),_:1},8,["to"])])):(w(),K(rt,{key:1,title:"Not assigned",message:e.emptyMessage},{action:k(()=>[zs(i.$slots,"action",{},()=>[I(p(ge),{variant:"primary",icon:"ph-map-pin",onClick:o[0]||(o[0]=u=>s("assign"))},{default:k(()=>[...o[2]||(o[2]=[U("Assign to area",-1)])]),_:1})],!0)]),_:3},8,["message"]))])}}},Sr=Ke(dv,[["__scopeId","data-v-92cae82c"]]);function $l(e){if(!e)return"";const t=Tl(e);if(!t)return e;const s=new Date-t,a=Math.floor(s/1e3),r=Math.floor(a/60),i=Math.floor(r/60),o=Math.floor(i/24),l=Math.floor(o/7),u=Math.floor(o/30);if(a<10)return"just now";if(a<60)return`${a} sec ago`;if(r<60)return`${r} min ago`;if(i<24){const d=r%60;return d>0?`${i} hour${i>1?"s":""} ${d} min ago`:`${i} hour${i>1?"s":""} ago`}if(o<7)return`${o} day${o>1?"s":""} ago`;if(l<4)return`${l} week${l>1?"s":""} ago`;if(u<12)return`${u} month${u>1?"s":""} ago`;const c=Math.floor(o/365);return`${c} year${c>1?"s":""} ago`}function Ga(e){if(!e)return"";const t=Tl(e);if(!t)return e;const s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],a=t.getDate(),r=t.getFullYear(),i=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0");return`${s} ${a}, ${r} ${i}:${o}`}function Tl(e){if(!e)return null;const t=/^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})$/,n=e.match(t);if(n){const[,a,r,i,o,l,u]=n;return new Date(a,parseInt(r)-1,i,o,l,u)}const s=new Date(e);return isNaN(s.getTime())?null:s}const fv={class:"device-channels-state"},pv={key:3,class:"channels-grid"},vv={key:0,class:"ph ph-caret-up"},gv={key:1,class:"ph ph-caret-down"},hv={key:0,class:"ph ph-caret-up"},mv={key:1,class:"ph ph-caret-down"},yv={key:0,class:"ph ph-caret-up"},_v={key:1,class:"ph ph-caret-down"},bv={key:0,class:"ph ph-caret-up"},wv={key:1,class:"ph ph-caret-down"},Sv={key:0,class:"ph ph-caret-up"},kv={key:1,class:"ph ph-caret-down"},Av={key:0,class:"raw-json text-muted"},xv={__name:"DeviceChannelsState",props:{deviceType:{type:String,default:""},response:{type:Object,default:null},loading:{type:Boolean,default:!1},error:{type:[String,Object],default:null},connectionStatus:{type:String,default:"unknown"}},setup(e){const t=e,n=Q(()=>t.connectionStatus==="lost"),s=Q(()=>{var g;return((g=t.response)==null?void 0:g.channels)||[]}),a=Q(()=>{var g;return((g=t.response)==null?void 0:g.sensors)||{}}),r=Q(()=>{var g,y;return((y=(g=t.response)==null?void 0:g.hatch)==null?void 0:y.state)||"—"}),i=Q(()=>{var g,y;return((y=(g=t.response)==null?void 0:g.hatch)==null?void 0:y.position_pct)??"—"}),o=Q(()=>String(r.value).includes("open")?"warning":"primary"),l=Q(()=>String(r.value).includes("open")),u=Q(()=>{var g;return((g=t.response)==null?void 0:g.status)==="ok"}),c=Q(()=>{if(!t.response)return"";try{return JSON.stringify(t.response).slice(0,200)}catch{return""}}),d=Q(()=>{var g;return u.value?t.deviceType==="relay"||t.deviceType==="button"?s.value.length>0:t.deviceType==="sensor"?Object.keys(a.value).length>0:t.deviceType==="hatch"?!!((g=t.response)!=null&&g.hatch):!1:!1});function f(g){return g.id??g.channel}function h(g){return{enabled:"success",disabled:"secondary",mute:"primary",waiting:"warning",error:"danger"}[g]||"secondary"}return(g,y)=>(w(),G("div",fv,[e.loading?(w(),K(p(hl),{key:0,circle:"",size:"sm",label:"Loading state"})):n.value?(w(),K(p(_e),{key:1,variant:"danger",size:"sm"},{default:k(()=>[...y[0]||(y[0]=[L("i",{class:"ph ph-wifi-slash"},null,-1),U(" Offline ",-1)])]),_:1})):e.error||!u.value?(w(),K(p(_e),{key:2,variant:"danger",size:"sm"},{default:k(()=>[y[1]||(y[1]=L("i",{class:"ph ph-warning-octagon"},null,-1)),typeof e.error=="string"?(w(),G(De,{key:0},[U(N(e.error),1)],64)):(w(),G(De,{key:1},[U("Error")],64))]),_:1})):d.value?(w(),G("div",pv,[e.deviceType==="relay"?(w(!0),G(De,{key:0},Wt(s.value,m=>(w(),K(p(_e),{key:f(m),variant:m.state==="on"||m.state===!0?"success":"secondary",size:"sm"},{default:k(()=>[s.value.length>1?(w(),G(De,{key:0},[U(N(f(m))+": ",1)],64)):ae("",!0),L("b",null,N(m.state=="off"?"OFF":"ON"),1)]),_:2},1032,["variant"]))),128)):e.deviceType==="button"?(w(!0),G(De,{key:1},Wt(s.value,m=>(w(),K(p(_e),{key:f(m),variant:h(m.indicator),size:"sm"},{default:k(()=>[U(N(f(m))+": ",1),L("b",null,N(m.indicator),1)]),_:2},1032,["variant"]))),128)):e.deviceType==="sensor"?(w(),G(De,{key:2},[a.value.radar?(w(),K(p(_e),{key:0,variant:"primary",size:"sm"},{default:k(()=>[L("i",{class:Ft(["ph",a.value.radar.presence?"ph-user-square":"ph-square"])},null,2),a.value.radar.presence?(w(),G(De,{key:0},[U(N(a.value.radar.activity_score)+" ",1),a.value.radar.activity_score_dynamics==="increasing"?(w(),G("i",vv)):a.value.radar.activity_score_dynamics==="decreasing"?(w(),G("i",gv)):ae("",!0)],64)):ae("",!0)]),_:1})):ae("",!0),a.value.temperature?(w(),K(p(_e),{key:1,variant:"primary",size:"sm"},{default:k(()=>[y[2]||(y[2]=L("i",{class:"ph ph-thermometer"},null,-1)),U(" "+N(a.value.temperature.current)+"°C ",1),a.value.temperature.dynamics==="increasing"?(w(),G("i",hv)):a.value.temperature.dynamics==="decreasing"?(w(),G("i",mv)):ae("",!0)]),_:1})):ae("",!0),a.value.humidity?(w(),K(p(_e),{key:2,variant:"primary",size:"sm"},{default:k(()=>[y[3]||(y[3]=L("i",{class:"ph ph-drop-half-bottom"},null,-1)),U(" "+N(a.value.humidity.current)+"% ",1),a.value.humidity.dynamics==="increasing"?(w(),G("i",yv)):a.value.humidity.dynamics==="decreasing"?(w(),G("i",_v)):ae("",!0)]),_:1})):ae("",!0),a.value.pressure?(w(),K(p(_e),{key:3,variant:"primary",size:"sm"},{default:k(()=>[U(N(a.value.pressure.current)+"hpa ",1),a.value.pressure.dynamics==="increasing"?(w(),G("i",bv)):a.value.pressure.dynamics==="decreasing"?(w(),G("i",wv)):ae("",!0)]),_:1})):ae("",!0),a.value.light?(w(),K(p(_e),{key:4,variant:"primary",size:"sm"},{default:k(()=>[y[4]||(y[4]=L("i",{class:"ph ph-lightbulb"},null,-1)),U(" "+N(a.value.light.percent)+"% ",1)]),_:1})):ae("",!0),a.value.microphone?(w(),K(p(_e),{key:5,variant:"primary",size:"sm"},{default:k(()=>[y[5]||(y[5]=L("i",{class:"ph ph-ear"},null,-1)),U(" "+N(a.value.microphone.current_noise)+"dBi ",1),a.value.microphone.noise_dynamics==="increasing"?(w(),G("i",Sv)):a.value.microphone.noise_dynamics==="decreasing"?(w(),G("i",kv)):ae("",!0)]),_:1})):ae("",!0)],64)):e.deviceType==="hatch"?(w(),K(p(_e),{key:3,variant:o.value,size:"sm"},{default:k(()=>[U(N(r.value)+" ",1),l.value?(w(),G(De,{key:0},[U(" - "+N(i.value)+"%",1)],64)):ae("",!0)]),_:1},8,["variant"])):(w(),G(De,{key:4},[y[6]||(y[6]=L("span",{class:"unknown-type text-muted"},"Unknown type",-1)),c.value?(w(),G("pre",Av,N(c.value),1)):ae("",!0)],64))])):(w(),K(p(_e),{key:4,variant:"secondary",size:"sm"},{default:k(()=>[...y[7]||(y[7]=[U("No data",-1)])]),_:1}))]))}},Pl=Ke(xv,[["__scopeId","data-v-08541c71"]]),Cv={class:"device-cell"},Ev=["innerHTML"],Rv={class:"device-info"},$v={class:"device-name-row"},Tv=["title"],Pv={class:"text-muted"},Iv=["title"],Dv={key:1,class:"text-muted"},Lv={__name:"DeviceTable",props:{devices:{type:Array,required:!0},showActions:{type:Boolean,default:!0},showLastContact:{type:Boolean,default:!0},caption:{type:String,default:"Devices"}},setup(e){const t=e,n=na(),s=mn(),a=Mt(),r={relay:'<i class="ph ph-toggle-left"></i>',button:'<i class="ph ph-hand-tap"></i>',sensor:'<i class="ph ph-thermometer"></i>'},i=Q(()=>{const d=[{key:"device",label:"Device"},{key:"state",label:"State"}];return t.showLastContact&&d.push({key:"lastContact",label:"Last Contact"}),t.showActions&&d.push({key:"actions",label:"Actions"}),d});function o(d){return r[d]||r.relay}function l(d){return{active:"success",removed:"danger",freezed:"warning",setup:"primary"}[d]||"secondary"}function u(d){return n.stateByDeviceId[String(d.id)]||{status:"idle",message:"Not loaded",connectionStatus:d.connection_status||"unknown"}}async function c(d){var g;const f=t.devices.find(y=>String(y.id)===String(d)),h=await n.rebootDevice(d);h.ok?s.success({title:"Rebooting",text:`Device ${(f==null?void 0:f.name)||(f==null?void 0:f.alias)||"#"+d} is rebooting`}):s.error({title:"Reboot failed",text:((g=h.error)==null?void 0:g.message)||"Failed to reboot device"})}return(d,f)=>{const h=rn("router-link");return w(),K(p(Dn),{columns:i.value,rows:e.devices,caption:e.caption},Eo({"cell-device":k(({row:g})=>[I(h,{to:{name:"device-detail",params:{id:String(g.id)}},class:"device-link"},{default:k(()=>[L("div",Cv,[L("div",{class:"device-icon text-primary",innerHTML:o(g.device_type)},null,8,Ev),L("div",Rv,[L("div",$v,[L("strong",null,N(g.name||g.alias||`Device #${g.id}`),1),g.status&&g.status!=="active"?(w(),K(p(_e),{key:0,variant:l(g.status),size:"sm"},{default:k(()=>[U(N(g.status),1)]),_:2},1032,["variant"])):ae("",!0),L("span",{class:Ft(["status-dot",{"text-success":g.connection_status==="active","text-danger":g.connection_status!=="active"}]),"aria-hidden":"true",title:g.connection_status==="active"?"Online":"Offline"},null,10,Tv)]),L("small",Pv,N(g.alias)+" — "+N(g.device_ip||"—"),1)])])]),_:2},1032,["to"])]),"cell-state":k(({row:g})=>[I(Pl,{"device-type":g.device_type,response:u(g).response,loading:u(g).status==="loading",error:u(g).status==="error"?u(g).message:null,"connection-status":g.connection_status||"unknown"},null,8,["device-type","response","loading","error","connection-status"])]),"cell-lastContact":k(({row:g})=>[g.last_contact?(w(),G("span",{key:0,title:p(Ga)(g.last_contact)},N(p($l)(g.last_contact)),9,Iv)):(w(),G("span",Dv,"—"))]),_:2},[e.showActions&&p(a).has("devices.control")?{name:"cell-actions",fn:k(({row:g})=>[I(p(ge),{variant:"warning",icon:"ph-arrow-clockwise",size:"sm",loading:p(n).isRebooting(g.id),onClick:y=>c(g.id)},{default:k(()=>[...f[0]||(f[0]=[U(" Reboot ",-1)])]),_:1},8,["loading","onClick"])]),key:"0"}:void 0]),1032,["columns","rows","caption"])}}},Il=Ke(Lv,[["__scopeId","data-v-32549911"]]),Ov={class:"scope-name"},Fv={key:1,class:"muted"},Nv={key:1,class:"muted"},Mv={__name:"ScriptTable",props:{scripts:{type:Array,required:!0},scriptType:{type:String,default:"regular"},showArea:{type:Boolean,default:!1},showScope:{type:Boolean,default:!0},showFilename:{type:Boolean,default:!0},showActions:{type:Boolean,default:!0},caption:{type:String,default:"Scripts"}},setup(e){const t=e,n=yn(),s=wt(),a=Mt(),r=Q(()=>{const c={};for(const d of s.areas)c[d.id]=d;return c});function i(c){var d;return c.area_id?((d=r.value[c.area_id])==null?void 0:d.display_name)||`Area ${c.area_id}`:null}function o(c){const d=c.type||t.scriptType;return d==="action"?"actions":d==="scope"?"scopes":d}const l=Q(()=>{const c=[{key:"alias",label:"Alias"},{key:"name",label:"Name"}];return t.showScope&&c.push({key:"scope",label:"Scope"}),t.showArea&&c.push({key:"area",label:"Area"}),c.push({key:"state",label:"State"}),t.showFilename&&c.push({key:"filename",label:"File"}),t.showActions&&c.push({key:"actions",label:"Actions"}),c});function u(c,d,f){const h=f.type||t.scriptType;h==="action"?n.setActionState(c,d):h==="regular"&&n.setRegularState(c,d)}return(c,d)=>{const f=rn("router-link");return w(),K(p(Dn),{columns:l.value,rows:e.scripts,caption:e.caption},Eo({"cell-alias":k(({row:h})=>[I(f,{to:{name:"script-detail",params:{type:o(h),id:h.alias}},class:"script-link"},{default:k(()=>[U(N(h.alias),1)]),_:2},1032,["to"])]),"cell-scope":k(({row:h})=>[h.scope?(w(),K(f,{key:0,to:{name:"script-detail",params:{type:"scopes",id:h.scope}},class:"scope-link"},{default:k(()=>[d[0]||(d[0]=L("span",{class:"scope-label"},"Scope",-1)),L("span",Ov,N(h.scope),1),d[1]||(d[1]=L("i",{class:"ph ph-arrow-right"},null,-1))]),_:2},1032,["to"])):(w(),G("span",Fv,"—"))]),"cell-area":k(({row:h})=>[h.area_id?(w(),K(p(_e),{key:0,variant:"primary"},{default:k(()=>[U(N(i(h)),1)]),_:2},1024)):(w(),G("span",Nv,"—"))]),"cell-state":k(({row:h})=>[I(p(_e),{variant:h.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(h.state),1)]),_:2},1032,["variant"])]),_:2},[e.showActions&&p(a).has("scripts.edit")?{name:"cell-actions",fn:k(({row:h})=>[h.state==="enabled"?(w(),K(p(ge),{key:0,variant:"secondary",icon:"ph-pause",onClick:g=>u(h.alias,!1,h)},{default:k(()=>[...d[2]||(d[2]=[U(" Disable ",-1)])]),_:1},8,["onClick"])):(w(),K(p(ge),{key:1,variant:"primary",icon:"ph-play",onClick:g=>u(h.alias,!0,h)},{default:k(()=>[...d[3]||(d[3]=[U(" Enable ",-1)])]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["columns","rows","caption"])}}},Dl=Ke(Mv,[["__scopeId","data-v-1ead75a7"]]),Uv={class:"page-actions-dropdown"},Bv=["aria-expanded","onClick"],kr={__name:"PageActionsDropdown",props:{items:{type:Array,required:!0}},setup(e){return(t,n)=>(w(),G("div",Uv,[I(p(Df),Wo({items:e.items},t.$attrs),{trigger:k(({toggle:s,open:a})=>[L("button",{class:"btn-icon",type:"button","aria-label":"Actions","aria-expanded":a?"true":"false",onClick:s},[...n[0]||(n[0]=[L("i",{class:"ph ph-dots-three-vertical"},null,-1)])],8,Bv)]),_:1},16,["items"])]))}},jv={class:"area-grid"},Vv=["innerHTML"],Hv={key:1},Gv={class:"script-meta"},qv={key:2},zv={__name:"ActionScriptsGrid",props:{scripts:{type:Array,required:!0},showAreaBadge:{type:Boolean,default:!1}},emits:["run-success"],setup(e,{emit:t}){const n=e,s=t,a=on(),r=yn(),i=wt(),o=mn(),l=Mt();function u(f){return!f.area_id||!n.showAreaBadge?null:i.areas.find(h=>h.id===f.area_id)||null}async function c(f){var g,y;const h=await r.runScript(f);h!=null&&h.ok?(o.success({title:`Ran ${f}`,text:(g=r.lastRunResult)!=null&&g.execTime?`Exec time: ${r.lastRunResult.execTime}`:void 0}),s("run-success",{alias:f})):o.error({title:`Failed ${f}`,text:((y=h==null?void 0:h.error)==null?void 0:y.message)||"Unknown error"})}function d(f){a.push({name:"script-detail",params:{type:"actions",id:f}})}return(f,h)=>(w(),G("div",jv,[(w(!0),G(De,null,Wt(e.scripts,g=>(w(),K(p($f),{key:g.alias,title:g.name,onClick:y=>d(g.alias)},{default:k(()=>[g.icon?(w(),G("div",{key:0,innerHTML:g.icon,class:"script-icon"},null,8,Vv)):ae("",!0),g.description?(w(),G("p",Hv,N(g.description),1)):ae("",!0),L("div",Gv,[I(p(_e),{variant:g.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(g.state),1)]),_:2},1032,["variant"]),g.scope?(w(),K(p(_e),{key:0,variant:"primary"},{default:k(()=>[U(N(g.scope),1)]),_:2},1024)):ae("",!0),e.showAreaBadge&&u(g)?(w(),K(p(_e),{key:1,variant:"primary"},{default:k(()=>[U(N(u(g).display_name),1)]),_:2},1024)):ae("",!0)]),g.created_by||g.author?(w(),G("small",qv,N(g.created_by||g.author),1)):ae("",!0)]),actions:k(()=>[p(l).has("scripts.run")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-play",loading:p(r).isRunning(g.alias),disabled:g.state!=="enabled",onClick:Ys(y=>c(g.alias),["stop"])},{default:k(()=>[...h[0]||(h[0]=[U(" Run ",-1)])]),_:1},8,["loading","disabled","onClick"])):ae("",!0)]),_:2},1032,["title","onClick"]))),128))]))}},Ll=Ke(zv,[["__scopeId","data-v-aeab265d"]]),Kv={class:"page"},Wv={key:3},Jv={class:"area-meta"},Yv={class:"actions-panel"},Xv={class:"block-title"},Zv={class:"devices-panel"},Qv={class:"block-title"},eg={class:"scripts-panel"},tg={class:"block-title"},ng={class:"form-group"},sg={key:0,class:"form-group"},ag={key:1,class:"form-group"},rg={key:2,class:"form-group"},ig={key:0,class:"form-group"},og={key:0,class:"form-group"},lg={__name:"AreaDetailPage",setup(e){const t=ea(),n=on(),s=wt(),a=na(),r=yr();yn();const i=mn(),o=Mt(),{showAssignModal:l,selectedAreaId:u,assignLoading:c,assignError:d,openAssign:f,submitAssignCore:h}=br(),g=Q(()=>s.areasById[String(t.params.id)]||null),y=Q(()=>g.value?r.has(g.value.id):!1),m=Q(()=>{var x;const $=[];return o.has("areas.manage")&&($.push({label:"Rename",icon:"ph-pencil",onSelect:ve}),((x=g.value)==null?void 0:x.parent_id)>0?$.push({label:"Change parent area",icon:"ph-map-pin",onSelect:Me},{label:"Unassign from parent",icon:"ph-x-circle",onSelect:Ve}):$.push({label:"Assign to area",icon:"ph-map-pin",onSelect:Me})),$.push({label:y.value?"Remove bookmark":"Bookmark",icon:y.value?"ph-fill ph-bookmark-simple":"ph-bookmark-simple",onSelect:()=>{var ee;return r.toggle((ee=g.value)==null?void 0:ee.id)}}),o.has("areas.manage")&&$.push({label:"Remove",icon:"ph-trash",danger:!0,onSelect:Ee}),$}),P=Q(()=>!g.value||g.value.parent_id<=0?null:s.areasById[String(g.value.parent_id)]||null),_=Q(()=>s.currentAreaScripts.filter($=>$.type==="action")),S=Q(()=>s.currentAreaScripts.filter($=>$.type!=="action")),E=Q(()=>{if(!g.value)return!1;const $=!g.value.parent_id||g.value.parent_id<=0,x=s.areas.filter(ee=>!ee.parent_id||ee.parent_id<=0).length;return $&&x===1});function F($){const x=new Set,ee=[$];for(;ee.length;){const v=ee.shift(),b=s.areas.filter(C=>C.parent_id===v);for(const C of b)x.add(C.id),ee.push(C.id)}return x}const D=Q(()=>{if(!g.value)return[];const $=new Set([g.value.id,...F(g.value.id)]);return s.areas.filter(x=>!$.has(x.id)).map(x=>({value:String(x.id),label:`${x.display_name} (${x.type})`}))}),T=J(!1),A=J(!1),R=J(""),Z=Yt({areaId:null,display_name:""}),ue=J(!1),de=J(""),pe=J(!1),B=J(""),q=J(!1),X=J(""),W=J(!1),te=J("");function ve(){g.value&&(Z.areaId=g.value.id,Z.display_name=g.value.display_name,R.value="",T.value=!0)}async function Se(){var x;A.value=!0,R.value="";const $=await s.renameArea(Z.areaId,Z.display_name);if(A.value=!1,!$.ok){R.value=((x=$.error)==null?void 0:x.message)||"Failed to rename area";return}T.value=!1,i.success({title:"Renamed",text:"Area renamed successfully"})}function Ee(){g.value&&(de.value=`Are you sure you want to remove area "${g.value.display_name}"?`,B.value="",ue.value=!0)}async function we(){var x;if(!g.value)return;pe.value=!0,B.value="";const $=await s.removeArea(g.value.id);if(pe.value=!1,!$.ok){B.value=((x=$.error)==null?void 0:x.message)||"Failed to remove area";return}ue.value=!1,i.success({title:"Removed",text:"Area removed successfully"}),n.push({name:"areas-tree"})}function Me(){var $;f((($=g.value)==null?void 0:$.parent_id)>0?g.value.parent_id:"")}async function je(){var ee;const $=(ee=g.value)==null?void 0:ee.id,x=await h($,(v,b)=>s.assignToArea(v,b));x!=null&&x.ok&&i.success({title:"Assigned",text:"Area assigned successfully"})}function Ve(){g.value&&(X.value=`Are you sure you want to unassign area "${g.value.display_name}" from its parent?`,te.value="",q.value=!0)}async function Te(){var x;if(!g.value)return;W.value=!0,te.value="";const $=await s.unassignArea(g.value.id);if(W.value=!1,!$.ok){te.value=((x=$.error)==null?void 0:x.message)||"Failed to unassign area";return}q.value=!1,i.success({title:"Unassigned",text:"Area unassigned from parent successfully"})}async function M(){s.currentAreaDevices.length>0&&await a.loadStatesFor(s.currentAreaDevices)}async function se(){const $=t.params.id;$&&(s.areas.length===0&&await s.loadAreas(),s.areasById[String($)]&&(await s.loadAreaDetail($),await M()))}return kt(()=>t.params.id,async($,x)=>{$&&$!==x&&await se()},{immediate:!1}),bt(()=>{se()}),ds(()=>{s.clearAreaDetail()}),($,x)=>(w(),G("section",Kv,[p(s).isLoading||p(s).isLoadingAreaDetail?(w(),K(_t,{key:0,text:"Loading area"})):p(s).error&&!p(s).areas.length?(w(),K(pt,{key:1,title:"Areas loading failed",error:p(s).error,retry:se},null,8,["error"])):p(s).errorAreaDetail?(w(),K(pt,{key:2,title:"Area loading failed",error:p(s).errorAreaDetail,retry:se},null,8,["error"])):g.value?(w(),G("div",Wv,[I(p(Et),{title:g.value.display_name,kicker:"Area"},{actions:k(()=>[I(kr,{items:m.value},null,8,["items"])]),_:1},8,["title"]),L("div",Jv,[I(p(_e),{variant:"secondary"},{default:k(()=>[U(N(g.value.type),1)]),_:1}),L("code",null,N(g.value.alias),1),I(wr,{area:P.value,areaId:g.value.parent_id},null,8,["area","areaId"])]),L("div",Yv,[L("div",Xv,"Actions ("+N(_.value.length)+")",1),_.value.length===0?(w(),K(rt,{key:0,title:"No actions",message:"No action scripts assigned to this area."})):(w(),K(Ll,{key:1,scripts:_.value,onRunSuccess:M},null,8,["scripts"]))]),L("div",Zv,[L("div",Qv,"Devices ("+N(p(s).currentAreaDevices.length)+")",1),p(s).currentAreaDevices.length===0?(w(),K(rt,{key:0,title:"No devices",message:"No devices assigned to this area."})):(w(),K(Il,{key:1,devices:p(s).currentAreaDevices,caption:"Area devices"},null,8,["devices"]))]),I(Sr,{areaId:g.value.parent_id>0?g.value.parent_id:null,title:"Parent area",emptyMessage:"This area is not assigned to any parent area.",onAssign:Me},{action:k(()=>[p(o).has("areas.manage")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-map-pin",onClick:Me},{default:k(()=>[U(N(g.value.parent_id>0?"Change parent area":"Assign to area"),1)]),_:1})):ae("",!0)]),_:1},8,["areaId"]),L("div",eg,[L("div",tg,"Regular scripts ("+N(S.value.length)+")",1),S.value.length===0?(w(),K(rt,{key:0,title:"No regular scripts",message:"No regular scripts assigned to this area."})):(w(),K(Dl,{key:1,scripts:S.value,scriptType:"regular",showArea:!1,showActions:!1,showFilename:!1,caption:"Area regular scripts"},null,8,["scripts"]))])])):(w(),K(rt,{key:4,title:"Area not found",message:"The requested area does not exist."})),I(p(ut),{open:T.value,title:"Rename area","onUpdate:open":x[2]||(x[2]=ee=>T.value=ee)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[1]||(x[1]=ee=>T.value=!1)},{default:k(()=>[...x[10]||(x[10]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-check",loading:A.value,onClick:Se},{default:k(()=>[...x[11]||(x[11]=[U("Rename",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("div",ng,[I(p(At),{modelValue:Z.display_name,"onUpdate:modelValue":x[0]||(x[0]=ee=>Z.display_name=ee),label:"Display name"},null,8,["modelValue"])]),R.value?(w(),G("div",sg,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(R.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:p(l),title:"Assign to parent area","onUpdate:open":x[5]||(x[5]=ee=>l.value=ee)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[4]||(x[4]=ee=>l.value=!1)},{default:k(()=>[...x[13]||(x[13]=[U("Cancel",-1)])]),_:1}),E.value?ae("",!0):(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-check",loading:p(c),onClick:je},{default:k(()=>[...x[14]||(x[14]=[U(" Assign ",-1)])]),_:1},8,["loading"]))]),default:k(()=>[E.value?ae("",!0):(w(),K(p(fr),{key:0,modelValue:p(u),"onUpdate:modelValue":x[3]||(x[3]=ee=>Ue(u)?u.value=ee:null),label:"Parent area",options:D.value,icon:"ph-map-trifold"},null,8,["modelValue","options"])),E.value?(w(),G("div",ag,[I(p(Ze),{variant:"warning"},{default:k(()=>[...x[12]||(x[12]=[U(" This is the last root area and cannot be assigned as a child. At least one root area must remain. ",-1)])]),_:1})])):ae("",!0),p(d)?(w(),G("div",rg,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(p(d)),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:q.value,title:"Unassign from parent","onUpdate:open":x[7]||(x[7]=ee=>q.value=ee)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[6]||(x[6]=ee=>q.value=!1)},{default:k(()=>[...x[15]||(x[15]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"warning",icon:"ph-x-circle",loading:W.value,onClick:Te},{default:k(()=>[...x[16]||(x[16]=[U(" Unassign ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(X.value),1),te.value?(w(),G("div",ig,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(te.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:ue.value,title:"Remove area","onUpdate:open":x[9]||(x[9]=ee=>ue.value=ee)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[8]||(x[8]=ee=>ue.value=!1)},{default:k(()=>[...x[17]||(x[17]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"danger",icon:"ph-trash",loading:pe.value,onClick:we},{default:k(()=>[...x[18]||(x[18]=[U(" Remove ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(de.value),1),B.value?(w(),G("div",og,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(B.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"])]))}},ug=Ke(lg,[["__scopeId","data-v-757a0469"]]),cg={class:"page"},dg={key:3,class:"devices-panel"},fg={class:"devices-summary"},pg=300*1e3,vg={__name:"DevicesListPage",setup(e){const t=na(),n=Q(()=>{if(!t.lastLoadedAt)return!1;const a=new Date(t.lastLoadedAt).getTime();return Date.now()-a>pg});async function s(){(await t.loadDevices()).ok&&await t.loadDeviceStates()}return bt(s),(a,r)=>(w(),G("section",cg,[I(p(Et),{title:"Device Matrix",kicker:"Devices"},{actions:k(()=>[I(p(ge),{loading:p(t).isLoading||p(t).isLoadingStates,icon:"ph-arrow-clockwise",onClick:s},{default:k(()=>[...r[0]||(r[0]=[U(" Refresh ",-1)])]),_:1},8,["loading"])]),_:1}),p(t).isLoading?(w(),K(_t,{key:0,text:"Loading devices"})):p(t).error?(w(),K(pt,{key:1,title:"Devices loading failed",error:p(t).error,retry:s},null,8,["error"])):p(t).devices.length===0?(w(),K(rt,{key:2,title:"No active devices",message:"No active devices found."})):(w(),G("div",dg,[L("div",fg,[I(p(_e),{variant:"primary"},{default:k(()=>[U("Total: "+N(p(t).total),1)]),_:1}),p(t).isLoadingStates?(w(),K(p(_e),{key:0,variant:"secondary"},{default:k(()=>[...r[1]||(r[1]=[U("States loading",-1)])]),_:1})):(w(),K(p(_e),{key:1,variant:"success"},{default:k(()=>[...r[2]||(r[2]=[U("States settled",-1)])]),_:1})),n.value?(w(),K(p(_e),{key:2,variant:"warning"},{default:k(()=>[...r[3]||(r[3]=[U("Stale data",-1)])]),_:1})):ae("",!0)]),p(t).stateError?(w(),K(pt,{key:0,title:"Device states loading failed",error:p(t).stateError},null,8,["error"])):ae("",!0),I(Il,{devices:p(t).devices,caption:"Registered devices"},null,8,["devices"])]))]))}},gg=Ke(vg,[["__scopeId","data-v-635f3900"]]),hg=hn("scanning",()=>{const e=J("setup"),t=J([]),n=gt(),s=Q(()=>t.value.length);async function a(){return n.execute(async o=>{var u,c;const l=e.value==="setup"?await nt.scanningSetup({signal:o}):await nt.scanningAll({signal:o});return l.ok&&(t.value=((c=(u=l.data)==null?void 0:u.data)==null?void 0:c.devices)||[]),l})}function r(o){e.value=o,t.value=[],n.clear()}async function i(o){return nt.setupNewDevice(o)}return{mode:e,devices:t,isLoading:n.isLoading,error:n.error,total:s,scan:a,setMode:r,setupDevice:i}}),mg={class:"page"},yg={class:"scan-filters"},_g={key:3,class:"devices-panel"},bg={class:"devices-summary"},wg={class:"device-cell"},Sg=["innerHTML"],kg={class:"device-info"},Ag={class:"firmware"},xg={key:1,class:"muted"},Cg={class:"form-group"},Eg={class:"form-group"},Rg={class:"form-group"},$g={key:0,class:"form-group"},Tg={__name:"DevicesScanningPage",setup(e){const t=hg(),n=mn(),s=Mt(),a=J(!1),r=J(!1),i=J(""),o=Yt({device_ip:"",alias:"",name:"",description:""}),l={relay:'<i class="ph ph-toggle-left"></i>',button:'<i class="ph ph-hand-tap"></i>',sensor:'<i class="ph ph-thermometer"></i>'},u=[{key:"device",label:"Device"},{key:"status",label:"Status"},{key:"firmware",label:"Firmware"},{key:"actions",label:"Actions"}];function c(y){return l[y]||l.relay}function d(y){t.setMode(y)}function f(){t.scan()}function h(y){o.device_ip=y.ip_address,o.alias="",o.name="",o.description="",i.value="",a.value=!0}async function g(){var m;r.value=!0,i.value="";const y=await t.setupDevice({...o});if(r.value=!1,!y.ok){i.value=((m=y.error)==null?void 0:m.message)||"Failed to setup device";return}a.value=!1,n.success({title:"Device added",text:`Device ${o.alias||o.name||""} added successfully`})}return(y,m)=>(w(),G("section",mg,[I(p(Et),{title:"Scanning",kicker:"Devices"},{actions:k(()=>[I(p(ge),{loading:p(t).isLoading,icon:"ph-magnifying-glass",onClick:f},{default:k(()=>[...m[7]||(m[7]=[U(" Scan ",-1)])]),_:1},8,["loading"])]),_:1}),L("div",yg,[m[10]||(m[10]=L("span",{class:"filter-label text-muted"},"Mode:",-1)),I(p(wi),{selected:p(t).mode==="setup",clickable:"",icon:"ph-plug",onClick:m[0]||(m[0]=P=>d("setup"))},{default:k(()=>[...m[8]||(m[8]=[U(" Setup ",-1)])]),_:1},8,["selected"]),I(p(wi),{selected:p(t).mode==="all",clickable:"",icon:"ph-scan",onClick:m[1]||(m[1]=P=>d("all"))},{default:k(()=>[...m[9]||(m[9]=[U(" All ",-1)])]),_:1},8,["selected"])]),p(t).isLoading?(w(),K(_t,{key:0,text:"Scanning network"})):p(t).error?(w(),K(pt,{key:1,title:"Scan failed",error:p(t).error,retry:f},null,8,["error"])):p(t).devices.length===0?(w(),K(rt,{key:2,title:"No devices found",message:"Choose scan mode and click Scan to discover devices."})):(w(),G("div",_g,[L("div",bg,[I(p(_e),{variant:"primary"},{default:k(()=>[U(N(p(t).total)+" found",1)]),_:1})]),I(p(Dn),{columns:u,rows:p(t).devices,caption:"Discovered devices"},{"cell-device":k(({row:P})=>[L("div",wg,[L("div",{class:"device-icon",innerHTML:c(P.device_type)},null,8,Sg),L("div",kg,[L("strong",null,N(P.device_name||"Unknown"),1),L("small",null,N(P.device_type||"unknown")+" — "+N(P.ip_address||"—"),1)])])]),"cell-status":k(({row:P})=>[I(p(_e),{variant:P.status==="setup"?"warning":"success"},{default:k(()=>[U(N(P.status||"unknown"),1)]),_:2},1032,["variant"])]),"cell-firmware":k(({row:P})=>[L("span",Ag,N(P.firmware_version||"—"),1)]),"cell-actions":k(({row:P})=>[P.status==="setup"&&p(s).has("devices.setup")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-plus",size:"sm",onClick:_=>h(P)},{default:k(()=>[...m[11]||(m[11]=[U(" Add ",-1)])]),_:1},8,["onClick"])):(w(),G("span",xg,"—"))]),_:1},8,["rows"])])),I(p(ut),{open:a.value,title:"Setup new device","onUpdate:open":m[6]||(m[6]=P=>a.value=P)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:m[5]||(m[5]=P=>a.value=!1)},{default:k(()=>[...m[12]||(m[12]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-plus",loading:r.value,onClick:g},{default:k(()=>[...m[13]||(m[13]=[U(" Add device ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("div",Cg,[I(p(At),{modelValue:o.alias,"onUpdate:modelValue":m[2]||(m[2]=P=>o.alias=P),label:"Alias",placeholder:"kitchen_relay"},null,8,["modelValue"])]),L("div",Eg,[I(p(At),{modelValue:o.name,"onUpdate:modelValue":m[3]||(m[3]=P=>o.name=P),label:"Name",placeholder:"Kitchen Relay"},null,8,["modelValue"])]),L("div",Rg,[I(p(At),{modelValue:o.description,"onUpdate:modelValue":m[4]||(m[4]=P=>o.description=P),label:"Description"},null,8,["modelValue"])]),i.value?(w(),G("div",$g,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(i.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"])]))}},Pg=Ke(Tg,[["__scopeId","data-v-1a01bb19"]]);function Di(e){return encodeURIComponent(String(e))}const Vn={async list(){return Le("/api/v1/firmwares")},async detail(e){return Le(`/api/v1/firmwares/id/${Di(e)}`)},async refresh(){return Qe("/api/v1/firmwares/refresh")},async deviceCompatibility(e){return Le(`/api/v1/devices/id/${Di(e)}/firmware-compatibility`)},async updateDeviceFirmware(e,t){return Qe("/api/v1/devices/update-firmware",{device_id:e,firmware_id:t})}},Ol=hn("firmwares",()=>{const e=J([]),t=J(null),n=J(null),s=gt(),a=gt(),r=gt(),i=gt(),o=Q(()=>s.isLoading.value),l=Q(()=>a.isLoading.value),u=Q(()=>r.isLoading.value),c=Q(()=>i.isLoading.value);async function d(){return s.execute(async P=>{var S,E;const _=await Vn.list({signal:P});return _.ok&&(e.value=((E=(S=_.data)==null?void 0:S.data)==null?void 0:E.firmwares)||[]),_})}async function f(){return r.execute(async()=>{const P=await Vn.refresh();return P.ok&&await d(),P})}async function h(P){return a.execute(async _=>{var E,F;const S=await Vn.detail(P,{signal:_});return S.ok&&(t.value=((F=(E=S.data)==null?void 0:E.data)==null?void 0:F.firmware)||null),S})}async function g(P){return i.execute(async _=>{var E,F,D,T;const S=await Vn.deviceCompatibility(P,{signal:_});return S.ok&&(n.value={compatible:((F=(E=S.data)==null?void 0:E.data)==null?void 0:F.compatible)||[],currentVersion:((T=(D=S.data)==null?void 0:D.data)==null?void 0:T.current_version)||"unknown"}),S})}async function y(P,_){return r.execute(async()=>Vn.updateDeviceFirmware(P,_))}function m(){n.value=null}return{firmwares:e,current:t,compatibility:n,isLoadingList:o,isLoadingDetail:l,isUpdating:u,isLoadingCompatibility:c,loadFirmwares:d,refreshFirmwares:f,loadFirmwareDetail:h,loadDeviceCompatibility:g,updateDeviceFirmware:y,clearCompatibility:m}}),Ig={class:"page"},Dg={key:2},Lg={class:"device-meta"},Og={class:"script-info-panel"},Fg={class:"info-row"},Ng={class:"info-value"},Mg={class:"info-row"},Ug={class:"info-value"},Bg={class:"info-row"},jg={class:"info-value"},Vg={class:"info-row"},Hg={class:"info-value"},Gg={class:"info-row"},qg={class:"info-value"},zg={class:"info-row"},Kg={class:"info-value"},Wg={class:"info-row"},Jg={class:"info-value"},Yg={key:0,class:"info-row"},Xg=["title"],Zg={key:1,class:"info-row"},Qg={class:"info-value"},eh={key:0,class:"devices-panel"},th={key:1,class:"devices-panel"},nh={class:"form-group"},sh={class:"form-group"},ah={class:"form-group"},rh={key:0,class:"form-group"},ih={key:0,class:"form-group"},oh={key:0,class:"form-group"},lh={key:0,class:"form-group"},uh={key:0,class:"form-group"},ch={key:0,class:"form-group"},dh={class:"firmware-options"},fh=["onClick"],ph={class:"fw-version"},vh={key:0,class:"fw-desc"},gh={key:0,class:"form-group"},hh={__name:"DeviceDetailPage",setup(e){const t=ea(),n=on(),s=na(),a=wt(),r=Ol(),i=mn(),o=Mt(),{areaOptions:l,showAssignModal:u,selectedAreaId:c,assignLoading:d,assignError:f,openAssign:h,submitAssignCore:g}=br(),y=Q(()=>t.params.id),m=Q(()=>s.currentDevice),P=Q(()=>s.isLoadingDetail),_=Q(()=>s.errorDetail),S=J(!1),E=J(null),F=Q(()=>{var O;const ie=(O=m.value)==null?void 0:O.area_id;return ie&&a.areasById[String(ie)]||null}),D=J(!1),T=J(!1),A=J(""),R=Yt({name:"",description:"",alias:""}),Z=J(!1),ue=J(""),de=J(!1),pe=J(""),B=J(!1),q=J(""),X=J(!1),W=J(""),te=J(!1),ve=J(""),Se=J(!1),Ee=J(""),we=J(!1),Me=J(""),je=J(!1),Ve=J(""),Te=J(!1),M=J(null),se=J(""),$=Q(()=>{var ie,O;return(((O=(ie=r.compatibility)==null?void 0:ie.compatible)==null?void 0:O.length)||0)>0}),x=Q(()=>{var ie;return((ie=r.compatibility)==null?void 0:ie.compatible)||[]}),ee=Q(()=>{var O,Ie;const ie=[];return o.has("devices.edit")&&(ie.push({label:"Edit",icon:"ph-pencil",onSelect:v}),(O=m.value)!=null&&O.area_id?ie.push({label:"Change area",icon:"ph-map-pin",onSelect:C},{label:"Unassign from area",icon:"ph-x-circle",onSelect:z}):ie.push({label:"Assign to area",icon:"ph-map-pin",onSelect:C})),o.has("devices.setup")&&ie.push({label:"ReSetup",icon:"ph-gear",onSelect:Y}),o.has("devices.control")&&ie.push({label:"Reboot",icon:"ph-arrow-clockwise",disabled:s.isRebooting((Ie=m.value)==null?void 0:Ie.id),onSelect:ne}),o.has("devices.edit")&&ie.push({label:"Reset",icon:"ph-x",danger:!0,onSelect:le}),o.has("devices.delete")&&ie.push({label:"Remove",icon:"ph-trash",danger:!0,onSelect:oe}),ie});function v(){m.value&&(R.name=m.value.name||"",R.description=m.value.description||"",R.alias=m.value.alias||"",A.value="",D.value=!0)}async function b(){var et,he,We,ze;T.value=!0,A.value="";const ie=y.value,O=await Promise.all([R.name!==((et=m.value)==null?void 0:et.name)?s.updateDeviceName(ie,R.name):{ok:!0},R.description!==((he=m.value)==null?void 0:he.description)?s.updateDeviceDescription(ie,R.description):{ok:!0},R.alias!==((We=m.value)==null?void 0:We.alias)?s.updateDeviceAlias(ie,R.alias):{ok:!0}]);T.value=!1;const Ie=O.find(Fn=>!Fn.ok);if(Ie){A.value=((ze=Ie.error)==null?void 0:ze.message)||"Failed to update device";return}D.value=!1,i.success({title:"Updated",text:"Device updated successfully"})}function C(){var ie;h((ie=m.value)==null?void 0:ie.area_id)}async function j(){const ie=await g(y.value,s.assignToArea.bind(s));ie!=null&&ie.ok&&i.success({title:"Assigned",text:"Device assigned to area successfully"})}function z(){m.value&&(q.value=`Are you sure you want to unassign device "${m.value.name||m.value.alias}" from its area?`,W.value="",B.value=!0)}async function H(){var O;if(!m.value)return;X.value=!0,W.value="";const ie=await s.unassignDevice(y.value);if(X.value=!1,!ie.ok){W.value=((O=ie.error)==null?void 0:O.message)||"Failed to unassign device";return}B.value=!1,i.success({title:"Unassigned",text:"Device unassigned from area successfully"})}function oe(){m.value&&(ue.value=`Are you sure you want to remove device "${m.value.name||m.value.alias}"?`,pe.value="",Z.value=!0)}async function re(){var Ie;const ie=y.value;de.value=!0,pe.value="";const O=await s.removeDevice(ie);if(de.value=!1,!O.ok){pe.value=((Ie=O.error)==null?void 0:Ie.message)||"Failed to remove device";return}Z.value=!1,i.success({title:"Removed",text:"Device removed successfully"}),n.push({name:"devices"})}async function ne(){var O;if(!m.value)return;const ie=await s.rebootDevice(m.value.id);ie.ok?i.success({title:"Rebooting",text:`Device ${m.value.name||m.value.alias||"#"+m.value.id} is rebooting`}):i.error({title:"Reboot failed",text:((O=ie.error)==null?void 0:O.message)||"Failed to reboot device"})}function Y(){m.value&&(ve.value=`Are you sure you want to repeat setup for device "${m.value.name||m.value.alias}"?`,Ee.value="",te.value=!0)}async function fe(){var Ie,et,he;const ie=y.value;Se.value=!0,Ee.value="";const O=await s.resetupDevice(ie);if(Se.value=!1,!O.ok){Ee.value=((Ie=O.error)==null?void 0:Ie.message)||"Failed to repeat device setup";return}te.value=!1,i.success({title:"Success",text:`Device ${((et=m.value)==null?void 0:et.name)||((he=m.value)==null?void 0:he.alias)||"#"+ie} setup repeated`}),n.push({name:"devices"})}function le(){m.value&&(Me.value=`Are you sure you want to reset device "${m.value.name||m.value.alias}"?`,Ve.value="",we.value=!0)}async function ce(){var Ie,et,he;const ie=y.value;je.value=!0,Ve.value="";const O=await s.resetDevice(ie);if(je.value=!1,!O.ok){Ve.value=((Ie=O.error)==null?void 0:Ie.message)||"Failed to reset device";return}we.value=!1,i.success({title:"Success",text:`Device ${((et=m.value)==null?void 0:et.name)||((he=m.value)==null?void 0:he.alias)||"#"+ie} reset`}),n.push({name:"devices"})}function me(){var ie;M.value=((ie=x.value[0])==null?void 0:ie.id)||null,se.value="",Te.value=!0}async function ke(){var O;if(!M.value||!m.value)return;const ie=await r.updateDeviceFirmware(m.value.id,M.value);if(!ie.ok){se.value=((O=ie.error)==null?void 0:O.message)||"Firmware update failed";return}Te.value=!1,i.success({title:"Updated",text:"Firmware update pushed successfully"}),await s.loadDeviceDetail(y.value)}function Re(ie){return{active:"success",removed:"danger",freezed:"warning",setup:"primary"}[ie]||"secondary"}async function Pe(){const ie=y.value;if(!ie||!m.value||m.value.connection_status!=="active")return;S.value=!0,E.value=null;const O=await s.loadDeviceStatus(ie);S.value=!1,O.ok||(E.value=O.error)}async function Be(){var O;const ie=y.value;ie&&(a.areas.length===0&&await a.loadAreas(),await s.loadDeviceDetail(ie),((O=m.value)==null?void 0:O.connection_status)==="active"&&(await Pe(),await r.loadDeviceCompatibility(ie)))}return bt(()=>{Be()}),ds(()=>{s.clearDeviceDetail(),r.clearCompatibility()}),kt(()=>t.params.id,(ie,O)=>{ie!==O&&(s.clearDeviceDetail(),Be())}),(ie,O)=>{var Ie,et;return w(),G("section",Ig,[P.value?(w(),K(_t,{key:0,text:"Loading device details"})):_.value?(w(),K(pt,{key:1,title:"Device loading failed",error:_.value,retry:Be},null,8,["error"])):m.value?(w(),G("div",Dg,[I(p(Et),{title:m.value.name||m.value.alias||`Device #${m.value.id}`,kicker:"Device"},{actions:k(()=>[I(kr,{items:ee.value},null,8,["items"])]),_:1},8,["title"]),L("div",Lg,[I(p(_e),{variant:m.value.connection_status==="active"?"success":"danger"},{default:k(()=>[U(N(m.value.connection_status==="active"?"Online":"Offline"),1)]),_:1},8,["variant"]),L("code",null,N(m.value.alias),1),I(wr,{area:F.value,areaId:m.value.area_id},null,8,["area","areaId"])]),L("div",Og,[L("div",Fg,[O[18]||(O[18]=L("span",{class:"info-label text-muted"},"System status:",-1)),L("span",Ng,[I(p(_e),{variant:Re(m.value.status)},{default:k(()=>[U(N(m.value.status),1)]),_:1},8,["variant"])])]),L("div",Mg,[O[19]||(O[19]=L("span",{class:"info-label text-muted"},"Type:",-1)),L("span",Ug,N(m.value.device_type),1)]),L("div",Bg,[O[20]||(O[20]=L("span",{class:"info-label text-muted"},"State:",-1)),L("span",jg,[I(Pl,{"device-type":m.value.device_type,response:(Ie=p(s).currentDeviceStatus)==null?void 0:Ie.raw,loading:S.value,error:(et=E.value)==null?void 0:et.message,"connection-status":m.value.connection_status},null,8,["device-type","response","loading","error","connection-status"])])]),L("div",Vg,[O[21]||(O[21]=L("span",{class:"info-label text-muted"},"IP:",-1)),L("span",Hg,N(m.value.device_ip),1)]),L("div",Gg,[O[22]||(O[22]=L("span",{class:"info-label text-muted"},"MAC:",-1)),L("span",qg,N(m.value.device_mac),1)]),L("div",zg,[O[23]||(O[23]=L("span",{class:"info-label text-muted"},"Hard ID:",-1)),L("span",Kg,N(m.value.device_hard_id),1)]),L("div",Wg,[O[24]||(O[24]=L("span",{class:"info-label text-muted"},"Firmware:",-1)),L("span",Jg,N(m.value.firmware_version),1)]),m.value.last_contact?(w(),G("div",Yg,[O[25]||(O[25]=L("span",{class:"info-label text-muted"},"Last contact:",-1)),L("span",{class:"info-value",title:p(Ga)(m.value.last_contact)},N(p($l)(m.value.last_contact)),9,Xg)])):ae("",!0),m.value.create_at?(w(),G("div",Zg,[O[26]||(O[26]=L("span",{class:"info-label text-muted"},"Created:",-1)),L("span",Qg,N(p(Ga)(m.value.create_at)),1)])):ae("",!0)]),I(Sr,{item:m.value,emptyMessage:"This device is not assigned to any area.",onAssign:C},{action:k(()=>[p(o).has("devices.edit")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-map-pin",onClick:C},{default:k(()=>{var he;return[U(N((he=m.value)!=null&&he.area_id?"Change area":"Assign to area"),1)]}),_:1})):ae("",!0)]),_:1},8,["item"]),$.value&&p(o).has("firmware.upload")?(w(),G("div",eh,[O[29]||(O[29]=L("div",{class:"block-title"},"Firmware Update",-1)),I(p(Ze),{variant:"info"},{default:k(()=>[O[27]||(O[27]=U(" New firmware available: ",-1)),(w(!0),G(De,null,Wt(x.value,he=>(w(),K(p(_e),{key:he.id,variant:"success"},{default:k(()=>[U(N(he.version),1)]),_:2},1024))),128))]),_:1}),I(p(ge),{variant:"primary",icon:"ph-cloud-arrow-down",onClick:me},{default:k(()=>[...O[28]||(O[28]=[U(" Update Firmware ",-1)])]),_:1})])):ae("",!0),m.value.description?(w(),G("div",th,[O[30]||(O[30]=L("div",{class:"block-title"},"Description",-1)),L("p",null,N(m.value.description),1)])):ae("",!0)])):(w(),K(rt,{key:3,title:"Device not found",message:"The requested device does not exist."})),I(p(ut),{open:D.value,title:"Edit device","onUpdate:open":O[4]||(O[4]=he=>D.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[3]||(O[3]=he=>D.value=!1)},{default:k(()=>[...O[31]||(O[31]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-check",loading:T.value,onClick:b},{default:k(()=>[...O[32]||(O[32]=[U(" Save ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("div",nh,[I(p(At),{modelValue:R.name,"onUpdate:modelValue":O[0]||(O[0]=he=>R.name=he),label:"Name"},null,8,["modelValue"])]),L("div",sh,[I(p(At),{modelValue:R.description,"onUpdate:modelValue":O[1]||(O[1]=he=>R.description=he),label:"Description"},null,8,["modelValue"])]),L("div",ah,[I(p(At),{modelValue:R.alias,"onUpdate:modelValue":O[2]||(O[2]=he=>R.alias=he),label:"Alias"},null,8,["modelValue"])]),A.value?(w(),G("div",rh,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(A.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:p(u),title:"Assign to area","onUpdate:open":O[7]||(O[7]=he=>u.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[6]||(O[6]=he=>u.value=!1)},{default:k(()=>[...O[33]||(O[33]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-check",loading:p(d),onClick:j},{default:k(()=>[...O[34]||(O[34]=[U(" Assign ",-1)])]),_:1},8,["loading"])]),default:k(()=>[I(p(fr),{modelValue:p(c),"onUpdate:modelValue":O[5]||(O[5]=he=>Ue(c)?c.value=he:null),label:"Area",options:p(l),icon:"ph-map-trifold"},null,8,["modelValue","options"]),p(f)?(w(),G("div",ih,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(p(f)),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:B.value,title:"Unassign from area","onUpdate:open":O[9]||(O[9]=he=>B.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[8]||(O[8]=he=>B.value=!1)},{default:k(()=>[...O[35]||(O[35]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"warning",icon:"ph-x-circle",loading:X.value,onClick:H},{default:k(()=>[...O[36]||(O[36]=[U(" Unassign ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(q.value),1),W.value?(w(),G("div",oh,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(W.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:Z.value,title:"Remove device","onUpdate:open":O[11]||(O[11]=he=>Z.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[10]||(O[10]=he=>Z.value=!1)},{default:k(()=>[...O[37]||(O[37]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"danger",icon:"ph-trash",loading:de.value,onClick:re},{default:k(()=>[...O[38]||(O[38]=[U(" Remove ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(ue.value),1),pe.value?(w(),G("div",lh,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(pe.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:te.value,title:"Repeat device setup","onUpdate:open":O[13]||(O[13]=he=>te.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[12]||(O[12]=he=>te.value=!1)},{default:k(()=>[...O[39]||(O[39]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-gear",loading:Se.value,onClick:fe},{default:k(()=>[...O[40]||(O[40]=[U(" ReSetup ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(ve.value),1),Ee.value?(w(),G("div",uh,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(Ee.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:we.value,title:"Reset device","onUpdate:open":O[15]||(O[15]=he=>we.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[14]||(O[14]=he=>we.value=!1)},{default:k(()=>[...O[41]||(O[41]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"danger",icon:"ph-x",loading:je.value,onClick:ce},{default:k(()=>[...O[42]||(O[42]=[U(" Reset ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(Me.value),1),Ve.value?(w(),G("div",ch,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(Ve.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:Te.value,title:"Update Firmware","onUpdate:open":O[17]||(O[17]=he=>Te.value=he)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:O[16]||(O[16]=he=>Te.value=!1)},{default:k(()=>[...O[45]||(O[45]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-check",loading:p(r).isUpdating,disabled:!M.value,onClick:ke},{default:k(()=>[...O[46]||(O[46]=[U(" Update ",-1)])]),_:1},8,["loading","disabled"])]),default:k(()=>{var he,We;return[L("p",null,[O[43]||(O[43]=U("Select firmware to install on ",-1)),L("strong",null,N(((he=m.value)==null?void 0:he.name)||((We=m.value)==null?void 0:We.alias)),1),O[44]||(O[44]=U(":",-1))]),L("div",dh,[(w(!0),G(De,null,Wt(x.value,ze=>(w(),G("div",{key:ze.id,class:Ft(["firmware-option",{active:M.value===ze.id}]),onClick:Fn=>M.value=ze.id},[L("div",ph,N(ze.version),1),ze.description?(w(),G("div",vh,N(ze.description),1)):ae("",!0)],10,fh))),128))]),se.value?(w(),G("div",gh,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(se.value),1)]),_:1})])):ae("",!0)]}),_:1},8,["open"])])}}},mh=Ke(hh,[["__scopeId","data-v-a9f83185"]]),yh={class:"page"},_h={__name:"ScriptsActionsPage",setup(e){const t=yn(),n=wt();return bt(()=>{t.loadActions(),n.areas.length===0&&n.loadAreas()}),(s,a)=>(w(),G("section",yh,[I(p(Et),{title:"Actions",kicker:"Scripts"},{actions:k(()=>[I(p(_e),{variant:"primary"},{default:k(()=>[U(N(p(t).totalActions)+" scripts",1)]),_:1})]),_:1}),p(t).isLoadingActions?(w(),K(_t,{key:0,text:"Loading actions"})):p(t).errorActions?(w(),K(pt,{key:1,title:"Actions loading failed",error:p(t).errorActions,retry:p(t).loadActions},null,8,["error","retry"])):p(t).actions.length===0?(w(),K(rt,{key:2,title:"No action scripts",message:"No action scripts registered."})):(w(),K(Ll,{key:3,scripts:p(t).actions,"show-area-badge":""},null,8,["scripts"]))]))}},bh=Ke(_h,[["__scopeId","data-v-f336617a"]]),wh={class:"page"},Sh={key:3,class:"devices-panel"},kh={__name:"ScriptsRegularPage",setup(e){const t=yn(),n=wt();return bt(()=>{t.loadRegular(),n.areas.length===0&&n.loadAreas()}),(s,a)=>(w(),G("section",wh,[I(p(Et),{title:"Regular",kicker:"Scripts"},{actions:k(()=>[I(p(_e),{variant:"primary"},{default:k(()=>[U(N(p(t).totalRegular)+" scripts",1)]),_:1})]),_:1}),p(t).isLoadingRegular?(w(),K(_t,{key:0,text:"Loading regular scripts"})):p(t).errorRegular?(w(),K(pt,{key:1,title:"Regular scripts loading failed",error:p(t).errorRegular,retry:p(t).loadRegular},null,8,["error","retry"])):p(t).regular.length===0?(w(),K(rt,{key:2,title:"No regular scripts",message:"No regular scripts registered."})):(w(),G("div",Sh,[I(Dl,{scripts:p(t).regular,scriptType:"regular",showArea:!0,showScope:!0,showFilename:!0,showActions:!0,caption:"Regular scripts"},null,8,["scripts"])]))]))}},Ah={class:"page"},xh={key:3,class:"devices-panel"},Ch={__name:"ScriptsScopesPage",setup(e){on();const t=yn(),n=Mt(),s=[{key:"name",label:"Name"},{key:"filename",label:"File"},{key:"state",label:"State"},{key:"path",label:"Path"},{key:"actions",label:"Actions"}];function a(r,i){t.setScopeState(r,i)}return bt(()=>{t.loadScopes()}),(r,i)=>{const o=rn("router-link");return w(),G("section",Ah,[I(p(Et),{title:"Scopes",kicker:"Scripts"},{actions:k(()=>[I(p(_e),{variant:"primary"},{default:k(()=>[U(N(p(t).totalScopes)+" scopes",1)]),_:1})]),_:1}),p(t).isLoadingScopes?(w(),K(_t,{key:0,text:"Loading scopes"})):p(t).errorScopes?(w(),K(pt,{key:1,title:"Scopes loading failed",error:p(t).errorScopes,retry:p(t).loadScopes},null,8,["error","retry"])):p(t).scopes.length===0?(w(),K(rt,{key:2,title:"No scopes",message:"No script scopes registered."})):(w(),G("div",xh,[I(p(Dn),{columns:s,rows:p(t).scopes,caption:"Script scopes"},{"cell-name":k(({row:l})=>[I(o,{to:{name:"script-detail",params:{type:"scopes",id:l.name}},class:"script-link"},{default:k(()=>[U(N(l.name),1)]),_:2},1032,["to"])]),"cell-state":k(({row:l})=>[I(p(_e),{variant:l.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(l.state),1)]),_:2},1032,["variant"])]),"cell-actions":k(({row:l})=>[l.state==="enabled"&&p(n).has("scripts.edit")?(w(),K(p(ge),{key:0,variant:"secondary",icon:"ph-pause",onClick:u=>a(l.name,!1)},{default:k(()=>[...i[0]||(i[0]=[U(" Disable ",-1)])]),_:1},8,["onClick"])):p(n).has("scripts.edit")?(w(),K(p(ge),{key:1,variant:"primary",icon:"ph-play",onClick:u=>a(l.name,!0)},{default:k(()=>[...i[1]||(i[1]=[U(" Enable ",-1)])]),_:1},8,["onClick"])):ae("",!0)]),_:1},8,["rows"])]))])}}},Eh=Ke(Ch,[["__scopeId","data-v-c8486788"]]);var Li=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wa={exports:{}},Oi;function $h(){return Oi||(Oi=1,(function(e){var t=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/**
* Prism: Lightweight, robust, elegant syntax highlighting
*
* @license MIT <https://opensource.org/licenses/MIT>
* @author Lea Verou <https://lea.verou.me>
* @namespace
* @public
*/var n=(function(s){var a=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,r=0,i={},o={manual:s.Prism&&s.Prism.manual,disableWorkerMessageHandler:s.Prism&&s.Prism.disableWorkerMessageHandler,util:{encode:function _(S){return S instanceof l?new l(S.type,_(S.content),S.alias):Array.isArray(S)?S.map(_):S.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(_){return Object.prototype.toString.call(_).slice(8,-1)},objId:function(_){return _.__id||Object.defineProperty(_,"__id",{value:++r}),_.__id},clone:function _(S,E){E=E||{};var F,D;switch(o.util.type(S)){case"Object":if(D=o.util.objId(S),E[D])return E[D];F={},E[D]=F;for(var T in S)S.hasOwnProperty(T)&&(F[T]=_(S[T],E));return F;case"Array":return D=o.util.objId(S),E[D]?E[D]:(F=[],E[D]=F,S.forEach(function(A,R){F[R]=_(A,E)}),F);default:return S}},getLanguage:function(_){for(;_;){var S=a.exec(_.className);if(S)return S[1].toLowerCase();_=_.parentElement}return"none"},setLanguage:function(_,S){_.className=_.className.replace(RegExp(a,"gi"),""),_.classList.add("language-"+S)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(F){var _=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(F.stack)||[])[1];if(_){var S=document.getElementsByTagName("script");for(var E in S)if(S[E].src==_)return S[E]}return null}},isActive:function(_,S,E){for(var F="no-"+S;_;){var D=_.classList;if(D.contains(S))return!0;if(D.contains(F))return!1;_=_.parentElement}return!!E}},languages:{plain:i,plaintext:i,text:i,txt:i,extend:function(_,S){var E=o.util.clone(o.languages[_]);for(var F in S)E[F]=S[F];return E},insertBefore:function(_,S,E,F){F=F||o.languages;var D=F[_],T={};for(var A in D)if(D.hasOwnProperty(A)){if(A==S)for(var R in E)E.hasOwnProperty(R)&&(T[R]=E[R]);E.hasOwnProperty(A)||(T[A]=D[A])}var Z=F[_];return F[_]=T,o.languages.DFS(o.languages,function(ue,de){de===Z&&ue!=_&&(this[ue]=T)}),T},DFS:function _(S,E,F,D){D=D||{};var T=o.util.objId;for(var A in S)if(S.hasOwnProperty(A)){E.call(S,A,S[A],F||A);var R=S[A],Z=o.util.type(R);Z==="Object"&&!D[T(R)]?(D[T(R)]=!0,_(R,E,null,D)):Z==="Array"&&!D[T(R)]&&(D[T(R)]=!0,_(R,E,A,D))}}},plugins:{},highlightAll:function(_,S){o.highlightAllUnder(document,_,S)},highlightAllUnder:function(_,S,E){var F={callback:E,container:_,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",F),F.elements=Array.prototype.slice.apply(F.container.querySelectorAll(F.selector)),o.hooks.run("before-all-elements-highlight",F);for(var D=0,T;T=F.elements[D++];)o.highlightElement(T,S===!0,F.callback)},highlightElement:function(_,S,E){var F=o.util.getLanguage(_),D=o.languages[F];o.util.setLanguage(_,F);var T=_.parentElement;T&&T.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(T,F);var A=_.textContent,R={element:_,language:F,grammar:D,code:A};function Z(de){R.highlightedCode=de,o.hooks.run("before-insert",R),R.element.innerHTML=R.highlightedCode,o.hooks.run("after-highlight",R),o.hooks.run("complete",R),E&&E.call(R.element)}if(o.hooks.run("before-sanity-check",R),T=R.element.parentElement,T&&T.nodeName.toLowerCase()==="pre"&&!T.hasAttribute("tabindex")&&T.setAttribute("tabindex","0"),!R.code){o.hooks.run("complete",R),E&&E.call(R.element);return}if(o.hooks.run("before-highlight",R),!R.grammar){Z(o.util.encode(R.code));return}if(S&&s.Worker){var ue=new Worker(o.filename);ue.onmessage=function(de){Z(de.data)},ue.postMessage(JSON.stringify({language:R.language,code:R.code,immediateClose:!0}))}else Z(o.highlight(R.code,R.grammar,R.language))},highlight:function(_,S,E){var F={code:_,grammar:S,language:E};if(o.hooks.run("before-tokenize",F),!F.grammar)throw new Error('The language "'+F.language+'" has no grammar.');return F.tokens=o.tokenize(F.code,F.grammar),o.hooks.run("after-tokenize",F),l.stringify(o.util.encode(F.tokens),F.language)},tokenize:function(_,S){var E=S.rest;if(E){for(var F in E)S[F]=E[F];delete S.rest}var D=new d;return f(D,D.head,_),c(_,D,S,D.head,0),g(D)},hooks:{all:{},add:function(_,S){var E=o.hooks.all;E[_]=E[_]||[],E[_].push(S)},run:function(_,S){var E=o.hooks.all[_];if(!(!E||!E.length))for(var F=0,D;D=E[F++];)D(S)}},Token:l};s.Prism=o;function l(_,S,E,F){this.type=_,this.content=S,this.alias=E,this.length=(F||"").length|0}l.stringify=function _(S,E){if(typeof S=="string")return S;if(Array.isArray(S)){var F="";return S.forEach(function(Z){F+=_(Z,E)}),F}var D={type:S.type,content:_(S.content,E),tag:"span",classes:["token",S.type],attributes:{},language:E},T=S.alias;T&&(Array.isArray(T)?Array.prototype.push.apply(D.classes,T):D.classes.push(T)),o.hooks.run("wrap",D);var A="";for(var R in D.attributes)A+=" "+R+'="'+(D.attributes[R]||"").replace(/"/g,""")+'"';return"<"+D.tag+' class="'+D.classes.join(" ")+'"'+A+">"+D.content+"</"+D.tag+">"};function u(_,S,E,F){_.lastIndex=S;var D=_.exec(E);if(D&&F&&D[1]){var T=D[1].length;D.index+=T,D[0]=D[0].slice(T)}return D}function c(_,S,E,F,D,T){for(var A in E)if(!(!E.hasOwnProperty(A)||!E[A])){var R=E[A];R=Array.isArray(R)?R:[R];for(var Z=0;Z<R.length;++Z){if(T&&T.cause==A+","+Z)return;var ue=R[Z],de=ue.inside,pe=!!ue.lookbehind,B=!!ue.greedy,q=ue.alias;if(B&&!ue.pattern.global){var X=ue.pattern.toString().match(/[imsuy]*$/)[0];ue.pattern=RegExp(ue.pattern.source,X+"g")}for(var W=ue.pattern||ue,te=F.next,ve=D;te!==S.tail&&!(T&&ve>=T.reach);ve+=te.value.length,te=te.next){var Se=te.value;if(S.length>_.length)return;if(!(Se instanceof l)){var Ee=1,we;if(B){if(we=u(W,ve,_,pe),!we||we.index>=_.length)break;var Te=we.index,Me=we.index+we[0].length,je=ve;for(je+=te.value.length;Te>=je;)te=te.next,je+=te.value.length;if(je-=te.value.length,ve=je,te.value instanceof l)continue;for(var Ve=te;Ve!==S.tail&&(je<Me||typeof Ve.value=="string");Ve=Ve.next)Ee++,je+=Ve.value.length;Ee--,Se=_.slice(ve,je),we.index-=ve}else if(we=u(W,0,Se,pe),!we)continue;var Te=we.index,M=we[0],se=Se.slice(0,Te),$=Se.slice(Te+M.length),x=ve+Se.length;T&&x>T.reach&&(T.reach=x);var ee=te.prev;se&&(ee=f(S,ee,se),ve+=se.length),h(S,ee,Ee);var v=new l(A,de?o.tokenize(M,de):M,q,M);if(te=f(S,ee,v),$&&f(S,te,$),Ee>1){var b={cause:A+","+Z,reach:x};c(_,S,E,te.prev,ve,b),T&&b.reach>T.reach&&(T.reach=b.reach)}}}}}}function d(){var _={value:null,prev:null,next:null},S={value:null,prev:_,next:null};_.next=S,this.head=_,this.tail=S,this.length=0}function f(_,S,E){var F=S.next,D={value:E,prev:S,next:F};return S.next=D,F.prev=D,_.length++,D}function h(_,S,E){for(var F=S.next,D=0;D<E&&F!==_.tail;D++)F=F.next;S.next=F,F.prev=S,_.length-=D}function g(_){for(var S=[],E=_.head.next;E!==_.tail;)S.push(E.value),E=E.next;return S}if(!s.document)return s.addEventListener&&(o.disableWorkerMessageHandler||s.addEventListener("message",function(_){var S=JSON.parse(_.data),E=S.language,F=S.code,D=S.immediateClose;s.postMessage(o.highlight(F,o.languages[E],E)),D&&s.close()},!1)),o;var y=o.util.currentScript();y&&(o.filename=y.src,y.hasAttribute("data-manual")&&(o.manual=!0));function m(){o.manual||o.highlightAll()}if(!o.manual){var P=document.readyState;P==="loading"||P==="interactive"&&y&&y.defer?document.addEventListener("DOMContentLoaded",m):window.requestAnimationFrame?window.requestAnimationFrame(m):window.setTimeout(m,16)}return o})(t);e.exports&&(e.exports=n),typeof Li<"u"&&(Li.Prism=n),n.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.languages.markup.doctype.inside["internal-subset"].inside=n.languages.markup,n.hooks.add("wrap",function(s){s.type==="entity"&&(s.attributes.title=s.content.replace(/&/,"&"))}),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(a,r){var i={};i["language-"+r]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[r]},i.cdata=/^<!\[CDATA\[|\]\]>$/i;var o={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:i}};o["language-"+r]={pattern:/[\s\S]+/,inside:n.languages[r]};var l={};l[a]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return a}),"i"),lookbehind:!0,greedy:!0,inside:o},n.languages.insertBefore("markup","cdata",l)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(s,a){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+s+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[a,"language-"+a],inside:n.languages[a]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.xml=n.languages.extend("markup",{}),n.languages.ssml=n.languages.xml,n.languages.atom=n.languages.xml,n.languages.rss=n.languages.xml,(function(s){var a=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+a.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+a.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+a.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+a.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:a,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var r=s.languages.markup;r&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))})(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:n.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),n.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),n.languages.markup&&(n.languages.markup.tag.addInlined("script","javascript"),n.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),n.languages.js=n.languages.javascript,(function(){if(typeof n>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var s="Loading…",a=function(y,m){return"✖ Error "+y+" while fetching file: "+m},r="✖ Error: File does not exist or is empty",i={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},o="data-src-status",l="loading",u="loaded",c="failed",d="pre[data-src]:not(["+o+'="'+u+'"]):not(['+o+'="'+l+'"])';function f(y,m,P){var _=new XMLHttpRequest;_.open("GET",y,!0),_.onreadystatechange=function(){_.readyState==4&&(_.status<400&&_.responseText?m(_.responseText):_.status>=400?P(a(_.status,_.statusText)):P(r))},_.send(null)}function h(y){var m=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(y||"");if(m){var P=Number(m[1]),_=m[2],S=m[3];return _?S?[P,Number(S)]:[P,void 0]:[P,P]}}n.hooks.add("before-highlightall",function(y){y.selector+=", "+d}),n.hooks.add("before-sanity-check",function(y){var m=y.element;if(m.matches(d)){y.code="",m.setAttribute(o,l);var P=m.appendChild(document.createElement("CODE"));P.textContent=s;var _=m.getAttribute("data-src"),S=y.language;if(S==="none"){var E=(/\.(\w+)$/.exec(_)||[,"none"])[1];S=i[E]||E}n.util.setLanguage(P,S),n.util.setLanguage(m,S);var F=n.plugins.autoloader;F&&F.loadLanguages(S),f(_,function(D){m.setAttribute(o,u);var T=h(m.getAttribute("data-range"));if(T){var A=D.split(/\r\n?|\n/g),R=T[0],Z=T[1]==null?A.length:T[1];R<0&&(R+=A.length),R=Math.max(0,Math.min(R-1,A.length)),Z<0&&(Z+=A.length),Z=Math.max(0,Math.min(Z,A.length)),D=A.slice(R,Z).join(`
`),m.hasAttribute("data-start")||m.setAttribute("data-start",String(R+1))}P.textContent=D,n.highlightElement(P)},function(D){m.setAttribute(o,c),P.textContent=D})}}),n.plugins.fileHighlight={highlight:function(m){for(var P=(m||document).querySelectorAll(d),_=0,S;S=P[_++];)n.highlightElement(S)}};var g=!1;n.fileHighlight=function(){g||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),g=!0),n.plugins.fileHighlight.highlight.apply(this,arguments)}})()})(wa)),wa.exports}var Th=$h();const Fi=Rh(Th);(function(e){function t(n,s){return"___"+n.toUpperCase()+s+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,s,a,r){if(n.language===s){var i=n.tokenStack=[];n.code=n.code.replace(a,function(o){if(typeof r=="function"&&!r(o))return o;for(var l=i.length,u;n.code.indexOf(u=t(s,l))!==-1;)++l;return i[l]=o,u}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,s){if(n.language!==s||!n.tokenStack)return;n.grammar=e.languages[s];var a=0,r=Object.keys(n.tokenStack);function i(o){for(var l=0;l<o.length&&!(a>=r.length);l++){var u=o[l];if(typeof u=="string"||u.content&&typeof u.content=="string"){var c=r[a],d=n.tokenStack[c],f=typeof u=="string"?u:u.content,h=t(s,c),g=f.indexOf(h);if(g>-1){++a;var y=f.substring(0,g),m=new e.Token(s,e.tokenize(d,n.grammar),"language-"+s,d),P=f.substring(g+h.length),_=[];y&&_.push.apply(_,i([y])),_.push(m),P&&_.push.apply(_,i([P])),typeof u=="string"?o.splice.apply(o,[l,1].concat(_)):u.content=_}}else u.content&&i(u.content)}return o}i(n.tokens)}}})})(Prism);var Ni={},Mi;function Ph(){return Mi||(Mi=1,(function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],s=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,a=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,r=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:s,operator:a,punctuation:r};var i={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},o=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:i}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:i}}];e.languages.insertBefore("php","variable",{string:o,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:o,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:s,operator:a,punctuation:r}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",function(l){if(/<\?/.test(l.code)){var u=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;e.languages["markup-templating"].buildPlaceholders(l,"php",u)}}),e.hooks.add("after-tokenize",function(l){e.languages["markup-templating"].tokenizePlaceholders(l,"php")})})(Prism)),Ni}Ph();const Ih={class:"page"},Dh={key:2},Lh={class:"script-detail-meta"},Oh=["innerHTML"],Fh={key:1},Nh={class:"script-meta"},Mh={key:0},Uh={class:"scope-name"},Bh={class:"script-info-panel"},jh={key:0,class:"info-row"},Vh={class:"info-value"},Hh={key:1,class:"info-row"},Gh={class:"info-value"},qh={key:2,class:"info-row"},zh={class:"info-value"},Kh={key:1,class:"devices-panel"},Wh={class:"block-title"},Jh={key:2,class:"devices-panel"},Yh={class:"block-title"},Xh={key:3,class:"devices-panel"},Zh={key:2,class:"code-block"},Qh=["innerHTML"],em={key:0,class:"form-group"},tm={key:0,class:"form-group"},nm={__name:"ScriptDetailPage",setup(e){const t=ea(),n=yn(),s=wt(),a=mn(),r=Mt(),{areaOptions:i,showAssignModal:o,selectedAreaId:l,assignLoading:u,assignError:c,openAssign:d,submitAssignCore:f}=br(),h=Q(()=>t.params.type),g=Q(()=>t.params.id),y=Q(()=>h.value==="actions"),m=Q(()=>h.value==="regular"),P=Q(()=>h.value==="scopes"),_=Q(()=>{var x,ee,v;const $=[];return!P.value&&r.has("scripts.edit")&&((x=A.value)!=null&&x.area_id?$.push({label:"Change area",icon:"ph-map-pin",onSelect:te},{label:"Unassign from area",icon:"ph-x-circle",onSelect:je}):$.push({label:"Assign to area",icon:"ph-map-pin",onSelect:te})),y.value&&r.has("scripts.run")&&$.push({label:"Run",icon:"ph-play",disabled:((ee=A.value)==null?void 0:ee.state)!=="enabled"||n.isRunning((v=A.value)==null?void 0:v.alias),onSelect:X}),$}),S=Q(()=>y.value?"Actions":m.value?"Regular":P.value?"Scope":"Script"),E=Q(()=>`Loading ${S.value.toLowerCase()} details`),F=Q(()=>y.value?n.isLoadingActions:m.value?n.isLoadingRegular:P.value?n.isLoadingScopes||n.isLoadingActions||n.isLoadingRegular:!1),D=Q(()=>y.value?n.errorActions:m.value?n.errorRegular:P.value?n.errorScopes:null),T=Q(()=>y.value?n.actions.length>0:m.value?n.regular.length>0:P.value?n.scopes.length>0:!1),A=Q(()=>{const $=g.value;return $?y.value?n.actionByAlias($):m.value?n.regularByAlias($):P.value?n.scopeByName($):null:null}),R=Q(()=>{const $=g.value;return!$||!P.value?[]:n.actionsByScope($)}),Z=Q(()=>{const $=g.value;return!$||!P.value?[]:n.regularByScope($)}),ue=Q(()=>{var x;const $=(x=A.value)==null?void 0:x.area_id;return $&&s.areasById[String($)]||null}),de=Q(()=>P.value?n.isLoadingScopeCode:!1),pe=Q(()=>P.value?n.errorScopeCode:null),B=Q(()=>{var $;return y.value||m.value?(($=A.value)==null?void 0:$.code)||"":P.value?n.currentScopeCode:""}),q=Q(()=>{const $=B.value;return $?Fi.highlight($,Fi.languages.php,"php"):""});async function X(){var x,ee,v;if(!((x=A.value)!=null&&x.alias))return;const $=await n.runScript(A.value.alias);$!=null&&$.ok?a.success({title:`Ran ${A.value.alias}`,text:(ee=n.lastRunResult)!=null&&ee.execTime?`Exec time: ${n.lastRunResult.execTime}`:void 0}):a.error({title:`Failed ${A.value.alias}`,text:((v=$==null?void 0:$.error)==null?void 0:v.message)||"Unknown error"})}async function W($){var b,C;const x=g.value;if(!x)return;let ee;y.value?ee=await n.setActionState(x,$):m.value?ee=await n.setRegularState(x,$):P.value&&(ee=await n.setScopeState(x,$));const v=((b=A.value)==null?void 0:b.alias)||x;ee&&!ee.ok?a.error({title:`Failed to ${$?"enable":"disable"} ${v}`,text:((C=ee.error)==null?void 0:C.message)||"Unknown error"}):ee&&a.success({title:`${$?"Enabled":"Disabled"} ${v}`})}function te(){var $;d(($=A.value)==null?void 0:$.area_id)}async function ve(){var ee;const $=(ee=A.value)==null?void 0:ee.id,x=await f($,n.assignToArea.bind(n));x!=null&&x.ok&&a.success({title:"Assigned",text:"Script assigned to area successfully"})}const Se=J(!1),Ee=J(""),we=J(!1),Me=J("");function je(){A.value&&(Ee.value=`Are you sure you want to unassign script "${A.value.name||A.value.alias}" from its area?`,Me.value="",Se.value=!0)}async function Ve(){var x;if(!A.value)return;we.value=!0,Me.value="";const $=await n.unassignFromArea(A.value.id);if(we.value=!1,!$.ok){Me.value=((x=$.error)==null?void 0:x.message)||"Failed to unassign script";return}Se.value=!1,a.success({title:"Unassigned",text:"Script unassigned from area successfully"})}async function Te(){const $=g.value;!$||!P.value||await n.loadScopeCode($)}async function M(){g.value&&(y.value&&n.actions.length===0?await n.loadActions():m.value&&n.regular.length===0?await n.loadRegular():P.value&&n.scopes.length===0&&await n.loadScopes(),P.value&&(n.actions.length===0&&await n.loadActions(),n.regular.length===0&&await n.loadRegular(),await Te()),s.areas.length===0&&await s.loadAreas())}const se=[{key:"alias",label:"Alias"},{key:"name",label:"Name"},{key:"state",label:"State"}];return bt(()=>{M()}),ds(()=>{n.clearScopeCode()}),kt(()=>[t.params.type,t.params.id],([$,x],[ee,v])=>{($!==ee||x!==v)&&(n.clearScopeCode(),M())}),($,x)=>{const ee=rn("router-link");return w(),G("section",Ih,[F.value?(w(),K(_t,{key:0,text:E.value},null,8,["text"])):D.value&&!T.value?(w(),K(pt,{key:1,title:`${S.value} loading failed`,error:D.value,retry:M},null,8,["title","error"])):A.value?(w(),G("div",Dh,[I(p(Et),{title:A.value.name||A.value.alias||A.value.name,kicker:S.value},{actions:k(()=>[p(r).has("scripts.edit")?(w(),K(p(jf),{key:0,"model-value":A.value.state==="enabled",label:"Enabled","onUpdate:modelValue":x[0]||(x[0]=v=>W(v))},null,8,["model-value"])):ae("",!0),I(kr,{items:_.value},null,8,["items"])]),_:1},8,["title","kicker"]),L("div",Lh,[A.value.icon?(w(),G("div",{key:0,innerHTML:A.value.icon,class:"script-icon"},null,8,Oh)):ae("",!0),A.value.description?(w(),G("p",Fh,N(A.value.description),1)):ae("",!0),L("div",Nh,[I(p(_e),{variant:A.value.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(A.value.state),1)]),_:1},8,["variant"]),L("code",null,N(A.value.alias||A.value.name),1),A.value.author?(w(),G("small",Mh,N(A.value.author),1)):ae("",!0),I(wr,{area:ue.value,areaId:A.value.area_id},null,8,["area","areaId"]),A.value.scope?(w(),K(ee,{key:1,to:{name:"script-detail",params:{type:"scopes",id:A.value.scope}},class:"scope-link"},{default:k(()=>[x[6]||(x[6]=L("span",{class:"scope-label"},"Scope",-1)),L("span",Uh,N(A.value.scope),1),x[7]||(x[7]=L("i",{class:"ph ph-arrow-right"},null,-1))]),_:1},8,["to"])):ae("",!0)]),L("div",Bh,[A.value.filename?(w(),G("div",jh,[x[8]||(x[8]=L("span",{class:"info-label text-muted"},"File:",-1)),L("span",Vh,N(A.value.filename),1)])):ae("",!0),A.value.path?(w(),G("div",Hh,[x[9]||(x[9]=L("span",{class:"info-label text-muted"},"Path:",-1)),L("span",Gh,N(A.value.path),1)])):ae("",!0),A.value.created_by?(w(),G("div",qh,[x[10]||(x[10]=L("span",{class:"info-label text-muted"},"Author:",-1)),L("span",zh,N(A.value.created_by),1)])):ae("",!0)])]),P.value?ae("",!0):(w(),K(Sr,{key:0,item:A.value,emptyMessage:"This script is not assigned to any area.",onAssign:te},{action:k(()=>[p(r).has("scripts.edit")?(w(),K(p(ge),{key:0,variant:"primary",icon:"ph-map-pin",onClick:te},{default:k(()=>{var v;return[U(N((v=A.value)!=null&&v.area_id?"Change area":"Assign to area"),1)]}),_:1})):ae("",!0)]),_:1},8,["item"])),P.value&&R.value.length>0?(w(),G("div",Kh,[L("div",Wh,"Action scripts ("+N(R.value.length)+")",1),I(p(Dn),{rows:R.value,columns:se},{"cell-state":k(({row:v})=>[I(p(_e),{variant:v.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(v.state),1)]),_:2},1032,["variant"])]),"cell-alias":k(({row:v})=>[I(ee,{to:{name:"script-detail",params:{type:"actions",id:v.alias}},class:"script-link"},{default:k(()=>[U(N(v.alias),1)]),_:2},1032,["to"])]),_:1},8,["rows"])])):ae("",!0),P.value&&Z.value.length>0?(w(),G("div",Jh,[L("div",Yh,"Regular scripts ("+N(Z.value.length)+")",1),I(p(Dn),{rows:Z.value,columns:se},{"cell-state":k(({row:v})=>[I(p(_e),{variant:v.state==="enabled"?"success":"secondary"},{default:k(()=>[U(N(v.state),1)]),_:2},1032,["variant"])]),"cell-alias":k(({row:v})=>[I(ee,{to:{name:"script-detail",params:{type:"regular",id:v.alias}},class:"script-link"},{default:k(()=>[U(N(v.alias),1)]),_:2},1032,["to"])]),_:1},8,["rows"])])):ae("",!0),A.value.code||P.value?(w(),G("div",Xh,[x[11]||(x[11]=L("div",{class:"block-title"},"Source code",-1)),de.value?(w(),K(_t,{key:0,text:"Loading source code"})):pe.value?(w(),K(pt,{key:1,title:"Code loading failed",error:pe.value,retry:Te},null,8,["error"])):B.value?(w(),G("pre",Zh,[L("code",{class:"language-php",innerHTML:q.value},null,8,Qh)])):(w(),K(rt,{key:3,title:"No code",message:"Source code is not available."}))])):ae("",!0)])):(w(),K(rt,{key:3,title:"Not found",message:"The requested script does not exist."})),I(p(ut),{open:p(o),title:"Assign to area","onUpdate:open":x[3]||(x[3]=v=>o.value=v)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[2]||(x[2]=v=>o.value=!1)},{default:k(()=>[...x[12]||(x[12]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"primary",icon:"ph-check",loading:p(u),onClick:ve},{default:k(()=>[...x[13]||(x[13]=[U(" Assign ",-1)])]),_:1},8,["loading"])]),default:k(()=>[I(p(fr),{modelValue:p(l),"onUpdate:modelValue":x[1]||(x[1]=v=>Ue(l)?l.value=v:null),label:"Area",options:p(i),icon:"ph-map-trifold"},null,8,["modelValue","options"]),p(c)?(w(),G("div",em,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(p(c)),1)]),_:1})])):ae("",!0)]),_:1},8,["open"]),I(p(ut),{open:Se.value,title:"Unassign from area","onUpdate:open":x[5]||(x[5]=v=>Se.value=v)},{footer:k(()=>[I(p(ge),{variant:"secondary",onClick:x[4]||(x[4]=v=>Se.value=!1)},{default:k(()=>[...x[14]||(x[14]=[U("Cancel",-1)])]),_:1}),I(p(ge),{variant:"warning",icon:"ph-x-circle",loading:we.value,onClick:Ve},{default:k(()=>[...x[15]||(x[15]=[U(" Unassign ",-1)])]),_:1},8,["loading"])]),default:k(()=>[L("p",null,N(Ee.value),1),Me.value?(w(),G("div",tm,[I(p(Ze),{variant:"danger"},{default:k(()=>[U(N(Me.value),1)]),_:1})])):ae("",!0)]),_:1},8,["open"])])}}},sm=Ke(nm,[["__scopeId","data-v-31cd836e"]]),am={class:"page"},rm={key:3,class:"firmwares-panel"},im={class:"firmwares-summary"},om={class:"firmwares-list"},lm={class:"firmware-header"},um={class:"firmware-id"},cm={class:"firmware-meta"},dm={key:0,class:"firmware-desc"},fm={key:1,class:"firmware-changelog"},pm={__name:"FirmwaresListPage",setup(e){const t=Ol(),n=Mt(),s=J(null);async function a(){var o;s.value=null;const i=await t.loadFirmwares();i.ok||(s.value=((o=i.error)==null?void 0:o.message)||"Failed to load catalog")}async function r(){var o;s.value=null;const i=await t.refreshFirmwares();i.ok||(s.value=((o=i.error)==null?void 0:o.message)||"Failed to refresh catalog")}return bt(a),(i,o)=>(w(),G("section",am,[I(p(Et),{title:"Firmware Catalog",kicker:"Firmwares"},{actions:k(()=>[p(n).has("firmware.upload")?(w(),K(p(ge),{key:0,loading:p(t).isUpdating,icon:"ph-arrow-clockwise",onClick:r},{default:k(()=>[...o[0]||(o[0]=[U(" Refresh Catalog ",-1)])]),_:1},8,["loading"])):ae("",!0)]),_:1}),p(t).isLoadingList?(w(),K(_t,{key:0,text:"Loading firmware catalog"})):s.value?(w(),K(pt,{key:1,title:"Catalog loading failed",error:s.value,retry:a},null,8,["error"])):p(t).firmwares.length===0?(w(),K(rt,{key:2,title:"No firmwares found",message:"No firmware packages detected in the firmwares directory."})):(w(),G("div",rm,[L("div",im,[I(p(_e),{variant:"primary"},{default:k(()=>[U("Total: "+N(p(t).firmwares.length),1)]),_:1})]),L("div",om,[(w(!0),G(De,null,Wt(p(t).firmwares,l=>(w(),G("div",{key:l.id,class:"firmware-card"},[L("div",lm,[L("span",um,N(l.id),1),I(p(_e),{variant:"success"},{default:k(()=>[U(N(l.version),1)]),_:2},1024)]),L("div",cm,[I(p(_e),{variant:"secondary"},{default:k(()=>[U(N(l.device_type),1)]),_:2},1024),l.platform?(w(),K(p(_e),{key:0,variant:"info"},{default:k(()=>[U(N(l.platform),1)]),_:2},1024)):ae("",!0),l.channels?(w(),K(p(_e),{key:1,variant:"warning"},{default:k(()=>[U(N(l.channels)+" ch",1)]),_:2},1024)):ae("",!0)]),l.description?(w(),G("p",dm,N(l.description),1)):ae("",!0),l.changelog?(w(),G("pre",fm,N(l.changelog),1)):ae("",!0)]))),128))])]))]))}},vm=Ke(pm,[["__scopeId","data-v-c0c73f70"]]),Fl="/logo-cube-square.svg",gm={class:"login-page"},hm={class:"login-card"},mm={key:0,class:"login-loading text-muted"},ym={__name:"LoginPage",setup(e){const t=on(),n=vs();bt(()=>{n.isAuthenticated&&t.replace({name:"areas-favorites"})});function s(){const a=window.location.href;window.location.href=ls(`/auth/login?return_to=${encodeURIComponent(a)}`)}return(a,r)=>(w(),G("div",gm,[L("div",hm,[r[3]||(r[3]=Ko('<div class="login-brand" data-v-9b9b8c35><img src="'+Fl+'" alt="Smart Home" class="brand-logo" data-v-9b9b8c35><h1 class="brand-title" data-v-9b9b8c35>Smart Home Server</h1><p class="brand-subtitle text-muted" data-v-9b9b8c35>SHServ Web Client</p></div><div class="login-divider text-muted" data-v-9b9b8c35></div><p class="login-hint text-muted" data-v-9b9b8c35> You need to sign in to access the smart home dashboard. </p>',3)),I(p(ge),{variant:"primary",size:"lg",class:"login-btn",onClick:s},{icon:k(()=>[...r[0]||(r[0]=[L("i",{class:"ph ph-sign-in"},null,-1)])]),default:k(()=>[r[1]||(r[1]=U(" Sign in with gnexus-auth ",-1))]),_:1}),p(n).isLoading?(w(),G("p",mm,[...r[2]||(r[2]=[L("i",{class:"ph ph-spinner ph-spin"},null,-1),U(" Checking session… ",-1)])])):ae("",!0)])]))}},_m=Ke(ym,[["__scopeId","data-v-9b9b8c35"]]),bm={class:"setup-page"},wm={class:"setup-card"},Sm={class:"setup-form"},km={key:0,class:"setup-error text-danger"},Am={__name:"MobileSetupPage",setup(e){const t=on(),n=J(""),s=J(""),a=J(!1),r=J("");async function i(){s.value="",r.value="";const o=n.value.trim();if(!o){s.value="Server URL is required";return}let l=o;/^https?:\/\//i.test(l)||(l="http://"+l);try{new URL(l)}catch{s.value="Invalid URL format";return}a.value=!0;try{const u=[`${l}/api/v1/about`,`${l}/about`];let c=!1;for(const d of u)try{const f=new AbortController,h=setTimeout(()=>f.abort(),5e3),g=await fetch(d,{method:"GET",signal:f.signal});if(clearTimeout(h),g.ok||g.status===401){c=!0;break}}catch{}if(!c){r.value="Could not connect to server. Please check the address.",a.value=!1;return}await ap(l),ps()?window.location.reload():t.replace("/login")}catch{r.value="Connection check failed. Please try again.",a.value=!1}}return(o,l)=>(w(),G("div",bm,[L("div",wm,[l[3]||(l[3]=Ko('<div class="setup-brand" data-v-22feb45a><img src="'+Fl+'" alt="Smart Home" class="brand-logo" data-v-22feb45a><h1 class="brand-title" data-v-22feb45a>Smart Home</h1><p class="brand-subtitle text-muted" data-v-22feb45a>Mobile App Setup</p></div><div class="setup-divider text-muted" data-v-22feb45a></div><p class="setup-hint text-muted" data-v-22feb45a> Enter the address of your Smart Home server. Example: <code class="text-info" data-v-22feb45a>https://shserv.home</code> or <code class="text-info" data-v-22feb45a>http://192.168.1.10</code></p>',3)),L("div",Sm,[I(p(At),{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=u=>n.value=u),label:"Server URL",placeholder:"https://your-server.com",error:s.value,onKeyup:id(i,["enter"])},null,8,["modelValue","error"]),I(p(ge),{variant:"primary",size:"lg",class:"setup-btn",loading:a.value,onClick:i},{icon:k(()=>[...l[1]||(l[1]=[L("i",{class:"ph ph-check"},null,-1)])]),default:k(()=>[U(" "+N(a.value?"Checking connection…":"Save and continue"),1)]),_:1},8,["loading"])]),r.value?(w(),G("p",km,[l[2]||(l[2]=L("i",{class:"ph ph-warning-circle"},null,-1)),U(" "+N(r.value),1)])):ae("",!0)])]))}},xm=Ke(Am,[["__scopeId","data-v-22feb45a"]]),Cm=[{path:"/",redirect:"/areas/favorites"},{path:"/login",name:"login",component:_m,meta:{public:!0}},{path:"/mobile-setup",name:"mobile-setup",component:xm,meta:{public:!0}},{path:"/areas/favorites",name:"areas-favorites",component:Lp,meta:{permission:"areas.view"}},{path:"/areas/tree",name:"areas-tree",component:Yp,meta:{permission:"areas.view"}},{path:"/areas/:id",name:"area-detail",component:ug,meta:{permission:"areas.view"}},{path:"/devices",name:"devices",component:gg,meta:{permission:"devices.view"}},{path:"/devices/scanning",name:"devices-scanning",component:Pg,meta:{permission:"devices.scan"}},{path:"/devices/:id",name:"device-detail",component:mh,meta:{permission:"devices.view"}},{path:"/scripts/actions",name:"scripts-actions",component:bh,meta:{permission:"scripts.run"}},{path:"/scripts/regular",name:"scripts-regular",component:kh,meta:{permission:"scripts.view"}},{path:"/scripts/scopes",name:"scripts-scopes",component:Eh,meta:{permission:"scripts.view"}},{path:"/scripts/:type(actions|regular|scopes)/:id",name:"script-detail",component:sm,meta:{permission:"scripts.view"}},{path:"/firmwares",name:"firmwares",component:vm,meta:{permission:"firmware.view"}},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>bl(()=>import("./NotFoundPage-CRjNvuG8.js"),[])}],_s="[vue:router]",bs=hr(),qa=Af({history:nf(),routes:Cm});qa.beforeEach(async(e,t,n)=>{var r,i;const s=vs();if(bs&&console.debug(_s,`Navigate: ${t.fullPath||"init"} → ${e.fullPath}`),await s.init(),(r=e.meta)!=null&&r.public){if(e.name==="login"&&s.isAuthenticated){bs&&console.debug(_s,"Redirect: authenticated user at login → areas-favorites"),n({name:"areas-favorites"});return}n();return}if(!s.isAuthenticated){bs&&console.debug(_s,"Redirect: unauthenticated → login"),n({name:"login"});return}const a=(i=e.meta)==null?void 0:i.permission;if(a&&!s.hasPermission(a)){bs&&console.warn(_s,`Forbidden: ${e.fullPath} requires ${a}`),n({name:"areas-favorites"});return}n()});function Em(e){const t="[vue:error]";e.config.errorHandler=(n,s,a)=>{const r=(n==null?void 0:n.message)||String(n);console.error(t,`Vue ${a}`,r,(n==null?void 0:n.stack)||"")},window.addEventListener("unhandledrejection",n=>{var r;const s=n.reason,a=(s==null?void 0:s.message)||((r=s==null?void 0:s.error)==null?void 0:r.message)||String(s);console.error(t,"Unhandled rejection:",a,(s==null?void 0:s.stack)||""),n.preventDefault()}),window.addEventListener("error",n=>{const s=n.error,a=(s==null?void 0:s.message)||n.message||"Unknown error";console.error(t,`Global error: ${a}`,`at ${n.filename}:${n.lineno}:${n.colno}`,(s==null?void 0:s.stack)||"")})}const Sa="[vue:pinia]",Rm=e=>{if(!hr())return;const{store:t,options:n}=e,s=n.id,a=Object.keys(n.actions||{});for(const r of a){const i=t[r];t[r]=async function(...o){console.debug(Sa,`${s}.${r}(${o.map(u=>xl(u)).join(", ")})`);const l=performance.now();try{const u=await i.apply(this,o);return console.debug(Sa,`${s}.${r} completed in ${(performance.now()-l).toFixed(1)}ms`),u}catch(u){throw console.error(Sa,`${s}.${r} failed: ${(u==null?void 0:u.message)||u}`),u}}}};async function $m(){await sp();const e=ud(_p);Em(e);const t=fd();t.use(Rm),e.use(t).use(qa),ps()&&(await rp()||await qa.replace("/mobile-setup")),await vs().init(),e.mount("#app")}$m();export{Lf as G,pr as W,I as a,G as c,w as o,p as u};