Newer
Older
smart-home-server / server / dist / assets / index-DDCoJs57.js
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(s){if(s.ep)return;s.ep=!0;const r=n(s);fetch(s.href,r)}})();/**
* @vue/shared v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Zs(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Ve={},Rn=[],Mt=()=>{},Wi=()=>!1,Ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Va=e=>e.startsWith("onUpdate:"),at=Object.assign,Qs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},zl=Object.prototype.hasOwnProperty,Pe=(e,t)=>zl.call(e,t),Se=Array.isArray,$n=e=>va(e)==="[object Map]",Ji=e=>va(e)==="[object Set]",Lr=e=>va(e)==="[object Date]",ke=e=>typeof e=="function",Ge=e=>typeof e=="string",wt=e=>typeof e=="symbol",Fe=e=>e!==null&&typeof e=="object",Yi=e=>(Fe(e)||ke(e))&&ke(e.then)&&ke(e.catch),Xi=Object.prototype.toString,va=e=>Xi.call(e),Kl=e=>va(e).slice(8,-1),Zi=e=>va(e)==="[object Object]",Ba=e=>Ge(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zn=Zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ja=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Wl=/-\w/g,vt=ja(e=>e.replace(Wl,t=>t.slice(1).toUpperCase())),Jl=/\B([A-Z])/g,un=ja(e=>e.replace(Jl,"-$1").toLowerCase()),Ha=ja(e=>e.charAt(0).toUpperCase()+e.slice(1)),us=ja(e=>e?`on${Ha(e)}`:""),Nt=(e,t)=>!Object.is(e,t),cs=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},Qi=(e,t,n,a=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},Yl=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Dr;const Ga=()=>Dr||(Dr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function er(e){if(Se(e)){const t={};for(let n=0;n<e.length;n++){const a=e[n],s=Ge(a)?eu(a):er(a);if(s)for(const r in s)t[r]=s[r]}return t}else if(Ge(e)||Fe(e))return e}const Xl=/;(?![^(]*\))/g,Zl=/:([^]+)/,Ql=/\/\*[^]*?\*\//g;function eu(e){const t={};return e.replace(Ql,"").split(Xl).forEach(n=>{if(n){const a=n.split(Zl);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function $t(e){let t="";if(Ge(e))t=e;else if(Se(e))for(let n=0;n<e.length;n++){const a=$t(e[n]);a&&(t+=a+" ")}else if(Fe(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const tu="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",nu=Zs(tu);function eo(e){return!!e||e===""}function au(e,t){if(e.length!==t.length)return!1;let n=!0;for(let a=0;n&&a<e.length;a++)n=tr(e[a],t[a]);return n}function tr(e,t){if(e===t)return!0;let n=Lr(e),a=Lr(t);if(n||a)return n&&a?e.getTime()===t.getTime():!1;if(n=wt(e),a=wt(t),n||a)return e===t;if(n=Se(e),a=Se(t),n||a)return n&&a?au(e,t):!1;if(n=Fe(e),a=Fe(t),n||a){if(!n||!a)return!1;const s=Object.keys(e).length,r=Object.keys(t).length;if(s!==r)return!1;for(const o in e){const i=e.hasOwnProperty(o),l=t.hasOwnProperty(o);if(i&&!l||!i&&l||!tr(e[o],t[o]))return!1}}return String(e)===String(t)}const to=e=>!!(e&&e.__v_isRef===!0),O=e=>Ge(e)?e:e==null?"":Se(e)||Fe(e)&&(e.toString===Xi||!ke(e.toString))?to(e)?O(e.value):JSON.stringify(e,no,2):String(e),no=(e,t)=>to(t)?no(e,t.value):$n(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,s],r)=>(n[ds(a,r)+" =>"]=s,n),{})}:Ji(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ds(n))}:wt(t)?ds(t):Fe(t)&&!Se(t)&&!Zi(t)?String(t):t,ds=(e,t="")=>{var n;return wt(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 Ze;class ao{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=Ze,!t&&Ze&&(this.index=(Ze.scopes||(Ze.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=Ze;try{return Ze=this,t()}finally{Ze=n}}}on(){++this._on===1&&(this.prevScope=Ze,Ze=this)}off(){if(this._on>0&&--this._on===0){if(Ze===this)Ze=this.prevScope;else{let t=Ze;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,a;for(n=0,a=this.effects.length;n<a;n++)this.effects[n].stop();for(this.effects.length=0,n=0,a=this.cleanups.length;n<a;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,a=this.scopes.length;n<a;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function so(e){return new ao(e)}function ro(){return Ze}function su(e,t=!1){Ze&&Ze.cleanups.push(e)}let Ue;const fs=new WeakSet;class io{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,Ze&&Ze.active&&Ze.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,fs.has(this)&&(fs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||lo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Or(this),uo(this);const t=Ue,n=Rt;Ue=this,Rt=!0;try{return this.fn()}finally{co(this),Ue=t,Rt=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)sr(t);this.deps=this.depsTail=void 0,Or(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?fs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ts(this)&&this.run()}get dirty(){return Ts(this)}}let oo=0,Qn,ea;function lo(e,t=!1){if(e.flags|=8,t){e.next=ea,ea=e;return}e.next=Qn,Qn=e}function nr(){oo++}function ar(){if(--oo>0)return;if(ea){let t=ea;for(ea=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Qn;){let t=Qn;for(Qn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(a){e||(e=a)}t=n}}if(e)throw e}function uo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function co(e){let t,n=e.depsTail,a=n;for(;a;){const s=a.prevDep;a.version===-1?(a===n&&(n=s),sr(a),ru(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=s}e.deps=t,e.depsTail=n}function Ts(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(fo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function fo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===oa)||(e.globalVersion=oa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ts(e))))return;e.flags|=2;const t=e.dep,n=Ue,a=Rt;Ue=e,Rt=!0;try{uo(e);const s=e.fn(e._value);(t.version===0||Nt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Ue=n,Rt=a,co(e),e.flags&=-3}}function sr(e,t=!1){const{dep:n,prevSub:a,nextSub:s}=e;if(a&&(a.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=a,e.nextSub=void 0),n.subs===e&&(n.subs=a,!a&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)sr(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function ru(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Rt=!0;const po=[];function Wt(){po.push(Rt),Rt=!1}function Jt(){const e=po.pop();Rt=e===void 0?!0:e}function Or(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ue;Ue=void 0;try{t()}finally{Ue=n}}}let oa=0;class iu{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 rr{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(!Ue||!Rt||Ue===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ue)n=this.activeLink=new iu(Ue,this),Ue.deps?(n.prevDep=Ue.depsTail,Ue.depsTail.nextDep=n,Ue.depsTail=n):Ue.deps=Ue.depsTail=n,vo(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const a=n.nextDep;a.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=a),n.prevDep=Ue.depsTail,n.nextDep=void 0,Ue.depsTail.nextDep=n,Ue.depsTail=n,Ue.deps===n&&(Ue.deps=a)}return n}trigger(t){this.version++,oa++,this.notify(t)}notify(t){nr();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ar()}}}function vo(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let a=t.deps;a;a=a.nextDep)vo(a)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Ea=new WeakMap,yn=Symbol(""),Ps=Symbol(""),la=Symbol("");function rt(e,t,n){if(Rt&&Ue){let a=Ea.get(e);a||Ea.set(e,a=new Map);let s=a.get(n);s||(a.set(n,s=new rr),s.map=a,s.key=n),s.track()}}function zt(e,t,n,a,s,r){const o=Ea.get(e);if(!o){oa++;return}const i=l=>{l&&l.trigger()};if(nr(),t==="clear")o.forEach(i);else{const l=Se(e),u=l&&Ba(n);if(l&&n==="length"){const c=Number(a);o.forEach((d,f)=>{(f==="length"||f===la||!wt(f)&&f>=c)&&i(d)})}else switch((n!==void 0||o.has(void 0))&&i(o.get(n)),u&&i(o.get(la)),t){case"add":l?u&&i(o.get("length")):(i(o.get(yn)),$n(e)&&i(o.get(Ps)));break;case"delete":l||(i(o.get(yn)),$n(e)&&i(o.get(Ps)));break;case"set":$n(e)&&i(o.get(yn));break}}ar()}function ou(e,t){const n=Ea.get(e);return n&&n.get(t)}function kn(e){const t=Ce(e);return t===e?t:(rt(t,"iterate",la),yt(e)?t:t.map(Tt))}function qa(e){return rt(e=Ce(e),"iterate",la),e}function Ot(e,t){return Yt(e)?In(Kt(e)?Tt(t):t):Tt(t)}const lu={__proto__:null,[Symbol.iterator](){return ps(this,Symbol.iterator,e=>Ot(this,e))},concat(...e){return kn(this).concat(...e.map(t=>Se(t)?kn(t):t))},entries(){return ps(this,"entries",e=>(e[1]=Ot(this,e[1]),e))},every(e,t){return jt(this,"every",e,t,void 0,arguments)},filter(e,t){return jt(this,"filter",e,t,n=>n.map(a=>Ot(this,a)),arguments)},find(e,t){return jt(this,"find",e,t,n=>Ot(this,n),arguments)},findIndex(e,t){return jt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return jt(this,"findLast",e,t,n=>Ot(this,n),arguments)},findLastIndex(e,t){return jt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return jt(this,"forEach",e,t,void 0,arguments)},includes(...e){return vs(this,"includes",e)},indexOf(...e){return vs(this,"indexOf",e)},join(e){return kn(this).join(e)},lastIndexOf(...e){return vs(this,"lastIndexOf",e)},map(e,t){return jt(this,"map",e,t,void 0,arguments)},pop(){return Bn(this,"pop")},push(...e){return Bn(this,"push",e)},reduce(e,...t){return Fr(this,"reduce",e,t)},reduceRight(e,...t){return Fr(this,"reduceRight",e,t)},shift(){return Bn(this,"shift")},some(e,t){return jt(this,"some",e,t,void 0,arguments)},splice(...e){return Bn(this,"splice",e)},toReversed(){return kn(this).toReversed()},toSorted(e){return kn(this).toSorted(e)},toSpliced(...e){return kn(this).toSpliced(...e)},unshift(...e){return Bn(this,"unshift",e)},values(){return ps(this,"values",e=>Ot(this,e))}};function ps(e,t,n){const a=qa(e),s=a[t]();return a!==e&&!yt(e)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=n(r.value)),r}),s}const uu=Array.prototype;function jt(e,t,n,a,s,r){const o=qa(e),i=o!==e&&!yt(e),l=o[t];if(l!==uu[t]){const d=l.apply(e,r);return i?Tt(d):d}let u=n;o!==e&&(i?u=function(d,f){return n.call(this,Ot(e,d),f,e)}:n.length>2&&(u=function(d,f){return n.call(this,d,f,e)}));const c=l.call(o,u,a);return i&&s?s(c):c}function Fr(e,t,n,a){const s=qa(e),r=s!==e&&!yt(e);let o=n,i=!1;s!==e&&(r?(i=a.length===0,o=function(u,c,d){return i&&(i=!1,u=Ot(e,u)),n.call(this,u,Ot(e,c),d,e)}):n.length>3&&(o=function(u,c,d){return n.call(this,u,c,d,e)}));const l=s[t](o,...a);return i?Ot(e,l):l}function vs(e,t,n){const a=Ce(e);rt(a,"iterate",la);const s=a[t](...n);return(s===-1||s===!1)&&za(n[0])?(n[0]=Ce(n[0]),a[t](...n)):s}function Bn(e,t,n=[]){Wt(),nr();const a=Ce(e)[t].apply(e,n);return ar(),Jt(),a}const cu=Zs("__proto__,__v_isRef,__isVue"),go=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(wt));function du(e){wt(e)||(e=String(e));const t=Ce(this);return rt(t,"has",e),t.hasOwnProperty(e)}class ho{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,a){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return a===(s?r?wu:bo:r?_o:yo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const o=Se(t);if(!s){let l;if(o&&(l=lu[n]))return l;if(n==="hasOwnProperty")return du}const i=Reflect.get(t,n,Be(t)?t:a);if((wt(n)?go.has(n):cu(n))||(s||rt(t,"get",n),r))return i;if(Be(i)){const l=o&&Ba(n)?i:i.value;return s&&Fe(l)?Ls(l):l}return Fe(i)?s?Ls(i):Zt(i):i}}class mo extends ho{constructor(t=!1){super(!1,t)}set(t,n,a,s){let r=t[n];const o=Se(t)&&Ba(n);if(!this._isShallow){const u=Yt(r);if(!yt(a)&&!Yt(a)&&(r=Ce(r),a=Ce(a)),!o&&Be(r)&&!Be(a))return u||(r.value=a),!0}const i=o?Number(n)<t.length:Pe(t,n),l=Reflect.set(t,n,a,Be(t)?t:s);return t===Ce(s)&&(i?Nt(a,r)&&zt(t,"set",n,a):zt(t,"add",n,a)),l}deleteProperty(t,n){const a=Pe(t,n);t[n];const s=Reflect.deleteProperty(t,n);return s&&a&&zt(t,"delete",n,void 0),s}has(t,n){const a=Reflect.has(t,n);return(!wt(n)||!go.has(n))&&rt(t,"has",n),a}ownKeys(t){return rt(t,"iterate",Se(t)?"length":yn),Reflect.ownKeys(t)}}class fu extends ho{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const pu=new mo,vu=new fu,gu=new mo(!0);const Is=e=>e,_a=e=>Reflect.getPrototypeOf(e);function hu(e,t,n){return function(...a){const s=this.__v_raw,r=Ce(s),o=$n(r),i=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=s[e](...a),c=n?Is:t?In:Tt;return!t&&rt(r,"iterate",l?Ps:yn),at(Object.create(u),{next(){const{value:d,done:f}=u.next();return f?{value:d,done:f}:{value:i?[c(d[0]),c(d[1])]:c(d),done:f}}})}}function ba(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function mu(e,t){const n={get(s){const r=this.__v_raw,o=Ce(r),i=Ce(s);e||(Nt(s,i)&&rt(o,"get",s),rt(o,"get",i));const{has:l}=_a(o),u=t?Is:e?In:Tt;if(l.call(o,s))return u(r.get(s));if(l.call(o,i))return u(r.get(i));r!==o&&r.get(s)},get size(){const s=this.__v_raw;return!e&&rt(Ce(s),"iterate",yn),s.size},has(s){const r=this.__v_raw,o=Ce(r),i=Ce(s);return e||(Nt(s,i)&&rt(o,"has",s),rt(o,"has",i)),s===i?r.has(s):r.has(s)||r.has(i)},forEach(s,r){const o=this,i=o.__v_raw,l=Ce(i),u=t?Is:e?In:Tt;return!e&&rt(l,"iterate",yn),i.forEach((c,d)=>s.call(r,u(c),u(d),o))}};return at(n,e?{add:ba("add"),set:ba("set"),delete:ba("delete"),clear:ba("clear")}:{add(s){const r=Ce(this),o=_a(r),i=Ce(s),l=!t&&!yt(s)&&!Yt(s)?i:s;return o.has.call(r,l)||Nt(s,l)&&o.has.call(r,s)||Nt(i,l)&&o.has.call(r,i)||(r.add(l),zt(r,"add",l,l)),this},set(s,r){!t&&!yt(r)&&!Yt(r)&&(r=Ce(r));const o=Ce(this),{has:i,get:l}=_a(o);let u=i.call(o,s);u||(s=Ce(s),u=i.call(o,s));const c=l.call(o,s);return o.set(s,r),u?Nt(r,c)&&zt(o,"set",s,r):zt(o,"add",s,r),this},delete(s){const r=Ce(this),{has:o,get:i}=_a(r);let l=o.call(r,s);l||(s=Ce(s),l=o.call(r,s)),i&&i.call(r,s);const u=r.delete(s);return l&&zt(r,"delete",s,void 0),u},clear(){const s=Ce(this),r=s.size!==0,o=s.clear();return r&&zt(s,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=hu(s,e,t)}),n}function ir(e,t){const n=mu(e,t);return(a,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?a:Reflect.get(Pe(n,s)&&s in a?n:a,s,r)}const yu={get:ir(!1,!1)},_u={get:ir(!1,!0)},bu={get:ir(!0,!1)};const yo=new WeakMap,_o=new WeakMap,bo=new WeakMap,wu=new WeakMap;function Su(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ku(e){return e.__v_skip||!Object.isExtensible(e)?0:Su(Kl(e))}function Zt(e){return Yt(e)?e:or(e,!1,pu,yu,yo)}function wo(e){return or(e,!1,gu,_u,_o)}function Ls(e){return or(e,!0,vu,bu,bo)}function or(e,t,n,a,s){if(!Fe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=ku(e);if(r===0)return e;const o=s.get(e);if(o)return o;const i=new Proxy(e,r===2?a:n);return s.set(e,i),i}function Kt(e){return Yt(e)?Kt(e.__v_raw):!!(e&&e.__v_isReactive)}function Yt(e){return!!(e&&e.__v_isReadonly)}function yt(e){return!!(e&&e.__v_isShallow)}function za(e){return e?!!e.__v_raw:!1}function Ce(e){const t=e&&e.__v_raw;return t?Ce(t):e}function lr(e){return!Pe(e,"__v_skip")&&Object.isExtensible(e)&&Qi(e,"__v_skip",!0),e}const Tt=e=>Fe(e)?Zt(e):e,In=e=>Fe(e)?Ls(e):e;function Be(e){return e?e.__v_isRef===!0:!1}function z(e){return So(e,!1)}function Au(e){return So(e,!0)}function So(e,t){return Be(e)?e:new xu(e,t)}class xu{constructor(t,n){this.dep=new rr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Ce(t),this._value=n?t:Tt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,a=this.__v_isShallow||yt(t)||Yt(t);t=a?t:Ce(t),Nt(t,n)&&(this._rawValue=t,this._value=a?t:Tt(t),this.dep.trigger())}}function p(e){return Be(e)?e.value:e}const Cu={get:(e,t,n)=>t==="__v_raw"?e:p(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const s=e[t];return Be(s)&&!Be(n)?(s.value=n,!0):Reflect.set(e,t,n,a)}};function ko(e){return Kt(e)?e:new Proxy(e,Cu)}function Eu(e){const t=Se(e)?new Array(e.length):{};for(const n in e)t[n]=$u(e,n);return t}class Ru{constructor(t,n,a){this._object=t,this._defaultValue=a,this.__v_isRef=!0,this._value=void 0,this._key=wt(n)?n:String(n),this._raw=Ce(t);let s=!0,r=t;if(!Se(t)||wt(this._key)||!Ba(this._key))do s=!za(r)||yt(r);while(s&&(r=r.__v_raw));this._shallow=s}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&&Be(this._raw[this._key])){const n=this._object[this._key];if(Be(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return ou(this._raw,this._key)}}function $u(e,t,n){return new Ru(e,t,n)}class Tu{constructor(t,n,a){this.fn=t,this.setter=n,this._value=void 0,this.dep=new rr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=oa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=a}notify(){if(this.flags|=16,!(this.flags&8)&&Ue!==this)return lo(this,!0),!0}get value(){const t=this.dep.track();return fo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Pu(e,t,n=!1){let a,s;return ke(e)?a=e:(a=e.get,s=e.set),new Tu(a,s,n)}const wa={},Ra=new WeakMap;let gn;function Iu(e,t=!1,n=gn){if(n){let a=Ra.get(n);a||Ra.set(n,a=[]),a.push(e)}}function Lu(e,t,n=Ve){const{immediate:a,deep:s,once:r,scheduler:o,augmentJob:i,call:l}=n,u=C=>s?C:yt(C)||s===!1||s===0?on(C,1):on(C);let c,d,f,m,g=!1,y=!1;if(Be(e)?(d=()=>e.value,g=yt(e)):Kt(e)?(d=()=>u(e),g=!0):Se(e)?(y=!0,g=e.some(C=>Kt(C)||yt(C)),d=()=>e.map(C=>{if(Be(C))return C.value;if(Kt(C))return u(C);if(ke(C))return l?l(C,2):C()})):ke(e)?t?d=l?()=>l(e,2):e:d=()=>{if(f){Wt();try{f()}finally{Jt()}}const C=gn;gn=c;try{return l?l(e,3,[m]):e(m)}finally{gn=C}}:d=Mt,t&&s){const C=d,L=s===!0?1/0:s;d=()=>on(C(),L)}const h=ro(),$=()=>{c.stop(),h&&h.active&&Qs(h.effects,c)};if(r&&t){const C=t;t=(...L)=>{C(...L),$()}}let _=y?new Array(e.length).fill(wa):wa;const S=C=>{if(!(!(c.flags&1)||!c.dirty&&!C))if(t){const L=c.run();if(s||g||(y?L.some((P,E)=>Nt(P,_[E])):Nt(L,_))){f&&f();const P=gn;gn=c;try{const E=[L,_===wa?void 0:y&&_[0]===wa?[]:_,m];_=L,l?l(t,3,E):t(...E)}finally{gn=P}}}else c.run()};return i&&i(S),c=new io(d),c.scheduler=o?()=>o(S,!1):S,m=C=>Iu(C,!1,c),f=c.onStop=()=>{const C=Ra.get(c);if(C){if(l)l(C,4);else for(const L of C)L();Ra.delete(c)}},t?a?S(!0):_=c.run():o?o(S.bind(null,!0),!0):c.run(),$.pause=c.pause.bind(c),$.resume=c.resume.bind(c),$.stop=$,$}function on(e,t=1/0,n){if(t<=0||!Fe(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Be(e))on(e.value,t,n);else if(Se(e))for(let a=0;a<e.length;a++)on(e[a],t,n);else if(Ji(e)||$n(e))e.forEach(a=>{on(a,t,n)});else if(Zi(e)){for(const a in e)on(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&on(e[a],t,n)}return e}/**
* @vue/runtime-core v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function ga(e,t,n,a){try{return a?e(...a):e()}catch(s){Ka(s,t,n)}}function Vt(e,t,n,a){if(ke(e)){const s=ga(e,t,n,a);return s&&Yi(s)&&s.catch(r=>{Ka(r,t,n)}),s}if(Se(e)){const s=[];for(let r=0;r<e.length;r++)s.push(Vt(e[r],t,n,a));return s}}function Ka(e,t,n,a=!0){const s=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:o}=t&&t.appContext.config||Ve;if(t){let i=t.parent;const l=t.proxy,u=`https://vuejs.org/error-reference/#runtime-${n}`;for(;i;){const c=i.ec;if(c){for(let d=0;d<c.length;d++)if(c[d](e,l,u)===!1)return}i=i.parent}if(r){Wt(),ga(r,null,10,[e,l,u]),Jt();return}}Du(e,n,s,a,o)}function Du(e,t,n,a=!0,s=!1){if(s)throw e;console.error(e)}const dt=[];let Dt=-1;const Tn=[];let sn=null,xn=0;const Ao=Promise.resolve();let $a=null;function wn(e){const t=$a||Ao;return e?t.then(this?e.bind(this):e):t}function Ou(e){let t=Dt+1,n=dt.length;for(;t<n;){const a=t+n>>>1,s=dt[a],r=ua(s);r<e||r===e&&s.flags&2?t=a+1:n=a}return t}function ur(e){if(!(e.flags&1)){const t=ua(e),n=dt[dt.length-1];!n||!(e.flags&2)&&t>=ua(n)?dt.push(e):dt.splice(Ou(t),0,e),e.flags|=1,xo()}}function xo(){$a||($a=Ao.then(Eo))}function Fu(e){Se(e)?Tn.push(...e):sn&&e.id===-1?sn.splice(xn+1,0,e):e.flags&1||(Tn.push(e),e.flags|=1),xo()}function Nr(e,t,n=Dt+1){for(;n<dt.length;n++){const a=dt[n];if(a&&a.flags&2){if(e&&a.id!==e.uid)continue;dt.splice(n,1),n--,a.flags&4&&(a.flags&=-2),a(),a.flags&4||(a.flags&=-2)}}}function Co(e){if(Tn.length){const t=[...new Set(Tn)].sort((n,a)=>ua(n)-ua(a));if(Tn.length=0,sn){sn.push(...t);return}for(sn=t,xn=0;xn<sn.length;xn++){const n=sn[xn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}sn=null,xn=0}}const ua=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Eo(e){try{for(Dt=0;Dt<dt.length;Dt++){const t=dt[Dt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),ga(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Dt<dt.length;Dt++){const t=dt[Dt];t&&(t.flags&=-2)}Dt=-1,dt.length=0,Co(),$a=null,(dt.length||Tn.length)&&Eo()}}let ft=null,Ro=null;function Ta(e){const t=ft;return ft=e,Ro=e&&e.type.__scopeId||null,t}function x(e,t=ft,n){if(!t||e._n)return e;const a=(...s)=>{a._d&&La(-1);const r=Ta(t);let o;try{o=e(...s)}finally{Ta(r),a._d&&La(1)}return o};return a._n=!0,a._c=!0,a._d=!0,a}function pn(e,t,n,a){const s=e.dirs,r=t&&t.dirs;for(let o=0;o<s.length;o++){const i=s[o];r&&(i.oldValue=r[o].value);let l=i.dir[a];l&&(Wt(),Vt(l,n,8,[e.el,i,e,t]),Jt())}}function ta(e,t){if(it){let n=it.provides;const a=it.parent&&it.parent.provides;a===n&&(n=it.provides=Object.create(a)),n[e]=t}}function _t(e,t,n=!1){const a=Qa();if(a||_n){let s=_n?_n._context.provides:a?a.parent==null||a.ce?a.vnode.appContext&&a.vnode.appContext.provides:a.parent.provides:void 0;if(s&&e in s)return s[e];if(arguments.length>1)return n&&ke(t)?t.call(a&&a.proxy):t}}function Nu(){return!!(Qa()||_n)}const Mu=Symbol.for("v-scx"),Uu=()=>_t(Mu);function gt(e,t,n){return $o(e,t,n)}function $o(e,t,n=Ve){const{immediate:a,deep:s,flush:r,once:o}=n,i=at({},n),l=t&&a||!t&&r!=="post";let u;if(fa){if(r==="sync"){const m=Uu();u=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=Mt,m.resume=Mt,m.pause=Mt,m}}const c=it;i.call=(m,g,y)=>Vt(m,c,g,y);let d=!1;r==="post"?i.scheduler=m=>{ut(m,c&&c.suspense)}:r!=="sync"&&(d=!0,i.scheduler=(m,g)=>{g?m():ur(m)}),i.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,c&&(m.id=c.uid,m.i=c))};const f=Lu(e,t,i);return fa&&(u?u.push(f):l&&f()),f}function Vu(e,t,n){const a=this.proxy,s=Ge(e)?e.includes(".")?To(a,e):()=>a[e]:e.bind(a,a);let r;ke(t)?r=t:(r=t.handler,n=t);const o=ma(this),i=$o(s,r.bind(a),n);return o(),i}function To(e,t){const n=t.split(".");return()=>{let a=e;for(let s=0;s<n.length&&a;s++)a=a[n[s]];return a}}const nn=new WeakMap,Po=Symbol("_vte"),Bu=e=>e.__isTeleport,hn=e=>e&&(e.disabled||e.disabled===""),ju=e=>e&&(e.defer||e.defer===""),Mr=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ur=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ds=(e,t)=>{const n=e&&e.to;return Ge(n)?t?t(n):null:n},Hu={name:"Teleport",__isTeleport:!0,process(e,t,n,a,s,r,o,i,l,u){const{mc:c,pc:d,pbc:f,o:{insert:m,querySelector:g,createText:y,createComment:h,parentNode:$}}=u,_=hn(t.props);let{dynamicChildren:S}=t;const C=(E,T,b)=>{E.shapeFlag&16&&c(E.children,T,b,s,r,o,i,l)},L=(E=t)=>{const T=hn(E.props),b=E.target=Ds(E.props,g),J=Os(b,E,y,m);b&&(o!=="svg"&&Mr(b)?o="svg":o!=="mathml"&&Ur(b)&&(o="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(b),T||(C(E,b,J),Jn(E,!1)))},P=E=>{const T=()=>{if(nn.get(E)===T){if(nn.delete(E),hn(E.props)){const b=$(E.el)||n;C(E,b,E.anchor),Jn(E,!0)}L(E)}};nn.set(E,T),ut(T,r)};if(e==null){const E=t.el=y(""),T=t.anchor=y("");if(m(E,n,a),m(T,n,a),ju(t.props)||r&&r.pendingBranch){P(t);return}_&&(C(t,n,T),Jn(t,!0)),L()}else{t.el=e.el;const E=t.anchor=e.anchor,T=nn.get(e);if(T){T.flags|=8,nn.delete(e),P(t);return}t.targetStart=e.targetStart;const b=t.target=e.target,J=t.targetAnchor=e.targetAnchor,re=hn(e.props),he=re?n:b,ye=re?E:J;if(o==="svg"||Mr(b)?o="svg":(o==="mathml"||Ur(b))&&(o="mathml"),S?(f(e.dynamicChildren,S,he,s,r,o,i),pr(e,t,!0)):l||d(e,t,he,ye,s,r,o,i,!1),_)re?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Sa(t,n,E,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ne=t.target=Ds(t.props,g);ne&&Sa(t,ne,null,u,0)}else re&&Sa(t,b,J,u,1);Jn(t,_)}},remove(e,t,n,{um:a,o:{remove:s}},r){const{shapeFlag:o,children:i,anchor:l,targetStart:u,targetAnchor:c,target:d,props:f}=e;let m=r||!hn(f);const g=nn.get(e);if(g&&(g.flags|=8,nn.delete(e),m=!1),d&&(s(u),s(c)),r&&s(l),o&16)for(let y=0;y<i.length;y++){const h=i[y];a(h,t,n,m,!!h.dynamicChildren)}},move:Sa,hydrate:Gu};function Sa(e,t,n,{o:{insert:a},m:s},r=2){r===0&&a(e.targetAnchor,t,n);const{el:o,anchor:i,shapeFlag:l,children:u,props:c}=e,d=r===2;if(d&&a(o,t,n),!nn.has(e)&&(!d||hn(c))&&l&16)for(let f=0;f<u.length;f++)s(u[f],t,n,2);d&&a(i,t,n)}function Gu(e,t,n,a,s,r,{o:{nextSibling:o,parentNode:i,querySelector:l,insert:u,createText:c}},d){function f(h,$){let _=$;for(;_;){if(_&&_.nodeType===8){if(_.data==="teleport start anchor")t.targetStart=_;else if(_.data==="teleport anchor"){t.targetAnchor=_,h._lpa=t.targetAnchor&&o(t.targetAnchor);break}}_=o(_)}}function m(h,$){$.anchor=d(o(h),$,i(h),n,a,s,r)}const g=t.target=Ds(t.props,l),y=hn(t.props);if(g){const h=g._lpa||g.firstChild;t.shapeFlag&16&&(y?(m(e,t),f(g,h),t.targetAnchor||Os(g,t,c,u,i(e)===g?e:null)):(t.anchor=o(e),f(g,h),t.targetAnchor||Os(g,t,c,u),d(h&&o(h),t,g,n,a,s,r))),Jn(t,y)}else y&&t.shapeFlag&16&&(m(e,t),t.targetStart=e,t.targetAnchor=o(e));return t.anchor&&o(t.anchor)}const qu=Hu;function Jn(e,t){const n=e.ctx;if(n&&n.ut){let a,s;for(t?(a=e.el,s=e.anchor):(a=e.targetStart,s=e.targetAnchor);a&&a!==s;)a.nodeType===1&&a.setAttribute("data-v-owner",n.uid),a=a.nextSibling;n.ut()}}function Os(e,t,n,a,s=null){const r=t.targetStart=n(""),o=t.targetAnchor=n("");return r[Po]=o,e&&(a(r,e,s),a(o,e,s)),o}const zu=Symbol("_leaveCb");function cr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,cr(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 je(e,t){return ke(e)?at({name:e.name},t,{setup:e}):e}function Io(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Vr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Pa=new WeakMap;function na(e,t,n,a,s=!1){if(Se(e)){e.forEach((y,h)=>na(y,t&&(Se(t)?t[h]:t),n,a,s));return}if(Pn(a)&&!s){a.shapeFlag&512&&a.type.__asyncResolved&&a.component.subTree.component&&na(e,t,n,a.component.subTree);return}const r=a.shapeFlag&4?gr(a.component):a.el,o=s?null:r,{i,r:l}=e,u=t&&t.r,c=i.refs===Ve?i.refs={}:i.refs,d=i.setupState,f=Ce(d),m=d===Ve?Wi:y=>Vr(c,y)?!1:Pe(f,y),g=(y,h)=>!(h&&Vr(c,h));if(u!=null&&u!==l){if(Br(t),Ge(u))c[u]=null,m(u)&&(d[u]=null);else if(Be(u)){const y=t;g(u,y.k)&&(u.value=null),y.k&&(c[y.k]=null)}}if(ke(l))ga(l,i,12,[o,c]);else{const y=Ge(l),h=Be(l);if(y||h){const $=()=>{if(e.f){const _=y?m(l)?d[l]:c[l]:g()||!e.k?l.value:c[e.k];if(s)Se(_)&&Qs(_,r);else if(Se(_))_.includes(r)||_.push(r);else if(y)c[l]=[r],m(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]=o,m(l)&&(d[l]=o)):h&&(g(l,e.k)&&(l.value=o),e.k&&(c[e.k]=o))};if(o){const _=()=>{$(),Pa.delete(e)};_.id=-1,Pa.set(e,_),ut(_,n)}else Br(e),$()}}}function Br(e){const t=Pa.get(e);t&&(t.flags|=8,Pa.delete(e))}Ga().requestIdleCallback;Ga().cancelIdleCallback;const Pn=e=>!!e.type.__asyncLoader,Lo=e=>e.type.__isKeepAlive;function Ku(e,t){Do(e,"a",t)}function Wu(e,t){Do(e,"da",t)}function Do(e,t,n=it){const a=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wa(t,a,n),n){let s=n.parent;for(;s&&s.parent;)Lo(s.parent.vnode)&&Ju(a,t,n,s),s=s.parent}}function Ju(e,t,n,a){const s=Wa(t,e,a,!0);ha(()=>{Qs(a[t],s)},n)}function Wa(e,t,n=it,a=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{Wt();const i=ma(n),l=Vt(t,n,e,o);return i(),Jt(),l});return a?s.unshift(r):s.push(r),r}}const Qt=e=>(t,n=it)=>{(!fa||e==="sp")&&Wa(e,(...a)=>t(...a),n)},Yu=Qt("bm"),ht=Qt("m"),Xu=Qt("bu"),Zu=Qt("u"),Ja=Qt("bum"),ha=Qt("um"),Qu=Qt("sp"),ec=Qt("rtg"),tc=Qt("rtc");function Oo(e,t=it){Wa("ec",e,t)}const nc="components";function cn(e,t){return sc(nc,e,!0,t)||e}const ac=Symbol.for("v-ndc");function sc(e,t,n=!0,a=!1){const s=ft||it;if(s){const r=s.type;{const i=jc(r,!1);if(i&&(i===t||i===vt(t)||i===Ha(vt(t))))return r}const o=jr(s[e]||r[e],t)||jr(s.appContext[e],t);return!o&&a?r:o}}function jr(e,t){return e&&(e[t]||e[vt(t)]||e[Ha(vt(t))])}function St(e,t,n,a){let s;const r=n,o=Se(e);if(o||Ge(e)){const i=o&&Kt(e);let l=!1,u=!1;i&&(l=!yt(e),u=Yt(e),e=qa(e)),s=new Array(e.length);for(let c=0,d=e.length;c<d;c++)s[c]=t(l?u?In(Tt(e[c])):Tt(e[c]):e[c],c,void 0,r)}else if(typeof e=="number"){s=new Array(e);for(let i=0;i<e;i++)s[i]=t(i+1,i,void 0,r)}else if(Fe(e))if(e[Symbol.iterator])s=Array.from(e,(i,l)=>t(i,l,void 0,r));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,u=i.length;l<u;l++){const c=i[l];s[l]=t(e[c],c,l,r)}}else s=[];return s}function Fo(e,t){for(let n=0;n<t.length;n++){const a=t[n];if(Se(a))for(let s=0;s<a.length;s++)e[a[s].name]=a[s].fn;else a&&(e[a.name]=a.key?(...s)=>{const r=a.fn(...s);return r&&(r.key=a.key),r}:a.fn)}return e}function Ya(e,t,n={},a,s){if(ft.ce||ft.parent&&Pn(ft.parent)&&ft.parent.ce){const u=Object.keys(n).length>0;return t!=="default"&&(n.name=t),k(),G(xe,null,[R("slot",n,a&&a())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1),k();const o=r&&No(r(n)),i=n.key||o&&o.key,l=G(xe,{key:(i&&!wt(i)?i:`_${t}`)+(!o&&a?"_fb":"")},o||(a?a():[]),o&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),r&&r._c&&(r._d=!0),l}function No(e){return e.some(t=>da(t)?!(t.type===Xt||t.type===xe&&!No(t.children)):!0)?e:null}const Fs=e=>e?al(e)?gr(e):Fs(e.parent):null,aa=at(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=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Uo(e),$forceUpdate:e=>e.f||(e.f=()=>{ur(e.update)}),$nextTick:e=>e.n||(e.n=wn.bind(e.proxy)),$watch:e=>Vu.bind(e)}),gs=(e,t)=>e!==Ve&&!e.__isScriptSetup&&Pe(e,t),rc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:s,props:r,accessCache:o,type:i,appContext:l}=e;if(t[0]!=="$"){const f=o[t];if(f!==void 0)switch(f){case 1:return a[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(gs(a,t))return o[t]=1,a[t];if(s!==Ve&&Pe(s,t))return o[t]=2,s[t];if(Pe(r,t))return o[t]=3,r[t];if(n!==Ve&&Pe(n,t))return o[t]=4,n[t];Ns&&(o[t]=0)}}const u=aa[t];let c,d;if(u)return t==="$attrs"&&rt(e.attrs,"get",""),u(e);if((c=i.__cssModules)&&(c=c[t]))return c;if(n!==Ve&&Pe(n,t))return o[t]=4,n[t];if(d=l.config.globalProperties,Pe(d,t))return d[t]},set({_:e},t,n){const{data:a,setupState:s,ctx:r}=e;return gs(s,t)?(s[t]=n,!0):a!==Ve&&Pe(a,t)?(a[t]=n,!0):Pe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:s,props:r,type:o}},i){let l;return!!(n[i]||e!==Ve&&i[0]!=="$"&&Pe(e,i)||gs(t,i)||Pe(r,i)||Pe(a,i)||Pe(aa,i)||Pe(s.config.globalProperties,i)||(l=o.__cssModules)&&l[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Pe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Hr(e){return Se(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ns=!0;function ic(e){const t=Uo(e),n=e.proxy,a=e.ctx;Ns=!1,t.beforeCreate&&Gr(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:o,watch:i,provide:l,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:m,updated:g,activated:y,deactivated:h,beforeDestroy:$,beforeUnmount:_,destroyed:S,unmounted:C,render:L,renderTracked:P,renderTriggered:E,errorCaptured:T,serverPrefetch:b,expose:J,inheritAttrs:re,components:he,directives:ye,filters:ne}=t;if(u&&oc(u,a,null),o)for(const ie in o){const H=o[ie];ke(H)&&(a[ie]=H.bind(n))}if(s){const ie=s.call(n,n);Fe(ie)&&(e.data=Zt(ie))}if(Ns=!0,r)for(const ie in r){const H=r[ie],Z=ke(H)?H.bind(n,n):ke(H.get)?H.get.bind(n,n):Mt,oe=!ke(H)&&ke(H.set)?H.set.bind(n):Mt,pe=X({get:Z,set:oe});Object.defineProperty(a,ie,{enumerable:!0,configurable:!0,get:()=>pe.value,set:fe=>pe.value=fe})}if(i)for(const ie in i)Mo(i[ie],a,n,ie);if(l){const ie=ke(l)?l.call(n):l;Reflect.ownKeys(ie).forEach(H=>{ta(H,ie[H])})}c&&Gr(c,e,"c");function de(ie,H){Se(H)?H.forEach(Z=>ie(Z.bind(n))):H&&ie(H.bind(n))}if(de(Yu,d),de(ht,f),de(Xu,m),de(Zu,g),de(Ku,y),de(Wu,h),de(Oo,T),de(tc,P),de(ec,E),de(Ja,_),de(ha,C),de(Qu,b),Se(J))if(J.length){const ie=e.exposed||(e.exposed={});J.forEach(H=>{Object.defineProperty(ie,H,{get:()=>n[H],set:Z=>n[H]=Z,enumerable:!0})})}else e.exposed||(e.exposed={});L&&e.render===Mt&&(e.render=L),re!=null&&(e.inheritAttrs=re),he&&(e.components=he),ye&&(e.directives=ye),b&&Io(e)}function oc(e,t,n=Mt){Se(e)&&(e=Ms(e));for(const a in e){const s=e[a];let r;Fe(s)?"default"in s?r=_t(s.from||a,s.default,!0):r=_t(s.from||a):r=_t(s),Be(r)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[a]=r}}function Gr(e,t,n){Vt(Se(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mo(e,t,n,a){let s=a.includes(".")?To(n,a):()=>n[a];if(Ge(e)){const r=t[e];ke(r)&&gt(s,r)}else if(ke(e))gt(s,e.bind(n));else if(Fe(e))if(Se(e))e.forEach(r=>Mo(r,t,n,a));else{const r=ke(e.handler)?e.handler.bind(n):t[e.handler];ke(r)&&gt(s,r,e)}}function Uo(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,i=r.get(t);let l;return i?l=i:!s.length&&!n&&!a?l=t:(l={},s.length&&s.forEach(u=>Ia(l,u,o,!0)),Ia(l,t,o)),Fe(t)&&r.set(t,l),l}function Ia(e,t,n,a=!1){const{mixins:s,extends:r}=t;r&&Ia(e,r,n,!0),s&&s.forEach(o=>Ia(e,o,n,!0));for(const o in t)if(!(a&&o==="expose")){const i=lc[o]||n&&n[o];e[o]=i?i(e[o],t[o]):t[o]}return e}const lc={data:qr,props:zr,emits:zr,methods:Yn,computed:Yn,beforeCreate:lt,created:lt,beforeMount:lt,mounted:lt,beforeUpdate:lt,updated:lt,beforeDestroy:lt,beforeUnmount:lt,destroyed:lt,unmounted:lt,activated:lt,deactivated:lt,errorCaptured:lt,serverPrefetch:lt,components:Yn,directives:Yn,watch:cc,provide:qr,inject:uc};function qr(e,t){return t?e?function(){return at(ke(e)?e.call(this,this):e,ke(t)?t.call(this,this):t)}:t:e}function uc(e,t){return Yn(Ms(e),Ms(t))}function Ms(e){if(Se(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function lt(e,t){return e?[...new Set([].concat(e,t))]:t}function Yn(e,t){return e?at(Object.create(null),e,t):t}function zr(e,t){return e?Se(e)&&Se(t)?[...new Set([...e,...t])]:at(Object.create(null),Hr(e),Hr(t??{})):t}function cc(e,t){if(!e)return t;if(!t)return e;const n=at(Object.create(null),e);for(const a in t)n[a]=lt(e[a],t[a]);return n}function Vo(){return{app:null,config:{isNativeTag:Wi,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 dc=0;function fc(e,t){return function(a,s=null){ke(a)||(a=at({},a)),s!=null&&!Fe(s)&&(s=null);const r=Vo(),o=new WeakSet,i=[];let l=!1;const u=r.app={_uid:dc++,_component:a,_props:s,_container:null,_context:r,_instance:null,version:Gc,get config(){return r.config},set config(c){},use(c,...d){return o.has(c)||(c&&ke(c.install)?(o.add(c),c.install(u,...d)):ke(c)&&(o.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 m=u._ceVNode||R(a,s);return m.appContext=r,f===!0?f="svg":f===!1&&(f=void 0),e(m,c,f),l=!0,u._container=c,c.__vue_app__=u,gr(m.component)}},onUnmount(c){i.push(c)},unmount(){l&&(Vt(i,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=_n;_n=u;try{return c()}finally{_n=d}}};return u}}let _n=null;const pc=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${vt(t)}Modifiers`]||e[`${un(t)}Modifiers`];function vc(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||Ve;let s=n;const r=t.startsWith("update:"),o=r&&pc(a,t.slice(7));o&&(o.trim&&(s=n.map(c=>Ge(c)?c.trim():c)),o.number&&(s=n.map(Yl)));let i,l=a[i=us(t)]||a[i=us(vt(t))];!l&&r&&(l=a[i=us(un(t))]),l&&Vt(l,e,6,s);const u=a[i+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Vt(u,e,6,s)}}const gc=new WeakMap;function Bo(e,t,n=!1){const a=n?gc:t.emitsCache,s=a.get(e);if(s!==void 0)return s;const r=e.emits;let o={},i=!1;if(!ke(e)){const l=u=>{const c=Bo(u,t,!0);c&&(i=!0,at(o,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(Fe(e)&&a.set(e,null),null):(Se(r)?r.forEach(l=>o[l]=null):at(o,r),Fe(e)&&a.set(e,o),o)}function Xa(e,t){return!e||!Ua(t)?!1:(t=t.slice(2).replace(/Once$/,""),Pe(e,t[0].toLowerCase()+t.slice(1))||Pe(e,un(t))||Pe(e,t))}function Kr(e){const{type:t,vnode:n,proxy:a,withProxy:s,propsOptions:[r],slots:o,attrs:i,emit:l,render:u,renderCache:c,props:d,data:f,setupState:m,ctx:g,inheritAttrs:y}=e,h=Ta(e);let $,_;try{if(n.shapeFlag&4){const C=s||a,L=C;$=Ft(u.call(L,C,c,d,m,f,g)),_=i}else{const C=t;$=Ft(C.length>1?C(d,{attrs:i,slots:o,emit:l}):C(d,null)),_=t.props?i:hc(i)}}catch(C){sa.length=0,Ka(C,e,1),$=R(Xt)}let S=$;if(_&&y!==!1){const C=Object.keys(_),{shapeFlag:L}=S;C.length&&L&7&&(r&&C.some(Va)&&(_=mc(_,r)),S=Ln(S,_,!1,!0))}return n.dirs&&(S=Ln(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&cr(S,n.transition),$=S,Ta(h),$}const hc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ua(n))&&((t||(t={}))[n]=e[n]);return t},mc=(e,t)=>{const n={};for(const a in e)(!Va(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function yc(e,t,n){const{props:a,children:s,component:r}=e,{props:o,children:i,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 a?Wr(a,o,u):!!o;if(l&8){const c=t.dynamicProps;for(let d=0;d<c.length;d++){const f=c[d];if(jo(o,a,f)&&!Xa(u,f))return!0}}}else return(s||i)&&(!i||!i.$stable)?!0:a===o?!1:a?o?Wr(a,o,u):!0:!!o;return!1}function Wr(e,t,n){const a=Object.keys(t);if(a.length!==Object.keys(e).length)return!0;for(let s=0;s<a.length;s++){const r=a[s];if(jo(t,e,r)&&!Xa(n,r))return!0}return!1}function jo(e,t,n){const a=e[n],s=t[n];return n==="style"&&Fe(a)&&Fe(s)?!tr(a,s):a!==s}function _c({vnode:e,parent:t,suspense:n},a){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.suspense.vnode.el=s.el=a,e=s),s===e)(e=t.vnode).el=a,t=t.parent;else break}n&&n.activeBranch===e&&(n.vnode.el=a)}const Ho={},Go=()=>Object.create(Ho),qo=e=>Object.getPrototypeOf(e)===Ho;function bc(e,t,n,a=!1){const s={},r=Go();e.propsDefaults=Object.create(null),zo(e,t,s,r);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=a?s:wo(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function wc(e,t,n,a){const{props:s,attrs:r,vnode:{patchFlag:o}}=e,i=Ce(s),[l]=e.propsOptions;let u=!1;if((a||o>0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let d=0;d<c.length;d++){let f=c[d];if(Xa(e.emitsOptions,f))continue;const m=t[f];if(l)if(Pe(r,f))m!==r[f]&&(r[f]=m,u=!0);else{const g=vt(f);s[g]=Us(l,i,g,m,e,!1)}else m!==r[f]&&(r[f]=m,u=!0)}}}else{zo(e,t,s,r)&&(u=!0);let c;for(const d in i)(!t||!Pe(t,d)&&((c=un(d))===d||!Pe(t,c)))&&(l?n&&(n[d]!==void 0||n[c]!==void 0)&&(s[d]=Us(l,i,d,void 0,e,!0)):delete s[d]);if(r!==i)for(const d in r)(!t||!Pe(t,d))&&(delete r[d],u=!0)}u&&zt(e.attrs,"set","")}function zo(e,t,n,a){const[s,r]=e.propsOptions;let o=!1,i;if(t)for(let l in t){if(Zn(l))continue;const u=t[l];let c;s&&Pe(s,c=vt(l))?!r||!r.includes(c)?n[c]=u:(i||(i={}))[c]=u:Xa(e.emitsOptions,l)||(!(l in a)||u!==a[l])&&(a[l]=u,o=!0)}if(r){const l=Ce(n),u=i||Ve;for(let c=0;c<r.length;c++){const d=r[c];n[d]=Us(s,l,d,u[d],e,!Pe(u,d))}}return o}function Us(e,t,n,a,s,r){const o=e[n];if(o!=null){const i=Pe(o,"default");if(i&&a===void 0){const l=o.default;if(o.type!==Function&&!o.skipFactory&&ke(l)){const{propsDefaults:u}=s;if(n in u)a=u[n];else{const c=ma(s);a=u[n]=l.call(null,t),c()}}else a=l;s.ce&&s.ce._setProp(n,a)}o[0]&&(r&&!i?a=!1:o[1]&&(a===""||a===un(n))&&(a=!0))}return a}const Sc=new WeakMap;function Ko(e,t,n=!1){const a=n?Sc:t.propsCache,s=a.get(e);if(s)return s;const r=e.props,o={},i=[];let l=!1;if(!ke(e)){const c=d=>{l=!0;const[f,m]=Ko(d,t,!0);at(o,f),m&&i.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!l)return Fe(e)&&a.set(e,Rn),Rn;if(Se(r))for(let c=0;c<r.length;c++){const d=vt(r[c]);Jr(d)&&(o[d]=Ve)}else if(r)for(const c in r){const d=vt(c);if(Jr(d)){const f=r[c],m=o[d]=Se(f)||ke(f)?{type:f}:at({},f),g=m.type;let y=!1,h=!0;if(Se(g))for(let $=0;$<g.length;++$){const _=g[$],S=ke(_)&&_.name;if(S==="Boolean"){y=!0;break}else S==="String"&&(h=!1)}else y=ke(g)&&g.name==="Boolean";m[0]=y,m[1]=h,(y||Pe(m,"default"))&&i.push(d)}}const u=[o,i];return Fe(e)&&a.set(e,u),u}function Jr(e){return e[0]!=="$"&&!Zn(e)}const dr=e=>e==="_"||e==="_ctx"||e==="$stable",fr=e=>Se(e)?e.map(Ft):[Ft(e)],kc=(e,t,n)=>{if(t._n)return t;const a=x((...s)=>fr(t(...s)),n);return a._c=!1,a},Wo=(e,t,n)=>{const a=e._ctx;for(const s in e){if(dr(s))continue;const r=e[s];if(ke(r))t[s]=kc(s,r,a);else if(r!=null){const o=fr(r);t[s]=()=>o}}},Jo=(e,t)=>{const n=fr(t);e.slots.default=()=>n},Yo=(e,t,n)=>{for(const a in t)(n||!dr(a))&&(e[a]=t[a])},Ac=(e,t,n)=>{const a=e.slots=Go();if(e.vnode.shapeFlag&32){const s=t._;s?(Yo(a,t,n),n&&Qi(a,"_",s,!0)):Wo(t,a)}else t&&Jo(e,t)},xc=(e,t,n)=>{const{vnode:a,slots:s}=e;let r=!0,o=Ve;if(a.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:Yo(s,t,n):(r=!t.$stable,Wo(t,s)),o=t}else t&&(Jo(e,t),o={default:1});if(r)for(const i in s)!dr(i)&&o[i]==null&&delete s[i]},ut=Tc;function Cc(e){return Ec(e)}function Ec(e,t){const n=Ga();n.__VUE__=!0;const{insert:a,remove:s,patchProp:r,createElement:o,createText:i,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:f,setScopeId:m=Mt,insertStaticContent:g}=e,y=(v,w,A,j=null,W=null,K=null,le=void 0,ae=null,ee=!!w.dynamicChildren)=>{if(v===w)return;v&&!jn(v,w)&&(j=U(v),fe(v,W,K,!0),v=null),w.patchFlag===-2&&(ee=!1,w.dynamicChildren=null);const{type:Y,ref:me,shapeFlag:ue}=w;switch(Y){case Za:h(v,w,A,j);break;case Xt:$(v,w,A,j);break;case Aa:v==null&&_(w,A,j,le);break;case xe:he(v,w,A,j,W,K,le,ae,ee);break;default:ue&1?L(v,w,A,j,W,K,le,ae,ee):ue&6?ye(v,w,A,j,W,K,le,ae,ee):(ue&64||ue&128)&&Y.process(v,w,A,j,W,K,le,ae,ee,N)}me!=null&&W?na(me,v&&v.ref,K,w||v,!w):me==null&&v&&v.ref!=null&&na(v.ref,null,K,v,!0)},h=(v,w,A,j)=>{if(v==null)a(w.el=i(w.children),A,j);else{const W=w.el=v.el;w.children!==v.children&&u(W,w.children)}},$=(v,w,A,j)=>{v==null?a(w.el=l(w.children||""),A,j):w.el=v.el},_=(v,w,A,j)=>{[v.el,v.anchor]=g(v.children,w,A,j,v.el,v.anchor)},S=({el:v,anchor:w},A,j)=>{let W;for(;v&&v!==w;)W=f(v),a(v,A,j),v=W;a(w,A,j)},C=({el:v,anchor:w})=>{let A;for(;v&&v!==w;)A=f(v),s(v),v=A;s(w)},L=(v,w,A,j,W,K,le,ae,ee)=>{if(w.type==="svg"?le="svg":w.type==="math"&&(le="mathml"),v==null)P(w,A,j,W,K,le,ae,ee);else{const Y=v.el&&v.el._isVueCE?v.el:null;try{Y&&Y._beginPatch(),b(v,w,W,K,le,ae,ee)}finally{Y&&Y._endPatch()}}},P=(v,w,A,j,W,K,le,ae)=>{let ee,Y;const{props:me,shapeFlag:ue,transition:ge,dirs:we}=v;if(ee=v.el=o(v.type,K,me&&me.is,me),ue&8?c(ee,v.children):ue&16&&T(v.children,ee,null,j,W,hs(v,K),le,ae),we&&pn(v,null,j,"created"),E(ee,v,v.scopeId,le,j),me){for(const Oe in me)Oe!=="value"&&!Zn(Oe)&&r(ee,Oe,null,me[Oe],K,j);"value"in me&&r(ee,"value",null,me.value,K),(Y=me.onVnodeBeforeMount)&&It(Y,j,v)}we&&pn(v,null,j,"beforeMount");const Ae=Rc(W,ge);Ae&&ge.beforeEnter(ee),a(ee,w,A),((Y=me&&me.onVnodeMounted)||Ae||we)&&ut(()=>{try{Y&&It(Y,j,v),Ae&&ge.enter(ee),we&&pn(v,null,j,"mounted")}finally{}},W)},E=(v,w,A,j,W)=>{if(A&&m(v,A),j)for(let K=0;K<j.length;K++)m(v,j[K]);if(W){let K=W.subTree;if(w===K||Qo(K.type)&&(K.ssContent===w||K.ssFallback===w)){const le=W.vnode;E(v,le,le.scopeId,le.slotScopeIds,W.parent)}}},T=(v,w,A,j,W,K,le,ae,ee=0)=>{for(let Y=ee;Y<v.length;Y++){const me=v[Y]=ae?qt(v[Y]):Ft(v[Y]);y(null,me,w,A,j,W,K,le,ae)}},b=(v,w,A,j,W,K,le)=>{const ae=w.el=v.el;let{patchFlag:ee,dynamicChildren:Y,dirs:me}=w;ee|=v.patchFlag&16;const ue=v.props||Ve,ge=w.props||Ve;let we;if(A&&vn(A,!1),(we=ge.onVnodeBeforeUpdate)&&It(we,A,w,v),me&&pn(w,v,A,"beforeUpdate"),A&&vn(A,!0),(ue.innerHTML&&ge.innerHTML==null||ue.textContent&&ge.textContent==null)&&c(ae,""),Y?J(v.dynamicChildren,Y,ae,A,j,hs(w,W),K):le||H(v,w,ae,null,A,j,hs(w,W),K,!1),ee>0){if(ee&16)re(ae,ue,ge,A,W);else if(ee&2&&ue.class!==ge.class&&r(ae,"class",null,ge.class,W),ee&4&&r(ae,"style",ue.style,ge.style,W),ee&8){const Ae=w.dynamicProps;for(let Oe=0;Oe<Ae.length;Oe++){const Ne=Ae[Oe],He=ue[Ne],se=ge[Ne];(se!==He||Ne==="value")&&r(ae,Ne,He,se,W,A)}}ee&1&&v.children!==w.children&&c(ae,w.children)}else!le&&Y==null&&re(ae,ue,ge,A,W);((we=ge.onVnodeUpdated)||me)&&ut(()=>{we&&It(we,A,w,v),me&&pn(w,v,A,"updated")},j)},J=(v,w,A,j,W,K,le)=>{for(let ae=0;ae<w.length;ae++){const ee=v[ae],Y=w[ae],me=ee.el&&(ee.type===xe||!jn(ee,Y)||ee.shapeFlag&198)?d(ee.el):A;y(ee,Y,me,null,j,W,K,le,!0)}},re=(v,w,A,j,W)=>{if(w!==A){if(w!==Ve)for(const K in w)!Zn(K)&&!(K in A)&&r(v,K,w[K],null,W,j);for(const K in A){if(Zn(K))continue;const le=A[K],ae=w[K];le!==ae&&K!=="value"&&r(v,K,ae,le,W,j)}"value"in A&&r(v,"value",w.value,A.value,W)}},he=(v,w,A,j,W,K,le,ae,ee)=>{const Y=w.el=v?v.el:i(""),me=w.anchor=v?v.anchor:i("");let{patchFlag:ue,dynamicChildren:ge,slotScopeIds:we}=w;we&&(ae=ae?ae.concat(we):we),v==null?(a(Y,A,j),a(me,A,j),T(w.children||[],A,me,W,K,le,ae,ee)):ue>0&&ue&64&&ge&&v.dynamicChildren&&v.dynamicChildren.length===ge.length?(J(v.dynamicChildren,ge,A,W,K,le,ae),(w.key!=null||W&&w===W.subTree)&&pr(v,w,!0)):H(v,w,A,me,W,K,le,ae,ee)},ye=(v,w,A,j,W,K,le,ae,ee)=>{w.slotScopeIds=ae,v==null?w.shapeFlag&512?W.ctx.activate(w,A,j,le,ee):ne(w,A,j,W,K,le,ee):ce(v,w,ee)},ne=(v,w,A,j,W,K,le)=>{const ae=v.component=Nc(v,j,W);if(Lo(v)&&(ae.ctx.renderer=N),Mc(ae,!1,le),ae.asyncDep){if(W&&W.registerDep(ae,de,le),!v.el){const ee=ae.subTree=R(Xt);$(null,ee,w,A),v.placeholder=ee.el}}else de(ae,v,w,A,W,K,le)},ce=(v,w,A)=>{const j=w.component=v.component;if(yc(v,w,A))if(j.asyncDep&&!j.asyncResolved){ie(j,w,A);return}else j.next=w,j.update();else w.el=v.el,j.vnode=w},de=(v,w,A,j,W,K,le)=>{const ae=()=>{if(v.isMounted){let{next:ue,bu:ge,u:we,parent:Ae,vnode:Oe}=v;{const Me=Xo(v);if(Me){ue&&(ue.el=Oe.el,ie(v,ue,le)),Me.asyncDep.then(()=>{ut(()=>{v.isUnmounted||Y()},W)});return}}let Ne=ue,He;vn(v,!1),ue?(ue.el=Oe.el,ie(v,ue,le)):ue=Oe,ge&&cs(ge),(He=ue.props&&ue.props.onVnodeBeforeUpdate)&&It(He,Ae,ue,Oe),vn(v,!0);const se=Kr(v),D=v.subTree;v.subTree=se,y(D,se,d(D.el),U(D),v,W,K),ue.el=se.el,Ne===null&&_c(v,se.el),we&&ut(we,W),(He=ue.props&&ue.props.onVnodeUpdated)&&ut(()=>It(He,Ae,ue,Oe),W)}else{let ue;const{el:ge,props:we}=w,{bm:Ae,m:Oe,parent:Ne,root:He,type:se}=v,D=Pn(w);vn(v,!1),Ae&&cs(Ae),!D&&(ue=we&&we.onVnodeBeforeMount)&&It(ue,Ne,w),vn(v,!0);{He.ce&&He.ce._hasShadowRoot()&&He.ce._injectChildStyle(se,v.parent?v.parent.type:void 0);const Me=v.subTree=Kr(v);y(null,Me,A,j,v,W,K),w.el=Me.el}if(Oe&&ut(Oe,W),!D&&(ue=we&&we.onVnodeMounted)){const Me=w;ut(()=>It(ue,Ne,Me),W)}(w.shapeFlag&256||Ne&&Pn(Ne.vnode)&&Ne.vnode.shapeFlag&256)&&v.a&&ut(v.a,W),v.isMounted=!0,w=A=j=null}};v.scope.on();const ee=v.effect=new io(ae);v.scope.off();const Y=v.update=ee.run.bind(ee),me=v.job=ee.runIfDirty.bind(ee);me.i=v,me.id=v.uid,ee.scheduler=()=>ur(me),vn(v,!0),Y()},ie=(v,w,A)=>{w.component=v;const j=v.vnode.props;v.vnode=w,v.next=null,wc(v,w.props,j,A),xc(v,w.children,A),Wt(),Nr(v),Jt()},H=(v,w,A,j,W,K,le,ae,ee=!1)=>{const Y=v&&v.children,me=v?v.shapeFlag:0,ue=w.children,{patchFlag:ge,shapeFlag:we}=w;if(ge>0){if(ge&128){oe(Y,ue,A,j,W,K,le,ae,ee);return}else if(ge&256){Z(Y,ue,A,j,W,K,le,ae,ee);return}}we&8?(me&16&&$e(Y,W,K),ue!==Y&&c(A,ue)):me&16?we&16?oe(Y,ue,A,j,W,K,le,ae,ee):$e(Y,W,K,!0):(me&8&&c(A,""),we&16&&T(ue,A,j,W,K,le,ae,ee))},Z=(v,w,A,j,W,K,le,ae,ee)=>{v=v||Rn,w=w||Rn;const Y=v.length,me=w.length,ue=Math.min(Y,me);let ge;for(ge=0;ge<ue;ge++){const we=w[ge]=ee?qt(w[ge]):Ft(w[ge]);y(v[ge],we,A,null,W,K,le,ae,ee)}Y>me?$e(v,W,K,!0,!1,ue):T(w,A,j,W,K,le,ae,ee,ue)},oe=(v,w,A,j,W,K,le,ae,ee)=>{let Y=0;const me=w.length;let ue=v.length-1,ge=me-1;for(;Y<=ue&&Y<=ge;){const we=v[Y],Ae=w[Y]=ee?qt(w[Y]):Ft(w[Y]);if(jn(we,Ae))y(we,Ae,A,null,W,K,le,ae,ee);else break;Y++}for(;Y<=ue&&Y<=ge;){const we=v[ue],Ae=w[ge]=ee?qt(w[ge]):Ft(w[ge]);if(jn(we,Ae))y(we,Ae,A,null,W,K,le,ae,ee);else break;ue--,ge--}if(Y>ue){if(Y<=ge){const we=ge+1,Ae=we<me?w[we].el:j;for(;Y<=ge;)y(null,w[Y]=ee?qt(w[Y]):Ft(w[Y]),A,Ae,W,K,le,ae,ee),Y++}}else if(Y>ge)for(;Y<=ue;)fe(v[Y],W,K,!0),Y++;else{const we=Y,Ae=Y,Oe=new Map;for(Y=Ae;Y<=ge;Y++){const Ye=w[Y]=ee?qt(w[Y]):Ft(w[Y]);Ye.key!=null&&Oe.set(Ye.key,Y)}let Ne,He=0;const se=ge-Ae+1;let D=!1,Me=0;const et=new Array(se);for(Y=0;Y<se;Y++)et[Y]=0;for(Y=we;Y<=ue;Y++){const Ye=v[Y];if(He>=se){fe(Ye,W,K,!0);continue}let Ke;if(Ye.key!=null)Ke=Oe.get(Ye.key);else for(Ne=Ae;Ne<=ge;Ne++)if(et[Ne-Ae]===0&&jn(Ye,w[Ne])){Ke=Ne;break}Ke===void 0?fe(Ye,W,K,!0):(et[Ke-Ae]=Y+1,Ke>=Me?Me=Ke:D=!0,y(Ye,w[Ke],A,null,W,K,le,ae,ee),He++)}const be=D?$c(et):Rn;for(Ne=be.length-1,Y=se-1;Y>=0;Y--){const Ye=Ae+Y,Ke=w[Ye],Vn=w[Ye+1],Ir=Ye+1<me?Vn.el||Zo(Vn):j;et[Y]===0?y(null,Ke,A,Ir,W,K,le,ae,ee):D&&(Ne<0||Y!==be[Ne]?pe(Ke,A,Ir,2):Ne--)}}},pe=(v,w,A,j,W=null)=>{const{el:K,type:le,transition:ae,children:ee,shapeFlag:Y}=v;if(Y&6){pe(v.component.subTree,w,A,j);return}if(Y&128){v.suspense.move(w,A,j);return}if(Y&64){le.move(v,w,A,N);return}if(le===xe){a(K,w,A);for(let ue=0;ue<ee.length;ue++)pe(ee[ue],w,A,j);a(v.anchor,w,A);return}if(le===Aa){S(v,w,A);return}if(j!==2&&Y&1&&ae)if(j===0)ae.beforeEnter(K),a(K,w,A),ut(()=>ae.enter(K),W);else{const{leave:ue,delayLeave:ge,afterLeave:we}=ae,Ae=()=>{v.ctx.isUnmounted?s(K):a(K,w,A)},Oe=()=>{K._isLeaving&&K[zu](!0),ue(K,()=>{Ae(),we&&we()})};ge?ge(K,Ae,Oe):Oe()}else a(K,w,A)},fe=(v,w,A,j=!1,W=!1)=>{const{type:K,props:le,ref:ae,children:ee,dynamicChildren:Y,shapeFlag:me,patchFlag:ue,dirs:ge,cacheIndex:we,memo:Ae}=v;if(ue===-2&&(W=!1),ae!=null&&(Wt(),na(ae,null,A,v,!0),Jt()),we!=null&&(w.renderCache[we]=void 0),me&256){w.ctx.deactivate(v);return}const Oe=me&1&&ge,Ne=!Pn(v);let He;if(Ne&&(He=le&&le.onVnodeBeforeUnmount)&&It(He,w,v),me&6)Re(v.component,A,j);else{if(me&128){v.suspense.unmount(A,j);return}Oe&&pn(v,null,w,"beforeUnmount"),me&64?v.type.remove(v,w,A,N,j):Y&&!Y.hasOnce&&(K!==xe||ue>0&&ue&64)?$e(Y,w,A,!1,!0):(K===xe&&ue&384||!W&&me&16)&&$e(ee,w,A),j&&De(v)}const se=Ae!=null&&we==null;(Ne&&(He=le&&le.onVnodeUnmounted)||Oe||se)&&ut(()=>{He&&It(He,w,v),Oe&&pn(v,null,w,"unmounted"),se&&(v.el=null)},A)},De=v=>{const{type:w,el:A,anchor:j,transition:W}=v;if(w===xe){Ee(A,j);return}if(w===Aa){C(v);return}const K=()=>{s(A),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(v.shapeFlag&1&&W&&!W.persisted){const{leave:le,delayLeave:ae}=W,ee=()=>le(A,K);ae?ae(v.el,K,ee):ee()}else K()},Ee=(v,w)=>{let A;for(;v!==w;)A=f(v),s(v),v=A;s(w)},Re=(v,w,A)=>{const{bum:j,scope:W,job:K,subTree:le,um:ae,m:ee,a:Y}=v;Yr(ee),Yr(Y),j&&cs(j),W.stop(),K&&(K.flags|=8,fe(le,v,w,A)),ae&&ut(ae,w),ut(()=>{v.isUnmounted=!0},w)},$e=(v,w,A,j=!1,W=!1,K=0)=>{for(let le=K;le<v.length;le++)fe(v[le],w,A,j,W)},U=v=>{if(v.shapeFlag&6)return U(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const w=f(v.anchor||v.el),A=w&&w[Po];return A?f(A):w};let te=!1;const q=(v,w,A)=>{let j;v==null?w._vnode&&(fe(w._vnode,null,null,!0),j=w._vnode.component):y(w._vnode||null,v,w,null,null,null,A),w._vnode=v,te||(te=!0,Nr(j),Co(),te=!1)},N={p:y,um:fe,m:pe,r:De,mt:ne,mc:T,pc:H,pbc:J,n:U,o:e};return{render:q,hydrate:void 0,createApp:fc(q)}}function hs({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 vn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Rc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function pr(e,t,n=!1){const a=e.children,s=t.children;if(Se(a)&&Se(s))for(let r=0;r<a.length;r++){const o=a[r];let i=s[r];i.shapeFlag&1&&!i.dynamicChildren&&((i.patchFlag<=0||i.patchFlag===32)&&(i=s[r]=qt(s[r]),i.el=o.el),!n&&i.patchFlag!==-2&&pr(o,i)),i.type===Za&&(i.patchFlag===-1&&(i=s[r]=qt(i)),i.el=o.el),i.type===Xt&&!i.el&&(i.el=o.el)}}function $c(e){const t=e.slice(),n=[0];let a,s,r,o,i;const l=e.length;for(a=0;a<l;a++){const u=e[a];if(u!==0){if(s=n[n.length-1],e[s]<u){t[a]=s,n.push(a);continue}for(r=0,o=n.length-1;r<o;)i=r+o>>1,e[n[i]]<u?r=i+1:o=i;u<e[n[r]]&&(r>0&&(t[a]=n[r-1]),n[r]=a)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=t[o];return n}function Xo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Xo(t)}function Yr(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Zo(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Zo(t.subTree):null}const Qo=e=>e.__isSuspense;function Tc(e,t){t&&t.pendingBranch?Se(e)?t.effects.push(...e):t.effects.push(e):Fu(e)}const xe=Symbol.for("v-fgt"),Za=Symbol.for("v-txt"),Xt=Symbol.for("v-cmt"),Aa=Symbol.for("v-stc"),sa=[];let mt=null;function k(e=!1){sa.push(mt=e?null:[])}function Pc(){sa.pop(),mt=sa[sa.length-1]||null}let ca=1;function La(e,t=!1){ca+=e,e<0&&mt&&t&&(mt.hasOnce=!0)}function el(e){return e.dynamicChildren=ca>0?mt||Rn:null,Pc(),ca>0&&mt&&mt.push(e),e}function B(e,t,n,a,s,r){return el(I(e,t,n,a,s,r,!0))}function G(e,t,n,a,s){return el(R(e,t,n,a,s,!0))}function da(e){return e?e.__v_isVNode===!0:!1}function jn(e,t){return e.type===t.type&&e.key===t.key}const tl=({key:e})=>e??null,xa=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ge(e)||Be(e)||ke(e)?{i:ft,r:e,k:t,f:!!n}:e:null);function I(e,t=null,n=null,a=0,s=null,r=e===xe?0:1,o=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&tl(t),ref:t&&xa(t),scopeId:Ro,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:a,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ft};return i?(vr(l,n),r&128&&e.normalize(l)):n&&(l.shapeFlag|=Ge(n)?8:16),ca>0&&!o&&mt&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&mt.push(l),l}const R=Ic;function Ic(e,t=null,n=null,a=0,s=null,r=!1){if((!e||e===ac)&&(e=Xt),da(e)){const i=Ln(e,t,!0);return n&&vr(i,n),ca>0&&!r&&mt&&(i.shapeFlag&6?mt[mt.indexOf(e)]=i:mt.push(i)),i.patchFlag=-2,i}if(Hc(e)&&(e=e.__vccOpts),t){t=Lc(t);let{class:i,style:l}=t;i&&!Ge(i)&&(t.class=$t(i)),Fe(l)&&(za(l)&&!Se(l)&&(l=at({},l)),t.style=er(l))}const o=Ge(e)?1:Qo(e)?128:Bu(e)?64:Fe(e)?4:ke(e)?2:0;return I(e,t,n,a,s,o,r,!0)}function Lc(e){return e?za(e)||qo(e)?at({},e):e:null}function Ln(e,t,n=!1,a=!1){const{props:s,ref:r,patchFlag:o,children:i,transition:l}=e,u=t?nl(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&tl(u),ref:t&&t.ref?n&&r?Se(r)?r.concat(xa(t)):[r,xa(t)]:xa(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ln(e.ssContent),ssFallback:e.ssFallback&&Ln(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&a&&cr(c,l.clone(c)),c}function F(e=" ",t=0){return R(Za,null,e,t)}function Dc(e,t){const n=R(Aa,null,e);return n.staticCount=t,n}function Q(e="",t=!1){return t?(k(),G(Xt,null,e)):R(Xt,null,e)}function Ft(e){return e==null||typeof e=="boolean"?R(Xt):Se(e)?R(xe,null,e.slice()):da(e)?qt(e):R(Za,null,String(e))}function qt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ln(e)}function vr(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(Se(t))n=16;else if(typeof t=="object")if(a&65){const s=t.default;s&&(s._c&&(s._d=!1),vr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!qo(t)?t._ctx=ft:s===3&&ft&&(ft.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ke(t)?(t={default:t,_ctx:ft},n=32):(t=String(t),a&64?(n=16,t=[F(t)]):n=8);e.children=t,e.shapeFlag|=n}function nl(...e){const t={};for(let n=0;n<e.length;n++){const a=e[n];for(const s in a)if(s==="class")t.class!==a.class&&(t.class=$t([t.class,a.class]));else if(s==="style")t.style=er([t.style,a.style]);else if(Ua(s)){const r=t[s],o=a[s];o&&r!==o&&!(Se(r)&&r.includes(o))?t[s]=r?[].concat(r,o):o:o==null&&r==null&&!Va(s)&&(t[s]=o)}else s!==""&&(t[s]=a[s])}return t}function It(e,t,n,a=null){Vt(e,t,7,[n,a])}const Oc=Vo();let Fc=0;function Nc(e,t,n){const a=e.type,s=(t?t.appContext:e.appContext)||Oc,r={uid:Fc++,vnode:e,type:a,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ao(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Ko(a,s),emitsOptions:Bo(a,s),emit:null,emitted:null,propsDefaults:Ve,inheritAttrs:a.inheritAttrs,ctx:Ve,data:Ve,props:Ve,attrs:Ve,slots:Ve,refs:Ve,setupState:Ve,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=vc.bind(null,r),e.ce&&e.ce(r),r}let it=null;const Qa=()=>it||ft;let Da,Vs;{const e=Ga(),t=(n,a)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(a),r=>{s.length>1?s.forEach(o=>o(r)):s[0](r)}};Da=t("__VUE_INSTANCE_SETTERS__",n=>it=n),Vs=t("__VUE_SSR_SETTERS__",n=>fa=n)}const ma=e=>{const t=it;return Da(e),e.scope.on(),()=>{e.scope.off(),Da(t)}},Xr=()=>{it&&it.scope.off(),Da(null)};function al(e){return e.vnode.shapeFlag&4}let fa=!1;function Mc(e,t=!1,n=!1){t&&Vs(t);const{props:a,children:s}=e.vnode,r=al(e);bc(e,a,r,t),Ac(e,s,n||t);const o=r?Uc(e,t):void 0;return t&&Vs(!1),o}function Uc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rc);const{setup:a}=n;if(a){Wt();const s=e.setupContext=a.length>1?Bc(e):null,r=ma(e),o=ga(a,e,0,[e.props,s]),i=Yi(o);if(Jt(),r(),(i||e.sp)&&!Pn(e)&&Io(e),i){if(o.then(Xr,Xr),t)return o.then(l=>{Zr(e,l)}).catch(l=>{Ka(l,e,0)});e.asyncDep=o}else Zr(e,o)}else sl(e)}function Zr(e,t,n){ke(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Fe(t)&&(e.setupState=ko(t)),sl(e)}function sl(e,t,n){const a=e.type;e.render||(e.render=a.render||Mt);{const s=ma(e);Wt();try{ic(e)}finally{Jt(),s()}}}const Vc={get(e,t){return rt(e,"get",""),e[t]}};function Bc(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Vc),slots:e.slots,emit:e.emit,expose:t}}function gr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ko(lr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in aa)return aa[n](e)},has(t,n){return n in t||n in aa}})):e.proxy}function jc(e,t=!0){return ke(e)?e.displayName||e.name:e.name||t&&e.__name}function Hc(e){return ke(e)&&"__vccOpts"in e}const X=(e,t)=>Pu(e,t,fa);function V(e,t,n){try{La(-1);const a=arguments.length;return a===2?Fe(t)&&!Se(t)?da(t)?R(e,null,[t]):R(e,t):R(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&da(n)&&(n=[n]),R(e,t,n))}finally{La(1)}}const Gc="3.5.33";/**
* @vue/runtime-dom v3.5.33
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Bs;const Qr=typeof window<"u"&&window.trustedTypes;if(Qr)try{Bs=Qr.createPolicy("vue",{createHTML:e=>e})}catch{}const rl=Bs?e=>Bs.createHTML(e):e=>e,qc="http://www.w3.org/2000/svg",zc="http://www.w3.org/1998/Math/MathML",Gt=typeof document<"u"?document:null,ei=Gt&&Gt.createElement("template"),Kc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const s=t==="svg"?Gt.createElementNS(qc,e):t==="mathml"?Gt.createElementNS(zc,e):n?Gt.createElement(e,{is:n}):Gt.createElement(e);return e==="select"&&a&&a.multiple!=null&&s.setAttribute("multiple",a.multiple),s},createText:e=>Gt.createTextNode(e),createComment:e=>Gt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Gt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,s,r){const o=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{ei.innerHTML=rl(a==="svg"?`<svg>${e}</svg>`:a==="mathml"?`<math>${e}</math>`:e);const i=ei.content;if(a==="svg"||a==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Wc=Symbol("_vtc");function Jc(e,t,n){const a=e[Wc];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const ti=Symbol("_vod"),Yc=Symbol("_vsh"),Xc=Symbol(""),Zc=/(?:^|;)\s*display\s*:/;function Qc(e,t,n){const a=e.style,s=Ge(n);let r=!1;if(n&&!s){if(t)if(Ge(t))for(const o of t.split(";")){const i=o.slice(0,o.indexOf(":")).trim();n[i]==null&&Xn(a,i,"")}else for(const o in t)n[o]==null&&Xn(a,o,"");for(const o in n){o==="display"&&(r=!0);const i=n[o];i!=null?td(e,o,!Ge(t)&&t?t[o]:void 0,i)||Xn(a,o,i):Xn(a,o,"")}}else if(s){if(t!==n){const o=a[Xc];o&&(n+=";"+o),a.cssText=n,r=Zc.test(n)}}else t&&e.removeAttribute("style");ti in e&&(e[ti]=r?a.display:"",e[Yc]&&(a.display="none"))}const ni=/\s*!important$/;function Xn(e,t,n){if(Se(n))n.forEach(a=>Xn(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=ed(e,t);ni.test(n)?e.setProperty(un(a),n.replace(ni,""),"important"):e[a]=n}}const ai=["Webkit","Moz","ms"],ms={};function ed(e,t){const n=ms[t];if(n)return n;let a=vt(t);if(a!=="filter"&&a in e)return ms[t]=a;a=Ha(a);for(let s=0;s<ai.length;s++){const r=ai[s]+a;if(r in e)return ms[t]=r}return t}function td(e,t,n,a){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Ge(a)&&n===a}const si="http://www.w3.org/1999/xlink";function ri(e,t,n,a,s,r=nu(t)){a&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(si,t.slice(6,t.length)):e.setAttributeNS(si,t,n):n==null||r&&!eo(n)?e.removeAttribute(t):e.setAttribute(t,r?"":wt(n)?String(n):n)}function ii(e,t,n,a,s){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?rl(n):n);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const i=r==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(i!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let o=!1;if(n===""||n==null){const i=typeof e[t];i==="boolean"?n=eo(n):n==null&&i==="string"?(n="",o=!0):i==="number"&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(s||t)}function nd(e,t,n,a){e.addEventListener(t,n,a)}function ad(e,t,n,a){e.removeEventListener(t,n,a)}const oi=Symbol("_vei");function sd(e,t,n,a,s=null){const r=e[oi]||(e[oi]={}),o=r[t];if(a&&o)o.value=a;else{const[i,l]=rd(t);if(a){const u=r[t]=ld(a,s);nd(e,i,u,l)}else o&&(ad(e,i,o,l),r[t]=void 0)}}const li=/(?:Once|Passive|Capture)$/;function rd(e){let t;if(li.test(e)){t={};let a;for(;a=e.match(li);)e=e.slice(0,e.length-a[0].length),t[a[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):un(e.slice(2)),t]}let ys=0;const id=Promise.resolve(),od=()=>ys||(id.then(()=>ys=0),ys=Date.now());function ld(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;Vt(ud(a,n.value),t,5,[a])};return n.value=e,n.attached=od(),n}function ud(e,t){if(Se(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(a=>s=>!s._stopped&&a&&a(s))}else return t}const ui=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,cd=(e,t,n,a,s,r)=>{const o=s==="svg";t==="class"?Jc(e,a,o):t==="style"?Qc(e,n,a):Ua(t)?Va(t)||sd(e,t,n,a,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):dd(e,t,a,o))?(ii(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ri(e,t,a,o,r,t!=="value")):e._isVueCE&&(fd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ge(a)))?ii(e,vt(t),a,r,t):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),ri(e,t,a,o))};function dd(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&ke(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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ui(t)&&Ge(n)?!1:t in e}function fd(e,t){const n=e._def.props;if(!n)return!1;const a=vt(t);return Array.isArray(n)?n.some(s=>vt(s)===a):Object.keys(n).some(s=>vt(s)===a)}const pd=["ctrl","shift","alt","meta"],vd={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)=>pd.some(n=>e[`${n}Key`]&&!t.includes(n))},es=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),a=t.join(".");return n[a]||(n[a]=((s,...r)=>{for(let o=0;o<t.length;o++){const i=vd[t[o]];if(i&&i(s,t))return}return e(s,...r)}))},gd={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},hd=(e,t)=>{const n=e._withKeys||(e._withKeys={}),a=t.join(".");return n[a]||(n[a]=(s=>{if(!("key"in s))return;const r=un(s.key);if(t.some(o=>o===r||gd[o]===r))return e(s)}))},md=at({patchProp:cd},Kc);let ci;function yd(){return ci||(ci=Cc(md))}const _d=((...e)=>{const t=yd().createApp(...e),{mount:n}=t;return t.mount=a=>{const s=wd(a);if(!s)return;const r=t._component;!ke(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,bd(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t});function bd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function wd(e){return Ge(e)?document.querySelector(e):e}/*!
 * pinia v2.3.1
 * (c) 2025 Eduardo San Martin Morote
 * @license MIT
 */let il;const ts=e=>il=e,ol=Symbol();function js(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var ra;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(ra||(ra={}));function Sd(){const e=so(!0),t=e.run(()=>z({}));let n=[],a=[];const s=lr({install(r){ts(s),s._a=r,r.provide(ol,s),r.config.globalProperties.$pinia=s,a.forEach(o=>n.push(o)),a=[]},use(r){return this._a?n.push(r):a.push(r),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const ll=()=>{};function di(e,t,n,a=ll){e.push(t);const s=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),a())};return!n&&ro()&&su(s),s}function An(e,...t){e.slice().forEach(n=>{n(...t)})}const kd=e=>e(),fi=Symbol(),_s=Symbol();function Hs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,a)=>e.set(a,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const a=t[n],s=e[n];js(s)&&js(a)&&e.hasOwnProperty(n)&&!Be(a)&&!Kt(a)?e[n]=Hs(s,a):e[n]=a}return e}const Ad=Symbol();function xd(e){return!js(e)||!e.hasOwnProperty(Ad)}const{assign:an}=Object;function Cd(e){return!!(Be(e)&&e.effect)}function Ed(e,t,n,a){const{state:s,actions:r,getters:o}=t,i=n.state.value[e];let l;function u(){i||(n.state.value[e]=s?s():{});const c=Eu(n.state.value[e]);return an(c,r,Object.keys(o||{}).reduce((d,f)=>(d[f]=lr(X(()=>{ts(n);const m=n._s.get(e);return o[f].call(m,m)})),d),{}))}return l=ul(e,u,t,n,a,!0),l}function ul(e,t,n={},a,s,r){let o;const i=an({actions:{}},n),l={deep:!0};let u,c,d=[],f=[],m;const g=a.state.value[e];!r&&!g&&(a.state.value[e]={});let y;function h(T){let b;u=c=!1,typeof T=="function"?(T(a.state.value[e]),b={type:ra.patchFunction,storeId:e,events:m}):(Hs(a.state.value[e],T),b={type:ra.patchObject,payload:T,storeId:e,events:m});const J=y=Symbol();wn().then(()=>{y===J&&(u=!0)}),c=!0,An(d,b,a.state.value[e])}const $=r?function(){const{state:b}=n,J=b?b():{};this.$patch(re=>{an(re,J)})}:ll;function _(){o.stop(),d=[],f=[],a._s.delete(e)}const S=(T,b="")=>{if(fi in T)return T[_s]=b,T;const J=function(){ts(a);const re=Array.from(arguments),he=[],ye=[];function ne(ie){he.push(ie)}function ce(ie){ye.push(ie)}An(f,{args:re,name:J[_s],store:L,after:ne,onError:ce});let de;try{de=T.apply(this&&this.$id===e?this:L,re)}catch(ie){throw An(ye,ie),ie}return de instanceof Promise?de.then(ie=>(An(he,ie),ie)).catch(ie=>(An(ye,ie),Promise.reject(ie))):(An(he,de),de)};return J[fi]=!0,J[_s]=b,J},C={_p:a,$id:e,$onAction:di.bind(null,f),$patch:h,$reset:$,$subscribe(T,b={}){const J=di(d,T,b.detached,()=>re()),re=o.run(()=>gt(()=>a.state.value[e],he=>{(b.flush==="sync"?c:u)&&T({storeId:e,type:ra.direct,events:m},he)},an({},l,b)));return J},$dispose:_},L=Zt(C);a._s.set(e,L);const E=(a._a&&a._a.runWithContext||kd)(()=>a._e.run(()=>(o=so()).run(()=>t({action:S}))));for(const T in E){const b=E[T];if(Be(b)&&!Cd(b)||Kt(b))r||(g&&xd(b)&&(Be(b)?b.value=g[T]:Hs(b,g[T])),a.state.value[e][T]=b);else if(typeof b=="function"){const J=S(b,T);E[T]=J,i.actions[T]=b}}return an(L,E),an(Ce(L),E),Object.defineProperty(L,"$state",{get:()=>a.state.value[e],set:T=>{h(b=>{an(b,T)})}}),a._p.forEach(T=>{an(L,o.run(()=>T({store:L,app:a._a,pinia:a,options:i})))}),g&&r&&n.hydrate&&n.hydrate(L.$state,g),u=!0,c=!0,L}/*! #__NO_SIDE_EFFECTS__ */function dn(e,t,n){let a,s;const r=typeof t=="function";typeof e=="string"?(a=e,s=r?n:t):(s=e,a=e.id);function o(i,l){const u=Nu();return i=i||(u?_t(ol,null):null),i&&ts(i),i=il,i._s.has(a)||(r?ul(a,t,s,i):Ed(a,s,i)),i._s.get(a)}return o.$id=a,o}const Rd="modulepreload",$d=function(e){return"/"+e},pi={},hr=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){let o=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 i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=o(n.map(u=>{if(u=$d(u),u in pi)return;pi[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":Rd,c||(f.as="script"),f.crossOrigin="",f.href=u,l&&f.setAttribute("nonce",l),document.head.appendChild(f),c)return new Promise((m,g)=>{f.addEventListener("load",m),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return s.then(o=>{for(const i of o||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/*! Capacitor: https://capacitorjs.com/ - MIT License */var Dn;(function(e){e.Unimplemented="UNIMPLEMENTED",e.Unavailable="UNAVAILABLE"})(Dn||(Dn={}));class bs extends Error{constructor(t,n,a){super(t),this.message=t,this.code=n,this.data=a}}const Td=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"},Pd=e=>{const t=e.CapacitorCustomPlatform||null,n=e.Capacitor||{},a=n.Plugins=n.Plugins||{},s=()=>t!==null?t.name:Td(e),r=()=>s()!=="web",o=d=>{const f=u.get(d);return!!(f!=null&&f.platforms.has(s())||i(d))},i=d=>{var f;return(f=n.PluginHeaders)===null||f===void 0?void 0:f.find(m=>m.name===d)},l=d=>e.console.error(d),u=new Map,c=(d,f={})=>{const m=u.get(d);if(m)return console.warn(`Capacitor plugin "${d}" already registered. Cannot register plugins twice.`),m.proxy;const g=s(),y=i(d);let h;const $=async()=>(!h&&g in f?h=typeof f[g]=="function"?h=await f[g]():h=f[g]:t!==null&&!h&&"web"in f&&(h=typeof f.web=="function"?h=await f.web():h=f.web),h),_=(T,b)=>{var J,re;if(y){const he=y==null?void 0:y.methods.find(ye=>b===ye.name);if(he)return he.rtype==="promise"?ye=>n.nativePromise(d,b.toString(),ye):(ye,ne)=>n.nativeCallback(d,b.toString(),ye,ne);if(T)return(J=T[b])===null||J===void 0?void 0:J.bind(T)}else{if(T)return(re=T[b])===null||re===void 0?void 0:re.bind(T);throw new bs(`"${d}" plugin is not implemented on ${g}`,Dn.Unimplemented)}},S=T=>{let b;const J=(...re)=>{const he=$().then(ye=>{const ne=_(ye,T);if(ne){const ce=ne(...re);return b=ce==null?void 0:ce.remove,ce}else throw new bs(`"${d}.${T}()" is not implemented on ${g}`,Dn.Unimplemented)});return T==="addListener"&&(he.remove=async()=>b()),he};return J.toString=()=>`${T.toString()}() { [capacitor code] }`,Object.defineProperty(J,"name",{value:T,writable:!1,configurable:!1}),J},C=S("addListener"),L=S("removeListener"),P=(T,b)=>{const J=C({eventName:T},b),re=async()=>{const ye=await J;L({eventName:T,callbackId:ye},b)},he=new Promise(ye=>J.then(()=>ye({remove:re})));return he.remove=async()=>{console.warn("Using addListener() without 'await' is deprecated."),await re()},he},E=new Proxy({},{get(T,b){switch(b){case"$$typeof":return;case"toJSON":return()=>({});case"addListener":return y?P:C;case"removeListener":return L;default:return S(b)}}});return a[d]=E,u.set(d,{name:d,proxy:E,platforms:new Set([...Object.keys(f),...y?[g]:[]])}),E};return n.convertFileSrc||(n.convertFileSrc=d=>d),n.getPlatform=s,n.handleError=l,n.isNativePlatform=r,n.isPluginAvailable=o,n.registerPlugin=c,n.Exception=bs,n.DEBUG=!!n.DEBUG,n.isLoggingEnabled=!!n.isLoggingEnabled,n},Id=e=>e.Capacitor=Pd(e),Oa=Id(typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),ya=Oa.registerPlugin;class mr{constructor(){this.listeners={},this.retainedEventArguments={},this.windowListeners={}}addListener(t,n){let a=!1;this.listeners[t]||(this.listeners[t]=[],a=!0),this.listeners[t].push(n);const r=this.windowListeners[t];r&&!r.registered&&this.addWindowListener(r),a&&this.sendRetainedArgumentsForEvent(t);const o=async()=>this.removeListener(t,n);return Promise.resolve({remove:o})}async removeAllListeners(){this.listeners={};for(const t in this.windowListeners)this.removeWindowListener(this.windowListeners[t]);this.windowListeners={}}notifyListeners(t,n,a){const s=this.listeners[t];if(!s){if(a){let r=this.retainedEventArguments[t];r||(r=[]),r.push(n),this.retainedEventArguments[t]=r}return}s.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:a=>{this.notifyListeners(n,a)}}}unimplemented(t="not implemented"){return new Oa.Exception(t,Dn.Unimplemented)}unavailable(t="not available"){return new Oa.Exception(t,Dn.Unavailable)}async removeListener(t,n){const a=this.listeners[t];if(!a)return;const s=a.indexOf(n);this.listeners[t].splice(s,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(a=>{this.notifyListeners(t,a)}))}}const vi=e=>encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape),gi=e=>e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent);class Ld extends mr{async getCookies(){const t=document.cookie,n={};return t.split(";").forEach(a=>{if(a.length<=0)return;let[s,r]=a.replace(/=/,"CAP_COOKIE").split("CAP_COOKIE");s=gi(s).trim(),r=gi(r).trim(),n[s]=r}),n}async setCookie(t){try{const n=vi(t.key),a=vi(t.value),s=t.expires?`; expires=${t.expires.replace("expires=","")}`:"",r=(t.path||"/").replace("path=",""),o=t.url!=null&&t.url.length>0?`domain=${t.url}`:"";document.cookie=`${n}=${a||""}${s}; path=${r}; ${o};`}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)}}}ya("CapacitorCookies",{web:()=>new Ld});const Dd=async e=>new Promise((t,n)=>{const a=new FileReader;a.onload=()=>{const s=a.result;t(s.indexOf(",")>=0?s.split(",")[1]:s)},a.onerror=s=>n(s),a.readAsDataURL(e)}),Od=(e={})=>{const t=Object.keys(e);return Object.keys(e).map(s=>s.toLocaleLowerCase()).reduce((s,r,o)=>(s[r]=e[t[o]],s),{})},Fd=(e,t=!0)=>e?Object.entries(e).reduce((a,s)=>{const[r,o]=s;let i,l;return Array.isArray(o)?(l="",o.forEach(u=>{i=t?encodeURIComponent(u):u,l+=`${r}=${i}&`}),l.slice(0,-1)):(i=t?encodeURIComponent(o):o,l=`${r}=${i}`),`${a}&${l}`},"").substr(1):null,Nd=(e,t={})=>{const n=Object.assign({method:e.method||"GET",headers:e.headers},t),s=Od(e.headers)["content-type"]||"";if(typeof e.data=="string")n.body=e.data;else if(s.includes("application/x-www-form-urlencoded")){const r=new URLSearchParams;for(const[o,i]of Object.entries(e.data||{}))r.set(o,i);n.body=r.toString()}else if(s.includes("multipart/form-data")||e.data instanceof FormData){const r=new FormData;if(e.data instanceof FormData)e.data.forEach((i,l)=>{r.append(l,i)});else for(const i of Object.keys(e.data))r.append(i,e.data[i]);n.body=r;const o=new Headers(n.headers);o.delete("content-type"),n.headers=o}else(s.includes("application/json")||typeof e.data=="object")&&(n.body=JSON.stringify(e.data));return n};class Md extends mr{async request(t){const n=Nd(t,t.webFetchExtra),a=Fd(t.params,t.shouldEncodeUrlParams),s=a?`${t.url}?${a}`:t.url,r=await fetch(s,n),o=r.headers.get("content-type")||"";let{responseType:i="text"}=r.ok?t:{};o.includes("application/json")&&(i="json");let l,u;switch(i){case"arraybuffer":case"blob":u=await r.blob(),l=await Dd(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"}))}}ya("CapacitorHttp",{web:()=>new Md});var hi;(function(e){e.Dark="DARK",e.Light="LIGHT",e.Default="DEFAULT"})(hi||(hi={}));var mi;(function(e){e.StatusBar="StatusBar",e.NavigationBar="NavigationBar"})(mi||(mi={}));class Ud extends mr{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")}}ya("SystemBars",{web:()=>new Ud});const Gs=ya("App",{web:()=>hr(()=>import("./web-spor1ipE.js"),[]).then(e=>new e.AppWeb)});/*!
 * vue-router v4.6.4
 * (c) 2025 Eduardo San Martin Morote
 * @license MIT
 */const Cn=typeof document<"u";function cl(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Vd(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&cl(e.default)}const Te=Object.assign;function ws(e,t){const n={};for(const a in t){const s=t[a];n[a]=Pt(s)?s.map(e):e(s)}return n}const ia=()=>{},Pt=Array.isArray;function yi(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}const dl=/#/g,Bd=/&/g,jd=/\//g,Hd=/=/g,Gd=/\?/g,fl=/\+/g,qd=/%5B/g,zd=/%5D/g,pl=/%5E/g,Kd=/%60/g,vl=/%7B/g,Wd=/%7C/g,gl=/%7D/g,Jd=/%20/g;function yr(e){return e==null?"":encodeURI(""+e).replace(Wd,"|").replace(qd,"[").replace(zd,"]")}function Yd(e){return yr(e).replace(vl,"{").replace(gl,"}").replace(pl,"^")}function qs(e){return yr(e).replace(fl,"%2B").replace(Jd,"+").replace(dl,"%23").replace(Bd,"%26").replace(Kd,"`").replace(vl,"{").replace(gl,"}").replace(pl,"^")}function Xd(e){return qs(e).replace(Hd,"%3D")}function Zd(e){return yr(e).replace(dl,"%23").replace(Gd,"%3F")}function Qd(e){return Zd(e).replace(jd,"%2F")}function pa(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const ef=/\/$/,tf=e=>e.replace(ef,"");function Ss(e,t,n="/"){let a,s={},r="",o="";const i=t.indexOf("#");let l=t.indexOf("?");return l=i>=0&&l>i?-1:l,l>=0&&(a=t.slice(0,l),r=t.slice(l,i>0?i:t.length),s=e(r.slice(1))),i>=0&&(a=a||t.slice(0,i),o=t.slice(i,t.length)),a=rf(a??t,n),{fullPath:a+r+o,path:a,query:s,hash:pa(o)}}function nf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function _i(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function af(e,t,n){const a=t.matched.length-1,s=n.matched.length-1;return a>-1&&a===s&&On(t.matched[a],n.matched[s])&&hl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function On(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function hl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!sf(e[n],t[n]))return!1;return!0}function sf(e,t){return Pt(e)?bi(e,t):Pt(t)?bi(t,e):(e==null?void 0:e.valueOf())===(t==null?void 0:t.valueOf())}function bi(e,t){return Pt(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function rf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),a=e.split("/"),s=a[a.length-1];(s===".."||s===".")&&a.push("");let r=n.length-1,o,i;for(o=0;o<a.length;o++)if(i=a[o],i!==".")if(i==="..")r>1&&r--;else break;return n.slice(0,r).join("/")+"/"+a.slice(o).join("/")}const tn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let zs=(function(e){return e.pop="pop",e.push="push",e})({}),ks=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function of(e){if(!e)if(Cn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),tf(e)}const lf=/^[^#]+#/;function uf(e,t){return e.replace(lf,"#")+t}function cf(e,t){const n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{behavior:t.behavior,left:a.left-n.left-(t.left||0),top:a.top-n.top-(t.top||0)}}const ns=()=>({left:window.scrollX,top:window.scrollY});function df(e){let t;if("el"in e){const n=e.el,a=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?a?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=cf(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function wi(e,t){return(history.state?history.state.position-t:-1)+e}const Ks=new Map;function ff(e,t){Ks.set(e,t)}function pf(e){const t=Ks.get(e);return Ks.delete(e),t}function vf(e){return typeof e=="string"||e&&typeof e=="object"}function ml(e){return typeof e=="string"||typeof e=="symbol"}let ze=(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 yl=Symbol("");ze.MATCHER_NOT_FOUND+"",ze.NAVIGATION_GUARD_REDIRECT+"",ze.NAVIGATION_ABORTED+"",ze.NAVIGATION_CANCELLED+"",ze.NAVIGATION_DUPLICATED+"";function Fn(e,t){return Te(new Error,{type:e,[yl]:!0},t)}function Ht(e,t){return e instanceof Error&&yl in e&&(t==null||!!(e.type&t))}const gf=["params","query","hash"];function hf(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of gf)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function mf(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let a=0;a<n.length;++a){const s=n[a].replace(fl," "),r=s.indexOf("="),o=pa(r<0?s:s.slice(0,r)),i=r<0?null:pa(s.slice(r+1));if(o in t){let l=t[o];Pt(l)||(l=t[o]=[l]),l.push(i)}else t[o]=i}return t}function Si(e){let t="";for(let n in e){const a=e[n];if(n=Xd(n),a==null){a!==void 0&&(t+=(t.length?"&":"")+n);continue}(Pt(a)?a.map(s=>s&&qs(s)):[a&&qs(a)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function yf(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=Pt(a)?a.map(s=>s==null?null:""+s):a==null?a:""+a)}return t}const _f=Symbol(""),ki=Symbol(""),as=Symbol(""),_r=Symbol(""),Ws=Symbol("");function Hn(){let e=[];function t(a){return e.push(a),()=>{const s=e.indexOf(a);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function rn(e,t,n,a,s,r=o=>o()){const o=a&&(a.enterCallbacks[s]=a.enterCallbacks[s]||[]);return()=>new Promise((i,l)=>{const u=f=>{f===!1?l(Fn(ze.NAVIGATION_ABORTED,{from:n,to:t})):f instanceof Error?l(f):vf(f)?l(Fn(ze.NAVIGATION_GUARD_REDIRECT,{from:t,to:f})):(o&&a.enterCallbacks[s]===o&&typeof f=="function"&&o.push(f),i())},c=r(()=>e.call(a&&a.instances[s],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(f=>l(f))})}function As(e,t,n,a,s=r=>r()){const r=[];for(const o of e)for(const i in o.components){let l=o.components[i];if(!(t!=="beforeRouteEnter"&&!o.instances[i]))if(cl(l)){const u=(l.__vccOpts||l)[t];u&&r.push(rn(u,n,a,o,i,s))}else{let u=l();r.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${i}" at "${o.path}"`);const d=Vd(c)?c.default:c;o.mods[i]=c,o.components[i]=d;const f=(d.__vccOpts||d)[t];return f&&rn(f,n,a,o,i,s)()}))}}return r}function bf(e,t){const n=[],a=[],s=[],r=Math.max(t.matched.length,e.matched.length);for(let o=0;o<r;o++){const i=t.matched[o];i&&(e.matched.find(u=>On(u,i))?a.push(i):n.push(i));const l=e.matched[o];l&&(t.matched.find(u=>On(u,l))||s.push(l))}return[n,a,s]}/*!
 * vue-router v4.6.4
 * (c) 2025 Eduardo San Martin Morote
 * @license MIT
 */let wf=()=>location.protocol+"//"+location.host;function _l(e,t){const{pathname:n,search:a,hash:s}=t,r=e.indexOf("#");if(r>-1){let o=s.includes(e.slice(r))?e.slice(r).length:1,i=s.slice(o);return i[0]!=="/"&&(i="/"+i),_i(i,"")}return _i(n,e)+a+s}function Sf(e,t,n,a){let s=[],r=[],o=null;const i=({state:f})=>{const m=_l(e,location),g=n.value,y=t.value;let h=0;if(f){if(n.value=m,t.value=f,o&&o===g){o=null;return}h=y?f.position-y.position:0}else a(m);s.forEach($=>{$(n.value,g,{delta:h,type:zs.pop,direction:h?h>0?ks.forward:ks.back:ks.unknown})})};function l(){o=n.value}function u(f){s.push(f);const m=()=>{const g=s.indexOf(f);g>-1&&s.splice(g,1)};return r.push(m),m}function c(){if(document.visibilityState==="hidden"){const{history:f}=window;if(!f.state)return;f.replaceState(Te({},f.state,{scroll:ns()}),"")}}function d(){for(const f of r)f();r=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:u,destroy:d}}function Ai(e,t,n,a=!1,s=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:s?ns():null}}function kf(e){const{history:t,location:n}=window,a={value:_l(e,n)},s={value:t.state};s.value||r(a.value,{back:null,current:a.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:wf()+e+l;try{t[c?"replaceState":"pushState"](u,"",f),s.value=u}catch(m){console.error(m),n[c?"replace":"assign"](f)}}function o(l,u){r(l,Te({},t.state,Ai(s.value.back,l,s.value.forward,!0),u,{position:s.value.position}),!0),a.value=l}function i(l,u){const c=Te({},s.value,t.state,{forward:l,scroll:ns()});r(c.current,c,!0),r(l,Te({},Ai(a.value,l,null),{position:c.position+1},u),!1),a.value=l}return{location:a,state:s,push:i,replace:o}}function Af(e){e=of(e);const t=kf(e),n=Sf(e,t.state,t.location,t.replace);function a(r,o=!0){o||n.pauseListeners(),history.go(r)}const s=Te({location:"",base:e,go:a,createHref:uf.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function xf(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Af(e)}let mn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Xe=(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})(Xe||{});const Cf={type:mn.Static,value:""},Ef=/[a-zA-Z0-9_]/;function Rf(e){if(!e)return[[]];if(e==="/")return[[Cf]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=Xe.Static,a=n;const s=[];let r;function o(){r&&s.push(r),r=[]}let i=0,l,u="",c="";function d(){u&&(n===Xe.Static?r.push({type:mn.Static,value:u}):n===Xe.Param||n===Xe.ParamRegExp||n===Xe.ParamRegExpEnd?(r.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),r.push({type:mn.Param,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;i<e.length;){if(l=e[i++],l==="\\"&&n!==Xe.ParamRegExp){a=n,n=Xe.EscapeNext;continue}switch(n){case Xe.Static:l==="/"?(u&&d(),o()):l===":"?(d(),n=Xe.Param):f();break;case Xe.EscapeNext:f(),n=a;break;case Xe.Param:l==="("?n=Xe.ParamRegExp:Ef.test(l)?f():(d(),n=Xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--);break;case Xe.ParamRegExp:l===")"?c[c.length-1]=="\\"?c=c.slice(0,-1)+l:n=Xe.ParamRegExpEnd:c+=l;break;case Xe.ParamRegExpEnd:d(),n=Xe.Static,l!=="*"&&l!=="?"&&l!=="+"&&i--,c="";break;default:t("Unknown state");break}}return n===Xe.ParamRegExp&&t(`Unfinished custom RegExp for param "${u}"`),d(),o(),s}const xi="[^/]+?",$f={sensitive:!1,strict:!1,start:!0,end:!0};var ct=(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})(ct||{});const Tf=/[.+*?^${}()[\]/\\]/g;function Pf(e,t){const n=Te({},$f,t),a=[];let s=n.start?"^":"";const r=[];for(const u of e){const c=u.length?[]:[ct.Root];n.strict&&!u.length&&(s+="/");for(let d=0;d<u.length;d++){const f=u[d];let m=ct.Segment+(n.sensitive?ct.BonusCaseSensitive:0);if(f.type===mn.Static)d||(s+="/"),s+=f.value.replace(Tf,"\\$&"),m+=ct.Static;else if(f.type===mn.Param){const{value:g,repeatable:y,optional:h,regexp:$}=f;r.push({name:g,repeatable:y,optional:h});const _=$||xi;if(_!==xi){m+=ct.BonusCustomRegExp;try{`${_}`}catch(C){throw new Error(`Invalid custom RegExp for param "${g}" (${_}): `+C.message)}}let S=y?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;d||(S=h&&u.length<2?`(?:/${S})`:"/"+S),h&&(S+="?"),s+=S,m+=ct.Dynamic,h&&(m+=ct.BonusOptional),y&&(m+=ct.BonusRepeatable),_===".*"&&(m+=ct.BonusWildcard)}c.push(m)}a.push(c)}if(n.strict&&n.end){const u=a.length-1;a[u][a[u].length-1]+=ct.BonusStrict}n.strict||(s+="/?"),n.end?s+="$":n.strict&&!s.endsWith("/")&&(s+="(?:/|$)");const o=new RegExp(s,n.sensitive?"":"i");function i(u){const c=u.match(o),d={};if(!c)return null;for(let f=1;f<c.length;f++){const m=c[f]||"",g=r[f-1];d[g.name]=m&&g.repeatable?m.split("/"):m}return d}function l(u){let c="",d=!1;for(const f of e){(!d||!c.endsWith("/"))&&(c+="/"),d=!1;for(const m of f)if(m.type===mn.Static)c+=m.value;else if(m.type===mn.Param){const{value:g,repeatable:y,optional:h}=m,$=g in u?u[g]:"";if(Pt($)&&!y)throw new Error(`Provided param "${g}" is an array but it is not repeatable (* or + modifiers)`);const _=Pt($)?$.join("/"):$;if(!_)if(h)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:o,score:a,keys:r,parse:i,stringify:l}}function If(e,t){let n=0;for(;n<e.length&&n<t.length;){const a=t[n]-e[n];if(a)return a;n++}return e.length<t.length?e.length===1&&e[0]===ct.Static+ct.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===ct.Static+ct.Segment?1:-1:0}function bl(e,t){let n=0;const a=e.score,s=t.score;for(;n<a.length&&n<s.length;){const r=If(a[n],s[n]);if(r)return r;n++}if(Math.abs(s.length-a.length)===1){if(Ci(a))return 1;if(Ci(s))return-1}return s.length-a.length}function Ci(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const Lf={strict:!1,end:!0,sensitive:!1};function Df(e,t,n){const a=Pf(Rf(e.path),n),s=Te(a,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Of(e,t){const n=[],a=new Map;t=yi(Lf,t);function s(d){return a.get(d)}function r(d,f,m){const g=!m,y=Ri(d);y.aliasOf=m&&m.record;const h=yi(t,d),$=[y];if("alias"in d){const C=typeof d.alias=="string"?[d.alias]:d.alias;for(const L of C)$.push(Ri(Te({},y,{components:m?m.record.components:y.components,path:L,aliasOf:m?m.record:y})))}let _,S;for(const C of $){const{path:L}=C;if(f&&L[0]!=="/"){const P=f.record.path,E=P[P.length-1]==="/"?"":"/";C.path=f.record.path+(L&&E+L)}if(_=Df(C,f,h),m?m.alias.push(_):(S=S||_,S!==_&&S.alias.push(_),g&&d.name&&!$i(_)&&o(d.name)),wl(_)&&l(_),y.children){const P=y.children;for(let E=0;E<P.length;E++)r(P[E],_,m&&m.children[E])}m=m||_}return S?()=>{o(S)}:ia}function o(d){if(ml(d)){const f=a.get(d);f&&(a.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&a.delete(d.record.name),d.children.forEach(o),d.alias.forEach(o))}}function i(){return n}function l(d){const f=Mf(d,n);n.splice(f,0,d),d.record.name&&!$i(d)&&a.set(d.record.name,d)}function u(d,f){let m,g={},y,h;if("name"in d&&d.name){if(m=a.get(d.name),!m)throw Fn(ze.MATCHER_NOT_FOUND,{location:d});h=m.record.name,g=Te(Ei(f.params,m.keys.filter(S=>!S.optional).concat(m.parent?m.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),d.params&&Ei(d.params,m.keys.map(S=>S.name))),y=m.stringify(g)}else if(d.path!=null)y=d.path,m=n.find(S=>S.re.test(y)),m&&(g=m.parse(y),h=m.record.name);else{if(m=f.name?a.get(f.name):n.find(S=>S.re.test(f.path)),!m)throw Fn(ze.MATCHER_NOT_FOUND,{location:d,currentLocation:f});h=m.record.name,g=Te({},f.params,d.params),y=m.stringify(g)}const $=[];let _=m;for(;_;)$.unshift(_.record),_=_.parent;return{name:h,path:y,params:g,matched:$,meta:Nf($)}}e.forEach(d=>r(d));function c(){n.length=0,a.clear()}return{addRoute:r,resolve:u,removeRoute:o,clearRoutes:c,getRoutes:i,getRecordMatcher:s}}function Ei(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function Ri(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ff(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 Ff(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const a in e.components)t[a]=typeof n=="object"?n[a]:n;return t}function $i(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Nf(e){return e.reduce((t,n)=>Te(t,n.meta),{})}function Mf(e,t){let n=0,a=t.length;for(;n!==a;){const r=n+a>>1;bl(e,t[r])<0?a=r:n=r+1}const s=Uf(e);return s&&(a=t.lastIndexOf(s,a-1)),a}function Uf(e){let t=e;for(;t=t.parent;)if(wl(t)&&bl(e,t)===0)return t}function wl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ti(e){const t=_t(as),n=_t(_r),a=X(()=>{const l=p(e.to);return t.resolve(l)}),s=X(()=>{const{matched:l}=a.value,{length:u}=l,c=l[u-1],d=n.matched;if(!c||!d.length)return-1;const f=d.findIndex(On.bind(null,c));if(f>-1)return f;const m=Pi(l[u-2]);return u>1&&Pi(c)===m&&d[d.length-1].path!==m?d.findIndex(On.bind(null,l[u-2])):f}),r=X(()=>s.value>-1&&Gf(n.params,a.value.params)),o=X(()=>s.value>-1&&s.value===n.matched.length-1&&hl(n.params,a.value.params));function i(l={}){if(Hf(l)){const u=t[p(e.replace)?"replace":"push"](p(e.to)).catch(ia);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:a,href:X(()=>a.value.href),isActive:r,isExactActive:o,navigate:i}}function Vf(e){return e.length===1?e[0]:e}const Bf=je({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:Ti,setup(e,{slots:t}){const n=Zt(Ti(e)),{options:a}=_t(as),s=X(()=>({[Ii(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Ii(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&Vf(t.default(n));return e.custom?r:V("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},r)}}}),jf=Bf;function Hf(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 Gf(e,t){for(const n in t){const a=t[n],s=e[n];if(typeof a=="string"){if(a!==s)return!1}else if(!Pt(s)||s.length!==a.length||a.some((r,o)=>r.valueOf()!==s[o].valueOf()))return!1}return!0}function Pi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ii=(e,t,n)=>e??t??n,qf=je({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=_t(Ws),s=X(()=>e.route||a.value),r=_t(ki,0),o=X(()=>{let u=p(r);const{matched:c}=s.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),i=X(()=>s.value.matched[o.value]);ta(ki,X(()=>o.value+1)),ta(_f,i),ta(Ws,s);const l=z();return gt(()=>[l.value,i.value,e.name],([u,c,d],[f,m,g])=>{c&&(c.instances[d]=u,m&&m!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=m.leaveGuards),c.updateGuards.size||(c.updateGuards=m.updateGuards))),u&&c&&(!m||!On(c,m)||!f)&&(c.enterCallbacks[d]||[]).forEach(y=>y(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,d=i.value,f=d&&d.components[c];if(!f)return Li(n.default,{Component:f,route:u});const m=d.props[c],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,h=V(f,Te({},g,t,{onVnodeUnmounted:$=>{$.component.isUnmounted&&(d.instances[c]=null)},ref:l}));return Li(n.default,{Component:h,route:u})||h}}});function Li(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Sl=qf;function zf(e){const t=Of(e.routes,e),n=e.parseQuery||mf,a=e.stringifyQuery||Si,s=e.history,r=Hn(),o=Hn(),i=Hn(),l=Au(tn);let u=tn;Cn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=ws.bind(null,U=>""+U),d=ws.bind(null,Qd),f=ws.bind(null,pa);function m(U,te){let q,N;return ml(U)?(q=t.getRecordMatcher(U),N=te):N=U,t.addRoute(N,q)}function g(U){const te=t.getRecordMatcher(U);te&&t.removeRoute(te)}function y(){return t.getRoutes().map(U=>U.record)}function h(U){return!!t.getRecordMatcher(U)}function $(U,te){if(te=Te({},te||l.value),typeof U=="string"){const A=Ss(n,U,te.path),j=t.resolve({path:A.path},te),W=s.createHref(A.fullPath);return Te(A,j,{params:f(j.params),hash:pa(A.hash),redirectedFrom:void 0,href:W})}let q;if(U.path!=null)q=Te({},U,{path:Ss(n,U.path,te.path).path});else{const A=Te({},U.params);for(const j in A)A[j]==null&&delete A[j];q=Te({},U,{params:d(A)}),te.params=d(te.params)}const N=t.resolve(q,te),M=U.hash||"";N.params=c(f(N.params));const v=nf(a,Te({},U,{hash:Yd(M),path:N.path})),w=s.createHref(v);return Te({fullPath:v,hash:M,query:a===Si?yf(U.query):U.query||{}},N,{redirectedFrom:void 0,href:w})}function _(U){return typeof U=="string"?Ss(n,U,l.value.path):Te({},U)}function S(U,te){if(u!==U)return Fn(ze.NAVIGATION_CANCELLED,{from:te,to:U})}function C(U){return E(U)}function L(U){return C(Te(_(U),{replace:!0}))}function P(U,te){const q=U.matched[U.matched.length-1];if(q&&q.redirect){const{redirect:N}=q;let M=typeof N=="function"?N(U,te):N;return typeof M=="string"&&(M=M.includes("?")||M.includes("#")?M=_(M):{path:M},M.params={}),Te({query:U.query,hash:U.hash,params:M.path!=null?{}:U.params},M)}}function E(U,te){const q=u=$(U),N=l.value,M=U.state,v=U.force,w=U.replace===!0,A=P(q,N);if(A)return E(Te(_(A),{state:typeof A=="object"?Te({},M,A.state):M,force:v,replace:w}),te||q);const j=q;j.redirectedFrom=te;let W;return!v&&af(a,N,q)&&(W=Fn(ze.NAVIGATION_DUPLICATED,{to:j,from:N}),pe(N,N,!0,!1)),(W?Promise.resolve(W):J(j,N)).catch(K=>Ht(K)?Ht(K,ze.NAVIGATION_GUARD_REDIRECT)?K:oe(K):H(K,j,N)).then(K=>{if(K){if(Ht(K,ze.NAVIGATION_GUARD_REDIRECT))return E(Te({replace:w},_(K.to),{state:typeof K.to=="object"?Te({},M,K.to.state):M,force:v}),te||j)}else K=he(j,N,!0,w,M);return re(j,N,K),K})}function T(U,te){const q=S(U,te);return q?Promise.reject(q):Promise.resolve()}function b(U){const te=Ee.values().next().value;return te&&typeof te.runWithContext=="function"?te.runWithContext(U):U()}function J(U,te){let q;const[N,M,v]=bf(U,te);q=As(N.reverse(),"beforeRouteLeave",U,te);for(const A of N)A.leaveGuards.forEach(j=>{q.push(rn(j,U,te))});const w=T.bind(null,U,te);return q.push(w),$e(q).then(()=>{q=[];for(const A of r.list())q.push(rn(A,U,te));return q.push(w),$e(q)}).then(()=>{q=As(M,"beforeRouteUpdate",U,te);for(const A of M)A.updateGuards.forEach(j=>{q.push(rn(j,U,te))});return q.push(w),$e(q)}).then(()=>{q=[];for(const A of v)if(A.beforeEnter)if(Pt(A.beforeEnter))for(const j of A.beforeEnter)q.push(rn(j,U,te));else q.push(rn(A.beforeEnter,U,te));return q.push(w),$e(q)}).then(()=>(U.matched.forEach(A=>A.enterCallbacks={}),q=As(v,"beforeRouteEnter",U,te,b),q.push(w),$e(q))).then(()=>{q=[];for(const A of o.list())q.push(rn(A,U,te));return q.push(w),$e(q)}).catch(A=>Ht(A,ze.NAVIGATION_CANCELLED)?A:Promise.reject(A))}function re(U,te,q){i.list().forEach(N=>b(()=>N(U,te,q)))}function he(U,te,q,N,M){const v=S(U,te);if(v)return v;const w=te===tn,A=Cn?history.state:{};q&&(N||w?s.replace(U.fullPath,Te({scroll:w&&A&&A.scroll},M)):s.push(U.fullPath,M)),l.value=U,pe(U,te,q,w),oe()}let ye;function ne(){ye||(ye=s.listen((U,te,q)=>{if(!Re.listening)return;const N=$(U),M=P(N,Re.currentRoute.value);if(M){E(Te(M,{replace:!0,force:!0}),N).catch(ia);return}u=N;const v=l.value;Cn&&ff(wi(v.fullPath,q.delta),ns()),J(N,v).catch(w=>Ht(w,ze.NAVIGATION_ABORTED|ze.NAVIGATION_CANCELLED)?w:Ht(w,ze.NAVIGATION_GUARD_REDIRECT)?(E(Te(_(w.to),{force:!0}),N).then(A=>{Ht(A,ze.NAVIGATION_ABORTED|ze.NAVIGATION_DUPLICATED)&&!q.delta&&q.type===zs.pop&&s.go(-1,!1)}).catch(ia),Promise.reject()):(q.delta&&s.go(-q.delta,!1),H(w,N,v))).then(w=>{w=w||he(N,v,!1),w&&(q.delta&&!Ht(w,ze.NAVIGATION_CANCELLED)?s.go(-q.delta,!1):q.type===zs.pop&&Ht(w,ze.NAVIGATION_ABORTED|ze.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),re(N,v,w)}).catch(ia)}))}let ce=Hn(),de=Hn(),ie;function H(U,te,q){oe(U);const N=de.list();return N.length?N.forEach(M=>M(U,te,q)):console.error(U),Promise.reject(U)}function Z(){return ie&&l.value!==tn?Promise.resolve():new Promise((U,te)=>{ce.add([U,te])})}function oe(U){return ie||(ie=!U,ne(),ce.list().forEach(([te,q])=>U?q(U):te()),ce.reset()),U}function pe(U,te,q,N){const{scrollBehavior:M}=e;if(!Cn||!M)return Promise.resolve();const v=!q&&pf(wi(U.fullPath,0))||(N||!q)&&history.state&&history.state.scroll||null;return wn().then(()=>M(U,te,v)).then(w=>w&&df(w)).catch(w=>H(w,U,te))}const fe=U=>s.go(U);let De;const Ee=new Set,Re={currentRoute:l,listening:!0,addRoute:m,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:h,getRoutes:y,resolve:$,options:e,push:C,replace:L,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:r.add,beforeResolve:o.add,afterEach:i.add,onError:de.add,isReady:Z,install(U){U.component("RouterLink",jf),U.component("RouterView",Sl),U.config.globalProperties.$router=Re,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>p(l)}),Cn&&!De&&l.value===tn&&(De=!0,C(s.location).catch(N=>{}));const te={};for(const N in tn)Object.defineProperty(te,N,{get:()=>l.value[N],enumerable:!0});U.provide(as,Re),U.provide(_r,wo(te)),U.provide(Ws,l);const q=U.unmount;Ee.add(U),U.unmount=function(){Ee.delete(U),Ee.size<1&&(u=tn,ye&&ye(),ye=null,l.value=tn,De=!1,ie=!1),q()}}};function $e(U){return U.reduce((te,q)=>te.then(()=>b(q)),Promise.resolve())}return Re}function en(){return _t(as)}function ss(e){return _t(_r)}var Kf={},Wf=new Set(["primary","secondary","accent","success","warning","danger","error","info"]);function Le(...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 Mn(e,t="primary"){return Wf.has(e)?e:t}function Je(e,t=""){if(!e)return null;const n=e.includes("ph ")||e.startsWith("ph-");n||typeof process<"u"&&Kf&&console.warn(`[gnexus-ui-kit] Icon "${e}" is missing the required "ph-" prefix. Use "ph-${e}" instead.`);const a=n?e:`ph-${e}`;return V("i",{class:Le("ph",a,t),"aria-hidden":"true"})}function rs(e){const t=e.target;return t.type==="checkbox"?t.checked:t.value}var Jf=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","[tabindex]:not([tabindex='-1'])"].join(",");function Yf(e,t){if(e.key!=="Tab"||!t)return;const n=[...t.querySelectorAll(Jf)].filter(r=>!r.hasAttribute("disabled")&&r.offsetParent!==null);if(!n.length){e.preventDefault(),t.focus();return}const a=n[0],s=n[n.length-1];e.shiftKey&&document.activeElement===a?(e.preventDefault(),s.focus()):!e.shiftKey&&document.activeElement===s&&(e.preventDefault(),a.focus())}var kl=je({name:"GnActionCard",props:{kicker:{type:String,default:""},title:{type:String,required:!0},text:{type:String,default:""}},setup(e,{slots:t}){return()=>{var n,a,s;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"},((a=t.title)==null?void 0:a.call(t))||e.title),(e.text||t.default)&&V("p",{class:"action-card-text"},((s=t.default)==null?void 0:s.call(t))||e.text),t.actions&&V("div",{class:"action-card-actions"},t.actions())])])}}}),Qe=je({name:"GnAlert",inheritAttrs:!1,props:{variant:{type:String,default:"primary"},role:{type:String,default:"status"}},setup(e,{attrs:t,slots:n}){return()=>{var a;const s=Mn(e.variant);return V("div",{...t,role:e.role,class:Le("alert",`alert-${s}`,t.class)},(a=n.default)==null?void 0:a.call(n))}}}),Xf=je({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=Mn(e.variant);return V("span",{...t,class:Le("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}):Je(e.icon)||e.initials,e.status&&V("span",{class:"avatar-status","aria-hidden":"true"})])}}}),_e=je({name:"GnBadge",inheritAttrs:!1,props:{variant:{type:String,default:"primary"},outline:{type:Boolean,default:!1}},setup(e,{attrs:t,slots:n}){return()=>{var a;const s=Mn(e.variant);return V("span",{...t,class:Le("badge",e.outline&&s==="primary"?"badge-primary-outline":`badge-${s}`,t.class)},(a=n.default)==null?void 0:a.call(n))}}}),ve=je({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 a;const s=!!(e.icon||e.loading),r=Mn(e.variant);return V("button",{...t,type:e.type,disabled:e.disabled||e.loading,class:Le("btn",`btn-${r}`,{"btn-small":e.size==="sm","btn-large":e.size==="lg","with-icon":s,"loading-state":e.loading},t.class)},[e.loading?Je("ph-bold ph-spinner"):Je(e.icon),(a=n.default)==null?void 0:a.call(n)])}}}),Di=je({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:a}){return()=>{var s,r,o,i;const l=e.clickable?"button":"span",u=e.variant?Mn(e.variant):"",c=(o=(r=(s=a.default)==null?void 0:s.call(a))==null?void 0:r[0])==null?void 0:o.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:Le("chip",u&&`chip-${u}`,{"chip-selected":e.selected,"chip-disabled":e.disabled},t.class)},[Je(e.icon),(i=a.default)==null?void 0:i.call(a),e.removable&&V("button",{class:"chip-remove",type:"button","aria-label":c?`Remove ${c}`:"Remove",onClick:d=>{d.stopPropagation(),n("remove")}},[Je("ph-x")])])}}}),Zf=0,tt=je({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 a=`gn-modal-title-${++Zf}`,s=z(null),r=z(!1),o=z(!1);let i=null,l=null;const u=()=>{t("update:open",!1),t("close")},c=f=>{f.key==="Escape"?(f.preventDefault(),u()):Yf(f,s.value)},d=()=>{wn(()=>{var f;(f=s.value)==null||f.focus()})};return gt(()=>e.open,f=>{var m;f?(o.value=!0,r.value=!0,wn(()=>{requestAnimationFrame(()=>{o.value=!1})}),i=document.activeElement,document.addEventListener("keydown",c),d()):(o.value=!0,document.removeEventListener("keydown",c),(m=i==null?void 0:i.focus)==null||m.call(i),i=null,l=window.setTimeout(()=>{r.value=!1,o.value=!1},300))},{flush:"post"}),Ja(()=>{document.removeEventListener("keydown",c),window.clearTimeout(l)}),()=>{var f,m,g;return r.value?V(qu,{to:"body"},[V("div",{class:Le("modal",o.value?"a-hide":"a-show"),"aria-hidden":"false"},[V("div",{class:"modal-backdrop",onClick:()=>e.closeOnBackdrop&&u()}),V("div",{ref:s,class:"modal-dialog",role:"dialog","aria-modal":"true","aria-labelledby":a,tabindex:"-1"},[V("header",{class:"modal-header"},[V("h4",{class:"modal-title",id:a},((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},[Je("ph-x")])]),V("div",{class:"modal-panel"},[V("div",{class:"modal-body"},(m=n.default)==null?void 0:m.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}}}),Qf=je({name:"GnConfirmDialog",props:{open:{type:Boolean,default:!1},title:{type:String,default:"Requires confirmation"},message:{type:String,default:""},confirmText:{type:String,default:"YES"},cancelText:{type:String,default:"NO"},confirmVariant:{type:String,default:"warning"}},emits:["update:open","confirm","cancel"],setup(e,{emit:t,slots:n}){const a=()=>t("update:open",!1),s=()=>{t("cancel"),a()},r=()=>{t("confirm"),a()};return()=>V(tt,{open:e.open,title:e.title,"onUpdate:open":o=>t("update:open",o)},{default:()=>{var o;return((o=n.default)==null?void 0:o.call(n))||V("p",{},e.message)},actions:()=>[V(ve,{variant:"primary",onClick:s},()=>e.cancelText),V(ve,{variant:e.confirmVariant,onClick:r},()=>e.confirmText)]})}}),ep=je({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=z(!1);let a=null;const s=async()=>{try{await navigator.clipboard.writeText(e.text)}catch{const o=document.createElement("textarea");o.value=e.text,o.style.position="fixed",o.style.opacity="0",document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o)}n.value=!0,window.clearTimeout(a),a=window.setTimeout(()=>{n.value=!1},e.duration),t("copy",e.text)};return()=>V("button",{class:Le("btn-icon",{"btn-icon-sm":e.size==="sm"}),type:"button","aria-label":e.label,onClick:s},[Je(n.value?e.successIcon:e.icon)])}}),tp=je({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 a=z(!1),s=z(null),r=()=>{a.value=!1,document.removeEventListener("click",o),document.removeEventListener("keydown",i)},o=c=>{s.value&&!s.value.contains(c.target)&&r()},i=c=>{c.key==="Escape"&&(c.preventDefault(),r())},l=()=>{a.value=!a.value,a.value?(setTimeout(()=>document.addEventListener("click",o),0),document.addEventListener("keydown",i)):r()},u=c=>{var d;c.disabled||((d=c.onSelect)==null||d.call(c,c),t("select",c),r())};return Ja(r),()=>{var c,d;return V("div",{ref:s,class:Le("dropdown",{"is-open":a.value})},[((c=n.trigger)==null?void 0:c.call(n,{open:a.value,toggle:l}))||V(ve,{variant:e.variant,icon:e.icon,"aria-expanded":a.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:Le("dropdown-item",f.danger&&"dropdown-item-danger"),type:"button",role:"menuitem",disabled:f.disabled,onClick:()=>u(f)},[Je(f.icon),f.label])))])}}}),np=je({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 a,s;return V("div",{...t,class:Le("empty-state",e.variant&&`empty-state-${e.variant}`,t.class)},[V("div",{class:"empty-state-icon"},[Je(e.icon)]),V("h3",{class:"empty-state-title"},((a=n.title)==null?void 0:a.call(n))||e.title),(e.text||n.default)&&V("p",{class:"empty-state-text"},((s=n.default)==null?void 0:s.call(n))||e.text),n.actions&&V("div",{class:"empty-state-actions"},n.actions())])}}}),bt=je({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 a=V("input",{...t,type:e.type,value:e.modelValue,class:Le(e.bare?"":"input",t.class),onInput:s=>n("update:modelValue",rs(s))});return e.bare?a:V("div",{class:"form-group"},[V("label",{class:Le("label",e.state)},[e.label,Je(e.icon),a]),e.help&&V("div",{class:Le("input-info",e.state==="error"&&"error")},e.help)])}}}),Al=je({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:Le("circle-loader",t.class)},[Je("ph-bold ph-spinner normalize"),e.label]):V("div",{...t,class:Le("loader",t.class),role:"status","aria-label":e.label})}});function ap(){var e;const t=Qa();return((e=t==null?void 0:t.proxy)==null?void 0:e.$router)||null}function sp(){var e;const t=Qa();return((e=t==null?void 0:t.proxy)==null?void 0:e.$route)||null}function rp(e,t,n="prefix"){if(!e)return!1;const a=e.value||e;return typeof t=="string"?n==="exact"?a.path===t:a.path===t||a.path.startsWith(t+"/"):t.path?n==="exact"?a.path===t.path:a.path===t.path||a.path.startsWith(t.path+"/"):t.name?a.name===t.name:!1}var ip=je({name:"GnNavList",inheritAttrs:!1,props:{items:{type:Array,default:()=>[]},activeMatch:{type:String,default:"prefix"}},emits:["select"],setup(e,{attrs:t,emit:n,slots:a}){const s=ap(),r=sp(),o=!!(s&&r),i=u=>{if(u){if(typeof u=="string")return u;if(u.path)return u.path}},l=X(()=>e.items.map(u=>{const c=!!u.to,d=c?o?s.resolve(u.to).href:i(u.to):u.href,f=c&&o?rp(r,u.to,e.activeMatch):!!u.active;return{...u,resolvedHref:d,isActive:f,hasTo:c}}));return()=>V("ul",{...t,class:Le("list list-nav",t.class)},l.value.map(u=>{var c,d;return V("li",{class:Le("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 m;u.hasTo&&o&&(f.preventDefault(),s.push(u.to)),(m=u.onSelect)==null||m.call(u,u,f),n("select",u)}},[V("span",{class:"list-label"},[Je(u.icon),((c=a.label)==null?void 0:c.call(a,{item:u}))||u.label]),(u.meta||a.meta)&&V("span",{class:"list-meta"},((d=a.meta)==null?void 0:d.call(a,{item:u}))||u.meta)])])}))}}),op=0,lp=je({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 a=z(!1),s=`gn-nav-drawer-${++op}`,r=z(null);let o=null;const i=()=>{a.value=!1},l=()=>{a.value=!a.value},u=c=>{c.key==="Escape"&&(c.preventDefault(),i())};return gt(a,c=>{var d;c?(o=document.activeElement,document.body.classList.add("nav-drawer-open"),document.addEventListener("keydown",u),wn(()=>{var f;return(f=r.value)==null?void 0:f.focus()})):(document.body.classList.remove("nav-drawer-open"),document.removeEventListener("keydown",u),(d=o==null?void 0:o.focus)==null||d.call(o),o=null)}),Ja(()=>{document.body.classList.remove("nav-drawer-open"),document.removeEventListener("keydown",u)}),()=>{var c,d,f,m,g,y,h;return[V("header",{class:"nav-topbar"},[V("button",{class:"nav-topbar-toggle",type:"button","aria-controls":s,"aria-expanded":a.value?"true":"false",onClick:l},[Je("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:i}),V("aside",{ref:r,class:["nav-drawer",{"is-open":a.value}],id:s,"aria-label":"Navigation","aria-hidden":a.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"},((m=n.subtitle)==null?void 0:m.call(n))||e.subtitle)]),V("button",{class:"nav-drawer-close",type:"button","aria-label":"Close navigation",onClick:i},[Je("ph-x")])]),V("nav",{class:"nav-drawer-body"},[((g=n.default)==null?void 0:g.call(n,{close:i}))||V(ip,{items:e.items,activeMatch:e.activeMatch,onSelect:$=>{t("select",$),i()}})]),(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)])]),(h=n.content)==null?void 0:h.call(n)]}}}),At=je({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 a,s,r;return V("header",{...t,class:Le("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"},((a=n.kicker)==null?void 0:a.call(n))||e.kicker),V("h1",{class:"page-header-title"},((s=n.title)==null?void 0:s.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())])}}}),up=je({name:"GnRange",inheritAttrs:!1,props:{modelValue:{type:[Number,String],default:0},label:{type:String,default:""},min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1}},emits:["update:modelValue"],setup(e,{attrs:t,emit:n}){return()=>V("div",{class:"range"},[V("label",{class:"label"},[e.label,V("input",{...t,type:"range",value:e.modelValue,min:e.min,max:e.max,step:e.step,onInput:a=>n("update:modelValue",rs(a))})])])}}),is=je({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:a}){const s=()=>e.options.map(r=>{const o=typeof r=="object"?r.value:r,i=typeof r=="object"?r.label:r;return V("option",{value:o},i)});return()=>{var r;return V("div",{class:"form-group"},[V("label",{class:Le("label",e.state)},[e.label,Je(e.icon),V("div",{class:"select-wrap"},[V("select",{...t,value:e.modelValue,class:Le("input select",t.class),onChange:o=>n("update:modelValue",rs(o))},((r=a.default)==null?void 0:r.call(a))||s())])]),e.help&&V("div",{class:Le("input-info",e.state==="error"&&"error")},e.help)])}}}),xl=je({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:a}){return()=>{var s;return V("label",{class:Le("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"},((s=a.default)==null?void 0:s.call(a))||e.label)])}}}),Nn=je({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 a;return V("div",{class:"table-wrapper"},[V("table",{class:Le("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(s=>V("th",{scope:"col"},s.label)))]),V("tbody",{class:"table-body"},e.rows.length?e.rows.map(s=>V("tr",{class:"table-row"},e.columns.map(r=>{var o;const i=`cell-${r.key}`;return V("td",{},((o=n[i])==null?void 0:o.call(n,{row:s,column:r,value:s[r.key]}))||s[r.key])}))):V("tr",{},[V("td",{class:"is-empty",colspan:e.columns.length},((a=n.empty)==null?void 0:a.call(n))||e.emptyText)]))])])}}}),cp=je({name:"GnTextarea",inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:""},icon:{type:String,default:""},state:{type:String,default:""},help:{type:String,default:""}},emits:["update:modelValue"],setup(e,{attrs:t,emit:n}){return()=>V("div",{class:"form-group"},[V("label",{class:Le("label",e.state)},[e.label,Je(e.icon),V("textarea",{...t,value:e.modelValue,class:Le("input",t.class),onInput:a=>n("update:modelValue",rs(a))})]),e.help&&V("div",{class:Le("input-info",e.state==="error"&&"error")},e.help)])}}),Cl=Symbol("gnexus-ui-kit-toast"),Oi={info:"ph-info",success:"ph-check-circle",warning:"ph-warning",danger:"ph-warning-octagon",error:"ph-warning-octagon",primary:"ph-info",secondary:"ph-info"},dp=je({name:"GnToastProvider",props:{lifetime:{type:Number,default:4e3}},setup(e,{slots:t,expose:n}){const a=z(null),s=z(!1),r=z(!1);let o=null,i=null,l=null;const u=z(100),c=()=>{window.clearTimeout(i),window.clearInterval(l),s.value=!0,r.value=!1,i=window.setTimeout(()=>{a.value=null,s.value=!1,u.value=100,window.clearTimeout(o),o=null},300)},d=()=>{window.clearTimeout(i),window.clearTimeout(o),window.clearInterval(l),s.value=!1,r.value=!1,u.value=100,a.value=null},f=y=>{window.clearTimeout(i),window.clearInterval(l),s.value=!1,r.value=!1,u.value=100;const h=Mn(y.variant||y.type||"info","info"),$=y.lifetime!==void 0?y.lifetime:e.lifetime;if(a.value={id:Date.now(),variant:h==="error"?"danger":h,title:y.title||"",text:y.text||y.message||"",icon:y.icon||Oi[h]||Oi.info,lifetime:$},window.clearTimeout(o),$!==0){const S=$/100;u.value=100,l=window.setInterval(()=>{u.value-=100/S,u.value<=0&&window.clearInterval(l)},100),o=window.setTimeout(c,$)}wn(()=>{requestAnimationFrame(()=>{r.value=!0})})},m={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"})};ta(Cl,m),n(m);const g=()=>s.value?"a-hide":r.value?"a-show":"";return()=>{var y;return[(y=t.default)==null?void 0:y.call(t),a.value&&V("div",{class:Le("toast",g(),`toast-${a.value.variant}`),role:"alert"},[V("div",{class:"toast-content"},[V("div",{class:"toast-header"},[Je(a.value.icon),a.value.title]),a.value.text&&V("p",{class:"toast-text"},a.value.text)]),V("button",{class:"btn-icon toast-close",type:"button","aria-label":"Close",onClick:c},[Je("ph-x")]),a.value.lifetime!==0&&V("div",{class:"toast-progress"},[V("div",{class:"toast-progress-bar",style:{transform:`scaleX(${Math.max(0,u.value/100)})`}})])])]}}}),fp=je({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(Xf,{...e.avatar,size:e.compact?"sm":"md"})},a=()=>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)])]),s=()=>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},[Je(r.icon)]);const o=!!r.icon,i=Le("btn","btn-small",{[`btn-${r.variant}`]:r.variant,"btn-secondary":!r.variant,"with-icon":o});return V("button",{class:i,type:"button",onClick:r.onClick},[o&&Je(r.icon),r.label])})):null;return()=>{const r=Le("card","user-card",{"user-card-compact":e.compact}),o=[];e.href?o.push(V("a",{class:"profile-identity",href:e.href,target:"_blank",rel:"noopener noreferrer"},[a()])):o.push(a()),!e.compact&&e.role&&o.push(V("span",{class:"user-card-role"},e.role)),t.default&&!e.compact&&o.push(V("div",{class:"user-card-extra"},t.default()));const i=s();return i&&o.push(i),V("article",{class:r},[V("div",{class:"user-card-body"},o)])}}});function fn(){const e=_t(Cl,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 xs=ya("Preferences",{web:()=>hr(()=>import("./web-BpbS_HjK.js"),[]).then(e=>new e.PreferencesWeb)}),br="shserv_server_url";let wr="";function Ut(){return Oa.isNativePlatform()}function El(){return wr}function Ca(e){wr=String(e||"").replace(/\/+$/,"")}async function pp(){if(!Ut()){Ca("");return}try{const e=await Et.get(br);Ca(e||"")}catch{Ca("")}}async function vp(e){const t=String(e||"").replace(/\/+$/,"");if(Ca(t),!!Ut())try{await Et.set(br,t)}catch{}}function gp(e){const t=El();if(!t)return e;const n=String(e||"").replace(/^\/+/,"");return n?`${t}/${n}`:t}async function hp(){return!Ut()||wr?!0:!!await Et.get(br)}const Et={async get(e){if(Ut())try{const{value:t}=await xs.get({key:e});return t}catch{return null}try{return localStorage.getItem(e)}catch{return null}},async set(e,t){if(Ut()){try{await xs.set({key:e,value:t})}catch{}return}try{localStorage.setItem(e,t)}catch{}},async remove(e){if(Ut()){try{await xs.remove({key:e})}catch{}return}try{localStorage.removeItem(e)}catch{}}},Fa="shserv_access_token",Na="shserv_expires_at";let bn=null,ln=null;async function mp(){try{bn=await Et.get(Fa)||null;const t=await Et.get(Na);ln=t?Number(t):null}catch{bn=null,ln=null}}function os(e,t=null){bn=e||null,t!=null&&t>0?ln=Date.now()+t*1e3:ln=null,bn?(Et.set(Fa,bn),ln&&Et.set(Na,String(ln))):(Et.remove(Fa),Et.remove(Na))}function Rl(){return bn}function yp(){return ln}function En(){bn=null,ln=null,Et.remove(Fa),Et.remove(Na)}const Ma={DEBUG:0,INFO:1,WARN:2,ERROR:3};function $l(){return Ma[void 0]??Ma.INFO}function Sr(){return $l()<=Ma.DEBUG}function Fi(e){return Ma[e]>=$l()}function Ni(e){return e<10?`${e.toFixed(1)}ms`:`${Math.round(e)}ms`}function Tl(e,t=500){if(!e)return"";const n=String(e);return n.length>t?n.slice(0,t)+"…":n}function Pl(e,t){try{const n=JSON.stringify(e);return t?Tl(n,t):n}catch{return"[Circular]"}}const _p=1e4,Cs="[vue:http]";function bp(e){const t=new URLSearchParams;for(const[a,s]of Object.entries(e||{}))s!=null&&t.append(a,String(s));const n=t.toString();return n?`?${n}`:""}function wp(e,t){const n=String(e||"").replace(/\/+$/,""),a=String(t||"").replace(/^\/+/,"");return n?`${n}/${a}`:`/${a}`}function Sp(e,t){return`${e}${bp(t)}`}async function Mi(e,t,n,a={}){const s=Number(a.timeoutMs||_p),r=new AbortController,o=setTimeout(()=>r.abort(),s),i=El(),l=wp(i,Sp(t,a.query)),u={Accept:"application/json",...a.headers||{}},c=Rl();c&&(u.Authorization=`Bearer ${c}`);const d={method:e,headers:u,signal:r.signal,credentials:"include"};a.signal&&a.signal.addEventListener("abort",()=>r.abort(),{once:!0}),n!=null&&(u["Content-Type"]="application/json",d.body=JSON.stringify(n)),Sr()&&console.debug(Cs,e,l,n?Pl(n,500):"");const f=performance.now();try{const m=await fetch(l,d),g=await m.text();let y=g;if(g)try{y=JSON.parse(g)}catch{y=g}const h=performance.now()-f,$=m.status>=500?"ERROR":m.status>=400?"WARN":"INFO";return Fi($)&&console[$.toLowerCase()](Cs,`${e} ${l} — ${m.status} in ${Ni(h)}`,Tl(g||"",200)),{response:m,data:y,meta:{url:l,method:e,statusCode:m.status,headers:m.headers}}}catch(m){const g=performance.now()-f;throw Fi("ERROR")&&console.error(Cs,`${e} ${l} — FAILED in ${Ni(g)}`,(m==null?void 0:m.message)||m),m}finally{clearTimeout(o)}}function kr(e){const t=gp(`/auth/login?return_to=${encodeURIComponent(e)}`);window.location.href=t}function Il(){window.location.href="/#/login"}function Ar(){return Ut()?"/auth/mobile-bridge":window.location.href}let Es=!1,Js=[];function kp(e){Js.push(e)}function Ui(e){Js.forEach(t=>t(e)),Js=[]}function Gn(e,t,n={}){return{type:e,message:t,...n}}async function xr(e,t,n,a){var s,r;try{const{response:o,data:i,meta:l}=await Mi(e,t,n,a);if(!o.ok){if(o.status===401&&!(a!=null&&a._retryOnce)){if(Es)await new Promise(c=>{kp(d=>c(d))});else{Es=!0;try{const c=await Mi("POST","/auth/refresh",null);if(c.response.ok){const d=(r=(s=c.data)==null?void 0:s.data)==null?void 0:r.access_token;if(d)os(d),Ui(d);else throw new Error("No token in refresh response")}else throw new Error("Refresh failed")}catch{return Ui(null),En(),window.location.hash.includes("/login")||Il(),{ok:!1,error:Gn("http_error","HTTP 401",{statusCode:401,raw:i}),meta:l}}finally{Es=!1}}return Rl()?xr(e,t,n,{...a,_retryOnce:!0}):{ok:!1,error:Gn("http_error","HTTP 401",{statusCode:401,raw:i}),meta:l}}return{ok:!1,error:Gn("http_error",`HTTP ${o.status}`,{statusCode:o.status,raw:i}),meta:l}}return i&&typeof i=="object"&&(i.status===!1||i.status==="error")?{ok:!1,error:Gn("api_error",i.msg||i.message||"API error",{errorAlias:i.error_alias,failedFields:i.failed_fields||[],raw:i}),meta:l}:{ok:!0,data:i,meta:l}}catch(o){const i=(o==null?void 0:o.name)==="AbortError";return{ok:!1,error:Gn(i?"timeout":"network_error",(o==null?void 0:o.message)||"Network error",{details:o}),meta:{url:t,method:e,statusCode:0,headers:null}}}}function Ie(e,t){return xr("GET",e,null,t)}function We(e,t,n){return xr("POST",e,t,n)}const Un=dn("auth",()=>{const e=z(null),t=z([]),n=z(!1),a=z(null),s=X(()=>!!e.value),r=X(()=>new Set(t.value));function o(y){return r.value.has(y)}function i(y){return Array.isArray(y)?y.some(h=>r.value.has(h)):!1}function l(){a.value&&(clearTimeout(a.value),a.value=null);const y=yp();if(!y)return;const h=y-Date.now()-6e4;h>0?a.value=setTimeout(()=>{f().then(()=>{l()})},h):f().then(()=>{l()})}function u(){a.value&&(clearTimeout(a.value),a.value=null)}let c=null;async function d(){return c||(n.value=!0,c=Ie("/auth/me").then(async y=>{var h,$,_;if(y.ok){const S=((h=y.data)==null?void 0:h.data)||{};e.value=S.user||null,t.value=S.permissions||[],l()}else if((($=y.error)==null?void 0:$.statusCode)===401){await f();const S=await Ie("/auth/me");if(S.ok){const C=((_=S.data)==null?void 0:_.data)||{};e.value=C.user||null,t.value=C.permissions||[],l()}else e.value=null,t.value=[],En(),u()}else e.value=null,t.value=[],En(),u()}).catch(()=>{e.value=null,t.value=[],En(),u()}).finally(()=>{n.value=!1}),c)}async function f(){var h,$,_,S;const y=await We("/auth/refresh");if(y.ok){const C=(($=(h=y.data)==null?void 0:h.data)==null?void 0:$.access_token)||null,L=((S=(_=y.data)==null?void 0:_.data)==null?void 0:S.expires_in)||null;os(C,L),l()}else En(),u()}async function m(){try{await We("/auth/logout")}catch{}e.value=null,t.value=[],En(),u(),window.location.href="/#/login"}function g(){if(Ut()){Il();return}kr(Ar())}return{user:e,permissions:t,isLoading:n,isAuthenticated:s,hasPermission:o,hasAnyPermission:i,init:d,refreshToken:f,logout:m,redirectToLogin:g}}),Ap={__name:"AppShell",setup(e){const t=ss(),n=Un(),a={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",modes:"Modes"},s=X(()=>{const f=t==null?void 0:t.name;return f&&a[f]?a[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:"Modes",to:"/modes",icon:"ph-moon",permission:"scripts.view"},{label:"Firmwares",to:"/firmwares",icon:"ph-cloud-arrow-down",permission:"firmware.view"}],o=X(()=>r.filter(f=>f.permission?n.hasPermission(f.permission):!0));function i(f){return f?f.split(/\s+/).slice(0,2).map(m=>{var g;return(g=m[0])==null?void 0:g.toUpperCase()}).join(""):""}function l(f){return f?f.charAt(0).toUpperCase()+f.slice(1):""}function u(){kr(Ar())}function c(){const f=document.querySelector(".nav-drawer-backdrop");f&&f.click()}function d(){c(),n.logout()}return(f,m)=>(k(),G(p(lp),{brand:"SHSERV","logo-src":"/logo-cube-square.svg",title:"Navigation",subtitle:"Smart Home",items:o.value,"active-match":"prefix",current:s.value},{content:x(()=>[Ya(f.$slots,"default")]),footer:x(()=>{var g,y,h,$,_,S;return[p(n).isAuthenticated?(k(),G(p(fp),{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((h=p(n).user)==null?void 0:h.system_role),avatar:{src:(($=p(n).user)==null?void 0:$.avatar_url)||"",initials:i((_=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"])):(k(),G(p(ve),{key:1,variant:"primary",size:"sm",onClick:u},{icon:x(()=>[...m[0]||(m[0]=[I("i",{class:"ph ph-sign-in"},null,-1)])]),default:x(()=>[m[1]||(m[1]=F(" Sign in ",-1))]),_:1}))]}),_:3},8,["items","current"]))}},qe=(e,t)=>{const n=e.__vccOpts||e;for(const[a,s]of t)n[a]=s;return n},xp={key:0},Cp={key:1,class:"error-meta"},Ep={class:"error-actions"},Rp={__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=X(()=>{var s;return t.message||((s=t.error)==null?void 0:s.message)||""}),a=X(()=>{if(!t.error)return"";try{return JSON.stringify(t.error,null,2)}catch{return String(t.error)}});return(s,r)=>(k(),G(p(Qe),{variant:"danger",role:"alert"},{default:x(()=>[I("strong",null,O(e.title),1),n.value?(k(),B("p",xp,O(n.value),1)):Q("",!0),e.error?(k(),B("div",Cp,[e.error.type?(k(),G(p(_e),{key:0,variant:"secondary"},{default:x(()=>[F(O(e.error.type),1)]),_:1})):Q("",!0),e.error.statusCode?(k(),G(p(_e),{key:1,variant:"secondary"},{default:x(()=>[F("HTTP "+O(e.error.statusCode),1)]),_:1})):Q("",!0),e.error.errorAlias?(k(),G(p(_e),{key:2,variant:"warning"},{default:x(()=>[F(O(e.error.errorAlias),1)]),_:1})):Q("",!0)])):Q("",!0),I("div",Ep,[e.error?(k(),G(p(ep),{key:0,text:a.value,label:"Copy error details",size:"sm"},null,8,["text"])):Q("",!0),e.retry?(k(),G(p(ve),{key:1,variant:"danger",onClick:e.retry},{default:x(()=>[...r[0]||(r[0]=[F("Retry",-1)])]),_:1},8,["onClick"])):Q("",!0)])]),_:1}))}},ot=qe(Rp,[["__scopeId","data-v-f1e6bcb8"]]),$p={key:0,class:"error-boundary",role:"alert"},Tp={__name:"AppErrorBoundary",setup(e){const t=z(!1),n=z("");Oo((s,r,o)=>{const i=(s==null?void 0:s.message)||String(s);return console.error("[AppErrorBoundary] Caught Vue error:",i,"| info:",o,s),t.value=!0,n.value=i,!1});function a(){t.value=!1,n.value=""}return(s,r)=>t.value?(k(),B("div",$p,[R(ot,{title:"Something went wrong",message:n.value,retry:a},null,8,["message"])])):Ya(s.$slots,"default",{key:1},void 0,!0)}},Pp=qe(Tp,[["__scopeId","data-v-1e10ea7f"]]),Ip={__name:"App",setup(e){return(t,n)=>(k(),G(Ap,null,{default:x(()=>[R(p(dp),null,{default:x(()=>[R(Pp,null,{default:x(()=>[R(p(Sl))]),_:1})]),_:1})]),_:1}))}},Lt={list(e){return Ie("/api/v1/areas/list",e)},innerList(e,t){return Ie(`/api/v1/areas/id/${encodeURIComponent(String(e))}/list`,t)},newArea(e){return We("/api/v1/areas/new-area",e)},remove(e){return Ie(`/api/v1/areas/id/${encodeURIComponent(String(e))}/remove`)},devices(e,t){return Ie(`/api/v1/areas/id/${encodeURIComponent(String(e))}/devices`,t)},scripts(e,t){return Ie(`/api/v1/areas/id/${encodeURIComponent(String(e))}/scripts`,t)},updateDisplayName(e){return We("/api/v1/areas/update-display-name",e)},updateAlias(e){return We("/api/v1/areas/update-alias",e)},placeInArea(e){return We("/api/v1/areas/place-in-area",e)},unassign(e){return Ie(`/api/v1/areas/id/${encodeURIComponent(String(e))}/unassign-from-area`)}};function pt(e={}){const t=z(null),n=z(!1),a=z(null);async function s(i){var u,c;(u=t.value)==null||u.abort();const l=new AbortController;t.value=l,n.value=!0,a.value=null;try{const d=await i(l.signal);return t.value=null,n.value=!1,d.ok||e.ignoreTimeout!==!1&&((c=d.error)==null?void 0:c.type)==="timeout"||(a.value=d.error),d}catch(d){return t.value=null,n.value=!1,a.value={type:"network_error",message:(d==null?void 0:d.message)||"Network error"},{ok:!1,error:a.value}}}function r(){var i;(i=t.value)==null||i.abort(),t.value=null}function o(){a.value=null,r()}return{abortController:t,isLoading:n,error:a,execute:s,abort:r,clear:o}}const Ll="sh:areas:expandedNodes";function Lp(){try{const e=localStorage.getItem(Ll);if(e){const t=JSON.parse(e);if(Array.isArray(t))return new Set(t)}}catch{}return new Set}function Dp(e){try{localStorage.setItem(Ll,JSON.stringify([...e]))}catch{}}function Op(e){const t={},n=[];for(const a of e)t[a.id]={...a,children:[]};for(const a of e){const s=t[a.id],r=a.parent_id&&a.parent_id==a.id,o=a.parent_id&&t[a.parent_id];!r&&o?t[a.parent_id].children.push(s):n.push(s)}return n.length===0&&e.length>0?Object.values(t):n}const xt=dn("areas",()=>{const e=z([]),t=z(null),n=z([]),a=z([]),s=pt(),r=pt(),o=X(()=>Object.fromEntries(e.value.map(P=>[String(P.id),P]))),i=X(()=>Op(e.value)),l=z(Lp());gt(l,P=>{Dp(P)},{deep:!0});function u(P){const E=new Set(l.value);E.has(P)?E.delete(P):E.add(P),l.value=E}function c(P){return l.value.has(P)}async function d(){return s.execute(async P=>{var T,b;const E=await Lt.list({signal:P});return E.ok&&(e.value=((b=(T=E.data)==null?void 0:T.data)==null?void 0:b.areas)||[]),E})}async function f(P){var T,b,J,re,he,ye;r.abort();const E=new AbortController;r.abortController.value=E,r.isLoading.value=!0,r.error.value=null,t.value=o.value[String(P)]||null,n.value=[],a.value=[];try{const[ne,ce]=await Promise.all([Lt.devices(P,{signal:E.signal}),Lt.scripts(P,{signal:E.signal})]);return r.abortController.value=null,r.isLoading.value=!1,ne.ok?ce.ok?(n.value=((re=(J=ne.data)==null?void 0:J.data)==null?void 0:re.devices)||[],a.value=((ye=(he=ce.data)==null?void 0:he.data)==null?void 0:ye.scripts)||[],{ok:!0}):(((b=ce.error)==null?void 0:b.type)!=="timeout"&&(r.error.value=ce.error),{ok:!1,error:r.error.value}):(((T=ne.error)==null?void 0:T.type)!=="timeout"&&(r.error.value=ne.error),{ok:!1,error:r.error.value})}catch(ne){return r.abortController.value=null,r.isLoading.value=!1,r.error.value={type:"network_error",message:(ne==null?void 0:ne.message)||"Network error"},{ok:!1,error:r.error.value}}}function m(){t.value=null,n.value=[],a.value=[],r.clear()}async function g(P){var T,b;const E=await Lt.devices(P);return E.ok&&(n.value=((b=(T=E.data)==null?void 0:T.data)==null?void 0:b.devices)||[]),E}async function y(P){var T,b;const E=await Lt.scripts(P);return E.ok&&(a.value=((b=(T=E.data)==null?void 0:T.data)==null?void 0:b.scripts)||[]),E}async function h(P){var T,b;const E=await Lt.newArea(P);if(E.ok){const J=(b=(T=E.data)==null?void 0:T.data)==null?void 0:b.area;J&&e.value.push(J)}return E}async function $(P,E){const T=await Lt.updateDisplayName({area_id:P,display_name:E});if(T.ok){const b=e.value.findIndex(J=>J.id===P);b!==-1&&(e.value[b]={...e.value[b],display_name:E})}return T}async function _(P){const E=await Lt.remove(P);return E.ok&&(e.value=e.value.filter(T=>T.id!==P)),E}function S(P){return!(P!=null&&P.parent_id)||P.parent_id<=0}async function C(P,E){const T=e.value.find(re=>re.id===P),b=e.value.filter(S).length;if(T&&S(T)&&b===1)return{ok:!1,error:{message:"Cannot assign the last root area as a child."}};const J=await Lt.placeInArea({target_id:P,place_in_area_id:E});if(J.ok){const re=e.value.findIndex(he=>he.id===P);re!==-1&&e.value.splice(re,1,{...e.value[re],parent_id:Number(E)})}return J}async function L(P){const E=await Lt.unassign(P);if(E.ok){const T=e.value.findIndex(b=>b.id===P);T!==-1&&e.value.splice(T,1,{...e.value[T],parent_id:0})}return E}return{areas:e,isLoading:s.isLoading,error:s.error,currentArea:t,currentAreaDevices:n,currentAreaScripts:a,isLoadingAreaDetail:r.isLoading,errorAreaDetail:r.error,areasById:o,areaTree:i,expandedNodeIds:l,toggleNode:u,isNodeExpanded:c,loadAreas:d,loadAreaDetail:f,clearAreaDetail:m,loadAreaDevices:g,loadAreaScripts:y,createArea:h,renameArea:$,removeArea:_,assignToArea:C,unassignArea:L}}),Dl="sh_fav_areas";function Fp(){try{return JSON.parse(localStorage.getItem(Dl)||"[]").map(String)}catch{return[]}}function Vi(e){localStorage.setItem(Dl,JSON.stringify(e.map(String)))}const Cr=dn("favorites",()=>{const e=z(Fp());function t(r){return e.value.includes(String(r))}function n(r){const o=String(r);e.value.includes(o)||(e.value.push(o),Vi(e.value))}function a(r){e.value=e.value.filter(o=>o!==String(r)),Vi(e.value)}function s(r){return t(r)?(a(r),!1):(n(r),!0)}return{ids:e,has:t,add:n,remove:a,toggle:s}}),Np=["aria-label"],Ol={__name:"AreaFavoriteButton",props:{areaId:{type:[String,Number],required:!0}},setup(e){const t=e,n=Cr(),a=X(()=>n.has(t.areaId));return(s,r)=>(k(),B("button",{class:$t(["btn-icon area-favorite-btn",{"is-active":a.value,"text-muted":!a.value,"text-warning":a.value}]),type:"button","aria-label":a.value?"Remove bookmark":"Bookmark",onClick:r[0]||(r[0]=es(o=>p(n).toggle(e.areaId),["stop"]))},[I("i",{class:$t(["ph",a.value?"ph-fill ph-bookmark-simple":"ph-bookmark-simple"])},null,2)],10,Np))}},kt={__name:"AppLoadingState",props:{text:{type:String,default:"Loading"}},setup(e){return(t,n)=>(k(),G(p(Al),{circle:"",label:e.text},null,8,["label"]))}},nt={__name:"AppEmptyState",props:{title:{type:String,default:"Nothing here"},message:{type:String,default:""}},setup(e){return(t,n)=>(k(),G(p(np),{title:e.title,text:e.message,icon:"ph-package"},{actions:x(()=>[Ya(t.$slots,"action")]),_:3},8,["title","text"]))}},Mp={class:"page"},Up={key:3,class:"area-favorites-list"},Vp=["onClick"],Bp={class:"area-favorite-info"},jp={class:"area-favorite-title"},Hp={class:"area-favorite-meta"},Gp={key:0,class:"area-favorite-parent"},qp={class:"area-favorite-actions"},zp={__name:"AreaFavoritesPage",setup(e){const t=xt(),n=Cr(),a=en(),s=X(()=>{const i=new Set(n.ids.map(String));return t.areas.filter(l=>i.has(String(l.id)))});function r(i){if(!i.parent_id)return null;const l=t.areasById[String(i.parent_id)];return(l==null?void 0:l.display_name)||null}function o(i){a.push({name:"area-detail",params:{id:String(i.id)}})}return ht(()=>{t.areas.length===0&&t.loadAreas()}),(i,l)=>{const u=cn("router-link");return k(),B("section",Mp,[R(p(At),{title:"Favorites",kicker:"Areas"},{actions:x(()=>[R(p(_e),{variant:"primary"},{default:x(()=>[F(O(s.value.length)+" favorite areas",1)]),_:1})]),_:1}),p(t).isLoading?(k(),G(kt,{key:0,text:"Loading areas"})):p(t).error?(k(),G(ot,{key:1,title:"Areas loading failed",error:p(t).error,retry:p(t).loadAreas},null,8,["error","retry"])):s.value.length===0?(k(),G(nt,{key:2,title:"No favorite areas",message:"Favorite areas from the current client are preserved through localStorage."})):(k(),B("ul",Up,[(k(!0),B(xe,null,St(s.value,c=>(k(),B("li",{key:c.id,class:"area-favorite-item"},[I("article",{class:"area-favorite-card",onClick:d=>o(c)},[l[2]||(l[2]=I("div",{class:"area-favorite-icon"},[I("i",{class:"ph ph-fill ph-bookmark-simple"})],-1)),I("div",Bp,[I("h2",jp,O(c.display_name),1),I("p",Hp,[R(p(_e),{variant:"secondary"},{default:x(()=>[F(O(c.type),1)]),_:2},1024),I("code",null,O(c.alias),1),r(c)?(k(),B("span",Gp,[l[1]||(l[1]=F(" in ",-1)),R(u,{to:{name:"area-detail",params:{id:String(c.parent_id)}},class:"parent-link",onClick:l[0]||(l[0]=es(()=>{},["stop"]))},{default:x(()=>[F(O(r(c)),1)]),_:2},1032,["to"])])):Q("",!0)])]),I("div",qp,[R(Ol,{"area-id":c.id},null,8,["area-id"])])],8,Vp)]))),128))]))])}}},Kp=qe(zp,[["__scopeId","data-v-f8795944"]]);function Bt(){const e=Un();return{has:t=>e.hasPermission(t),hasAny:t=>e.hasAnyPermission(t),permissions:e.permissions}}const Wp=["disabled","aria-expanded"],Jp={class:"area-tree-info"},Yp={class:"text-muted"},Xp={class:"area-tree-actions"},Zp={key:0,class:"area-tree-children"},Qp={key:1,class:"area-tree-node"},ev={class:"area-tree-card area-tree-cycle text-danger"},tv={__name:"AreaTreeNode",props:{area:{type:Object,required:!0},ancestors:{type:Array,default:()=>[]}},setup(e){const t=e,n=en(),a=xt(),s=X(()=>a.isNodeExpanded(t.area.id)),r=X(()=>{var c;return!((c=t.area.children)!=null&&c.length)}),o=X(()=>t.ancestors.includes(String(t.area.id))),i=X(()=>[...t.ancestors,String(t.area.id)]);function l(){a.toggleNode(t.area.id)}function u(){n.push({name:"area-detail",params:{id:String(t.area.id)}})}return(c,d)=>{var m;const f=cn("AreaTreeNode",!0);return o.value?(k(),B("li",Qp,[I("article",ev," Cycle skipped for area ID "+O(e.area.id),1)])):(k(),B("li",{key:0,class:$t(["area-tree-node",{"is-open":s.value,"is-leaf":r.value}])},[I("article",{class:"area-tree-card",onClick:u},[I("button",{class:$t(["tree-toggle",{"text-primary":!r.value,"text-muted":r.value}]),type:"button",disabled:r.value,"aria-expanded":s.value,onClick:es(l,["stop"])},O(r.value?"·":s.value?"−":"+"),11,Wp),I("div",Jp,[I("h2",null,O(e.area.display_name),1),I("p",Yp,[R(p(_e),{variant:"secondary"},{default:x(()=>[F(O(e.area.type),1)]),_:1}),I("code",null,O(e.area.alias),1)])]),I("div",Xp,[R(Ol,{"area-id":e.area.id},null,8,["area-id"])])]),(m=e.area.children)!=null&&m.length&&s.value?(k(),B("ul",Zp,[(k(!0),B(xe,null,St(e.area.children,g=>(k(),G(f,{key:g.id,area:g,ancestors:i.value},null,8,["area","ancestors"]))),128))])):Q("",!0)],2))}}},nv={class:"page"},av={key:3,class:"area-tree"},sv={class:"form-group"},rv={class:"form-group"},iv={class:"form-group"},ov={key:0,class:"form-group"},lv={__name:"AreaTreePage",setup(e){const t=xt(),n=fn(),a=Bt(),s=z(!1),r=z(!1),o=z(""),i=Zt({type:"",alias:"",display_name:""});function l(){i.type="",i.alias="",i.display_name="",o.value="",s.value=!0}async function u(){var d;r.value=!0,o.value="";const c=await t.createArea({...i});if(r.value=!1,!c.ok){o.value=((d=c.error)==null?void 0:d.message)||"Failed to create area";return}s.value=!1,n.success({title:"Created",text:"Area created successfully"})}return ht(()=>{t.loadAreas()}),(c,d)=>(k(),B("section",nv,[R(p(At),{title:"Tree",kicker:"Areas"},{actions:x(()=>[p(a).has("areas.manage")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-plus",onClick:l},{default:x(()=>[...d[5]||(d[5]=[F("Create area",-1)])]),_:1})):Q("",!0)]),_:1}),p(t).isLoading?(k(),G(kt,{key:0,text:"Loading areas tree"})):p(t).error?(k(),G(ot,{key:1,title:"Areas loading failed",error:p(t).error,retry:p(t).loadAreas},null,8,["error","retry"])):p(t).areaTree.length===0?(k(),G(nt,{key:2,title:"No areas",message:"No areas found. Create one to get started."})):(k(),B("ul",av,[(k(!0),B(xe,null,St(p(t).areaTree,f=>(k(),G(tv,{key:f.id,area:f},null,8,["area"]))),128))])),R(p(tt),{open:s.value,title:"Create area","onUpdate:open":d[4]||(d[4]=f=>s.value=f)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:d[3]||(d[3]=f=>s.value=!1)},{default:x(()=>[...d[6]||(d[6]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-plus",loading:r.value,onClick:u},{default:x(()=>[...d[7]||(d[7]=[F("Create",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("div",sv,[R(p(bt),{modelValue:i.type,"onUpdate:modelValue":d[0]||(d[0]=f=>i.type=f),label:"Type",placeholder:"room"},null,8,["modelValue"])]),I("div",rv,[R(p(bt),{modelValue:i.alias,"onUpdate:modelValue":d[1]||(d[1]=f=>i.alias=f),label:"Alias",placeholder:"kitchen"},null,8,["modelValue"])]),I("div",iv,[R(p(bt),{modelValue:i.display_name,"onUpdate:modelValue":d[2]||(d[2]=f=>i.display_name=f),label:"Display name",placeholder:"Kitchen"},null,8,["modelValue"])]),o.value?(k(),B("div",ov,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(o.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"])]))}},uv=qe(lv,[["__scopeId","data-v-5f02f384"]]),cv={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 dv(e){const t={};for(const[n,a]of Object.entries(e||{}))t[cv[n]||n]=a;return t}function qn(e){return encodeURIComponent(String(e))}function fv(e){var n,a,s;if(!e.ok)return e;const t=((a=(n=e.data)==null?void 0:n.data)==null?void 0:a.devices)||[];return{...e,data:{...e.data,data:{...(s=e.data)==null?void 0:s.data,devices:t.map(dv)}}}}const st={async list(){return fv(await Ie("/api/v1/devices/list"))},status(e,t){return Ie(`/api/v1/devices/id/${qn(e)}/status`,t)},reboot(e){return Ie(`/api/v1/devices/id/${qn(e)}/reboot`)},action(e){return We("/api/v1/devices/action",e)},scanningSetup(e){return Ie("/api/v1/devices/scanning/setup",{timeoutMs:12e4,...e})},scanningAll(e){return Ie("/api/v1/devices/scanning/all",{timeoutMs:12e4,...e})},setupNewDevice(e){return We("/api/v1/devices/setup/new-device",e)},detail(e,t){return Ie(`/api/v1/devices/id/${qn(e)}`,t)},updateName(e,t){return We("/api/v1/devices/update-name",{device_id:e,name:t})},updateDescription(e,t){return We("/api/v1/devices/update-description",{device_id:e,description:t})},updateAlias(e,t){return We("/api/v1/devices/update-alias",{device_id:e,new_alias:t})},remove(e){return Ie(`/api/v1/devices/id/${qn(e)}/remove`)},resetup(e){return We("/api/v1/devices/resetup",{device_id:e})},reset(e){return We("/api/v1/devices/reset",{device_id:e})},unassign(e){return Ie(`/api/v1/devices/id/${qn(e)}/unassign-from-area`)},placeInArea(e){return We("/api/v1/devices/place-in-area",e)}},pv=4;function Ys(e){return String((e==null?void 0:e.id)||"")}function Er(e,t){return{deviceId:Ys(e),status:"idle",message:"",response:null,connectionStatus:(e==null?void 0:e.connection_status)||"unknown",updatedAt:null,...t}}function vv(e,t){var s,r;const a=(((r=(s=t.data)==null?void 0:s.data)==null?void 0:r.device)||{}).device_response||{};return Er(e,{status:"ready",message:a.status||"ok",response:a,connectionStatus:"active",updatedAt:new Date().toISOString()})}function gv(e,t){var s,r,o;const n=((s=t.error)==null?void 0:s.raw)||{},a=((r=n==null?void 0:n.data)==null?void 0:r.connection_status)||(e==null?void 0:e.connection_status)||"unknown";return Er(e,{status:"error",message:((o=t.error)==null?void 0:o.message)||"Device state is unavailable",response:n,connectionStatus:a,updatedAt:new Date().toISOString()})}async function hv(e,t,n){let a=0;const s=Math.max(1,Math.min(t,e.length));async function r(){for(;a<e.length;){const o=e[a];a+=1,await n(o)}}await Promise.all(Array.from({length:s},r))}const ls=dn("devices",()=>{const e=z([]),t=z({}),n=z(0),a=z(new Set),s=z(null),r=z(null),o=z(null),i=z(!1),l=z(null),u=pt(),c=pt(),d=X(()=>e.value.length),f=X(()=>ne=>a.value.has(String(ne)));async function m(){return u.execute(async ne=>{var de,ie;const ce=await st.list({signal:ne});return ce.ok&&(e.value=((ie=(de=ce.data)==null?void 0:de.data)==null?void 0:ie.devices)||[],o.value=new Date().toISOString()),ce})}function g(ne,ce){const de=Ys(ne);de&&(t.value={...t.value,[de]:Er(ne,ce)})}async function y(ne,ce,de){const ie=n.value+1;n.value=ie,i.value=!0,l.value=null,de&&(t.value={});const H=[];for(const Z of ne)Z.connection_status==="lost"?g(Z,{status:"skipped",message:"Connection lost",connectionStatus:"lost"}):(g(Z,{status:"loading",message:"Loading"}),H.push(Z));try{await hv(H,ce.concurrency||pv,async Z=>{const oe=await st.status(Z.id);n.value===ie&&(t.value={...t.value,[Ys(Z)]:oe.ok?vv(Z,oe):gv(Z,oe)})})}catch(Z){n.value===ie&&(l.value={type:"state_loader_error",message:(Z==null?void 0:Z.message)||"Device states loader failed"})}finally{n.value===ie&&(i.value=!1)}}async function h(ne,ce={}){return y(ne,ce,!1)}async function $(ne={}){return y(e.value,ne,!0)}async function _(ne){const ce=String(ne);a.value=new Set(a.value).add(ce);const de=await st.reboot(ne),ie=new Set(a.value);return ie.delete(ce),a.value=ie,de}async function S(ne){return c.execute(async ce=>{var ie,H;const de=await st.detail(ne,{signal:ce});return de.ok&&(s.value=((H=(ie=de.data)==null?void 0:ie.data)==null?void 0:H.device)||null),de})}async function C(ne){var H,Z;const ce=await st.status(ne);if(!ce.ok)return r.value={ok:!1,error:ce.error,channels:[]},ce;const ie=(((Z=(H=ce.data)==null?void 0:H.data)==null?void 0:Z.device)||{}).device_response||{};return r.value={ok:!0,channels:ie.channels||[],raw:ie},ce}async function L(ne,ce){const de=await st.updateName(ne,ce);return de.ok&&s.value&&(s.value={...s.value,name:ce}),de}async function P(ne,ce){const de=await st.updateDescription(ne,ce);return de.ok&&s.value&&(s.value={...s.value,description:ce}),de}async function E(ne,ce){const de=await st.updateAlias(ne,ce);return de.ok&&s.value&&(s.value={...s.value,alias:ce}),de}async function T(ne){return st.remove(ne)}async function b(ne){return st.resetup(ne)}async function J(ne){return st.reset(ne)}async function re(ne){const ce=await st.unassign(ne);return ce.ok&&s.value&&(s.value={...s.value,area_id:null}),ce}async function he(ne,ce){const de=await st.placeInArea({target_id:ne,place_in_area_id:ce});return de.ok&&s.value&&(s.value={...s.value,area_id:ce}),de}function ye(){s.value=null,r.value=null,c.clear()}return{devices:e,isLoading:u.isLoading,error:u.error,isLoadingStates:i,stateError:l,stateByDeviceId:t,stateRunId:n,rebootingIds:a,lastLoadedAt:o,currentDevice:s,currentDeviceStatus:r,isLoadingDetail:c.isLoading,errorDetail:c.error,total:d,isRebooting:f,loadDevices:m,setDeviceState:g,loadDeviceStates:$,loadStatesFor:h,rebootDevice:_,loadDeviceDetail:S,loadDeviceStatus:C,updateDeviceName:L,updateDeviceDescription:P,updateDeviceAlias:E,removeDevice:T,unassignDevice:re,assignToArea:he,resetupDevice:b,resetDevice:J,clearDeviceDetail:ye}}),Ct={actionsList(e){return Ie("/api/v1/scripts/actions/list",e)},actionByAlias(e,t){return Ie(`/api/v1/scripts/actions/alias/${encodeURIComponent(e)}`,t)},regularList(e){return Ie("/api/v1/scripts/regular/list",e)},scopesList(e){return Ie("/api/v1/scripts/scopes/list",e)},runAction(e,t={}){return We("/api/v1/scripts/actions/run",{alias:e,params:t})},setActionState(e,t){return Ie(`/api/v1/scripts/actions/alias/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},setRegularState(e,t){return Ie(`/api/v1/scripts/regular/alias/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},setScopeState(e,t){return Ie(`/api/v1/scripts/scopes/name/${encodeURIComponent(e)}/${t?"enable":"disable"}`)},scopeCode(e,t){return Ie(`/api/v1/scripts/scopes/name/${encodeURIComponent(e)}`,t)},placeInArea(e){return We("/api/v1/scripts/place-in-area",e)},unassign(e){return Ie(`/api/v1/scripts/id/${encodeURIComponent(String(e))}/unassign-from-area`)}},Sn=dn("scripts",()=>{const e=z([]),t=z([]),n=z([]),a=z(new Set),s=z(new Set),r=z(null),o=z(""),i=pt(),l=pt(),u=pt(),c=pt(),d=X(()=>e.value.length),f=X(()=>t.value.length),m=X(()=>n.value.length),g=X(()=>H=>a.value.has(H)),y=X(()=>H=>s.value.has(H)),h=X(()=>H=>e.value.find(Z=>Z.alias===H)||null),$=X(()=>H=>t.value.find(Z=>Z.alias===H)||null),_=X(()=>H=>n.value.find(Z=>Z.name===H)||null),S=X(()=>H=>e.value.filter(Z=>Z.scope===H)),C=X(()=>H=>t.value.filter(Z=>Z.scope===H));async function L(){return i.execute(async H=>{var oe,pe;const Z=await Ct.actionsList({signal:H});return Z.ok&&(e.value=((pe=(oe=Z.data)==null?void 0:oe.data)==null?void 0:pe.scripts)||[]),Z})}async function P(H){var oe,pe;s.value=new Set(s.value).add(H);const Z=await Ct.actionByAlias(H);if(s.value=new Set(Array.from(s.value).filter(fe=>fe!==H)),Z.ok){const fe=(pe=(oe=Z.data)==null?void 0:oe.data)==null?void 0:pe.script;if(fe){const De=e.value.findIndex(Ee=>Ee.alias===H);De!==-1&&(e.value[De]=fe)}}return Z}async function E(H){for(let oe=0;oe<H.length;oe+=5){const pe=H.slice(oe,oe+5);await Promise.all(pe.map(fe=>P(fe)))}}async function T(){return l.execute(async H=>{var oe,pe;const Z=await Ct.regularList({signal:H});return Z.ok&&(t.value=((pe=(oe=Z.data)==null?void 0:oe.data)==null?void 0:pe.scripts)||[]),Z})}async function b(){return u.execute(async H=>{var oe,pe;const Z=await Ct.scopesList({signal:H});return Z.ok&&(n.value=((pe=(oe=Z.data)==null?void 0:oe.data)==null?void 0:pe.scopes)||[]),Z})}async function J(H,Z={}){var fe,De,Ee,Re,$e,U;a.value=new Set(a.value).add(H),r.value=null;const oe=await Ct.runAction(H,Z),pe=new Set(a.value);return pe.delete(H),a.value=pe,oe.ok?(r.value={alias:H,ok:!0,data:(Ee=(De=(fe=oe.data)==null?void 0:fe.data)==null?void 0:De.return)==null?void 0:Ee.result,execTime:(U=($e=(Re=oe.data)==null?void 0:Re.data)==null?void 0:$e.return)==null?void 0:U.exec_time},oe):(r.value={alias:H,ok:!1,error:oe.error},oe)}async function re(H,Z){const oe=await Ct.setActionState(H,Z);if(oe.ok){const pe=e.value.findIndex(fe=>fe.alias===H);pe!==-1&&(e.value[pe]={...e.value[pe],state:Z?"enabled":"disabled"})}return oe}async function he(H,Z){const oe=await Ct.setRegularState(H,Z);if(oe.ok){const pe=t.value.findIndex(fe=>fe.alias===H);pe!==-1&&(t.value[pe]={...t.value[pe],state:Z?"enabled":"disabled"})}return oe}async function ye(H,Z){const oe=await Ct.setScopeState(H,Z);if(oe.ok){const pe=n.value.findIndex(fe=>fe.name===H);pe!==-1&&(n.value[pe]={...n.value[pe],state:Z?"enabled":"disabled"})}return oe}async function ne(H,Z){const oe=await Ct.placeInArea({target_id:H,place_in_area_id:Z});if(oe.ok){const pe=e.value.findIndex(De=>De.id===H);pe!==-1&&e.value.splice(pe,1,{...e.value[pe],area_id:Z});const fe=t.value.findIndex(De=>De.id===H);fe!==-1&&t.value.splice(fe,1,{...t.value[fe],area_id:Z})}return oe}async function ce(H){const Z=await Ct.unassign(H);if(Z.ok){const oe=e.value.findIndex(fe=>fe.id===H);oe!==-1&&e.value.splice(oe,1,{...e.value[oe],area_id:null});const pe=t.value.findIndex(fe=>fe.id===H);pe!==-1&&t.value.splice(pe,1,{...t.value[pe],area_id:null})}return Z}async function de(H){return c.execute(async Z=>{const oe=await Ct.scopeCode(H,{signal:Z});return oe.ok&&(o.value=typeof oe.data=="string"?oe.data:""),oe})}function ie(){o.value="",c.clear()}return{actions:e,regular:t,scopes:n,isLoadingActions:i.isLoading,isLoadingRegular:l.isLoading,isLoadingScopes:u.isLoading,errorActions:i.error,errorRegular:l.error,errorScopes:u.error,runningAliases:a,lastRunResult:r,currentScopeCode:o,isLoadingScopeCode:c.isLoading,errorScopeCode:c.error,totalActions:d,totalRegular:f,totalScopes:m,isRunning:g,isRefreshingIndicator:y,actionByAlias:h,regularByAlias:$,scopeByName:_,actionsByScope:S,regularByScope:C,loadActions:L,loadRegular:T,loadScopes:b,runScript:J,refreshAction:P,refreshIndicators:E,setActionState:re,setRegularState:he,setScopeState:ye,assignToArea:ne,unassignFromArea:ce,loadScopeCode:de,clearScopeCode:ie}});function Rr(){const e=xt(),t=z(""),n=X(()=>e.areas.filter(u=>String(u.id)!==String(t.value)).map(u=>({value:String(u.id),label:`${u.display_name} (${u.type})`}))),a=z(!1),s=z(""),r=z(!1),o=z("");function i(u){s.value=u?String(u):"",t.value=u?String(u):"",o.value="",a.value=!0}async function l(u,c){var f;if(!u||!c)return;r.value=!0,o.value="";const d=await c(u,s.value);return r.value=!1,d.ok?(a.value=!1,d):(o.value=((f=d.error)==null?void 0:f.message)||"Failed to assign area",d)}return{areaOptions:n,showAssignModal:a,selectedAreaId:s,assignLoading:r,assignError:o,openAssign:i,submitAssignCore:l}}const mv={key:1,class:"text-muted",style:{"font-size":"13px"}},yv={__name:"AreaBadgeLink",props:{area:{type:Object,default:null},areaId:{type:[Number,String],default:null}},setup(e){return(t,n)=>{const a=cn("router-link");return e.area?(k(),G(a,{key:0,to:{name:"area-detail",params:{id:e.area.id}},class:"area-link"},{default:x(()=>[R(p(_e),{variant:"info"},{default:x(()=>[F(O(e.area.display_name),1)]),_:1})]),_:1},8,["to"])):e.areaId?(k(),B("span",mv,"Area ID: "+O(e.areaId),1)):Q("",!0)}}},$r=qe(yv,[["__scopeId","data-v-91230b95"]]),_v={class:"devices-panel"},bv={class:"block-title"},wv={key:0,class:"area-assigned"},Sv={class:"area-card-info"},kv={class:"text-muted"},Av={__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,a=t,s=xt(),r=X(()=>{var i;const o=n.areaId!=null?n.areaId:(i=n.item)==null?void 0:i.area_id;return o&&s.areasById[String(o)]||null});return(o,i)=>{const l=cn("router-link");return k(),B("div",_v,[I("div",bv,O(e.title),1),r.value?(k(),B("div",wv,[R(l,{to:{name:"area-detail",params:{id:r.value.id}},class:"area-card"},{default:x(()=>[i[1]||(i[1]=I("div",{class:"area-card-icon text-primary"},[I("i",{class:"ph ph-map-trifold"})],-1)),I("div",Sv,[I("strong",null,O(r.value.display_name),1),I("small",kv,O(r.value.type)+" — "+O(r.value.alias),1)])]),_:1},8,["to"])])):(k(),G(nt,{key:1,title:"Not assigned",message:e.emptyMessage},{action:x(()=>[Ya(o.$slots,"action",{},()=>[R(p(ve),{variant:"primary",icon:"ph-map-pin",onClick:i[0]||(i[0]=u=>a("assign"))},{default:x(()=>[...i[2]||(i[2]=[F("Assign to area",-1)])]),_:1})],!0)]),_:3},8,["message"]))])}}},Tr=qe(Av,[["__scopeId","data-v-92cae82c"]]);function Fl(e){if(!e)return"";const t=Nl(e);if(!t)return e;const a=new Date-t,s=Math.floor(a/1e3),r=Math.floor(s/60),o=Math.floor(r/60),i=Math.floor(o/24),l=Math.floor(i/7),u=Math.floor(i/30);if(s<10)return"just now";if(s<60)return`${s} sec ago`;if(r<60)return`${r} min ago`;if(o<24){const d=r%60;return d>0?`${o} hour${o>1?"s":""} ${d} min ago`:`${o} hour${o>1?"s":""} ago`}if(i<7)return`${i} day${i>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(i/365);return`${c} year${c>1?"s":""} ago`}function Xs(e){if(!e)return"";const t=Nl(e);if(!t)return e;const a=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],s=t.getDate(),r=t.getFullYear(),o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${a} ${s}, ${r} ${o}:${i}`}function Nl(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[,s,r,o,i,l,u]=n;return new Date(Date.UTC(s,parseInt(r)-1,o,i,l,u))}const a=new Date(e);return isNaN(a.getTime())?null:a}const xv={class:"device-channels-state"},Cv={key:3,class:"channels-grid"},Ev={key:0,class:"ph ph-caret-up"},Rv={key:1,class:"ph ph-caret-down"},$v={key:0,class:"ph ph-caret-up"},Tv={key:1,class:"ph ph-caret-down"},Pv={key:0,class:"ph ph-caret-up"},Iv={key:1,class:"ph ph-caret-down"},Lv={key:0,class:"ph ph-caret-up"},Dv={key:1,class:"ph ph-caret-down"},Ov={key:0,class:"ph ph-caret-up"},Fv={key:1,class:"ph ph-caret-down"},Nv={key:0,class:"raw-json text-muted"},Mv={__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=X(()=>t.connectionStatus==="lost"),a=X(()=>{var g;return((g=t.response)==null?void 0:g.channels)||[]}),s=X(()=>{var g;return((g=t.response)==null?void 0:g.sensors)||{}}),r=X(()=>{var g,y;return((y=(g=t.response)==null?void 0:g.hatch)==null?void 0:y.state)||"—"}),o=X(()=>{var g,y;return((y=(g=t.response)==null?void 0:g.hatch)==null?void 0:y.position_pct)??"—"}),i=X(()=>String(r.value).includes("open")?"warning":"primary"),l=X(()=>String(r.value).includes("open")),u=X(()=>{var g;return((g=t.response)==null?void 0:g.status)==="ok"}),c=X(()=>{if(!t.response)return"";try{return JSON.stringify(t.response).slice(0,200)}catch{return""}}),d=X(()=>{var g;return u.value?t.deviceType==="relay"||t.deviceType==="button"?a.value.length>0:t.deviceType==="sensor"?Object.keys(s.value).length>0:t.deviceType==="hatch"?!!((g=t.response)!=null&&g.hatch):!1:!1});function f(g){return g.id??g.channel}function m(g){return{enabled:"success",disabled:"secondary",mute:"primary",waiting:"warning",error:"danger"}[g]||"secondary"}return(g,y)=>(k(),B("div",xv,[e.loading?(k(),G(p(Al),{key:0,circle:"",size:"sm",label:"Loading state"})):n.value?(k(),G(p(_e),{key:1,variant:"danger",size:"sm"},{default:x(()=>[...y[0]||(y[0]=[I("i",{class:"ph ph-wifi-slash"},null,-1),F(" Offline ",-1)])]),_:1})):e.error||!u.value?(k(),G(p(_e),{key:2,variant:"danger",size:"sm"},{default:x(()=>[y[1]||(y[1]=I("i",{class:"ph ph-warning-octagon"},null,-1)),typeof e.error=="string"?(k(),B(xe,{key:0},[F(O(e.error),1)],64)):(k(),B(xe,{key:1},[F("Error")],64))]),_:1})):d.value?(k(),B("div",Cv,[e.deviceType==="relay"?(k(!0),B(xe,{key:0},St(a.value,h=>(k(),G(p(_e),{key:f(h),variant:h.state==="on"||h.state===!0?"success":"secondary",size:"sm"},{default:x(()=>[a.value.length>1?(k(),B(xe,{key:0},[F(O(f(h))+": ",1)],64)):Q("",!0),I("b",null,O(h.state=="off"?"OFF":"ON"),1)]),_:2},1032,["variant"]))),128)):e.deviceType==="button"?(k(!0),B(xe,{key:1},St(a.value,h=>(k(),G(p(_e),{key:f(h),variant:m(h.indicator),size:"sm"},{default:x(()=>[F(O(f(h))+": ",1),I("b",null,O(h.indicator),1)]),_:2},1032,["variant"]))),128)):e.deviceType==="sensor"?(k(),B(xe,{key:2},[s.value.radar?(k(),G(p(_e),{key:0,variant:"primary",size:"sm"},{default:x(()=>[I("i",{class:$t(["ph",s.value.radar.presence?"ph-user-square":"ph-square"])},null,2),s.value.radar.presence?(k(),B(xe,{key:0},[F(O(s.value.radar.activity_score)+" ",1),s.value.radar.activity_score_dynamics==="increasing"?(k(),B("i",Ev)):s.value.radar.activity_score_dynamics==="decreasing"?(k(),B("i",Rv)):Q("",!0)],64)):Q("",!0)]),_:1})):Q("",!0),s.value.temperature?(k(),G(p(_e),{key:1,variant:"primary",size:"sm"},{default:x(()=>[y[2]||(y[2]=I("i",{class:"ph ph-thermometer"},null,-1)),F(" "+O(s.value.temperature.current)+"°C ",1),s.value.temperature.dynamics==="increasing"?(k(),B("i",$v)):s.value.temperature.dynamics==="decreasing"?(k(),B("i",Tv)):Q("",!0)]),_:1})):Q("",!0),s.value.humidity?(k(),G(p(_e),{key:2,variant:"primary",size:"sm"},{default:x(()=>[y[3]||(y[3]=I("i",{class:"ph ph-drop-half-bottom"},null,-1)),F(" "+O(s.value.humidity.current)+"% ",1),s.value.humidity.dynamics==="increasing"?(k(),B("i",Pv)):s.value.humidity.dynamics==="decreasing"?(k(),B("i",Iv)):Q("",!0)]),_:1})):Q("",!0),s.value.pressure?(k(),G(p(_e),{key:3,variant:"primary",size:"sm"},{default:x(()=>[F(O(s.value.pressure.current)+"hpa ",1),s.value.pressure.dynamics==="increasing"?(k(),B("i",Lv)):s.value.pressure.dynamics==="decreasing"?(k(),B("i",Dv)):Q("",!0)]),_:1})):Q("",!0),s.value.light?(k(),G(p(_e),{key:4,variant:"primary",size:"sm"},{default:x(()=>[y[4]||(y[4]=I("i",{class:"ph ph-lightbulb"},null,-1)),F(" "+O(s.value.light.percent)+"% ",1)]),_:1})):Q("",!0),s.value.microphone?(k(),G(p(_e),{key:5,variant:"primary",size:"sm"},{default:x(()=>[y[5]||(y[5]=I("i",{class:"ph ph-ear"},null,-1)),F(" "+O(s.value.microphone.current_noise)+"dBi ",1),s.value.microphone.noise_dynamics==="increasing"?(k(),B("i",Ov)):s.value.microphone.noise_dynamics==="decreasing"?(k(),B("i",Fv)):Q("",!0)]),_:1})):Q("",!0)],64)):e.deviceType==="hatch"?(k(),G(p(_e),{key:3,variant:i.value,size:"sm"},{default:x(()=>[F(O(r.value)+" ",1),l.value?(k(),B(xe,{key:0},[F(" - "+O(o.value)+"%",1)],64)):Q("",!0)]),_:1},8,["variant"])):(k(),B(xe,{key:4},[y[6]||(y[6]=I("span",{class:"unknown-type text-muted"},"Unknown type",-1)),c.value?(k(),B("pre",Nv,O(c.value),1)):Q("",!0)],64))])):(k(),G(p(_e),{key:4,variant:"secondary",size:"sm"},{default:x(()=>[...y[7]||(y[7]=[F("No data",-1)])]),_:1}))]))}},Ml=qe(Mv,[["__scopeId","data-v-08541c71"]]),Uv={class:"device-cell"},Vv=["innerHTML"],Bv={class:"device-info"},jv={class:"device-name-row"},Hv=["title"],Gv={class:"text-muted"},qv=["title"],zv={key:1,class:"text-muted"},Kv={__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=ls(),a=fn(),s=Bt(),r={relay:'<i class="ph ph-toggle-left"></i>',button:'<i class="ph ph-hand-tap"></i>',sensor:'<i class="ph ph-thermometer"></i>'},o=X(()=>{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 i(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)),m=await n.rebootDevice(d);m.ok?a.success({title:"Rebooting",text:`Device ${(f==null?void 0:f.name)||(f==null?void 0:f.alias)||"#"+d} is rebooting`}):a.error({title:"Reboot failed",text:((g=m.error)==null?void 0:g.message)||"Failed to reboot device"})}return(d,f)=>{const m=cn("router-link");return k(),G(p(Nn),{columns:o.value,rows:e.devices,caption:e.caption},Fo({"cell-device":x(({row:g})=>[R(m,{to:{name:"device-detail",params:{id:String(g.id)}},class:"device-link"},{default:x(()=>[I("div",Uv,[I("div",{class:"device-icon text-primary",innerHTML:i(g.device_type)},null,8,Vv),I("div",Bv,[I("div",jv,[I("strong",null,O(g.name||g.alias||`Device #${g.id}`),1),g.status&&g.status!=="active"?(k(),G(p(_e),{key:0,variant:l(g.status),size:"sm"},{default:x(()=>[F(O(g.status),1)]),_:2},1032,["variant"])):Q("",!0),I("span",{class:$t(["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,Hv)]),I("small",Gv,O(g.alias)+" — "+O(g.device_ip||"—"),1)])])]),_:2},1032,["to"])]),"cell-state":x(({row:g})=>[R(Ml,{"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":x(({row:g})=>[g.last_contact?(k(),B("span",{key:0,title:p(Xs)(g.last_contact)},O(p(Fl)(g.last_contact)),9,qv)):(k(),B("span",zv,"—"))]),_:2},[e.showActions&&p(s).has("devices.control")?{name:"cell-actions",fn:x(({row:g})=>[R(p(ve),{variant:"warning",icon:"ph-arrow-clockwise",size:"sm",loading:p(n).isRebooting(g.id),onClick:y=>c(g.id)},{default:x(()=>[...f[0]||(f[0]=[F(" Reboot ",-1)])]),_:1},8,["loading","onClick"])]),key:"0"}:void 0]),1032,["columns","rows","caption"])}}},Ul=qe(Kv,[["__scopeId","data-v-32549911"]]),Wv={class:"scope-name"},Jv={key:1,class:"muted"},Yv={key:1,class:"muted"},Xv={__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=Sn(),a=xt(),s=Bt(),r=X(()=>{const c={};for(const d of a.areas)c[d.id]=d;return c});function o(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 i(c){const d=c.type||t.scriptType;return d==="action"?"actions":d==="scope"?"scopes":d}const l=X(()=>{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 m=f.type||t.scriptType;m==="action"?n.setActionState(c,d):m==="regular"&&n.setRegularState(c,d)}return(c,d)=>{const f=cn("router-link");return k(),G(p(Nn),{columns:l.value,rows:e.scripts,caption:e.caption},Fo({"cell-alias":x(({row:m})=>[R(f,{to:{name:"script-detail",params:{type:i(m),id:m.alias}},class:"script-link"},{default:x(()=>[F(O(m.alias),1)]),_:2},1032,["to"])]),"cell-scope":x(({row:m})=>[m.scope?(k(),G(f,{key:0,to:{name:"script-detail",params:{type:"scopes",id:m.scope}},class:"scope-link"},{default:x(()=>[d[0]||(d[0]=I("span",{class:"scope-label"},"Scope",-1)),I("span",Wv,O(m.scope),1),d[1]||(d[1]=I("i",{class:"ph ph-arrow-right"},null,-1))]),_:2},1032,["to"])):(k(),B("span",Jv,"—"))]),"cell-area":x(({row:m})=>[m.area_id?(k(),G(p(_e),{key:0,variant:"primary"},{default:x(()=>[F(O(o(m)),1)]),_:2},1024)):(k(),B("span",Yv,"—"))]),"cell-state":x(({row:m})=>[R(p(_e),{variant:m.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(m.state),1)]),_:2},1032,["variant"])]),_:2},[e.showActions&&p(s).has("scripts.edit")?{name:"cell-actions",fn:x(({row:m})=>[m.state==="enabled"?(k(),G(p(ve),{key:0,variant:"secondary",icon:"ph-pause",onClick:g=>u(m.alias,!1,m)},{default:x(()=>[...d[2]||(d[2]=[F(" Disable ",-1)])]),_:1},8,["onClick"])):(k(),G(p(ve),{key:1,variant:"primary",icon:"ph-play",onClick:g=>u(m.alias,!0,m)},{default:x(()=>[...d[3]||(d[3]=[F(" Enable ",-1)])]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["columns","rows","caption"])}}},Vl=qe(Xv,[["__scopeId","data-v-1ead75a7"]]),Zv={class:"page-actions-dropdown"},Qv=["aria-expanded","onClick"],Pr={__name:"PageActionsDropdown",props:{items:{type:Array,required:!0}},setup(e){return(t,n)=>(k(),B("div",Zv,[R(p(tp),nl({items:e.items},t.$attrs),{trigger:x(({toggle:a,open:s})=>[I("button",{class:"btn-icon",type:"button","aria-label":"Actions","aria-expanded":s?"true":"false",onClick:a},[...n[0]||(n[0]=[I("i",{class:"ph ph-dots-three-vertical"},null,-1)])],8,Qv)]),_:1},16,["items"])]))}},eg={key:0,class:"script-run-form"},tg={key:6,class:"field-error"},ng={__name:"ScriptRunModal",props:{open:{type:Boolean,default:!1},script:{type:Object,default:null}},emits:["update:open","run"],setup(e,{emit:t}){const n=e,a=t,s=z({}),r=z(new Set);function o(g,y){switch(g){case"text":case"textarea":return"";case"number":return 0;case"range":return y.min??0;case"select":{const h=Object.keys(y.options||{});return h.length?h[0]:""}case"toggle":return!1;default:return""}}function i(){var y;if(r.value=new Set,!((y=n.script)!=null&&y.params_schema)){s.value={};return}const g={};for(const[h,$]of Object.entries(n.script.params_schema))g[h]=$.default!==void 0?$.default:o($.type,$);s.value=g}gt(()=>n.open,g=>{g&&i()},{immediate:!0});function l(g){return g?Object.entries(g).map(([y,h])=>({value:y,label:h})):[]}function u(g,y){const h=s.value[g];return h==null?!0:y.type==="text"||y.type==="textarea"?String(h).trim()==="":!1}function c(g,y){return r.value.has(g)&&y.required&&u(g,y)?"error":null}function d(g,y){return r.value.has(g)&&y.required&&u(g,y)?`${y.label||g} is required`:null}const f=X(()=>{var g;if(!((g=n.script)!=null&&g.params_schema))return!0;for(const[y,h]of Object.entries(n.script.params_schema))if(h.required&&u(y,h))return!1;return!0});function m(){var g;for(const y of Object.keys(((g=n.script)==null?void 0:g.params_schema)||{}))r.value.add(y);f.value&&(a("run",{alias:n.script.alias,params:{...s.value}}),a("update:open",!1))}return(g,y)=>{var h,$;return k(),G(p(tt),{open:e.open,title:`Run: ${((h=e.script)==null?void 0:h.name)??(($=e.script)==null?void 0:$.alias)??""}`,"onUpdate:open":y[1]||(y[1]=_=>g.$emit("update:open",_))},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:y[0]||(y[0]=_=>g.$emit("update:open",!1))},{default:x(()=>[...y[2]||(y[2]=[F(" Cancel ",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-play",disabled:!f.value,onClick:m},{default:x(()=>[...y[3]||(y[3]=[F(" Run ",-1)])]),_:1},8,["disabled"])]),default:x(()=>{var _;return[(_=e.script)!=null&&_.params_schema?(k(),B("div",eg,[(k(!0),B(xe,null,St(e.script.params_schema,(S,C)=>(k(),B("div",{key:C,class:"form-field"},[S.type==="text"?(k(),G(p(bt),{key:0,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,label:S.label||C,placeholder:S.placeholder||"",state:c(C,S)},null,8,["modelValue","onUpdate:modelValue","label","placeholder","state"])):S.type==="number"?(k(),G(p(bt),{key:1,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,modelModifiers:{number:!0},type:"number",label:S.label||C,placeholder:S.placeholder||"",state:c(C,S)},null,8,["modelValue","onUpdate:modelValue","label","placeholder","state"])):S.type==="range"?(k(),G(p(up),{key:2,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,modelModifiers:{number:!0},label:S.label||C,min:S.min??0,max:S.max??100,step:S.step??1,state:c(C,S)},null,8,["modelValue","onUpdate:modelValue","label","min","max","step","state"])):S.type==="select"?(k(),G(p(is),{key:3,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,label:S.label||C,options:l(S.options),state:c(C,S)},null,8,["modelValue","onUpdate:modelValue","label","options","state"])):S.type==="toggle"?(k(),G(p(xl),{key:4,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,label:S.label||C},null,8,["modelValue","onUpdate:modelValue","label"])):S.type==="textarea"?(k(),G(p(cp),{key:5,modelValue:s.value[C],"onUpdate:modelValue":L=>s.value[C]=L,label:S.label||C,placeholder:S.placeholder||"",state:c(C,S)},null,8,["modelValue","onUpdate:modelValue","label","placeholder","state"])):Q("",!0),d(C,S)?(k(),B("p",tg,O(d(C,S)),1)):Q("",!0)]))),128))])):Q("",!0)]}),_:1},8,["open","title"])}}},Bl=qe(ng,[["__scopeId","data-v-c51fae66"]]),ag={class:"area-grid"},sg=["onClick"],rg=["innerHTML"],ig={key:1},og={class:"script-meta"},lg={key:2,class:"indicator-spinner",title:"Loading state..."},ug={key:2},cg={__name:"ActionScriptsGrid",props:{scripts:{type:Array,required:!0},showAreaBadge:{type:Boolean,default:!1}},emits:["run-success"],setup(e,{emit:t}){const n=e,a=t,s=en(),r=Sn(),o=xt(),i=fn(),l=Bt(),u=z(!1),c=z(null),d=z(!1),f=z(null),m=z(""),g=z(""),y=z("warning");function h(E){return!E.area_id||!n.showAreaBadge?null:o.areas.find(T=>T.id===E.area_id)||null}function $(E){return E.danger_level==="dangerous"?"card-dangerous":E.danger_level==="cautious"?"card-cautious":""}function _(E){if(E.danger_level==="cautious"||E.danger_level==="dangerous"){f.value=E,m.value=`Run: ${E.name||E.alias}`,g.value=E.danger_level==="dangerous"?"This action is marked as dangerous. Are you sure you want to proceed?":"This action requires caution. Proceed?",y.value=E.danger_level==="dangerous"?"danger":"warning",d.value=!0;return}const T=E.params_schema;if(T&&Object.keys(T).length>0){c.value=E,u.value=!0;return}L(E.alias,{})}function S(){if(f.value){const E=f.value.params_schema;E&&Object.keys(E).length>0?(c.value=f.value,u.value=!0):L(f.value.alias,{}),f.value=null}}function C(){f.value=null}async function L(E,T){var J,re;const b=await r.runScript(E,T);b!=null&&b.ok?(i.success({title:`Ran ${E}`,text:(J=r.lastRunResult)!=null&&J.execTime?`Exec time: ${r.lastRunResult.execTime}`:void 0}),a("run-success",{alias:E}),await r.refreshAction(E)):i.error({title:`Failed ${E}`,text:((re=b==null?void 0:b.error)==null?void 0:re.message)||"Unknown error"})}function P(E){s.push({name:"script-detail",params:{type:"actions",id:E}})}return gt(()=>n.scripts.length,()=>{const E=n.scripts.filter(T=>!T.indicators&&!r.isRefreshingIndicator(T.alias)).map(T=>T.alias);E.length&&r.refreshIndicators(E)},{immediate:!0}),(E,T)=>(k(),B(xe,null,[I("div",ag,[(k(!0),B(xe,null,St(e.scripts,b=>(k(),B("div",{key:b.alias,class:$t(["action-card-item",$(b)]),onClick:J=>P(b.alias)},[R(p(kl),{title:b.name},{default:x(()=>[b.icon?(k(),B("div",{key:0,innerHTML:b.icon,class:"script-icon"},null,8,rg)):Q("",!0),b.description?(k(),B("p",ig,O(b.description),1)):Q("",!0),I("div",og,[R(p(_e),{variant:b.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(b.state),1)]),_:2},1032,["variant"]),b.scope?(k(),G(p(_e),{key:0,variant:"primary"},{default:x(()=>[F(O(b.scope),1)]),_:2},1024)):Q("",!0),e.showAreaBadge&&h(b)?(k(),G(p(_e),{key:1,variant:"primary"},{default:x(()=>[F(O(h(b).display_name),1)]),_:2},1024)):Q("",!0),(k(!0),B(xe,null,St(b.indicators,(J,re)=>(k(),G(p(_e),{key:re,variant:J.variant},{default:x(()=>[F(O(J.label),1)]),_:2},1032,["variant"]))),128)),p(r).isRefreshingIndicator(b.alias)?(k(),B("span",lg)):Q("",!0)]),b.created_by||b.author?(k(),B("small",ug,O(b.created_by||b.author),1)):Q("",!0)]),actions:x(()=>[p(l).has("scripts.run")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-play",loading:p(r).isRunning(b.alias),disabled:b.state!=="enabled",onClick:es(J=>_(b),["stop"])},{default:x(()=>[...T[3]||(T[3]=[F(" Run ",-1)])]),_:1},8,["loading","disabled","onClick"])):Q("",!0)]),_:2},1032,["title"])],10,sg))),128))]),c.value?(k(),G(Bl,{key:0,open:u.value,script:c.value,"onUpdate:open":T[0]||(T[0]=b=>u.value=b),onRun:T[1]||(T[1]=b=>L(b.alias,b.params))},null,8,["open","script"])):Q("",!0),R(p(Qf),{open:d.value,title:m.value,message:g.value,"confirm-variant":y.value,"onUpdate:open":T[2]||(T[2]=b=>d.value=b),onConfirm:S,onCancel:C},null,8,["open","title","message","confirm-variant"])],64))}},jl=qe(cg,[["__scopeId","data-v-1739e805"]]),dg={class:"page"},fg={key:3},pg={class:"area-meta"},vg={class:"actions-panel"},gg={class:"block-title"},hg={class:"devices-panel"},mg={class:"block-title"},yg={class:"scripts-panel"},_g={class:"block-title"},bg={class:"form-group"},wg={key:0,class:"form-group"},Sg={key:1,class:"form-group"},kg={key:2,class:"form-group"},Ag={key:0,class:"form-group"},xg={key:0,class:"form-group"},Cg={__name:"AreaDetailPage",setup(e){const t=ss(),n=en(),a=xt(),s=ls(),r=Cr();Sn();const o=fn(),i=Bt(),{showAssignModal:l,selectedAreaId:u,assignLoading:c,assignError:d,openAssign:f,submitAssignCore:m}=Rr(),g=X(()=>a.areasById[String(t.params.id)]||null),y=X(()=>g.value?r.has(g.value.id):!1),h=X(()=>{var N;const q=[];return i.has("areas.manage")&&(q.push({label:"Rename",icon:"ph-pencil",onSelect:Z}),((N=g.value)==null?void 0:N.parent_id)>0?q.push({label:"Change parent area",icon:"ph-map-pin",onSelect:De},{label:"Unassign from parent",icon:"ph-x-circle",onSelect:Re}):q.push({label:"Assign to area",icon:"ph-map-pin",onSelect:De})),q.push({label:y.value?"Remove bookmark":"Bookmark",icon:y.value?"ph-fill ph-bookmark-simple":"ph-bookmark-simple",onSelect:()=>{var M;return r.toggle((M=g.value)==null?void 0:M.id)}}),i.has("areas.manage")&&q.push({label:"Remove",icon:"ph-trash",danger:!0,onSelect:pe}),q}),$=X(()=>!g.value||g.value.parent_id<=0?null:a.areasById[String(g.value.parent_id)]||null),_=X(()=>a.currentAreaScripts.filter(q=>q.type==="action")),S=X(()=>a.currentAreaScripts.filter(q=>q.type!=="action")),C=X(()=>{if(!g.value)return!1;const q=!g.value.parent_id||g.value.parent_id<=0,N=a.areas.filter(M=>!M.parent_id||M.parent_id<=0).length;return q&&N===1});function L(q){const N=new Set,M=[q];for(;M.length;){const v=M.shift(),w=a.areas.filter(A=>A.parent_id===v);for(const A of w)N.add(A.id),M.push(A.id)}return N}const P=X(()=>{if(!g.value)return[];const q=new Set([g.value.id,...L(g.value.id)]);return a.areas.filter(N=>!q.has(N.id)).map(N=>({value:String(N.id),label:`${N.display_name} (${N.type})`}))}),E=z(!1),T=z(!1),b=z(""),J=Zt({areaId:null,display_name:""}),re=z(!1),he=z(""),ye=z(!1),ne=z(""),ce=z(!1),de=z(""),ie=z(!1),H=z("");function Z(){g.value&&(J.areaId=g.value.id,J.display_name=g.value.display_name,b.value="",E.value=!0)}async function oe(){var N;T.value=!0,b.value="";const q=await a.renameArea(J.areaId,J.display_name);if(T.value=!1,!q.ok){b.value=((N=q.error)==null?void 0:N.message)||"Failed to rename area";return}E.value=!1,o.success({title:"Renamed",text:"Area renamed successfully"})}function pe(){g.value&&(he.value=`Are you sure you want to remove area "${g.value.display_name}"?`,ne.value="",re.value=!0)}async function fe(){var N;if(!g.value)return;ye.value=!0,ne.value="";const q=await a.removeArea(g.value.id);if(ye.value=!1,!q.ok){ne.value=((N=q.error)==null?void 0:N.message)||"Failed to remove area";return}re.value=!1,o.success({title:"Removed",text:"Area removed successfully"}),n.push({name:"areas-tree"})}function De(){var q;f(((q=g.value)==null?void 0:q.parent_id)>0?g.value.parent_id:"")}async function Ee(){var M;const q=(M=g.value)==null?void 0:M.id,N=await m(q,(v,w)=>a.assignToArea(v,w));N!=null&&N.ok&&o.success({title:"Assigned",text:"Area assigned successfully"})}function Re(){g.value&&(de.value=`Are you sure you want to unassign area "${g.value.display_name}" from its parent?`,H.value="",ce.value=!0)}async function $e(){var N;if(!g.value)return;ie.value=!0,H.value="";const q=await a.unassignArea(g.value.id);if(ie.value=!1,!q.ok){H.value=((N=q.error)==null?void 0:N.message)||"Failed to unassign area";return}ce.value=!1,o.success({title:"Unassigned",text:"Area unassigned from parent successfully"})}async function U(){a.currentAreaDevices.length>0&&await s.loadStatesFor(a.currentAreaDevices)}async function te(){const q=t.params.id;q&&(a.areas.length===0&&await a.loadAreas(),a.areasById[String(q)]&&(await a.loadAreaDetail(q),await U()))}return gt(()=>t.params.id,async(q,N)=>{q&&q!==N&&await te()},{immediate:!1}),ht(()=>{te()}),ha(()=>{a.clearAreaDetail()}),(q,N)=>(k(),B("section",dg,[p(a).isLoading||p(a).isLoadingAreaDetail?(k(),G(kt,{key:0,text:"Loading area"})):p(a).error&&!p(a).areas.length?(k(),G(ot,{key:1,title:"Areas loading failed",error:p(a).error,retry:te},null,8,["error"])):p(a).errorAreaDetail?(k(),G(ot,{key:2,title:"Area loading failed",error:p(a).errorAreaDetail,retry:te},null,8,["error"])):g.value?(k(),B("div",fg,[R(p(At),{title:g.value.display_name,kicker:"Area"},{actions:x(()=>[R(Pr,{items:h.value},null,8,["items"])]),_:1},8,["title"]),I("div",pg,[R(p(_e),{variant:"secondary"},{default:x(()=>[F(O(g.value.type),1)]),_:1}),I("code",null,O(g.value.alias),1),R($r,{area:$.value,areaId:g.value.parent_id},null,8,["area","areaId"])]),I("div",vg,[I("div",gg,"Actions ("+O(_.value.length)+")",1),_.value.length===0?(k(),G(nt,{key:0,title:"No actions",message:"No action scripts assigned to this area."})):(k(),G(jl,{key:1,scripts:_.value,onRunSuccess:U},null,8,["scripts"]))]),I("div",hg,[I("div",mg,"Devices ("+O(p(a).currentAreaDevices.length)+")",1),p(a).currentAreaDevices.length===0?(k(),G(nt,{key:0,title:"No devices",message:"No devices assigned to this area."})):(k(),G(Ul,{key:1,devices:p(a).currentAreaDevices,caption:"Area devices"},null,8,["devices"]))]),R(Tr,{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:De},{action:x(()=>[p(i).has("areas.manage")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-map-pin",onClick:De},{default:x(()=>[F(O(g.value.parent_id>0?"Change parent area":"Assign to area"),1)]),_:1})):Q("",!0)]),_:1},8,["areaId"]),I("div",yg,[I("div",_g,"Regular scripts ("+O(S.value.length)+")",1),S.value.length===0?(k(),G(nt,{key:0,title:"No regular scripts",message:"No regular scripts assigned to this area."})):(k(),G(Vl,{key:1,scripts:S.value,scriptType:"regular",showArea:!1,showActions:!1,showFilename:!1,caption:"Area regular scripts"},null,8,["scripts"]))])])):(k(),G(nt,{key:4,title:"Area not found",message:"The requested area does not exist."})),R(p(tt),{open:E.value,title:"Rename area","onUpdate:open":N[2]||(N[2]=M=>E.value=M)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:N[1]||(N[1]=M=>E.value=!1)},{default:x(()=>[...N[10]||(N[10]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-check",loading:T.value,onClick:oe},{default:x(()=>[...N[11]||(N[11]=[F("Rename",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("div",bg,[R(p(bt),{modelValue:J.display_name,"onUpdate:modelValue":N[0]||(N[0]=M=>J.display_name=M),label:"Display name"},null,8,["modelValue"])]),b.value?(k(),B("div",wg,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(b.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:p(l),title:"Assign to parent area","onUpdate:open":N[5]||(N[5]=M=>l.value=M)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:N[4]||(N[4]=M=>l.value=!1)},{default:x(()=>[...N[13]||(N[13]=[F("Cancel",-1)])]),_:1}),C.value?Q("",!0):(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-check",loading:p(c),onClick:Ee},{default:x(()=>[...N[14]||(N[14]=[F(" Assign ",-1)])]),_:1},8,["loading"]))]),default:x(()=>[C.value?Q("",!0):(k(),G(p(is),{key:0,modelValue:p(u),"onUpdate:modelValue":N[3]||(N[3]=M=>Be(u)?u.value=M:null),label:"Parent area",options:P.value,icon:"ph-map-trifold"},null,8,["modelValue","options"])),C.value?(k(),B("div",Sg,[R(p(Qe),{variant:"warning"},{default:x(()=>[...N[12]||(N[12]=[F(" This is the last root area and cannot be assigned as a child. At least one root area must remain. ",-1)])]),_:1})])):Q("",!0),p(d)?(k(),B("div",kg,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(p(d)),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:ce.value,title:"Unassign from parent","onUpdate:open":N[7]||(N[7]=M=>ce.value=M)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:N[6]||(N[6]=M=>ce.value=!1)},{default:x(()=>[...N[15]||(N[15]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"warning",icon:"ph-x-circle",loading:ie.value,onClick:$e},{default:x(()=>[...N[16]||(N[16]=[F(" Unassign ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(de.value),1),H.value?(k(),B("div",Ag,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(H.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:re.value,title:"Remove area","onUpdate:open":N[9]||(N[9]=M=>re.value=M)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:N[8]||(N[8]=M=>re.value=!1)},{default:x(()=>[...N[17]||(N[17]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"danger",icon:"ph-trash",loading:ye.value,onClick:fe},{default:x(()=>[...N[18]||(N[18]=[F(" Remove ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(he.value),1),ne.value?(k(),B("div",xg,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(ne.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"])]))}},Eg=qe(Cg,[["__scopeId","data-v-757a0469"]]),Rg={class:"page"},$g={key:3,class:"devices-panel"},Tg={class:"devices-summary"},Pg=300*1e3,Ig={__name:"DevicesListPage",setup(e){const t=ls(),n=X(()=>{if(!t.lastLoadedAt)return!1;const s=new Date(t.lastLoadedAt).getTime();return Date.now()-s>Pg});async function a(){(await t.loadDevices()).ok&&await t.loadDeviceStates()}return ht(a),(s,r)=>(k(),B("section",Rg,[R(p(At),{title:"Device Matrix",kicker:"Devices"},{actions:x(()=>[R(p(ve),{loading:p(t).isLoading||p(t).isLoadingStates,icon:"ph-arrow-clockwise",onClick:a},{default:x(()=>[...r[0]||(r[0]=[F(" Refresh ",-1)])]),_:1},8,["loading"])]),_:1}),p(t).isLoading?(k(),G(kt,{key:0,text:"Loading devices"})):p(t).error?(k(),G(ot,{key:1,title:"Devices loading failed",error:p(t).error,retry:a},null,8,["error"])):p(t).devices.length===0?(k(),G(nt,{key:2,title:"No active devices",message:"No active devices found."})):(k(),B("div",$g,[I("div",Tg,[R(p(_e),{variant:"primary"},{default:x(()=>[F("Total: "+O(p(t).total),1)]),_:1}),p(t).isLoadingStates?(k(),G(p(_e),{key:0,variant:"secondary"},{default:x(()=>[...r[1]||(r[1]=[F("States loading",-1)])]),_:1})):(k(),G(p(_e),{key:1,variant:"success"},{default:x(()=>[...r[2]||(r[2]=[F("States settled",-1)])]),_:1})),n.value?(k(),G(p(_e),{key:2,variant:"warning"},{default:x(()=>[...r[3]||(r[3]=[F("Stale data",-1)])]),_:1})):Q("",!0)]),p(t).stateError?(k(),G(ot,{key:0,title:"Device states loading failed",error:p(t).stateError},null,8,["error"])):Q("",!0),R(Ul,{devices:p(t).devices,caption:"Registered devices"},null,8,["devices"])]))]))}},Lg=qe(Ig,[["__scopeId","data-v-635f3900"]]),Dg=dn("scanning",()=>{const e=z("setup"),t=z([]),n=pt(),a=X(()=>t.value.length);async function s(){return n.execute(async i=>{var u,c;const l=e.value==="setup"?await st.scanningSetup({signal:i}):await st.scanningAll({signal:i});return l.ok&&(t.value=((c=(u=l.data)==null?void 0:u.data)==null?void 0:c.devices)||[]),l})}function r(i){e.value=i,t.value=[],n.clear()}async function o(i){return st.setupNewDevice(i)}return{mode:e,devices:t,isLoading:n.isLoading,error:n.error,total:a,scan:s,setMode:r,setupDevice:o}}),Og={class:"page"},Fg={class:"scan-filters"},Ng={key:3,class:"devices-panel"},Mg={class:"devices-summary"},Ug={class:"device-cell"},Vg=["innerHTML"],Bg={class:"device-info"},jg={class:"firmware"},Hg={key:1,class:"muted"},Gg={class:"form-group"},qg={class:"form-group"},zg={class:"form-group"},Kg={key:0,class:"form-group"},Wg={__name:"DevicesScanningPage",setup(e){const t=Dg(),n=fn(),a=Bt(),s=z(!1),r=z(!1),o=z(""),i=Zt({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 m(y){i.device_ip=y.ip_address,i.alias="",i.name="",i.description="",o.value="",s.value=!0}async function g(){var h;r.value=!0,o.value="";const y=await t.setupDevice({...i});if(r.value=!1,!y.ok){o.value=((h=y.error)==null?void 0:h.message)||"Failed to setup device";return}s.value=!1,n.success({title:"Device added",text:`Device ${i.alias||i.name||""} added successfully`})}return(y,h)=>(k(),B("section",Og,[R(p(At),{title:"Scanning",kicker:"Devices"},{actions:x(()=>[R(p(ve),{loading:p(t).isLoading,icon:"ph-magnifying-glass",onClick:f},{default:x(()=>[...h[7]||(h[7]=[F(" Scan ",-1)])]),_:1},8,["loading"])]),_:1}),I("div",Fg,[h[10]||(h[10]=I("span",{class:"filter-label text-muted"},"Mode:",-1)),R(p(Di),{selected:p(t).mode==="setup",clickable:"",icon:"ph-plug",onClick:h[0]||(h[0]=$=>d("setup"))},{default:x(()=>[...h[8]||(h[8]=[F(" Setup ",-1)])]),_:1},8,["selected"]),R(p(Di),{selected:p(t).mode==="all",clickable:"",icon:"ph-scan",onClick:h[1]||(h[1]=$=>d("all"))},{default:x(()=>[...h[9]||(h[9]=[F(" All ",-1)])]),_:1},8,["selected"])]),p(t).isLoading?(k(),G(kt,{key:0,text:"Scanning network"})):p(t).error?(k(),G(ot,{key:1,title:"Scan failed",error:p(t).error,retry:f},null,8,["error"])):p(t).devices.length===0?(k(),G(nt,{key:2,title:"No devices found",message:"Choose scan mode and click Scan to discover devices."})):(k(),B("div",Ng,[I("div",Mg,[R(p(_e),{variant:"primary"},{default:x(()=>[F(O(p(t).total)+" found",1)]),_:1})]),R(p(Nn),{columns:u,rows:p(t).devices,caption:"Discovered devices"},{"cell-device":x(({row:$})=>[I("div",Ug,[I("div",{class:"device-icon",innerHTML:c($.device_type)},null,8,Vg),I("div",Bg,[I("strong",null,O($.device_name||"Unknown"),1),I("small",null,O($.device_type||"unknown")+" — "+O($.ip_address||"—"),1)])])]),"cell-status":x(({row:$})=>[R(p(_e),{variant:$.status==="setup"?"warning":"success"},{default:x(()=>[F(O($.status||"unknown"),1)]),_:2},1032,["variant"])]),"cell-firmware":x(({row:$})=>[I("span",jg,O($.firmware_version||"—"),1)]),"cell-actions":x(({row:$})=>[$.status==="setup"&&p(a).has("devices.setup")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-plus",size:"sm",onClick:_=>m($)},{default:x(()=>[...h[11]||(h[11]=[F(" Add ",-1)])]),_:1},8,["onClick"])):(k(),B("span",Hg,"—"))]),_:1},8,["rows"])])),R(p(tt),{open:s.value,title:"Setup new device","onUpdate:open":h[6]||(h[6]=$=>s.value=$)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:h[5]||(h[5]=$=>s.value=!1)},{default:x(()=>[...h[12]||(h[12]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-plus",loading:r.value,onClick:g},{default:x(()=>[...h[13]||(h[13]=[F(" Add device ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("div",Gg,[R(p(bt),{modelValue:i.alias,"onUpdate:modelValue":h[2]||(h[2]=$=>i.alias=$),label:"Alias",placeholder:"kitchen_relay"},null,8,["modelValue"])]),I("div",qg,[R(p(bt),{modelValue:i.name,"onUpdate:modelValue":h[3]||(h[3]=$=>i.name=$),label:"Name",placeholder:"Kitchen Relay"},null,8,["modelValue"])]),I("div",zg,[R(p(bt),{modelValue:i.description,"onUpdate:modelValue":h[4]||(h[4]=$=>i.description=$),label:"Description"},null,8,["modelValue"])]),o.value?(k(),B("div",Kg,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(o.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"])]))}},Jg=qe(Wg,[["__scopeId","data-v-1a01bb19"]]);function Bi(e){return encodeURIComponent(String(e))}const zn={async list(){return Ie("/api/v1/firmwares")},async detail(e){return Ie(`/api/v1/firmwares/id/${Bi(e)}`)},async refresh(){return We("/api/v1/firmwares/refresh")},async deviceCompatibility(e){return Ie(`/api/v1/devices/id/${Bi(e)}/firmware-compatibility`)},async updateDeviceFirmware(e,t){return We("/api/v1/devices/update-firmware",{device_id:e,firmware_id:t})}},Hl=dn("firmwares",()=>{const e=z([]),t=z(null),n=z(null),a=pt(),s=pt(),r=pt(),o=pt(),i=X(()=>a.isLoading.value),l=X(()=>s.isLoading.value),u=X(()=>r.isLoading.value),c=X(()=>o.isLoading.value);async function d(){return a.execute(async $=>{var S,C;const _=await zn.list({signal:$});return _.ok&&(e.value=((C=(S=_.data)==null?void 0:S.data)==null?void 0:C.firmwares)||[]),_})}async function f(){return r.execute(async()=>{const $=await zn.refresh();return $.ok&&await d(),$})}async function m($){return s.execute(async _=>{var C,L;const S=await zn.detail($,{signal:_});return S.ok&&(t.value=((L=(C=S.data)==null?void 0:C.data)==null?void 0:L.firmware)||null),S})}async function g($){return o.execute(async _=>{var C,L,P,E;const S=await zn.deviceCompatibility($,{signal:_});return S.ok&&(n.value={compatible:((L=(C=S.data)==null?void 0:C.data)==null?void 0:L.compatible)||[],currentVersion:((E=(P=S.data)==null?void 0:P.data)==null?void 0:E.current_version)||"unknown"}),S})}async function y($,_){return r.execute(async()=>zn.updateDeviceFirmware($,_))}function h(){n.value=null}return{firmwares:e,current:t,compatibility:n,isLoadingList:i,isLoadingDetail:l,isUpdating:u,isLoadingCompatibility:c,loadFirmwares:d,refreshFirmwares:f,loadFirmwareDetail:m,loadDeviceCompatibility:g,updateDeviceFirmware:y,clearCompatibility:h}}),Yg={class:"page"},Xg={key:2},Zg={class:"device-meta"},Qg={class:"script-info-panel"},eh={class:"info-row"},th={class:"info-value"},nh={class:"info-row"},ah={class:"info-value"},sh={class:"info-row"},rh={class:"info-value"},ih={class:"info-row"},oh={class:"info-value"},lh={class:"info-row"},uh={class:"info-value"},ch={class:"info-row"},dh={class:"info-value"},fh={class:"info-row"},ph={class:"info-value"},vh={key:0,class:"info-row"},gh=["title"],hh={key:1,class:"info-row"},mh={class:"info-value"},yh={key:0,class:"devices-panel"},_h={key:1,class:"devices-panel"},bh={class:"form-group"},wh={class:"form-group"},Sh={class:"form-group"},kh={key:0,class:"form-group"},Ah={key:0,class:"form-group"},xh={key:0,class:"form-group"},Ch={key:0,class:"form-group"},Eh={key:0,class:"form-group"},Rh={key:0,class:"form-group"},$h={class:"firmware-options"},Th=["onClick"],Ph={class:"fw-version"},Ih={key:0,class:"fw-desc"},Lh={key:0,class:"form-group"},Dh={__name:"DeviceDetailPage",setup(e){const t=ss(),n=en(),a=ls(),s=xt(),r=Hl(),o=fn(),i=Bt(),{areaOptions:l,showAssignModal:u,selectedAreaId:c,assignLoading:d,assignError:f,openAssign:m,submitAssignCore:g}=Rr(),y=X(()=>t.params.id),h=X(()=>a.currentDevice),$=X(()=>a.isLoadingDetail),_=X(()=>a.errorDetail),S=z(!1),C=z(null),L=X(()=>{var D;const se=(D=h.value)==null?void 0:D.area_id;return se&&s.areasById[String(se)]||null}),P=z(!1),E=z(!1),T=z(""),b=Zt({name:"",description:"",alias:""}),J=z(!1),re=z(""),he=z(!1),ye=z(""),ne=z(!1),ce=z(""),de=z(!1),ie=z(""),H=z(!1),Z=z(""),oe=z(!1),pe=z(""),fe=z(!1),De=z(""),Ee=z(!1),Re=z(""),$e=z(!1),U=z(null),te=z(""),q=X(()=>{var se,D;return(((D=(se=r.compatibility)==null?void 0:se.compatible)==null?void 0:D.length)||0)>0}),N=X(()=>{var se;return((se=r.compatibility)==null?void 0:se.compatible)||[]}),M=X(()=>{var D,Me;const se=[];return i.has("devices.edit")&&(se.push({label:"Edit",icon:"ph-pencil",onSelect:v}),(D=h.value)!=null&&D.area_id?se.push({label:"Change area",icon:"ph-map-pin",onSelect:A},{label:"Unassign from area",icon:"ph-x-circle",onSelect:W}):se.push({label:"Assign to area",icon:"ph-map-pin",onSelect:A})),i.has("devices.setup")&&se.push({label:"ReSetup",icon:"ph-gear",onSelect:Y}),i.has("devices.control")&&se.push({label:"Reboot",icon:"ph-arrow-clockwise",disabled:a.isRebooting((Me=h.value)==null?void 0:Me.id),onSelect:ee}),i.has("devices.edit")&&se.push({label:"Reset",icon:"ph-x",danger:!0,onSelect:ue}),i.has("devices.delete")&&se.push({label:"Remove",icon:"ph-trash",danger:!0,onSelect:le}),se});function v(){h.value&&(b.name=h.value.name||"",b.description=h.value.description||"",b.alias=h.value.alias||"",T.value="",P.value=!0)}async function w(){var et,be,Ye,Ke;E.value=!0,T.value="";const se=y.value,D=await Promise.all([b.name!==((et=h.value)==null?void 0:et.name)?a.updateDeviceName(se,b.name):{ok:!0},b.description!==((be=h.value)==null?void 0:be.description)?a.updateDeviceDescription(se,b.description):{ok:!0},b.alias!==((Ye=h.value)==null?void 0:Ye.alias)?a.updateDeviceAlias(se,b.alias):{ok:!0}]);E.value=!1;const Me=D.find(Vn=>!Vn.ok);if(Me){T.value=((Ke=Me.error)==null?void 0:Ke.message)||"Failed to update device";return}P.value=!1,o.success({title:"Updated",text:"Device updated successfully"})}function A(){var se;m((se=h.value)==null?void 0:se.area_id)}async function j(){const se=await g(y.value,a.assignToArea.bind(a));se!=null&&se.ok&&o.success({title:"Assigned",text:"Device assigned to area successfully"})}function W(){h.value&&(ce.value=`Are you sure you want to unassign device "${h.value.name||h.value.alias}" from its area?`,ie.value="",ne.value=!0)}async function K(){var D;if(!h.value)return;de.value=!0,ie.value="";const se=await a.unassignDevice(y.value);if(de.value=!1,!se.ok){ie.value=((D=se.error)==null?void 0:D.message)||"Failed to unassign device";return}ne.value=!1,o.success({title:"Unassigned",text:"Device unassigned from area successfully"})}function le(){h.value&&(re.value=`Are you sure you want to remove device "${h.value.name||h.value.alias}"?`,ye.value="",J.value=!0)}async function ae(){var Me;const se=y.value;he.value=!0,ye.value="";const D=await a.removeDevice(se);if(he.value=!1,!D.ok){ye.value=((Me=D.error)==null?void 0:Me.message)||"Failed to remove device";return}J.value=!1,o.success({title:"Removed",text:"Device removed successfully"}),n.push({name:"devices"})}async function ee(){var D;if(!h.value)return;const se=await a.rebootDevice(h.value.id);se.ok?o.success({title:"Rebooting",text:`Device ${h.value.name||h.value.alias||"#"+h.value.id} is rebooting`}):o.error({title:"Reboot failed",text:((D=se.error)==null?void 0:D.message)||"Failed to reboot device"})}function Y(){h.value&&(Z.value=`Are you sure you want to repeat setup for device "${h.value.name||h.value.alias}"?`,pe.value="",H.value=!0)}async function me(){var Me,et,be;const se=y.value;oe.value=!0,pe.value="";const D=await a.resetupDevice(se);if(oe.value=!1,!D.ok){pe.value=((Me=D.error)==null?void 0:Me.message)||"Failed to repeat device setup";return}H.value=!1,o.success({title:"Success",text:`Device ${((et=h.value)==null?void 0:et.name)||((be=h.value)==null?void 0:be.alias)||"#"+se} setup repeated`}),n.push({name:"devices"})}function ue(){h.value&&(De.value=`Are you sure you want to reset device "${h.value.name||h.value.alias}"?`,Re.value="",fe.value=!0)}async function ge(){var Me,et,be;const se=y.value;Ee.value=!0,Re.value="";const D=await a.resetDevice(se);if(Ee.value=!1,!D.ok){Re.value=((Me=D.error)==null?void 0:Me.message)||"Failed to reset device";return}fe.value=!1,o.success({title:"Success",text:`Device ${((et=h.value)==null?void 0:et.name)||((be=h.value)==null?void 0:be.alias)||"#"+se} reset`}),n.push({name:"devices"})}function we(){var se;U.value=((se=N.value[0])==null?void 0:se.id)||null,te.value="",$e.value=!0}async function Ae(){var D;if(!U.value||!h.value)return;const se=await r.updateDeviceFirmware(h.value.id,U.value);if(!se.ok){te.value=((D=se.error)==null?void 0:D.message)||"Firmware update failed";return}$e.value=!1,o.success({title:"Updated",text:"Firmware update pushed successfully"}),await a.loadDeviceDetail(y.value)}function Oe(se){return{active:"success",removed:"danger",freezed:"warning",setup:"primary"}[se]||"secondary"}async function Ne(){const se=y.value;if(!se||!h.value||h.value.connection_status!=="active")return;S.value=!0,C.value=null;const D=await a.loadDeviceStatus(se);S.value=!1,D.ok||(C.value=D.error)}async function He(){var D;const se=y.value;se&&(s.areas.length===0&&await s.loadAreas(),await a.loadDeviceDetail(se),((D=h.value)==null?void 0:D.connection_status)==="active"&&(await Ne(),await r.loadDeviceCompatibility(se)))}return ht(()=>{He()}),ha(()=>{a.clearDeviceDetail(),r.clearCompatibility()}),gt(()=>t.params.id,(se,D)=>{se!==D&&(a.clearDeviceDetail(),He())}),(se,D)=>{var Me,et;return k(),B("section",Yg,[$.value?(k(),G(kt,{key:0,text:"Loading device details"})):_.value?(k(),G(ot,{key:1,title:"Device loading failed",error:_.value,retry:He},null,8,["error"])):h.value?(k(),B("div",Xg,[R(p(At),{title:h.value.name||h.value.alias||`Device #${h.value.id}`,kicker:"Device"},{actions:x(()=>[R(Pr,{items:M.value},null,8,["items"])]),_:1},8,["title"]),I("div",Zg,[R(p(_e),{variant:h.value.connection_status==="active"?"success":"danger"},{default:x(()=>[F(O(h.value.connection_status==="active"?"Online":"Offline"),1)]),_:1},8,["variant"]),I("code",null,O(h.value.alias),1),R($r,{area:L.value,areaId:h.value.area_id},null,8,["area","areaId"])]),I("div",Qg,[I("div",eh,[D[18]||(D[18]=I("span",{class:"info-label text-muted"},"System status:",-1)),I("span",th,[R(p(_e),{variant:Oe(h.value.status)},{default:x(()=>[F(O(h.value.status),1)]),_:1},8,["variant"])])]),I("div",nh,[D[19]||(D[19]=I("span",{class:"info-label text-muted"},"Type:",-1)),I("span",ah,O(h.value.device_type),1)]),I("div",sh,[D[20]||(D[20]=I("span",{class:"info-label text-muted"},"State:",-1)),I("span",rh,[R(Ml,{"device-type":h.value.device_type,response:(Me=p(a).currentDeviceStatus)==null?void 0:Me.raw,loading:S.value,error:(et=C.value)==null?void 0:et.message,"connection-status":h.value.connection_status},null,8,["device-type","response","loading","error","connection-status"])])]),I("div",ih,[D[21]||(D[21]=I("span",{class:"info-label text-muted"},"IP:",-1)),I("span",oh,O(h.value.device_ip),1)]),I("div",lh,[D[22]||(D[22]=I("span",{class:"info-label text-muted"},"MAC:",-1)),I("span",uh,O(h.value.device_mac),1)]),I("div",ch,[D[23]||(D[23]=I("span",{class:"info-label text-muted"},"Hard ID:",-1)),I("span",dh,O(h.value.device_hard_id),1)]),I("div",fh,[D[24]||(D[24]=I("span",{class:"info-label text-muted"},"Firmware:",-1)),I("span",ph,O(h.value.firmware_version),1)]),h.value.last_contact?(k(),B("div",vh,[D[25]||(D[25]=I("span",{class:"info-label text-muted"},"Last contact:",-1)),I("span",{class:"info-value",title:p(Xs)(h.value.last_contact)},O(p(Fl)(h.value.last_contact)),9,gh)])):Q("",!0),h.value.create_at?(k(),B("div",hh,[D[26]||(D[26]=I("span",{class:"info-label text-muted"},"Created:",-1)),I("span",mh,O(p(Xs)(h.value.create_at)),1)])):Q("",!0)]),R(Tr,{item:h.value,emptyMessage:"This device is not assigned to any area.",onAssign:A},{action:x(()=>[p(i).has("devices.edit")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-map-pin",onClick:A},{default:x(()=>{var be;return[F(O((be=h.value)!=null&&be.area_id?"Change area":"Assign to area"),1)]}),_:1})):Q("",!0)]),_:1},8,["item"]),q.value&&p(i).has("firmware.upload")?(k(),B("div",yh,[D[29]||(D[29]=I("div",{class:"block-title"},"Firmware Update",-1)),R(p(Qe),{variant:"info"},{default:x(()=>[D[27]||(D[27]=F(" New firmware available: ",-1)),(k(!0),B(xe,null,St(N.value,be=>(k(),G(p(_e),{key:be.id,variant:"success"},{default:x(()=>[F(O(be.version),1)]),_:2},1024))),128))]),_:1}),R(p(ve),{variant:"primary",icon:"ph-cloud-arrow-down",onClick:we},{default:x(()=>[...D[28]||(D[28]=[F(" Update Firmware ",-1)])]),_:1})])):Q("",!0),h.value.description?(k(),B("div",_h,[D[30]||(D[30]=I("div",{class:"block-title"},"Description",-1)),I("p",null,O(h.value.description),1)])):Q("",!0)])):(k(),G(nt,{key:3,title:"Device not found",message:"The requested device does not exist."})),R(p(tt),{open:P.value,title:"Edit device","onUpdate:open":D[4]||(D[4]=be=>P.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[3]||(D[3]=be=>P.value=!1)},{default:x(()=>[...D[31]||(D[31]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-check",loading:E.value,onClick:w},{default:x(()=>[...D[32]||(D[32]=[F(" Save ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("div",bh,[R(p(bt),{modelValue:b.name,"onUpdate:modelValue":D[0]||(D[0]=be=>b.name=be),label:"Name"},null,8,["modelValue"])]),I("div",wh,[R(p(bt),{modelValue:b.description,"onUpdate:modelValue":D[1]||(D[1]=be=>b.description=be),label:"Description"},null,8,["modelValue"])]),I("div",Sh,[R(p(bt),{modelValue:b.alias,"onUpdate:modelValue":D[2]||(D[2]=be=>b.alias=be),label:"Alias"},null,8,["modelValue"])]),T.value?(k(),B("div",kh,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(T.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:p(u),title:"Assign to area","onUpdate:open":D[7]||(D[7]=be=>u.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[6]||(D[6]=be=>u.value=!1)},{default:x(()=>[...D[33]||(D[33]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-check",loading:p(d),onClick:j},{default:x(()=>[...D[34]||(D[34]=[F(" Assign ",-1)])]),_:1},8,["loading"])]),default:x(()=>[R(p(is),{modelValue:p(c),"onUpdate:modelValue":D[5]||(D[5]=be=>Be(c)?c.value=be:null),label:"Area",options:p(l),icon:"ph-map-trifold"},null,8,["modelValue","options"]),p(f)?(k(),B("div",Ah,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(p(f)),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:ne.value,title:"Unassign from area","onUpdate:open":D[9]||(D[9]=be=>ne.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[8]||(D[8]=be=>ne.value=!1)},{default:x(()=>[...D[35]||(D[35]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"warning",icon:"ph-x-circle",loading:de.value,onClick:K},{default:x(()=>[...D[36]||(D[36]=[F(" Unassign ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(ce.value),1),ie.value?(k(),B("div",xh,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(ie.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:J.value,title:"Remove device","onUpdate:open":D[11]||(D[11]=be=>J.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[10]||(D[10]=be=>J.value=!1)},{default:x(()=>[...D[37]||(D[37]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"danger",icon:"ph-trash",loading:he.value,onClick:ae},{default:x(()=>[...D[38]||(D[38]=[F(" Remove ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(re.value),1),ye.value?(k(),B("div",Ch,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(ye.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:H.value,title:"Repeat device setup","onUpdate:open":D[13]||(D[13]=be=>H.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[12]||(D[12]=be=>H.value=!1)},{default:x(()=>[...D[39]||(D[39]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-gear",loading:oe.value,onClick:me},{default:x(()=>[...D[40]||(D[40]=[F(" ReSetup ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(Z.value),1),pe.value?(k(),B("div",Eh,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(pe.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:fe.value,title:"Reset device","onUpdate:open":D[15]||(D[15]=be=>fe.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[14]||(D[14]=be=>fe.value=!1)},{default:x(()=>[...D[41]||(D[41]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"danger",icon:"ph-x",loading:Ee.value,onClick:ge},{default:x(()=>[...D[42]||(D[42]=[F(" Reset ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(De.value),1),Re.value?(k(),B("div",Rh,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(Re.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:$e.value,title:"Update Firmware","onUpdate:open":D[17]||(D[17]=be=>$e.value=be)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:D[16]||(D[16]=be=>$e.value=!1)},{default:x(()=>[...D[45]||(D[45]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-check",loading:p(r).isUpdating,disabled:!U.value,onClick:Ae},{default:x(()=>[...D[46]||(D[46]=[F(" Update ",-1)])]),_:1},8,["loading","disabled"])]),default:x(()=>{var be,Ye;return[I("p",null,[D[43]||(D[43]=F("Select firmware to install on ",-1)),I("strong",null,O(((be=h.value)==null?void 0:be.name)||((Ye=h.value)==null?void 0:Ye.alias)),1),D[44]||(D[44]=F(":",-1))]),I("div",$h,[(k(!0),B(xe,null,St(N.value,Ke=>(k(),B("div",{key:Ke.id,class:$t(["firmware-option",{active:U.value===Ke.id}]),onClick:Vn=>U.value=Ke.id},[I("div",Ph,O(Ke.version),1),Ke.description?(k(),B("div",Ih,O(Ke.description),1)):Q("",!0)],10,Th))),128))]),te.value?(k(),B("div",Lh,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(te.value),1)]),_:1})])):Q("",!0)]}),_:1},8,["open"])])}}},Oh=qe(Dh,[["__scopeId","data-v-a9f83185"]]),Fh={class:"page"},Nh={__name:"ScriptsActionsPage",setup(e){const t=Sn(),n=xt();return ht(()=>{t.loadActions(),n.areas.length===0&&n.loadAreas()}),(a,s)=>(k(),B("section",Fh,[R(p(At),{title:"Actions",kicker:"Scripts"},{actions:x(()=>[R(p(_e),{variant:"primary"},{default:x(()=>[F(O(p(t).totalActions)+" scripts",1)]),_:1})]),_:1}),p(t).isLoadingActions?(k(),G(kt,{key:0,text:"Loading actions"})):p(t).errorActions?(k(),G(ot,{key:1,title:"Actions loading failed",error:p(t).errorActions,retry:p(t).loadActions},null,8,["error","retry"])):p(t).actions.length===0?(k(),G(nt,{key:2,title:"No action scripts",message:"No action scripts registered."})):(k(),G(jl,{key:3,scripts:p(t).actions,"show-area-badge":""},null,8,["scripts"]))]))}},Mh=qe(Nh,[["__scopeId","data-v-f336617a"]]),Uh={class:"page"},Vh={key:3,class:"devices-panel"},Bh={__name:"ScriptsRegularPage",setup(e){const t=Sn(),n=xt();return ht(()=>{t.loadRegular(),n.areas.length===0&&n.loadAreas()}),(a,s)=>(k(),B("section",Uh,[R(p(At),{title:"Regular",kicker:"Scripts"},{actions:x(()=>[R(p(_e),{variant:"primary"},{default:x(()=>[F(O(p(t).totalRegular)+" scripts",1)]),_:1})]),_:1}),p(t).isLoadingRegular?(k(),G(kt,{key:0,text:"Loading regular scripts"})):p(t).errorRegular?(k(),G(ot,{key:1,title:"Regular scripts loading failed",error:p(t).errorRegular,retry:p(t).loadRegular},null,8,["error","retry"])):p(t).regular.length===0?(k(),G(nt,{key:2,title:"No regular scripts",message:"No regular scripts registered."})):(k(),B("div",Vh,[R(Vl,{scripts:p(t).regular,scriptType:"regular",showArea:!0,showScope:!0,showFilename:!0,showActions:!0,caption:"Regular scripts"},null,8,["scripts"])]))]))}},jh={class:"page"},Hh={key:3,class:"devices-panel"},Gh={__name:"ScriptsScopesPage",setup(e){en();const t=Sn(),n=Bt(),a=[{key:"name",label:"Name"},{key:"filename",label:"File"},{key:"state",label:"State"},{key:"path",label:"Path"},{key:"actions",label:"Actions"}];function s(r,o){t.setScopeState(r,o)}return ht(()=>{t.loadScopes()}),(r,o)=>{const i=cn("router-link");return k(),B("section",jh,[R(p(At),{title:"Scopes",kicker:"Scripts"},{actions:x(()=>[R(p(_e),{variant:"primary"},{default:x(()=>[F(O(p(t).totalScopes)+" scopes",1)]),_:1})]),_:1}),p(t).isLoadingScopes?(k(),G(kt,{key:0,text:"Loading scopes"})):p(t).errorScopes?(k(),G(ot,{key:1,title:"Scopes loading failed",error:p(t).errorScopes,retry:p(t).loadScopes},null,8,["error","retry"])):p(t).scopes.length===0?(k(),G(nt,{key:2,title:"No scopes",message:"No script scopes registered."})):(k(),B("div",Hh,[R(p(Nn),{columns:a,rows:p(t).scopes,caption:"Script scopes"},{"cell-name":x(({row:l})=>[R(i,{to:{name:"script-detail",params:{type:"scopes",id:l.name}},class:"script-link"},{default:x(()=>[F(O(l.name),1)]),_:2},1032,["to"])]),"cell-state":x(({row:l})=>[R(p(_e),{variant:l.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(l.state),1)]),_:2},1032,["variant"])]),"cell-actions":x(({row:l})=>[l.state==="enabled"&&p(n).has("scripts.edit")?(k(),G(p(ve),{key:0,variant:"secondary",icon:"ph-pause",onClick:u=>s(l.name,!1)},{default:x(()=>[...o[0]||(o[0]=[F(" Disable ",-1)])]),_:1},8,["onClick"])):p(n).has("scripts.edit")?(k(),G(p(ve),{key:1,variant:"primary",icon:"ph-play",onClick:u=>s(l.name,!0)},{default:x(()=>[...o[1]||(o[1]=[F(" Enable ",-1)])]),_:1},8,["onClick"])):Q("",!0)]),_:1},8,["rows"])]))])}}},qh=qe(Gh,[["__scopeId","data-v-c8486788"]]);var ji=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function zh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Rs={exports:{}},Hi;function Kh(){return Hi||(Hi=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(a){var s=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,r=0,o={},i={manual:a.Prism&&a.Prism.manual,disableWorkerMessageHandler:a.Prism&&a.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,"&amp;").replace(/</g,"&lt;").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,C){C=C||{};var L,P;switch(i.util.type(S)){case"Object":if(P=i.util.objId(S),C[P])return C[P];L={},C[P]=L;for(var E in S)S.hasOwnProperty(E)&&(L[E]=_(S[E],C));return L;case"Array":return P=i.util.objId(S),C[P]?C[P]:(L=[],C[P]=L,S.forEach(function(T,b){L[b]=_(T,C)}),L);default:return S}},getLanguage:function(_){for(;_;){var S=s.exec(_.className);if(S)return S[1].toLowerCase();_=_.parentElement}return"none"},setLanguage:function(_,S){_.className=_.className.replace(RegExp(s,"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(L){var _=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(L.stack)||[])[1];if(_){var S=document.getElementsByTagName("script");for(var C in S)if(S[C].src==_)return S[C]}return null}},isActive:function(_,S,C){for(var L="no-"+S;_;){var P=_.classList;if(P.contains(S))return!0;if(P.contains(L))return!1;_=_.parentElement}return!!C}},languages:{plain:o,plaintext:o,text:o,txt:o,extend:function(_,S){var C=i.util.clone(i.languages[_]);for(var L in S)C[L]=S[L];return C},insertBefore:function(_,S,C,L){L=L||i.languages;var P=L[_],E={};for(var T in P)if(P.hasOwnProperty(T)){if(T==S)for(var b in C)C.hasOwnProperty(b)&&(E[b]=C[b]);C.hasOwnProperty(T)||(E[T]=P[T])}var J=L[_];return L[_]=E,i.languages.DFS(i.languages,function(re,he){he===J&&re!=_&&(this[re]=E)}),E},DFS:function _(S,C,L,P){P=P||{};var E=i.util.objId;for(var T in S)if(S.hasOwnProperty(T)){C.call(S,T,S[T],L||T);var b=S[T],J=i.util.type(b);J==="Object"&&!P[E(b)]?(P[E(b)]=!0,_(b,C,null,P)):J==="Array"&&!P[E(b)]&&(P[E(b)]=!0,_(b,C,T,P))}}},plugins:{},highlightAll:function(_,S){i.highlightAllUnder(document,_,S)},highlightAllUnder:function(_,S,C){var L={callback:C,container:_,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};i.hooks.run("before-highlightall",L),L.elements=Array.prototype.slice.apply(L.container.querySelectorAll(L.selector)),i.hooks.run("before-all-elements-highlight",L);for(var P=0,E;E=L.elements[P++];)i.highlightElement(E,S===!0,L.callback)},highlightElement:function(_,S,C){var L=i.util.getLanguage(_),P=i.languages[L];i.util.setLanguage(_,L);var E=_.parentElement;E&&E.nodeName.toLowerCase()==="pre"&&i.util.setLanguage(E,L);var T=_.textContent,b={element:_,language:L,grammar:P,code:T};function J(he){b.highlightedCode=he,i.hooks.run("before-insert",b),b.element.innerHTML=b.highlightedCode,i.hooks.run("after-highlight",b),i.hooks.run("complete",b),C&&C.call(b.element)}if(i.hooks.run("before-sanity-check",b),E=b.element.parentElement,E&&E.nodeName.toLowerCase()==="pre"&&!E.hasAttribute("tabindex")&&E.setAttribute("tabindex","0"),!b.code){i.hooks.run("complete",b),C&&C.call(b.element);return}if(i.hooks.run("before-highlight",b),!b.grammar){J(i.util.encode(b.code));return}if(S&&a.Worker){var re=new Worker(i.filename);re.onmessage=function(he){J(he.data)},re.postMessage(JSON.stringify({language:b.language,code:b.code,immediateClose:!0}))}else J(i.highlight(b.code,b.grammar,b.language))},highlight:function(_,S,C){var L={code:_,grammar:S,language:C};if(i.hooks.run("before-tokenize",L),!L.grammar)throw new Error('The language "'+L.language+'" has no grammar.');return L.tokens=i.tokenize(L.code,L.grammar),i.hooks.run("after-tokenize",L),l.stringify(i.util.encode(L.tokens),L.language)},tokenize:function(_,S){var C=S.rest;if(C){for(var L in C)S[L]=C[L];delete S.rest}var P=new d;return f(P,P.head,_),c(_,P,S,P.head,0),g(P)},hooks:{all:{},add:function(_,S){var C=i.hooks.all;C[_]=C[_]||[],C[_].push(S)},run:function(_,S){var C=i.hooks.all[_];if(!(!C||!C.length))for(var L=0,P;P=C[L++];)P(S)}},Token:l};a.Prism=i;function l(_,S,C,L){this.type=_,this.content=S,this.alias=C,this.length=(L||"").length|0}l.stringify=function _(S,C){if(typeof S=="string")return S;if(Array.isArray(S)){var L="";return S.forEach(function(J){L+=_(J,C)}),L}var P={type:S.type,content:_(S.content,C),tag:"span",classes:["token",S.type],attributes:{},language:C},E=S.alias;E&&(Array.isArray(E)?Array.prototype.push.apply(P.classes,E):P.classes.push(E)),i.hooks.run("wrap",P);var T="";for(var b in P.attributes)T+=" "+b+'="'+(P.attributes[b]||"").replace(/"/g,"&quot;")+'"';return"<"+P.tag+' class="'+P.classes.join(" ")+'"'+T+">"+P.content+"</"+P.tag+">"};function u(_,S,C,L){_.lastIndex=S;var P=_.exec(C);if(P&&L&&P[1]){var E=P[1].length;P.index+=E,P[0]=P[0].slice(E)}return P}function c(_,S,C,L,P,E){for(var T in C)if(!(!C.hasOwnProperty(T)||!C[T])){var b=C[T];b=Array.isArray(b)?b:[b];for(var J=0;J<b.length;++J){if(E&&E.cause==T+","+J)return;var re=b[J],he=re.inside,ye=!!re.lookbehind,ne=!!re.greedy,ce=re.alias;if(ne&&!re.pattern.global){var de=re.pattern.toString().match(/[imsuy]*$/)[0];re.pattern=RegExp(re.pattern.source,de+"g")}for(var ie=re.pattern||re,H=L.next,Z=P;H!==S.tail&&!(E&&Z>=E.reach);Z+=H.value.length,H=H.next){var oe=H.value;if(S.length>_.length)return;if(!(oe instanceof l)){var pe=1,fe;if(ne){if(fe=u(ie,Z,_,ye),!fe||fe.index>=_.length)break;var $e=fe.index,De=fe.index+fe[0].length,Ee=Z;for(Ee+=H.value.length;$e>=Ee;)H=H.next,Ee+=H.value.length;if(Ee-=H.value.length,Z=Ee,H.value instanceof l)continue;for(var Re=H;Re!==S.tail&&(Ee<De||typeof Re.value=="string");Re=Re.next)pe++,Ee+=Re.value.length;pe--,oe=_.slice(Z,Ee),fe.index-=Z}else if(fe=u(ie,0,oe,ye),!fe)continue;var $e=fe.index,U=fe[0],te=oe.slice(0,$e),q=oe.slice($e+U.length),N=Z+oe.length;E&&N>E.reach&&(E.reach=N);var M=H.prev;te&&(M=f(S,M,te),Z+=te.length),m(S,M,pe);var v=new l(T,he?i.tokenize(U,he):U,ce,U);if(H=f(S,M,v),q&&f(S,H,q),pe>1){var w={cause:T+","+J,reach:N};c(_,S,C,H.prev,Z,w),E&&w.reach>E.reach&&(E.reach=w.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,C){var L=S.next,P={value:C,prev:S,next:L};return S.next=P,L.prev=P,_.length++,P}function m(_,S,C){for(var L=S.next,P=0;P<C&&L!==_.tail;P++)L=L.next;S.next=L,L.prev=S,_.length-=P}function g(_){for(var S=[],C=_.head.next;C!==_.tail;)S.push(C.value),C=C.next;return S}if(!a.document)return a.addEventListener&&(i.disableWorkerMessageHandler||a.addEventListener("message",function(_){var S=JSON.parse(_.data),C=S.language,L=S.code,P=S.immediateClose;a.postMessage(i.highlight(L,i.languages[C],C)),P&&a.close()},!1)),i;var y=i.util.currentScript();y&&(i.filename=y.src,y.hasAttribute("data-manual")&&(i.manual=!0));function h(){i.manual||i.highlightAll()}if(!i.manual){var $=document.readyState;$==="loading"||$==="interactive"&&y&&y.defer?document.addEventListener("DOMContentLoaded",h):window.requestAnimationFrame?window.requestAnimationFrame(h):window.setTimeout(h,16)}return i})(t);e.exports&&(e.exports=n),typeof ji<"u"&&(ji.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(a){a.type==="entity"&&(a.attributes.title=a.content.replace(/&amp;/,"&"))}),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(s,r){var o={};o["language-"+r]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:n.languages[r]},o.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:o}};i["language-"+r]={pattern:/[\s\S]+/,inside:n.languages[r]};var l={};l[s]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return s}),"i"),lookbehind:!0,greedy:!0,inside:i},n.languages.insertBefore("markup","cdata",l)}}),Object.defineProperty(n.languages.markup.tag,"addAttribute",{value:function(a,s){n.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+a+")"+/\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:[s,"language-"+s],inside:n.languages[s]},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(a){var s=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;a.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+s.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\\((?:"+s.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+s.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+s.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:s,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:/[(){};:,]/},a.languages.css.atrule.inside.rest=a.languages.css;var r=a.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 a="Loading…",s=function(y,h){return"✖ Error "+y+" while fetching file: "+h},r="✖ Error: File does not exist or is empty",o={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},i="data-src-status",l="loading",u="loaded",c="failed",d="pre[data-src]:not(["+i+'="'+u+'"]):not(['+i+'="'+l+'"])';function f(y,h,$){var _=new XMLHttpRequest;_.open("GET",y,!0),_.onreadystatechange=function(){_.readyState==4&&(_.status<400&&_.responseText?h(_.responseText):_.status>=400?$(s(_.status,_.statusText)):$(r))},_.send(null)}function m(y){var h=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(y||"");if(h){var $=Number(h[1]),_=h[2],S=h[3];return _?S?[$,Number(S)]:[$,void 0]:[$,$]}}n.hooks.add("before-highlightall",function(y){y.selector+=", "+d}),n.hooks.add("before-sanity-check",function(y){var h=y.element;if(h.matches(d)){y.code="",h.setAttribute(i,l);var $=h.appendChild(document.createElement("CODE"));$.textContent=a;var _=h.getAttribute("data-src"),S=y.language;if(S==="none"){var C=(/\.(\w+)$/.exec(_)||[,"none"])[1];S=o[C]||C}n.util.setLanguage($,S),n.util.setLanguage(h,S);var L=n.plugins.autoloader;L&&L.loadLanguages(S),f(_,function(P){h.setAttribute(i,u);var E=m(h.getAttribute("data-range"));if(E){var T=P.split(/\r\n?|\n/g),b=E[0],J=E[1]==null?T.length:E[1];b<0&&(b+=T.length),b=Math.max(0,Math.min(b-1,T.length)),J<0&&(J+=T.length),J=Math.max(0,Math.min(J,T.length)),P=T.slice(b,J).join(`
`),h.hasAttribute("data-start")||h.setAttribute("data-start",String(b+1))}$.textContent=P,n.highlightElement($)},function(P){h.setAttribute(i,c),$.textContent=P})}}),n.plugins.fileHighlight={highlight:function(h){for(var $=(h||document).querySelectorAll(d),_=0,S;S=$[_++];)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)}})()})(Rs)),Rs.exports}var Wh=Kh();const Gi=zh(Wh);(function(e){function t(n,a){return"___"+n.toUpperCase()+a+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,a,s,r){if(n.language===a){var o=n.tokenStack=[];n.code=n.code.replace(s,function(i){if(typeof r=="function"&&!r(i))return i;for(var l=o.length,u;n.code.indexOf(u=t(a,l))!==-1;)++l;return o[l]=i,u}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,a){if(n.language!==a||!n.tokenStack)return;n.grammar=e.languages[a];var s=0,r=Object.keys(n.tokenStack);function o(i){for(var l=0;l<i.length&&!(s>=r.length);l++){var u=i[l];if(typeof u=="string"||u.content&&typeof u.content=="string"){var c=r[s],d=n.tokenStack[c],f=typeof u=="string"?u:u.content,m=t(a,c),g=f.indexOf(m);if(g>-1){++s;var y=f.substring(0,g),h=new e.Token(a,e.tokenize(d,n.grammar),"language-"+a,d),$=f.substring(g+m.length),_=[];y&&_.push.apply(_,o([y])),_.push(h),$&&_.push.apply(_,o([$])),typeof u=="string"?i.splice.apply(i,[l,1].concat(_)):u.content=_}}else u.content&&o(u.content)}return i}o(n.tokens)}}})})(Prism);var qi={},zi;function Jh(){return zi||(zi=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*\()/],a=/\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,s=/<?=>|\?\?=?|\.{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:a,operator:s,punctuation:r};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},i=[{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:o}},{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:o}}];e.languages.insertBefore("php","variable",{string:i,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:i,"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:a,operator:s,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)),qi}Jh();const Yh={class:"page"},Xh={key:2},Zh={class:"script-detail-meta"},Qh=["innerHTML"],em={key:1},tm={class:"script-meta"},nm={key:0,class:"indicator-spinner",title:"Loading state..."},am={key:1},sm={class:"scope-name"},rm={class:"script-info-panel"},im={key:0,class:"info-row"},om={class:"info-value"},lm={key:1,class:"info-row"},um={class:"info-value"},cm={key:2,class:"info-row"},dm={class:"info-value"},fm={key:1,class:"devices-panel"},pm={class:"block-title"},vm={key:2,class:"devices-panel"},gm={class:"block-title"},hm={key:3,class:"devices-panel"},mm={key:2,class:"code-block"},ym=["innerHTML"],_m={key:0,class:"form-group"},bm={key:0,class:"form-group"},wm={__name:"ScriptDetailPage",setup(e){const t=ss(),n=Sn(),a=xt(),s=fn(),r=Bt(),{areaOptions:o,showAssignModal:i,selectedAreaId:l,assignLoading:u,assignError:c,openAssign:d,submitAssignCore:f}=Rr(),m=X(()=>t.params.type),g=X(()=>t.params.id),y=z(!1),h=X(()=>m.value==="actions"),$=X(()=>m.value==="regular"),_=X(()=>m.value==="scopes"),S=X(()=>{var v,w,A;const M=[];return!_.value&&r.has("scripts.edit")&&((v=b.value)!=null&&v.area_id?M.push({label:"Change area",icon:"ph-map-pin",onSelect:oe},{label:"Unassign from area",icon:"ph-x-circle",onSelect:$e}):M.push({label:"Assign to area",icon:"ph-map-pin",onSelect:oe})),h.value&&r.has("scripts.run")&&M.push({label:"Run",icon:"ph-play",disabled:((w=b.value)==null?void 0:w.state)!=="enabled"||n.isRunning((A=b.value)==null?void 0:A.alias),onSelect:ie}),M}),C=X(()=>h.value?"Actions":$.value?"Regular":_.value?"Scope":"Script"),L=X(()=>`Loading ${C.value.toLowerCase()} details`),P=X(()=>h.value?n.isLoadingActions:$.value?n.isLoadingRegular:_.value?n.isLoadingScopes||n.isLoadingActions||n.isLoadingRegular:!1),E=X(()=>h.value?n.errorActions:$.value?n.errorRegular:_.value?n.errorScopes:null),T=X(()=>h.value?n.actions.length>0:$.value?n.regular.length>0:_.value?n.scopes.length>0:!1),b=X(()=>{const M=g.value;return M?h.value?n.actionByAlias(M):$.value?n.regularByAlias(M):_.value?n.scopeByName(M):null:null}),J=X(()=>{const M=g.value;return!M||!_.value?[]:n.actionsByScope(M)}),re=X(()=>{const M=g.value;return!M||!_.value?[]:n.regularByScope(M)}),he=X(()=>{var v;const M=(v=b.value)==null?void 0:v.area_id;return M&&a.areasById[String(M)]||null}),ye=X(()=>_.value?n.isLoadingScopeCode:!1),ne=X(()=>_.value?n.errorScopeCode:null),ce=X(()=>{var M;return h.value||$.value?((M=b.value)==null?void 0:M.code)||"":_.value?n.currentScopeCode:""}),de=X(()=>{const M=ce.value;return M?Gi.highlight(M,Gi.languages.php,"php"):""});function ie(){var v;if(!((v=b.value)!=null&&v.alias))return;const M=b.value.params_schema;if(M&&Object.keys(M).length>0){y.value=!0;return}H(b.value.alias,{})}async function H(M,v){var A,j;const w=await n.runScript(M,v);w!=null&&w.ok?(s.success({title:`Ran ${M}`,text:(A=n.lastRunResult)!=null&&A.execTime?`Exec time: ${n.lastRunResult.execTime}`:void 0}),await n.refreshAction(M)):s.error({title:`Failed ${M}`,text:((j=w==null?void 0:w.error)==null?void 0:j.message)||"Unknown error"})}async function Z(M){var j,W;const v=g.value;if(!v)return;let w;h.value?w=await n.setActionState(v,M):$.value?w=await n.setRegularState(v,M):_.value&&(w=await n.setScopeState(v,M));const A=((j=b.value)==null?void 0:j.alias)||v;w&&!w.ok?s.error({title:`Failed to ${M?"enable":"disable"} ${A}`,text:((W=w.error)==null?void 0:W.message)||"Unknown error"}):w&&s.success({title:`${M?"Enabled":"Disabled"} ${A}`})}function oe(){var M;d((M=b.value)==null?void 0:M.area_id)}async function pe(){var w;const M=(w=b.value)==null?void 0:w.id,v=await f(M,n.assignToArea.bind(n));v!=null&&v.ok&&s.success({title:"Assigned",text:"Script assigned to area successfully"})}const fe=z(!1),De=z(""),Ee=z(!1),Re=z("");function $e(){b.value&&(De.value=`Are you sure you want to unassign script "${b.value.name||b.value.alias}" from its area?`,Re.value="",fe.value=!0)}async function U(){var v;if(!b.value)return;Ee.value=!0,Re.value="";const M=await n.unassignFromArea(b.value.id);if(Ee.value=!1,!M.ok){Re.value=((v=M.error)==null?void 0:v.message)||"Failed to unassign script";return}fe.value=!1,s.success({title:"Unassigned",text:"Script unassigned from area successfully"})}async function te(){const M=g.value;!M||!_.value||await n.loadScopeCode(M)}async function q(){g.value&&(h.value&&n.actions.length===0?await n.loadActions():$.value&&n.regular.length===0?await n.loadRegular():_.value&&n.scopes.length===0&&await n.loadScopes(),_.value&&(n.actions.length===0&&await n.loadActions(),n.regular.length===0&&await n.loadRegular(),await te()),a.areas.length===0&&await a.loadAreas())}const N=[{key:"alias",label:"Alias"},{key:"name",label:"Name"},{key:"state",label:"State"}];return ht(()=>{q()}),ha(()=>{n.clearScopeCode()}),gt(()=>[t.params.type,t.params.id],([M,v],[w,A])=>{(M!==w||v!==A)&&(n.clearScopeCode(),q())}),gt(()=>{var M;return(M=b.value)==null?void 0:M.alias},M=>{if(M&&h.value&&!n.isRefreshingIndicator(M)){const v=n.actionByAlias(M);v&&!v.indicators&&n.refreshAction(M)}},{immediate:!0}),(M,v)=>{const w=cn("router-link");return k(),B("section",Yh,[P.value?(k(),G(kt,{key:0,text:L.value},null,8,["text"])):E.value&&!T.value?(k(),G(ot,{key:1,title:`${C.value} loading failed`,error:E.value,retry:q},null,8,["title","error"])):b.value?(k(),B("div",Xh,[R(p(At),{title:b.value.name||b.value.alias||b.value.name,kicker:C.value},{actions:x(()=>[p(r).has("scripts.edit")?(k(),G(p(xl),{key:0,"model-value":b.value.state==="enabled",label:"Enabled","onUpdate:modelValue":v[0]||(v[0]=A=>Z(A))},null,8,["model-value"])):Q("",!0),R(Pr,{items:S.value},null,8,["items"])]),_:1},8,["title","kicker"]),I("div",Zh,[b.value.icon?(k(),B("div",{key:0,innerHTML:b.value.icon,class:"script-icon"},null,8,Qh)):Q("",!0),b.value.description?(k(),B("p",em,O(b.value.description),1)):Q("",!0),I("div",tm,[R(p(_e),{variant:b.value.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(b.value.state),1)]),_:1},8,["variant"]),(k(!0),B(xe,null,St(b.value.indicators,(A,j)=>(k(),G(p(_e),{key:j,variant:A.variant},{default:x(()=>[F(O(A.label),1)]),_:2},1032,["variant"]))),128)),p(n).isRefreshingIndicator(b.value.alias)?(k(),B("span",nm)):Q("",!0),I("code",null,O(b.value.alias||b.value.name),1),b.value.author?(k(),B("small",am,O(b.value.author),1)):Q("",!0),R($r,{area:he.value,areaId:b.value.area_id},null,8,["area","areaId"]),b.value.scope?(k(),G(w,{key:2,to:{name:"script-detail",params:{type:"scopes",id:b.value.scope}},class:"scope-link"},{default:x(()=>[v[8]||(v[8]=I("span",{class:"scope-label"},"Scope",-1)),I("span",sm,O(b.value.scope),1),v[9]||(v[9]=I("i",{class:"ph ph-arrow-right"},null,-1))]),_:1},8,["to"])):Q("",!0)]),I("div",rm,[b.value.filename?(k(),B("div",im,[v[10]||(v[10]=I("span",{class:"info-label text-muted"},"File:",-1)),I("span",om,O(b.value.filename),1)])):Q("",!0),b.value.path?(k(),B("div",lm,[v[11]||(v[11]=I("span",{class:"info-label text-muted"},"Path:",-1)),I("span",um,O(b.value.path),1)])):Q("",!0),b.value.created_by?(k(),B("div",cm,[v[12]||(v[12]=I("span",{class:"info-label text-muted"},"Author:",-1)),I("span",dm,O(b.value.created_by),1)])):Q("",!0)])]),_.value?Q("",!0):(k(),G(Tr,{key:0,item:b.value,emptyMessage:"This script is not assigned to any area.",onAssign:oe},{action:x(()=>[p(r).has("scripts.edit")?(k(),G(p(ve),{key:0,variant:"primary",icon:"ph-map-pin",onClick:oe},{default:x(()=>{var A;return[F(O((A=b.value)!=null&&A.area_id?"Change area":"Assign to area"),1)]}),_:1})):Q("",!0)]),_:1},8,["item"])),_.value&&J.value.length>0?(k(),B("div",fm,[I("div",pm,"Action scripts ("+O(J.value.length)+")",1),R(p(Nn),{rows:J.value,columns:N},{"cell-state":x(({row:A})=>[R(p(_e),{variant:A.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(A.state),1)]),_:2},1032,["variant"])]),"cell-alias":x(({row:A})=>[R(w,{to:{name:"script-detail",params:{type:"actions",id:A.alias}},class:"script-link"},{default:x(()=>[F(O(A.alias),1)]),_:2},1032,["to"])]),_:1},8,["rows"])])):Q("",!0),_.value&&re.value.length>0?(k(),B("div",vm,[I("div",gm,"Regular scripts ("+O(re.value.length)+")",1),R(p(Nn),{rows:re.value,columns:N},{"cell-state":x(({row:A})=>[R(p(_e),{variant:A.state==="enabled"?"success":"secondary"},{default:x(()=>[F(O(A.state),1)]),_:2},1032,["variant"])]),"cell-alias":x(({row:A})=>[R(w,{to:{name:"script-detail",params:{type:"regular",id:A.alias}},class:"script-link"},{default:x(()=>[F(O(A.alias),1)]),_:2},1032,["to"])]),_:1},8,["rows"])])):Q("",!0),b.value.code||_.value?(k(),B("div",hm,[v[13]||(v[13]=I("div",{class:"block-title"},"Source code",-1)),ye.value?(k(),G(kt,{key:0,text:"Loading source code"})):ne.value?(k(),G(ot,{key:1,title:"Code loading failed",error:ne.value,retry:te},null,8,["error"])):ce.value?(k(),B("pre",mm,[I("code",{class:"language-php",innerHTML:de.value},null,8,ym)])):(k(),G(nt,{key:3,title:"No code",message:"Source code is not available."}))])):Q("",!0)])):(k(),G(nt,{key:3,title:"Not found",message:"The requested script does not exist."})),R(p(tt),{open:p(i),title:"Assign to area","onUpdate:open":v[3]||(v[3]=A=>i.value=A)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:v[2]||(v[2]=A=>i.value=!1)},{default:x(()=>[...v[14]||(v[14]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"primary",icon:"ph-check",loading:p(u),onClick:pe},{default:x(()=>[...v[15]||(v[15]=[F(" Assign ",-1)])]),_:1},8,["loading"])]),default:x(()=>[R(p(is),{modelValue:p(l),"onUpdate:modelValue":v[1]||(v[1]=A=>Be(l)?l.value=A:null),label:"Area",options:p(o),icon:"ph-map-trifold"},null,8,["modelValue","options"]),p(c)?(k(),B("div",_m,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(p(c)),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),R(p(tt),{open:fe.value,title:"Unassign from area","onUpdate:open":v[5]||(v[5]=A=>fe.value=A)},{footer:x(()=>[R(p(ve),{variant:"secondary",onClick:v[4]||(v[4]=A=>fe.value=!1)},{default:x(()=>[...v[16]||(v[16]=[F("Cancel",-1)])]),_:1}),R(p(ve),{variant:"warning",icon:"ph-x-circle",loading:Ee.value,onClick:U},{default:x(()=>[...v[17]||(v[17]=[F(" Unassign ",-1)])]),_:1},8,["loading"])]),default:x(()=>[I("p",null,O(De.value),1),Re.value?(k(),B("div",bm,[R(p(Qe),{variant:"danger"},{default:x(()=>[F(O(Re.value),1)]),_:1})])):Q("",!0)]),_:1},8,["open"]),h.value&&b.value?(k(),G(Bl,{key:4,open:y.value,script:b.value,"onUpdate:open":v[6]||(v[6]=A=>y.value=A),onRun:v[7]||(v[7]=A=>H(A.alias,A.params))},null,8,["open","script"])):Q("",!0)])}}},Sm=qe(wm,[["__scopeId","data-v-e15a4826"]]),km={class:"page"},Am={key:3,class:"firmwares-panel"},xm={class:"firmwares-summary"},Cm={class:"firmwares-list"},Em={class:"firmware-header"},Rm={class:"firmware-id"},$m={class:"firmware-meta"},Tm={key:0,class:"firmware-desc"},Pm={key:1,class:"firmware-changelog"},Im={__name:"FirmwaresListPage",setup(e){const t=Hl(),n=Bt(),a=z(null);async function s(){var i;a.value=null;const o=await t.loadFirmwares();o.ok||(a.value=((i=o.error)==null?void 0:i.message)||"Failed to load catalog")}async function r(){var i;a.value=null;const o=await t.refreshFirmwares();o.ok||(a.value=((i=o.error)==null?void 0:i.message)||"Failed to refresh catalog")}return ht(s),(o,i)=>(k(),B("section",km,[R(p(At),{title:"Firmware Catalog",kicker:"Firmwares"},{actions:x(()=>[p(n).has("firmware.upload")?(k(),G(p(ve),{key:0,loading:p(t).isUpdating,icon:"ph-arrow-clockwise",onClick:r},{default:x(()=>[...i[0]||(i[0]=[F(" Refresh Catalog ",-1)])]),_:1},8,["loading"])):Q("",!0)]),_:1}),p(t).isLoadingList?(k(),G(kt,{key:0,text:"Loading firmware catalog"})):a.value?(k(),G(ot,{key:1,title:"Catalog loading failed",error:a.value,retry:s},null,8,["error"])):p(t).firmwares.length===0?(k(),G(nt,{key:2,title:"No firmwares found",message:"No firmware packages detected in the firmwares directory."})):(k(),B("div",Am,[I("div",xm,[R(p(_e),{variant:"primary"},{default:x(()=>[F("Total: "+O(p(t).firmwares.length),1)]),_:1})]),I("div",Cm,[(k(!0),B(xe,null,St(p(t).firmwares,l=>(k(),B("div",{key:l.id,class:"firmware-card"},[I("div",Em,[I("span",Rm,O(l.id),1),R(p(_e),{variant:"success"},{default:x(()=>[F(O(l.version),1)]),_:2},1024)]),I("div",$m,[R(p(_e),{variant:"secondary"},{default:x(()=>[F(O(l.device_type),1)]),_:2},1024),l.platform?(k(),G(p(_e),{key:0,variant:"info"},{default:x(()=>[F(O(l.platform),1)]),_:2},1024)):Q("",!0),l.channels?(k(),G(p(_e),{key:1,variant:"warning"},{default:x(()=>[F(O(l.channels)+" ch",1)]),_:2},1024)):Q("",!0)]),l.description?(k(),B("p",Tm,O(l.description),1)):Q("",!0),l.changelog?(k(),B("pre",Pm,O(l.changelog),1)):Q("",!0)]))),128))])]))]))}},Lm=qe(Im,[["__scopeId","data-v-c0c73f70"]]),ka={list(e){return Ie("/api/v1/modes/list",e)},active(e){return Ie("/api/v1/modes/active",e)},enable(e){return We(`/api/v1/modes/${encodeURIComponent(String(e))}/enable`)},disable(e){return We(`/api/v1/modes/${encodeURIComponent(String(e))}/disable`)}},Dm=dn("modes",()=>{const e=z([]),t=z([]),n=pt(),a=pt(),s=X(()=>n.isLoading.value),r=X(()=>n.error.value),o=X(()=>a.isLoading.value),i=X(()=>new Set(t.value)),l=m=>i.value.has(m);async function u(){return n.execute(async m=>{var h,$,_,S;const[g,y]=await Promise.all([ka.list({signal:m}),ka.active({signal:m})]);return g.ok?y.ok?(e.value=(($=(h=g.data)==null?void 0:h.data)==null?void 0:$.modes)||[],t.value=((S=(_=y.data)==null?void 0:_.data)==null?void 0:S.active)||[],{ok:!0}):y:g})}async function c(m){return a.execute(async()=>{const g=await ka.enable(m);if(g.ok){t.value.includes(m)||t.value.push(m);const y=e.value.find(h=>h.tag===m);y&&(y.is_active=!0)}return g})}async function d(m){return a.execute(async()=>{const g=await ka.disable(m);if(g.ok){t.value=t.value.filter(h=>h!==m);const y=e.value.find(h=>h.tag===m);y&&(y.is_active=!1)}return g})}async function f(m){return l(m)?d(m):c(m)}return{modes:e,activeTags:t,isLoading:s,error:r,isLoadingToggle:o,isActive:l,loadModes:u,enableMode:c,disableMode:d,toggleMode:f}}),Om={class:"page"},Fm={key:3,class:"modes-grid"},Nm={key:0},Mm={class:"mode-meta"},Um={__name:"ModesListPage",setup(e){const t=Dm(),n=fn(),a=z(null);ht(()=>{t.loadModes()});async function s(r){var i;a.value=r;const o=await t.toggleMode(r);a.value=null,o!=null&&o.ok?n.success({title:t.isActive(r)?`"${r}" enabled`:`"${r}" disabled`}):n.error({title:`Failed to toggle "${r}"`,text:((i=o==null?void 0:o.error)==null?void 0:i.message)||"Unknown error"})}return(r,o)=>(k(),B("section",Om,[R(p(At),{title:"Modes",kicker:"System"}),p(t).isLoading?(k(),G(kt,{key:0,text:"Loading modes"})):p(t).error?(k(),G(ot,{key:1,title:"Modes loading failed",error:p(t).error,retry:p(t).loadModes},null,8,["error","retry"])):p(t).modes.length===0?(k(),G(nt,{key:2,title:"No modes",message:"No system modes configured."})):(k(),B("div",Fm,[(k(!0),B(xe,null,St(p(t).modes,i=>(k(),B("div",{key:i.tag,class:"mode-card-item"},[R(p(kl),{title:i.label||i.tag},{default:x(()=>[i.description?(k(),B("p",Nm,O(i.description),1)):Q("",!0),I("div",Mm,[R(p(_e),{variant:p(t).isActive(i.tag)?"success":"secondary"},{default:x(()=>[F(O(p(t).isActive(i.tag)?"On":"Off"),1)]),_:2},1032,["variant"])])]),actions:x(()=>[R(p(ve),{variant:p(t).isActive(i.tag)?"danger":"primary",icon:p(t).isActive(i.tag)?"ph-moon":"ph-sun",loading:p(t).isLoadingToggle&&a.value===i.tag,onClick:l=>s(i.tag)},{default:x(()=>[F(O(p(t).isActive(i.tag)?"Disable":"Enable"),1)]),_:2},1032,["variant","icon","loading","onClick"])]),_:2},1032,["title"])]))),128))]))]))}},Vm=qe(Um,[["__scopeId","data-v-7fda8798"]]),Gl="/logo-cube-square.svg",Bm={class:"login-page"},jm={class:"login-card"},Hm={key:0,class:"login-loading text-muted"},Gm={__name:"LoginPage",setup(e){const t=en(),n=Un();ht(()=>{n.isAuthenticated&&t.replace({name:"areas-favorites"})});function a(){kr(Ar())}return(s,r)=>(k(),B("div",Bm,[I("div",jm,[r[2]||(r[2]=I("div",{class:"login-brand"},[I("img",{src:Gl,alt:"Smart Home",class:"brand-logo"}),I("h1",{class:"brand-title"},"Smart Home Server")],-1)),r[3]||(r[3]=I("p",{class:"login-hint text-muted"}," You need to sign in to access the smart home dashboard. ",-1)),R(p(ve),{variant:"primary",class:"login-btn",icon:"ph-sign-in",onClick:a},{default:x(()=>[...r[0]||(r[0]=[F(" LOGIN WITH GNEXUS ",-1)])]),_:1}),p(n).isLoading?(k(),B("p",Hm,[...r[1]||(r[1]=[I("i",{class:"ph ph-spinner ph-spin"},null,-1),F(" Checking session… ",-1)])])):Q("",!0)])]))}},qm=qe(Gm,[["__scopeId","data-v-7f18a357"]]),zm={class:"setup-page"},Km={class:"setup-card"},Wm={class:"setup-form"},Jm={key:0,class:"setup-error text-danger"},Ym={__name:"MobileSetupPage",setup(e){en();const t=z(""),n=z(""),a=z(!1),s=z("");async function r(){n.value="",s.value="";const o=t.value.trim();if(!o){n.value="Server URL is required";return}let i=o;/^https?:\/\//i.test(i)||(i="http://"+i);try{new URL(i)}catch{n.value="Invalid URL format";return}a.value=!0;try{const l=[`${i}/api/v1/about`,`${i}/about`];let u=!1;for(const c of l)try{const d=new AbortController,f=setTimeout(()=>d.abort(),5e3),m=await fetch(c,{method:"GET",signal:d.signal});if(clearTimeout(f),m.ok||m.status===401){u=!0;break}}catch{}if(!u){s.value="Could not connect to server. Please check the address.",a.value=!1;return}await vp(i),alert("Server address saved. Please restart the app to continue."),Gs.exitApp();return}catch{s.value="Connection check failed. Please try again.",a.value=!1}}return(o,i)=>(k(),B("div",zm,[I("div",Km,[i[3]||(i[3]=Dc('<div class="setup-brand" data-v-a50065c7><img src="'+Gl+'" alt="Smart Home" class="brand-logo" data-v-a50065c7><h1 class="brand-title" data-v-a50065c7>Smart Home</h1><p class="brand-subtitle text-muted" data-v-a50065c7>Mobile App Setup</p></div><div class="setup-divider text-muted" data-v-a50065c7></div><p class="setup-hint text-muted" data-v-a50065c7> Enter the address of your Smart Home server. Example: <code class="text-info" data-v-a50065c7>https://shserv.home</code> or <code class="text-info" data-v-a50065c7>http://192.168.1.10</code></p>',3)),I("div",Wm,[R(p(bt),{modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=l=>t.value=l),label:"Server URL",placeholder:"https://your-server.com",error:n.value,onKeyup:hd(r,["enter"])},null,8,["modelValue","error"]),R(p(ve),{variant:"primary",size:"lg",class:"setup-btn",loading:a.value,onClick:r},{icon:x(()=>[...i[1]||(i[1]=[I("i",{class:"ph ph-check"},null,-1)])]),default:x(()=>[F(" "+O(a.value?"Checking connection…":"Save and continue"),1)]),_:1},8,["loading"])]),s.value?(k(),B("p",Jm,[i[2]||(i[2]=I("i",{class:"ph ph-warning-circle"},null,-1)),F(" "+O(s.value),1)])):Q("",!0)])]))}},Xm=qe(Ym,[["__scopeId","data-v-a50065c7"]]),Zm={class:"mobile-auth-page"},Qm={class:"mobile-auth-card"},ey={class:"text-muted"},ty={__name:"MobileAuthPage",setup(e){const t=en(),n=Un(),a=z("Authenticating…");return ht(async()=>{const s=window.location.hash,r=s.indexOf("?");if(r===-1){a.value="Invalid login link. Redirecting…",setTimeout(()=>t.replace({name:"login"}),1500);return}const o=new URLSearchParams(s.slice(r+1)),i=o.get("token"),l=o.get("expires_in");if(!i){a.value="No token received. Redirecting…",setTimeout(()=>t.replace({name:"login"}),1500);return}os(i,l?parseInt(l,10):null);const u=s.slice(0,r);window.history.replaceState(null,"",u||"#/"),a.value="Loading profile…";try{await n.init(),n.isAuthenticated?t.replace({name:"areas-favorites"}):(a.value="Session invalid. Redirecting…",setTimeout(()=>t.replace({name:"login"}),1500))}catch{a.value="Failed to load profile. Redirecting…",setTimeout(()=>t.replace({name:"login"}),1500)}}),(s,r)=>(k(),B("div",Zm,[I("div",Qm,[r[0]||(r[0]=I("div",{class:"spinner"},null,-1)),I("p",ey,O(a.value),1)])]))}},ny=qe(ty,[["__scopeId","data-v-9c0afc74"]]),ay=[{path:"/",redirect:"/areas/favorites"},{path:"/login",name:"login",component:qm,meta:{public:!0}},{path:"/mobile-setup",name:"mobile-setup",component:Xm,meta:{public:!0}},{path:"/mobile-auth",name:"mobile-auth",component:ny,meta:{public:!0}},{path:"/areas/favorites",name:"areas-favorites",component:Kp,meta:{permission:"areas.view"}},{path:"/areas/tree",name:"areas-tree",component:uv,meta:{permission:"areas.view"}},{path:"/areas/:id",name:"area-detail",component:Eg,meta:{permission:"areas.view"}},{path:"/devices",name:"devices",component:Lg,meta:{permission:"devices.view"}},{path:"/devices/scanning",name:"devices-scanning",component:Jg,meta:{permission:"devices.scan"}},{path:"/devices/:id",name:"device-detail",component:Oh,meta:{permission:"devices.view"}},{path:"/scripts/actions",name:"scripts-actions",component:Mh,meta:{permission:"scripts.run"}},{path:"/scripts/regular",name:"scripts-regular",component:Bh,meta:{permission:"scripts.view"}},{path:"/scripts/scopes",name:"scripts-scopes",component:qh,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:Lm,meta:{permission:"firmware.view"}},{path:"/modes",name:"modes",component:Vm,meta:{permission:"scripts.view"}},{path:"/:pathMatch(.*)*",name:"not-found",component:()=>hr(()=>import("./NotFoundPage-4EZcu9ZU.js"),[])}],Kn="[vue:router]",Wn=Sr(),ql=zf({history:xf(),routes:ay});ql.beforeEach(async(e,t,n)=>{var r,o;if(Ut()&&e.name!=="mobile-setup")try{if(!await hp()){Wn&&console.debug(Kn,"Redirect: native app missing server URL → mobile-setup"),n({name:"mobile-setup"});return}}catch{if(e.name!=="mobile-setup"){n({name:"mobile-setup"});return}}const a=Un();if(Wn&&console.debug(Kn,`Navigate: ${t.fullPath||"init"} → ${e.fullPath}`),await a.init(),(r=e.meta)!=null&&r.public){if(e.name==="login"&&a.isAuthenticated){Wn&&console.debug(Kn,"Redirect: authenticated user at login → areas-favorites"),n({name:"areas-favorites"});return}n();return}if(!a.isAuthenticated){Wn&&console.debug(Kn,"Redirect: unauthenticated → login"),n({name:"login"});return}const s=(o=e.meta)==null?void 0:o.permission;if(s&&!a.hasPermission(s)){Wn&&console.warn(Kn,`Forbidden: ${e.fullPath} requires ${s}`),n({name:"areas-favorites"});return}n()});function sy(e){const t="[vue:error]";e.config.errorHandler=(n,a,s)=>{const r=(n==null?void 0:n.message)||String(n);console.error(t,`Vue ${s}`,r,(n==null?void 0:n.stack)||"")},window.addEventListener("unhandledrejection",n=>{var r;const a=n.reason,s=(a==null?void 0:a.message)||((r=a==null?void 0:a.error)==null?void 0:r.message)||String(a);console.error(t,"Unhandled rejection:",s,(a==null?void 0:a.stack)||""),n.preventDefault()}),window.addEventListener("error",n=>{const a=n.error,s=(a==null?void 0:a.message)||n.message||"Unknown error";console.error(t,`Global error: ${s}`,`at ${n.filename}:${n.lineno}:${n.colno}`,(a==null?void 0:a.stack)||"")})}const $s="[vue:pinia]",ry=e=>{if(!Sr())return;const{store:t,options:n}=e,a=n.id,s=Object.keys(n.actions||{});for(const r of s){const o=t[r];t[r]=async function(...i){console.debug($s,`${a}.${r}(${i.map(u=>Pl(u)).join(", ")})`);const l=performance.now();try{const u=await o.apply(this,i);return console.debug($s,`${a}.${r} completed in ${(performance.now()-l).toFixed(1)}ms`),u}catch(u){throw console.error($s,`${a}.${r} failed: ${(u==null?void 0:u.message)||u}`),u}}}};function Ki(e){try{const t=new URL(e);if(t.host==="auth"&&t.pathname==="/callback"){const n=t.searchParams.get("token"),a=t.searchParams.get("expires_in");n&&(os(n,a?parseInt(a,10):null),window.location.reload())}}catch{}}async function iy(){if(await pp(),await mp(),Ut()){try{const a=await Gs.getLaunchUrl();if(a!=null&&a.url){Ki(a.url);return}}catch{}Gs.addListener("appUrlOpen",a=>{Ki(a.url)})}const e=_d(Ip);sy(e);const t=Sd();t.use(ry),e.use(t).use(ql),await Un().init(),e.mount("#app")}iy();export{np as G,mr as W,R as a,B as c,k as o,p as u};