@fdm-monster/client-next 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var cD=Object.defineProperty;var RS=e=>{throw TypeError(e)};var dD=(e,t,n)=>t in e?cD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var he=(e,t,n)=>dD(e,typeof t!="symbol"?t+"":t,n),Om=(e,t,n)=>t.has(e)||RS("Cannot "+n);var H=(e,t,n)=>(Om(e,t,"read from private field"),n?n.call(e):t.get(e)),ze=(e,t,n)=>t.has(e)?RS("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),De=(e,t,n,r)=>(Om(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),st=(e,t,n)=>(Om(e,t,"access private method"),n);var Yd=(e,t,n,r)=>({set _(s){De(e,t,s,n)},get _(){return H(e,t,r)}});(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="
|
|
1
|
+
var cD=Object.defineProperty;var RS=e=>{throw TypeError(e)};var dD=(e,t,n)=>t in e?cD(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var he=(e,t,n)=>dD(e,typeof t!="symbol"?t+"":t,n),Om=(e,t,n)=>t.has(e)||RS("Cannot "+n);var H=(e,t,n)=>(Om(e,t,"read from private field"),n?n.call(e):t.get(e)),ze=(e,t,n)=>t.has(e)?RS("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),De=(e,t,n,r)=>(Om(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),st=(e,t,n)=>(Om(e,t,"access private method"),n);var Yd=(e,t,n,r)=>({set _(s){De(e,t,s,n)},get _(){return H(e,t,r)}});(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="adc1b462-32be-4e99-881c-81ba79a69a43",e._sentryDebugIdIdentifier="sentry-dbid-adc1b462-32be-4e99-881c-81ba79a69a43")}catch{}})();var fD=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};fD.SENTRY_RELEASE={id:"08d8b208d401d9d2a844d3699570b3e17969bb5e"};(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();/**
|
|
2
2
|
* @vue/shared v3.5.12
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
@@ -64,7 +64,7 @@ ${t.map((s,i)=>`${(i===0?"---> ":z8(" ",5+i*2))+(Array.isArray(s)?`${Rc(s[0])}..
|
|
|
64
64
|
* vue-router v4.4.5
|
|
65
65
|
* (c) 2024 Eduardo San Martin Morote
|
|
66
66
|
* @license MIT
|
|
67
|
-
*/const El=typeof document<"u";function eO(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function p7(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&eO(e.default)}const Tt=Object.assign;function kg(e,t){const n={};for(const r in t){const s=t[r];n[r]=Is(s)?s.map(e):e(s)}return n}const Ic=()=>{},Is=Array.isArray,tO=/#/g,m7=/&/g,g7=/\//g,v7=/=/g,y7=/\?/g,nO=/\+/g,b7=/%5B/g,w7=/%5D/g,rO=/%5E/g,S7=/%60/g,sO=/%7B/g,_7=/%7C/g,iO=/%7D/g,k7=/%20/g;function zw(e){return encodeURI(""+e).replace(_7,"|").replace(b7,"[").replace(w7,"]")}function x7(e){return zw(e).replace(sO,"{").replace(iO,"}").replace(rO,"^")}function Dy(e){return zw(e).replace(nO,"%2B").replace(k7,"+").replace(tO,"%23").replace(m7,"%26").replace(S7,"`").replace(sO,"{").replace(iO,"}").replace(rO,"^")}function E7(e){return Dy(e).replace(v7,"%3D")}function C7(e){return zw(e).replace(tO,"%23").replace(y7,"%3F")}function P7(e){return e==null?"":C7(e).replace(g7,"%2F")}function ud(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const T7=/\/$/,R7=e=>e.replace(T7,"");function xg(e,t,n="/"){let r,s={},i="",o="";const a=t.indexOf("#");let l=t.indexOf("?");return a<l&&a>=0&&(l=-1),l>-1&&(r=t.slice(0,l),i=t.slice(l+1,a>-1?a:t.length),s=e(i)),a>-1&&(r=r||t.slice(0,a),o=t.slice(a,t.length)),r=M7(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:ud(o)}}function I7(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ck(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function A7(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&bu(t.matched[r],n.matched[s])&&oO(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function bu(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oO(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!O7(e[n],t[n]))return!1;return!0}function O7(e,t){return Is(e)?dk(e,t):Is(t)?dk(t,e):e===t}function dk(e,t){return Is(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function M7(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,a;for(o=0;o<r.length;o++)if(a=r[o],a!==".")if(a==="..")i>1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const Yi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var cd;(function(e){e.pop="pop",e.push="push"})(cd||(cd={}));var Ac;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ac||(Ac={}));function D7(e){if(!e)if(El){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),R7(e)}const L7=/^[^#]+#/;function $7(e,t){return e.replace(L7,"#")+t}function F7(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const gm=()=>({left:window.scrollX,top:window.scrollY});function N7(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=F7(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 fk(e,t){return(history.state?history.state.position-t:-1)+e}const Ly=new Map;function B7(e,t){Ly.set(e,t)}function V7(e){const t=Ly.get(e);return Ly.delete(e),t}let U7=()=>location.protocol+"//"+location.host;function aO(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let a=s.includes(e.slice(i))?e.slice(i).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),ck(l,"")}return ck(n,e)+r+s}function z7(e,t,n,r){let s=[],i=[],o=null;const a=({state:f})=>{const p=aO(e,location),m=n.value,g=t.value;let y=0;if(f){if(n.value=p,t.value=f,o&&o===m){o=null;return}y=g?f.position-g.position:0}else r(p);s.forEach(b=>{b(n.value,m,{delta:y,type:cd.pop,direction:y?y>0?Ac.forward:Ac.back:Ac.unknown})})};function l(){o=n.value}function u(f){s.push(f);const p=()=>{const m=s.indexOf(f);m>-1&&s.splice(m,1)};return i.push(p),p}function d(){const{history:f}=window;f.state&&f.replaceState(Tt({},f.state,{scroll:gm()}),"")}function c(){for(const f of i)f();i=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",d,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function hk(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?gm():null}}function H7(e){const{history:t,location:n}=window,r={value:aO(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(l,u,d){const c=e.indexOf("#"),f=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+l:U7()+e+l;try{t[d?"replaceState":"pushState"](u,"",f),s.value=u}catch(p){console.error(p),n[d?"replace":"assign"](f)}}function o(l,u){const d=Tt({},t.state,hk(s.value.back,l,s.value.forward,!0),u,{position:s.value.position});i(l,d,!0),r.value=l}function a(l,u){const d=Tt({},s.value,t.state,{forward:l,scroll:gm()});i(d.current,d,!0);const c=Tt({},hk(r.value,l,null),{position:d.position+1},u);i(l,c,!1),r.value=l}return{location:r,state:s,push:a,replace:o}}function j7(e){e=D7(e);const t=H7(e),n=z7(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=Tt({location:"",base:e,go:r,createHref:$7.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 W7(e){return typeof e=="string"||e&&typeof e=="object"}function lO(e){return typeof e=="string"||typeof e=="symbol"}const uO=Symbol("");var pk;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(pk||(pk={}));function wu(e,t){return Tt(new Error,{type:e,[uO]:!0},t)}function vi(e,t){return e instanceof Error&&uO in e&&(t==null||!!(e.type&t))}const mk="[^/]+?",q7={sensitive:!1,strict:!1,start:!0,end:!0},G7=/[.+*?^${}()[\]/\\]/g;function K7(e,t){const n=Tt({},q7,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const d=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let c=0;c<u.length;c++){const f=u[c];let p=40+(n.sensitive?.25:0);if(f.type===0)c||(s+="/"),s+=f.value.replace(G7,"\\$&"),p+=40;else if(f.type===1){const{value:m,repeatable:g,optional:y,regexp:b}=f;i.push({name:m,repeatable:g,optional:y});const _=b||mk;if(_!==mk){p+=10;try{new RegExp(`(${_})`)}catch(T){throw new Error(`Invalid custom RegExp for param "${m}" (${_}): `+T.message)}}let S=g?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;c||(S=y&&u.length<2?`(?:/${S})`:"/"+S),y&&(S+="?"),s+=S,p+=20,y&&(p+=-8),g&&(p+=-20),_===".*"&&(p+=-50)}d.push(p)}r.push(d)}if(n.strict&&n.end){const u=r.length-1;r[u][r[u].length-1]+=.7000000000000001}n.strict||(s+="/?"),n.end?s+="$":n.strict&&(s+="(?:/|$)");const o=new RegExp(s,n.sensitive?"":"i");function a(u){const d=u.match(o),c={};if(!d)return null;for(let f=1;f<d.length;f++){const p=d[f]||"",m=i[f-1];c[m.name]=p&&m.repeatable?p.split("/"):p}return c}function l(u){let d="",c=!1;for(const f of e){(!c||!d.endsWith("/"))&&(d+="/"),c=!1;for(const p of f)if(p.type===0)d+=p.value;else if(p.type===1){const{value:m,repeatable:g,optional:y}=p,b=m in u?u[m]:"";if(Is(b)&&!g)throw new Error(`Provided param "${m}" is an array but it is not repeatable (* or + modifiers)`);const _=Is(b)?b.join("/"):b;if(!_)if(y)f.length<2&&(d.endsWith("/")?d=d.slice(0,-1):c=!0);else throw new Error(`Missing required param "${m}"`);d+=_}}return d||"/"}return{re:o,score:r,keys:i,parse:a,stringify:l}}function Y7(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function cO(e,t){let n=0;const r=e.score,s=t.score;for(;n<r.length&&n<s.length;){const i=Y7(r[n],s[n]);if(i)return i;n++}if(Math.abs(s.length-r.length)===1){if(gk(r))return 1;if(gk(s))return-1}return s.length-r.length}function gk(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const X7={type:0,value:""},Q7=/[a-zA-Z0-9_]/;function J7(e){if(!e)return[[]];if(e==="/")return[[X7]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let a=0,l,u="",d="";function c(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:d,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;a<e.length;){if(l=e[a++],l==="\\"&&n!==2){r=n,n=4;continue}switch(n){case 0:l==="/"?(u&&c(),o()):l===":"?(c(),n=1):f();break;case 4:f(),n=r;break;case 1:l==="("?n=2:Q7.test(l)?f():(c(),n=0,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case 2:l===")"?d[d.length-1]=="\\"?d=d.slice(0,-1)+l:n=3:d+=l;break;case 3:c(),n=0,l!=="*"&&l!=="?"&&l!=="+"&&a--,d="";break;default:t("Unknown state");break}}return n===2&&t(`Unfinished custom RegExp for param "${u}"`),c(),o(),s}function Z7(e,t,n){const r=K7(J7(e.path),n),s=Tt(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function eK(e,t){const n=[],r=new Map;t=wk({strict:!1,end:!0,sensitive:!1},t);function s(c){return r.get(c)}function i(c,f,p){const m=!p,g=yk(c);g.aliasOf=p&&p.record;const y=wk(t,c),b=[g];if("alias"in c){const T=typeof c.alias=="string"?[c.alias]:c.alias;for(const E of T)b.push(yk(Tt({},g,{components:p?p.record.components:g.components,path:E,aliasOf:p?p.record:g})))}let _,S;for(const T of b){const{path:E}=T;if(f&&E[0]!=="/"){const R=f.record.path,P=R[R.length-1]==="/"?"":"/";T.path=f.record.path+(E&&P+E)}if(_=Z7(T,f,y),p?p.alias.push(_):(S=S||_,S!==_&&S.alias.push(_),m&&c.name&&!bk(_)&&o(c.name)),dO(_)&&l(_),g.children){const R=g.children;for(let P=0;P<R.length;P++)i(R[P],_,p&&p.children[P])}p=p||_}return S?()=>{o(S)}:Ic}function o(c){if(lO(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function a(){return n}function l(c){const f=rK(c,n);n.splice(f,0,c),c.record.name&&!bk(c)&&r.set(c.record.name,c)}function u(c,f){let p,m={},g,y;if("name"in c&&c.name){if(p=r.get(c.name),!p)throw wu(1,{location:c});y=p.record.name,m=Tt(vk(f.params,p.keys.filter(S=>!S.optional).concat(p.parent?p.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),c.params&&vk(c.params,p.keys.map(S=>S.name))),g=p.stringify(m)}else if(c.path!=null)g=c.path,p=n.find(S=>S.re.test(g)),p&&(m=p.parse(g),y=p.record.name);else{if(p=f.name?r.get(f.name):n.find(S=>S.re.test(f.path)),!p)throw wu(1,{location:c,currentLocation:f});y=p.record.name,m=Tt({},f.params,c.params),g=p.stringify(m)}const b=[];let _=p;for(;_;)b.unshift(_.record),_=_.parent;return{name:y,path:g,params:m,matched:b,meta:nK(b)}}e.forEach(c=>i(c));function d(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:d,getRoutes:a,getRecordMatcher:s}}function vk(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function yk(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:tK(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 tK(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function bk(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function nK(e){return e.reduce((t,n)=>Tt(t,n.meta),{})}function wk(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function rK(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;cO(e,t[i])<0?r=i:n=i+1}const s=sK(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function sK(e){let t=e;for(;t=t.parent;)if(dO(t)&&cO(e,t)===0)return t}function dO({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function iK(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<r.length;++s){const i=r[s].replace(nO," "),o=i.indexOf("="),a=ud(o<0?i:i.slice(0,o)),l=o<0?null:ud(i.slice(o+1));if(a in t){let u=t[a];Is(u)||(u=t[a]=[u]),u.push(l)}else t[a]=l}return t}function Sk(e){let t="";for(let n in e){const r=e[n];if(n=E7(n),r==null){r!==void 0&&(t+=(t.length?"&":"")+n);continue}(Is(r)?r.map(i=>i&&Dy(i)):[r&&Dy(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function oK(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Is(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const aK=Symbol(""),_k=Symbol(""),vm=Symbol(""),Hw=Symbol(""),$y=Symbol("");function ec(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function lo(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const u=f=>{f===!1?l(wu(4,{from:n,to:t})):f instanceof Error?l(f):W7(f)?l(wu(2,{from:t,to:f})):(o&&r.enterCallbacks[s]===o&&typeof f=="function"&&o.push(f),a())},d=i(()=>e.call(r&&r.instances[s],t,n,u));let c=Promise.resolve(d);e.length<3&&(c=c.then(u)),c.catch(f=>l(f))})}function Eg(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const a in o.components){let l=o.components[a];if(!(t!=="beforeRouteEnter"&&!o.instances[a]))if(eO(l)){const d=(l.__vccOpts||l)[t];d&&i.push(lo(d,n,r,o,a,s))}else{let u=l();i.push(()=>u.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${a}" at "${o.path}"`);const c=p7(d)?d.default:d;o.mods[a]=d,o.components[a]=c;const p=(c.__vccOpts||c)[t];return p&&lo(p,n,r,o,a,s)()}))}}return i}function kk(e){const t=Qe(vm),n=Qe(Hw),r=I(()=>{const l=ue(e.to);return t.resolve(l)}),s=I(()=>{const{matched:l}=r.value,{length:u}=l,d=l[u-1],c=n.matched;if(!d||!c.length)return-1;const f=c.findIndex(bu.bind(null,d));if(f>-1)return f;const p=xk(l[u-2]);return u>1&&xk(d)===p&&c[c.length-1].path!==p?c.findIndex(bu.bind(null,l[u-2])):f}),i=I(()=>s.value>-1&&dK(n.params,r.value.params)),o=I(()=>s.value>-1&&s.value===n.matched.length-1&&oO(n.params,r.value.params));function a(l={}){return cK(l)?t[ue(e.replace)?"replace":"push"](ue(e.to)).catch(Ic):Promise.resolve()}return{route:r,href:I(()=>r.value.href),isActive:i,isExactActive:o,navigate:a}}const lK=$e({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"}},useLink:kk,setup(e,{slots:t}){const n=yn(kk(e)),{options:r}=Qe(vm),s=I(()=>({[Ek(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ek(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&t.default(n);return e.custom?i:Ar("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),uK=lK;function cK(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 dK(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Is(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function xk(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ek=(e,t,n)=>e??t??n,fK=$e({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Qe($y),s=I(()=>e.route||r.value),i=Qe(_k,0),o=I(()=>{let u=ue(i);const{matched:d}=s.value;let c;for(;(c=d[u])&&!c.components;)u++;return u}),a=I(()=>s.value.matched[o.value]);Kt(_k,I(()=>o.value+1)),Kt(aK,a),Kt($y,s);const l=z();return Ce(()=>[l.value,a.value,e.name],([u,d,c],[f,p,m])=>{d&&(d.instances[c]=u,p&&p!==d&&u&&u===f&&(d.leaveGuards.size||(d.leaveGuards=p.leaveGuards),d.updateGuards.size||(d.updateGuards=p.updateGuards))),u&&d&&(!p||!bu(d,p)||!f)&&(d.enterCallbacks[c]||[]).forEach(g=>g(u))},{flush:"post"}),()=>{const u=s.value,d=e.name,c=a.value,f=c&&c.components[d];if(!f)return Ck(n.default,{Component:f,route:u});const p=c.props[d],m=p?p===!0?u.params:typeof p=="function"?p(u):p:null,y=Ar(f,Tt({},m,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(c.instances[d]=null)},ref:l}));return Ck(n.default,{Component:y,route:u})||y}}});function Ck(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hK=fK;function pK(e){const t=eK(e.routes,e),n=e.parseQuery||iK,r=e.stringifyQuery||Sk,s=e.history,i=ec(),o=ec(),a=ec(),l=Me(Yi);let u=Yi;El&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=kg.bind(null,J=>""+J),c=kg.bind(null,P7),f=kg.bind(null,ud);function p(J,be){let we,ne;return lO(J)?(we=t.getRecordMatcher(J),ne=be):ne=J,t.addRoute(ne,we)}function m(J){const be=t.getRecordMatcher(J);be&&t.removeRoute(be)}function g(){return t.getRoutes().map(J=>J.record)}function y(J){return!!t.getRecordMatcher(J)}function b(J,be){if(be=Tt({},be||l.value),typeof J=="string"){const N=xg(n,J,be.path),ee=t.resolve({path:N.path},be),re=s.createHref(N.fullPath);return Tt(N,ee,{params:f(ee.params),hash:ud(N.hash),redirectedFrom:void 0,href:re})}let we;if(J.path!=null)we=Tt({},J,{path:xg(n,J.path,be.path).path});else{const N=Tt({},J.params);for(const ee in N)N[ee]==null&&delete N[ee];we=Tt({},J,{params:c(N)}),be.params=c(be.params)}const ne=t.resolve(we,be),X=J.hash||"";ne.params=d(f(ne.params));const He=I7(r,Tt({},J,{hash:x7(X),path:ne.path})),F=s.createHref(He);return Tt({fullPath:He,hash:X,query:r===Sk?oK(J.query):J.query||{}},ne,{redirectedFrom:void 0,href:F})}function _(J){return typeof J=="string"?xg(n,J,l.value.path):Tt({},J)}function S(J,be){if(u!==J)return wu(8,{from:be,to:J})}function T(J){return P(J)}function E(J){return T(Tt(_(J),{replace:!0}))}function R(J){const be=J.matched[J.matched.length-1];if(be&&be.redirect){const{redirect:we}=be;let ne=typeof we=="function"?we(J):we;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=_(ne):{path:ne},ne.params={}),Tt({query:J.query,hash:J.hash,params:ne.path!=null?{}:J.params},ne)}}function P(J,be){const we=u=b(J),ne=l.value,X=J.state,He=J.force,F=J.replace===!0,N=R(we);if(N)return P(Tt(_(N),{state:typeof N=="object"?Tt({},X,N.state):X,force:He,replace:F}),be||we);const ee=we;ee.redirectedFrom=be;let re;return!He&&A7(r,ne,we)&&(re=wu(16,{to:ee,from:ne}),Z(ne,ne,!0,!1)),(re?Promise.resolve(re):C(ee,ne)).catch(ie=>vi(ie)?vi(ie,2)?ie:W(ie):G(ie,ee,ne)).then(ie=>{if(ie){if(vi(ie,2))return P(Tt({replace:F},_(ie.to),{state:typeof ie.to=="object"?Tt({},X,ie.to.state):X,force:He}),be||ee)}else ie=A(ee,ne,!0,F,X);return O(ee,ne,ie),ie})}function x(J,be){const we=S(J,be);return we?Promise.reject(we):Promise.resolve()}function w(J){const be=pe.values().next().value;return be&&typeof be.runWithContext=="function"?be.runWithContext(J):J()}function C(J,be){let we;const[ne,X,He]=mK(J,be);we=Eg(ne.reverse(),"beforeRouteLeave",J,be);for(const N of ne)N.leaveGuards.forEach(ee=>{we.push(lo(ee,J,be))});const F=x.bind(null,J,be);return we.push(F),oe(we).then(()=>{we=[];for(const N of i.list())we.push(lo(N,J,be));return we.push(F),oe(we)}).then(()=>{we=Eg(X,"beforeRouteUpdate",J,be);for(const N of X)N.updateGuards.forEach(ee=>{we.push(lo(ee,J,be))});return we.push(F),oe(we)}).then(()=>{we=[];for(const N of He)if(N.beforeEnter)if(Is(N.beforeEnter))for(const ee of N.beforeEnter)we.push(lo(ee,J,be));else we.push(lo(N.beforeEnter,J,be));return we.push(F),oe(we)}).then(()=>(J.matched.forEach(N=>N.enterCallbacks={}),we=Eg(He,"beforeRouteEnter",J,be,w),we.push(F),oe(we))).then(()=>{we=[];for(const N of o.list())we.push(lo(N,J,be));return we.push(F),oe(we)}).catch(N=>vi(N,8)?N:Promise.reject(N))}function O(J,be,we){a.list().forEach(ne=>w(()=>ne(J,be,we)))}function A(J,be,we,ne,X){const He=S(J,be);if(He)return He;const F=be===Yi,N=El?history.state:{};we&&(ne||F?s.replace(J.fullPath,Tt({scroll:F&&N&&N.scroll},X)):s.push(J.fullPath,X)),l.value=J,Z(J,be,we,F),W()}let M;function L(){M||(M=s.listen((J,be,we)=>{if(!le.listening)return;const ne=b(J),X=R(ne);if(X){P(Tt(X,{replace:!0}),ne).catch(Ic);return}u=ne;const He=l.value;El&&B7(fk(He.fullPath,we.delta),gm()),C(ne,He).catch(F=>vi(F,12)?F:vi(F,2)?(P(F.to,ne).then(N=>{vi(N,20)&&!we.delta&&we.type===cd.pop&&s.go(-1,!1)}).catch(Ic),Promise.reject()):(we.delta&&s.go(-we.delta,!1),G(F,ne,He))).then(F=>{F=F||A(ne,He,!1),F&&(we.delta&&!vi(F,8)?s.go(-we.delta,!1):we.type===cd.pop&&vi(F,20)&&s.go(-1,!1)),O(ne,He,F)}).catch(Ic)}))}let U=ec(),B=ec(),q;function G(J,be,we){W(J);const ne=B.list();return ne.length?ne.forEach(X=>X(J,be,we)):console.error(J),Promise.reject(J)}function V(){return q&&l.value!==Yi?Promise.resolve():new Promise((J,be)=>{U.add([J,be])})}function W(J){return q||(q=!J,L(),U.list().forEach(([be,we])=>J?we(J):be()),U.reset()),J}function Z(J,be,we,ne){const{scrollBehavior:X}=e;if(!El||!X)return Promise.resolve();const He=!we&&V7(fk(J.fullPath,0))||(ne||!we)&&history.state&&history.state.scroll||null;return At().then(()=>X(J,be,He)).then(F=>F&&N7(F)).catch(F=>G(F,J,be))}const j=J=>s.go(J);let Y;const pe=new Set,le={currentRoute:l,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:y,getRoutes:g,resolve:b,options:e,push:T,replace:E,go:j,back:()=>j(-1),forward:()=>j(1),beforeEach:i.add,beforeResolve:o.add,afterEach:a.add,onError:B.add,isReady:V,install(J){const be=this;J.component("RouterLink",uK),J.component("RouterView",hK),J.config.globalProperties.$router=be,Object.defineProperty(J.config.globalProperties,"$route",{enumerable:!0,get:()=>ue(l)}),El&&!Y&&l.value===Yi&&(Y=!0,T(s.location).catch(X=>{}));const we={};for(const X in Yi)Object.defineProperty(we,X,{get:()=>l.value[X],enumerable:!0});J.provide(vm,be),J.provide(Hw,kp(we)),J.provide($y,l);const ne=J.unmount;pe.add(J),J.unmount=function(){pe.delete(J),pe.size<1&&(u=Yi,M&&M(),M=null,l.value=Yi,Y=!1,q=!1),ne()}}};function oe(J){return J.reduce((be,we)=>be.then(()=>w(we)),Promise.resolve())}return le}function mK(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;o<i;o++){const a=t.matched[o];a&&(e.matched.find(u=>bu(u,a))?r.push(a):n.push(a));const l=e.matched[o];l&&(t.matched.find(u=>bu(u,l))||s.push(l))}return[n,r,s]}function Qo(){return Qe(vm)}function fO(e){return Qe(Hw)}const gK={class:"text-center"},vK={class:"float-end"},yK=$e({__name:"PrintJobsMenu",setup(e){const t=fr(),n=z(""),r=z(!1),s=I(()=>t.printersWithJob.filter(a=>{var p,m,g,y;const l=(m=(p=a.job)==null?void 0:p.job)==null?void 0:m.file.name,u=(l==null?void 0:l.toLowerCase())||"",d=((g=a.printer.printerURL)==null?void 0:g.toLowerCase())||"",c=((y=a.printer.name)==null?void 0:y.toLowerCase())||"",f=`${u} ${d} ${c}`;return!n.value||f.includes(n.value.toLowerCase())})),i=I(()=>s.value.length||0);function o(a){return a?a==null?void 0:a.toFixed(0):""}return Ce(r,()=>{n.value=""}),(a,l)=>($(),Se("div",gK,[h(Wd,{modelValue:ue(r),"onUpdate:modelValue":l[3]||(l[3]=u=>tt(r)?r.value=u:null),"close-on-content-click":!1,"nudge-width":400,location:"bottom right","offset-x":"","offset-y":"",transition:"slide-x-transition"},{activator:v(({props:u})=>[h(se,ve({color:ue(i)?"green":"secondary",dark:""},u),{default:v(()=>[D("span",null," Print jobs "+ae(ue(i)?`(${ue(i)})`:""),1),h(K,{end:""},{default:v(()=>l[4]||(l[4]=[k(" work ")])),_:1})]),_:2},1040,["color"])]),default:v(()=>[h(kt,{class:"d-flex flex-column","min-width":"300"},{default:v(()=>[h(Yt,{style:{"overflow-y":"hidden","flex-shrink":"0"}},{default:v(()=>[h(Fe,null,{prepend:v(()=>[h(lt,{class:"font-weight-bold",color:"primary",size:"44"},{default:v(()=>[k(ae(ue(i)),1)]),_:1})]),default:v(()=>[h(ut,null,{default:v(()=>[l[7]||(l[7]=k(" Print Jobs ")),D("span",vK,[h(se,{variant:"tonal",onClick:l[0]||(l[0]=u=>r.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>l[5]||(l[5]=[k("close")])),_:1}),l[6]||(l[6]=k("Close "))]),_:1})])]),_:1}),h(id,{class:"mt-2"},{default:v(()=>[h(mt,{modelValue:ue(n),"onUpdate:modelValue":l[1]||(l[1]=u=>tt(n)?n.value=u:null),autofocus:"",class:"p-2",clearable:"",label:"Search jobs or printers","persistent-placeholder":"",placeholder:"Type part of a filename or printer name to search","prepend-icon":"search",style:{"min-width":"900px"}},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{style:{"overflow-y":"auto","flex-shrink":"1"}},{default:v(()=>[ue(i)?me("",!0):($(),Q(Fe,{key:0},{default:v(()=>l[8]||(l[8]=[k(" No active prints ")])),_:1})),($(!0),Se(Te,null,Gt(ue(s),({printer:u,job:d})=>($(),Q(Fe,{key:u.id,lines:"two"},{prepend:v(()=>[h(lt,{size:"70"},{default:v(()=>{var c;return[h(Rd,{"model-value":(c=d==null?void 0:d.progress)==null?void 0:c.completion,width:5,color:"green",size:"50"},{default:v(()=>{var f;return[k(ae(o((f=d.progress)==null?void 0:f.completion)+"%"||""),1)]}),_:2},1032,["model-value"])]}),_:2},1024)]),default:v(()=>[h(ut,null,{default:v(()=>{var c,f;return[k(ae((f=(c=d.job)==null?void 0:c.file)==null?void 0:f.name),1)]}),_:2},1024),h(yt,null,{default:v(()=>[k(" Elapsed: "+ae(Math.round((d==null?void 0:d.progress.printTime)??0/60))+" minutes ",1),l[9]||(l[9]=D("br",null,null,-1)),k(" Printer: "+ae(u.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),h(tr,null,{default:v(()=>[h(zn),h(se,{onClick:l[2]||(l[2]=u=>r.value=!1)},{default:v(()=>l[10]||(l[10]=[k(" Close ")])),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}});class Ks extends gr{static async listUsers(){const t=Oe.userRoute;return await this.get(t)}static async listRoles(){const t=Oe.rolesRoute;return await this.get(t)}static async getProfile(){const t=Oe.userProfileRoute;return await this.get(t)}static async changePassword(t,n,r){const s=Oe.userChangePasswordRoute(t);return await this.post(s,{oldPassword:n,newPassword:r})}static async changeUsername(t,n){const r=Oe.userChangeUsernameRoute(t);return await this.post(r,{username:n})}static async deleteUser(t){const n=Oe.userDeleteRoute(t);return await this.delete(n)}static async setUserVerified(t,n){const r=Oe.userSetVerifiedRoute(t);return await this.post(r,{isVerified:n})}static async setRootUser(t,n){const r=Oe.userSetRootUserRoute(t);return await this.post(r,{isRootUser:n})}static async setUserRoles(t,n){const r=Oe.userSetUserRolesRoute(t);return await this.post(r,{roleIds:n})}}const jw=As("profile",{state:()=>({username:null,isDemoUser:null,userId:null}),actions:{async getProfile(){return await Ks.getProfile().then(e=>{this.username=e.username,this.userId=e.id,this.isDemoUser=e.isDemoUser})}}}),Wt={Home:"Home",Login:"Login",Registration:"Registration",PrintersView:"PrintersView",Settings:"Settings",CameraGridView:"CameraGridView",PrintStatistics:"Print Statistics",About:"About",PermissionDenied:"PermissionDenied",NotFound:"NotFound",FirstTimeSetup:"FirstTimeSetup",ServerProtection:"ServerProtection"};async function bK(e,t){return e.push({name:t})}async function hO(e){if(e.currentRoute.value.path==="/login"){console.log("routeToLogin: already at login page");return}return bK(e,Wt.Login)}const Pk=!0,wK=()=>Object.freeze({apiKeyLength:43,maxPort:65535,maxPrinterNameLength:25,maxPrinterGroupNameLength:30,maxPrinterGroupLocationX:4,maxPrinterGroupLocationY:4,minPrinterFloorNameLength:3}),ci=Object.create(null);ci.open="0";ci.close="1";ci.ping="2";ci.pong="3";ci.message="4";ci.upgrade="5";ci.noop="6";const lh=Object.create(null);Object.keys(ci).forEach(e=>{lh[ci[e]]=e});const Fy={type:"error",data:"parser error"},pO=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",mO=typeof ArrayBuffer=="function",gO=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Ww=({type:e,data:t},n,r)=>pO&&t instanceof Blob?n?r(t):Tk(t,r):mO&&(t instanceof ArrayBuffer||gO(t))?n?r(t):Tk(new Blob([t]),r):r(ci[e]+(t||"")),Tk=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function Rk(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let Cg;function SK(e,t){if(pO&&e.data instanceof Blob)return e.data.arrayBuffer().then(Rk).then(t);if(mO&&(e.data instanceof ArrayBuffer||gO(e.data)))return t(Rk(e.data));Ww(e,!1,n=>{Cg||(Cg=new TextEncoder),t(Cg.encode(n))})}const Ik="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fc=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<Ik.length;e++)fc[Ik.charCodeAt(e)]=e;const _K=e=>{let t=e.length*.75,n=e.length,r,s=0,i,o,a,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),d=new Uint8Array(u);for(r=0;r<n;r+=4)i=fc[e.charCodeAt(r)],o=fc[e.charCodeAt(r+1)],a=fc[e.charCodeAt(r+2)],l=fc[e.charCodeAt(r+3)],d[s++]=i<<2|o>>4,d[s++]=(o&15)<<4|a>>2,d[s++]=(a&3)<<6|l&63;return u},kK=typeof ArrayBuffer=="function",qw=(e,t)=>{if(typeof e!="string")return{type:"message",data:vO(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:xK(e.substring(1),t)}:lh[n]?e.length>1?{type:lh[n],data:e.substring(1)}:{type:lh[n]}:Fy},xK=(e,t)=>{if(kK){const n=_K(e);return vO(n,t)}else return{base64:!0,data:e}},vO=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},yO="",EK=(e,t)=>{const n=e.length,r=new Array(n);let s=0;e.forEach((i,o)=>{Ww(i,!1,a=>{r[o]=a,++s===n&&t(r.join(yO))})})},CK=(e,t)=>{const n=e.split(yO),r=[];for(let s=0;s<n.length;s++){const i=qw(n[s],t);if(r.push(i),i.type==="error")break}return r};function PK(){return new TransformStream({transform(e,t){SK(e,n=>{const r=n.length;let s;if(r<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,r);else if(r<65536){s=new Uint8Array(3);const i=new DataView(s.buffer);i.setUint8(0,126),i.setUint16(1,r)}else{s=new Uint8Array(9);const i=new DataView(s.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(n)})}})}let Pg;function _f(e){return e.reduce((t,n)=>t+n.length,0)}function kf(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let s=0;s<t;s++)n[s]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function TK(e,t){Pg||(Pg=new TextDecoder);const n=[];let r=0,s=-1,i=!1;return new TransformStream({transform(o,a){for(n.push(o);;){if(r===0){if(_f(n)<1)break;const l=kf(n,1);i=(l[0]&128)===128,s=l[0]&127,s<126?r=3:s===126?r=1:r=2}else if(r===1){if(_f(n)<2)break;const l=kf(n,2);s=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),r=3}else if(r===2){if(_f(n)<8)break;const l=kf(n,8),u=new DataView(l.buffer,l.byteOffset,l.length),d=u.getUint32(0);if(d>Math.pow(2,21)-1){a.enqueue(Fy);break}s=d*Math.pow(2,32)+u.getUint32(4),r=3}else{if(_f(n)<s)break;const l=kf(n,s);a.enqueue(qw(i?l:Pg.decode(l),t)),r=0}if(s===0||s>e){a.enqueue(Fy);break}}}})}const bO=4;function wn(e){if(e)return RK(e)}function RK(e){for(var t in wn.prototype)e[t]=wn.prototype[t];return e}wn.prototype.on=wn.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};wn.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};wn.prototype.off=wn.prototype.removeListener=wn.prototype.removeAllListeners=wn.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,s=0;s<n.length;s++)if(r=n[s],r===t||r.fn===t){n.splice(s,1);break}return n.length===0&&delete this._callbacks["$"+e],this};wn.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,s=n.length;r<s;++r)n[r].apply(this,t)}return this};wn.prototype.emitReserved=wn.prototype.emit;wn.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};wn.prototype.hasListeners=function(e){return!!this.listeners(e).length};const ym=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),os=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),IK="arraybuffer";function wO(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const AK=os.setTimeout,OK=os.clearTimeout;function bm(e,t){t.useNativeTimers?(e.setTimeoutFn=AK.bind(os),e.clearTimeoutFn=OK.bind(os)):(e.setTimeoutFn=os.setTimeout.bind(os),e.clearTimeoutFn=os.clearTimeout.bind(os))}const MK=1.33;function DK(e){return typeof e=="string"?LK(e):Math.ceil((e.byteLength||e.size)*MK)}function LK(e){let t=0,n=0;for(let r=0,s=e.length;r<s;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function SO(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function $K(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function FK(e){let t={},n=e.split("&");for(let r=0,s=n.length;r<s;r++){let i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t}class NK extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class Gw extends wn{constructor(t){super(),this.writable=!1,bm(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,r){return super.emitReserved("error",new NK(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=qw(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=$K(t);return n.length?"?"+n:""}}class BK extends Gw{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};CK(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,EK(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=SO()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let _O=!1;try{_O=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const VK=_O;function UK(){}class zK extends BK{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(s,i)=>{this.onError("xhr post error",s,i)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}let Hl=class uh extends wn{constructor(t,n,r){super(),this.createRequest=t,bm(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=wO(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let s in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(s)&&r.setRequestHeader(s,this._opts.extraHeaders[s])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var s;r.readyState===3&&((s=this._opts.cookieJar)===null||s===void 0||s.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(s){this.setTimeoutFn(()=>{this._onError(s)},0);return}typeof document<"u"&&(this._index=uh.requestsCount++,uh.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=UK,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete uh.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Hl.requestsCount=0;Hl.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Ak);else if(typeof addEventListener=="function"){const e="onpagehide"in os?"pagehide":"unload";addEventListener(e,Ak,!1)}}function Ak(){for(let e in Hl.requests)Hl.requests.hasOwnProperty(e)&&Hl.requests[e].abort()}const HK=function(){const e=kO({xdomain:!1});return e&&e.responseType!==null}();class jK extends zK{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=HK&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Hl(kO,this.uri(),t)}}function kO(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||VK))return new XMLHttpRequest}catch{}if(!t)try{return new os[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const xO=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class WK extends Gw{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=xO?{}:wO(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;Ww(r,this.supportsBinary,i=>{try{this.doWrite(r,i)}catch{}s&&ym(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=SO()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const Tg=os.WebSocket||os.MozWebSocket;class qK extends WK{createSocket(t,n,r){return xO?new Tg(t,n,r):n?new Tg(t,n):new Tg(t)}doWrite(t,n){this.ws.send(n)}}class GK extends Gw{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=TK(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),s=PK();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();const i=()=>{r.read().then(({done:a,value:l})=>{a||(this.onPacket(l),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;this._writer.write(r).then(()=>{s&&ym(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const KK={websocket:qK,webtransport:GK,polling:jK},YK=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,XK=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Ny(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let s=YK.exec(e||""),i={},o=14;for(;o--;)i[XK[o]]=s[o]||"";return n!=-1&&r!=-1&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=QK(i,i.path),i.queryKey=JK(i,i.query),i}function QK(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function JK(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,s,i){s&&(n[s]=i)}),n}const By=typeof addEventListener=="function"&&typeof removeEventListener=="function",ch=[];By&&addEventListener("offline",()=>{ch.forEach(e=>e())},!1);class Ro extends wn{constructor(t,n){if(super(),this.binaryType=IK,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=Ny(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=Ny(n.host).host);bm(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const s=r.prototype.name;this.transports.push(s),this._transportsByName[s]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=FK(this.opts.query)),By&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},ch.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=bO,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Ro.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",Ro.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const s=this.writeBuffer[r].data;if(s&&(n+=DK(s)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,ym(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,s){if(typeof n=="function"&&(s=n,n=void 0),typeof r=="function"&&(s=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const i={type:t,data:n,options:r};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),s&&this.once("flush",s),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(Ro.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),By&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=ch.indexOf(this._offlineEventListener);r!==-1&&ch.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}Ro.protocol=bO;class ZK extends Ro{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),r=!1;Ro.priorWebsocketSuccess=!1;const s=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",c=>{if(!r)if(c.type==="pong"&&c.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Ro.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(d(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){r||(r=!0,d(),n.close(),n=null)}const o=c=>{const f=new Error("probe error: "+c);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){o("transport closed")}function l(){o("socket closed")}function u(c){n&&c.name!==n.name&&i()}const d=()=>{n.removeListener("open",s),n.removeListener("error",o),n.removeListener("close",a),this.off("close",l),this.off("upgrading",u)};n.once("open",s),n.once("error",o),n.once("close",a),this.once("close",l),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&n.push(t[r]);return n}}let e9=class extends ZK{constructor(t,n={}){const r=typeof t=="object"?t:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(s=>KK[s]).filter(s=>!!s)),super(t,r)}};function t9(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=Ny(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+t,r.href=r.protocol+"://"+i+(n&&n.port===r.port?"":":"+r.port),r}const n9=typeof ArrayBuffer=="function",r9=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,EO=Object.prototype.toString,s9=typeof Blob=="function"||typeof Blob<"u"&&EO.call(Blob)==="[object BlobConstructor]",i9=typeof File=="function"||typeof File<"u"&&EO.call(File)==="[object FileConstructor]";function Kw(e){return n9&&(e instanceof ArrayBuffer||r9(e))||s9&&e instanceof Blob||i9&&e instanceof File}function dh(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n<r;n++)if(dh(e[n]))return!0;return!1}if(Kw(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return dh(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&dh(e[n]))return!0;return!1}function o9(e){const t=[],n=e.data,r=e;return r.data=Vy(n,t),r.attachments=t.length,{packet:r,buffers:t}}function Vy(e,t){if(!e)return e;if(Kw(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=Vy(e[r],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=Vy(e[r],t));return n}return e}function a9(e,t){return e.data=Uy(e.data,t),delete e.attachments,e}function Uy(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=Uy(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=Uy(e[n],t));return e}const l9=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],u9=5;var pt;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(pt||(pt={}));class c9{constructor(t){this.replacer=t}encode(t){return(t.type===pt.EVENT||t.type===pt.ACK)&&dh(t)?this.encodeAsBinary({type:t.type===pt.EVENT?pt.BINARY_EVENT:pt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===pt.BINARY_EVENT||t.type===pt.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=o9(t),r=this.encodeAsString(n.packet),s=n.buffers;return s.unshift(r),s}}function Ok(e){return Object.prototype.toString.call(e)==="[object Object]"}class Yw extends wn{constructor(t){super(),this.reviver=t}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const r=n.type===pt.BINARY_EVENT;r||n.type===pt.BINARY_ACK?(n.type=r?pt.EVENT:pt.ACK,this.reconstructor=new d9(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(Kw(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const r={type:Number(t.charAt(0))};if(pt[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===pt.BINARY_EVENT||r.type===pt.BINARY_ACK){const i=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const o=t.substring(i,n);if(o!=Number(o)||t.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(t.charAt(n+1)==="/"){const i=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(i,n)}else r.nsp="/";const s=t.charAt(n+1);if(s!==""&&Number(s)==s){const i=n+1;for(;++n;){const o=t.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===t.length)break}r.id=Number(t.substring(i,n+1))}if(t.charAt(++n)){const i=this.tryParse(t.substr(n));if(Yw.isPayloadValid(r.type,i))r.data=i;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case pt.CONNECT:return Ok(n);case pt.DISCONNECT:return n===void 0;case pt.CONNECT_ERROR:return typeof n=="string"||Ok(n);case pt.EVENT:case pt.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&l9.indexOf(n[0])===-1);case pt.ACK:case pt.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class d9{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=a9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const f9=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Yw,Encoder:c9,get PacketType(){return pt},protocol:u9},Symbol.toStringTag,{value:"Module"}));function _s(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const h9=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class CO extends wn{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[_s(t,"open",this.onopen.bind(this)),_s(t,"packet",this.onpacket.bind(this)),_s(t,"error",this.onerror.bind(this)),_s(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,s,i;if(h9.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const o={type:pt.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const d=this.ids++,c=n.pop();this._registerAckCallback(d,c),o.id=d}const a=(s=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||s===void 0?void 0:s.writable,l=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(l?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,n){var r;const s=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(s===void 0){this.acks[t]=n;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===t&&this.sendBuffer.splice(a,1);n.call(this,new Error("operation has timed out"))},s),o=(...a)=>{this.io.clearTimeoutFn(i),n.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...n){return new Promise((r,s)=>{const i=(o,a)=>o?s(o):r(a);i.withError=!0,n.push(i),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...i)=>r!==this._queue[0]?void 0:(s!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(s)):(this._queue.shift(),n&&n(null,...i)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:pt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case pt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case pt.EVENT:case pt.BINARY_EVENT:this.onevent(t);break;case pt.ACK:case pt.BINARY_ACK:this.onack(t);break;case pt.DISCONNECT:this.ondisconnect();break;case pt.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...s){r||(r=!0,n.packet({type:pt.ACK,id:t,data:s}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:pt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,t.data)}}}function zu(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}zu.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};zu.prototype.reset=function(){this.attempts=0};zu.prototype.setMin=function(e){this.ms=e};zu.prototype.setMax=function(e){this.max=e};zu.prototype.setJitter=function(e){this.jitter=e};class zy extends wn{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,bm(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new zu({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const s=n.parser||f9;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new e9(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const s=_s(n,"open",function(){r.onopen(),t&&t()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=_s(n,"error",i);if(this._timeout!==!1){const a=this._timeout,l=this.setTimeoutFn(()=>{s(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(s),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(_s(t,"ping",this.onping.bind(this)),_s(t,"data",this.ondata.bind(this)),_s(t,"error",this.onerror.bind(this)),_s(t,"close",this.onclose.bind(this)),_s(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){ym(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new CO(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;r<n.length;r++)this.engine.write(n[r],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const tc={};function fh(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=t9(e,t.path||"/socket.io"),r=n.source,s=n.id,i=n.path,o=tc[s]&&i in tc[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||o;let l;return a?l=new zy(r,t):(tc[s]||(tc[s]=new zy(r,t)),l=tc[s]),n.query&&!t.query&&(t.query=n.queryKey),l.socket(n.path,t)}Object.assign(fh,{Manager:zy,Socket:CO,io:fh,connect:fh});let Qt=null;const _r=yn({connected:!1,setup:!1,id:""});function p9(e,t){if(_r.setup)throw new Error("Socket already set up");_r.setup=!1,Qt=fh(e,{auth:t!=null&&t.length?{token:t}:void 0}),_r.setup=!0,Qt.on("connect",()=>{_r.id=Qt.id||"",_r.connected=!0}),Qt.on("disconnect",()=>{_r.id="",_r.connected=!1})}function m9(){_r.connected=!1,Qt==null||Qt.close(),Qt==null||Qt.open()}function g9(){Qt&&Qt.close(),Qt=null,_r.setup=!1,_r.connected=!1,_r.id=""}function v9(){if(!Qt)return console.warn("Socket not set-up"),{setup:!1};const e={setup:!0,active:Qt.active,connected:Qt.connected,id:Qt.id,recovered:Qt.recovered};return console.warn(e),e}const y9=de({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},"scroll");function b9(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{canScroll:n}=t;let r=0,s=0;const i=z(null),o=Me(0),a=Me(0),l=Me(0),u=Me(!1),d=Me(!1),c=I(()=>Number(e.scrollThreshold)),f=I(()=>Pr((c.value-o.value)/c.value||0)),p=()=>{const m=i.value;if(!m||n&&!n.value)return;r=o.value,o.value="window"in m?m.pageYOffset:m.scrollTop;const g=m instanceof Window?document.documentElement.scrollHeight:m.scrollHeight;if(s!==g){s=g;return}d.value=o.value<r,l.value=Math.abs(o.value-c.value)};return Ce(d,()=>{a.value=a.value||o.value}),Ce(u,()=>{a.value=0}),bt(()=>{Ce(()=>e.scrollTarget,m=>{var y;const g=m?document.querySelector(m):window;g&&g!==i.value&&((y=i.value)==null||y.removeEventListener("scroll",p),i.value=g,i.value.addEventListener("scroll",p,{passive:!0}))},{immediate:!0})}),kn(()=>{var m;(m=i.value)==null||m.removeEventListener("scroll",p)}),n&&Ce(n,p,{immediate:!0}),{scrollThreshold:c,currentScroll:o,currentThreshold:l,isScrollActive:u,scrollRatio:f,isScrollingUp:d,savedScroll:a}}const w9=de({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:"top",validator:e=>["top","bottom"].includes(e)},...ZA(),...PA(),...y9(),height:{type:[Number,String],default:64}},"VAppBar"),PO=xe()({name:"VAppBar",props:w9(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=z(),s=it(e,"modelValue"),i=I(()=>{var S;const _=new Set(((S=e.scrollBehavior)==null?void 0:S.split(" "))??[]);return{hide:_.has("hide"),fullyHide:_.has("fully-hide"),inverted:_.has("inverted"),collapse:_.has("collapse"),elevate:_.has("elevate"),fadeImage:_.has("fade-image")}}),o=I(()=>{const _=i.value;return _.hide||_.fullyHide||_.inverted||_.collapse||_.elevate||_.fadeImage||!s.value}),{currentScroll:a,scrollThreshold:l,isScrollingUp:u,scrollRatio:d}=b9(e,{canScroll:o}),c=I(()=>i.value.hide||i.value.fullyHide),f=I(()=>e.collapse||i.value.collapse&&(i.value.inverted?d.value>0:d.value===0)),p=I(()=>e.flat||i.value.fullyHide&&!s.value||i.value.elevate&&(i.value.inverted?a.value>0:a.value===0)),m=I(()=>i.value.fadeImage?i.value.inverted?1-d.value:d.value:void 0),g=I(()=>{var T,E;if(i.value.hide&&i.value.inverted)return 0;const _=((T=r.value)==null?void 0:T.contentHeight)??0,S=((E=r.value)==null?void 0:E.extensionHeight)??0;return c.value?a.value<l.value||i.value.fullyHide?_+S:_:_+S});Yr(I(()=>!!e.scrollBehavior),()=>{Un(()=>{c.value?i.value.inverted?s.value=a.value>l.value:s.value=u.value||a.value<l.value:s.value=!0})});const{ssrBootStyles:y}=jd(),{layoutItemStyles:b}=RA({id:e.name,order:I(()=>parseInt(e.order,10)),position:Re(e,"location"),layoutSize:g,elementSize:Me(void 0),active:s,absolute:Re(e,"absolute")});return Ie(()=>{const _=nr.filterProps(e);return h(nr,ve({ref:r,class:["v-app-bar",{"v-app-bar--bottom":e.location==="bottom"},e.class],style:[{...b.value,"--v-toolbar-image-opacity":m.value,height:void 0,...y.value},e.style]},_,{collapse:f.value,flat:p.value}),n)}),{}}}),S9=de({...qP({icon:"$menu",variant:"text"})},"VAppBarNavIcon"),_9=xe()({name:"VAppBarNavIcon",props:S9(),setup(e,t){let{slots:n}=t;return Ie(()=>h(se,ve(e,{class:["v-app-bar-nav-icon"]}),n)),{}}}),k9={key:1,class:"text-uppercase text--white"},x9={key:3,class:"ml-2"},E9={key:4,class:"ml-2"},C9=$e({__name:"TopBar",setup(e){const t=jw(),n=fs(),r=Qo(),s=[{title:"Open Profile",icon:"person",path:"/settings/account"}],i=z(Date.now());q$(()=>{i.value=Date.now()},1e3);const o=I(()=>{var c;if(!((c=n.tokenClaims)!=null&&c.exp))return"";const d=n.tokenClaims.exp-i.value/1e3;return`${Math.round(d)}s`}),a=I(()=>t.username),l=I(()=>n.isDemoMode);async function u(){await n.logout(!0),await hO(r)}return(d,c)=>{const f=h7,p=f7;return $(),Q(PO,{color:"primary"},{default:v(()=>[h(gn,{class:"text-uppercase text-white"},{default:v(()=>c[1]||(c[1]=[D("span",{class:"font-weight-light"}," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),l.value?($(),Q(zn,{key:0})):me("",!0),l.value?($(),Se("h2",k9," DEMO MODE ")):me("",!0),h(zn),h(yK),ue(n).hasAuthToken&&!ue(n).isLoginExpired?($(),Q(Wd,{key:2,"close-on-content-click":!1,location:"bottom right","open-on-hover":"",transition:"slide-y-transition"},{activator:v(({props:m})=>[h(se,ve({class:"ml-2",color:"secondary",theme:"dark"},m),{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>c[2]||(c[2]=[k("person")])),_:1}),k(" "+ae(a.value),1)]),_:2},1040)]),default:v(()=>[h(Yt,null,{default:v(()=>[($(),Se(Te,null,Gt(s,(m,g)=>h(Fe,{key:g,to:m.path,title:m.title,"prepend-avatar":m.icon,link:""},null,8,["to","title","prepend-avatar"])),64))]),_:1})]),_:1})):me("",!0),ue(Pk)&&o.value?($(),Se("span",x9," AuthExp "+ae(o.value),1)):me("",!0),ue(Pk)?($(),Se("span",E9,[D("small",null," S"+ae(ue(_r).setup?1:0)+" C"+ae(ue(_r).connected?1:0)+" "+ae(ue(_r).id),1)])):me("",!0),ue(n).loginRequired===!0?($(),Q(f,{key:5,tooltip:"Go back to login",text:"Logout",color:"secondary",icon:"logout",onClick:c[0]||(c[0]=m=>u())})):me("",!0),ue(n).loginRequired===!0?($(),Q(se,{key:6,class:"ml-2"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>c[3]||(c[3]=[k("logout")])),_:1}),c[4]||(c[4]=k(" Logout "))]),_:1})):me("",!0),h(p)]),_:1})}}}),TO="/assets/logo-CJVdjy51.png",P9=$e({__name:"NavigationDrawer",setup(e){const t=[["home","Devices","/"],["print","Printers","/printers"],["camera_alt","CameraGridView","/cameras"],["settings","Settings","/settings"],["timeline","PrintStatistics","/statistics"],["contact_support","About","/about"]];return(n,r)=>($(),Q(Rw,{permanent:"",rail:"",theme:"dark",class:"nav-side-background"},{default:v(()=>[h(_9,{class:"ml-1 mt-2"},{default:v(()=>[h(Yo,{alt:"FDM Monster Logo",src:ue(TO),class:"shrink mr-1 pt-3 ml-1",transition:"scale-transition",width:"40"},null,8,["src"])]),_:1}),h(bn),h(Yt,{density:"compact",nav:""},{default:v(()=>[($(),Se(Te,null,Gt(t,([s,i,o],a)=>h(Fe,{key:a,to:o,"prepend-icon":s,title:i,density:"comfortable","router-link":""},null,8,["to","prepend-icon","title"])),64))]),_:1})]),_:1}))}});function T9(e){const t=Me(e());let n=-1;function r(){clearInterval(n)}function s(){r(),At(()=>t.value=e())}function i(o){const a=o?getComputedStyle(o):{transitionDuration:.2},l=parseFloat(a.transitionDuration)*1e3||200;if(r(),t.value<=0)return;const u=performance.now();n=window.setInterval(()=>{const d=performance.now()-u+l;t.value=Math.max(e()-d,0),t.value<=0&&r()},l)}return _n(r),{clear:r,time:t,start:i,reset:s}}const R9=de({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...jo({location:"bottom"}),...Pu(),...$n(),...Ls(),...Lt(),...Os(Ad({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),Xw=xe()({name:"VSnackbar",props:R9(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=it(e,"modelValue"),{positionClasses:s}=Tu(e),{scopeId:i}=Iu(),{themeClasses:o}=Zt(e),{colorClasses:a,colorStyles:l,variantClasses:u}=Za(e),{roundedClasses:d}=Hn(e),c=T9(()=>Number(e.timeout)),f=z(),p=z(),m=Me(!1),g=Me(0),y=z(),b=Qe(od,void 0);Yr(()=>!!b,()=>{const O=TA();Un(()=>{y.value=O.mainStyles.value})}),Ce(r,S),Ce(()=>e.timeout,S),bt(()=>{r.value&&S()});let _=-1;function S(){c.reset(),window.clearTimeout(_);const O=Number(e.timeout);if(!r.value||O===-1)return;const A=Cb(p.value);c.start(A),_=window.setTimeout(()=>{r.value=!1},O)}function T(){c.reset(),window.clearTimeout(_)}function E(){m.value=!0,T()}function R(){m.value=!1,S()}function P(O){g.value=O.touches[0].clientY}function x(O){Math.abs(g.value-O.changedTouches[0].clientY)>50&&(r.value=!1)}function w(){m.value&&R()}const C=I(()=>e.location.split(" ").reduce((O,A)=>(O[`v-snackbar--${A}`]=!0,O),{}));return Ie(()=>{const O=$i.filterProps(e),A=!!(n.default||n.text||e.text);return h($i,ve({ref:f,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},C.value,s.value,e.class],style:[y.value,e.style]},O,{modelValue:r.value,"onUpdate:modelValue":M=>r.value=M,contentProps:ve({class:["v-snackbar__wrapper",o.value,a.value,d.value,u.value],style:[l.value],onPointerenter:E,onPointerleave:R},O.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:P,onTouchend:x,onAfterLeave:w},i),{default:()=>{var M,L;return[Ho(!1,"v-snackbar"),e.timer&&!m.value&&h("div",{key:"timer",class:"v-snackbar__timer"},[h(lu,{ref:p,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":c.time.value},null)]),A&&h("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((M=n.text)==null?void 0:M.call(n))??e.text,(L=n.default)==null?void 0:L.call(n)]),n.actions&&h(It,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[h("div",{class:"v-snackbar__actions"},[n.actions({isActive:r})])]})]},activator:n.activator})}),ji({},f)}}),I9={style:{width:"100%"}},A9={class:"font-weight-bold text-button"},O9=$e({__name:"AppProgressSnackbar",setup(e){const t=Dt(),n=z(!1),r=z(""),s=z([]),i=z(100);function o(u){return s.value.find(d=>d.key===u)}function a(u,d,c=0,f=!1,p=Date.now()+1500){console.log(`[AppProgressSnackbar] Adding ${u} tracker with progress ${c}`),s.value.push({key:u,title:d,value:c,completed:f,startedAt:Date.now(),expiresAt:p,timeoutAt:void 0})}function l(u){s.value=s.value.filter(d=>d.key!==u)}return bt(()=>{setInterval(()=>{if(s.value.length){for(const u of s.value){const{value:d,completed:c,expiresAt:f,key:p}=u;(c||d>=100)&&f<Date.now()||u.timeoutAt&&u.timeoutAt<Date.now()?l(p):!u.timeoutAt&&f<Date.now()&&(u.timeoutAt=Date.now()+5e3)}s.value.length?(i.value=-1,n.value=!0):(i.value=2e3,r.value="Upload ended",console.debug(`[AppSnackbars] Setting timeout to ${i.value}`))}},1e3),t.onProgressMessage(u=>{const{key:d,value:c,title:f,completed:p}=u,m=o(d);if(m)Math.min(100,c)>=m.value&&(m.expiresAt=Date.now()+1500,m.value=c,m.completed=p);else{if(c>=100)return;a(d,f,c,!1,Date.now()+1500)}r.value="Uploading files"})}),(u,d)=>($(),Q(Xw,{modelValue:n.value,"onUpdate:modelValue":d[1]||(d[1]=c=>n.value=c),timeout:i.value,absolute:"",location:"bottom right",class:"ma-3 elevation-24","min-width":"450px","multi-line":"",rounded:"pill",style:{"z-index":"1000"}},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{icon:"",size:"large"},{default:v(()=>[h(K,null,{default:v(()=>d[2]||(d[2]=[k("file_upload")])),_:1})]),_:1})]),_:1}),h(Ne,{class:"d-flex align-center flex-row",cols:"8"},{default:v(()=>[D("div",I9,[D("span",A9,ae(r.value),1),($(!0),Se(Te,null,Gt(s.value,(c,f)=>($(),Se("div",{key:f,class:"mb-2"},[c.completed?($(),Q(K,{key:0},{default:v(()=>d[3]||(d[3]=[k("check")])),_:1})):c.timeoutAt?($(),Q(K,{key:1},{default:v(()=>d[4]||(d[4]=[k("pause")])),_:1})):($(),Q(K,{key:2},{default:v(()=>d[5]||(d[5]=[k("hourglass_bottom")])),_:1})),k(" "+ae(c.title)+" "+ae((c.completed?100:c.value).toFixed(1))+"% ",1),d[6]||(d[6]=D("br",null,null,-1)),($(),Q(lu,{key:c.key,"model-value":c.completed?100:c.value,color:c.timeoutAt?"red":"success"},null,8,["model-value","color"]))]))),128))])]),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{icon:"",size:"large",onClick:d[0]||(d[0]=c=>n.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>d[7]||(d[7]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","timeout"]))}}),M9={class:"font-weight-bold text-button"},D9={key:0},L9=$e({__name:"AppErrorSnackbar",setup(e){const t=Dt(),n=z(-1),r=z(!1),s=z(""),i=z("");return bt(()=>{t.onErrorMessage(o=>{s.value=o.title,i.value=o.subtitle??"",r.value=!0,n.value=o.timeout??1e4})}),(o,a)=>($(),Q(Xw,{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=l=>r.value=l),timeout:n.value,absolute:"",location:"bottom",class:"ml-16 mb-16 ma-3 elevation-24",color:"error-darken-1",rounded:"pill","multi-line":"",style:{"z-index":"1000"},width:"450"},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{size:"large"},{default:v(()=>[h(K,null,{default:v(()=>a[2]||(a[2]=[k("error")])),_:1}),h(K)]),_:1})]),_:1}),h(Ne,{class:"d-flex align-center flex-row",cols:"8"},{default:v(()=>{var l;return[D("div",null,[D("span",M9,ae(s.value),1),(l=i.value)!=null&&l.length?($(),Se("div",D9,ae(i.value),1)):me("",!0)])]}),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{size:"large",onClick:a[0]||(a[0]=l=>r.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>a[3]||(a[3]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","timeout"]))}}),$9={class:"font-weight-bold text-button"},F9={key:0},N9=$e({__name:"AppInfoSnackbar",setup(e){const t=Dt(),n=z(!1),r=z(""),s=z(""),i=z(2e3),o=z(!1);return bt(()=>{t.onInfoMessage(a=>{r.value=a.title,s.value=a.subtitle??"",o.value=a.warning??!1,i.value=a.timeout??2e3,n.value=!0})}),(a,l)=>($(),Q(Xw,{modelValue:n.value,"onUpdate:modelValue":l[1]||(l[1]=u=>n.value=u),absolute:"",location:"bottom",color:o.value?"warning darken-2":"success",class:"ma-3 elevation-24",rounded:"pill",timeout:i.value,style:{"z-index":"1000"},"multi-line":""},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{size:"large"},{default:v(()=>[h(K,null,{default:v(()=>l[2]||(l[2]=[k("info")])),_:1})]),_:1})]),_:1}),h(Ne,{cols:"8",class:"d-flex align-center flex-row"},{default:v(()=>{var u;return[D("div",null,[D("span",$9,ae(r.value),1),(u=s.value)!=null&&u.length?($(),Se("div",F9,ae(s.value),1)):me("",!0)])]}),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{size:"large",onClick:l[0]||(l[0]=u=>n.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>l[3]||(l[3]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","color","timeout"]))}}),Qw=As("Uploads",{state:()=>({queuedUploads:[],failedUploads:[],uploadingNow:!1}),getters:{hasPendingUploads(e){var t;return((t=e.queuedUploads)==null?void 0:t.length)>0},isUploadingNow(e){return e.uploadingNow},nextUpload(e){return e.queuedUploads[0]}},actions:{queueUploads(e){this.failedUploads=[],this.queuedUploads.push(...e)},cancelUploads(){this.queuedUploads=[],this.failedUploads=[]},async handleNextUpload(){var r;const e=Dt();if(!((r=this.queuedUploads)!=null&&r.length))return;this.uploadingNow=!0;const{file:t,printer:n}=this.nextUpload;this.queuedUploads.splice(0,1);try{await To.uploadFile(n,t)}catch(s){if(s.isAxiosError){const i={file:t,printer:n,error:s};this.failedUploads.push(i),e.openErrorMessage({title:"Upload failure",subtitle:`File ${t.name}Upload failed for to printer ${n.name}`})}else e.openErrorMessage({title:"Upload failure",subtitle:"Unknown upload error occurred"})}this.uploadingNow=!1}}}),B9="/img/OIG.JYDC2RaWdz7g9.jpg",Jo=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},V9=e=>Math.random()*e,U9={name:"GridLoader",props:{loading:{type:Boolean,default:!0},color:{type:String,default:"#000000"},size:{type:Number,default:15},margin:{type:String,default:"2px"},sizeUnit:{type:String,default:"px"}},methods:{random:V9,getWrapperStyle(){return{width:`${parseFloat(this.size)*3+parseFloat(this.margin)*6}${this.sizeUnit}`,fontSize:0}},getCircleStyle(e){const t=`grid ${e/100+.6}s ${e/100-.2}s infinite ease`;return{display:"inline-block",backgroundColor:this.color,width:`${this.size}${this.sizeUnit}`,height:`${this.size}${this.sizeUnit}`,margin:this.margin,borderRadius:"100%",animationFillMode:"both",animation:t}}}};function z9(e,t,n,r,s,i){return n.loading?($(),Se("div",{key:0,style:Oo(i.getWrapperStyle())},[($(),Se(Te,null,Gt(9,o=>D("div",{key:o,style:Oo(i.getCircleStyle(i.random(100)))},null,4)),64))],4)):me("",!0)}const RO=Jo(U9,[["render",z9]]);function IO(e){const t=ct();t.getOptions().enabled=e,console.warn("Sentry enabled:",e)}const AO=e=>new Promise(t=>setTimeout(t,e));class H9{constructor(){he(this,"printerStore",Nt());he(this,"floorStore",qi());he(this,"printerStateStore",fr());he(this,"testPrinterStore",Uw());he(this,"snackbar",Dt())}socketState(){return v9()}async setupSocketConnection(){console.debug("Setting up socket.io client");const t=await UI(),n=fs();n.loadTokens(),p9(t,n.loginRequired?n.token:void 0),Qt==null||Qt.on("legacy-update",r=>this.onMessage(JSON.parse(r))),Qt==null||Qt.on("test-printer-state",r=>{this.testPrinterStore.saveEvent(r),console.log(r)})}disconnect(){g9()}reconnect(){Qt&&(console.debug("Resetting socket.io client connection"),m9())}onMessage(t){var n,r,s,i;((n=t.trackedUploads.current)!=null&&n.length||(r=t.trackedUploads.failed)!=null&&r.length)&&(console.debug("[SocketIO] trackedUploads message received"),t.trackedUploads.current.forEach(o=>{var a;this.snackbar.openProgressMessage(o.correlationToken,o.multerFile.originalname,(((a=o.progress)==null?void 0:a.percent)||0)*100,!1)})),(s=t.floors)!=null&&s.length&&this.floorStore.saveFloors(t.floors),(i=t.printers)!=null&&i.length&&this.printerStore.setPrinters(t.printers),t.socketStates&&this.printerStateStore.setSocketStates(t.socketStates),t.printerEvents&&this.printerStateStore.setPrinterEvents(t.printerEvents)}}const OO=de({color:String,...ms(),...Ue(),...Lr(),...vs(),...jo(),...Pu(),...$n(),...wt(),...Lt()},"VSheet"),sp=xe()({name:"VSheet",props:OO(),setup(e,t){let{slots:n}=t;const{themeClasses:r}=Zt(e),{backgroundColorClasses:s,backgroundColorStyles:i}=dr(Re(e,"color")),{borderClasses:o}=Ms(e),{dimensionStyles:a}=$r(e),{elevationClasses:l}=Ds(e),{locationStyles:u}=el(e),{positionClasses:d}=Tu(e),{roundedClasses:c}=Hn(e);return Ie(()=>h(e.tag,{class:["v-sheet",r.value,s.value,o.value,l.value,d.value,c.value,e.class],style:[i.value,a.value,u.value,e.style]},n)),{}}}),j9={key:1,style:{margin:"50px"}},W9={class:"mt-2 mb-2"},q9={key:0,class:"mt-2 mb-2"},G9={key:1,class:"mt-2 mb-2"},K9={key:2,style:{animation:"fadeIn 0.75s"}},Y9=$e({__name:"AppLoader",setup(e){const t=fs(),n=Fs(),r=Xo(),s=jw(),i=z(!1),o=Qo(),a=z(""),l=z(!0),u=z(),d=z(),c=z(),f=Dt(),p=new H9;function m(){window.location.reload()}function g(){navigator.clipboard.writeText(JSON.stringify(u.value)),f.openInfoMessage({title:"Copied",subtitle:"Error copied to clipboard"})}function y(P,x=""){P?(a.value=x,u.value=null,d.value=null,c.value=null):a.value="",i.value=P}async function b(){var P;try{await n.loadSettings(),await r.loadFeatures(),await s.getProfile();const x=(P=n.serverSettings)==null?void 0:P.sentryDiagnosticsEnabled;IO(!!x)}catch(x){console.log("Error when loading settings.",x),f.openErrorMessage({title:"Error",subtitle:"Error when loading settings, features and/or profile."}),ai(x)}p.socketState().setup?p.reconnect():await p.setupSocketConnection(),y(!1)}return jr("auth:permission-denied").on(async P=>{console.log("[AppLoader] Permission denied, going to permission denied page"),y(!0,"Permission denied"),await o.push({name:Wt.PermissionDenied,query:{roles:P==null?void 0:P.roles,page:String(o.currentRoute.value.name),permissions:P==null?void 0:P.permissions,error:P==null?void 0:P.error,url:P==null?void 0:P.url}}),y(!1)}),jr("auth:failure").on(async P=>{console.debug(`[AppLoader] Event received: 'auth:failure', going back to login, context: ${P}`),y(!0,"Authentication failed, going back to login"),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),jr("auth:login").on(async()=>{console.debug("[AppLoader] Event received: 'auth:login', loading app"),y(!0,"Loading app"),await b()}),jr(`auth:${kr.AccountNotVerified}`).on(async()=>{console.debug(`[AppLoader] Event received: 'auth:${kr.AccountNotVerified}', going to login`),f.error("Account not verified, please ask an administrator to verify your account."),y(!0,"Account not verified, please ask an administrator to verify your account."),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),jr(`auth:${kr.PasswordChangeRequired}`).on(async()=>{console.debug(`[AppLoader] Event received: 'auth:${kr.PasswordChangeRequired}', going to login`),f.error("Password change required, please change your password."),y(!0,"Password change required, please change your password."),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),Rp(()=>{p&&p.disconnect()}),Tp(async()=>{var O,A;l.value=!0;const P=["Loading FDM Monster","Loading it all","Loading features","Loading what needs to be loaded","Farming potatoes","Wiping the floor","Cleaning cobwebs","Loading filament.dll","Loading 3D_printer.exe","Loading spools"],x=P[Math.floor(Math.random()*P.length)];y(!0,x);try{await bo.test()}catch(M){l.value=!1,u.value=M,d.value="api/test",ai(M);return}const{loginRequired:w,wizardState:C}=await t.checkAuthenticationRequirements();if(!C.wizardCompleted){console.debug("[AppLoader] Wizard not completed, going to wizard"),await t.logout(!1),o.currentRoute.value.name!==Wt.FirstTimeSetup&&await o.replace({name:Wt.FirstTimeSetup}),y(!1);return}if(!w)return console.debug("[AppLoader] Login not required, loading app"),await b();if(console.debug("[AppLoader] Checking if tokens are present"),!t.hasAuthToken&&!t.hasRefreshToken)return console.debug("[AppLoader] No tokens present, hiding overlay as router will have handled it"),y(!1);y(!0,"Refreshing login"),console.debug("[AppLoader] Verifying or refreshing login once");try{const{success:M,handled:L}=await t.verifyOrRefreshLoginOnceOrLogout();if(L){console.debug("[AppLoader] received handled event, hiding overlay");return}if(!M){console.debug("[AppLoader] No success refreshing"),y(!0,"Login expired, going back to login"),await AO(500),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1);return}}catch(M){console.log("[AppLoader] Error when refreshing login",M),l.value=!1,u.value=M.message,d.value=(O=M.config)==null?void 0:O.url,c.value=(A=M.response)==null?void 0:A.data,ai(M);return}console.debug("[AppLoader] Loading app"),await b()}),(P,x)=>($(),Se(Te,null,[h($i,{modelValue:i.value,"onUpdate:modelValue":x[2]||(x[2]=w=>i.value=w),opacity:"0.98",style:{"z-index":"7"}},{default:v(()=>[l.value?($(),Q(RO,{key:0,size:20,class:"ma-auto",color:"#a70015"})):me("",!0),x[19]||(x[19]=D("br",null,null,-1)),u.value?($(),Se("div",j9,[x[16]||(x[16]=D("h1",null,"FDM Monster Server Error",-1)),x[17]||(x[17]=D("p",null," Did not expect this answer from the server. Please check your configuration and logs. ",-1)),h(sp,{class:"pa-4 rounded",color:"grey-darken-2",width:"80%"},{default:v(()=>[x[11]||(x[11]=k(" Details: ")),D("div",W9,ae(JSON.stringify(u.value,null,4)),1),d.value?($(),Se("div",q9," Original URL: "+ae(d.value),1)):me("",!0),c.value?($(),Se("div",G9," Response body: "+ae(c.value),1)):me("",!0),x[12]||(x[12]=D("br",null,null,-1)),h(se,{class:"mb-2",color:"secondary",onClick:x[0]||(x[0]=w=>g())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[3]||(x[3]=[k("content_copy")])),_:1}),x[4]||(x[4]=k(" Copy error details "))]),_:1}),x[13]||(x[13]=D("br",null,null,-1)),h(se,{color:"primary mb-2",onClick:x[1]||(x[1]=w=>m())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[5]||(x[5]=[k("refresh")])),_:1}),x[6]||(x[6]=k(" reload the page "))]),_:1}),x[14]||(x[14]=D("br",null,null,-1)),h(se,{color:"darken-2 mb-2",href:"https://docs.fdm-monster.net",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[7]||(x[7]=[k("menu_book")])),_:1}),x[8]||(x[8]=k(" view documentation "))]),_:1}),x[15]||(x[15]=D("br",null,null,-1)),h(se,{color:"purple-darken-4",href:"https://discord.gg/mwA8uP8CMc",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[9]||(x[9]=[k("chat")])),_:1}),x[10]||(x[10]=k(" join our Discord "))]),_:1})]),_:1}),x[18]||(x[18]=D("img",{class:"justify-center align-center align-content-center rounded-pill mt-8 ma-4",src:B9,style:{opacity:"0.9"},width:"400"},null,-1))])):me("",!0),l.value?($(),Se("div",K9,ae(a.value),1)):me("",!0)]),_:1},8,["modelValue"]),i.value?me("",!0):vb(P.$slots,"default",{key:0})],64))}}),X9=de({...Ue(),...CA({fullHeight:!0}),...Lt()},"VApp"),Q9=xe()({name:"VApp",props:X9(),setup(e,t){let{slots:n}=t;const r=Zt(e),{layoutClasses:s,getLayoutItem:i,items:o,layoutRef:a}=IA(e),{rtlClasses:l}=Fr();return Ie(()=>{var u;return h("div",{ref:a,class:["v-application",r.themeClasses.value,s.value,l.value,e.class],style:[e.style]},[h("div",{class:"v-application__wrap"},[(u=n.default)==null?void 0:u.call(n)])])}),{getLayoutItem:i,items:o,theme:r}}}),J9=de({scrollable:Boolean,...Ue(),...Lr(),...wt({tag:"main"})},"VMain"),Z9=xe()({name:"VMain",props:J9(),setup(e,t){let{slots:n}=t;const{dimensionStyles:r}=$r(e),{mainStyles:s}=TA(),{ssrBootStyles:i}=jd();return Ie(()=>h(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[s.value,i.value,r.value,e.style]},{default:()=>{var o,a;return[e.scrollable?h("div",{class:"v-main__scroller"},[(o=n.default)==null?void 0:o.call(n)]):(a=n.default)==null?void 0:a.call(n)]}})),{}}}),eY=$e({__name:"App",setup(e){const t=Qw(),n=fs(),r=t.queuedUploads;return Ce(r,async()=>{await t.handleNextUpload()}),bt(()=>{console.debug(`App.vue mounted. Logged in: ${n.hasAuthToken}, Expired: ${n.isLoginExpired}`)}),(s,i)=>{const o=N9,a=L9,l=O9,u=P9,d=C9,c=Er("router-view"),f=u7,p=n7,m=xG,g=_G,y=aG,b=oG,_=K6,S=xq,T=zW;return $(),Q(Q9,null,{default:v(()=>[h(o),h(a),h(l),ue(n).hasAuthToken&&!ue(n).isLoginExpired||!ue(n).loginRequired?($(),Q(u,{key:0})):me("",!0),ue(n).hasAuthToken&&!ue(n).isLoginExpired||!ue(n).loginRequired?($(),Q(d,{key:1})):me("",!0),h(Y9,null,{default:v(()=>[h(Z9,null,{default:v(()=>[h(c)]),_:1})]),_:1}),h(f),h(p),h(m),h(g),h(y),h(b),h(_),h(S),h(T)]),_:1})}}}),Jw="/img/logo.svg";class MO extends gr{static async postQuickStopM112Command(t){const n=Oe.sendQuickStopM112Route(t);return await this.post(n)}}const wm=As("GridStore",{state:()=>({gridEditMode:!1})}),tY={class:"small-resized-font"},nY={key:0,class:"float-right d-none d-xl-inline"},rY={key:1,class:"float-end"},sY={class:"pl-5 pr-5",color:"primary"},iY={key:0},oY={key:1},aY={key:2},lY={class:"xsmall-resized-font"},Mk="rgba(100,100,100,0.1)",xf=$e({__name:"PrinterGridTile",props:{printer:{type:Object,required:!1},x:{type:Number,required:!0},y:{type:Number,required:!0}},setup(e){const t=e,n=Nt(),r=fr(),s=qi(),i=Xo(),o=Fs(),a=wm(),l=Or(hn.PrinterControlDialog),u=Or(hn.AddOrUpdatePrinterDialog),d=Dt(),c=I(()=>{var A;return(A=t.printer)==null?void 0:A.id}),f=I(()=>c.value?n.isSelectedPrinter(c.value):!1),p=I(()=>{var A;return((A=n.selectedPrinters)==null?void 0:A.length)&&!f.value}),m=I(()=>i.hasFeature("printerControlApi")),g=I(()=>o.largeTiles),y=I(()=>{if(!c.value)return;const A=n.printer(c.value);if(!A)return;const M=r.printerEventsById[c.value],L=r.socketStatesById[c.value];return zI(A,L,M)}),b=I(()=>{const A=y.value;return A&&A.rgb||Mk}),_=I(()=>{if(c.value)return r.printerJobsById[c.value]}),S=I(()=>{if(c.value)return r.printingFilePathsByPrinterId[c.value]}),T=()=>{n.setSideNavPrinter(t.printer)},E=async()=>{c.value&&(await qt.refreshSocket(c.value),d.openInfoMessage({title:"Refreshing OctoPrint connection state"}))},R=()=>{t.printer&&qt.openPrinterURL(t.printer.printerURL)},P=()=>{n.setUpdateDialogPrinter(t.printer),u.openDialog()},x=async()=>{if(!c.value)throw new Error("PrinterId not set, cant open dialog");await l.openDialog({printerId:c})},w=async()=>{c.value&&confirm("Are you sure to abort the print in Quick Stop mode? Please reconnect after.")&&await MO.postQuickStopM112Command(c.value)},C=async()=>{c.value&&await qt.sendPrinterConnectCommand(c.value)},O=async()=>{var A;if(!(!t.printer||!c.value)){if(a.gridEditMode){const M=(A=s.selectedFloor)==null?void 0:A.id;if(!M)throw new Error("Cant clear printer, floor not selected");await ss.deletePrinterFromFloor(M,c.value);return}n.toggleSelectedPrinter(t.printer)}};return(A,M)=>{const L=hr("drop-upload"),U=hr("drop-printer-position");return Jt(($(),Se("div",null,[Jt(($(),Q(kt,{class:Qa([{"tile-large":g.value,"tile-selected":f.value,"tile-unselected":p.value,"tile-setup":e.printer},"tile fill-height"]),disabled:!e.printer,style:Oo({"background-color":!ue(a).gridEditMode||!e.printer?b.value:"rgba(1,1,1,0)"}),variant:"outlined",tile:"",onClick:M[10]||(M[10]=B=>O())},{default:v(()=>{var B,q,G,V;return[(B=y.value)!=null&&B.text.includes("API")?($(),Q(K,{key:0,color:"primary",size:"70",style:{opacity:"0.2",position:"absolute",top:"5%",right:"10%"}},{default:v(()=>M[11]||(M[11]=[k(" wifi_off ")])),_:1})):me("",!0),(q=y.value)!=null&&q.text.includes("USB")?($(),Q(K,{key:1,color:"primary",size:"70",style:{opacity:"0.2",position:"absolute",top:"5%",right:"10%"}},{default:v(()=>M[12]||(M[12]=[k(" usb_off ")])),_:1})):me("",!0),(G=e.printer)!=null&&G.id?($(),Q(Vn,{key:2,class:"tile-inner fill-height"},{default:v(()=>{var W,Z,j,Y,pe,le;return[D("small",tY,ae((W=e.printer)==null?void 0:W.name),1),h(Wd,{"offset-y":""},{activator:v(({props:oe})=>[h(se,ve({class:"float-right d-inline d-xl-none"},oe),{default:v(()=>[h(K,null,{default:v(()=>M[13]||(M[13]=[k("more_vert")])),_:1})]),_:2},1040)]),default:v(()=>[h(Yt,null,{default:v(()=>[h(Fe,{"close-on-click":!0,onClick:M[0]||(M[0]=oe=>T())},{default:v(()=>[h(K,null,{default:v(()=>M[14]||(M[14]=[k("info")])),_:1}),M[15]||(M[15]=k(" Details "))]),_:1}),m.value?($(),Q(Fe,{key:0,"close-on-click":!0,onClick:M[1]||(M[1]=oe=>x())},{default:v(()=>[h(K,null,{default:v(()=>M[16]||(M[16]=[k("open_with")])),_:1}),M[17]||(M[17]=k(" Control "))]),_:1})):me("",!0),h(Fe,{"close-on-click":!0,onClick:M[2]||(M[2]=oe=>R())},{default:v(()=>[h(K,null,{default:v(()=>M[18]||(M[18]=[k("directions")])),_:1}),M[19]||(M[19]=k(" Visit OctoPrint "))]),_:1}),h(Fe,{"close-on-click":!0,onClick:M[3]||(M[3]=oe=>P())},{default:v(()=>[h(K,null,{default:v(()=>M[20]||(M[20]=[k("settings")])),_:1}),M[21]||(M[21]=k(" Edit Printer "))]),_:1}),h(Fe,{"close-on-click":!0,onClick:M[4]||(M[4]=oe=>w())},{default:v(()=>[h(K,null,{default:v(()=>M[22]||(M[22]=[k("stop")])),_:1}),M[23]||(M[23]=k(" Quick stop "))]),_:1})]),_:1})]),_:1}),ue(a).gridEditMode?($(),Se("div",rY,[D("strong",sY,[h(K,null,{default:v(()=>M[32]||(M[32]=[k("disabled_visible")])),_:1}),M[33]||(M[33]=k(" Click to clear "))])])):($(),Se("div",nY,[!ue(r).isPrinterOperational((Z=e.printer)==null?void 0:Z.id)&&ue(r).isApiResponding((j=e.printer)==null?void 0:j.id)?($(),Q(se,{key:0,onClick:M[5]||(M[5]=$t(oe=>C(),["prevent","stop"]))},{default:v(()=>[h(K,null,{default:v(()=>M[24]||(M[24]=[k("usb")])),_:1})]),_:1})):me("",!0),m.value&&ue(r).isPrinterOperational((Y=e.printer)==null?void 0:Y.id)?($(),Q(Ot,{key:1,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[6]||(M[6]=$t(J=>x(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[25]||(M[25]=[k("open_with")])),_:1})]),_:2},1040)]),default:v(()=>M[26]||(M[26]=[D("span",null," Control your printer head or extruder. ",-1)])),_:1})):me("",!0),ue(r).isPrinterOperational((pe=e.printer)==null?void 0:pe.id)?($(),Q(Ot,{key:2,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[7]||(M[7]=$t(J=>w(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[27]||(M[27]=[k("dangerous")])),_:1})]),_:2},1040)]),default:v(()=>M[28]||(M[28]=[D("span",null," Send a quick stop, causing USB to be disconnected. ",-1)])),_:1})):me("",!0),e.printer.enabled&&ue(r).isPrinterNotOnline(e.printer.id)?($(),Q(Ot,{key:3,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[8]||(M[8]=$t(J=>E(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[29]||(M[29]=[k("autorenew")])),_:1})]),_:2},1040)]),default:v(()=>M[30]||(M[30]=[D("span",null," Retry connecting to OctoPrint API ",-1)])),_:1})):me("",!0),h(se,{elevation:"5",onClick:M[9]||(M[9]=$t(oe=>T(),["prevent","stop"]))},{default:v(()=>[h(K,null,{default:v(()=>M[31]||(M[31]=[k("menu_open")])),_:1})]),_:1})])),M[39]||(M[39]=D("br",null,null,-1)),h(Ot,{disabled:!((le=e.printer)!=null&&le.disabledReason),"close-delay":"100",color:"danger","open-delay":"0",location:"top"},{activator:v(({props:oe})=>{var J,be,we;return[D("small",ve({class:"xsmall-resized-font text--secondary d-lg-inline d-none"},oe),[(J=e.printer)!=null&&J.disabledReason?($(),Se("span",iY,[M[35]||(M[35]=D("small",null," MAINTENANCE ",-1)),h(K,{class:"d-none d-xl-inline",color:"primary",size:"small"},{default:v(()=>M[34]||(M[34]=[k(" info ")])),_:1})])):($(),Se("span",oY,[D("small",null,ae((we=(be=y.value)==null?void 0:be.text)==null?void 0:we.toUpperCase()),1)]))],16)]}),default:v(()=>[M[36]||(M[36]=k(" Maintenance reason: ")),M[37]||(M[37]=D("br",null,null,-1)),k(" "+ae(e.printer.disabledReason),1)]),_:1},8,["disabled"]),g.value&&S.value?($(),Se("small",aY,[M[38]||(M[38]=D("strong",null," File: ",-1)),k(" "+ae(S.value),1)])):me("",!0)]}),_:1})):ue(a).gridEditMode?($(),Q(Vn,{key:3},{default:v(()=>[h(K,{size:"48"},{default:v(()=>M[40]||(M[40]=[k("add")])),_:1}),M[41]||(M[41]=k(" Place printer "))]),_:1})):me("",!0),(V=_.value)!=null&&V.progress?($(),Q(lu,{key:4,"model-value":_.value.progress.completion,absolute:"",bottom:"",color:"green",height:"13"},{default:v(()=>{var W,Z,j,Y,pe;return[D("span",lY,ae(g.value?(Z=(W=_.value)==null?void 0:W.progress)!=null&&Z.completion?((pe=(Y=(j=_.value)==null?void 0:j.progress)==null?void 0:Y.completion)==null?void 0:pe.toFixed(1))+"%":"-":S.value),1)]}),_:1},8,["model-value"])):me("",!0)]}),_:1},8,["class","disabled","style"])),[[L,{printers:[e.printer]}]])])),[[U,{x:e.x,y:e.y,printerSet:e.printer}]])}}}),uY=12,cY=[1,2,3,4,5,6,7,8].map(e=>e*2),dY=[1,2,3,4,6].map(e=>e*2),DO="FDM-Monster-Client-Vue2";var LO=(e=>(e.PRINTER_PLACE="PRINTER_PLACE",e))(LO||{});function fY(e){var t,n;return!((t=e==null?void 0:e.appId)!=null&&t.length)||!((n=e==null?void 0:e.intent)!=null&&n.length)?!1:e.appId===DO&&e.intent==="PRINTER_PLACE"}const hY=de({color:String,density:String,...Ue()},"VBannerActions"),pY=xe()({name:"VBannerActions",props:hY(),setup(e,t){let{slots:n}=t;return Mr({VBtn:{color:e.color,density:e.density,slim:!0,variant:"text"}}),Ie(()=>{var r;return h("div",{class:["v-banner-actions",e.class],style:e.style},[(r=n.default)==null?void 0:r.call(n)])}),{}}}),mY=Eu("v-banner-text"),gY=de({avatar:String,bgColor:String,color:String,icon:Je,lines:String,stacked:Boolean,sticky:Boolean,text:String,...ms(),...Ue(),...Dr(),...Lr(),...tl({mobile:null}),...vs(),...jo(),...Pu(),...$n(),...wt(),...Lt()},"VBanner"),$O=xe()({name:"VBanner",props:gY(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:r,backgroundColorStyles:s}=dr(e,"bgColor"),{borderClasses:i}=Ms(e),{densityClasses:o}=gs(e),{displayClasses:a,mobile:l}=hi(e),{dimensionStyles:u}=$r(e),{elevationClasses:d}=Ds(e),{locationStyles:c}=el(e),{positionClasses:f}=Tu(e),{roundedClasses:p}=Hn(e),{themeClasses:m}=Zt(e),g=Re(e,"color"),y=Re(e,"density");Mr({VBannerActions:{color:g,density:y}}),Ie(()=>{const b=!!(e.text||n.text),_=!!(e.avatar||e.icon),S=!!(_||n.prepend);return h(e.tag,{class:["v-banner",{"v-banner--stacked":e.stacked||l.value,"v-banner--sticky":e.sticky,[`v-banner--${e.lines}-line`]:!!e.lines},m.value,r.value,i.value,o.value,a.value,d.value,f.value,p.value,e.class],style:[s.value,u.value,c.value,e.style],role:"banner"},{default:()=>{var T;return[S&&h("div",{key:"prepend",class:"v-banner__prepend"},[n.prepend?h(It,{key:"prepend-defaults",disabled:!_,defaults:{VAvatar:{color:g.value,density:y.value,icon:e.icon,image:e.avatar}}},n.prepend):h(lt,{key:"prepend-avatar",color:g.value,density:y.value,icon:e.icon,image:e.avatar},null)]),h("div",{class:"v-banner__content"},[b&&h(mY,{key:"text"},{default:()=>{var E;return[((E=n.text)==null?void 0:E.call(n))??e.text]}}),(T=n.default)==null?void 0:T.call(n)]),n.actions&&h(pY,{key:"actions"},n.actions)]}})})}}),vY=$e({__name:"PrinterGrid",setup(e){console.debug("Setup grid");const t=Nt(),n=qi(),r=Fs(),s=wm();bt(async()=>{await t.loadPrinters(),await n.loadFloors()});const i=I(()=>n.gridSortedPrinters),o=I(()=>r.gridCols/2),a=I(()=>uY/o.value),l=I(()=>r.gridRows/2);function u(c,f){f.dataTransfer&&c.id&&f.dataTransfer.setData("text",JSON.stringify({appId:DO,intent:LO.PRINTER_PLACE,printerId:c.id}))}function d(c,f){var g;const p=c,m=f;if(!(!((g=i.value)!=null&&g.length)||!i.value[p]))return i.value[p][m]}return(c,f)=>($(),Se("div",null,[ue(s).gridEditMode?($(),Q($O,{key:0},{default:v(()=>[h(rt,{style:{"margin-bottom":"-5px"}},{default:v(()=>[h(Ne,null,{default:v(()=>[D("span",null," Drag "+ae(ue(n).floorlessPrinters.length)+" unplaced printer(s) from here to place it on the grid. ",1),h(rd,null,{default:v(()=>[($(!0),Se(Te,null,Gt(ue(n).floorlessPrinters,p=>($(),Q(sn,{key:p.id,draggable:"",size:"small",style:{cursor:"move"},onDragstart:m=>u(p,m)},{default:v(()=>[k(ae(p.name),1)]),_:2},1032,["onDragstart"]))),128))]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[D("div",null,[f[2]||(f[2]=k(" Clear printers by clicking on ")),D("strong",null,[h(K,null,{default:v(()=>f[0]||(f[0]=[k("disabled_visible")])),_:1}),f[1]||(f[1]=k(" Click to clear "))])])]),_:1})]),_:1})]),_:1})):me("",!0),($(!0),Se(Te,null,Gt(l.value,p=>($(),Q(rt,{key:p,class:"ma-1","no-gutters":""},{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,m=>($(),Q(Ne,{key:m,cols:a.value,sm:a.value},{default:v(()=>[h(rt,{class:"test-top","no-gutters":""},{default:v(()=>[h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1),2*(p-1)),x:2*(m-1),y:2*(p-1)},null,8,["printer","x","y"])]),_:2},1024),h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1)+1,2*(p-1)),x:2*(m-1)+1,y:2*(p-1)},null,8,["printer","x","y"])]),_:2},1024)]),_:2},1024),h(rt,{class:"test-bottom","no-gutters":""},{default:v(()=>[h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1),2*(p-1)+1),x:2*(m-1),y:2*(p-1)+1},null,8,["printer","x","y"])]),_:2},1024),h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1)+1,2*(p-1)+1),x:2*(m-1)+1,y:2*(p-1)+1},null,8,["printer","x","y"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["cols","sm"]))),128))]),_:2},1024))),128)),f[3]||(f[3]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.08","pointer-events":"none"}},null,-1))]))}});function yY(e,t){return e?t.map(n=>({file:n,printer:e})):[]}function FO(e,t){return!(e!=null&&e.length)||!t?[]:e.map(n=>({file:t,printer:n}))}const bY=de({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...ol(),...pm()},"VSwitch"),ip=xe()({name:"VSwitch",inheritAttrs:!1,props:bY(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{attrs:n,slots:r}=t;const s=it(e,"indeterminate"),i=it(e,"modelValue"),{loaderClasses:o}=Id(e),{isFocused:a,focus:l,blur:u}=Vu(e),d=z(),c=_t&&window.matchMedia("(forced-colors: active)").matches,f=I(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),p=mr(),m=I(()=>e.id||`switch-${p}`);function g(){s.value&&(s.value=!1)}function y(b){var _,S;b.stopPropagation(),b.preventDefault(),(S=(_=d.value)==null?void 0:_.input)==null||S.click()}return Ie(()=>{const[b,_]=Ja(n),S=ps.filterProps(e),T=Wa.filterProps(e);return h(ps,ve({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":s.value},o.value,e.class]},b,S,{modelValue:i.value,"onUpdate:modelValue":E=>i.value=E,id:m.value,focused:a.value,style:e.style}),{...r,default:E=>{let{id:R,messagesId:P,isDisabled:x,isReadonly:w,isValid:C}=E;const O={model:i,isValid:C};return h(Wa,ve({ref:d},T,{modelValue:i.value,"onUpdate:modelValue":[A=>i.value=A,g],id:R.value,"aria-describedby":P.value,type:"checkbox","aria-checked":s.value?"mixed":void 0,disabled:x.value,readonly:w.value,onFocus:l,onBlur:u},_),{...r,default:A=>{let{backgroundColorClasses:M,backgroundColorStyles:L}=A;return h("div",{class:["v-switch__track",c?void 0:M.value],style:L.value,onClick:y},[r["track-true"]&&h("div",{key:"prepend",class:"v-switch__track-true"},[r["track-true"](O)]),r["track-false"]&&h("div",{key:"append",class:"v-switch__track-false"},[r["track-false"](O)])])},input:A=>{let{inputNode:M,icon:L,backgroundColorClasses:U,backgroundColorStyles:B}=A;return h(Te,null,[M,h("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":L||e.loading},e.inset||c?void 0:U.value],style:e.inset?void 0:B.value},[r.thumb?h(It,{defaults:{VIcon:{icon:L,size:"x-small"}}},{default:()=>[r.thumb({...O,icon:L})]}):h(k2,null,{default:()=>[e.loading?h(Bp,{name:"v-switch",active:!0,color:C.value===!1?void 0:f.value},{default:q=>r.loader?r.loader(q):h(Rd,{active:q.isActive,color:q.color,indeterminate:!0,size:"16",width:"2"},null)}):L&&h(K,{key:String(L),icon:L,size:"x-small"},null)]})])])}})}})}),{}}}),wY={class:"ma-4 pt-6"},SY={class:"d-flex flex-wrap gap-2"},_Y={class:"pr-2"},kY={class:"pr-2"},xY={class:"pr-2"},EY={class:"pr-2"},CY={class:"pr-2"},PY=$e({__name:"HomeToolbar",setup(e){const t=Nt(),n=fr(),r=qi(),s=wm(),i=z(0),o=I(()=>r.floors);function a(l){r.changeSelectedFloorByIndex(l),i.value=l}return(l,u)=>($(),Q(nr,{flat:""},{default:v(()=>{var d;return[h(gn,null,{default:v(()=>u[1]||(u[1]=[k(" Floors ")])),_:1}),h(IP,{"model-value":i.value,class:"ml-7",mandatory:"",rounded:"","onUpdate:modelValue":a},{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,c=>($(),Q(se,{key:c.id},{default:v(()=>[h(K,null,{default:v(()=>u[2]||(u[2]=[k("format_align_left")])),_:1}),k(" "+ae(c.name),1)]),_:2},1024))),128))]),_:1},8,["model-value"]),(d=ue(t).printers)!=null&&d.length?me("",!0):($(),Q(se,{key:0,class:"mt-0 ml-6",color:"primary",to:"/printers"},{default:v(()=>u[3]||(u[3]=[k(" You have no printers. Click here to start! ")])),_:1})),ue(r).floorlessPrinters.length?($(),Q(tn,{key:1,class:"mt-4 ml-12",color:"primary"},{default:v(()=>[h(K,null,{default:v(()=>u[4]||(u[4]=[k("warning")])),_:1}),k(" "+ae(ue(r).floorlessPrinters.length)+" unplaced printer(s)! ",1)]),_:1})):me("",!0),D("div",wY,[h(ip,{modelValue:ue(s).gridEditMode,"onUpdate:modelValue":u[0]||(u[0]=c=>ue(s).gridEditMode=c),label:"Printer Relocate Mode"},null,8,["modelValue"])]),h(zn),D("span",SY,[D("span",_Y,[h(K,null,{default:v(()=>u[5]||(u[5]=[k("print")])),_:1}),k(" "+ae(ue(n).printingCount),1)]),D("span",kY,[h(K,null,{default:v(()=>u[6]||(u[6]=[k("ac_unit")])),_:1}),k(" "+ae(ue(n).operationalNotPrintingCount),1)]),D("span",xY,[h(K,null,{default:v(()=>u[7]||(u[7]=[k("handyman")])),_:1}),k(" "+ae(ue(t).maintenanceCount),1)]),D("span",EY,[h(K,null,{default:v(()=>u[8]||(u[8]=[k("usb_off")])),_:1}),k(" "+ae(ue(t).disconnectedCount),1)]),D("span",CY,[h(K,null,{default:v(()=>u[9]||(u[9]=[k("print_disabled")])),_:1}),k(" "+ae(ue(t).disabledCount),1)])])]}),_:1}))}}),TY={class:"pl-1"},RY=$e({__name:"PrinterGridView",setup(e){const t=wm(),n=Nt(),r=fr(),s=Qw(),i=Xo(),o=Dt(),a=z(void 0),l=I(()=>i.hasFeature("batchReprintCalls")),u=I(()=>n.selectedPrinters.length>0),d=I(()=>n.selectedPrinters),c=z(null),f=()=>{c.value&&(c.value.value="",a.value=void 0)},p=()=>{n.clearSelectedPrinters()},m=async()=>{var T;const S=await Or(hn.BatchReprintDialog).handleAsync((T=n.selectedPrinters)==null?void 0:T.map(E=>E.id));console.log("[PrinterGridView] Dialog completed",S)},g=()=>{const S=d.value,T=S.filter(P=>r.isApiResponding(P.id));if(!a.value)return;const E=S.length-T.length;E>0&&o.openInfoMessage({title:`${E} printers inaccessible`,subtitle:"These were skipped from uploading."});const R=FO(T,a.value);s.queueUploads(R),c.value&&(c.value.value=""),p()},y=()=>{c.value&&c.value.files?a.value=c.value.files[0]:a.value=void 0},b=S=>{n.toggleSelectedPrinter(S)},_=S=>{qt.openPrinterURL(S.printerURL)};return(S,T)=>{const E=hr("drop-upload");return $(),Se("div",null,[h(PY),ue(t).gridEditMode?me("",!0):Jt(($(),Q($O,{key:0},{default:v(()=>[h(rt,{style:{"margin-bottom":"-5px"}},{default:v(()=>[h(Ne,{style:{padding:"5px 0 0 15px"}},{default:v(()=>[h(rd,{class:"d-inline-block"},{default:v(()=>[d.value.length===0?($(),Q(sn,{key:0,size:"small"},{default:v(()=>T[6]||(T[6]=[k(" No selected printers ")])),_:1})):me("",!0),($(!0),Se(Te,null,Gt(d.value,R=>($(),Q(sn,{key:R.id,closable:"",color:"primary",size:"small",onClick:P=>_(R),"onClick:close":P=>b(R)},{default:v(()=>[k(ae(R.name),1)]),_:2},1032,["onClick","onClick:close"]))),128))]),_:1})]),_:1}),h(Ne,{align:"right",style:{padding:"0"}},{default:v(()=>[a.value?($(),Q(rd,{key:0,class:"float-end"},{default:v(()=>[h(sn,{closable:"","onClick:close":T[0]||(T[0]=R=>f())},{default:v(()=>[k(ae(a.value.name)+" ",1),D("strong",TY,ae(ue(bA)(a.value.size)),1)]),_:1})]),_:1})):me("",!0),T[12]||(T[12]=D("br",null,null,-1)),l.value?($(),Q(se,{key:1,disabled:!u.value,color:"primary",size:"x-small",onClick:T[1]||(T[1]=R=>m())},{default:v(()=>[h(K,{class:"pr-2",size:"small"},{default:v(()=>T[7]||(T[7]=[k(" refresh ")])),_:1}),T[8]||(T[8]=k(" Batch reprint "))]),_:1},8,["disabled"])):me("",!0),h(se,{color:u.value?"primary":"secondary",class:"ml-2",size:"x-small",onClick:T[2]||(T[2]=R=>p())},{default:v(()=>[h(K,{class:"pr-2",size:"small"},{default:v(()=>T[9]||(T[9]=[k(" delete ")])),_:1}),k(" Clear all ("+ae(d.value.length)+") ",1)]),_:1},8,["color"]),h(se,{class:"ml-2",color:"primary",size:"x-small",onClick:T[3]||(T[3]=R=>{var P;return(P=S.$refs.fileUpload)==null?void 0:P.click()})},{default:v(()=>T[10]||(T[10]=[k(" Select gcode file ")])),_:1}),h(se,{disabled:!a.value,class:"ml-2 mr-5",color:"green",size:"x-small",onClick:T[4]||(T[4]=R=>g())},{default:v(()=>T[11]||(T[11]=[k(" Upload gcode file ")])),_:1},8,["disabled"]),D("input",{ref_key:"fileUpload",ref:c,multiple:!1,accept:".gcode",style:{display:"none"},type:"file",onChange:T[5]||(T[5]=R=>y())},null,544)]),_:1})]),_:1})]),_:1})),[[E,{printers:d.value}]]),h(vY,{class:"ma-2"})])}}}),IY=$e({name:"RefreshFilesAction",components:{},props:{printer:Object},setup:()=>({printersStore:Nt()}),methods:{async getFiles(){this.printer&&await this.printersStore.loadPrinterFiles(this.printer.id)}}});function AY(e,t,n,r,s,i){return $(),Q(se,{color:"secondary",onClick:t[0]||(t[0]=o=>e.getFiles())},{default:v(()=>[h(K,null,{default:v(()=>t[1]||(t[1]=[k("refresh")])),_:1}),t[2]||(t[2]=D("span",{class:"d-none d-lg-inline"}," Refresh files ",-1))]),_:1})}const NO=Jo(IY,[["render",AY]]),OY=$e({name:"PrinterDetails",components:{RefreshFilesAction:NO},props:{printer:Object},setup:()=>({printersStore:Nt(),printerStateStore:fr()}),data:()=>({dragging:!1}),computed:{printerId(){var e;return(e=this.printer)==null?void 0:e.id},socketState(){var e;if(this.printerId)return(e=this.printerStateStore.socketStatesById[this.printerId])==null?void 0:e.socket},apiState(){var e;if(this.printerId)return(e=this.printerStateStore.socketStatesById[this.printerId])==null?void 0:e.api},printerTextState(){var e,t,n;if(this.printerId)return(n=(t=(e=this.printerStateStore.printerEventsById[this.printerId])==null?void 0:e.current)==null?void 0:t.payload)==null?void 0:n.state.text}}});function MY(e,t,n,r,s,i){const o=NO,a=hr("drop-upload");return e.printer?Jt(($(),Q(Vn,{key:0,style:Oo(e.dragging?"background-color:red":""),transition:"scale-transition"},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[k(" Name: "+ae(e.printer.name)+" ",1),t[0]||(t[0]=D("br",null,null,-1)),k(" URL: "+ae(e.printer.printerURL)+" ",1),t[1]||(t[1]=D("br",null,null,-1)),t[2]||(t[2]=k(" Host: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.apiState),1)]),_:1}),t[3]||(t[3]=D("br",null,null,-1)),t[4]||(t[4]=k(" WebSocket: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.socketState),1)]),_:1}),t[5]||(t[5]=D("br",null,null,-1)),t[6]||(t[6]=k(" Printer: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.printerTextState),1)]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[h(o,{printer:e.printer,class:"d-flex justify-end"},null,8,["printer"])]),_:1})]),_:1})]),_:1},8,["style"])),[[a,{printers:[e.printer]}]]):me("",!0)}const DY=Jo(OY,[["render",MY]]),LY=$e({__name:"PrinterUrlAction",props:{printer:{}},setup(e){const t=e;async function n(){qt.openPrinterURL(t.printer.printerURL)}return(r,s)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:s[0]||(s[0]=$t(i=>n(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("directions")])),_:1})]),_:1}))}}),$Y=$e({name:"PrinterSettingsAction",props:{printer:Object},computed:{printerId(){return this.printer.id}},methods:{openSettings(){this.$emit("update:show",this.printer.id)}}});function FY(e,t,n,r,s,i){return $(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:t[0]||(t[0]=$t(o=>e.openSettings(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>t[1]||(t[1]=[k("settings")])),_:1})]),_:1})}const NY=Jo($Y,[["render",FY]]),BY=de({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:Je,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...Ue(),...jo({location:"top end"}),...$n(),...wt(),...Lt(),...Au({transition:"scale-rotate-transition"})},"VBadge"),BO=xe()({name:"VBadge",inheritAttrs:!1,props:BY(),setup(e,t){const{backgroundColorClasses:n,backgroundColorStyles:r}=dr(Re(e,"color")),{roundedClasses:s}=Hn(e),{t:i}=Jr(),{textColorClasses:o,textColorStyles:a}=Ts(Re(e,"textColor")),{themeClasses:l}=jF(),{locationStyles:u}=el(e,!0,d=>(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(d)?+(e.offsetY??0):["left","right"].includes(d)?+(e.offsetX??0):0));return Ie(()=>{const d=Number(e.content),c=!e.max||isNaN(d)?e.content:d<=+e.max?d:`${e.max}+`,[f,p]=pv(t.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return h(e.tag,ve({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},p,{style:e.style}),{default:()=>{var m,g;return[h("div",{class:"v-badge__wrapper"},[(g=(m=t.slots).default)==null?void 0:g.call(m),h(si,{transition:e.transition},{default:()=>{var y,b;return[Jt(h("span",ve({class:["v-badge__badge",l.value,n.value,s.value,o.value],style:[r.value,a.value,e.inline?{}:u.value],"aria-atomic":"true","aria-label":i(e.label,d),"aria-live":"polite",role:"status"},f),[e.dot?void 0:t.slots.badge?(b=(y=t.slots).badge)==null?void 0:b.call(y):e.icon?h(K,{icon:e.icon},null):c]),[[Uo,e.modelValue]])]}})])]}})}),{}}}),VY=$e({__name:"PrinterConnectionAction",props:{printer:{}},setup(e){const t=e,n=fr();function r(){return t.printer.id?n.isPrinterOperational(t.printer.id):!1}function s(){return t.printer.id?n.isPrinterPrinting(t.printer.id):!1}async function i(){if(r())return qt.sendPrinterDisconnectCommand(t.printer.id);await qt.sendPrinterConnectCommand(t.printer.id)}return(o,a)=>o.printer.enabled?($(),Q(BO,{key:0,color:r()?"green":"red",bordered:"",class:"ma-2",overlap:""},{badge:v(()=>[r()?($(),Q(K,{key:0},{default:v(()=>a[0]||(a[0]=[k("check")])),_:1})):($(),Q(K,{key:1},{default:v(()=>a[1]||(a[1]=[k("close")])),_:1}))]),default:v(()=>[h(se,{disabled:s(),fab:"",size:"small",onClick:$t(i,["stop"])},{default:v(()=>[h(K,null,{default:v(()=>a[2]||(a[2]=[k("usb")])),_:1})]),_:1},8,["disabled"])]),_:1},8,["color"])):me("",!0)}}),UY=$e({__name:"PrinterQuickStopAction",props:{printer:{}},setup(e){const t=e;async function n(){confirm("Are you sure to abort the print? Please reconnect after.")&&await MO.postQuickStopM112Command(t.printer.id)}return(r,s)=>r.printer.enabled?($(),Q(BO,{key:0,bordered:"",class:"ma-2",overlap:""},{badge:v(()=>[h(K,null,{default:v(()=>s[0]||(s[0]=[k("bolt")])),_:1})]),default:v(()=>[h(se,{fab:"",size:"small",onClick:$t(n,["stop"])},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("stop")])),_:1})]),_:1})]),_:1})):me("",!0)}});class VO extends gr{static async getSettings(t){const n=`${Oe.getPrinterSettingsRoute(t)}`;return await this.get(n)}static async setGCodeAnalysis(t,n=!1){const r=`${Oe.setPrinterSettingsGCodeAnalysisRoute(t)}`;return await this.post(r,{enabled:n})}static async syncPrinterName(t){const n=`${Oe.syncPrinterNameSettingRoute(t)}`;return await this.post(n)}}const zY=$e({__name:"SyncPrinterNameAction",props:{printer:{}},setup(e){const t=e,n=Dt();async function r(){await VO.syncPrinterName(t.printer.id),n.openInfoMessage({title:"Synced printer name to OctoPrint"})}return(s,i)=>($(),Q(Ot,{location:"top"},{activator:v(({props:o})=>[h(se,ve(o,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:i[0]||(i[0]=$t(a=>r(),["stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>i[1]||(i[1]=[k("badge")])),_:1})]),_:2},1040)]),default:v(()=>i[2]||(i[2]=[k(" Set OctoPrints name to the FDM Monster Name ")])),_:1}))}}),HY=$e({__name:"PrinterCreateAction",setup(e){const t=ku();function n(){t.openDialogWithContext(hn.AddOrUpdatePrinterDialog)}return(r,s)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:s[0]||(s[0]=$t(i=>n(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("add")])),_:1})]),_:1}))}}),jY=$e({__name:"PrinterDeleteAction",props:{printer:{}},setup(e){const t=e,n=Nt();async function r(){confirm("Are you sure to delete this printer?")&&await n.deletePrinter(t.printer.id)}return(s,i)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClick:$t(r,["prevent","stop"])},{default:v(()=>[h(K,null,{default:v(()=>i[0]||(i[0]=[k("delete")])),_:1})]),_:1}))}});class gl extends gr{static async createGroup(t){const n=`${Oe.createGroupRoute}`,r={name:t};return await this.post(n,r)}static async deleteGroup(t){const n=`${Oe.deleteGroupRoute(t)}`;return await this.delete(n)}static async getGroupsWithPrinters(){const t=`${Oe.printerGroupRoute}`;return await this.get(t)}static async addPrinterToGroup(t,n){const r=`${Oe.addPrinterToGroupRoute(t)}`,s={printerId:n};return await this.post(r,s)}static async deletePrinterFromGroup(t,n){const r=`${Oe.deletePrinterFromGroupRoute(t)}`,s={printerId:n};return await this.delete(r,s)}static async updateGroupName(t,n){const r=`${Oe.updateGroupNameRoute(t)}`,s={name:n};return await this.patch(r,s)}}const WY=(e,t,n)=>e==null||t==null?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase()),qY=de({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function GY(e,t,n){var a;const r=[],s=(n==null?void 0:n.default)??WY,i=n!=null&&n.filterKeys?Mn(n.filterKeys):!1,o=Object.keys((n==null?void 0:n.customKeyFilter)??{}).length;if(!(e!=null&&e.length))return r;e:for(let l=0;l<e.length;l++){const[u,d=u]=Mn(e[l]),c={},f={};let p=-1;if((t||o>0)&&!(n!=null&&n.noFilter)){if(typeof u=="object"){const y=i||Object.keys(d);for(const b of y){const _=Jn(d,b),S=(a=n==null?void 0:n.customKeyFilter)==null?void 0:a[b];if(p=S?S(_,t,u):s(_,t,u),p!==-1&&p!==!1)S?c[b]=p:f[b]=p;else if((n==null?void 0:n.filterMode)==="every")continue e}}else p=s(u,t,u),p!==-1&&p!==!1&&(f.title=p);const m=Object.keys(f).length,g=Object.keys(c).length;if(!m&&!g||(n==null?void 0:n.filterMode)==="union"&&g!==o&&!m||(n==null?void 0:n.filterMode)==="intersection"&&(g!==o||!m))continue}r.push({index:l,matches:{...f,...c}})}return r}function KY(e,t,n,r){const s=z([]),i=z(new Map),o=I(()=>r!=null&&r.transform?ue(t).map(l=>[l,r.transform(l)]):ue(t));Un(()=>{const l=typeof n=="function"?n():ue(n),u=typeof l!="string"&&typeof l!="number"?"":String(l),d=GY(o.value,u,{customKeyFilter:{...e.customKeyFilter,...ue(r==null?void 0:r.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),c=ue(t),f=[],p=new Map;d.forEach(m=>{let{index:g,matches:y}=m;const b=c[g];f.push(b),p.set(b.value,y)}),s.value=f,i.value=p});function a(l){return i.value.get(l.value)}return{filteredItems:s,filteredMatches:i,getMatches:a}}const YY=e=>{const{touchstartX:t,touchendX:n,touchstartY:r,touchendY:s}=e,i=.5,o=16;e.offsetX=n-t,e.offsetY=s-r,Math.abs(e.offsetY)<i*Math.abs(e.offsetX)&&(e.left&&n<t-o&&e.left(e),e.right&&n>t+o&&e.right(e)),Math.abs(e.offsetX)<i*Math.abs(e.offsetY)&&(e.up&&s<r-o&&e.up(e),e.down&&s>r+o&&e.down(e))};function XY(e,t){var r;const n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,(r=t.start)==null||r.call(t,{originalEvent:e,...t})}function QY(e,t){var r;const n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,(r=t.end)==null||r.call(t,{originalEvent:e,...t}),YY(t)}function JY(e,t){var r;const n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,(r=t.move)==null||r.call(t,{originalEvent:e,...t})}function ZY(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:n=>XY(n,t),touchend:n=>QY(n,t),touchmove:n=>JY(n,t)}}function eX(e,t){var a;const n=t.value,r=n!=null&&n.parent?e.parentElement:e,s=(n==null?void 0:n.options)??{passive:!0},i=(a=t.instance)==null?void 0:a.$.uid;if(!r||!i)return;const o=ZY(t.value);r._touchHandlers=r._touchHandlers??Object.create(null),r._touchHandlers[i]=o,uP(o).forEach(l=>{r.addEventListener(l,o[l],s)})}function tX(e,t){var i,o;const n=(i=t.value)!=null&&i.parent?e.parentElement:e,r=(o=t.instance)==null?void 0:o.$.uid;if(!(n!=null&&n._touchHandlers)||!r)return;const s=n._touchHandlers[r];uP(s).forEach(a=>{n.removeEventListener(a,s[a])}),delete n._touchHandlers[r]}const UO={mounted:eX,unmounted:tX},nX=UO,zO=Symbol.for("vuetify:v-window"),HO=Symbol.for("vuetify:v-window-group"),jO=de({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e=="boolean"||e==="hover"},touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},...Ue(),...wt(),...Lt()},"VWindow"),Dk=xe()({name:"VWindow",directives:{Touch:UO},props:jO(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:r}=Zt(e),{isRtl:s}=Fr(),{t:i}=Jr(),o=Pd(e,HO),a=z(),l=I(()=>s.value?!e.reverse:e.reverse),u=Me(!1),d=I(()=>{const T=e.direction==="vertical"?"y":"x",R=(l.value?!u.value:u.value)?"-reverse":"";return`v-window-${T}${R}-transition`}),c=Me(0),f=z(void 0),p=I(()=>o.items.value.findIndex(T=>o.selected.value.includes(T.id)));Ce(p,(T,E)=>{const R=o.items.value.length,P=R-1;R<=2?u.value=T<E:T===P&&E===0?u.value=!0:T===0&&E===P?u.value=!1:u.value=T<E}),Kt(zO,{transition:d,isReversed:u,transitionCount:c,transitionHeight:f,rootRef:a});const m=I(()=>e.continuous||p.value!==0),g=I(()=>e.continuous||p.value!==o.items.value.length-1);function y(){m.value&&o.prev()}function b(){g.value&&o.next()}const _=I(()=>{const T=[],E={icon:s.value?e.nextIcon:e.prevIcon,class:`v-window__${l.value?"right":"left"}`,onClick:o.prev,"aria-label":i("$vuetify.carousel.prev")};T.push(m.value?n.prev?n.prev({props:E}):h(se,E,null):h("div",null,null));const R={icon:s.value?e.prevIcon:e.nextIcon,class:`v-window__${l.value?"left":"right"}`,onClick:o.next,"aria-label":i("$vuetify.carousel.next")};return T.push(g.value?n.next?n.next({props:R}):h(se,R,null):h("div",null,null)),T}),S=I(()=>e.touch===!1?e.touch:{...{left:()=>{l.value?y():b()},right:()=>{l.value?b():y()},start:E=>{let{originalEvent:R}=E;R.stopPropagation()}},...e.touch===!0?{}:e.touch});return Ie(()=>Jt(h(e.tag,{ref:a,class:["v-window",{"v-window--show-arrows-on-hover":e.showArrows==="hover"},r.value,e.class],style:e.style},{default:()=>{var T,E;return[h("div",{class:"v-window__container",style:{height:f.value}},[(T=n.default)==null?void 0:T.call(n,{group:o}),e.showArrows!==!1&&h("div",{class:"v-window__controls"},[_.value])]),(E=n.additional)==null?void 0:E.call(n,{group:o})]}}),[[hr("touch"),S.value]])),{group:o}}}),WO=de({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...Ue(),...Lp(),...tT()},"VWindowItem"),Lk=xe()({name:"VWindowItem",directives:{Touch:nX},props:WO(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const r=Qe(zO),s=$p(e,HO),{isBooted:i}=jd();if(!r||!s)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const o=Me(!1),a=I(()=>i.value&&(r.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function l(){!o.value||!r||(o.value=!1,r.transitionCount.value>0&&(r.transitionCount.value-=1,r.transitionCount.value===0&&(r.transitionHeight.value=void 0)))}function u(){var m;o.value||!r||(o.value=!0,r.transitionCount.value===0&&(r.transitionHeight.value=Be((m=r.rootRef.value)==null?void 0:m.clientHeight)),r.transitionCount.value+=1)}function d(){l()}function c(m){o.value&&At(()=>{!a.value||!o.value||!r||(r.transitionHeight.value=Be(m.clientHeight))})}const f=I(()=>{const m=r.isReversed.value?e.reverseTransition:e.transition;return a.value?{name:typeof m!="string"?r.transition.value:m,onBeforeEnter:u,onAfterEnter:l,onEnterCancelled:d,onBeforeLeave:u,onAfterLeave:l,onLeaveCancelled:d,onEnter:c}:!1}),{hasContent:p}=nT(e,s.isSelected);return Ie(()=>h(si,{transition:f.value,disabled:!i.value},{default:()=>{var m;return[Jt(h("div",{class:["v-window-item",s.selectedClass.value,e.class],style:e.style},[p.value&&((m=n.default)==null?void 0:m.call(n))]),[[Uo,s.isSelected.value]])]}})),{groupItem:s}}}),rX=de({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),qO=Symbol.for("vuetify:datatable:expanded");function sX(e){const t=Re(e,"expandOnClick"),n=it(e,"expanded",e.expanded,a=>new Set(a),a=>[...a.values()]);function r(a,l){const u=new Set(n.value);l?u.add(a.value):u.delete(a.value),n.value=u}function s(a){return n.value.has(a.value)}function i(a){r(a,!s(a))}const o={expand:r,expanded:n,expandOnClick:t,isExpanded:s,toggleExpand:i};return Kt(qO,o),o}function GO(){const e=Qe(qO);if(!e)throw new Error("foo");return e}const iX=de({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),KO=Symbol.for("vuetify:data-table-group");function oX(e){return{groupBy:it(e,"groupBy")}}function aX(e){const{disableSort:t,groupBy:n,sortBy:r}=e,s=z(new Set),i=I(()=>n.value.map(d=>({...d,order:d.order??!1})).concat(t!=null&&t.value?[]:r.value));function o(d){return s.value.has(d.id)}function a(d){const c=new Set(s.value);o(d)?c.delete(d.id):c.add(d.id),s.value=c}function l(d){function c(f){const p=[];for(const m of f.items)"type"in m&&m.type==="group"?p.push(...c(m)):p.push(m);return p}return c({type:"group",items:d,id:"dummy",key:"dummy",value:"dummy",depth:0})}const u={sortByWithGroups:i,toggleGroup:a,opened:s,groupBy:n,extractRows:l,isGroupOpen:o};return Kt(KO,u),u}function YO(){const e=Qe(KO);if(!e)throw new Error("Missing group!");return e}function lX(e,t){if(!e.length)return[];const n=new Map;for(const r of e){const s=Na(r.raw,t);n.has(s)||n.set(s,[]),n.get(s).push(r)}return n}function XO(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!t.length)return[];const s=lX(e,t[0]),i=[],o=t.slice(1);return s.forEach((a,l)=>{const u=t[0],d=`${r}_${u}_${l}`;i.push({depth:n,id:d,key:u,value:l,items:o.length?XO(a,o,n+1,d):a,type:"group"})}),i}function QO(e,t){const n=[];for(const r of e)"type"in r&&r.type==="group"?(r.value!=null&&n.push(r),(t.has(r.id)||r.value==null)&&n.push(...QO(r.items,t))):n.push(r);return n}function uX(e,t,n){return{flatItems:I(()=>{if(!t.value.length)return e.value;const s=XO(e.value,t.value.map(i=>i.key));return QO(s,n.value)})}}function cX(e){let{page:t,itemsPerPage:n,sortBy:r,groupBy:s,search:i}=e;const o=rn("VDataTable"),a=I(()=>({page:t.value,itemsPerPage:n.value,sortBy:r.value,groupBy:s.value,search:i.value}));let l=null;Ce(a,()=>{zo(l,a.value)||(l&&l.search!==a.value.search&&(t.value=1),o.emit("update:options",a.value),l=a.value)},{deep:!0,immediate:!0})}const dX=de({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10}},"DataTable-paginate"),JO=Symbol.for("vuetify:data-table-pagination");function fX(e){const t=it(e,"page",void 0,r=>+(r??1)),n=it(e,"itemsPerPage",void 0,r=>+(r??10));return{page:t,itemsPerPage:n}}function hX(e){const{page:t,itemsPerPage:n,itemsLength:r}=e,s=I(()=>n.value===-1?0:n.value*(t.value-1)),i=I(()=>n.value===-1?r.value:Math.min(r.value,s.value+n.value)),o=I(()=>n.value===-1||r.value===0?1:Math.ceil(r.value/n.value));Ce([t,o],()=>{t.value>o.value&&(t.value=o.value)});function a(f){n.value=f,t.value=1}function l(){t.value=Pr(t.value+1,1,o.value)}function u(){t.value=Pr(t.value-1,1,o.value)}function d(f){t.value=Pr(f,1,o.value)}const c={page:t,itemsPerPage:n,startIndex:s,stopIndex:i,pageCount:o,itemsLength:r,nextPage:l,prevPage:u,setPage:d,setItemsPerPage:a};return Kt(JO,c),c}function pX(){const e=Qe(JO);if(!e)throw new Error("Missing pagination!");return e}function mX(e){const t=rn("usePaginatedItems"),{items:n,startIndex:r,stopIndex:s,itemsPerPage:i}=e,o=I(()=>i.value<=0?n.value:n.value.slice(r.value,s.value));return Ce(o,a=>{t.emit("update:currentItems",a)}),{paginatedItems:o}}const gX={showSelectAll:!1,allSelected:()=>[],select:e=>{var r;let{items:t,value:n}=e;return new Set(n?[(r=t[0])==null?void 0:r.value]:[])},selectAll:e=>{let{selected:t}=e;return t}},ZO={showSelectAll:!0,allSelected:e=>{let{currentPage:t}=e;return t},select:e=>{let{items:t,value:n,selected:r}=e;for(const s of t)n?r.add(s.value):r.delete(s.value);return r},selectAll:e=>{let{value:t,currentPage:n,selected:r}=e;return ZO.select({items:n,value:t,selected:r})}},eM={showSelectAll:!0,allSelected:e=>{let{allItems:t}=e;return t},select:e=>{let{items:t,value:n,selected:r}=e;for(const s of t)n?r.add(s.value):r.delete(s.value);return r},selectAll:e=>{let{value:t,allItems:n,selected:r}=e;return eM.select({items:n,value:t,selected:r})}},vX=de({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:zo}},"DataTable-select"),tM=Symbol.for("vuetify:data-table-selection");function yX(e,t){let{allItems:n,currentPage:r}=t;const s=it(e,"modelValue",e.modelValue,b=>new Set(Mn(b).map(_=>{var S;return((S=n.value.find(T=>e.valueComparator(_,T.value)))==null?void 0:S.value)??_})),b=>[...b.values()]),i=I(()=>n.value.filter(b=>b.selectable)),o=I(()=>r.value.filter(b=>b.selectable)),a=I(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return gX;case"all":return eM;case"page":default:return ZO}});function l(b){return Mn(b).every(_=>s.value.has(_.value))}function u(b){return Mn(b).some(_=>s.value.has(_.value))}function d(b,_){const S=a.value.select({items:b,value:_,selected:new Set(s.value)});s.value=S}function c(b){d([b],!l([b]))}function f(b){const _=a.value.selectAll({value:b,allItems:i.value,currentPage:o.value,selected:new Set(s.value)});s.value=_}const p=I(()=>s.value.size>0),m=I(()=>{const b=a.value.allSelected({allItems:i.value,currentPage:o.value});return!!b.length&&l(b)}),g=I(()=>a.value.showSelectAll),y={toggleSelect:c,select:d,selectAll:f,isSelected:l,isSomeSelected:u,someSelected:p,allSelected:m,showSelectAll:g};return Kt(tM,y),y}function Sm(){const e=Qe(tM);if(!e)throw new Error("Missing selection!");return e}const bX=de({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),nM=Symbol.for("vuetify:data-table-sort");function wX(e){const t=it(e,"sortBy"),n=Re(e,"mustSort"),r=Re(e,"multiSort");return{sortBy:t,mustSort:n,multiSort:r}}function SX(e){const{sortBy:t,mustSort:n,multiSort:r,page:s}=e,i=l=>{if(l.key==null)return;let u=t.value.map(c=>({...c}))??[];const d=u.find(c=>c.key===l.key);d?d.order==="desc"?n.value?d.order="asc":u=u.filter(c=>c.key!==l.key):d.order="desc":r.value?u=[...u,{key:l.key,order:"asc"}]:u=[{key:l.key,order:"asc"}],t.value=u,s&&(s.value=1)};function o(l){return!!t.value.find(u=>u.key===l.key)}const a={sortBy:t,toggleSort:i,isSorted:o};return Kt(nM,a),a}function rM(){const e=Qe(nM);if(!e)throw new Error("Missing sort!");return e}function _X(e,t,n,r){const s=Jr();return{sortedItems:I(()=>{var o,a;return n.value.length?kX(t.value,n.value,s.current.value,{transform:r==null?void 0:r.transform,sortFunctions:{...e.customKeySort,...(o=r==null?void 0:r.sortFunctions)==null?void 0:o.value},sortRawFunctions:(a=r==null?void 0:r.sortRawFunctions)==null?void 0:a.value}):t.value})}}function kX(e,t,n,r){const s=new Intl.Collator(n,{sensitivity:"accent",usage:"sort"});return e.map(o=>[o,r!=null&&r.transform?r.transform(o):o]).sort((o,a)=>{var l,u;for(let d=0;d<t.length;d++){let c=!1;const f=t[d].key,p=t[d].order??"asc";if(p===!1)continue;let m=Na(o[1],f),g=Na(a[1],f),y=o[0].raw,b=a[0].raw;if(p==="desc"&&([m,g]=[g,m],[y,b]=[b,y]),(l=r==null?void 0:r.sortRawFunctions)!=null&&l[f]){const _=r.sortRawFunctions[f](y,b);if(_==null)continue;if(c=!0,_)return _}if((u=r==null?void 0:r.sortFunctions)!=null&&u[f]){const _=r.sortFunctions[f](m,g);if(_==null)continue;if(c=!0,_)return _}if(!c){if(m instanceof Date&&g instanceof Date)return m.getTime()-g.getTime();if([m,g]=[m,g].map(_=>_!=null?_.toString().toLocaleLowerCase():_),m!==g)return nf(m)&&nf(g)?0:nf(m)?-1:nf(g)?1:!isNaN(m)&&!isNaN(g)?Number(m)-Number(g):s.compare(m,g)}}return 0}).map(o=>{let[a]=o;return a})}function xX(){const e=z([]);kC(()=>e.value=[]);function t(n,r){e.value[r]=n}return{refs:e,updateRef:t}}const EX=de({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:Je,default:"$first"},prevIcon:{type:Je,default:"$prev"},nextIcon:{type:Je,default:"$next"},lastIcon:{type:Je,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...ms(),...Ue(),...Dr(),...vs(),...$n(),...Cu(),...wt({tag:"nav"}),...Lt(),...Ls({variant:"text"})},"VPagination"),$k=xe()({name:"VPagination",props:EX(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,t){let{slots:n,emit:r}=t;const s=it(e,"modelValue"),{t:i,n:o}=Jr(),{isRtl:a}=Fr(),{themeClasses:l}=Zt(e),{width:u}=hi(),d=Me(-1);Mr(void 0,{scoped:!0});const{resizeRef:c}=Ba(x=>{if(!x.length)return;const{target:w,contentRect:C}=x[0],O=w.querySelector(".v-pagination__list > *");if(!O)return;const A=C.width,M=O.offsetWidth+parseFloat(getComputedStyle(O).marginRight)*2;d.value=g(A,M)}),f=I(()=>parseInt(e.length,10)),p=I(()=>parseInt(e.start,10)),m=I(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):d.value>=0?d.value:g(u.value,58));function g(x,w){const C=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((x-w*C)/w).toFixed(2)))}const y=I(()=>{if(f.value<=0||isNaN(f.value)||f.value>Number.MAX_SAFE_INTEGER)return[];if(m.value<=0)return[];if(m.value===1)return[s.value];if(f.value<=m.value)return Cl(f.value,p.value);const x=m.value%2===0,w=x?m.value/2:Math.floor(m.value/2),C=x?w:w+1,O=f.value-w;if(C-s.value>=0)return[...Cl(Math.max(1,m.value-1),p.value),e.ellipsis,f.value];if(s.value-O>=(x?1:0)){const A=m.value-1,M=f.value-A+p.value;return[p.value,e.ellipsis,...Cl(A,M)]}else{const A=Math.max(1,m.value-3),M=A===1?s.value:s.value-Math.ceil(A/2)+p.value;return[p.value,e.ellipsis,...Cl(A,M),e.ellipsis,f.value]}});function b(x,w,C){x.preventDefault(),s.value=w,C&&r(C,w)}const{refs:_,updateRef:S}=xX();Mr({VPaginationBtn:{color:Re(e,"color"),border:Re(e,"border"),density:Re(e,"density"),size:Re(e,"size"),variant:Re(e,"variant"),rounded:Re(e,"rounded"),elevation:Re(e,"elevation")}});const T=I(()=>y.value.map((x,w)=>{const C=O=>S(O,w);if(typeof x=="string")return{isActive:!1,key:`ellipsis-${w}`,page:x,props:{ref:C,ellipsis:!0,icon:!0,disabled:!0}};{const O=x===s.value;return{isActive:O,key:x,page:o(x),props:{ref:C,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:O?e.activeColor:e.color,"aria-current":O,"aria-label":i(O?e.currentPageAriaLabel:e.pageAriaLabel,x),onClick:A=>b(A,x)}}}})),E=I(()=>{const x=!!e.disabled||s.value<=p.value,w=!!e.disabled||s.value>=p.value+f.value-1;return{first:e.showFirstLastPage?{icon:a.value?e.lastIcon:e.firstIcon,onClick:C=>b(C,p.value,"first"),disabled:x,"aria-label":i(e.firstAriaLabel),"aria-disabled":x}:void 0,prev:{icon:a.value?e.nextIcon:e.prevIcon,onClick:C=>b(C,s.value-1,"prev"),disabled:x,"aria-label":i(e.previousAriaLabel),"aria-disabled":x},next:{icon:a.value?e.prevIcon:e.nextIcon,onClick:C=>b(C,s.value+1,"next"),disabled:w,"aria-label":i(e.nextAriaLabel),"aria-disabled":w},last:e.showFirstLastPage?{icon:a.value?e.firstIcon:e.lastIcon,onClick:C=>b(C,p.value+f.value-1,"last"),disabled:w,"aria-label":i(e.lastAriaLabel),"aria-disabled":w}:void 0}});function R(){var w;const x=s.value-p.value;(w=_.value[x])==null||w.$el.focus()}function P(x){x.key===b0.left&&!e.disabled&&s.value>+e.start?(s.value=s.value-1,At(R)):x.key===b0.right&&!e.disabled&&s.value<p.value+f.value-1&&(s.value=s.value+1,At(R))}return Ie(()=>h(e.tag,{ref:c,class:["v-pagination",l.value,e.class],style:e.style,role:"navigation","aria-label":i(e.ariaLabel),onKeydown:P,"data-test":"v-pagination-root"},{default:()=>[h("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&h("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[n.first?n.first(E.value.first):h(se,ve({_as:"VPaginationBtn"},E.value.first),null)]),h("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[n.prev?n.prev(E.value.prev):h(se,ve({_as:"VPaginationBtn"},E.value.prev),null)]),T.value.map((x,w)=>h("li",{key:x.key,class:["v-pagination__item",{"v-pagination__item--is-active":x.isActive}],"data-test":"v-pagination-item"},[n.item?n.item(x):h(se,ve({_as:"VPaginationBtn"},x.props),{default:()=>[x.page]})])),h("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[n.next?n.next(E.value.next):h(se,ve({_as:"VPaginationBtn"},E.value.next),null)]),e.showFirstLastPage&&h("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[n.last?n.last(E.value.last):h(se,ve({_as:"VPaginationBtn"},E.value.last),null)])])]})),{}}}),sM=de({prevIcon:{type:Je,default:"$prev"},nextIcon:{type:Je,default:"$next"},firstIcon:{type:Je,default:"$first"},lastIcon:{type:Je,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),Fk=xe()({name:"VDataTableFooter",props:sM(),setup(e,t){let{slots:n}=t;const{t:r}=Jr(),{page:s,pageCount:i,startIndex:o,stopIndex:a,itemsLength:l,itemsPerPage:u,setItemsPerPage:d}=pX(),c=I(()=>e.itemsPerPageOptions.map(f=>typeof f=="number"?{value:f,title:f===-1?r("$vuetify.dataFooter.itemsPerPageAll"):String(f)}:{...f,title:isNaN(Number(f.title))?r(f.title):f.title}));return Ie(()=>{var p;const f=$k.filterProps(e);return h("div",{class:"v-data-table-footer"},[(p=n.prepend)==null?void 0:p.call(n),h("div",{class:"v-data-table-footer__items-per-page"},[h("span",null,[r(e.itemsPerPageText)]),h(qa,{items:c.value,modelValue:u.value,"onUpdate:modelValue":m=>d(Number(m)),density:"compact",variant:"outlined","hide-details":!0},null)]),h("div",{class:"v-data-table-footer__info"},[h("div",null,[r(e.pageText,l.value?o.value+1:0,a.value,l.value)])]),h("div",{class:"v-data-table-footer__pagination"},[h($k,ve({modelValue:s.value,"onUpdate:modelValue":m=>s.value=m,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:i.value,"next-aria-label":e.nextPageLabel,"previous-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},f),null)])])}),{}}}),op=$F({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,t)=>{let{slots:n}=t;const r=e.tag??"td";return h(r,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap},`v-data-table-column--align-${e.align}`],style:{height:Be(e.height),width:Be(e.width),maxWidth:Be(e.maxWidth),left:Be(e.fixedOffset||null)}},{default:()=>{var s;return[(s=n.default)==null?void 0:s.call(n)]}})}),CX=de({headers:Array},"DataTable-header"),iM=Symbol.for("vuetify:data-table-headers"),oM={title:"",sortable:!1},PX={...oM,width:48};function TX(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(n=>({element:n,priority:0}));return{enqueue:(n,r)=>{let s=!1;for(let i=0;i<t.length;i++)if(t[i].priority>r){t.splice(i,0,{element:n,priority:r}),s=!0;break}s||t.push({element:n,priority:r})},size:()=>t.length,count:()=>{let n=0;if(!t.length)return 0;const r=Math.floor(t[0].priority);for(let s=0;s<t.length;s++)Math.floor(t[s].priority)===r&&(n+=1);return n},dequeue:()=>t.shift()}}function Hy(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)t.push(e);else for(const n of e.children)Hy(n,t);return t}function aM(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const n of e)n.key&&t.add(n.key),n.children&&aM(n.children,t);return t}function RX(e){if(e.key){if(e.key==="data-table-group")return oM;if(["data-table-expand","data-table-select"].includes(e.key))return PX}}function Zw(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(t,...e.children.map(n=>Zw(n,t+1))):t}function IX(e){let t=!1;function n(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(i)if(o&&(i.fixed=!0),i.fixed)if(i.children)for(let a=i.children.length-1;a>=0;a--)n(i.children[a],!0);else t?isNaN(+i.width)&&(`${i.key}`,void 0):i.lastFixed=!0,t=!0;else if(i.children)for(let a=i.children.length-1;a>=0;a--)n(i.children[a]);else t=!1}for(let i=e.length-1;i>=0;i--)n(e[i]);function r(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!i)return o;if(i.children){i.fixedOffset=o;for(const a of i.children)o=r(a,o)}else i.fixed&&(i.fixedOffset=o,o+=parseFloat(i.width||"0")||0);return o}let s=0;for(const i of e)s=r(i,s)}function AX(e,t){const n=[];let r=0;const s=TX(e);for(;s.size()>0;){let o=s.count();const a=[];let l=1;for(;o>0;){const{element:u,priority:d}=s.dequeue(),c=t-r-Zw(u);if(a.push({...u,rowspan:c??1,colspan:u.children?Hy(u).length:1}),u.children)for(const f of u.children){const p=d%1+l/Math.pow(10,r+2);s.enqueue(f,r+c+p)}l+=1,o-=1}r+=1,n.push(a)}return{columns:e.map(o=>Hy(o)).flat(),headers:n}}function lM(e){const t=[];for(const n of e){const r={...RX(n),...n},s=r.key??(typeof r.value=="string"?r.value:null),i=r.value??s??null,o={...r,key:s,value:i,sortable:r.sortable??(r.key!=null||!!r.sort),children:r.children?lM(r.children):void 0};t.push(o)}return t}function OX(e,t){const n=z([]),r=z([]),s=z({}),i=z({}),o=z({});Un(()=>{var g,y,b;const u=(e.headers||Object.keys(e.items[0]??{}).map(_=>({key:_,title:di(_)}))).slice(),d=aM(u);(g=t==null?void 0:t.groupBy)!=null&&g.value.length&&!d.has("data-table-group")&&u.unshift({key:"data-table-group",title:"Group"}),(y=t==null?void 0:t.showSelect)!=null&&y.value&&!d.has("data-table-select")&&u.unshift({key:"data-table-select"}),(b=t==null?void 0:t.showExpand)!=null&&b.value&&!d.has("data-table-expand")&&u.push({key:"data-table-expand"});const c=lM(u);IX(c);const f=Math.max(...c.map(_=>Zw(_)))+1,p=AX(c,f);n.value=p.headers,r.value=p.columns;const m=p.headers.flat(1);for(const _ of m)_.key&&(_.sortable&&(_.sort&&(s.value[_.key]=_.sort),_.sortRaw&&(i.value[_.key]=_.sortRaw)),_.filter&&(o.value[_.key]=_.filter))});const a={headers:n,columns:r,sortFunctions:s,sortRawFunctions:i,filterFunctions:o};return Kt(iM,a),a}function _m(){const e=Qe(iM);if(!e)throw new Error("Missing headers!");return e}const uM=de({color:String,sticky:Boolean,disableSort:Boolean,multiSort:Boolean,sortAscIcon:{type:Je,default:"$sortAsc"},sortDescIcon:{type:Je,default:"$sortDesc"},headerProps:{type:Object},...tl(),...Np()},"VDataTableHeaders"),Nk=xe()({name:"VDataTableHeaders",props:uM(),setup(e,t){let{slots:n}=t;const{t:r}=Jr(),{toggleSort:s,sortBy:i,isSorted:o}=rM(),{someSelected:a,allSelected:l,selectAll:u,showSelectAll:d}=Sm(),{columns:c,headers:f}=_m(),{loaderClasses:p}=Id(e);function m(x,w){if(!(!e.sticky&&!x.fixed))return{position:"sticky",left:x.fixed?Be(x.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${w})`:void 0}}function g(x){const w=i.value.find(C=>C.key===x.key);return w?w.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:y,backgroundColorStyles:b}=dr(e,"color"),{displayClasses:_,mobile:S}=hi(e),T=I(()=>({headers:f.value,columns:c.value,toggleSort:s,isSorted:o,sortBy:i.value,someSelected:a.value,allSelected:l.value,selectAll:u,getSortIcon:g})),E=I(()=>["v-data-table__th",{"v-data-table__th--sticky":e.sticky},_.value,p.value]),R=x=>{let{column:w,x:C,y:O}=x;const A=w.key==="data-table-select"||w.key==="data-table-expand",M=ve(e.headerProps??{},w.headerProps??{});return h(op,ve({tag:"th",align:w.align,class:[{"v-data-table__th--sortable":w.sortable&&!e.disableSort,"v-data-table__th--sorted":o(w),"v-data-table__th--fixed":w.fixed},...E.value],style:{width:Be(w.width),minWidth:Be(w.minWidth),maxWidth:Be(w.maxWidth),...m(w,O)},colspan:w.colspan,rowspan:w.rowspan,onClick:w.sortable?()=>s(w):void 0,fixed:w.fixed,nowrap:w.nowrap,lastFixed:w.lastFixed,noPadding:A},M),{default:()=>{var B;const L=`header.${w.key}`,U={column:w,selectAll:u,isSorted:o,toggleSort:s,sortBy:i.value,someSelected:a.value,allSelected:l.value,getSortIcon:g};return n[L]?n[L](U):w.key==="data-table-select"?((B=n["header.data-table-select"])==null?void 0:B.call(n,U))??(d.value&&h(yu,{modelValue:l.value,indeterminate:a.value&&!l.value,"onUpdate:modelValue":u},null)):h("div",{class:"v-data-table-header__content"},[h("span",null,[w.title]),w.sortable&&!e.disableSort&&h(K,{key:"icon",class:"v-data-table-header__sort-icon",icon:g(w)},null),e.multiSort&&o(w)&&h("div",{key:"badge",class:["v-data-table-header__sort-badge",...y.value],style:b.value},[i.value.findIndex(q=>q.key===w.key)+1])])}})},P=()=>{const x=ve(e.headerProps??{}??{}),w=I(()=>c.value.filter(O=>(O==null?void 0:O.sortable)&&!e.disableSort)),C=I(()=>{if(c.value.find(A=>A.key==="data-table-select")!=null)return l.value?"$checkboxOn":a.value?"$checkboxIndeterminate":"$checkboxOff"});return h(op,ve({tag:"th",class:[...E.value],colspan:f.value.length+1},x),{default:()=>[h("div",{class:"v-data-table-header__content"},[h(qa,{chips:!0,class:"v-data-table__td-sort-select",clearable:!0,density:"default",items:w.value,label:r("$vuetify.dataTable.sortBy"),multiple:e.multiSort,variant:"underlined","onClick:clear":()=>i.value=[],appendIcon:C.value,"onClick:append":()=>u(!l.value)},{...n,chip:O=>{var A;return h(sn,{onClick:(A=O.item.raw)!=null&&A.sortable?()=>s(O.item.raw):void 0,onMousedown:M=>{M.preventDefault(),M.stopPropagation()}},{default:()=>[O.item.title,h(K,{class:["v-data-table__td-sort-icon",o(O.item.raw)&&"v-data-table__td-sort-icon-active"],icon:g(O.item.raw),size:"small"},null)]})}})])]})};Ie(()=>S.value?h("tr",null,[h(P,null,null)]):h(Te,null,[n.headers?n.headers(T.value):f.value.map((x,w)=>h("tr",null,[x.map((C,O)=>h(R,{column:C,x:O,y:w},null))])),e.loading&&h("tr",{class:"v-data-table-progress"},[h("th",{colspan:c.value.length},[h(Bp,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:n.loader})])])]))}}),MX=de({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),DX=xe()({name:"VDataTableGroupHeaderRow",props:MX(),setup(e,t){let{slots:n}=t;const{isGroupOpen:r,toggleGroup:s,extractRows:i}=YO(),{isSelected:o,isSomeSelected:a,select:l}=Sm(),{columns:u}=_m(),d=I(()=>i([e.item]));return()=>h("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[u.value.map(c=>{var f,p;if(c.key==="data-table-group"){const m=r(e.item)?"$expand":"$next",g=()=>s(e.item);return((f=n["data-table-group"])==null?void 0:f.call(n,{item:e.item,count:d.value.length,props:{icon:m,onClick:g}}))??h(op,{class:"v-data-table-group-header-row__column"},{default:()=>[h(se,{size:"small",variant:"text",icon:m,onClick:g},null),h("span",null,[e.item.value]),h("span",null,[k("("),d.value.length,k(")")])]})}if(c.key==="data-table-select"){const m=o(d.value),g=a(d.value)&&!m,y=b=>l(d.value,b);return((p=n["data-table-select"])==null?void 0:p.call(n,{props:{modelValue:m,indeterminate:g,"onUpdate:modelValue":y}}))??h("td",null,[h(yu,{modelValue:m,indeterminate:g,"onUpdate:modelValue":y},null)])}return h("td",null,null)})])}}),LX=de({index:Number,item:Object,cellProps:[Object,Function],onClick:Bn(),onContextmenu:Bn(),onDblclick:Bn(),...tl()},"VDataTableRow"),$X=xe()({name:"VDataTableRow",props:LX(),setup(e,t){let{slots:n}=t;const{displayClasses:r,mobile:s}=hi(e,"v-data-table__tr"),{isSelected:i,toggleSelect:o,someSelected:a,allSelected:l,selectAll:u}=Sm(),{isExpanded:d,toggleExpand:c}=GO(),{toggleSort:f,sortBy:p,isSorted:m}=rM(),{columns:g}=_m();Ie(()=>h("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},r.value],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&g.value.map((y,b)=>{const _=e.item,S=`item.${y.key}`,T=`header.${y.key}`,E={index:e.index,item:_.raw,internalItem:_,value:Na(_.columns,y.key),column:y,isSelected:i,toggleSelect:o,isExpanded:d,toggleExpand:c},R={column:y,selectAll:u,isSorted:m,toggleSort:f,sortBy:p.value,someSelected:a.value,allSelected:l.value,getSortIcon:()=>""},P=typeof e.cellProps=="function"?e.cellProps({index:E.index,item:E.item,internalItem:E.internalItem,value:E.value,column:y}):e.cellProps,x=typeof y.cellProps=="function"?y.cellProps({index:E.index,item:E.item,internalItem:E.internalItem,value:E.value}):y.cellProps;return h(op,ve({align:y.align,class:{"v-data-table__td--expanded-row":y.key==="data-table-expand","v-data-table__td--select-row":y.key==="data-table-select"},fixed:y.fixed,fixedOffset:y.fixedOffset,lastFixed:y.lastFixed,maxWidth:s.value?void 0:y.maxWidth,noPadding:y.key==="data-table-select"||y.key==="data-table-expand",nowrap:y.nowrap,width:s.value?void 0:y.width},P,x),{default:()=>{var C,O,A,M,L;if(n[S]&&!s.value)return(C=n[S])==null?void 0:C.call(n,E);if(y.key==="data-table-select")return((O=n["item.data-table-select"])==null?void 0:O.call(n,E))??h(yu,{disabled:!_.selectable,modelValue:i([_]),onClick:$t(()=>o(_),["stop"])},null);if(y.key==="data-table-expand")return((A=n["item.data-table-expand"])==null?void 0:A.call(n,E))??h(se,{icon:d(_)?"$collapse":"$expand",size:"small",variant:"text",onClick:$t(()=>c(_),["stop"])},null);const w=ae(E.value);return s.value?h(Te,null,[h("div",{class:"v-data-table__td-title"},[((M=n[T])==null?void 0:M.call(n,R))??y.title]),h("div",{class:"v-data-table__td-value"},[((L=n[S])==null?void 0:L.call(n,E))??w])]):w}})})]))}}),cM=de({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function],...tl()},"VDataTableRows"),Bk=xe()({name:"VDataTableRows",inheritAttrs:!1,props:cM(),setup(e,t){let{attrs:n,slots:r}=t;const{columns:s}=_m(),{expandOnClick:i,toggleExpand:o,isExpanded:a}=GO(),{isSelected:l,toggleSelect:u}=Sm(),{toggleGroup:d,isGroupOpen:c}=YO(),{t:f}=Jr(),{mobile:p}=hi(e);return Ie(()=>{var m,g;return e.loading&&(!e.items.length||r.loading)?h("tr",{class:"v-data-table-rows-loading",key:"loading"},[h("td",{colspan:s.value.length},[((m=r.loading)==null?void 0:m.call(r))??f(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?h("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[h("td",{colspan:s.value.length},[((g=r["no-data"])==null?void 0:g.call(r))??f(e.noDataText)])]):h(Te,null,[e.items.map((y,b)=>{var T;if(y.type==="group"){const E={index:b,item:y,columns:s.value,isExpanded:a,toggleExpand:o,isSelected:l,toggleSelect:u,toggleGroup:d,isGroupOpen:c};return r["group-header"]?r["group-header"](E):h(DX,ve({key:`group-header_${y.id}`,item:y},N0(n,":group-header",()=>E)),r)}const _={index:b,item:y.raw,internalItem:y,columns:s.value,isExpanded:a,toggleExpand:o,isSelected:l,toggleSelect:u},S={..._,props:ve({key:`item_${y.key??y.index}`,onClick:i.value?()=>{o(y)}:void 0,index:b,item:y,cellProps:e.cellProps,mobile:p.value},N0(n,":row",()=>_),typeof e.rowProps=="function"?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return h(Te,{key:S.props.key},[r.item?r.item(S):h($X,S.props,r),a(y)&&((T=r["expanded-row"])==null?void 0:T.call(r,_))])})])}),{}}}),dM=de({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,...Ue(),...Dr(),...wt(),...Lt()},"VTable"),jy=xe()({name:"VTable",props:dM(),setup(e,t){let{slots:n,emit:r}=t;const{themeClasses:s}=Zt(e),{densityClasses:i}=gs(e);return Ie(()=>h(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!n.top,"v-table--has-bottom":!!n.bottom,"v-table--hover":e.hover},s.value,i.value,e.class],style:e.style},{default:()=>{var o,a,l;return[(o=n.top)==null?void 0:o.call(n),n.default?h("div",{class:"v-table__wrapper",style:{height:Be(e.height)}},[h("table",null,[n.default()])]):(a=n.wrapper)==null?void 0:a.call(n),(l=n.bottom)==null?void 0:l.call(n)]}})),{}}}),FX=de({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function NX(e,t,n,r){const s=e.returnObject?t:Jn(t,e.itemValue),i=Jn(t,e.itemSelectable,!0),o=r.reduce((a,l)=>(l.key!=null&&(a[l.key]=Jn(t,l.value)),a),{});return{type:"item",key:e.returnObject?Jn(t,e.itemValue):s,index:n,value:s,selectable:i,columns:o,raw:t}}function BX(e,t,n){return t.map((r,s)=>NX(e,r,s,n))}function VX(e,t){return{items:I(()=>BX(e,e.items,t.value))}}const UX=de({...cM(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...rX(),...iX(),...CX(),...FX(),...vX(),...bX(),...uM(),...dM()},"DataTable"),zX=de({...dX(),...UX(),...qY(),...sM()},"VDataTable"),HX=xe()({name:"VDataTable",props:zX(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,t){let{attrs:n,slots:r}=t;const{groupBy:s}=oX(e),{sortBy:i,multiSort:o,mustSort:a}=wX(e),{page:l,itemsPerPage:u}=fX(e),{disableSort:d}=Vo(e),{columns:c,headers:f,sortFunctions:p,sortRawFunctions:m,filterFunctions:g}=OX(e,{groupBy:s,showSelect:Re(e,"showSelect"),showExpand:Re(e,"showExpand")}),{items:y}=VX(e,c),b=Re(e,"search"),{filteredItems:_}=KY(e,y,b,{transform:J=>J.columns,customKeyFilter:g}),{toggleSort:S}=SX({sortBy:i,multiSort:o,mustSort:a,page:l}),{sortByWithGroups:T,opened:E,extractRows:R,isGroupOpen:P,toggleGroup:x}=aX({groupBy:s,sortBy:i,disableSort:d}),{sortedItems:w}=_X(e,_,T,{transform:J=>({...J.raw,...J.columns}),sortFunctions:p,sortRawFunctions:m}),{flatItems:C}=uX(w,s,E),O=I(()=>C.value.length),{startIndex:A,stopIndex:M,pageCount:L,setItemsPerPage:U}=hX({page:l,itemsPerPage:u,itemsLength:O}),{paginatedItems:B}=mX({items:C,startIndex:A,stopIndex:M,itemsPerPage:u}),q=I(()=>R(B.value)),{isSelected:G,select:V,selectAll:W,toggleSelect:Z,someSelected:j,allSelected:Y}=yX(e,{allItems:y,currentPage:q}),{isExpanded:pe,toggleExpand:le}=sX(e);cX({page:l,itemsPerPage:u,sortBy:i,groupBy:s,search:b}),Mr({VDataTableRows:{hideNoData:Re(e,"hideNoData"),noDataText:Re(e,"noDataText"),loading:Re(e,"loading"),loadingText:Re(e,"loadingText")}});const oe=I(()=>({page:l.value,itemsPerPage:u.value,sortBy:i.value,pageCount:L.value,toggleSort:S,setItemsPerPage:U,someSelected:j.value,allSelected:Y.value,isSelected:G,select:V,selectAll:W,toggleSelect:Z,isExpanded:pe,toggleExpand:le,isGroupOpen:P,toggleGroup:x,items:q.value.map(J=>J.raw),internalItems:q.value,groupedItems:B.value,columns:c.value,headers:f.value}));return Ie(()=>{const J=Fk.filterProps(e),be=Nk.filterProps(e),we=Bk.filterProps(e),ne=jy.filterProps(e);return h(jy,ve({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},ne),{top:()=>{var X;return(X=r.top)==null?void 0:X.call(r,oe.value)},default:()=>{var X,He,F,N,ee,re;return r.default?r.default(oe.value):h(Te,null,[(X=r.colgroup)==null?void 0:X.call(r,oe.value),!e.hideDefaultHeader&&h("thead",{key:"thead"},[h(Nk,be,r)]),(He=r.thead)==null?void 0:He.call(r,oe.value),!e.hideDefaultBody&&h("tbody",null,[(F=r["body.prepend"])==null?void 0:F.call(r,oe.value),r.body?r.body(oe.value):h(Bk,ve(n,we,{items:B.value}),r),(N=r["body.append"])==null?void 0:N.call(r,oe.value)]),(ee=r.tbody)==null?void 0:ee.call(r,oe.value),(re=r.tfoot)==null?void 0:re.call(r,oe.value)])},bottom:()=>r.bottom?r.bottom(oe.value):!e.hideDefaultFooter&&h(Te,null,[h(bn,null,null),h(Fk,J,{prepend:r["footer.prepend"]})])})}),{}}}),jX=de({...Ue(),...R6()},"VForm"),eS=xe()({name:"VForm",props:jX(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,t){let{slots:n,emit:r}=t;const s=I6(e),i=z();function o(l){l.preventDefault(),s.reset()}function a(l){const u=l,d=s.validate();u.then=d.then.bind(d),u.catch=d.catch.bind(d),u.finally=d.finally.bind(d),r("submit",u),u.defaultPrevented||d.then(c=>{var p;let{valid:f}=c;f&&((p=i.value)==null||p.submit())}),u.preventDefault()}return Ie(()=>{var l;return h("form",{ref:i,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:o,onSubmit:a},[(l=n.default)==null?void 0:l.call(n,s)])}),ji(s,i)}}),WX=de({disabled:Boolean,modelValue:{type:Boolean,default:null},...Lb()},"VHover"),Vk=xe()({name:"VHover",props:WX(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=it(e,"modelValue"),{runOpenDelay:s,runCloseDelay:i}=$b(e,o=>!e.disabled&&(r.value=o));return()=>{var o;return(o=n.default)==null?void 0:o.call(n,{isHovering:r.value,props:{onMouseenter:s,onMouseleave:i}})}}}),tS=Symbol.for("vuetify:v-stepper"),fM=de({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),qX=xe()({name:"VStepperActions",props:fM(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,t){let{emit:n,slots:r}=t;const{t:s}=Jr();function i(){n("click:prev")}function o(){n("click:next")}return Ie(()=>{const a={onClick:i},l={onClick:o};return h("div",{class:"v-stepper-actions"},[h(It,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:s(e.prevText),variant:"text"}}},{default:()=>{var u;return[((u=r.prev)==null?void 0:u.call(r,{props:a}))??h(se,a,null)]}}),h(It,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:s(e.nextText),variant:"tonal"}}},{default:()=>{var u;return[((u=r.next)==null?void 0:u.call(r,{props:l}))??h(se,l,null)]}})])}),{}}}),hM=Eu("v-stepper-header"),GX=de({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:String,default:"$complete"},editable:Boolean,editIcon:{type:String,default:"$edit"},error:Boolean,errorIcon:{type:String,default:"$error"},icon:String,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),KX=de({...GX(),...Lp()},"VStepperItem"),YX=xe()({name:"VStepperItem",directives:{Ripple:Ru},props:KX(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const r=$p(e,tS,!0),s=I(()=>(r==null?void 0:r.value.value)??e.value),i=I(()=>e.rules.every(f=>f()===!0)),o=I(()=>!e.disabled&&e.editable),a=I(()=>!e.disabled&&e.editable),l=I(()=>e.error||!i.value),u=I(()=>e.complete||e.rules.length>0&&i.value),d=I(()=>l.value?e.errorIcon:u.value?e.completeIcon:r.isSelected.value&&e.editable?e.editIcon:e.icon),c=I(()=>({canEdit:a.value,hasError:l.value,hasCompleted:u.value,title:e.title,subtitle:e.subtitle,step:s.value,value:e.value}));return Ie(()=>{var y,b,_;const f=(!r||r.isSelected.value||u.value||a.value)&&!l.value&&!e.disabled,p=!!(e.title!=null||n.title),m=!!(e.subtitle!=null||n.subtitle);function g(){r==null||r.toggle()}return Jt(h("button",{class:["v-stepper-item",{"v-stepper-item--complete":u.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":l.value},r==null?void 0:r.selectedClass.value],disabled:!e.editable,onClick:g},[o.value&&Ho(!0,"v-stepper-item"),h(lt,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:f?e.color:void 0,size:24},{default:()=>{var S;return[((S=n.icon)==null?void 0:S.call(n,c.value))??(d.value?h(K,{icon:d.value},null):s.value)]}}),h("div",{class:"v-stepper-item__content"},[p&&h("div",{key:"title",class:"v-stepper-item__title"},[((y=n.title)==null?void 0:y.call(n,c.value))??e.title]),m&&h("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((b=n.subtitle)==null?void 0:b.call(n,c.value))??e.subtitle]),(_=n.default)==null?void 0:_.call(n,c.value)])]),[[hr("ripple"),e.ripple&&e.editable,null]])}),{}}}),XX=de({...Os(jO(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),QX=xe()({name:"VStepperWindow",props:XX(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=Qe(tS,null),s=it(e,"modelValue"),i=I({get(){var o;return s.value!=null||!r?s.value:(o=r.items.value.find(a=>r.selected.value.includes(a.id)))==null?void 0:o.value},set(o){s.value=o}});return Ie(()=>{const o=Dk.filterProps(e);return h(Dk,ve({_as:"VStepperWindow"},o,{modelValue:i.value,"onUpdate:modelValue":a=>i.value=a,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),JX=de({...WO()},"VStepperWindowItem"),ZX=xe()({name:"VStepperWindowItem",props:JX(),setup(e,t){let{slots:n}=t;return Ie(()=>{const r=Lk.filterProps(e);return h(Lk,ve({_as:"VStepperWindowItem"},r,{class:["v-stepper-window-item",e.class],style:e.style}),n)}),{}}}),eQ=de({altLabels:Boolean,bgColor:String,completeIcon:String,editIcon:String,editable:Boolean,errorIcon:String,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,...tl()},"Stepper"),tQ=de({...eQ(),...Dp({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...OO(),...dP(fM(),["prevText","nextText"])},"VStepper"),nQ=xe()({name:"VStepper",props:tQ(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{items:r,next:s,prev:i,selected:o}=Pd(e,tS),{displayClasses:a,mobile:l}=hi(e),{completeIcon:u,editIcon:d,errorIcon:c,color:f,editable:p,prevText:m,nextText:g}=Vo(e),y=I(()=>e.items.map((S,T)=>{const E=Jn(S,e.itemTitle,S),R=Jn(S,e.itemValue,T+1);return{title:E,value:R,raw:S}})),b=I(()=>r.value.findIndex(S=>o.value.includes(S.id))),_=I(()=>e.disabled?e.disabled:b.value===0?"prev":b.value===r.value.length-1?"next":!1);return Mr({VStepperItem:{editable:p,errorIcon:c,completeIcon:u,editIcon:d,prevText:m,nextText:g},VStepperActions:{color:f,disabled:_,prevText:m,nextText:g}}),Ie(()=>{const S=sp.filterProps(e),T=!!(n.header||e.items.length),E=e.items.length>0,R=!e.hideActions&&!!(E||n.actions);return h(sp,ve(S,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":l.value},a.value,e.class],style:e.style}),{default:()=>{var P,x;return[T&&h(hM,{key:"stepper-header"},{default:()=>[y.value.map((w,C)=>{let{raw:O,...A}=w;return h(Te,null,[!!C&&h(bn,null,null),h(YX,A,{default:n[`header-item.${A.value}`]??n.header,icon:n.icon,title:n.title,subtitle:n.subtitle})])})]}),E&&h(QX,{key:"stepper-window"},{default:()=>[y.value.map(w=>h(ZX,{value:w.value},{default:()=>{var C,O;return((C=n[`item.${w.value}`])==null?void 0:C.call(n,w))??((O=n.item)==null?void 0:O.call(n,w))}}))]}),(P=n.default)==null?void 0:P.call(n,{prev:i,next:s}),R&&(((x=n.actions)==null?void 0:x.call(n,{next:s,prev:i}))??h(qX,{key:"stepper-actions","onClick:prev":i,"onClick:next":s},n))]}})}),{prev:i,next:s}}}),rQ={class:"mt-4 mb-4"},sQ={key:0},iQ={key:1},oQ={key:0},aQ={key:1},lQ=["colspan"],uQ=$e({__name:"PrintersView",setup(e){const t=Dt(),n=Nt(),r=z(!1),s=fr(),i=qi(),o=ku(),a=Xo(),l=z([]),u=z([]),d=z(""),c=z(""),f=z(),p=z(""),m=z([]),g=I(()=>a.hasFeature("printerGroupsApi")),y=I(()=>[{title:"Enabled",key:"enabled"},{title:"Printer Name",align:"start",sortable:!0,key:"name"},{title:"Floor",key:"floor",sortable:!1},...a.hasFeature("printerGroupsApi")?[{title:"Group(s)",key:"group",sortable:!0}]:[],{title:"Actions",key:"actions",sortable:!1},{title:"Socket Update",key:"socketupdate",sortable:!1},{title:"",key:"data-table-expand"}]);async function b(){if(r.value=!0,await a.loadFeatures(),a.hasFeature("printerGroupsApi")){const j=await gl.getGroupsWithPrinters();l.value=j}return r.value=!1,l}const _=Vw({queryKey:["printerGroups"],queryFn:b}),S=I(()=>{var Y;if(!a.hasFeature("printerGroupsApi")||!((Y=u.value)!=null&&Y.length))return n.printers;const j=u.value.flatMap(pe=>pe.printers.map(le=>le.printerId))||[];return n.printers.filter(pe=>j.includes(pe.id))}),T=I(()=>s.printerCurrentEventReceivedAtById),E=I(()=>{if(!(!f.value&&f.value!==0))return l.value[f.value]}),R=j=>j?(Date.now()-j)/1e3:void 0,P=j=>l.value.filter(Y=>Y.printers.find(pe=>pe.printerId===j)),x=j=>l.value.filter(Y=>!Y.printers.find(pe=>pe.printerId===j)),w=j=>i.floorOfPrinter(j),C=j=>{n.setUpdateDialogPrinter(j),o.openDialogWithContext(hn.AddOrUpdatePrinterDialog)},O=()=>{o.openDialogWithContext(hn.AddOrUpdatePrinterDialog)},A=(j,Y)=>{if(console.log(j,Y),Y.isExpanded){const pe=m.value.findIndex(le=>le===j.id);m.value.splice(pe,1)}else m.value.push(j.id.toString())},M=()=>{o.openDialogWithContext(hn.BatchJsonCreate)},L=()=>{Or(hn.YamlImportExport).openDialog()},U=async()=>{var j,Y;if(!((Y=(j=d.value)==null?void 0:j.trim())!=null&&Y.length))throw new Error("Please set a non-empty group name");await gl.createGroup(d.value.trim()),await _.refetch(),d.value="",t.info("Created group")},B=()=>{var j;E.value&&(c.value=(j=E.value)==null?void 0:j.name)},q=async j=>{var pe,le;if(!(j!=null&&j.id))throw new Error("Group id was not defined");if(!l.value.find(oe=>oe.id===j.id))throw new Error("Group was not found, please reload the page");if(!((le=(pe=c.value)==null?void 0:pe.trim())!=null&&le.length))throw new Error("Please set a non-empty group name");await gl.updateGroupName(j.id,c.value.trim()),await _.refetch()},G=async j=>{const Y=l.value.find(le=>le.id===j);if(!Y)throw new Error("Group was not found, please reload the page");const pe=Y.printers.length;pe>0&&!confirm(`This group contains ${pe} printers, are you sure to delete it?`)||(await gl.deleteGroup(j),await _.refetch(),t.info("Deleted group"))},V=async(j,Y)=>{await gl.addPrinterToGroup(j,Y),await _.refetch(),t.info("Added printer to group")},W=async(j,Y)=>{await gl.deletePrinterFromGroup(j,Y),await _.refetch(),t.info("Removed printer from group")},Z=async j=>{if(!j.id)throw new Error("Printer ID not set, cant toggle enabled");j.enabled=!j.enabled,await qt.toggleEnabled(j.id,j.enabled)};return(j,Y)=>{const pe=Er("v-list-item-group");return $(),Se("div",null,[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[Y[11]||(Y[11]=k(" Printers ")),h(zn),g.value&&l.value.length?($(),Q(qa,{key:0,modelValue:u.value,"onUpdate:modelValue":Y[0]||(Y[0]=le=>u.value=le),multiple:"",items:l.value,"item-title":"name","return-object":!0,placeholder:"Select group to filter by","prepend-icon":"filter_list",label:"Filter by groups"},null,8,["modelValue","items"])):me("",!0),h(mt,{modelValue:p.value,"onUpdate:modelValue":Y[1]||(Y[1]=le=>p.value=le),class:"p-2",clearable:"",label:"Printer search","prepend-icon":"search","single-line":""},null,8,["modelValue"])]),_:1}),h(ue(HX),{expanded:m.value,headers:y.value,items:S.value,search:p.value,"single-expand":"",class:"elevation-1","item-key":"id","show-expand":"","onClick:row":A},xC({"no-data":v(()=>[D("div",rQ,[S.value.length===0?($(),Se("h3",sQ," No printer has been created yet. Create one here: ")):($(),Se("h3",iQ," No printer has been found. Adjust your filters or search criteria. ")),h(HY)])]),top:v(()=>[h(nr,{flat:""},{default:v(()=>[h(gn,null,{default:v(()=>[k(" Showing "+ae(S.value.length||0)+" printers ",1)]),_:1}),h(se,{class:"ml-3",variant:"outlined",type:"button",onClick:Y[2]||(Y[2]=le=>M())},{default:v(()=>[h(K,null,{default:v(()=>Y[12]||(Y[12]=[k("publish")])),_:1}),Y[13]||(Y[13]=k(" Import OctoFarm Printers "))]),_:1}),h(se,{class:"ml-3",variant:"outlined",type:"button",onClick:Y[3]||(Y[3]=le=>O())},{default:v(()=>[h(K,null,{default:v(()=>Y[14]||(Y[14]=[k("add")])),_:1}),Y[15]||(Y[15]=k(" Create Printer "))]),_:1}),h(se,{class:"ml-3",color:"primary",type:"button",onClick:Y[4]||(Y[4]=le=>L())},{default:v(()=>[h(K,null,{default:v(()=>Y[16]||(Y[16]=[k("publish")])),_:1}),Y[17]||(Y[17]=k(" Import/Export YAML "))]),_:1}),h(zn)]),_:1})]),"item.enabled":v(({item:le})=>[h(ip,{modelValue:le.enabled,"onUpdate:modelValue":oe=>le.enabled=oe,color:"primary",dark:"",inset:"",onClickCapture:$t(oe=>Z(le),["stop"])},{default:v(()=>[k(ae(le.enabled),1)]),_:2},1032,["modelValue","onUpdate:modelValue","onClickCapture"])]),"item.name":v(({item:le})=>[h(sn,{color:"primary",dark:""},{default:v(()=>[k(ae(le.name||le.printerURL),1)]),_:2},1024)]),"item.floor":v(({item:le})=>[le.id?($(),Q(sn,{key:0,color:"primary"},{default:v(()=>{var oe;return[k(ae((oe=w(le.id))==null?void 0:oe.name),1)]}),_:2},1024)):me("",!0)]),"item.actions":v(({item:le})=>[h(LY,{printer:le},null,8,["printer"]),h(VY,{printer:le},null,8,["printer"]),h(UY,{printer:le},null,8,["printer"]),h(zY,{printer:le},null,8,["printer"]),h(jY,{printer:le},null,8,["printer"]),h(NY,{printer:le,"onUpdate:show":oe=>C(le)},null,8,["printer","onUpdate:show"])]),"item.socketupdate":v(({item:le})=>[T.value[le.id]?($(),Se("span",oQ," Updated "+ae(R(T.value[le.id]))+" seconds ago ",1)):($(),Se("span",aQ," No update received (silence) "))]),"expanded-row":v(({item:le,columns:oe})=>[D("td",{colspan:oe.length},[h(DY,{printer:le},null,8,["printer"])],8,lQ)]),_:2},[g.value?{name:"item.group",fn:v(({item:le})=>[($(!0),Se(Te,null,Gt(P(le.id),oe=>($(),Q(sn,{key:oe.id,closable:"",size:"small",class:"ml-2","onClick:close":J=>W(oe.id,le.id)},{default:v(()=>[k(ae(oe.name),1)]),_:2},1032,["onClick:close"]))),128)),h(Wd,{"offset-y":""},{activator:v(({props:oe})=>[h(sn,ve({disabled:!l.value.length,class:"ml-2",size:"small"},oe),{default:v(()=>[h(K,{size:"small"},{default:v(()=>Y[18]||(Y[18]=[k("add")])),_:1})]),_:2},1040,["disabled"])]),default:v(()=>[h(Yt,{density:"compact",style:{border:"1px solid dimgray"}},{default:v(()=>[h(ds,null,{default:v(()=>Y[19]||(Y[19]=[k(" ADD TO GROUP ")])),_:1}),h(pe,null,{default:v(()=>[($(!0),Se(Te,null,Gt(x(le.id),(oe,J)=>($(),Q(Fe,{key:J,onClick:be=>V(oe.id,le.id)},{default:v(()=>[h(ut,null,{default:v(()=>[k(ae(oe.name),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),key:"0"}:void 0]),1032,["expanded","headers","items","search"])]),_:1}),g.value?($(),Q(kt,{key:0,class:"mt-4"},{default:v(()=>[h(mn,null,{default:v(()=>Y[20]||(Y[20]=[k(" Printer Groups ")])),_:1}),h(cn,null,{default:v(()=>[Y[26]||(Y[26]=D("h3",null,"Existing groups:",-1)),h(Vn,null,{default:v(()=>[h(rd,{modelValue:f.value,"onUpdate:modelValue":[Y[5]||(Y[5]=le=>f.value=le),Y[6]||(Y[6]=le=>B())],"selected-class":"primary--text",column:""},{default:v(()=>[($(!0),Se(Te,null,Gt(l.value,le=>($(),Q(sn,{key:le.id,size:"small",closable:"",class:"mr-3","onClick:close":oe=>G(le.id)},{default:v(()=>[k(ae(le.name),1)]),_:2},1032,["onClick:close"]))),128))]),_:1},8,["modelValue"])]),_:1}),Y[27]||(Y[27]=D("h3",{class:"mt-3"},"Update group name",-1)),h(Vn,null,{default:v(()=>[E.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>Y[21]||(Y[21]=[k(" Select a group to update its name. ")])),_:1})),h(mt,{modelValue:c.value,"onUpdate:modelValue":Y[7]||(Y[7]=le=>c.value=le),disabled:!E.value,label:"Group Name",placeholder:"Type group name here"},{default:v(()=>Y[22]||(Y[22]=[k(" Name ")])),_:1},8,["modelValue","disabled"]),h(se,{onClick:Y[8]||(Y[8]=le=>q(E.value))},{default:v(()=>Y[23]||(Y[23]=[k(" Update name ")])),_:1})]),_:1}),Y[28]||(Y[28]=D("h3",{class:"mt-3"},"Add group",-1)),h(Vn,null,{default:v(()=>[h(mt,{modelValue:d.value,"onUpdate:modelValue":Y[9]||(Y[9]=le=>d.value=le),label:"Group Name",placeholder:"Type group name here"},{default:v(()=>Y[24]||(Y[24]=[k(" Name ")])),_:1},8,["modelValue"]),h(se,{onClick:Y[10]||(Y[10]=le=>U())},{default:v(()=>Y[25]||(Y[25]=[k(" Create new group ")])),_:1})]),_:1})]),_:1})]),_:1})):me("",!0)])}}}),cQ=$e({__name:"SettingsView",setup(e){const t=z([{title:"Grid",icon:"grid_on",path:"/settings/grid"},{title:"Floors",icon:"house_siding",path:"/settings/floors"},{title:"User Management",icon:"group",path:"/settings/user-management"},{title:"Account Settings",icon:"account_circle",path:"/settings/account"},{title:"Server Protection",icon:"security",path:"/settings/server-protection"},{title:"OctoPrint Settings",icon:"image",path:"/settings/octoprint"},{title:"Emergency Commands",icon:"warning",path:"/settings/emergency-commands"},{title:"Software Upgrade",icon:"upgrade",path:"/settings/software-upgrade"},{title:"Diagnostics",icon:"bug_report",path:"/settings/diagnostics"},{title:"Experimental",icon:"settings_applications",path:"/settings/experimental",divider:!1}]);return(n,r)=>{const s=Er("router-view");return $(),Q(rt,{"no-gutters":""},{default:v(()=>[D("div",null,[h(Rw,{permanent:!0},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,{class:"text-h6"},{default:v(()=>r[0]||(r[0]=[k(" Settings ")])),_:1}),h(yt,null,{default:v(()=>r[1]||(r[1]=[k(" Adjust your Fdm Monster ")])),_:1})]),_:1}),h(bn),h(Yt,{density:"compact",nav:""},{default:v(()=>[($(!0),Se(Te,null,Gt(ue(t),i=>($(),Q(Fe,{key:i.title,to:i.path,link:"","prepend-icon":i.icon,title:i.title,"router-link":""},null,8,["to","prepend-icon","title"]))),128))]),_:1})]),_:1})]),h(s,{class:"grow"})]),_:1})}}});function dQ(e){const t=new Date(e);return new Intl.DateTimeFormat("default",{dateStyle:"long"}).format(t)}const fQ={key:0,class:"text--primary float-end mr-5 mt-2"},hQ={class:"text-grey-darken-4"},pQ={key:0,class:"text-success"},mQ={key:1,class:"text-error"},gQ={key:0},vQ={key:0},yQ={key:0},bQ={key:1},wQ={key:0},SQ={key:1},_Q=$e({__name:"UserManagementSettings",setup(e){const t=Dt(),n=z(!1),r=z(),s=z([]),i=z([]);async function o(){n.value=!0;try{r.value=await Ks.getProfile(),i.value=await Ks.listRoles(),s.value=await Ks.listUsers()}catch(m){throw n.value=!1,console.error(m),m}return n.value=!1,{users:s,roles:i,profile:r}}const a=Vw({queryKey:["userRolesProfile"],queryFn:o});function l(m){return m.map(g=>{var y;return(y=i.value.find(b=>b.id==g))==null?void 0:y.name})}function u(m){var g;return m.id==((g=r.value)==null?void 0:g.id)}async function d(m){if(confirm(`Are you sure you want to delete ${m.username}?`)){try{n.value=!0,await Ks.deleteUser(m.id),await a.refetch()}catch(g){throw n.value=!1,console.error(g),g}n.value=!1,t.info(`User ${m.username} deleted`)}}async function c(m,g=!0){if(m.isRootUser){t.error("You are not allowed to do perform this action on an owner");return}if(confirm(`Are you sure you want to ${g?"verify":"unverify"} ${m.username}?`)){try{n.value=!0,await Ks.setUserVerified(m.id,g),await a.refetch()}catch(y){throw n.value=!1,console.error(y),y}n.value=!1,t.info(g?`User ${m.username} verified`:`User ${m.username} unverified`)}}async function f(m,g=!0){var y;if((y=r.value)!=null&&y.isRootUser||t.error("You are not allowed to do perform this action as you're not an owner"),!!confirm(`You are about to ${g?"set":"remove"} owner rights on ${m.username}. Are you sure?`)){try{n.value=!0,await Ks.setRootUser(m.id,g),await a.refetch()}catch(b){throw n.value=!1,console.error(b),b}n.value=!1,t.info(g?`User ${m.username} set to owner`:`User ${m.username} is no longer owner`)}}async function p(m){try{n.value=!0,console.log(m.roles),console.log(m.roles.map(g=>typeof g)),await Ks.setUserRoles(m.id,m.roles),await a.refetch(),t.info(`Roles updated for ${m.username}`)}catch(g){throw n.value=!1,console.error(g),t.error(`Failed to update roles for ${m.username}`),g}n.value=!1}return(m,g)=>{const y=Er("v-list-item-content");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>g[0]||(g[0]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>g[1]||(g[1]=[k(" Users ")])),_:1})]),_:1}),n.value?($(),Q(RO,{key:0,size:20,color:"#a70015",style:{margin:"250px",position:"absolute"}})):me("",!0),h(Yt,{lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>g[2]||(g[2]=[k(" Showing all users ")])),_:1}),($(!0),Se(Te,null,Gt(s.value,(b,_)=>($(),Q(Fe,{key:_,class:"pl-6",style:{"max-width":"800px","border-top":"1px solid grey","border-bottom":"1px solid grey"}},{default:v(()=>[h(y,{class:Qa(u(b)?"pl-6 grey darken-3":"pl-6 grey darken-4")},{default:v(()=>[h(ut,null,{default:v(()=>[k(" User '"+ae(b.username)+"' ",1),u(b)?($(),Se("strong",fQ," Your account ")):me("",!0)]),_:2},1024),h(yt),D("span",hQ,[D("ul",null,[D("li",null,[b.isVerified?($(),Se("span",pQ," Account verified ")):($(),Se("span",mQ," Account not verified "))]),D("li",null,"Created at "+ae(ue(dQ)(b.createdAt)),1),b.isDemoUser?($(),Se("li",gQ,"Demo user account")):me("",!0),D("li",null,[g[4]||(g[4]=k(" Role(s) ")),D("ul",null,[b.isRootUser?($(),Se("li",vQ,[h(sn,{class:"mb-2 mt-2",size:"small"},{default:v(()=>g[3]||(g[3]=[k(" OWNER ")])),_:1})])):me("",!0),($(!0),Se(Te,null,Gt(l(b.roles),S=>($(),Se("li",{key:S},[h(sn,{class:"mb-2 mt-2",size:"small"},{default:v(()=>[k(ae(S),1)]),_:2},1024)]))),128))])])])])]),_:2},1032,["class"]),h(id,null,{default:v(()=>{var S,T;return[h(se,{disabled:u(b)||b.isRootUser,color:b.isVerified?"error darken-4":"success",onClick:E=>c(b,!b.isVerified)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[5]||(g[5]=[k("shield")])),_:1}),b.isVerified?me("",!0):($(),Se("span",yQ," Verify account ")),b.isVerified?($(),Se("span",bQ," Un-verify account ")):me("",!0)]),_:2},1032,["disabled","color","onClick"]),h(se,{color:b.isRootUser?"error darken-4":"success",disabled:u(b)||!((S=r.value)!=null&&S.isRootUser),class:"mt-2",onClick:E=>f(b,!b.isRootUser)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[6]||(g[6]=[k("key")])),_:1}),b.isRootUser?($(),Se("span",wQ," Remove owner ")):me("",!0),b.isRootUser?me("",!0):($(),Se("span",SQ," Set owner "))]),_:2},1032,["color","disabled","onClick"]),(T=r.value)!=null&&T.isRootUser?($(),Q(qa,{key:0,items:i.value.map(E=>({text:E.name,value:E.id})),modelValue:b.roles,"onUpdate:modelValue":E=>b.roles=E,multiple:"",label:"Select roles",onChange:E=>p(b),class:"pt-6",style:{width:"15rem"}},null,8,["items","modelValue","onUpdate:modelValue","onChange"])):me("",!0),h(se,{disabled:u(b)||b.isRootUser,class:"mt-2",color:"error-darken-2",onClick:E=>d(b)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[7]||(g[7]=[k("delete")])),_:1}),g[8]||(g[8]=k(" Delete "))]),_:2},1032,["disabled","onClick"])]}),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})}}}),kQ=$e({name:"FdmSettings",props:{},setup:()=>({settingsStore:Fs(),printersStore:Nt(),snackbar:Dt(),printerStateStore:fr()}),data:()=>({fileHandlingSettings:{autoRemoveOldFilesBeforeUpload:!1,autoRemoveOldFilesAtBoot:!1,autoRemoveOldFilesCriteriumDays:7}}),computed:{},watch:{},async created(){const e=await In.getSettings();this.fileHandlingSettings=e.printerFileClean},mounted(){},methods:{async updateTimeoutSettings(){var e,t,n;if(!((t=(e=this.settingsStore.settings)==null?void 0:e.timeout)!=null&&t.apiTimeout)){this.snackbar.error("Timeout not set");return}this.settingsStore.settings.timeout.apiTimeout<1e3?this.snackbar.error("Timeout is too low - please set it to at least 1000 milliseconds"):(await this.settingsStore.updateTimeoutSettings((n=this.settingsStore.settings)==null?void 0:n.timeout),this.snackbar.info("Timeout settings updated"))},async setFileCleanSettings(){const e=await In.setFileCleanSettings(this.fileHandlingSettings);this.fileHandlingSettings=e.printerFileClean},async purgeFiles(){await To.purgeFiles(),this.snackbar.openInfoMessage({title:"Successfully purged all references to printer files!"})},async bulkDisableGCodeAnalysis(){const e=this.printerStateStore.onlinePrinters;this.snackbar.openInfoMessage({title:`Trying to disable gcode analysis for ${e.length} online printers.`});for(const t of Object.values(e))await VO.setGCodeAnalysis(t.id,!1);this.snackbar.openInfoMessage({title:`Finished disabling gcode analysis for ${e.length} online printers.`})}}});function xQ(e,t,n,r,s,i){return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[8]||(t[8]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[9]||(t[9]=[k(" OctoPrint Settings ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[10]||(t[10]=[k(" Pre-upload file cleanup ")])),_:1}),h(yt,null,{default:v(()=>[t[12]||(t[12]=k(" Automatically cleanup old files to ensure the SD card has enough space. ")),t[13]||(t[13]=D("br",null,null,-1)),h(Pn,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload,"onUpdate:modelValue":t[0]||(t[0]=o=>e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload=o),label:"Remove old file before upload"},null,8,["modelValue"]),h(mt,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesCriteriumDays,"onUpdate:modelValue":t[1]||(t[1]=o=>e.fileHandlingSettings.autoRemoveOldFilesCriteriumDays=o),disabled:!e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload,label:"Amount of days to keep files",min:"0",variant:"outlined",type:"number"},null,8,["modelValue","disabled"]),h(Pn,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesAtBoot,"onUpdate:modelValue":t[2]||(t[2]=o=>e.fileHandlingSettings.autoRemoveOldFilesAtBoot=o),label:"Remove old files when (re)booting the server"},null,8,["modelValue"]),h(se,{color:"primary",onClick:t[3]||(t[3]=o=>e.setFileCleanSettings())},{default:v(()=>t[11]||(t[11]=[k(" save file clean settings ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>{var o;return[h(ut,null,{default:v(()=>t[14]||(t[14]=[k(" Connection Timeout ")])),_:1}),(o=e.settingsStore.settings)!=null&&o.timeout?($(),Q(yt,{key:0},{default:v(()=>[t[16]||(t[16]=k(" The connection timeout is the amount of time in milliseconds that the server will wait for OctoPrint to respond before giving up ")),h(mt,{modelValue:e.settingsStore.settings.timeout.apiTimeout,"onUpdate:modelValue":t[4]||(t[4]=a=>e.settingsStore.settings.timeout.apiTimeout=a),label:"Connection Timeout",min:"0",variant:"outlined",type:"number"},null,8,["modelValue"]),h(se,{color:"primary",onClick:t[5]||(t[5]=a=>e.updateTimeoutSettings())},{default:v(()=>t[15]||(t[15]=[k(" save connection timeout ")])),_:1})]),_:1})):me("",!0)]}),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[17]||(t[17]=[k(" Clean file references ")])),_:1}),h(yt,null,{default:v(()=>[t[19]||(t[19]=k(" Clear out the file references for all printers - this does not remove them from OctoPrint! ")),t[20]||(t[20]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[6]||(t[6]=o=>e.purgeFiles())},{default:v(()=>t[18]||(t[18]=[k(" Purge file references ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[21]||(t[21]=[k(" Disable inefficient GCode analysis ")])),_:1}),h(yt,null,{default:v(()=>[t[23]||(t[23]=k(" Disable GCode analysis on all printers at once, preventing CPU intensive and inaccurate time/size estimates. ")),t[24]||(t[24]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[7]||(t[7]=o=>e.bulkDisableGCodeAnalysis())},{default:v(()=>t[22]||(t[22]=[k(" Bulk disable GCode Analysis ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const EQ=Jo(kQ,[["render",xQ]]),CQ=$e({name:"FloorSettings",props:{},setup:()=>({printersStore:Nt(),floorStore:qi(),dialogsStore:ku(),snackbar:Dt()}),data:()=>({selectedItem:0,editedFloorName:"",editedFloorNumber:0}),computed:{floors(){return this.floorStore.floors},selectedFloor(){return this.floorStore.floors[this.selectedItem]},showAddedPrinters(){var e;return((e=this.selectedFloor.printers)==null?void 0:e.length)+1},unassignedPrinters(){return this.floorStore.floorlessPrinters}},watch:{},created(){},mounted(){},methods:{printerInFloor(e,t){if(!(e!=null&&e.printers))return;const n=e.printers[t-1];if(n)return this.printersStore.printer(n.printerId)},async createFloor(){this.dialogsStore.openDialogWithContext(hn.AddOrUpdateFloorDialog)},setEditedPrinterFloorName(){this.editedFloorName=this.selectedFloor.name},setEditedPrinterFloorNumber(){this.editedFloorNumber=this.selectedFloor.floor},async updatePrinterFloorName(){var t;if(!((t=this.selectedFloor)!=null&&t.id))return;const{id:e}=this.selectedFloor;await this.floorStore.updateFloorName({floorId:e,name:this.editedFloorName}),this.snackbar.info("Floor name updated")},async updatePrinterFloorNumber(){var t;if(!((t=this.selectedFloor)!=null&&t.id))return;const{id:e}=this.selectedFloor;await this.floorStore.updateFloorNumber({floorId:e,floorNumber:this.editedFloorNumber}),this.snackbar.info("Floor level updated"),this.selectedItem=-1},async clickDeleteFloor(){var e;(e=this.selectedFloor)!=null&&e.id&&(await this.floorStore.deleteFloor(this.selectedFloor.id),this.snackbar.info("Floor deleted"))},async deletePrinterFromFloor(e,t){const n=this.printerInFloor(e,t);!(e!=null&&e.id)||!(n!=null&&n.id)||(await this.floorStore.deletePrinterFromFloor({floorId:e.id,printerId:n.id}),this.snackbar.info("Printer removed from floor"))}}}),PQ={key:1};function TQ(e,t,n,r,s,i){const o=Er("v-list-item-action-text"),a=Er("v-list-item-group"),l=Er("v-edit-dialog"),u=Er("v-list-item-content");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[7]||(t[7]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[8]||(t[8]=[k(" Floor Management ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[9]||(t[9]=[k(" Floors ")])),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[10]||(t[10]=[k(" Create new floor ")])),_:1}),h(yt,null,{default:v(()=>[t[12]||(t[12]=k(" Creates an empty department/floor to view printer groups ")),t[13]||(t[13]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[0]||(t[0]=d=>e.createFloor())},{default:v(()=>t[11]||(t[11]=[k(" Create floor ")])),_:1})]),_:1})]),_:1})]),_:1}),h(bn),h(rt,{"no-gutters":""},{default:v(()=>[h(Ne,null,{default:v(()=>[h(Yt,{density:"compact"},{default:v(()=>[h(a,{modelValue:e.selectedItem,"onUpdate:modelValue":t[1]||(t[1]=d=>e.selectedItem=d)},{default:v(()=>[($(!0),Se(Te,null,Gt(e.floors,d=>($(),Q(Fe,{key:d.id},{default:v(()=>[h(ut,null,{default:v(()=>[k(ae(d.name),1)]),_:2},1024),h(yt,null,{default:v(()=>[k(ae(d.printers.length||0)+" assigned ",1)]),_:2},1024),h(o,null,{default:v(()=>[k(" Floor number: "+ae(d.floor),1)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[h(nr,null,{default:v(()=>[h(Vk,null,{default:v(({isHovering:d,props:c})=>[h(gn,Xg(kh(c)),{default:v(()=>[e.selectedFloor?($(),Q(l,{key:0,onOpen:e.setEditedPrinterFloorName,onSave:e.updatePrinterFloorName},{input:v(()=>[h(mt,{modelValue:e.editedFloorName,"onUpdate:modelValue":t[2]||(t[2]=f=>e.editedFloorName=f),"return-value":e.editedFloorName,"onUpdate:returnValue":t[3]||(t[3]=f=>e.editedFloorName=f),counter:"",label:"Edit","single-line":""},null,8,["modelValue","return-value"])]),default:v(()=>[h(se,{color:"secondary"},{default:v(()=>[d?($(),Q(K,{key:0,size:"small"},{default:v(()=>t[14]||(t[14]=[k(" edit ")])),_:1})):me("",!0),k(" "+ae(e.selectedFloor.name),1)]),_:2},1024)]),_:2},1032,["onOpen","onSave"])):($(),Se("span",PQ," Select a floor on the left "))]),_:2},1040)]),_:1}),h(Vk,null,{default:v(({isHovering:d,props:c})=>[h(gn,Xg(kh(c)),{default:v(()=>[e.selectedFloor?($(),Q(l,{key:0,onOpen:e.setEditedPrinterFloorNumber,onSave:e.updatePrinterFloorNumber},{input:v(()=>[h(mt,{modelValue:e.editedFloorNumber,"onUpdate:modelValue":t[4]||(t[4]=f=>e.editedFloorNumber=f),"return-value":e.editedFloorNumber,"onUpdate:returnValue":t[5]||(t[5]=f=>e.editedFloorNumber=f),label:"Edit","single-line":"",type:"number"},null,8,["modelValue","return-value"])]),default:v(()=>[h(se,{color:"secondary"},{default:v(()=>[d?($(),Q(K,{key:0,size:"small"},{default:v(()=>t[15]||(t[15]=[k(" edit ")])),_:1})):me("",!0),k(" "+ae(e.selectedFloor.floor),1)]),_:2},1024)]),_:2},1032,["onOpen","onSave"])):me("",!0)]),_:2},1040)]),_:1}),h(zn),e.selectedFloor?($(),Q(se,{key:0,color:"primary",onClick:t[6]||(t[6]=d=>e.clickDeleteFloor())},{default:v(()=>[h(K,null,{default:v(()=>t[16]||(t[16]=[k("delete")])),_:1}),t[17]||(t[17]=k(" Delete floor "))]),_:1})):me("",!0)]),_:1}),e.selectedFloor?($(),Q(Yt,{key:0},{default:v(()=>[($(!0),Se(Te,null,Gt(e.showAddedPrinters,d=>($(),Q(Fe,{key:d},{default:v(()=>[e.printerInFloor(e.selectedFloor,d)?($(),Q(u,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>{var c;return[k(ae((c=e.printerInFloor(e.selectedFloor,d))==null?void 0:c.name),1)]}),_:2},1024)]),_:2},1024)):me("",!0),e.printerInFloor(e.selectedFloor,d)?($(),Q(id,{key:1},{default:v(()=>[h(se,{onClick:c=>e.deletePrinterFromFloor(e.selectedFloor,d)},{default:v(()=>[h(K,null,{default:v(()=>t[18]||(t[18]=[k("close")])),_:1}),t[19]||(t[19]=k(" Clear "))]),_:2},1032,["onClick"])]),_:2},1024)):me("",!0)]),_:2},1024))),128))]),_:1})):me("",!0)]),_:1})]),_:1})]),_:1})}const RQ=Jo(CQ,[["render",TQ]]),IQ="/img/DavidZwart.jpg",pM="0.0.6",AQ={key:0},OQ={key:1},MQ=$e({__name:"AboutView",setup(e){const t=z(""),n=z(""),r=z(pM);return bt(async()=>{const s=await bo.getVersion();t.value=s.version,n.value=s.monsterPi}),(s,i)=>($(),Q(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>i[0]||(i[0]=[k(" About FDM Monster"),D("strong",null," © ",-1)])),_:1}),h(cn,null,{default:v(()=>i[1]||(i[1]=[k(" The first prototype of FDM Monster"),D("strong",null," © ",-1),k(" was created by David Zwart in 2021 in collaboration with "),D("strong",null,[D("a",{href:"https://mtb3d.com"}," MTB3D ")],-1),k(". This open-source prototype proved a strong factor in process and logistics optimization for a 3D Printing company with 100+ printers. Due to it's success, we decided to keep it open-source and free! ")])),_:1}),h(cn,null,{default:v(()=>[i[4]||(i[4]=k(" The latest 3D Printing Farm server named FDM Monster has been tested for 2 years using a custom image for running 4 OctoPrint images on a Raspberry Pi. ")),i[5]||(i[5]=D("br",null,null,-1)),i[6]||(i[6]=k(" This version uses the famous ")),i[7]||(i[7]=D("a",{href:"https://nodejs.org/en",target:"_blank"},[D("strong",null," Node.js framework ")],-1)),i[8]||(i[8]=k(" together with Awilix and ExpressJS for its server, and ")),i[9]||(i[9]=D("a",{href:"https://vuejs.org/",target:"_blank"},[D("strong",null," Vue 2 ")],-1)),i[10]||(i[10]=k(" and ")),i[11]||(i[11]=D("a",{href:"https://next.vuetifyjs.com/",target:"_blank"},[D("strong",null," Vuetify 2 ")],-1)),i[12]||(i[12]=k(" to set a base for FDM Monster Client")),i[13]||(i[13]=D("strong",null," © ",-1)),i[14]||(i[14]=k(" - the webapp. ")),i[15]||(i[15]=D("br",null,null,-1)),i[16]||(i[16]=D("br",null,null,-1)),D("strong",null," Your server's version is: "+ae(t.value),1),i[17]||(i[17]=D("br",null,null,-1)),D("strong",null," Your clients's version is: "+ae(r.value),1),i[18]||(i[18]=D("br",null,null,-1)),n.value?($(),Se("strong",AQ,[k(" Your MonsterPi version is: "+ae(n.value),1),i[2]||(i[2]=D("br",null,null,-1))])):($(),Se("strong",OQ," No MonsterPi distro detected. ")),i[19]||(i[19]=D("br",null,null,-1)),h(se,{class:"mt-3",variant:"outlined",to:"/settings/software-upgrade"},{default:v(()=>i[3]||(i[3]=[k(" Visit Upgrade Settings ")])),_:1})]),_:1}),h(mn,null,{default:v(()=>i[20]||(i[20]=[k(" Documentation ")])),_:1}),h(cn,null,{default:v(()=>[D("strong",null,[h(se,{color:"primary",href:"https://docs.fdm-monster.net",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>i[21]||(i[21]=[k("menu_book")])),_:1}),i[22]||(i[22]=k(" FDM Monster documentation site "))]),_:1})]),i[23]||(i[23]=D("br",null,null,-1))]),_:1}),h(mn,null,{default:v(()=>[i[25]||(i[25]=k(" Bug reports ")),h(K,null,{default:v(()=>i[24]||(i[24]=[k("bug")])),_:1})]),_:1}),h(cn,null,{default:v(()=>i[26]||(i[26]=[k(" Did you find a bug, or a feature that needs work? We would love to hear about it! "),D("br",null,null,-1),D("strong",null," We have multiple ways to report it: ",-1),D("h3",null,[D("ul",{class:"ml-5"},[D("li",null,"Mail to davidzwa@gmail.com"),D("li",null,[D("a",{href:"https://discord.gg/mwA8uP8CMc",style:{color:"white"},target:"_blank"}," Discord server ")]),D("li",null,[D("strong",null,[D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues",style:{color:"white"},target:"_blank"},[k(" FDM Monster "),D("strong",null," © "),k(" Github Issues ")])])]),D("li",null,[D("a",{href:"https://fdm-monster.net",style:{color:"white"},target:"_blank"}," Website ")])])],-1)])),_:1}),h(mn,null,{default:v(()=>i[27]||(i[27]=[k(" About me ")])),_:1}),h(cn,null,{default:v(()=>i[28]||(i[28]=[D("img",{src:IQ,width:"150px"},null,-1),D("h4",{class:"mt-2"},[D("a",{href:"https://www.linkedin.com/in/david-zwart-88514083/",style:{color:"white"},target:"_blank"}," LinkedIn "),D("a",{class:"ml-2",href:"https://github.com/davidzwa",style:{color:"white"},target:"_blank"}," Github Profile ")],-1),k(" David Zwart MSc., post-graduate from the TU Delft (Embedded Systems), author of FDM Monster"),D("strong",null," © ",-1)])),_:1})]),_:1}))}});/*!
|
|
67
|
+
*/const El=typeof document<"u";function eO(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function p7(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&eO(e.default)}const Tt=Object.assign;function kg(e,t){const n={};for(const r in t){const s=t[r];n[r]=Is(s)?s.map(e):e(s)}return n}const Ic=()=>{},Is=Array.isArray,tO=/#/g,m7=/&/g,g7=/\//g,v7=/=/g,y7=/\?/g,nO=/\+/g,b7=/%5B/g,w7=/%5D/g,rO=/%5E/g,S7=/%60/g,sO=/%7B/g,_7=/%7C/g,iO=/%7D/g,k7=/%20/g;function zw(e){return encodeURI(""+e).replace(_7,"|").replace(b7,"[").replace(w7,"]")}function x7(e){return zw(e).replace(sO,"{").replace(iO,"}").replace(rO,"^")}function Dy(e){return zw(e).replace(nO,"%2B").replace(k7,"+").replace(tO,"%23").replace(m7,"%26").replace(S7,"`").replace(sO,"{").replace(iO,"}").replace(rO,"^")}function E7(e){return Dy(e).replace(v7,"%3D")}function C7(e){return zw(e).replace(tO,"%23").replace(y7,"%3F")}function P7(e){return e==null?"":C7(e).replace(g7,"%2F")}function ud(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const T7=/\/$/,R7=e=>e.replace(T7,"");function xg(e,t,n="/"){let r,s={},i="",o="";const a=t.indexOf("#");let l=t.indexOf("?");return a<l&&a>=0&&(l=-1),l>-1&&(r=t.slice(0,l),i=t.slice(l+1,a>-1?a:t.length),s=e(i)),a>-1&&(r=r||t.slice(0,a),o=t.slice(a,t.length)),r=M7(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:ud(o)}}function I7(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ck(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function A7(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&bu(t.matched[r],n.matched[s])&&oO(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function bu(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function oO(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!O7(e[n],t[n]))return!1;return!0}function O7(e,t){return Is(e)?dk(e,t):Is(t)?dk(t,e):e===t}function dk(e,t){return Is(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function M7(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,a;for(o=0;o<r.length;o++)if(a=r[o],a!==".")if(a==="..")i>1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const Yi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var cd;(function(e){e.pop="pop",e.push="push"})(cd||(cd={}));var Ac;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ac||(Ac={}));function D7(e){if(!e)if(El){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),R7(e)}const L7=/^[^#]+#/;function $7(e,t){return e.replace(L7,"#")+t}function F7(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const gm=()=>({left:window.scrollX,top:window.scrollY});function N7(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=F7(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 fk(e,t){return(history.state?history.state.position-t:-1)+e}const Ly=new Map;function B7(e,t){Ly.set(e,t)}function V7(e){const t=Ly.get(e);return Ly.delete(e),t}let U7=()=>location.protocol+"//"+location.host;function aO(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let a=s.includes(e.slice(i))?e.slice(i).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),ck(l,"")}return ck(n,e)+r+s}function z7(e,t,n,r){let s=[],i=[],o=null;const a=({state:f})=>{const p=aO(e,location),m=n.value,g=t.value;let y=0;if(f){if(n.value=p,t.value=f,o&&o===m){o=null;return}y=g?f.position-g.position:0}else r(p);s.forEach(b=>{b(n.value,m,{delta:y,type:cd.pop,direction:y?y>0?Ac.forward:Ac.back:Ac.unknown})})};function l(){o=n.value}function u(f){s.push(f);const p=()=>{const m=s.indexOf(f);m>-1&&s.splice(m,1)};return i.push(p),p}function d(){const{history:f}=window;f.state&&f.replaceState(Tt({},f.state,{scroll:gm()}),"")}function c(){for(const f of i)f();i=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",d)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",d,{passive:!0}),{pauseListeners:l,listen:u,destroy:c}}function hk(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?gm():null}}function H7(e){const{history:t,location:n}=window,r={value:aO(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(l,u,d){const c=e.indexOf("#"),f=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+l:U7()+e+l;try{t[d?"replaceState":"pushState"](u,"",f),s.value=u}catch(p){console.error(p),n[d?"replace":"assign"](f)}}function o(l,u){const d=Tt({},t.state,hk(s.value.back,l,s.value.forward,!0),u,{position:s.value.position});i(l,d,!0),r.value=l}function a(l,u){const d=Tt({},s.value,t.state,{forward:l,scroll:gm()});i(d.current,d,!0);const c=Tt({},hk(r.value,l,null),{position:d.position+1},u);i(l,c,!1),r.value=l}return{location:r,state:s,push:a,replace:o}}function j7(e){e=D7(e);const t=H7(e),n=z7(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=Tt({location:"",base:e,go:r,createHref:$7.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 W7(e){return typeof e=="string"||e&&typeof e=="object"}function lO(e){return typeof e=="string"||typeof e=="symbol"}const uO=Symbol("");var pk;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(pk||(pk={}));function wu(e,t){return Tt(new Error,{type:e,[uO]:!0},t)}function vi(e,t){return e instanceof Error&&uO in e&&(t==null||!!(e.type&t))}const mk="[^/]+?",q7={sensitive:!1,strict:!1,start:!0,end:!0},G7=/[.+*?^${}()[\]/\\]/g;function K7(e,t){const n=Tt({},q7,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const d=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let c=0;c<u.length;c++){const f=u[c];let p=40+(n.sensitive?.25:0);if(f.type===0)c||(s+="/"),s+=f.value.replace(G7,"\\$&"),p+=40;else if(f.type===1){const{value:m,repeatable:g,optional:y,regexp:b}=f;i.push({name:m,repeatable:g,optional:y});const _=b||mk;if(_!==mk){p+=10;try{new RegExp(`(${_})`)}catch(T){throw new Error(`Invalid custom RegExp for param "${m}" (${_}): `+T.message)}}let S=g?`((?:${_})(?:/(?:${_}))*)`:`(${_})`;c||(S=y&&u.length<2?`(?:/${S})`:"/"+S),y&&(S+="?"),s+=S,p+=20,y&&(p+=-8),g&&(p+=-20),_===".*"&&(p+=-50)}d.push(p)}r.push(d)}if(n.strict&&n.end){const u=r.length-1;r[u][r[u].length-1]+=.7000000000000001}n.strict||(s+="/?"),n.end?s+="$":n.strict&&(s+="(?:/|$)");const o=new RegExp(s,n.sensitive?"":"i");function a(u){const d=u.match(o),c={};if(!d)return null;for(let f=1;f<d.length;f++){const p=d[f]||"",m=i[f-1];c[m.name]=p&&m.repeatable?p.split("/"):p}return c}function l(u){let d="",c=!1;for(const f of e){(!c||!d.endsWith("/"))&&(d+="/"),c=!1;for(const p of f)if(p.type===0)d+=p.value;else if(p.type===1){const{value:m,repeatable:g,optional:y}=p,b=m in u?u[m]:"";if(Is(b)&&!g)throw new Error(`Provided param "${m}" is an array but it is not repeatable (* or + modifiers)`);const _=Is(b)?b.join("/"):b;if(!_)if(y)f.length<2&&(d.endsWith("/")?d=d.slice(0,-1):c=!0);else throw new Error(`Missing required param "${m}"`);d+=_}}return d||"/"}return{re:o,score:r,keys:i,parse:a,stringify:l}}function Y7(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function cO(e,t){let n=0;const r=e.score,s=t.score;for(;n<r.length&&n<s.length;){const i=Y7(r[n],s[n]);if(i)return i;n++}if(Math.abs(s.length-r.length)===1){if(gk(r))return 1;if(gk(s))return-1}return s.length-r.length}function gk(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const X7={type:0,value:""},Q7=/[a-zA-Z0-9_]/;function J7(e){if(!e)return[[]];if(e==="/")return[[X7]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let a=0,l,u="",d="";function c(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:d,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;a<e.length;){if(l=e[a++],l==="\\"&&n!==2){r=n,n=4;continue}switch(n){case 0:l==="/"?(u&&c(),o()):l===":"?(c(),n=1):f();break;case 4:f(),n=r;break;case 1:l==="("?n=2:Q7.test(l)?f():(c(),n=0,l!=="*"&&l!=="?"&&l!=="+"&&a--);break;case 2:l===")"?d[d.length-1]=="\\"?d=d.slice(0,-1)+l:n=3:d+=l;break;case 3:c(),n=0,l!=="*"&&l!=="?"&&l!=="+"&&a--,d="";break;default:t("Unknown state");break}}return n===2&&t(`Unfinished custom RegExp for param "${u}"`),c(),o(),s}function Z7(e,t,n){const r=K7(J7(e.path),n),s=Tt(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function eK(e,t){const n=[],r=new Map;t=wk({strict:!1,end:!0,sensitive:!1},t);function s(c){return r.get(c)}function i(c,f,p){const m=!p,g=yk(c);g.aliasOf=p&&p.record;const y=wk(t,c),b=[g];if("alias"in c){const T=typeof c.alias=="string"?[c.alias]:c.alias;for(const E of T)b.push(yk(Tt({},g,{components:p?p.record.components:g.components,path:E,aliasOf:p?p.record:g})))}let _,S;for(const T of b){const{path:E}=T;if(f&&E[0]!=="/"){const R=f.record.path,P=R[R.length-1]==="/"?"":"/";T.path=f.record.path+(E&&P+E)}if(_=Z7(T,f,y),p?p.alias.push(_):(S=S||_,S!==_&&S.alias.push(_),m&&c.name&&!bk(_)&&o(c.name)),dO(_)&&l(_),g.children){const R=g.children;for(let P=0;P<R.length;P++)i(R[P],_,p&&p.children[P])}p=p||_}return S?()=>{o(S)}:Ic}function o(c){if(lO(c)){const f=r.get(c);f&&(r.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(o),f.alias.forEach(o))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&r.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function a(){return n}function l(c){const f=rK(c,n);n.splice(f,0,c),c.record.name&&!bk(c)&&r.set(c.record.name,c)}function u(c,f){let p,m={},g,y;if("name"in c&&c.name){if(p=r.get(c.name),!p)throw wu(1,{location:c});y=p.record.name,m=Tt(vk(f.params,p.keys.filter(S=>!S.optional).concat(p.parent?p.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),c.params&&vk(c.params,p.keys.map(S=>S.name))),g=p.stringify(m)}else if(c.path!=null)g=c.path,p=n.find(S=>S.re.test(g)),p&&(m=p.parse(g),y=p.record.name);else{if(p=f.name?r.get(f.name):n.find(S=>S.re.test(f.path)),!p)throw wu(1,{location:c,currentLocation:f});y=p.record.name,m=Tt({},f.params,c.params),g=p.stringify(m)}const b=[];let _=p;for(;_;)b.unshift(_.record),_=_.parent;return{name:y,path:g,params:m,matched:b,meta:nK(b)}}e.forEach(c=>i(c));function d(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:d,getRoutes:a,getRecordMatcher:s}}function vk(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function yk(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:tK(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 tK(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function bk(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function nK(e){return e.reduce((t,n)=>Tt(t,n.meta),{})}function wk(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function rK(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;cO(e,t[i])<0?r=i:n=i+1}const s=sK(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function sK(e){let t=e;for(;t=t.parent;)if(dO(t)&&cO(e,t)===0)return t}function dO({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function iK(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<r.length;++s){const i=r[s].replace(nO," "),o=i.indexOf("="),a=ud(o<0?i:i.slice(0,o)),l=o<0?null:ud(i.slice(o+1));if(a in t){let u=t[a];Is(u)||(u=t[a]=[u]),u.push(l)}else t[a]=l}return t}function Sk(e){let t="";for(let n in e){const r=e[n];if(n=E7(n),r==null){r!==void 0&&(t+=(t.length?"&":"")+n);continue}(Is(r)?r.map(i=>i&&Dy(i)):[r&&Dy(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function oK(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Is(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const aK=Symbol(""),_k=Symbol(""),vm=Symbol(""),Hw=Symbol(""),$y=Symbol("");function ec(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function lo(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const u=f=>{f===!1?l(wu(4,{from:n,to:t})):f instanceof Error?l(f):W7(f)?l(wu(2,{from:t,to:f})):(o&&r.enterCallbacks[s]===o&&typeof f=="function"&&o.push(f),a())},d=i(()=>e.call(r&&r.instances[s],t,n,u));let c=Promise.resolve(d);e.length<3&&(c=c.then(u)),c.catch(f=>l(f))})}function Eg(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const a in o.components){let l=o.components[a];if(!(t!=="beforeRouteEnter"&&!o.instances[a]))if(eO(l)){const d=(l.__vccOpts||l)[t];d&&i.push(lo(d,n,r,o,a,s))}else{let u=l();i.push(()=>u.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${a}" at "${o.path}"`);const c=p7(d)?d.default:d;o.mods[a]=d,o.components[a]=c;const p=(c.__vccOpts||c)[t];return p&&lo(p,n,r,o,a,s)()}))}}return i}function kk(e){const t=Qe(vm),n=Qe(Hw),r=I(()=>{const l=ue(e.to);return t.resolve(l)}),s=I(()=>{const{matched:l}=r.value,{length:u}=l,d=l[u-1],c=n.matched;if(!d||!c.length)return-1;const f=c.findIndex(bu.bind(null,d));if(f>-1)return f;const p=xk(l[u-2]);return u>1&&xk(d)===p&&c[c.length-1].path!==p?c.findIndex(bu.bind(null,l[u-2])):f}),i=I(()=>s.value>-1&&dK(n.params,r.value.params)),o=I(()=>s.value>-1&&s.value===n.matched.length-1&&oO(n.params,r.value.params));function a(l={}){return cK(l)?t[ue(e.replace)?"replace":"push"](ue(e.to)).catch(Ic):Promise.resolve()}return{route:r,href:I(()=>r.value.href),isActive:i,isExactActive:o,navigate:a}}const lK=$e({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"}},useLink:kk,setup(e,{slots:t}){const n=yn(kk(e)),{options:r}=Qe(vm),s=I(()=>({[Ek(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ek(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&t.default(n);return e.custom?i:Ar("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),uK=lK;function cK(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 dK(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Is(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function xk(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ek=(e,t,n)=>e??t??n,fK=$e({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Qe($y),s=I(()=>e.route||r.value),i=Qe(_k,0),o=I(()=>{let u=ue(i);const{matched:d}=s.value;let c;for(;(c=d[u])&&!c.components;)u++;return u}),a=I(()=>s.value.matched[o.value]);Kt(_k,I(()=>o.value+1)),Kt(aK,a),Kt($y,s);const l=z();return Ce(()=>[l.value,a.value,e.name],([u,d,c],[f,p,m])=>{d&&(d.instances[c]=u,p&&p!==d&&u&&u===f&&(d.leaveGuards.size||(d.leaveGuards=p.leaveGuards),d.updateGuards.size||(d.updateGuards=p.updateGuards))),u&&d&&(!p||!bu(d,p)||!f)&&(d.enterCallbacks[c]||[]).forEach(g=>g(u))},{flush:"post"}),()=>{const u=s.value,d=e.name,c=a.value,f=c&&c.components[d];if(!f)return Ck(n.default,{Component:f,route:u});const p=c.props[d],m=p?p===!0?u.params:typeof p=="function"?p(u):p:null,y=Ar(f,Tt({},m,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(c.instances[d]=null)},ref:l}));return Ck(n.default,{Component:y,route:u})||y}}});function Ck(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const hK=fK;function pK(e){const t=eK(e.routes,e),n=e.parseQuery||iK,r=e.stringifyQuery||Sk,s=e.history,i=ec(),o=ec(),a=ec(),l=Me(Yi);let u=Yi;El&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=kg.bind(null,J=>""+J),c=kg.bind(null,P7),f=kg.bind(null,ud);function p(J,be){let we,ne;return lO(J)?(we=t.getRecordMatcher(J),ne=be):ne=J,t.addRoute(ne,we)}function m(J){const be=t.getRecordMatcher(J);be&&t.removeRoute(be)}function g(){return t.getRoutes().map(J=>J.record)}function y(J){return!!t.getRecordMatcher(J)}function b(J,be){if(be=Tt({},be||l.value),typeof J=="string"){const N=xg(n,J,be.path),ee=t.resolve({path:N.path},be),re=s.createHref(N.fullPath);return Tt(N,ee,{params:f(ee.params),hash:ud(N.hash),redirectedFrom:void 0,href:re})}let we;if(J.path!=null)we=Tt({},J,{path:xg(n,J.path,be.path).path});else{const N=Tt({},J.params);for(const ee in N)N[ee]==null&&delete N[ee];we=Tt({},J,{params:c(N)}),be.params=c(be.params)}const ne=t.resolve(we,be),X=J.hash||"";ne.params=d(f(ne.params));const He=I7(r,Tt({},J,{hash:x7(X),path:ne.path})),F=s.createHref(He);return Tt({fullPath:He,hash:X,query:r===Sk?oK(J.query):J.query||{}},ne,{redirectedFrom:void 0,href:F})}function _(J){return typeof J=="string"?xg(n,J,l.value.path):Tt({},J)}function S(J,be){if(u!==J)return wu(8,{from:be,to:J})}function T(J){return P(J)}function E(J){return T(Tt(_(J),{replace:!0}))}function R(J){const be=J.matched[J.matched.length-1];if(be&&be.redirect){const{redirect:we}=be;let ne=typeof we=="function"?we(J):we;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=_(ne):{path:ne},ne.params={}),Tt({query:J.query,hash:J.hash,params:ne.path!=null?{}:J.params},ne)}}function P(J,be){const we=u=b(J),ne=l.value,X=J.state,He=J.force,F=J.replace===!0,N=R(we);if(N)return P(Tt(_(N),{state:typeof N=="object"?Tt({},X,N.state):X,force:He,replace:F}),be||we);const ee=we;ee.redirectedFrom=be;let re;return!He&&A7(r,ne,we)&&(re=wu(16,{to:ee,from:ne}),Z(ne,ne,!0,!1)),(re?Promise.resolve(re):C(ee,ne)).catch(ie=>vi(ie)?vi(ie,2)?ie:W(ie):G(ie,ee,ne)).then(ie=>{if(ie){if(vi(ie,2))return P(Tt({replace:F},_(ie.to),{state:typeof ie.to=="object"?Tt({},X,ie.to.state):X,force:He}),be||ee)}else ie=A(ee,ne,!0,F,X);return O(ee,ne,ie),ie})}function x(J,be){const we=S(J,be);return we?Promise.reject(we):Promise.resolve()}function w(J){const be=pe.values().next().value;return be&&typeof be.runWithContext=="function"?be.runWithContext(J):J()}function C(J,be){let we;const[ne,X,He]=mK(J,be);we=Eg(ne.reverse(),"beforeRouteLeave",J,be);for(const N of ne)N.leaveGuards.forEach(ee=>{we.push(lo(ee,J,be))});const F=x.bind(null,J,be);return we.push(F),oe(we).then(()=>{we=[];for(const N of i.list())we.push(lo(N,J,be));return we.push(F),oe(we)}).then(()=>{we=Eg(X,"beforeRouteUpdate",J,be);for(const N of X)N.updateGuards.forEach(ee=>{we.push(lo(ee,J,be))});return we.push(F),oe(we)}).then(()=>{we=[];for(const N of He)if(N.beforeEnter)if(Is(N.beforeEnter))for(const ee of N.beforeEnter)we.push(lo(ee,J,be));else we.push(lo(N.beforeEnter,J,be));return we.push(F),oe(we)}).then(()=>(J.matched.forEach(N=>N.enterCallbacks={}),we=Eg(He,"beforeRouteEnter",J,be,w),we.push(F),oe(we))).then(()=>{we=[];for(const N of o.list())we.push(lo(N,J,be));return we.push(F),oe(we)}).catch(N=>vi(N,8)?N:Promise.reject(N))}function O(J,be,we){a.list().forEach(ne=>w(()=>ne(J,be,we)))}function A(J,be,we,ne,X){const He=S(J,be);if(He)return He;const F=be===Yi,N=El?history.state:{};we&&(ne||F?s.replace(J.fullPath,Tt({scroll:F&&N&&N.scroll},X)):s.push(J.fullPath,X)),l.value=J,Z(J,be,we,F),W()}let M;function L(){M||(M=s.listen((J,be,we)=>{if(!le.listening)return;const ne=b(J),X=R(ne);if(X){P(Tt(X,{replace:!0}),ne).catch(Ic);return}u=ne;const He=l.value;El&&B7(fk(He.fullPath,we.delta),gm()),C(ne,He).catch(F=>vi(F,12)?F:vi(F,2)?(P(F.to,ne).then(N=>{vi(N,20)&&!we.delta&&we.type===cd.pop&&s.go(-1,!1)}).catch(Ic),Promise.reject()):(we.delta&&s.go(-we.delta,!1),G(F,ne,He))).then(F=>{F=F||A(ne,He,!1),F&&(we.delta&&!vi(F,8)?s.go(-we.delta,!1):we.type===cd.pop&&vi(F,20)&&s.go(-1,!1)),O(ne,He,F)}).catch(Ic)}))}let U=ec(),B=ec(),q;function G(J,be,we){W(J);const ne=B.list();return ne.length?ne.forEach(X=>X(J,be,we)):console.error(J),Promise.reject(J)}function V(){return q&&l.value!==Yi?Promise.resolve():new Promise((J,be)=>{U.add([J,be])})}function W(J){return q||(q=!J,L(),U.list().forEach(([be,we])=>J?we(J):be()),U.reset()),J}function Z(J,be,we,ne){const{scrollBehavior:X}=e;if(!El||!X)return Promise.resolve();const He=!we&&V7(fk(J.fullPath,0))||(ne||!we)&&history.state&&history.state.scroll||null;return At().then(()=>X(J,be,He)).then(F=>F&&N7(F)).catch(F=>G(F,J,be))}const j=J=>s.go(J);let Y;const pe=new Set,le={currentRoute:l,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:y,getRoutes:g,resolve:b,options:e,push:T,replace:E,go:j,back:()=>j(-1),forward:()=>j(1),beforeEach:i.add,beforeResolve:o.add,afterEach:a.add,onError:B.add,isReady:V,install(J){const be=this;J.component("RouterLink",uK),J.component("RouterView",hK),J.config.globalProperties.$router=be,Object.defineProperty(J.config.globalProperties,"$route",{enumerable:!0,get:()=>ue(l)}),El&&!Y&&l.value===Yi&&(Y=!0,T(s.location).catch(X=>{}));const we={};for(const X in Yi)Object.defineProperty(we,X,{get:()=>l.value[X],enumerable:!0});J.provide(vm,be),J.provide(Hw,kp(we)),J.provide($y,l);const ne=J.unmount;pe.add(J),J.unmount=function(){pe.delete(J),pe.size<1&&(u=Yi,M&&M(),M=null,l.value=Yi,Y=!1,q=!1),ne()}}};function oe(J){return J.reduce((be,we)=>be.then(()=>w(we)),Promise.resolve())}return le}function mK(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;o<i;o++){const a=t.matched[o];a&&(e.matched.find(u=>bu(u,a))?r.push(a):n.push(a));const l=e.matched[o];l&&(t.matched.find(u=>bu(u,l))||s.push(l))}return[n,r,s]}function Qo(){return Qe(vm)}function fO(e){return Qe(Hw)}const gK={class:"text-center"},vK={class:"float-end"},yK=$e({__name:"PrintJobsMenu",setup(e){const t=fr(),n=z(""),r=z(!1),s=I(()=>t.printersWithJob.filter(a=>{var p,m,g,y;const l=(m=(p=a.job)==null?void 0:p.job)==null?void 0:m.file.name,u=(l==null?void 0:l.toLowerCase())||"",d=((g=a.printer.printerURL)==null?void 0:g.toLowerCase())||"",c=((y=a.printer.name)==null?void 0:y.toLowerCase())||"",f=`${u} ${d} ${c}`;return!n.value||f.includes(n.value.toLowerCase())})),i=I(()=>s.value.length||0);function o(a){return a?a==null?void 0:a.toFixed(0):""}return Ce(r,()=>{n.value=""}),(a,l)=>($(),Se("div",gK,[h(Wd,{modelValue:ue(r),"onUpdate:modelValue":l[3]||(l[3]=u=>tt(r)?r.value=u:null),"close-on-content-click":!1,"nudge-width":400,location:"bottom right","offset-x":"","offset-y":"",transition:"slide-x-transition"},{activator:v(({props:u})=>[h(se,ve({color:ue(i)?"green":"secondary",dark:""},u),{default:v(()=>[D("span",null," Print jobs "+ae(ue(i)?`(${ue(i)})`:""),1),h(K,{end:""},{default:v(()=>l[4]||(l[4]=[k(" work ")])),_:1})]),_:2},1040,["color"])]),default:v(()=>[h(kt,{class:"d-flex flex-column","min-width":"300"},{default:v(()=>[h(Yt,{style:{"overflow-y":"hidden","flex-shrink":"0"}},{default:v(()=>[h(Fe,null,{prepend:v(()=>[h(lt,{class:"font-weight-bold",color:"primary",size:"44"},{default:v(()=>[k(ae(ue(i)),1)]),_:1})]),default:v(()=>[h(ut,null,{default:v(()=>[l[7]||(l[7]=k(" Print Jobs ")),D("span",vK,[h(se,{variant:"tonal",onClick:l[0]||(l[0]=u=>r.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>l[5]||(l[5]=[k("close")])),_:1}),l[6]||(l[6]=k("Close "))]),_:1})])]),_:1}),h(id,{class:"mt-2"},{default:v(()=>[h(mt,{modelValue:ue(n),"onUpdate:modelValue":l[1]||(l[1]=u=>tt(n)?n.value=u:null),autofocus:"",class:"p-2",clearable:"",label:"Search jobs or printers","persistent-placeholder":"",placeholder:"Type part of a filename or printer name to search","prepend-icon":"search",style:{"min-width":"900px"}},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{style:{"overflow-y":"auto","flex-shrink":"1"}},{default:v(()=>[ue(i)?me("",!0):($(),Q(Fe,{key:0},{default:v(()=>l[8]||(l[8]=[k(" No active prints ")])),_:1})),($(!0),Se(Te,null,Gt(ue(s),({printer:u,job:d})=>($(),Q(Fe,{key:u.id,lines:"two"},{prepend:v(()=>[h(lt,{size:"70"},{default:v(()=>{var c;return[h(Rd,{"model-value":(c=d==null?void 0:d.progress)==null?void 0:c.completion,width:5,color:"green",size:"50"},{default:v(()=>{var f;return[k(ae(o((f=d.progress)==null?void 0:f.completion)+"%"||""),1)]}),_:2},1032,["model-value"])]}),_:2},1024)]),default:v(()=>[h(ut,null,{default:v(()=>{var c,f;return[k(ae((f=(c=d.job)==null?void 0:c.file)==null?void 0:f.name),1)]}),_:2},1024),h(yt,null,{default:v(()=>[k(" Elapsed: "+ae(Math.round((d==null?void 0:d.progress.printTime)??0/60))+" minutes ",1),l[9]||(l[9]=D("br",null,null,-1)),k(" Printer: "+ae(u.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),h(tr,null,{default:v(()=>[h(zn),h(se,{onClick:l[2]||(l[2]=u=>r.value=!1)},{default:v(()=>l[10]||(l[10]=[k(" Close ")])),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])]))}});class Ks extends gr{static async listUsers(){const t=Oe.userRoute;return await this.get(t)}static async listRoles(){const t=Oe.rolesRoute;return await this.get(t)}static async getProfile(){const t=Oe.userProfileRoute;return await this.get(t)}static async changePassword(t,n,r){const s=Oe.userChangePasswordRoute(t);return await this.post(s,{oldPassword:n,newPassword:r})}static async changeUsername(t,n){const r=Oe.userChangeUsernameRoute(t);return await this.post(r,{username:n})}static async deleteUser(t){const n=Oe.userDeleteRoute(t);return await this.delete(n)}static async setUserVerified(t,n){const r=Oe.userSetVerifiedRoute(t);return await this.post(r,{isVerified:n})}static async setRootUser(t,n){const r=Oe.userSetRootUserRoute(t);return await this.post(r,{isRootUser:n})}static async setUserRoles(t,n){const r=Oe.userSetUserRolesRoute(t);return await this.post(r,{roleIds:n})}}const jw=As("profile",{state:()=>({username:null,isDemoUser:null,userId:null}),actions:{async getProfile(){return await Ks.getProfile().then(e=>{this.username=e.username,this.userId=e.id,this.isDemoUser=e.isDemoUser})}}}),Wt={Home:"Home",Login:"Login",Registration:"Registration",PrintersView:"PrintersView",Settings:"Settings",CameraGridView:"CameraGridView",PrintStatistics:"Print Statistics",About:"About",PermissionDenied:"PermissionDenied",NotFound:"NotFound",FirstTimeSetup:"FirstTimeSetup",ServerProtection:"ServerProtection"};async function bK(e,t){return e.push({name:t})}async function hO(e){if(e.currentRoute.value.path==="/login"){console.log("routeToLogin: already at login page");return}return bK(e,Wt.Login)}const Pk=!0,wK=()=>Object.freeze({apiKeyLength:43,maxPort:65535,maxPrinterNameLength:25,maxPrinterGroupNameLength:30,maxPrinterGroupLocationX:4,maxPrinterGroupLocationY:4,minPrinterFloorNameLength:3}),ci=Object.create(null);ci.open="0";ci.close="1";ci.ping="2";ci.pong="3";ci.message="4";ci.upgrade="5";ci.noop="6";const lh=Object.create(null);Object.keys(ci).forEach(e=>{lh[ci[e]]=e});const Fy={type:"error",data:"parser error"},pO=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",mO=typeof ArrayBuffer=="function",gO=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,Ww=({type:e,data:t},n,r)=>pO&&t instanceof Blob?n?r(t):Tk(t,r):mO&&(t instanceof ArrayBuffer||gO(t))?n?r(t):Tk(new Blob([t]),r):r(ci[e]+(t||"")),Tk=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function Rk(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let Cg;function SK(e,t){if(pO&&e.data instanceof Blob)return e.data.arrayBuffer().then(Rk).then(t);if(mO&&(e.data instanceof ArrayBuffer||gO(e.data)))return t(Rk(e.data));Ww(e,!1,n=>{Cg||(Cg=new TextEncoder),t(Cg.encode(n))})}const Ik="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fc=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<Ik.length;e++)fc[Ik.charCodeAt(e)]=e;const _K=e=>{let t=e.length*.75,n=e.length,r,s=0,i,o,a,l;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const u=new ArrayBuffer(t),d=new Uint8Array(u);for(r=0;r<n;r+=4)i=fc[e.charCodeAt(r)],o=fc[e.charCodeAt(r+1)],a=fc[e.charCodeAt(r+2)],l=fc[e.charCodeAt(r+3)],d[s++]=i<<2|o>>4,d[s++]=(o&15)<<4|a>>2,d[s++]=(a&3)<<6|l&63;return u},kK=typeof ArrayBuffer=="function",qw=(e,t)=>{if(typeof e!="string")return{type:"message",data:vO(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:xK(e.substring(1),t)}:lh[n]?e.length>1?{type:lh[n],data:e.substring(1)}:{type:lh[n]}:Fy},xK=(e,t)=>{if(kK){const n=_K(e);return vO(n,t)}else return{base64:!0,data:e}},vO=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},yO="",EK=(e,t)=>{const n=e.length,r=new Array(n);let s=0;e.forEach((i,o)=>{Ww(i,!1,a=>{r[o]=a,++s===n&&t(r.join(yO))})})},CK=(e,t)=>{const n=e.split(yO),r=[];for(let s=0;s<n.length;s++){const i=qw(n[s],t);if(r.push(i),i.type==="error")break}return r};function PK(){return new TransformStream({transform(e,t){SK(e,n=>{const r=n.length;let s;if(r<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,r);else if(r<65536){s=new Uint8Array(3);const i=new DataView(s.buffer);i.setUint8(0,126),i.setUint16(1,r)}else{s=new Uint8Array(9);const i=new DataView(s.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(n)})}})}let Pg;function _f(e){return e.reduce((t,n)=>t+n.length,0)}function kf(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let s=0;s<t;s++)n[s]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function TK(e,t){Pg||(Pg=new TextDecoder);const n=[];let r=0,s=-1,i=!1;return new TransformStream({transform(o,a){for(n.push(o);;){if(r===0){if(_f(n)<1)break;const l=kf(n,1);i=(l[0]&128)===128,s=l[0]&127,s<126?r=3:s===126?r=1:r=2}else if(r===1){if(_f(n)<2)break;const l=kf(n,2);s=new DataView(l.buffer,l.byteOffset,l.length).getUint16(0),r=3}else if(r===2){if(_f(n)<8)break;const l=kf(n,8),u=new DataView(l.buffer,l.byteOffset,l.length),d=u.getUint32(0);if(d>Math.pow(2,21)-1){a.enqueue(Fy);break}s=d*Math.pow(2,32)+u.getUint32(4),r=3}else{if(_f(n)<s)break;const l=kf(n,s);a.enqueue(qw(i?l:Pg.decode(l),t)),r=0}if(s===0||s>e){a.enqueue(Fy);break}}}})}const bO=4;function wn(e){if(e)return RK(e)}function RK(e){for(var t in wn.prototype)e[t]=wn.prototype[t];return e}wn.prototype.on=wn.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};wn.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};wn.prototype.off=wn.prototype.removeListener=wn.prototype.removeAllListeners=wn.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,s=0;s<n.length;s++)if(r=n[s],r===t||r.fn===t){n.splice(s,1);break}return n.length===0&&delete this._callbacks["$"+e],this};wn.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,s=n.length;r<s;++r)n[r].apply(this,t)}return this};wn.prototype.emitReserved=wn.prototype.emit;wn.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};wn.prototype.hasListeners=function(e){return!!this.listeners(e).length};const ym=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),os=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),IK="arraybuffer";function wO(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const AK=os.setTimeout,OK=os.clearTimeout;function bm(e,t){t.useNativeTimers?(e.setTimeoutFn=AK.bind(os),e.clearTimeoutFn=OK.bind(os)):(e.setTimeoutFn=os.setTimeout.bind(os),e.clearTimeoutFn=os.clearTimeout.bind(os))}const MK=1.33;function DK(e){return typeof e=="string"?LK(e):Math.ceil((e.byteLength||e.size)*MK)}function LK(e){let t=0,n=0;for(let r=0,s=e.length;r<s;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function SO(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function $K(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function FK(e){let t={},n=e.split("&");for(let r=0,s=n.length;r<s;r++){let i=n[r].split("=");t[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return t}class NK extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class Gw extends wn{constructor(t){super(),this.writable=!1,bm(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,r){return super.emitReserved("error",new NK(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=qw(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=$K(t);return n.length?"?"+n:""}}class BK extends Gw{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};CK(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,EK(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=SO()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let _O=!1;try{_O=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const VK=_O;function UK(){}class zK extends BK{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(s,i)=>{this.onError("xhr post error",s,i)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}let Hl=class uh extends wn{constructor(t,n,r){super(),this.createRequest=t,bm(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=wO(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let s in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(s)&&r.setRequestHeader(s,this._opts.extraHeaders[s])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var s;r.readyState===3&&((s=this._opts.cookieJar)===null||s===void 0||s.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(s){this.setTimeoutFn(()=>{this._onError(s)},0);return}typeof document<"u"&&(this._index=uh.requestsCount++,uh.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=UK,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete uh.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};Hl.requestsCount=0;Hl.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Ak);else if(typeof addEventListener=="function"){const e="onpagehide"in os?"pagehide":"unload";addEventListener(e,Ak,!1)}}function Ak(){for(let e in Hl.requests)Hl.requests.hasOwnProperty(e)&&Hl.requests[e].abort()}const HK=function(){const e=kO({xdomain:!1});return e&&e.responseType!==null}();class jK extends zK{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=HK&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Hl(kO,this.uri(),t)}}function kO(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||VK))return new XMLHttpRequest}catch{}if(!t)try{return new os[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const xO=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class WK extends Gw{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=xO?{}:wO(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;Ww(r,this.supportsBinary,i=>{try{this.doWrite(r,i)}catch{}s&&ym(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=SO()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const Tg=os.WebSocket||os.MozWebSocket;class qK extends WK{createSocket(t,n,r){return xO?new Tg(t,n,r):n?new Tg(t,n):new Tg(t)}doWrite(t,n){this.ws.send(n)}}class GK extends Gw{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=TK(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),s=PK();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();const i=()=>{r.read().then(({done:a,value:l})=>{a||(this.onPacket(l),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],s=n===t.length-1;this._writer.write(r).then(()=>{s&&ym(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const KK={websocket:qK,webtransport:GK,polling:jK},YK=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,XK=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Ny(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let s=YK.exec(e||""),i={},o=14;for(;o--;)i[XK[o]]=s[o]||"";return n!=-1&&r!=-1&&(i.source=t,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=QK(i,i.path),i.queryKey=JK(i,i.query),i}function QK(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function JK(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,s,i){s&&(n[s]=i)}),n}const By=typeof addEventListener=="function"&&typeof removeEventListener=="function",ch=[];By&&addEventListener("offline",()=>{ch.forEach(e=>e())},!1);class Ro extends wn{constructor(t,n){if(super(),this.binaryType=IK,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=Ny(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=Ny(n.host).host);bm(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{const s=r.prototype.name;this.transports.push(s),this._transportsByName[s]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=FK(this.opts.query)),By&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},ch.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=bO,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&Ro.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",Ro.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const s=this.writeBuffer[r].data;if(s&&(n+=DK(s)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,ym(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,s){if(typeof n=="function"&&(s=n,n=void 0),typeof r=="function"&&(s=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const i={type:t,data:n,options:r};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),s&&this.once("flush",s),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(Ro.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),By&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=ch.indexOf(this._offlineEventListener);r!==-1&&ch.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}Ro.protocol=bO;class ZK extends Ro{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),r=!1;Ro.priorWebsocketSuccess=!1;const s=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",c=>{if(!r)if(c.type==="pong"&&c.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;Ro.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(d(),this.setTransport(n),n.send([{type:"upgrade"}]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=n.name,this.emitReserved("upgradeError",f)}}))};function i(){r||(r=!0,d(),n.close(),n=null)}const o=c=>{const f=new Error("probe error: "+c);f.transport=n.name,i(),this.emitReserved("upgradeError",f)};function a(){o("transport closed")}function l(){o("socket closed")}function u(c){n&&c.name!==n.name&&i()}const d=()=>{n.removeListener("open",s),n.removeListener("error",o),n.removeListener("close",a),this.off("close",l),this.off("upgrading",u)};n.once("open",s),n.once("error",o),n.once("close",a),this.once("close",l),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&n.push(t[r]);return n}}let e9=class extends ZK{constructor(t,n={}){const r=typeof t=="object"?t:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(s=>KK[s]).filter(s=>!!s)),super(t,r)}};function t9(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=Ny(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+t,r.href=r.protocol+"://"+i+(n&&n.port===r.port?"":":"+r.port),r}const n9=typeof ArrayBuffer=="function",r9=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,EO=Object.prototype.toString,s9=typeof Blob=="function"||typeof Blob<"u"&&EO.call(Blob)==="[object BlobConstructor]",i9=typeof File=="function"||typeof File<"u"&&EO.call(File)==="[object FileConstructor]";function Kw(e){return n9&&(e instanceof ArrayBuffer||r9(e))||s9&&e instanceof Blob||i9&&e instanceof File}function dh(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n<r;n++)if(dh(e[n]))return!0;return!1}if(Kw(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return dh(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&dh(e[n]))return!0;return!1}function o9(e){const t=[],n=e.data,r=e;return r.data=Vy(n,t),r.attachments=t.length,{packet:r,buffers:t}}function Vy(e,t){if(!e)return e;if(Kw(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=Vy(e[r],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=Vy(e[r],t));return n}return e}function a9(e,t){return e.data=Uy(e.data,t),delete e.attachments,e}function Uy(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=Uy(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=Uy(e[n],t));return e}const l9=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],u9=5;var pt;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(pt||(pt={}));class c9{constructor(t){this.replacer=t}encode(t){return(t.type===pt.EVENT||t.type===pt.ACK)&&dh(t)?this.encodeAsBinary({type:t.type===pt.EVENT?pt.BINARY_EVENT:pt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===pt.BINARY_EVENT||t.type===pt.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=o9(t),r=this.encodeAsString(n.packet),s=n.buffers;return s.unshift(r),s}}function Ok(e){return Object.prototype.toString.call(e)==="[object Object]"}class Yw extends wn{constructor(t){super(),this.reviver=t}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const r=n.type===pt.BINARY_EVENT;r||n.type===pt.BINARY_ACK?(n.type=r?pt.EVENT:pt.ACK,this.reconstructor=new d9(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(Kw(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const r={type:Number(t.charAt(0))};if(pt[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===pt.BINARY_EVENT||r.type===pt.BINARY_ACK){const i=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const o=t.substring(i,n);if(o!=Number(o)||t.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(t.charAt(n+1)==="/"){const i=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(i,n)}else r.nsp="/";const s=t.charAt(n+1);if(s!==""&&Number(s)==s){const i=n+1;for(;++n;){const o=t.charAt(n);if(o==null||Number(o)!=o){--n;break}if(n===t.length)break}r.id=Number(t.substring(i,n+1))}if(t.charAt(++n)){const i=this.tryParse(t.substr(n));if(Yw.isPayloadValid(r.type,i))r.data=i;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case pt.CONNECT:return Ok(n);case pt.DISCONNECT:return n===void 0;case pt.CONNECT_ERROR:return typeof n=="string"||Ok(n);case pt.EVENT:case pt.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&l9.indexOf(n[0])===-1);case pt.ACK:case pt.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class d9{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=a9(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const f9=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Yw,Encoder:c9,get PacketType(){return pt},protocol:u9},Symbol.toStringTag,{value:"Module"}));function _s(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const h9=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class CO extends wn{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[_s(t,"open",this.onopen.bind(this)),_s(t,"packet",this.onpacket.bind(this)),_s(t,"error",this.onerror.bind(this)),_s(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,s,i;if(h9.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const o={type:pt.EVENT,data:n};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const d=this.ids++,c=n.pop();this._registerAckCallback(d,c),o.id=d}const a=(s=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||s===void 0?void 0:s.writable,l=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(l?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,n){var r;const s=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(s===void 0){this.acks[t]=n;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===t&&this.sendBuffer.splice(a,1);n.call(this,new Error("operation has timed out"))},s),o=(...a)=>{this.io.clearTimeoutFn(i),n.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...n){return new Promise((r,s)=>{const i=(o,a)=>o?s(o):r(a);i.withError=!0,n.push(i),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...i)=>r!==this._queue[0]?void 0:(s!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(s)):(this._queue.shift(),n&&n(null,...i)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:pt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case pt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case pt.EVENT:case pt.BINARY_EVENT:this.onevent(t);break;case pt.ACK:case pt.BINARY_ACK:this.onack(t);break;case pt.DISCONNECT:this.ondisconnect();break;case pt.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...s){r||(r=!0,n.packet({type:pt.ACK,id:t,data:s}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:pt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,t.data)}}}function zu(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}zu.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=Math.floor(t*10)&1?e+n:e-n}return Math.min(e,this.max)|0};zu.prototype.reset=function(){this.attempts=0};zu.prototype.setMin=function(e){this.ms=e};zu.prototype.setMax=function(e){this.max=e};zu.prototype.setJitter=function(e){this.jitter=e};class zy extends wn{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,bm(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new zu({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const s=n.parser||f9;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new e9(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const s=_s(n,"open",function(){r.onopen(),t&&t()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=_s(n,"error",i);if(this._timeout!==!1){const a=this._timeout,l=this.setTimeoutFn(()=>{s(),i(new Error("timeout")),n.close()},a);this.opts.autoUnref&&l.unref(),this.subs.push(()=>{this.clearTimeoutFn(l)})}return this.subs.push(s),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(_s(t,"ping",this.onping.bind(this)),_s(t,"data",this.ondata.bind(this)),_s(t,"error",this.onerror.bind(this)),_s(t,"close",this.onclose.bind(this)),_s(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){ym(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new CO(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;r<n.length;r++)this.engine.write(n[r],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const tc={};function fh(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=t9(e,t.path||"/socket.io"),r=n.source,s=n.id,i=n.path,o=tc[s]&&i in tc[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||o;let l;return a?l=new zy(r,t):(tc[s]||(tc[s]=new zy(r,t)),l=tc[s]),n.query&&!t.query&&(t.query=n.queryKey),l.socket(n.path,t)}Object.assign(fh,{Manager:zy,Socket:CO,io:fh,connect:fh});let Qt=null;const _r=yn({connected:!1,setup:!1,id:""});function p9(e,t){if(_r.setup)throw new Error("Socket already set up");_r.setup=!1,Qt=fh(e,{auth:t!=null&&t.length?{token:t}:void 0}),_r.setup=!0,Qt.on("connect",()=>{_r.id=Qt.id||"",_r.connected=!0}),Qt.on("disconnect",()=>{_r.id="",_r.connected=!1})}function m9(){_r.connected=!1,Qt==null||Qt.close(),Qt==null||Qt.open()}function g9(){Qt&&Qt.close(),Qt=null,_r.setup=!1,_r.connected=!1,_r.id=""}function v9(){if(!Qt)return console.warn("Socket not set-up"),{setup:!1};const e={setup:!0,active:Qt.active,connected:Qt.connected,id:Qt.id,recovered:Qt.recovered};return console.warn(e),e}const y9=de({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},"scroll");function b9(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{canScroll:n}=t;let r=0,s=0;const i=z(null),o=Me(0),a=Me(0),l=Me(0),u=Me(!1),d=Me(!1),c=I(()=>Number(e.scrollThreshold)),f=I(()=>Pr((c.value-o.value)/c.value||0)),p=()=>{const m=i.value;if(!m||n&&!n.value)return;r=o.value,o.value="window"in m?m.pageYOffset:m.scrollTop;const g=m instanceof Window?document.documentElement.scrollHeight:m.scrollHeight;if(s!==g){s=g;return}d.value=o.value<r,l.value=Math.abs(o.value-c.value)};return Ce(d,()=>{a.value=a.value||o.value}),Ce(u,()=>{a.value=0}),bt(()=>{Ce(()=>e.scrollTarget,m=>{var y;const g=m?document.querySelector(m):window;g&&g!==i.value&&((y=i.value)==null||y.removeEventListener("scroll",p),i.value=g,i.value.addEventListener("scroll",p,{passive:!0}))},{immediate:!0})}),kn(()=>{var m;(m=i.value)==null||m.removeEventListener("scroll",p)}),n&&Ce(n,p,{immediate:!0}),{scrollThreshold:c,currentScroll:o,currentThreshold:l,isScrollActive:u,scrollRatio:f,isScrollingUp:d,savedScroll:a}}const w9=de({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:"top",validator:e=>["top","bottom"].includes(e)},...ZA(),...PA(),...y9(),height:{type:[Number,String],default:64}},"VAppBar"),PO=xe()({name:"VAppBar",props:w9(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=z(),s=it(e,"modelValue"),i=I(()=>{var S;const _=new Set(((S=e.scrollBehavior)==null?void 0:S.split(" "))??[]);return{hide:_.has("hide"),fullyHide:_.has("fully-hide"),inverted:_.has("inverted"),collapse:_.has("collapse"),elevate:_.has("elevate"),fadeImage:_.has("fade-image")}}),o=I(()=>{const _=i.value;return _.hide||_.fullyHide||_.inverted||_.collapse||_.elevate||_.fadeImage||!s.value}),{currentScroll:a,scrollThreshold:l,isScrollingUp:u,scrollRatio:d}=b9(e,{canScroll:o}),c=I(()=>i.value.hide||i.value.fullyHide),f=I(()=>e.collapse||i.value.collapse&&(i.value.inverted?d.value>0:d.value===0)),p=I(()=>e.flat||i.value.fullyHide&&!s.value||i.value.elevate&&(i.value.inverted?a.value>0:a.value===0)),m=I(()=>i.value.fadeImage?i.value.inverted?1-d.value:d.value:void 0),g=I(()=>{var T,E;if(i.value.hide&&i.value.inverted)return 0;const _=((T=r.value)==null?void 0:T.contentHeight)??0,S=((E=r.value)==null?void 0:E.extensionHeight)??0;return c.value?a.value<l.value||i.value.fullyHide?_+S:_:_+S});Yr(I(()=>!!e.scrollBehavior),()=>{Un(()=>{c.value?i.value.inverted?s.value=a.value>l.value:s.value=u.value||a.value<l.value:s.value=!0})});const{ssrBootStyles:y}=jd(),{layoutItemStyles:b}=RA({id:e.name,order:I(()=>parseInt(e.order,10)),position:Re(e,"location"),layoutSize:g,elementSize:Me(void 0),active:s,absolute:Re(e,"absolute")});return Ie(()=>{const _=nr.filterProps(e);return h(nr,ve({ref:r,class:["v-app-bar",{"v-app-bar--bottom":e.location==="bottom"},e.class],style:[{...b.value,"--v-toolbar-image-opacity":m.value,height:void 0,...y.value},e.style]},_,{collapse:f.value,flat:p.value}),n)}),{}}}),S9=de({...qP({icon:"$menu",variant:"text"})},"VAppBarNavIcon"),_9=xe()({name:"VAppBarNavIcon",props:S9(),setup(e,t){let{slots:n}=t;return Ie(()=>h(se,ve(e,{class:["v-app-bar-nav-icon"]}),n)),{}}}),k9={key:1,class:"text-uppercase text--white"},x9={key:3,class:"ml-2"},E9={key:4,class:"ml-2"},C9=$e({__name:"TopBar",setup(e){const t=jw(),n=fs(),r=Qo(),s=[{title:"Open Profile",icon:"person",path:"/settings/account"}],i=z(Date.now());q$(()=>{i.value=Date.now()},1e3);const o=I(()=>{var c;if(!((c=n.tokenClaims)!=null&&c.exp))return"";const d=n.tokenClaims.exp-i.value/1e3;return`${Math.round(d)}s`}),a=I(()=>t.username),l=I(()=>n.isDemoMode);async function u(){await n.logout(!0),await hO(r)}return(d,c)=>{const f=h7,p=f7;return $(),Q(PO,{color:"primary"},{default:v(()=>[h(gn,{class:"text-uppercase text-white"},{default:v(()=>c[1]||(c[1]=[D("span",{class:"font-weight-light"}," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),l.value?($(),Q(zn,{key:0})):me("",!0),l.value?($(),Se("h2",k9," DEMO MODE ")):me("",!0),h(zn),h(yK),ue(n).hasAuthToken&&!ue(n).isLoginExpired?($(),Q(Wd,{key:2,"close-on-content-click":!1,location:"bottom right","open-on-hover":"",transition:"slide-y-transition"},{activator:v(({props:m})=>[h(se,ve({class:"ml-2",color:"secondary",theme:"dark"},m),{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>c[2]||(c[2]=[k("person")])),_:1}),k(" "+ae(a.value),1)]),_:2},1040)]),default:v(()=>[h(Yt,null,{default:v(()=>[($(),Se(Te,null,Gt(s,(m,g)=>h(Fe,{key:g,to:m.path,title:m.title,"prepend-avatar":m.icon,link:""},null,8,["to","title","prepend-avatar"])),64))]),_:1})]),_:1})):me("",!0),ue(Pk)&&o.value?($(),Se("span",x9," AuthExp "+ae(o.value),1)):me("",!0),ue(Pk)?($(),Se("span",E9,[D("small",null," S"+ae(ue(_r).setup?1:0)+" C"+ae(ue(_r).connected?1:0)+" "+ae(ue(_r).id),1)])):me("",!0),ue(n).loginRequired===!0?($(),Q(f,{key:5,tooltip:"Go back to login",text:"Logout",color:"secondary",icon:"logout",onClick:c[0]||(c[0]=m=>u())})):me("",!0),ue(n).loginRequired===!0?($(),Q(se,{key:6,class:"ml-2"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>c[3]||(c[3]=[k("logout")])),_:1}),c[4]||(c[4]=k(" Logout "))]),_:1})):me("",!0),h(p)]),_:1})}}}),TO="/assets/logo-CJVdjy51.png",P9=$e({__name:"NavigationDrawer",setup(e){const t=[["home","Devices","/"],["print","Printers","/printers"],["camera_alt","CameraGridView","/cameras"],["settings","Settings","/settings"],["timeline","PrintStatistics","/statistics"],["contact_support","About","/about"]];return(n,r)=>($(),Q(Rw,{permanent:"",rail:"",theme:"dark",class:"nav-side-background"},{default:v(()=>[h(_9,{class:"ml-1 mt-2"},{default:v(()=>[h(Yo,{alt:"FDM Monster Logo",src:ue(TO),class:"shrink mr-1 pt-3 ml-1",transition:"scale-transition",width:"40"},null,8,["src"])]),_:1}),h(bn),h(Yt,{density:"compact",nav:""},{default:v(()=>[($(),Se(Te,null,Gt(t,([s,i,o],a)=>h(Fe,{key:a,to:o,"prepend-icon":s,title:i,density:"comfortable","router-link":""},null,8,["to","prepend-icon","title"])),64))]),_:1})]),_:1}))}});function T9(e){const t=Me(e());let n=-1;function r(){clearInterval(n)}function s(){r(),At(()=>t.value=e())}function i(o){const a=o?getComputedStyle(o):{transitionDuration:.2},l=parseFloat(a.transitionDuration)*1e3||200;if(r(),t.value<=0)return;const u=performance.now();n=window.setInterval(()=>{const d=performance.now()-u+l;t.value=Math.max(e()-d,0),t.value<=0&&r()},l)}return _n(r),{clear:r,time:t,start:i,reset:s}}const R9=de({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...jo({location:"bottom"}),...Pu(),...$n(),...Ls(),...Lt(),...Os(Ad({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),Xw=xe()({name:"VSnackbar",props:R9(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=it(e,"modelValue"),{positionClasses:s}=Tu(e),{scopeId:i}=Iu(),{themeClasses:o}=Zt(e),{colorClasses:a,colorStyles:l,variantClasses:u}=Za(e),{roundedClasses:d}=Hn(e),c=T9(()=>Number(e.timeout)),f=z(),p=z(),m=Me(!1),g=Me(0),y=z(),b=Qe(od,void 0);Yr(()=>!!b,()=>{const O=TA();Un(()=>{y.value=O.mainStyles.value})}),Ce(r,S),Ce(()=>e.timeout,S),bt(()=>{r.value&&S()});let _=-1;function S(){c.reset(),window.clearTimeout(_);const O=Number(e.timeout);if(!r.value||O===-1)return;const A=Cb(p.value);c.start(A),_=window.setTimeout(()=>{r.value=!1},O)}function T(){c.reset(),window.clearTimeout(_)}function E(){m.value=!0,T()}function R(){m.value=!1,S()}function P(O){g.value=O.touches[0].clientY}function x(O){Math.abs(g.value-O.changedTouches[0].clientY)>50&&(r.value=!1)}function w(){m.value&&R()}const C=I(()=>e.location.split(" ").reduce((O,A)=>(O[`v-snackbar--${A}`]=!0,O),{}));return Ie(()=>{const O=$i.filterProps(e),A=!!(n.default||n.text||e.text);return h($i,ve({ref:f,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},C.value,s.value,e.class],style:[y.value,e.style]},O,{modelValue:r.value,"onUpdate:modelValue":M=>r.value=M,contentProps:ve({class:["v-snackbar__wrapper",o.value,a.value,d.value,u.value],style:[l.value],onPointerenter:E,onPointerleave:R},O.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:P,onTouchend:x,onAfterLeave:w},i),{default:()=>{var M,L;return[Ho(!1,"v-snackbar"),e.timer&&!m.value&&h("div",{key:"timer",class:"v-snackbar__timer"},[h(lu,{ref:p,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":c.time.value},null)]),A&&h("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((M=n.text)==null?void 0:M.call(n))??e.text,(L=n.default)==null?void 0:L.call(n)]),n.actions&&h(It,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[h("div",{class:"v-snackbar__actions"},[n.actions({isActive:r})])]})]},activator:n.activator})}),ji({},f)}}),I9={style:{width:"100%"}},A9={class:"font-weight-bold text-button"},O9=$e({__name:"AppProgressSnackbar",setup(e){const t=Dt(),n=z(!1),r=z(""),s=z([]),i=z(100);function o(u){return s.value.find(d=>d.key===u)}function a(u,d,c=0,f=!1,p=Date.now()+1500){console.log(`[AppProgressSnackbar] Adding ${u} tracker with progress ${c}`),s.value.push({key:u,title:d,value:c,completed:f,startedAt:Date.now(),expiresAt:p,timeoutAt:void 0})}function l(u){s.value=s.value.filter(d=>d.key!==u)}return bt(()=>{setInterval(()=>{if(s.value.length){for(const u of s.value){const{value:d,completed:c,expiresAt:f,key:p}=u;(c||d>=100)&&f<Date.now()||u.timeoutAt&&u.timeoutAt<Date.now()?l(p):!u.timeoutAt&&f<Date.now()&&(u.timeoutAt=Date.now()+5e3)}s.value.length?(i.value=-1,n.value=!0):(i.value=2e3,r.value="Upload ended",console.debug(`[AppSnackbars] Setting timeout to ${i.value}`))}},1e3),t.onProgressMessage(u=>{const{key:d,value:c,title:f,completed:p}=u,m=o(d);if(m)Math.min(100,c)>=m.value&&(m.expiresAt=Date.now()+1500,m.value=c,m.completed=p);else{if(c>=100)return;a(d,f,c,!1,Date.now()+1500)}r.value="Uploading files"})}),(u,d)=>($(),Q(Xw,{modelValue:n.value,"onUpdate:modelValue":d[1]||(d[1]=c=>n.value=c),timeout:i.value,absolute:"",location:"bottom right",class:"ma-3 elevation-24","min-width":"450px","multi-line":"",rounded:"pill",style:{"z-index":"1000"}},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{icon:"",size:"large"},{default:v(()=>[h(K,null,{default:v(()=>d[2]||(d[2]=[k("file_upload")])),_:1})]),_:1})]),_:1}),h(Ne,{class:"d-flex align-center flex-row",cols:"8"},{default:v(()=>[D("div",I9,[D("span",A9,ae(r.value),1),($(!0),Se(Te,null,Gt(s.value,(c,f)=>($(),Se("div",{key:f,class:"mb-2"},[c.completed?($(),Q(K,{key:0},{default:v(()=>d[3]||(d[3]=[k("check")])),_:1})):c.timeoutAt?($(),Q(K,{key:1},{default:v(()=>d[4]||(d[4]=[k("pause")])),_:1})):($(),Q(K,{key:2},{default:v(()=>d[5]||(d[5]=[k("hourglass_bottom")])),_:1})),k(" "+ae(c.title)+" "+ae((c.completed?100:c.value).toFixed(1))+"% ",1),d[6]||(d[6]=D("br",null,null,-1)),($(),Q(lu,{key:c.key,"model-value":c.completed?100:c.value,color:c.timeoutAt?"red":"success"},null,8,["model-value","color"]))]))),128))])]),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{icon:"",size:"large",onClick:d[0]||(d[0]=c=>n.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>d[7]||(d[7]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","timeout"]))}}),M9={class:"font-weight-bold text-button"},D9={key:0},L9=$e({__name:"AppErrorSnackbar",setup(e){const t=Dt(),n=z(-1),r=z(!1),s=z(""),i=z("");return bt(()=>{t.onErrorMessage(o=>{s.value=o.title,i.value=o.subtitle??"",r.value=!0,n.value=o.timeout??1e4})}),(o,a)=>($(),Q(Xw,{modelValue:r.value,"onUpdate:modelValue":a[1]||(a[1]=l=>r.value=l),timeout:n.value,absolute:"",location:"bottom",class:"ml-16 mb-16 ma-3 elevation-24",color:"error-darken-1",rounded:"pill","multi-line":"",style:{"z-index":"1000"},width:"450"},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{size:"large"},{default:v(()=>[h(K,null,{default:v(()=>a[2]||(a[2]=[k("error")])),_:1}),h(K)]),_:1})]),_:1}),h(Ne,{class:"d-flex align-center flex-row",cols:"8"},{default:v(()=>{var l;return[D("div",null,[D("span",M9,ae(s.value),1),(l=i.value)!=null&&l.length?($(),Se("div",D9,ae(i.value),1)):me("",!0)])]}),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{size:"large",onClick:a[0]||(a[0]=l=>r.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>a[3]||(a[3]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","timeout"]))}}),$9={class:"font-weight-bold text-button"},F9={key:0},N9=$e({__name:"AppInfoSnackbar",setup(e){const t=Dt(),n=z(!1),r=z(""),s=z(""),i=z(2e3),o=z(!1);return bt(()=>{t.onInfoMessage(a=>{r.value=a.title,s.value=a.subtitle??"",o.value=a.warning??!1,i.value=a.timeout??2e3,n.value=!0})}),(a,l)=>($(),Q(Xw,{modelValue:n.value,"onUpdate:modelValue":l[1]||(l[1]=u=>n.value=u),absolute:"",location:"bottom",color:o.value?"warning darken-2":"success",class:"ma-3 elevation-24",rounded:"pill",timeout:i.value,style:{"z-index":"1000"},"multi-line":""},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(se,{size:"large"},{default:v(()=>[h(K,null,{default:v(()=>l[2]||(l[2]=[k("info")])),_:1})]),_:1})]),_:1}),h(Ne,{cols:"8",class:"d-flex align-center flex-row"},{default:v(()=>{var u;return[D("div",null,[D("span",$9,ae(r.value),1),(u=s.value)!=null&&u.length?($(),Se("div",F9,ae(s.value),1)):me("",!0)])]}),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{size:"large",onClick:l[0]||(l[0]=u=>n.value=!1)},{default:v(()=>[h(K,null,{default:v(()=>l[3]||(l[3]=[k("close")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","color","timeout"]))}}),Qw=As("Uploads",{state:()=>({queuedUploads:[],failedUploads:[],uploadingNow:!1}),getters:{hasPendingUploads(e){var t;return((t=e.queuedUploads)==null?void 0:t.length)>0},isUploadingNow(e){return e.uploadingNow},nextUpload(e){return e.queuedUploads[0]}},actions:{queueUploads(e){this.failedUploads=[],this.queuedUploads.push(...e)},cancelUploads(){this.queuedUploads=[],this.failedUploads=[]},async handleNextUpload(){var r;const e=Dt();if(!((r=this.queuedUploads)!=null&&r.length))return;this.uploadingNow=!0;const{file:t,printer:n}=this.nextUpload;this.queuedUploads.splice(0,1);try{await To.uploadFile(n,t)}catch(s){if(s.isAxiosError){const i={file:t,printer:n,error:s};this.failedUploads.push(i),e.openErrorMessage({title:"Upload failure",subtitle:`File ${t.name}Upload failed for to printer ${n.name}`})}else e.openErrorMessage({title:"Upload failure",subtitle:"Unknown upload error occurred"})}this.uploadingNow=!1}}}),B9="/img/OIG.JYDC2RaWdz7g9.jpg",Jo=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},V9=e=>Math.random()*e,U9={name:"GridLoader",props:{loading:{type:Boolean,default:!0},color:{type:String,default:"#000000"},size:{type:Number,default:15},margin:{type:String,default:"2px"},sizeUnit:{type:String,default:"px"}},methods:{random:V9,getWrapperStyle(){return{width:`${parseFloat(this.size)*3+parseFloat(this.margin)*6}${this.sizeUnit}`,fontSize:0}},getCircleStyle(e){const t=`grid ${e/100+.6}s ${e/100-.2}s infinite ease`;return{display:"inline-block",backgroundColor:this.color,width:`${this.size}${this.sizeUnit}`,height:`${this.size}${this.sizeUnit}`,margin:this.margin,borderRadius:"100%",animationFillMode:"both",animation:t}}}};function z9(e,t,n,r,s,i){return n.loading?($(),Se("div",{key:0,style:Oo(i.getWrapperStyle())},[($(),Se(Te,null,Gt(9,o=>D("div",{key:o,style:Oo(i.getCircleStyle(i.random(100)))},null,4)),64))],4)):me("",!0)}const RO=Jo(U9,[["render",z9]]);function IO(e){const t=ct();t.getOptions().enabled=e,console.warn("Sentry enabled:",e)}const AO=e=>new Promise(t=>setTimeout(t,e));class H9{constructor(){he(this,"printerStore",Nt());he(this,"floorStore",qi());he(this,"printerStateStore",fr());he(this,"testPrinterStore",Uw());he(this,"snackbar",Dt())}socketState(){return v9()}async setupSocketConnection(){console.debug("Setting up socket.io client");const t=await UI(),n=fs();n.loadTokens(),p9(t,n.loginRequired?n.token:void 0),Qt==null||Qt.on("legacy-update",r=>this.onMessage(JSON.parse(r))),Qt==null||Qt.on("test-printer-state",r=>{this.testPrinterStore.saveEvent(r),console.log(r)})}disconnect(){g9()}reconnect(){Qt&&(console.debug("Resetting socket.io client connection"),m9())}onMessage(t){var n,r,s,i;((n=t.trackedUploads.current)!=null&&n.length||(r=t.trackedUploads.failed)!=null&&r.length)&&(console.debug("[SocketIO] trackedUploads message received"),t.trackedUploads.current.forEach(o=>{var a;this.snackbar.openProgressMessage(o.correlationToken,o.multerFile.originalname,(((a=o.progress)==null?void 0:a.percent)||0)*100,!1)})),(s=t.floors)!=null&&s.length&&this.floorStore.saveFloors(t.floors),(i=t.printers)!=null&&i.length&&this.printerStore.setPrinters(t.printers),t.socketStates&&this.printerStateStore.setSocketStates(t.socketStates),t.printerEvents&&this.printerStateStore.setPrinterEvents(t.printerEvents)}}const OO=de({color:String,...ms(),...Ue(),...Lr(),...vs(),...jo(),...Pu(),...$n(),...wt(),...Lt()},"VSheet"),sp=xe()({name:"VSheet",props:OO(),setup(e,t){let{slots:n}=t;const{themeClasses:r}=Zt(e),{backgroundColorClasses:s,backgroundColorStyles:i}=dr(Re(e,"color")),{borderClasses:o}=Ms(e),{dimensionStyles:a}=$r(e),{elevationClasses:l}=Ds(e),{locationStyles:u}=el(e),{positionClasses:d}=Tu(e),{roundedClasses:c}=Hn(e);return Ie(()=>h(e.tag,{class:["v-sheet",r.value,s.value,o.value,l.value,d.value,c.value,e.class],style:[i.value,a.value,u.value,e.style]},n)),{}}}),j9={key:1,style:{margin:"50px"}},W9={class:"mt-2 mb-2"},q9={key:0,class:"mt-2 mb-2"},G9={key:1,class:"mt-2 mb-2"},K9={key:2,style:{animation:"fadeIn 0.75s"}},Y9=$e({__name:"AppLoader",setup(e){const t=fs(),n=Fs(),r=Xo(),s=jw(),i=z(!1),o=Qo(),a=z(""),l=z(!0),u=z(),d=z(),c=z(),f=Dt(),p=new H9;function m(){window.location.reload()}function g(){navigator.clipboard.writeText(JSON.stringify(u.value)),f.openInfoMessage({title:"Copied",subtitle:"Error copied to clipboard"})}function y(P,x=""){P?(a.value=x,u.value=null,d.value=null,c.value=null):a.value="",i.value=P}async function b(){var P;try{await n.loadSettings(),await r.loadFeatures(),await s.getProfile();const x=(P=n.serverSettings)==null?void 0:P.sentryDiagnosticsEnabled;IO(!!x)}catch(x){console.log("Error when loading settings.",x),f.openErrorMessage({title:"Error",subtitle:"Error when loading settings, features and/or profile."}),ai(x)}p.socketState().setup?p.reconnect():await p.setupSocketConnection(),y(!1)}return jr("auth:permission-denied").on(async P=>{console.log("[AppLoader] Permission denied, going to permission denied page"),y(!0,"Permission denied"),await o.push({name:Wt.PermissionDenied,query:{roles:P==null?void 0:P.roles,page:String(o.currentRoute.value.name),permissions:P==null?void 0:P.permissions,error:P==null?void 0:P.error,url:P==null?void 0:P.url}}),y(!1)}),jr("auth:failure").on(async P=>{console.debug(`[AppLoader] Event received: 'auth:failure', going back to login, context: ${P}`),y(!0,"Authentication failed, going back to login"),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),jr("auth:login").on(async()=>{console.debug("[AppLoader] Event received: 'auth:login', loading app"),y(!0,"Loading app"),await b()}),jr(`auth:${kr.AccountNotVerified}`).on(async()=>{console.debug(`[AppLoader] Event received: 'auth:${kr.AccountNotVerified}', going to login`),f.error("Account not verified, please ask an administrator to verify your account."),y(!0,"Account not verified, please ask an administrator to verify your account."),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),jr(`auth:${kr.PasswordChangeRequired}`).on(async()=>{console.debug(`[AppLoader] Event received: 'auth:${kr.PasswordChangeRequired}', going to login`),f.error("Password change required, please change your password."),y(!0,"Password change required, please change your password."),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1)}),Rp(()=>{p&&p.disconnect()}),Tp(async()=>{var O,A;l.value=!0;const P=["Loading FDM Monster","Loading it all","Loading features","Loading what needs to be loaded","Farming potatoes","Wiping the floor","Cleaning cobwebs","Loading filament.dll","Loading 3D_printer.exe","Loading spools"],x=P[Math.floor(Math.random()*P.length)];y(!0,x);try{await bo.test()}catch(M){l.value=!1,u.value=M,d.value="api/test",ai(M);return}const{loginRequired:w,wizardState:C}=await t.checkAuthenticationRequirements();if(!C.wizardCompleted){console.debug("[AppLoader] Wizard not completed, going to wizard"),await t.logout(!1),o.currentRoute.value.name!==Wt.FirstTimeSetup&&await o.replace({name:Wt.FirstTimeSetup}),y(!1);return}if(!w)return console.debug("[AppLoader] Login not required, loading app"),await b();if(console.debug("[AppLoader] Checking if tokens are present"),!t.hasAuthToken&&!t.hasRefreshToken)return console.debug("[AppLoader] No tokens present, hiding overlay as router will have handled it"),y(!1);y(!0,"Refreshing login"),console.debug("[AppLoader] Verifying or refreshing login once");try{const{success:M,handled:L}=await t.verifyOrRefreshLoginOnceOrLogout();if(L){console.debug("[AppLoader] received handled event, hiding overlay");return}if(!M){console.debug("[AppLoader] No success refreshing"),y(!0,"Login expired, going back to login"),await AO(500),o.currentRoute.value.name!==Wt.Login&&await o.push({name:Wt.Login}),y(!1);return}}catch(M){console.log("[AppLoader] Error when refreshing login",M),l.value=!1,u.value=M.message,d.value=(O=M.config)==null?void 0:O.url,c.value=(A=M.response)==null?void 0:A.data,ai(M);return}console.debug("[AppLoader] Loading app"),await b()}),(P,x)=>($(),Se(Te,null,[h($i,{modelValue:i.value,"onUpdate:modelValue":x[2]||(x[2]=w=>i.value=w),opacity:"0.98",style:{"z-index":"7"}},{default:v(()=>[l.value?($(),Q(RO,{key:0,size:20,class:"ma-auto",color:"#a70015"})):me("",!0),x[19]||(x[19]=D("br",null,null,-1)),u.value?($(),Se("div",j9,[x[16]||(x[16]=D("h1",null,"FDM Monster Server Error",-1)),x[17]||(x[17]=D("p",null," Did not expect this answer from the server. Please check your configuration and logs. ",-1)),h(sp,{class:"pa-4 rounded",color:"grey-darken-2",width:"80%"},{default:v(()=>[x[11]||(x[11]=k(" Details: ")),D("div",W9,ae(JSON.stringify(u.value,null,4)),1),d.value?($(),Se("div",q9," Original URL: "+ae(d.value),1)):me("",!0),c.value?($(),Se("div",G9," Response body: "+ae(c.value),1)):me("",!0),x[12]||(x[12]=D("br",null,null,-1)),h(se,{class:"mb-2",color:"secondary",onClick:x[0]||(x[0]=w=>g())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[3]||(x[3]=[k("content_copy")])),_:1}),x[4]||(x[4]=k(" Copy error details "))]),_:1}),x[13]||(x[13]=D("br",null,null,-1)),h(se,{color:"primary mb-2",onClick:x[1]||(x[1]=w=>m())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[5]||(x[5]=[k("refresh")])),_:1}),x[6]||(x[6]=k(" reload the page "))]),_:1}),x[14]||(x[14]=D("br",null,null,-1)),h(se,{color:"darken-2 mb-2",href:"https://docs.fdm-monster.net",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[7]||(x[7]=[k("menu_book")])),_:1}),x[8]||(x[8]=k(" view documentation "))]),_:1}),x[15]||(x[15]=D("br",null,null,-1)),h(se,{color:"purple-darken-4",href:"https://discord.gg/mwA8uP8CMc",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>x[9]||(x[9]=[k("chat")])),_:1}),x[10]||(x[10]=k(" join our Discord "))]),_:1})]),_:1}),x[18]||(x[18]=D("img",{class:"justify-center align-center align-content-center rounded-pill mt-8 ma-4",src:B9,style:{opacity:"0.9"},width:"400"},null,-1))])):me("",!0),l.value?($(),Se("div",K9,ae(a.value),1)):me("",!0)]),_:1},8,["modelValue"]),i.value?me("",!0):vb(P.$slots,"default",{key:0})],64))}}),X9=de({...Ue(),...CA({fullHeight:!0}),...Lt()},"VApp"),Q9=xe()({name:"VApp",props:X9(),setup(e,t){let{slots:n}=t;const r=Zt(e),{layoutClasses:s,getLayoutItem:i,items:o,layoutRef:a}=IA(e),{rtlClasses:l}=Fr();return Ie(()=>{var u;return h("div",{ref:a,class:["v-application",r.themeClasses.value,s.value,l.value,e.class],style:[e.style]},[h("div",{class:"v-application__wrap"},[(u=n.default)==null?void 0:u.call(n)])])}),{getLayoutItem:i,items:o,theme:r}}}),J9=de({scrollable:Boolean,...Ue(),...Lr(),...wt({tag:"main"})},"VMain"),Z9=xe()({name:"VMain",props:J9(),setup(e,t){let{slots:n}=t;const{dimensionStyles:r}=$r(e),{mainStyles:s}=TA(),{ssrBootStyles:i}=jd();return Ie(()=>h(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[s.value,i.value,r.value,e.style]},{default:()=>{var o,a;return[e.scrollable?h("div",{class:"v-main__scroller"},[(o=n.default)==null?void 0:o.call(n)]):(a=n.default)==null?void 0:a.call(n)]}})),{}}}),eY=$e({__name:"App",setup(e){const t=Qw(),n=fs(),r=t.queuedUploads;return Ce(r,async()=>{await t.handleNextUpload()}),bt(()=>{console.debug(`App.vue mounted. Logged in: ${n.hasAuthToken}, Expired: ${n.isLoginExpired}`)}),(s,i)=>{const o=N9,a=L9,l=O9,u=P9,d=C9,c=Er("router-view"),f=u7,p=n7,m=xG,g=_G,y=aG,b=oG,_=K6,S=xq,T=zW;return $(),Q(Q9,null,{default:v(()=>[h(o),h(a),h(l),ue(n).hasAuthToken&&!ue(n).isLoginExpired||!ue(n).loginRequired?($(),Q(u,{key:0})):me("",!0),ue(n).hasAuthToken&&!ue(n).isLoginExpired||!ue(n).loginRequired?($(),Q(d,{key:1})):me("",!0),h(Y9,null,{default:v(()=>[h(Z9,null,{default:v(()=>[h(c)]),_:1})]),_:1}),h(f),h(p),h(m),h(g),h(y),h(b),h(_),h(S),h(T)]),_:1})}}}),Jw="/img/logo.svg";class MO extends gr{static async postQuickStopM112Command(t){const n=Oe.sendQuickStopM112Route(t);return await this.post(n)}}const wm=As("GridStore",{state:()=>({gridEditMode:!1})}),tY={class:"small-resized-font"},nY={key:0,class:"float-right d-none d-xl-inline"},rY={key:1,class:"float-end"},sY={class:"pl-5 pr-5",color:"primary"},iY={key:0},oY={key:1},aY={key:2},lY={class:"xsmall-resized-font"},Mk="rgba(100,100,100,0.1)",xf=$e({__name:"PrinterGridTile",props:{printer:{type:Object,required:!1},x:{type:Number,required:!0},y:{type:Number,required:!0}},setup(e){const t=e,n=Nt(),r=fr(),s=qi(),i=Xo(),o=Fs(),a=wm(),l=Or(hn.PrinterControlDialog),u=Or(hn.AddOrUpdatePrinterDialog),d=Dt(),c=I(()=>{var A;return(A=t.printer)==null?void 0:A.id}),f=I(()=>c.value?n.isSelectedPrinter(c.value):!1),p=I(()=>{var A;return((A=n.selectedPrinters)==null?void 0:A.length)&&!f.value}),m=I(()=>i.hasFeature("printerControlApi")),g=I(()=>o.largeTiles),y=I(()=>{if(!c.value)return;const A=n.printer(c.value);if(!A)return;const M=r.printerEventsById[c.value],L=r.socketStatesById[c.value];return zI(A,L,M)}),b=I(()=>{const A=y.value;return A&&A.rgb||Mk}),_=I(()=>{if(c.value)return r.printerJobsById[c.value]}),S=I(()=>{if(c.value)return r.printingFilePathsByPrinterId[c.value]}),T=()=>{n.setSideNavPrinter(t.printer)},E=async()=>{c.value&&(await qt.refreshSocket(c.value),d.openInfoMessage({title:"Refreshing OctoPrint connection state"}))},R=()=>{t.printer&&qt.openPrinterURL(t.printer.printerURL)},P=()=>{n.setUpdateDialogPrinter(t.printer),u.openDialog()},x=async()=>{if(!c.value)throw new Error("PrinterId not set, cant open dialog");await l.openDialog({printerId:c})},w=async()=>{c.value&&confirm("Are you sure to abort the print in Quick Stop mode? Please reconnect after.")&&await MO.postQuickStopM112Command(c.value)},C=async()=>{c.value&&await qt.sendPrinterConnectCommand(c.value)},O=async()=>{var A;if(!(!t.printer||!c.value)){if(a.gridEditMode){const M=(A=s.selectedFloor)==null?void 0:A.id;if(!M)throw new Error("Cant clear printer, floor not selected");await ss.deletePrinterFromFloor(M,c.value);return}n.toggleSelectedPrinter(t.printer)}};return(A,M)=>{const L=hr("drop-upload"),U=hr("drop-printer-position");return Jt(($(),Se("div",null,[Jt(($(),Q(kt,{class:Qa([{"tile-large":g.value,"tile-selected":f.value,"tile-unselected":p.value,"tile-setup":e.printer},"tile fill-height"]),disabled:!e.printer,style:Oo({"background-color":!ue(a).gridEditMode||!e.printer?b.value:"rgba(1,1,1,0)"}),variant:"outlined",tile:"",onClick:M[10]||(M[10]=B=>O())},{default:v(()=>{var B,q,G,V;return[(B=y.value)!=null&&B.text.includes("API")?($(),Q(K,{key:0,color:"primary",size:"70",style:{opacity:"0.2",position:"absolute",top:"5%",right:"10%"}},{default:v(()=>M[11]||(M[11]=[k(" wifi_off ")])),_:1})):me("",!0),(q=y.value)!=null&&q.text.includes("USB")?($(),Q(K,{key:1,color:"primary",size:"70",style:{opacity:"0.2",position:"absolute",top:"5%",right:"10%"}},{default:v(()=>M[12]||(M[12]=[k(" usb_off ")])),_:1})):me("",!0),(G=e.printer)!=null&&G.id?($(),Q(Vn,{key:2,class:"tile-inner fill-height"},{default:v(()=>{var W,Z,j,Y,pe,le;return[D("small",tY,ae((W=e.printer)==null?void 0:W.name),1),h(Wd,{"offset-y":""},{activator:v(({props:oe})=>[h(se,ve({class:"float-right d-inline d-xl-none"},oe),{default:v(()=>[h(K,null,{default:v(()=>M[13]||(M[13]=[k("more_vert")])),_:1})]),_:2},1040)]),default:v(()=>[h(Yt,null,{default:v(()=>[h(Fe,{"close-on-click":!0,onClick:M[0]||(M[0]=oe=>T())},{default:v(()=>[h(K,null,{default:v(()=>M[14]||(M[14]=[k("info")])),_:1}),M[15]||(M[15]=k(" Details "))]),_:1}),m.value?($(),Q(Fe,{key:0,"close-on-click":!0,onClick:M[1]||(M[1]=oe=>x())},{default:v(()=>[h(K,null,{default:v(()=>M[16]||(M[16]=[k("open_with")])),_:1}),M[17]||(M[17]=k(" Control "))]),_:1})):me("",!0),h(Fe,{"close-on-click":!0,onClick:M[2]||(M[2]=oe=>R())},{default:v(()=>[h(K,null,{default:v(()=>M[18]||(M[18]=[k("directions")])),_:1}),M[19]||(M[19]=k(" Visit OctoPrint "))]),_:1}),h(Fe,{"close-on-click":!0,onClick:M[3]||(M[3]=oe=>P())},{default:v(()=>[h(K,null,{default:v(()=>M[20]||(M[20]=[k("settings")])),_:1}),M[21]||(M[21]=k(" Edit Printer "))]),_:1}),h(Fe,{"close-on-click":!0,onClick:M[4]||(M[4]=oe=>w())},{default:v(()=>[h(K,null,{default:v(()=>M[22]||(M[22]=[k("stop")])),_:1}),M[23]||(M[23]=k(" Quick stop "))]),_:1})]),_:1})]),_:1}),ue(a).gridEditMode?($(),Se("div",rY,[D("strong",sY,[h(K,null,{default:v(()=>M[32]||(M[32]=[k("disabled_visible")])),_:1}),M[33]||(M[33]=k(" Click to clear "))])])):($(),Se("div",nY,[!ue(r).isPrinterOperational((Z=e.printer)==null?void 0:Z.id)&&ue(r).isApiResponding((j=e.printer)==null?void 0:j.id)?($(),Q(se,{key:0,onClick:M[5]||(M[5]=$t(oe=>C(),["prevent","stop"]))},{default:v(()=>[h(K,null,{default:v(()=>M[24]||(M[24]=[k("usb")])),_:1})]),_:1})):me("",!0),m.value&&ue(r).isPrinterOperational((Y=e.printer)==null?void 0:Y.id)?($(),Q(Ot,{key:1,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[6]||(M[6]=$t(J=>x(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[25]||(M[25]=[k("open_with")])),_:1})]),_:2},1040)]),default:v(()=>M[26]||(M[26]=[D("span",null," Control your printer head or extruder. ",-1)])),_:1})):me("",!0),ue(r).isPrinterOperational((pe=e.printer)==null?void 0:pe.id)?($(),Q(Ot,{key:2,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[7]||(M[7]=$t(J=>w(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[27]||(M[27]=[k("dangerous")])),_:1})]),_:2},1040)]),default:v(()=>M[28]||(M[28]=[D("span",null," Send a quick stop, causing USB to be disconnected. ",-1)])),_:1})):me("",!0),e.printer.enabled&&ue(r).isPrinterNotOnline(e.printer.id)?($(),Q(Ot,{key:3,location:"bottom"},{activator:v(({props:oe})=>[h(se,ve({elevation:"4",size:"36"},oe,{onClick:M[8]||(M[8]=$t(J=>E(),["prevent","stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>M[29]||(M[29]=[k("autorenew")])),_:1})]),_:2},1040)]),default:v(()=>M[30]||(M[30]=[D("span",null," Retry connecting to OctoPrint API ",-1)])),_:1})):me("",!0),h(se,{elevation:"5",onClick:M[9]||(M[9]=$t(oe=>T(),["prevent","stop"]))},{default:v(()=>[h(K,null,{default:v(()=>M[31]||(M[31]=[k("menu_open")])),_:1})]),_:1})])),M[39]||(M[39]=D("br",null,null,-1)),h(Ot,{disabled:!((le=e.printer)!=null&&le.disabledReason),"close-delay":"100",color:"danger","open-delay":"0",location:"top"},{activator:v(({props:oe})=>{var J,be,we;return[D("small",ve({class:"xsmall-resized-font text--secondary d-lg-inline d-none"},oe),[(J=e.printer)!=null&&J.disabledReason?($(),Se("span",iY,[M[35]||(M[35]=D("small",null," MAINTENANCE ",-1)),h(K,{class:"d-none d-xl-inline",color:"primary",size:"small"},{default:v(()=>M[34]||(M[34]=[k(" info ")])),_:1})])):($(),Se("span",oY,[D("small",null,ae((we=(be=y.value)==null?void 0:be.text)==null?void 0:we.toUpperCase()),1)]))],16)]}),default:v(()=>[M[36]||(M[36]=k(" Maintenance reason: ")),M[37]||(M[37]=D("br",null,null,-1)),k(" "+ae(e.printer.disabledReason),1)]),_:1},8,["disabled"]),g.value&&S.value?($(),Se("small",aY,[M[38]||(M[38]=D("strong",null," File: ",-1)),k(" "+ae(S.value),1)])):me("",!0)]}),_:1})):ue(a).gridEditMode?($(),Q(Vn,{key:3},{default:v(()=>[h(K,{size:"48"},{default:v(()=>M[40]||(M[40]=[k("add")])),_:1}),M[41]||(M[41]=k(" Place printer "))]),_:1})):me("",!0),(V=_.value)!=null&&V.progress?($(),Q(lu,{key:4,"model-value":_.value.progress.completion,absolute:"",bottom:"",color:"green",height:"13"},{default:v(()=>{var W,Z,j,Y,pe;return[D("span",lY,ae(g.value?(Z=(W=_.value)==null?void 0:W.progress)!=null&&Z.completion?((pe=(Y=(j=_.value)==null?void 0:j.progress)==null?void 0:Y.completion)==null?void 0:pe.toFixed(1))+"%":"-":S.value),1)]}),_:1},8,["model-value"])):me("",!0)]}),_:1},8,["class","disabled","style"])),[[L,{printers:[e.printer]}]])])),[[U,{x:e.x,y:e.y,printerSet:e.printer}]])}}}),uY=12,cY=[1,2,3,4,5,6,7,8].map(e=>e*2),dY=[1,2,3,4,6].map(e=>e*2),DO="FDM-Monster-Client-Vue2";var LO=(e=>(e.PRINTER_PLACE="PRINTER_PLACE",e))(LO||{});function fY(e){var t,n;return!((t=e==null?void 0:e.appId)!=null&&t.length)||!((n=e==null?void 0:e.intent)!=null&&n.length)?!1:e.appId===DO&&e.intent==="PRINTER_PLACE"}const hY=de({color:String,density:String,...Ue()},"VBannerActions"),pY=xe()({name:"VBannerActions",props:hY(),setup(e,t){let{slots:n}=t;return Mr({VBtn:{color:e.color,density:e.density,slim:!0,variant:"text"}}),Ie(()=>{var r;return h("div",{class:["v-banner-actions",e.class],style:e.style},[(r=n.default)==null?void 0:r.call(n)])}),{}}}),mY=Eu("v-banner-text"),gY=de({avatar:String,bgColor:String,color:String,icon:Je,lines:String,stacked:Boolean,sticky:Boolean,text:String,...ms(),...Ue(),...Dr(),...Lr(),...tl({mobile:null}),...vs(),...jo(),...Pu(),...$n(),...wt(),...Lt()},"VBanner"),$O=xe()({name:"VBanner",props:gY(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:r,backgroundColorStyles:s}=dr(e,"bgColor"),{borderClasses:i}=Ms(e),{densityClasses:o}=gs(e),{displayClasses:a,mobile:l}=hi(e),{dimensionStyles:u}=$r(e),{elevationClasses:d}=Ds(e),{locationStyles:c}=el(e),{positionClasses:f}=Tu(e),{roundedClasses:p}=Hn(e),{themeClasses:m}=Zt(e),g=Re(e,"color"),y=Re(e,"density");Mr({VBannerActions:{color:g,density:y}}),Ie(()=>{const b=!!(e.text||n.text),_=!!(e.avatar||e.icon),S=!!(_||n.prepend);return h(e.tag,{class:["v-banner",{"v-banner--stacked":e.stacked||l.value,"v-banner--sticky":e.sticky,[`v-banner--${e.lines}-line`]:!!e.lines},m.value,r.value,i.value,o.value,a.value,d.value,f.value,p.value,e.class],style:[s.value,u.value,c.value,e.style],role:"banner"},{default:()=>{var T;return[S&&h("div",{key:"prepend",class:"v-banner__prepend"},[n.prepend?h(It,{key:"prepend-defaults",disabled:!_,defaults:{VAvatar:{color:g.value,density:y.value,icon:e.icon,image:e.avatar}}},n.prepend):h(lt,{key:"prepend-avatar",color:g.value,density:y.value,icon:e.icon,image:e.avatar},null)]),h("div",{class:"v-banner__content"},[b&&h(mY,{key:"text"},{default:()=>{var E;return[((E=n.text)==null?void 0:E.call(n))??e.text]}}),(T=n.default)==null?void 0:T.call(n)]),n.actions&&h(pY,{key:"actions"},n.actions)]}})})}}),vY=$e({__name:"PrinterGrid",setup(e){console.debug("Setup grid");const t=Nt(),n=qi(),r=Fs(),s=wm();bt(async()=>{await t.loadPrinters(),await n.loadFloors()});const i=I(()=>n.gridSortedPrinters),o=I(()=>r.gridCols/2),a=I(()=>uY/o.value),l=I(()=>r.gridRows/2);function u(c,f){f.dataTransfer&&c.id&&f.dataTransfer.setData("text",JSON.stringify({appId:DO,intent:LO.PRINTER_PLACE,printerId:c.id}))}function d(c,f){var g;const p=c,m=f;if(!(!((g=i.value)!=null&&g.length)||!i.value[p]))return i.value[p][m]}return(c,f)=>($(),Se("div",null,[ue(s).gridEditMode?($(),Q($O,{key:0},{default:v(()=>[h(rt,{style:{"margin-bottom":"-5px"}},{default:v(()=>[h(Ne,null,{default:v(()=>[D("span",null," Drag "+ae(ue(n).floorlessPrinters.length)+" unplaced printer(s) from here to place it on the grid. ",1),h(rd,null,{default:v(()=>[($(!0),Se(Te,null,Gt(ue(n).floorlessPrinters,p=>($(),Q(sn,{key:p.id,draggable:"",size:"small",style:{cursor:"move"},onDragstart:m=>u(p,m)},{default:v(()=>[k(ae(p.name),1)]),_:2},1032,["onDragstart"]))),128))]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[D("div",null,[f[2]||(f[2]=k(" Clear printers by clicking on ")),D("strong",null,[h(K,null,{default:v(()=>f[0]||(f[0]=[k("disabled_visible")])),_:1}),f[1]||(f[1]=k(" Click to clear "))])])]),_:1})]),_:1})]),_:1})):me("",!0),($(!0),Se(Te,null,Gt(l.value,p=>($(),Q(rt,{key:p,class:"ma-1","no-gutters":""},{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,m=>($(),Q(Ne,{key:m,cols:a.value,sm:a.value},{default:v(()=>[h(rt,{class:"test-top","no-gutters":""},{default:v(()=>[h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1),2*(p-1)),x:2*(m-1),y:2*(p-1)},null,8,["printer","x","y"])]),_:2},1024),h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1)+1,2*(p-1)),x:2*(m-1)+1,y:2*(p-1)},null,8,["printer","x","y"])]),_:2},1024)]),_:2},1024),h(rt,{class:"test-bottom","no-gutters":""},{default:v(()=>[h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1),2*(p-1)+1),x:2*(m-1),y:2*(p-1)+1},null,8,["printer","x","y"])]),_:2},1024),h(Ne,{cols:"6"},{default:v(()=>[h(xf,{printer:d(2*(m-1)+1,2*(p-1)+1),x:2*(m-1)+1,y:2*(p-1)+1},null,8,["printer","x","y"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["cols","sm"]))),128))]),_:2},1024))),128)),f[3]||(f[3]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.08","pointer-events":"none"}},null,-1))]))}});function yY(e,t){return e?t.map(n=>({file:n,printer:e})):[]}function FO(e,t){return!(e!=null&&e.length)||!t?[]:e.map(n=>({file:t,printer:n}))}const bY=de({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...ol(),...pm()},"VSwitch"),ip=xe()({name:"VSwitch",inheritAttrs:!1,props:bY(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{attrs:n,slots:r}=t;const s=it(e,"indeterminate"),i=it(e,"modelValue"),{loaderClasses:o}=Id(e),{isFocused:a,focus:l,blur:u}=Vu(e),d=z(),c=_t&&window.matchMedia("(forced-colors: active)").matches,f=I(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),p=mr(),m=I(()=>e.id||`switch-${p}`);function g(){s.value&&(s.value=!1)}function y(b){var _,S;b.stopPropagation(),b.preventDefault(),(S=(_=d.value)==null?void 0:_.input)==null||S.click()}return Ie(()=>{const[b,_]=Ja(n),S=ps.filterProps(e),T=Wa.filterProps(e);return h(ps,ve({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":s.value},o.value,e.class]},b,S,{modelValue:i.value,"onUpdate:modelValue":E=>i.value=E,id:m.value,focused:a.value,style:e.style}),{...r,default:E=>{let{id:R,messagesId:P,isDisabled:x,isReadonly:w,isValid:C}=E;const O={model:i,isValid:C};return h(Wa,ve({ref:d},T,{modelValue:i.value,"onUpdate:modelValue":[A=>i.value=A,g],id:R.value,"aria-describedby":P.value,type:"checkbox","aria-checked":s.value?"mixed":void 0,disabled:x.value,readonly:w.value,onFocus:l,onBlur:u},_),{...r,default:A=>{let{backgroundColorClasses:M,backgroundColorStyles:L}=A;return h("div",{class:["v-switch__track",c?void 0:M.value],style:L.value,onClick:y},[r["track-true"]&&h("div",{key:"prepend",class:"v-switch__track-true"},[r["track-true"](O)]),r["track-false"]&&h("div",{key:"append",class:"v-switch__track-false"},[r["track-false"](O)])])},input:A=>{let{inputNode:M,icon:L,backgroundColorClasses:U,backgroundColorStyles:B}=A;return h(Te,null,[M,h("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":L||e.loading},e.inset||c?void 0:U.value],style:e.inset?void 0:B.value},[r.thumb?h(It,{defaults:{VIcon:{icon:L,size:"x-small"}}},{default:()=>[r.thumb({...O,icon:L})]}):h(k2,null,{default:()=>[e.loading?h(Bp,{name:"v-switch",active:!0,color:C.value===!1?void 0:f.value},{default:q=>r.loader?r.loader(q):h(Rd,{active:q.isActive,color:q.color,indeterminate:!0,size:"16",width:"2"},null)}):L&&h(K,{key:String(L),icon:L,size:"x-small"},null)]})])])}})}})}),{}}}),wY={class:"ma-4 pt-6"},SY={class:"d-flex flex-wrap gap-2"},_Y={class:"pr-2"},kY={class:"pr-2"},xY={class:"pr-2"},EY={class:"pr-2"},CY={class:"pr-2"},PY=$e({__name:"HomeToolbar",setup(e){const t=Nt(),n=fr(),r=qi(),s=wm(),i=z(0),o=I(()=>r.floors);function a(l){r.changeSelectedFloorByIndex(l),i.value=l}return(l,u)=>($(),Q(nr,{flat:""},{default:v(()=>{var d;return[h(gn,null,{default:v(()=>u[1]||(u[1]=[k(" Floors ")])),_:1}),h(IP,{"model-value":i.value,class:"ml-7",mandatory:"",rounded:"","onUpdate:modelValue":a},{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,c=>($(),Q(se,{key:c.id},{default:v(()=>[h(K,null,{default:v(()=>u[2]||(u[2]=[k("format_align_left")])),_:1}),k(" "+ae(c.name),1)]),_:2},1024))),128))]),_:1},8,["model-value"]),(d=ue(t).printers)!=null&&d.length?me("",!0):($(),Q(se,{key:0,class:"mt-0 ml-6",color:"primary",to:"/printers"},{default:v(()=>u[3]||(u[3]=[k(" You have no printers. Click here to start! ")])),_:1})),ue(r).floorlessPrinters.length?($(),Q(tn,{key:1,class:"mt-4 ml-12",color:"primary"},{default:v(()=>[h(K,null,{default:v(()=>u[4]||(u[4]=[k("warning")])),_:1}),k(" "+ae(ue(r).floorlessPrinters.length)+" unplaced printer(s)! ",1)]),_:1})):me("",!0),D("div",wY,[h(ip,{modelValue:ue(s).gridEditMode,"onUpdate:modelValue":u[0]||(u[0]=c=>ue(s).gridEditMode=c),label:"Printer Relocate Mode"},null,8,["modelValue"])]),h(zn),D("span",SY,[D("span",_Y,[h(K,null,{default:v(()=>u[5]||(u[5]=[k("print")])),_:1}),k(" "+ae(ue(n).printingCount),1)]),D("span",kY,[h(K,null,{default:v(()=>u[6]||(u[6]=[k("ac_unit")])),_:1}),k(" "+ae(ue(n).operationalNotPrintingCount),1)]),D("span",xY,[h(K,null,{default:v(()=>u[7]||(u[7]=[k("handyman")])),_:1}),k(" "+ae(ue(t).maintenanceCount),1)]),D("span",EY,[h(K,null,{default:v(()=>u[8]||(u[8]=[k("usb_off")])),_:1}),k(" "+ae(ue(t).disconnectedCount),1)]),D("span",CY,[h(K,null,{default:v(()=>u[9]||(u[9]=[k("print_disabled")])),_:1}),k(" "+ae(ue(t).disabledCount),1)])])]}),_:1}))}}),TY={class:"pl-1"},RY=$e({__name:"PrinterGridView",setup(e){const t=wm(),n=Nt(),r=fr(),s=Qw(),i=Xo(),o=Dt(),a=z(void 0),l=I(()=>i.hasFeature("batchReprintCalls")),u=I(()=>n.selectedPrinters.length>0),d=I(()=>n.selectedPrinters),c=z(null),f=()=>{c.value&&(c.value.value="",a.value=void 0)},p=()=>{n.clearSelectedPrinters()},m=async()=>{var T;const S=await Or(hn.BatchReprintDialog).handleAsync((T=n.selectedPrinters)==null?void 0:T.map(E=>E.id));console.log("[PrinterGridView] Dialog completed",S)},g=()=>{const S=d.value,T=S.filter(P=>r.isApiResponding(P.id));if(!a.value)return;const E=S.length-T.length;E>0&&o.openInfoMessage({title:`${E} printers inaccessible`,subtitle:"These were skipped from uploading."});const R=FO(T,a.value);s.queueUploads(R),c.value&&(c.value.value=""),p()},y=()=>{c.value&&c.value.files?a.value=c.value.files[0]:a.value=void 0},b=S=>{n.toggleSelectedPrinter(S)},_=S=>{qt.openPrinterURL(S.printerURL)};return(S,T)=>{const E=hr("drop-upload");return $(),Se("div",null,[h(PY),ue(t).gridEditMode?me("",!0):Jt(($(),Q($O,{key:0},{default:v(()=>[h(rt,{style:{"margin-bottom":"-5px"}},{default:v(()=>[h(Ne,{style:{padding:"5px 0 0 15px"}},{default:v(()=>[h(rd,{class:"d-inline-block"},{default:v(()=>[d.value.length===0?($(),Q(sn,{key:0,size:"small"},{default:v(()=>T[6]||(T[6]=[k(" No selected printers ")])),_:1})):me("",!0),($(!0),Se(Te,null,Gt(d.value,R=>($(),Q(sn,{key:R.id,closable:"",color:"primary",size:"small",onClick:P=>_(R),"onClick:close":P=>b(R)},{default:v(()=>[k(ae(R.name),1)]),_:2},1032,["onClick","onClick:close"]))),128))]),_:1})]),_:1}),h(Ne,{align:"right",style:{padding:"0"}},{default:v(()=>[a.value?($(),Q(rd,{key:0,class:"float-end"},{default:v(()=>[h(sn,{closable:"","onClick:close":T[0]||(T[0]=R=>f())},{default:v(()=>[k(ae(a.value.name)+" ",1),D("strong",TY,ae(ue(bA)(a.value.size)),1)]),_:1})]),_:1})):me("",!0),T[12]||(T[12]=D("br",null,null,-1)),l.value?($(),Q(se,{key:1,disabled:!u.value,color:"primary",size:"x-small",onClick:T[1]||(T[1]=R=>m())},{default:v(()=>[h(K,{class:"pr-2",size:"small"},{default:v(()=>T[7]||(T[7]=[k(" refresh ")])),_:1}),T[8]||(T[8]=k(" Batch reprint "))]),_:1},8,["disabled"])):me("",!0),h(se,{color:u.value?"primary":"secondary",class:"ml-2",size:"x-small",onClick:T[2]||(T[2]=R=>p())},{default:v(()=>[h(K,{class:"pr-2",size:"small"},{default:v(()=>T[9]||(T[9]=[k(" delete ")])),_:1}),k(" Clear all ("+ae(d.value.length)+") ",1)]),_:1},8,["color"]),h(se,{class:"ml-2",color:"primary",size:"x-small",onClick:T[3]||(T[3]=R=>{var P;return(P=S.$refs.fileUpload)==null?void 0:P.click()})},{default:v(()=>T[10]||(T[10]=[k(" Select gcode file ")])),_:1}),h(se,{disabled:!a.value,class:"ml-2 mr-5",color:"green",size:"x-small",onClick:T[4]||(T[4]=R=>g())},{default:v(()=>T[11]||(T[11]=[k(" Upload gcode file ")])),_:1},8,["disabled"]),D("input",{ref_key:"fileUpload",ref:c,multiple:!1,accept:".gcode",style:{display:"none"},type:"file",onChange:T[5]||(T[5]=R=>y())},null,544)]),_:1})]),_:1})]),_:1})),[[E,{printers:d.value}]]),h(vY,{class:"ma-2"})])}}}),IY=$e({name:"RefreshFilesAction",components:{},props:{printer:Object},setup:()=>({printersStore:Nt()}),methods:{async getFiles(){this.printer&&await this.printersStore.loadPrinterFiles(this.printer.id)}}});function AY(e,t,n,r,s,i){return $(),Q(se,{color:"secondary",onClick:t[0]||(t[0]=o=>e.getFiles())},{default:v(()=>[h(K,null,{default:v(()=>t[1]||(t[1]=[k("refresh")])),_:1}),t[2]||(t[2]=D("span",{class:"d-none d-lg-inline"}," Refresh files ",-1))]),_:1})}const NO=Jo(IY,[["render",AY]]),OY=$e({name:"PrinterDetails",components:{RefreshFilesAction:NO},props:{printer:Object},setup:()=>({printersStore:Nt(),printerStateStore:fr()}),data:()=>({dragging:!1}),computed:{printerId(){var e;return(e=this.printer)==null?void 0:e.id},socketState(){var e;if(this.printerId)return(e=this.printerStateStore.socketStatesById[this.printerId])==null?void 0:e.socket},apiState(){var e;if(this.printerId)return(e=this.printerStateStore.socketStatesById[this.printerId])==null?void 0:e.api},printerTextState(){var e,t,n;if(this.printerId)return(n=(t=(e=this.printerStateStore.printerEventsById[this.printerId])==null?void 0:e.current)==null?void 0:t.payload)==null?void 0:n.state.text}}});function MY(e,t,n,r,s,i){const o=NO,a=hr("drop-upload");return e.printer?Jt(($(),Q(Vn,{key:0,style:Oo(e.dragging?"background-color:red":""),transition:"scale-transition"},{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[k(" Name: "+ae(e.printer.name)+" ",1),t[0]||(t[0]=D("br",null,null,-1)),k(" URL: "+ae(e.printer.printerURL)+" ",1),t[1]||(t[1]=D("br",null,null,-1)),t[2]||(t[2]=k(" Host: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.apiState),1)]),_:1}),t[3]||(t[3]=D("br",null,null,-1)),t[4]||(t[4]=k(" WebSocket: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.socketState),1)]),_:1}),t[5]||(t[5]=D("br",null,null,-1)),t[6]||(t[6]=k(" Printer: ")),h(sn,{size:"small"},{default:v(()=>[k(ae(e.printerTextState),1)]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[h(o,{printer:e.printer,class:"d-flex justify-end"},null,8,["printer"])]),_:1})]),_:1})]),_:1},8,["style"])),[[a,{printers:[e.printer]}]]):me("",!0)}const DY=Jo(OY,[["render",MY]]),LY=$e({__name:"PrinterUrlAction",props:{printer:{}},setup(e){const t=e;async function n(){qt.openPrinterURL(t.printer.printerURL)}return(r,s)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:s[0]||(s[0]=$t(i=>n(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("directions")])),_:1})]),_:1}))}}),$Y=$e({name:"PrinterSettingsAction",props:{printer:Object},computed:{printerId(){return this.printer.id}},methods:{openSettings(){this.$emit("update:show",this.printer.id)}}});function FY(e,t,n,r,s,i){return $(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:t[0]||(t[0]=$t(o=>e.openSettings(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>t[1]||(t[1]=[k("settings")])),_:1})]),_:1})}const NY=Jo($Y,[["render",FY]]),BY=de({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:Je,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...Ue(),...jo({location:"top end"}),...$n(),...wt(),...Lt(),...Au({transition:"scale-rotate-transition"})},"VBadge"),BO=xe()({name:"VBadge",inheritAttrs:!1,props:BY(),setup(e,t){const{backgroundColorClasses:n,backgroundColorStyles:r}=dr(Re(e,"color")),{roundedClasses:s}=Hn(e),{t:i}=Jr(),{textColorClasses:o,textColorStyles:a}=Ts(Re(e,"textColor")),{themeClasses:l}=jF(),{locationStyles:u}=el(e,!0,d=>(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(d)?+(e.offsetY??0):["left","right"].includes(d)?+(e.offsetX??0):0));return Ie(()=>{const d=Number(e.content),c=!e.max||isNaN(d)?e.content:d<=+e.max?d:`${e.max}+`,[f,p]=pv(t.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return h(e.tag,ve({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},p,{style:e.style}),{default:()=>{var m,g;return[h("div",{class:"v-badge__wrapper"},[(g=(m=t.slots).default)==null?void 0:g.call(m),h(si,{transition:e.transition},{default:()=>{var y,b;return[Jt(h("span",ve({class:["v-badge__badge",l.value,n.value,s.value,o.value],style:[r.value,a.value,e.inline?{}:u.value],"aria-atomic":"true","aria-label":i(e.label,d),"aria-live":"polite",role:"status"},f),[e.dot?void 0:t.slots.badge?(b=(y=t.slots).badge)==null?void 0:b.call(y):e.icon?h(K,{icon:e.icon},null):c]),[[Uo,e.modelValue]])]}})])]}})}),{}}}),VY=$e({__name:"PrinterConnectionAction",props:{printer:{}},setup(e){const t=e,n=fr();function r(){return t.printer.id?n.isPrinterOperational(t.printer.id):!1}function s(){return t.printer.id?n.isPrinterPrinting(t.printer.id):!1}async function i(){if(r())return qt.sendPrinterDisconnectCommand(t.printer.id);await qt.sendPrinterConnectCommand(t.printer.id)}return(o,a)=>o.printer.enabled?($(),Q(BO,{key:0,color:r()?"green":"red",bordered:"",class:"ma-2",overlap:""},{badge:v(()=>[r()?($(),Q(K,{key:0},{default:v(()=>a[0]||(a[0]=[k("check")])),_:1})):($(),Q(K,{key:1},{default:v(()=>a[1]||(a[1]=[k("close")])),_:1}))]),default:v(()=>[h(se,{disabled:s(),fab:"",size:"small",onClick:$t(i,["stop"])},{default:v(()=>[h(K,null,{default:v(()=>a[2]||(a[2]=[k("usb")])),_:1})]),_:1},8,["disabled"])]),_:1},8,["color"])):me("",!0)}}),UY=$e({__name:"PrinterQuickStopAction",props:{printer:{}},setup(e){const t=e;async function n(){confirm("Are you sure to abort the print? Please reconnect after.")&&await MO.postQuickStopM112Command(t.printer.id)}return(r,s)=>r.printer.enabled?($(),Q(BO,{key:0,bordered:"",class:"ma-2",overlap:""},{badge:v(()=>[h(K,null,{default:v(()=>s[0]||(s[0]=[k("bolt")])),_:1})]),default:v(()=>[h(se,{fab:"",size:"small",onClick:$t(n,["stop"])},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("stop")])),_:1})]),_:1})]),_:1})):me("",!0)}});class VO extends gr{static async getSettings(t){const n=`${Oe.getPrinterSettingsRoute(t)}`;return await this.get(n)}static async setGCodeAnalysis(t,n=!1){const r=`${Oe.setPrinterSettingsGCodeAnalysisRoute(t)}`;return await this.post(r,{enabled:n})}static async syncPrinterName(t){const n=`${Oe.syncPrinterNameSettingRoute(t)}`;return await this.post(n)}}const zY=$e({__name:"SyncPrinterNameAction",props:{printer:{}},setup(e){const t=e,n=Dt();async function r(){await VO.syncPrinterName(t.printer.id),n.openInfoMessage({title:"Synced printer name to OctoPrint"})}return(s,i)=>($(),Q(Ot,{location:"top"},{activator:v(({props:o})=>[h(se,ve(o,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:i[0]||(i[0]=$t(a=>r(),["stop"]))}),{default:v(()=>[h(K,null,{default:v(()=>i[1]||(i[1]=[k("badge")])),_:1})]),_:2},1040)]),default:v(()=>i[2]||(i[2]=[k(" Set OctoPrints name to the FDM Monster Name ")])),_:1}))}}),HY=$e({__name:"PrinterCreateAction",setup(e){const t=ku();function n(){t.openDialogWithContext(hn.AddOrUpdatePrinterDialog)}return(r,s)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClickCapture:s[0]||(s[0]=$t(i=>n(),["stop"]))},{default:v(()=>[h(K,null,{default:v(()=>s[1]||(s[1]=[k("add")])),_:1})]),_:1}))}}),jY=$e({__name:"PrinterDeleteAction",props:{printer:{}},setup(e){const t=e,n=Nt();async function r(){confirm("Are you sure to delete this printer?")&&await n.deletePrinter(t.printer.id)}return(s,i)=>($(),Q(se,{class:"ma-2",color:"primary",fab:"",size:"small",onClick:$t(r,["prevent","stop"])},{default:v(()=>[h(K,null,{default:v(()=>i[0]||(i[0]=[k("delete")])),_:1})]),_:1}))}});class gl extends gr{static async createGroup(t){const n=`${Oe.createGroupRoute}`,r={name:t};return await this.post(n,r)}static async deleteGroup(t){const n=`${Oe.deleteGroupRoute(t)}`;return await this.delete(n)}static async getGroupsWithPrinters(){const t=`${Oe.printerGroupRoute}`;return await this.get(t)}static async addPrinterToGroup(t,n){const r=`${Oe.addPrinterToGroupRoute(t)}`,s={printerId:n};return await this.post(r,s)}static async deletePrinterFromGroup(t,n){const r=`${Oe.deletePrinterFromGroupRoute(t)}`,s={printerId:n};return await this.delete(r,s)}static async updateGroupName(t,n){const r=`${Oe.updateGroupNameRoute(t)}`,s={name:n};return await this.patch(r,s)}}const WY=(e,t,n)=>e==null||t==null?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase()),qY=de({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function GY(e,t,n){var a;const r=[],s=(n==null?void 0:n.default)??WY,i=n!=null&&n.filterKeys?Mn(n.filterKeys):!1,o=Object.keys((n==null?void 0:n.customKeyFilter)??{}).length;if(!(e!=null&&e.length))return r;e:for(let l=0;l<e.length;l++){const[u,d=u]=Mn(e[l]),c={},f={};let p=-1;if((t||o>0)&&!(n!=null&&n.noFilter)){if(typeof u=="object"){const y=i||Object.keys(d);for(const b of y){const _=Jn(d,b),S=(a=n==null?void 0:n.customKeyFilter)==null?void 0:a[b];if(p=S?S(_,t,u):s(_,t,u),p!==-1&&p!==!1)S?c[b]=p:f[b]=p;else if((n==null?void 0:n.filterMode)==="every")continue e}}else p=s(u,t,u),p!==-1&&p!==!1&&(f.title=p);const m=Object.keys(f).length,g=Object.keys(c).length;if(!m&&!g||(n==null?void 0:n.filterMode)==="union"&&g!==o&&!m||(n==null?void 0:n.filterMode)==="intersection"&&(g!==o||!m))continue}r.push({index:l,matches:{...f,...c}})}return r}function KY(e,t,n,r){const s=z([]),i=z(new Map),o=I(()=>r!=null&&r.transform?ue(t).map(l=>[l,r.transform(l)]):ue(t));Un(()=>{const l=typeof n=="function"?n():ue(n),u=typeof l!="string"&&typeof l!="number"?"":String(l),d=GY(o.value,u,{customKeyFilter:{...e.customKeyFilter,...ue(r==null?void 0:r.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),c=ue(t),f=[],p=new Map;d.forEach(m=>{let{index:g,matches:y}=m;const b=c[g];f.push(b),p.set(b.value,y)}),s.value=f,i.value=p});function a(l){return i.value.get(l.value)}return{filteredItems:s,filteredMatches:i,getMatches:a}}const YY=e=>{const{touchstartX:t,touchendX:n,touchstartY:r,touchendY:s}=e,i=.5,o=16;e.offsetX=n-t,e.offsetY=s-r,Math.abs(e.offsetY)<i*Math.abs(e.offsetX)&&(e.left&&n<t-o&&e.left(e),e.right&&n>t+o&&e.right(e)),Math.abs(e.offsetX)<i*Math.abs(e.offsetY)&&(e.up&&s<r-o&&e.up(e),e.down&&s>r+o&&e.down(e))};function XY(e,t){var r;const n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,(r=t.start)==null||r.call(t,{originalEvent:e,...t})}function QY(e,t){var r;const n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,(r=t.end)==null||r.call(t,{originalEvent:e,...t}),YY(t)}function JY(e,t){var r;const n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,(r=t.move)==null||r.call(t,{originalEvent:e,...t})}function ZY(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:n=>XY(n,t),touchend:n=>QY(n,t),touchmove:n=>JY(n,t)}}function eX(e,t){var a;const n=t.value,r=n!=null&&n.parent?e.parentElement:e,s=(n==null?void 0:n.options)??{passive:!0},i=(a=t.instance)==null?void 0:a.$.uid;if(!r||!i)return;const o=ZY(t.value);r._touchHandlers=r._touchHandlers??Object.create(null),r._touchHandlers[i]=o,uP(o).forEach(l=>{r.addEventListener(l,o[l],s)})}function tX(e,t){var i,o;const n=(i=t.value)!=null&&i.parent?e.parentElement:e,r=(o=t.instance)==null?void 0:o.$.uid;if(!(n!=null&&n._touchHandlers)||!r)return;const s=n._touchHandlers[r];uP(s).forEach(a=>{n.removeEventListener(a,s[a])}),delete n._touchHandlers[r]}const UO={mounted:eX,unmounted:tX},nX=UO,zO=Symbol.for("vuetify:v-window"),HO=Symbol.for("vuetify:v-window-group"),jO=de({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e=="boolean"||e==="hover"},touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},...Ue(),...wt(),...Lt()},"VWindow"),Dk=xe()({name:"VWindow",directives:{Touch:UO},props:jO(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:r}=Zt(e),{isRtl:s}=Fr(),{t:i}=Jr(),o=Pd(e,HO),a=z(),l=I(()=>s.value?!e.reverse:e.reverse),u=Me(!1),d=I(()=>{const T=e.direction==="vertical"?"y":"x",R=(l.value?!u.value:u.value)?"-reverse":"";return`v-window-${T}${R}-transition`}),c=Me(0),f=z(void 0),p=I(()=>o.items.value.findIndex(T=>o.selected.value.includes(T.id)));Ce(p,(T,E)=>{const R=o.items.value.length,P=R-1;R<=2?u.value=T<E:T===P&&E===0?u.value=!0:T===0&&E===P?u.value=!1:u.value=T<E}),Kt(zO,{transition:d,isReversed:u,transitionCount:c,transitionHeight:f,rootRef:a});const m=I(()=>e.continuous||p.value!==0),g=I(()=>e.continuous||p.value!==o.items.value.length-1);function y(){m.value&&o.prev()}function b(){g.value&&o.next()}const _=I(()=>{const T=[],E={icon:s.value?e.nextIcon:e.prevIcon,class:`v-window__${l.value?"right":"left"}`,onClick:o.prev,"aria-label":i("$vuetify.carousel.prev")};T.push(m.value?n.prev?n.prev({props:E}):h(se,E,null):h("div",null,null));const R={icon:s.value?e.prevIcon:e.nextIcon,class:`v-window__${l.value?"left":"right"}`,onClick:o.next,"aria-label":i("$vuetify.carousel.next")};return T.push(g.value?n.next?n.next({props:R}):h(se,R,null):h("div",null,null)),T}),S=I(()=>e.touch===!1?e.touch:{...{left:()=>{l.value?y():b()},right:()=>{l.value?b():y()},start:E=>{let{originalEvent:R}=E;R.stopPropagation()}},...e.touch===!0?{}:e.touch});return Ie(()=>Jt(h(e.tag,{ref:a,class:["v-window",{"v-window--show-arrows-on-hover":e.showArrows==="hover"},r.value,e.class],style:e.style},{default:()=>{var T,E;return[h("div",{class:"v-window__container",style:{height:f.value}},[(T=n.default)==null?void 0:T.call(n,{group:o}),e.showArrows!==!1&&h("div",{class:"v-window__controls"},[_.value])]),(E=n.additional)==null?void 0:E.call(n,{group:o})]}}),[[hr("touch"),S.value]])),{group:o}}}),WO=de({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...Ue(),...Lp(),...tT()},"VWindowItem"),Lk=xe()({name:"VWindowItem",directives:{Touch:nX},props:WO(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const r=Qe(zO),s=$p(e,HO),{isBooted:i}=jd();if(!r||!s)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const o=Me(!1),a=I(()=>i.value&&(r.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function l(){!o.value||!r||(o.value=!1,r.transitionCount.value>0&&(r.transitionCount.value-=1,r.transitionCount.value===0&&(r.transitionHeight.value=void 0)))}function u(){var m;o.value||!r||(o.value=!0,r.transitionCount.value===0&&(r.transitionHeight.value=Be((m=r.rootRef.value)==null?void 0:m.clientHeight)),r.transitionCount.value+=1)}function d(){l()}function c(m){o.value&&At(()=>{!a.value||!o.value||!r||(r.transitionHeight.value=Be(m.clientHeight))})}const f=I(()=>{const m=r.isReversed.value?e.reverseTransition:e.transition;return a.value?{name:typeof m!="string"?r.transition.value:m,onBeforeEnter:u,onAfterEnter:l,onEnterCancelled:d,onBeforeLeave:u,onAfterLeave:l,onLeaveCancelled:d,onEnter:c}:!1}),{hasContent:p}=nT(e,s.isSelected);return Ie(()=>h(si,{transition:f.value,disabled:!i.value},{default:()=>{var m;return[Jt(h("div",{class:["v-window-item",s.selectedClass.value,e.class],style:e.style},[p.value&&((m=n.default)==null?void 0:m.call(n))]),[[Uo,s.isSelected.value]])]}})),{groupItem:s}}}),rX=de({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),qO=Symbol.for("vuetify:datatable:expanded");function sX(e){const t=Re(e,"expandOnClick"),n=it(e,"expanded",e.expanded,a=>new Set(a),a=>[...a.values()]);function r(a,l){const u=new Set(n.value);l?u.add(a.value):u.delete(a.value),n.value=u}function s(a){return n.value.has(a.value)}function i(a){r(a,!s(a))}const o={expand:r,expanded:n,expandOnClick:t,isExpanded:s,toggleExpand:i};return Kt(qO,o),o}function GO(){const e=Qe(qO);if(!e)throw new Error("foo");return e}const iX=de({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),KO=Symbol.for("vuetify:data-table-group");function oX(e){return{groupBy:it(e,"groupBy")}}function aX(e){const{disableSort:t,groupBy:n,sortBy:r}=e,s=z(new Set),i=I(()=>n.value.map(d=>({...d,order:d.order??!1})).concat(t!=null&&t.value?[]:r.value));function o(d){return s.value.has(d.id)}function a(d){const c=new Set(s.value);o(d)?c.delete(d.id):c.add(d.id),s.value=c}function l(d){function c(f){const p=[];for(const m of f.items)"type"in m&&m.type==="group"?p.push(...c(m)):p.push(m);return p}return c({type:"group",items:d,id:"dummy",key:"dummy",value:"dummy",depth:0})}const u={sortByWithGroups:i,toggleGroup:a,opened:s,groupBy:n,extractRows:l,isGroupOpen:o};return Kt(KO,u),u}function YO(){const e=Qe(KO);if(!e)throw new Error("Missing group!");return e}function lX(e,t){if(!e.length)return[];const n=new Map;for(const r of e){const s=Na(r.raw,t);n.has(s)||n.set(s,[]),n.get(s).push(r)}return n}function XO(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!t.length)return[];const s=lX(e,t[0]),i=[],o=t.slice(1);return s.forEach((a,l)=>{const u=t[0],d=`${r}_${u}_${l}`;i.push({depth:n,id:d,key:u,value:l,items:o.length?XO(a,o,n+1,d):a,type:"group"})}),i}function QO(e,t){const n=[];for(const r of e)"type"in r&&r.type==="group"?(r.value!=null&&n.push(r),(t.has(r.id)||r.value==null)&&n.push(...QO(r.items,t))):n.push(r);return n}function uX(e,t,n){return{flatItems:I(()=>{if(!t.value.length)return e.value;const s=XO(e.value,t.value.map(i=>i.key));return QO(s,n.value)})}}function cX(e){let{page:t,itemsPerPage:n,sortBy:r,groupBy:s,search:i}=e;const o=rn("VDataTable"),a=I(()=>({page:t.value,itemsPerPage:n.value,sortBy:r.value,groupBy:s.value,search:i.value}));let l=null;Ce(a,()=>{zo(l,a.value)||(l&&l.search!==a.value.search&&(t.value=1),o.emit("update:options",a.value),l=a.value)},{deep:!0,immediate:!0})}const dX=de({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10}},"DataTable-paginate"),JO=Symbol.for("vuetify:data-table-pagination");function fX(e){const t=it(e,"page",void 0,r=>+(r??1)),n=it(e,"itemsPerPage",void 0,r=>+(r??10));return{page:t,itemsPerPage:n}}function hX(e){const{page:t,itemsPerPage:n,itemsLength:r}=e,s=I(()=>n.value===-1?0:n.value*(t.value-1)),i=I(()=>n.value===-1?r.value:Math.min(r.value,s.value+n.value)),o=I(()=>n.value===-1||r.value===0?1:Math.ceil(r.value/n.value));Ce([t,o],()=>{t.value>o.value&&(t.value=o.value)});function a(f){n.value=f,t.value=1}function l(){t.value=Pr(t.value+1,1,o.value)}function u(){t.value=Pr(t.value-1,1,o.value)}function d(f){t.value=Pr(f,1,o.value)}const c={page:t,itemsPerPage:n,startIndex:s,stopIndex:i,pageCount:o,itemsLength:r,nextPage:l,prevPage:u,setPage:d,setItemsPerPage:a};return Kt(JO,c),c}function pX(){const e=Qe(JO);if(!e)throw new Error("Missing pagination!");return e}function mX(e){const t=rn("usePaginatedItems"),{items:n,startIndex:r,stopIndex:s,itemsPerPage:i}=e,o=I(()=>i.value<=0?n.value:n.value.slice(r.value,s.value));return Ce(o,a=>{t.emit("update:currentItems",a)}),{paginatedItems:o}}const gX={showSelectAll:!1,allSelected:()=>[],select:e=>{var r;let{items:t,value:n}=e;return new Set(n?[(r=t[0])==null?void 0:r.value]:[])},selectAll:e=>{let{selected:t}=e;return t}},ZO={showSelectAll:!0,allSelected:e=>{let{currentPage:t}=e;return t},select:e=>{let{items:t,value:n,selected:r}=e;for(const s of t)n?r.add(s.value):r.delete(s.value);return r},selectAll:e=>{let{value:t,currentPage:n,selected:r}=e;return ZO.select({items:n,value:t,selected:r})}},eM={showSelectAll:!0,allSelected:e=>{let{allItems:t}=e;return t},select:e=>{let{items:t,value:n,selected:r}=e;for(const s of t)n?r.add(s.value):r.delete(s.value);return r},selectAll:e=>{let{value:t,allItems:n,selected:r}=e;return eM.select({items:n,value:t,selected:r})}},vX=de({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:zo}},"DataTable-select"),tM=Symbol.for("vuetify:data-table-selection");function yX(e,t){let{allItems:n,currentPage:r}=t;const s=it(e,"modelValue",e.modelValue,b=>new Set(Mn(b).map(_=>{var S;return((S=n.value.find(T=>e.valueComparator(_,T.value)))==null?void 0:S.value)??_})),b=>[...b.values()]),i=I(()=>n.value.filter(b=>b.selectable)),o=I(()=>r.value.filter(b=>b.selectable)),a=I(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return gX;case"all":return eM;case"page":default:return ZO}});function l(b){return Mn(b).every(_=>s.value.has(_.value))}function u(b){return Mn(b).some(_=>s.value.has(_.value))}function d(b,_){const S=a.value.select({items:b,value:_,selected:new Set(s.value)});s.value=S}function c(b){d([b],!l([b]))}function f(b){const _=a.value.selectAll({value:b,allItems:i.value,currentPage:o.value,selected:new Set(s.value)});s.value=_}const p=I(()=>s.value.size>0),m=I(()=>{const b=a.value.allSelected({allItems:i.value,currentPage:o.value});return!!b.length&&l(b)}),g=I(()=>a.value.showSelectAll),y={toggleSelect:c,select:d,selectAll:f,isSelected:l,isSomeSelected:u,someSelected:p,allSelected:m,showSelectAll:g};return Kt(tM,y),y}function Sm(){const e=Qe(tM);if(!e)throw new Error("Missing selection!");return e}const bX=de({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),nM=Symbol.for("vuetify:data-table-sort");function wX(e){const t=it(e,"sortBy"),n=Re(e,"mustSort"),r=Re(e,"multiSort");return{sortBy:t,mustSort:n,multiSort:r}}function SX(e){const{sortBy:t,mustSort:n,multiSort:r,page:s}=e,i=l=>{if(l.key==null)return;let u=t.value.map(c=>({...c}))??[];const d=u.find(c=>c.key===l.key);d?d.order==="desc"?n.value?d.order="asc":u=u.filter(c=>c.key!==l.key):d.order="desc":r.value?u=[...u,{key:l.key,order:"asc"}]:u=[{key:l.key,order:"asc"}],t.value=u,s&&(s.value=1)};function o(l){return!!t.value.find(u=>u.key===l.key)}const a={sortBy:t,toggleSort:i,isSorted:o};return Kt(nM,a),a}function rM(){const e=Qe(nM);if(!e)throw new Error("Missing sort!");return e}function _X(e,t,n,r){const s=Jr();return{sortedItems:I(()=>{var o,a;return n.value.length?kX(t.value,n.value,s.current.value,{transform:r==null?void 0:r.transform,sortFunctions:{...e.customKeySort,...(o=r==null?void 0:r.sortFunctions)==null?void 0:o.value},sortRawFunctions:(a=r==null?void 0:r.sortRawFunctions)==null?void 0:a.value}):t.value})}}function kX(e,t,n,r){const s=new Intl.Collator(n,{sensitivity:"accent",usage:"sort"});return e.map(o=>[o,r!=null&&r.transform?r.transform(o):o]).sort((o,a)=>{var l,u;for(let d=0;d<t.length;d++){let c=!1;const f=t[d].key,p=t[d].order??"asc";if(p===!1)continue;let m=Na(o[1],f),g=Na(a[1],f),y=o[0].raw,b=a[0].raw;if(p==="desc"&&([m,g]=[g,m],[y,b]=[b,y]),(l=r==null?void 0:r.sortRawFunctions)!=null&&l[f]){const _=r.sortRawFunctions[f](y,b);if(_==null)continue;if(c=!0,_)return _}if((u=r==null?void 0:r.sortFunctions)!=null&&u[f]){const _=r.sortFunctions[f](m,g);if(_==null)continue;if(c=!0,_)return _}if(!c){if(m instanceof Date&&g instanceof Date)return m.getTime()-g.getTime();if([m,g]=[m,g].map(_=>_!=null?_.toString().toLocaleLowerCase():_),m!==g)return nf(m)&&nf(g)?0:nf(m)?-1:nf(g)?1:!isNaN(m)&&!isNaN(g)?Number(m)-Number(g):s.compare(m,g)}}return 0}).map(o=>{let[a]=o;return a})}function xX(){const e=z([]);kC(()=>e.value=[]);function t(n,r){e.value[r]=n}return{refs:e,updateRef:t}}const EX=de({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:Je,default:"$first"},prevIcon:{type:Je,default:"$prev"},nextIcon:{type:Je,default:"$next"},lastIcon:{type:Je,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...ms(),...Ue(),...Dr(),...vs(),...$n(),...Cu(),...wt({tag:"nav"}),...Lt(),...Ls({variant:"text"})},"VPagination"),$k=xe()({name:"VPagination",props:EX(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,t){let{slots:n,emit:r}=t;const s=it(e,"modelValue"),{t:i,n:o}=Jr(),{isRtl:a}=Fr(),{themeClasses:l}=Zt(e),{width:u}=hi(),d=Me(-1);Mr(void 0,{scoped:!0});const{resizeRef:c}=Ba(x=>{if(!x.length)return;const{target:w,contentRect:C}=x[0],O=w.querySelector(".v-pagination__list > *");if(!O)return;const A=C.width,M=O.offsetWidth+parseFloat(getComputedStyle(O).marginRight)*2;d.value=g(A,M)}),f=I(()=>parseInt(e.length,10)),p=I(()=>parseInt(e.start,10)),m=I(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):d.value>=0?d.value:g(u.value,58));function g(x,w){const C=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((x-w*C)/w).toFixed(2)))}const y=I(()=>{if(f.value<=0||isNaN(f.value)||f.value>Number.MAX_SAFE_INTEGER)return[];if(m.value<=0)return[];if(m.value===1)return[s.value];if(f.value<=m.value)return Cl(f.value,p.value);const x=m.value%2===0,w=x?m.value/2:Math.floor(m.value/2),C=x?w:w+1,O=f.value-w;if(C-s.value>=0)return[...Cl(Math.max(1,m.value-1),p.value),e.ellipsis,f.value];if(s.value-O>=(x?1:0)){const A=m.value-1,M=f.value-A+p.value;return[p.value,e.ellipsis,...Cl(A,M)]}else{const A=Math.max(1,m.value-3),M=A===1?s.value:s.value-Math.ceil(A/2)+p.value;return[p.value,e.ellipsis,...Cl(A,M),e.ellipsis,f.value]}});function b(x,w,C){x.preventDefault(),s.value=w,C&&r(C,w)}const{refs:_,updateRef:S}=xX();Mr({VPaginationBtn:{color:Re(e,"color"),border:Re(e,"border"),density:Re(e,"density"),size:Re(e,"size"),variant:Re(e,"variant"),rounded:Re(e,"rounded"),elevation:Re(e,"elevation")}});const T=I(()=>y.value.map((x,w)=>{const C=O=>S(O,w);if(typeof x=="string")return{isActive:!1,key:`ellipsis-${w}`,page:x,props:{ref:C,ellipsis:!0,icon:!0,disabled:!0}};{const O=x===s.value;return{isActive:O,key:x,page:o(x),props:{ref:C,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:O?e.activeColor:e.color,"aria-current":O,"aria-label":i(O?e.currentPageAriaLabel:e.pageAriaLabel,x),onClick:A=>b(A,x)}}}})),E=I(()=>{const x=!!e.disabled||s.value<=p.value,w=!!e.disabled||s.value>=p.value+f.value-1;return{first:e.showFirstLastPage?{icon:a.value?e.lastIcon:e.firstIcon,onClick:C=>b(C,p.value,"first"),disabled:x,"aria-label":i(e.firstAriaLabel),"aria-disabled":x}:void 0,prev:{icon:a.value?e.nextIcon:e.prevIcon,onClick:C=>b(C,s.value-1,"prev"),disabled:x,"aria-label":i(e.previousAriaLabel),"aria-disabled":x},next:{icon:a.value?e.prevIcon:e.nextIcon,onClick:C=>b(C,s.value+1,"next"),disabled:w,"aria-label":i(e.nextAriaLabel),"aria-disabled":w},last:e.showFirstLastPage?{icon:a.value?e.firstIcon:e.lastIcon,onClick:C=>b(C,p.value+f.value-1,"last"),disabled:w,"aria-label":i(e.lastAriaLabel),"aria-disabled":w}:void 0}});function R(){var w;const x=s.value-p.value;(w=_.value[x])==null||w.$el.focus()}function P(x){x.key===b0.left&&!e.disabled&&s.value>+e.start?(s.value=s.value-1,At(R)):x.key===b0.right&&!e.disabled&&s.value<p.value+f.value-1&&(s.value=s.value+1,At(R))}return Ie(()=>h(e.tag,{ref:c,class:["v-pagination",l.value,e.class],style:e.style,role:"navigation","aria-label":i(e.ariaLabel),onKeydown:P,"data-test":"v-pagination-root"},{default:()=>[h("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&h("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[n.first?n.first(E.value.first):h(se,ve({_as:"VPaginationBtn"},E.value.first),null)]),h("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[n.prev?n.prev(E.value.prev):h(se,ve({_as:"VPaginationBtn"},E.value.prev),null)]),T.value.map((x,w)=>h("li",{key:x.key,class:["v-pagination__item",{"v-pagination__item--is-active":x.isActive}],"data-test":"v-pagination-item"},[n.item?n.item(x):h(se,ve({_as:"VPaginationBtn"},x.props),{default:()=>[x.page]})])),h("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[n.next?n.next(E.value.next):h(se,ve({_as:"VPaginationBtn"},E.value.next),null)]),e.showFirstLastPage&&h("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[n.last?n.last(E.value.last):h(se,ve({_as:"VPaginationBtn"},E.value.last),null)])])]})),{}}}),sM=de({prevIcon:{type:Je,default:"$prev"},nextIcon:{type:Je,default:"$next"},firstIcon:{type:Je,default:"$first"},lastIcon:{type:Je,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),Fk=xe()({name:"VDataTableFooter",props:sM(),setup(e,t){let{slots:n}=t;const{t:r}=Jr(),{page:s,pageCount:i,startIndex:o,stopIndex:a,itemsLength:l,itemsPerPage:u,setItemsPerPage:d}=pX(),c=I(()=>e.itemsPerPageOptions.map(f=>typeof f=="number"?{value:f,title:f===-1?r("$vuetify.dataFooter.itemsPerPageAll"):String(f)}:{...f,title:isNaN(Number(f.title))?r(f.title):f.title}));return Ie(()=>{var p;const f=$k.filterProps(e);return h("div",{class:"v-data-table-footer"},[(p=n.prepend)==null?void 0:p.call(n),h("div",{class:"v-data-table-footer__items-per-page"},[h("span",null,[r(e.itemsPerPageText)]),h(qa,{items:c.value,modelValue:u.value,"onUpdate:modelValue":m=>d(Number(m)),density:"compact",variant:"outlined","hide-details":!0},null)]),h("div",{class:"v-data-table-footer__info"},[h("div",null,[r(e.pageText,l.value?o.value+1:0,a.value,l.value)])]),h("div",{class:"v-data-table-footer__pagination"},[h($k,ve({modelValue:s.value,"onUpdate:modelValue":m=>s.value=m,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:i.value,"next-aria-label":e.nextPageLabel,"previous-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},f),null)])])}),{}}}),op=$F({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,t)=>{let{slots:n}=t;const r=e.tag??"td";return h(r,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap},`v-data-table-column--align-${e.align}`],style:{height:Be(e.height),width:Be(e.width),maxWidth:Be(e.maxWidth),left:Be(e.fixedOffset||null)}},{default:()=>{var s;return[(s=n.default)==null?void 0:s.call(n)]}})}),CX=de({headers:Array},"DataTable-header"),iM=Symbol.for("vuetify:data-table-headers"),oM={title:"",sortable:!1},PX={...oM,width:48};function TX(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(n=>({element:n,priority:0}));return{enqueue:(n,r)=>{let s=!1;for(let i=0;i<t.length;i++)if(t[i].priority>r){t.splice(i,0,{element:n,priority:r}),s=!0;break}s||t.push({element:n,priority:r})},size:()=>t.length,count:()=>{let n=0;if(!t.length)return 0;const r=Math.floor(t[0].priority);for(let s=0;s<t.length;s++)Math.floor(t[s].priority)===r&&(n+=1);return n},dequeue:()=>t.shift()}}function Hy(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)t.push(e);else for(const n of e.children)Hy(n,t);return t}function aM(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const n of e)n.key&&t.add(n.key),n.children&&aM(n.children,t);return t}function RX(e){if(e.key){if(e.key==="data-table-group")return oM;if(["data-table-expand","data-table-select"].includes(e.key))return PX}}function Zw(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(t,...e.children.map(n=>Zw(n,t+1))):t}function IX(e){let t=!1;function n(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(i)if(o&&(i.fixed=!0),i.fixed)if(i.children)for(let a=i.children.length-1;a>=0;a--)n(i.children[a],!0);else t?isNaN(+i.width)&&(`${i.key}`,void 0):i.lastFixed=!0,t=!0;else if(i.children)for(let a=i.children.length-1;a>=0;a--)n(i.children[a]);else t=!1}for(let i=e.length-1;i>=0;i--)n(e[i]);function r(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!i)return o;if(i.children){i.fixedOffset=o;for(const a of i.children)o=r(a,o)}else i.fixed&&(i.fixedOffset=o,o+=parseFloat(i.width||"0")||0);return o}let s=0;for(const i of e)s=r(i,s)}function AX(e,t){const n=[];let r=0;const s=TX(e);for(;s.size()>0;){let o=s.count();const a=[];let l=1;for(;o>0;){const{element:u,priority:d}=s.dequeue(),c=t-r-Zw(u);if(a.push({...u,rowspan:c??1,colspan:u.children?Hy(u).length:1}),u.children)for(const f of u.children){const p=d%1+l/Math.pow(10,r+2);s.enqueue(f,r+c+p)}l+=1,o-=1}r+=1,n.push(a)}return{columns:e.map(o=>Hy(o)).flat(),headers:n}}function lM(e){const t=[];for(const n of e){const r={...RX(n),...n},s=r.key??(typeof r.value=="string"?r.value:null),i=r.value??s??null,o={...r,key:s,value:i,sortable:r.sortable??(r.key!=null||!!r.sort),children:r.children?lM(r.children):void 0};t.push(o)}return t}function OX(e,t){const n=z([]),r=z([]),s=z({}),i=z({}),o=z({});Un(()=>{var g,y,b;const u=(e.headers||Object.keys(e.items[0]??{}).map(_=>({key:_,title:di(_)}))).slice(),d=aM(u);(g=t==null?void 0:t.groupBy)!=null&&g.value.length&&!d.has("data-table-group")&&u.unshift({key:"data-table-group",title:"Group"}),(y=t==null?void 0:t.showSelect)!=null&&y.value&&!d.has("data-table-select")&&u.unshift({key:"data-table-select"}),(b=t==null?void 0:t.showExpand)!=null&&b.value&&!d.has("data-table-expand")&&u.push({key:"data-table-expand"});const c=lM(u);IX(c);const f=Math.max(...c.map(_=>Zw(_)))+1,p=AX(c,f);n.value=p.headers,r.value=p.columns;const m=p.headers.flat(1);for(const _ of m)_.key&&(_.sortable&&(_.sort&&(s.value[_.key]=_.sort),_.sortRaw&&(i.value[_.key]=_.sortRaw)),_.filter&&(o.value[_.key]=_.filter))});const a={headers:n,columns:r,sortFunctions:s,sortRawFunctions:i,filterFunctions:o};return Kt(iM,a),a}function _m(){const e=Qe(iM);if(!e)throw new Error("Missing headers!");return e}const uM=de({color:String,sticky:Boolean,disableSort:Boolean,multiSort:Boolean,sortAscIcon:{type:Je,default:"$sortAsc"},sortDescIcon:{type:Je,default:"$sortDesc"},headerProps:{type:Object},...tl(),...Np()},"VDataTableHeaders"),Nk=xe()({name:"VDataTableHeaders",props:uM(),setup(e,t){let{slots:n}=t;const{t:r}=Jr(),{toggleSort:s,sortBy:i,isSorted:o}=rM(),{someSelected:a,allSelected:l,selectAll:u,showSelectAll:d}=Sm(),{columns:c,headers:f}=_m(),{loaderClasses:p}=Id(e);function m(x,w){if(!(!e.sticky&&!x.fixed))return{position:"sticky",left:x.fixed?Be(x.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${w})`:void 0}}function g(x){const w=i.value.find(C=>C.key===x.key);return w?w.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:y,backgroundColorStyles:b}=dr(e,"color"),{displayClasses:_,mobile:S}=hi(e),T=I(()=>({headers:f.value,columns:c.value,toggleSort:s,isSorted:o,sortBy:i.value,someSelected:a.value,allSelected:l.value,selectAll:u,getSortIcon:g})),E=I(()=>["v-data-table__th",{"v-data-table__th--sticky":e.sticky},_.value,p.value]),R=x=>{let{column:w,x:C,y:O}=x;const A=w.key==="data-table-select"||w.key==="data-table-expand",M=ve(e.headerProps??{},w.headerProps??{});return h(op,ve({tag:"th",align:w.align,class:[{"v-data-table__th--sortable":w.sortable&&!e.disableSort,"v-data-table__th--sorted":o(w),"v-data-table__th--fixed":w.fixed},...E.value],style:{width:Be(w.width),minWidth:Be(w.minWidth),maxWidth:Be(w.maxWidth),...m(w,O)},colspan:w.colspan,rowspan:w.rowspan,onClick:w.sortable?()=>s(w):void 0,fixed:w.fixed,nowrap:w.nowrap,lastFixed:w.lastFixed,noPadding:A},M),{default:()=>{var B;const L=`header.${w.key}`,U={column:w,selectAll:u,isSorted:o,toggleSort:s,sortBy:i.value,someSelected:a.value,allSelected:l.value,getSortIcon:g};return n[L]?n[L](U):w.key==="data-table-select"?((B=n["header.data-table-select"])==null?void 0:B.call(n,U))??(d.value&&h(yu,{modelValue:l.value,indeterminate:a.value&&!l.value,"onUpdate:modelValue":u},null)):h("div",{class:"v-data-table-header__content"},[h("span",null,[w.title]),w.sortable&&!e.disableSort&&h(K,{key:"icon",class:"v-data-table-header__sort-icon",icon:g(w)},null),e.multiSort&&o(w)&&h("div",{key:"badge",class:["v-data-table-header__sort-badge",...y.value],style:b.value},[i.value.findIndex(q=>q.key===w.key)+1])])}})},P=()=>{const x=ve(e.headerProps??{}??{}),w=I(()=>c.value.filter(O=>(O==null?void 0:O.sortable)&&!e.disableSort)),C=I(()=>{if(c.value.find(A=>A.key==="data-table-select")!=null)return l.value?"$checkboxOn":a.value?"$checkboxIndeterminate":"$checkboxOff"});return h(op,ve({tag:"th",class:[...E.value],colspan:f.value.length+1},x),{default:()=>[h("div",{class:"v-data-table-header__content"},[h(qa,{chips:!0,class:"v-data-table__td-sort-select",clearable:!0,density:"default",items:w.value,label:r("$vuetify.dataTable.sortBy"),multiple:e.multiSort,variant:"underlined","onClick:clear":()=>i.value=[],appendIcon:C.value,"onClick:append":()=>u(!l.value)},{...n,chip:O=>{var A;return h(sn,{onClick:(A=O.item.raw)!=null&&A.sortable?()=>s(O.item.raw):void 0,onMousedown:M=>{M.preventDefault(),M.stopPropagation()}},{default:()=>[O.item.title,h(K,{class:["v-data-table__td-sort-icon",o(O.item.raw)&&"v-data-table__td-sort-icon-active"],icon:g(O.item.raw),size:"small"},null)]})}})])]})};Ie(()=>S.value?h("tr",null,[h(P,null,null)]):h(Te,null,[n.headers?n.headers(T.value):f.value.map((x,w)=>h("tr",null,[x.map((C,O)=>h(R,{column:C,x:O,y:w},null))])),e.loading&&h("tr",{class:"v-data-table-progress"},[h("th",{colspan:c.value.length},[h(Bp,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:n.loader})])])]))}}),MX=de({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),DX=xe()({name:"VDataTableGroupHeaderRow",props:MX(),setup(e,t){let{slots:n}=t;const{isGroupOpen:r,toggleGroup:s,extractRows:i}=YO(),{isSelected:o,isSomeSelected:a,select:l}=Sm(),{columns:u}=_m(),d=I(()=>i([e.item]));return()=>h("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[u.value.map(c=>{var f,p;if(c.key==="data-table-group"){const m=r(e.item)?"$expand":"$next",g=()=>s(e.item);return((f=n["data-table-group"])==null?void 0:f.call(n,{item:e.item,count:d.value.length,props:{icon:m,onClick:g}}))??h(op,{class:"v-data-table-group-header-row__column"},{default:()=>[h(se,{size:"small",variant:"text",icon:m,onClick:g},null),h("span",null,[e.item.value]),h("span",null,[k("("),d.value.length,k(")")])]})}if(c.key==="data-table-select"){const m=o(d.value),g=a(d.value)&&!m,y=b=>l(d.value,b);return((p=n["data-table-select"])==null?void 0:p.call(n,{props:{modelValue:m,indeterminate:g,"onUpdate:modelValue":y}}))??h("td",null,[h(yu,{modelValue:m,indeterminate:g,"onUpdate:modelValue":y},null)])}return h("td",null,null)})])}}),LX=de({index:Number,item:Object,cellProps:[Object,Function],onClick:Bn(),onContextmenu:Bn(),onDblclick:Bn(),...tl()},"VDataTableRow"),$X=xe()({name:"VDataTableRow",props:LX(),setup(e,t){let{slots:n}=t;const{displayClasses:r,mobile:s}=hi(e,"v-data-table__tr"),{isSelected:i,toggleSelect:o,someSelected:a,allSelected:l,selectAll:u}=Sm(),{isExpanded:d,toggleExpand:c}=GO(),{toggleSort:f,sortBy:p,isSorted:m}=rM(),{columns:g}=_m();Ie(()=>h("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},r.value],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&g.value.map((y,b)=>{const _=e.item,S=`item.${y.key}`,T=`header.${y.key}`,E={index:e.index,item:_.raw,internalItem:_,value:Na(_.columns,y.key),column:y,isSelected:i,toggleSelect:o,isExpanded:d,toggleExpand:c},R={column:y,selectAll:u,isSorted:m,toggleSort:f,sortBy:p.value,someSelected:a.value,allSelected:l.value,getSortIcon:()=>""},P=typeof e.cellProps=="function"?e.cellProps({index:E.index,item:E.item,internalItem:E.internalItem,value:E.value,column:y}):e.cellProps,x=typeof y.cellProps=="function"?y.cellProps({index:E.index,item:E.item,internalItem:E.internalItem,value:E.value}):y.cellProps;return h(op,ve({align:y.align,class:{"v-data-table__td--expanded-row":y.key==="data-table-expand","v-data-table__td--select-row":y.key==="data-table-select"},fixed:y.fixed,fixedOffset:y.fixedOffset,lastFixed:y.lastFixed,maxWidth:s.value?void 0:y.maxWidth,noPadding:y.key==="data-table-select"||y.key==="data-table-expand",nowrap:y.nowrap,width:s.value?void 0:y.width},P,x),{default:()=>{var C,O,A,M,L;if(n[S]&&!s.value)return(C=n[S])==null?void 0:C.call(n,E);if(y.key==="data-table-select")return((O=n["item.data-table-select"])==null?void 0:O.call(n,E))??h(yu,{disabled:!_.selectable,modelValue:i([_]),onClick:$t(()=>o(_),["stop"])},null);if(y.key==="data-table-expand")return((A=n["item.data-table-expand"])==null?void 0:A.call(n,E))??h(se,{icon:d(_)?"$collapse":"$expand",size:"small",variant:"text",onClick:$t(()=>c(_),["stop"])},null);const w=ae(E.value);return s.value?h(Te,null,[h("div",{class:"v-data-table__td-title"},[((M=n[T])==null?void 0:M.call(n,R))??y.title]),h("div",{class:"v-data-table__td-value"},[((L=n[S])==null?void 0:L.call(n,E))??w])]):w}})})]))}}),cM=de({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function],...tl()},"VDataTableRows"),Bk=xe()({name:"VDataTableRows",inheritAttrs:!1,props:cM(),setup(e,t){let{attrs:n,slots:r}=t;const{columns:s}=_m(),{expandOnClick:i,toggleExpand:o,isExpanded:a}=GO(),{isSelected:l,toggleSelect:u}=Sm(),{toggleGroup:d,isGroupOpen:c}=YO(),{t:f}=Jr(),{mobile:p}=hi(e);return Ie(()=>{var m,g;return e.loading&&(!e.items.length||r.loading)?h("tr",{class:"v-data-table-rows-loading",key:"loading"},[h("td",{colspan:s.value.length},[((m=r.loading)==null?void 0:m.call(r))??f(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?h("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[h("td",{colspan:s.value.length},[((g=r["no-data"])==null?void 0:g.call(r))??f(e.noDataText)])]):h(Te,null,[e.items.map((y,b)=>{var T;if(y.type==="group"){const E={index:b,item:y,columns:s.value,isExpanded:a,toggleExpand:o,isSelected:l,toggleSelect:u,toggleGroup:d,isGroupOpen:c};return r["group-header"]?r["group-header"](E):h(DX,ve({key:`group-header_${y.id}`,item:y},N0(n,":group-header",()=>E)),r)}const _={index:b,item:y.raw,internalItem:y,columns:s.value,isExpanded:a,toggleExpand:o,isSelected:l,toggleSelect:u},S={..._,props:ve({key:`item_${y.key??y.index}`,onClick:i.value?()=>{o(y)}:void 0,index:b,item:y,cellProps:e.cellProps,mobile:p.value},N0(n,":row",()=>_),typeof e.rowProps=="function"?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return h(Te,{key:S.props.key},[r.item?r.item(S):h($X,S.props,r),a(y)&&((T=r["expanded-row"])==null?void 0:T.call(r,_))])})])}),{}}}),dM=de({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,...Ue(),...Dr(),...wt(),...Lt()},"VTable"),jy=xe()({name:"VTable",props:dM(),setup(e,t){let{slots:n,emit:r}=t;const{themeClasses:s}=Zt(e),{densityClasses:i}=gs(e);return Ie(()=>h(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!n.top,"v-table--has-bottom":!!n.bottom,"v-table--hover":e.hover},s.value,i.value,e.class],style:e.style},{default:()=>{var o,a,l;return[(o=n.top)==null?void 0:o.call(n),n.default?h("div",{class:"v-table__wrapper",style:{height:Be(e.height)}},[h("table",null,[n.default()])]):(a=n.wrapper)==null?void 0:a.call(n),(l=n.bottom)==null?void 0:l.call(n)]}})),{}}}),FX=de({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function NX(e,t,n,r){const s=e.returnObject?t:Jn(t,e.itemValue),i=Jn(t,e.itemSelectable,!0),o=r.reduce((a,l)=>(l.key!=null&&(a[l.key]=Jn(t,l.value)),a),{});return{type:"item",key:e.returnObject?Jn(t,e.itemValue):s,index:n,value:s,selectable:i,columns:o,raw:t}}function BX(e,t,n){return t.map((r,s)=>NX(e,r,s,n))}function VX(e,t){return{items:I(()=>BX(e,e.items,t.value))}}const UX=de({...cM(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...rX(),...iX(),...CX(),...FX(),...vX(),...bX(),...uM(),...dM()},"DataTable"),zX=de({...dX(),...UX(),...qY(),...sM()},"VDataTable"),HX=xe()({name:"VDataTable",props:zX(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,t){let{attrs:n,slots:r}=t;const{groupBy:s}=oX(e),{sortBy:i,multiSort:o,mustSort:a}=wX(e),{page:l,itemsPerPage:u}=fX(e),{disableSort:d}=Vo(e),{columns:c,headers:f,sortFunctions:p,sortRawFunctions:m,filterFunctions:g}=OX(e,{groupBy:s,showSelect:Re(e,"showSelect"),showExpand:Re(e,"showExpand")}),{items:y}=VX(e,c),b=Re(e,"search"),{filteredItems:_}=KY(e,y,b,{transform:J=>J.columns,customKeyFilter:g}),{toggleSort:S}=SX({sortBy:i,multiSort:o,mustSort:a,page:l}),{sortByWithGroups:T,opened:E,extractRows:R,isGroupOpen:P,toggleGroup:x}=aX({groupBy:s,sortBy:i,disableSort:d}),{sortedItems:w}=_X(e,_,T,{transform:J=>({...J.raw,...J.columns}),sortFunctions:p,sortRawFunctions:m}),{flatItems:C}=uX(w,s,E),O=I(()=>C.value.length),{startIndex:A,stopIndex:M,pageCount:L,setItemsPerPage:U}=hX({page:l,itemsPerPage:u,itemsLength:O}),{paginatedItems:B}=mX({items:C,startIndex:A,stopIndex:M,itemsPerPage:u}),q=I(()=>R(B.value)),{isSelected:G,select:V,selectAll:W,toggleSelect:Z,someSelected:j,allSelected:Y}=yX(e,{allItems:y,currentPage:q}),{isExpanded:pe,toggleExpand:le}=sX(e);cX({page:l,itemsPerPage:u,sortBy:i,groupBy:s,search:b}),Mr({VDataTableRows:{hideNoData:Re(e,"hideNoData"),noDataText:Re(e,"noDataText"),loading:Re(e,"loading"),loadingText:Re(e,"loadingText")}});const oe=I(()=>({page:l.value,itemsPerPage:u.value,sortBy:i.value,pageCount:L.value,toggleSort:S,setItemsPerPage:U,someSelected:j.value,allSelected:Y.value,isSelected:G,select:V,selectAll:W,toggleSelect:Z,isExpanded:pe,toggleExpand:le,isGroupOpen:P,toggleGroup:x,items:q.value.map(J=>J.raw),internalItems:q.value,groupedItems:B.value,columns:c.value,headers:f.value}));return Ie(()=>{const J=Fk.filterProps(e),be=Nk.filterProps(e),we=Bk.filterProps(e),ne=jy.filterProps(e);return h(jy,ve({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},ne),{top:()=>{var X;return(X=r.top)==null?void 0:X.call(r,oe.value)},default:()=>{var X,He,F,N,ee,re;return r.default?r.default(oe.value):h(Te,null,[(X=r.colgroup)==null?void 0:X.call(r,oe.value),!e.hideDefaultHeader&&h("thead",{key:"thead"},[h(Nk,be,r)]),(He=r.thead)==null?void 0:He.call(r,oe.value),!e.hideDefaultBody&&h("tbody",null,[(F=r["body.prepend"])==null?void 0:F.call(r,oe.value),r.body?r.body(oe.value):h(Bk,ve(n,we,{items:B.value}),r),(N=r["body.append"])==null?void 0:N.call(r,oe.value)]),(ee=r.tbody)==null?void 0:ee.call(r,oe.value),(re=r.tfoot)==null?void 0:re.call(r,oe.value)])},bottom:()=>r.bottom?r.bottom(oe.value):!e.hideDefaultFooter&&h(Te,null,[h(bn,null,null),h(Fk,J,{prepend:r["footer.prepend"]})])})}),{}}}),jX=de({...Ue(),...R6()},"VForm"),eS=xe()({name:"VForm",props:jX(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,t){let{slots:n,emit:r}=t;const s=I6(e),i=z();function o(l){l.preventDefault(),s.reset()}function a(l){const u=l,d=s.validate();u.then=d.then.bind(d),u.catch=d.catch.bind(d),u.finally=d.finally.bind(d),r("submit",u),u.defaultPrevented||d.then(c=>{var p;let{valid:f}=c;f&&((p=i.value)==null||p.submit())}),u.preventDefault()}return Ie(()=>{var l;return h("form",{ref:i,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:o,onSubmit:a},[(l=n.default)==null?void 0:l.call(n,s)])}),ji(s,i)}}),WX=de({disabled:Boolean,modelValue:{type:Boolean,default:null},...Lb()},"VHover"),Vk=xe()({name:"VHover",props:WX(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=it(e,"modelValue"),{runOpenDelay:s,runCloseDelay:i}=$b(e,o=>!e.disabled&&(r.value=o));return()=>{var o;return(o=n.default)==null?void 0:o.call(n,{isHovering:r.value,props:{onMouseenter:s,onMouseleave:i}})}}}),tS=Symbol.for("vuetify:v-stepper"),fM=de({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),qX=xe()({name:"VStepperActions",props:fM(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,t){let{emit:n,slots:r}=t;const{t:s}=Jr();function i(){n("click:prev")}function o(){n("click:next")}return Ie(()=>{const a={onClick:i},l={onClick:o};return h("div",{class:"v-stepper-actions"},[h(It,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:s(e.prevText),variant:"text"}}},{default:()=>{var u;return[((u=r.prev)==null?void 0:u.call(r,{props:a}))??h(se,a,null)]}}),h(It,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:s(e.nextText),variant:"tonal"}}},{default:()=>{var u;return[((u=r.next)==null?void 0:u.call(r,{props:l}))??h(se,l,null)]}})])}),{}}}),hM=Eu("v-stepper-header"),GX=de({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:String,default:"$complete"},editable:Boolean,editIcon:{type:String,default:"$edit"},error:Boolean,errorIcon:{type:String,default:"$error"},icon:String,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),KX=de({...GX(),...Lp()},"VStepperItem"),YX=xe()({name:"VStepperItem",directives:{Ripple:Ru},props:KX(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const r=$p(e,tS,!0),s=I(()=>(r==null?void 0:r.value.value)??e.value),i=I(()=>e.rules.every(f=>f()===!0)),o=I(()=>!e.disabled&&e.editable),a=I(()=>!e.disabled&&e.editable),l=I(()=>e.error||!i.value),u=I(()=>e.complete||e.rules.length>0&&i.value),d=I(()=>l.value?e.errorIcon:u.value?e.completeIcon:r.isSelected.value&&e.editable?e.editIcon:e.icon),c=I(()=>({canEdit:a.value,hasError:l.value,hasCompleted:u.value,title:e.title,subtitle:e.subtitle,step:s.value,value:e.value}));return Ie(()=>{var y,b,_;const f=(!r||r.isSelected.value||u.value||a.value)&&!l.value&&!e.disabled,p=!!(e.title!=null||n.title),m=!!(e.subtitle!=null||n.subtitle);function g(){r==null||r.toggle()}return Jt(h("button",{class:["v-stepper-item",{"v-stepper-item--complete":u.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":l.value},r==null?void 0:r.selectedClass.value],disabled:!e.editable,onClick:g},[o.value&&Ho(!0,"v-stepper-item"),h(lt,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:f?e.color:void 0,size:24},{default:()=>{var S;return[((S=n.icon)==null?void 0:S.call(n,c.value))??(d.value?h(K,{icon:d.value},null):s.value)]}}),h("div",{class:"v-stepper-item__content"},[p&&h("div",{key:"title",class:"v-stepper-item__title"},[((y=n.title)==null?void 0:y.call(n,c.value))??e.title]),m&&h("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((b=n.subtitle)==null?void 0:b.call(n,c.value))??e.subtitle]),(_=n.default)==null?void 0:_.call(n,c.value)])]),[[hr("ripple"),e.ripple&&e.editable,null]])}),{}}}),XX=de({...Os(jO(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),QX=xe()({name:"VStepperWindow",props:XX(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const r=Qe(tS,null),s=it(e,"modelValue"),i=I({get(){var o;return s.value!=null||!r?s.value:(o=r.items.value.find(a=>r.selected.value.includes(a.id)))==null?void 0:o.value},set(o){s.value=o}});return Ie(()=>{const o=Dk.filterProps(e);return h(Dk,ve({_as:"VStepperWindow"},o,{modelValue:i.value,"onUpdate:modelValue":a=>i.value=a,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),JX=de({...WO()},"VStepperWindowItem"),ZX=xe()({name:"VStepperWindowItem",props:JX(),setup(e,t){let{slots:n}=t;return Ie(()=>{const r=Lk.filterProps(e);return h(Lk,ve({_as:"VStepperWindowItem"},r,{class:["v-stepper-window-item",e.class],style:e.style}),n)}),{}}}),eQ=de({altLabels:Boolean,bgColor:String,completeIcon:String,editIcon:String,editable:Boolean,errorIcon:String,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,...tl()},"Stepper"),tQ=de({...eQ(),...Dp({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...OO(),...dP(fM(),["prevText","nextText"])},"VStepper"),nQ=xe()({name:"VStepper",props:tQ(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{items:r,next:s,prev:i,selected:o}=Pd(e,tS),{displayClasses:a,mobile:l}=hi(e),{completeIcon:u,editIcon:d,errorIcon:c,color:f,editable:p,prevText:m,nextText:g}=Vo(e),y=I(()=>e.items.map((S,T)=>{const E=Jn(S,e.itemTitle,S),R=Jn(S,e.itemValue,T+1);return{title:E,value:R,raw:S}})),b=I(()=>r.value.findIndex(S=>o.value.includes(S.id))),_=I(()=>e.disabled?e.disabled:b.value===0?"prev":b.value===r.value.length-1?"next":!1);return Mr({VStepperItem:{editable:p,errorIcon:c,completeIcon:u,editIcon:d,prevText:m,nextText:g},VStepperActions:{color:f,disabled:_,prevText:m,nextText:g}}),Ie(()=>{const S=sp.filterProps(e),T=!!(n.header||e.items.length),E=e.items.length>0,R=!e.hideActions&&!!(E||n.actions);return h(sp,ve(S,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":l.value},a.value,e.class],style:e.style}),{default:()=>{var P,x;return[T&&h(hM,{key:"stepper-header"},{default:()=>[y.value.map((w,C)=>{let{raw:O,...A}=w;return h(Te,null,[!!C&&h(bn,null,null),h(YX,A,{default:n[`header-item.${A.value}`]??n.header,icon:n.icon,title:n.title,subtitle:n.subtitle})])})]}),E&&h(QX,{key:"stepper-window"},{default:()=>[y.value.map(w=>h(ZX,{value:w.value},{default:()=>{var C,O;return((C=n[`item.${w.value}`])==null?void 0:C.call(n,w))??((O=n.item)==null?void 0:O.call(n,w))}}))]}),(P=n.default)==null?void 0:P.call(n,{prev:i,next:s}),R&&(((x=n.actions)==null?void 0:x.call(n,{next:s,prev:i}))??h(qX,{key:"stepper-actions","onClick:prev":i,"onClick:next":s},n))]}})}),{prev:i,next:s}}}),rQ={class:"mt-4 mb-4"},sQ={key:0},iQ={key:1},oQ={key:0},aQ={key:1},lQ=["colspan"],uQ=$e({__name:"PrintersView",setup(e){const t=Dt(),n=Nt(),r=z(!1),s=fr(),i=qi(),o=ku(),a=Xo(),l=z([]),u=z([]),d=z(""),c=z(""),f=z(),p=z(""),m=z([]),g=I(()=>a.hasFeature("printerGroupsApi")),y=I(()=>[{title:"Enabled",key:"enabled"},{title:"Printer Name",align:"start",sortable:!0,key:"name"},{title:"Floor",key:"floor",sortable:!1},...a.hasFeature("printerGroupsApi")?[{title:"Group(s)",key:"group",sortable:!0}]:[],{title:"Actions",key:"actions",sortable:!1},{title:"Socket Update",key:"socketupdate",sortable:!1},{title:"",key:"data-table-expand"}]);async function b(){if(r.value=!0,await a.loadFeatures(),a.hasFeature("printerGroupsApi")){const j=await gl.getGroupsWithPrinters();l.value=j}return r.value=!1,l}const _=Vw({queryKey:["printerGroups"],queryFn:b}),S=I(()=>{var Y;if(!a.hasFeature("printerGroupsApi")||!((Y=u.value)!=null&&Y.length))return n.printers;const j=u.value.flatMap(pe=>pe.printers.map(le=>le.printerId))||[];return n.printers.filter(pe=>j.includes(pe.id))}),T=I(()=>s.printerCurrentEventReceivedAtById),E=I(()=>{if(!(!f.value&&f.value!==0))return l.value[f.value]}),R=j=>j?(Date.now()-j)/1e3:void 0,P=j=>l.value.filter(Y=>Y.printers.find(pe=>pe.printerId===j)),x=j=>l.value.filter(Y=>!Y.printers.find(pe=>pe.printerId===j)),w=j=>i.floorOfPrinter(j),C=j=>{n.setUpdateDialogPrinter(j),o.openDialogWithContext(hn.AddOrUpdatePrinterDialog)},O=()=>{o.openDialogWithContext(hn.AddOrUpdatePrinterDialog)},A=(j,Y)=>{if(console.log(j,Y),Y.isExpanded){const pe=m.value.findIndex(le=>le===j.id);m.value.splice(pe,1)}else m.value.push(j.id.toString())},M=()=>{o.openDialogWithContext(hn.BatchJsonCreate)},L=()=>{Or(hn.YamlImportExport).openDialog()},U=async()=>{var j,Y;if(!((Y=(j=d.value)==null?void 0:j.trim())!=null&&Y.length))throw new Error("Please set a non-empty group name");await gl.createGroup(d.value.trim()),await _.refetch(),d.value="",t.info("Created group")},B=()=>{var j;E.value&&(c.value=(j=E.value)==null?void 0:j.name)},q=async j=>{var pe,le;if(!(j!=null&&j.id))throw new Error("Group id was not defined");if(!l.value.find(oe=>oe.id===j.id))throw new Error("Group was not found, please reload the page");if(!((le=(pe=c.value)==null?void 0:pe.trim())!=null&&le.length))throw new Error("Please set a non-empty group name");await gl.updateGroupName(j.id,c.value.trim()),await _.refetch()},G=async j=>{const Y=l.value.find(le=>le.id===j);if(!Y)throw new Error("Group was not found, please reload the page");const pe=Y.printers.length;pe>0&&!confirm(`This group contains ${pe} printers, are you sure to delete it?`)||(await gl.deleteGroup(j),await _.refetch(),t.info("Deleted group"))},V=async(j,Y)=>{await gl.addPrinterToGroup(j,Y),await _.refetch(),t.info("Added printer to group")},W=async(j,Y)=>{await gl.deletePrinterFromGroup(j,Y),await _.refetch(),t.info("Removed printer from group")},Z=async j=>{if(!j.id)throw new Error("Printer ID not set, cant toggle enabled");j.enabled=!j.enabled,await qt.toggleEnabled(j.id,j.enabled)};return(j,Y)=>{const pe=Er("v-list-item-group");return $(),Se("div",null,[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[Y[11]||(Y[11]=k(" Printers ")),h(zn),g.value&&l.value.length?($(),Q(qa,{key:0,modelValue:u.value,"onUpdate:modelValue":Y[0]||(Y[0]=le=>u.value=le),multiple:"",items:l.value,"item-title":"name","return-object":!0,placeholder:"Select group to filter by","prepend-icon":"filter_list",label:"Filter by groups"},null,8,["modelValue","items"])):me("",!0),h(mt,{modelValue:p.value,"onUpdate:modelValue":Y[1]||(Y[1]=le=>p.value=le),class:"p-2",clearable:"",label:"Printer search","prepend-icon":"search","single-line":""},null,8,["modelValue"])]),_:1}),h(ue(HX),{expanded:m.value,headers:y.value,items:S.value,search:p.value,"single-expand":"",class:"elevation-1","item-key":"id","show-expand":"","onClick:row":A},xC({"no-data":v(()=>[D("div",rQ,[S.value.length===0?($(),Se("h3",sQ," No printer has been created yet. Create one here: ")):($(),Se("h3",iQ," No printer has been found. Adjust your filters or search criteria. ")),h(HY)])]),top:v(()=>[h(nr,{flat:""},{default:v(()=>[h(gn,null,{default:v(()=>[k(" Showing "+ae(S.value.length||0)+" printers ",1)]),_:1}),h(se,{class:"ml-3",variant:"outlined",type:"button",onClick:Y[2]||(Y[2]=le=>M())},{default:v(()=>[h(K,null,{default:v(()=>Y[12]||(Y[12]=[k("publish")])),_:1}),Y[13]||(Y[13]=k(" Import OctoFarm Printers "))]),_:1}),h(se,{class:"ml-3",variant:"outlined",type:"button",onClick:Y[3]||(Y[3]=le=>O())},{default:v(()=>[h(K,null,{default:v(()=>Y[14]||(Y[14]=[k("add")])),_:1}),Y[15]||(Y[15]=k(" Create Printer "))]),_:1}),h(se,{class:"ml-3",color:"primary",type:"button",onClick:Y[4]||(Y[4]=le=>L())},{default:v(()=>[h(K,null,{default:v(()=>Y[16]||(Y[16]=[k("publish")])),_:1}),Y[17]||(Y[17]=k(" Import/Export YAML "))]),_:1}),h(zn)]),_:1})]),"item.enabled":v(({item:le})=>[h(ip,{modelValue:le.enabled,"onUpdate:modelValue":oe=>le.enabled=oe,color:"primary",dark:"",inset:"",onClickCapture:$t(oe=>Z(le),["stop"])},{default:v(()=>[k(ae(le.enabled),1)]),_:2},1032,["modelValue","onUpdate:modelValue","onClickCapture"])]),"item.name":v(({item:le})=>[h(sn,{color:"primary",dark:""},{default:v(()=>[k(ae(le.name||le.printerURL),1)]),_:2},1024)]),"item.floor":v(({item:le})=>[le.id?($(),Q(sn,{key:0,color:"primary"},{default:v(()=>{var oe;return[k(ae((oe=w(le.id))==null?void 0:oe.name),1)]}),_:2},1024)):me("",!0)]),"item.actions":v(({item:le})=>[h(LY,{printer:le},null,8,["printer"]),h(VY,{printer:le},null,8,["printer"]),h(UY,{printer:le},null,8,["printer"]),h(zY,{printer:le},null,8,["printer"]),h(jY,{printer:le},null,8,["printer"]),h(NY,{printer:le,"onUpdate:show":oe=>C(le)},null,8,["printer","onUpdate:show"])]),"item.socketupdate":v(({item:le})=>[T.value[le.id]?($(),Se("span",oQ," Updated "+ae(R(T.value[le.id]))+" seconds ago ",1)):($(),Se("span",aQ," No update received (silence) "))]),"expanded-row":v(({item:le,columns:oe})=>[D("td",{colspan:oe.length},[h(DY,{printer:le},null,8,["printer"])],8,lQ)]),_:2},[g.value?{name:"item.group",fn:v(({item:le})=>[($(!0),Se(Te,null,Gt(P(le.id),oe=>($(),Q(sn,{key:oe.id,closable:"",size:"small",class:"ml-2","onClick:close":J=>W(oe.id,le.id)},{default:v(()=>[k(ae(oe.name),1)]),_:2},1032,["onClick:close"]))),128)),h(Wd,{"offset-y":""},{activator:v(({props:oe})=>[h(sn,ve({disabled:!l.value.length,class:"ml-2",size:"small"},oe),{default:v(()=>[h(K,{size:"small"},{default:v(()=>Y[18]||(Y[18]=[k("add")])),_:1})]),_:2},1040,["disabled"])]),default:v(()=>[h(Yt,{density:"compact",style:{border:"1px solid dimgray"}},{default:v(()=>[h(ds,null,{default:v(()=>Y[19]||(Y[19]=[k(" ADD TO GROUP ")])),_:1}),h(pe,null,{default:v(()=>[($(!0),Se(Te,null,Gt(x(le.id),(oe,J)=>($(),Q(Fe,{key:J,onClick:be=>V(oe.id,le.id)},{default:v(()=>[h(ut,null,{default:v(()=>[k(ae(oe.name),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),key:"0"}:void 0]),1032,["expanded","headers","items","search"])]),_:1}),g.value?($(),Q(kt,{key:0,class:"mt-4"},{default:v(()=>[h(mn,null,{default:v(()=>Y[20]||(Y[20]=[k(" Printer Groups ")])),_:1}),h(cn,null,{default:v(()=>[Y[26]||(Y[26]=D("h3",null,"Existing groups:",-1)),h(Vn,null,{default:v(()=>[h(rd,{modelValue:f.value,"onUpdate:modelValue":[Y[5]||(Y[5]=le=>f.value=le),Y[6]||(Y[6]=le=>B())],"selected-class":"primary--text",column:""},{default:v(()=>[($(!0),Se(Te,null,Gt(l.value,le=>($(),Q(sn,{key:le.id,size:"small",closable:"",class:"mr-3","onClick:close":oe=>G(le.id)},{default:v(()=>[k(ae(le.name),1)]),_:2},1032,["onClick:close"]))),128))]),_:1},8,["modelValue"])]),_:1}),Y[27]||(Y[27]=D("h3",{class:"mt-3"},"Update group name",-1)),h(Vn,null,{default:v(()=>[E.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>Y[21]||(Y[21]=[k(" Select a group to update its name. ")])),_:1})),h(mt,{modelValue:c.value,"onUpdate:modelValue":Y[7]||(Y[7]=le=>c.value=le),disabled:!E.value,label:"Group Name",placeholder:"Type group name here"},{default:v(()=>Y[22]||(Y[22]=[k(" Name ")])),_:1},8,["modelValue","disabled"]),h(se,{onClick:Y[8]||(Y[8]=le=>q(E.value))},{default:v(()=>Y[23]||(Y[23]=[k(" Update name ")])),_:1})]),_:1}),Y[28]||(Y[28]=D("h3",{class:"mt-3"},"Add group",-1)),h(Vn,null,{default:v(()=>[h(mt,{modelValue:d.value,"onUpdate:modelValue":Y[9]||(Y[9]=le=>d.value=le),label:"Group Name",placeholder:"Type group name here"},{default:v(()=>Y[24]||(Y[24]=[k(" Name ")])),_:1},8,["modelValue"]),h(se,{onClick:Y[10]||(Y[10]=le=>U())},{default:v(()=>Y[25]||(Y[25]=[k(" Create new group ")])),_:1})]),_:1})]),_:1})]),_:1})):me("",!0)])}}}),cQ=$e({__name:"SettingsView",setup(e){const t=z([{title:"Grid",icon:"grid_on",path:"/settings/grid"},{title:"Floors",icon:"house_siding",path:"/settings/floors"},{title:"User Management",icon:"group",path:"/settings/user-management"},{title:"Account Settings",icon:"account_circle",path:"/settings/account"},{title:"Server Protection",icon:"security",path:"/settings/server-protection"},{title:"OctoPrint Settings",icon:"image",path:"/settings/octoprint"},{title:"Emergency Commands",icon:"warning",path:"/settings/emergency-commands"},{title:"Software Upgrade",icon:"upgrade",path:"/settings/software-upgrade"},{title:"Diagnostics",icon:"bug_report",path:"/settings/diagnostics"},{title:"Experimental",icon:"settings_applications",path:"/settings/experimental",divider:!1}]);return(n,r)=>{const s=Er("router-view");return $(),Q(rt,{"no-gutters":""},{default:v(()=>[D("div",null,[h(Rw,{permanent:!0},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,{class:"text-h6"},{default:v(()=>r[0]||(r[0]=[k(" Settings ")])),_:1}),h(yt,null,{default:v(()=>r[1]||(r[1]=[k(" Adjust your Fdm Monster ")])),_:1})]),_:1}),h(bn),h(Yt,{density:"compact",nav:""},{default:v(()=>[($(!0),Se(Te,null,Gt(ue(t),i=>($(),Q(Fe,{key:i.title,to:i.path,link:"","prepend-icon":i.icon,title:i.title,"router-link":""},null,8,["to","prepend-icon","title"]))),128))]),_:1})]),_:1})]),h(s,{class:"grow"})]),_:1})}}});function dQ(e){const t=new Date(e);return new Intl.DateTimeFormat("default",{dateStyle:"long"}).format(t)}const fQ={key:0,class:"text--primary float-end mr-5 mt-2"},hQ={class:"text-grey-darken-4"},pQ={key:0,class:"text-success"},mQ={key:1,class:"text-error"},gQ={key:0},vQ={key:0},yQ={key:0},bQ={key:1},wQ={key:0},SQ={key:1},_Q=$e({__name:"UserManagementSettings",setup(e){const t=Dt(),n=z(!1),r=z(),s=z([]),i=z([]);async function o(){n.value=!0;try{r.value=await Ks.getProfile(),i.value=await Ks.listRoles(),s.value=await Ks.listUsers()}catch(m){throw n.value=!1,console.error(m),m}return n.value=!1,{users:s,roles:i,profile:r}}const a=Vw({queryKey:["userRolesProfile"],queryFn:o});function l(m){return m.map(g=>{var y;return(y=i.value.find(b=>b.id==g))==null?void 0:y.name})}function u(m){var g;return m.id==((g=r.value)==null?void 0:g.id)}async function d(m){if(confirm(`Are you sure you want to delete ${m.username}?`)){try{n.value=!0,await Ks.deleteUser(m.id),await a.refetch()}catch(g){throw n.value=!1,console.error(g),g}n.value=!1,t.info(`User ${m.username} deleted`)}}async function c(m,g=!0){if(m.isRootUser){t.error("You are not allowed to do perform this action on an owner");return}if(confirm(`Are you sure you want to ${g?"verify":"unverify"} ${m.username}?`)){try{n.value=!0,await Ks.setUserVerified(m.id,g),await a.refetch()}catch(y){throw n.value=!1,console.error(y),y}n.value=!1,t.info(g?`User ${m.username} verified`:`User ${m.username} unverified`)}}async function f(m,g=!0){var y;if((y=r.value)!=null&&y.isRootUser||t.error("You are not allowed to do perform this action as you're not an owner"),!!confirm(`You are about to ${g?"set":"remove"} owner rights on ${m.username}. Are you sure?`)){try{n.value=!0,await Ks.setRootUser(m.id,g),await a.refetch()}catch(b){throw n.value=!1,console.error(b),b}n.value=!1,t.info(g?`User ${m.username} set to owner`:`User ${m.username} is no longer owner`)}}async function p(m){try{n.value=!0,console.log(m.roles),console.log(m.roles.map(g=>typeof g)),await Ks.setUserRoles(m.id,m.roles),await a.refetch(),t.info(`Roles updated for ${m.username}`)}catch(g){throw n.value=!1,console.error(g),t.error(`Failed to update roles for ${m.username}`),g}n.value=!1}return(m,g)=>{const y=Er("v-list-item-content");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>g[0]||(g[0]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>g[1]||(g[1]=[k(" Users ")])),_:1})]),_:1}),n.value?($(),Q(RO,{key:0,size:20,color:"#a70015",style:{margin:"250px",position:"absolute"}})):me("",!0),h(Yt,{lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>g[2]||(g[2]=[k(" Showing all users ")])),_:1}),($(!0),Se(Te,null,Gt(s.value,(b,_)=>($(),Q(Fe,{key:_,class:"pl-6",style:{"max-width":"800px","border-top":"1px solid grey","border-bottom":"1px solid grey"}},{default:v(()=>[h(y,{class:Qa(u(b)?"pl-6 grey darken-3":"pl-6 grey darken-4")},{default:v(()=>[h(ut,null,{default:v(()=>[k(" User '"+ae(b.username)+"' ",1),u(b)?($(),Se("strong",fQ," Your account ")):me("",!0)]),_:2},1024),h(yt),D("span",hQ,[D("ul",null,[D("li",null,[b.isVerified?($(),Se("span",pQ," Account verified ")):($(),Se("span",mQ," Account not verified "))]),D("li",null,"Created at "+ae(ue(dQ)(b.createdAt)),1),b.isDemoUser?($(),Se("li",gQ,"Demo user account")):me("",!0),D("li",null,[g[4]||(g[4]=k(" Role(s) ")),D("ul",null,[b.isRootUser?($(),Se("li",vQ,[h(sn,{class:"mb-2 mt-2",size:"small"},{default:v(()=>g[3]||(g[3]=[k(" OWNER ")])),_:1})])):me("",!0),($(!0),Se(Te,null,Gt(l(b.roles),S=>($(),Se("li",{key:S},[h(sn,{class:"mb-2 mt-2",size:"small"},{default:v(()=>[k(ae(S),1)]),_:2},1024)]))),128))])])])])]),_:2},1032,["class"]),h(id,null,{default:v(()=>{var S,T;return[h(se,{disabled:u(b)||b.isRootUser,color:b.isVerified?"error darken-4":"success",onClick:E=>c(b,!b.isVerified)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[5]||(g[5]=[k("shield")])),_:1}),b.isVerified?me("",!0):($(),Se("span",yQ," Verify account ")),b.isVerified?($(),Se("span",bQ," Un-verify account ")):me("",!0)]),_:2},1032,["disabled","color","onClick"]),h(se,{color:b.isRootUser?"error darken-4":"success",disabled:u(b)||!((S=r.value)!=null&&S.isRootUser),class:"mt-2",onClick:E=>f(b,!b.isRootUser)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[6]||(g[6]=[k("key")])),_:1}),b.isRootUser?($(),Se("span",wQ," Remove owner ")):me("",!0),b.isRootUser?me("",!0):($(),Se("span",SQ," Set owner "))]),_:2},1032,["color","disabled","onClick"]),(T=r.value)!=null&&T.isRootUser?($(),Q(qa,{key:0,items:i.value.map(E=>({text:E.name,value:E.id})),modelValue:b.roles,"onUpdate:modelValue":E=>b.roles=E,multiple:"",label:"Select roles",onChange:E=>p(b),class:"pt-6",style:{width:"15rem"}},null,8,["items","modelValue","onUpdate:modelValue","onChange"])):me("",!0),h(se,{disabled:u(b)||b.isRootUser,class:"mt-2",color:"error-darken-2",onClick:E=>d(b)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[7]||(g[7]=[k("delete")])),_:1}),g[8]||(g[8]=k(" Delete "))]),_:2},1032,["disabled","onClick"])]}),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})}}}),kQ=$e({name:"FdmSettings",props:{},setup:()=>({settingsStore:Fs(),printersStore:Nt(),snackbar:Dt(),printerStateStore:fr()}),data:()=>({fileHandlingSettings:{autoRemoveOldFilesBeforeUpload:!1,autoRemoveOldFilesAtBoot:!1,autoRemoveOldFilesCriteriumDays:7}}),computed:{},watch:{},async created(){const e=await In.getSettings();this.fileHandlingSettings=e.printerFileClean},mounted(){},methods:{async updateTimeoutSettings(){var e,t,n;if(!((t=(e=this.settingsStore.settings)==null?void 0:e.timeout)!=null&&t.apiTimeout)){this.snackbar.error("Timeout not set");return}this.settingsStore.settings.timeout.apiTimeout<1e3?this.snackbar.error("Timeout is too low - please set it to at least 1000 milliseconds"):(await this.settingsStore.updateTimeoutSettings((n=this.settingsStore.settings)==null?void 0:n.timeout),this.snackbar.info("Timeout settings updated"))},async setFileCleanSettings(){const e=await In.setFileCleanSettings(this.fileHandlingSettings);this.fileHandlingSettings=e.printerFileClean},async purgeFiles(){await To.purgeFiles(),this.snackbar.openInfoMessage({title:"Successfully purged all references to printer files!"})},async bulkDisableGCodeAnalysis(){const e=this.printerStateStore.onlinePrinters;this.snackbar.openInfoMessage({title:`Trying to disable gcode analysis for ${e.length} online printers.`});for(const t of Object.values(e))await VO.setGCodeAnalysis(t.id,!1);this.snackbar.openInfoMessage({title:`Finished disabling gcode analysis for ${e.length} online printers.`})}}});function xQ(e,t,n,r,s,i){return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[8]||(t[8]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[9]||(t[9]=[k(" OctoPrint Settings ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[10]||(t[10]=[k(" Pre-upload file cleanup ")])),_:1}),h(yt,null,{default:v(()=>[t[12]||(t[12]=k(" Automatically cleanup old files to ensure the SD card has enough space. ")),t[13]||(t[13]=D("br",null,null,-1)),h(Pn,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload,"onUpdate:modelValue":t[0]||(t[0]=o=>e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload=o),label:"Remove old file before upload"},null,8,["modelValue"]),h(mt,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesCriteriumDays,"onUpdate:modelValue":t[1]||(t[1]=o=>e.fileHandlingSettings.autoRemoveOldFilesCriteriumDays=o),disabled:!e.fileHandlingSettings.autoRemoveOldFilesBeforeUpload,label:"Amount of days to keep files",min:"0",variant:"outlined",type:"number"},null,8,["modelValue","disabled"]),h(Pn,{modelValue:e.fileHandlingSettings.autoRemoveOldFilesAtBoot,"onUpdate:modelValue":t[2]||(t[2]=o=>e.fileHandlingSettings.autoRemoveOldFilesAtBoot=o),label:"Remove old files when (re)booting the server"},null,8,["modelValue"]),h(se,{color:"primary",onClick:t[3]||(t[3]=o=>e.setFileCleanSettings())},{default:v(()=>t[11]||(t[11]=[k(" save file clean settings ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>{var o;return[h(ut,null,{default:v(()=>t[14]||(t[14]=[k(" Connection Timeout ")])),_:1}),(o=e.settingsStore.settings)!=null&&o.timeout?($(),Q(yt,{key:0},{default:v(()=>[t[16]||(t[16]=k(" The connection timeout is the amount of time in milliseconds that the server will wait for OctoPrint to respond before giving up ")),h(mt,{modelValue:e.settingsStore.settings.timeout.apiTimeout,"onUpdate:modelValue":t[4]||(t[4]=a=>e.settingsStore.settings.timeout.apiTimeout=a),label:"Connection Timeout",min:"0",variant:"outlined",type:"number"},null,8,["modelValue"]),h(se,{color:"primary",onClick:t[5]||(t[5]=a=>e.updateTimeoutSettings())},{default:v(()=>t[15]||(t[15]=[k(" save connection timeout ")])),_:1})]),_:1})):me("",!0)]}),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[17]||(t[17]=[k(" Clean file references ")])),_:1}),h(yt,null,{default:v(()=>[t[19]||(t[19]=k(" Clear out the file references for all printers - this does not remove them from OctoPrint! ")),t[20]||(t[20]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[6]||(t[6]=o=>e.purgeFiles())},{default:v(()=>t[18]||(t[18]=[k(" Purge file references ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[21]||(t[21]=[k(" Disable inefficient GCode analysis ")])),_:1}),h(yt,null,{default:v(()=>[t[23]||(t[23]=k(" Disable GCode analysis on all printers at once, preventing CPU intensive and inaccurate time/size estimates. ")),t[24]||(t[24]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[7]||(t[7]=o=>e.bulkDisableGCodeAnalysis())},{default:v(()=>t[22]||(t[22]=[k(" Bulk disable GCode Analysis ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const EQ=Jo(kQ,[["render",xQ]]),CQ=$e({name:"FloorSettings",props:{},setup:()=>({printersStore:Nt(),floorStore:qi(),dialogsStore:ku(),snackbar:Dt()}),data:()=>({selectedItem:0,editedFloorName:"",editedFloorNumber:0}),computed:{floors(){return this.floorStore.floors},selectedFloor(){return this.floorStore.floors[this.selectedItem]},showAddedPrinters(){var e;return((e=this.selectedFloor.printers)==null?void 0:e.length)+1},unassignedPrinters(){return this.floorStore.floorlessPrinters}},watch:{},created(){},mounted(){},methods:{printerInFloor(e,t){if(!(e!=null&&e.printers))return;const n=e.printers[t-1];if(n)return this.printersStore.printer(n.printerId)},async createFloor(){this.dialogsStore.openDialogWithContext(hn.AddOrUpdateFloorDialog)},setEditedPrinterFloorName(){this.editedFloorName=this.selectedFloor.name},setEditedPrinterFloorNumber(){this.editedFloorNumber=this.selectedFloor.floor},async updatePrinterFloorName(){var t;if(!((t=this.selectedFloor)!=null&&t.id))return;const{id:e}=this.selectedFloor;await this.floorStore.updateFloorName({floorId:e,name:this.editedFloorName}),this.snackbar.info("Floor name updated")},async updatePrinterFloorNumber(){var t;if(!((t=this.selectedFloor)!=null&&t.id))return;const{id:e}=this.selectedFloor;await this.floorStore.updateFloorNumber({floorId:e,floorNumber:this.editedFloorNumber}),this.snackbar.info("Floor level updated"),this.selectedItem=-1},async clickDeleteFloor(){var e;(e=this.selectedFloor)!=null&&e.id&&(await this.floorStore.deleteFloor(this.selectedFloor.id),this.snackbar.info("Floor deleted"))},async deletePrinterFromFloor(e,t){const n=this.printerInFloor(e,t);!(e!=null&&e.id)||!(n!=null&&n.id)||(await this.floorStore.deletePrinterFromFloor({floorId:e.id,printerId:n.id}),this.snackbar.info("Printer removed from floor"))}}}),PQ={key:1};function TQ(e,t,n,r,s,i){const o=Er("v-list-item-action-text"),a=Er("v-list-item-group"),l=Er("v-edit-dialog"),u=Er("v-list-item-content");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[7]||(t[7]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[8]||(t[8]=[k(" Floor Management ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[9]||(t[9]=[k(" Floors ")])),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>t[10]||(t[10]=[k(" Create new floor ")])),_:1}),h(yt,null,{default:v(()=>[t[12]||(t[12]=k(" Creates an empty department/floor to view printer groups ")),t[13]||(t[13]=D("br",null,null,-1)),h(se,{color:"primary",onClick:t[0]||(t[0]=d=>e.createFloor())},{default:v(()=>t[11]||(t[11]=[k(" Create floor ")])),_:1})]),_:1})]),_:1})]),_:1}),h(bn),h(rt,{"no-gutters":""},{default:v(()=>[h(Ne,null,{default:v(()=>[h(Yt,{density:"compact"},{default:v(()=>[h(a,{modelValue:e.selectedItem,"onUpdate:modelValue":t[1]||(t[1]=d=>e.selectedItem=d)},{default:v(()=>[($(!0),Se(Te,null,Gt(e.floors,d=>($(),Q(Fe,{key:d.id},{default:v(()=>[h(ut,null,{default:v(()=>[k(ae(d.name),1)]),_:2},1024),h(yt,null,{default:v(()=>[k(ae(d.printers.length||0)+" assigned ",1)]),_:2},1024),h(o,null,{default:v(()=>[k(" Floor number: "+ae(d.floor),1)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),h(Ne,null,{default:v(()=>[h(nr,null,{default:v(()=>[h(Vk,null,{default:v(({isHovering:d,props:c})=>[h(gn,Xg(kh(c)),{default:v(()=>[e.selectedFloor?($(),Q(l,{key:0,onOpen:e.setEditedPrinterFloorName,onSave:e.updatePrinterFloorName},{input:v(()=>[h(mt,{modelValue:e.editedFloorName,"onUpdate:modelValue":t[2]||(t[2]=f=>e.editedFloorName=f),"return-value":e.editedFloorName,"onUpdate:returnValue":t[3]||(t[3]=f=>e.editedFloorName=f),counter:"",label:"Edit","single-line":""},null,8,["modelValue","return-value"])]),default:v(()=>[h(se,{color:"secondary"},{default:v(()=>[d?($(),Q(K,{key:0,size:"small"},{default:v(()=>t[14]||(t[14]=[k(" edit ")])),_:1})):me("",!0),k(" "+ae(e.selectedFloor.name),1)]),_:2},1024)]),_:2},1032,["onOpen","onSave"])):($(),Se("span",PQ," Select a floor on the left "))]),_:2},1040)]),_:1}),h(Vk,null,{default:v(({isHovering:d,props:c})=>[h(gn,Xg(kh(c)),{default:v(()=>[e.selectedFloor?($(),Q(l,{key:0,onOpen:e.setEditedPrinterFloorNumber,onSave:e.updatePrinterFloorNumber},{input:v(()=>[h(mt,{modelValue:e.editedFloorNumber,"onUpdate:modelValue":t[4]||(t[4]=f=>e.editedFloorNumber=f),"return-value":e.editedFloorNumber,"onUpdate:returnValue":t[5]||(t[5]=f=>e.editedFloorNumber=f),label:"Edit","single-line":"",type:"number"},null,8,["modelValue","return-value"])]),default:v(()=>[h(se,{color:"secondary"},{default:v(()=>[d?($(),Q(K,{key:0,size:"small"},{default:v(()=>t[15]||(t[15]=[k(" edit ")])),_:1})):me("",!0),k(" "+ae(e.selectedFloor.floor),1)]),_:2},1024)]),_:2},1032,["onOpen","onSave"])):me("",!0)]),_:2},1040)]),_:1}),h(zn),e.selectedFloor?($(),Q(se,{key:0,color:"primary",onClick:t[6]||(t[6]=d=>e.clickDeleteFloor())},{default:v(()=>[h(K,null,{default:v(()=>t[16]||(t[16]=[k("delete")])),_:1}),t[17]||(t[17]=k(" Delete floor "))]),_:1})):me("",!0)]),_:1}),e.selectedFloor?($(),Q(Yt,{key:0},{default:v(()=>[($(!0),Se(Te,null,Gt(e.showAddedPrinters,d=>($(),Q(Fe,{key:d},{default:v(()=>[e.printerInFloor(e.selectedFloor,d)?($(),Q(u,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>{var c;return[k(ae((c=e.printerInFloor(e.selectedFloor,d))==null?void 0:c.name),1)]}),_:2},1024)]),_:2},1024)):me("",!0),e.printerInFloor(e.selectedFloor,d)?($(),Q(id,{key:1},{default:v(()=>[h(se,{onClick:c=>e.deletePrinterFromFloor(e.selectedFloor,d)},{default:v(()=>[h(K,null,{default:v(()=>t[18]||(t[18]=[k("close")])),_:1}),t[19]||(t[19]=k(" Clear "))]),_:2},1032,["onClick"])]),_:2},1024)):me("",!0)]),_:2},1024))),128))]),_:1})):me("",!0)]),_:1})]),_:1})]),_:1})}const RQ=Jo(CQ,[["render",TQ]]),IQ="/img/DavidZwart.jpg",pM="0.0.7",AQ={key:0},OQ={key:1},MQ=$e({__name:"AboutView",setup(e){const t=z(""),n=z(""),r=z(pM);return bt(async()=>{const s=await bo.getVersion();t.value=s.version,n.value=s.monsterPi}),(s,i)=>($(),Q(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>i[0]||(i[0]=[k(" About FDM Monster"),D("strong",null," © ",-1)])),_:1}),h(cn,null,{default:v(()=>i[1]||(i[1]=[k(" The first prototype of FDM Monster"),D("strong",null," © ",-1),k(" was created by David Zwart in 2021 in collaboration with "),D("strong",null,[D("a",{href:"https://mtb3d.com"}," MTB3D ")],-1),k(". This open-source prototype proved a strong factor in process and logistics optimization for a 3D Printing company with 100+ printers. Due to it's success, we decided to keep it open-source and free! ")])),_:1}),h(cn,null,{default:v(()=>[i[4]||(i[4]=k(" The latest 3D Printing Farm server named FDM Monster has been tested for 2 years using a custom image for running 4 OctoPrint images on a Raspberry Pi. ")),i[5]||(i[5]=D("br",null,null,-1)),i[6]||(i[6]=k(" This version uses the famous ")),i[7]||(i[7]=D("a",{href:"https://nodejs.org/en",target:"_blank"},[D("strong",null," Node.js framework ")],-1)),i[8]||(i[8]=k(" together with Awilix and ExpressJS for its server, and ")),i[9]||(i[9]=D("a",{href:"https://vuejs.org/",target:"_blank"},[D("strong",null," Vue 2 ")],-1)),i[10]||(i[10]=k(" and ")),i[11]||(i[11]=D("a",{href:"https://next.vuetifyjs.com/",target:"_blank"},[D("strong",null," Vuetify 2 ")],-1)),i[12]||(i[12]=k(" to set a base for FDM Monster Client")),i[13]||(i[13]=D("strong",null," © ",-1)),i[14]||(i[14]=k(" - the webapp. ")),i[15]||(i[15]=D("br",null,null,-1)),i[16]||(i[16]=D("br",null,null,-1)),D("strong",null," Your server's version is: "+ae(t.value),1),i[17]||(i[17]=D("br",null,null,-1)),D("strong",null," Your clients's version is: "+ae(r.value),1),i[18]||(i[18]=D("br",null,null,-1)),n.value?($(),Se("strong",AQ,[k(" Your MonsterPi version is: "+ae(n.value),1),i[2]||(i[2]=D("br",null,null,-1))])):($(),Se("strong",OQ," No MonsterPi distro detected. ")),i[19]||(i[19]=D("br",null,null,-1)),h(se,{class:"mt-3",variant:"outlined",to:"/settings/software-upgrade"},{default:v(()=>i[3]||(i[3]=[k(" Visit Upgrade Settings ")])),_:1})]),_:1}),h(mn,null,{default:v(()=>i[20]||(i[20]=[k(" Documentation ")])),_:1}),h(cn,null,{default:v(()=>[D("strong",null,[h(se,{color:"primary",href:"https://docs.fdm-monster.net",style:{color:"white"},target:"_blank"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>i[21]||(i[21]=[k("menu_book")])),_:1}),i[22]||(i[22]=k(" FDM Monster documentation site "))]),_:1})]),i[23]||(i[23]=D("br",null,null,-1))]),_:1}),h(mn,null,{default:v(()=>[i[25]||(i[25]=k(" Bug reports ")),h(K,null,{default:v(()=>i[24]||(i[24]=[k("bug")])),_:1})]),_:1}),h(cn,null,{default:v(()=>i[26]||(i[26]=[k(" Did you find a bug, or a feature that needs work? We would love to hear about it! "),D("br",null,null,-1),D("strong",null," We have multiple ways to report it: ",-1),D("h3",null,[D("ul",{class:"ml-5"},[D("li",null,"Mail to davidzwa@gmail.com"),D("li",null,[D("a",{href:"https://discord.gg/mwA8uP8CMc",style:{color:"white"},target:"_blank"}," Discord server ")]),D("li",null,[D("strong",null,[D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues",style:{color:"white"},target:"_blank"},[k(" FDM Monster "),D("strong",null," © "),k(" Github Issues ")])])]),D("li",null,[D("a",{href:"https://fdm-monster.net",style:{color:"white"},target:"_blank"}," Website ")])])],-1)])),_:1}),h(mn,null,{default:v(()=>i[27]||(i[27]=[k(" About me ")])),_:1}),h(cn,null,{default:v(()=>i[28]||(i[28]=[D("img",{src:IQ,width:"150px"},null,-1),D("h4",{class:"mt-2"},[D("a",{href:"https://www.linkedin.com/in/david-zwart-88514083/",style:{color:"white"},target:"_blank"}," LinkedIn "),D("a",{class:"ml-2",href:"https://github.com/davidzwa",style:{color:"white"},target:"_blank"}," Github Profile ")],-1),k(" David Zwart MSc., post-graduate from the TU Delft (Embedded Systems), author of FDM Monster"),D("strong",null," © ",-1)])),_:1})]),_:1}))}});/*!
|
|
68
68
|
* @kurkle/color v0.3.2
|
|
69
69
|
* https://github.com/kurkle/color#readme
|
|
70
70
|
* (c) 2023 Jukka Kurkela
|
|
@@ -81,10 +81,10 @@ ${t.map((s,i)=>`${(i===0?"---> ":z8(" ",5+i*2))+(Array.isArray(s)?`${Rc(s[0])}..
|
|
|
81
81
|
* Released under the MIT License
|
|
82
82
|
*/class rZ{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,n,r,s){const i=n.listeners[s],o=n.duration;i.forEach(a=>a({chart:t,initial:n.initial,numSteps:o,currentStep:Math.min(r-n.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=_M.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let n=0;this._charts.forEach((r,s)=>{if(!r.running||!r.items.length)return;const i=r.items;let o=i.length-1,a=!1,l;for(;o>=0;--o)l=i[o],l._active?(l._total>r.duration&&(r.duration=l._total),l.tick(t),a=!0):(i[o]=i[i.length-1],i.pop());a&&(s.draw(),this._notify(s,r,t,"progress")),i.length||(r.running=!1,this._notify(s,r,t,"complete"),r.initial=!1),n+=i.length}),this._lastDate=t,n===0&&(this._running=!1)}_getAnims(t){const n=this._charts;let r=n.get(t);return r||(r={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(t,r)),r}listen(t,n,r){this._getAnims(t).listeners[n].push(r)}add(t,n){!n||!n.length||this._getAnims(t).items.push(...n)}has(t){return this._getAnims(t).items.length>0}start(t){const n=this._charts.get(t);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((r,s)=>Math.max(r,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const n=this._charts.get(t);return!(!n||!n.running||!n.items.length)}stop(t){const n=this._charts.get(t);if(!n||!n.items.length)return;const r=n.items;let s=r.length-1;for(;s>=0;--s)r[s].cancel();n.items=[],this._notify(t,n,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var _i=new rZ;const ax="transparent",sZ={boolean(e,t,n){return n>.5?t:e},color(e,t,n){const r=Zk(e||ax),s=r.valid&&Zk(t||ax);return s&&s.valid?s.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}};class iZ{constructor(t,n,r,s){const i=n[r];s=Rf([t.to,s,i,t.from]);const o=Rf([t.from,i,s]);this._active=!0,this._fn=t.fn||sZ[t.type||typeof o],this._easing=Mc[t.easing]||Mc.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=n,this._prop=r,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,n,r){if(this._active){this._notify(!1);const s=this._target[this._prop],i=r-this._start,o=this._duration-i;this._start=r,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=i,this._loop=!!t.loop,this._to=Rf([t.to,n,s,t.from]),this._from=Rf([t.from,s,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const n=t-this._start,r=this._duration,s=this._prop,i=this._from,o=this._loop,a=this._to;let l;if(this._active=i!==a&&(o||n<r),!this._active){this._target[s]=a,this._notify(!0);return}if(n<0){this._target[s]=i;return}l=n/r%2,l=o&&l>1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[s]=this._fn(i,a,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((n,r)=>{t.push({res:n,rej:r})})}_notify(t){const n=t?"res":"rej",r=this._promises||[];for(let s=0;s<r.length;s++)r[s][n]()}}class LM{constructor(t,n){this._chart=t,this._properties=new Map,this.configure(n)}configure(t){if(!St(t))return;const n=Object.keys(dn.animation),r=this._properties;Object.getOwnPropertyNames(t).forEach(s=>{const i=t[s];if(!St(i))return;const o={};for(const a of n)o[a]=i[a];(on(i.properties)&&i.properties||[s]).forEach(a=>{(a===s||!r.has(a))&&r.set(a,o)})})}_animateOptions(t,n){const r=n.options,s=aZ(t,r);if(!s)return[];const i=this._createAnimations(s,r);return r.$shared&&oZ(t.options.$animations,r).then(()=>{t.options=r},()=>{}),i}_createAnimations(t,n){const r=this._properties,s=[],i=t.$animations||(t.$animations={}),o=Object.keys(n),a=Date.now();let l;for(l=o.length-1;l>=0;--l){const u=o[l];if(u.charAt(0)==="$")continue;if(u==="options"){s.push(...this._animateOptions(t,n));continue}const d=n[u];let c=i[u];const f=r.get(u);if(c)if(f&&c.active()){c.update(f,d,a);continue}else c.cancel();if(!f||!f.duration){t[u]=d;continue}i[u]=c=new iZ(f,t,u,d),s.push(c)}return s}update(t,n){if(this._properties.size===0){Object.assign(t,n);return}const r=this._createAnimations(t,n);if(r.length)return _i.add(this._chart,r),!0}}function oZ(e,t){const n=[],r=Object.keys(t);for(let s=0;s<r.length;s++){const i=e[r[s]];i&&i.active()&&n.push(i.wait())}return Promise.all(n)}function aZ(e,t){if(!t)return;let n=e.options;if(!n){e.options=t;return}return n.$shared&&(e.options=n=Object.assign({},n,{$shared:!1,$animations:{}})),n}function lx(e,t){const n=e&&e.options||{},r=n.reverse,s=n.min===void 0?t:0,i=n.max===void 0?t:0;return{start:r?i:s,end:r?s:i}}function lZ(e,t,n){if(n===!1)return!1;const r=lx(e,n),s=lx(t,n);return{top:s.end,right:r.end,bottom:s.start,left:r.start}}function uZ(e){let t,n,r,s;return St(e)?(t=e.top,n=e.right,r=e.bottom,s=e.left):t=n=r=s=e,{top:t,right:n,bottom:r,left:s,disabled:e===!1}}function $M(e,t){const n=[],r=e._getSortedDatasetMetas(t);let s,i;for(s=0,i=r.length;s<i;++s)n.push(r[s].index);return n}function ux(e,t,n,r={}){const s=e.keys,i=r.mode==="single";let o,a,l,u;if(t===null)return;let d=!1;for(o=0,a=s.length;o<a;++o){if(l=+s[o],l===n){if(d=!0,r.all)continue;break}u=e.values[l],On(u)&&(i||t===0||Ao(t)===Ao(u))&&(t+=u)}return!d&&!r.all?0:t}function cZ(e,t){const{iScale:n,vScale:r}=t,s=n.axis==="x"?"x":"y",i=r.axis==="x"?"x":"y",o=Object.keys(e),a=new Array(o.length);let l,u,d;for(l=0,u=o.length;l<u;++l)d=o[l],a[l]={[s]:d,[i]:e[d]};return a}function Og(e,t){const n=e&&e.options.stacked;return n||n===void 0&&t.stack!==void 0}function dZ(e,t,n){return`${e.id}.${t.id}.${n.stack||n.type}`}function fZ(e){const{min:t,max:n,minDefined:r,maxDefined:s}=e.getUserBounds();return{min:r?t:Number.NEGATIVE_INFINITY,max:s?n:Number.POSITIVE_INFINITY}}function hZ(e,t,n){const r=e[t]||(e[t]={});return r[n]||(r[n]={})}function cx(e,t,n,r){for(const s of t.getMatchingVisibleMetas(r).reverse()){const i=e[s.index];if(n&&i>0||!n&&i<0)return s.index}return null}function dx(e,t){const{chart:n,_cachedMeta:r}=e,s=n._stacks||(n._stacks={}),{iScale:i,vScale:o,index:a}=r,l=i.axis,u=o.axis,d=dZ(i,o,r),c=t.length;let f;for(let p=0;p<c;++p){const m=t[p],{[l]:g,[u]:y}=m,b=m._stacks||(m._stacks={});f=b[u]=hZ(s,d,g),f[a]=y,f._top=cx(f,o,!0,r.type),f._bottom=cx(f,o,!1,r.type);const _=f._visualValues||(f._visualValues={});_[a]=y}}function Mg(e,t){const n=e.scales;return Object.keys(n).filter(r=>n[r].axis===t).shift()}function pZ(e,t){return al(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function mZ(e,t,n){return al(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:"default",type:"data"})}function nc(e,t){const n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t=t||e._parsed;for(const s of t){const i=s._stacks;if(!i||i[r]===void 0||i[r][n]===void 0)return;delete i[r][n],i[r]._visualValues!==void 0&&i[r]._visualValues[n]!==void 0&&delete i[r]._visualValues[n]}}}const Dg=e=>e==="reset"||e==="none",fx=(e,t)=>t?e:Object.assign({},e),gZ=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:$M(n,!0),values:null};class Lc{constructor(t,n){this.chart=t,this._ctx=t.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Og(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&nc(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,n=this._cachedMeta,r=this.getDataset(),s=(c,f,p,m)=>c==="x"?f:c==="r"?m:p,i=n.xAxisID=Et(r.xAxisID,Mg(t,"x")),o=n.yAxisID=Et(r.yAxisID,Mg(t,"y")),a=n.rAxisID=Et(r.rAxisID,Mg(t,"r")),l=n.indexAxis,u=n.iAxisID=s(l,i,o,a),d=n.vAxisID=s(l,o,i,a);n.xScale=this.getScaleForId(i),n.yScale=this.getScaleForId(o),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(u),n.vScale=this.getScaleForId(d)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const n=this._cachedMeta;return t===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&Xk(this._data,this),t._stacked&&nc(t)}_dataCheck(){const t=this.getDataset(),n=t.data||(t.data=[]),r=this._data;if(St(n)){const s=this._cachedMeta;this._data=cZ(n,s)}else if(r!==n){if(r){Xk(r,this);const s=this._cachedMeta;nc(s),s._parsed=[]}n&&Object.isExtensible(n)&&yJ(n,this),this._syncList=[],this._data=n}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const n=this._cachedMeta,r=this.getDataset();let s=!1;this._dataCheck();const i=n._stacked;n._stacked=Og(n.vScale,n),n.stack!==r.stack&&(s=!0,nc(n),n.stack=r.stack),this._resyncElements(t),(s||i!==n._stacked)&&(dx(this,n._parsed),n._stacked=Og(n.vScale,n))}configure(){const t=this.chart.config,n=t.datasetScopeKeys(this._type),r=t.getOptionScopes(this.getDataset(),n,!0);this.options=t.createResolver(r,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,n){const{_cachedMeta:r,_data:s}=this,{iScale:i,_stacked:o}=r,a=i.axis;let l=t===0&&n===s.length?!0:r._sorted,u=t>0&&r._parsed[t-1],d,c,f;if(this._parsing===!1)r._parsed=s,r._sorted=!0,f=s;else{on(s[t])?f=this.parseArrayData(r,s,t,n):St(s[t])?f=this.parseObjectData(r,s,t,n):f=this.parsePrimitiveData(r,s,t,n);const p=()=>c[a]===null||u&&c[a]<u[a];for(d=0;d<n;++d)r._parsed[d+t]=c=f[d],l&&(p()&&(l=!1),u=c);r._sorted=l}o&&dx(this,f)}parsePrimitiveData(t,n,r,s){const{iScale:i,vScale:o}=t,a=i.axis,l=o.axis,u=i.getLabels(),d=i===o,c=new Array(s);let f,p,m;for(f=0,p=s;f<p;++f)m=f+r,c[f]={[a]:d||i.parse(u[m],m),[l]:o.parse(n[m],m)};return c}parseArrayData(t,n,r,s){const{xScale:i,yScale:o}=t,a=new Array(s);let l,u,d,c;for(l=0,u=s;l<u;++l)d=l+r,c=n[d],a[l]={x:i.parse(c[0],d),y:o.parse(c[1],d)};return a}parseObjectData(t,n,r,s){const{xScale:i,yScale:o}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,u=new Array(s);let d,c,f,p;for(d=0,c=s;d<c;++d)f=d+r,p=n[f],u[d]={x:i.parse(Su(p,a),f),y:o.parse(Su(p,l),f)};return u}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,n,r){const s=this.chart,i=this._cachedMeta,o=n[t.axis],a={keys:$M(s,!0),values:n._stacks[t.axis]._visualValues};return ux(a,o,i.index,{mode:r})}updateRangeFromParsed(t,n,r,s){const i=r[n.axis];let o=i===null?NaN:i;const a=s&&r._stacks[n.axis];s&&a&&(s.values=a,o=ux(s,i,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,n){const r=this._cachedMeta,s=r._parsed,i=r._sorted&&t===r.iScale,o=s.length,a=this._getOtherScale(t),l=gZ(n,r,this.chart),u={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:d,max:c}=fZ(a);let f,p;function m(){p=s[f];const g=p[a.axis];return!On(p[t.axis])||d>g||c<g}for(f=0;f<o&&!(!m()&&(this.updateRangeFromParsed(u,t,p,l),i));++f);if(i){for(f=o-1;f>=0;--f)if(!m()){this.updateRangeFromParsed(u,t,p,l);break}}return u}getAllParsedValues(t){const n=this._cachedMeta._parsed,r=[];let s,i,o;for(s=0,i=n.length;s<i;++s)o=n[s][t.axis],On(o)&&r.push(o);return r}getMaxOverflow(){return!1}getLabelAndValue(t){const n=this._cachedMeta,r=n.iScale,s=n.vScale,i=this.getParsed(t);return{label:r?""+r.getLabelForValue(i[r.axis]):"",value:s?""+s.getLabelForValue(i[s.axis]):""}}_update(t){const n=this._cachedMeta;this.update(t||"default"),n._clip=uZ(Et(this.options.clip,lZ(n.xScale,n.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,n=this.chart,r=this._cachedMeta,s=r.data||[],i=n.chartArea,o=[],a=this._drawStart||0,l=this._drawCount||s.length-a,u=this.options.drawActiveElementsOnTop;let d;for(r.dataset&&r.dataset.draw(t,i,a,l),d=a;d<a+l;++d){const c=s[d];c.hidden||(c.active&&u?o.push(c):c.draw(t,i))}for(d=0;d<o.length;++d)o[d].draw(t,i)}getStyle(t,n){const r=n?"active":"default";return t===void 0&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(r):this.resolveDataElementOptions(t||0,r)}getContext(t,n,r){const s=this.getDataset();let i;if(t>=0&&t<this._cachedMeta.data.length){const o=this._cachedMeta.data[t];i=o.$context||(o.$context=mZ(this.getContext(),t,o)),i.parsed=this.getParsed(t),i.raw=s.data[t],i.index=i.dataIndex=t}else i=this.$context||(this.$context=pZ(this.chart.getContext(),this.index)),i.dataset=s,i.index=i.datasetIndex=this.index;return i.active=!!n,i.mode=r,i}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,n){return this._resolveElementOptions(this.dataElementType.id,n,t)}_resolveElementOptions(t,n="default",r){const s=n==="active",i=this._cachedDataOpts,o=t+"-"+n,a=i[o],l=this.enableOptionSharing&&hd(r);if(a)return fx(a,l);const u=this.chart.config,d=u.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,"hover",t,""]:[t,""],f=u.getOptionScopes(this.getDataset(),d),p=Object.keys(dn.elements[t]),m=()=>this.getContext(r,s,n),g=u.resolveNamedOptions(f,p,m,c);return g.$shared&&(g.$shared=l,i[o]=Object.freeze(fx(g,l))),g}_resolveAnimations(t,n,r){const s=this.chart,i=this._cachedDataOpts,o=`animation-${n}`,a=i[o];if(a)return a;let l;if(s.options.animation!==!1){const d=this.chart.config,c=d.datasetAnimationScopeKeys(this._type,n),f=d.getOptionScopes(this.getDataset(),c);l=d.createResolver(f,this.getContext(t,r,n))}const u=new LM(s,l&&l.animations);return l&&l._cacheable&&(i[o]=Object.freeze(u)),u}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,n){return!n||Dg(t)||this.chart._animationsDisabled}_getSharedOptions(t,n){const r=this.resolveDataElementOptions(t,n),s=this._sharedOptions,i=this.getSharedOptions(r),o=this.includeOptions(n,i)||i!==s;return this.updateSharedOptions(i,n,r),{sharedOptions:i,includeOptions:o}}updateElement(t,n,r,s){Dg(s)?Object.assign(t,r):this._resolveAnimations(n,s).update(t,r)}updateSharedOptions(t,n,r){t&&!Dg(n)&&this._resolveAnimations(void 0,n).update(t,r)}_setStyle(t,n,r,s){t.active=s;const i=this.getStyle(n,s);this._resolveAnimations(n,r,s).update(t,{options:!s&&this.getSharedOptions(i)||i})}removeHoverStyle(t,n,r){this._setStyle(t,r,"active",!1)}setHoverStyle(t,n,r){this._setStyle(t,r,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const n=this._data,r=this._cachedMeta.data;for(const[a,l,u]of this._syncList)this[a](l,u);this._syncList=[];const s=r.length,i=n.length,o=Math.min(i,s);o&&this.parse(0,o),i>s?this._insertElements(s,i-s,t):i<s&&this._removeElements(i,s-i)}_insertElements(t,n,r=!0){const s=this._cachedMeta,i=s.data,o=t+n;let a;const l=u=>{for(u.length+=n,a=u.length-1;a>=o;a--)u[a]=u[a-n]};for(l(i),a=t;a<o;++a)i[a]=new this.dataElementType;this._parsing&&l(s._parsed),this.parse(t,n),r&&this.updateElements(i,t,n,"reset")}updateElements(t,n,r,s){}_removeElements(t,n){const r=this._cachedMeta;if(this._parsing){const s=r._parsed.splice(t,n);r._stacked&&nc(r,s)}r.data.splice(t,n)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[n,r,s]=t;this[n](r,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,n){n&&this._sync(["_removeElements",t,n]);const r=arguments.length-2;r&&this._sync(["_insertElements",t,r])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}he(Lc,"defaults",{}),he(Lc,"datasetElementType",null),he(Lc,"dataElementType",null);function vZ(e,t){if(!e._cache.$bar){const n=e.getMatchingVisibleMetas(t);let r=[];for(let s=0,i=n.length;s<i;s++)r=r.concat(n[s].controller.getAllParsedValues(e));e._cache.$bar=SM(r.sort((s,i)=>s-i))}return e._cache.$bar}function yZ(e){const t=e.iScale,n=vZ(t,e.type);let r=t._length,s,i,o,a;const l=()=>{o===32767||o===-32768||(hd(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,i=n.length;s<i;++s)o=t.getPixelForValue(n[s]),l();for(a=void 0,s=0,i=t.ticks.length;s<i;++s)o=t.getPixelForTick(s),l();return r}function bZ(e,t,n,r){const s=n.barThickness;let i,o;return Mt(s)?(i=t.min*n.categoryPercentage,o=n.barPercentage):(i=s*r,o=1),{chunk:i/r,ratio:o,start:t.pixels[e]-i/2}}function wZ(e,t,n,r){const s=t.pixels,i=s[e];let o=e>0?s[e-1]:null,a=e<s.length-1?s[e+1]:null;const l=n.categoryPercentage;o===null&&(o=i-(a===null?t.end-t.start:a-i)),a===null&&(a=i+i-o);const u=i-(i-Math.min(o,a))/2*l;return{chunk:Math.abs(a-o)/2*l/r,ratio:n.barPercentage,start:u}}function SZ(e,t,n,r){const s=n.parse(e[0],r),i=n.parse(e[1],r),o=Math.min(s,i),a=Math.max(s,i);let l=o,u=a;Math.abs(o)>Math.abs(a)&&(l=a,u=o),t[n.axis]=u,t._custom={barStart:l,barEnd:u,start:s,end:i,min:o,max:a}}function FM(e,t,n,r){return on(e)?SZ(e,t,n,r):t[n.axis]=n.parse(e,r),t}function hx(e,t,n,r){const s=e.iScale,i=e.vScale,o=s.getLabels(),a=s===i,l=[];let u,d,c,f;for(u=n,d=n+r;u<d;++u)f=t[u],c={},c[s.axis]=a||s.parse(o[u],u),l.push(FM(f,c,i,u));return l}function Lg(e){return e&&e.barStart!==void 0&&e.barEnd!==void 0}function _Z(e,t,n){return e!==0?Ao(e):(t.isHorizontal()?1:-1)*(t.min>=n?1:-1)}function kZ(e){let t,n,r,s,i;return e.horizontal?(t=e.base>e.x,n="left",r="right"):(t=e.base<e.y,n="bottom",r="top"),t?(s="end",i="start"):(s="start",i="end"),{start:n,end:r,reverse:t,top:s,bottom:i}}function xZ(e,t,n,r){let s=t.borderSkipped;const i={};if(!s){e.borderSkipped=i;return}if(s===!0){e.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}const{start:o,end:a,reverse:l,top:u,bottom:d}=kZ(e);s==="middle"&&n&&(e.enableBorderRadius=!0,(n._top||0)===r?s=u:(n._bottom||0)===r?s=d:(i[px(d,o,a,l)]=!0,s=u)),i[px(s,o,a,l)]=!0,e.borderSkipped=i}function px(e,t,n,r){return r?(e=EZ(e,t,n),e=mx(e,n,t)):e=mx(e,t,n),e}function EZ(e,t,n){return e===t?n:e===n?t:e}function mx(e,t,n){return e==="start"?t:e==="end"?n:e}function CZ(e,{inflateAmount:t},n){e.inflateAmount=t==="auto"?n===1?.33:0:t}class ph extends Lc{parsePrimitiveData(t,n,r,s){return hx(t,n,r,s)}parseArrayData(t,n,r,s){return hx(t,n,r,s)}parseObjectData(t,n,r,s){const{iScale:i,vScale:o}=t,{xAxisKey:a="x",yAxisKey:l="y"}=this._parsing,u=i.axis==="x"?a:l,d=o.axis==="x"?a:l,c=[];let f,p,m,g;for(f=r,p=r+s;f<p;++f)g=n[f],m={},m[i.axis]=i.parse(Su(g,u),f),c.push(FM(Su(g,d),m,o,f));return c}updateRangeFromParsed(t,n,r,s){super.updateRangeFromParsed(t,n,r,s);const i=r._custom;i&&n===this._cachedMeta.vScale&&(t.min=Math.min(t.min,i.min),t.max=Math.max(t.max,i.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const n=this._cachedMeta,{iScale:r,vScale:s}=n,i=this.getParsed(t),o=i._custom,a=Lg(o)?"["+o.start+", "+o.end+"]":""+s.getLabelForValue(i[s.axis]);return{label:""+r.getLabelForValue(i[r.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();const t=this._cachedMeta;t.stack=this.getDataset().stack}update(t){const n=this._cachedMeta;this.updateElements(n.data,0,n.data.length,t)}updateElements(t,n,r,s){const i=s==="reset",{index:o,_cachedMeta:{vScale:a}}=this,l=a.getBasePixel(),u=a.isHorizontal(),d=this._getRuler(),{sharedOptions:c,includeOptions:f}=this._getSharedOptions(n,s);for(let p=n;p<n+r;p++){const m=this.getParsed(p),g=i||Mt(m[a.axis])?{base:l,head:l}:this._calculateBarValuePixels(p),y=this._calculateBarIndexPixels(p,d),b=(m._stacks||{})[a.axis],_={horizontal:u,base:g.base,enableBorderRadius:!b||Lg(m._custom)||o===b._top||o===b._bottom,x:u?g.head:y.center,y:u?y.center:g.head,height:u?y.size:Math.abs(g.size),width:u?Math.abs(g.size):y.size};f&&(_.options=c||this.resolveDataElementOptions(p,t[p].active?"active":s));const S=_.options||t[p].options;xZ(_,S,b,o),CZ(_,S,d.ratio),this.updateElement(t[p],p,_,s)}}_getStacks(t,n){const{iScale:r}=this._cachedMeta,s=r.getMatchingVisibleMetas(this._type).filter(d=>d.controller.options.grouped),i=r.options.stacked,o=[],a=this._cachedMeta.controller.getParsed(n),l=a&&a[r.axis],u=d=>{const c=d._parsed.find(p=>p[r.axis]===l),f=c&&c[d.vScale.axis];if(Mt(f)||isNaN(f))return!0};for(const d of s)if(!(n!==void 0&&u(d))&&((i===!1||o.indexOf(d.stack)===-1||i===void 0&&d.stack===void 0)&&o.push(d.stack),d.index===t))break;return o.length||o.push(void 0),o}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,n,r){const s=this._getStacks(t,r),i=n!==void 0?s.indexOf(n):-1;return i===-1?s.length-1:i}_getRuler(){const t=this.options,n=this._cachedMeta,r=n.iScale,s=[];let i,o;for(i=0,o=n.data.length;i<o;++i)s.push(r.getPixelForValue(this.getParsed(i)[r.axis],i));const a=t.barThickness;return{min:a||yZ(n),pixels:s,start:r._startPixel,end:r._endPixel,stackCount:this._getStackCount(),scale:r,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:n,_stacked:r,index:s},options:{base:i,minBarLength:o}}=this,a=i||0,l=this.getParsed(t),u=l._custom,d=Lg(u);let c=l[n.axis],f=0,p=r?this.applyStack(n,l,r):c,m,g;p!==c&&(f=p-c,p=c),d&&(c=u.barStart,p=u.barEnd-u.barStart,c!==0&&Ao(c)!==Ao(u.barEnd)&&(f=0),f+=c);const y=!Mt(i)&&!d?i:f;let b=n.getPixelForValue(y);if(this.chart.getDataVisibility(t)?m=n.getPixelForValue(f+p):m=b,g=m-b,Math.abs(g)<o){g=_Z(g,n,a)*o,c===a&&(b-=g/2);const _=n.getPixelForDecimal(0),S=n.getPixelForDecimal(1),T=Math.min(_,S),E=Math.max(_,S);b=Math.max(Math.min(b,E),T),m=b+g,r&&!d&&(l._stacks[n.axis]._visualValues[s]=n.getValueForPixel(m)-n.getValueForPixel(b))}if(b===n.getPixelForValue(a)){const _=Ao(g)*n.getLineWidthForValue(a)/2;b+=_,g-=_}return{size:g,base:b,head:m,center:m+g/2}}_calculateBarIndexPixels(t,n){const r=n.scale,s=this.options,i=s.skipNull,o=Et(s.maxBarThickness,1/0);let a,l;if(n.grouped){const u=i?this._getStackCount(t):n.stackCount,d=s.barThickness==="flex"?wZ(t,n,s,u):bZ(t,n,s,u),c=this._getStackIndex(this.index,this._cachedMeta.stack,i?t:void 0);a=d.start+d.chunk*c+d.chunk/2,l=Math.min(o,d.chunk*d.ratio)}else a=r.getPixelForValue(this.getParsed(t)[r.axis],t),l=Math.min(o,n.min*n.ratio);return{base:a-l/2,head:a+l/2,center:a,size:l}}draw(){const t=this._cachedMeta,n=t.vScale,r=t.data,s=r.length;let i=0;for(;i<s;++i)this.getParsed(i)[n.axis]!==null&&!r[i].hidden&&r[i].draw(this._ctx)}}he(ph,"id","bar"),he(ph,"defaults",{datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}}),he(ph,"overrides",{scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}});function aa(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class vS{constructor(t){he(this,"options");this.options=t||{}}static override(t){Object.assign(vS.prototype,t)}init(){}formats(){return aa()}parse(){return aa()}format(){return aa()}add(){return aa()}diff(){return aa()}startOf(){return aa()}endOf(){return aa()}}var PZ={_date:vS};function TZ(e,t,n,r){const{controller:s,data:i,_sorted:o}=e,a=s._cachedMeta.iScale;if(a&&t===a.axis&&t!=="r"&&o&&i.length){const l=a._reversePixels?gJ:qy;if(r){if(s._sharedOptions){const u=i[0],d=typeof u.getRange=="function"&&u.getRange(t);if(d){const c=l(i,t,n-d),f=l(i,t,n+d);return{lo:c.lo,hi:f.hi}}}}else return l(i,t,n)}return{lo:0,hi:i.length-1}}function Gd(e,t,n,r,s){const i=e.getSortedVisibleDatasetMetas(),o=n[t];for(let a=0,l=i.length;a<l;++a){const{index:u,data:d}=i[a],{lo:c,hi:f}=TZ(i[a],t,o,s);for(let p=c;p<=f;++p){const m=d[p];m.skip||r(m,u,p)}}}function RZ(e){const t=e.indexOf("x")!==-1,n=e.indexOf("y")!==-1;return function(r,s){const i=t?Math.abs(r.x-s.x):0,o=n?Math.abs(r.y-s.y):0;return Math.sqrt(Math.pow(i,2)+Math.pow(o,2))}}function $g(e,t,n,r,s){const i=[];return!s&&!e.isPointInArea(t)||Gd(e,n,t,function(a,l,u){!s&&!Ll(a,e.chartArea,0)||a.inRange(t.x,t.y,r)&&i.push({element:a,datasetIndex:l,index:u})},!0),i}function IZ(e,t,n,r){let s=[];function i(o,a,l){const{startAngle:u,endAngle:d}=o.getProps(["startAngle","endAngle"],r),{angle:c}=fJ(o,{x:t.x,y:t.y});pJ(c,u,d)&&s.push({element:o,datasetIndex:a,index:l})}return Gd(e,n,t,i),s}function AZ(e,t,n,r,s,i){let o=[];const a=RZ(n);let l=Number.POSITIVE_INFINITY;function u(d,c,f){const p=d.inRange(t.x,t.y,s);if(r&&!p)return;const m=d.getCenterPoint(s);if(!(!!i||e.isPointInArea(m))&&!p)return;const y=a(t,m);y<l?(o=[{element:d,datasetIndex:c,index:f}],l=y):y===l&&o.push({element:d,datasetIndex:c,index:f})}return Gd(e,n,t,u),o}function Fg(e,t,n,r,s,i){return!i&&!e.isPointInArea(t)?[]:n==="r"&&!r?IZ(e,t,n,s):AZ(e,t,n,r,s,i)}function gx(e,t,n,r,s){const i=[],o=n==="x"?"inXRange":"inYRange";let a=!1;return Gd(e,n,t,(l,u,d)=>{l[o]&&l[o](t[n],s)&&(i.push({element:l,datasetIndex:u,index:d}),a=a||l.inRange(t.x,t.y,s))}),r&&!a?[]:i}var OZ={evaluateInteractionItems:Gd,modes:{index(e,t,n,r){const s=fa(t,e),i=n.axis||"x",o=n.includeInvisible||!1,a=n.intersect?$g(e,s,i,r,o):Fg(e,s,i,!1,r,o),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach(u=>{const d=a[0].index,c=u.data[d];c&&!c.skip&&l.push({element:c,datasetIndex:u.index,index:d})}),l):[]},dataset(e,t,n,r){const s=fa(t,e),i=n.axis||"xy",o=n.includeInvisible||!1;let a=n.intersect?$g(e,s,i,r,o):Fg(e,s,i,!1,r,o);if(a.length>0){const l=a[0].datasetIndex,u=e.getDatasetMeta(l).data;a=[];for(let d=0;d<u.length;++d)a.push({element:u[d],datasetIndex:l,index:d})}return a},point(e,t,n,r){const s=fa(t,e),i=n.axis||"xy",o=n.includeInvisible||!1;return $g(e,s,i,r,o)},nearest(e,t,n,r){const s=fa(t,e),i=n.axis||"xy",o=n.includeInvisible||!1;return Fg(e,s,i,n.intersect,r,o)},x(e,t,n,r){const s=fa(t,e);return gx(e,s,"x",n.intersect,r)},y(e,t,n,r){const s=fa(t,e);return gx(e,s,"y",n.intersect,r)}}};const NM=["left","top","right","bottom"];function rc(e,t){return e.filter(n=>n.pos===t)}function vx(e,t){return e.filter(n=>NM.indexOf(n.pos)===-1&&n.box.axis===t)}function sc(e,t){return e.sort((n,r)=>{const s=t?r:n,i=t?n:r;return s.weight===i.weight?s.index-i.index:s.weight-i.weight})}function MZ(e){const t=[];let n,r,s,i,o,a;for(n=0,r=(e||[]).length;n<r;++n)s=e[n],{position:i,options:{stack:o,stackWeight:a=1}}=s,t.push({index:n,box:s,pos:i,horizontal:s.isHorizontal(),weight:s.weight,stack:o&&i+o,stackWeight:a});return t}function DZ(e){const t={};for(const n of e){const{stack:r,pos:s,stackWeight:i}=n;if(!r||!NM.includes(s))continue;const o=t[r]||(t[r]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=i}return t}function LZ(e,t){const n=DZ(e),{vBoxMaxWidth:r,hBoxMaxHeight:s}=t;let i,o,a;for(i=0,o=e.length;i<o;++i){a=e[i];const{fullSize:l}=a.box,u=n[a.stack],d=u&&a.stackWeight/u.weight;a.horizontal?(a.width=d?d*r:l&&t.availableWidth,a.height=s):(a.width=r,a.height=d?d*s:l&&t.availableHeight)}return n}function $Z(e){const t=MZ(e),n=sc(t.filter(u=>u.box.fullSize),!0),r=sc(rc(t,"left"),!0),s=sc(rc(t,"right")),i=sc(rc(t,"top"),!0),o=sc(rc(t,"bottom")),a=vx(t,"x"),l=vx(t,"y");return{fullSize:n,leftAndTop:r.concat(i),rightAndBottom:s.concat(l).concat(o).concat(a),chartArea:rc(t,"chartArea"),vertical:r.concat(s).concat(l),horizontal:i.concat(o).concat(a)}}function yx(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function BM(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function FZ(e,t,n,r){const{pos:s,box:i}=n,o=e.maxPadding;if(!St(s)){n.size&&(e[s]-=n.size);const c=r[n.stack]||{size:0,count:1};c.size=Math.max(c.size,n.horizontal?i.height:i.width),n.size=c.size/c.count,e[s]+=n.size}i.getPadding&&BM(o,i.getPadding());const a=Math.max(0,t.outerWidth-yx(o,e,"left","right")),l=Math.max(0,t.outerHeight-yx(o,e,"top","bottom")),u=a!==e.w,d=l!==e.h;return e.w=a,e.h=l,n.horizontal?{same:u,other:d}:{same:d,other:u}}function NZ(e){const t=e.maxPadding;function n(r){const s=Math.max(t[r]-e[r],0);return e[r]+=s,s}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}function BZ(e,t){const n=t.maxPadding;function r(s){const i={left:0,top:0,right:0,bottom:0};return s.forEach(o=>{i[o]=Math.max(t[o],n[o])}),i}return r(e?["left","right"]:["top","bottom"])}function pc(e,t,n,r){const s=[];let i,o,a,l,u,d;for(i=0,o=e.length,u=0;i<o;++i){a=e[i],l=a.box,l.update(a.width||t.w,a.height||t.h,BZ(a.horizontal,t));const{same:c,other:f}=FZ(t,n,a,r);u|=c&&s.length,d=d||f,l.fullSize||s.push(a)}return u&&pc(s,t,n,r)||d}function Af(e,t,n,r,s){e.top=n,e.left=t,e.right=t+r,e.bottom=n+s,e.width=r,e.height=s}function bx(e,t,n,r){const s=n.padding;let{x:i,y:o}=t;for(const a of e){const l=a.box,u=r[a.stack]||{count:1,placed:0,weight:1},d=a.stackWeight/u.weight||1;if(a.horizontal){const c=t.w*d,f=u.size||l.height;hd(u.start)&&(o=u.start),l.fullSize?Af(l,s.left,o,n.outerWidth-s.right-s.left,f):Af(l,t.left+u.placed,o,c,f),u.start=o,u.placed+=c,o=l.bottom}else{const c=t.h*d,f=u.size||l.width;hd(u.start)&&(i=u.start),l.fullSize?Af(l,i,s.top,f,n.outerHeight-s.bottom-s.top):Af(l,i,t.top+u.placed,f,c),u.start=i,u.placed+=c,i=l.right}}t.x=i,t.y=o}var ls={addBox(e,t){e.boxes||(e.boxes=[]),t.fullSize=t.fullSize||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw(n){t.draw(n)}}]},e.boxes.push(t)},removeBox(e,t){const n=e.boxes?e.boxes.indexOf(t):-1;n!==-1&&e.boxes.splice(n,1)},configure(e,t,n){t.fullSize=n.fullSize,t.position=n.position,t.weight=n.weight},update(e,t,n,r){if(!e)return;const s=rr(e.options.layout.padding),i=Math.max(t-s.width,0),o=Math.max(n-s.height,0),a=$Z(e.boxes),l=a.vertical,u=a.horizontal;Rt(e.boxes,g=>{typeof g.beforeLayout=="function"&&g.beforeLayout()});const d=l.reduce((g,y)=>y.box.options&&y.box.options.display===!1?g:g+1,0)||1,c=Object.freeze({outerWidth:t,outerHeight:n,padding:s,availableWidth:i,availableHeight:o,vBoxMaxWidth:i/2/d,hBoxMaxHeight:o/2}),f=Object.assign({},s);BM(f,rr(r));const p=Object.assign({maxPadding:f,w:i,h:o,x:s.left,y:s.top},s),m=LZ(l.concat(u),c);pc(a.fullSize,p,c,m),pc(l,p,c,m),pc(u,p,c,m)&&pc(l,p,c,m),NZ(p),bx(a.leftAndTop,p,c,m),p.x+=p.w,p.y+=p.h,bx(a.rightAndBottom,p,c,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Rt(a.chartArea,g=>{const y=g.box;Object.assign(y,e.chartArea),y.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class VM{acquireContext(t,n){}releaseContext(t){return!1}addEventListener(t,n,r){}removeEventListener(t,n,r){}getDevicePixelRatio(){return 1}getMaximumSize(t,n,r,s){return n=Math.max(0,n||t.width),r=r||t.height,{width:n,height:Math.max(0,s?Math.floor(n/s):r)}}isAttached(t){return!0}updateConfig(t){}}class VZ extends VM{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const mh="$chartjs",UZ={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},wx=e=>e===null||e==="";function zZ(e,t){const n=e.style,r=e.getAttribute("height"),s=e.getAttribute("width");if(e[mh]={initial:{height:r,width:s,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",wx(s)){const i=ox(e,"width");i!==void 0&&(e.width=i)}if(wx(r))if(e.style.height==="")e.height=e.width/(t||2);else{const i=ox(e,"height");i!==void 0&&(e.height=i)}return e}const UM=eZ?{passive:!0}:!1;function HZ(e,t,n){e&&e.addEventListener(t,n,UM)}function jZ(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,UM)}function WZ(e,t){const n=UZ[e.type]||e.type,{x:r,y:s}=fa(e,t);return{type:n,chart:t,native:e,x:r!==void 0?r:null,y:s!==void 0?s:null}}function hp(e,t){for(const n of e)if(n===t||n.contains(t))return!0}function qZ(e,t,n){const r=e.canvas,s=new MutationObserver(i=>{let o=!1;for(const a of i)o=o||hp(a.addedNodes,r),o=o&&!hp(a.removedNodes,r);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}function GZ(e,t,n){const r=e.canvas,s=new MutationObserver(i=>{let o=!1;for(const a of i)o=o||hp(a.removedNodes,r),o=o&&!hp(a.addedNodes,r);o&&n()});return s.observe(document,{childList:!0,subtree:!0}),s}const md=new Map;let Sx=0;function zM(){const e=window.devicePixelRatio;e!==Sx&&(Sx=e,md.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function KZ(e,t){md.size||window.addEventListener("resize",zM),md.set(e,t)}function YZ(e){md.delete(e),md.size||window.removeEventListener("resize",zM)}function XZ(e,t,n){const r=e.canvas,s=r&&gS(r);if(!s)return;const i=kM((a,l)=>{const u=s.clientWidth;n(a,l),u<s.clientWidth&&n()},window),o=new ResizeObserver(a=>{const l=a[0],u=l.contentRect.width,d=l.contentRect.height;u===0&&d===0||i(u,d)});return o.observe(s),KZ(e,i),o}function Ng(e,t,n){n&&n.disconnect(),t==="resize"&&YZ(e)}function QZ(e,t,n){const r=e.canvas,s=kM(i=>{e.ctx!==null&&n(WZ(i,e))},e);return HZ(r,t,s),s}class JZ extends VM{acquireContext(t,n){const r=t&&t.getContext&&t.getContext("2d");return r&&r.canvas===t?(zZ(t,n),r):null}releaseContext(t){const n=t.canvas;if(!n[mh])return!1;const r=n[mh].initial;["height","width"].forEach(i=>{const o=r[i];Mt(o)?n.removeAttribute(i):n.setAttribute(i,o)});const s=r.style||{};return Object.keys(s).forEach(i=>{n.style[i]=s[i]}),n.width=n.width,delete n[mh],!0}addEventListener(t,n,r){this.removeEventListener(t,n);const s=t.$proxies||(t.$proxies={}),o={attach:qZ,detach:GZ,resize:XZ}[n]||QZ;s[n]=o(t,n,r)}removeEventListener(t,n){const r=t.$proxies||(t.$proxies={}),s=r[n];if(!s)return;({attach:Ng,detach:Ng,resize:Ng}[n]||jZ)(t,n,s),r[n]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,n,r,s){return ZJ(t,n,r,s)}isAttached(t){const n=t&&gS(t);return!!(n&&n.isConnected)}}function ZZ(e){return!mS()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?VZ:JZ}var Hf;let Hu=(Hf=class{constructor(){he(this,"x");he(this,"y");he(this,"active",!1);he(this,"options");he(this,"$animations")}tooltipPosition(t){const{x:n,y:r}=this.getProps(["x","y"],t);return{x:n,y:r}}hasValue(){return cp(this.x)&&cp(this.y)}getProps(t,n){const r=this.$animations;if(!n||!r)return this;const s={};return t.forEach(i=>{s[i]=r[i]&&r[i].active()?r[i]._to:this[i]}),s}},he(Hf,"defaults",{}),he(Hf,"defaultRoutes"),Hf);function eee(e,t){const n=e.options.ticks,r=tee(e),s=Math.min(n.maxTicksLimit||r,r),i=n.major.enabled?ree(t):[],o=i.length,a=i[0],l=i[o-1],u=[];if(o>s)return see(t,u,i,o/s),u;const d=nee(i,t,s);if(o>0){let c,f;const p=o>1?Math.round((l-a)/(o-1)):null;for(Of(t,u,d,Mt(p)?0:a-p,a),c=0,f=o-1;c<f;c++)Of(t,u,d,i[c],i[c+1]);return Of(t,u,d,l,Mt(p)?t.length:l+p),u}return Of(t,u,d),u}function tee(e){const t=e.options.offset,n=e._tickSize(),r=e._length/n+(t?0:1),s=e._maxLength/n;return Math.floor(Math.min(r,s))}function nee(e,t,n){const r=iee(e),s=t.length/n;if(!r)return Math.max(s,1);const i=cJ(r);for(let o=0,a=i.length-1;o<a;o++){const l=i[o];if(l>s)return l}return Math.max(s,1)}function ree(e){const t=[];let n,r;for(n=0,r=e.length;n<r;n++)e[n].major&&t.push(n);return t}function see(e,t,n,r){let s=0,i=n[0],o;for(r=Math.ceil(r),o=0;o<e.length;o++)o===i&&(t.push(e[o]),s++,i=n[s*r])}function Of(e,t,n,r,s){const i=Et(r,0),o=Math.min(Et(s,e.length),e.length);let a=0,l,u,d;for(n=Math.ceil(n),s&&(l=s-r,n=l/Math.floor(l/n)),d=i;d<0;)a++,d=Math.round(i+a*n);for(u=Math.max(i,0);u<o;u++)u===d&&(t.push(e[u]),a++,d=Math.round(i+a*n))}function iee(e){const t=e.length;let n,r;if(t<2)return!1;for(r=e[0],n=1;n<t;++n)if(e[n]-e[n-1]!==r)return!1;return r}const oee=e=>e==="left"?"right":e==="right"?"left":e,_x=(e,t,n)=>t==="top"||t==="left"?e[t]+n:e[t]-n,kx=(e,t)=>Math.min(t||e,e);function xx(e,t){const n=[],r=e.length/t,s=e.length;let i=0;for(;i<s;i+=r)n.push(e[Math.floor(i)]);return n}function aee(e,t,n){const r=e.ticks.length,s=Math.min(t,r-1),i=e._startPixel,o=e._endPixel,a=1e-6;let l=e.getPixelForTick(s),u;if(!(n&&(r===1?u=Math.max(l-i,o-l):t===0?u=(e.getPixelForTick(1)-l)/2:u=(l-e.getPixelForTick(s-1))/2,l+=s<t?u:-u,l<i-a||l>o+a)))return l}function lee(e,t){Rt(e,n=>{const r=n.gc,s=r.length/2;let i;if(s>t){for(i=0;i<s;++i)delete n.data[r[i]];r.splice(0,s)}})}function ic(e){return e.drawTicks?e.tickLength:0}function Ex(e,t){if(!e.display)return 0;const n=Tn(e.font,t),r=rr(e.padding);return(on(e.text)?e.text.length:1)*n.lineHeight+r.height}function uee(e,t){return al(e,{scale:t,type:"scale"})}function cee(e,t,n){return al(e,{tick:n,index:t,type:"tick"})}function dee(e,t,n){let r=lS(e);return(n&&t!=="right"||!n&&t==="right")&&(r=oee(r)),r}function fee(e,t,n,r){const{top:s,left:i,bottom:o,right:a,chart:l}=e,{chartArea:u,scales:d}=l;let c=0,f,p,m;const g=o-s,y=a-i;if(e.isHorizontal()){if(p=Gn(r,i,a),St(n)){const b=Object.keys(n)[0],_=n[b];m=d[b].getPixelForValue(_)+g-t}else n==="center"?m=(u.bottom+u.top)/2+g-t:m=_x(e,n,t);f=a-i}else{if(St(n)){const b=Object.keys(n)[0],_=n[b];p=d[b].getPixelForValue(_)-y+t}else n==="center"?p=(u.left+u.right)/2-y+t:p=_x(e,n,t);m=Gn(r,o,s),c=n==="left"?-Kr:Kr}return{titleX:p,titleY:m,maxWidth:f,rotation:c}}class ll extends Hu{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,n){return t}getUserBounds(){let{_userMin:t,_userMax:n,_suggestedMin:r,_suggestedMax:s}=this;return t=Ur(t,Number.POSITIVE_INFINITY),n=Ur(n,Number.NEGATIVE_INFINITY),r=Ur(r,Number.POSITIVE_INFINITY),s=Ur(s,Number.NEGATIVE_INFINITY),{min:Ur(t,r),max:Ur(n,s),minDefined:On(t),maxDefined:On(n)}}getMinMax(t){let{min:n,max:r,minDefined:s,maxDefined:i}=this.getUserBounds(),o;if(s&&i)return{min:n,max:r};const a=this.getMatchingVisibleMetas();for(let l=0,u=a.length;l<u;++l)o=a[l].controller.getMinMax(this,t),s||(n=Math.min(n,o.min)),i||(r=Math.max(r,o.max));return n=i&&n>r?r:n,r=s&&n>r?n:r,{min:Ur(n,Ur(r,n)),max:Ur(r,Ur(n,r))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){jt(this.options.beforeUpdate,[this])}update(t,n,r){const{beginAtZero:s,grace:i,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=n,this._margins=r=Object.assign({left:0,right:0,top:0,bottom:0},r),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+r.left+r.right:this.height+r.top+r.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=NJ(this,i,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a<this.ticks.length;this._convertTicksToLabels(l?xx(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||o.source==="auto")&&(this.ticks=eee(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),l&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t=this.options.reverse,n,r;this.isHorizontal()?(n=this.left,r=this.right):(n=this.top,r=this.bottom,t=!t),this._startPixel=n,this._endPixel=r,this._reversePixels=t,this._length=r-n,this._alignToPixels=this.options.alignToPixels}afterUpdate(){jt(this.options.afterUpdate,[this])}beforeSetDimensions(){jt(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){jt(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),jt(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){jt(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const n=this.options.ticks;let r,s,i;for(r=0,s=t.length;r<s;r++)i=t[r],i.label=jt(n.callback,[i.value,r,t],this)}afterTickToLabelConversion(){jt(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){jt(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,n=t.ticks,r=kx(this.ticks.length,t.ticks.maxTicksLimit),s=n.minRotation||0,i=n.maxRotation;let o=s,a,l,u;if(!this._isVisible()||!n.display||s>=i||r<=1||!this.isHorizontal()){this.labelRotation=s;return}const d=this._getLabelSizes(),c=d.widest.width,f=d.highest.height,p=Es(this.chart.width-c,0,this.maxWidth);a=t.offset?this.maxWidth/r:p/(r-1),c+6>a&&(a=p/(r-(t.offset?.5:1)),l=this.maxHeight-ic(t.grid)-n.padding-Ex(t.title,this.chart.options.font),u=Math.sqrt(c*c+f*f),o=oS(Math.min(Math.asin(Es((d.highest.height+6)/a,-1,1)),Math.asin(Es(l/u,-1,1))-Math.asin(Es(f/u,-1,1)))),o=Math.max(s,Math.min(i,o))),this.labelRotation=o}afterCalculateLabelRotation(){jt(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){jt(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:n,options:{ticks:r,title:s,grid:i}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const l=Ex(s,n.options.font);if(a?(t.width=this.maxWidth,t.height=ic(i)+l):(t.height=this.maxHeight,t.width=ic(i)+l),r.display&&this.ticks.length){const{first:u,last:d,widest:c,highest:f}=this._getLabelSizes(),p=r.padding*2,m=_o(this.labelRotation),g=Math.cos(m),y=Math.sin(m);if(a){const b=r.mirror?0:y*c.width+g*f.height;t.height=Math.min(this.maxHeight,t.height+b+p)}else{const b=r.mirror?0:g*c.width+y*f.height;t.width=Math.min(this.maxWidth,t.width+b+p)}this._calculatePadding(u,d,y,g)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,n,r,s){const{ticks:{align:i,padding:o},position:a}=this.options,l=this.labelRotation!==0,u=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const d=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?u?(f=s*t.width,p=r*n.height):(f=r*t.height,p=s*n.width):i==="start"?p=n.width:i==="end"?f=t.width:i!=="inner"&&(f=t.width/2,p=n.width/2),this.paddingLeft=Math.max((f-d+o)*this.width/(this.width-d),0),this.paddingRight=Math.max((p-c+o)*this.width/(this.width-c),0)}else{let d=n.height/2,c=t.height/2;i==="start"?(d=0,c=t.height):i==="end"&&(d=n.height,c=0),this.paddingTop=d+o,this.paddingBottom=c+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){jt(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:n}=this.options;return n==="top"||n==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let n,r;for(n=0,r=t.length;n<r;n++)Mt(t[n].label)&&(t.splice(n,1),r--,n--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const n=this.options.ticks.sampleSize;let r=this.ticks;n<r.length&&(r=xx(r,n)),this._labelSizes=t=this._computeLabelSizes(r,r.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,n,r){const{ctx:s,_longestTextCache:i}=this,o=[],a=[],l=Math.floor(n/kx(n,r));let u=0,d=0,c,f,p,m,g,y,b,_,S,T,E;for(c=0;c<n;c+=l){if(m=t[c].label,g=this._resolveTickFontOptions(c),s.font=y=g.string,b=i[y]=i[y]||{data:{},gc:[]},_=g.lineHeight,S=T=0,!Mt(m)&&!on(m))S=dp(s,b.data,b.gc,S,m),T=_;else if(on(m))for(f=0,p=m.length;f<p;++f)E=m[f],!Mt(E)&&!on(E)&&(S=dp(s,b.data,b.gc,S,E),T+=_);o.push(S),a.push(T),u=Math.max(S,u),d=Math.max(T,d)}lee(i,n);const R=o.indexOf(u),P=a.indexOf(d),x=w=>({width:o[w]||0,height:a[w]||0});return{first:x(0),last:x(n-1),widest:x(R),highest:x(P),widths:o,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,n){return NaN}getValueForPixel(t){}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const n=this._startPixel+t*this._length;return mJ(this._alignToPixels?oa(this.chart,n,0):n)}getDecimalForPixel(t){const n=(t-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:n}=this;return t<0&&n<0?n:t>0&&n>0?t:0}getContext(t){const n=this.ticks||[];if(t>=0&&t<n.length){const r=n[t];return r.$context||(r.$context=cee(this.getContext(),t,r))}return this.$context||(this.$context=uee(this.chart.getContext(),this))}_tickSize(){const t=this.options.ticks,n=_o(this.labelRotation),r=Math.abs(Math.cos(n)),s=Math.abs(Math.sin(n)),i=this._getLabelSizes(),o=t.autoSkipPadding||0,a=i?i.widest.width+o:0,l=i?i.highest.height+o:0;return this.isHorizontal()?l*r>a*s?a/r:l/s:l*s<a*r?l/r:a/s}_isVisible(){const t=this.options.display;return t!=="auto"?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const n=this.axis,r=this.chart,s=this.options,{grid:i,position:o,border:a}=s,l=i.offset,u=this.isHorizontal(),c=this.ticks.length+(l?1:0),f=ic(i),p=[],m=a.setContext(this.getContext()),g=m.display?m.width:0,y=g/2,b=function(B){return oa(r,B,g)};let _,S,T,E,R,P,x,w,C,O,A,M;if(o==="top")_=b(this.bottom),P=this.bottom-f,w=_-y,O=b(t.top)+y,M=t.bottom;else if(o==="bottom")_=b(this.top),O=t.top,M=b(t.bottom)-y,P=_+y,w=this.top+f;else if(o==="left")_=b(this.right),R=this.right-f,x=_-y,C=b(t.left)+y,A=t.right;else if(o==="right")_=b(this.left),C=t.left,A=b(t.right)-y,R=_+y,x=this.left+f;else if(n==="x"){if(o==="center")_=b((t.top+t.bottom)/2+.5);else if(St(o)){const B=Object.keys(o)[0],q=o[B];_=b(this.chart.scales[B].getPixelForValue(q))}O=t.top,M=t.bottom,P=_+y,w=P+f}else if(n==="y"){if(o==="center")_=b((t.left+t.right)/2);else if(St(o)){const B=Object.keys(o)[0],q=o[B];_=b(this.chart.scales[B].getPixelForValue(q))}R=_-y,x=R-f,C=t.left,A=t.right}const L=Et(s.ticks.maxTicksLimit,c),U=Math.max(1,Math.ceil(c/L));for(S=0;S<c;S+=U){const B=this.getContext(S),q=i.setContext(B),G=a.setContext(B),V=q.lineWidth,W=q.color,Z=G.dash||[],j=G.dashOffset,Y=q.tickWidth,pe=q.tickColor,le=q.tickBorderDash||[],oe=q.tickBorderDashOffset;T=aee(this,S,l),T!==void 0&&(E=oa(r,T,V),u?R=x=C=A=E:P=w=O=M=E,p.push({tx1:R,ty1:P,tx2:x,ty2:w,x1:C,y1:O,x2:A,y2:M,width:V,color:W,borderDash:Z,borderDashOffset:j,tickWidth:Y,tickColor:pe,tickBorderDash:le,tickBorderDashOffset:oe}))}return this._ticksLength=c,this._borderValue=_,p}_computeLabelItems(t){const n=this.axis,r=this.options,{position:s,ticks:i}=r,o=this.isHorizontal(),a=this.ticks,{align:l,crossAlign:u,padding:d,mirror:c}=i,f=ic(r.grid),p=f+d,m=c?-d:p,g=-_o(this.labelRotation),y=[];let b,_,S,T,E,R,P,x,w,C,O,A,M="middle";if(s==="top")R=this.bottom-m,P=this._getXAxisLabelAlignment();else if(s==="bottom")R=this.top+m,P=this._getXAxisLabelAlignment();else if(s==="left"){const U=this._getYAxisLabelAlignment(f);P=U.textAlign,E=U.x}else if(s==="right"){const U=this._getYAxisLabelAlignment(f);P=U.textAlign,E=U.x}else if(n==="x"){if(s==="center")R=(t.top+t.bottom)/2+p;else if(St(s)){const U=Object.keys(s)[0],B=s[U];R=this.chart.scales[U].getPixelForValue(B)+p}P=this._getXAxisLabelAlignment()}else if(n==="y"){if(s==="center")E=(t.left+t.right)/2-p;else if(St(s)){const U=Object.keys(s)[0],B=s[U];E=this.chart.scales[U].getPixelForValue(B)}P=this._getYAxisLabelAlignment(f).textAlign}n==="y"&&(l==="start"?M="top":l==="end"&&(M="bottom"));const L=this._getLabelSizes();for(b=0,_=a.length;b<_;++b){S=a[b],T=S.label;const U=i.setContext(this.getContext(b));x=this.getPixelForTick(b)+i.labelOffset,w=this._resolveTickFontOptions(b),C=w.lineHeight,O=on(T)?T.length:1;const B=O/2,q=U.color,G=U.textStrokeColor,V=U.textStrokeWidth;let W=P;o?(E=x,P==="inner"&&(b===_-1?W=this.options.reverse?"left":"right":b===0?W=this.options.reverse?"right":"left":W="center"),s==="top"?u==="near"||g!==0?A=-O*C+C/2:u==="center"?A=-L.highest.height/2-B*C+C:A=-L.highest.height+C/2:u==="near"||g!==0?A=C/2:u==="center"?A=L.highest.height/2-B*C:A=L.highest.height-O*C,c&&(A*=-1),g!==0&&!U.showLabelBackdrop&&(E+=C/2*Math.sin(g))):(R=x,A=(1-O)*C/2);let Z;if(U.showLabelBackdrop){const j=rr(U.backdropPadding),Y=L.heights[b],pe=L.widths[b];let le=A-j.top,oe=0-j.left;switch(M){case"middle":le-=Y/2;break;case"bottom":le-=Y;break}switch(P){case"center":oe-=pe/2;break;case"right":oe-=pe;break;case"inner":b===_-1?oe-=pe:b>0&&(oe-=pe/2);break}Z={left:oe,top:le,width:pe+j.width,height:Y+j.height,color:U.backdropColor}}y.push({label:T,font:w,textOffset:A,options:{rotation:g,color:q,strokeColor:G,strokeWidth:V,textAlign:W,textBaseline:M,translation:[E,R],backdrop:Z}})}return y}_getXAxisLabelAlignment(){const{position:t,ticks:n}=this.options;if(-_o(this.labelRotation))return t==="top"?"left":"right";let s="center";return n.align==="start"?s="left":n.align==="end"?s="right":n.align==="inner"&&(s="inner"),s}_getYAxisLabelAlignment(t){const{position:n,ticks:{crossAlign:r,mirror:s,padding:i}}=this.options,o=this._getLabelSizes(),a=t+i,l=o.widest.width;let u,d;return n==="left"?s?(d=this.right+i,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d+=l)):(d=this.right-a,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d=this.left)):n==="right"?s?(d=this.left+i,r==="near"?u="right":r==="center"?(u="center",d-=l/2):(u="left",d-=l)):(d=this.left+a,r==="near"?u="left":r==="center"?(u="center",d+=l/2):(u="right",d=this.right)):u="right",{textAlign:u,x:d}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:n},left:r,top:s,width:i,height:o}=this;n&&(t.save(),t.fillStyle=n,t.fillRect(r,s,i,o),t.restore())}getLineWidthForValue(t){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const s=this.ticks.findIndex(i=>i.value===t);return s>=0?n.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const n=this.options.grid,r=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let i,o;const a=(l,u,d)=>{!d.width||!d.color||(r.save(),r.lineWidth=d.width,r.strokeStyle=d.color,r.setLineDash(d.borderDash||[]),r.lineDashOffset=d.borderDashOffset,r.beginPath(),r.moveTo(l.x,l.y),r.lineTo(u.x,u.y),r.stroke(),r.restore())};if(n.display)for(i=0,o=s.length;i<o;++i){const l=s[i];n.drawOnChartArea&&a({x:l.x1,y:l.y1},{x:l.x2,y:l.y2},l),n.drawTicks&&a({x:l.tx1,y:l.ty1},{x:l.tx2,y:l.ty2},{color:l.tickColor,width:l.tickWidth,borderDash:l.tickBorderDash,borderDashOffset:l.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:n,options:{border:r,grid:s}}=this,i=r.setContext(this.getContext()),o=r.display?i.width:0;if(!o)return;const a=s.setContext(this.getContext(0)).lineWidth,l=this._borderValue;let u,d,c,f;this.isHorizontal()?(u=oa(t,this.left,o)-o/2,d=oa(t,this.right,a)+a/2,c=f=l):(c=oa(t,this.top,o)-o/2,f=oa(t,this.bottom,a)+a/2,u=d=l),n.save(),n.lineWidth=i.width,n.strokeStyle=i.color,n.beginPath(),n.moveTo(u,c),n.lineTo(d,f),n.stroke(),n.restore()}drawLabels(t){if(!this.options.ticks.display)return;const r=this.ctx,s=this._computeLabelArea();s&&cS(r,s);const i=this.getLabelItems(t);for(const o of i){const a=o.options,l=o.font,u=o.label,d=o.textOffset;Xa(r,u,0,d,l,a)}s&&dS(r)}drawTitle(){const{ctx:t,options:{position:n,title:r,reverse:s}}=this;if(!r.display)return;const i=Tn(r.font),o=rr(r.padding),a=r.align;let l=i.lineHeight/2;n==="bottom"||n==="center"||St(n)?(l+=o.bottom,on(r.text)&&(l+=i.lineHeight*(r.text.length-1))):l+=o.top;const{titleX:u,titleY:d,maxWidth:c,rotation:f}=fee(this,l,n,a);Xa(t,r.text,0,0,i,{color:r.color,maxWidth:c,rotation:f,textAlign:dee(a,n,s),textBaseline:"middle",translation:[u,d]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,n=t.ticks&&t.ticks.z||0,r=Et(t.grid&&t.grid.z,-1),s=Et(t.border&&t.border.z,0);return!this._isVisible()||this.draw!==ll.prototype.draw?[{z:n,draw:i=>{this.draw(i)}}]:[{z:r,draw:i=>{this.drawBackground(),this.drawGrid(i),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:n,draw:i=>{this.drawLabels(i)}}]}getMatchingVisibleMetas(t){const n=this.chart.getSortedVisibleDatasetMetas(),r=this.axis+"AxisID",s=[];let i,o;for(i=0,o=n.length;i<o;++i){const a=n[i];a[r]===this.id&&(!t||a.type===t)&&s.push(a)}return s}_resolveTickFontOptions(t){const n=this.options.ticks.setContext(this.getContext(t));return Tn(n.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Mf{constructor(t,n,r){this.type=t,this.scope=n,this.override=r,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const n=Object.getPrototypeOf(t);let r;mee(n)&&(r=this.register(n));const s=this.items,i=t.id,o=this.scope+"."+i;if(!i)throw new Error("class does not have id: "+t);return i in s||(s[i]=t,hee(t,o,r),this.override&&dn.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const n=this.items,r=t.id,s=this.scope;r in n&&delete n[r],s&&r in dn[s]&&(delete dn[s][r],this.override&&delete Ya[r])}}function hee(e,t,n){const r=fd(Object.create(null),[n?dn.get(n):{},dn.get(t),e.defaults]);dn.set(t,r),e.defaultRoutes&&pee(t,e.defaultRoutes),e.descriptors&&dn.describe(t,e.descriptors)}function pee(e,t){Object.keys(t).forEach(n=>{const r=n.split("."),s=r.pop(),i=[e].concat(r).join("."),o=t[n].split("."),a=o.pop(),l=o.join(".");dn.route(i,s,l,a)})}function mee(e){return"id"in e&&"defaults"in e}class gee{constructor(){this.controllers=new Mf(Lc,"datasets",!0),this.elements=new Mf(Hu,"elements"),this.plugins=new Mf(Object,"plugins"),this.scales=new Mf(ll,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,n,r){[...n].forEach(s=>{const i=r||this._getRegistryForType(s);r||i.isForType(s)||i===this.plugins&&s.id?this._exec(t,i,s):Rt(s,o=>{const a=r||this._getRegistryForType(o);this._exec(t,a,o)})})}_exec(t,n,r){const s=iS(t);jt(r["before"+s],[],r),n[t](r),jt(r["after"+s],[],r)}_getRegistryForType(t){for(let n=0;n<this._typedRegistries.length;n++){const r=this._typedRegistries[n];if(r.isForType(t))return r}return this.plugins}_get(t,n,r){const s=n.get(t);if(s===void 0)throw new Error('"'+t+'" is not a registered '+r+".");return s}}var Gs=new gee;class vee{constructor(){this._init=[]}notify(t,n,r,s){n==="beforeInit"&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const i=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(i,t,n,r);return n==="afterDestroy"&&(this._notify(i,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,n,r,s){s=s||{};for(const i of t){const o=i.plugin,a=o[r],l=[n,s,i.options];if(jt(a,l,o)===!1&&s.cancelable)return!1}return!0}invalidate(){Mt(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const n=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),n}_createDescriptors(t,n){const r=t&&t.config,s=Et(r.options&&r.options.plugins,{}),i=yee(r);return s===!1&&!n?[]:wee(t,i,s,n)}_notifyStateChanges(t){const n=this._oldCache||[],r=this._cache,s=(i,o)=>i.filter(a=>!o.some(l=>a.plugin.id===l.plugin.id));this._notify(s(n,r),t,"stop"),this._notify(s(r,n),t,"start")}}function yee(e){const t={},n=[],r=Object.keys(Gs.plugins.items);for(let i=0;i<r.length;i++)n.push(Gs.getPlugin(r[i]));const s=e.plugins||[];for(let i=0;i<s.length;i++){const o=s[i];n.indexOf(o)===-1&&(n.push(o),t[o.id]=!0)}return{plugins:n,localIds:t}}function bee(e,t){return!t&&e===!1?null:e===!0?{}:e}function wee(e,{plugins:t,localIds:n},r,s){const i=[],o=e.getContext();for(const a of t){const l=a.id,u=bee(r[l],s);u!==null&&i.push({plugin:a,options:See(e.config,{plugin:a,local:n[l]},u,o)})}return i}function See(e,{plugin:t,local:n},r,s){const i=e.pluginScopeKeys(t),o=e.getOptionScopes(r,i);return n&&t.defaults&&o.push(t.defaults),e.createResolver(o,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Ky(e,t){const n=dn.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||n.indexAxis||"x"}function _ee(e,t){let n=e;return e==="_index_"?n=t:e==="_value_"&&(n=t==="x"?"y":"x"),n}function kee(e,t){return e===t?"_index_":"_value_"}function Cx(e){if(e==="x"||e==="y"||e==="r")return e}function xee(e){if(e==="top"||e==="bottom")return"x";if(e==="left"||e==="right")return"y"}function Yy(e,...t){if(Cx(e))return e;for(const n of t){const r=n.axis||xee(n.position)||e.length>1&&Cx(e[0].toLowerCase());if(r)return r}throw new Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function Px(e,t,n){if(n[t+"AxisID"]===e)return{axis:t}}function Eee(e,t){if(t.data&&t.data.datasets){const n=t.data.datasets.filter(r=>r.xAxisID===e||r.yAxisID===e);if(n.length)return Px(e,"x",n[0])||Px(e,"y",n[0])}return{}}function Cee(e,t){const n=Ya[e.type]||{scales:{}},r=t.scales||{},s=Ky(e.type,t),i=Object.create(null);return Object.keys(r).forEach(o=>{const a=r[o];if(!St(a))return console.error(`Invalid scale configuration for scale: ${o}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${o}`);const l=Yy(o,a,Eee(o,e),dn.scales[a.type]),u=kee(l,s),d=n.scales||{};i[o]=Oc(Object.create(null),[{axis:l},a,d[l],d[u]])}),e.data.datasets.forEach(o=>{const a=o.type||e.type,l=o.indexAxis||Ky(a,t),d=(Ya[a]||{}).scales||{};Object.keys(d).forEach(c=>{const f=_ee(c,l),p=o[f+"AxisID"]||f;i[p]=i[p]||Object.create(null),Oc(i[p],[{axis:f},r[p],d[c]])})}),Object.keys(i).forEach(o=>{const a=i[o];Oc(a,[dn.scales[a.type],dn.scale])}),i}function HM(e){const t=e.options||(e.options={});t.plugins=Et(t.plugins,{}),t.scales=Cee(e,t)}function jM(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function Pee(e){return e=e||{},e.data=jM(e.data),HM(e),e}const Tx=new Map,WM=new Set;function Df(e,t){let n=Tx.get(e);return n||(n=t(),Tx.set(e,n),WM.add(n)),n}const oc=(e,t,n)=>{const r=Su(t,n);r!==void 0&&e.add(r)};class Tee{constructor(t){this._config=Pee(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=jM(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),HM(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Df(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,n){return Df(`${t}.transition.${n}`,()=>[[`datasets.${t}.transitions.${n}`,`transitions.${n}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,n){return Df(`${t}-${n}`,()=>[[`datasets.${t}.elements.${n}`,`datasets.${t}`,`elements.${n}`,""]])}pluginScopeKeys(t){const n=t.id,r=this.type;return Df(`${r}-plugin-${n}`,()=>[[`plugins.${n}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,n){const r=this._scopeCache;let s=r.get(t);return(!s||n)&&(s=new Map,r.set(t,s)),s}getOptionScopes(t,n,r){const{options:s,type:i}=this,o=this._cachedScopes(t,r),a=o.get(n);if(a)return a;const l=new Set;n.forEach(d=>{t&&(l.add(t),d.forEach(c=>oc(l,t,c))),d.forEach(c=>oc(l,s,c)),d.forEach(c=>oc(l,Ya[i]||{},c)),d.forEach(c=>oc(l,dn,c)),d.forEach(c=>oc(l,Gy,c))});const u=Array.from(l);return u.length===0&&u.push(Object.create(null)),WM.has(n)&&o.set(n,u),u}chartOptionScopes(){const{options:t,type:n}=this;return[t,Ya[n]||{},dn.datasets[n]||{},{type:n},dn,Gy]}resolveNamedOptions(t,n,r,s=[""]){const i={$shared:!0},{resolver:o,subPrefixes:a}=Rx(this._resolverCache,t,s);let l=o;if(Iee(o,n)){i.$shared=!1,r=$o(r)?r():r;const u=this.createResolver(t,r,a);l=_u(o,r,u)}for(const u of n)i[u]=l[u];return i}createResolver(t,n,r=[""],s){const{resolver:i}=Rx(this._resolverCache,t,r);return St(n)?_u(i,n,void 0,s):i}}function Rx(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));const s=n.join();let i=r.get(s);return i||(i={resolver:fS(t,n),subPrefixes:n.filter(a=>!a.toLowerCase().includes("hover"))},r.set(s,i)),i}const Ree=e=>St(e)&&Object.getOwnPropertyNames(e).some(t=>$o(e[t]));function Iee(e,t){const{isScriptable:n,isIndexable:r}=RM(e);for(const s of t){const i=n(s),o=r(s),a=(o||i)&&e[s];if(i&&($o(a)||Ree(a))||o&&on(a))return!0}return!1}var Aee="4.4.6";const Oee=["top","bottom","left","right","chartArea"];function Ix(e,t){return e==="top"||e==="bottom"||Oee.indexOf(e)===-1&&t==="x"}function Ax(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function Ox(e){const t=e.chart,n=t.options.animation;t.notifyPlugins("afterRender"),jt(n&&n.onComplete,[e],t)}function Mee(e){const t=e.chart,n=t.options.animation;jt(n&&n.onProgress,[e],t)}function qM(e){return mS()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const gh={},Mx=e=>{const t=qM(e);return Object.values(gh).filter(n=>n.canvas===t).pop()};function Dee(e,t,n){const r=Object.keys(e);for(const s of r){const i=+s;if(i>=t){const o=e[s];delete e[s],(n>0||i>t)&&(e[i+n]=o)}}}function Lee(e,t,n,r){return!n||e.type==="mouseout"?null:r?t:e}function Lf(e,t,n){return e.options.clip?e[n]:t[n]}function $ee(e,t){const{xScale:n,yScale:r}=e;return n&&r?{left:Lf(n,t,"left"),right:Lf(n,t,"right"),top:Lf(r,t,"top"),bottom:Lf(r,t,"bottom")}:t}var Xi;let Em=(Xi=class{static register(...t){Gs.add(...t),Dx()}static unregister(...t){Gs.remove(...t),Dx()}constructor(t,n){const r=this.config=new Tee(n),s=qM(t),i=Mx(s);if(i)throw new Error("Canvas is already in use. Chart with ID '"+i.id+"' must be destroyed before the canvas with ID '"+i.canvas.id+"' can be reused.");const o=r.createResolver(r.chartOptionScopes(),this.getContext());this.platform=new(r.platform||ZZ(s)),this.platform.updateConfig(r);const a=this.platform.acquireContext(s,o.aspectRatio),l=a&&a.canvas,u=l&&l.height,d=l&&l.width;if(this.id=nJ(),this.ctx=a,this.canvas=l,this.width=d,this.height=u,this._options=o,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new vee,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=bJ(c=>this.update(c),o.resizeDelay||0),this._dataChanges=[],gh[this.id]=this,!a||!l){console.error("Failed to create chart: can't acquire context from the given item");return}_i.listen(this,"complete",Ox),_i.listen(this,"progress",Mee),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:n},width:r,height:s,_aspectRatio:i}=this;return Mt(t)?n&&i?i:s?r/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Gs}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ix(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return tx(this.canvas,this.ctx),this}stop(){return _i.stop(this),this}resize(t,n){_i.running(this)?this._resizeBeforeDraw={width:t,height:n}:this._resize(t,n)}_resize(t,n){const r=this.options,s=this.canvas,i=r.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,n,i),a=r.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ix(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),jt(r.onResize,[this,o],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const n=this.options.scales||{};Rt(n,(r,s)=>{r.id=s})}buildOrUpdateScales(){const t=this.options,n=t.scales,r=this.scales,s=Object.keys(r).reduce((o,a)=>(o[a]=!1,o),{});let i=[];n&&(i=i.concat(Object.keys(n).map(o=>{const a=n[o],l=Yy(o,a),u=l==="r",d=l==="x";return{options:a,dposition:u?"chartArea":d?"bottom":"left",dtype:u?"radialLinear":d?"category":"linear"}}))),Rt(i,o=>{const a=o.options,l=a.id,u=Yy(l,a),d=Et(a.type,o.dtype);(a.position===void 0||Ix(a.position,u)!==Ix(o.dposition))&&(a.position=o.dposition),s[l]=!0;let c=null;if(l in r&&r[l].type===d)c=r[l];else{const f=Gs.getScale(d);c=new f({id:l,type:d,ctx:this.ctx,chart:this}),r[c.id]=c}c.init(a,t)}),Rt(s,(o,a)=>{o||delete r[a]}),Rt(r,o=>{ls.configure(this,o,o.options),ls.addBox(this,o)})}_updateMetasets(){const t=this._metasets,n=this.data.datasets.length,r=t.length;if(t.sort((s,i)=>s.index-i.index),r>n){for(let s=n;s<r;++s)this._destroyDatasetMeta(s);t.splice(n,r-n)}this._sortedMetasets=t.slice(0).sort(Ax("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:n}}=this;t.length>n.length&&delete this._stacks,t.forEach((r,s)=>{n.filter(i=>i===r._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],n=this.data.datasets;let r,s;for(this._removeUnreferencedMetasets(),r=0,s=n.length;r<s;r++){const i=n[r];let o=this.getDatasetMeta(r);const a=i.type||this.config.type;if(o.type&&o.type!==a&&(this._destroyDatasetMeta(r),o=this.getDatasetMeta(r)),o.type=a,o.indexAxis=i.indexAxis||Ky(a,this.options),o.order=i.order||0,o.index=r,o.label=""+i.label,o.visible=this.isDatasetVisible(r),o.controller)o.controller.updateIndex(r),o.controller.linkScales();else{const l=Gs.getController(a),{datasetElementType:u,dataElementType:d}=dn.datasets[a];Object.assign(l,{dataElementType:Gs.getElement(d),datasetElementType:u&&Gs.getElement(u)}),o.controller=new l(this,r),t.push(o.controller)}}return this._updateMetasets(),t}_resetElements(){Rt(this.data.datasets,(t,n)=>{this.getDatasetMeta(n).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const n=this.config;n.update();const r=this._options=n.createResolver(n.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!r.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const i=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let u=0,d=this.data.datasets.length;u<d;u++){const{controller:c}=this.getDatasetMeta(u),f=!s&&i.indexOf(c)===-1;c.buildOrUpdateElements(f),o=Math.max(+c.getMaxOverflow(),o)}o=this._minPadding=r.layout.autoPadding?o:0,this._updateLayout(o),s||Rt(i,u=>{u.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Ax("z","_idx"));const{_active:a,_lastEvent:l}=this;l?this._eventHandler(l,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){Rt(this.scales,t=>{ls.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,n=new Set(Object.keys(this._listeners)),r=new Set(t.events);(!qk(n,r)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,n=this._getUniformDataChanges()||[];for(const{method:r,start:s,count:i}of n){const o=r==="_removeElements"?-i:i;Dee(t,s,o)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const n=this.data.datasets.length,r=i=>new Set(t.filter(o=>o[0]===i).map((o,a)=>a+","+o.splice(1).join(","))),s=r(0);for(let i=1;i<n;i++)if(!qk(s,r(i)))return;return Array.from(s).map(i=>i.split(",")).map(i=>({method:i[1],start:+i[2],count:+i[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;ls.update(this,this.width,this.height,t);const n=this.chartArea,r=n.width<=0||n.height<=0;this._layers=[],Rt(this.boxes,s=>{r&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,i)=>{s._idx=i}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let n=0,r=this.data.datasets.length;n<r;++n)this.getDatasetMeta(n).controller.configure();for(let n=0,r=this.data.datasets.length;n<r;++n)this._updateDataset(n,$o(t)?t({datasetIndex:n}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,n){const r=this.getDatasetMeta(t),s={meta:r,index:t,mode:n,cancelable:!0};this.notifyPlugins("beforeDatasetUpdate",s)!==!1&&(r.controller._update(n),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){this.notifyPlugins("beforeRender",{cancelable:!0})!==!1&&(_i.has(this)?this.attached&&!_i.running(this)&&_i.start(this):(this.draw(),Ox({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:r,height:s}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(r,s)}if(this.clear(),this.width<=0||this.height<=0||this.notifyPlugins("beforeDraw",{cancelable:!0})===!1)return;const n=this._layers;for(t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(this.chartArea);for(this._drawDatasets();t<n.length;++t)n[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const n=this._sortedMetasets,r=[];let s,i;for(s=0,i=n.length;s<i;++s){const o=n[s];(!t||o.visible)&&r.push(o)}return r}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0})===!1)return;const t=this.getSortedVisibleDatasetMetas();for(let n=t.length-1;n>=0;--n)this._drawDataset(t[n]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const n=this.ctx,r=t._clip,s=!r.disabled,i=$ee(t,this.chartArea),o={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",o)!==!1&&(s&&cS(n,{left:r.left===!1?0:i.left-r.left,right:r.right===!1?this.width:i.right+r.right,top:r.top===!1?0:i.top-r.top,bottom:r.bottom===!1?this.height:i.bottom+r.bottom}),t.controller.draw(),s&&dS(n),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Ll(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,n,r,s){const i=OZ.modes[n];return typeof i=="function"?i(this,t,r,s):[]}getDatasetMeta(t){const n=this.data.datasets[t],r=this._metasets;let s=r.filter(i=>i&&i._dataset===n).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:n&&n.order||0,index:t,_dataset:n,_parsed:[],_sorted:!1},r.push(s)),s}getContext(){return this.$context||(this.$context=al(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const n=this.data.datasets[t];if(!n)return!1;const r=this.getDatasetMeta(t);return typeof r.hidden=="boolean"?!r.hidden:!n.hidden}setDatasetVisibility(t,n){const r=this.getDatasetMeta(t);r.hidden=!n}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,n,r){const s=r?"show":"hide",i=this.getDatasetMeta(t),o=i.controller._resolveAnimations(void 0,s);hd(n)?(i.data[n].hidden=!r,this.update()):(this.setDatasetVisibility(t,r),o.update(i,{visible:r}),this.update(a=>a.datasetIndex===t?s:void 0))}hide(t,n){this._updateVisibility(t,n,!1)}show(t,n){this._updateVisibility(t,n,!0)}_destroyDatasetMeta(t){const n=this._metasets[t];n&&n.controller&&n.controller._destroy(),delete this._metasets[t]}_stop(){let t,n;for(this.stop(),_i.remove(this),t=0,n=this.data.datasets.length;t<n;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:n}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),tx(t,n),this.platform.releaseContext(n),this.canvas=null,this.ctx=null),delete gh[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,n=this.platform,r=(i,o)=>{n.addEventListener(this,i,o),t[i]=o},s=(i,o,a)=>{i.offsetX=o,i.offsetY=a,this._eventHandler(i)};Rt(this.options.events,i=>r(i,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,n=this.platform,r=(l,u)=>{n.addEventListener(this,l,u),t[l]=u},s=(l,u)=>{t[l]&&(n.removeEventListener(this,l,u),delete t[l])},i=(l,u)=>{this.canvas&&this.resize(l,u)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),r("resize",i),r("detach",o)};o=()=>{this.attached=!1,s("resize",i),this._stop(),this._resize(0,0),r("attach",a)},n.isAttached(this.canvas)?a():o()}unbindEvents(){Rt(this._listeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._listeners={},Rt(this._responsiveListeners,(t,n)=>{this.platform.removeEventListener(this,n,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,n,r){const s=r?"set":"remove";let i,o,a,l;for(n==="dataset"&&(i=this.getDatasetMeta(t[0].datasetIndex),i.controller["_"+s+"DatasetHoverStyle"]()),a=0,l=t.length;a<l;++a){o=t[a];const u=o&&this.getDatasetMeta(o.datasetIndex).controller;u&&u[s+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const n=this._active||[],r=t.map(({datasetIndex:i,index:o})=>{const a=this.getDatasetMeta(i);if(!a)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:a.data[o],index:o}});!ap(r,n)&&(this._active=r,this._lastEvent=null,this._updateHoverStyles(r,n))}notifyPlugins(t,n,r){return this._plugins.notify(this,t,n,r)}isPluginEnabled(t){return this._plugins._cache.filter(n=>n.plugin.id===t).length===1}_updateHoverStyles(t,n,r){const s=this.options.hover,i=(l,u)=>l.filter(d=>!u.some(c=>d.datasetIndex===c.datasetIndex&&d.index===c.index)),o=i(n,t),a=r?t:i(t,n);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,n){const r={event:t,replay:n,cancelable:!0,inChartArea:this.isPointInArea(t)},s=o=>(o.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",r,s)===!1)return;const i=this._handleEvent(t,n,r.inChartArea);return r.cancelable=!1,this.notifyPlugins("afterEvent",r,s),(i||r.changed)&&this.render(),this}_handleEvent(t,n,r){const{_active:s=[],options:i}=this,o=n,a=this._getActiveElements(t,s,r,o),l=lJ(t),u=Lee(t,this._lastEvent,r,l);r&&(this._lastEvent=null,jt(i.onHover,[t,a,this],this),l&&jt(i.onClick,[t,a,this],this));const d=!ap(a,s);return(d||n)&&(this._active=a,this._updateHoverStyles(a,s,n)),this._lastEvent=u,d}_getActiveElements(t,n,r,s){if(t.type==="mouseout")return[];if(!r)return n;const i=this.options.hover;return this.getElementsAtEventForMode(t,i.mode,i,s)}},he(Xi,"defaults",dn),he(Xi,"instances",gh),he(Xi,"overrides",Ya),he(Xi,"registry",Gs),he(Xi,"version",Aee),he(Xi,"getChart",Mx),Xi);function Dx(){return Rt(Em.instances,e=>e._plugins.invalidate())}function GM(e,t){const{x:n,y:r,base:s,width:i,height:o}=e.getProps(["x","y","base","width","height"],t);let a,l,u,d,c;return e.horizontal?(c=o/2,a=Math.min(n,s),l=Math.max(n,s),u=r-c,d=r+c):(c=i/2,a=n-c,l=n+c,u=Math.min(r,s),d=Math.max(r,s)),{left:a,top:u,right:l,bottom:d}}function ko(e,t,n,r){return e?0:Es(t,n,r)}function Fee(e,t,n){const r=e.options.borderWidth,s=e.borderSkipped,i=TM(r);return{t:ko(s.top,i.top,0,n),r:ko(s.right,i.right,0,t),b:ko(s.bottom,i.bottom,0,n),l:ko(s.left,i.left,0,t)}}function Nee(e,t,n){const{enableBorderRadius:r}=e.getProps(["enableBorderRadius"]),s=e.options.borderRadius,i=Da(s),o=Math.min(t,n),a=e.borderSkipped,l=r||St(s);return{topLeft:ko(!l||a.top||a.left,i.topLeft,0,o),topRight:ko(!l||a.top||a.right,i.topRight,0,o),bottomLeft:ko(!l||a.bottom||a.left,i.bottomLeft,0,o),bottomRight:ko(!l||a.bottom||a.right,i.bottomRight,0,o)}}function Bee(e){const t=GM(e),n=t.right-t.left,r=t.bottom-t.top,s=Fee(e,n/2,r/2),i=Nee(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r,radius:i},inner:{x:t.left+s.l,y:t.top+s.t,w:n-s.l-s.r,h:r-s.t-s.b,radius:{topLeft:Math.max(0,i.topLeft-Math.max(s.t,s.l)),topRight:Math.max(0,i.topRight-Math.max(s.t,s.r)),bottomLeft:Math.max(0,i.bottomLeft-Math.max(s.b,s.l)),bottomRight:Math.max(0,i.bottomRight-Math.max(s.b,s.r))}}}}function Bg(e,t,n,r){const s=t===null,i=n===null,a=e&&!(s&&i)&&GM(e,r);return a&&(s||Dl(t,a.left,a.right))&&(i||Dl(n,a.top,a.bottom))}function Vee(e){return e.topLeft||e.topRight||e.bottomLeft||e.bottomRight}function Uee(e,t){e.rect(t.x,t.y,t.w,t.h)}function Vg(e,t,n={}){const r=e.x!==n.x?-t:0,s=e.y!==n.y?-t:0,i=(e.x+e.w!==n.x+n.w?t:0)-r,o=(e.y+e.h!==n.y+n.h?t:0)-s;return{x:e.x+r,y:e.y+s,w:e.w+i,h:e.h+o,radius:e.radius}}class vh extends Hu{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:n,options:{borderColor:r,backgroundColor:s}}=this,{inner:i,outer:o}=Bee(this),a=Vee(o.radius)?pd:Uee;t.save(),(o.w!==i.w||o.h!==i.h)&&(t.beginPath(),a(t,Vg(o,n,i)),t.clip(),a(t,Vg(i,-n,o)),t.fillStyle=r,t.fill("evenodd")),t.beginPath(),a(t,Vg(i,n)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,n,r){return Bg(this,t,n,r)}inXRange(t,n){return Bg(this,t,null,n)}inYRange(t,n){return Bg(this,null,t,n)}getCenterPoint(t){const{x:n,y:r,base:s,horizontal:i}=this.getProps(["x","y","base","horizontal"],t);return{x:i?(n+s)/2:n,y:i?r:(r+s)/2}}getRange(t){return t==="x"?this.width/2:this.height/2}}he(vh,"id","bar"),he(vh,"defaults",{borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0}),he(vh,"defaultRoutes",{backgroundColor:"backgroundColor",borderColor:"borderColor"});const Lx=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},zee=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class $x extends Hu{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n,r){this.maxWidth=t,this.maxHeight=n,this._margins=r,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let n=jt(t.generateLabels,[this.chart],this)||[];t.filter&&(n=n.filter(r=>t.filter(r,this.chart.data))),t.sort&&(n=n.sort((r,s)=>t.sort(r,s,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:t,ctx:n}=this;if(!t.display){this.width=this.height=0;return}const r=t.labels,s=Tn(r.font),i=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Lx(r,i);let u,d;n.font=s.string,this.isHorizontal()?(u=this.maxWidth,d=this._fitRows(o,i,a,l)+10):(d=this.maxHeight,u=this._fitCols(o,s,a,l)+10),this.width=Math.min(u,t.maxWidth||this.maxWidth),this.height=Math.min(d,t.maxHeight||this.maxHeight)}_fitRows(t,n,r,s){const{ctx:i,maxWidth:o,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.lineWidths=[0],d=s+a;let c=t;i.textAlign="left",i.textBaseline="middle";let f=-1,p=-d;return this.legendItems.forEach((m,g)=>{const y=r+n/2+i.measureText(m.text).width;(g===0||u[u.length-1]+y+2*a>o)&&(c+=d,u[u.length-(g>0?0:1)]=0,p+=d,f++),l[g]={left:0,top:p,row:f,width:y,height:s},u[u.length-1]+=y+a}),c}_fitCols(t,n,r,s){const{ctx:i,maxHeight:o,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],u=this.columnSizes=[],d=o-t;let c=a,f=0,p=0,m=0,g=0;return this.legendItems.forEach((y,b)=>{const{itemWidth:_,itemHeight:S}=Hee(r,n,i,y,s);b>0&&p+S+2*a>d&&(c+=f+a,u.push({width:f,height:p}),m+=f+a,g++,f=p=0),l[b]={left:m,top:p,col:g,width:_,height:S},f=Math.max(f,_),p+=S+a}),c+=f,u.push({width:f,height:p}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:r,labels:{padding:s},rtl:i}}=this,o=jl(i,this.left,this.width);if(this.isHorizontal()){let a=0,l=Gn(r,this.left+s,this.right-this.lineWidths[a]);for(const u of n)a!==u.row&&(a=u.row,l=Gn(r,this.left+s,this.right-this.lineWidths[a])),u.top+=this.top+t+s,u.left=o.leftForLtr(o.x(l),u.width),l+=u.width+s}else{let a=0,l=Gn(r,this.top+t+s,this.bottom-this.columnSizes[a].height);for(const u of n)u.col!==a&&(a=u.col,l=Gn(r,this.top+t+s,this.bottom-this.columnSizes[a].height)),u.top=l,u.left+=this.left+s,u.left=o.leftForLtr(o.x(u.left),u.width),l+=u.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;cS(t,this),this._draw(),dS(t)}}_draw(){const{options:t,columnSizes:n,lineWidths:r,ctx:s}=this,{align:i,labels:o}=t,a=dn.color,l=jl(t.rtl,this.left,this.width),u=Tn(o.font),{padding:d}=o,c=u.size,f=c/2;let p;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=u.string;const{boxWidth:m,boxHeight:g,itemHeight:y}=Lx(o,c),b=function(R,P,x){if(isNaN(m)||m<=0||isNaN(g)||g<0)return;s.save();const w=Et(x.lineWidth,1);if(s.fillStyle=Et(x.fillStyle,a),s.lineCap=Et(x.lineCap,"butt"),s.lineDashOffset=Et(x.lineDashOffset,0),s.lineJoin=Et(x.lineJoin,"miter"),s.lineWidth=w,s.strokeStyle=Et(x.strokeStyle,a),s.setLineDash(Et(x.lineDash,[])),o.usePointStyle){const C={radius:g*Math.SQRT2/2,pointStyle:x.pointStyle,rotation:x.rotation,borderWidth:w},O=l.xPlus(R,m/2),A=P+f;CM(s,C,O,A,o.pointStyleWidth&&m)}else{const C=P+Math.max((c-g)/2,0),O=l.leftForLtr(R,m),A=Da(x.borderRadius);s.beginPath(),Object.values(A).some(M=>M!==0)?pd(s,{x:O,y:C,w:m,h:g,radius:A}):s.rect(O,C,m,g),s.fill(),w!==0&&s.stroke()}s.restore()},_=function(R,P,x){Xa(s,x.text,R,P+y/2,u,{strikethrough:x.hidden,textAlign:l.textAlign(x.textAlign)})},S=this.isHorizontal(),T=this._computeTitleHeight();S?p={x:Gn(i,this.left+d,this.right-r[0]),y:this.top+d+T,line:0}:p={x:this.left+d,y:Gn(i,this.top+T+d,this.bottom-n[0].height),line:0},MM(this.ctx,t.textDirection);const E=y+d;this.legendItems.forEach((R,P)=>{s.strokeStyle=R.fontColor,s.fillStyle=R.fontColor;const x=s.measureText(R.text).width,w=l.textAlign(R.textAlign||(R.textAlign=o.textAlign)),C=m+f+x;let O=p.x,A=p.y;l.setWidth(this.width),S?P>0&&O+C+d>this.right&&(A=p.y+=E,p.line++,O=p.x=Gn(i,this.left+d,this.right-r[p.line])):P>0&&A+E>this.bottom&&(O=p.x=O+n[p.line].width+d,p.line++,A=p.y=Gn(i,this.top+T+d,this.bottom-n[p.line].height));const M=l.x(O);if(b(M,A,R),O=wJ(w,O+m+f,S?O+C:this.right,t.rtl),_(l.x(O),A,R),S)p.x+=C+d;else if(typeof R.text!="string"){const L=u.lineHeight;p.y+=KM(R,L)+d}else p.y+=E}),DM(this.ctx,t.textDirection)}drawTitle(){const t=this.options,n=t.title,r=Tn(n.font),s=rr(n.padding);if(!n.display)return;const i=jl(t.rtl,this.left,this.width),o=this.ctx,a=n.position,l=r.size/2,u=s.top+l;let d,c=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),d=this.top+u,c=Gn(t.align,c,this.right-f);else{const m=this.columnSizes.reduce((g,y)=>Math.max(g,y.height),0);d=u+Gn(t.align,this.top,this.bottom-m-t.labels.padding-this._computeTitleHeight())}const p=Gn(a,c,c+f);o.textAlign=i.textAlign(lS(a)),o.textBaseline="middle",o.strokeStyle=n.color,o.fillStyle=n.color,o.font=r.string,Xa(o,n.text,p,d,r)}_computeTitleHeight(){const t=this.options.title,n=Tn(t.font),r=rr(t.padding);return t.display?n.lineHeight+r.height:0}_getLegendItemAt(t,n){let r,s,i;if(Dl(t,this.left,this.right)&&Dl(n,this.top,this.bottom)){for(i=this.legendHitBoxes,r=0;r<i.length;++r)if(s=i[r],Dl(t,s.left,s.left+s.width)&&Dl(n,s.top,s.top+s.height))return this.legendItems[r]}return null}handleEvent(t){const n=this.options;if(!qee(t.type,n))return;const r=this._getLegendItemAt(t.x,t.y);if(t.type==="mousemove"||t.type==="mouseout"){const s=this._hoveredItem,i=zee(s,r);s&&!i&&jt(n.onLeave,[t,s,this],this),this._hoveredItem=r,r&&!i&&jt(n.onHover,[t,r,this],this)}else r&&jt(n.onClick,[t,r,this],this)}}function Hee(e,t,n,r,s){const i=jee(r,e,t,n),o=Wee(s,r,t.lineHeight);return{itemWidth:i,itemHeight:o}}function jee(e,t,n,r){let s=e.text;return s&&typeof s!="string"&&(s=s.reduce((i,o)=>i.length>o.length?i:o)),t+n.size/2+r.measureText(s).width}function Wee(e,t,n){let r=e;return typeof t.text!="string"&&(r=KM(t,n)),r}function KM(e,t){const n=e.text?e.text.length:0;return t*n}function qee(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var Gee={id:"legend",_element:$x,start(e,t,n){const r=e.legend=new $x({ctx:e.ctx,options:n,chart:e});ls.configure(e,r,n),ls.addBox(e,r)},stop(e){ls.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){const r=e.legend;ls.configure(e,r,n),r.options=n},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){const r=t.datasetIndex,s=n.chart;s.isDatasetVisible(r)?(s.hide(r),t.hidden=!0):(s.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:s,color:i,useBorderRadius:o,borderRadius:a}}=e.legend.options;return e._getSortedDatasetMetas().map(l=>{const u=l.controller.getStyle(n?0:void 0),d=rr(u.borderWidth);return{text:t[l.index].label,fillStyle:u.backgroundColor,fontColor:i,hidden:!l.visible,lineCap:u.borderCapStyle,lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:(d.width+d.height)/4,strokeStyle:u.borderColor,pointStyle:r||u.pointStyle,rotation:u.rotation,textAlign:s||u.textAlign,borderRadius:o&&(a||u.borderRadius),datasetIndex:l.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class YM extends Hu{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,n){const r=this.options;if(this.left=0,this.top=0,!r.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=n;const s=on(r.text)?r.text.length:1;this._padding=rr(r.padding);const i=s*Tn(r.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:n,left:r,bottom:s,right:i,options:o}=this,a=o.align;let l=0,u,d,c;return this.isHorizontal()?(d=Gn(a,r,i),c=n+t,u=i-r):(o.position==="left"?(d=r+t,c=Gn(a,s,n),l=Ln*-.5):(d=i-t,c=Gn(a,n,s),l=Ln*.5),u=s-n),{titleX:d,titleY:c,maxWidth:u,rotation:l}}draw(){const t=this.ctx,n=this.options;if(!n.display)return;const r=Tn(n.font),i=r.lineHeight/2+this._padding.top,{titleX:o,titleY:a,maxWidth:l,rotation:u}=this._drawArgs(i);Xa(t,n.text,0,0,r,{color:n.color,maxWidth:l,rotation:u,textAlign:lS(n.align),textBaseline:"middle",translation:[o,a]})}}function Kee(e,t){const n=new YM({ctx:e.ctx,options:t,chart:e});ls.configure(e,n,t),ls.addBox(e,n),e.titleBlock=n}var Yee={id:"title",_element:YM,start(e,t,n){Kee(e,n)},stop(e){const t=e.titleBlock;ls.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){const r=e.titleBlock;ls.configure(e,r,n),r.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const mc={average(e){if(!e.length)return!1;let t,n,r=new Set,s=0,i=0;for(t=0,n=e.length;t<n;++t){const a=e[t].element;if(a&&a.hasValue()){const l=a.tooltipPosition();r.add(l.x),s+=l.y,++i}}return i===0||r.size===0?!1:{x:[...r].reduce((a,l)=>a+l)/r.size,y:s/i}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,s=Number.POSITIVE_INFINITY,i,o,a;for(i=0,o=e.length;i<o;++i){const l=e[i].element;if(l&&l.hasValue()){const u=l.getCenterPoint(),d=hJ(t,u);d<s&&(s=d,a=l)}}if(a){const l=a.tooltipPosition();n=l.x,r=l.y}return{x:n,y:r}}};function Hs(e,t){return t&&(on(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function ki(e){return(typeof e=="string"||e instanceof String)&&e.indexOf(`
|
|
83
83
|
`)>-1?e.split(`
|
|
84
|
-
`):e}function Xee(e,t){const{element:n,datasetIndex:r,index:s}=t,i=e.getDatasetMeta(r).controller,{label:o,value:a}=i.getLabelAndValue(s);return{chart:e,label:o,parsed:i.getParsed(s),raw:e.data.datasets[r].data[s],formattedValue:a,dataset:i.getDataset(),dataIndex:s,datasetIndex:r,element:n}}function Fx(e,t){const n=e.chart.ctx,{body:r,footer:s,title:i}=e,{boxWidth:o,boxHeight:a}=t,l=Tn(t.bodyFont),u=Tn(t.titleFont),d=Tn(t.footerFont),c=i.length,f=s.length,p=r.length,m=rr(t.padding);let g=m.height,y=0,b=r.reduce((T,E)=>T+E.before.length+E.lines.length+E.after.length,0);if(b+=e.beforeBody.length+e.afterBody.length,c&&(g+=c*u.lineHeight+(c-1)*t.titleSpacing+t.titleMarginBottom),b){const T=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;g+=p*T+(b-p)*l.lineHeight+(b-1)*t.bodySpacing}f&&(g+=t.footerMarginTop+f*d.lineHeight+(f-1)*t.footerSpacing);let _=0;const S=function(T){y=Math.max(y,n.measureText(T).width+_)};return n.save(),n.font=u.string,Rt(e.title,S),n.font=l.string,Rt(e.beforeBody.concat(e.afterBody),S),_=t.displayColors?o+2+t.boxPadding:0,Rt(r,T=>{Rt(T.before,S),Rt(T.lines,S),Rt(T.after,S)}),_=0,n.font=d.string,Rt(e.footer,S),n.restore(),y+=m.width,{width:y,height:g}}function Qee(e,t){const{y:n,height:r}=t;return n<r/2?"top":n>e.height-r/2?"bottom":"center"}function Jee(e,t,n,r){const{x:s,width:i}=r,o=n.caretSize+n.caretPadding;if(e==="left"&&s+i+o>t.width||e==="right"&&s-i-o<0)return!0}function Zee(e,t,n,r){const{x:s,width:i}=n,{width:o,chartArea:{left:a,right:l}}=e;let u="center";return r==="center"?u=s<=(a+l)/2?"left":"right":s<=i/2?u="left":s>=o-i/2&&(u="right"),Jee(u,e,t,n)&&(u="center"),u}function Nx(e,t,n){const r=n.yAlign||t.yAlign||Qee(e,n);return{xAlign:n.xAlign||t.xAlign||Zee(e,t,n,r),yAlign:r}}function ete(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function tte(e,t,n){let{y:r,height:s}=e;return t==="top"?r+=n:t==="bottom"?r-=s+n:r-=s/2,r}function Bx(e,t,n,r){const{caretSize:s,caretPadding:i,cornerRadius:o}=e,{xAlign:a,yAlign:l}=n,u=s+i,{topLeft:d,topRight:c,bottomLeft:f,bottomRight:p}=Da(o);let m=ete(t,a);const g=tte(t,l,u);return l==="center"?a==="left"?m+=u:a==="right"&&(m-=u):a==="left"?m-=Math.max(d,f)+s:a==="right"&&(m+=Math.max(c,p)+s),{x:Es(m,0,r.width-t.width),y:Es(g,0,r.height-t.height)}}function $f(e,t,n){const r=rr(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function Vx(e){return Hs([],ki(e))}function nte(e,t,n){return al(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function Ux(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const XM={beforeTitle:yi,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex<r)return n[t.dataIndex]}return""},afterTitle:yi,beforeBody:yi,beforeLabel:yi,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return Mt(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:yi,afterBody:yi,beforeFooter:yi,footer:yi,afterFooter:yi};function yr(e,t,n,r){const s=e[t].call(n,r);return typeof s>"u"?XM[t].call(n,r):s}class Xy extends Hu{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),s=r.enabled&&n.options.animation&&r.animations,i=new LM(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=nte(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,s=yr(r,"beforeTitle",this,t),i=yr(r,"title",this,t),o=yr(r,"afterTitle",this,t);let a=[];return a=Hs(a,ki(s)),a=Hs(a,ki(i)),a=Hs(a,ki(o)),a}getBeforeBody(t,n){return Vx(yr(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,s=[];return Rt(t,i=>{const o={before:[],lines:[],after:[]},a=Ux(r,i);Hs(o.before,ki(yr(a,"beforeLabel",this,i))),Hs(o.lines,yr(a,"label",this,i)),Hs(o.after,ki(yr(a,"afterLabel",this,i))),s.push(o)}),s}getAfterBody(t,n){return Vx(yr(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,s=yr(r,"beforeFooter",this,t),i=yr(r,"footer",this,t),o=yr(r,"afterFooter",this,t);let a=[];return a=Hs(a,ki(s)),a=Hs(a,ki(i)),a=Hs(a,ki(o)),a}_createItems(t){const n=this._active,r=this.chart.data,s=[],i=[],o=[];let a=[],l,u;for(l=0,u=n.length;l<u;++l)a.push(Xee(this.chart,n[l]));return t.filter&&(a=a.filter((d,c,f)=>t.filter(d,c,f,r))),t.itemSort&&(a=a.sort((d,c)=>t.itemSort(d,c,r))),Rt(a,d=>{const c=Ux(t.callbacks,d);s.push(yr(c,"labelColor",this,d)),i.push(yr(c,"labelPointStyle",this,d)),o.push(yr(c,"labelTextColor",this,d))}),this.labelColors=s,this.labelPointStyles=i,this.labelTextColors=o,this.dataPoints=a,a}update(t,n){const r=this.options.setContext(this.getContext()),s=this._active;let i,o=[];if(!s.length)this.opacity!==0&&(i={opacity:0});else{const a=mc[r.position].call(this,s,this._eventPosition);o=this._createItems(r),this.title=this.getTitle(o,r),this.beforeBody=this.getBeforeBody(o,r),this.body=this.getBody(o,r),this.afterBody=this.getAfterBody(o,r),this.footer=this.getFooter(o,r);const l=this._size=Fx(this,r),u=Object.assign({},a,l),d=Nx(this.chart,r,u),c=Bx(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,i={opacity:1,x:c.x,y:c.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=o,this.$context=void 0,i&&this._resolveAnimations().update(this,i),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,s){const i=this.getCaretPosition(t,r,s);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(t,n,r){const{xAlign:s,yAlign:i}=this,{caretSize:o,cornerRadius:a}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:c}=Da(a),{x:f,y:p}=t,{width:m,height:g}=n;let y,b,_,S,T,E;return i==="center"?(T=p+g/2,s==="left"?(y=f,b=y-o,S=T+o,E=T-o):(y=f+m,b=y+o,S=T-o,E=T+o),_=y):(s==="left"?b=f+Math.max(l,d)+o:s==="right"?b=f+m-Math.max(u,c)-o:b=this.caretX,i==="top"?(S=p,T=S-o,y=b-o,_=b+o):(S=p+g,T=S+o,y=b+o,_=b-o),E=S),{x1:y,x2:b,x3:_,y1:S,y2:T,y3:E}}drawTitle(t,n,r){const s=this.title,i=s.length;let o,a,l;if(i){const u=jl(r.rtl,this.x,this.width);for(t.x=$f(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",o=Tn(r.titleFont),a=r.titleSpacing,n.fillStyle=r.titleColor,n.font=o.string,l=0;l<i;++l)n.fillText(s[l],u.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+a,l+1===i&&(t.y+=r.titleMarginBottom-a)}}_drawColorBox(t,n,r,s,i){const o=this.labelColors[r],a=this.labelPointStyles[r],{boxHeight:l,boxWidth:u}=i,d=Tn(i.bodyFont),c=$f(this,"left",i),f=s.x(c),p=l<d.lineHeight?(d.lineHeight-l)/2:0,m=n.y+p;if(i.usePointStyle){const g={radius:Math.min(u,l)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},y=s.leftForLtr(f,u)+u/2,b=m+l/2;t.strokeStyle=i.multiKeyBackground,t.fillStyle=i.multiKeyBackground,nx(t,g,y,b),t.strokeStyle=o.borderColor,t.fillStyle=o.backgroundColor,nx(t,g,y,b)}else{t.lineWidth=St(o.borderWidth)?Math.max(...Object.values(o.borderWidth)):o.borderWidth||1,t.strokeStyle=o.borderColor,t.setLineDash(o.borderDash||[]),t.lineDashOffset=o.borderDashOffset||0;const g=s.leftForLtr(f,u),y=s.leftForLtr(s.xPlus(f,1),u-2),b=Da(o.borderRadius);Object.values(b).some(_=>_!==0)?(t.beginPath(),t.fillStyle=i.multiKeyBackground,pd(t,{x:g,y:m,w:u,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),pd(t,{x:y,y:m+1,w:u-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=i.multiKeyBackground,t.fillRect(g,m,u,l),t.strokeRect(g,m,u,l),t.fillStyle=o.backgroundColor,t.fillRect(y,m+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:s}=this,{bodySpacing:i,bodyAlign:o,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:d}=r,c=Tn(r.bodyFont);let f=c.lineHeight,p=0;const m=jl(r.rtl,this.x,this.width),g=function(x){n.fillText(x,m.x(t.x+p),t.y+f/2),t.y+=f+i},y=m.textAlign(o);let b,_,S,T,E,R,P;for(n.textAlign=o,n.textBaseline="middle",n.font=c.string,t.x=$f(this,y,r),n.fillStyle=r.bodyColor,Rt(this.beforeBody,g),p=a&&y!=="right"?o==="center"?u/2+d:u+2+d:0,T=0,R=s.length;T<R;++T){for(b=s[T],_=this.labelTextColors[T],n.fillStyle=_,Rt(b.before,g),S=b.lines,a&&S.length&&(this._drawColorBox(n,t,T,m,r),f=Math.max(c.lineHeight,l)),E=0,P=S.length;E<P;++E)g(S[E]),f=c.lineHeight;Rt(b.after,g)}p=0,f=c.lineHeight,Rt(this.afterBody,g),t.y-=i}drawFooter(t,n,r){const s=this.footer,i=s.length;let o,a;if(i){const l=jl(r.rtl,this.x,this.width);for(t.x=$f(this,r.footerAlign,r),t.y+=r.footerMarginTop,n.textAlign=l.textAlign(r.footerAlign),n.textBaseline="middle",o=Tn(r.footerFont),n.fillStyle=r.footerColor,n.font=o.string,a=0;a<i;++a)n.fillText(s[a],l.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+r.footerSpacing}}drawBackground(t,n,r,s){const{xAlign:i,yAlign:o}=this,{x:a,y:l}=t,{width:u,height:d}=r,{topLeft:c,topRight:f,bottomLeft:p,bottomRight:m}=Da(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(a+c,l),o==="top"&&this.drawCaret(t,n,r,s),n.lineTo(a+u-f,l),n.quadraticCurveTo(a+u,l,a+u,l+f),o==="center"&&i==="right"&&this.drawCaret(t,n,r,s),n.lineTo(a+u,l+d-m),n.quadraticCurveTo(a+u,l+d,a+u-m,l+d),o==="bottom"&&this.drawCaret(t,n,r,s),n.lineTo(a+p,l+d),n.quadraticCurveTo(a,l+d,a,l+d-p),o==="center"&&i==="left"&&this.drawCaret(t,n,r,s),n.lineTo(a,l+c),n.quadraticCurveTo(a,l,a+c,l),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,s=r&&r.x,i=r&&r.y;if(s||i){const o=mc[t.position].call(this,this._active,this._eventPosition);if(!o)return;const a=this._size=Fx(this,t),l=Object.assign({},o,this._size),u=Nx(n,t,l),d=Bx(t,l,u,n);(s._to!==d.x||i._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},i={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const o=rr(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(i,t,s,n),MM(t,n.textDirection),i.y+=o.top,this.drawTitle(i,t,n),this.drawBody(i,t,n),this.drawFooter(i,t,n),DM(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,s=t.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),i=!ap(r,s),o=this._positionChanged(s,n);(i||o)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,i=this._active||[],o=this._getActiveElements(t,i,n,r),a=this._positionChanged(o,t),l=n||!ap(o,i)||a;return l&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,s){const i=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const o=this.chart.getElementsAtEventForMode(t,i.mode,i,r);return i.reverse&&o.reverse(),o}_positionChanged(t,n){const{caretX:r,caretY:s,options:i}=this,o=mc[i.position].call(this,t,n);return o!==!1&&(r!==o.x||s!==o.y)}}he(Xy,"positioners",mc);var rte={id:"tooltip",_element:Xy,positioners:mc,afterInit(e,t,n){n&&(e.tooltip=new Xy({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:XM},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const ste=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function ite(e,t,n,r){const s=e.indexOf(t);if(s===-1)return ste(e,t,n,r);const i=e.lastIndexOf(t);return s!==i?n:s}const ote=(e,t)=>e===null?null:Es(Math.round(e),0,t);function zx(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class Qy extends ll{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const r=this.getLabels();for(const{index:s,label:i}of n)r[s]===i&&r.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,n){if(Mt(t))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===t?n:ite(r,t,Et(n,t),this._addedLabels),ote(n,r.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:r,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(r=0),n||(s=this.getLabels().length-1)),this.min=r,this.max=s}buildTicks(){const t=this.min,n=this.max,r=this.options.offset,s=[];let i=this.getLabels();i=t===0&&n===i.length-1?i:i.slice(t,n+1),this._valueRange=Math.max(i.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let o=t;o<=n;o++)s.push({value:o});return s}getLabelForValue(t){return zx.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}he(Qy,"id","category"),he(Qy,"defaults",{ticks:{callback:zx}});function ate(e,t){const n=[],{bounds:s,step:i,min:o,max:a,precision:l,count:u,maxTicks:d,maxDigits:c,includeBounds:f}=e,p=i||1,m=d-1,{min:g,max:y}=t,b=!Mt(o),_=!Mt(a),S=!Mt(u),T=(y-g)/(c+1);let E=Kk((y-g)/m/p)*p,R,P,x,w;if(E<1e-14&&!b&&!_)return[{value:g},{value:y}];w=Math.ceil(y/E)-Math.floor(g/E),w>m&&(E=Kk(w*E/m/p)*p),Mt(l)||(R=Math.pow(10,l),E=Math.ceil(E*R)/R),s==="ticks"?(P=Math.floor(g/E)*E,x=Math.ceil(y/E)*E):(P=g,x=y),b&&_&&i&&dJ((a-o)/i,E/1e3)?(w=Math.round(Math.min((a-o)/E,d)),E=(a-o)/w,P=o,x=a):S?(P=b?o:P,x=_?a:x,w=u-1,E=(x-P)/w):(w=(x-P)/E,hh(w,Math.round(w),E/1e3)?w=Math.round(w):w=Math.ceil(w));const C=Math.max(Yk(E),Yk(P));R=Math.pow(10,Mt(l)?C:l),P=Math.round(P*R)/R,x=Math.round(x*R)/R;let O=0;for(b&&(f&&P!==o?(n.push({value:o}),P<o&&O++,hh(Math.round((P+O*E)*R)/R,o,Hx(o,T,e))&&O++):P<o&&O++);O<w;++O){const A=Math.round((P+O*E)*R)/R;if(_&&A>a)break;n.push({value:A})}return _&&f&&x!==a?n.length&&hh(n[n.length-1].value,a,Hx(a,T,e))?n[n.length-1].value=a:n.push({value:a}):(!_||x===a)&&n.push({value:x}),n}function Hx(e,t,{horizontal:n,minRotation:r}){const s=_o(r),i=(n?Math.sin(s):Math.cos(s))||.001,o=.75*t*(""+e).length;return Math.min(t/i,o)}class pp extends ll{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return Mt(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:s,max:i}=this;const o=l=>s=n?s:l,a=l=>i=r?i:l;if(t){const l=Ao(s),u=Ao(i);l<0&&u<0?a(0):l>0&&u>0&&o(0)}if(s===i){let l=i===0?1:Math.abs(i*.05);a(i+l),t||o(s-l)}this.min=s,this.max=i}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,s;return r?(s=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const s={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},i=this._range||this,o=ate(s,i);return t.bounds==="ticks"&&bM(o,this,"value"),t.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const s=(r-n)/Math.max(t.length-1,1)/2;n-=s,r+=s}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return uS(t,this.chart.options.locale,this.options.ticks.format)}}class Jy extends pp{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=On(t)?t:0,this.max=On(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=_o(this.options.ticks.minRotation),s=(t?Math.sin(r):Math.cos(r))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,i.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}he(Jy,"id","linear"),he(Jy,"defaults",{ticks:{callback:km.formatters.numeric}});const gd=e=>Math.floor(So(e)),la=(e,t)=>Math.pow(10,gd(e)+t);function jx(e){return e/Math.pow(10,gd(e))===1}function Wx(e,t,n){const r=Math.pow(10,n),s=Math.floor(e/r);return Math.ceil(t/r)-s}function lte(e,t){const n=t-e;let r=gd(n);for(;Wx(e,t,r)>10;)r++;for(;Wx(e,t,r)<10;)r--;return Math.min(r,gd(e))}function ute(e,{min:t,max:n}){t=Ur(e.min,t);const r=[],s=gd(t);let i=lte(t,n),o=i<0?Math.pow(10,Math.abs(i)):1;const a=Math.pow(10,i),l=s>i?Math.pow(10,s):0,u=Math.round((t-l)*o)/o,d=Math.floor((t-l)/a/10)*a*10;let c=Math.floor((u-d)/Math.pow(10,i)),f=Ur(e.min,Math.round((l+d+c*Math.pow(10,i))*o)/o);for(;f<n;)r.push({value:f,major:jx(f),significand:c}),c>=10?c=c<15?15:20:c++,c>=20&&(i++,c=2,o=i>=0?1:o),f=Math.round((l+d+c*Math.pow(10,i))*o)/o;const p=Ur(e.max,f);return r.push({value:p,major:jx(p),significand:c}),r}class qx extends ll{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,n){const r=pp.prototype.parse.apply(this,[t,n]);if(r===0){this._zero=!0;return}return On(r)&&r>0?r:null}determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=On(t)?Math.max(0,t):null,this.max=On(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!On(this._userMin)&&(this.min=t===la(this.min,0)?la(this.min,-1):la(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let r=this.min,s=this.max;const i=a=>r=t?r:a,o=a=>s=n?s:a;r===s&&(r<=0?(i(1),o(10)):(i(la(r,-1)),o(la(s,1)))),r<=0&&i(la(s,-1)),s<=0&&o(la(r,1)),this.min=r,this.max=s}buildTicks(){const t=this.options,n={min:this._userMin,max:this._userMax},r=ute(n,this);return t.bounds==="ticks"&&bM(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}getLabelForValue(t){return t===void 0?"0":uS(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=So(t),this._valueRange=So(this.max)-So(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(So(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const n=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+n*this._valueRange)}}he(qx,"id","logarithmic"),he(qx,"defaults",{ticks:{callback:km.formatters.logarithmic,major:{enabled:!0}}});function Zy(e){const t=e.ticks;if(t.display&&e.display){const n=rr(t.backdropPadding);return Et(t.font&&t.font.size,dn.font.size)+n.height}return 0}function cte(e,t,n){return n=on(n)?n:[n],{w:IJ(e,t.string,n),h:n.length*t.lineHeight}}function Gx(e,t,n,r,s){return e===r||e===s?{start:t-n/2,end:t+n/2}:e<r||e>s?{start:t-n,end:t}:{start:t,end:t+n}}function dte(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],s=[],i=e._pointLabels.length,o=e.options.pointLabels,a=o.centerPointLabels?Ln/i:0;for(let l=0;l<i;l++){const u=o.setContext(e.getPointLabelContext(l));s[l]=u.padding;const d=e.getPointPosition(l,e.drawingArea+s[l],a),c=Tn(u.font),f=cte(e.ctx,c,e._pointLabels[l]);r[l]=f;const p=Ys(e.getIndexAngle(l)+a),m=Math.round(oS(p)),g=Gx(m,d.x,f.w,0,180),y=Gx(m,d.y,f.h,90,270);fte(n,t,p,g,y)}e.setCenterPoint(t.l-n.l,n.r-t.r,t.t-n.t,n.b-t.b),e._pointLabelItems=mte(e,r,s)}function fte(e,t,n,r,s){const i=Math.abs(Math.sin(n)),o=Math.abs(Math.cos(n));let a=0,l=0;r.start<t.l?(a=(t.l-r.start)/i,e.l=Math.min(e.l,t.l-a)):r.end>t.r&&(a=(r.end-t.r)/i,e.r=Math.max(e.r,t.r+a)),s.start<t.t?(l=(t.t-s.start)/o,e.t=Math.min(e.t,t.t-l)):s.end>t.b&&(l=(s.end-t.b)/o,e.b=Math.max(e.b,t.b+l))}function hte(e,t,n){const r=e.drawingArea,{extra:s,additionalAngle:i,padding:o,size:a}=n,l=e.getPointPosition(t,r+s+o,i),u=Math.round(oS(Ys(l.angle+Kr))),d=yte(l.y,a.h,u),c=gte(u),f=vte(l.x,a.w,c);return{visible:!0,x:l.x,y:d,textAlign:c,left:f,top:d,right:f+a.w,bottom:d+a.h}}function pte(e,t){if(!t)return!0;const{left:n,top:r,right:s,bottom:i}=e;return!(Ll({x:n,y:r},t)||Ll({x:n,y:i},t)||Ll({x:s,y:r},t)||Ll({x:s,y:i},t))}function mte(e,t,n){const r=[],s=e._pointLabels.length,i=e.options,{centerPointLabels:o,display:a}=i.pointLabels,l={extra:Zy(i)/2,additionalAngle:o?Ln/s:0};let u;for(let d=0;d<s;d++){l.padding=n[d],l.size=t[d];const c=hte(e,d,l);r.push(c),a==="auto"&&(c.visible=pte(c,u),c.visible&&(u=c))}return r}function gte(e){return e===0||e===180?"center":e<180?"left":"right"}function vte(e,t,n){return n==="right"?e-=t:n==="center"&&(e-=t/2),e}function yte(e,t,n){return n===90||n===270?e-=t/2:(n>270||n<90)&&(e-=t),e}function bte(e,t,n){const{left:r,top:s,right:i,bottom:o}=n,{backdropColor:a}=t;if(!Mt(a)){const l=Da(t.borderRadius),u=rr(t.backdropPadding);e.fillStyle=a;const d=r-u.left,c=s-u.top,f=i-r+u.width,p=o-s+u.height;Object.values(l).some(m=>m!==0)?(e.beginPath(),pd(e,{x:d,y:c,w:f,h:p,radius:l}),e.fill()):e.fillRect(d,c,f,p)}}function wte(e,t){const{ctx:n,options:{pointLabels:r}}=e;for(let s=t-1;s>=0;s--){const i=e._pointLabelItems[s];if(!i.visible)continue;const o=r.setContext(e.getPointLabelContext(s));bte(n,o,i);const a=Tn(o.font),{x:l,y:u,textAlign:d}=i;Xa(n,e._pointLabels[s],l,u+a.lineHeight/2,a,{color:o.color,textAlign:d,textBaseline:"middle"})}}function QM(e,t,n,r){const{ctx:s}=e;if(n)s.arc(e.xCenter,e.yCenter,t,0,li);else{let i=e.getPointPosition(0,t);s.moveTo(i.x,i.y);for(let o=1;o<r;o++)i=e.getPointPosition(o,t),s.lineTo(i.x,i.y)}}function Ste(e,t,n,r,s){const i=e.ctx,o=t.circular,{color:a,lineWidth:l}=t;!o&&!r||!a||!l||n<0||(i.save(),i.strokeStyle=a,i.lineWidth=l,i.setLineDash(s.dash||[]),i.lineDashOffset=s.dashOffset,i.beginPath(),QM(e,n,o,r),i.closePath(),i.stroke(),i.restore())}function _te(e,t,n){return al(e,{label:n,index:t,type:"pointLabel"})}class Ff extends pp{constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=rr(Zy(this.options)/2),n=this.width=this.maxWidth-t.width,r=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+n/2+t.left),this.yCenter=Math.floor(this.top+r/2+t.top),this.drawingArea=Math.floor(Math.min(n,r)/2)}determineDataLimits(){const{min:t,max:n}=this.getMinMax(!1);this.min=On(t)&&!isNaN(t)?t:0,this.max=On(n)&&!isNaN(n)?n:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Zy(this.options))}generateTickLabels(t){pp.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map((n,r)=>{const s=jt(this.options.pointLabels.callback,[n,r],this);return s||s===0?s:""}).filter((n,r)=>this.chart.getDataVisibility(r))}fit(){const t=this.options;t.display&&t.pointLabels.display?dte(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,n,r,s){this.xCenter+=Math.floor((t-n)/2),this.yCenter+=Math.floor((r-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,n,r,s))}getIndexAngle(t){const n=li/(this._pointLabels.length||1),r=this.options.startAngle||0;return Ys(t*n+_o(r))}getDistanceFromCenterForValue(t){if(Mt(t))return NaN;const n=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*n:(t-this.min)*n}getValueForDistanceFromCenter(t){if(Mt(t))return NaN;const n=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-n:this.min+n}getPointLabelContext(t){const n=this._pointLabels||[];if(t>=0&&t<n.length){const r=n[t];return _te(this.getContext(),t,r)}}getPointPosition(t,n,r=0){const s=this.getIndexAngle(t)-Kr+r;return{x:Math.cos(s)*n+this.xCenter,y:Math.sin(s)*n+this.yCenter,angle:s}}getPointPositionForValue(t,n){return this.getPointPosition(t,this.getDistanceFromCenterForValue(n))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:n,top:r,right:s,bottom:i}=this._pointLabelItems[t];return{left:n,top:r,right:s,bottom:i}}drawBackground(){const{backgroundColor:t,grid:{circular:n}}=this.options;if(t){const r=this.ctx;r.save(),r.beginPath(),QM(this,this.getDistanceFromCenterForValue(this._endValue),n,this._pointLabels.length),r.closePath(),r.fillStyle=t,r.fill(),r.restore()}}drawGrid(){const t=this.ctx,n=this.options,{angleLines:r,grid:s,border:i}=n,o=this._pointLabels.length;let a,l,u;if(n.pointLabels.display&&wte(this,o),s.display&&this.ticks.forEach((d,c)=>{if(c!==0||c===0&&this.min<0){l=this.getDistanceFromCenterForValue(d.value);const f=this.getContext(c),p=s.setContext(f),m=i.setContext(f);Ste(this,p,l,o,m)}}),r.display){for(t.save(),a=o-1;a>=0;a--){const d=r.setContext(this.getPointLabelContext(a)),{color:c,lineWidth:f}=d;!f||!c||(t.lineWidth=f,t.strokeStyle=c,t.setLineDash(d.borderDash),t.lineDashOffset=d.borderDashOffset,l=this.getDistanceFromCenterForValue(n.reverse?this.min:this.max),u=this.getPointPosition(a,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(u.x,u.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,n=this.options,r=n.ticks;if(!r.display)return;const s=this.getIndexAngle(0);let i,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((a,l)=>{if(l===0&&this.min>=0&&!n.reverse)return;const u=r.setContext(this.getContext(l)),d=Tn(u.font);if(i=this.getDistanceFromCenterForValue(this.ticks[l].value),u.showLabelBackdrop){t.font=d.string,o=t.measureText(a.label).width,t.fillStyle=u.backdropColor;const c=rr(u.backdropPadding);t.fillRect(-o/2-c.left,-i-d.size/2-c.top,o+c.width,d.size+c.height)}Xa(t,a.label,0,-i,d,{color:u.color,strokeColor:u.textStrokeColor,strokeWidth:u.textStrokeWidth})}),t.restore()}drawTitle(){}}he(Ff,"id","radialLinear"),he(Ff,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:km.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),he(Ff,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),he(Ff,"descriptors",{angleLines:{_fallback:"grid"}});const Cm={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},xr=Object.keys(Cm);function Kx(e,t){return e-t}function Yx(e,t){if(Mt(t))return null;const n=e._adapter,{parser:r,round:s,isoWeekday:i}=e._parseOpts;let o=t;return typeof r=="function"&&(o=r(o)),On(o)||(o=typeof r=="string"?n.parse(o,r):n.parse(o)),o===null?null:(s&&(o=s==="week"&&(cp(i)||i===!0)?n.startOf(o,"isoWeek",i):n.startOf(o,s)),+o)}function Xx(e,t,n,r){const s=xr.length;for(let i=xr.indexOf(e);i<s-1;++i){const o=Cm[xr[i]],a=o.steps?o.steps:Number.MAX_SAFE_INTEGER;if(o.common&&Math.ceil((n-t)/(a*o.size))<=r)return xr[i]}return xr[s-1]}function kte(e,t,n,r,s){for(let i=xr.length-1;i>=xr.indexOf(n);i--){const o=xr[i];if(Cm[o].common&&e._adapter.diff(s,r,o)>=t-1)return o}return xr[n?xr.indexOf(n):0]}function xte(e){for(let t=xr.indexOf(e)+1,n=xr.length;t<n;++t)if(Cm[xr[t]].common)return xr[t]}function Qx(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:r,hi:s}=aS(n,t),i=n[r]>=t?n[r]:n[s];e[i]=!0}}function Ete(e,t,n,r){const s=e._adapter,i=+s.startOf(t[0].value,r),o=t[t.length-1].value;let a,l;for(a=i;a<=o;a=+s.add(a,1,r))l=n[a],l>=0&&(t[l].major=!0);return t}function Jx(e,t,n){const r=[],s={},i=t.length;let o,a;for(o=0;o<i;++o)a=t[o],s[a]=o,r.push({value:a,major:!1});return i===0||!n?r:Ete(e,r,s,n)}class mp extends ll{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const r=t.time||(t.time={}),s=this._adapter=new PZ._date(t.adapters.date);s.init(n),Oc(r.displayFormats,s.formats()),this._parseOpts={parser:r.parser,round:r.round,isoWeekday:r.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:Yx(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,r=t.time.unit||"day";let{min:s,max:i,minDefined:o,maxDefined:a}=this.getUserBounds();function l(u){!o&&!isNaN(u.min)&&(s=Math.min(s,u.min)),!a&&!isNaN(u.max)&&(i=Math.max(i,u.max))}(!o||!a)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),s=On(s)&&!isNaN(s)?s:+n.startOf(Date.now(),r),i=On(i)&&!isNaN(i)?i:+n.endOf(Date.now(),r)+1,this.min=Math.min(s,i-1),this.max=Math.max(s+1,i)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],r=t[t.length-1]),{min:n,max:r}}buildTicks(){const t=this.options,n=t.time,r=t.ticks,s=r.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const i=this.min,o=this.max,a=vJ(s,i,o);return this._unit=n.unit||(r.autoSkip?Xx(n.minUnit,this.min,this.max,this._getLabelCapacity(i)):kte(this,a.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:xte(this._unit),this.initOffsets(s),t.reverse&&a.reverse(),Jx(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,r=0,s,i;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,i=this.getDecimalForValue(t[t.length-1]),t.length===1?r=i:r=(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;n=Es(n,0,o),r=Es(r,0,o),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,s=this.options,i=s.time,o=i.unit||Xx(i.minUnit,n,r,this._getLabelCapacity(n)),a=Et(s.ticks.stepSize,1),l=o==="week"?i.isoWeekday:!1,u=cp(l)||l===!0,d={};let c=n,f,p;if(u&&(c=+t.startOf(c,"isoWeek",l)),c=+t.startOf(c,u?"day":o),t.diff(r,n,o)>1e5*a)throw new Error(n+" and "+r+" are too far apart with stepSize of "+a+" "+o);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=c,p=0;f<r;f=+t.add(f,a,o),p++)Qx(d,f,m);return(f===r||s.bounds==="ticks"||p===1)&&Qx(d,f,m),Object.keys(d).sort(Kx).map(g=>+g)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,i=this._unit,o=n||s[i];return this._adapter.format(t,o)}_tickFormatFunction(t,n,r,s){const i=this.options,o=i.ticks.callback;if(o)return jt(o,[t,n,r],this);const a=i.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&a[l],c=u&&a[u],f=r[n],p=u&&c&&f&&f.major;return this._adapter.format(t,s||(p?c:d))}generateTickLabels(t){let n,r,s;for(n=0,r=t.length;n<r;++n)s=t[n],s.label=this._tickFormatFunction(s.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,r=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+r)*n.factor)}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+r*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,r=this.ctx.measureText(t).width,s=_o(this.isHorizontal()?n.maxRotation:n.minRotation),i=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:r*i+a*o,h:r*o+a*i}}_getLabelCapacity(t){const n=this.options.time,r=n.displayFormats,s=r[n.unit]||r.millisecond,i=this._tickFormatFunction(t,0,Jx(this,[t],this._majorUnit),s),o=this._getLabelSize(i),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,r=s.length;n<r;++n)t=t.concat(s[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,r;if(t.length)return t;const s=this.getLabels();for(n=0,r=s.length;n<r;++n)t.push(Yx(this,s[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return SM(t.sort(Kx))}}he(mp,"id","time"),he(mp,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function Nf(e,t,n){let r=0,s=e.length-1,i,o,a,l;n?(t>=e[r].pos&&t<=e[s].pos&&({lo:r,hi:s}=qy(e,"pos",t)),{pos:i,time:a}=e[r],{pos:o,time:l}=e[s]):(t>=e[r].time&&t<=e[s].time&&({lo:r,hi:s}=qy(e,"time",t)),{time:i,pos:a}=e[r],{time:o,pos:l}=e[s]);const u=o-i;return u?a+(l-a)*(t-i)/u:a}class Zx extends mp{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=Nf(n,this.min),this._tableRange=Nf(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,s=[],i=[];let o,a,l,u,d;for(o=0,a=t.length;o<a;++o)u=t[o],u>=n&&u<=r&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(o=0,a=s.length;o<a;++o)d=s[o+1],l=s[o-1],u=s[o],Math.round((d+l)/2)!==u&&i.push({time:u,pos:o/(a-1)});return i}_generate(){const t=this.min,n=this.max;let r=super.getDataTimestamps();return(!r.includes(t)||!r.length)&&r.splice(0,0,t),(!r.includes(n)||r.length===1)&&r.push(n),r.sort((s,i)=>s-i)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(Nf(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return Nf(this._table,r*this._tableRange+this._minPos,!0)}}he(Zx,"id","timeseries"),he(Zx,"defaults",mp.defaults);const JM={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Cte={ariaLabel:{type:String},ariaDescribedby:{type:String}},Pte={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...JM,...Cte},Tte=qC[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function yl(e){return kd(e)?Ve(e):e}function Rte(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return kd(t)?new Proxy(e,{}):e}function Ite(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function ZM(e,t){e.labels=t}function eD(e,t,n){const r=[];e.datasets=t.map(s=>{const i=e.datasets.find(o=>o[n]===s[n]);return!i||!s.data||r.includes(i)?{...s}:(r.push(i),Object.assign(i,s),i)})}function Ate(e,t){const n={labels:[],datasets:[]};return ZM(n,e.labels),eD(n,e.datasets,t),n}const Ote=$e({props:Pte,setup(e,t){let{expose:n,slots:r}=t;const s=z(null),i=Me(null);n({chart:i});const o=()=>{if(!s.value)return;const{type:u,data:d,options:c,plugins:f,datasetIdKey:p}=e,m=Ate(d,p),g=Rte(m,d);i.value=new Em(s.value,{type:u,data:g,options:{...c},plugins:f})},a=()=>{const u=Ve(i.value);u&&(e.destroyDelay>0?setTimeout(()=>{u.destroy(),i.value=null},e.destroyDelay):(u.destroy(),i.value=null))},l=u=>{u.update(e.updateMode)};return bt(o),Rp(a),Ce([()=>e.options,()=>e.data],(u,d)=>{let[c,f]=u,[p,m]=d;const g=Ve(i.value);if(!g)return;let y=!1;if(c){const b=yl(c),_=yl(p);b&&b!==_&&(Ite(g,b),y=!0)}if(f){const b=yl(f.labels),_=yl(m.labels),S=yl(f.datasets),T=yl(m.datasets);b!==_&&(ZM(g.config.data,b),y=!0),S&&S!==T&&(eD(g.config.data,S,e.datasetIdKey),y=!0)}y&&At(()=>{l(g)})},{deep:!0}),()=>Ar("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[Ar("p",{},[r.default?r.default():""])])}});function Mte(e,t){return Em.register(t),$e({props:JM,setup(n,r){let{expose:s}=r;const i=Me(null),o=a=>{i.value=a==null?void 0:a.chart};return s({chart:i}),()=>Ar(Ote,Tte({ref:o},{type:e,...n}))}})}const Dte=Mte("bar",ph),Lte={class:"ma-3"},$te={class:"ml-6"},Fte={class:"ml-7 mt-3"},Nte={key:0},Bte={key:2},Vte=$e({__name:"EmergencyCommands",setup(e){Em.register(Qy,Jy,vh,Yee,rte,Gee);const t=Nt(),n=Xo(),r=z(!1),s=z([]),i=z([]),o=z(NaN),a=z(NaN),l=z(NaN),u=z({labels:[],datasets:[{label:"OctoPrint Settings response times (ms)",data:[],borderColor:"#FF6384",backgroundColor:"#ffffff"}]}),d={color:"white",plugins:{title:{color:"red",text:"Response times (ms)",display:!0}},responsive:!0},c=I(()=>n.hasFeature("batchConnectUsbCalls")),f=I(()=>n.hasFeature("batchConnectSocketCalls"));async function p(){const _=t.printers.map(P=>P.id),S=await Ml.batchSettingsGet(_),T=S.map(P=>{var x,w;return((w=(x=P.value)==null?void 0:x.appearance)==null?void 0:w.name)||"ERROR"});i.value=S.filter(P=>!P.success).map(P=>({message:P.error}));const E=S.map(P=>P.time),R=S.map(P=>{var x,w;return((w=(x=P.value)==null?void 0:x.appearance)==null?void 0:w.name)??""});o.value=E.reduce((P,x)=>P+x,0)/E.length,l.value=Math.min(...E),a.value=Math.max(...E),u.value={labels:R,datasets:[{label:"OctoPrint Settings response times (ms)",data:E,borderColor:"#FF6384",backgroundColor:"#ffffff"}]},await AO(500),r.value=!0,s.value=T}async function m(){await ad.restartServer()}async function g(_){if(!confirm("Are you sure you want to toggle all printers?"))return;const S=t.printers.map(T=>T.id);await Ml.batchToggleEnabled(S,_)}async function y(){if(!confirm("Are you sure you want to connect all USBs?"))return;const _=t.printers.map(S=>S.id);await Ml.batchConnectUsb(_)}async function b(){if(!confirm("Are you sure you want to connect all sockets?"))return;const _=t.printers.map(S=>S.id);await Ml.batchConnectSocket(_)}return(_,S)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>S[6]||(S[6]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>S[7]||(S[7]=[k(" Emergency Commands ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>S[8]||(S[8]=[k(" Emergency Commands to rectify problematic situations ")])),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[9]||(S[9]=[k(" Server commands ")])),_:1}),h(yt,null,{default:v(()=>[S[11]||(S[11]=k(" Restart the server ")),S[12]||(S[12]=D("br",null,null,-1)),h(se,{color:"primary",disabled:"",onClick:S[0]||(S[0]=T=>m())},{default:v(()=>S[10]||(S[10]=[k(" Restart server (does not work yet) ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[13]||(S[13]=[k(" Batch disabling ")])),_:1}),h(yt,null,{default:v(()=>[S[15]||(S[15]=k(" Disable all printers in batch (will not affect print) ")),S[16]||(S[16]=D("br",null,null,-1)),h(se,{color:"primary",onClick:S[1]||(S[1]=T=>g(!1))},{default:v(()=>S[14]||(S[14]=[k(" Batch disable ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[17]||(S[17]=[k(" Batch enabling ")])),_:1}),h(yt,null,{default:v(()=>[S[19]||(S[19]=k(" Enabling all printers in batch (will not affect print and it will skip printers in maintenance mode) ")),S[20]||(S[20]=D("br",null,null,-1)),h(se,{color:"primary",onClick:S[2]||(S[2]=T=>g(!0))},{default:v(()=>S[18]||(S[18]=[k(" Batch enable ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[21]||(S[21]=[k(" Batch USB connect ")])),_:1}),h(yt,null,{default:v(()=>[S[26]||(S[26]=k(" Connect all USB devices ")),S[27]||(S[27]=D("br",null,null,-1)),h(se,{disabled:!c.value,color:"primary",onClick:S[3]||(S[3]=T=>y())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[22]||(S[22]=[k("usb")])),_:1}),S[23]||(S[23]=k(" Connect USBs "))]),_:1},8,["disabled"]),c.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[24]||(S[24]=[k("warning")])),_:1}),S[25]||(S[25]=k(" This feature is not available, please update the FDM Monster server "))]),_:1}))]),_:1}),h(yt,{class:"mt-2"},{default:v(()=>[S[30]||(S[30]=k(" Connect all Sockets ")),S[31]||(S[31]=D("br",null,null,-1)),h(se,{disabled:!f.value,color:"primary",onClick:S[4]||(S[4]=T=>b())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[28]||(S[28]=[k("hub")])),_:1}),S[29]||(S[29]=k(" Connect Sockets "))]),_:1},8,["disabled"])]),_:1}),f.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[32]||(S[32]=[k("warning")])),_:1}),S[33]||(S[33]=k(" This feature is not available, please update the FDM Monster server "))]),_:1}))]),_:1})]),_:1}),D("div",Lte,[h(tn,null,{default:v(()=>S[34]||(S[34]=[k(" Test all OctoPrint response times ")])),_:1}),D("div",$te,[h(se,{color:"primary",onClick:S[5]||(S[5]=T=>p())},{default:v(()=>S[35]||(S[35]=[k(" Measure response times ")])),_:1})]),D("div",Fte,[r.value?($(),Se("span",Nte," Response times: ")):me("",!0),r.value?($(),Q(ue(Dte),{key:1,data:u.value,options:d,height:"40"},null,8,["data"])):($(),Se("span",Bte," A graph will be shown, presenting the times in milliseconds (ms) "))])])]),_:1}))}}),Ute={class:"text-center"},zte=$e({__name:"NotFoundView",setup(e){const t=Qo(),n=()=>{t.go(-1)};return(r,s)=>($(),Q(Vn,null,{default:v(()=>[s[6]||(s[6]=D("h2",{class:"text-center mt-lg-12"},"This page was not found.",-1)),s[7]||(s[7]=D("h1",{class:"text-center"},": (",-1)),s[8]||(s[8]=D("br",null,null,-1)),D("h4",Ute,[h(se,{class:"align-center",color:"primary",to:"/",variant:"elevated"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[1]||(s[1]=[k("home")])),_:1}),s[2]||(s[2]=k(" Go home "))]),_:1}),s[5]||(s[5]=D("span",{class:"pa-5"}," or ",-1)),h(se,{class:"align-center",variant:"elevated",onClick:s[0]||(s[0]=i=>n())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[3]||(s[3]=[k("arrow_left")])),_:1}),s[4]||(s[4]=k(" Go back "))]),_:1})])]),_:1}))}}),Hte={key:0},jte={key:1},Wte={key:2},qte={key:3},Gte={key:4},Kte=$e({__name:"PermissionDenied",setup(e){const t=fO(),n=I(()=>t.query);return(r,s)=>($(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(PO,{color:"primary"},{default:v(()=>[h(gn,{class:"text-uppercase text-white"},{default:v(()=>s[0]||(s[0]=[D("span",{class:"font-weight-light"}," FDM ",-1),D("strong",null," Monster ",-1)])),_:1})]),_:1}),s[11]||(s[11]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.06"}},null,-1)),h(mm,{"align-center":"",column:"","justify-center":""},{default:v(()=>[h(kt,{class:"flex align-center justify-center pa-lg-16 pa-sm-10",style:{width:"80%"}},{default:v(()=>[h(mn,null,{default:v(()=>[h(K,{class:"mr-4",size:"50"},{default:v(()=>s[1]||(s[1]=[k(" lock ")])),_:1}),s[2]||(s[2]=D("h3",null,"Permission Denied",-1))]),_:1}),h(cm,{class:"mt-1"},{default:v(()=>s[3]||(s[3]=[k(" You do not have permission to access a specific resource on this page. ")])),_:1}),n.value?($(),Q(cn,{key:0},{default:v(()=>{var i,o;return[n.value.page?($(),Se("div",Hte,[s[4]||(s[4]=k(" Page: ")),D("strong",null,ae((i=n.value)==null?void 0:i.page),1)])):me("",!0),n.value.permissions?($(),Se("div",jte,[s[5]||(s[5]=k(" Required permission(s): ")),($(!0),Se(Te,null,Gt(n.value.permissions,a=>($(),Se("strong",{key:a},ae(a),1))),128))])):me("",!0),n.value.roles?($(),Se("div",Wte,[s[6]||(s[6]=k(" Usable roles: ")),D("strong",null,ae((o=n.value.roles)==null?void 0:o.join(", ")),1)])):me("",!0),n.value.url?($(),Se("div",qte,[s[7]||(s[7]=k(" Problematic API path: ")),D("strong",null,ae(n.value.url),1)])):me("",!0),n.value.error?($(),Se("div",Gte,[s[8]||(s[8]=k(" Error: ")),D("strong",null,ae(n.value.error),1)])):me("",!0)]}),_:1})):me("",!0),h(tr,{class:"mt-6"},{default:v(()=>[h(se,{class:"align-center",color:"primary",to:"/",variant:"elevated"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[9]||(s[9]=[k("home")])),_:1}),s[10]||(s[10]=k(" Go home "))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}}),Yte=$e({__name:"Logo",setup(e){return(t,n)=>($(),Q(Yo,{src:ue(TO),class:"shrink mr-1 pt-3 ml-1",contain:"",style:{opacity:"0.85"},width:"150"},null,8,["src"]))}}),Xte=$e({__name:"LoginForm",setup(e){const t=fs(),n=z(""),r=z(""),s=z(!1),i=z(""),o=Qo(),a=fO(),l=z(!1),u=jr("auth:login"),d=Dt(),c=I(()=>{var g;return((g=r.value??"")==null?void 0:g.length)<3||(i.value??"").length<3});bt(async()=>{if(t.loadTokens(),await t.checkAuthenticationRequirements(),t.loginRequired===!1)return console.debug("LoginView, no login required, redirecting to",a.query.redirect,"or home"),u.emit(!0),await m();if(!t.hasRefreshToken)return;await t.verifyOrRefreshLoginOnceOrLogout()&&await m()});async function f(){return await o.push({name:Wt.Registration})}async function p(){var g,y,b,_;try{l.value=!0,await t.login(r.value,i.value),t.lastLogoutReason=null,i.value="",l.value=!1}catch(S){if(l.value=!1,((g=S==null?void 0:S.response)==null?void 0:g.status)===401){i.value="";const T=(b=(y=S==null?void 0:S.response)==null?void 0:y.data)==null?void 0:b.reasonCode,E=Ub(T);T===kr.AccountNotVerified?d.error(E,"Please ask your administrator to verify your account and try again."):T===kr.PasswordChangeRequired&&d.error(E,"Your password needs to be changed. This feature is sadly not finished"),n.value=E;return}d.openErrorMessage({title:"Error logging in",subtitle:"Please test your connection and try again."}),n.value="Error logging in - status code "+((_=S==null?void 0:S.response)==null?void 0:_.status),i.value="";return}return n.value="",u.emit(!0),await m()}async function m(){const g=a.query.redirect;if(g){console.debug("[LoginForm] Redirecting to ",g),await o.push({path:g});return}else{console.debug("[LoginForm] Redirecting to home"),await o.push({name:Wt.Home});return}}return(g,y)=>($(),Q(kt,{class:"pa-4",elevation:"10",style:{"border-radius":"10px"}},{default:v(()=>[h(cn,null,{default:v(()=>[h(eS,null,{default:v(()=>[y[7]||(y[7]=D("label",null," Username ",-1)),h(mt,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=b=>r.value=b),autofocus:"",name:"login",placeholder:"Username","prepend-icon":"mdi-account",type:"text",variant:"underlined",onKeyup:y[1]||(y[1]=uv(b=>c.value||p(),["enter"]))},null,8,["modelValue"]),h(mt,{id:"password",modelValue:i.value,"onUpdate:modelValue":y[2]||(y[2]=b=>i.value=b),"append-icon":s.value?"visibility_off":"visibility",type:s.value?"text":"password",label:"Password",name:"password",password:"","prepend-icon":"lock",variant:"underlined","onClick:append":y[3]||(y[3]=b=>s.value=!s.value),onKeyup:y[4]||(y[4]=uv(b=>c.value||p(),["enter"]))},null,8,["modelValue","append-icon","type"]),n.value?($(),Q(tn,{key:0,class:"mt-6",color:"error",density:"compact",variant:"outlined"},{default:v(()=>[k(ae(n.value),1)]),_:1})):me("",!0),ue(t).lastLogoutReason?($(),Q(tn,{key:1,class:"mt-6",color:"error-darken-1",density:"compact",variant:"outlined"},{default:v(()=>[k(" Reason for automatic logout: "+ae(ue(t).lastLogoutReason),1)]),_:1})):me("",!0)]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(se,{loading:l.value,class:"pa-4",color:"primary",size:"lg",variant:"flat",style:{width:"100%"},onClick:y[5]||(y[5]=b=>p())},{default:v(()=>y[8]||(y[8]=[k(" Login ")])),_:1},8,["loading"])]),_:1}),h(tr,null,{default:v(()=>[h(se,{disabled:!ue(t).registration,class:"pa-4",size:"lg",variant:"flat",style:{width:"100%"},onClick:y[6]||(y[6]=b=>f())},{default:v(()=>[k(" Register new account "+ae(ue(t).registration?"":"(not enabled)")+" ",1),h(K,{class:"pl-5",icon:"right"})]),_:1},8,["disabled"])]),_:1})]),_:1}))}}),Qte={class:"d-flex align-center",style:{"min-height":"calc(100vh - 148px)"}},Jte={class:"pt-6 pl-6 d-flex flex-column align-center"},Zte=$e({__name:"LoginView",setup(e){return(t,n)=>{const r=Yte;return $(),Q(rt,{class:"position-relative","no-gutters":""},{default:v(()=>[h(Ne,{cols:"12",lg:"12"},{default:v(()=>[h(Vn,null,{default:v(()=>[D("div",Qte,[h(rt,{justify:"center",class:"align-content-center"},{default:v(()=>[D("div",Jte,[h(r),h(gn,{class:"text-uppercase text-red"},{default:v(()=>n[0]||(n[0]=[D("strong",null," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),h(gn,{class:"mt-lg-6 mt-sm-5 mb-md-5"},{default:v(()=>n[1]||(n[1]=[k(" Login to your account ")])),_:1}),h(cm,{class:"text-grey mb-md-5"},{default:v(()=>n[2]||(n[2]=[k(" Welcome back! Please enter your details ")])),_:1})]),h(Ne,{cols:"12",md:"12"},{default:v(()=>[h(Xte,{class:"login-card"})]),_:1})]),_:1})])]),_:1})]),_:1})]),_:1})}}}),ene={class:"d-flex flex-column align-center"},tne=$e({__name:"RegistrationForm",setup(e){const t=fs(),n=Qo(),r=z(""),s=z(""),i=z(!1),o=z(!1),a=z(""),l=z(""),u=z(!1),d=Dt();async function c(){return await n.push({name:Wt.Login})}const f=I(()=>{var m;return((m=s.value??"")==null?void 0:m.length)<3||(a.value??"").length<3||a.value!=l.value});bt(async()=>{await t.logout(),await t.checkAuthenticationRequirements(),t.registration||(d.info("Registration is disabled, please contact your administrator"),await n.push({name:Wt.Login}))});async function p(){var m;try{u.value=!0,await ca.registerAccount(s.value,a.value),u.value=!1}catch(g){if(u.value=!1,((m=g==null?void 0:g.response)==null?void 0:m.status)===401){r.value="Invalid credentials";return}d.openErrorMessage({title:"Error logging in",subtitle:"Please test your connection and try again."});return}r.value="",d.info("Account created, please login"),await c()}return(m,g)=>{const y=Er("v-flex");return $(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(mm,{"align-content-center":"","justify-center":""},{default:v(()=>[h(y,{class:"d-flex flex-column align-content-center",md4:"",sm8:"",style:{"max-width":"450px","margin-top":"10%"},xs12:""},{default:v(()=>[D("div",ene,[h(Yo,{src:require("@/assets/logo.png"),class:"shrink mr-1 pt-3 ml-1",contain:"",style:{opacity:"0.85"},width:"150"},null,8,["src"]),h(gn,{class:"text-uppercase text-red"},{default:v(()=>g[8]||(g[8]=[D("strong",null," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),h(gn,{class:"mt-lg-6 mt-sm-5"},{default:v(()=>g[9]||(g[9]=[k(" Register new account ")])),_:1}),h(cm,{class:"text-grey"},{default:v(()=>g[10]||(g[10]=[k(" Welcome! Please register your guest account ")])),_:1})]),h(kt,{class:"elevation-4 pa-4",style:{"border-radius":"10px"}},{default:v(()=>[h(cn,null,{default:v(()=>[h(eS,null,{default:v(()=>[g[11]||(g[11]=D("label",null," Username ",-1)),h(mt,{modelValue:s.value,"onUpdate:modelValue":g[0]||(g[0]=b=>s.value=b),rules:[b=>!!b||"Username is required",b=>((b==null?void 0:b.length)??0)>=3||"Username must be of length 3 or greater",b=>!b.toLowerCase().includes("admin")||"Username may not contain the word admin",b=>!b.toLowerCase().includes("root")||"Username may not contain the word root",b=>b.toLowerCase()!=="demo"||"Username may not equal the word demo"],autofocus:"",name:"login",label:"Username","prepend-icon":"person",type:"text"},null,8,["modelValue","rules"]),h(mt,{id:"password",modelValue:a.value,"onUpdate:modelValue":g[1]||(g[1]=b=>a.value=b),"append-icon":i.value?"visibility":"visibility_off",type:i.value?"text":"password",label:"Password",name:"password",rules:[b=>!!b||"Password is required",b=>!!b&&(b==null?void 0:b.length)>=8||"Password must be of length 8 or greater"],password:"","prepend-icon":"lock","onClick:append":g[2]||(g[2]=b=>i.value=!i.value)},null,8,["modelValue","append-icon","type","rules"]),h(mt,{id:"password",modelValue:l.value,"onUpdate:modelValue":g[3]||(g[3]=b=>l.value=b),"append-icon":o.value?"visibility":"visibility_off",type:o.value?"text":"password",rules:[b=>!!b||"Repeated password is required",b=>b===a.value||"Passwords are not equal"],label:"Repeated Password",name:"password",password:"","prepend-icon":"lock","onClick:append":g[4]||(g[4]=b=>o.value=!o.value),onKeyup:g[5]||(g[5]=uv(b=>f.value||p(),["enter"]))},null,8,["modelValue","append-icon","type","rules"]),r.value?($(),Q(tn,{key:0,class:"mt-6",color:"error",density:"compact",variant:"outlined"},{default:v(()=>[k(ae(r.value),1)]),_:1})):me("",!0)]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(se,{loading:u.value,class:"pa-4",color:"primary",size:"large",style:{width:"100%"},onClick:g[6]||(g[6]=b=>p())},{default:v(()=>g[12]||(g[12]=[k(" Register account ")])),_:1},8,["loading"])]),_:1}),h(tr,null,{default:v(()=>[h(se,{style:{width:"100%"},class:"pa-4",size:"large",onClick:g[7]||(g[7]=b=>c())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[13]||(g[13]=[k("arrow_left")])),_:1}),g[14]||(g[14]=k("Back to Login "))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}}}),nne=$e({__name:"RegistrationView",setup(e){return(t,n)=>($(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(mm,{"align-center":"","justify-center":""},{default:v(()=>[h(tne)]),_:1})]),_:1}))}}),rne=["src"],sne=$e({__name:"CameraGridView",setup(e){const t=Nt(),n=Or(hn.AddOrUpdateCameraDialog),s=Vw({queryKey:["cameraStream"],queryFn:async()=>(await tp.listCameraStreams()).map(d=>({printer:t.printers.find(c=>c.id===d.printerId),cameraStream:d}))}),i=QG({mutationFn:u=>tp.deleteCameraStream(u),onSuccess:()=>s.refetch()});function o(){n.openDialog({addOrUpdate:"add"})}function a(u){u&&n.openDialog({addOrUpdate:"update",cameraId:u})}function l(u){u&&i.mutateAsync(u)}return(u,d)=>($(),Se("div",null,[h(nr,null,{default:v(()=>[h(gn,{class:"mr-4"},{default:v(()=>d[1]||(d[1]=[k(" Camera Overview ")])),_:1}),h(se,{color:"primary",onClick:d[0]||(d[0]=c=>o())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[2]||(d[2]=[k("add")])),_:1}),d[3]||(d[3]=k(" Add camera "))]),_:1})]),_:1}),h(rt,{class:"ma-0"},{default:v(()=>[($(!0),Se(Te,null,Gt(ue(s).data.value,c=>($(),Se("div",{key:c.cameraStream.id,class:"ma-4",style:{border:"1px solid grey",margin:"0"},width:"300"},[h(kt,{class:"pb-2 pl-2 pr-2",width:"300"},{default:v(()=>{var f;return[h(mn,null,{default:v(()=>{var p;return[c.cameraStream.printerId?($(),Q(K,{key:0,class:"mr-2",size:"small"},{default:v(()=>d[4]||(d[4]=[k(" print ")])),_:1})):($(),Q(K,{key:1,class:"mr-2",size:"small"},{default:v(()=>d[5]||(d[5]=[k(" camera_alt ")])),_:1})),k(" "+ae((c==null?void 0:c.cameraStream.name)??((p=c==null?void 0:c.printer)==null?void 0:p.name)??"Camera"),1)]}),_:2},1024),D("img",{src:(f=c.cameraStream)==null?void 0:f.streamURL,width:"100%"},null,8,rne),d[10]||(d[10]=D("br",null,null,-1)),h(se,{class:"mr-1",size:"small",onClick:p=>a(c.cameraStream.id)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[6]||(d[6]=[k("edit")])),_:1}),d[7]||(d[7]=k(" Update "))]),_:2},1032,["onClick"]),h(se,{size:"small",onClick:p=>l(c.cameraStream.id)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[8]||(d[8]=[k("delete")])),_:1}),d[9]||(d[9]=k(" Delete "))]),_:2},1032,["onClick"])]}),_:2},1024)]))),128))]),_:1})]))}}),ine="/img/OIG.jpg";class one extends gr{static async postFirstTimeSetup(t){const n=Oe.completeFirstTimeSetupRoute;return await this.post(n,t)}}const ane={class:"mt-6 border_all"},lne={class:"d-flex flex-row align-center"},une={class:"d-flex flex-row align-center"},cne={class:"d-flex flex-row align-center"},dne={class:"d-flex flex-row align-center"},fne={class:"mt-4"},hne={class:"mt-4"},pne={class:"mt-14"},mne={class:"mb-5 mt-10"},gne={class:"mt-14"},vne=$e({__name:"FirstTimeSetupView",setup(e){const t=Qo(),n=Dt(),r=z(!1),s=fs(),i=z({loginRequired:!0,registration:!1}),o=z({rootUsername:"admin",rootPassword:"",rootPassword2:""}),a=z(1);bt(async()=>{var d;await s.checkAuthenticationRequirements(),(d=s.wizardState)!=null&&d.wizardCompleted&&(n.info("Setup already completed."),s.loginRequired?await t.push({name:"Login"}):await t.push({name:"Home"}))});async function l(){if(!r.value){n.error("Please fill out all required fields.");return}const d=i.value,c=o.value;await one.postFirstTimeSetup({loginRequired:d.loginRequired,registration:d.registration,rootUsername:c.rootUsername,rootPassword:c.rootPassword}),n.openInfoMessage({title:"Setup completed"}),a.value=3}async function u(){await t.push({name:"Login"})}return(d,c)=>{const f=Er("v-stepper-step"),p=Er("v-stepper-content"),m=Er("v-stepper-items");return $(),Q(Vn,null,{default:v(()=>[c[46]||(c[46]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.08"}},null,-1)),h(nQ,{modelValue:a.value,"onUpdate:modelValue":c[10]||(c[10]=g=>a.value=g),class:"bg-grey-darken-4"},{default:v(()=>[h(hM,null,{default:v(()=>[h(f,{complete:a.value>1,step:"1"},{default:v(()=>c[11]||(c[11]=[k(" Introduction ")])),_:1},8,["complete"]),h(bn),h(f,{complete:a.value>2,step:"2"},{default:v(()=>c[12]||(c[12]=[k(" Login and registration ")])),_:1},8,["complete"]),h(bn),h(f,{step:"3"},{default:v(()=>c[13]||(c[13]=[k(" Summary ")])),_:1})]),_:1}),h(m,null,{default:v(()=>[h(p,{class:"align-content-center align-center text-center",step:"1"},{default:v(()=>[c[17]||(c[17]=D("div",{class:"align-content-center align-center text-center"},[D("img",{class:"rounded-pill ma-4",src:ine,style:{opacity:"0.7"},width:"400"}),k(" /> "),D("h1",null,"FDM Monster"),D("small",null," This server is still unconfigured. ")],-1)),h(se,{class:"mt-14 mb-14",color:"primary",onClick:c[0]||(c[0]=g=>a.value=2)},{default:v(()=>c[14]||(c[14]=[k(" Start Setup ")])),_:1}),D("div",ane,[h(K,{class:"mr-6"},{default:v(()=>c[15]||(c[15]=[k("question_mark")])),_:1}),c[16]||(c[16]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1}),h(p,{class:"align-content-center align-center text-center",step:"2"},{default:v(()=>[D("h4",null,[h(K,{class:"mr-2"},{default:v(()=>c[18]||(c[18]=[k("settings")])),_:1}),c[19]||(c[19]=k(" Login"))]),h(eS,{modelValue:r.value,"onUpdate:modelValue":c[6]||(c[6]=g=>r.value=g)},{default:v(()=>[h(ip,{modelValue:i.value.loginRequired,"onUpdate:modelValue":c[1]||(c[1]=g=>i.value.loginRequired=g),class:"mt-5"},{message:v(()=>[D("span",lne,[h(K,{color:i.value.loginRequired?"success":"",disabled:!i.value.loginRequired,class:"ml-3 mr-3"},{default:v(()=>c[20]||(c[20]=[k(" check ")])),_:1},8,["color","disabled"]),c[21]||(c[21]=k(" Login is required. "))]),D("span",une,[h(K,{color:i.value.loginRequired?"":"error",disabled:i.value.loginRequired,class:"ml-3 mr-3"},{default:v(()=>c[22]||(c[22]=[k(" close ")])),_:1},8,["color","disabled"]),c[23]||(c[23]=k(" No login is required. The admin role is assumed. "))])]),label:v(()=>c[24]||(c[24]=[k(" Enable Login ")])),_:1},8,["modelValue"]),i.value.loginRequired?me("",!0):($(),Q(tn,{key:0,color:"error-darken-4"},{default:v(()=>c[25]||(c[25]=[k(" You might be exposing your FDM Monster server publicly. Please take care evaluating the "),D("strong",null," Enable Login ",-1),k(" option. ")])),_:1})),h(ip,{modelValue:i.value.registration,"onUpdate:modelValue":c[2]||(c[2]=g=>i.value.registration=g),class:"mt-10 mb-10"},{message:v(()=>[D("span",cne,[h(K,{color:i.value.registration?"success":"",disabled:!i.value.registration,class:"ml-3 mr-3"},{default:v(()=>c[26]||(c[26]=[k(" check ")])),_:1},8,["color","disabled"]),c[27]||(c[27]=k(" Accounts can be registered with a guest role. "))]),D("span",dne,[h(K,{color:i.value.registration?"":"error",disabled:i.value.registration,class:"ml-3 mr-3"},{default:v(()=>c[28]||(c[28]=[k(" close ")])),_:1},8,["color","disabled"]),c[29]||(c[29]=k(" No other accounts can be registered. "))])]),label:v(()=>c[30]||(c[30]=[k(" Enable Registration ")])),_:1},8,["modelValue"]),h(bn),D("h4",fne,[h(K,{class:"mr-2"},{default:v(()=>c[31]||(c[31]=[k("shield")])),_:1}),c[32]||(c[32]=k(" Admin account "))]),h(mt,{modelValue:o.value.rootUsername,"onUpdate:modelValue":c[3]||(c[3]=g=>o.value.rootUsername=g),rules:[g=>!!g||"Username is required"],class:"mt-5",label:"Username","prepend-icon":"person"},{prepend:v(()=>[h(K,null,{default:v(()=>c[33]||(c[33]=[k("person")])),_:1})]),_:1},8,["modelValue","rules"]),h(mt,{modelValue:o.value.rootPassword,"onUpdate:modelValue":c[4]||(c[4]=g=>o.value.rootPassword=g),type:"password","prepend-icon":"lock",rules:[g=>!!g||"Password is required",g=>!!g&&(g==null?void 0:g.length)>=8||"Password must be of length 8 or greater"],class:"mt-5",label:"Password"},{prepend:v(()=>[h(K,null,{default:v(()=>c[34]||(c[34]=[k("password")])),_:1})]),_:1},8,["modelValue","rules"]),h(mt,{modelValue:o.value.rootPassword2,"onUpdate:modelValue":c[5]||(c[5]=g=>o.value.rootPassword2=g),type:"password","prepend-icon":"lock",rules:[g=>!!g||"Repeated password is required",g=>g===o.value.rootPassword||"Passwords are not equal"],class:"mt-5",label:"Repeated Password"},{prepend:v(()=>[h(K,null,{default:v(()=>c[35]||(c[35]=[k("password")])),_:1})]),_:1},8,["modelValue","rules"])]),_:1},8,["modelValue"]),D("div",hne,[h(se,{class:"mr-4",onClick:c[7]||(c[7]=g=>a.value=1)},{default:v(()=>c[36]||(c[36]=[k(" Back ")])),_:1}),h(se,{disabled:!r.value,color:"primary",onClick:c[8]||(c[8]=g=>l())},{default:v(()=>c[37]||(c[37]=[k(" Verify & Submit ")])),_:1},8,["disabled"])]),h(bn,{class:"mt-4"}),D("div",pne,[h(K,{class:"mr-6"},{default:v(()=>c[38]||(c[38]=[k("question_mark")])),_:1}),c[39]||(c[39]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1}),h(p,{class:"align-content-center align-center text-center",step:"3"},{default:v(()=>[D("div",mne,[h(K,{size:"100",class:"mr-5",color:"green circle"},{default:v(()=>c[40]||(c[40]=[k(" check_circle ")])),_:1}),c[41]||(c[41]=k(" Setup Completed "))]),c[45]||(c[45]=D("br",null,null,-1)),h(se,{color:"primary",class:"mr-4",onClick:c[9]||(c[9]=g=>u())},{default:v(()=>c[42]||(c[42]=[k(" Let's continue ")])),_:1}),D("div",gne,[h(K,{class:"mr-6"},{default:v(()=>c[43]||(c[43]=[k("question_mark")])),_:1}),c[44]||(c[44]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}}}),yne={class:"ml-4 mb-4"},bne={class:"ml-4 mb-4"},wne=$e({__name:"AccountSettings",setup(e){const t=Fs(),n=jw(),r=fs(),s=Qo(),i=Dt(),o=z(),a=z(""),l=z({username:"",newPassword:"",oldPassword:"",repeatPassword:""});bt(async()=>{var c,f;await t.loadSettings(),(c=t.settings)!=null&&c.server.loginRequired||(o.value=(f=t.settings)==null?void 0:f.server.loginRequired),await n.getProfile(),l.value.username=n.username,a.value=n.userId});async function u(){var c;if(!((c=a.value)!=null&&c.length)){i.openErrorMessage({title:"User not loaded"});return}await Ks.changeUsername(a.value,l.value.username),await n.getProfile(),l.value.username=n.username,i.openInfoMessage({title:"Username changed"})}async function d(){var c;if(!((c=a.value)!=null&&c.length)){i.openErrorMessage({title:"User not loaded"});return}if(l.value.newPassword!==l.value.repeatPassword){i.openErrorMessage({title:"Passwords do not match"});return}await Ks.changePassword(a.value,l.value.oldPassword,l.value.newPassword),l.value.oldPassword="",l.value.newPassword="",l.value.repeatPassword="",i.openInfoMessage({title:"Password changed"}),await r.logout(!0),await hO(s)}return(c,f)=>{const p=Er("v-list-item-content"),m=Er("v-list-item-action-text");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>f[6]||(f[6]=[k("account_circle")])),_:1})]),_:1}),h(gn,null,{default:v(()=>f[7]||(f[7]=[k(" Account Settings ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[o.value?me("",!0):($(),Q(p,{key:0},{default:v(()=>[h(tn,{color:"primary"},{default:v(()=>f[8]||(f[8]=[k(" Login is currently disabled. To adjust your username and password, please enable that setting at the Server Protection settings page. Then log in and visit this page. ")])),_:1})]),_:1}))]),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[9]||(f[9]=[k(" Username ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.username,"onUpdate:modelValue":f[0]||(f[0]=g=>l.value.username=g),disabled:!o.value,label:"Fill in your username"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),D("div",yne,[h(se,{disabled:!o.value,color:"primary",onClick:f[1]||(f[1]=g=>u())},{default:v(()=>f[10]||(f[10]=[k(" Change username ")])),_:1},8,["disabled"])]),h(bn),f[14]||(f[14]=D("br",null,null,-1)),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[11]||(f[11]=[k(" Old Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.oldPassword,"onUpdate:modelValue":f[2]||(f[2]=g=>l.value.oldPassword=g),disabled:!o.value,placeholder:"Old password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[12]||(f[12]=[k(" New Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.newPassword,"onUpdate:modelValue":f[3]||(f[3]=g=>l.value.newPassword=g),disabled:!o.value,placeholder:"New password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[13]||(f[13]=[k(" Repeat New Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.repeatPassword,"onUpdate:modelValue":f[4]||(f[4]=g=>l.value.repeatPassword=g),disabled:!o.value,placeholder:"Repeat new password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),D("div",bne,[h(se,{disabled:!o.value,color:"primary",onClick:f[5]||(f[5]=g=>d())},{default:v(()=>f[15]||(f[15]=[k(" Change password ")])),_:1},8,["disabled"])]),h(bn)]),_:1})}}}),Sne=$e({name:"GridSettings",components:{},props:{},setup:()=>({settingsStore:Fs(),snackbar:Dt()}),data:()=>({property:0}),computed:{largeTilesSettings(){return this.settingsStore.largeTiles}},watch:{},async created(){},async mounted(){},methods:{rowOptions(){return cY},colOptions(){return dY},async updateGridSettings(){await this.settingsStore.updateFrontendSettings({gridCols:this.settingsStore.gridCols,gridRows:this.settingsStore.gridRows,largeTiles:this.largeTilesSettings}),this.snackbar.info("Grid settings updated")}}});function _ne(e,t,n,r,s,i){return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[5]||(t[5]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[6]||(t[6]=[k(" Grid Settings ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[7]||(t[7]=[k(" Grid Rows and Columns ")])),_:1}),h(Fe,null,{default:v(()=>{var o;return[(o=e.settingsStore.settings)!=null&&o.frontend?($(),Q(rt,{key:0},{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(qa,{modelValue:e.settingsStore.settings.frontend.gridRows,"onUpdate:modelValue":t[0]||(t[0]=a=>e.settingsStore.settings.frontend.gridRows=a),items:e.rowOptions(),label:"Set the grid rows"},null,8,["modelValue","items"])]),_:1}),h(Ne,{cols:"2"},{default:v(()=>[h(qa,{modelValue:e.settingsStore.settings.frontend.gridCols,"onUpdate:modelValue":t[1]||(t[1]=a=>e.settingsStore.settings.frontend.gridCols=a),items:e.colOptions(),label:"Set the grid columns"},null,8,["modelValue","items"])]),_:1}),h(Ne,{cols:"1"}),h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:t[2]||(t[2]=a=>e.updateGridSettings())},{default:v(()=>t[8]||(t[8]=[k(" Save tile settings ")])),_:1})]),_:1})]),_:1})):me("",!0)]}),_:1})]),_:1}),h(bn),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[9]||(t[9]=[k(" Large or Compact Tiles ")])),_:1}),h(Fe,null,{default:v(()=>{var o;return[(o=e.settingsStore.settings)!=null&&o.frontend?($(),Q(rt,{key:0},{default:v(()=>[h(Ne,{cols:"5"},{default:v(()=>[h(Pn,{modelValue:e.settingsStore.settings.frontend.largeTiles,"onUpdate:modelValue":t[3]||(t[3]=a=>e.settingsStore.settings.frontend.largeTiles=a),label:"Large tiles"},null,8,["modelValue"])]),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{color:"primary",onClick:t[4]||(t[4]=a=>e.updateGridSettings())},{default:v(()=>t[10]||(t[10]=[k(" Save tile settings ")])),_:1})]),_:1})]),_:1})):me("",!0)]}),_:1})]),_:1})]),_:1})}const kne=Jo(Sne,[["render",_ne]]),xne=!0;function eE(e){const t=e.split("."),n=t.length,r=t.filter(s=>!/^0.|\D/g.test(s));return n<=1?!1:r.filter(s=>s.length&&parseInt(s)>=0&&parseInt(s)<=255).length===n}const Ene=$e({__name:"ServerProtectionSettings",setup(e){const t=Qo(),n=Dt(),r=fs(),s=z(""),i=z(!1),o=z([]),a=z(!1),l=z(!1),u=z(3200),d=z(!1),c=z(-1),f=z(14),p=x=>eE(x)?!0:"Not a valid IP Address";async function m(){var C;const x=await In.getSettings();a.value=x.server.loginRequired,l.value=x.server.registration,s.value=((C=x.connection)==null?void 0:C.clientIp)??"127.0.0.1",i.value=x.server.whitelistEnabled,o.value=x.server.whitelistedIpAddresses;const w=await In.getSettingsSensitive();u.value=w.credentials.jwtExpiresIn/60,d.value=w.credentials.refreshTokenAttempts!==-1,c.value=w.credentials.refreshTokenAttempts,f.value=w.credentials.refreshTokenExpiry/24/3600}bt(async()=>{await m()});function g(){d.value||(c.value=-1)}function y(x){o.value=o.value.filter(w=>w.toLowerCase()!==x.toLowerCase())}function b(x){eE(x)&&o.value.push(x.toLowerCase())}async function _(){o.value=["127.0.0.1","::12"],i.value=!1,await S(!1),n.info("Whitelist settings reset to default")}async function S(x=!0){await In.setWhitelistSettings({whitelistedIpAddresses:o.value,whitelistEnabled:i.value}),x&&n.info("Whitelist settings updated"),await m()}async function T(){const x=a.value;!x&&!confirm("Disabling login will expose your server. Continue?")||(await In.updateLoginRequiredSettings(x),await r.logout(!0),await r.checkAuthenticationRequirements(),x?await t.push({name:Wt.Login}):await t.push({name:Wt.Home}),n.info("Login Required settings updated"))}async function E(){await In.updateRegistrationEnabledSettings(l.value),await r.checkAuthenticationRequirements(),n.info("Registration settings updated")}async function R(){u.value=120,d.value=!1,c.value=-1,f.value=14,await P(),n.info("Login expiry settings reset to default")}async function P(x=!0){if(u.value<2||u.value>120)throw new Error("JWT Expiry must be between 2 and 120 minutes");if(d.value&&(c.value<50||c.value>1e3))throw new Error("Refresh Token Attempts must be between 50 and 1000");if(f.value<1||f.value>30)throw new Error("Refresh Token Expiry must be between 1 and 30 days");await In.updateCredentialSettings(u.value*60,c.value,f.value*24*3600),n.info("Login expiry settings updated")}return(x,w)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>w[16]||(w[16]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>w[17]||(w[17]=[k(" Server Protection Settings ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[ue(xne)?me("",!0):($(),Q(Fe,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>w[18]||(w[18]=[k(" IP Whitelist ")])),_:1}),h(yt,null,{default:v(()=>[h(tn,{color:"warning"},{default:v(()=>[h(K,null,{default:v(()=>w[19]||(w[19]=[k("info")])),_:1}),w[20]||(w[20]=k(" Be cautious, setting the wrong whitelist could make you lose access to the server! "))]),_:1}),w[26]||(w[26]=k(" Only allow access from specific IP Adresses or subnets. Note: 127.0.0.1 will always be allowed access. Examples: ")),w[27]||(w[27]=D("br",null,null,-1)),h(sn,{size:"small"},{default:v(()=>w[21]||(w[21]=[k(" 192.168 ")])),_:1}),h(sn,{size:"small"},{default:v(()=>w[22]||(w[22]=[k(" 192.168.1 ")])),_:1}),h(sn,{size:"small"},{default:v(()=>w[23]||(w[23]=[k(" 192.168.1.1 ")])),_:1}),w[28]||(w[28]=D("br",null,null,-1)),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:i.value,"onUpdate:modelValue":w[0]||(w[0]=C=>i.value=C),label:"Enable IP Whitelist"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,{class:"mt-0"},{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:s.value,"onUpdate:modelValue":w[1]||(w[1]=C=>s.value=C),disabled:!i.value,rules:[p,C=>!!C],"append-icon":"add",label:"IP Address","onClick:append":w[2]||(w[2]=C=>b(s.value))},null,8,["modelValue","disabled","rules"])]),_:1}),h(Ne,null,{default:v(()=>[h(rd,null,{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,C=>($(),Q(sn,{key:C,disabled:!i.value,closable:"","onClick:close":O=>y(C)},{default:v(()=>[k(ae(C),1)]),_:2},1032,["disabled","onClick:close"]))),128))]),_:1})]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"default",onClick:w[3]||(w[3]=C=>_())},{default:v(()=>w[24]||(w[24]=[k(" reset to default ")])),_:1}),h(se,{color:"primary",onClick:w[4]||(w[4]=C=>S())},{default:v(()=>w[25]||(w[25]=[k(" save whitelist settings ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[29]||(w[29]=[k(" Login Required ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:a.value,"onUpdate:modelValue":w[5]||(w[5]=C=>a.value=C),label:"Require Login"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[6]||(w[6]=C=>T())},{default:v(()=>w[30]||(w[30]=[k(" save login required setting ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[31]||(w[31]=[k(" Registration Enabled ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:l.value,"onUpdate:modelValue":w[7]||(w[7]=C=>l.value=C),label:"Enable Registration"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[8]||(w[8]=C=>E())},{default:v(()=>w[32]||(w[32]=[k(" save registration enabled setting ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[33]||(w[33]=[k(" Login Expiry Settings (advanced) ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:u.value,"onUpdate:modelValue":w[9]||(w[9]=C=>u.value=C),rules:[C=>!!C&&C>=2&&C<=120],label:"JWT Expiry (minutes)"},null,8,["modelValue","rules"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:d.value,"onUpdate:modelValue":[w[10]||(w[10]=C=>d.value=C),w[11]||(w[11]=C=>g())],label:"Enable Refresh Token Attempts"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:c.value,"onUpdate:modelValue":w[12]||(w[12]=C=>c.value=C),disabled:!d.value,rules:[C=>!!C&&C>=50],label:"Refresh Token Attempts (disabled: -1)",type:"number"},null,8,["modelValue","disabled","rules"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:f.value,"onUpdate:modelValue":w[13]||(w[13]=C=>f.value=C),rules:[C=>!!C&&C>=1&&C<=30],label:"Refresh Token Expiry (days)"},null,8,["modelValue","rules"])]),_:1})]),_:1}),h(tn,{color:"secondary"},{default:v(()=>[h(K,null,{default:v(()=>w[34]||(w[34]=[k("info")])),_:1}),w[35]||(w[35]=k(" Be cautious, setting the wrong expiry could make you lose access to the server or make your user experience highly degraded! "))]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[14]||(w[14]=C=>P())},{default:v(()=>w[36]||(w[36]=[k(" save login expiry settings ")])),_:1}),h(se,{color:"default",onClick:w[15]||(w[15]=C=>R())},{default:v(()=>w[37]||(w[37]=[k(" reset to default ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}});var eb={exports:{}};const Cne="2.0.0",tD=256,Pne=Number.MAX_SAFE_INTEGER||9007199254740991,Tne=16,Rne=tD-6,Ine=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Pm={MAX_LENGTH:tD,MAX_SAFE_COMPONENT_LENGTH:Tne,MAX_SAFE_BUILD_LENGTH:Rne,MAX_SAFE_INTEGER:Pne,RELEASE_TYPES:Ine,SEMVER_SPEC_VERSION:Cne,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Ug={};const Ane=typeof process=="object"&&Ug&&Ug.NODE_DEBUG&&/\bsemver\b/i.test(Ug.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var Tm=Ane;(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:s}=Pm,i=Tm;t=e.exports={};const o=t.re=[],a=t.safeRe=[],l=t.src=[],u=t.t={};let d=0;const c="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",s],[c,r]],p=g=>{for(const[y,b]of f)g=g.split(`${y}*`).join(`${y}{0,${b}}`).split(`${y}+`).join(`${y}{1,${b}}`);return g},m=(g,y,b)=>{const _=p(y),S=d++;i(g,S,y),u[g]=S,l[S]=y,o[S]=new RegExp(y,b?"g":void 0),a[S]=new RegExp(_,b?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${c}*`),m("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${l[u.NUMERICIDENTIFIER]}|${l[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NUMERICIDENTIFIERLOOSE]}|${l[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${c}+`),m("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),m("FULL",`^${l[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),m("LOOSE",`^${l[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),m("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",l[u.COERCE],!0),m("COERCERTLFULL",l[u.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(eb,eb.exports);var Kd=eb.exports;const One=Object.freeze({loose:!0}),Mne=Object.freeze({}),Dne=e=>e?typeof e!="object"?One:e:Mne;var yS=Dne;const tE=/^[0-9]+$/,nD=(e,t)=>{const n=tE.test(e),r=tE.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:e<t?-1:1},Lne=(e,t)=>nD(t,e);var rD={compareIdentifiers:nD,rcompareIdentifiers:Lne};const Bf=Tm,{MAX_LENGTH:nE,MAX_SAFE_INTEGER:Vf}=Pm,{safeRe:rE,t:sE}=Kd,$ne=yS,{compareIdentifiers:bl}=rD;let Fne=class js{constructor(t,n){if(n=$ne(n),t instanceof js){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>nE)throw new TypeError(`version is longer than ${nE} characters`);Bf("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;const r=t.trim().match(n.loose?rE[sE.LOOSE]:rE[sE.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Vf||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Vf||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Vf||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){const i=+s;if(i>=0&&i<Vf)return i}return s}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(Bf("SemVer.compare",this.version,this.options,t),!(t instanceof js)){if(typeof t=="string"&&t===this.version)return 0;t=new js(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof js||(t=new js(t,this.options)),bl(this.major,t.major)||bl(this.minor,t.minor)||bl(this.patch,t.patch)}comparePre(t){if(t instanceof js||(t=new js(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{const r=this.prerelease[n],s=t.prerelease[n];if(Bf("prerelease compare",n,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return bl(r,s)}while(++n)}compareBuild(t){t instanceof js||(t=new js(t,this.options));let n=0;do{const r=this.build[n],s=t.build[n];if(Bf("build compare",n,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return bl(r,s)}while(++n)}inc(t,n,r){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const s=Number(r)?1:0;if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[s];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(n){let i=[n,s];r===!1&&(i=[n]),bl(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var vr=Fne;const iE=vr,Nne=(e,t,n=!1)=>{if(e instanceof iE)return e;try{return new iE(e,t)}catch(r){if(!n)return null;throw r}};var ju=Nne;const Bne=ju,Vne=(e,t)=>{const n=Bne(e,t);return n?n.version:null};var Une=Vne;const zne=ju,Hne=(e,t)=>{const n=zne(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};var jne=Hne;const oE=vr,Wne=(e,t,n,r,s)=>{typeof n=="string"&&(s=r,r=n,n=void 0);try{return new oE(e instanceof oE?e.version:e,n).inc(t,r,s).version}catch{return null}};var qne=Wne;const aE=ju,Gne=(e,t)=>{const n=aE(e,null,!0),r=aE(t,null,!0),s=n.compare(r);if(s===0)return null;const i=s>0,o=i?n:r,a=i?r:n,l=!!o.prerelease.length;if(!!a.prerelease.length&&!l)return!a.patch&&!a.minor?"major":o.patch?"patch":o.minor?"minor":"major";const d=l?"pre":"";return n.major!==r.major?d+"major":n.minor!==r.minor?d+"minor":n.patch!==r.patch?d+"patch":"prerelease"};var Kne=Gne;const Yne=vr,Xne=(e,t)=>new Yne(e,t).major;var Qne=Xne;const Jne=vr,Zne=(e,t)=>new Jne(e,t).minor;var ere=Zne;const tre=vr,nre=(e,t)=>new tre(e,t).patch;var rre=nre;const sre=ju,ire=(e,t)=>{const n=sre(e,t);return n&&n.prerelease.length?n.prerelease:null};var ore=ire;const lE=vr,are=(e,t,n)=>new lE(e,n).compare(new lE(t,n));var Ns=are;const lre=Ns,ure=(e,t,n)=>lre(t,e,n);var cre=ure;const dre=Ns,fre=(e,t)=>dre(e,t,!0);var hre=fre;const uE=vr,pre=(e,t,n)=>{const r=new uE(e,n),s=new uE(t,n);return r.compare(s)||r.compareBuild(s)};var bS=pre;const mre=bS,gre=(e,t)=>e.sort((n,r)=>mre(n,r,t));var vre=gre;const yre=bS,bre=(e,t)=>e.sort((n,r)=>yre(r,n,t));var wre=bre;const Sre=Ns,_re=(e,t,n)=>Sre(e,t,n)>0;var Rm=_re;const kre=Ns,xre=(e,t,n)=>kre(e,t,n)<0;var wS=xre;const Ere=Ns,Cre=(e,t,n)=>Ere(e,t,n)===0;var sD=Cre;const Pre=Ns,Tre=(e,t,n)=>Pre(e,t,n)!==0;var iD=Tre;const Rre=Ns,Ire=(e,t,n)=>Rre(e,t,n)>=0;var SS=Ire;const Are=Ns,Ore=(e,t,n)=>Are(e,t,n)<=0;var _S=Ore;const Mre=sD,Dre=iD,Lre=Rm,$re=SS,Fre=wS,Nre=_S,Bre=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return Mre(e,n,r);case"!=":return Dre(e,n,r);case">":return Lre(e,n,r);case">=":return $re(e,n,r);case"<":return Fre(e,n,r);case"<=":return Nre(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};var oD=Bre;const Vre=vr,Ure=ju,{safeRe:Uf,t:zf}=Kd,zre=(e,t)=>{if(e instanceof Vre)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?Uf[zf.COERCEFULL]:Uf[zf.COERCE]);else{const l=t.includePrerelease?Uf[zf.COERCERTLFULL]:Uf[zf.COERCERTL];let u;for(;(u=l.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),l.lastIndex=u.index+u[1].length+u[2].length;l.lastIndex=-1}if(n===null)return null;const r=n[2],s=n[3]||"0",i=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return Ure(`${r}.${s}.${i}${o}${a}`,t)};var Hre=zre;class jre{constructor(){this.max=1e3,this.map=new Map}get(t){const n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){const s=this.map.keys().next().value;this.delete(s)}this.map.set(t,n)}return this}}var Wre=jre,zg,cE;function Bs(){if(cE)return zg;cE=1;const e=/\s+/g;class t{constructor(U,B){if(B=s(B),U instanceof t)return U.loose===!!B.loose&&U.includePrerelease===!!B.includePrerelease?U:new t(U.raw,B);if(U instanceof i)return this.raw=U.value,this.set=[[U]],this.formatted=void 0,this;if(this.options=B,this.loose=!!B.loose,this.includePrerelease=!!B.includePrerelease,this.raw=U.trim().replace(e," "),this.set=this.raw.split("||").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const q=this.set[0];if(this.set=this.set.filter(G=>!g(G[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(const G of this.set)if(G.length===1&&y(G[0])){this.set=[G];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let U=0;U<this.set.length;U++){U>0&&(this.formatted+="||");const B=this.set[U];for(let q=0;q<B.length;q++)q>0&&(this.formatted+=" "),this.formatted+=B[q].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(U){const q=((this.options.includePrerelease&&p)|(this.options.loose&&m))+":"+U,G=r.get(q);if(G)return G;const V=this.options.loose,W=V?l[u.HYPHENRANGELOOSE]:l[u.HYPHENRANGE];U=U.replace(W,A(this.options.includePrerelease)),o("hyphen replace",U),U=U.replace(l[u.COMPARATORTRIM],d),o("comparator trim",U),U=U.replace(l[u.TILDETRIM],c),o("tilde trim",U),U=U.replace(l[u.CARETTRIM],f),o("caret trim",U);let Z=U.split(" ").map(le=>_(le,this.options)).join(" ").split(/\s+/).map(le=>O(le,this.options));V&&(Z=Z.filter(le=>(o("loose invalid filter",le,this.options),!!le.match(l[u.COMPARATORLOOSE])))),o("range list",Z);const j=new Map,Y=Z.map(le=>new i(le,this.options));for(const le of Y){if(g(le))return[le];j.set(le.value,le)}j.size>1&&j.has("")&&j.delete("");const pe=[...j.values()];return r.set(q,pe),pe}intersects(U,B){if(!(U instanceof t))throw new TypeError("a Range is required");return this.set.some(q=>b(q,B)&&U.set.some(G=>b(G,B)&&q.every(V=>G.every(W=>V.intersects(W,B)))))}test(U){if(!U)return!1;if(typeof U=="string")try{U=new a(U,this.options)}catch{return!1}for(let B=0;B<this.set.length;B++)if(M(this.set[B],U,this.options))return!0;return!1}}zg=t;const n=Wre,r=new n,s=yS,i=Im(),o=Tm,a=vr,{safeRe:l,t:u,comparatorTrimReplace:d,tildeTrimReplace:c,caretTrimReplace:f}=Kd,{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:m}=Pm,g=L=>L.value==="<0.0.0-0",y=L=>L.value==="",b=(L,U)=>{let B=!0;const q=L.slice();let G=q.pop();for(;B&&q.length;)B=q.every(V=>G.intersects(V,U)),G=q.pop();return B},_=(L,U)=>(o("comp",L,U),L=R(L,U),o("caret",L),L=T(L,U),o("tildes",L),L=x(L,U),o("xrange",L),L=C(L,U),o("stars",L),L),S=L=>!L||L.toLowerCase()==="x"||L==="*",T=(L,U)=>L.trim().split(/\s+/).map(B=>E(B,U)).join(" "),E=(L,U)=>{const B=U.loose?l[u.TILDELOOSE]:l[u.TILDE];return L.replace(B,(q,G,V,W,Z)=>{o("tilde",L,q,G,V,W,Z);let j;return S(G)?j="":S(V)?j=`>=${G}.0.0 <${+G+1}.0.0-0`:S(W)?j=`>=${G}.${V}.0 <${G}.${+V+1}.0-0`:Z?(o("replaceTilde pr",Z),j=`>=${G}.${V}.${W}-${Z} <${G}.${+V+1}.0-0`):j=`>=${G}.${V}.${W} <${G}.${+V+1}.0-0`,o("tilde return",j),j})},R=(L,U)=>L.trim().split(/\s+/).map(B=>P(B,U)).join(" "),P=(L,U)=>{o("caret",L,U);const B=U.loose?l[u.CARETLOOSE]:l[u.CARET],q=U.includePrerelease?"-0":"";return L.replace(B,(G,V,W,Z,j)=>{o("caret",L,G,V,W,Z,j);let Y;return S(V)?Y="":S(W)?Y=`>=${V}.0.0${q} <${+V+1}.0.0-0`:S(Z)?V==="0"?Y=`>=${V}.${W}.0${q} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.0${q} <${+V+1}.0.0-0`:j?(o("replaceCaret pr",j),V==="0"?W==="0"?Y=`>=${V}.${W}.${Z}-${j} <${V}.${W}.${+Z+1}-0`:Y=`>=${V}.${W}.${Z}-${j} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.${Z}-${j} <${+V+1}.0.0-0`):(o("no pr"),V==="0"?W==="0"?Y=`>=${V}.${W}.${Z}${q} <${V}.${W}.${+Z+1}-0`:Y=`>=${V}.${W}.${Z}${q} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.${Z} <${+V+1}.0.0-0`),o("caret return",Y),Y})},x=(L,U)=>(o("replaceXRanges",L,U),L.split(/\s+/).map(B=>w(B,U)).join(" ")),w=(L,U)=>{L=L.trim();const B=U.loose?l[u.XRANGELOOSE]:l[u.XRANGE];return L.replace(B,(q,G,V,W,Z,j)=>{o("xRange",L,q,G,V,W,Z,j);const Y=S(V),pe=Y||S(W),le=pe||S(Z),oe=le;return G==="="&&oe&&(G=""),j=U.includePrerelease?"-0":"",Y?G===">"||G==="<"?q="<0.0.0-0":q="*":G&&oe?(pe&&(W=0),Z=0,G===">"?(G=">=",pe?(V=+V+1,W=0,Z=0):(W=+W+1,Z=0)):G==="<="&&(G="<",pe?V=+V+1:W=+W+1),G==="<"&&(j="-0"),q=`${G+V}.${W}.${Z}${j}`):pe?q=`>=${V}.0.0${j} <${+V+1}.0.0-0`:le&&(q=`>=${V}.${W}.0${j} <${V}.${+W+1}.0-0`),o("xRange return",q),q})},C=(L,U)=>(o("replaceStars",L,U),L.trim().replace(l[u.STAR],"")),O=(L,U)=>(o("replaceGTE0",L,U),L.trim().replace(l[U.includePrerelease?u.GTE0PRE:u.GTE0],"")),A=L=>(U,B,q,G,V,W,Z,j,Y,pe,le,oe)=>(S(q)?B="":S(G)?B=`>=${q}.0.0${L?"-0":""}`:S(V)?B=`>=${q}.${G}.0${L?"-0":""}`:W?B=`>=${B}`:B=`>=${B}${L?"-0":""}`,S(Y)?j="":S(pe)?j=`<${+Y+1}.0.0-0`:S(le)?j=`<${Y}.${+pe+1}.0-0`:oe?j=`<=${Y}.${pe}.${le}-${oe}`:L?j=`<${Y}.${pe}.${+le+1}-0`:j=`<=${j}`,`${B} ${j}`.trim()),M=(L,U,B)=>{for(let q=0;q<L.length;q++)if(!L[q].test(U))return!1;if(U.prerelease.length&&!B.includePrerelease){for(let q=0;q<L.length;q++)if(o(L[q].semver),L[q].semver!==i.ANY&&L[q].semver.prerelease.length>0){const G=L[q].semver;if(G.major===U.major&&G.minor===U.minor&&G.patch===U.patch)return!0}return!1}return!0};return zg}var Hg,dE;function Im(){if(dE)return Hg;dE=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(d,c){if(c=n(c),d instanceof t){if(d.loose===!!c.loose)return d;d=d.value}d=d.trim().split(/\s+/).join(" "),o("comparator",d,c),this.options=c,this.loose=!!c.loose,this.parse(d),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(d){const c=this.options.loose?r[s.COMPARATORLOOSE]:r[s.COMPARATOR],f=d.match(c);if(!f)throw new TypeError(`Invalid comparator: ${d}`);this.operator=f[1]!==void 0?f[1]:"",this.operator==="="&&(this.operator=""),f[2]?this.semver=new a(f[2],this.options.loose):this.semver=e}toString(){return this.value}test(d){if(o("Comparator.test",d,this.options.loose),this.semver===e||d===e)return!0;if(typeof d=="string")try{d=new a(d,this.options)}catch{return!1}return i(d,this.operator,this.semver,this.options)}intersects(d,c){if(!(d instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(d.value,c).test(this.value):d.operator===""?d.value===""?!0:new l(this.value,c).test(d.semver):(c=n(c),c.includePrerelease&&(this.value==="<0.0.0-0"||d.value==="<0.0.0-0")||!c.includePrerelease&&(this.value.startsWith("<0.0.0")||d.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&d.operator.startsWith(">")||this.operator.startsWith("<")&&d.operator.startsWith("<")||this.semver.version===d.semver.version&&this.operator.includes("=")&&d.operator.includes("=")||i(this.semver,"<",d.semver,c)&&this.operator.startsWith(">")&&d.operator.startsWith("<")||i(this.semver,">",d.semver,c)&&this.operator.startsWith("<")&&d.operator.startsWith(">")))}}Hg=t;const n=yS,{safeRe:r,t:s}=Kd,i=oD,o=Tm,a=vr,l=Bs();return Hg}const qre=Bs(),Gre=(e,t,n)=>{try{t=new qre(t,n)}catch{return!1}return t.test(e)};var Am=Gre;const Kre=Bs(),Yre=(e,t)=>new Kre(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));var Xre=Yre;const Qre=vr,Jre=Bs(),Zre=(e,t,n)=>{let r=null,s=null,i=null;try{i=new Jre(t,n)}catch{return null}return e.forEach(o=>{i.test(o)&&(!r||s.compare(o)===-1)&&(r=o,s=new Qre(r,n))}),r};var ese=Zre;const tse=vr,nse=Bs(),rse=(e,t,n)=>{let r=null,s=null,i=null;try{i=new nse(t,n)}catch{return null}return e.forEach(o=>{i.test(o)&&(!r||s.compare(o)===1)&&(r=o,s=new tse(r,n))}),r};var sse=rse;const jg=vr,ise=Bs(),fE=Rm,ose=(e,t)=>{e=new ise(e,t);let n=new jg("0.0.0");if(e.test(n)||(n=new jg("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r<e.set.length;++r){const s=e.set[r];let i=null;s.forEach(o=>{const a=new jg(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!i||fE(a,i))&&(i=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!n||fE(n,i))&&(n=i)}return n&&e.test(n)?n:null};var ase=ose;const lse=Bs(),use=(e,t)=>{try{return new lse(e,t).range||"*"}catch{return null}};var cse=use;const dse=vr,aD=Im(),{ANY:fse}=aD,hse=Bs(),pse=Am,hE=Rm,pE=wS,mse=_S,gse=SS,vse=(e,t,n,r)=>{e=new dse(e,r),t=new hse(t,r);let s,i,o,a,l;switch(n){case">":s=hE,i=mse,o=pE,a=">",l=">=";break;case"<":s=pE,i=gse,o=hE,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pse(e,t,r))return!1;for(let u=0;u<t.set.length;++u){const d=t.set[u];let c=null,f=null;if(d.forEach(p=>{p.semver===fse&&(p=new aD(">=0.0.0")),c=c||p,f=f||p,s(p.semver,c.semver,r)?c=p:o(p.semver,f.semver,r)&&(f=p)}),c.operator===a||c.operator===l||(!f.operator||f.operator===a)&&i(e,f.semver))return!1;if(f.operator===l&&o(e,f.semver))return!1}return!0};var kS=vse;const yse=kS,bse=(e,t,n)=>yse(e,t,">",n);var wse=bse;const Sse=kS,_se=(e,t,n)=>Sse(e,t,"<",n);var kse=_se;const mE=Bs(),xse=(e,t,n)=>(e=new mE(e,n),t=new mE(t,n),e.intersects(t,n));var Ese=xse;const Cse=Am,Pse=Ns;var Tse=(e,t,n)=>{const r=[];let s=null,i=null;const o=e.sort((d,c)=>Pse(d,c,n));for(const d of o)Cse(d,t,n)?(i=d,s||(s=d)):(i&&r.push([s,i]),i=null,s=null);s&&r.push([s,null]);const a=[];for(const[d,c]of r)d===c?a.push(d):!c&&d===o[0]?a.push("*"):c?d===o[0]?a.push(`<=${c}`):a.push(`${d} - ${c}`):a.push(`>=${d}`);const l=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return l.length<u.length?l:t};const gE=Bs(),xS=Im(),{ANY:Wg}=xS,ac=Am,ES=Ns,Rse=(e,t,n={})=>{if(e===t)return!0;e=new gE(e,n),t=new gE(t,n);let r=!1;e:for(const s of e.set){for(const i of t.set){const o=Ase(s,i,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},Ise=[new xS(">=0.0.0-0")],vE=[new xS(">=0.0.0")],Ase=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Wg){if(t.length===1&&t[0].semver===Wg)return!0;n.includePrerelease?e=Ise:e=vE}if(t.length===1&&t[0].semver===Wg){if(n.includePrerelease)return!0;t=vE}const r=new Set;let s,i;for(const p of e)p.operator===">"||p.operator===">="?s=yE(s,p,n):p.operator==="<"||p.operator==="<="?i=bE(i,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(s&&i){if(o=ES(s.semver,i.semver,n),o>0)return null;if(o===0&&(s.operator!==">="||i.operator!=="<="))return null}for(const p of r){if(s&&!ac(p,String(s),n)||i&&!ac(p,String(i),n))return null;for(const m of t)if(!ac(p,String(m),n))return!1;return!0}let a,l,u,d,c=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1,f=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;c&&c.prerelease.length===1&&i.operator==="<"&&c.prerelease[0]===0&&(c=!1);for(const p of t){if(d=d||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",s){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=yE(s,p,n),a===p&&a!==s)return!1}else if(s.operator===">="&&!ac(s.semver,String(p),n))return!1}if(i){if(c&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===c.major&&p.semver.minor===c.minor&&p.semver.patch===c.patch&&(c=!1),p.operator==="<"||p.operator==="<="){if(l=bE(i,p,n),l===p&&l!==i)return!1}else if(i.operator==="<="&&!ac(i.semver,String(p),n))return!1}if(!p.operator&&(i||s)&&o!==0)return!1}return!(s&&u&&!i&&o!==0||i&&d&&!s&&o!==0||f||c)},yE=(e,t,n)=>{if(!e)return t;const r=ES(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},bE=(e,t,n)=>{if(!e)return t;const r=ES(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};var Ose=Rse;const qg=Kd,wE=Pm,Mse=vr,SE=rD,Dse=ju,Lse=Une,$se=jne,Fse=qne,Nse=Kne,Bse=Qne,Vse=ere,Use=rre,zse=ore,Hse=Ns,jse=cre,Wse=hre,qse=bS,Gse=vre,Kse=wre,Yse=Rm,Xse=wS,Qse=sD,Jse=iD,Zse=SS,eie=_S,tie=oD,nie=Hre,rie=Im(),sie=Bs(),iie=Am,oie=Xre,aie=ese,lie=sse,uie=ase,cie=cse,die=kS,fie=wse,hie=kse,pie=Ese,mie=Tse,gie=Ose;var lc={parse:Dse,valid:Lse,clean:$se,inc:Fse,diff:Nse,major:Bse,minor:Vse,patch:Use,prerelease:zse,compare:Hse,rcompare:jse,compareLoose:Wse,compareBuild:qse,sort:Gse,rsort:Kse,gt:Yse,lt:Xse,eq:Qse,neq:Jse,gte:Zse,lte:eie,cmp:tie,coerce:nie,Comparator:rie,Range:sie,satisfies:iie,toComparators:oie,maxSatisfying:aie,minSatisfying:lie,minVersion:uie,validRange:cie,outside:die,gtr:fie,ltr:hie,intersects:pie,simplifyRange:mie,subset:gie,SemVer:Mse,re:qg.re,src:qg.src,tokens:qg.t,SEMVER_SPEC_VERSION:wE.SEMVER_SPEC_VERSION,RELEASE_TYPES:wE.RELEASE_TYPES,compareIdentifiers:SE.compareIdentifiers,rcompareIdentifiers:SE.rcompareIdentifiers};const vie={key:0},yie={key:1},bie={key:0},wie=$e({__name:"SoftwareUpgradeSettings",setup(e){const t=z(""),n=z(!0),r=z(!1),s=z(!1),i=z(""),o=z(""),a=z(pM),l=z(),u=z(),d=z(),c=z(!1),f=z([]),p=Xo();bt(async()=>{var C;await m();const w=await bo.getVersion();i.value=w.version,o.value=((C=w.monsterPi)==null?void 0:C.trim())||""});async function m(){if(n.value=!0,t.value="",r.value=!1,p.hasFeature("githubRateLimitApi"))try{const w=await bo.getGithubRateLimit();if(w.rate.remaining===0){const O=new Date(w.rate.reset).toLocaleTimeString(),A=w.rate.reset*1e3-Date.now(),M=Math.ceil(A/6e4);t.value=`Server has reached a rate limit of the Github API. This limit will be reset at ${O} (in ${M} minutes)`,n.value=!1,r.value=!0;return}}catch{n.value=!1;return}try{const w=await bo.getClientReleases();l.value=w.current,u.value=w.minimum,f.value=w.releases}catch(w){t.value="An error occurred loading the releases: "+w.message}finally{n.value=!1}}const g=I(()=>f.value.filter(w=>{const C=lc.minor(w.tag_name)===lc.minor(u.value.tag_name),O=T(w),A=w.draft;return C&&(b()||c.value||!O)&&!A})),y=I(()=>b());function b(){const w=l.value;return T(w)}function _(w){return P(w)||!R(w,l.value)||E(w)}function S(w){const C=T(w)?`${w.tag_name}, unstable`:w.tag_name;return P(w)?`${C}, currently installed`:E(w)?`${C}, below minimum`:R(w,l.value)?C:`${C}, downgrade not allowed`}function T(w){var C;return(C=w==null?void 0:w.tag_name)!=null&&C.length?w.prerelease||w.tag_name.includes("rc")||w.tag_name.includes("unstable"):!1}function E(w){return lc.compare(w.tag_name,u.value.tag_name)===-1}function R(w,C){if(!C)throw new Error("No current release is known, cannot compare.");return s.value?!0:lc.compare(w.tag_name,C.tag_name)!==-1&&lc.compare(w.tag_name,u.value.tag_name)!==-1}function P(w){var C;return w.tag_name===((C=l.value)==null?void 0:C.tag_name)}async function x(w){confirm("Are you sure? This might cause breaking changes, if the server is outdated")&&(await bo.updateClientDistGithub(w,s.value),location.reload())}return(w,C)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>C[5]||(C[5]=[k("upgrade")])),_:1})]),_:1}),h(gn,null,{default:v(()=>C[6]||(C[6]=[k(" Software Upgrade ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[7]||(C[7]=[k(" Current versions in use: ")])),_:1}),h(yt,null,{default:v(()=>[k(" Your server's version is: "+ae(i.value),1)]),_:1}),h(yt,null,{default:v(()=>[k(" Your client's version is: "+ae(a.value),1)]),_:1}),h(yt,null,{default:v(()=>[o.value?($(),Se("div",vie,[C[8]||(C[8]=k(" MonsterPi: ")),C[9]||(C[9]=D("div",null,"Your MonsterPi version is:",-1)),k(" "+ae(o.value),1)])):($(),Se("div",yie,C[10]||(C[10]=[k(" MonsterPi: "),D("div",null,"No MonsterPi distro was detected.",-1)])))]),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[11]||(C[11]=[k(" Server upgrade ")])),_:1}),h(yt,null,{default:v(()=>C[12]||(C[12]=[k(" Please visit "),D("a",{href:"https://docs.fdm-monster.net/docs/installing/"}," the installation documentation ",-1),k(" for instructions on how to upgrade the server. ")])),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[13]||(C[13]=[k(" Client upgrade ")])),_:1}),h(yt,null,{default:v(()=>C[14]||(C[14]=[k(" Please visit "),D("a",{href:"https://docs.fdm-monster.net/docs/configuration/updating_client_bundle"}," the installation documentation ",-1),k(" for instructions on how to upgrade the client bundle. ")])),_:1}),h(yt,null,{default:v(()=>C[15]||(C[15]=[k(" Upgrade the client webapp for quickly retrieving small fixes and features ")])),_:1})]),_:1}),h(Fe,null,{default:v(()=>{var O,A,M;return[h(ut,null,{default:v(()=>C[16]||(C[16]=[k(" Select a release to upgrade to: ")])),_:1}),h(yt,{class:"mt-2"},{default:v(()=>{var L;return[k(" Minimum required version: "+ae((L=u.value)==null?void 0:L.tag_name),1)]}),_:1}),n.value?($(),Se("span",bie,[h(tn,null,{default:v(()=>C[17]||(C[17]=[k(" Loading releases... ")])),_:1})])):me("",!0),!n.value&&!((O=g.value)!=null&&O.length)?($(),Q(tn,{key:1},{default:v(()=>C[18]||(C[18]=[k(" No releases to show. ")])),_:1})):me("",!0),h(NA,{modelValue:d.value,"onUpdate:modelValue":C[0]||(C[0]=L=>d.value=L)},{default:v(()=>[($(!0),Se(Te,null,Gt(g.value,L=>($(),Q(vy,{key:L.tag_name,disabled:_(L),label:S(L),value:L.tag_name},null,8,["disabled","label","value"]))),128))]),_:1},8,["modelValue"]),D("div",null,[c.value?($(),Q(tn,{key:0,color:"primary","max-width":"500px"},{default:v(()=>C[19]||(C[19]=[k(" You are viewing prereleases, please install such versions at your own risk! ")])),_:1})):me("",!0)]),D("div",null,[h(Pn,{modelValue:s.value,"onUpdate:modelValue":C[1]||(C[1]=L=>s.value=L),label:"Allow downgrade"},null,8,["modelValue"]),h(Pn,{modelValue:c.value,"onUpdate:modelValue":C[2]||(C[2]=L=>c.value=L),disabled:y.value,label:y.value?"Show prerelease versions (Currently already on prerelease version)":"Show prerelease versions"},null,8,["modelValue","disabled","label"])]),h(se,{class:"mt-2 mr-4",color:"secondary",onClick:C[3]||(C[3]=L=>m())},{default:v(()=>C[20]||(C[20]=[k(" Reload release version list ")])),_:1}),h(se,{disabled:!((A=d.value)!=null&&A.length)||d.value===((M=l.value)==null?void 0:M.tag_name),class:"mt-2",color:"primary",variant:"flat",onClick:C[4]||(C[4]=L=>x(d.value))},{default:v(()=>[h(K,null,{default:v(()=>C[21]||(C[21]=[k("upgrade")])),_:1}),C[22]||(C[22]=k(" Upgrade/downgrade client "))]),_:1},8,["disabled"])]}),_:1})]),_:1})]),_:1}))}}),Sie=$e({__name:"DiagnosticsSettings",setup(e){const t=Dt(),n=Fs(),r=z(!1),s=z(!1),i=z(!1),o=z(!1);bt(async()=>{var f,p,m,g;const c=await bo.getFeatures();r.value=((f=c.anonymousDiagnosticsToggle)==null?void 0:f.available)||!1,s.value=((p=c.logDumpZip)==null?void 0:p.available)||!1,i.value=((m=c.clearLogFiles)==null?void 0:m.available)||!1,await n.loadSettings(),o.value=((g=n.serverSettings)==null?void 0:g.sentryDiagnosticsEnabled)||!1});async function a(){await In.setSentryDiagnosticsSettings(o.value),IO(o.value)}async function l(){const c=`Test Error ${Date.now()} Sentry enabled: ${o.value}`;try{throw new Error(c)}catch(f){ai(f),t.openInfoMessage({title:"Test report was sent",subtitle:`Content: ${c}`})}}async function u(){await ad.downloadLogDump()}async function d(){await ad.clearLogFilesOlderThanWeek(),t.openInfoMessage({title:"Action success",subtitle:"Log files older than a week have been deleted"})}return(c,f)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>f[5]||(f[5]=[k("bug_report")])),_:1})]),_:1}),h(gn,null,{default:v(()=>f[6]||(f[6]=[k(" Diagnostics ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>f[7]||(f[7]=[k(" Diagnostics to provide bug reports to the developers of this software ")])),_:1}),r.value?($(),Q(Fe,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>f[8]||(f[8]=[k(" Remote Sentry diagnostic reports: ")])),_:1}),h(yt,null,{default:v(()=>[h(Pn,{modelValue:o.value,"onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),label:"Enable remote Sentry diagnostic reports"},null,8,["modelValue"])]),_:1}),h(yt,null,{default:v(()=>[h(se,{color:"primary",onClick:f[1]||(f[1]=p=>a())},{default:v(()=>[h(K,{class:"pr-2"},{default:v(()=>f[9]||(f[9]=[k("save")])),_:1}),f[10]||(f[10]=k(" Save "))]),_:1}),h(se,{color:"secondary",onClick:f[2]||(f[2]=p=>l())},{default:v(()=>[h(K,{class:"pr-2"},{default:v(()=>f[11]||(f[11]=[k("bug_report")])),_:1}),f[12]||(f[12]=k(" Test Error "))]),_:1})]),_:1})]),_:1})):me("",!0),h(bn),s.value?($(),Q(Fe,{key:1},{default:v(()=>[h(ut,null,{default:v(()=>f[13]||(f[13]=[k(" Logs Dump ")])),_:1}),h(yt,null,{default:v(()=>f[14]||(f[14]=[k(" Download a .zip file containing all logs from the server ")])),_:1}),h(yt,null,{default:v(()=>[f[17]||(f[17]=D("br",null,null,-1)),h(se,{color:"primary",onClick:f[3]||(f[3]=p=>u())},{default:v(()=>[h(K,null,{default:v(()=>f[15]||(f[15]=[k("download")])),_:1}),f[16]||(f[16]=k(" Download Log Files (.zip) "))]),_:1})]),_:1})]),_:1})):me("",!0),s.value?($(),Q(Fe,{key:2},{default:v(()=>[h(ut,null,{default:v(()=>f[18]||(f[18]=[k(" Clear log files ")])),_:1}),h(yt,null,{default:v(()=>[f[21]||(f[21]=D("br",null,null,-1)),h(se,{color:"default",onClick:f[4]||(f[4]=p=>d())},{default:v(()=>[h(K,null,{default:v(()=>f[19]||(f[19]=[k("download")])),_:1}),f[20]||(f[20]=k(" Clear log files older than a week "))]),_:1})]),_:1})]),_:1})):me("",!0)]),_:1})]),_:1}))}});class _ie extends gr{static async getCompletions(){const t=`${Oe.printCompletionRoute}`;return await this.get(t)}}const lD=$e({__name:"PrintStatistics",setup(e){const t=z([]),n=z([]),r=z(""),s=Nt(),i=qi();bt(async()=>{await o()}),Ce([()=>r.value],()=>{u()});const o=async()=>{t.value=[],n.value=[],t.value=await _ie.getCompletions(),u()},a=d=>s.printer(d),l=d=>i.floorOfPrinter(d),u=()=>{var p;const d=s.printers.map(m=>m.id),c=d.length?t.value.filter(m=>d.includes(m.printerId)):t.value,f=(p=r.value)!=null&&p.length?c.filter(m=>{const g=s.printers.find(y=>y.id===m.printerId);return g?(g.name+g.printerURL).toLowerCase().includes(r.value.toLowerCase()):!1}):c;n.value=f.sort((m,g)=>m.failureCount===g.failureCount?m.printCount>g.printCount?-1:1:m.failureCount>g.failureCount?-1:1)};return(d,c)=>($(),Q(sp,{height:"100%",width:"100%"},{default:v(()=>[h(Vn,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(K,null,{default:v(()=>c[2]||(c[2]=[k("filter_list")])),_:1}),c[3]||(c[3]=k(" Filter by printer name (optional) "))]),_:1}),h(Ne,null,{default:v(()=>[h(mt,{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=f=>r.value=f),class:"p-2",clearable:"",label:"Search","prepend-icon":"search","single-line":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(tn,null,{default:v(()=>[c[5]||(c[5]=k(" Please reload here if you want updated results: ")),h(se,{color:"primary",size:"x-small",onClick:c[1]||(c[1]=f=>o())},{default:v(()=>c[4]||(c[4]=[k(" Reload ")])),_:1})]),_:1}),h(jy,{dark:""},{default:v(()=>[c[11]||(c[11]=D("thead",null,[D("tr",null,[D("th",{class:"text-left"},"Printer name"),D("th",{class:"text-left"},"Floor"),D("th",{class:"text-left"},"Fail/ Success/ Total"),D("th",{class:"text-left"},"Last success"),D("th",{class:"text-left"},"Last failure"),D("th",{class:"text-left"},"Successes (week/48H/24H)"),D("th",{class:"text-left"},"Failures (week/48H/24H)")])],-1)),D("tbody",null,[($(!0),Se(Te,null,Gt(n.value,f=>{var p,m,g,y;return $(),Se("tr",{key:f.printerId},[D("td",null,ae(((p=a(f.printerId))==null?void 0:p.name)??"?"),1),D("td",null,ae(((m=l(f.printerId))==null?void 0:m.name)??"?"),1),D("td",null,[k(" × "+ae(f.failureCount)+" / 🗸 "+ae(f.successCount)+" ",1),D("strong",null," ~"+ae(f.printCount),1)]),D("td",null,ae(Date.now()-((g=f.lastSuccess)==null?void 0:g.createdAt)||"-"),1),D("td",null,[h(Ot,{location:"bottom"},xC({default:v(()=>{var b,_,S,T;return[D("span",null,[k(ae(((b=f.lastFailure)==null?void 0:b.status)||"-")+" ",1),c[7]||(c[7]=D("br",null,null,-1)),k(" "+ae((_=f.lastFailure)==null?void 0:_.createdAt)+" ",1),c[8]||(c[8]=D("br",null,null,-1)),D("small",null,ae((S=f.lastFailure)==null?void 0:S.fileName),1),c[9]||(c[9]=D("br",null,null,-1)),D("strong",null,ae((T=f.lastFailure)==null?void 0:T.completionLog),1),c[10]||(c[10]=D("br",null,null,-1))])]}),_:2},[(y=f.lastFailure)!=null&&y.status?{name:"activator",fn:v(({props:b})=>[h(K,ve({ref_for:!0},b),{default:v(()=>c[6]||(c[6]=[k("info")])),_:2},1040)]),key:"0"}:void 0]),1024)]),D("td",null,ae(f.successEventsLastWeek)+" "+ae(f.successEventsLast48H)+" "+ae(f.successEventsLast24H),1),D("td",null,ae(f.failureEventsLastWeek)+" "+ae(f.failureEventsLast48H)+" "+ae(f.failureEventsLast24H),1)])}),128))])]),_:1})]),_:1}))}}),kie=$e({name:"PrintStatisticsView",components:{PrintStatistics:lD}});function xie(e,t,n,r,s,i){const o=lD;return $(),Q(Vn,null,{default:v(()=>[h(o)]),_:1})}const Eie=Jo(kie,[["render",xie]]),Cie=$e({__name:"ExperimentalSettings",setup(e){const t=z(!1),n=z(!1),r=z(!1);async function s(){const l=await In.getSettings();t.value=l.server.experimentalMoonrakerSupport,n.value=l.server.experimentalTypeormSupport,r.value=l.server.experimentalClientSupport}bt(async()=>{await s()});const i=async()=>{await In.updateExperimentalMoonrakerSupport(t.value),await In.updateExperimentalClientSupport(r.value),await s()},o=async()=>{await In.updateExperimentalMoonrakerSupport(!1),await In.updateExperimentalClientSupport(!1),await s()},a=async()=>{await In.updateExperimentalClientSupport(r.value),window.location.reload()};return(l,u)=>($(),Q(rt,null,{default:v(()=>[h(Ne,{cols:"12"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>u[3]||(u[3]=[D("h2",null,"Settings",-1)])),_:1}),h(cn,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[6]||(u[6]=k(" Experimental Features ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,ve({class:"help-icon"},d),{default:v(()=>u[4]||(u[4]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[5]||(u[5]=D("span",{class:"tooltip-content"}," Moonraker support is currently in beta, use at your own risk. ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:t.value,"onUpdate:modelValue":u[0]||(u[0]=d=>t.value=d),label:"Enable Experimental Moonraker Support","hide-details":""},{label:v(()=>u[7]||(u[7]=[D("span",null,"Enable Experimental Moonraker Support",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[10]||(u[10]=k(" Database Settings ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,Xg(kh(d)),{default:v(()=>u[8]||(u[8]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[9]||(u[9]=D("span",{class:"tooltip-content"}," By enabling this setting you will set FDM Monster to SQLite as a database source (standalone mode). Please set 'ENABLE_EXPERIMENTAL_TYPEORM' to 'true' to enable this feature. ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=d=>n.value=d),label:"Enable TypeORM Support","hide-details":"",disabled:""},{label:v(()=>u[11]||(u[11]=[D("span",null,"Enable TypeORM Support",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[14]||(u[14]=k(" Experimental Features ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,ve({class:"help-icon"},d),{default:v(()=>u[12]||(u[12]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[13]||(u[13]=D("span",{class:"tooltip-content"}," Enables the next version of the FDM Monster UI (experimental). ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=d=>r.value=d),label:"Enable Next Client Version (Experimental)","hide-details":"",onChange:a},{label:v(()=>u[15]||(u[15]=[D("span",null,"Enable Next Client Version (Experimental)",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(zn),h(se,{color:"primary",onClick:i},{default:v(()=>u[16]||(u[16]=[k("Save Settings")])),_:1}),h(se,{onClick:o},{default:v(()=>u[17]||(u[17]=[k("Reset to Default")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}}),Wn={requiresAuth:!0},Gg={requiresAuth:!1},CS=pK({history:j7("/"),routes:[{path:"/",name:Wt.Home,meta:Wn,component:RY},{path:"/first-time-setup",name:Wt.FirstTimeSetup,meta:Gg,component:vne},{path:"/login",name:Wt.Login,meta:Gg,component:Zte},{path:"/registration",name:Wt.Registration,meta:Gg,component:nne},{path:"/printers",name:Wt.PrintersView,meta:Wn,component:uQ},{path:"/cameras",name:Wt.CameraGridView,component:sne},{path:"/settings",component:cQ,meta:Wn,children:[{path:"",meta:Wn,redirect:"/settings/grid"},{path:"account",meta:Wn,component:wne},{path:"server-protection",meta:Wn,component:Ene},{path:"grid",meta:Wn,component:kne},{path:"floors",meta:Wn,component:RQ},{path:"user-management",meta:Wn,component:_Q},{path:"octoprint",meta:Wn,component:EQ},{path:"emergency-commands",meta:Wn,component:Vte},{path:"software-upgrade",meta:Wn,component:wie},{path:"diagnostics",meta:Wn,component:Sie},{path:"experimental",meta:Wn,component:Cie}]},{path:"/statistics",name:Wt.PrintStatistics,meta:Wn,component:Eie},{path:"/about",name:"About",component:MQ},{path:"/permission-denied",name:Wt.PermissionDenied,meta:Wn,component:Kte},{path:"/:pathMatch(.*)*",name:"NotFound",component:zte}]});CS.beforeEach(async(e,t,n)=>{var s,i;const r=fs();if(!((s=e==null?void 0:e.meta)!=null&&s.requiresAuth)||r.loginRequired===!1)return console.debug(`No auth required on route ${e.fullPath}`),n();if(console.debug(`Auth required on route ${e.fullPath} (loginRequired=${r.loginRequired}, registration=${r.registration}, wizardState=${r.wizardState}, requiresAuth=${(i=e==null?void 0:e.meta)==null?void 0:i.requiresAuth})`),r.loadTokens(),!r.hasAuthToken&&!r.hasRefreshToken){if(console.debug("Not logged in, redirecting to login page"),t.path=="/login")throw new Error("Already on login page, cannot redirect");return n({path:"/login",query:{redirect:e.fullPath}})}return n()});const Pie={collapse:"keyboard_arrow_up",complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"cancel",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sortAsc:"arrow_upward",sortDesc:"arrow_downward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove",calendar:"event",treeviewCollapse:"arrow_drop_down",treeviewExpand:"arrow_right",eyeDropper:"colorize"},Tie={component:e=>Ar(JF,{...e,class:"material-icons"})};function uD(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{blueprint:t,...n}=e,r=Zn(t,n),{aliases:s={},components:i={},directives:o={}}=r,a=MF(r.defaults),l=V2(r.display,r.ssr),u=HF(r.theme),d=e2(r.icons),c=l2(r.locale),f=y6(r.date,c),p=kW(r.goTo,c);return{install:g=>{for(const y in o)g.directive(y,o[y]);for(const y in i)g.component(y,i[y]);for(const y in s)g.component(y,xu({...s[y],name:y,aliasName:s[y].name}));if(u.install(g),g.provide(au,a),g.provide(Ev,l),g.provide(jc,u),g.provide(bv,d),g.provide(Oh,c),g.provide(v6,f.options),g.provide(ek,f.instance),g.provide(qI,p),_t&&r.ssr)if(g.$nuxt)g.$nuxt.hook("app:suspense:resolve",()=>{l.update()});else{const{mount:y}=g;g.mount=function(){const b=y(...arguments);return At(()=>l.update()),g.mount=y,b}}mr.reset(),g.mixin({computed:{$vuetify(){return yn({defaults:wl.call(this,au),display:wl.call(this,Ev),theme:wl.call(this,jc),icons:wl.call(this,bv),locale:wl.call(this,Oh),date:wl.call(this,ek)})}}})},defaults:a,display:l,theme:u,icons:d,locale:c,date:f,goTo:p}}const Rie="3.7.4";uD.version=Rie;function wl(e){var r,s;const t=this.$,n=((r=t.parent)==null?void 0:r.provides)??((s=t.vnode.appContext)==null?void 0:s.provides);if(n&&e in n)return n[e]}const Iie=uD({theme:{defaultTheme:"dark",themes:{dark:{dark:!0,colors:{primary:"#9B0505",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FFC107"}},light:{dark:!1,colors:{primary:"#9B0505",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FFC107"}}}},icons:{defaultSet:"md",aliases:Pie,sets:{md:Tie}}}),Aie=F$();function Oie(e){e.use(Iie).use(YG).use(Aie)}const _E=(e,t,n)=>{const r=Nt(),s=Qw(),i=Dt();if(t!=null&&t.length){const o=t.length===1,a=t[0];e.ondrop=async l=>{var f;l.preventDefault(),e.style.border=gp;const u=(f=l.dataTransfer)==null?void 0:f.files;if(!(u!=null&&u.length))return;const d=[...Array.from(u)];let c=[];if(o){const p=d.length===1?d[0].name:null;console.debug("Single printer upload mode",t.length,d.length,p),c=yY(a,d)}else{if(d.length>1)throw"Cannot upload multiple files to multiple printers";console.debug("Multi printer upload mode",t.length,d.length);const p=d[0];c=FO(t,p)}s.queueUploads(c),r.clearSelectedPrinters()}}else e.ondrop=async o=>{o.preventDefault(),e.style.border=gp,i.openInfoMessage({title:"No action performed",subtitle:"Please select one or more printers",warning:!0})}},gp="1px solid #2b2a27",Mie="background-color 0.5s ease",kE="1px solid red";function Die(){return{mounted:(e,t,n)=>{var r;e.style.border=gp,e.style.transition=Mie,e.ondragenter=s=>{s.preventDefault(),e.style.border=kE},e.ondragover=s=>{s.preventDefault(),e.style.border=kE},e.ondragleave=s=>{s.preventDefault(),e.style.border=gp},_E(e,(r=t.value)==null?void 0:r.printers,n.appContext)},beforeUpdate:(e,t,n)=>{_E(e,t.value,n.appContext)}}}const Kg="1px solid #2b2a27",Lie="1px solid gray",xE=(e,t,n)=>{const r=t==null?void 0:t.printerSet,s=qi();if(r){e.ondrop=null,e.ondragover=null,e.ondragleave=null;return}e.style.border=Kg,e.ondrop=async i=>{var c;if(e.style.border=Kg,i.preventDefault(),!i.dataTransfer)return;const o=i.dataTransfer.getData("text"),a=JSON.parse(o);if(!fY(a)){console.debug("Drop not recognized",a);return}const u=(c=s.selectedFloor)==null?void 0:c.id;if(!u)throw new Error("Floor is not set");const d=a.printerId;if(!d)throw new Error("PrinterId was not provided");await ss.addPrinterToFloor(u,{printerId:d,x:t.x,y:t.y})},e.ondragover=i=>{i!=null&&i.dataTransfer&&(i.dataTransfer&&Array.from(i.dataTransfer.items).filter(o=>o.kind==="file").length||(e.style.border=Lie,i.preventDefault()))},e.ondragleave=i=>{e.style.border=Kg,i.preventDefault()}};function $ie(){return{mounted:(e,t,n)=>{xE(e,t.value,n.appContext)},beforeUpdate:(e,t,n)=>{xE(e,t.value,n.appContext)}}}const Zo=M$(eY);console.log("[DEV: false][PROD: true]","0.0.6");tW({app:Zo,dsn:"https://f64683e8d1cb4ac291434993cff1bf9b@o4503975545733120.ingest.sentry.io/4503975546912768",integrations:[sW({router:CS}),x8()],release:"0.0.6",environment:"production",enabled:!0,tracesSampleRate:1,replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1});Zo.config.errorHandler=e=>{var t;if(e instanceof AT){console.error(`An error was caught [${e.name}]:
|
|
84
|
+
`):e}function Xee(e,t){const{element:n,datasetIndex:r,index:s}=t,i=e.getDatasetMeta(r).controller,{label:o,value:a}=i.getLabelAndValue(s);return{chart:e,label:o,parsed:i.getParsed(s),raw:e.data.datasets[r].data[s],formattedValue:a,dataset:i.getDataset(),dataIndex:s,datasetIndex:r,element:n}}function Fx(e,t){const n=e.chart.ctx,{body:r,footer:s,title:i}=e,{boxWidth:o,boxHeight:a}=t,l=Tn(t.bodyFont),u=Tn(t.titleFont),d=Tn(t.footerFont),c=i.length,f=s.length,p=r.length,m=rr(t.padding);let g=m.height,y=0,b=r.reduce((T,E)=>T+E.before.length+E.lines.length+E.after.length,0);if(b+=e.beforeBody.length+e.afterBody.length,c&&(g+=c*u.lineHeight+(c-1)*t.titleSpacing+t.titleMarginBottom),b){const T=t.displayColors?Math.max(a,l.lineHeight):l.lineHeight;g+=p*T+(b-p)*l.lineHeight+(b-1)*t.bodySpacing}f&&(g+=t.footerMarginTop+f*d.lineHeight+(f-1)*t.footerSpacing);let _=0;const S=function(T){y=Math.max(y,n.measureText(T).width+_)};return n.save(),n.font=u.string,Rt(e.title,S),n.font=l.string,Rt(e.beforeBody.concat(e.afterBody),S),_=t.displayColors?o+2+t.boxPadding:0,Rt(r,T=>{Rt(T.before,S),Rt(T.lines,S),Rt(T.after,S)}),_=0,n.font=d.string,Rt(e.footer,S),n.restore(),y+=m.width,{width:y,height:g}}function Qee(e,t){const{y:n,height:r}=t;return n<r/2?"top":n>e.height-r/2?"bottom":"center"}function Jee(e,t,n,r){const{x:s,width:i}=r,o=n.caretSize+n.caretPadding;if(e==="left"&&s+i+o>t.width||e==="right"&&s-i-o<0)return!0}function Zee(e,t,n,r){const{x:s,width:i}=n,{width:o,chartArea:{left:a,right:l}}=e;let u="center";return r==="center"?u=s<=(a+l)/2?"left":"right":s<=i/2?u="left":s>=o-i/2&&(u="right"),Jee(u,e,t,n)&&(u="center"),u}function Nx(e,t,n){const r=n.yAlign||t.yAlign||Qee(e,n);return{xAlign:n.xAlign||t.xAlign||Zee(e,t,n,r),yAlign:r}}function ete(e,t){let{x:n,width:r}=e;return t==="right"?n-=r:t==="center"&&(n-=r/2),n}function tte(e,t,n){let{y:r,height:s}=e;return t==="top"?r+=n:t==="bottom"?r-=s+n:r-=s/2,r}function Bx(e,t,n,r){const{caretSize:s,caretPadding:i,cornerRadius:o}=e,{xAlign:a,yAlign:l}=n,u=s+i,{topLeft:d,topRight:c,bottomLeft:f,bottomRight:p}=Da(o);let m=ete(t,a);const g=tte(t,l,u);return l==="center"?a==="left"?m+=u:a==="right"&&(m-=u):a==="left"?m-=Math.max(d,f)+s:a==="right"&&(m+=Math.max(c,p)+s),{x:Es(m,0,r.width-t.width),y:Es(g,0,r.height-t.height)}}function $f(e,t,n){const r=rr(n.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-r.right:e.x+r.left}function Vx(e){return Hs([],ki(e))}function nte(e,t,n){return al(e,{tooltip:t,tooltipItems:n,type:"tooltip"})}function Ux(e,t){const n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}const XM={beforeTitle:yi,title(e){if(e.length>0){const t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(r>0&&t.dataIndex<r)return n[t.dataIndex]}return""},afterTitle:yi,beforeBody:yi,beforeLabel:yi,label(e){if(this&&this.options&&this.options.mode==="dataset")return e.label+": "+e.formattedValue||e.formattedValue;let t=e.dataset.label||"";t&&(t+=": ");const n=e.formattedValue;return Mt(n)||(t+=n),t},labelColor(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(e){const n=e.chart.getDatasetMeta(e.datasetIndex).controller.getStyle(e.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:yi,afterBody:yi,beforeFooter:yi,footer:yi,afterFooter:yi};function yr(e,t,n,r){const s=e[t].call(n,r);return typeof s>"u"?XM[t].call(n,r):s}class Xy extends Hu{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const n=this.chart,r=this.options.setContext(this.getContext()),s=r.enabled&&n.options.animation&&r.animations,i=new LM(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=nte(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,n){const{callbacks:r}=n,s=yr(r,"beforeTitle",this,t),i=yr(r,"title",this,t),o=yr(r,"afterTitle",this,t);let a=[];return a=Hs(a,ki(s)),a=Hs(a,ki(i)),a=Hs(a,ki(o)),a}getBeforeBody(t,n){return Vx(yr(n.callbacks,"beforeBody",this,t))}getBody(t,n){const{callbacks:r}=n,s=[];return Rt(t,i=>{const o={before:[],lines:[],after:[]},a=Ux(r,i);Hs(o.before,ki(yr(a,"beforeLabel",this,i))),Hs(o.lines,yr(a,"label",this,i)),Hs(o.after,ki(yr(a,"afterLabel",this,i))),s.push(o)}),s}getAfterBody(t,n){return Vx(yr(n.callbacks,"afterBody",this,t))}getFooter(t,n){const{callbacks:r}=n,s=yr(r,"beforeFooter",this,t),i=yr(r,"footer",this,t),o=yr(r,"afterFooter",this,t);let a=[];return a=Hs(a,ki(s)),a=Hs(a,ki(i)),a=Hs(a,ki(o)),a}_createItems(t){const n=this._active,r=this.chart.data,s=[],i=[],o=[];let a=[],l,u;for(l=0,u=n.length;l<u;++l)a.push(Xee(this.chart,n[l]));return t.filter&&(a=a.filter((d,c,f)=>t.filter(d,c,f,r))),t.itemSort&&(a=a.sort((d,c)=>t.itemSort(d,c,r))),Rt(a,d=>{const c=Ux(t.callbacks,d);s.push(yr(c,"labelColor",this,d)),i.push(yr(c,"labelPointStyle",this,d)),o.push(yr(c,"labelTextColor",this,d))}),this.labelColors=s,this.labelPointStyles=i,this.labelTextColors=o,this.dataPoints=a,a}update(t,n){const r=this.options.setContext(this.getContext()),s=this._active;let i,o=[];if(!s.length)this.opacity!==0&&(i={opacity:0});else{const a=mc[r.position].call(this,s,this._eventPosition);o=this._createItems(r),this.title=this.getTitle(o,r),this.beforeBody=this.getBeforeBody(o,r),this.body=this.getBody(o,r),this.afterBody=this.getAfterBody(o,r),this.footer=this.getFooter(o,r);const l=this._size=Fx(this,r),u=Object.assign({},a,l),d=Nx(this.chart,r,u),c=Bx(r,u,d,this.chart);this.xAlign=d.xAlign,this.yAlign=d.yAlign,i={opacity:1,x:c.x,y:c.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=o,this.$context=void 0,i&&this._resolveAnimations().update(this,i),t&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(t,n,r,s){const i=this.getCaretPosition(t,r,s);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(t,n,r){const{xAlign:s,yAlign:i}=this,{caretSize:o,cornerRadius:a}=r,{topLeft:l,topRight:u,bottomLeft:d,bottomRight:c}=Da(a),{x:f,y:p}=t,{width:m,height:g}=n;let y,b,_,S,T,E;return i==="center"?(T=p+g/2,s==="left"?(y=f,b=y-o,S=T+o,E=T-o):(y=f+m,b=y+o,S=T-o,E=T+o),_=y):(s==="left"?b=f+Math.max(l,d)+o:s==="right"?b=f+m-Math.max(u,c)-o:b=this.caretX,i==="top"?(S=p,T=S-o,y=b-o,_=b+o):(S=p+g,T=S+o,y=b+o,_=b-o),E=S),{x1:y,x2:b,x3:_,y1:S,y2:T,y3:E}}drawTitle(t,n,r){const s=this.title,i=s.length;let o,a,l;if(i){const u=jl(r.rtl,this.x,this.width);for(t.x=$f(this,r.titleAlign,r),n.textAlign=u.textAlign(r.titleAlign),n.textBaseline="middle",o=Tn(r.titleFont),a=r.titleSpacing,n.fillStyle=r.titleColor,n.font=o.string,l=0;l<i;++l)n.fillText(s[l],u.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+a,l+1===i&&(t.y+=r.titleMarginBottom-a)}}_drawColorBox(t,n,r,s,i){const o=this.labelColors[r],a=this.labelPointStyles[r],{boxHeight:l,boxWidth:u}=i,d=Tn(i.bodyFont),c=$f(this,"left",i),f=s.x(c),p=l<d.lineHeight?(d.lineHeight-l)/2:0,m=n.y+p;if(i.usePointStyle){const g={radius:Math.min(u,l)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},y=s.leftForLtr(f,u)+u/2,b=m+l/2;t.strokeStyle=i.multiKeyBackground,t.fillStyle=i.multiKeyBackground,nx(t,g,y,b),t.strokeStyle=o.borderColor,t.fillStyle=o.backgroundColor,nx(t,g,y,b)}else{t.lineWidth=St(o.borderWidth)?Math.max(...Object.values(o.borderWidth)):o.borderWidth||1,t.strokeStyle=o.borderColor,t.setLineDash(o.borderDash||[]),t.lineDashOffset=o.borderDashOffset||0;const g=s.leftForLtr(f,u),y=s.leftForLtr(s.xPlus(f,1),u-2),b=Da(o.borderRadius);Object.values(b).some(_=>_!==0)?(t.beginPath(),t.fillStyle=i.multiKeyBackground,pd(t,{x:g,y:m,w:u,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),pd(t,{x:y,y:m+1,w:u-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=i.multiKeyBackground,t.fillRect(g,m,u,l),t.strokeRect(g,m,u,l),t.fillStyle=o.backgroundColor,t.fillRect(y,m+1,u-2,l-2))}t.fillStyle=this.labelTextColors[r]}drawBody(t,n,r){const{body:s}=this,{bodySpacing:i,bodyAlign:o,displayColors:a,boxHeight:l,boxWidth:u,boxPadding:d}=r,c=Tn(r.bodyFont);let f=c.lineHeight,p=0;const m=jl(r.rtl,this.x,this.width),g=function(x){n.fillText(x,m.x(t.x+p),t.y+f/2),t.y+=f+i},y=m.textAlign(o);let b,_,S,T,E,R,P;for(n.textAlign=o,n.textBaseline="middle",n.font=c.string,t.x=$f(this,y,r),n.fillStyle=r.bodyColor,Rt(this.beforeBody,g),p=a&&y!=="right"?o==="center"?u/2+d:u+2+d:0,T=0,R=s.length;T<R;++T){for(b=s[T],_=this.labelTextColors[T],n.fillStyle=_,Rt(b.before,g),S=b.lines,a&&S.length&&(this._drawColorBox(n,t,T,m,r),f=Math.max(c.lineHeight,l)),E=0,P=S.length;E<P;++E)g(S[E]),f=c.lineHeight;Rt(b.after,g)}p=0,f=c.lineHeight,Rt(this.afterBody,g),t.y-=i}drawFooter(t,n,r){const s=this.footer,i=s.length;let o,a;if(i){const l=jl(r.rtl,this.x,this.width);for(t.x=$f(this,r.footerAlign,r),t.y+=r.footerMarginTop,n.textAlign=l.textAlign(r.footerAlign),n.textBaseline="middle",o=Tn(r.footerFont),n.fillStyle=r.footerColor,n.font=o.string,a=0;a<i;++a)n.fillText(s[a],l.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+r.footerSpacing}}drawBackground(t,n,r,s){const{xAlign:i,yAlign:o}=this,{x:a,y:l}=t,{width:u,height:d}=r,{topLeft:c,topRight:f,bottomLeft:p,bottomRight:m}=Da(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(a+c,l),o==="top"&&this.drawCaret(t,n,r,s),n.lineTo(a+u-f,l),n.quadraticCurveTo(a+u,l,a+u,l+f),o==="center"&&i==="right"&&this.drawCaret(t,n,r,s),n.lineTo(a+u,l+d-m),n.quadraticCurveTo(a+u,l+d,a+u-m,l+d),o==="bottom"&&this.drawCaret(t,n,r,s),n.lineTo(a+p,l+d),n.quadraticCurveTo(a,l+d,a,l+d-p),o==="center"&&i==="left"&&this.drawCaret(t,n,r,s),n.lineTo(a,l+c),n.quadraticCurveTo(a,l,a+c,l),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(t){const n=this.chart,r=this.$animations,s=r&&r.x,i=r&&r.y;if(s||i){const o=mc[t.position].call(this,this._active,this._eventPosition);if(!o)return;const a=this._size=Fx(this,t),l=Object.assign({},o,this._size),u=Nx(n,t,l),d=Bx(t,l,u,n);(s._to!==d.x||i._to!==d.y)&&(this.xAlign=u.xAlign,this.yAlign=u.yAlign,this.width=a.width,this.height=a.height,this.caretX=o.x,this.caretY=o.y,this._resolveAnimations().update(this,d))}}_willRender(){return!!this.opacity}draw(t){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const s={width:this.width,height:this.height},i={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const o=rr(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(t.save(),t.globalAlpha=r,this.drawBackground(i,t,s,n),MM(t,n.textDirection),i.y+=o.top,this.drawTitle(i,t,n),this.drawBody(i,t,n),this.drawFooter(i,t,n),DM(t,n.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,n){const r=this._active,s=t.map(({datasetIndex:a,index:l})=>{const u=this.chart.getDatasetMeta(a);if(!u)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:u.data[l],index:l}}),i=!ap(r,s),o=this._positionChanged(s,n);(i||o)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,i=this._active||[],o=this._getActiveElements(t,i,n,r),a=this._positionChanged(o,t),l=n||!ap(o,i)||a;return l&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,n))),l}_getActiveElements(t,n,r,s){const i=this.options;if(t.type==="mouseout")return[];if(!s)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const o=this.chart.getElementsAtEventForMode(t,i.mode,i,r);return i.reverse&&o.reverse(),o}_positionChanged(t,n){const{caretX:r,caretY:s,options:i}=this,o=mc[i.position].call(this,t,n);return o!==!1&&(r!==o.x||s!==o.y)}}he(Xy,"positioners",mc);var rte={id:"tooltip",_element:Xy,positioners:mc,afterInit(e,t,n){n&&(e.tooltip=new Xy({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const n={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",n)}},afterEvent(e,t){if(e.tooltip){const n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:XM},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const ste=(e,t,n,r)=>(typeof t=="string"?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function ite(e,t,n,r){const s=e.indexOf(t);if(s===-1)return ste(e,t,n,r);const i=e.lastIndexOf(t);return s!==i?n:s}const ote=(e,t)=>e===null?null:Es(Math.round(e),0,t);function zx(e){const t=this.getLabels();return e>=0&&e<t.length?t[e]:e}class Qy extends ll{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const n=this._addedLabels;if(n.length){const r=this.getLabels();for(const{index:s,label:i}of n)r[s]===i&&r.splice(s,1);this._addedLabels=[]}super.init(t)}parse(t,n){if(Mt(t))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===t?n:ite(r,t,Et(n,t),this._addedLabels),ote(n,r.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let{min:r,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(t||(r=0),n||(s=this.getLabels().length-1)),this.min=r,this.max=s}buildTicks(){const t=this.min,n=this.max,r=this.options.offset,s=[];let i=this.getLabels();i=t===0&&n===i.length-1?i:i.slice(t,n+1),this._valueRange=Math.max(i.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let o=t;o<=n;o++)s.push({value:o});return s}getLabelForValue(t){return zx.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return typeof t!="number"&&(t=this.parse(t)),t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const n=this.ticks;return t<0||t>n.length-1?null:this.getPixelForValue(n[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}he(Qy,"id","category"),he(Qy,"defaults",{ticks:{callback:zx}});function ate(e,t){const n=[],{bounds:s,step:i,min:o,max:a,precision:l,count:u,maxTicks:d,maxDigits:c,includeBounds:f}=e,p=i||1,m=d-1,{min:g,max:y}=t,b=!Mt(o),_=!Mt(a),S=!Mt(u),T=(y-g)/(c+1);let E=Kk((y-g)/m/p)*p,R,P,x,w;if(E<1e-14&&!b&&!_)return[{value:g},{value:y}];w=Math.ceil(y/E)-Math.floor(g/E),w>m&&(E=Kk(w*E/m/p)*p),Mt(l)||(R=Math.pow(10,l),E=Math.ceil(E*R)/R),s==="ticks"?(P=Math.floor(g/E)*E,x=Math.ceil(y/E)*E):(P=g,x=y),b&&_&&i&&dJ((a-o)/i,E/1e3)?(w=Math.round(Math.min((a-o)/E,d)),E=(a-o)/w,P=o,x=a):S?(P=b?o:P,x=_?a:x,w=u-1,E=(x-P)/w):(w=(x-P)/E,hh(w,Math.round(w),E/1e3)?w=Math.round(w):w=Math.ceil(w));const C=Math.max(Yk(E),Yk(P));R=Math.pow(10,Mt(l)?C:l),P=Math.round(P*R)/R,x=Math.round(x*R)/R;let O=0;for(b&&(f&&P!==o?(n.push({value:o}),P<o&&O++,hh(Math.round((P+O*E)*R)/R,o,Hx(o,T,e))&&O++):P<o&&O++);O<w;++O){const A=Math.round((P+O*E)*R)/R;if(_&&A>a)break;n.push({value:A})}return _&&f&&x!==a?n.length&&hh(n[n.length-1].value,a,Hx(a,T,e))?n[n.length-1].value=a:n.push({value:a}):(!_||x===a)&&n.push({value:x}),n}function Hx(e,t,{horizontal:n,minRotation:r}){const s=_o(r),i=(n?Math.sin(s):Math.cos(s))||.001,o=.75*t*(""+e).length;return Math.min(t/i,o)}class pp extends ll{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,n){return Mt(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:s,max:i}=this;const o=l=>s=n?s:l,a=l=>i=r?i:l;if(t){const l=Ao(s),u=Ao(i);l<0&&u<0?a(0):l>0&&u>0&&o(0)}if(s===i){let l=i===0?1:Math.abs(i*.05);a(i+l),t||o(s-l)}this.min=s,this.max=i}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=t,s;return r?(s=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,n=t.ticks;let r=this.getTickLimit();r=Math.max(2,r);const s={maxTicks:r,bounds:t.bounds,min:t.min,max:t.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},i=this._range||this,o=ate(s,i);return t.bounds==="ticks"&&bM(o,this,"value"),t.reverse?(o.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),o}configure(){const t=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&t.length){const s=(r-n)/Math.max(t.length-1,1)/2;n-=s,r+=s}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(t){return uS(t,this.chart.options.locale,this.options.ticks.format)}}class Jy extends pp{determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=On(t)?t:0,this.max=On(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),n=t?this.width:this.height,r=_o(this.options.ticks.minRotation),s=(t?Math.sin(r):Math.cos(r))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,i.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}he(Jy,"id","linear"),he(Jy,"defaults",{ticks:{callback:km.formatters.numeric}});const gd=e=>Math.floor(So(e)),la=(e,t)=>Math.pow(10,gd(e)+t);function jx(e){return e/Math.pow(10,gd(e))===1}function Wx(e,t,n){const r=Math.pow(10,n),s=Math.floor(e/r);return Math.ceil(t/r)-s}function lte(e,t){const n=t-e;let r=gd(n);for(;Wx(e,t,r)>10;)r++;for(;Wx(e,t,r)<10;)r--;return Math.min(r,gd(e))}function ute(e,{min:t,max:n}){t=Ur(e.min,t);const r=[],s=gd(t);let i=lte(t,n),o=i<0?Math.pow(10,Math.abs(i)):1;const a=Math.pow(10,i),l=s>i?Math.pow(10,s):0,u=Math.round((t-l)*o)/o,d=Math.floor((t-l)/a/10)*a*10;let c=Math.floor((u-d)/Math.pow(10,i)),f=Ur(e.min,Math.round((l+d+c*Math.pow(10,i))*o)/o);for(;f<n;)r.push({value:f,major:jx(f),significand:c}),c>=10?c=c<15?15:20:c++,c>=20&&(i++,c=2,o=i>=0?1:o),f=Math.round((l+d+c*Math.pow(10,i))*o)/o;const p=Ur(e.max,f);return r.push({value:p,major:jx(p),significand:c}),r}class qx extends ll{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,n){const r=pp.prototype.parse.apply(this,[t,n]);if(r===0){this._zero=!0;return}return On(r)&&r>0?r:null}determineDataLimits(){const{min:t,max:n}=this.getMinMax(!0);this.min=On(t)?Math.max(0,t):null,this.max=On(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!On(this._userMin)&&(this.min=t===la(this.min,0)?la(this.min,-1):la(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:n}=this.getUserBounds();let r=this.min,s=this.max;const i=a=>r=t?r:a,o=a=>s=n?s:a;r===s&&(r<=0?(i(1),o(10)):(i(la(r,-1)),o(la(s,1)))),r<=0&&i(la(s,-1)),s<=0&&o(la(r,1)),this.min=r,this.max=s}buildTicks(){const t=this.options,n={min:this._userMin,max:this._userMax},r=ute(n,this);return t.bounds==="ticks"&&bM(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}getLabelForValue(t){return t===void 0?"0":uS(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=So(t),this._valueRange=So(this.max)-So(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(So(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const n=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+n*this._valueRange)}}he(qx,"id","logarithmic"),he(qx,"defaults",{ticks:{callback:km.formatters.logarithmic,major:{enabled:!0}}});function Zy(e){const t=e.ticks;if(t.display&&e.display){const n=rr(t.backdropPadding);return Et(t.font&&t.font.size,dn.font.size)+n.height}return 0}function cte(e,t,n){return n=on(n)?n:[n],{w:IJ(e,t.string,n),h:n.length*t.lineHeight}}function Gx(e,t,n,r,s){return e===r||e===s?{start:t-n/2,end:t+n/2}:e<r||e>s?{start:t-n,end:t}:{start:t,end:t+n}}function dte(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],s=[],i=e._pointLabels.length,o=e.options.pointLabels,a=o.centerPointLabels?Ln/i:0;for(let l=0;l<i;l++){const u=o.setContext(e.getPointLabelContext(l));s[l]=u.padding;const d=e.getPointPosition(l,e.drawingArea+s[l],a),c=Tn(u.font),f=cte(e.ctx,c,e._pointLabels[l]);r[l]=f;const p=Ys(e.getIndexAngle(l)+a),m=Math.round(oS(p)),g=Gx(m,d.x,f.w,0,180),y=Gx(m,d.y,f.h,90,270);fte(n,t,p,g,y)}e.setCenterPoint(t.l-n.l,n.r-t.r,t.t-n.t,n.b-t.b),e._pointLabelItems=mte(e,r,s)}function fte(e,t,n,r,s){const i=Math.abs(Math.sin(n)),o=Math.abs(Math.cos(n));let a=0,l=0;r.start<t.l?(a=(t.l-r.start)/i,e.l=Math.min(e.l,t.l-a)):r.end>t.r&&(a=(r.end-t.r)/i,e.r=Math.max(e.r,t.r+a)),s.start<t.t?(l=(t.t-s.start)/o,e.t=Math.min(e.t,t.t-l)):s.end>t.b&&(l=(s.end-t.b)/o,e.b=Math.max(e.b,t.b+l))}function hte(e,t,n){const r=e.drawingArea,{extra:s,additionalAngle:i,padding:o,size:a}=n,l=e.getPointPosition(t,r+s+o,i),u=Math.round(oS(Ys(l.angle+Kr))),d=yte(l.y,a.h,u),c=gte(u),f=vte(l.x,a.w,c);return{visible:!0,x:l.x,y:d,textAlign:c,left:f,top:d,right:f+a.w,bottom:d+a.h}}function pte(e,t){if(!t)return!0;const{left:n,top:r,right:s,bottom:i}=e;return!(Ll({x:n,y:r},t)||Ll({x:n,y:i},t)||Ll({x:s,y:r},t)||Ll({x:s,y:i},t))}function mte(e,t,n){const r=[],s=e._pointLabels.length,i=e.options,{centerPointLabels:o,display:a}=i.pointLabels,l={extra:Zy(i)/2,additionalAngle:o?Ln/s:0};let u;for(let d=0;d<s;d++){l.padding=n[d],l.size=t[d];const c=hte(e,d,l);r.push(c),a==="auto"&&(c.visible=pte(c,u),c.visible&&(u=c))}return r}function gte(e){return e===0||e===180?"center":e<180?"left":"right"}function vte(e,t,n){return n==="right"?e-=t:n==="center"&&(e-=t/2),e}function yte(e,t,n){return n===90||n===270?e-=t/2:(n>270||n<90)&&(e-=t),e}function bte(e,t,n){const{left:r,top:s,right:i,bottom:o}=n,{backdropColor:a}=t;if(!Mt(a)){const l=Da(t.borderRadius),u=rr(t.backdropPadding);e.fillStyle=a;const d=r-u.left,c=s-u.top,f=i-r+u.width,p=o-s+u.height;Object.values(l).some(m=>m!==0)?(e.beginPath(),pd(e,{x:d,y:c,w:f,h:p,radius:l}),e.fill()):e.fillRect(d,c,f,p)}}function wte(e,t){const{ctx:n,options:{pointLabels:r}}=e;for(let s=t-1;s>=0;s--){const i=e._pointLabelItems[s];if(!i.visible)continue;const o=r.setContext(e.getPointLabelContext(s));bte(n,o,i);const a=Tn(o.font),{x:l,y:u,textAlign:d}=i;Xa(n,e._pointLabels[s],l,u+a.lineHeight/2,a,{color:o.color,textAlign:d,textBaseline:"middle"})}}function QM(e,t,n,r){const{ctx:s}=e;if(n)s.arc(e.xCenter,e.yCenter,t,0,li);else{let i=e.getPointPosition(0,t);s.moveTo(i.x,i.y);for(let o=1;o<r;o++)i=e.getPointPosition(o,t),s.lineTo(i.x,i.y)}}function Ste(e,t,n,r,s){const i=e.ctx,o=t.circular,{color:a,lineWidth:l}=t;!o&&!r||!a||!l||n<0||(i.save(),i.strokeStyle=a,i.lineWidth=l,i.setLineDash(s.dash||[]),i.lineDashOffset=s.dashOffset,i.beginPath(),QM(e,n,o,r),i.closePath(),i.stroke(),i.restore())}function _te(e,t,n){return al(e,{label:n,index:t,type:"pointLabel"})}class Ff extends pp{constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=rr(Zy(this.options)/2),n=this.width=this.maxWidth-t.width,r=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+n/2+t.left),this.yCenter=Math.floor(this.top+r/2+t.top),this.drawingArea=Math.floor(Math.min(n,r)/2)}determineDataLimits(){const{min:t,max:n}=this.getMinMax(!1);this.min=On(t)&&!isNaN(t)?t:0,this.max=On(n)&&!isNaN(n)?n:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Zy(this.options))}generateTickLabels(t){pp.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map((n,r)=>{const s=jt(this.options.pointLabels.callback,[n,r],this);return s||s===0?s:""}).filter((n,r)=>this.chart.getDataVisibility(r))}fit(){const t=this.options;t.display&&t.pointLabels.display?dte(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,n,r,s){this.xCenter+=Math.floor((t-n)/2),this.yCenter+=Math.floor((r-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,n,r,s))}getIndexAngle(t){const n=li/(this._pointLabels.length||1),r=this.options.startAngle||0;return Ys(t*n+_o(r))}getDistanceFromCenterForValue(t){if(Mt(t))return NaN;const n=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*n:(t-this.min)*n}getValueForDistanceFromCenter(t){if(Mt(t))return NaN;const n=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-n:this.min+n}getPointLabelContext(t){const n=this._pointLabels||[];if(t>=0&&t<n.length){const r=n[t];return _te(this.getContext(),t,r)}}getPointPosition(t,n,r=0){const s=this.getIndexAngle(t)-Kr+r;return{x:Math.cos(s)*n+this.xCenter,y:Math.sin(s)*n+this.yCenter,angle:s}}getPointPositionForValue(t,n){return this.getPointPosition(t,this.getDistanceFromCenterForValue(n))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:n,top:r,right:s,bottom:i}=this._pointLabelItems[t];return{left:n,top:r,right:s,bottom:i}}drawBackground(){const{backgroundColor:t,grid:{circular:n}}=this.options;if(t){const r=this.ctx;r.save(),r.beginPath(),QM(this,this.getDistanceFromCenterForValue(this._endValue),n,this._pointLabels.length),r.closePath(),r.fillStyle=t,r.fill(),r.restore()}}drawGrid(){const t=this.ctx,n=this.options,{angleLines:r,grid:s,border:i}=n,o=this._pointLabels.length;let a,l,u;if(n.pointLabels.display&&wte(this,o),s.display&&this.ticks.forEach((d,c)=>{if(c!==0||c===0&&this.min<0){l=this.getDistanceFromCenterForValue(d.value);const f=this.getContext(c),p=s.setContext(f),m=i.setContext(f);Ste(this,p,l,o,m)}}),r.display){for(t.save(),a=o-1;a>=0;a--){const d=r.setContext(this.getPointLabelContext(a)),{color:c,lineWidth:f}=d;!f||!c||(t.lineWidth=f,t.strokeStyle=c,t.setLineDash(d.borderDash),t.lineDashOffset=d.borderDashOffset,l=this.getDistanceFromCenterForValue(n.reverse?this.min:this.max),u=this.getPointPosition(a,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(u.x,u.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,n=this.options,r=n.ticks;if(!r.display)return;const s=this.getIndexAngle(0);let i,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((a,l)=>{if(l===0&&this.min>=0&&!n.reverse)return;const u=r.setContext(this.getContext(l)),d=Tn(u.font);if(i=this.getDistanceFromCenterForValue(this.ticks[l].value),u.showLabelBackdrop){t.font=d.string,o=t.measureText(a.label).width,t.fillStyle=u.backdropColor;const c=rr(u.backdropPadding);t.fillRect(-o/2-c.left,-i-d.size/2-c.top,o+c.width,d.size+c.height)}Xa(t,a.label,0,-i,d,{color:u.color,strokeColor:u.textStrokeColor,strokeWidth:u.textStrokeWidth})}),t.restore()}drawTitle(){}}he(Ff,"id","radialLinear"),he(Ff,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:km.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),he(Ff,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),he(Ff,"descriptors",{angleLines:{_fallback:"grid"}});const Cm={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},xr=Object.keys(Cm);function Kx(e,t){return e-t}function Yx(e,t){if(Mt(t))return null;const n=e._adapter,{parser:r,round:s,isoWeekday:i}=e._parseOpts;let o=t;return typeof r=="function"&&(o=r(o)),On(o)||(o=typeof r=="string"?n.parse(o,r):n.parse(o)),o===null?null:(s&&(o=s==="week"&&(cp(i)||i===!0)?n.startOf(o,"isoWeek",i):n.startOf(o,s)),+o)}function Xx(e,t,n,r){const s=xr.length;for(let i=xr.indexOf(e);i<s-1;++i){const o=Cm[xr[i]],a=o.steps?o.steps:Number.MAX_SAFE_INTEGER;if(o.common&&Math.ceil((n-t)/(a*o.size))<=r)return xr[i]}return xr[s-1]}function kte(e,t,n,r,s){for(let i=xr.length-1;i>=xr.indexOf(n);i--){const o=xr[i];if(Cm[o].common&&e._adapter.diff(s,r,o)>=t-1)return o}return xr[n?xr.indexOf(n):0]}function xte(e){for(let t=xr.indexOf(e)+1,n=xr.length;t<n;++t)if(Cm[xr[t]].common)return xr[t]}function Qx(e,t,n){if(!n)e[t]=!0;else if(n.length){const{lo:r,hi:s}=aS(n,t),i=n[r]>=t?n[r]:n[s];e[i]=!0}}function Ete(e,t,n,r){const s=e._adapter,i=+s.startOf(t[0].value,r),o=t[t.length-1].value;let a,l;for(a=i;a<=o;a=+s.add(a,1,r))l=n[a],l>=0&&(t[l].major=!0);return t}function Jx(e,t,n){const r=[],s={},i=t.length;let o,a;for(o=0;o<i;++o)a=t[o],s[a]=o,r.push({value:a,major:!1});return i===0||!n?r:Ete(e,r,s,n)}class mp extends ll{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,n={}){const r=t.time||(t.time={}),s=this._adapter=new PZ._date(t.adapters.date);s.init(n),Oc(r.displayFormats,s.formats()),this._parseOpts={parser:r.parser,round:r.round,isoWeekday:r.isoWeekday},super.init(t),this._normalized=n.normalized}parse(t,n){return t===void 0?null:Yx(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,n=this._adapter,r=t.time.unit||"day";let{min:s,max:i,minDefined:o,maxDefined:a}=this.getUserBounds();function l(u){!o&&!isNaN(u.min)&&(s=Math.min(s,u.min)),!a&&!isNaN(u.max)&&(i=Math.max(i,u.max))}(!o||!a)&&(l(this._getLabelBounds()),(t.bounds!=="ticks"||t.ticks.source!=="labels")&&l(this.getMinMax(!1))),s=On(s)&&!isNaN(s)?s:+n.startOf(Date.now(),r),i=On(i)&&!isNaN(i)?i:+n.endOf(Date.now(),r)+1,this.min=Math.min(s,i-1),this.max=Math.max(s+1,i)}_getLabelBounds(){const t=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return t.length&&(n=t[0],r=t[t.length-1]),{min:n,max:r}}buildTicks(){const t=this.options,n=t.time,r=t.ticks,s=r.source==="labels"?this.getLabelTimestamps():this._generate();t.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const i=this.min,o=this.max,a=vJ(s,i,o);return this._unit=n.unit||(r.autoSkip?Xx(n.minUnit,this.min,this.max,this._getLabelCapacity(i)):kte(this,a.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:xte(this._unit),this.initOffsets(s),t.reverse&&a.reverse(),Jx(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(t=>+t.value))}initOffsets(t=[]){let n=0,r=0,s,i;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?n=1-s:n=(this.getDecimalForValue(t[1])-s)/2,i=this.getDecimalForValue(t[t.length-1]),t.length===1?r=i:r=(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;n=Es(n,0,o),r=Es(r,0,o),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const t=this._adapter,n=this.min,r=this.max,s=this.options,i=s.time,o=i.unit||Xx(i.minUnit,n,r,this._getLabelCapacity(n)),a=Et(s.ticks.stepSize,1),l=o==="week"?i.isoWeekday:!1,u=cp(l)||l===!0,d={};let c=n,f,p;if(u&&(c=+t.startOf(c,"isoWeek",l)),c=+t.startOf(c,u?"day":o),t.diff(r,n,o)>1e5*a)throw new Error(n+" and "+r+" are too far apart with stepSize of "+a+" "+o);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=c,p=0;f<r;f=+t.add(f,a,o),p++)Qx(d,f,m);return(f===r||s.bounds==="ticks"||p===1)&&Qx(d,f,m),Object.keys(d).sort(Kx).map(g=>+g)}getLabelForValue(t){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(t,r.tooltipFormat):n.format(t,r.displayFormats.datetime)}format(t,n){const s=this.options.time.displayFormats,i=this._unit,o=n||s[i];return this._adapter.format(t,o)}_tickFormatFunction(t,n,r,s){const i=this.options,o=i.ticks.callback;if(o)return jt(o,[t,n,r],this);const a=i.time.displayFormats,l=this._unit,u=this._majorUnit,d=l&&a[l],c=u&&a[u],f=r[n],p=u&&c&&f&&f.major;return this._adapter.format(t,s||(p?c:d))}generateTickLabels(t){let n,r,s;for(n=0,r=t.length;n<r;++n)s=t[n],s.label=this._tickFormatFunction(s.value,n,t)}getDecimalForValue(t){return t===null?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const n=this._offsets,r=this.getDecimalForValue(t);return this.getPixelForDecimal((n.start+r)*n.factor)}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return this.min+r*(this.max-this.min)}_getLabelSize(t){const n=this.options.ticks,r=this.ctx.measureText(t).width,s=_o(this.isHorizontal()?n.maxRotation:n.minRotation),i=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:r*i+a*o,h:r*o+a*i}}_getLabelCapacity(t){const n=this.options.time,r=n.displayFormats,s=r[n.unit]||r.millisecond,i=this._tickFormatFunction(t,0,Jx(this,[t],this._majorUnit),s),o=this._getLabelSize(i),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t=this._cache.data||[],n,r;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,r=s.length;n<r;++n)t=t.concat(s[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(t)}getLabelTimestamps(){const t=this._cache.labels||[];let n,r;if(t.length)return t;const s=this.getLabels();for(n=0,r=s.length;n<r;++n)t.push(Yx(this,s[n]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return SM(t.sort(Kx))}}he(mp,"id","time"),he(mp,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function Nf(e,t,n){let r=0,s=e.length-1,i,o,a,l;n?(t>=e[r].pos&&t<=e[s].pos&&({lo:r,hi:s}=qy(e,"pos",t)),{pos:i,time:a}=e[r],{pos:o,time:l}=e[s]):(t>=e[r].time&&t<=e[s].time&&({lo:r,hi:s}=qy(e,"time",t)),{time:i,pos:a}=e[r],{time:o,pos:l}=e[s]);const u=o-i;return u?a+(l-a)*(t-i)/u:a}class Zx extends mp{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(t);this._minPos=Nf(n,this.min),this._tableRange=Nf(n,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:n,max:r}=this,s=[],i=[];let o,a,l,u,d;for(o=0,a=t.length;o<a;++o)u=t[o],u>=n&&u<=r&&s.push(u);if(s.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(o=0,a=s.length;o<a;++o)d=s[o+1],l=s[o-1],u=s[o],Math.round((d+l)/2)!==u&&i.push({time:u,pos:o/(a-1)});return i}_generate(){const t=this.min,n=this.max;let r=super.getDataTimestamps();return(!r.includes(t)||!r.length)&&r.splice(0,0,t),(!r.includes(n)||r.length===1)&&r.push(n),r.sort((s,i)=>s-i)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?t=this.normalize(n.concat(r)):t=n.length?n:r,t=this._cache.all=t,t}getDecimalForValue(t){return(Nf(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const n=this._offsets,r=this.getDecimalForPixel(t)/n.factor-n.end;return Nf(this._table,r*this._tableRange+this._minPos,!0)}}he(Zx,"id","timeseries"),he(Zx,"defaults",mp.defaults);const JM={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Cte={ariaLabel:{type:String},ariaDescribedby:{type:String}},Pte={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...JM,...Cte},Tte=qC[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function yl(e){return kd(e)?Ve(e):e}function Rte(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return kd(t)?new Proxy(e,{}):e}function Ite(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function ZM(e,t){e.labels=t}function eD(e,t,n){const r=[];e.datasets=t.map(s=>{const i=e.datasets.find(o=>o[n]===s[n]);return!i||!s.data||r.includes(i)?{...s}:(r.push(i),Object.assign(i,s),i)})}function Ate(e,t){const n={labels:[],datasets:[]};return ZM(n,e.labels),eD(n,e.datasets,t),n}const Ote=$e({props:Pte,setup(e,t){let{expose:n,slots:r}=t;const s=z(null),i=Me(null);n({chart:i});const o=()=>{if(!s.value)return;const{type:u,data:d,options:c,plugins:f,datasetIdKey:p}=e,m=Ate(d,p),g=Rte(m,d);i.value=new Em(s.value,{type:u,data:g,options:{...c},plugins:f})},a=()=>{const u=Ve(i.value);u&&(e.destroyDelay>0?setTimeout(()=>{u.destroy(),i.value=null},e.destroyDelay):(u.destroy(),i.value=null))},l=u=>{u.update(e.updateMode)};return bt(o),Rp(a),Ce([()=>e.options,()=>e.data],(u,d)=>{let[c,f]=u,[p,m]=d;const g=Ve(i.value);if(!g)return;let y=!1;if(c){const b=yl(c),_=yl(p);b&&b!==_&&(Ite(g,b),y=!0)}if(f){const b=yl(f.labels),_=yl(m.labels),S=yl(f.datasets),T=yl(m.datasets);b!==_&&(ZM(g.config.data,b),y=!0),S&&S!==T&&(eD(g.config.data,S,e.datasetIdKey),y=!0)}y&&At(()=>{l(g)})},{deep:!0}),()=>Ar("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[Ar("p",{},[r.default?r.default():""])])}});function Mte(e,t){return Em.register(t),$e({props:JM,setup(n,r){let{expose:s}=r;const i=Me(null),o=a=>{i.value=a==null?void 0:a.chart};return s({chart:i}),()=>Ar(Ote,Tte({ref:o},{type:e,...n}))}})}const Dte=Mte("bar",ph),Lte={class:"ma-3"},$te={class:"ml-6"},Fte={class:"ml-7 mt-3"},Nte={key:0},Bte={key:2},Vte=$e({__name:"EmergencyCommands",setup(e){Em.register(Qy,Jy,vh,Yee,rte,Gee);const t=Nt(),n=Xo(),r=z(!1),s=z([]),i=z([]),o=z(NaN),a=z(NaN),l=z(NaN),u=z({labels:[],datasets:[{label:"OctoPrint Settings response times (ms)",data:[],borderColor:"#FF6384",backgroundColor:"#ffffff"}]}),d={color:"white",plugins:{title:{color:"red",text:"Response times (ms)",display:!0}},responsive:!0},c=I(()=>n.hasFeature("batchConnectUsbCalls")),f=I(()=>n.hasFeature("batchConnectSocketCalls"));async function p(){const _=t.printers.map(P=>P.id),S=await Ml.batchSettingsGet(_),T=S.map(P=>{var x,w;return((w=(x=P.value)==null?void 0:x.appearance)==null?void 0:w.name)||"ERROR"});i.value=S.filter(P=>!P.success).map(P=>({message:P.error}));const E=S.map(P=>P.time),R=S.map(P=>{var x,w;return((w=(x=P.value)==null?void 0:x.appearance)==null?void 0:w.name)??""});o.value=E.reduce((P,x)=>P+x,0)/E.length,l.value=Math.min(...E),a.value=Math.max(...E),u.value={labels:R,datasets:[{label:"OctoPrint Settings response times (ms)",data:E,borderColor:"#FF6384",backgroundColor:"#ffffff"}]},await AO(500),r.value=!0,s.value=T}async function m(){await ad.restartServer()}async function g(_){if(!confirm("Are you sure you want to toggle all printers?"))return;const S=t.printers.map(T=>T.id);await Ml.batchToggleEnabled(S,_)}async function y(){if(!confirm("Are you sure you want to connect all USBs?"))return;const _=t.printers.map(S=>S.id);await Ml.batchConnectUsb(_)}async function b(){if(!confirm("Are you sure you want to connect all sockets?"))return;const _=t.printers.map(S=>S.id);await Ml.batchConnectSocket(_)}return(_,S)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>S[6]||(S[6]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>S[7]||(S[7]=[k(" Emergency Commands ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>S[8]||(S[8]=[k(" Emergency Commands to rectify problematic situations ")])),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[9]||(S[9]=[k(" Server commands ")])),_:1}),h(yt,null,{default:v(()=>[S[11]||(S[11]=k(" Restart the server ")),S[12]||(S[12]=D("br",null,null,-1)),h(se,{color:"primary",disabled:"",onClick:S[0]||(S[0]=T=>m())},{default:v(()=>S[10]||(S[10]=[k(" Restart server (does not work yet) ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[13]||(S[13]=[k(" Batch disabling ")])),_:1}),h(yt,null,{default:v(()=>[S[15]||(S[15]=k(" Disable all printers in batch (will not affect print) ")),S[16]||(S[16]=D("br",null,null,-1)),h(se,{color:"primary",onClick:S[1]||(S[1]=T=>g(!1))},{default:v(()=>S[14]||(S[14]=[k(" Batch disable ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[17]||(S[17]=[k(" Batch enabling ")])),_:1}),h(yt,null,{default:v(()=>[S[19]||(S[19]=k(" Enabling all printers in batch (will not affect print and it will skip printers in maintenance mode) ")),S[20]||(S[20]=D("br",null,null,-1)),h(se,{color:"primary",onClick:S[2]||(S[2]=T=>g(!0))},{default:v(()=>S[18]||(S[18]=[k(" Batch enable ")])),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>S[21]||(S[21]=[k(" Batch USB connect ")])),_:1}),h(yt,null,{default:v(()=>[S[26]||(S[26]=k(" Connect all USB devices ")),S[27]||(S[27]=D("br",null,null,-1)),h(se,{disabled:!c.value,color:"primary",onClick:S[3]||(S[3]=T=>y())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[22]||(S[22]=[k("usb")])),_:1}),S[23]||(S[23]=k(" Connect USBs "))]),_:1},8,["disabled"]),c.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[24]||(S[24]=[k("warning")])),_:1}),S[25]||(S[25]=k(" This feature is not available, please update the FDM Monster server "))]),_:1}))]),_:1}),h(yt,{class:"mt-2"},{default:v(()=>[S[30]||(S[30]=k(" Connect all Sockets ")),S[31]||(S[31]=D("br",null,null,-1)),h(se,{disabled:!f.value,color:"primary",onClick:S[4]||(S[4]=T=>b())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[28]||(S[28]=[k("hub")])),_:1}),S[29]||(S[29]=k(" Connect Sockets "))]),_:1},8,["disabled"])]),_:1}),f.value?me("",!0):($(),Q(tn,{key:0},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>S[32]||(S[32]=[k("warning")])),_:1}),S[33]||(S[33]=k(" This feature is not available, please update the FDM Monster server "))]),_:1}))]),_:1})]),_:1}),D("div",Lte,[h(tn,null,{default:v(()=>S[34]||(S[34]=[k(" Test all OctoPrint response times ")])),_:1}),D("div",$te,[h(se,{color:"primary",onClick:S[5]||(S[5]=T=>p())},{default:v(()=>S[35]||(S[35]=[k(" Measure response times ")])),_:1})]),D("div",Fte,[r.value?($(),Se("span",Nte," Response times: ")):me("",!0),r.value?($(),Q(ue(Dte),{key:1,data:u.value,options:d,height:"40"},null,8,["data"])):($(),Se("span",Bte," A graph will be shown, presenting the times in milliseconds (ms) "))])])]),_:1}))}}),Ute={class:"text-center"},zte=$e({__name:"NotFoundView",setup(e){const t=Qo(),n=()=>{t.go(-1)};return(r,s)=>($(),Q(Vn,null,{default:v(()=>[s[6]||(s[6]=D("h2",{class:"text-center mt-lg-12"},"This page was not found.",-1)),s[7]||(s[7]=D("h1",{class:"text-center"},": (",-1)),s[8]||(s[8]=D("br",null,null,-1)),D("h4",Ute,[h(se,{class:"align-center",color:"primary",to:"/",variant:"elevated"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[1]||(s[1]=[k("home")])),_:1}),s[2]||(s[2]=k(" Go home "))]),_:1}),s[5]||(s[5]=D("span",{class:"pa-5"}," or ",-1)),h(se,{class:"align-center",variant:"elevated",onClick:s[0]||(s[0]=i=>n())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[3]||(s[3]=[k("arrow_left")])),_:1}),s[4]||(s[4]=k(" Go back "))]),_:1})])]),_:1}))}}),Hte={key:0},jte={key:1},Wte={key:2},qte={key:3},Gte={key:4},Kte=$e({__name:"PermissionDenied",setup(e){const t=fO(),n=I(()=>t.query);return(r,s)=>($(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(PO,{color:"primary"},{default:v(()=>[h(gn,{class:"text-uppercase text-white"},{default:v(()=>s[0]||(s[0]=[D("span",{class:"font-weight-light"}," FDM ",-1),D("strong",null," Monster ",-1)])),_:1})]),_:1}),s[11]||(s[11]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.06"}},null,-1)),h(mm,{"align-center":"",column:"","justify-center":""},{default:v(()=>[h(kt,{class:"flex align-center justify-center pa-lg-16 pa-sm-10",style:{width:"80%"}},{default:v(()=>[h(mn,null,{default:v(()=>[h(K,{class:"mr-4",size:"50"},{default:v(()=>s[1]||(s[1]=[k(" lock ")])),_:1}),s[2]||(s[2]=D("h3",null,"Permission Denied",-1))]),_:1}),h(cm,{class:"mt-1"},{default:v(()=>s[3]||(s[3]=[k(" You do not have permission to access a specific resource on this page. ")])),_:1}),n.value?($(),Q(cn,{key:0},{default:v(()=>{var i,o;return[n.value.page?($(),Se("div",Hte,[s[4]||(s[4]=k(" Page: ")),D("strong",null,ae((i=n.value)==null?void 0:i.page),1)])):me("",!0),n.value.permissions?($(),Se("div",jte,[s[5]||(s[5]=k(" Required permission(s): ")),($(!0),Se(Te,null,Gt(n.value.permissions,a=>($(),Se("strong",{key:a},ae(a),1))),128))])):me("",!0),n.value.roles?($(),Se("div",Wte,[s[6]||(s[6]=k(" Usable roles: ")),D("strong",null,ae((o=n.value.roles)==null?void 0:o.join(", ")),1)])):me("",!0),n.value.url?($(),Se("div",qte,[s[7]||(s[7]=k(" Problematic API path: ")),D("strong",null,ae(n.value.url),1)])):me("",!0),n.value.error?($(),Se("div",Gte,[s[8]||(s[8]=k(" Error: ")),D("strong",null,ae(n.value.error),1)])):me("",!0)]}),_:1})):me("",!0),h(tr,{class:"mt-6"},{default:v(()=>[h(se,{class:"align-center",color:"primary",to:"/",variant:"elevated"},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>s[9]||(s[9]=[k("home")])),_:1}),s[10]||(s[10]=k(" Go home "))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}}),Yte=$e({__name:"Logo",setup(e){return(t,n)=>($(),Q(Yo,{src:ue(TO),class:"shrink mr-1 pt-3 ml-1",contain:"",style:{opacity:"0.85"},width:"150"},null,8,["src"]))}}),Xte=$e({__name:"LoginForm",setup(e){const t=fs(),n=z(""),r=z(""),s=z(!1),i=z(""),o=Qo(),a=fO(),l=z(!1),u=jr("auth:login"),d=Dt(),c=I(()=>{var g;return((g=r.value??"")==null?void 0:g.length)<3||(i.value??"").length<3});bt(async()=>{if(t.loadTokens(),await t.checkAuthenticationRequirements(),t.loginRequired===!1)return console.debug("LoginView, no login required, redirecting to",a.query.redirect,"or home"),u.emit(!0),await m();if(!t.hasRefreshToken)return;await t.verifyOrRefreshLoginOnceOrLogout()&&await m()});async function f(){return await o.push({name:Wt.Registration})}async function p(){var g,y,b,_;try{l.value=!0,await t.login(r.value,i.value),t.lastLogoutReason=null,i.value="",l.value=!1}catch(S){if(l.value=!1,((g=S==null?void 0:S.response)==null?void 0:g.status)===401){i.value="";const T=(b=(y=S==null?void 0:S.response)==null?void 0:y.data)==null?void 0:b.reasonCode,E=Ub(T);T===kr.AccountNotVerified?d.error(E,"Please ask your administrator to verify your account and try again."):T===kr.PasswordChangeRequired&&d.error(E,"Your password needs to be changed. This feature is sadly not finished"),n.value=E;return}d.openErrorMessage({title:"Error logging in",subtitle:"Please test your connection and try again."}),n.value="Error logging in - status code "+((_=S==null?void 0:S.response)==null?void 0:_.status),i.value="";return}return n.value="",u.emit(!0),await m()}async function m(){const g=a.query.redirect;if(g){console.debug("[LoginForm] Redirecting to ",g),await o.push({path:g});return}else{console.debug("[LoginForm] Redirecting to home"),await o.push({name:Wt.Home});return}}return(g,y)=>($(),Q(kt,{class:"pa-4",elevation:"10",style:{"border-radius":"10px"}},{default:v(()=>[h(cn,null,{default:v(()=>[h(eS,null,{default:v(()=>[y[7]||(y[7]=D("label",null," Username ",-1)),h(mt,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=b=>r.value=b),autofocus:"",name:"login",placeholder:"Username","prepend-icon":"mdi-account",type:"text",variant:"underlined",onKeyup:y[1]||(y[1]=uv(b=>c.value||p(),["enter"]))},null,8,["modelValue"]),h(mt,{id:"password",modelValue:i.value,"onUpdate:modelValue":y[2]||(y[2]=b=>i.value=b),"append-icon":s.value?"visibility_off":"visibility",type:s.value?"text":"password",label:"Password",name:"password",password:"","prepend-icon":"lock",variant:"underlined","onClick:append":y[3]||(y[3]=b=>s.value=!s.value),onKeyup:y[4]||(y[4]=uv(b=>c.value||p(),["enter"]))},null,8,["modelValue","append-icon","type"]),n.value?($(),Q(tn,{key:0,class:"mt-6",color:"error",density:"compact",variant:"outlined"},{default:v(()=>[k(ae(n.value),1)]),_:1})):me("",!0),ue(t).lastLogoutReason?($(),Q(tn,{key:1,class:"mt-6",color:"error-darken-1",density:"compact",variant:"outlined"},{default:v(()=>[k(" Reason for automatic logout: "+ae(ue(t).lastLogoutReason),1)]),_:1})):me("",!0)]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(se,{loading:l.value,class:"pa-4",color:"primary",size:"lg",variant:"flat",style:{width:"100%"},onClick:y[5]||(y[5]=b=>p())},{default:v(()=>y[8]||(y[8]=[k(" Login ")])),_:1},8,["loading"])]),_:1}),h(tr,null,{default:v(()=>[h(se,{disabled:!ue(t).registration,class:"pa-4",size:"lg",variant:"flat",style:{width:"100%"},onClick:y[6]||(y[6]=b=>f())},{default:v(()=>[k(" Register new account "+ae(ue(t).registration?"":"(not enabled)")+" ",1),h(K,{class:"pl-5",icon:"right"})]),_:1},8,["disabled"])]),_:1})]),_:1}))}}),Qte={class:"d-flex align-center",style:{"min-height":"calc(100vh - 148px)"}},Jte={class:"pt-6 pl-6 d-flex flex-column align-center"},Zte=$e({__name:"LoginView",setup(e){return(t,n)=>{const r=Yte;return $(),Q(rt,{class:"position-relative","no-gutters":""},{default:v(()=>[h(Ne,{cols:"12",lg:"12"},{default:v(()=>[h(Vn,null,{default:v(()=>[D("div",Qte,[h(rt,{justify:"center",class:"align-content-center"},{default:v(()=>[D("div",Jte,[h(r),h(gn,{class:"text-uppercase text-red"},{default:v(()=>n[0]||(n[0]=[D("strong",null," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),h(gn,{class:"mt-lg-6 mt-sm-5 mb-md-5"},{default:v(()=>n[1]||(n[1]=[k(" Login to your account ")])),_:1}),h(cm,{class:"text-grey mb-md-5"},{default:v(()=>n[2]||(n[2]=[k(" Welcome back! Please enter your details ")])),_:1})]),h(Ne,{cols:"12",md:"12"},{default:v(()=>[h(Xte,{class:"login-card"})]),_:1})]),_:1})])]),_:1})]),_:1})]),_:1})}}}),ene={class:"d-flex flex-column align-center"},tne=$e({__name:"RegistrationForm",setup(e){const t=fs(),n=Qo(),r=z(""),s=z(""),i=z(!1),o=z(!1),a=z(""),l=z(""),u=z(!1),d=Dt();async function c(){return await n.push({name:Wt.Login})}const f=I(()=>{var m;return((m=s.value??"")==null?void 0:m.length)<3||(a.value??"").length<3||a.value!=l.value});bt(async()=>{await t.logout(),await t.checkAuthenticationRequirements(),t.registration||(d.info("Registration is disabled, please contact your administrator"),await n.push({name:Wt.Login}))});async function p(){var m;try{u.value=!0,await ca.registerAccount(s.value,a.value),u.value=!1}catch(g){if(u.value=!1,((m=g==null?void 0:g.response)==null?void 0:m.status)===401){r.value="Invalid credentials";return}d.openErrorMessage({title:"Error logging in",subtitle:"Please test your connection and try again."});return}r.value="",d.info("Account created, please login"),await c()}return(m,g)=>{const y=Er("v-flex");return $(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(mm,{"align-content-center":"","justify-center":""},{default:v(()=>[h(y,{class:"d-flex flex-column align-content-center",md4:"",sm8:"",style:{"max-width":"450px","margin-top":"10%"},xs12:""},{default:v(()=>[D("div",ene,[h(Yo,{src:require("@/assets/logo.png"),class:"shrink mr-1 pt-3 ml-1",contain:"",style:{opacity:"0.85"},width:"150"},null,8,["src"]),h(gn,{class:"text-uppercase text-red"},{default:v(()=>g[8]||(g[8]=[D("strong",null," FDM ",-1),D("strong",null," Monster ",-1)])),_:1}),h(gn,{class:"mt-lg-6 mt-sm-5"},{default:v(()=>g[9]||(g[9]=[k(" Register new account ")])),_:1}),h(cm,{class:"text-grey"},{default:v(()=>g[10]||(g[10]=[k(" Welcome! Please register your guest account ")])),_:1})]),h(kt,{class:"elevation-4 pa-4",style:{"border-radius":"10px"}},{default:v(()=>[h(cn,null,{default:v(()=>[h(eS,null,{default:v(()=>[g[11]||(g[11]=D("label",null," Username ",-1)),h(mt,{modelValue:s.value,"onUpdate:modelValue":g[0]||(g[0]=b=>s.value=b),rules:[b=>!!b||"Username is required",b=>((b==null?void 0:b.length)??0)>=3||"Username must be of length 3 or greater",b=>!b.toLowerCase().includes("admin")||"Username may not contain the word admin",b=>!b.toLowerCase().includes("root")||"Username may not contain the word root",b=>b.toLowerCase()!=="demo"||"Username may not equal the word demo"],autofocus:"",name:"login",label:"Username","prepend-icon":"person",type:"text"},null,8,["modelValue","rules"]),h(mt,{id:"password",modelValue:a.value,"onUpdate:modelValue":g[1]||(g[1]=b=>a.value=b),"append-icon":i.value?"visibility":"visibility_off",type:i.value?"text":"password",label:"Password",name:"password",rules:[b=>!!b||"Password is required",b=>!!b&&(b==null?void 0:b.length)>=8||"Password must be of length 8 or greater"],password:"","prepend-icon":"lock","onClick:append":g[2]||(g[2]=b=>i.value=!i.value)},null,8,["modelValue","append-icon","type","rules"]),h(mt,{id:"password",modelValue:l.value,"onUpdate:modelValue":g[3]||(g[3]=b=>l.value=b),"append-icon":o.value?"visibility":"visibility_off",type:o.value?"text":"password",rules:[b=>!!b||"Repeated password is required",b=>b===a.value||"Passwords are not equal"],label:"Repeated Password",name:"password",password:"","prepend-icon":"lock","onClick:append":g[4]||(g[4]=b=>o.value=!o.value),onKeyup:g[5]||(g[5]=uv(b=>f.value||p(),["enter"]))},null,8,["modelValue","append-icon","type","rules"]),r.value?($(),Q(tn,{key:0,class:"mt-6",color:"error",density:"compact",variant:"outlined"},{default:v(()=>[k(ae(r.value),1)]),_:1})):me("",!0)]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(se,{loading:u.value,class:"pa-4",color:"primary",size:"large",style:{width:"100%"},onClick:g[6]||(g[6]=b=>p())},{default:v(()=>g[12]||(g[12]=[k(" Register account ")])),_:1},8,["loading"])]),_:1}),h(tr,null,{default:v(()=>[h(se,{style:{width:"100%"},class:"pa-4",size:"large",onClick:g[7]||(g[7]=b=>c())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>g[13]||(g[13]=[k("arrow_left")])),_:1}),g[14]||(g[14]=k("Back to Login "))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}}}),nne=$e({__name:"RegistrationView",setup(e){return(t,n)=>($(),Q(Vn,{"fill-height":"",fluid:""},{default:v(()=>[h(mm,{"align-center":"","justify-center":""},{default:v(()=>[h(tne)]),_:1})]),_:1}))}}),rne=["src"],sne=$e({__name:"CameraGridView",setup(e){const t=Nt(),n=Or(hn.AddOrUpdateCameraDialog),s=Vw({queryKey:["cameraStream"],queryFn:async()=>(await tp.listCameraStreams()).map(d=>({printer:t.printers.find(c=>c.id===d.printerId),cameraStream:d}))}),i=QG({mutationFn:u=>tp.deleteCameraStream(u),onSuccess:()=>s.refetch()});function o(){n.openDialog({addOrUpdate:"add"})}function a(u){u&&n.openDialog({addOrUpdate:"update",cameraId:u})}function l(u){u&&i.mutateAsync(u)}return(u,d)=>($(),Se("div",null,[h(nr,null,{default:v(()=>[h(gn,{class:"mr-4"},{default:v(()=>d[1]||(d[1]=[k(" Camera Overview ")])),_:1}),h(se,{color:"primary",onClick:d[0]||(d[0]=c=>o())},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[2]||(d[2]=[k("add")])),_:1}),d[3]||(d[3]=k(" Add camera "))]),_:1})]),_:1}),h(rt,{class:"ma-0"},{default:v(()=>[($(!0),Se(Te,null,Gt(ue(s).data.value,c=>($(),Se("div",{key:c.cameraStream.id,class:"ma-4",style:{border:"1px solid grey",margin:"0"},width:"300"},[h(kt,{class:"pb-2 pl-2 pr-2",width:"300"},{default:v(()=>{var f;return[h(mn,null,{default:v(()=>{var p;return[c.cameraStream.printerId?($(),Q(K,{key:0,class:"mr-2",size:"small"},{default:v(()=>d[4]||(d[4]=[k(" print ")])),_:1})):($(),Q(K,{key:1,class:"mr-2",size:"small"},{default:v(()=>d[5]||(d[5]=[k(" camera_alt ")])),_:1})),k(" "+ae((c==null?void 0:c.cameraStream.name)??((p=c==null?void 0:c.printer)==null?void 0:p.name)??"Camera"),1)]}),_:2},1024),D("img",{src:(f=c.cameraStream)==null?void 0:f.streamURL,width:"100%"},null,8,rne),d[10]||(d[10]=D("br",null,null,-1)),h(se,{class:"mr-1",size:"small",onClick:p=>a(c.cameraStream.id)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[6]||(d[6]=[k("edit")])),_:1}),d[7]||(d[7]=k(" Update "))]),_:2},1032,["onClick"]),h(se,{size:"small",onClick:p=>l(c.cameraStream.id)},{default:v(()=>[h(K,{class:"mr-2"},{default:v(()=>d[8]||(d[8]=[k("delete")])),_:1}),d[9]||(d[9]=k(" Delete "))]),_:2},1032,["onClick"])]}),_:2},1024)]))),128))]),_:1})]))}}),ine="/img/OIG.jpg";class one extends gr{static async postFirstTimeSetup(t){const n=Oe.completeFirstTimeSetupRoute;return await this.post(n,t)}}const ane={class:"mt-6 border_all"},lne={class:"d-flex flex-row align-center"},une={class:"d-flex flex-row align-center"},cne={class:"d-flex flex-row align-center"},dne={class:"d-flex flex-row align-center"},fne={class:"mt-4"},hne={class:"mt-4"},pne={class:"mt-14"},mne={class:"mb-5 mt-10"},gne={class:"mt-14"},vne=$e({__name:"FirstTimeSetupView",setup(e){const t=Qo(),n=Dt(),r=z(!1),s=fs(),i=z({loginRequired:!0,registration:!1}),o=z({rootUsername:"admin",rootPassword:"",rootPassword2:""}),a=z(1);bt(async()=>{var d;await s.checkAuthenticationRequirements(),(d=s.wizardState)!=null&&d.wizardCompleted&&(n.info("Setup already completed."),s.loginRequired?await t.push({name:"Login"}):await t.push({name:"Home"}))});async function l(){if(!r.value){n.error("Please fill out all required fields.");return}const d=i.value,c=o.value;await one.postFirstTimeSetup({loginRequired:d.loginRequired,registration:d.registration,rootUsername:c.rootUsername,rootPassword:c.rootPassword}),n.openInfoMessage({title:"Setup completed"}),a.value=3}async function u(){await t.push({name:"Login"})}return(d,c)=>{const f=Er("v-stepper-step"),p=Er("v-stepper-content"),m=Er("v-stepper-items");return $(),Q(Vn,null,{default:v(()=>[c[46]||(c[46]=D("img",{alt:"FDM Monster Background",class:"grid-bg-img align-content-center",src:Jw,style:{opacity:"0.08"}},null,-1)),h(nQ,{modelValue:a.value,"onUpdate:modelValue":c[10]||(c[10]=g=>a.value=g),class:"bg-grey-darken-4"},{default:v(()=>[h(hM,null,{default:v(()=>[h(f,{complete:a.value>1,step:"1"},{default:v(()=>c[11]||(c[11]=[k(" Introduction ")])),_:1},8,["complete"]),h(bn),h(f,{complete:a.value>2,step:"2"},{default:v(()=>c[12]||(c[12]=[k(" Login and registration ")])),_:1},8,["complete"]),h(bn),h(f,{step:"3"},{default:v(()=>c[13]||(c[13]=[k(" Summary ")])),_:1})]),_:1}),h(m,null,{default:v(()=>[h(p,{class:"align-content-center align-center text-center",step:"1"},{default:v(()=>[c[17]||(c[17]=D("div",{class:"align-content-center align-center text-center"},[D("img",{class:"rounded-pill ma-4",src:ine,style:{opacity:"0.7"},width:"400"}),k(" /> "),D("h1",null,"FDM Monster"),D("small",null," This server is still unconfigured. ")],-1)),h(se,{class:"mt-14 mb-14",color:"primary",onClick:c[0]||(c[0]=g=>a.value=2)},{default:v(()=>c[14]||(c[14]=[k(" Start Setup ")])),_:1}),D("div",ane,[h(K,{class:"mr-6"},{default:v(()=>c[15]||(c[15]=[k("question_mark")])),_:1}),c[16]||(c[16]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1}),h(p,{class:"align-content-center align-center text-center",step:"2"},{default:v(()=>[D("h4",null,[h(K,{class:"mr-2"},{default:v(()=>c[18]||(c[18]=[k("settings")])),_:1}),c[19]||(c[19]=k(" Login"))]),h(eS,{modelValue:r.value,"onUpdate:modelValue":c[6]||(c[6]=g=>r.value=g)},{default:v(()=>[h(ip,{modelValue:i.value.loginRequired,"onUpdate:modelValue":c[1]||(c[1]=g=>i.value.loginRequired=g),class:"mt-5"},{message:v(()=>[D("span",lne,[h(K,{color:i.value.loginRequired?"success":"",disabled:!i.value.loginRequired,class:"ml-3 mr-3"},{default:v(()=>c[20]||(c[20]=[k(" check ")])),_:1},8,["color","disabled"]),c[21]||(c[21]=k(" Login is required. "))]),D("span",une,[h(K,{color:i.value.loginRequired?"":"error",disabled:i.value.loginRequired,class:"ml-3 mr-3"},{default:v(()=>c[22]||(c[22]=[k(" close ")])),_:1},8,["color","disabled"]),c[23]||(c[23]=k(" No login is required. The admin role is assumed. "))])]),label:v(()=>c[24]||(c[24]=[k(" Enable Login ")])),_:1},8,["modelValue"]),i.value.loginRequired?me("",!0):($(),Q(tn,{key:0,color:"error-darken-4"},{default:v(()=>c[25]||(c[25]=[k(" You might be exposing your FDM Monster server publicly. Please take care evaluating the "),D("strong",null," Enable Login ",-1),k(" option. ")])),_:1})),h(ip,{modelValue:i.value.registration,"onUpdate:modelValue":c[2]||(c[2]=g=>i.value.registration=g),class:"mt-10 mb-10"},{message:v(()=>[D("span",cne,[h(K,{color:i.value.registration?"success":"",disabled:!i.value.registration,class:"ml-3 mr-3"},{default:v(()=>c[26]||(c[26]=[k(" check ")])),_:1},8,["color","disabled"]),c[27]||(c[27]=k(" Accounts can be registered with a guest role. "))]),D("span",dne,[h(K,{color:i.value.registration?"":"error",disabled:i.value.registration,class:"ml-3 mr-3"},{default:v(()=>c[28]||(c[28]=[k(" close ")])),_:1},8,["color","disabled"]),c[29]||(c[29]=k(" No other accounts can be registered. "))])]),label:v(()=>c[30]||(c[30]=[k(" Enable Registration ")])),_:1},8,["modelValue"]),h(bn),D("h4",fne,[h(K,{class:"mr-2"},{default:v(()=>c[31]||(c[31]=[k("shield")])),_:1}),c[32]||(c[32]=k(" Admin account "))]),h(mt,{modelValue:o.value.rootUsername,"onUpdate:modelValue":c[3]||(c[3]=g=>o.value.rootUsername=g),rules:[g=>!!g||"Username is required"],class:"mt-5",label:"Username","prepend-icon":"person"},{prepend:v(()=>[h(K,null,{default:v(()=>c[33]||(c[33]=[k("person")])),_:1})]),_:1},8,["modelValue","rules"]),h(mt,{modelValue:o.value.rootPassword,"onUpdate:modelValue":c[4]||(c[4]=g=>o.value.rootPassword=g),type:"password","prepend-icon":"lock",rules:[g=>!!g||"Password is required",g=>!!g&&(g==null?void 0:g.length)>=8||"Password must be of length 8 or greater"],class:"mt-5",label:"Password"},{prepend:v(()=>[h(K,null,{default:v(()=>c[34]||(c[34]=[k("password")])),_:1})]),_:1},8,["modelValue","rules"]),h(mt,{modelValue:o.value.rootPassword2,"onUpdate:modelValue":c[5]||(c[5]=g=>o.value.rootPassword2=g),type:"password","prepend-icon":"lock",rules:[g=>!!g||"Repeated password is required",g=>g===o.value.rootPassword||"Passwords are not equal"],class:"mt-5",label:"Repeated Password"},{prepend:v(()=>[h(K,null,{default:v(()=>c[35]||(c[35]=[k("password")])),_:1})]),_:1},8,["modelValue","rules"])]),_:1},8,["modelValue"]),D("div",hne,[h(se,{class:"mr-4",onClick:c[7]||(c[7]=g=>a.value=1)},{default:v(()=>c[36]||(c[36]=[k(" Back ")])),_:1}),h(se,{disabled:!r.value,color:"primary",onClick:c[8]||(c[8]=g=>l())},{default:v(()=>c[37]||(c[37]=[k(" Verify & Submit ")])),_:1},8,["disabled"])]),h(bn,{class:"mt-4"}),D("div",pne,[h(K,{class:"mr-6"},{default:v(()=>c[38]||(c[38]=[k("question_mark")])),_:1}),c[39]||(c[39]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1}),h(p,{class:"align-content-center align-center text-center",step:"3"},{default:v(()=>[D("div",mne,[h(K,{size:"100",class:"mr-5",color:"green circle"},{default:v(()=>c[40]||(c[40]=[k(" check_circle ")])),_:1}),c[41]||(c[41]=k(" Setup Completed "))]),c[45]||(c[45]=D("br",null,null,-1)),h(se,{color:"primary",class:"mr-4",onClick:c[9]||(c[9]=g=>u())},{default:v(()=>c[42]||(c[42]=[k(" Let's continue ")])),_:1}),D("div",gne,[h(K,{class:"mr-6"},{default:v(()=>c[43]||(c[43]=[k("question_mark")])),_:1}),c[44]||(c[44]=D("small",null,[k(" If you have questions at any point, reach out on "),D("a",{href:"https://github.com/fdm-monster/fdm-monster/issues"}," Github "),k(" or on "),D("a",{href:"https://discord.gg/mwA8uP8CMc"}," Discord "),k(". ")],-1))])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}}}),yne={class:"ml-4 mb-4"},bne={class:"ml-4 mb-4"},wne=$e({__name:"AccountSettings",setup(e){const t=Fs(),n=jw(),r=fs(),s=Qo(),i=Dt(),o=z(),a=z(""),l=z({username:"",newPassword:"",oldPassword:"",repeatPassword:""});bt(async()=>{var c;await t.loadSettings(),o.value=(c=t.settings)==null?void 0:c.server.loginRequired,await n.getProfile(),l.value.username=n.username,a.value=n.userId});async function u(){var c,f;if(!((f=(c=a.value)==null?void 0:c.toString())!=null&&f.length)){i.openErrorMessage({title:"User not loaded"});return}await Ks.changeUsername(a.value,l.value.username),await n.getProfile(),l.value.username=n.username,i.openInfoMessage({title:"Username changed"})}async function d(){var c,f;if(!((f=(c=a.value)==null?void 0:c.toString())!=null&&f.length)){i.openErrorMessage({title:"User not loaded"});return}if(l.value.newPassword!==l.value.repeatPassword){i.openErrorMessage({title:"Passwords do not match"});return}await Ks.changePassword(a.value,l.value.oldPassword,l.value.newPassword),l.value.oldPassword="",l.value.newPassword="",l.value.repeatPassword="",i.openInfoMessage({title:"Password changed"}),await r.logout(!0),await hO(s)}return(c,f)=>{const p=Er("v-list-item-content"),m=Er("v-list-item-action-text");return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>f[6]||(f[6]=[k("account_circle")])),_:1})]),_:1}),h(gn,null,{default:v(()=>f[7]||(f[7]=[k(" Account Settings ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[o.value?me("",!0):($(),Q(p,{key:0},{default:v(()=>[h(tn,{color:"primary"},{default:v(()=>f[8]||(f[8]=[k(" Login is currently disabled. To adjust your username and password, please enable that setting at the Server Protection settings page. Then log in and visit this page. ")])),_:1})]),_:1}))]),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[9]||(f[9]=[k(" Username ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.username,"onUpdate:modelValue":f[0]||(f[0]=g=>l.value.username=g),disabled:!o.value,label:"Fill in your username"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),D("div",yne,[h(se,{disabled:!o.value,color:"primary",onClick:f[1]||(f[1]=g=>u())},{default:v(()=>f[10]||(f[10]=[k(" Change username ")])),_:1},8,["disabled"])]),h(bn),f[14]||(f[14]=D("br",null,null,-1)),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[11]||(f[11]=[k(" Old Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.oldPassword,"onUpdate:modelValue":f[2]||(f[2]=g=>l.value.oldPassword=g),disabled:!o.value,placeholder:"Old password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[12]||(f[12]=[k(" New Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.newPassword,"onUpdate:modelValue":f[3]||(f[3]=g=>l.value.newPassword=g),disabled:!o.value,placeholder:"New password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>f[13]||(f[13]=[k(" Repeat New Password ")])),_:1}),h(m,null,{default:v(()=>[h(mt,{modelValue:l.value.repeatPassword,"onUpdate:modelValue":f[4]||(f[4]=g=>l.value.repeatPassword=g),disabled:!o.value,placeholder:"Repeat new password",type:"password"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),D("div",bne,[h(se,{disabled:!o.value,color:"primary",onClick:f[5]||(f[5]=g=>d())},{default:v(()=>f[15]||(f[15]=[k(" Change password ")])),_:1},8,["disabled"])]),h(bn)]),_:1})}}}),Sne=$e({name:"GridSettings",components:{},props:{},setup:()=>({settingsStore:Fs(),snackbar:Dt()}),data:()=>({property:0}),computed:{largeTilesSettings(){return this.settingsStore.largeTiles}},watch:{},async created(){},async mounted(){},methods:{rowOptions(){return cY},colOptions(){return dY},async updateGridSettings(){await this.settingsStore.updateFrontendSettings({gridCols:this.settingsStore.gridCols,gridRows:this.settingsStore.gridRows,largeTiles:this.largeTilesSettings}),this.snackbar.info("Grid settings updated")}}});function _ne(e,t,n,r,s,i){return $(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>t[5]||(t[5]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>t[6]||(t[6]=[k(" Grid Settings ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[7]||(t[7]=[k(" Grid Rows and Columns ")])),_:1}),h(Fe,null,{default:v(()=>{var o;return[(o=e.settingsStore.settings)!=null&&o.frontend?($(),Q(rt,{key:0},{default:v(()=>[h(Ne,{cols:"2"},{default:v(()=>[h(qa,{modelValue:e.settingsStore.settings.frontend.gridRows,"onUpdate:modelValue":t[0]||(t[0]=a=>e.settingsStore.settings.frontend.gridRows=a),items:e.rowOptions(),label:"Set the grid rows"},null,8,["modelValue","items"])]),_:1}),h(Ne,{cols:"2"},{default:v(()=>[h(qa,{modelValue:e.settingsStore.settings.frontend.gridCols,"onUpdate:modelValue":t[1]||(t[1]=a=>e.settingsStore.settings.frontend.gridCols=a),items:e.colOptions(),label:"Set the grid columns"},null,8,["modelValue","items"])]),_:1}),h(Ne,{cols:"1"}),h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:t[2]||(t[2]=a=>e.updateGridSettings())},{default:v(()=>t[8]||(t[8]=[k(" Save tile settings ")])),_:1})]),_:1})]),_:1})):me("",!0)]}),_:1})]),_:1}),h(bn),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>t[9]||(t[9]=[k(" Large or Compact Tiles ")])),_:1}),h(Fe,null,{default:v(()=>{var o;return[(o=e.settingsStore.settings)!=null&&o.frontend?($(),Q(rt,{key:0},{default:v(()=>[h(Ne,{cols:"5"},{default:v(()=>[h(Pn,{modelValue:e.settingsStore.settings.frontend.largeTiles,"onUpdate:modelValue":t[3]||(t[3]=a=>e.settingsStore.settings.frontend.largeTiles=a),label:"Large tiles"},null,8,["modelValue"])]),_:1}),h(Ne,{cols:"1"},{default:v(()=>[h(se,{color:"primary",onClick:t[4]||(t[4]=a=>e.updateGridSettings())},{default:v(()=>t[10]||(t[10]=[k(" Save tile settings ")])),_:1})]),_:1})]),_:1})):me("",!0)]}),_:1})]),_:1})]),_:1})}const kne=Jo(Sne,[["render",_ne]]),xne=!0;function eE(e){const t=e.split("."),n=t.length,r=t.filter(s=>!/^0.|\D/g.test(s));return n<=1?!1:r.filter(s=>s.length&&parseInt(s)>=0&&parseInt(s)<=255).length===n}const Ene=$e({__name:"ServerProtectionSettings",setup(e){const t=Qo(),n=Dt(),r=fs(),s=z(""),i=z(!1),o=z([]),a=z(!1),l=z(!1),u=z(3200),d=z(!1),c=z(-1),f=z(14),p=x=>eE(x)?!0:"Not a valid IP Address";async function m(){var C;const x=await In.getSettings();a.value=x.server.loginRequired,l.value=x.server.registration,s.value=((C=x.connection)==null?void 0:C.clientIp)??"127.0.0.1",i.value=x.server.whitelistEnabled,o.value=x.server.whitelistedIpAddresses;const w=await In.getSettingsSensitive();u.value=w.credentials.jwtExpiresIn/60,d.value=w.credentials.refreshTokenAttempts!==-1,c.value=w.credentials.refreshTokenAttempts,f.value=w.credentials.refreshTokenExpiry/24/3600}bt(async()=>{await m()});function g(){d.value||(c.value=-1)}function y(x){o.value=o.value.filter(w=>w.toLowerCase()!==x.toLowerCase())}function b(x){eE(x)&&o.value.push(x.toLowerCase())}async function _(){o.value=["127.0.0.1","::12"],i.value=!1,await S(!1),n.info("Whitelist settings reset to default")}async function S(x=!0){await In.setWhitelistSettings({whitelistedIpAddresses:o.value,whitelistEnabled:i.value}),x&&n.info("Whitelist settings updated"),await m()}async function T(){const x=a.value;!x&&!confirm("Disabling login will expose your server. Continue?")||(await In.updateLoginRequiredSettings(x),await r.logout(!0),await r.checkAuthenticationRequirements(),x?await t.push({name:Wt.Login}):await t.push({name:Wt.Home}),n.info("Login Required settings updated"))}async function E(){await In.updateRegistrationEnabledSettings(l.value),await r.checkAuthenticationRequirements(),n.info("Registration settings updated")}async function R(){u.value=120,d.value=!1,c.value=-1,f.value=14,await P(),n.info("Login expiry settings reset to default")}async function P(x=!0){if(u.value<2||u.value>120)throw new Error("JWT Expiry must be between 2 and 120 minutes");if(d.value&&(c.value<50||c.value>1e3))throw new Error("Refresh Token Attempts must be between 50 and 1000");if(f.value<1||f.value>30)throw new Error("Refresh Token Expiry must be between 1 and 30 days");await In.updateCredentialSettings(u.value*60,c.value,f.value*24*3600),n.info("Login expiry settings updated")}return(x,w)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>w[16]||(w[16]=[k("settings")])),_:1})]),_:1}),h(gn,null,{default:v(()=>w[17]||(w[17]=[k(" Server Protection Settings ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[ue(xne)?me("",!0):($(),Q(Fe,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>w[18]||(w[18]=[k(" IP Whitelist ")])),_:1}),h(yt,null,{default:v(()=>[h(tn,{color:"warning"},{default:v(()=>[h(K,null,{default:v(()=>w[19]||(w[19]=[k("info")])),_:1}),w[20]||(w[20]=k(" Be cautious, setting the wrong whitelist could make you lose access to the server! "))]),_:1}),w[26]||(w[26]=k(" Only allow access from specific IP Adresses or subnets. Note: 127.0.0.1 will always be allowed access. Examples: ")),w[27]||(w[27]=D("br",null,null,-1)),h(sn,{size:"small"},{default:v(()=>w[21]||(w[21]=[k(" 192.168 ")])),_:1}),h(sn,{size:"small"},{default:v(()=>w[22]||(w[22]=[k(" 192.168.1 ")])),_:1}),h(sn,{size:"small"},{default:v(()=>w[23]||(w[23]=[k(" 192.168.1.1 ")])),_:1}),w[28]||(w[28]=D("br",null,null,-1)),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:i.value,"onUpdate:modelValue":w[0]||(w[0]=C=>i.value=C),label:"Enable IP Whitelist"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,{class:"mt-0"},{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:s.value,"onUpdate:modelValue":w[1]||(w[1]=C=>s.value=C),disabled:!i.value,rules:[p,C=>!!C],"append-icon":"add",label:"IP Address","onClick:append":w[2]||(w[2]=C=>b(s.value))},null,8,["modelValue","disabled","rules"])]),_:1}),h(Ne,null,{default:v(()=>[h(rd,null,{default:v(()=>[($(!0),Se(Te,null,Gt(o.value,C=>($(),Q(sn,{key:C,disabled:!i.value,closable:"","onClick:close":O=>y(C)},{default:v(()=>[k(ae(C),1)]),_:2},1032,["disabled","onClick:close"]))),128))]),_:1})]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"default",onClick:w[3]||(w[3]=C=>_())},{default:v(()=>w[24]||(w[24]=[k(" reset to default ")])),_:1}),h(se,{color:"primary",onClick:w[4]||(w[4]=C=>S())},{default:v(()=>w[25]||(w[25]=[k(" save whitelist settings ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[29]||(w[29]=[k(" Login Required ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:a.value,"onUpdate:modelValue":w[5]||(w[5]=C=>a.value=C),label:"Require Login"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[6]||(w[6]=C=>T())},{default:v(()=>w[30]||(w[30]=[k(" save login required setting ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[31]||(w[31]=[k(" Registration Enabled ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:l.value,"onUpdate:modelValue":w[7]||(w[7]=C=>l.value=C),label:"Enable Registration"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[8]||(w[8]=C=>E())},{default:v(()=>w[32]||(w[32]=[k(" save registration enabled setting ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>w[33]||(w[33]=[k(" Login Expiry Settings (advanced) ")])),_:1}),h(yt,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:u.value,"onUpdate:modelValue":w[9]||(w[9]=C=>u.value=C),rules:[C=>!!C&&C>=2&&C<=120],label:"JWT Expiry (minutes)"},null,8,["modelValue","rules"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(Pn,{modelValue:d.value,"onUpdate:modelValue":[w[10]||(w[10]=C=>d.value=C),w[11]||(w[11]=C=>g())],label:"Enable Refresh Token Attempts"},null,8,["modelValue"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:c.value,"onUpdate:modelValue":w[12]||(w[12]=C=>c.value=C),disabled:!d.value,rules:[C=>!!C&&C>=50],label:"Refresh Token Attempts (disabled: -1)",type:"number"},null,8,["modelValue","disabled","rules"])]),_:1})]),_:1}),h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"2"},{default:v(()=>[h(mt,{modelValue:f.value,"onUpdate:modelValue":w[13]||(w[13]=C=>f.value=C),rules:[C=>!!C&&C>=1&&C<=30],label:"Refresh Token Expiry (days)"},null,8,["modelValue","rules"])]),_:1})]),_:1}),h(tn,{color:"secondary"},{default:v(()=>[h(K,null,{default:v(()=>w[34]||(w[34]=[k("info")])),_:1}),w[35]||(w[35]=k(" Be cautious, setting the wrong expiry could make you lose access to the server or make your user experience highly degraded! "))]),_:1}),h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(se,{color:"primary",onClick:w[14]||(w[14]=C=>P())},{default:v(()=>w[36]||(w[36]=[k(" save login expiry settings ")])),_:1}),h(se,{color:"default",onClick:w[15]||(w[15]=C=>R())},{default:v(()=>w[37]||(w[37]=[k(" reset to default ")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}});var eb={exports:{}};const Cne="2.0.0",tD=256,Pne=Number.MAX_SAFE_INTEGER||9007199254740991,Tne=16,Rne=tD-6,Ine=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Pm={MAX_LENGTH:tD,MAX_SAFE_COMPONENT_LENGTH:Tne,MAX_SAFE_BUILD_LENGTH:Rne,MAX_SAFE_INTEGER:Pne,RELEASE_TYPES:Ine,SEMVER_SPEC_VERSION:Cne,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Ug={};const Ane=typeof process=="object"&&Ug&&Ug.NODE_DEBUG&&/\bsemver\b/i.test(Ug.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var Tm=Ane;(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:s}=Pm,i=Tm;t=e.exports={};const o=t.re=[],a=t.safeRe=[],l=t.src=[],u=t.t={};let d=0;const c="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",s],[c,r]],p=g=>{for(const[y,b]of f)g=g.split(`${y}*`).join(`${y}{0,${b}}`).split(`${y}+`).join(`${y}{1,${b}}`);return g},m=(g,y,b)=>{const _=p(y),S=d++;i(g,S,y),u[g]=S,l[S]=y,o[S]=new RegExp(y,b?"g":void 0),a[S]=new RegExp(_,b?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${c}*`),m("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${l[u.NUMERICIDENTIFIER]}|${l[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NUMERICIDENTIFIERLOOSE]}|${l[u.NONNUMERICIDENTIFIER]})`),m("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${c}+`),m("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),m("FULL",`^${l[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),m("LOOSE",`^${l[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),m("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",l[u.COERCE],!0),m("COERCERTLFULL",l[u.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",m("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",m("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(eb,eb.exports);var Kd=eb.exports;const One=Object.freeze({loose:!0}),Mne=Object.freeze({}),Dne=e=>e?typeof e!="object"?One:e:Mne;var yS=Dne;const tE=/^[0-9]+$/,nD=(e,t)=>{const n=tE.test(e),r=tE.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:e<t?-1:1},Lne=(e,t)=>nD(t,e);var rD={compareIdentifiers:nD,rcompareIdentifiers:Lne};const Bf=Tm,{MAX_LENGTH:nE,MAX_SAFE_INTEGER:Vf}=Pm,{safeRe:rE,t:sE}=Kd,$ne=yS,{compareIdentifiers:bl}=rD;let Fne=class js{constructor(t,n){if(n=$ne(n),t instanceof js){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>nE)throw new TypeError(`version is longer than ${nE} characters`);Bf("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;const r=t.trim().match(n.loose?rE[sE.LOOSE]:rE[sE.FULL]);if(!r)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Vf||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Vf||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Vf||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){const i=+s;if(i>=0&&i<Vf)return i}return s}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(Bf("SemVer.compare",this.version,this.options,t),!(t instanceof js)){if(typeof t=="string"&&t===this.version)return 0;t=new js(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof js||(t=new js(t,this.options)),bl(this.major,t.major)||bl(this.minor,t.minor)||bl(this.patch,t.patch)}comparePre(t){if(t instanceof js||(t=new js(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{const r=this.prerelease[n],s=t.prerelease[n];if(Bf("prerelease compare",n,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return bl(r,s)}while(++n)}compareBuild(t){t instanceof js||(t=new js(t,this.options));let n=0;do{const r=this.build[n],s=t.build[n];if(Bf("build compare",n,r,s),r===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(r===void 0)return-1;if(r===s)continue;return bl(r,s)}while(++n)}inc(t,n,r){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,r),this.inc("pre",n,r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,r),this.inc("pre",n,r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const s=Number(r)?1:0;if(!n&&r===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[s];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(n===this.prerelease.join(".")&&r===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(n){let i=[n,s];r===!1&&(i=[n]),bl(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var vr=Fne;const iE=vr,Nne=(e,t,n=!1)=>{if(e instanceof iE)return e;try{return new iE(e,t)}catch(r){if(!n)return null;throw r}};var ju=Nne;const Bne=ju,Vne=(e,t)=>{const n=Bne(e,t);return n?n.version:null};var Une=Vne;const zne=ju,Hne=(e,t)=>{const n=zne(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};var jne=Hne;const oE=vr,Wne=(e,t,n,r,s)=>{typeof n=="string"&&(s=r,r=n,n=void 0);try{return new oE(e instanceof oE?e.version:e,n).inc(t,r,s).version}catch{return null}};var qne=Wne;const aE=ju,Gne=(e,t)=>{const n=aE(e,null,!0),r=aE(t,null,!0),s=n.compare(r);if(s===0)return null;const i=s>0,o=i?n:r,a=i?r:n,l=!!o.prerelease.length;if(!!a.prerelease.length&&!l)return!a.patch&&!a.minor?"major":o.patch?"patch":o.minor?"minor":"major";const d=l?"pre":"";return n.major!==r.major?d+"major":n.minor!==r.minor?d+"minor":n.patch!==r.patch?d+"patch":"prerelease"};var Kne=Gne;const Yne=vr,Xne=(e,t)=>new Yne(e,t).major;var Qne=Xne;const Jne=vr,Zne=(e,t)=>new Jne(e,t).minor;var ere=Zne;const tre=vr,nre=(e,t)=>new tre(e,t).patch;var rre=nre;const sre=ju,ire=(e,t)=>{const n=sre(e,t);return n&&n.prerelease.length?n.prerelease:null};var ore=ire;const lE=vr,are=(e,t,n)=>new lE(e,n).compare(new lE(t,n));var Ns=are;const lre=Ns,ure=(e,t,n)=>lre(t,e,n);var cre=ure;const dre=Ns,fre=(e,t)=>dre(e,t,!0);var hre=fre;const uE=vr,pre=(e,t,n)=>{const r=new uE(e,n),s=new uE(t,n);return r.compare(s)||r.compareBuild(s)};var bS=pre;const mre=bS,gre=(e,t)=>e.sort((n,r)=>mre(n,r,t));var vre=gre;const yre=bS,bre=(e,t)=>e.sort((n,r)=>yre(r,n,t));var wre=bre;const Sre=Ns,_re=(e,t,n)=>Sre(e,t,n)>0;var Rm=_re;const kre=Ns,xre=(e,t,n)=>kre(e,t,n)<0;var wS=xre;const Ere=Ns,Cre=(e,t,n)=>Ere(e,t,n)===0;var sD=Cre;const Pre=Ns,Tre=(e,t,n)=>Pre(e,t,n)!==0;var iD=Tre;const Rre=Ns,Ire=(e,t,n)=>Rre(e,t,n)>=0;var SS=Ire;const Are=Ns,Ore=(e,t,n)=>Are(e,t,n)<=0;var _S=Ore;const Mre=sD,Dre=iD,Lre=Rm,$re=SS,Fre=wS,Nre=_S,Bre=(e,t,n,r)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return Mre(e,n,r);case"!=":return Dre(e,n,r);case">":return Lre(e,n,r);case">=":return $re(e,n,r);case"<":return Fre(e,n,r);case"<=":return Nre(e,n,r);default:throw new TypeError(`Invalid operator: ${t}`)}};var oD=Bre;const Vre=vr,Ure=ju,{safeRe:Uf,t:zf}=Kd,zre=(e,t)=>{if(e instanceof Vre)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?Uf[zf.COERCEFULL]:Uf[zf.COERCE]);else{const l=t.includePrerelease?Uf[zf.COERCERTLFULL]:Uf[zf.COERCERTL];let u;for(;(u=l.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||u.index+u[0].length!==n.index+n[0].length)&&(n=u),l.lastIndex=u.index+u[1].length+u[2].length;l.lastIndex=-1}if(n===null)return null;const r=n[2],s=n[3]||"0",i=n[4]||"0",o=t.includePrerelease&&n[5]?`-${n[5]}`:"",a=t.includePrerelease&&n[6]?`+${n[6]}`:"";return Ure(`${r}.${s}.${i}${o}${a}`,t)};var Hre=zre;class jre{constructor(){this.max=1e3,this.map=new Map}get(t){const n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){const s=this.map.keys().next().value;this.delete(s)}this.map.set(t,n)}return this}}var Wre=jre,zg,cE;function Bs(){if(cE)return zg;cE=1;const e=/\s+/g;class t{constructor(U,B){if(B=s(B),U instanceof t)return U.loose===!!B.loose&&U.includePrerelease===!!B.includePrerelease?U:new t(U.raw,B);if(U instanceof i)return this.raw=U.value,this.set=[[U]],this.formatted=void 0,this;if(this.options=B,this.loose=!!B.loose,this.includePrerelease=!!B.includePrerelease,this.raw=U.trim().replace(e," "),this.set=this.raw.split("||").map(q=>this.parseRange(q.trim())).filter(q=>q.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const q=this.set[0];if(this.set=this.set.filter(G=>!g(G[0])),this.set.length===0)this.set=[q];else if(this.set.length>1){for(const G of this.set)if(G.length===1&&y(G[0])){this.set=[G];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let U=0;U<this.set.length;U++){U>0&&(this.formatted+="||");const B=this.set[U];for(let q=0;q<B.length;q++)q>0&&(this.formatted+=" "),this.formatted+=B[q].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(U){const q=((this.options.includePrerelease&&p)|(this.options.loose&&m))+":"+U,G=r.get(q);if(G)return G;const V=this.options.loose,W=V?l[u.HYPHENRANGELOOSE]:l[u.HYPHENRANGE];U=U.replace(W,A(this.options.includePrerelease)),o("hyphen replace",U),U=U.replace(l[u.COMPARATORTRIM],d),o("comparator trim",U),U=U.replace(l[u.TILDETRIM],c),o("tilde trim",U),U=U.replace(l[u.CARETTRIM],f),o("caret trim",U);let Z=U.split(" ").map(le=>_(le,this.options)).join(" ").split(/\s+/).map(le=>O(le,this.options));V&&(Z=Z.filter(le=>(o("loose invalid filter",le,this.options),!!le.match(l[u.COMPARATORLOOSE])))),o("range list",Z);const j=new Map,Y=Z.map(le=>new i(le,this.options));for(const le of Y){if(g(le))return[le];j.set(le.value,le)}j.size>1&&j.has("")&&j.delete("");const pe=[...j.values()];return r.set(q,pe),pe}intersects(U,B){if(!(U instanceof t))throw new TypeError("a Range is required");return this.set.some(q=>b(q,B)&&U.set.some(G=>b(G,B)&&q.every(V=>G.every(W=>V.intersects(W,B)))))}test(U){if(!U)return!1;if(typeof U=="string")try{U=new a(U,this.options)}catch{return!1}for(let B=0;B<this.set.length;B++)if(M(this.set[B],U,this.options))return!0;return!1}}zg=t;const n=Wre,r=new n,s=yS,i=Im(),o=Tm,a=vr,{safeRe:l,t:u,comparatorTrimReplace:d,tildeTrimReplace:c,caretTrimReplace:f}=Kd,{FLAG_INCLUDE_PRERELEASE:p,FLAG_LOOSE:m}=Pm,g=L=>L.value==="<0.0.0-0",y=L=>L.value==="",b=(L,U)=>{let B=!0;const q=L.slice();let G=q.pop();for(;B&&q.length;)B=q.every(V=>G.intersects(V,U)),G=q.pop();return B},_=(L,U)=>(o("comp",L,U),L=R(L,U),o("caret",L),L=T(L,U),o("tildes",L),L=x(L,U),o("xrange",L),L=C(L,U),o("stars",L),L),S=L=>!L||L.toLowerCase()==="x"||L==="*",T=(L,U)=>L.trim().split(/\s+/).map(B=>E(B,U)).join(" "),E=(L,U)=>{const B=U.loose?l[u.TILDELOOSE]:l[u.TILDE];return L.replace(B,(q,G,V,W,Z)=>{o("tilde",L,q,G,V,W,Z);let j;return S(G)?j="":S(V)?j=`>=${G}.0.0 <${+G+1}.0.0-0`:S(W)?j=`>=${G}.${V}.0 <${G}.${+V+1}.0-0`:Z?(o("replaceTilde pr",Z),j=`>=${G}.${V}.${W}-${Z} <${G}.${+V+1}.0-0`):j=`>=${G}.${V}.${W} <${G}.${+V+1}.0-0`,o("tilde return",j),j})},R=(L,U)=>L.trim().split(/\s+/).map(B=>P(B,U)).join(" "),P=(L,U)=>{o("caret",L,U);const B=U.loose?l[u.CARETLOOSE]:l[u.CARET],q=U.includePrerelease?"-0":"";return L.replace(B,(G,V,W,Z,j)=>{o("caret",L,G,V,W,Z,j);let Y;return S(V)?Y="":S(W)?Y=`>=${V}.0.0${q} <${+V+1}.0.0-0`:S(Z)?V==="0"?Y=`>=${V}.${W}.0${q} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.0${q} <${+V+1}.0.0-0`:j?(o("replaceCaret pr",j),V==="0"?W==="0"?Y=`>=${V}.${W}.${Z}-${j} <${V}.${W}.${+Z+1}-0`:Y=`>=${V}.${W}.${Z}-${j} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.${Z}-${j} <${+V+1}.0.0-0`):(o("no pr"),V==="0"?W==="0"?Y=`>=${V}.${W}.${Z}${q} <${V}.${W}.${+Z+1}-0`:Y=`>=${V}.${W}.${Z}${q} <${V}.${+W+1}.0-0`:Y=`>=${V}.${W}.${Z} <${+V+1}.0.0-0`),o("caret return",Y),Y})},x=(L,U)=>(o("replaceXRanges",L,U),L.split(/\s+/).map(B=>w(B,U)).join(" ")),w=(L,U)=>{L=L.trim();const B=U.loose?l[u.XRANGELOOSE]:l[u.XRANGE];return L.replace(B,(q,G,V,W,Z,j)=>{o("xRange",L,q,G,V,W,Z,j);const Y=S(V),pe=Y||S(W),le=pe||S(Z),oe=le;return G==="="&&oe&&(G=""),j=U.includePrerelease?"-0":"",Y?G===">"||G==="<"?q="<0.0.0-0":q="*":G&&oe?(pe&&(W=0),Z=0,G===">"?(G=">=",pe?(V=+V+1,W=0,Z=0):(W=+W+1,Z=0)):G==="<="&&(G="<",pe?V=+V+1:W=+W+1),G==="<"&&(j="-0"),q=`${G+V}.${W}.${Z}${j}`):pe?q=`>=${V}.0.0${j} <${+V+1}.0.0-0`:le&&(q=`>=${V}.${W}.0${j} <${V}.${+W+1}.0-0`),o("xRange return",q),q})},C=(L,U)=>(o("replaceStars",L,U),L.trim().replace(l[u.STAR],"")),O=(L,U)=>(o("replaceGTE0",L,U),L.trim().replace(l[U.includePrerelease?u.GTE0PRE:u.GTE0],"")),A=L=>(U,B,q,G,V,W,Z,j,Y,pe,le,oe)=>(S(q)?B="":S(G)?B=`>=${q}.0.0${L?"-0":""}`:S(V)?B=`>=${q}.${G}.0${L?"-0":""}`:W?B=`>=${B}`:B=`>=${B}${L?"-0":""}`,S(Y)?j="":S(pe)?j=`<${+Y+1}.0.0-0`:S(le)?j=`<${Y}.${+pe+1}.0-0`:oe?j=`<=${Y}.${pe}.${le}-${oe}`:L?j=`<${Y}.${pe}.${+le+1}-0`:j=`<=${j}`,`${B} ${j}`.trim()),M=(L,U,B)=>{for(let q=0;q<L.length;q++)if(!L[q].test(U))return!1;if(U.prerelease.length&&!B.includePrerelease){for(let q=0;q<L.length;q++)if(o(L[q].semver),L[q].semver!==i.ANY&&L[q].semver.prerelease.length>0){const G=L[q].semver;if(G.major===U.major&&G.minor===U.minor&&G.patch===U.patch)return!0}return!1}return!0};return zg}var Hg,dE;function Im(){if(dE)return Hg;dE=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(d,c){if(c=n(c),d instanceof t){if(d.loose===!!c.loose)return d;d=d.value}d=d.trim().split(/\s+/).join(" "),o("comparator",d,c),this.options=c,this.loose=!!c.loose,this.parse(d),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(d){const c=this.options.loose?r[s.COMPARATORLOOSE]:r[s.COMPARATOR],f=d.match(c);if(!f)throw new TypeError(`Invalid comparator: ${d}`);this.operator=f[1]!==void 0?f[1]:"",this.operator==="="&&(this.operator=""),f[2]?this.semver=new a(f[2],this.options.loose):this.semver=e}toString(){return this.value}test(d){if(o("Comparator.test",d,this.options.loose),this.semver===e||d===e)return!0;if(typeof d=="string")try{d=new a(d,this.options)}catch{return!1}return i(d,this.operator,this.semver,this.options)}intersects(d,c){if(!(d instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new l(d.value,c).test(this.value):d.operator===""?d.value===""?!0:new l(this.value,c).test(d.semver):(c=n(c),c.includePrerelease&&(this.value==="<0.0.0-0"||d.value==="<0.0.0-0")||!c.includePrerelease&&(this.value.startsWith("<0.0.0")||d.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&d.operator.startsWith(">")||this.operator.startsWith("<")&&d.operator.startsWith("<")||this.semver.version===d.semver.version&&this.operator.includes("=")&&d.operator.includes("=")||i(this.semver,"<",d.semver,c)&&this.operator.startsWith(">")&&d.operator.startsWith("<")||i(this.semver,">",d.semver,c)&&this.operator.startsWith("<")&&d.operator.startsWith(">")))}}Hg=t;const n=yS,{safeRe:r,t:s}=Kd,i=oD,o=Tm,a=vr,l=Bs();return Hg}const qre=Bs(),Gre=(e,t,n)=>{try{t=new qre(t,n)}catch{return!1}return t.test(e)};var Am=Gre;const Kre=Bs(),Yre=(e,t)=>new Kre(e,t).set.map(n=>n.map(r=>r.value).join(" ").trim().split(" "));var Xre=Yre;const Qre=vr,Jre=Bs(),Zre=(e,t,n)=>{let r=null,s=null,i=null;try{i=new Jre(t,n)}catch{return null}return e.forEach(o=>{i.test(o)&&(!r||s.compare(o)===-1)&&(r=o,s=new Qre(r,n))}),r};var ese=Zre;const tse=vr,nse=Bs(),rse=(e,t,n)=>{let r=null,s=null,i=null;try{i=new nse(t,n)}catch{return null}return e.forEach(o=>{i.test(o)&&(!r||s.compare(o)===1)&&(r=o,s=new tse(r,n))}),r};var sse=rse;const jg=vr,ise=Bs(),fE=Rm,ose=(e,t)=>{e=new ise(e,t);let n=new jg("0.0.0");if(e.test(n)||(n=new jg("0.0.0-0"),e.test(n)))return n;n=null;for(let r=0;r<e.set.length;++r){const s=e.set[r];let i=null;s.forEach(o=>{const a=new jg(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!i||fE(a,i))&&(i=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!n||fE(n,i))&&(n=i)}return n&&e.test(n)?n:null};var ase=ose;const lse=Bs(),use=(e,t)=>{try{return new lse(e,t).range||"*"}catch{return null}};var cse=use;const dse=vr,aD=Im(),{ANY:fse}=aD,hse=Bs(),pse=Am,hE=Rm,pE=wS,mse=_S,gse=SS,vse=(e,t,n,r)=>{e=new dse(e,r),t=new hse(t,r);let s,i,o,a,l;switch(n){case">":s=hE,i=mse,o=pE,a=">",l=">=";break;case"<":s=pE,i=gse,o=hE,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pse(e,t,r))return!1;for(let u=0;u<t.set.length;++u){const d=t.set[u];let c=null,f=null;if(d.forEach(p=>{p.semver===fse&&(p=new aD(">=0.0.0")),c=c||p,f=f||p,s(p.semver,c.semver,r)?c=p:o(p.semver,f.semver,r)&&(f=p)}),c.operator===a||c.operator===l||(!f.operator||f.operator===a)&&i(e,f.semver))return!1;if(f.operator===l&&o(e,f.semver))return!1}return!0};var kS=vse;const yse=kS,bse=(e,t,n)=>yse(e,t,">",n);var wse=bse;const Sse=kS,_se=(e,t,n)=>Sse(e,t,"<",n);var kse=_se;const mE=Bs(),xse=(e,t,n)=>(e=new mE(e,n),t=new mE(t,n),e.intersects(t,n));var Ese=xse;const Cse=Am,Pse=Ns;var Tse=(e,t,n)=>{const r=[];let s=null,i=null;const o=e.sort((d,c)=>Pse(d,c,n));for(const d of o)Cse(d,t,n)?(i=d,s||(s=d)):(i&&r.push([s,i]),i=null,s=null);s&&r.push([s,null]);const a=[];for(const[d,c]of r)d===c?a.push(d):!c&&d===o[0]?a.push("*"):c?d===o[0]?a.push(`<=${c}`):a.push(`${d} - ${c}`):a.push(`>=${d}`);const l=a.join(" || "),u=typeof t.raw=="string"?t.raw:String(t);return l.length<u.length?l:t};const gE=Bs(),xS=Im(),{ANY:Wg}=xS,ac=Am,ES=Ns,Rse=(e,t,n={})=>{if(e===t)return!0;e=new gE(e,n),t=new gE(t,n);let r=!1;e:for(const s of e.set){for(const i of t.set){const o=Ase(s,i,n);if(r=r||o!==null,o)continue e}if(r)return!1}return!0},Ise=[new xS(">=0.0.0-0")],vE=[new xS(">=0.0.0")],Ase=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Wg){if(t.length===1&&t[0].semver===Wg)return!0;n.includePrerelease?e=Ise:e=vE}if(t.length===1&&t[0].semver===Wg){if(n.includePrerelease)return!0;t=vE}const r=new Set;let s,i;for(const p of e)p.operator===">"||p.operator===">="?s=yE(s,p,n):p.operator==="<"||p.operator==="<="?i=bE(i,p,n):r.add(p.semver);if(r.size>1)return null;let o;if(s&&i){if(o=ES(s.semver,i.semver,n),o>0)return null;if(o===0&&(s.operator!==">="||i.operator!=="<="))return null}for(const p of r){if(s&&!ac(p,String(s),n)||i&&!ac(p,String(i),n))return null;for(const m of t)if(!ac(p,String(m),n))return!1;return!0}let a,l,u,d,c=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1,f=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;c&&c.prerelease.length===1&&i.operator==="<"&&c.prerelease[0]===0&&(c=!1);for(const p of t){if(d=d||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",s){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(a=yE(s,p,n),a===p&&a!==s)return!1}else if(s.operator===">="&&!ac(s.semver,String(p),n))return!1}if(i){if(c&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===c.major&&p.semver.minor===c.minor&&p.semver.patch===c.patch&&(c=!1),p.operator==="<"||p.operator==="<="){if(l=bE(i,p,n),l===p&&l!==i)return!1}else if(i.operator==="<="&&!ac(i.semver,String(p),n))return!1}if(!p.operator&&(i||s)&&o!==0)return!1}return!(s&&u&&!i&&o!==0||i&&d&&!s&&o!==0||f||c)},yE=(e,t,n)=>{if(!e)return t;const r=ES(e.semver,t.semver,n);return r>0?e:r<0||t.operator===">"&&e.operator===">="?t:e},bE=(e,t,n)=>{if(!e)return t;const r=ES(e.semver,t.semver,n);return r<0?e:r>0||t.operator==="<"&&e.operator==="<="?t:e};var Ose=Rse;const qg=Kd,wE=Pm,Mse=vr,SE=rD,Dse=ju,Lse=Une,$se=jne,Fse=qne,Nse=Kne,Bse=Qne,Vse=ere,Use=rre,zse=ore,Hse=Ns,jse=cre,Wse=hre,qse=bS,Gse=vre,Kse=wre,Yse=Rm,Xse=wS,Qse=sD,Jse=iD,Zse=SS,eie=_S,tie=oD,nie=Hre,rie=Im(),sie=Bs(),iie=Am,oie=Xre,aie=ese,lie=sse,uie=ase,cie=cse,die=kS,fie=wse,hie=kse,pie=Ese,mie=Tse,gie=Ose;var lc={parse:Dse,valid:Lse,clean:$se,inc:Fse,diff:Nse,major:Bse,minor:Vse,patch:Use,prerelease:zse,compare:Hse,rcompare:jse,compareLoose:Wse,compareBuild:qse,sort:Gse,rsort:Kse,gt:Yse,lt:Xse,eq:Qse,neq:Jse,gte:Zse,lte:eie,cmp:tie,coerce:nie,Comparator:rie,Range:sie,satisfies:iie,toComparators:oie,maxSatisfying:aie,minSatisfying:lie,minVersion:uie,validRange:cie,outside:die,gtr:fie,ltr:hie,intersects:pie,simplifyRange:mie,subset:gie,SemVer:Mse,re:qg.re,src:qg.src,tokens:qg.t,SEMVER_SPEC_VERSION:wE.SEMVER_SPEC_VERSION,RELEASE_TYPES:wE.RELEASE_TYPES,compareIdentifiers:SE.compareIdentifiers,rcompareIdentifiers:SE.rcompareIdentifiers};const vie={key:0},yie={key:1},bie={key:0},wie=$e({__name:"SoftwareUpgradeSettings",setup(e){const t=z(""),n=z(!0),r=z(!1),s=z(!1),i=z(""),o=z(""),a=z(pM),l=z(),u=z(),d=z(),c=z(!1),f=z([]),p=Xo();bt(async()=>{var C;await m();const w=await bo.getVersion();i.value=w.version,o.value=((C=w.monsterPi)==null?void 0:C.trim())||""});async function m(){if(n.value=!0,t.value="",r.value=!1,p.hasFeature("githubRateLimitApi"))try{const w=await bo.getGithubRateLimit();if(w.rate.remaining===0){const O=new Date(w.rate.reset).toLocaleTimeString(),A=w.rate.reset*1e3-Date.now(),M=Math.ceil(A/6e4);t.value=`Server has reached a rate limit of the Github API. This limit will be reset at ${O} (in ${M} minutes)`,n.value=!1,r.value=!0;return}}catch{n.value=!1;return}try{const w=await bo.getClientReleases();l.value=w.current,u.value=w.minimum,f.value=w.releases}catch(w){t.value="An error occurred loading the releases: "+w.message}finally{n.value=!1}}const g=I(()=>f.value.filter(w=>{const C=lc.minor(w.tag_name)===lc.minor(u.value.tag_name),O=T(w),A=w.draft;return C&&(b()||c.value||!O)&&!A})),y=I(()=>b());function b(){const w=l.value;return T(w)}function _(w){return P(w)||!R(w,l.value)||E(w)}function S(w){const C=T(w)?`${w.tag_name}, unstable`:w.tag_name;return P(w)?`${C}, currently installed`:E(w)?`${C}, below minimum`:R(w,l.value)?C:`${C}, downgrade not allowed`}function T(w){var C;return(C=w==null?void 0:w.tag_name)!=null&&C.length?w.prerelease||w.tag_name.includes("rc")||w.tag_name.includes("unstable"):!1}function E(w){return lc.compare(w.tag_name,u.value.tag_name)===-1}function R(w,C){if(!C)throw new Error("No current release is known, cannot compare.");return s.value?!0:lc.compare(w.tag_name,C.tag_name)!==-1&&lc.compare(w.tag_name,u.value.tag_name)!==-1}function P(w){var C;return w.tag_name===((C=l.value)==null?void 0:C.tag_name)}async function x(w){confirm("Are you sure? This might cause breaking changes, if the server is outdated")&&(await bo.updateClientDistGithub(w,s.value),location.reload())}return(w,C)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>C[5]||(C[5]=[k("upgrade")])),_:1})]),_:1}),h(gn,null,{default:v(()=>C[6]||(C[6]=[k(" Software Upgrade ")])),_:1})]),_:1}),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[7]||(C[7]=[k(" Current versions in use: ")])),_:1}),h(yt,null,{default:v(()=>[k(" Your server's version is: "+ae(i.value),1)]),_:1}),h(yt,null,{default:v(()=>[k(" Your client's version is: "+ae(a.value),1)]),_:1}),h(yt,null,{default:v(()=>[o.value?($(),Se("div",vie,[C[8]||(C[8]=k(" MonsterPi: ")),C[9]||(C[9]=D("div",null,"Your MonsterPi version is:",-1)),k(" "+ae(o.value),1)])):($(),Se("div",yie,C[10]||(C[10]=[k(" MonsterPi: "),D("div",null,"No MonsterPi distro was detected.",-1)])))]),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[11]||(C[11]=[k(" Server upgrade ")])),_:1}),h(yt,null,{default:v(()=>C[12]||(C[12]=[k(" Please visit "),D("a",{href:"https://docs.fdm-monster.net/docs/installing/"}," the installation documentation ",-1),k(" for instructions on how to upgrade the server. ")])),_:1})]),_:1})]),_:1}),h(bn),h(Yt,{lines:"three"},{default:v(()=>[h(Fe,null,{default:v(()=>[h(ut,null,{default:v(()=>C[13]||(C[13]=[k(" Client upgrade ")])),_:1}),h(yt,null,{default:v(()=>C[14]||(C[14]=[k(" Please visit "),D("a",{href:"https://docs.fdm-monster.net/docs/configuration/updating_client_bundle"}," the installation documentation ",-1),k(" for instructions on how to upgrade the client bundle. ")])),_:1}),h(yt,null,{default:v(()=>C[15]||(C[15]=[k(" Upgrade the client webapp for quickly retrieving small fixes and features ")])),_:1})]),_:1}),h(Fe,null,{default:v(()=>{var O,A,M;return[h(ut,null,{default:v(()=>C[16]||(C[16]=[k(" Select a release to upgrade to: ")])),_:1}),h(yt,{class:"mt-2"},{default:v(()=>{var L;return[k(" Minimum required version: "+ae((L=u.value)==null?void 0:L.tag_name),1)]}),_:1}),n.value?($(),Se("span",bie,[h(tn,null,{default:v(()=>C[17]||(C[17]=[k(" Loading releases... ")])),_:1})])):me("",!0),!n.value&&!((O=g.value)!=null&&O.length)?($(),Q(tn,{key:1},{default:v(()=>C[18]||(C[18]=[k(" No releases to show. ")])),_:1})):me("",!0),h(NA,{modelValue:d.value,"onUpdate:modelValue":C[0]||(C[0]=L=>d.value=L)},{default:v(()=>[($(!0),Se(Te,null,Gt(g.value,L=>($(),Q(vy,{key:L.tag_name,disabled:_(L),label:S(L),value:L.tag_name},null,8,["disabled","label","value"]))),128))]),_:1},8,["modelValue"]),D("div",null,[c.value?($(),Q(tn,{key:0,color:"primary","max-width":"500px"},{default:v(()=>C[19]||(C[19]=[k(" You are viewing prereleases, please install such versions at your own risk! ")])),_:1})):me("",!0)]),D("div",null,[h(Pn,{modelValue:s.value,"onUpdate:modelValue":C[1]||(C[1]=L=>s.value=L),label:"Allow downgrade"},null,8,["modelValue"]),h(Pn,{modelValue:c.value,"onUpdate:modelValue":C[2]||(C[2]=L=>c.value=L),disabled:y.value,label:y.value?"Show prerelease versions (Currently already on prerelease version)":"Show prerelease versions"},null,8,["modelValue","disabled","label"])]),h(se,{class:"mt-2 mr-4",color:"secondary",onClick:C[3]||(C[3]=L=>m())},{default:v(()=>C[20]||(C[20]=[k(" Reload release version list ")])),_:1}),h(se,{disabled:!((A=d.value)!=null&&A.length)||d.value===((M=l.value)==null?void 0:M.tag_name),class:"mt-2",color:"primary",variant:"flat",onClick:C[4]||(C[4]=L=>x(d.value))},{default:v(()=>[h(K,null,{default:v(()=>C[21]||(C[21]=[k("upgrade")])),_:1}),C[22]||(C[22]=k(" Upgrade/downgrade client "))]),_:1},8,["disabled"])]}),_:1})]),_:1})]),_:1}))}}),Sie=$e({__name:"DiagnosticsSettings",setup(e){const t=Dt(),n=Fs(),r=z(!1),s=z(!1),i=z(!1),o=z(!1);bt(async()=>{var f,p,m,g;const c=await bo.getFeatures();r.value=((f=c.anonymousDiagnosticsToggle)==null?void 0:f.available)||!1,s.value=((p=c.logDumpZip)==null?void 0:p.available)||!1,i.value=((m=c.clearLogFiles)==null?void 0:m.available)||!1,await n.loadSettings(),o.value=((g=n.serverSettings)==null?void 0:g.sentryDiagnosticsEnabled)||!1});async function a(){await In.setSentryDiagnosticsSettings(o.value),IO(o.value)}async function l(){const c=`Test Error ${Date.now()} Sentry enabled: ${o.value}`;try{throw new Error(c)}catch(f){ai(f),t.openInfoMessage({title:"Test report was sent",subtitle:`Content: ${c}`})}}async function u(){await ad.downloadLogDump()}async function d(){await ad.clearLogFilesOlderThanWeek(),t.openInfoMessage({title:"Action success",subtitle:"Log files older than a week have been deleted"})}return(c,f)=>($(),Q(kt,null,{default:v(()=>[h(nr,{color:"primary"},{default:v(()=>[h(lt,null,{default:v(()=>[h(K,null,{default:v(()=>f[5]||(f[5]=[k("bug_report")])),_:1})]),_:1}),h(gn,null,{default:v(()=>f[6]||(f[6]=[k(" Diagnostics ")])),_:1})]),_:1}),h(Yt,{subheader:"",lines:"three"},{default:v(()=>[h(ds,null,{default:v(()=>f[7]||(f[7]=[k(" Diagnostics to provide bug reports to the developers of this software ")])),_:1}),r.value?($(),Q(Fe,{key:0},{default:v(()=>[h(ut,null,{default:v(()=>f[8]||(f[8]=[k(" Remote Sentry diagnostic reports: ")])),_:1}),h(yt,null,{default:v(()=>[h(Pn,{modelValue:o.value,"onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),label:"Enable remote Sentry diagnostic reports"},null,8,["modelValue"])]),_:1}),h(yt,null,{default:v(()=>[h(se,{color:"primary",onClick:f[1]||(f[1]=p=>a())},{default:v(()=>[h(K,{class:"pr-2"},{default:v(()=>f[9]||(f[9]=[k("save")])),_:1}),f[10]||(f[10]=k(" Save "))]),_:1}),h(se,{color:"secondary",onClick:f[2]||(f[2]=p=>l())},{default:v(()=>[h(K,{class:"pr-2"},{default:v(()=>f[11]||(f[11]=[k("bug_report")])),_:1}),f[12]||(f[12]=k(" Test Error "))]),_:1})]),_:1})]),_:1})):me("",!0),h(bn),s.value?($(),Q(Fe,{key:1},{default:v(()=>[h(ut,null,{default:v(()=>f[13]||(f[13]=[k(" Logs Dump ")])),_:1}),h(yt,null,{default:v(()=>f[14]||(f[14]=[k(" Download a .zip file containing all logs from the server ")])),_:1}),h(yt,null,{default:v(()=>[f[17]||(f[17]=D("br",null,null,-1)),h(se,{color:"primary",onClick:f[3]||(f[3]=p=>u())},{default:v(()=>[h(K,null,{default:v(()=>f[15]||(f[15]=[k("download")])),_:1}),f[16]||(f[16]=k(" Download Log Files (.zip) "))]),_:1})]),_:1})]),_:1})):me("",!0),s.value?($(),Q(Fe,{key:2},{default:v(()=>[h(ut,null,{default:v(()=>f[18]||(f[18]=[k(" Clear log files ")])),_:1}),h(yt,null,{default:v(()=>[f[21]||(f[21]=D("br",null,null,-1)),h(se,{color:"default",onClick:f[4]||(f[4]=p=>d())},{default:v(()=>[h(K,null,{default:v(()=>f[19]||(f[19]=[k("download")])),_:1}),f[20]||(f[20]=k(" Clear log files older than a week "))]),_:1})]),_:1})]),_:1})):me("",!0)]),_:1})]),_:1}))}});class _ie extends gr{static async getCompletions(){const t=`${Oe.printCompletionRoute}`;return await this.get(t)}}const lD=$e({__name:"PrintStatistics",setup(e){const t=z([]),n=z([]),r=z(""),s=Nt(),i=qi();bt(async()=>{await o()}),Ce([()=>r.value],()=>{u()});const o=async()=>{t.value=[],n.value=[],t.value=await _ie.getCompletions(),u()},a=d=>s.printer(d),l=d=>i.floorOfPrinter(d),u=()=>{var p;const d=s.printers.map(m=>m.id),c=d.length?t.value.filter(m=>d.includes(m.printerId)):t.value,f=(p=r.value)!=null&&p.length?c.filter(m=>{const g=s.printers.find(y=>y.id===m.printerId);return g?(g.name+g.printerURL).toLowerCase().includes(r.value.toLowerCase()):!1}):c;n.value=f.sort((m,g)=>m.failureCount===g.failureCount?m.printCount>g.printCount?-1:1:m.failureCount>g.failureCount?-1:1)};return(d,c)=>($(),Q(sp,{height:"100%",width:"100%"},{default:v(()=>[h(Vn,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,null,{default:v(()=>[h(K,null,{default:v(()=>c[2]||(c[2]=[k("filter_list")])),_:1}),c[3]||(c[3]=k(" Filter by printer name (optional) "))]),_:1}),h(Ne,null,{default:v(()=>[h(mt,{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=f=>r.value=f),class:"p-2",clearable:"",label:"Search","prepend-icon":"search","single-line":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(tn,null,{default:v(()=>[c[5]||(c[5]=k(" Please reload here if you want updated results: ")),h(se,{color:"primary",size:"x-small",onClick:c[1]||(c[1]=f=>o())},{default:v(()=>c[4]||(c[4]=[k(" Reload ")])),_:1})]),_:1}),h(jy,{dark:""},{default:v(()=>[c[11]||(c[11]=D("thead",null,[D("tr",null,[D("th",{class:"text-left"},"Printer name"),D("th",{class:"text-left"},"Floor"),D("th",{class:"text-left"},"Fail/ Success/ Total"),D("th",{class:"text-left"},"Last success"),D("th",{class:"text-left"},"Last failure"),D("th",{class:"text-left"},"Successes (week/48H/24H)"),D("th",{class:"text-left"},"Failures (week/48H/24H)")])],-1)),D("tbody",null,[($(!0),Se(Te,null,Gt(n.value,f=>{var p,m,g,y;return $(),Se("tr",{key:f.printerId},[D("td",null,ae(((p=a(f.printerId))==null?void 0:p.name)??"?"),1),D("td",null,ae(((m=l(f.printerId))==null?void 0:m.name)??"?"),1),D("td",null,[k(" × "+ae(f.failureCount)+" / 🗸 "+ae(f.successCount)+" ",1),D("strong",null," ~"+ae(f.printCount),1)]),D("td",null,ae(Date.now()-((g=f.lastSuccess)==null?void 0:g.createdAt)||"-"),1),D("td",null,[h(Ot,{location:"bottom"},xC({default:v(()=>{var b,_,S,T;return[D("span",null,[k(ae(((b=f.lastFailure)==null?void 0:b.status)||"-")+" ",1),c[7]||(c[7]=D("br",null,null,-1)),k(" "+ae((_=f.lastFailure)==null?void 0:_.createdAt)+" ",1),c[8]||(c[8]=D("br",null,null,-1)),D("small",null,ae((S=f.lastFailure)==null?void 0:S.fileName),1),c[9]||(c[9]=D("br",null,null,-1)),D("strong",null,ae((T=f.lastFailure)==null?void 0:T.completionLog),1),c[10]||(c[10]=D("br",null,null,-1))])]}),_:2},[(y=f.lastFailure)!=null&&y.status?{name:"activator",fn:v(({props:b})=>[h(K,ve({ref_for:!0},b),{default:v(()=>c[6]||(c[6]=[k("info")])),_:2},1040)]),key:"0"}:void 0]),1024)]),D("td",null,ae(f.successEventsLastWeek)+" "+ae(f.successEventsLast48H)+" "+ae(f.successEventsLast24H),1),D("td",null,ae(f.failureEventsLastWeek)+" "+ae(f.failureEventsLast48H)+" "+ae(f.failureEventsLast24H),1)])}),128))])]),_:1})]),_:1}))}}),kie=$e({name:"PrintStatisticsView",components:{PrintStatistics:lD}});function xie(e,t,n,r,s,i){const o=lD;return $(),Q(Vn,null,{default:v(()=>[h(o)]),_:1})}const Eie=Jo(kie,[["render",xie]]),Cie=$e({__name:"ExperimentalSettings",setup(e){const t=z(!1),n=z(!1),r=z(!1);async function s(){const l=await In.getSettings();t.value=l.server.experimentalMoonrakerSupport,n.value=l.server.experimentalTypeormSupport,r.value=l.server.experimentalClientSupport}bt(async()=>{await s()});const i=async()=>{await In.updateExperimentalMoonrakerSupport(t.value),await In.updateExperimentalClientSupport(r.value),await s()},o=async()=>{await In.updateExperimentalMoonrakerSupport(!1),await In.updateExperimentalClientSupport(!1),await s()},a=async()=>{await In.updateExperimentalClientSupport(r.value),window.location.reload()};return(l,u)=>($(),Q(rt,null,{default:v(()=>[h(Ne,{cols:"12"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>u[3]||(u[3]=[D("h2",null,"Settings",-1)])),_:1}),h(cn,null,{default:v(()=>[h(rt,null,{default:v(()=>[h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[6]||(u[6]=k(" Experimental Features ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,ve({class:"help-icon"},d),{default:v(()=>u[4]||(u[4]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[5]||(u[5]=D("span",{class:"tooltip-content"}," Moonraker support is currently in beta, use at your own risk. ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:t.value,"onUpdate:modelValue":u[0]||(u[0]=d=>t.value=d),label:"Enable Experimental Moonraker Support","hide-details":""},{label:v(()=>u[7]||(u[7]=[D("span",null,"Enable Experimental Moonraker Support",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[10]||(u[10]=k(" Database Settings ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,Xg(kh(d)),{default:v(()=>u[8]||(u[8]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[9]||(u[9]=D("span",{class:"tooltip-content"}," By enabling this setting you will set FDM Monster to SQLite as a database source (standalone mode). Please set 'ENABLE_EXPERIMENTAL_TYPEORM' to 'true' to enable this feature. ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:n.value,"onUpdate:modelValue":u[1]||(u[1]=d=>n.value=d),label:"Enable TypeORM Support","hide-details":"",disabled:""},{label:v(()=>u[11]||(u[11]=[D("span",null,"Enable TypeORM Support",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),h(Ne,{cols:"12",md:"6"},{default:v(()=>[h(kt,null,{default:v(()=>[h(mn,null,{default:v(()=>[D("h3",null,[u[14]||(u[14]=k(" Experimental Features ")),h(Ot,{bottom:""},{activator:v(({props:d})=>[h(K,ve({class:"help-icon"},d),{default:v(()=>u[12]||(u[12]=[k("help_outline")])),_:2},1040)]),default:v(()=>[u[13]||(u[13]=D("span",{class:"tooltip-content"}," Enables the next version of the FDM Monster UI (experimental). ",-1))]),_:1})])]),_:1}),h(cn,null,{default:v(()=>[h(Pn,{modelValue:r.value,"onUpdate:modelValue":u[2]||(u[2]=d=>r.value=d),label:"Enable Next Client Version (Experimental)","hide-details":"",onChange:a},{label:v(()=>u[15]||(u[15]=[D("span",null,"Enable Next Client Version (Experimental)",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),h(tr,null,{default:v(()=>[h(zn),h(se,{color:"primary",onClick:i},{default:v(()=>u[16]||(u[16]=[k("Save Settings")])),_:1}),h(se,{onClick:o},{default:v(()=>u[17]||(u[17]=[k("Reset to Default")])),_:1})]),_:1})]),_:1})]),_:1})]),_:1}))}}),Wn={requiresAuth:!0},Gg={requiresAuth:!1},CS=pK({history:j7("/"),routes:[{path:"/",name:Wt.Home,meta:Wn,component:RY},{path:"/first-time-setup",name:Wt.FirstTimeSetup,meta:Gg,component:vne},{path:"/login",name:Wt.Login,meta:Gg,component:Zte},{path:"/registration",name:Wt.Registration,meta:Gg,component:nne},{path:"/printers",name:Wt.PrintersView,meta:Wn,component:uQ},{path:"/cameras",name:Wt.CameraGridView,component:sne},{path:"/settings",component:cQ,meta:Wn,children:[{path:"",meta:Wn,redirect:"/settings/grid"},{path:"account",meta:Wn,component:wne},{path:"server-protection",meta:Wn,component:Ene},{path:"grid",meta:Wn,component:kne},{path:"floors",meta:Wn,component:RQ},{path:"user-management",meta:Wn,component:_Q},{path:"octoprint",meta:Wn,component:EQ},{path:"emergency-commands",meta:Wn,component:Vte},{path:"software-upgrade",meta:Wn,component:wie},{path:"diagnostics",meta:Wn,component:Sie},{path:"experimental",meta:Wn,component:Cie}]},{path:"/statistics",name:Wt.PrintStatistics,meta:Wn,component:Eie},{path:"/about",name:"About",component:MQ},{path:"/permission-denied",name:Wt.PermissionDenied,meta:Wn,component:Kte},{path:"/:pathMatch(.*)*",name:"NotFound",component:zte}]});CS.beforeEach(async(e,t,n)=>{var s,i;const r=fs();if(!((s=e==null?void 0:e.meta)!=null&&s.requiresAuth)||r.loginRequired===!1)return console.debug(`No auth required on route ${e.fullPath}`),n();if(console.debug(`Auth required on route ${e.fullPath} (loginRequired=${r.loginRequired}, registration=${r.registration}, wizardState=${r.wizardState}, requiresAuth=${(i=e==null?void 0:e.meta)==null?void 0:i.requiresAuth})`),r.loadTokens(),!r.hasAuthToken&&!r.hasRefreshToken){if(console.debug("Not logged in, redirecting to login page"),t.path=="/login")throw new Error("Already on login page, cannot redirect");return n({path:"/login",query:{redirect:e.fullPath}})}return n()});const Pie={collapse:"keyboard_arrow_up",complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"cancel",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sortAsc:"arrow_upward",sortDesc:"arrow_downward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove",calendar:"event",treeviewCollapse:"arrow_drop_down",treeviewExpand:"arrow_right",eyeDropper:"colorize"},Tie={component:e=>Ar(JF,{...e,class:"material-icons"})};function uD(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{blueprint:t,...n}=e,r=Zn(t,n),{aliases:s={},components:i={},directives:o={}}=r,a=MF(r.defaults),l=V2(r.display,r.ssr),u=HF(r.theme),d=e2(r.icons),c=l2(r.locale),f=y6(r.date,c),p=kW(r.goTo,c);return{install:g=>{for(const y in o)g.directive(y,o[y]);for(const y in i)g.component(y,i[y]);for(const y in s)g.component(y,xu({...s[y],name:y,aliasName:s[y].name}));if(u.install(g),g.provide(au,a),g.provide(Ev,l),g.provide(jc,u),g.provide(bv,d),g.provide(Oh,c),g.provide(v6,f.options),g.provide(ek,f.instance),g.provide(qI,p),_t&&r.ssr)if(g.$nuxt)g.$nuxt.hook("app:suspense:resolve",()=>{l.update()});else{const{mount:y}=g;g.mount=function(){const b=y(...arguments);return At(()=>l.update()),g.mount=y,b}}mr.reset(),g.mixin({computed:{$vuetify(){return yn({defaults:wl.call(this,au),display:wl.call(this,Ev),theme:wl.call(this,jc),icons:wl.call(this,bv),locale:wl.call(this,Oh),date:wl.call(this,ek)})}}})},defaults:a,display:l,theme:u,icons:d,locale:c,date:f,goTo:p}}const Rie="3.7.4";uD.version=Rie;function wl(e){var r,s;const t=this.$,n=((r=t.parent)==null?void 0:r.provides)??((s=t.vnode.appContext)==null?void 0:s.provides);if(n&&e in n)return n[e]}const Iie=uD({theme:{defaultTheme:"dark",themes:{dark:{dark:!0,colors:{primary:"#9B0505",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FFC107"}},light:{dark:!1,colors:{primary:"#9B0505",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FFC107"}}}},icons:{defaultSet:"md",aliases:Pie,sets:{md:Tie}}}),Aie=F$();function Oie(e){e.use(Iie).use(YG).use(Aie)}const _E=(e,t,n)=>{const r=Nt(),s=Qw(),i=Dt();if(t!=null&&t.length){const o=t.length===1,a=t[0];e.ondrop=async l=>{var f;l.preventDefault(),e.style.border=gp;const u=(f=l.dataTransfer)==null?void 0:f.files;if(!(u!=null&&u.length))return;const d=[...Array.from(u)];let c=[];if(o){const p=d.length===1?d[0].name:null;console.debug("Single printer upload mode",t.length,d.length,p),c=yY(a,d)}else{if(d.length>1)throw"Cannot upload multiple files to multiple printers";console.debug("Multi printer upload mode",t.length,d.length);const p=d[0];c=FO(t,p)}s.queueUploads(c),r.clearSelectedPrinters()}}else e.ondrop=async o=>{o.preventDefault(),e.style.border=gp,i.openInfoMessage({title:"No action performed",subtitle:"Please select one or more printers",warning:!0})}},gp="1px solid #2b2a27",Mie="background-color 0.5s ease",kE="1px solid red";function Die(){return{mounted:(e,t,n)=>{var r;e.style.border=gp,e.style.transition=Mie,e.ondragenter=s=>{s.preventDefault(),e.style.border=kE},e.ondragover=s=>{s.preventDefault(),e.style.border=kE},e.ondragleave=s=>{s.preventDefault(),e.style.border=gp},_E(e,(r=t.value)==null?void 0:r.printers,n.appContext)},beforeUpdate:(e,t,n)=>{_E(e,t.value,n.appContext)}}}const Kg="1px solid #2b2a27",Lie="1px solid gray",xE=(e,t,n)=>{const r=t==null?void 0:t.printerSet,s=qi();if(r){e.ondrop=null,e.ondragover=null,e.ondragleave=null;return}e.style.border=Kg,e.ondrop=async i=>{var c;if(e.style.border=Kg,i.preventDefault(),!i.dataTransfer)return;const o=i.dataTransfer.getData("text"),a=JSON.parse(o);if(!fY(a)){console.debug("Drop not recognized",a);return}const u=(c=s.selectedFloor)==null?void 0:c.id;if(!u)throw new Error("Floor is not set");const d=a.printerId;if(!d)throw new Error("PrinterId was not provided");await ss.addPrinterToFloor(u,{printerId:d,x:t.x,y:t.y})},e.ondragover=i=>{i!=null&&i.dataTransfer&&(i.dataTransfer&&Array.from(i.dataTransfer.items).filter(o=>o.kind==="file").length||(e.style.border=Lie,i.preventDefault()))},e.ondragleave=i=>{e.style.border=Kg,i.preventDefault()}};function $ie(){return{mounted:(e,t,n)=>{xE(e,t.value,n.appContext)},beforeUpdate:(e,t,n)=>{xE(e,t.value,n.appContext)}}}const Zo=M$(eY);console.log("[DEV: false][PROD: true]","0.0.7");tW({app:Zo,dsn:"https://f64683e8d1cb4ac291434993cff1bf9b@o4503975545733120.ingest.sentry.io/4503975546912768",integrations:[sW({router:CS}),x8()],release:"0.0.7",environment:"production",enabled:!0,tracesSampleRate:1,replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1});Zo.config.errorHandler=e=>{var t;if(e instanceof AT){console.error(`An error was caught [${e.name}]:
|
|
85
85
|
${e.message}
|
|
86
86
|
${(t=e.config)==null?void 0:t.url}
|
|
87
87
|
${e.stack}`),Dt().openErrorMessage({title:"An error occurred",subtitle:e.message,timeout:5e3});return}else console.error(`An error was caught [${e.name}]:
|
|
88
88
|
${e.message}
|
|
89
89
|
${e.stack}`);Dt().openErrorMessage({title:"An error occurred",subtitle:e.message,timeout:5e3}),ai(e)};Zo.directive("drop-upload",Die());Zo.directive("drop-printer-position",$ie());Oie(Zo);Zo.provide("appConstants",wK());Zo.use(CS);Zo.mount("#app");
|
|
90
|
-
//# sourceMappingURL=index-
|
|
90
|
+
//# sourceMappingURL=index-f1E1Pxnu.js.map
|