From 29687a54a89a30ead9dcf117b05cb9cf5bf2909e Mon Sep 17 00:00:00 2001 From: Quinten Althues Date: Sun, 12 Jan 2025 22:37:26 +0100 Subject: [PATCH] 3.13.3: QoL (#76) * reenable features * is this allowed? * theme store preparations pt2 * versioning improvements * API rewrite and gradewidget fix * autologin fix and improvements * Smaller improvements * small fixes * Prepare for (semi) stable release * change theme creator name --- manifest-firefox.json | 14 +- manifest.json | 18 +- .../{index-BUGULQ7V.js => index-Bgz0IP13.js} | 28 +- ...{index-B15XdzZr.css => index-Z5I3Mu5Q.css} | 2 +- popup/dist/index.html | 4 +- popup/dist/themePresets.js | 6 +- popup/package-lock.json | 8 +- popup/public/themePresets.js | 6 +- popup/src/App.vue | 4 + popup/src/components/About.vue | 2 +- .../components/settings-views/ThemeView.vue | 4 +- src/background.js | 40 +- src/scripts/api.js | 691 ++++++++---------- src/scripts/gamification.js | 20 +- src/scripts/grades.js | 20 +- src/scripts/login.js | 41 +- src/scripts/main.js | 4 +- src/scripts/style.js | 87 ++- src/scripts/theme-store.js | 34 +- src/scripts/today.js | 110 +-- src/scripts/util.js | 22 +- src/service-worker.js | 36 +- src/styles/main.css | 4 +- src/styles/today.css | 151 ++-- 24 files changed, 715 insertions(+), 641 deletions(-) rename popup/dist/assets/{index-BUGULQ7V.js => index-Bgz0IP13.js} (66%) rename popup/dist/assets/{index-B15XdzZr.css => index-Z5I3Mu5Q.css} (97%) diff --git a/manifest-firefox.json b/manifest-firefox.json index ad1193c..72b9fde 100644 --- a/manifest-firefox.json +++ b/manifest-firefox.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "__MSG_appName__", "description": "__MSG_appDesc__", - "version": "3.13.2.0", + "version": "3.13.3", "default_locale": "nl", "icons": { "16": "icons/icon@16px.png", @@ -84,6 +84,15 @@ "src/scripts/microsoft-login.js" ], "run_at": "document_end" + }, + { + "matches": [ + "*://study-tools.nl/*" + ], + "js": [ + "src/scripts/util.js", + "src/scripts/theme-store.js" + ] } ], "web_accessible_resources": [ @@ -97,7 +106,8 @@ "src/strings/la.json" ], "matches": [ - "*://*.magister.net/*" + "*://*.magister.net/*", + "*://study-tools.nl/*" ] } ], diff --git a/manifest.json b/manifest.json index 01e8b74..aa202dd 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "__MSG_appName__", "description": "__MSG_appDesc__", - "version": "3.13.2.0", + "version": "3.13.3", "default_locale": "nl", "icons": { "16": "icons/icon@16px.png", @@ -26,8 +26,8 @@ "*://login.microsoftonline.com/*/oauth2/authorize*" ], "js": [ - "src/scripts/api.js", - "src/scripts/util.js" + "src/scripts/util.js", + "src/scripts/api.js" ], "run_at": "document_start" }, @@ -78,6 +78,15 @@ "src/scripts/microsoft-login.js" ], "run_at": "document_end" + }, + { + "matches": [ + "*://study-tools.nl/*" + ], + "js": [ + "src/scripts/util.js", + "src/scripts/theme-store.js" + ] } ], "web_accessible_resources": [ @@ -91,7 +100,8 @@ "src/strings/la.json" ], "matches": [ - "*://*.magister.net/*" + "*://*.magister.net/*", + "*://study-tools.nl/*" ] } ], diff --git a/popup/dist/assets/index-BUGULQ7V.js b/popup/dist/assets/index-Bgz0IP13.js similarity index 66% rename from popup/dist/assets/index-BUGULQ7V.js rename to popup/dist/assets/index-Bgz0IP13.js index 1231424..a2d26ef 100644 --- a/popup/dist/assets/index-BUGULQ7V.js +++ b/popup/dist/assets/index-Bgz0IP13.js @@ -2,33 +2,33 @@ * @vue/shared v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function sr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Cn=[],_t=()=>{},hu=()=>!1,hs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),uo=e=>e.startsWith("onUpdate:"),Ee=Object.assign,co=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mu=Object.prototype.hasOwnProperty,xe=(e,t)=>mu.call(e,t),se=Array.isArray,En=e=>Mn(e)==="[object Map]",vn=e=>Mn(e)==="[object Set]",Wo=e=>Mn(e)==="[object Date]",gu=e=>Mn(e)==="[object RegExp]",ae=e=>typeof e=="function",Oe=e=>typeof e=="string",St=e=>typeof e=="symbol",Ce=e=>e!==null&&typeof e=="object",fo=e=>(Ce(e)||ae(e))&&ae(e.then)&&ae(e.catch),Ii=Object.prototype.toString,Mn=e=>Ii.call(e),vu=e=>Mn(e).slice(8,-1),rr=e=>Mn(e)==="[object Object]",po=e=>Oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Tn=sr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),or=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bu=/-(\w)/g,Ge=or(e=>e.replace(bu,(t,n)=>n?n.toUpperCase():"")),yu=/\B([A-Z])/g,ct=or(e=>e.replace(yu,"-$1").toLowerCase()),ms=or(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zn=or(e=>e?`on${ms(e)}`:""),ot=(e,t)=>!Object.is(e,t),An=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Ns=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ls=e=>{const t=Oe(e)?Number(e):NaN;return isNaN(t)?e:t};let Ko;const ir=()=>Ko||(Ko=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),ku="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",wu=sr(ku);function Ve(e){if(se(e)){const t={};for(let n=0;n{if(n){const s=n.split(xu);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function $e(e){let t="";if(Oe(e))t=e;else if(se(e))for(let n=0;nYt(n,t))}const Fi=e=>!!(e&&e.__v_isRef===!0),ke=e=>Oe(e)?e:e==null?"":se(e)||Ce(e)&&(e.toString===Ii||!ae(e.toString))?Fi(e)?ke(e.value):JSON.stringify(e,Bi,2):String(e),Bi=(e,t)=>Fi(t)?Bi(e,t.value):En(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[Or(s,o)+" =>"]=r,n),{})}:vn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:St(t)?Or(t):Ce(t)&&!se(t)&&!rr(t)?String(t):t,Or=(e,t="")=>{var n;return St(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**//*! #__NO_SIDE_EFFECTS__ */function sr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Cn=[],_t=()=>{},hu=()=>!1,hs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),uo=e=>e.startsWith("onUpdate:"),Ee=Object.assign,co=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mu=Object.prototype.hasOwnProperty,xe=(e,t)=>mu.call(e,t),se=Array.isArray,En=e=>Mn(e)==="[object Map]",vn=e=>Mn(e)==="[object Set]",Wo=e=>Mn(e)==="[object Date]",gu=e=>Mn(e)==="[object RegExp]",ae=e=>typeof e=="function",Oe=e=>typeof e=="string",St=e=>typeof e=="symbol",Ce=e=>e!==null&&typeof e=="object",fo=e=>(Ce(e)||ae(e))&&ae(e.then)&&ae(e.catch),Ii=Object.prototype.toString,Mn=e=>Ii.call(e),vu=e=>Mn(e).slice(8,-1),rr=e=>Mn(e)==="[object Object]",po=e=>Oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Tn=sr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),or=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bu=/-(\w)/g,Ge=or(e=>e.replace(bu,(t,n)=>n?n.toUpperCase():"")),yu=/\B([A-Z])/g,ct=or(e=>e.replace(yu,"-$1").toLowerCase()),ms=or(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zn=or(e=>e?`on${ms(e)}`:""),ot=(e,t)=>!Object.is(e,t),An=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Ns=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ls=e=>{const t=Oe(e)?Number(e):NaN;return isNaN(t)?e:t};let Ko;const ir=()=>Ko||(Ko=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),ku="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",wu=sr(ku);function Re(e){if(se(e)){const t={};for(let n=0;n{if(n){const s=n.split(xu);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ze(e){let t="";if(Oe(e))t=e;else if(se(e))for(let n=0;nYt(n,t))}const Fi=e=>!!(e&&e.__v_isRef===!0),ke=e=>Oe(e)?e:e==null?"":se(e)||Ce(e)&&(e.toString===Ii||!ae(e.toString))?Fi(e)?ke(e.value):JSON.stringify(e,Bi,2):String(e),Bi=(e,t)=>Fi(t)?Bi(e,t.value):En(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],o)=>(n[Or(s,o)+" =>"]=r,n),{})}:vn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Or(n))}:St(t)?Or(t):Ce(t)&&!se(t)&&!rr(t)?String(t):t,Or=(e,t="")=>{var n;return St(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let rt;class ho{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=rt,!t&&rt&&(this.index=(rt.scopes||(rt.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(ts){let t=ts;for(ts=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;es;){let t=es;for(es=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Ki(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),bo(s),zu(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Ur(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Gi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Gi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===as))return;e.globalVersion=as;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Ur(e)){e.flags&=-3;return}const n=Ae,s=xt;Ae=e,xt=!0;try{Ki(e);const r=e.fn(e._value);(t.version===0||ot(r,e._value))&&(e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Ae=n,xt=s,qi(e),e.flags&=-3}}function bo(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)bo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function zu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function $u(e,t){e.effect instanceof ls&&(e=e.effect.fn);const n=new ls(e);t&&Ee(n,t);try{n.run()}catch(r){throw n.stop(),r}const s=n.run.bind(n);return s.effect=n,s}function Ru(e){e.effect.stop()}let xt=!0;const Qi=[];function nn(){Qi.push(xt),xt=!1}function sn(){const e=Qi.pop();xt=e===void 0?!0:e}function qo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ae;Ae=void 0;try{t()}finally{Ae=n}}}let as=0;class Vu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ar{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ae||!xt||Ae===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ae)n=this.activeLink=new Vu(Ae,this),Ae.deps?(n.prevDep=Ae.depsTail,Ae.depsTail.nextDep=n,Ae.depsTail=n):Ae.deps=Ae.depsTail=n,Ji(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Ae.depsTail,n.nextDep=void 0,Ae.depsTail.nextDep=n,Ae.depsTail=n,Ae.deps===n&&(Ae.deps=s)}return n}trigger(t){this.version++,as++,this.notify(t)}notify(t){go();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{vo()}}}function Ji(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ji(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Fs=new WeakMap,cn=Symbol(""),Hr=Symbol(""),us=Symbol("");function Je(e,t,n){if(xt&&Ae){let s=Fs.get(e);s||Fs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new ar),r.map=s,r.key=n),r.track()}}function Vt(e,t,n,s,r,o){const i=Fs.get(e);if(!i){as++;return}const l=u=>{u&&u.trigger()};if(go(),t==="clear")i.forEach(l);else{const u=se(e),c=u&&po(n);if(u&&n==="length"){const a=Number(s);i.forEach((d,f)=>{(f==="length"||f===us||!St(f)&&f>=a)&&l(d)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),c&&l(i.get(us)),t){case"add":u?c&&l(i.get("length")):(l(i.get(cn)),En(e)&&l(i.get(Hr)));break;case"delete":u||(l(i.get(cn)),En(e)&&l(i.get(Hr)));break;case"set":En(e)&&l(i.get(cn));break}}vo()}function Du(e,t){const n=Fs.get(e);return n&&n.get(t)}function kn(e){const t=ve(e);return t===e?t:(Je(t,"iterate",us),pt(e)?t:t.map(Xe))}function ur(e){return Je(e=ve(e),"iterate",us),e}const Mu={__proto__:null,[Symbol.iterator](){return zr(this,Symbol.iterator,Xe)},concat(...e){return kn(this).concat(...e.map(t=>se(t)?kn(t):t))},entries(){return zr(this,"entries",e=>(e[1]=Xe(e[1]),e))},every(e,t){return zt(this,"every",e,t,void 0,arguments)},filter(e,t){return zt(this,"filter",e,t,n=>n.map(Xe),arguments)},find(e,t){return zt(this,"find",e,t,Xe,arguments)},findIndex(e,t){return zt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return zt(this,"findLast",e,t,Xe,arguments)},findLastIndex(e,t){return zt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return zt(this,"forEach",e,t,void 0,arguments)},includes(...e){return $r(this,"includes",e)},indexOf(...e){return $r(this,"indexOf",e)},join(e){return kn(this).join(e)},lastIndexOf(...e){return $r(this,"lastIndexOf",e)},map(e,t){return zt(this,"map",e,t,void 0,arguments)},pop(){return qn(this,"pop")},push(...e){return qn(this,"push",e)},reduce(e,...t){return Go(this,"reduce",e,t)},reduceRight(e,...t){return Go(this,"reduceRight",e,t)},shift(){return qn(this,"shift")},some(e,t){return zt(this,"some",e,t,void 0,arguments)},splice(...e){return qn(this,"splice",e)},toReversed(){return kn(this).toReversed()},toSorted(e){return kn(this).toSorted(e)},toSpliced(...e){return kn(this).toSpliced(...e)},unshift(...e){return qn(this,"unshift",e)},values(){return zr(this,"values",Xe)}};function zr(e,t,n){const s=ur(e),r=s[t]();return s!==e&&!pt(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.value&&(o.value=n(o.value)),o}),r}const ju=Array.prototype;function zt(e,t,n,s,r,o){const i=ur(e),l=i!==e&&!pt(e),u=i[t];if(u!==ju[t]){const d=u.apply(e,o);return l?Xe(d):d}let c=n;i!==e&&(l?c=function(d,f){return n.call(this,Xe(d),f,e)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,e)}));const a=u.call(i,c,s);return l&&r?r(a):a}function Go(e,t,n,s){const r=ur(e);let o=n;return r!==e&&(pt(e)?n.length>3&&(o=function(i,l,u){return n.call(this,i,l,u,e)}):o=function(i,l,u){return n.call(this,i,Xe(l),u,e)}),r[t](o,...s)}function $r(e,t,n){const s=ve(e);Je(s,"iterate",us);const r=s[t](...n);return(r===-1||r===!1)&&jn(n[0])?(n[0]=ve(n[0]),s[t](...n)):r}function qn(e,t,n=[]){nn(),go();const s=ve(e)[t].apply(e,n);return vo(),sn(),s}const Iu=sr("__proto__,__v_isRef,__isVue"),Xi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St));function Nu(e){St(e)||(e=String(e));const t=ve(this);return Je(t,"has",e),t.hasOwnProperty(e)}class Yi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?rl:sl:o?nl:tl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=se(t);if(!r){let u;if(i&&(u=Mu[n]))return u;if(n==="hasOwnProperty")return Nu}const l=Reflect.get(t,n,ze(t)?t:s);return(St(n)?Xi.has(n):Iu(n))||(r||Je(t,"get",n),o)?l:ze(l)?i&&po(n)?l:l.value:Ce(l)?r?gs(l):Zt(l):l}}class Zi extends Yi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];if(!this._isShallow){const u=en(o);if(!pt(s)&&!en(s)&&(o=ve(o),s=ve(s)),!se(t)&&ze(o)&&!ze(s))return u?!1:(o.value=s,!0)}const i=se(t)&&po(n)?Number(n)e,_s=e=>Reflect.getPrototypeOf(e);function Hu(e,t,n){return function(...s){const r=this.__v_raw,o=ve(r),i=En(o),l=e==="entries"||e===Symbol.iterator&&i,u=e==="keys"&&i,c=r[e](...s),a=n?Wr:t?Kr:Xe;return!t&&Je(o,"iterate",u?Hr:cn),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:l?[a(d[0]),a(d[1])]:a(d),done:f}},[Symbol.iterator](){return this}}}}function xs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Wu(e,t){const n={get(r){const o=this.__v_raw,i=ve(o),l=ve(r);e||(ot(r,l)&&Je(i,"get",r),Je(i,"get",l));const{has:u}=_s(i),c=t?Wr:e?Kr:Xe;if(u.call(i,r))return c(o.get(r));if(u.call(i,l))return c(o.get(l));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&Je(ve(r),"iterate",cn),Reflect.get(r,"size",r)},has(r){const o=this.__v_raw,i=ve(o),l=ve(r);return e||(ot(r,l)&&Je(i,"has",r),Je(i,"has",l)),r===l?o.has(r):o.has(r)||o.has(l)},forEach(r,o){const i=this,l=i.__v_raw,u=ve(l),c=t?Wr:e?Kr:Xe;return!e&&Je(u,"iterate",cn),l.forEach((a,d)=>r.call(o,c(a),c(d),i))}};return Ee(n,e?{add:xs("add"),set:xs("set"),delete:xs("delete"),clear:xs("clear")}:{add(r){!t&&!pt(r)&&!en(r)&&(r=ve(r));const o=ve(this);return _s(o).has.call(o,r)||(o.add(r),Vt(o,"add",r,r)),this},set(r,o){!t&&!pt(o)&&!en(o)&&(o=ve(o));const i=ve(this),{has:l,get:u}=_s(i);let c=l.call(i,r);c||(r=ve(r),c=l.call(i,r));const a=u.call(i,r);return i.set(r,o),c?ot(o,a)&&Vt(i,"set",r,o):Vt(i,"add",r,o),this},delete(r){const o=ve(this),{has:i,get:l}=_s(o);let u=i.call(o,r);u||(r=ve(r),u=i.call(o,r)),l&&l.call(o,r);const c=o.delete(r);return u&&Vt(o,"delete",r,void 0),c},clear(){const r=ve(this),o=r.size!==0,i=r.clear();return o&&Vt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Hu(r,e,t)}),n}function cr(e,t){const n=Wu(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(xe(n,r)&&r in s?n:s,r,o)}const Ku={get:cr(!1,!1)},qu={get:cr(!1,!0)},Gu={get:cr(!0,!1)},Qu={get:cr(!0,!0)},tl=new WeakMap,nl=new WeakMap,sl=new WeakMap,rl=new WeakMap;function Ju(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xu(e){return e.__v_skip||!Object.isExtensible(e)?0:Ju(vu(e))}function Zt(e){return en(e)?e:dr(e,!1,Lu,Ku,tl)}function ol(e){return dr(e,!1,Bu,qu,nl)}function gs(e){return dr(e,!0,Fu,Gu,sl)}function Yu(e){return dr(e,!0,Uu,Qu,rl)}function dr(e,t,n,s,r){if(!Ce(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=Xu(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function Qt(e){return en(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function en(e){return!!(e&&e.__v_isReadonly)}function pt(e){return!!(e&&e.__v_isShallow)}function jn(e){return e?!!e.__v_raw:!1}function ve(e){const t=e&&e.__v_raw;return t?ve(t):e}function il(e){return!xe(e,"__v_skip")&&Object.isExtensible(e)&&Ni(e,"__v_skip",!0),e}const Xe=e=>Ce(e)?Zt(e):e,Kr=e=>Ce(e)?gs(e):e;function ze(e){return e?e.__v_isRef===!0:!1}function ie(e){return ll(e,!1)}function yo(e){return ll(e,!0)}function ll(e,t){return ze(e)?e:new Zu(e,t)}class Zu{constructor(t,n){this.dep=new ar,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ve(t),this._value=n?t:Xe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||pt(t)||en(t);t=s?t:ve(t),ot(t,n)&&(this._rawValue=t,this._value=s?t:Xe(t),this.dep.trigger())}}function ec(e){e.dep&&e.dep.trigger()}function de(e){return ze(e)?e.value:e}function tc(e){return ae(e)?e():de(e)}const nc={get:(e,t,n)=>t==="__v_raw"?e:de(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ze(r)&&!ze(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ko(e){return Qt(e)?e:new Proxy(e,nc)}class sc{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ar,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function al(e){return new sc(e)}function rc(e){const t=se(e)?new Array(e.length):{};for(const n in e)t[n]=ul(e,n);return t}class oc{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Du(ve(this._object),this._key)}}class ic{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function lc(e,t,n){return ze(e)?e:ae(e)?new ic(e):Ce(e)&&arguments.length>1?ul(e,t,n):ie(e)}function ul(e,t,n){const s=e[t];return ze(s)?s:new oc(e,t,n)}class ac{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ar(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=as-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ae!==this)return Wi(this,!0),!0}get value(){const t=this.dep.track();return Gi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function uc(e,t,n=!1){let s,r;return ae(e)?s=e:(s=e.get,r=e.set),new ac(s,r,n)}const cc={GET:"get",HAS:"has",ITERATE:"iterate"},dc={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Ss={},Bs=new WeakMap;let Wt;function fc(){return Wt}function cl(e,t=!1,n=Wt){if(n){let s=Bs.get(n);s||Bs.set(n,s=[]),s.push(e)}}function pc(e,t,n=be){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:l,call:u}=n,c=k=>r?k:pt(k)||r===!1||r===0?Dt(k,1):Dt(k);let a,d,f,g,m=!1,C=!1;if(ze(e)?(d=()=>e.value,m=pt(e)):Qt(e)?(d=()=>c(e),m=!0):se(e)?(C=!0,m=e.some(k=>Qt(k)||pt(k)),d=()=>e.map(k=>{if(ze(k))return k.value;if(Qt(k))return c(k);if(ae(k))return u?u(k,2):k()})):ae(e)?t?d=u?()=>u(e,2):e:d=()=>{if(f){nn();try{f()}finally{sn()}}const k=Wt;Wt=a;try{return u?u(e,3,[g]):e(g)}finally{Wt=k}}:d=_t,t&&r){const k=d,w=r===!0?1/0:r;d=()=>Dt(k(),w)}const R=mo(),E=()=>{a.stop(),R&&co(R.effects,a)};if(o&&t){const k=t;t=(...w)=>{k(...w),E()}}let x=C?new Array(e.length).fill(Ss):Ss;const v=k=>{if(!(!(a.flags&1)||!a.dirty&&!k))if(t){const w=a.run();if(r||m||(C?w.some((P,z)=>ot(P,x[z])):ot(w,x))){f&&f();const P=Wt;Wt=a;try{const z=[w,x===Ss?void 0:C&&x[0]===Ss?[]:x,g];u?u(t,3,z):t(...z),x=w}finally{Wt=P}}}else a.run()};return l&&l(v),a=new ls(d),a.scheduler=i?()=>i(v,!1):v,g=k=>cl(k,!1,a),f=a.onStop=()=>{const k=Bs.get(a);if(k){if(u)u(k,4);else for(const w of k)w();Bs.delete(a)}},t?s?v(!0):x=a.run():i?i(v.bind(null,!0),!0):a.run(),E.pause=a.pause.bind(a),E.resume=a.resume.bind(a),E.stop=E,E}function Dt(e,t=1/0,n){if(t<=0||!Ce(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ze(e))Dt(e.value,t,n);else if(se(e))for(let s=0;s{Dt(s,t,n)});else if(rr(e)){for(const s in e)Dt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Dt(e[s],t,n)}return e}/** +**/let rt;class ho{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=rt,!t&&rt&&(this.index=(rt.scopes||(rt.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(ts){let t=ts;for(ts=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;es;){let t=es;for(es=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Ki(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function qi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),bo(s),$u(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Ur(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Gi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Gi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===as))return;e.globalVersion=as;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Ur(e)){e.flags&=-3;return}const n=Ae,s=xt;Ae=e,xt=!0;try{Ki(e);const r=e.fn(e._value);(t.version===0||ot(r,e._value))&&(e._value=r,t.version++)}catch(r){throw t.version++,r}finally{Ae=n,xt=s,qi(e),e.flags&=-3}}function bo(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)bo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function $u(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function zu(e,t){e.effect instanceof ls&&(e=e.effect.fn);const n=new ls(e);t&&Ee(n,t);try{n.run()}catch(r){throw n.stop(),r}const s=n.run.bind(n);return s.effect=n,s}function Vu(e){e.effect.stop()}let xt=!0;const Qi=[];function nn(){Qi.push(xt),xt=!1}function sn(){const e=Qi.pop();xt=e===void 0?!0:e}function qo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ae;Ae=void 0;try{t()}finally{Ae=n}}}let as=0;class Ru{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ar{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ae||!xt||Ae===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ae)n=this.activeLink=new Ru(Ae,this),Ae.deps?(n.prevDep=Ae.depsTail,Ae.depsTail.nextDep=n,Ae.depsTail=n):Ae.deps=Ae.depsTail=n,Ji(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=Ae.depsTail,n.nextDep=void 0,Ae.depsTail.nextDep=n,Ae.depsTail=n,Ae.deps===n&&(Ae.deps=s)}return n}trigger(t){this.version++,as++,this.notify(t)}notify(t){go();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{vo()}}}function Ji(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)Ji(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Fs=new WeakMap,cn=Symbol(""),Hr=Symbol(""),us=Symbol("");function Je(e,t,n){if(xt&&Ae){let s=Fs.get(e);s||Fs.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new ar),r.map=s,r.key=n),r.track()}}function Rt(e,t,n,s,r,o){const i=Fs.get(e);if(!i){as++;return}const l=u=>{u&&u.trigger()};if(go(),t==="clear")i.forEach(l);else{const u=se(e),c=u&&po(n);if(u&&n==="length"){const a=Number(s);i.forEach((d,f)=>{(f==="length"||f===us||!St(f)&&f>=a)&&l(d)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),c&&l(i.get(us)),t){case"add":u?c&&l(i.get("length")):(l(i.get(cn)),En(e)&&l(i.get(Hr)));break;case"delete":u||(l(i.get(cn)),En(e)&&l(i.get(Hr)));break;case"set":En(e)&&l(i.get(cn));break}}vo()}function Du(e,t){const n=Fs.get(e);return n&&n.get(t)}function kn(e){const t=ve(e);return t===e?t:(Je(t,"iterate",us),pt(e)?t:t.map(Xe))}function ur(e){return Je(e=ve(e),"iterate",us),e}const Mu={__proto__:null,[Symbol.iterator](){return $r(this,Symbol.iterator,Xe)},concat(...e){return kn(this).concat(...e.map(t=>se(t)?kn(t):t))},entries(){return $r(this,"entries",e=>(e[1]=Xe(e[1]),e))},every(e,t){return $t(this,"every",e,t,void 0,arguments)},filter(e,t){return $t(this,"filter",e,t,n=>n.map(Xe),arguments)},find(e,t){return $t(this,"find",e,t,Xe,arguments)},findIndex(e,t){return $t(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return $t(this,"findLast",e,t,Xe,arguments)},findLastIndex(e,t){return $t(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return $t(this,"forEach",e,t,void 0,arguments)},includes(...e){return zr(this,"includes",e)},indexOf(...e){return zr(this,"indexOf",e)},join(e){return kn(this).join(e)},lastIndexOf(...e){return zr(this,"lastIndexOf",e)},map(e,t){return $t(this,"map",e,t,void 0,arguments)},pop(){return qn(this,"pop")},push(...e){return qn(this,"push",e)},reduce(e,...t){return Go(this,"reduce",e,t)},reduceRight(e,...t){return Go(this,"reduceRight",e,t)},shift(){return qn(this,"shift")},some(e,t){return $t(this,"some",e,t,void 0,arguments)},splice(...e){return qn(this,"splice",e)},toReversed(){return kn(this).toReversed()},toSorted(e){return kn(this).toSorted(e)},toSpliced(...e){return kn(this).toSpliced(...e)},unshift(...e){return qn(this,"unshift",e)},values(){return $r(this,"values",Xe)}};function $r(e,t,n){const s=ur(e),r=s[t]();return s!==e&&!pt(e)&&(r._next=r.next,r.next=()=>{const o=r._next();return o.value&&(o.value=n(o.value)),o}),r}const ju=Array.prototype;function $t(e,t,n,s,r,o){const i=ur(e),l=i!==e&&!pt(e),u=i[t];if(u!==ju[t]){const d=u.apply(e,o);return l?Xe(d):d}let c=n;i!==e&&(l?c=function(d,f){return n.call(this,Xe(d),f,e)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,e)}));const a=u.call(i,c,s);return l&&r?r(a):a}function Go(e,t,n,s){const r=ur(e);let o=n;return r!==e&&(pt(e)?n.length>3&&(o=function(i,l,u){return n.call(this,i,l,u,e)}):o=function(i,l,u){return n.call(this,i,Xe(l),u,e)}),r[t](o,...s)}function zr(e,t,n){const s=ve(e);Je(s,"iterate",us);const r=s[t](...n);return(r===-1||r===!1)&&jn(n[0])?(n[0]=ve(n[0]),s[t](...n)):r}function qn(e,t,n=[]){nn(),go();const s=ve(e)[t].apply(e,n);return vo(),sn(),s}const Iu=sr("__proto__,__v_isRef,__isVue"),Xi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(St));function Nu(e){St(e)||(e=String(e));const t=ve(this);return Je(t,"has",e),t.hasOwnProperty(e)}class Yi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return o;if(n==="__v_raw")return s===(r?o?rl:sl:o?nl:tl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const i=se(t);if(!r){let u;if(i&&(u=Mu[n]))return u;if(n==="hasOwnProperty")return Nu}const l=Reflect.get(t,n,$e(t)?t:s);return(St(n)?Xi.has(n):Iu(n))||(r||Je(t,"get",n),o)?l:$e(l)?i&&po(n)?l:l.value:Ce(l)?r?gs(l):Zt(l):l}}class Zi extends Yi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let o=t[n];if(!this._isShallow){const u=en(o);if(!pt(s)&&!en(s)&&(o=ve(o),s=ve(s)),!se(t)&&$e(o)&&!$e(s))return u?!1:(o.value=s,!0)}const i=se(t)&&po(n)?Number(n)e,_s=e=>Reflect.getPrototypeOf(e);function Hu(e,t,n){return function(...s){const r=this.__v_raw,o=ve(r),i=En(o),l=e==="entries"||e===Symbol.iterator&&i,u=e==="keys"&&i,c=r[e](...s),a=n?Wr:t?Kr:Xe;return!t&&Je(o,"iterate",u?Hr:cn),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:l?[a(d[0]),a(d[1])]:a(d),done:f}},[Symbol.iterator](){return this}}}}function xs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Wu(e,t){const n={get(r){const o=this.__v_raw,i=ve(o),l=ve(r);e||(ot(r,l)&&Je(i,"get",r),Je(i,"get",l));const{has:u}=_s(i),c=t?Wr:e?Kr:Xe;if(u.call(i,r))return c(o.get(r));if(u.call(i,l))return c(o.get(l));o!==i&&o.get(r)},get size(){const r=this.__v_raw;return!e&&Je(ve(r),"iterate",cn),Reflect.get(r,"size",r)},has(r){const o=this.__v_raw,i=ve(o),l=ve(r);return e||(ot(r,l)&&Je(i,"has",r),Je(i,"has",l)),r===l?o.has(r):o.has(r)||o.has(l)},forEach(r,o){const i=this,l=i.__v_raw,u=ve(l),c=t?Wr:e?Kr:Xe;return!e&&Je(u,"iterate",cn),l.forEach((a,d)=>r.call(o,c(a),c(d),i))}};return Ee(n,e?{add:xs("add"),set:xs("set"),delete:xs("delete"),clear:xs("clear")}:{add(r){!t&&!pt(r)&&!en(r)&&(r=ve(r));const o=ve(this);return _s(o).has.call(o,r)||(o.add(r),Rt(o,"add",r,r)),this},set(r,o){!t&&!pt(o)&&!en(o)&&(o=ve(o));const i=ve(this),{has:l,get:u}=_s(i);let c=l.call(i,r);c||(r=ve(r),c=l.call(i,r));const a=u.call(i,r);return i.set(r,o),c?ot(o,a)&&Rt(i,"set",r,o):Rt(i,"add",r,o),this},delete(r){const o=ve(this),{has:i,get:l}=_s(o);let u=i.call(o,r);u||(r=ve(r),u=i.call(o,r)),l&&l.call(o,r);const c=o.delete(r);return u&&Rt(o,"delete",r,void 0),c},clear(){const r=ve(this),o=r.size!==0,i=r.clear();return o&&Rt(r,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Hu(r,e,t)}),n}function cr(e,t){const n=Wu(e,t);return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(xe(n,r)&&r in s?n:s,r,o)}const Ku={get:cr(!1,!1)},qu={get:cr(!1,!0)},Gu={get:cr(!0,!1)},Qu={get:cr(!0,!0)},tl=new WeakMap,nl=new WeakMap,sl=new WeakMap,rl=new WeakMap;function Ju(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xu(e){return e.__v_skip||!Object.isExtensible(e)?0:Ju(vu(e))}function Zt(e){return en(e)?e:dr(e,!1,Lu,Ku,tl)}function ol(e){return dr(e,!1,Bu,qu,nl)}function gs(e){return dr(e,!0,Fu,Gu,sl)}function Yu(e){return dr(e,!0,Uu,Qu,rl)}function dr(e,t,n,s,r){if(!Ce(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const i=Xu(e);if(i===0)return e;const l=new Proxy(e,i===2?s:n);return r.set(e,l),l}function Qt(e){return en(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function en(e){return!!(e&&e.__v_isReadonly)}function pt(e){return!!(e&&e.__v_isShallow)}function jn(e){return e?!!e.__v_raw:!1}function ve(e){const t=e&&e.__v_raw;return t?ve(t):e}function il(e){return!xe(e,"__v_skip")&&Object.isExtensible(e)&&Ni(e,"__v_skip",!0),e}const Xe=e=>Ce(e)?Zt(e):e,Kr=e=>Ce(e)?gs(e):e;function $e(e){return e?e.__v_isRef===!0:!1}function ie(e){return ll(e,!1)}function yo(e){return ll(e,!0)}function ll(e,t){return $e(e)?e:new Zu(e,t)}class Zu{constructor(t,n){this.dep=new ar,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ve(t),this._value=n?t:Xe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||pt(t)||en(t);t=s?t:ve(t),ot(t,n)&&(this._rawValue=t,this._value=s?t:Xe(t),this.dep.trigger())}}function ec(e){e.dep&&e.dep.trigger()}function de(e){return $e(e)?e.value:e}function tc(e){return ae(e)?e():de(e)}const nc={get:(e,t,n)=>t==="__v_raw"?e:de(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return $e(r)&&!$e(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ko(e){return Qt(e)?e:new Proxy(e,nc)}class sc{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new ar,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function al(e){return new sc(e)}function rc(e){const t=se(e)?new Array(e.length):{};for(const n in e)t[n]=ul(e,n);return t}class oc{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Du(ve(this._object),this._key)}}class ic{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function lc(e,t,n){return $e(e)?e:ae(e)?new ic(e):Ce(e)&&arguments.length>1?ul(e,t,n):ie(e)}function ul(e,t,n){const s=e[t];return $e(s)?s:new oc(e,t,n)}class ac{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ar(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=as-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&Ae!==this)return Wi(this,!0),!0}get value(){const t=this.dep.track();return Gi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function uc(e,t,n=!1){let s,r;return ae(e)?s=e:(s=e.get,r=e.set),new ac(s,r,n)}const cc={GET:"get",HAS:"has",ITERATE:"iterate"},dc={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Ss={},Bs=new WeakMap;let Wt;function fc(){return Wt}function cl(e,t=!1,n=Wt){if(n){let s=Bs.get(n);s||Bs.set(n,s=[]),s.push(e)}}function pc(e,t,n=be){const{immediate:s,deep:r,once:o,scheduler:i,augmentJob:l,call:u}=n,c=k=>r?k:pt(k)||r===!1||r===0?Dt(k,1):Dt(k);let a,d,f,v,m=!1,C=!1;if($e(e)?(d=()=>e.value,m=pt(e)):Qt(e)?(d=()=>c(e),m=!0):se(e)?(C=!0,m=e.some(k=>Qt(k)||pt(k)),d=()=>e.map(k=>{if($e(k))return k.value;if(Qt(k))return c(k);if(ae(k))return u?u(k,2):k()})):ae(e)?t?d=u?()=>u(e,2):e:d=()=>{if(f){nn();try{f()}finally{sn()}}const k=Wt;Wt=a;try{return u?u(e,3,[v]):e(v)}finally{Wt=k}}:d=_t,t&&r){const k=d,w=r===!0?1/0:r;d=()=>Dt(k(),w)}const V=mo(),E=()=>{a.stop(),V&&co(V.effects,a)};if(o&&t){const k=t;t=(...w)=>{k(...w),E()}}let x=C?new Array(e.length).fill(Ss):Ss;const g=k=>{if(!(!(a.flags&1)||!a.dirty&&!k))if(t){const w=a.run();if(r||m||(C?w.some((P,$)=>ot(P,x[$])):ot(w,x))){f&&f();const P=Wt;Wt=a;try{const $=[w,x===Ss?void 0:C&&x[0]===Ss?[]:x,v];u?u(t,3,$):t(...$),x=w}finally{Wt=P}}}else a.run()};return l&&l(g),a=new ls(d),a.scheduler=i?()=>i(g,!1):g,v=k=>cl(k,!1,a),f=a.onStop=()=>{const k=Bs.get(a);if(k){if(u)u(k,4);else for(const w of k)w();Bs.delete(a)}},t?s?g(!0):x=a.run():i?i(g.bind(null,!0),!0):a.run(),E.pause=a.pause.bind(a),E.resume=a.resume.bind(a),E.stop=E,E}function Dt(e,t=1/0,n){if(t<=0||!Ce(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,$e(e))Dt(e.value,t,n);else if(se(e))for(let s=0;s{Dt(s,t,n)});else if(rr(e)){for(const s in e)Dt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Dt(e[s],t,n)}return e}/** * @vue/runtime-core v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const dl=[];function hc(e){dl.push(e)}function mc(){dl.pop()}function gc(e,t){}const vc={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},bc={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function In(e,t,n,s){try{return s?e(...s):e()}catch(r){bn(r,t,n)}}function yt(e,t,n,s){if(ae(e)){const r=In(e,t,n,s);return r&&fo(r)&&r.catch(o=>{bn(o,t,n)}),r}if(se(e)){const r=[];for(let o=0;o>>1,r=it[s],o=cs(r);o=cs(n)?it.push(e):it.splice(kc(t),0,e),e.flags|=1,pl()}}function pl(){Us||(Us=fl.then(hl))}function Hs(e){se(e)?On.push(...e):Kt&&e.id===-1?Kt.splice(_n+1,0,e):e.flags&1||(On.push(e),e.flags|=1),pl()}function Qo(e,t,n=Tt+1){for(;ncs(n)-cs(s));if(On.length=0,Kt){Kt.push(...t);return}for(Kt=t,_n=0;_ne.id==null?e.flags&2?-1:1/0:e.id;function hl(e){try{for(Tt=0;Ttxn.emit(r,...o)),Cs=[]):typeof window<"u"&&window.HTMLElement&&!((s=(n=window.navigator)==null?void 0:n.userAgent)!=null&&s.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(o=>{ml(o,t)}),setTimeout(()=>{xn||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Cs=[])},3e3)):Cs=[]}let Fe=null,fr=null;function ds(e){const t=Fe;return Fe=e,fr=e&&e.type.__scopeId||null,t}function wc(e){fr=e}function _c(){fr=null}const xc=e=>K;function K(e,t=Fe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&eo(-1);const o=ds(t);let i;try{i=e(...r)}finally{ds(o),s._d&&eo(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Ln(e,t){if(Fe===null)return e;const n=ys(Fe),s=e.dirs||(e.dirs=[]);for(let r=0;re.__isTeleport,ns=e=>e&&(e.disabled||e.disabled===""),Sc=e=>e&&(e.defer||e.defer===""),Jo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Xo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,qr=(e,t)=>{const n=e&&e.to;return Oe(n)?t?t(n):null:n},Cc={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,o,i,l,u,c){const{mc:a,pc:d,pbc:f,o:{insert:g,querySelector:m,createText:C,createComment:R}}=c,E=ns(t.props);let{shapeFlag:x,children:v,dynamicChildren:k}=t;if(e==null){const w=t.el=C(""),P=t.anchor=C("");g(w,n,s),g(P,n,s);const z=($,O)=>{x&16&&(r&&r.isCE&&(r.ce._teleportTarget=$),a(v,$,O,r,o,i,l,u))},D=()=>{const $=t.target=qr(t.props,m),O=bl($,t,C,g);$&&(i!=="svg"&&Jo($)?i="svg":i!=="mathml"&&Xo($)&&(i="mathml"),E||(z($,O),Ds(t,!1)))};E&&(z(n,P),Ds(t,!0)),Sc(t.props)?He(D,o):D()}else{t.el=e.el,t.targetStart=e.targetStart;const w=t.anchor=e.anchor,P=t.target=e.target,z=t.targetAnchor=e.targetAnchor,D=ns(e.props),$=D?n:P,O=D?w:z;if(i==="svg"||Jo(P)?i="svg":(i==="mathml"||Xo(P))&&(i="mathml"),k?(f(e.dynamicChildren,k,$,r,o,i,l),Ro(e,t,!0)):u||d(e,t,$,O,r,o,i,l,!1),E)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Es(t,n,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const F=t.target=qr(t.props,m);F&&Es(t,F,null,c,0)}else D&&Es(t,P,z,c,1);Ds(t,E)}},remove(e,t,n,{um:s,o:{remove:r}},o){const{shapeFlag:i,children:l,anchor:u,targetStart:c,targetAnchor:a,target:d,props:f}=e;if(d&&(r(c),r(a)),o&&r(u),i&16){const g=o||!ns(f);for(let m=0;m{e.isMounted=!0}),gr(()=>{e.isUnmounting=!0}),e}const gt=[Function,Array],xo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:gt,onEnter:gt,onAfterEnter:gt,onEnterCancelled:gt,onBeforeLeave:gt,onLeave:gt,onAfterLeave:gt,onLeaveCancelled:gt,onBeforeAppear:gt,onAppear:gt,onAfterAppear:gt,onAppearCancelled:gt},yl=e=>{const t=e.subTree;return t.component?yl(t.component):t},Ac={name:"BaseTransition",props:xo,setup(e,{slots:t}){const n=dt(),s=_o();return()=>{const r=t.default&&pr(t.default(),!0);if(!r||!r.length)return;const o=kl(r),i=ve(e),{mode:l}=i;if(s.isLeaving)return Rr(o);const u=Yo(o);if(!u)return Rr(o);let c=$n(u,i,s,n,f=>c=f);u.type!==Me&&jt(u,c);const a=n.subTree,d=a&&Yo(a);if(d&&d.type!==Me&&!wt(u,d)&&yl(n).type!==Me){const f=$n(d,i,s,n);if(jt(d,f),l==="out-in"&&u.type!==Me)return s.isLeaving=!0,f.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave},Rr(o);l==="in-out"&&u.type!==Me&&(f.delayLeave=(g,m,C)=>{const R=_l(s,d);R[String(d.key)]=d,g[qt]=()=>{m(),g[qt]=void 0,delete c.delayedLeave},c.delayedLeave=C})}return o}}};function kl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Me){t=n;break}}return t}const wl=Ac;function _l(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function $n(e,t,n,s,r){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:u,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:f,onLeave:g,onAfterLeave:m,onLeaveCancelled:C,onBeforeAppear:R,onAppear:E,onAfterAppear:x,onAppearCancelled:v}=t,k=String(e.key),w=_l(n,e),P=($,O)=>{$&&yt($,s,9,O)},z=($,O)=>{const F=O[1];P($,O),se($)?$.every(A=>A.length<=1)&&F():$.length<=1&&F()},D={mode:i,persisted:l,beforeEnter($){let O=u;if(!n.isMounted)if(o)O=R||u;else return;$[qt]&&$[qt](!0);const F=w[k];F&&wt(e,F)&&F.el[qt]&&F.el[qt](),P(O,[$])},enter($){let O=c,F=a,A=d;if(!n.isMounted)if(o)O=E||c,F=x||a,A=v||d;else return;let N=!1;const Q=$[Ts]=ee=>{N||(N=!0,ee?P(A,[$]):P(F,[$]),D.delayedLeave&&D.delayedLeave(),$[Ts]=void 0)};O?z(O,[$,Q]):Q()},leave($,O){const F=String(e.key);if($[Ts]&&$[Ts](!0),n.isUnmounting)return O();P(f,[$]);let A=!1;const N=$[qt]=Q=>{A||(A=!0,O(),Q?P(C,[$]):P(m,[$]),$[qt]=void 0,w[F]===e&&delete w[F])};w[F]=e,g?z(g,[$,N]):N()},clone($){const O=$n($,t,n,s,r);return r&&r(O),O}};return D}function Rr(e){if(vs(e))return e=Pt(e),e.children=null,e}function Yo(e){if(!vs(e))return vl(e.type)&&e.children?kl(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ae(n.default))return n.default()}}function jt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,jt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pr(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;on.value,set:o=>n.value=o})}return n}function Ks(e,t,n,s,r=!1){if(se(e)){e.forEach((m,C)=>Ks(m,t&&(se(t)?t[C]:t),n,s,r));return}if(Jt(s)&&!r)return;const o=s.shapeFlag&4?ys(s.component):s.el,i=r?null:o,{i:l,r:u}=e,c=t&&t.r,a=l.refs===be?l.refs={}:l.refs,d=l.setupState,f=ve(d),g=d===be?()=>!1:m=>xe(f,m);if(c!=null&&c!==u&&(Oe(c)?(a[c]=null,g(c)&&(d[c]=null)):ze(c)&&(c.value=null)),ae(u))In(u,l,12,[i,a]);else{const m=Oe(u),C=ze(u);if(m||C){const R=()=>{if(e.f){const E=m?g(u)?d[u]:a[u]:u.value;r?se(E)&&co(E,o):se(E)?E.includes(o)||E.push(o):m?(a[u]=[o],g(u)&&(d[u]=a[u])):(u.value=[o],e.k&&(a[e.k]=u.value))}else m?(a[u]=i,g(u)&&(d[u]=i)):C&&(u.value=i,e.k&&(a[e.k]=i))};i?(R.id=-1,He(R,n)):R()}}}let Zo=!1;const wn=()=>{Zo||(console.error("Hydration completed but contains mismatches."),Zo=!0)},zc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",$c=e=>e.namespaceURI.includes("MathML"),As=e=>{if(e.nodeType===1){if(zc(e))return"svg";if($c(e))return"mathml"}},Sn=e=>e.nodeType===8;function Rc(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:o,parentNode:i,remove:l,insert:u,createComment:c}}=e,a=(v,k)=>{if(!k.hasChildNodes()){n(null,v,k),Ws(),k._vnode=v;return}d(k.firstChild,v,null,null,null),Ws(),k._vnode=v},d=(v,k,w,P,z,D=!1)=>{D=D||!!k.dynamicChildren;const $=Sn(v)&&v.data==="[",O=()=>C(v,k,w,P,z,$),{type:F,ref:A,shapeFlag:N,patchFlag:Q}=k;let ee=v.nodeType;k.el=v,Q===-2&&(D=!1,k.dynamicChildren=null);let j=null;switch(F){case Xt:ee!==3?k.children===""?(u(k.el=r(""),i(v),v),j=v):j=O():(v.data!==k.children&&(wn(),v.data=k.children),j=o(v));break;case Me:x(v)?(j=o(v),E(k.el=v.content.firstChild,v,w)):ee!==8||$?j=O():j=o(v);break;case fn:if($&&(v=o(v),ee=v.nodeType),ee===1||ee===3){j=v;const ne=!k.children.length;for(let X=0;X{D=D||!!k.dynamicChildren;const{type:$,props:O,patchFlag:F,shapeFlag:A,dirs:N,transition:Q}=k,ee=$==="input"||$==="option";if(ee||F!==-1){N&&At(k,null,w,"created");let j=!1;if(x(v)){j=ql(null,Q)&&w&&w.vnode.props&&w.vnode.props.appear;const X=v.content.firstChild;j&&Q.beforeEnter(X),E(X,v,w),k.el=v=X}if(A&16&&!(O&&(O.innerHTML||O.textContent))){let X=g(v.firstChild,k,v,w,P,z,D);for(;X;){Os(v,1)||wn();const fe=X;X=X.nextSibling,l(fe)}}else if(A&8){let X=k.children;X[0]===` -`&&(v.tagName==="PRE"||v.tagName==="TEXTAREA")&&(X=X.slice(1)),v.textContent!==X&&(Os(v,0)||wn(),v.textContent=k.children)}if(O){if(ee||!D||F&48){const X=v.tagName.includes("-");for(const fe in O)(ee&&(fe.endsWith("value")||fe==="indeterminate")||hs(fe)&&!Tn(fe)||fe[0]==="."||X)&&s(v,fe,null,O[fe],void 0,w)}else if(O.onClick)s(v,"onClick",null,O.onClick,void 0,w);else if(F&4&&Qt(O.style))for(const X in O.style)O.style[X]}let ne;(ne=O&&O.onVnodeBeforeMount)&<(ne,w,k),N&&At(k,null,w,"beforeMount"),((ne=O&&O.onVnodeMounted)||N||j)&&ra(()=>{ne&<(ne,w,k),j&&Q.enter(v),N&&At(k,null,w,"mounted")},P)}return v.nextSibling},g=(v,k,w,P,z,D,$)=>{$=$||!!k.dynamicChildren;const O=k.children,F=O.length;for(let A=0;A{const{slotScopeIds:$}=k;$&&(z=z?z.concat($):$);const O=i(v),F=g(o(v),k,O,w,P,z,D);return F&&Sn(F)&&F.data==="]"?o(k.anchor=F):(wn(),u(k.anchor=c("]"),O,F),F)},C=(v,k,w,P,z,D)=>{if(Os(v.parentElement,1)||wn(),k.el=null,D){const F=R(v);for(;;){const A=o(v);if(A&&A!==F)l(A);else break}}const $=o(v),O=i(v);return l(v),n(null,k,O,$,w,P,As(O),z),$},R=(v,k="[",w="]")=>{let P=0;for(;v;)if(v=o(v),v&&Sn(v)&&(v.data===k&&P++,v.data===w)){if(P===0)return o(v);P--}return v},E=(v,k,w)=>{const P=k.parentNode;P&&P.replaceChild(v,k);let z=w;for(;z;)z.vnode.el===k&&(z.vnode.el=z.subTree.el=v),z=z.parent},x=v=>v.nodeType===1&&v.tagName==="TEMPLATE";return[a,d]}const ei="data-allow-mismatch",Vc={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Os(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ei);)e=e.parentElement;const n=e&&e.getAttribute(ei);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return t===0&&s.includes("children")?!0:n.split(",").includes(Vc[t])}}const Dc=ir().requestIdleCallback||(e=>setTimeout(e,1)),Mc=ir().cancelIdleCallback||(e=>clearTimeout(e)),jc=(e=1e4)=>t=>{const n=Dc(t,{timeout:e});return()=>Mc(n)};function Ic(e){const{top:t,left:n,bottom:s,right:r}=e.getBoundingClientRect(),{innerHeight:o,innerWidth:i}=window;return(t>0&&t0&&s0&&n0&&r(t,n)=>{const s=new IntersectionObserver(r=>{for(const o of r)if(o.isIntersecting){s.disconnect(),t();break}},e);return n(r=>{if(r instanceof Element){if(Ic(r))return t(),s.disconnect(),!1;s.observe(r)}}),()=>s.disconnect()},Lc=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},Fc=(e=[])=>(t,n)=>{Oe(e)&&(e=[e]);let s=!1;const r=i=>{s||(s=!0,o(),t(),i.target.dispatchEvent(new i.constructor(i.type,i)))},o=()=>{n(i=>{for(const l of e)i.removeEventListener(l,r)})};return n(i=>{for(const l of e)i.addEventListener(l,r,{once:!0})}),o};function Bc(e,t){if(Sn(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(Sn(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const Jt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Uc(e){ae(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:o,timeout:i,suspensible:l=!0,onError:u}=e;let c=null,a,d=0;const f=()=>(d++,c=null,g()),g=()=>{let m;return c||(m=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),u)return new Promise((R,E)=>{u(C,()=>R(f()),()=>E(C),d+1)});throw C}).then(C=>m!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return So({name:"AsyncComponentWrapper",__asyncLoader:g,__asyncHydrate(m,C,R){const E=o?()=>{const x=o(R,v=>Bc(m,v));x&&(C.bum||(C.bum=[])).push(x)}:R;a?E():g().then(()=>!C.isUnmounted&&E())},get __asyncResolved(){return a},setup(){const m=Le;if(Co(m),a)return()=>Vr(a,m);const C=v=>{c=null,bn(v,m,13,!s)};if(l&&m.suspense||Rn)return g().then(v=>()=>Vr(v,m)).catch(v=>(C(v),()=>s?W(s,{error:v}):null));const R=ie(!1),E=ie(),x=ie(!!r);return r&&setTimeout(()=>{x.value=!1},r),i!=null&&setTimeout(()=>{if(!R.value&&!E.value){const v=new Error(`Async component timed out after ${i}ms.`);C(v),E.value=v}},i),g().then(()=>{R.value=!0,m.parent&&vs(m.parent.vnode)&&m.parent.update()}).catch(v=>{C(v),E.value=v}),()=>{if(R.value&&a)return Vr(a,m);if(E.value&&s)return W(s,{error:E.value});if(n&&!x.value)return W(n)}}})}function Vr(e,t){const{ref:n,props:s,children:r,ce:o}=t.vnode,i=W(e,s,r);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const vs=e=>e.type.__isKeepAlive,Hc={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=dt(),s=n.ctx;if(!s.renderer)return()=>{const x=t.default&&t.default();return x&&x.length===1?x[0]:x};const r=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:u,m:c,um:a,o:{createElement:d}}}=s,f=d("div");s.activate=(x,v,k,w,P)=>{const z=x.component;c(x,v,k,0,l),u(z.vnode,x,v,k,z,l,w,x.slotScopeIds,P),He(()=>{z.isDeactivated=!1,z.a&&An(z.a);const D=x.props&&x.props.onVnodeMounted;D&<(D,z.parent,x)},l)},s.deactivate=x=>{const v=x.component;Gs(v.m),Gs(v.a),c(x,f,null,1,l),He(()=>{v.da&&An(v.da);const k=x.props&&x.props.onVnodeUnmounted;k&<(k,v.parent,x),v.isDeactivated=!0},l)};function g(x){Dr(x),a(x,n,l,!0)}function m(x){r.forEach((v,k)=>{const w=oo(v.type);w&&!x(w)&&C(k)})}function C(x){const v=r.get(x);v&&(!i||!wt(v,i))?g(v):i&&Dr(i),r.delete(x),o.delete(x)}vt(()=>[e.include,e.exclude],([x,v])=>{x&&m(k=>Xn(x,k)),v&&m(k=>!Xn(v,k))},{flush:"post",deep:!0});let R=null;const E=()=>{R!=null&&(Qs(n.subTree.type)?He(()=>{r.set(R,Ps(n.subTree))},n.subTree.suspense):r.set(R,Ps(n.subTree)))};return Ct(E),mr(E),gr(()=>{r.forEach(x=>{const{subTree:v,suspense:k}=n,w=Ps(v);if(x.type===w.type&&x.key===w.key){Dr(w);const P=w.component.da;P&&He(P,k);return}g(x)})}),()=>{if(R=null,!t.default)return i=null;const x=t.default(),v=x[0];if(x.length>1)return i=null,x;if(!It(v)||!(v.shapeFlag&4)&&!(v.shapeFlag&128))return i=null,v;let k=Ps(v);if(k.type===Me)return i=null,k;const w=k.type,P=oo(Jt(k)?k.type.__asyncResolved||{}:w),{include:z,exclude:D,max:$}=e;if(z&&(!P||!Xn(z,P))||D&&P&&Xn(D,P))return k.shapeFlag&=-257,i=k,v;const O=k.key==null?w:k.key,F=r.get(O);return k.el&&(k=Pt(k),v.shapeFlag&128&&(v.ssContent=k)),R=O,F?(k.el=F.el,k.component=F.component,k.transition&&jt(k,k.transition),k.shapeFlag|=512,o.delete(O),o.add(O)):(o.add(O),$&&o.size>parseInt($,10)&&C(o.values().next().value)),k.shapeFlag|=256,i=k,Qs(v.type)?v:k}}},Wc=Hc;function Xn(e,t){return se(e)?e.some(n=>Xn(n,t)):Oe(e)?e.split(",").includes(t):gu(e)?(e.lastIndex=0,e.test(t)):!1}function xl(e,t){Cl(e,"a",t)}function Sl(e,t){Cl(e,"da",t)}function Cl(e,t,n=Le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(hr(t,s,n),n){let r=n.parent;for(;r&&r.parent;)vs(r.parent.vnode)&&Kc(s,t,n,r),r=r.parent}}function Kc(e,t,n,s){const r=hr(t,e,s,!0);vr(()=>{co(s[t],r)},n)}function Dr(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Ps(e){return e.shapeFlag&128?e.ssContent:e}function hr(e,t,n=Le,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{nn();const l=hn(n),u=yt(t,n,e,i);return l(),sn(),u});return s?r.unshift(o):r.push(o),o}}const Lt=e=>(t,n=Le)=>{(!Rn||e==="sp")&&hr(e,(...s)=>t(...s),n)},Eo=Lt("bm"),Ct=Lt("m"),El=Lt("bu"),mr=Lt("u"),gr=Lt("bum"),vr=Lt("um"),Tl=Lt("sp"),Al=Lt("rtg"),Ol=Lt("rtc");function Pl(e,t=Le){hr("ec",e,t)}const To="components",qc="directives";function Gc(e,t){return Oo(To,e,!0,t)||e}const zl=Symbol.for("v-ndc");function Ao(e){return Oe(e)?Oo(To,e,!1)||e:e||zl}function Qc(e){return Oo(qc,e)}function Oo(e,t,n=!0,s=!1){const r=Fe||Le;if(r){const o=r.type;if(e===To){const l=oo(o,!1);if(l&&(l===t||l===Ge(t)||l===ms(Ge(t))))return o}const i=ti(r[e]||o[e],t)||ti(r.appContext[e],t);return!i&&s?o:i}}function ti(e,t){return e&&(e[t]||e[Ge(t)]||e[ms(Ge(t))])}function We(e,t,n,s){let r;const o=n&&n[s],i=se(e);if(i||Oe(e)){const l=i&&Qt(e);let u=!1;l&&(u=!pt(e),e=ur(e)),r=new Array(e.length);for(let c=0,a=e.length;ct(l,u,void 0,o&&o[u]));else{const l=Object.keys(e);r=new Array(l.length);for(let u=0,c=l.length;u{const o=s.fn(...r);return o&&(o.key=s.key),o}:s.fn)}return e}function we(e,t,n={},s,r){if(Fe.ce||Fe.parent&&Jt(Fe.parent)&&Fe.parent.ce)return t!=="default"&&(n.name=t),I(),qe(me,null,[W("slot",n,s&&s())],64);let o=e[t];o&&o._c&&(o._d=!1),I();const i=o&&Po(o(n)),l=n.key||i&&i.key,u=qe(me,{key:(l&&!St(l)?l:`_${t}`)+(!i&&s?"_fb":"")},i||(s?s():[]),i&&e._===1?64:-2);return!r&&u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),o&&o._c&&(o._d=!0),u}function Po(e){return e.some(t=>It(t)?!(t.type===Me||t.type===me&&!Po(t.children)):!0)?e:null}function Xc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Zn(s)]=e[s];return n}const Gr=e=>e?ca(e)?ys(e):Gr(e.parent):null,ss=Ee(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gr(e.parent),$root:e=>Gr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>zo(e),$forceUpdate:e=>e.f||(e.f=()=>{wo(e.update)}),$nextTick:e=>e.n||(e.n=Nn.bind(e.proxy)),$watch:e=>Td.bind(e)}),Mr=(e,t)=>e!==be&&!e.__isScriptSetup&&xe(e,t),Qr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:u}=e;let c;if(t[0]!=="$"){const g=i[t];if(g!==void 0)switch(g){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Mr(s,t))return i[t]=1,s[t];if(r!==be&&xe(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&xe(c,t))return i[t]=3,o[t];if(n!==be&&xe(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const a=ss[t];let d,f;if(a)return t==="$attrs"&&Je(e.attrs,"get",""),a(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==be&&xe(n,t))return i[t]=4,n[t];if(f=u.config.globalProperties,xe(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Mr(r,t)?(r[t]=n,!0):s!==be&&xe(s,t)?(s[t]=n,!0):xe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==be&&xe(e,i)||Mr(t,i)||(l=o[0])&&xe(l,i)||xe(s,i)||xe(ss,i)||xe(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:xe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Yc=Ee({},Qr,{get(e,t){if(t!==Symbol.unscopables)return Qr.get(e,t,e)},has(e,t){return t[0]!=="_"&&!wu(t)}});function Zc(){return null}function ed(){return null}function td(e){}function nd(e){}function sd(){return null}function rd(){}function od(e,t){return null}function id(){return $l().slots}function ld(){return $l().attrs}function $l(){const e=dt();return e.setupContext||(e.setupContext=pa(e))}function fs(e){return se(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function ad(e,t){const n=fs(e);for(const s in t){if(s.startsWith("__skip"))continue;let r=n[s];r?se(r)||ae(r)?r=n[s]={type:r,default:t[s]}:r.default=t[s]:r===null&&(r=n[s]={default:t[s]}),r&&t[`__skip_${s}`]&&(r.skipFactory=!0)}return n}function ud(e,t){return!e||!t?e||t:se(e)&&se(t)?e.concat(t):Ee({},fs(e),fs(t))}function cd(e,t){const n={};for(const s in e)t.includes(s)||Object.defineProperty(n,s,{enumerable:!0,get:()=>e[s]});return n}function dd(e){const t=dt();let n=e();return no(),fo(n)&&(n=n.catch(s=>{throw hn(t),s})),[n,()=>hn(t)]}let Jr=!0;function fd(e){const t=zo(e),n=e.proxy,s=e.ctx;Jr=!1,t.beforeCreate&&ni(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:u,inject:c,created:a,beforeMount:d,mounted:f,beforeUpdate:g,updated:m,activated:C,deactivated:R,beforeDestroy:E,beforeUnmount:x,destroyed:v,unmounted:k,render:w,renderTracked:P,renderTriggered:z,errorCaptured:D,serverPrefetch:$,expose:O,inheritAttrs:F,components:A,directives:N,filters:Q}=t;if(c&&pd(c,s,null),i)for(const ne in i){const X=i[ne];ae(X)&&(s[ne]=X.bind(n))}if(r){const ne=r.call(n,n);Ce(ne)&&(e.data=Zt(ne))}if(Jr=!0,o)for(const ne in o){const X=o[ne],fe=ae(X)?X.bind(n,n):ae(X.get)?X.get.bind(n,n):_t,Be=!ae(X)&&ae(X.set)?X.set.bind(n):_t,je=he({get:fe,set:Be});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>je.value,set:Ie=>je.value=Ie})}if(l)for(const ne in l)Rl(l[ne],s,n,ne);if(u){const ne=ae(u)?u.call(n):u;Reflect.ownKeys(ne).forEach(X=>{rs(X,ne[X])})}a&&ni(a,e,"c");function j(ne,X){se(X)?X.forEach(fe=>ne(fe.bind(n))):X&&ne(X.bind(n))}if(j(Eo,d),j(Ct,f),j(El,g),j(mr,m),j(xl,C),j(Sl,R),j(Pl,D),j(Ol,P),j(Al,z),j(gr,x),j(vr,k),j(Tl,$),se(O))if(O.length){const ne=e.exposed||(e.exposed={});O.forEach(X=>{Object.defineProperty(ne,X,{get:()=>n[X],set:fe=>n[X]=fe})})}else e.exposed||(e.exposed={});w&&e.render===_t&&(e.render=w),F!=null&&(e.inheritAttrs=F),A&&(e.components=A),N&&(e.directives=N),$&&Co(e)}function pd(e,t,n=_t){se(e)&&(e=Xr(e));for(const s in e){const r=e[s];let o;Ce(r)?"default"in r?o=ht(r.from||s,r.default,!0):o=ht(r.from||s):o=ht(r),ze(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function ni(e,t,n){yt(se(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Rl(e,t,n,s){let r=s.includes(".")?Zl(n,s):()=>n[s];if(Oe(e)){const o=t[e];ae(o)&&vt(r,o)}else if(ae(e))vt(r,e.bind(n));else if(Ce(e))if(se(e))e.forEach(o=>Rl(o,t,n,s));else{const o=ae(e.handler)?e.handler.bind(n):t[e.handler];ae(o)&&vt(r,o,e)}}function zo(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let u;return l?u=l:!r.length&&!n&&!s?u=t:(u={},r.length&&r.forEach(c=>qs(u,c,i,!0)),qs(u,t,i)),Ce(t)&&o.set(t,u),u}function qs(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&qs(e,o,n,!0),r&&r.forEach(i=>qs(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=hd[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const hd={data:si,props:ri,emits:ri,methods:Yn,computed:Yn,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Yn,directives:Yn,watch:gd,provide:si,inject:md};function si(e,t){return t?e?function(){return Ee(ae(e)?e.call(this,this):e,ae(t)?t.call(this,this):t)}:t:e}function md(e,t){return Yn(Xr(e),Xr(t))}function Xr(e){if(se(e)){const t={};for(let n=0;n1)return n&&ae(t)?t.call(s&&s.proxy):t}}function yd(){return!!(Le||Fe||dn)}const Dl={},Ml=()=>Object.create(Dl),jl=e=>Object.getPrototypeOf(e)===Dl;function kd(e,t,n,s=!1){const r={},o=Ml();e.propsDefaults=Object.create(null),Il(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:ol(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function wd(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=ve(r),[u]=e.propsOptions;let c=!1;if((s||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let d=0;d{u=!0;const[f,g]=Nl(d,t,!0);Ee(i,f),g&&l.push(...g)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!u)return Ce(e)&&s.set(e,Cn),Cn;if(se(o))for(let a=0;ae[0]==="_"||e==="$stable",$o=e=>se(e)?e.map(at):[at(e)],xd=(e,t,n)=>{if(t._n)return t;const s=K((...r)=>$o(t(...r)),n);return s._c=!1,s},Fl=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ll(r))continue;const o=e[r];if(ae(o))t[r]=xd(r,o,s);else if(o!=null){const i=$o(o);t[r]=()=>i}}},Bl=(e,t)=>{const n=$o(t);e.slots.default=()=>n},Ul=(e,t,n)=>{for(const s in t)(n||s!=="_")&&(e[s]=t[s])},Sd=(e,t,n)=>{const s=e.slots=Ml();if(e.vnode.shapeFlag&32){const r=t._;r?(Ul(s,t,n),n&&Ni(s,"_",r,!0)):Fl(t,s)}else t&&Bl(e,t)},Cd=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=be;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ul(r,t,n):(o=!t.$stable,Fl(t,r)),i=t}else t&&(Bl(e,t),i={default:1});if(o)for(const l in r)!Ll(l)&&i[l]==null&&delete r[l]},He=ra;function Hl(e){return Kl(e)}function Wl(e){return Kl(e,Rc)}function Kl(e,t){const n=ir();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:u,setText:c,setElementText:a,parentNode:d,nextSibling:f,setScopeId:g=_t,insertStaticContent:m}=e,C=(b,_,V,M=null,L=null,B=null,Z=void 0,Y=null,J=!!_.dynamicChildren)=>{if(b===_)return;b&&!wt(b,_)&&(M=Et(b),Ie(b,L,B,!0),b=null),_.patchFlag===-2&&(J=!1,_.dynamicChildren=null);const{type:U,ref:le,shapeFlag:te}=_;switch(U){case Xt:R(b,_,V,M);break;case Me:E(b,_,V,M);break;case fn:b==null&&x(_,V,M,Z);break;case me:A(b,_,V,M,L,B,Z,Y,J);break;default:te&1?w(b,_,V,M,L,B,Z,Y,J):te&6?N(b,_,V,M,L,B,Z,Y,J):(te&64||te&128)&&U.process(b,_,V,M,L,B,Z,Y,J,Ft)}le!=null&&L&&Ks(le,b&&b.ref,B,_||b,!_)},R=(b,_,V,M)=>{if(b==null)s(_.el=l(_.children),V,M);else{const L=_.el=b.el;_.children!==b.children&&c(L,_.children)}},E=(b,_,V,M)=>{b==null?s(_.el=u(_.children||""),V,M):_.el=b.el},x=(b,_,V,M)=>{[b.el,b.anchor]=m(b.children,_,V,M,b.el,b.anchor)},v=({el:b,anchor:_},V,M)=>{let L;for(;b&&b!==_;)L=f(b),s(b,V,M),b=L;s(_,V,M)},k=({el:b,anchor:_})=>{let V;for(;b&&b!==_;)V=f(b),r(b),b=V;r(_)},w=(b,_,V,M,L,B,Z,Y,J)=>{_.type==="svg"?Z="svg":_.type==="math"&&(Z="mathml"),b==null?P(_,V,M,L,B,Z,Y,J):$(b,_,L,B,Z,Y,J)},P=(b,_,V,M,L,B,Z,Y)=>{let J,U;const{props:le,shapeFlag:te,transition:oe,dirs:ce}=b;if(J=b.el=i(b.type,B,le&&le.is,le),te&8?a(J,b.children):te&16&&D(b.children,J,null,M,L,jr(b,B),Z,Y),ce&&At(b,null,M,"created"),z(J,b,b.scopeId,Z,M),le){for(const Se in le)Se!=="value"&&!Tn(Se)&&o(J,Se,null,le[Se],B,M);"value"in le&&o(J,"value",null,le.value,B),(U=le.onVnodeBeforeMount)&<(U,M,b)}ce&&At(b,null,M,"beforeMount");const ge=ql(L,oe);ge&&oe.beforeEnter(J),s(J,_,V),((U=le&&le.onVnodeMounted)||ge||ce)&&He(()=>{U&<(U,M,b),ge&&oe.enter(J),ce&&At(b,null,M,"mounted")},L)},z=(b,_,V,M,L)=>{if(V&&g(b,V),M)for(let B=0;B{for(let U=J;U{const Y=_.el=b.el;let{patchFlag:J,dynamicChildren:U,dirs:le}=_;J|=b.patchFlag&16;const te=b.props||be,oe=_.props||be;let ce;if(V&&ln(V,!1),(ce=oe.onVnodeBeforeUpdate)&<(ce,V,_,b),le&&At(_,b,V,"beforeUpdate"),V&&ln(V,!0),(te.innerHTML&&oe.innerHTML==null||te.textContent&&oe.textContent==null)&&a(Y,""),U?O(b.dynamicChildren,U,Y,V,M,jr(_,L),B):Z||X(b,_,Y,null,V,M,jr(_,L),B,!1),J>0){if(J&16)F(Y,te,oe,V,L);else if(J&2&&te.class!==oe.class&&o(Y,"class",null,oe.class,L),J&4&&o(Y,"style",te.style,oe.style,L),J&8){const ge=_.dynamicProps;for(let Se=0;Se{ce&<(ce,V,_,b),le&&At(_,b,V,"updated")},M)},O=(b,_,V,M,L,B,Z)=>{for(let Y=0;Y<_.length;Y++){const J=b[Y],U=_[Y],le=J.el&&(J.type===me||!wt(J,U)||J.shapeFlag&70)?d(J.el):V;C(J,U,le,null,M,L,B,Z,!0)}},F=(b,_,V,M,L)=>{if(_!==V){if(_!==be)for(const B in _)!Tn(B)&&!(B in V)&&o(b,B,_[B],null,L,M);for(const B in V){if(Tn(B))continue;const Z=V[B],Y=_[B];Z!==Y&&B!=="value"&&o(b,B,Y,Z,L,M)}"value"in V&&o(b,"value",_.value,V.value,L)}},A=(b,_,V,M,L,B,Z,Y,J)=>{const U=_.el=b?b.el:l(""),le=_.anchor=b?b.anchor:l("");let{patchFlag:te,dynamicChildren:oe,slotScopeIds:ce}=_;ce&&(Y=Y?Y.concat(ce):ce),b==null?(s(U,V,M),s(le,V,M),D(_.children||[],V,le,L,B,Z,Y,J)):te>0&&te&64&&oe&&b.dynamicChildren?(O(b.dynamicChildren,oe,V,L,B,Z,Y),(_.key!=null||L&&_===L.subTree)&&Ro(b,_,!0)):X(b,_,V,le,L,B,Z,Y,J)},N=(b,_,V,M,L,B,Z,Y,J)=>{_.slotScopeIds=Y,b==null?_.shapeFlag&512?L.ctx.activate(_,V,M,Z,J):Q(_,V,M,L,B,Z,J):ee(b,_,J)},Q=(b,_,V,M,L,B,Z)=>{const Y=b.component=ua(b,M,L);if(vs(b)&&(Y.ctx.renderer=Ft),da(Y,!1,Z),Y.asyncDep){if(L&&L.registerDep(Y,j,Z),!b.el){const J=Y.subTree=W(Me);E(null,J,_,V)}}else j(Y,b,_,V,L,B,Z)},ee=(b,_,V)=>{const M=_.component=b.component;if($d(b,_,V))if(M.asyncDep&&!M.asyncResolved){ne(M,_,V);return}else M.next=_,M.update();else _.el=b.el,M.vnode=_},j=(b,_,V,M,L,B,Z)=>{const Y=()=>{if(b.isMounted){let{next:te,bu:oe,u:ce,parent:ge,vnode:Se}=b;{const et=Gl(b);if(et){te&&(te.el=Se.el,ne(b,te,Z)),et.asyncDep.then(()=>{b.isUnmounted||Y()});return}}let _e=te,Ue;ln(b,!1),te?(te.el=Se.el,ne(b,te,Z)):te=Se,oe&&An(oe),(Ue=te.props&&te.props.onVnodeBeforeUpdate)&<(Ue,ge,te,Se),ln(b,!0);const Te=Ms(b),Ze=b.subTree;b.subTree=Te,C(Ze,Te,d(Ze.el),Et(Ze),b,L,B),te.el=Te.el,_e===null&&Vo(b,Te.el),ce&&He(ce,L),(Ue=te.props&&te.props.onVnodeUpdated)&&He(()=>lt(Ue,ge,te,Se),L)}else{let te;const{el:oe,props:ce}=_,{bm:ge,m:Se,parent:_e,root:Ue,type:Te}=b,Ze=Jt(_);if(ln(b,!1),ge&&An(ge),!Ze&&(te=ce&&ce.onVnodeBeforeMount)&<(te,_e,_),ln(b,!0),oe&&on){const et=()=>{b.subTree=Ms(b),on(oe,b.subTree,b,L,null)};Ze&&Te.__asyncHydrate?Te.__asyncHydrate(oe,b,et):et()}else{Ue.ce&&Ue.ce._injectChildStyle(Te);const et=b.subTree=Ms(b);C(null,et,V,M,b,L,B),_.el=et.el}if(Se&&He(Se,L),!Ze&&(te=ce&&ce.onVnodeMounted)){const et=_;He(()=>lt(te,_e,et),L)}(_.shapeFlag&256||_e&&Jt(_e.vnode)&&_e.vnode.shapeFlag&256)&&b.a&&He(b.a,L),b.isMounted=!0,_=V=M=null}};b.scope.on();const J=b.effect=new ls(Y);b.scope.off();const U=b.update=J.run.bind(J),le=b.job=J.runIfDirty.bind(J);le.i=b,le.id=b.uid,J.scheduler=()=>wo(le),ln(b,!0),U()},ne=(b,_,V)=>{_.component=b;const M=b.vnode.props;b.vnode=_,b.next=null,wd(b,_.props,M,V),Cd(b,_.children,V),nn(),Qo(b),sn()},X=(b,_,V,M,L,B,Z,Y,J=!1)=>{const U=b&&b.children,le=b?b.shapeFlag:0,te=_.children,{patchFlag:oe,shapeFlag:ce}=_;if(oe>0){if(oe&128){Be(U,te,V,M,L,B,Z,Y,J);return}else if(oe&256){fe(U,te,V,M,L,B,Z,Y,J);return}}ce&8?(le&16&&rn(U,L,B),te!==U&&a(V,te)):le&16?ce&16?Be(U,te,V,M,L,B,Z,Y,J):rn(U,L,B,!0):(le&8&&a(V,""),ce&16&&D(te,V,M,L,B,Z,Y,J))},fe=(b,_,V,M,L,B,Z,Y,J)=>{b=b||Cn,_=_||Cn;const U=b.length,le=_.length,te=Math.min(U,le);let oe;for(oe=0;oele?rn(b,L,B,!0,!1,te):D(_,V,M,L,B,Z,Y,J,te)},Be=(b,_,V,M,L,B,Z,Y,J)=>{let U=0;const le=_.length;let te=b.length-1,oe=le-1;for(;U<=te&&U<=oe;){const ce=b[U],ge=_[U]=J?Gt(_[U]):at(_[U]);if(wt(ce,ge))C(ce,ge,V,null,L,B,Z,Y,J);else break;U++}for(;U<=te&&U<=oe;){const ce=b[te],ge=_[oe]=J?Gt(_[oe]):at(_[oe]);if(wt(ce,ge))C(ce,ge,V,null,L,B,Z,Y,J);else break;te--,oe--}if(U>te){if(U<=oe){const ce=oe+1,ge=ceoe)for(;U<=te;)Ie(b[U],L,B,!0),U++;else{const ce=U,ge=U,Se=new Map;for(U=ge;U<=oe;U++){const tt=_[U]=J?Gt(_[U]):at(_[U]);tt.key!=null&&Se.set(tt.key,U)}let _e,Ue=0;const Te=oe-ge+1;let Ze=!1,et=0;const Bt=new Array(Te);for(U=0;U=Te){Ie(tt,L,B,!0);continue}let mt;if(tt.key!=null)mt=Se.get(tt.key);else for(_e=ge;_e<=oe;_e++)if(Bt[_e-ge]===0&&wt(tt,_[_e])){mt=_e;break}mt===void 0?Ie(tt,L,B,!0):(Bt[mt-ge]=U+1,mt>=et?et=mt:Ze=!0,C(tt,_[mt],V,null,L,B,Z,Y,J),Ue++)}const yn=Ze?Ed(Bt):Cn;for(_e=yn.length-1,U=Te-1;U>=0;U--){const tt=ge+U,mt=_[tt],De=tt+1{const{el:B,type:Z,transition:Y,children:J,shapeFlag:U}=b;if(U&6){je(b.component.subTree,_,V,M);return}if(U&128){b.suspense.move(_,V,M);return}if(U&64){Z.move(b,_,V,Ft);return}if(Z===me){s(B,_,V);for(let te=0;teY.enter(B),L);else{const{leave:te,delayLeave:oe,afterLeave:ce}=Y,ge=()=>s(B,_,V),Se=()=>{te(B,()=>{ge(),ce&&ce()})};oe?oe(B,ge,Se):Se()}else s(B,_,V)},Ie=(b,_,V,M=!1,L=!1)=>{const{type:B,props:Z,ref:Y,children:J,dynamicChildren:U,shapeFlag:le,patchFlag:te,dirs:oe,cacheIndex:ce}=b;if(te===-2&&(L=!1),Y!=null&&Ks(Y,null,V,b,!0),ce!=null&&(_.renderCache[ce]=void 0),le&256){_.ctx.deactivate(b);return}const ge=le&1&&oe,Se=!Jt(b);let _e;if(Se&&(_e=Z&&Z.onVnodeBeforeUnmount)&<(_e,_,b),le&6)ws(b.component,V,M);else{if(le&128){b.suspense.unmount(V,M);return}ge&&At(b,null,_,"beforeUnmount"),le&64?b.type.remove(b,_,V,Ft,M):U&&!U.hasOnce&&(B!==me||te>0&&te&64)?rn(U,_,V,!1,!0):(B===me&&te&384||!L&&le&16)&&rn(J,_,V),M&&ks(b)}(Se&&(_e=Z&&Z.onVnodeUnmounted)||ge)&&He(()=>{_e&<(_e,_,b),ge&&At(b,null,_,"unmounted")},V)},ks=b=>{const{type:_,el:V,anchor:M,transition:L}=b;if(_===me){Er(V,M);return}if(_===fn){k(b);return}const B=()=>{r(V),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(b.shapeFlag&1&&L&&!L.persisted){const{leave:Z,delayLeave:Y}=L,J=()=>Z(V,B);Y?Y(b.el,B,J):J()}else B()},Er=(b,_)=>{let V;for(;b!==_;)V=f(b),r(b),b=V;r(_)},ws=(b,_,V)=>{const{bum:M,scope:L,job:B,subTree:Z,um:Y,m:J,a:U}=b;Gs(J),Gs(U),M&&An(M),L.stop(),B&&(B.flags|=8,Ie(Z,b,_,V)),Y&&He(Y,_),He(()=>{b.isUnmounted=!0},_),_&&_.pendingBranch&&!_.isUnmounted&&b.asyncDep&&!b.asyncResolved&&b.suspenseId===_.pendingId&&(_.deps--,_.deps===0&&_.resolve())},rn=(b,_,V,M=!1,L=!1,B=0)=>{for(let Z=B;Z{if(b.shapeFlag&6)return Et(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const _=f(b.anchor||b.el),V=_&&_[gl];return V?f(V):_};let Fn=!1;const Bn=(b,_,V)=>{b==null?_._vnode&&Ie(_._vnode,null,null,!0):C(_._vnode||null,b,_,null,null,null,V),_._vnode=b,Fn||(Fn=!0,Qo(),Ws(),Fn=!1)},Ft={p:C,um:Ie,m:je,r:ks,mt:Q,mc:D,pc:X,pbc:O,n:Et,o:e};let Un,on;return t&&([Un,on]=t(Ft)),{render:Bn,hydrate:Un,createApp:bd(Bn,Un)}}function jr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ln({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ql(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ro(e,t,n=!1){const s=e.children,r=t.children;if(se(s)&&se(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Gl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gl(t)}function Gs(e){if(e)for(let t=0;tht(Ql);function br(e,t){return bs(e,null,t)}function Xl(e,t){return bs(e,null,{flush:"post"})}function Yl(e,t){return bs(e,null,{flush:"sync"})}function vt(e,t,n){return bs(e,t,n)}function bs(e,t,n=be){const{immediate:s,deep:r,flush:o,once:i}=n,l=Ee({},n),u=t&&s||!t&&o!=="post";let c;if(Rn){if(o==="sync"){const g=Jl();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!u){const g=()=>{};return g.stop=_t,g.resume=_t,g.pause=_t,g}}const a=Le;l.call=(g,m,C)=>yt(g,a,m,C);let d=!1;o==="post"?l.scheduler=g=>{He(g,a&&a.suspense)}:o!=="sync"&&(d=!0,l.scheduler=(g,m)=>{m?g():wo(g)}),l.augmentJob=g=>{t&&(g.flags|=4),d&&(g.flags|=2,a&&(g.id=a.uid,g.i=a))};const f=pc(e,t,l);return Rn&&(c?c.push(f):u&&f()),f}function Td(e,t,n){const s=this.proxy,r=Oe(e)?e.includes(".")?Zl(s,e):()=>s[e]:e.bind(s,s);let o;ae(t)?o=t:(o=t.handler,n=t);const i=hn(this),l=bs(r,o.bind(s),n);return i(),l}function Zl(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{let a,d=be,f;return Yl(()=>{const g=e[r];ot(a,g)&&(a=g,c())}),{get(){return u(),n.get?n.get(a):a},set(g){const m=n.set?n.set(g):g;if(!ot(m,a)&&!(d!==be&&ot(g,d)))return;const C=s.vnode.props;C&&(t in C||r in C||o in C)&&(`onUpdate:${t}`in C||`onUpdate:${r}`in C||`onUpdate:${o}`in C)||(a=g,c()),s.emit(`update:${t}`,m),ot(g,m)&&ot(g,d)&&!ot(m,f)&&c(),d=g,f=m}}});return l[Symbol.iterator]=()=>{let u=0;return{next(){return u<2?{value:u++?i||be:l,done:!1}:{done:!0}}}},l}const ta=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ge(t)}Modifiers`]||e[`${ct(t)}Modifiers`];function Ad(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||be;let r=n;const o=t.startsWith("update:"),i=o&&ta(s,t.slice(7));i&&(i.trim&&(r=n.map(a=>Oe(a)?a.trim():a)),i.number&&(r=n.map(Ns)));let l,u=s[l=Zn(t)]||s[l=Zn(Ge(t))];!u&&o&&(u=s[l=Zn(ct(t))]),u&&yt(u,e,6,r);const c=s[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,yt(c,e,6,r)}}function na(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!ae(e)){const u=c=>{const a=na(c,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!o&&!l?(Ce(e)&&s.set(e,null),null):(se(o)?o.forEach(u=>i[u]=null):Ee(i,o),Ce(e)&&s.set(e,i),i)}function yr(e,t){return!e||!hs(t)?!1:(t=t.slice(2).replace(/Once$/,""),xe(e,t[0].toLowerCase()+t.slice(1))||xe(e,ct(t))||xe(e,t))}function Ms(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:l,emit:u,render:c,renderCache:a,props:d,data:f,setupState:g,ctx:m,inheritAttrs:C}=e,R=ds(e);let E,x;try{if(n.shapeFlag&4){const k=r||s,w=k;E=at(c.call(w,k,a,d,g,f,m)),x=l}else{const k=t;E=at(k.length>1?k(d,{attrs:l,slots:i,emit:u}):k(d,null)),x=t.props?l:Pd(l)}}catch(k){os.length=0,bn(k,e,1),E=W(Me)}let v=E;if(x&&C!==!1){const k=Object.keys(x),{shapeFlag:w}=v;k.length&&w&7&&(o&&k.some(uo)&&(x=zd(x,o)),v=Pt(v,x,!1,!0))}return n.dirs&&(v=Pt(v,null,!1,!0),v.dirs=v.dirs?v.dirs.concat(n.dirs):n.dirs),n.transition&&jt(v,n.transition),E=v,ds(R),E}function Od(e,t=!0){let n;for(let s=0;s{let t;for(const n in e)(n==="class"||n==="style"||hs(n))&&((t||(t={}))[n]=e[n]);return t},zd=(e,t)=>{const n={};for(const s in e)(!uo(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function $d(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:u}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return s?ii(s,i,c):!!i;if(u&8){const a=t.dynamicProps;for(let d=0;de.__isSuspense;let Zr=0;const Rd={name:"Suspense",__isSuspense:!0,process(e,t,n,s,r,o,i,l,u,c){if(e==null)Dd(t,n,s,r,o,i,l,u,c);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Md(e,t,n,s,r,i,l,u,c)}},hydrate:jd,normalize:Id},Vd=Rd;function ps(e,t){const n=e.props&&e.props[t];ae(n)&&n()}function Dd(e,t,n,s,r,o,i,l,u){const{p:c,o:{createElement:a}}=u,d=a("div"),f=e.suspense=sa(e,r,s,t,d,n,o,i,l,u);c(null,f.pendingBranch=e.ssContent,d,null,s,f,o,i),f.deps>0?(ps(e,"onPending"),ps(e,"onFallback"),c(null,e.ssFallback,t,n,s,null,o,i),Pn(f,e.ssFallback)):f.resolve(!1,!0)}function Md(e,t,n,s,r,o,i,l,{p:u,um:c,o:{createElement:a}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const f=t.ssContent,g=t.ssFallback,{activeBranch:m,pendingBranch:C,isInFallback:R,isHydrating:E}=d;if(C)d.pendingBranch=f,wt(f,C)?(u(C,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0?d.resolve():R&&(E||(u(m,g,n,s,r,null,o,i,l),Pn(d,g)))):(d.pendingId=Zr++,E?(d.isHydrating=!1,d.activeBranch=C):c(C,r,d),d.deps=0,d.effects.length=0,d.hiddenContainer=a("div"),R?(u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0?d.resolve():(u(m,g,n,s,r,null,o,i,l),Pn(d,g))):m&&wt(f,m)?(u(m,f,n,s,r,d,o,i,l),d.resolve(!0)):(u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0&&d.resolve()));else if(m&&wt(f,m))u(m,f,n,s,r,d,o,i,l),Pn(d,f);else if(ps(t,"onPending"),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=Zr++,u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0)d.resolve();else{const{timeout:x,pendingId:v}=d;x>0?setTimeout(()=>{d.pendingId===v&&d.fallback(g)},x):x===0&&d.fallback(g)}}function sa(e,t,n,s,r,o,i,l,u,c,a=!1){const{p:d,m:f,um:g,n:m,o:{parentNode:C,remove:R}}=c;let E;const x=Nd(e);x&&t&&t.pendingBranch&&(E=t.pendingId,t.deps++);const v=e.props?Ls(e.props.timeout):void 0,k=o,w={vnode:e,parent:t,parentComponent:n,namespace:i,container:s,hiddenContainer:r,deps:0,pendingId:Zr++,timeout:typeof v=="number"?v:-1,activeBranch:null,pendingBranch:null,isInFallback:!a,isHydrating:a,isUnmounted:!1,effects:[],resolve(P=!1,z=!1){const{vnode:D,activeBranch:$,pendingBranch:O,pendingId:F,effects:A,parentComponent:N,container:Q}=w;let ee=!1;w.isHydrating?w.isHydrating=!1:P||(ee=$&&O.transition&&O.transition.mode==="out-in",ee&&($.transition.afterLeave=()=>{F===w.pendingId&&(f(O,Q,o===k?m($):o,0),Hs(A))}),$&&(C($.el)===Q&&(o=m($)),g($,N,w,!0)),ee||f(O,Q,o,0)),Pn(w,O),w.pendingBranch=null,w.isInFallback=!1;let j=w.parent,ne=!1;for(;j;){if(j.pendingBranch){j.effects.push(...A),ne=!0;break}j=j.parent}!ne&&!ee&&Hs(A),w.effects=[],x&&t&&t.pendingBranch&&E===t.pendingId&&(t.deps--,t.deps===0&&!z&&t.resolve()),ps(D,"onResolve")},fallback(P){if(!w.pendingBranch)return;const{vnode:z,activeBranch:D,parentComponent:$,container:O,namespace:F}=w;ps(z,"onFallback");const A=m(D),N=()=>{w.isInFallback&&(d(null,P,O,A,$,null,F,l,u),Pn(w,P))},Q=P.transition&&P.transition.mode==="out-in";Q&&(D.transition.afterLeave=N),w.isInFallback=!0,g(D,$,null,!0),Q||N()},move(P,z,D){w.activeBranch&&f(w.activeBranch,P,z,D),w.container=P},next(){return w.activeBranch&&m(w.activeBranch)},registerDep(P,z,D){const $=!!w.pendingBranch;$&&w.deps++;const O=P.vnode.el;P.asyncDep.catch(F=>{bn(F,P,0)}).then(F=>{if(P.isUnmounted||w.isUnmounted||w.pendingId!==P.suspenseId)return;P.asyncResolved=!0;const{vnode:A}=P;so(P,F,!1),O&&(A.el=O);const N=!O&&P.subTree.el;z(P,A,C(O||P.subTree.el),O?null:m(P.subTree),w,i,D),N&&R(N),Vo(P,A.el),$&&--w.deps===0&&w.resolve()})},unmount(P,z){w.isUnmounted=!0,w.activeBranch&&g(w.activeBranch,n,P,z),w.pendingBranch&&g(w.pendingBranch,n,P,z)}};return w}function jd(e,t,n,s,r,o,i,l,u){const c=t.suspense=sa(t,s,n,e.parentNode,document.createElement("div"),null,r,o,i,l,!0),a=u(e,c.pendingBranch=t.ssContent,n,c,o,i);return c.deps===0&&c.resolve(!1,!0),a}function Id(e){const{shapeFlag:t,children:n}=e,s=t&32;e.ssContent=li(s?n.default:n),e.ssFallback=s?li(n.fallback):W(Me)}function li(e){let t;if(ae(e)){const n=pn&&e._c;n&&(e._d=!1,I()),e=e(),n&&(e._d=!0,t=Ye,oa())}return se(e)&&(e=Od(e)),e=at(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function ra(e,t){t&&t.pendingBranch?se(e)?t.effects.push(...e):t.effects.push(e):Hs(e)}function Pn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:s}=e;let r=t.el;for(;!r&&t.component;)t=t.component.subTree,r=t.el;n.el=r,s&&s.subTree===n&&(s.vnode.el=r,Vo(s,r))}function Nd(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const me=Symbol.for("v-fgt"),Xt=Symbol.for("v-txt"),Me=Symbol.for("v-cmt"),fn=Symbol.for("v-stc"),os=[];let Ye=null;function I(e=!1){os.push(Ye=e?null:[])}function oa(){os.pop(),Ye=os[os.length-1]||null}let pn=1;function eo(e){pn+=e,e<0&&Ye&&(Ye.hasOnce=!0)}function ia(e){return e.dynamicChildren=pn>0?Ye||Cn:null,oa(),pn>0&&Ye&&Ye.push(e),e}function q(e,t,n,s,r,o){return ia(S(e,t,n,s,r,o,!0))}function qe(e,t,n,s,r){return ia(W(e,t,n,s,r,!0))}function It(e){return e?e.__v_isVNode===!0:!1}function wt(e,t){return e.type===t.type&&e.key===t.key}function Ld(e){}const la=({key:e})=>e??null,js=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Oe(e)||ze(e)||ae(e)?{i:Fe,r:e,k:t,f:!!n}:e:null);function S(e,t=null,n=null,s=0,r=null,o=e===me?0:1,i=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&la(t),ref:t&&js(t),scopeId:fr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Fe};return l?(Do(u,n),o&128&&e.normalize(u)):n&&(u.shapeFlag|=Oe(n)?8:16),pn>0&&!i&&Ye&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&Ye.push(u),u}const W=Fd;function Fd(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===zl)&&(e=Me),It(e)){const l=Pt(e,t,!0);return n&&Do(l,n),pn>0&&!o&&Ye&&(l.shapeFlag&6?Ye[Ye.indexOf(e)]=l:Ye.push(l)),l.patchFlag=-2,l}if(Qd(e)&&(e=e.__vccOpts),t){t=aa(t);let{class:l,style:u}=t;l&&!Oe(l)&&(t.class=$e(l)),Ce(u)&&(jn(u)&&!se(u)&&(u=Ee({},u)),t.style=Ve(u))}const i=Oe(e)?1:Qs(e)?128:vl(e)?64:Ce(e)?4:ae(e)?2:0;return S(e,t,n,s,r,i,o,!0)}function aa(e){return e?jn(e)||jl(e)?Ee({},e):e:null}function Pt(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:l,transition:u}=e,c=t?Mo(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&la(c),ref:t&&t.ref?n&&o?se(o)?o.concat(js(t)):[o,js(t)]:js(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==me?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pt(e.ssContent),ssFallback:e.ssFallback&&Pt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&s&&jt(a,u.clone(a)),a}function G(e=" ",t=0){return W(Xt,null,e,t)}function Bd(e,t){const n=W(fn,null,e);return n.staticCount=t,n}function Re(e="",t=!1){return t?(I(),qe(Me,null,e)):W(Me,null,e)}function at(e){return e==null||typeof e=="boolean"?W(Me):se(e)?W(me,null,e.slice()):It(e)?Gt(e):W(Xt,null,String(e))}function Gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pt(e)}function Do(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(se(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Do(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!jl(t)?t._ctx=Fe:r===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ae(t)?(t={default:t,_ctx:Fe},n=32):(t=String(t),s&64?(n=16,t=[G(t)]):n=8);e.children=t,e.shapeFlag|=n}function Mo(...e){const t={};for(let n=0;nLe||Fe;let Js,to;{const e=ir(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};Js=t("__VUE_INSTANCE_SETTERS__",n=>Le=n),to=t("__VUE_SSR_SETTERS__",n=>Rn=n)}const hn=e=>{const t=Le;return Js(e),e.scope.on(),()=>{e.scope.off(),Js(t)}},no=()=>{Le&&Le.scope.off(),Js(null)};function ca(e){return e.vnode.shapeFlag&4}let Rn=!1;function da(e,t=!1,n=!1){t&&to(t);const{props:s,children:r}=e.vnode,o=ca(e);kd(e,s,o,t),Sd(e,r,n);const i=o?Wd(e,t):void 0;return t&&to(!1),i}function Wd(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qr);const{setup:s}=n;if(s){nn();const r=e.setupContext=s.length>1?pa(e):null,o=hn(e),i=In(s,e,0,[e.props,r]),l=fo(i);if(sn(),o(),(l||e.sp)&&!Jt(e)&&Co(e),l){if(i.then(no,no),t)return i.then(u=>{so(e,u,t)}).catch(u=>{bn(u,e,0)});e.asyncDep=i}else so(e,i,t)}else fa(e,t)}function so(e,t,n){ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ce(t)&&(e.setupState=ko(t)),fa(e,n)}let Xs,ro;function Kd(e){Xs=e,ro=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Yc))}}const qd=()=>!Xs;function fa(e,t,n){const s=e.type;if(!e.render){if(!t&&Xs&&!s.render){const r=s.template||zo(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:u}=s,c=Ee(Ee({isCustomElement:o,delimiters:l},i),u);s.render=Xs(r,c)}}e.render=s.render||_t,ro&&ro(e)}{const r=hn(e);nn();try{fd(e)}finally{sn(),r()}}}const Gd={get(e,t){return Je(e,"get",""),e[t]}};function pa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Gd),slots:e.slots,emit:e.emit,expose:t}}function ys(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ko(il(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ss)return ss[n](e)},has(t,n){return n in t||n in ss}})):e.proxy}function oo(e,t=!0){return ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Qd(e){return ae(e)&&"__vccOpts"in e}const he=(e,t)=>uc(e,t,Rn);function ha(e,t,n){const s=arguments.length;return s===2?Ce(t)&&!se(t)?It(t)?W(e,null,[t]):W(e,t):W(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&It(n)&&(n=[n]),W(e,t,n))}function Jd(){}function Xd(e,t,n,s){const r=n[s];if(r&&ma(r,e))return r;const o=t();return o.memo=e.slice(),o.cacheIndex=s,n[s]=o}function ma(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let s=0;s0&&Ye&&Ye.push(e),!0}const ga="3.5.12",Yd=_t,Zd=bc,ef=xn,tf=ml,nf={createComponentInstance:ua,setupComponent:da,renderComponentRoot:Ms,setCurrentRenderingInstance:ds,isVNode:It,normalizeVNode:at,getComponentPublicInstance:ys,ensureValidVNode:Po,pushWarningContext:hc,popWarningContext:mc},sf=nf,rf=null,of=null,lf=null;/** +**/const dl=[];function hc(e){dl.push(e)}function mc(){dl.pop()}function gc(e,t){}const vc={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},bc={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function In(e,t,n,s){try{return s?e(...s):e()}catch(r){bn(r,t,n)}}function yt(e,t,n,s){if(ae(e)){const r=In(e,t,n,s);return r&&fo(r)&&r.catch(o=>{bn(o,t,n)}),r}if(se(e)){const r=[];for(let o=0;o>>1,r=it[s],o=cs(r);o=cs(n)?it.push(e):it.splice(kc(t),0,e),e.flags|=1,pl()}}function pl(){Us||(Us=fl.then(hl))}function Hs(e){se(e)?On.push(...e):Kt&&e.id===-1?Kt.splice(_n+1,0,e):e.flags&1||(On.push(e),e.flags|=1),pl()}function Qo(e,t,n=Tt+1){for(;ncs(n)-cs(s));if(On.length=0,Kt){Kt.push(...t);return}for(Kt=t,_n=0;_ne.id==null?e.flags&2?-1:1/0:e.id;function hl(e){try{for(Tt=0;Ttxn.emit(r,...o)),Cs=[]):typeof window<"u"&&window.HTMLElement&&!((s=(n=window.navigator)==null?void 0:n.userAgent)!=null&&s.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(o=>{ml(o,t)}),setTimeout(()=>{xn||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Cs=[])},3e3)):Cs=[]}let Fe=null,fr=null;function ds(e){const t=Fe;return Fe=e,fr=e&&e.type.__scopeId||null,t}function wc(e){fr=e}function _c(){fr=null}const xc=e=>K;function K(e,t=Fe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&eo(-1);const o=ds(t);let i;try{i=e(...r)}finally{ds(o),s._d&&eo(1)}return i};return s._n=!0,s._c=!0,s._d=!0,s}function Ln(e,t){if(Fe===null)return e;const n=ys(Fe),s=e.dirs||(e.dirs=[]);for(let r=0;re.__isTeleport,ns=e=>e&&(e.disabled||e.disabled===""),Sc=e=>e&&(e.defer||e.defer===""),Jo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Xo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,qr=(e,t)=>{const n=e&&e.to;return Oe(n)?t?t(n):null:n},Cc={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,o,i,l,u,c){const{mc:a,pc:d,pbc:f,o:{insert:v,querySelector:m,createText:C,createComment:V}}=c,E=ns(t.props);let{shapeFlag:x,children:g,dynamicChildren:k}=t;if(e==null){const w=t.el=C(""),P=t.anchor=C("");v(w,n,s),v(P,n,s);const $=(z,O)=>{x&16&&(r&&r.isCE&&(r.ce._teleportTarget=z),a(g,z,O,r,o,i,l,u))},D=()=>{const z=t.target=qr(t.props,m),O=bl(z,t,C,v);z&&(i!=="svg"&&Jo(z)?i="svg":i!=="mathml"&&Xo(z)&&(i="mathml"),E||($(z,O),Ds(t,!1)))};E&&($(n,P),Ds(t,!0)),Sc(t.props)?He(D,o):D()}else{t.el=e.el,t.targetStart=e.targetStart;const w=t.anchor=e.anchor,P=t.target=e.target,$=t.targetAnchor=e.targetAnchor,D=ns(e.props),z=D?n:P,O=D?w:$;if(i==="svg"||Jo(P)?i="svg":(i==="mathml"||Xo(P))&&(i="mathml"),k?(f(e.dynamicChildren,k,z,r,o,i,l),Vo(e,t,!0)):u||d(e,t,z,O,r,o,i,l,!1),E)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Es(t,n,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const F=t.target=qr(t.props,m);F&&Es(t,F,null,c,0)}else D&&Es(t,P,$,c,1);Ds(t,E)}},remove(e,t,n,{um:s,o:{remove:r}},o){const{shapeFlag:i,children:l,anchor:u,targetStart:c,targetAnchor:a,target:d,props:f}=e;if(d&&(r(c),r(a)),o&&r(u),i&16){const v=o||!ns(f);for(let m=0;m{e.isMounted=!0}),gr(()=>{e.isUnmounting=!0}),e}const gt=[Function,Array],xo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:gt,onEnter:gt,onAfterEnter:gt,onEnterCancelled:gt,onBeforeLeave:gt,onLeave:gt,onAfterLeave:gt,onLeaveCancelled:gt,onBeforeAppear:gt,onAppear:gt,onAfterAppear:gt,onAppearCancelled:gt},yl=e=>{const t=e.subTree;return t.component?yl(t.component):t},Ac={name:"BaseTransition",props:xo,setup(e,{slots:t}){const n=dt(),s=_o();return()=>{const r=t.default&&pr(t.default(),!0);if(!r||!r.length)return;const o=kl(r),i=ve(e),{mode:l}=i;if(s.isLeaving)return Vr(o);const u=Yo(o);if(!u)return Vr(o);let c=zn(u,i,s,n,f=>c=f);u.type!==Me&&jt(u,c);const a=n.subTree,d=a&&Yo(a);if(d&&d.type!==Me&&!wt(u,d)&&yl(n).type!==Me){const f=zn(d,i,s,n);if(jt(d,f),l==="out-in"&&u.type!==Me)return s.isLeaving=!0,f.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave},Vr(o);l==="in-out"&&u.type!==Me&&(f.delayLeave=(v,m,C)=>{const V=_l(s,d);V[String(d.key)]=d,v[qt]=()=>{m(),v[qt]=void 0,delete c.delayedLeave},c.delayedLeave=C})}return o}}};function kl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Me){t=n;break}}return t}const wl=Ac;function _l(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function zn(e,t,n,s,r){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:u,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:f,onLeave:v,onAfterLeave:m,onLeaveCancelled:C,onBeforeAppear:V,onAppear:E,onAfterAppear:x,onAppearCancelled:g}=t,k=String(e.key),w=_l(n,e),P=(z,O)=>{z&&yt(z,s,9,O)},$=(z,O)=>{const F=O[1];P(z,O),se(z)?z.every(A=>A.length<=1)&&F():z.length<=1&&F()},D={mode:i,persisted:l,beforeEnter(z){let O=u;if(!n.isMounted)if(o)O=V||u;else return;z[qt]&&z[qt](!0);const F=w[k];F&&wt(e,F)&&F.el[qt]&&F.el[qt](),P(O,[z])},enter(z){let O=c,F=a,A=d;if(!n.isMounted)if(o)O=E||c,F=x||a,A=g||d;else return;let N=!1;const Q=z[Ts]=ee=>{N||(N=!0,ee?P(A,[z]):P(F,[z]),D.delayedLeave&&D.delayedLeave(),z[Ts]=void 0)};O?$(O,[z,Q]):Q()},leave(z,O){const F=String(e.key);if(z[Ts]&&z[Ts](!0),n.isUnmounting)return O();P(f,[z]);let A=!1;const N=z[qt]=Q=>{A||(A=!0,O(),Q?P(C,[z]):P(m,[z]),z[qt]=void 0,w[F]===e&&delete w[F])};w[F]=e,v?$(v,[z,N]):N()},clone(z){const O=zn(z,t,n,s,r);return r&&r(O),O}};return D}function Vr(e){if(vs(e))return e=Pt(e),e.children=null,e}function Yo(e){if(!vs(e))return vl(e.type)&&e.children?kl(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ae(n.default))return n.default()}}function jt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,jt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pr(e,t=!1,n){let s=[],r=0;for(let o=0;o1)for(let o=0;on.value,set:o=>n.value=o})}return n}function Ks(e,t,n,s,r=!1){if(se(e)){e.forEach((m,C)=>Ks(m,t&&(se(t)?t[C]:t),n,s,r));return}if(Jt(s)&&!r)return;const o=s.shapeFlag&4?ys(s.component):s.el,i=r?null:o,{i:l,r:u}=e,c=t&&t.r,a=l.refs===be?l.refs={}:l.refs,d=l.setupState,f=ve(d),v=d===be?()=>!1:m=>xe(f,m);if(c!=null&&c!==u&&(Oe(c)?(a[c]=null,v(c)&&(d[c]=null)):$e(c)&&(c.value=null)),ae(u))In(u,l,12,[i,a]);else{const m=Oe(u),C=$e(u);if(m||C){const V=()=>{if(e.f){const E=m?v(u)?d[u]:a[u]:u.value;r?se(E)&&co(E,o):se(E)?E.includes(o)||E.push(o):m?(a[u]=[o],v(u)&&(d[u]=a[u])):(u.value=[o],e.k&&(a[e.k]=u.value))}else m?(a[u]=i,v(u)&&(d[u]=i)):C&&(u.value=i,e.k&&(a[e.k]=i))};i?(V.id=-1,He(V,n)):V()}}}let Zo=!1;const wn=()=>{Zo||(console.error("Hydration completed but contains mismatches."),Zo=!0)},$c=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",zc=e=>e.namespaceURI.includes("MathML"),As=e=>{if(e.nodeType===1){if($c(e))return"svg";if(zc(e))return"mathml"}},Sn=e=>e.nodeType===8;function Vc(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:o,parentNode:i,remove:l,insert:u,createComment:c}}=e,a=(g,k)=>{if(!k.hasChildNodes()){n(null,g,k),Ws(),k._vnode=g;return}d(k.firstChild,g,null,null,null),Ws(),k._vnode=g},d=(g,k,w,P,$,D=!1)=>{D=D||!!k.dynamicChildren;const z=Sn(g)&&g.data==="[",O=()=>C(g,k,w,P,$,z),{type:F,ref:A,shapeFlag:N,patchFlag:Q}=k;let ee=g.nodeType;k.el=g,Q===-2&&(D=!1,k.dynamicChildren=null);let j=null;switch(F){case Xt:ee!==3?k.children===""?(u(k.el=r(""),i(g),g),j=g):j=O():(g.data!==k.children&&(wn(),g.data=k.children),j=o(g));break;case Me:x(g)?(j=o(g),E(k.el=g.content.firstChild,g,w)):ee!==8||z?j=O():j=o(g);break;case fn:if(z&&(g=o(g),ee=g.nodeType),ee===1||ee===3){j=g;const ne=!k.children.length;for(let X=0;X{D=D||!!k.dynamicChildren;const{type:z,props:O,patchFlag:F,shapeFlag:A,dirs:N,transition:Q}=k,ee=z==="input"||z==="option";if(ee||F!==-1){N&&At(k,null,w,"created");let j=!1;if(x(g)){j=ql(null,Q)&&w&&w.vnode.props&&w.vnode.props.appear;const X=g.content.firstChild;j&&Q.beforeEnter(X),E(X,g,w),k.el=g=X}if(A&16&&!(O&&(O.innerHTML||O.textContent))){let X=v(g.firstChild,k,g,w,P,$,D);for(;X;){Os(g,1)||wn();const fe=X;X=X.nextSibling,l(fe)}}else if(A&8){let X=k.children;X[0]===` +`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(X=X.slice(1)),g.textContent!==X&&(Os(g,0)||wn(),g.textContent=k.children)}if(O){if(ee||!D||F&48){const X=g.tagName.includes("-");for(const fe in O)(ee&&(fe.endsWith("value")||fe==="indeterminate")||hs(fe)&&!Tn(fe)||fe[0]==="."||X)&&s(g,fe,null,O[fe],void 0,w)}else if(O.onClick)s(g,"onClick",null,O.onClick,void 0,w);else if(F&4&&Qt(O.style))for(const X in O.style)O.style[X]}let ne;(ne=O&&O.onVnodeBeforeMount)&<(ne,w,k),N&&At(k,null,w,"beforeMount"),((ne=O&&O.onVnodeMounted)||N||j)&&ra(()=>{ne&<(ne,w,k),j&&Q.enter(g),N&&At(k,null,w,"mounted")},P)}return g.nextSibling},v=(g,k,w,P,$,D,z)=>{z=z||!!k.dynamicChildren;const O=k.children,F=O.length;for(let A=0;A{const{slotScopeIds:z}=k;z&&($=$?$.concat(z):z);const O=i(g),F=v(o(g),k,O,w,P,$,D);return F&&Sn(F)&&F.data==="]"?o(k.anchor=F):(wn(),u(k.anchor=c("]"),O,F),F)},C=(g,k,w,P,$,D)=>{if(Os(g.parentElement,1)||wn(),k.el=null,D){const F=V(g);for(;;){const A=o(g);if(A&&A!==F)l(A);else break}}const z=o(g),O=i(g);return l(g),n(null,k,O,z,w,P,As(O),$),z},V=(g,k="[",w="]")=>{let P=0;for(;g;)if(g=o(g),g&&Sn(g)&&(g.data===k&&P++,g.data===w)){if(P===0)return o(g);P--}return g},E=(g,k,w)=>{const P=k.parentNode;P&&P.replaceChild(g,k);let $=w;for(;$;)$.vnode.el===k&&($.vnode.el=$.subTree.el=g),$=$.parent},x=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[a,d]}const ei="data-allow-mismatch",Rc={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Os(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ei);)e=e.parentElement;const n=e&&e.getAttribute(ei);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return t===0&&s.includes("children")?!0:n.split(",").includes(Rc[t])}}const Dc=ir().requestIdleCallback||(e=>setTimeout(e,1)),Mc=ir().cancelIdleCallback||(e=>clearTimeout(e)),jc=(e=1e4)=>t=>{const n=Dc(t,{timeout:e});return()=>Mc(n)};function Ic(e){const{top:t,left:n,bottom:s,right:r}=e.getBoundingClientRect(),{innerHeight:o,innerWidth:i}=window;return(t>0&&t0&&s0&&n0&&r(t,n)=>{const s=new IntersectionObserver(r=>{for(const o of r)if(o.isIntersecting){s.disconnect(),t();break}},e);return n(r=>{if(r instanceof Element){if(Ic(r))return t(),s.disconnect(),!1;s.observe(r)}}),()=>s.disconnect()},Lc=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},Fc=(e=[])=>(t,n)=>{Oe(e)&&(e=[e]);let s=!1;const r=i=>{s||(s=!0,o(),t(),i.target.dispatchEvent(new i.constructor(i.type,i)))},o=()=>{n(i=>{for(const l of e)i.removeEventListener(l,r)})};return n(i=>{for(const l of e)i.addEventListener(l,r,{once:!0})}),o};function Bc(e,t){if(Sn(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(Sn(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const Jt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Uc(e){ae(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:o,timeout:i,suspensible:l=!0,onError:u}=e;let c=null,a,d=0;const f=()=>(d++,c=null,v()),v=()=>{let m;return c||(m=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),u)return new Promise((V,E)=>{u(C,()=>V(f()),()=>E(C),d+1)});throw C}).then(C=>m!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return So({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(m,C,V){const E=o?()=>{const x=o(V,g=>Bc(m,g));x&&(C.bum||(C.bum=[])).push(x)}:V;a?E():v().then(()=>!C.isUnmounted&&E())},get __asyncResolved(){return a},setup(){const m=Le;if(Co(m),a)return()=>Rr(a,m);const C=g=>{c=null,bn(g,m,13,!s)};if(l&&m.suspense||Vn)return v().then(g=>()=>Rr(g,m)).catch(g=>(C(g),()=>s?W(s,{error:g}):null));const V=ie(!1),E=ie(),x=ie(!!r);return r&&setTimeout(()=>{x.value=!1},r),i!=null&&setTimeout(()=>{if(!V.value&&!E.value){const g=new Error(`Async component timed out after ${i}ms.`);C(g),E.value=g}},i),v().then(()=>{V.value=!0,m.parent&&vs(m.parent.vnode)&&m.parent.update()}).catch(g=>{C(g),E.value=g}),()=>{if(V.value&&a)return Rr(a,m);if(E.value&&s)return W(s,{error:E.value});if(n&&!x.value)return W(n)}}})}function Rr(e,t){const{ref:n,props:s,children:r,ce:o}=t.vnode,i=W(e,s,r);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const vs=e=>e.type.__isKeepAlive,Hc={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=dt(),s=n.ctx;if(!s.renderer)return()=>{const x=t.default&&t.default();return x&&x.length===1?x[0]:x};const r=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:u,m:c,um:a,o:{createElement:d}}}=s,f=d("div");s.activate=(x,g,k,w,P)=>{const $=x.component;c(x,g,k,0,l),u($.vnode,x,g,k,$,l,w,x.slotScopeIds,P),He(()=>{$.isDeactivated=!1,$.a&&An($.a);const D=x.props&&x.props.onVnodeMounted;D&<(D,$.parent,x)},l)},s.deactivate=x=>{const g=x.component;Gs(g.m),Gs(g.a),c(x,f,null,1,l),He(()=>{g.da&&An(g.da);const k=x.props&&x.props.onVnodeUnmounted;k&<(k,g.parent,x),g.isDeactivated=!0},l)};function v(x){Dr(x),a(x,n,l,!0)}function m(x){r.forEach((g,k)=>{const w=oo(g.type);w&&!x(w)&&C(k)})}function C(x){const g=r.get(x);g&&(!i||!wt(g,i))?v(g):i&&Dr(i),r.delete(x),o.delete(x)}vt(()=>[e.include,e.exclude],([x,g])=>{x&&m(k=>Xn(x,k)),g&&m(k=>!Xn(g,k))},{flush:"post",deep:!0});let V=null;const E=()=>{V!=null&&(Qs(n.subTree.type)?He(()=>{r.set(V,Ps(n.subTree))},n.subTree.suspense):r.set(V,Ps(n.subTree)))};return Ct(E),mr(E),gr(()=>{r.forEach(x=>{const{subTree:g,suspense:k}=n,w=Ps(g);if(x.type===w.type&&x.key===w.key){Dr(w);const P=w.component.da;P&&He(P,k);return}v(x)})}),()=>{if(V=null,!t.default)return i=null;const x=t.default(),g=x[0];if(x.length>1)return i=null,x;if(!It(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return i=null,g;let k=Ps(g);if(k.type===Me)return i=null,k;const w=k.type,P=oo(Jt(k)?k.type.__asyncResolved||{}:w),{include:$,exclude:D,max:z}=e;if($&&(!P||!Xn($,P))||D&&P&&Xn(D,P))return k.shapeFlag&=-257,i=k,g;const O=k.key==null?w:k.key,F=r.get(O);return k.el&&(k=Pt(k),g.shapeFlag&128&&(g.ssContent=k)),V=O,F?(k.el=F.el,k.component=F.component,k.transition&&jt(k,k.transition),k.shapeFlag|=512,o.delete(O),o.add(O)):(o.add(O),z&&o.size>parseInt(z,10)&&C(o.values().next().value)),k.shapeFlag|=256,i=k,Qs(g.type)?g:k}}},Wc=Hc;function Xn(e,t){return se(e)?e.some(n=>Xn(n,t)):Oe(e)?e.split(",").includes(t):gu(e)?(e.lastIndex=0,e.test(t)):!1}function xl(e,t){Cl(e,"a",t)}function Sl(e,t){Cl(e,"da",t)}function Cl(e,t,n=Le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(hr(t,s,n),n){let r=n.parent;for(;r&&r.parent;)vs(r.parent.vnode)&&Kc(s,t,n,r),r=r.parent}}function Kc(e,t,n,s){const r=hr(t,e,s,!0);vr(()=>{co(s[t],r)},n)}function Dr(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Ps(e){return e.shapeFlag&128?e.ssContent:e}function hr(e,t,n=Le,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{nn();const l=hn(n),u=yt(t,n,e,i);return l(),sn(),u});return s?r.unshift(o):r.push(o),o}}const Lt=e=>(t,n=Le)=>{(!Vn||e==="sp")&&hr(e,(...s)=>t(...s),n)},Eo=Lt("bm"),Ct=Lt("m"),El=Lt("bu"),mr=Lt("u"),gr=Lt("bum"),vr=Lt("um"),Tl=Lt("sp"),Al=Lt("rtg"),Ol=Lt("rtc");function Pl(e,t=Le){hr("ec",e,t)}const To="components",qc="directives";function Gc(e,t){return Oo(To,e,!0,t)||e}const $l=Symbol.for("v-ndc");function Ao(e){return Oe(e)?Oo(To,e,!1)||e:e||$l}function Qc(e){return Oo(qc,e)}function Oo(e,t,n=!0,s=!1){const r=Fe||Le;if(r){const o=r.type;if(e===To){const l=oo(o,!1);if(l&&(l===t||l===Ge(t)||l===ms(Ge(t))))return o}const i=ti(r[e]||o[e],t)||ti(r.appContext[e],t);return!i&&s?o:i}}function ti(e,t){return e&&(e[t]||e[Ge(t)]||e[ms(Ge(t))])}function We(e,t,n,s){let r;const o=n&&n[s],i=se(e);if(i||Oe(e)){const l=i&&Qt(e);let u=!1;l&&(u=!pt(e),e=ur(e)),r=new Array(e.length);for(let c=0,a=e.length;ct(l,u,void 0,o&&o[u]));else{const l=Object.keys(e);r=new Array(l.length);for(let u=0,c=l.length;u{const o=s.fn(...r);return o&&(o.key=s.key),o}:s.fn)}return e}function we(e,t,n={},s,r){if(Fe.ce||Fe.parent&&Jt(Fe.parent)&&Fe.parent.ce)return t!=="default"&&(n.name=t),I(),qe(me,null,[W("slot",n,s&&s())],64);let o=e[t];o&&o._c&&(o._d=!1),I();const i=o&&Po(o(n)),l=n.key||i&&i.key,u=qe(me,{key:(l&&!St(l)?l:`_${t}`)+(!i&&s?"_fb":"")},i||(s?s():[]),i&&e._===1?64:-2);return!r&&u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),o&&o._c&&(o._d=!0),u}function Po(e){return e.some(t=>It(t)?!(t.type===Me||t.type===me&&!Po(t.children)):!0)?e:null}function Xc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Zn(s)]=e[s];return n}const Gr=e=>e?ca(e)?ys(e):Gr(e.parent):null,ss=Ee(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Gr(e.parent),$root:e=>Gr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>$o(e),$forceUpdate:e=>e.f||(e.f=()=>{wo(e.update)}),$nextTick:e=>e.n||(e.n=Nn.bind(e.proxy)),$watch:e=>Td.bind(e)}),Mr=(e,t)=>e!==be&&!e.__isScriptSetup&&xe(e,t),Qr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:o,accessCache:i,type:l,appContext:u}=e;let c;if(t[0]!=="$"){const v=i[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(Mr(s,t))return i[t]=1,s[t];if(r!==be&&xe(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&xe(c,t))return i[t]=3,o[t];if(n!==be&&xe(n,t))return i[t]=4,n[t];Jr&&(i[t]=0)}}const a=ss[t];let d,f;if(a)return t==="$attrs"&&Je(e.attrs,"get",""),a(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==be&&xe(n,t))return i[t]=4,n[t];if(f=u.config.globalProperties,xe(f,t))return f[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;return Mr(r,t)?(r[t]=n,!0):s!==be&&xe(s,t)?(s[t]=n,!0):xe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},i){let l;return!!n[i]||e!==be&&xe(e,i)||Mr(t,i)||(l=o[0])&&xe(l,i)||xe(s,i)||xe(ss,i)||xe(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:xe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Yc=Ee({},Qr,{get(e,t){if(t!==Symbol.unscopables)return Qr.get(e,t,e)},has(e,t){return t[0]!=="_"&&!wu(t)}});function Zc(){return null}function ed(){return null}function td(e){}function nd(e){}function sd(){return null}function rd(){}function od(e,t){return null}function id(){return zl().slots}function ld(){return zl().attrs}function zl(){const e=dt();return e.setupContext||(e.setupContext=pa(e))}function fs(e){return se(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function ad(e,t){const n=fs(e);for(const s in t){if(s.startsWith("__skip"))continue;let r=n[s];r?se(r)||ae(r)?r=n[s]={type:r,default:t[s]}:r.default=t[s]:r===null&&(r=n[s]={default:t[s]}),r&&t[`__skip_${s}`]&&(r.skipFactory=!0)}return n}function ud(e,t){return!e||!t?e||t:se(e)&&se(t)?e.concat(t):Ee({},fs(e),fs(t))}function cd(e,t){const n={};for(const s in e)t.includes(s)||Object.defineProperty(n,s,{enumerable:!0,get:()=>e[s]});return n}function dd(e){const t=dt();let n=e();return no(),fo(n)&&(n=n.catch(s=>{throw hn(t),s})),[n,()=>hn(t)]}let Jr=!0;function fd(e){const t=$o(e),n=e.proxy,s=e.ctx;Jr=!1,t.beforeCreate&&ni(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:i,watch:l,provide:u,inject:c,created:a,beforeMount:d,mounted:f,beforeUpdate:v,updated:m,activated:C,deactivated:V,beforeDestroy:E,beforeUnmount:x,destroyed:g,unmounted:k,render:w,renderTracked:P,renderTriggered:$,errorCaptured:D,serverPrefetch:z,expose:O,inheritAttrs:F,components:A,directives:N,filters:Q}=t;if(c&&pd(c,s,null),i)for(const ne in i){const X=i[ne];ae(X)&&(s[ne]=X.bind(n))}if(r){const ne=r.call(n,n);Ce(ne)&&(e.data=Zt(ne))}if(Jr=!0,o)for(const ne in o){const X=o[ne],fe=ae(X)?X.bind(n,n):ae(X.get)?X.get.bind(n,n):_t,Be=!ae(X)&&ae(X.set)?X.set.bind(n):_t,je=he({get:fe,set:Be});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>je.value,set:Ie=>je.value=Ie})}if(l)for(const ne in l)Vl(l[ne],s,n,ne);if(u){const ne=ae(u)?u.call(n):u;Reflect.ownKeys(ne).forEach(X=>{rs(X,ne[X])})}a&&ni(a,e,"c");function j(ne,X){se(X)?X.forEach(fe=>ne(fe.bind(n))):X&&ne(X.bind(n))}if(j(Eo,d),j(Ct,f),j(El,v),j(mr,m),j(xl,C),j(Sl,V),j(Pl,D),j(Ol,P),j(Al,$),j(gr,x),j(vr,k),j(Tl,z),se(O))if(O.length){const ne=e.exposed||(e.exposed={});O.forEach(X=>{Object.defineProperty(ne,X,{get:()=>n[X],set:fe=>n[X]=fe})})}else e.exposed||(e.exposed={});w&&e.render===_t&&(e.render=w),F!=null&&(e.inheritAttrs=F),A&&(e.components=A),N&&(e.directives=N),z&&Co(e)}function pd(e,t,n=_t){se(e)&&(e=Xr(e));for(const s in e){const r=e[s];let o;Ce(r)?"default"in r?o=ht(r.from||s,r.default,!0):o=ht(r.from||s):o=ht(r),$e(o)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[s]=o}}function ni(e,t,n){yt(se(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Vl(e,t,n,s){let r=s.includes(".")?Zl(n,s):()=>n[s];if(Oe(e)){const o=t[e];ae(o)&&vt(r,o)}else if(ae(e))vt(r,e.bind(n));else if(Ce(e))if(se(e))e.forEach(o=>Vl(o,t,n,s));else{const o=ae(e.handler)?e.handler.bind(n):t[e.handler];ae(o)&&vt(r,o,e)}}function $o(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let u;return l?u=l:!r.length&&!n&&!s?u=t:(u={},r.length&&r.forEach(c=>qs(u,c,i,!0)),qs(u,t,i)),Ce(t)&&o.set(t,u),u}function qs(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&qs(e,o,n,!0),r&&r.forEach(i=>qs(e,i,n,!0));for(const i in t)if(!(s&&i==="expose")){const l=hd[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const hd={data:si,props:ri,emits:ri,methods:Yn,computed:Yn,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Yn,directives:Yn,watch:gd,provide:si,inject:md};function si(e,t){return t?e?function(){return Ee(ae(e)?e.call(this,this):e,ae(t)?t.call(this,this):t)}:t:e}function md(e,t){return Yn(Xr(e),Xr(t))}function Xr(e){if(se(e)){const t={};for(let n=0;n1)return n&&ae(t)?t.call(s&&s.proxy):t}}function yd(){return!!(Le||Fe||dn)}const Dl={},Ml=()=>Object.create(Dl),jl=e=>Object.getPrototypeOf(e)===Dl;function kd(e,t,n,s=!1){const r={},o=Ml();e.propsDefaults=Object.create(null),Il(e,t,r,o);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=s?r:ol(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function wd(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:i}}=e,l=ve(r),[u]=e.propsOptions;let c=!1;if((s||i>0)&&!(i&16)){if(i&8){const a=e.vnode.dynamicProps;for(let d=0;d{u=!0;const[f,v]=Nl(d,t,!0);Ee(i,f),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!o&&!u)return Ce(e)&&s.set(e,Cn),Cn;if(se(o))for(let a=0;ae[0]==="_"||e==="$stable",zo=e=>se(e)?e.map(at):[at(e)],xd=(e,t,n)=>{if(t._n)return t;const s=K((...r)=>zo(t(...r)),n);return s._c=!1,s},Fl=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ll(r))continue;const o=e[r];if(ae(o))t[r]=xd(r,o,s);else if(o!=null){const i=zo(o);t[r]=()=>i}}},Bl=(e,t)=>{const n=zo(t);e.slots.default=()=>n},Ul=(e,t,n)=>{for(const s in t)(n||s!=="_")&&(e[s]=t[s])},Sd=(e,t,n)=>{const s=e.slots=Ml();if(e.vnode.shapeFlag&32){const r=t._;r?(Ul(s,t,n),n&&Ni(s,"_",r,!0)):Fl(t,s)}else t&&Bl(e,t)},Cd=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,i=be;if(s.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ul(r,t,n):(o=!t.$stable,Fl(t,r)),i=t}else t&&(Bl(e,t),i={default:1});if(o)for(const l in r)!Ll(l)&&i[l]==null&&delete r[l]},He=ra;function Hl(e){return Kl(e)}function Wl(e){return Kl(e,Vc)}function Kl(e,t){const n=ir();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:i,createText:l,createComment:u,setText:c,setElementText:a,parentNode:d,nextSibling:f,setScopeId:v=_t,insertStaticContent:m}=e,C=(b,_,R,M=null,L=null,B=null,Z=void 0,Y=null,J=!!_.dynamicChildren)=>{if(b===_)return;b&&!wt(b,_)&&(M=Et(b),Ie(b,L,B,!0),b=null),_.patchFlag===-2&&(J=!1,_.dynamicChildren=null);const{type:U,ref:le,shapeFlag:te}=_;switch(U){case Xt:V(b,_,R,M);break;case Me:E(b,_,R,M);break;case fn:b==null&&x(_,R,M,Z);break;case me:A(b,_,R,M,L,B,Z,Y,J);break;default:te&1?w(b,_,R,M,L,B,Z,Y,J):te&6?N(b,_,R,M,L,B,Z,Y,J):(te&64||te&128)&&U.process(b,_,R,M,L,B,Z,Y,J,Ft)}le!=null&&L&&Ks(le,b&&b.ref,B,_||b,!_)},V=(b,_,R,M)=>{if(b==null)s(_.el=l(_.children),R,M);else{const L=_.el=b.el;_.children!==b.children&&c(L,_.children)}},E=(b,_,R,M)=>{b==null?s(_.el=u(_.children||""),R,M):_.el=b.el},x=(b,_,R,M)=>{[b.el,b.anchor]=m(b.children,_,R,M,b.el,b.anchor)},g=({el:b,anchor:_},R,M)=>{let L;for(;b&&b!==_;)L=f(b),s(b,R,M),b=L;s(_,R,M)},k=({el:b,anchor:_})=>{let R;for(;b&&b!==_;)R=f(b),r(b),b=R;r(_)},w=(b,_,R,M,L,B,Z,Y,J)=>{_.type==="svg"?Z="svg":_.type==="math"&&(Z="mathml"),b==null?P(_,R,M,L,B,Z,Y,J):z(b,_,L,B,Z,Y,J)},P=(b,_,R,M,L,B,Z,Y)=>{let J,U;const{props:le,shapeFlag:te,transition:oe,dirs:ce}=b;if(J=b.el=i(b.type,B,le&&le.is,le),te&8?a(J,b.children):te&16&&D(b.children,J,null,M,L,jr(b,B),Z,Y),ce&&At(b,null,M,"created"),$(J,b,b.scopeId,Z,M),le){for(const Se in le)Se!=="value"&&!Tn(Se)&&o(J,Se,null,le[Se],B,M);"value"in le&&o(J,"value",null,le.value,B),(U=le.onVnodeBeforeMount)&<(U,M,b)}ce&&At(b,null,M,"beforeMount");const ge=ql(L,oe);ge&&oe.beforeEnter(J),s(J,_,R),((U=le&&le.onVnodeMounted)||ge||ce)&&He(()=>{U&<(U,M,b),ge&&oe.enter(J),ce&&At(b,null,M,"mounted")},L)},$=(b,_,R,M,L)=>{if(R&&v(b,R),M)for(let B=0;B{for(let U=J;U{const Y=_.el=b.el;let{patchFlag:J,dynamicChildren:U,dirs:le}=_;J|=b.patchFlag&16;const te=b.props||be,oe=_.props||be;let ce;if(R&&ln(R,!1),(ce=oe.onVnodeBeforeUpdate)&<(ce,R,_,b),le&&At(_,b,R,"beforeUpdate"),R&&ln(R,!0),(te.innerHTML&&oe.innerHTML==null||te.textContent&&oe.textContent==null)&&a(Y,""),U?O(b.dynamicChildren,U,Y,R,M,jr(_,L),B):Z||X(b,_,Y,null,R,M,jr(_,L),B,!1),J>0){if(J&16)F(Y,te,oe,R,L);else if(J&2&&te.class!==oe.class&&o(Y,"class",null,oe.class,L),J&4&&o(Y,"style",te.style,oe.style,L),J&8){const ge=_.dynamicProps;for(let Se=0;Se{ce&<(ce,R,_,b),le&&At(_,b,R,"updated")},M)},O=(b,_,R,M,L,B,Z)=>{for(let Y=0;Y<_.length;Y++){const J=b[Y],U=_[Y],le=J.el&&(J.type===me||!wt(J,U)||J.shapeFlag&70)?d(J.el):R;C(J,U,le,null,M,L,B,Z,!0)}},F=(b,_,R,M,L)=>{if(_!==R){if(_!==be)for(const B in _)!Tn(B)&&!(B in R)&&o(b,B,_[B],null,L,M);for(const B in R){if(Tn(B))continue;const Z=R[B],Y=_[B];Z!==Y&&B!=="value"&&o(b,B,Y,Z,L,M)}"value"in R&&o(b,"value",_.value,R.value,L)}},A=(b,_,R,M,L,B,Z,Y,J)=>{const U=_.el=b?b.el:l(""),le=_.anchor=b?b.anchor:l("");let{patchFlag:te,dynamicChildren:oe,slotScopeIds:ce}=_;ce&&(Y=Y?Y.concat(ce):ce),b==null?(s(U,R,M),s(le,R,M),D(_.children||[],R,le,L,B,Z,Y,J)):te>0&&te&64&&oe&&b.dynamicChildren?(O(b.dynamicChildren,oe,R,L,B,Z,Y),(_.key!=null||L&&_===L.subTree)&&Vo(b,_,!0)):X(b,_,R,le,L,B,Z,Y,J)},N=(b,_,R,M,L,B,Z,Y,J)=>{_.slotScopeIds=Y,b==null?_.shapeFlag&512?L.ctx.activate(_,R,M,Z,J):Q(_,R,M,L,B,Z,J):ee(b,_,J)},Q=(b,_,R,M,L,B,Z)=>{const Y=b.component=ua(b,M,L);if(vs(b)&&(Y.ctx.renderer=Ft),da(Y,!1,Z),Y.asyncDep){if(L&&L.registerDep(Y,j,Z),!b.el){const J=Y.subTree=W(Me);E(null,J,_,R)}}else j(Y,b,_,R,L,B,Z)},ee=(b,_,R)=>{const M=_.component=b.component;if(zd(b,_,R))if(M.asyncDep&&!M.asyncResolved){ne(M,_,R);return}else M.next=_,M.update();else _.el=b.el,M.vnode=_},j=(b,_,R,M,L,B,Z)=>{const Y=()=>{if(b.isMounted){let{next:te,bu:oe,u:ce,parent:ge,vnode:Se}=b;{const et=Gl(b);if(et){te&&(te.el=Se.el,ne(b,te,Z)),et.asyncDep.then(()=>{b.isUnmounted||Y()});return}}let _e=te,Ue;ln(b,!1),te?(te.el=Se.el,ne(b,te,Z)):te=Se,oe&&An(oe),(Ue=te.props&&te.props.onVnodeBeforeUpdate)&<(Ue,ge,te,Se),ln(b,!0);const Te=Ms(b),Ze=b.subTree;b.subTree=Te,C(Ze,Te,d(Ze.el),Et(Ze),b,L,B),te.el=Te.el,_e===null&&Ro(b,Te.el),ce&&He(ce,L),(Ue=te.props&&te.props.onVnodeUpdated)&&He(()=>lt(Ue,ge,te,Se),L)}else{let te;const{el:oe,props:ce}=_,{bm:ge,m:Se,parent:_e,root:Ue,type:Te}=b,Ze=Jt(_);if(ln(b,!1),ge&&An(ge),!Ze&&(te=ce&&ce.onVnodeBeforeMount)&<(te,_e,_),ln(b,!0),oe&&on){const et=()=>{b.subTree=Ms(b),on(oe,b.subTree,b,L,null)};Ze&&Te.__asyncHydrate?Te.__asyncHydrate(oe,b,et):et()}else{Ue.ce&&Ue.ce._injectChildStyle(Te);const et=b.subTree=Ms(b);C(null,et,R,M,b,L,B),_.el=et.el}if(Se&&He(Se,L),!Ze&&(te=ce&&ce.onVnodeMounted)){const et=_;He(()=>lt(te,_e,et),L)}(_.shapeFlag&256||_e&&Jt(_e.vnode)&&_e.vnode.shapeFlag&256)&&b.a&&He(b.a,L),b.isMounted=!0,_=R=M=null}};b.scope.on();const J=b.effect=new ls(Y);b.scope.off();const U=b.update=J.run.bind(J),le=b.job=J.runIfDirty.bind(J);le.i=b,le.id=b.uid,J.scheduler=()=>wo(le),ln(b,!0),U()},ne=(b,_,R)=>{_.component=b;const M=b.vnode.props;b.vnode=_,b.next=null,wd(b,_.props,M,R),Cd(b,_.children,R),nn(),Qo(b),sn()},X=(b,_,R,M,L,B,Z,Y,J=!1)=>{const U=b&&b.children,le=b?b.shapeFlag:0,te=_.children,{patchFlag:oe,shapeFlag:ce}=_;if(oe>0){if(oe&128){Be(U,te,R,M,L,B,Z,Y,J);return}else if(oe&256){fe(U,te,R,M,L,B,Z,Y,J);return}}ce&8?(le&16&&rn(U,L,B),te!==U&&a(R,te)):le&16?ce&16?Be(U,te,R,M,L,B,Z,Y,J):rn(U,L,B,!0):(le&8&&a(R,""),ce&16&&D(te,R,M,L,B,Z,Y,J))},fe=(b,_,R,M,L,B,Z,Y,J)=>{b=b||Cn,_=_||Cn;const U=b.length,le=_.length,te=Math.min(U,le);let oe;for(oe=0;oele?rn(b,L,B,!0,!1,te):D(_,R,M,L,B,Z,Y,J,te)},Be=(b,_,R,M,L,B,Z,Y,J)=>{let U=0;const le=_.length;let te=b.length-1,oe=le-1;for(;U<=te&&U<=oe;){const ce=b[U],ge=_[U]=J?Gt(_[U]):at(_[U]);if(wt(ce,ge))C(ce,ge,R,null,L,B,Z,Y,J);else break;U++}for(;U<=te&&U<=oe;){const ce=b[te],ge=_[oe]=J?Gt(_[oe]):at(_[oe]);if(wt(ce,ge))C(ce,ge,R,null,L,B,Z,Y,J);else break;te--,oe--}if(U>te){if(U<=oe){const ce=oe+1,ge=ceoe)for(;U<=te;)Ie(b[U],L,B,!0),U++;else{const ce=U,ge=U,Se=new Map;for(U=ge;U<=oe;U++){const tt=_[U]=J?Gt(_[U]):at(_[U]);tt.key!=null&&Se.set(tt.key,U)}let _e,Ue=0;const Te=oe-ge+1;let Ze=!1,et=0;const Bt=new Array(Te);for(U=0;U=Te){Ie(tt,L,B,!0);continue}let mt;if(tt.key!=null)mt=Se.get(tt.key);else for(_e=ge;_e<=oe;_e++)if(Bt[_e-ge]===0&&wt(tt,_[_e])){mt=_e;break}mt===void 0?Ie(tt,L,B,!0):(Bt[mt-ge]=U+1,mt>=et?et=mt:Ze=!0,C(tt,_[mt],R,null,L,B,Z,Y,J),Ue++)}const yn=Ze?Ed(Bt):Cn;for(_e=yn.length-1,U=Te-1;U>=0;U--){const tt=ge+U,mt=_[tt],De=tt+1{const{el:B,type:Z,transition:Y,children:J,shapeFlag:U}=b;if(U&6){je(b.component.subTree,_,R,M);return}if(U&128){b.suspense.move(_,R,M);return}if(U&64){Z.move(b,_,R,Ft);return}if(Z===me){s(B,_,R);for(let te=0;teY.enter(B),L);else{const{leave:te,delayLeave:oe,afterLeave:ce}=Y,ge=()=>s(B,_,R),Se=()=>{te(B,()=>{ge(),ce&&ce()})};oe?oe(B,ge,Se):Se()}else s(B,_,R)},Ie=(b,_,R,M=!1,L=!1)=>{const{type:B,props:Z,ref:Y,children:J,dynamicChildren:U,shapeFlag:le,patchFlag:te,dirs:oe,cacheIndex:ce}=b;if(te===-2&&(L=!1),Y!=null&&Ks(Y,null,R,b,!0),ce!=null&&(_.renderCache[ce]=void 0),le&256){_.ctx.deactivate(b);return}const ge=le&1&&oe,Se=!Jt(b);let _e;if(Se&&(_e=Z&&Z.onVnodeBeforeUnmount)&<(_e,_,b),le&6)ws(b.component,R,M);else{if(le&128){b.suspense.unmount(R,M);return}ge&&At(b,null,_,"beforeUnmount"),le&64?b.type.remove(b,_,R,Ft,M):U&&!U.hasOnce&&(B!==me||te>0&&te&64)?rn(U,_,R,!1,!0):(B===me&&te&384||!L&&le&16)&&rn(J,_,R),M&&ks(b)}(Se&&(_e=Z&&Z.onVnodeUnmounted)||ge)&&He(()=>{_e&<(_e,_,b),ge&&At(b,null,_,"unmounted")},R)},ks=b=>{const{type:_,el:R,anchor:M,transition:L}=b;if(_===me){Er(R,M);return}if(_===fn){k(b);return}const B=()=>{r(R),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(b.shapeFlag&1&&L&&!L.persisted){const{leave:Z,delayLeave:Y}=L,J=()=>Z(R,B);Y?Y(b.el,B,J):J()}else B()},Er=(b,_)=>{let R;for(;b!==_;)R=f(b),r(b),b=R;r(_)},ws=(b,_,R)=>{const{bum:M,scope:L,job:B,subTree:Z,um:Y,m:J,a:U}=b;Gs(J),Gs(U),M&&An(M),L.stop(),B&&(B.flags|=8,Ie(Z,b,_,R)),Y&&He(Y,_),He(()=>{b.isUnmounted=!0},_),_&&_.pendingBranch&&!_.isUnmounted&&b.asyncDep&&!b.asyncResolved&&b.suspenseId===_.pendingId&&(_.deps--,_.deps===0&&_.resolve())},rn=(b,_,R,M=!1,L=!1,B=0)=>{for(let Z=B;Z{if(b.shapeFlag&6)return Et(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const _=f(b.anchor||b.el),R=_&&_[gl];return R?f(R):_};let Fn=!1;const Bn=(b,_,R)=>{b==null?_._vnode&&Ie(_._vnode,null,null,!0):C(_._vnode||null,b,_,null,null,null,R),_._vnode=b,Fn||(Fn=!0,Qo(),Ws(),Fn=!1)},Ft={p:C,um:Ie,m:je,r:ks,mt:Q,mc:D,pc:X,pbc:O,n:Et,o:e};let Un,on;return t&&([Un,on]=t(Ft)),{render:Bn,hydrate:Un,createApp:bd(Bn,Un)}}function jr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ln({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ql(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vo(e,t,n=!1){const s=e.children,r=t.children;if(se(s)&&se(r))for(let o=0;o>1,e[n[l]]0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Gl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gl(t)}function Gs(e){if(e)for(let t=0;tht(Ql);function br(e,t){return bs(e,null,t)}function Xl(e,t){return bs(e,null,{flush:"post"})}function Yl(e,t){return bs(e,null,{flush:"sync"})}function vt(e,t,n){return bs(e,t,n)}function bs(e,t,n=be){const{immediate:s,deep:r,flush:o,once:i}=n,l=Ee({},n),u=t&&s||!t&&o!=="post";let c;if(Vn){if(o==="sync"){const v=Jl();c=v.__watcherHandles||(v.__watcherHandles=[])}else if(!u){const v=()=>{};return v.stop=_t,v.resume=_t,v.pause=_t,v}}const a=Le;l.call=(v,m,C)=>yt(v,a,m,C);let d=!1;o==="post"?l.scheduler=v=>{He(v,a&&a.suspense)}:o!=="sync"&&(d=!0,l.scheduler=(v,m)=>{m?v():wo(v)}),l.augmentJob=v=>{t&&(v.flags|=4),d&&(v.flags|=2,a&&(v.id=a.uid,v.i=a))};const f=pc(e,t,l);return Vn&&(c?c.push(f):u&&f()),f}function Td(e,t,n){const s=this.proxy,r=Oe(e)?e.includes(".")?Zl(s,e):()=>s[e]:e.bind(s,s);let o;ae(t)?o=t:(o=t.handler,n=t);const i=hn(this),l=bs(r,o.bind(s),n);return i(),l}function Zl(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{let a,d=be,f;return Yl(()=>{const v=e[r];ot(a,v)&&(a=v,c())}),{get(){return u(),n.get?n.get(a):a},set(v){const m=n.set?n.set(v):v;if(!ot(m,a)&&!(d!==be&&ot(v,d)))return;const C=s.vnode.props;C&&(t in C||r in C||o in C)&&(`onUpdate:${t}`in C||`onUpdate:${r}`in C||`onUpdate:${o}`in C)||(a=v,c()),s.emit(`update:${t}`,m),ot(v,m)&&ot(v,d)&&!ot(m,f)&&c(),d=v,f=m}}});return l[Symbol.iterator]=()=>{let u=0;return{next(){return u<2?{value:u++?i||be:l,done:!1}:{done:!0}}}},l}const ta=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ge(t)}Modifiers`]||e[`${ct(t)}Modifiers`];function Ad(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||be;let r=n;const o=t.startsWith("update:"),i=o&&ta(s,t.slice(7));i&&(i.trim&&(r=n.map(a=>Oe(a)?a.trim():a)),i.number&&(r=n.map(Ns)));let l,u=s[l=Zn(t)]||s[l=Zn(Ge(t))];!u&&o&&(u=s[l=Zn(ct(t))]),u&&yt(u,e,6,r);const c=s[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,yt(c,e,6,r)}}function na(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let i={},l=!1;if(!ae(e)){const u=c=>{const a=na(c,t,!0);a&&(l=!0,Ee(i,a))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!o&&!l?(Ce(e)&&s.set(e,null),null):(se(o)?o.forEach(u=>i[u]=null):Ee(i,o),Ce(e)&&s.set(e,i),i)}function yr(e,t){return!e||!hs(t)?!1:(t=t.slice(2).replace(/Once$/,""),xe(e,t[0].toLowerCase()+t.slice(1))||xe(e,ct(t))||xe(e,t))}function Ms(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[o],slots:i,attrs:l,emit:u,render:c,renderCache:a,props:d,data:f,setupState:v,ctx:m,inheritAttrs:C}=e,V=ds(e);let E,x;try{if(n.shapeFlag&4){const k=r||s,w=k;E=at(c.call(w,k,a,d,v,f,m)),x=l}else{const k=t;E=at(k.length>1?k(d,{attrs:l,slots:i,emit:u}):k(d,null)),x=t.props?l:Pd(l)}}catch(k){os.length=0,bn(k,e,1),E=W(Me)}let g=E;if(x&&C!==!1){const k=Object.keys(x),{shapeFlag:w}=g;k.length&&w&7&&(o&&k.some(uo)&&(x=$d(x,o)),g=Pt(g,x,!1,!0))}return n.dirs&&(g=Pt(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&jt(g,n.transition),E=g,ds(V),E}function Od(e,t=!0){let n;for(let s=0;s{let t;for(const n in e)(n==="class"||n==="style"||hs(n))&&((t||(t={}))[n]=e[n]);return t},$d=(e,t)=>{const n={};for(const s in e)(!uo(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zd(e,t,n){const{props:s,children:r,component:o}=e,{props:i,children:l,patchFlag:u}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return s?ii(s,i,c):!!i;if(u&8){const a=t.dynamicProps;for(let d=0;de.__isSuspense;let Zr=0;const Vd={name:"Suspense",__isSuspense:!0,process(e,t,n,s,r,o,i,l,u,c){if(e==null)Dd(t,n,s,r,o,i,l,u,c);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Md(e,t,n,s,r,i,l,u,c)}},hydrate:jd,normalize:Id},Rd=Vd;function ps(e,t){const n=e.props&&e.props[t];ae(n)&&n()}function Dd(e,t,n,s,r,o,i,l,u){const{p:c,o:{createElement:a}}=u,d=a("div"),f=e.suspense=sa(e,r,s,t,d,n,o,i,l,u);c(null,f.pendingBranch=e.ssContent,d,null,s,f,o,i),f.deps>0?(ps(e,"onPending"),ps(e,"onFallback"),c(null,e.ssFallback,t,n,s,null,o,i),Pn(f,e.ssFallback)):f.resolve(!1,!0)}function Md(e,t,n,s,r,o,i,l,{p:u,um:c,o:{createElement:a}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const f=t.ssContent,v=t.ssFallback,{activeBranch:m,pendingBranch:C,isInFallback:V,isHydrating:E}=d;if(C)d.pendingBranch=f,wt(f,C)?(u(C,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0?d.resolve():V&&(E||(u(m,v,n,s,r,null,o,i,l),Pn(d,v)))):(d.pendingId=Zr++,E?(d.isHydrating=!1,d.activeBranch=C):c(C,r,d),d.deps=0,d.effects.length=0,d.hiddenContainer=a("div"),V?(u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0?d.resolve():(u(m,v,n,s,r,null,o,i,l),Pn(d,v))):m&&wt(f,m)?(u(m,f,n,s,r,d,o,i,l),d.resolve(!0)):(u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0&&d.resolve()));else if(m&&wt(f,m))u(m,f,n,s,r,d,o,i,l),Pn(d,f);else if(ps(t,"onPending"),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=Zr++,u(null,f,d.hiddenContainer,null,r,d,o,i,l),d.deps<=0)d.resolve();else{const{timeout:x,pendingId:g}=d;x>0?setTimeout(()=>{d.pendingId===g&&d.fallback(v)},x):x===0&&d.fallback(v)}}function sa(e,t,n,s,r,o,i,l,u,c,a=!1){const{p:d,m:f,um:v,n:m,o:{parentNode:C,remove:V}}=c;let E;const x=Nd(e);x&&t&&t.pendingBranch&&(E=t.pendingId,t.deps++);const g=e.props?Ls(e.props.timeout):void 0,k=o,w={vnode:e,parent:t,parentComponent:n,namespace:i,container:s,hiddenContainer:r,deps:0,pendingId:Zr++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!a,isHydrating:a,isUnmounted:!1,effects:[],resolve(P=!1,$=!1){const{vnode:D,activeBranch:z,pendingBranch:O,pendingId:F,effects:A,parentComponent:N,container:Q}=w;let ee=!1;w.isHydrating?w.isHydrating=!1:P||(ee=z&&O.transition&&O.transition.mode==="out-in",ee&&(z.transition.afterLeave=()=>{F===w.pendingId&&(f(O,Q,o===k?m(z):o,0),Hs(A))}),z&&(C(z.el)===Q&&(o=m(z)),v(z,N,w,!0)),ee||f(O,Q,o,0)),Pn(w,O),w.pendingBranch=null,w.isInFallback=!1;let j=w.parent,ne=!1;for(;j;){if(j.pendingBranch){j.effects.push(...A),ne=!0;break}j=j.parent}!ne&&!ee&&Hs(A),w.effects=[],x&&t&&t.pendingBranch&&E===t.pendingId&&(t.deps--,t.deps===0&&!$&&t.resolve()),ps(D,"onResolve")},fallback(P){if(!w.pendingBranch)return;const{vnode:$,activeBranch:D,parentComponent:z,container:O,namespace:F}=w;ps($,"onFallback");const A=m(D),N=()=>{w.isInFallback&&(d(null,P,O,A,z,null,F,l,u),Pn(w,P))},Q=P.transition&&P.transition.mode==="out-in";Q&&(D.transition.afterLeave=N),w.isInFallback=!0,v(D,z,null,!0),Q||N()},move(P,$,D){w.activeBranch&&f(w.activeBranch,P,$,D),w.container=P},next(){return w.activeBranch&&m(w.activeBranch)},registerDep(P,$,D){const z=!!w.pendingBranch;z&&w.deps++;const O=P.vnode.el;P.asyncDep.catch(F=>{bn(F,P,0)}).then(F=>{if(P.isUnmounted||w.isUnmounted||w.pendingId!==P.suspenseId)return;P.asyncResolved=!0;const{vnode:A}=P;so(P,F,!1),O&&(A.el=O);const N=!O&&P.subTree.el;$(P,A,C(O||P.subTree.el),O?null:m(P.subTree),w,i,D),N&&V(N),Ro(P,A.el),z&&--w.deps===0&&w.resolve()})},unmount(P,$){w.isUnmounted=!0,w.activeBranch&&v(w.activeBranch,n,P,$),w.pendingBranch&&v(w.pendingBranch,n,P,$)}};return w}function jd(e,t,n,s,r,o,i,l,u){const c=t.suspense=sa(t,s,n,e.parentNode,document.createElement("div"),null,r,o,i,l,!0),a=u(e,c.pendingBranch=t.ssContent,n,c,o,i);return c.deps===0&&c.resolve(!1,!0),a}function Id(e){const{shapeFlag:t,children:n}=e,s=t&32;e.ssContent=li(s?n.default:n),e.ssFallback=s?li(n.fallback):W(Me)}function li(e){let t;if(ae(e)){const n=pn&&e._c;n&&(e._d=!1,I()),e=e(),n&&(e._d=!0,t=Ye,oa())}return se(e)&&(e=Od(e)),e=at(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function ra(e,t){t&&t.pendingBranch?se(e)?t.effects.push(...e):t.effects.push(e):Hs(e)}function Pn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:s}=e;let r=t.el;for(;!r&&t.component;)t=t.component.subTree,r=t.el;n.el=r,s&&s.subTree===n&&(s.vnode.el=r,Ro(s,r))}function Nd(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const me=Symbol.for("v-fgt"),Xt=Symbol.for("v-txt"),Me=Symbol.for("v-cmt"),fn=Symbol.for("v-stc"),os=[];let Ye=null;function I(e=!1){os.push(Ye=e?null:[])}function oa(){os.pop(),Ye=os[os.length-1]||null}let pn=1;function eo(e){pn+=e,e<0&&Ye&&(Ye.hasOnce=!0)}function ia(e){return e.dynamicChildren=pn>0?Ye||Cn:null,oa(),pn>0&&Ye&&Ye.push(e),e}function q(e,t,n,s,r,o){return ia(S(e,t,n,s,r,o,!0))}function qe(e,t,n,s,r){return ia(W(e,t,n,s,r,!0))}function It(e){return e?e.__v_isVNode===!0:!1}function wt(e,t){return e.type===t.type&&e.key===t.key}function Ld(e){}const la=({key:e})=>e??null,js=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Oe(e)||$e(e)||ae(e)?{i:Fe,r:e,k:t,f:!!n}:e:null);function S(e,t=null,n=null,s=0,r=null,o=e===me?0:1,i=!1,l=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&la(t),ref:t&&js(t),scopeId:fr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Fe};return l?(Do(u,n),o&128&&e.normalize(u)):n&&(u.shapeFlag|=Oe(n)?8:16),pn>0&&!i&&Ye&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&Ye.push(u),u}const W=Fd;function Fd(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===$l)&&(e=Me),It(e)){const l=Pt(e,t,!0);return n&&Do(l,n),pn>0&&!o&&Ye&&(l.shapeFlag&6?Ye[Ye.indexOf(e)]=l:Ye.push(l)),l.patchFlag=-2,l}if(Qd(e)&&(e=e.__vccOpts),t){t=aa(t);let{class:l,style:u}=t;l&&!Oe(l)&&(t.class=ze(l)),Ce(u)&&(jn(u)&&!se(u)&&(u=Ee({},u)),t.style=Re(u))}const i=Oe(e)?1:Qs(e)?128:vl(e)?64:Ce(e)?4:ae(e)?2:0;return S(e,t,n,s,r,i,o,!0)}function aa(e){return e?jn(e)||jl(e)?Ee({},e):e:null}function Pt(e,t,n=!1,s=!1){const{props:r,ref:o,patchFlag:i,children:l,transition:u}=e,c=t?Mo(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&la(c),ref:t&&t.ref?n&&o?se(o)?o.concat(js(t)):[o,js(t)]:js(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==me?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pt(e.ssContent),ssFallback:e.ssFallback&&Pt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&s&&jt(a,u.clone(a)),a}function G(e=" ",t=0){return W(Xt,null,e,t)}function Bd(e,t){const n=W(fn,null,e);return n.staticCount=t,n}function Ve(e="",t=!1){return t?(I(),qe(Me,null,e)):W(Me,null,e)}function at(e){return e==null||typeof e=="boolean"?W(Me):se(e)?W(me,null,e.slice()):It(e)?Gt(e):W(Xt,null,String(e))}function Gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Pt(e)}function Do(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(se(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Do(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!jl(t)?t._ctx=Fe:r===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ae(t)?(t={default:t,_ctx:Fe},n=32):(t=String(t),s&64?(n=16,t=[G(t)]):n=8);e.children=t,e.shapeFlag|=n}function Mo(...e){const t={};for(let n=0;nLe||Fe;let Js,to;{const e=ir(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),o=>{r.length>1?r.forEach(i=>i(o)):r[0](o)}};Js=t("__VUE_INSTANCE_SETTERS__",n=>Le=n),to=t("__VUE_SSR_SETTERS__",n=>Vn=n)}const hn=e=>{const t=Le;return Js(e),e.scope.on(),()=>{e.scope.off(),Js(t)}},no=()=>{Le&&Le.scope.off(),Js(null)};function ca(e){return e.vnode.shapeFlag&4}let Vn=!1;function da(e,t=!1,n=!1){t&&to(t);const{props:s,children:r}=e.vnode,o=ca(e);kd(e,s,o,t),Sd(e,r,n);const i=o?Wd(e,t):void 0;return t&&to(!1),i}function Wd(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qr);const{setup:s}=n;if(s){nn();const r=e.setupContext=s.length>1?pa(e):null,o=hn(e),i=In(s,e,0,[e.props,r]),l=fo(i);if(sn(),o(),(l||e.sp)&&!Jt(e)&&Co(e),l){if(i.then(no,no),t)return i.then(u=>{so(e,u,t)}).catch(u=>{bn(u,e,0)});e.asyncDep=i}else so(e,i,t)}else fa(e,t)}function so(e,t,n){ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ce(t)&&(e.setupState=ko(t)),fa(e,n)}let Xs,ro;function Kd(e){Xs=e,ro=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,Yc))}}const qd=()=>!Xs;function fa(e,t,n){const s=e.type;if(!e.render){if(!t&&Xs&&!s.render){const r=s.template||$o(e).template;if(r){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:u}=s,c=Ee(Ee({isCustomElement:o,delimiters:l},i),u);s.render=Xs(r,c)}}e.render=s.render||_t,ro&&ro(e)}{const r=hn(e);nn();try{fd(e)}finally{sn(),r()}}}const Gd={get(e,t){return Je(e,"get",""),e[t]}};function pa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Gd),slots:e.slots,emit:e.emit,expose:t}}function ys(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ko(il(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ss)return ss[n](e)},has(t,n){return n in t||n in ss}})):e.proxy}function oo(e,t=!0){return ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Qd(e){return ae(e)&&"__vccOpts"in e}const he=(e,t)=>uc(e,t,Vn);function ha(e,t,n){const s=arguments.length;return s===2?Ce(t)&&!se(t)?It(t)?W(e,null,[t]):W(e,t):W(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&It(n)&&(n=[n]),W(e,t,n))}function Jd(){}function Xd(e,t,n,s){const r=n[s];if(r&&ma(r,e))return r;const o=t();return o.memo=e.slice(),o.cacheIndex=s,n[s]=o}function ma(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let s=0;s0&&Ye&&Ye.push(e),!0}const ga="3.5.12",Yd=_t,Zd=bc,ef=xn,tf=ml,nf={createComponentInstance:ua,setupComponent:da,renderComponentRoot:Ms,setCurrentRenderingInstance:ds,isVNode:It,normalizeVNode:at,getComponentPublicInstance:ys,ensureValidVNode:Po,pushWarningContext:hc,popWarningContext:mc},sf=nf,rf=null,of=null,lf=null;/** * @vue/runtime-dom v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let io;const ai=typeof window<"u"&&window.trustedTypes;if(ai)try{io=ai.createPolicy("vue",{createHTML:e=>e})}catch{}const va=io?e=>io.createHTML(e):e=>e,af="http://www.w3.org/2000/svg",uf="http://www.w3.org/1998/Math/MathML",Rt=typeof document<"u"?document:null,ui=Rt&&Rt.createElement("template"),cf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Rt.createElementNS(af,e):t==="mathml"?Rt.createElementNS(uf,e):n?Rt.createElement(e,{is:n}):Rt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Rt.createTextNode(e),createComment:e=>Rt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Rt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{ui.innerHTML=va(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=ui.content;if(s==="svg"||s==="mathml"){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ut="transition",Gn="animation",Vn=Symbol("_vtc"),ba={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ya=Ee({},xo,ba),df=e=>(e.displayName="Transition",e.props=ya,e),kr=df((e,{slots:t})=>ha(wl,ka(e),t)),an=(e,t=[])=>{se(e)?e.forEach(n=>n(...t)):e&&e(...t)},ci=e=>e?se(e)?e.some(t=>t.length>1):e.length>1:!1;function ka(e){const t={};for(const A in e)A in ba||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:u=o,appearActiveClass:c=i,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:g=`${n}-leave-to`}=e,m=ff(r),C=m&&m[0],R=m&&m[1],{onBeforeEnter:E,onEnter:x,onEnterCancelled:v,onLeave:k,onLeaveCancelled:w,onBeforeAppear:P=E,onAppear:z=x,onAppearCancelled:D=v}=t,$=(A,N,Q)=>{Ht(A,N?a:l),Ht(A,N?c:i),Q&&Q()},O=(A,N)=>{A._isLeaving=!1,Ht(A,d),Ht(A,g),Ht(A,f),N&&N()},F=A=>(N,Q)=>{const ee=A?z:x,j=()=>$(N,A,Q);an(ee,[N,j]),di(()=>{Ht(N,A?u:o),$t(N,A?a:l),ci(ee)||fi(N,s,C,j)})};return Ee(t,{onBeforeEnter(A){an(E,[A]),$t(A,o),$t(A,i)},onBeforeAppear(A){an(P,[A]),$t(A,u),$t(A,c)},onEnter:F(!1),onAppear:F(!0),onLeave(A,N){A._isLeaving=!0;const Q=()=>O(A,N);$t(A,d),$t(A,f),_a(),di(()=>{A._isLeaving&&(Ht(A,d),$t(A,g),ci(k)||fi(A,s,R,Q))}),an(k,[A,Q])},onEnterCancelled(A){$(A,!1),an(v,[A])},onAppearCancelled(A){$(A,!0),an(D,[A])},onLeaveCancelled(A){O(A),an(w,[A])}})}function ff(e){if(e==null)return null;if(Ce(e))return[Ir(e.enter),Ir(e.leave)];{const t=Ir(e);return[t,t]}}function Ir(e){return Ls(e)}function $t(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Vn]||(e[Vn]=new Set)).add(t)}function Ht(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Vn];n&&(n.delete(t),n.size||(e[Vn]=void 0))}function di(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let pf=0;function fi(e,t,n,s){const r=e._endId=++pf,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:u}=wa(e,t);if(!i)return s();const c=i+"end";let a=0;const d=()=>{e.removeEventListener(c,f),o()},f=g=>{g.target===e&&++a>=u&&d()};setTimeout(()=>{a(n[m]||"").split(", "),r=s(`${Ut}Delay`),o=s(`${Ut}Duration`),i=pi(r,o),l=s(`${Gn}Delay`),u=s(`${Gn}Duration`),c=pi(l,u);let a=null,d=0,f=0;t===Ut?i>0&&(a=Ut,d=i,f=o.length):t===Gn?c>0&&(a=Gn,d=c,f=u.length):(d=Math.max(i,c),a=d>0?i>c?Ut:Gn:null,f=a?a===Ut?o.length:u.length:0);const g=a===Ut&&/\b(transform|all)(,|$)/.test(s(`${Ut}Property`).toString());return{type:a,timeout:d,propCount:f,hasTransform:g}}function pi(e,t){for(;e.lengthhi(n)+hi(e[s])))}function hi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function _a(){return document.body.offsetHeight}function hf(e,t,n){const s=e[Vn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ys=Symbol("_vod"),xa=Symbol("_vsh"),Sa={beforeMount(e,{value:t},{transition:n}){e[Ys]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Qn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Qn(e,!0),s.enter(e)):s.leave(e,()=>{Qn(e,!1)}):Qn(e,t))},beforeUnmount(e,{value:t}){Qn(e,t)}};function Qn(e,t){e.style.display=t?e[Ys]:"none",e[xa]=!t}function mf(){Sa.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const Ca=Symbol("");function gf(e){const t=dt();if(!t)return;const n=t.ut=(r=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(o=>Zs(o,r))},s=()=>{const r=e(t.proxy);t.ce?Zs(t.ce,r):lo(t.subTree,r),n(r)};Eo(()=>{Xl(s)}),Ct(()=>{const r=new MutationObserver(s);r.observe(t.subTree.el.parentNode,{childList:!0}),vr(()=>r.disconnect())})}function lo(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{lo(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Zs(e.el,t);else if(e.type===me)e.children.forEach(n=>lo(n,t));else if(e.type===fn){let{el:n,anchor:s}=e;for(;n&&(Zs(n,t),n!==s);)n=n.nextSibling}}function Zs(e,t){if(e.nodeType===1){const n=e.style;let s="";for(const r in t)n.setProperty(`--${r}`,t[r]),s+=`--${r}: ${t[r]};`;n[Ca]=s}}const vf=/(^|;)\s*display\s*:/;function bf(e,t,n){const s=e.style,r=Oe(n);let o=!1;if(n&&!r){if(t)if(Oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Is(s,l,"")}else for(const i in t)n[i]==null&&Is(s,i,"");for(const i in n)i==="display"&&(o=!0),Is(s,i,n[i])}else if(r){if(t!==n){const i=s[Ca];i&&(n+=";"+i),s.cssText=n,o=vf.test(n)}}else t&&e.removeAttribute("style");Ys in e&&(e[Ys]=o?s.display:"",e[xa]&&(s.display="none"))}const mi=/\s*!important$/;function Is(e,t,n){if(se(n))n.forEach(s=>Is(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=yf(e,t);mi.test(n)?e.setProperty(ct(s),n.replace(mi,""),"important"):e[s]=n}}const gi=["Webkit","Moz","ms"],Nr={};function yf(e,t){const n=Nr[t];if(n)return n;let s=Ge(t);if(s!=="filter"&&s in e)return Nr[t]=s;s=ms(s);for(let r=0;rLr||(xf.then(()=>Lr=0),Lr=Date.now());function Cf(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;yt(Ef(s,n.value),t,5,[s])};return n.value=e,n.attached=Sf(),n}function Ef(e,t){if(se(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const _i=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Tf=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?hf(e,s,i):t==="style"?bf(e,n,s):hs(t)?uo(t)||wf(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Af(e,t,s,i))?(yi(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bi(e,t,s,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Oe(s))?yi(e,Ge(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),bi(e,t,s,i))};function Af(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&_i(t)&&ae(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return _i(t)&&Oe(n)?!1:t in e}const xi={};/*! #__NO_SIDE_EFFECTS__ */function Ea(e,t,n){const s=So(e,t);rr(s)&&Ee(s,t);class r extends wr{constructor(i){super(s,i,n)}}return r.def=s,r}/*! #__NO_SIDE_EFFECTS__ */const Of=(e,t)=>Ea(e,t,Na),Pf=typeof HTMLElement<"u"?HTMLElement:class{};class wr extends Pf{constructor(t,n={},s=tr){super(),this._def=t,this._props=n,this._createApp=s,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&s!==tr?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this,this._def.__asyncLoader||this._resolveProps(this._def)}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof wr){this._parent=t;break}this._instance||(this._resolved?(this._setParent(),this._update()):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._instance.provides=t._instance.provides)}disconnectedCallback(){this._connected=!1,Nn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let s=0;s{for(const r of s)this._setAttr(r.attributeName)}),this._ob.observe(this,{attributes:!0});const t=(s,r=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:o,styles:i}=s;let l;if(o&&!se(o))for(const u in o){const c=o[u];(c===Number||c&&c.type===Number)&&(u in this._props&&(this._props[u]=Ls(this._props[u])),(l||(l=Object.create(null)))[Ge(u)]=!0)}this._numberProps=l,r&&this._resolveProps(s),this.shadowRoot&&this._applyStyles(i),this._mount(s)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(s=>t(this._def=s,!0)):t(this._def)}_mount(t){this._app=this._createApp(t),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const s in n)xe(this,s)||Object.defineProperty(this,s,{get:()=>de(n[s])})}_resolveProps(t){const{props:n}=t,s=se(n)?n:Object.keys(n||{});for(const r of Object.keys(this))r[0]!=="_"&&s.includes(r)&&this._setProp(r,this[r]);for(const r of s.map(Ge))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(o){this._setProp(r,o,!0,!0)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let s=n?this.getAttribute(t):xi;const r=Ge(t);n&&this._numberProps&&this._numberProps[r]&&(s=Ls(s)),this._setProp(r,s,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,r=!1){n!==this._props[t]&&(n===xi?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),r&&this._instance&&this._update(),s&&(n===!0?this.setAttribute(ct(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(ct(t),n+""):n||this.removeAttribute(ct(t))))}_update(){Ia(this._createVNode(),this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=W(this._def,Ee(t,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const r=(o,i)=>{this.dispatchEvent(new CustomEvent(o,rr(i[0])?Ee({detail:i},i[0]):{detail:i}))};s.emit=(o,...i)=>{r(o,i),ct(o)!==o&&r(ct(o),i)},this._setParent()}),n}_applyStyles(t,n){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce;for(let r=t.length-1;r>=0;r--){const o=document.createElement("style");s&&o.setAttribute("nonce",s),o.textContent=t[r],this.shadowRoot.prepend(o)}}_parseSlots(){const t=this._slots={};let n;for(;n=this.firstChild;){const s=n.nodeType===1&&n.getAttribute("slot")||"default";(t[s]||(t[s]=[])).push(n),this.removeChild(n)}}_renderSlots(){const t=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let s=0;s(delete e.props.mode,e),Vf=Rf({name:"TransitionGroup",props:Ee({},ya,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=dt(),s=_o();let r,o;return mr(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!If(r[0].el,n.vnode.el,i))return;r.forEach(Df),r.forEach(Mf);const l=r.filter(jf);_a(),l.forEach(u=>{const c=u.el,a=c.style;$t(c,i),a.transform=a.webkitTransform=a.transitionDuration="";const d=c[er]=f=>{f&&f.target!==c||(!f||/transform$/.test(f.propertyName))&&(c.removeEventListener("transitionend",d),c[er]=null,Ht(c,i))};c.addEventListener("transitionend",d)})}),()=>{const i=ve(e),l=ka(i);let u=i.tag||me;if(r=[],o)for(let c=0;c{l.split(/\s+/).forEach(u=>u&&s.classList.remove(u))}),n.split(/\s+/).forEach(l=>l&&s.classList.add(l)),s.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(s);const{hasTransform:i}=wa(s);return o.removeChild(s),i}const tn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return se(t)?n=>An(t,n):t};function Nf(e){e.target.composing=!0}function Ci(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const bt=Symbol("_assign"),mn={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[bt]=tn(r);const o=s||r.props&&r.props.type==="number";Mt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=Ns(l)),e[bt](l)}),n&&Mt(e,"change",()=>{e.value=e.value.trim()}),t||(Mt(e,"compositionstart",Nf),Mt(e,"compositionend",Ci),Mt(e,"change",Ci))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[bt]=tn(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ns(e.value):e.value,u=t??"";l!==u&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===u)||(e.value=u))}},_r={deep:!0,created(e,t,n){e[bt]=tn(n),Mt(e,"change",()=>{const s=e._modelValue,r=Dn(e),o=e.checked,i=e[bt];if(se(s)){const l=lr(s,r),u=l!==-1;if(o&&!u)i(s.concat(r));else if(!o&&u){const c=[...s];c.splice(l,1),i(c)}}else if(vn(s)){const l=new Set(s);o?l.add(r):l.delete(r),i(l)}else i($a(e,o))})},mounted:Ei,beforeUpdate(e,t,n){e[bt]=tn(n),Ei(e,t,n)}};function Ei(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(se(t))r=lr(t,s.props.value)>-1;else if(vn(t))r=t.has(s.props.value);else{if(t===n)return;r=Yt(t,$a(e,!0))}e.checked!==r&&(e.checked=r)}const jo={created(e,{value:t},n){e.checked=Yt(t,n.props.value),e[bt]=tn(n),Mt(e,"change",()=>{e[bt](Dn(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[bt]=tn(s),t!==n&&(e.checked=Yt(t,s.props.value))}},za={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=vn(t);Mt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Ns(Dn(i)):Dn(i));e[bt](e.multiple?r?new Set(o):o:o[0]),e._assigning=!0,Nn(()=>{e._assigning=!1})}),e[bt]=tn(s)},mounted(e,{value:t}){Ti(e,t)},beforeUpdate(e,t,n){e[bt]=tn(n)},updated(e,{value:t}){e._assigning||Ti(e,t)}};function Ti(e,t){const n=e.multiple,s=se(t);if(!(n&&!s&&!vn(t))){for(let r=0,o=e.options.length;rString(c)===String(l)):i.selected=lr(t,l)>-1}else i.selected=t.has(l);else if(Yt(Dn(i),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Dn(e){return"_value"in e?e._value:e.value}function $a(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Io={created(e,t,n){zs(e,t,n,null,"created")},mounted(e,t,n){zs(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){zs(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){zs(e,t,n,s,"updated")}};function Ra(e,t){switch(e){case"SELECT":return za;case"TEXTAREA":return mn;default:switch(t){case"checkbox":return _r;case"radio":return jo;default:return mn}}}function zs(e,t,n,s,r){const i=Ra(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,s)}function Lf(){mn.getSSRProps=({value:e})=>({value:e}),jo.getSSRProps=({value:e},t)=>{if(t.props&&Yt(t.props.value,e))return{checked:!0}},_r.getSSRProps=({value:e},t)=>{if(se(e)){if(t.props&&lr(e,t.props.value)>-1)return{checked:!0}}else if(vn(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},Io.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=Ra(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const Ff=["ctrl","shift","alt","meta"],Bf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ff.some(n=>e[`${n}Key`]&&!t.includes(n))},ao=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=ct(r.key);if(t.some(i=>i===o||Uf[i]===o))return e(r)})},Da=Ee({patchProp:Tf},cf);let is,Ai=!1;function Ma(){return is||(is=Hl(Da))}function ja(){return is=Ai?is:Wl(Da),Ai=!0,is}const Ia=(...e)=>{Ma().render(...e)},Hf=(...e)=>{ja().hydrate(...e)},tr=(...e)=>{const t=Ma().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fa(s);if(!r)return;const o=t._component;!ae(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,La(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t},Na=(...e)=>{const t=ja().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fa(s);if(r)return n(r,!0,La(r))},t};function La(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fa(e){return Oe(e)?document.querySelector(e):e}let Oi=!1;const Wf=()=>{Oi||(Oi=!0,Lf(),mf())};/** +**/let io;const ai=typeof window<"u"&&window.trustedTypes;if(ai)try{io=ai.createPolicy("vue",{createHTML:e=>e})}catch{}const va=io?e=>io.createHTML(e):e=>e,af="http://www.w3.org/2000/svg",uf="http://www.w3.org/1998/Math/MathML",Vt=typeof document<"u"?document:null,ui=Vt&&Vt.createElement("template"),cf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Vt.createElementNS(af,e):t==="mathml"?Vt.createElementNS(uf,e):n?Vt.createElement(e,{is:n}):Vt.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Vt.createTextNode(e),createComment:e=>Vt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Vt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,o){const i=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{ui.innerHTML=va(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=ui.content;if(s==="svg"||s==="mathml"){const u=l.firstChild;for(;u.firstChild;)l.appendChild(u.firstChild);l.removeChild(u)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ut="transition",Gn="animation",Rn=Symbol("_vtc"),ba={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},ya=Ee({},xo,ba),df=e=>(e.displayName="Transition",e.props=ya,e),kr=df((e,{slots:t})=>ha(wl,ka(e),t)),an=(e,t=[])=>{se(e)?e.forEach(n=>n(...t)):e&&e(...t)},ci=e=>e?se(e)?e.some(t=>t.length>1):e.length>1:!1;function ka(e){const t={};for(const A in e)A in ba||(t[A]=e[A]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:u=o,appearActiveClass:c=i,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,m=ff(r),C=m&&m[0],V=m&&m[1],{onBeforeEnter:E,onEnter:x,onEnterCancelled:g,onLeave:k,onLeaveCancelled:w,onBeforeAppear:P=E,onAppear:$=x,onAppearCancelled:D=g}=t,z=(A,N,Q)=>{Ht(A,N?a:l),Ht(A,N?c:i),Q&&Q()},O=(A,N)=>{A._isLeaving=!1,Ht(A,d),Ht(A,v),Ht(A,f),N&&N()},F=A=>(N,Q)=>{const ee=A?$:x,j=()=>z(N,A,Q);an(ee,[N,j]),di(()=>{Ht(N,A?u:o),zt(N,A?a:l),ci(ee)||fi(N,s,C,j)})};return Ee(t,{onBeforeEnter(A){an(E,[A]),zt(A,o),zt(A,i)},onBeforeAppear(A){an(P,[A]),zt(A,u),zt(A,c)},onEnter:F(!1),onAppear:F(!0),onLeave(A,N){A._isLeaving=!0;const Q=()=>O(A,N);zt(A,d),zt(A,f),_a(),di(()=>{A._isLeaving&&(Ht(A,d),zt(A,v),ci(k)||fi(A,s,V,Q))}),an(k,[A,Q])},onEnterCancelled(A){z(A,!1),an(g,[A])},onAppearCancelled(A){z(A,!0),an(D,[A])},onLeaveCancelled(A){O(A),an(w,[A])}})}function ff(e){if(e==null)return null;if(Ce(e))return[Ir(e.enter),Ir(e.leave)];{const t=Ir(e);return[t,t]}}function Ir(e){return Ls(e)}function zt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Rn]||(e[Rn]=new Set)).add(t)}function Ht(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Rn];n&&(n.delete(t),n.size||(e[Rn]=void 0))}function di(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let pf=0;function fi(e,t,n,s){const r=e._endId=++pf,o=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:u}=wa(e,t);if(!i)return s();const c=i+"end";let a=0;const d=()=>{e.removeEventListener(c,f),o()},f=v=>{v.target===e&&++a>=u&&d()};setTimeout(()=>{a(n[m]||"").split(", "),r=s(`${Ut}Delay`),o=s(`${Ut}Duration`),i=pi(r,o),l=s(`${Gn}Delay`),u=s(`${Gn}Duration`),c=pi(l,u);let a=null,d=0,f=0;t===Ut?i>0&&(a=Ut,d=i,f=o.length):t===Gn?c>0&&(a=Gn,d=c,f=u.length):(d=Math.max(i,c),a=d>0?i>c?Ut:Gn:null,f=a?a===Ut?o.length:u.length:0);const v=a===Ut&&/\b(transform|all)(,|$)/.test(s(`${Ut}Property`).toString());return{type:a,timeout:d,propCount:f,hasTransform:v}}function pi(e,t){for(;e.lengthhi(n)+hi(e[s])))}function hi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function _a(){return document.body.offsetHeight}function hf(e,t,n){const s=e[Rn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ys=Symbol("_vod"),xa=Symbol("_vsh"),Sa={beforeMount(e,{value:t},{transition:n}){e[Ys]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Qn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Qn(e,!0),s.enter(e)):s.leave(e,()=>{Qn(e,!1)}):Qn(e,t))},beforeUnmount(e,{value:t}){Qn(e,t)}};function Qn(e,t){e.style.display=t?e[Ys]:"none",e[xa]=!t}function mf(){Sa.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const Ca=Symbol("");function gf(e){const t=dt();if(!t)return;const n=t.ut=(r=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(o=>Zs(o,r))},s=()=>{const r=e(t.proxy);t.ce?Zs(t.ce,r):lo(t.subTree,r),n(r)};Eo(()=>{Xl(s)}),Ct(()=>{const r=new MutationObserver(s);r.observe(t.subTree.el.parentNode,{childList:!0}),vr(()=>r.disconnect())})}function lo(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{lo(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Zs(e.el,t);else if(e.type===me)e.children.forEach(n=>lo(n,t));else if(e.type===fn){let{el:n,anchor:s}=e;for(;n&&(Zs(n,t),n!==s);)n=n.nextSibling}}function Zs(e,t){if(e.nodeType===1){const n=e.style;let s="";for(const r in t)n.setProperty(`--${r}`,t[r]),s+=`--${r}: ${t[r]};`;n[Ca]=s}}const vf=/(^|;)\s*display\s*:/;function bf(e,t,n){const s=e.style,r=Oe(n);let o=!1;if(n&&!r){if(t)if(Oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Is(s,l,"")}else for(const i in t)n[i]==null&&Is(s,i,"");for(const i in n)i==="display"&&(o=!0),Is(s,i,n[i])}else if(r){if(t!==n){const i=s[Ca];i&&(n+=";"+i),s.cssText=n,o=vf.test(n)}}else t&&e.removeAttribute("style");Ys in e&&(e[Ys]=o?s.display:"",e[xa]&&(s.display="none"))}const mi=/\s*!important$/;function Is(e,t,n){if(se(n))n.forEach(s=>Is(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=yf(e,t);mi.test(n)?e.setProperty(ct(s),n.replace(mi,""),"important"):e[s]=n}}const gi=["Webkit","Moz","ms"],Nr={};function yf(e,t){const n=Nr[t];if(n)return n;let s=Ge(t);if(s!=="filter"&&s in e)return Nr[t]=s;s=ms(s);for(let r=0;rLr||(xf.then(()=>Lr=0),Lr=Date.now());function Cf(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;yt(Ef(s,n.value),t,5,[s])};return n.value=e,n.attached=Sf(),n}function Ef(e,t){if(se(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const _i=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Tf=(e,t,n,s,r,o)=>{const i=r==="svg";t==="class"?hf(e,s,i):t==="style"?bf(e,n,s):hs(t)?uo(t)||wf(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Af(e,t,s,i))?(yi(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bi(e,t,s,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Oe(s))?yi(e,Ge(t),s,o,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),bi(e,t,s,i))};function Af(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&_i(t)&&ae(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return _i(t)&&Oe(n)?!1:t in e}const xi={};/*! #__NO_SIDE_EFFECTS__ */function Ea(e,t,n){const s=So(e,t);rr(s)&&Ee(s,t);class r extends wr{constructor(i){super(s,i,n)}}return r.def=s,r}/*! #__NO_SIDE_EFFECTS__ */const Of=(e,t)=>Ea(e,t,Na),Pf=typeof HTMLElement<"u"?HTMLElement:class{};class wr extends Pf{constructor(t,n={},s=tr){super(),this._def=t,this._props=n,this._createApp=s,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&s!==tr?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this,this._def.__asyncLoader||this._resolveProps(this._def)}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof wr){this._parent=t;break}this._instance||(this._resolved?(this._setParent(),this._update()):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._instance.provides=t._instance.provides)}disconnectedCallback(){this._connected=!1,Nn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let s=0;s{for(const r of s)this._setAttr(r.attributeName)}),this._ob.observe(this,{attributes:!0});const t=(s,r=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:o,styles:i}=s;let l;if(o&&!se(o))for(const u in o){const c=o[u];(c===Number||c&&c.type===Number)&&(u in this._props&&(this._props[u]=Ls(this._props[u])),(l||(l=Object.create(null)))[Ge(u)]=!0)}this._numberProps=l,r&&this._resolveProps(s),this.shadowRoot&&this._applyStyles(i),this._mount(s)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(s=>t(this._def=s,!0)):t(this._def)}_mount(t){this._app=this._createApp(t),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const s in n)xe(this,s)||Object.defineProperty(this,s,{get:()=>de(n[s])})}_resolveProps(t){const{props:n}=t,s=se(n)?n:Object.keys(n||{});for(const r of Object.keys(this))r[0]!=="_"&&s.includes(r)&&this._setProp(r,this[r]);for(const r of s.map(Ge))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(o){this._setProp(r,o,!0,!0)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let s=n?this.getAttribute(t):xi;const r=Ge(t);n&&this._numberProps&&this._numberProps[r]&&(s=Ls(s)),this._setProp(r,s,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,r=!1){n!==this._props[t]&&(n===xi?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),r&&this._instance&&this._update(),s&&(n===!0?this.setAttribute(ct(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(ct(t),n+""):n||this.removeAttribute(ct(t))))}_update(){Ia(this._createVNode(),this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=W(this._def,Ee(t,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const r=(o,i)=>{this.dispatchEvent(new CustomEvent(o,rr(i[0])?Ee({detail:i},i[0]):{detail:i}))};s.emit=(o,...i)=>{r(o,i),ct(o)!==o&&r(ct(o),i)},this._setParent()}),n}_applyStyles(t,n){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const s=this._nonce;for(let r=t.length-1;r>=0;r--){const o=document.createElement("style");s&&o.setAttribute("nonce",s),o.textContent=t[r],this.shadowRoot.prepend(o)}}_parseSlots(){const t=this._slots={};let n;for(;n=this.firstChild;){const s=n.nodeType===1&&n.getAttribute("slot")||"default";(t[s]||(t[s]=[])).push(n),this.removeChild(n)}}_renderSlots(){const t=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let s=0;s(delete e.props.mode,e),Rf=Vf({name:"TransitionGroup",props:Ee({},ya,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=dt(),s=_o();let r,o;return mr(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!If(r[0].el,n.vnode.el,i))return;r.forEach(Df),r.forEach(Mf);const l=r.filter(jf);_a(),l.forEach(u=>{const c=u.el,a=c.style;zt(c,i),a.transform=a.webkitTransform=a.transitionDuration="";const d=c[er]=f=>{f&&f.target!==c||(!f||/transform$/.test(f.propertyName))&&(c.removeEventListener("transitionend",d),c[er]=null,Ht(c,i))};c.addEventListener("transitionend",d)})}),()=>{const i=ve(e),l=ka(i);let u=i.tag||me;if(r=[],o)for(let c=0;c{l.split(/\s+/).forEach(u=>u&&s.classList.remove(u))}),n.split(/\s+/).forEach(l=>l&&s.classList.add(l)),s.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(s);const{hasTransform:i}=wa(s);return o.removeChild(s),i}const tn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return se(t)?n=>An(t,n):t};function Nf(e){e.target.composing=!0}function Ci(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const bt=Symbol("_assign"),mn={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[bt]=tn(r);const o=s||r.props&&r.props.type==="number";Mt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=Ns(l)),e[bt](l)}),n&&Mt(e,"change",()=>{e.value=e.value.trim()}),t||(Mt(e,"compositionstart",Nf),Mt(e,"compositionend",Ci),Mt(e,"change",Ci))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:o}},i){if(e[bt]=tn(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ns(e.value):e.value,u=t??"";l!==u&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===u)||(e.value=u))}},_r={deep:!0,created(e,t,n){e[bt]=tn(n),Mt(e,"change",()=>{const s=e._modelValue,r=Dn(e),o=e.checked,i=e[bt];if(se(s)){const l=lr(s,r),u=l!==-1;if(o&&!u)i(s.concat(r));else if(!o&&u){const c=[...s];c.splice(l,1),i(c)}}else if(vn(s)){const l=new Set(s);o?l.add(r):l.delete(r),i(l)}else i(za(e,o))})},mounted:Ei,beforeUpdate(e,t,n){e[bt]=tn(n),Ei(e,t,n)}};function Ei(e,{value:t,oldValue:n},s){e._modelValue=t;let r;if(se(t))r=lr(t,s.props.value)>-1;else if(vn(t))r=t.has(s.props.value);else{if(t===n)return;r=Yt(t,za(e,!0))}e.checked!==r&&(e.checked=r)}const jo={created(e,{value:t},n){e.checked=Yt(t,n.props.value),e[bt]=tn(n),Mt(e,"change",()=>{e[bt](Dn(e))})},beforeUpdate(e,{value:t,oldValue:n},s){e[bt]=tn(s),t!==n&&(e.checked=Yt(t,s.props.value))}},$a={deep:!0,created(e,{value:t,modifiers:{number:n}},s){const r=vn(t);Mt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Ns(Dn(i)):Dn(i));e[bt](e.multiple?r?new Set(o):o:o[0]),e._assigning=!0,Nn(()=>{e._assigning=!1})}),e[bt]=tn(s)},mounted(e,{value:t}){Ti(e,t)},beforeUpdate(e,t,n){e[bt]=tn(n)},updated(e,{value:t}){e._assigning||Ti(e,t)}};function Ti(e,t){const n=e.multiple,s=se(t);if(!(n&&!s&&!vn(t))){for(let r=0,o=e.options.length;rString(c)===String(l)):i.selected=lr(t,l)>-1}else i.selected=t.has(l);else if(Yt(Dn(i),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Dn(e){return"_value"in e?e._value:e.value}function za(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Io={created(e,t,n){$s(e,t,n,null,"created")},mounted(e,t,n){$s(e,t,n,null,"mounted")},beforeUpdate(e,t,n,s){$s(e,t,n,s,"beforeUpdate")},updated(e,t,n,s){$s(e,t,n,s,"updated")}};function Va(e,t){switch(e){case"SELECT":return $a;case"TEXTAREA":return mn;default:switch(t){case"checkbox":return _r;case"radio":return jo;default:return mn}}}function $s(e,t,n,s,r){const i=Va(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,s)}function Lf(){mn.getSSRProps=({value:e})=>({value:e}),jo.getSSRProps=({value:e},t)=>{if(t.props&&Yt(t.props.value,e))return{checked:!0}},_r.getSSRProps=({value:e},t)=>{if(se(e)){if(t.props&&lr(e,t.props.value)>-1)return{checked:!0}}else if(vn(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},Io.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=Va(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const Ff=["ctrl","shift","alt","meta"],Bf={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ff.some(n=>e[`${n}Key`]&&!t.includes(n))},ao=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const o=ct(r.key);if(t.some(i=>i===o||Uf[i]===o))return e(r)})},Da=Ee({patchProp:Tf},cf);let is,Ai=!1;function Ma(){return is||(is=Hl(Da))}function ja(){return is=Ai?is:Wl(Da),Ai=!0,is}const Ia=(...e)=>{Ma().render(...e)},Hf=(...e)=>{ja().hydrate(...e)},tr=(...e)=>{const t=Ma().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fa(s);if(!r)return;const o=t._component;!ae(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const i=n(r,!1,La(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),i},t},Na=(...e)=>{const t=ja().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fa(s);if(r)return n(r,!0,La(r))},t};function La(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fa(e){return Oe(e)?document.querySelector(e):e}let Oi=!1;const Wf=()=>{Oi||(Oi=!0,Lf(),mf())};/** * vue v3.5.12 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Kf=()=>{},qf=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:wl,BaseTransitionPropsValidators:xo,Comment:Me,DeprecationTypes:lf,EffectScope:ho,ErrorCodes:vc,ErrorTypeStrings:Zd,Fragment:me,KeepAlive:Wc,ReactiveEffect:ls,Static:fn,Suspense:Vd,Teleport:Tc,Text:Xt,TrackOpTypes:cc,Transition:kr,TransitionGroup:Pa,TriggerOpTypes:dc,VueElement:wr,assertNumber:gc,callWithAsyncErrorHandling:yt,callWithErrorHandling:In,camelize:Ge,capitalize:ms,cloneVNode:Pt,compatUtils:of,compile:Kf,computed:he,createApp:tr,createBlock:qe,createCommentVNode:Re,createElementBlock:q,createElementVNode:S,createHydrationRenderer:Wl,createPropsRestProxy:cd,createRenderer:Hl,createSSRApp:Na,createSlots:Jc,createStaticVNode:Bd,createTextVNode:G,createVNode:W,customRef:al,defineAsyncComponent:Uc,defineComponent:So,defineCustomElement:Ea,defineEmits:ed,defineExpose:td,defineModel:rd,defineOptions:nd,defineProps:Zc,defineSSRCustomElement:Of,defineSlots:sd,devtools:ef,effect:$u,effectScope:Pu,getCurrentInstance:dt,getCurrentScope:mo,getCurrentWatcher:fc,getTransitionRawChildren:pr,guardReactiveProps:aa,h:ha,handleError:bn,hasInjectionContext:yd,hydrate:Hf,hydrateOnIdle:jc,hydrateOnInteraction:Fc,hydrateOnMediaQuery:Lc,hydrateOnVisible:Nc,initCustomFormatter:Jd,initDirectivesForSSR:Wf,inject:ht,isMemoSame:ma,isProxy:jn,isReactive:Qt,isReadonly:en,isRef:ze,isRuntimeOnly:qd,isShallow:pt,isVNode:It,markRaw:il,mergeDefaults:ad,mergeModels:ud,mergeProps:Mo,nextTick:Nn,normalizeClass:$e,normalizeProps:Eu,normalizeStyle:Ve,onActivated:xl,onBeforeMount:Eo,onBeforeUnmount:gr,onBeforeUpdate:El,onDeactivated:Sl,onErrorCaptured:Pl,onMounted:Ct,onRenderTracked:Ol,onRenderTriggered:Al,onScopeDispose:Ui,onServerPrefetch:Tl,onUnmounted:vr,onUpdated:mr,onWatcherCleanup:cl,openBlock:I,popScopeId:_c,provide:rs,proxyRefs:ko,pushScopeId:wc,queuePostFlushCb:Hs,reactive:Zt,readonly:gs,ref:ie,registerRuntimeCompiler:Kd,render:Ia,renderList:We,renderSlot:we,resolveComponent:Gc,resolveDirective:Qc,resolveDynamicComponent:Ao,resolveFilter:rf,resolveTransitionHooks:$n,setBlockTracking:eo,setDevtoolsHook:tf,setTransitionHooks:jt,shallowReactive:ol,shallowReadonly:Yu,shallowRef:yo,ssrContextKey:Ql,ssrUtils:sf,stop:Ru,toDisplayString:ke,toHandlerKey:Zn,toHandlers:Xc,toRaw:ve,toRef:lc,toRefs:rc,toValue:tc,transformVNodeArgs:Ld,triggerRef:ec,unref:de,useAttrs:ld,useCssModule:$f,useCssVars:gf,useHost:Ta,useId:Oc,useModel:ea,useSSRContext:Jl,useShadowRoot:zf,useSlots:id,useTemplateRef:Pc,useTransitionState:_o,vModelCheckbox:_r,vModelDynamic:Io,vModelRadio:jo,vModelSelect:za,vModelText:mn,vShow:Sa,version:ga,warn:Yd,watch:vt,watchEffect:br,watchPostEffect:Xl,watchSyncEffect:Yl,withAsyncContext:dd,withCtx:K,withDefaults:od,withDirectives:Ln,withKeys:Va,withMemo:Xd,withModifiers:ao,withScopeId:xc},Symbol.toStringTag,{value:"Module"})),ye={__name:"Icon",props:{filled:Boolean},setup(e){return(t,n)=>(I(),q("span",{"aria-hidden":"true",class:$e(["icon material-symbols-outlined",e.filled?"fill":""])},[we(t.$slots,"default")],2))}},Gf={class:"chip-label"},Ba={__name:"Chip",props:["type"],setup(e){const t=e;return(n,s)=>(I(),q("button",{class:$e(["chip",t.type||"assist"])},[W(ye,{class:"chip-icon"},{default:K(()=>[we(n.$slots,"icon")]),_:3}),S("span",Gf,[we(n.$slots,"label")]),s[0]||(s[0]=S("div",{class:"state-layer chip-state-layer"},null,-1))],2))}};function xr(e){return mo()?(Ui(e),!0):!1}function Pi(){const e=new Set,t=r=>{e.delete(r)};return{on:r=>{e.add(r);const o=()=>t(r);return xr(o),{off:o}},off:t,trigger:(...r)=>Promise.all(Array.from(e).map(o=>o(...r)))}}function ut(e){return typeof e=="function"?e():de(e)}const Ua=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Qf=Object.prototype.toString,Jf=e=>Qf.call(e)==="[object Object]",gn=()=>{},Xf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function No(e,t){function n(...s){return new Promise((r,o)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(o)})}return n}const Ha=e=>e();function Yf(e,t={}){let n,s,r=gn;const o=l=>{clearTimeout(l),r(),r=gn};return l=>{const u=ut(e),c=ut(t.maxWait);return n&&o(n),u<=0||c!==void 0&&c<=0?(s&&(o(s),s=null),Promise.resolve(l())):new Promise((a,d)=>{r=t.rejectOnCancel?d:a,c&&!s&&(s=setTimeout(()=>{n&&o(n),s=null,a(l())},c)),n=setTimeout(()=>{s&&o(s),s=null,a(l())},u)})}}function Zf(...e){let t=0,n,s=!0,r=gn,o,i,l,u,c;!ze(e[0])&&typeof e[0]=="object"?{delay:i,trailing:l=!0,leading:u=!0,rejectOnCancel:c=!1}=e[0]:[i,l=!0,u=!0,c=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=gn)};return f=>{const g=ut(i),m=Date.now()-t,C=()=>o=f();return a(),g<=0?(t=Date.now(),C()):(m>g&&(u||!s)?(t=Date.now(),C()):l&&(o=new Promise((R,E)=>{r=c?E:R,n=setTimeout(()=>{t=Date.now(),s=!0,R(C()),a()},Math.max(0,g-m))})),!u&&!n&&(n=setTimeout(()=>s=!0,g)),s=!1,o)}}function ep(e=Ha){const t=ie(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...o)=>{t.value&&e(...o)};return{isActive:gs(t),pause:n,resume:s,eventFilter:r}}function tp(e){return dt()}function Wa(e,t=200,n={}){return No(Yf(t,n),e)}function np(e,t=200,n=!1,s=!0,r=!1){return No(Zf(t,n,s,r),e)}function sp(e,t,n={}){const{eventFilter:s=Ha,...r}=n;return vt(e,No(s,t),r)}function Ka(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:o,pause:i,resume:l,isActive:u}=ep(s);return{stop:sp(e,t,{...r,eventFilter:o}),pause:i,resume:l,isActive:u}}function Lo(e,t=!0,n){tp()?Ct(e,n):t?e():Nn(e)}const Nt=Ua?window:void 0,rp=Ua?window.document:void 0;function Ot(e){var t;const n=ut(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Ke(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Nt):[t,n,s,r]=e,!t)return gn;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const o=[],i=()=>{o.forEach(a=>a()),o.length=0},l=(a,d,f,g)=>(a.addEventListener(d,f,g),()=>a.removeEventListener(d,f,g)),u=vt(()=>[Ot(t),ut(r)],([a,d])=>{if(i(),!a)return;const f=Jf(d)?{...d}:d;o.push(...n.flatMap(g=>s.map(m=>l(a,g,m,f))))},{immediate:!0,flush:"post"}),c=()=>{u(),i()};return xr(c),c}function op(){const e=ie(!1),t=dt();return t&&Ct(()=>{e.value=!0},t),e}function Fo(e){const t=op();return he(()=>(t.value,!!e()))}function zi(e,t={}){const{window:n=Nt}=t,s=Fo(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const o=ie(!1),i=c=>{o.value=c.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",i):r.removeListener(i))},u=br(()=>{s.value&&(l(),r=n.matchMedia(ut(e)),"addEventListener"in r?r.addEventListener("change",i):r.addListener(i),o.value=r.matches)});return xr(()=>{u(),l(),r=void 0}),o}const $s=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Rs="__vueuse_ssr_handlers__",ip=lp();function lp(){return Rs in $s||($s[Rs]=$s[Rs]||{}),$s[Rs]}function ap(e,t){return ip[e]||t}function up(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const cp={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},$i="vueuse-storage";function qa(e,t,n,s={}){var r;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:u=!0,mergeDefaults:c=!1,shallow:a,window:d=Nt,eventFilter:f,onError:g=O=>{console.error(O)},initOnMounted:m}=s,C=(a?yo:ie)(typeof t=="function"?t():t);if(!n)try{n=ap("getDefaultStorage",()=>{var O;return(O=Nt)==null?void 0:O.localStorage})()}catch(O){g(O)}if(!n)return C;const R=ut(t),E=up(R),x=(r=s.serializer)!=null?r:cp[E],{pause:v,resume:k}=Ka(C,()=>P(C.value),{flush:o,deep:i,eventFilter:f});d&&l&&Lo(()=>{n instanceof Storage?Ke(d,"storage",D):Ke(d,$i,$),m&&D()}),m||D();function w(O,F){if(d){const A={key:e,oldValue:O,newValue:F,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",A):new CustomEvent($i,{detail:A}))}}function P(O){try{const F=n.getItem(e);if(O==null)w(F,null),n.removeItem(e);else{const A=x.write(O);F!==A&&(n.setItem(e,A),w(F,A))}}catch(F){g(F)}}function z(O){const F=O?O.newValue:n.getItem(e);if(F==null)return u&&R!=null&&n.setItem(e,x.write(R)),R;if(!O&&c){const A=x.read(F);return typeof c=="function"?c(A,R):E==="object"&&!Array.isArray(A)?{...R,...A}:A}else return typeof F!="string"?F:x.read(F)}function D(O){if(!(O&&O.storageArea!==n)){if(O&&O.key==null){C.value=R;return}if(!(O&&O.key!==e)){v();try{(O==null?void 0:O.newValue)!==x.write(C.value)&&(C.value=z(O))}catch(F){g(F)}finally{O?Nn(k):k()}}}}function $(O){D(O.detail)}return C}function dp(e,t,n={}){const{window:s=Nt,...r}=n;let o;const i=Fo(()=>s&&"ResizeObserver"in s),l=()=>{o&&(o.disconnect(),o=void 0)},u=he(()=>{const d=ut(e);return Array.isArray(d)?d.map(f=>Ot(f)):[Ot(d)]}),c=vt(u,d=>{if(l(),i.value&&s){o=new ResizeObserver(t);for(const f of d)f&&o.observe(f,r)}},{immediate:!0,flush:"post"}),a=()=>{l(),c()};return xr(a),{isSupported:i,stop:a}}function fp(e,t={width:0,height:0},n={}){const{window:s=Nt,box:r="content-box"}=n,o=he(()=>{var d,f;return(f=(d=Ot(e))==null?void 0:d.namespaceURI)==null?void 0:f.includes("svg")}),i=ie(t.width),l=ie(t.height),{stop:u}=dp(e,([d])=>{const f=r==="border-box"?d.borderBoxSize:r==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(s&&o.value){const g=Ot(e);if(g){const m=g.getBoundingClientRect();i.value=m.width,l.value=m.height}}else if(f){const g=Array.isArray(f)?f:[f];i.value=g.reduce((m,{inlineSize:C})=>m+C,0),l.value=g.reduce((m,{blockSize:C})=>m+C,0)}else i.value=d.contentRect.width,l.value=d.contentRect.height},n);Lo(()=>{const d=Ot(e);d&&(i.value="offsetWidth"in d?d.offsetWidth:t.width,l.value="offsetHeight"in d?d.offsetHeight:t.height)});const c=vt(()=>Ot(e),d=>{i.value=d?t.width:0,l.value=d?t.height:0});function a(){u(),c()}return{width:i,height:l,stop:a}}function pp(e={}){const{initialValue:t=""}=e,n=Fo(()=>typeof window<"u"&&"EyeDropper"in window),s=ie(t);async function r(o){if(!n.value)return;const l=await new window.EyeDropper().open(o);return s.value=l.sRGBHex,l}return{isSupported:n,sRGBHex:s,open:r}}const hp={multiple:!0,accept:"*",reset:!1,directory:!1};function mp(e={}){const{document:t=rp}=e,n=ie(null),{on:s,trigger:r}=Pi(),{on:o,trigger:i}=Pi();let l;t&&(l=t.createElement("input"),l.type="file",l.onchange=a=>{const d=a.target;n.value=d.files,r(n.value)},l.oncancel=()=>{i()});const u=()=>{n.value=null,l&&l.value&&(l.value="",r(null))},c=a=>{if(!l)return;const d={...hp,...e,...a};l.multiple=d.multiple,l.accept=d.accept,l.webkitdirectory=d.directory,Xf(d,"capture")&&(l.capture=d.capture),d.reset&&u(),l.click()};return{files:gs(n),open:c,reset:u,onCancel:o,onChange:s}}function Sr(e,t={}){const{initialValue:n=!1,focusVisible:s=!1,preventScroll:r=!1}=t,o=ie(!1),i=he(()=>Ot(e));Ke(i,"focus",u=>{var c,a;(!s||(a=(c=u.target).matches)!=null&&a.call(c,":focus-visible"))&&(o.value=!0)}),Ke(i,"blur",()=>o.value=!1);const l=he({get:()=>o.value,set(u){var c,a;!u&&o.value?(c=i.value)==null||c.blur():u&&!o.value&&((a=i.value)==null||a.focus({preventScroll:r}))}});return vt(i,()=>{l.value=n},{immediate:!0,flush:"post"}),{focused:l}}const Ri=1;function gp(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=gn,onScroll:o=gn,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:u="auto",window:c=Nt,onError:a=z=>{console.error(z)}}=t,d=ie(0),f=ie(0),g=he({get(){return d.value},set(z){C(z,void 0)}}),m=he({get(){return f.value},set(z){C(void 0,z)}});function C(z,D){var $,O,F,A;if(!c)return;const N=ut(e);if(!N)return;(F=N instanceof Document?c.document.body:N)==null||F.scrollTo({top:($=ut(D))!=null?$:m.value,left:(O=ut(z))!=null?O:g.value,behavior:ut(u)});const Q=((A=N==null?void 0:N.document)==null?void 0:A.documentElement)||(N==null?void 0:N.documentElement)||N;g!=null&&(d.value=Q.scrollLeft),m!=null&&(f.value=Q.scrollTop)}const R=ie(!1),E=Zt({left:!0,right:!1,top:!0,bottom:!1}),x=Zt({left:!1,right:!1,top:!1,bottom:!1}),v=z=>{R.value&&(R.value=!1,x.left=!1,x.right=!1,x.top=!1,x.bottom=!1,r(z))},k=Wa(v,n+s),w=z=>{var D;if(!c)return;const $=((D=z==null?void 0:z.document)==null?void 0:D.documentElement)||(z==null?void 0:z.documentElement)||Ot(z),{display:O,flexDirection:F}=getComputedStyle($),A=$.scrollLeft;x.left=Ad.value;const N=Math.abs(A)<=(i.left||0),Q=Math.abs(A)+$.clientWidth>=$.scrollWidth-(i.right||0)-Ri;O==="flex"&&F==="row-reverse"?(E.left=Q,E.right=N):(E.left=N,E.right=Q),d.value=A;let ee=$.scrollTop;z===c.document&&!ee&&(ee=c.document.body.scrollTop),x.top=eef.value;const j=Math.abs(ee)<=(i.top||0),ne=Math.abs(ee)+$.clientHeight>=$.scrollHeight-(i.bottom||0)-Ri;O==="flex"&&F==="column-reverse"?(E.top=ne,E.bottom=j):(E.top=j,E.bottom=ne),f.value=ee},P=z=>{var D;if(!c)return;const $=(D=z.target.documentElement)!=null?D:z.target;w($),R.value=!0,k(z),o(z)};return Ke(e,"scroll",n?np(P,n,!0,!1):P,l),Lo(()=>{try{const z=ut(e);if(!z)return;w(z)}catch(z){a(z)}}),Ke(e,"scrollend",v,l),{x:g,y:m,isScrolling:R,arrivedState:E,directions:x,measure(){const z=ut(e);c&&z&&w(z)}}}function Fr(e={}){const{touch:t=!0,drag:n=!0,capture:s=!1,initialValue:r=!1,window:o=Nt}=e,i=ie(r),l=ie(null);if(!o)return{pressed:i,sourceType:l};const u=d=>()=>{i.value=!0,l.value=d},c=()=>{i.value=!1,l.value=null},a=he(()=>Ot(e.target)||o);return Ke(a,"mousedown",u("mouse"),{passive:!0,capture:s}),Ke(o,"mouseleave",c,{passive:!0,capture:s}),Ke(o,"mouseup",c,{passive:!0,capture:s}),n&&(Ke(a,"dragstart",u("mouse"),{passive:!0,capture:s}),Ke(o,"drop",c,{passive:!0,capture:s}),Ke(o,"dragend",c,{passive:!0,capture:s})),t&&(Ke(a,"touchstart",u("touch"),{passive:!0,capture:s}),Ke(o,"touchend",c,{passive:!0,capture:s}),Ke(o,"touchcancel",c,{passive:!0,capture:s})),{pressed:i,sourceType:l}}function vp(e){const t=zi("(prefers-color-scheme: light)",e),n=zi("(prefers-color-scheme: dark)",e);return he(()=>n.value?"dark":t.value?"light":"no-preference")}function bp(e="history",t={}){const{initialValue:n={},removeNullishValues:s=!0,removeFalsyValues:r=!1,write:o=!0,window:i=Nt}=t;if(!i)return Zt(n);const l=Zt({});function u(){if(e==="history")return i.location.search||"";if(e==="hash"){const E=i.location.hash||"",x=E.indexOf("?");return x>0?E.slice(x):""}else return(i.location.hash||"").replace(/^#/,"")}function c(E){const x=E.toString();if(e==="history")return`${x?`?${x}`:""}${i.location.hash||""}`;if(e==="hash-params")return`${i.location.search||""}${x?`#${x}`:""}`;const v=i.location.hash||"#",k=v.indexOf("?");return k>0?`${v.slice(0,k)}${x?`?${x}`:""}`:`${v}${x?`?${x}`:""}`}function a(){return new URLSearchParams(u())}function d(E){const x=new Set(Object.keys(l));for(const v of E.keys()){const k=E.getAll(v);l[v]=k.length>1?k:E.get(v)||"",x.delete(v)}Array.from(x).forEach(v=>delete l[v])}const{pause:f,resume:g}=Ka(l,()=>{const E=new URLSearchParams("");Object.keys(l).forEach(x=>{const v=l[x];Array.isArray(v)?v.forEach(k=>E.append(x,k)):s&&v==null||r&&!v?E.delete(x):E.set(x,v)}),m(E)},{deep:!0});function m(E,x){f(),x&&d(E),i.history.replaceState(i.history.state,i.document.title,i.location.pathname+c(E)),g()}function C(){o&&m(a(),!0)}Ke(i,"popstate",C,!1),e!=="history"&&Ke(i,"hashchange",C,!1);const R=a();return R.keys().next().value?d(R):Object.assign(l,n),l}const nr=[{id:"theme",settings:[{id:"ptheme",title:"Algemeen",type:"ThemeColors",default:"auto,207,95,55"},{id:"pagecolor",title:"Achtergrondkleur",subtitle:"Achtergrond",type:"ColorOverrideSetting",default:"false,0,0,7"},{id:"wallpaper",title:"Achtergrondafbeelding",type:"DecorationPickerSetting",default:"none,"},{id:"wallpaper-opacity",title:"Achtergrondtransparantie",type:"Slider",display:"inline",default:.2,format:"percent",decimals:0,min:.05,max:1,step:.05,conditions:[{settingId:"wallpaper",operator:"not starting with",value:"none"}]},{id:"sidecolor",title:"Menubalkkleur",subtitle:"Menubalk",type:"ColorOverrideSetting",default:"false,207,95,55"},{id:"decoration",title:"Menubalkdecoratie",type:"DecorationPickerSetting",default:"none,"},{id:"decoration-size",title:"Menubalkdecoratieformaat",type:"Slider",display:"inline",default:1,format:"percent",decimals:0,min:.5,max:3,step:.1,conditions:[{settingId:"decoration",operator:"not starting with",value:"none"}]},{id:"appbarcolor",title:"Appbalkkleur",subtitle:"Appbalk",type:"ColorOverrideSetting",default:"false,207,95,47"},{id:"shape",title:"Hoekstraal",type:"Slider",default:8,format:"px",decimals:0,min:0,max:20,step:1},{id:"custom-css",title:"Aangepaste CSS",type:"LinkToOptionsTab",default:""},{id:"custom-css2",hide:!0,default:""}]},{id:"login",settings:[{id:"magisterLogin-enabled",title:"Automatisch inloggen",default:!0},{id:"magisterLogin-username",title:"Gebruikersnaam",subtitle:"Je gebruikersnaam wordt vanzelf ingevoerd.",type:"Text",default:"",conditions:[{settingId:"magisterLogin-enabled",operator:"equal",value:!0}]},{id:"magisterLogin-email",title:"Microsoft-account",subtitle:"Vul het e-mailadres in van je Microsoft-schoolaccount—als je school gebruikmaakt van Single Sign On via Microsoft. Dit account wordt tijdens het inloggen aangeklikt.",type:"Text",fieldType:"email",default:"",conditions:[{settingId:"magisterLogin-enabled",operator:"equal",value:!0}]}]},{id:"sidebar",settings:[{id:"magister-appbar-week",title:"Weeknummer in menubalk",default:!0},{id:"shortcuts",title:"Snelkoppelingen menubalk",type:"ShortcutsEditor",default:[{icon:"",href:"$SCHOOLNAAM.zportal.nl/app",hotkey:"z"}]},{id:"magister-picture",title:"Profielfoto",type:"SingleChoice",default:"hide",options:[{value:"show",title:"Schoolfoto",icon:"photo_camera_front"},{value:"custom",title:"Aangepast",icon:"add_photo_alternate"},{value:"hide",title:"Verbergen",icon:"visibility_off"}]},{id:"magister-picture-source",title:"Profielfoto kiezen",type:"ImageInput",default:null,conditions:[{settingId:"magister-picture",operator:"equal",value:"custom"}]},{id:"hotkeys-enabled",title:"Sneltoetsen",subtitle:"Houd Alt ingedrukt en druk op een letter op je toetsenbord voor snelle navigatie.",default:!0}]},{id:"start",settings:[{id:"start-enabled",title:"Pagina Start",subtitle:"De pagina 'Vandaag' is nu 'Start'. Daarin zie je je rooster en gepersonaliseerde widgets. Aanvullende opties op Magister zelf.",default:!0},{id:"start-schedule-view",title:"Rooster in Start",type:"SingleChoice",default:"schedule",conditions:[{settingId:"start-enabled",operator:"equal",value:!0}],options:[{value:"schedule",title:"Agenda",icon:"calendar_view_day"},{value:"list",title:"Lijst",icon:"list"}]},{id:"start-schedule-extra-day",title:"Volgende dag tonen in Start",subtitle:"Springen naar de eerstvolgende dag met lessen wanneer er vandaag geen lessen (meer) zijn. Alleen in de weergavemodus 'Dag'.",default:!0,conditions:[{settingId:"start-enabled",operator:"equal",value:!0},{settingId:"start-schedule-view",operator:"equal",value:"schedule"}]}]},{id:"grades",settings:[{id:"suf-threshold",title:"Voldoendegrens",type:"Slider",default:5.5,decimals:1,min:1,max:10,step:.1},{id:"cc",title:"Cijfercalculator",subtitle:"Zie wat je moet halen of wat je komt te staan op basis van je cijferlijst en/of aangepaste cijfers.",default:!0},{id:"cs",title:"Cijferstatistieken",subtitle:"Nieuw tabblad in het cijferoverzicht met statistieken, grafiekjes en handige filters.",default:!0},{id:"cb",title:"Cijferback-up",subtitle:"Knop in het cijferoverzicht om je cijferlijst te exporteren en te importeren.",default:!0,links:[{icon:"upload",label:"Cijferback-up importeren",href:"https://qkeleq10.github.io/studytools/grades"}]},{id:"insuf-red",title:"Onvoldoendes rood kleuren",subtitle:"Alleen in het cijferoverzicht en in de cijferwidget.",default:!0}]},{id:"studyguide",settings:[{id:"sw-enabled",title:"Studiewijzers rangschikken",subtitle:"Studiewijzers zullen worden gegroepeerd op vak.",default:!0},{id:"sw-cols",title:"Aantal kolommen",type:"Slider",default:3,decimals:0,min:1,max:5,step:1,conditions:[{settingId:"sw-enabled",operator:"equal",value:!0}]},{id:"sw-period",title:"Periodenummers bij studiewijzers",subtitle:"In plaats van de naam van de studiewijzer.",default:!0,conditions:[{settingId:"sw-enabled",operator:"equal",value:!0}]},{id:"sw-current-week-behavior",title:"Huidige week in studiewijzer",type:"SingleChoice",default:"focus",options:[{value:"focus",title:"Scrollen",icon:"bolt"},{value:"highlight",title:"Markeren",icon:"ink_highlighter"},{value:"off",title:"Uit",icon:"block"}]},{id:"sw-resources-auto",title:"Aanbevelingen",subtitle:"Soms wordt er een gecureerde collectie hulpbronnen getoond in de zijbalk.",default:!0}]},{id:"about",settings:[{id:"language",title:"Taal",subtitle:"Experimenteel",type:"SingleChoice",default:"nl-NL",options:[{value:"nl-NL",title:"Nederlands"},{value:"en-GB",title:"English"},{value:"fr-FR",title:"Français"},{value:"de-DE",title:"Deutsch"},{value:"sv-SE",title:"Svenska"},{value:"la-LA",title:"Latina lingua"}]},{id:"beta-options",title:"Ontwikkelaarsopties",subtitle:"Experimenteel",default:!1},{id:"darken-content",title:"Inhoud donker maken",subtitle:"Experimenteel. Studiewijzers en opdrachten donker maken indien het donkere thema actief is.",conditions:[{settingId:"beta-options",operator:"equal",value:!0}],default:!0},{id:"verbosity",title:"Uitgebreide consoleberichten",subtitle:"Experimenteel. Er worden meer activiteiten geplaatst in de console.",default:!1,conditions:[{settingId:"beta-options",operator:"equal",value:!0}]}]}],Pe=window.browser||window.chrome;function yp(){let e=ie({});Ct(()=>{var s,r,o;(s=Pe==null?void 0:Pe.storage)!=null&&s.sync&&(Pe.storage.sync.get().then(i=>{e.value=i,nr.forEach(l=>{l.settings.forEach(u=>{typeof e.value[u.id]>"u"&&(e.value[u.id]=u.default)})}),Pe.storage.sync.onChanged.addListener(l=>{for(let u in l)e.value[u]!==l[u].newValue&&(e.value[u]=l[u].newValue)})}),e.value.v=(o=(r=Pe==null?void 0:Pe.runtime)==null?void 0:r.getManifest())==null?void 0:o.version)});const t=Wa(()=>{var s;if((s=Pe==null?void 0:Pe.storage)!=null&&s.sync){let r={...e.value};jn(r)&&(r=ve(r)),Pe.storage.sync.set(r)}},250,{maxWait:2e3}),n=()=>{var i,l;const s=(i=e.value.ptheme)==null?void 0:i.split(","),r=(s==null?void 0:s[0])==="auto";let o=s;r&&((l=window.matchMedia)!=null&&l.call(window,"(prefers-color-scheme: dark)").matches)?o[0]="dark":r&&(o[0]="light"),document.documentElement.setAttribute("theme",(o==null?void 0:o[0])||"light"),document.documentElement.style.setProperty("--palette-primary-hue",(o==null?void 0:o[1])||207),document.documentElement.style.setProperty("--palette-primary-saturation",`${(o==null?void 0:o[2])||95}%`),document.documentElement.style.setProperty("--palette-primary-luminance",`${(o==null?void 0:o[3])||55}%`)};return br(()=>{({...e.value},t()),n()}),e}function kp(){let e=ie({});return Ct(()=>{var t;(t=Pe==null?void 0:Pe.storage)!=null&&t.local&&(Pe.storage.local.get().then(n=>{e.value=n}),Pe.storage.local.onChanged.addListener(n=>{for(let s in n)e.value[s]!==n[s].newValue&&(e.value[s]=n[s].newValue)}))}),br(()=>{let t={...e.value};jn(t)&&(t=ve(t)),Pe!=null&&Pe.storage&&Pe.storage.local.set(t)}),e}function wp(){let e=ie({});return Ct(()=>{var t;(t=Pe==null?void 0:Pe.runtime)!=null&&t.getManifest&&(e.value=Pe.runtime.getManifest())}),{manifest:e}}const _p=["active"],xp=["active"],Sp={class:"dialog-title center"},Cp={class:"dialog-description"},Ep={class:"dialog-actions"},zn={__name:"Dialog",props:["active"],emits:["update:active"],setup(e,{emit:t}){const n=e,s=t,r=()=>{s("update:active",!1)};return(o,i)=>(I(),q(me,null,[S("div",{class:"scrim",active:n.active,onClick:r},null,8,_p),S("div",{class:"dialog",active:n.active},[W(ye,{class:"dialog-icon"},{default:K(()=>[we(o.$slots,"icon")]),_:3}),S("h2",Sp,[we(o.$slots,"headline")]),S("span",Cp,[we(o.$slots,"text")]),S("div",Ep,[we(o.$slots,"buttons")])],8,xp)],64))}},Tp=["for"],Ap=["id"],Op={class:"border-cutout"},Pp={class:"setting-title"},zp={class:"setting-subtitle"},$p=Object.assign({inheritAttrs:!1},{__name:"InputText",props:["id","modelValue"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue},set(u){s("update:modelValue",u)}}),o=ie(null),{focused:i}=Sr(o),l=he(()=>{var u;return((u=r==null?void 0:r.value)==null?void 0:u.length)>0});return(u,c)=>(I(),q("label",{class:$e(["text-input-label",{focused:de(i),filled:l.value}]),for:e.id},[Ln(S("input",Mo({class:"text-input",type:"input",id:e.id,ref_key:"input",ref:o,"onUpdate:modelValue":c[0]||(c[0]=a=>r.value=a),placeholder:" ",autocomplete:"off"},u.$attrs),null,16,Ap),[[mn,r.value,void 0,{lazy:!0}]]),S("div",Op,[we(u.$slots,"title")]),S("h3",Pp,[we(u.$slots,"title")]),S("span",zp,[we(u.$slots,"subtitle")])],10,Tp))}}),Rp={id:"about"},Vp={id:"about-hero"},Dp={class:"action-row",id:"about-buttons"},Mp={__name:"About",emits:["resetSettings"],setup(e,{emit:t}){const n=t,{manifest:s}=wp(),r=ht("syncedStorage"),o=ie(!1),i=ie(!1),l=ie(!1),u=he({get(){try{return JSON.stringify(r.value)||{}}catch{return{}}},set(d){try{return r.value=JSON.parse(d)||r.value||{},r.value}catch{return r.value=r.value||{},r.value}}});function c(){n("resetSettings"),i.value=!1}function a(d){window.open(d,"_blank","noreferrer")}return(d,f)=>(I(),q("div",Rp,[S("h4",Vp,[f[16]||(f[16]=G("Study Tools voor Magister (")),S("button",{class:"button text inline",onClick:f[0]||(f[0]=g=>a("https://github.com/QkeleQ10/Study-Tools/blob/dev/updates.json"))},[S("span",null,"versie "+ke(de(s).version||"onbekend"),1)]),f[17]||(f[17]=G(")"))]),f[44]||(f[44]=S("p",{id:"about-description"},[G(" Ontwikkeld door Quinten Althues"),S("br"),G(" Bedankt voor het gebruiken van Study Tools!"),S("br")],-1)),S("div",Dp,[S("button",{class:"button",onClick:f[1]||(f[1]=g=>a("https://qkeleq10.github.io/studytools"))},[W(ye,null,{default:K(()=>f[18]||(f[18]=[G("captive_portal")])),_:1}),f[19]||(f[19]=S("span",null,"Website",-1))]),S("button",{class:"button tonal",onClick:f[2]||(f[2]=g=>a("mailto:quinten@althues.nl?subject=Study Tools"))},[W(ye,null,{default:K(()=>f[20]||(f[20]=[G("alternate_email")])),_:1}),f[21]||(f[21]=S("span",null,"E-mail",-1))]),S("button",{class:"button tonal",onClick:f[3]||(f[3]=g=>a("https://discord.gg/2rP7pfeAKf"))},[W(ye,null,{default:K(()=>f[22]||(f[22]=[G("forum")])),_:1}),f[23]||(f[23]=S("span",null,"Discord",-1))]),S("button",{class:"button tonal",onClick:f[4]||(f[4]=g=>a("https://paypal.me/QkeleQ10"))},[W(ye,null,{default:K(()=>f[24]||(f[24]=[G("volunteer_activism")])),_:1}),f[25]||(f[25]=S("span",null,"PayPal",-1))]),S("button",{class:"button tonal",onClick:f[5]||(f[5]=g=>o.value=!0)},[W(ye,null,{default:K(()=>f[26]||(f[26]=[G("shield_locked")])),_:1}),f[27]||(f[27]=S("span",null,"Privacybeleid",-1))])]),W(zn,{active:o.value,"onUpdate:active":f[7]||(f[7]=g=>o.value=g)},{icon:K(()=>f[28]||(f[28]=[G("info")])),headline:K(()=>f[29]||(f[29]=[G("Informatie")])),text:K(()=>f[30]||(f[30]=[G(" Deze extensie slaat gegevens over je identiteit, je accounts en je instellingen op in de browser. Afhankelijk van je browserinstellingen worden ze al dan niet opgeslagen in de cloud. Er wordt nooit informatie doorgestuurd naar de ontwikkelaar of naar derden."),S("br",null,null,-1),S("br",null,null,-1),G(" Ik kan onder geen enkele omstandigheid je gegevens zien. Ik kan alleen zien hoe veel gebruikers mijn extensie gebruiken en andere statistieken zoals percentages van besturingssystemen. Ik kan dus niet per gebruiker dingen zien en Magister-gegevens zijn compleet ontoegankelijk voor mij. ")])),buttons:K(()=>[S("button",{onClick:f[6]||(f[6]=g=>o.value=!1)},"Begrepen")]),_:1},8,["active"]),S("button",{id:"about-reset",onClick:f[8]||(f[8]=g=>i.value=!0)},[f[32]||(f[32]=S("div",null,[S("h3",{class:"setting-title"}," Voorkeuren wissen ")],-1)),W(ye,null,{default:K(()=>f[31]||(f[31]=[G("chevron_right")])),_:1})]),W(zn,{active:i.value,"onUpdate:active":f[10]||(f[10]=g=>i.value=g)},{icon:K(()=>f[33]||(f[33]=[G("restart_alt")])),headline:K(()=>f[34]||(f[34]=[G("Voorkeuren wissen?")])),text:K(()=>f[35]||(f[35]=[G("Hiermee stel je alle instellingen van Study Tools in op de standaardwaarden.")])),buttons:K(()=>[S("button",{onClick:f[9]||(f[9]=g=>i.value=!1)},"Annuleren"),S("button",{onClick:c},"Wissen")]),_:1},8,["active"]),S("button",{id:"about-export",onClick:f[11]||(f[11]=g=>l.value=!0)},[f[37]||(f[37]=S("div",null,[S("h3",{class:"setting-title"}," Voorkeuren kopiëren/plakken ")],-1)),W(ye,null,{default:K(()=>f[36]||(f[36]=[G("chevron_right")])),_:1})]),W(zn,{active:l.value,"onUpdate:active":f[15]||(f[15]=g=>l.value=g)},{icon:K(()=>f[38]||(f[38]=[G("copy_all")])),headline:K(()=>f[39]||(f[39]=[G("Voorkeuren kopiëren/plakken")])),text:K(()=>[f[41]||(f[41]=G("Kopieer de inhoud van het tekstvak om je voorkeuren op te slaan op je klembord. Plak in het tekstvak om voorkeuren te wijzigen. Als je plakt, dan gaan al je huidige voorkeuren verloren.")),f[42]||(f[42]=S("br",null,null,-1)),f[43]||(f[43]=S("br",null,null,-1)),W($p,{id:"settings-paste-input",modelValue:u.value,"onUpdate:modelValue":f[12]||(f[12]=g=>u.value=g),onFocus:f[13]||(f[13]=g=>g.target.select())},{title:K(()=>f[40]||(f[40]=[G("Plak hier")])),_:1},8,["modelValue"])]),buttons:K(()=>[S("button",{onClick:f[14]||(f[14]=g=>l.value=!1)},"Sluiten")]),_:1},8,["active"])]))}},jp=["active"],Ip=["data-visible","data-state"],Cr={__name:"BottomSheet",props:["active","handle"],emits:["update:active"],setup(e,{emit:t}){const n=e,s=t,r=ie("hidden"),o=()=>{r.value="hiding",setTimeout(()=>{s("update:active",!1),r.value="hidden"},200)};return vt(()=>n.active,async i=>{i===!0?(r.value="showing",setTimeout(()=>{r.value="shown"},300)):(r.value="hiding",setTimeout(()=>{s("update:active",!1),r.value="hidden"},200))}),(i,l)=>(I(),q(me,null,[r.value!=="hidden"?(I(),q("div",{key:0,class:"scrim",active:r.value==="shown"||r.value==="showing",onClick:o},null,8,jp)):Re("",!0),r.value!=="hidden"?(I(),q("div",{key:1,class:"bottom-sheet","data-visible":r.value!=="hidden","data-state":r.value},[e.handle?(I(),q("div",{key:0,class:"bottom-sheet-handle",onClick:o})):Re("",!0),we(i.$slots,"content")],8,Ip)):Re("",!0)],64))}},ft=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Np={class:"color-maker"},Lp={id:"hue-wheel-wrapper"},Fp={class:"col-right"},Bp={key:0,class:"swatches"},Up=["title","onClick"],Hp={class:"flex"},Wp={__name:"ColorWheelSheet",props:["modelValue","pickerOpen","swatches"],emits:["update:modelValue","update:pickerOpen"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return typeof n.modelValue=="string"?{h:n.modelValue.split()[0],s:n.modelValue.split()[1],l:n.modelValue.split()[2]}:n.modelValue},set(w){typeof n.modelValue=="string"?s("update:modelValue",w.join(",")):s("update:modelValue",w)}}),o=he({get(){return n.pickerOpen||!1},set(w){s("update:pickerOpen",w)}}),i=ie(null),l=ie(null),u=ie(null),c=Fr({target:i}),a=Fr({target:l}),d=Fr({target:u}),{isSupported:f,open:g,sRGBHex:m}=pp();function C(w){if(w.type==="mousemove"&&!c.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),z=w.clientX-P.left-P.width/2,D=w.clientY-P.top-P.height/2;let $=Math.atan2(D,z);$=$*180/Math.PI+90,$=$<0?360+$:$,r.value={...r.value,h:Math.floor($)}}function R(w){if(w.type==="mousemove"&&!a.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),z=(w.clientX-P.left)/P.width*100;r.value={...r.value,s:Math.floor(z)}}function E(w){if(w.type==="mousemove"&&!d.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),z=(w.clientX-P.left)/P.width*100;r.value={...r.value,l:Math.floor(z)}}async function x(){await g(),m.value&&(r.value=v(m.value))}function v(w){let P=0,z=0,D=0;w.length==4?(P="0x"+w[1]+w[1],z="0x"+w[2]+w[2],D="0x"+w[3]+w[3]):w.length==7&&(P="0x"+w[1]+w[2],z="0x"+w[3]+w[4],D="0x"+w[5]+w[6]),P/=255,z/=255,D/=255;let $=Math.min(P,z,D),O=Math.max(P,z,D),F=O-$,A=0,N=0,Q=0;return F==0?A=0:O==P?A=(z-D)/F%6:O==z?A=(D-P)/F+2:A=(P-z)/F+4,A=Math.round(A*60),A<0&&(A+=360),Q=(O+$)/2,N=F==0?0:F/(1-Math.abs(2*Q-1)),N=+(N*100).toFixed(1),Q=+(Q*100).toFixed(1),{h:A,s:N,l:Q}}function k(w){return w.h==r.value.h&&w.s==r.value.s&&w.l==r.value.l}return(w,P)=>(I(),qe(Cr,{active:o.value,"onUpdate:active":P[1]||(P[1]=z=>o.value=z),handle:!0},{content:K(()=>{var z;return[S("div",Np,[S("div",Lp,[S("div",{id:"hue-wheel",ref_key:"hueWheel",ref:i,onMouseup:C,onMousemove:C,style:Ve({"background-image":`radial-gradient(var(--color-surface-container) 56%, transparent calc(56% + 1px)), conic-gradient(in hsl longer hue, hsl(0 ${r.value.s}% ${r.value.l}%) 0 0)`})},null,36),S("div",{id:"hue-wheel-knob",class:"knob",style:Ve({transform:`rotate(${r.value.h-6}deg)`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4),S("div",{id:"hue-wheel-values",style:Ve({"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},[S("span",null,ke(Number(r.value.h).toLocaleString("nl-NL",{style:"unit",unit:"degree",unitDisplay:"short",maximumFractionDigits:0})),1),S("span",null,ke(Number(r.value.s/100).toLocaleString("nl-NL",{style:"percent",maximumFractionDigits:0})),1),S("span",null,ke(Number(r.value.l/100).toLocaleString("nl-NL",{style:"percent",maximumFractionDigits:0})),1)],4)]),S("div",Fp,[S("div",{class:"saturation-bar color-bar",ref_key:"saturationBar",ref:l,onMouseup:R,onMousemove:R,style:Ve({"background-image":`linear-gradient(to left, hsl(${r.value.h} 100% ${r.value.l}%), hsl(${r.value.h} 50% ${r.value.l}%), hsl(${r.value.h} 0% ${r.value.l}%))`})},[S("div",{class:"saturation-bar-knob color-bar-knob knob",style:Ve({left:`${r.value.s}%`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4)],36),S("div",{class:"luminance-bar color-bar",ref_key:"luminanceBar",ref:u,onMouseup:E,onMousemove:E,style:Ve({"background-image":`linear-gradient(to left, hsl(${r.value.h} ${r.value.s}% 100%), hsl(${r.value.h} ${r.value.s}% 50%), hsl(${r.value.h} ${r.value.s}% 0%))`})},[S("div",{class:"luminance-bar-knob color-bar-knob knob",style:Ve({left:`${r.value.l}%`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4)],36),((z=e.swatches)==null?void 0:z.length)>0?(I(),q("div",Bp,[(I(!0),q(me,null,We(e.swatches,D=>(I(),q("button",{class:$e(["swatch",{selected:k(D.color)}]),key:D.name,title:D.name,style:Ve({"background-color":`hsl(${D.color.h} ${D.color.s}% ${D.color.l}%`}),onClick:$=>r.value=D.color},null,14,Up))),128))])):Re("",!0),S("div",Hp,[S("button",{class:"button",onClick:P[0]||(P[0]=D=>o.value=!1)},P[2]||(P[2]=[S("span",null,"Gereed",-1)])),de(f)?(I(),q("button",{key:0,class:"button tonal invoke-eyedropper",onClick:x},[W(ye,null,{default:K(()=>P[3]||(P[3]=[G("colorize")])),_:1}),P[4]||(P[4]=S("span",null,"Pipet",-1))])):Re("",!0)])])])]}),_:1},8,["active"]))}},Ga=ft(Wp,[["__scopeId","data-v-fa94413b"]]),Kp={class:"color-picker"},qp={class:"gallery"},Gp={class:"swatches"},Qp=["title","onClick"],Jp={__name:"ColorPicker",props:["modelValue"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue||i[0].color},set(d){s("update:modelValue",d)}}),o=ie(!1),i=[{name:"Azuurblauw",color:{h:207,s:95,l:55}},{name:"Zeegroen",color:{h:161,s:51,l:41}},{name:"Mosgroen",color:{h:90,s:41,l:41}},{name:"Oranjegeel",color:{h:40,s:51,l:41}},{name:"Bloedrood",color:{h:10,s:51,l:41}},{name:"Rozerood",color:{h:341,s:61,l:41}},{name:"Mauvepaars",color:{h:290,s:41,l:41}},{name:"Diepindigo",color:{h:240,s:41,l:41}},{name:"Babyblauw",color:{h:207,s:52,l:66}},{name:"Mintgroen",color:{h:161,s:44,l:60}},{name:"Pastelgroen",color:{h:90,s:44,l:60}},{name:"Zandbeige",color:{h:40,s:44,l:66}},{name:"Zalmrood",color:{h:10,s:44,l:66}},{name:"Babyroze",color:{h:341,s:44,l:66}},{name:"Lavendelpaars",color:{h:290,s:44,l:66}},{name:"Zachtpaars",color:{h:240,s:44,l:70}}];function l(d){return d.h==r.value.h&&d.s==r.value.s&&d.l==r.value.l}const u=he(()=>i.slice(0,8).some(d=>l(d.color)));function c(d){r.value=d}function a(d){o.value=d}return(d,f)=>(I(),q("div",Kp,[S("div",qp,[S("div",Gp,[(I(!0),q(me,null,We(i.slice(0,8),g=>(I(),q("button",{class:$e(["swatch",{selected:l(g.color)}]),key:g.name,title:g.name,style:Ve({"background-color":`hsl(${g.color.h} ${g.color.s}% ${g.color.l}%`}),onClick:m=>r.value=g.color},null,14,Qp))),128))]),S("button",{class:$e(["custom",{selected:!u.value}]),style:Ve({"--sel-color":u.value?"transparent":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%)`}),title:"Kleur kiezen",onClick:f[0]||(f[0]=g=>o.value=!0)},[W(ye,null,{default:K(()=>f[1]||(f[1]=[G("palette")])),_:1})],6)]),W(Ga,{swatches:i,"model-value":r.value,"onUpdate:modelValue":c,pickerOpen:o.value,"onUpdate:pickerOpen":a},null,8,["model-value","pickerOpen"])]))}},Xp=ft(Jp,[["__scopeId","data-v-35bdf943"]]),Yp={class:"segmented-button"},Zp=["onClick","data-state","data-has-icon","title"],eh={key:0,class:"button-segment-text"},th={key:1,class:"button-segment-icon-wrapper last"},nh={__name:"SegmentedButton",props:["modelValue","options","density"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue},set(o){s("update:modelValue",o)}});return(o,i)=>(I(),q("div",Yp,[(I(!0),q(me,null,We(e.options,l=>(I(),q("button",{key:l.value,class:"button-segment",onClick:u=>r.value=l.value,"data-state":l.value===r.value,"data-has-icon":!!l.icon,title:l.tooltip,style:Ve({height:`${40+4*(e.density||0)}px`})},[S("div",{class:$e(["button-segment-icon-wrapper",{hidden:!(l.value===r.value||l.icon&&l.title)}])},[W(kr,{name:"icon"},{default:K(()=>[l.value===r.value?(I(),qe(ye,{key:"selected",class:"button-segment-icon selected"},{default:K(()=>i[0]||(i[0]=[G("check ")])),_:1})):l.icon&&l.title?(I(),qe(ye,{key:"icon",class:"button-segment-icon"},{default:K(()=>[G(ke(l.icon),1)]),_:2},1024)):Re("",!0)]),_:2},1024)],2),l.title?(I(),q("span",eh,ke(l.title),1)):l.icon?(I(),q("div",th,[W(ye,{key:"icon",class:"button-segment-icon"},{default:K(()=>[G(ke(l.icon),1)]),_:2},1024)])):Re("",!0),i[1]||(i[1]=S("div",{class:"button-segment-state-layer"},null,-1))],12,Zp))),128))]))}},Qa=ft(nh,[["__scopeId","data-v-c7caef6d"]]),sh="modulepreload",rh=function(e,t){return new URL(e,t).href},Vi={},Jn=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=rh(c,s),c in Vi)return;Vi[c]=!0;const a=c.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(!!s)for(let m=i.length-1;m>=0;m--){const C=i[m];if(C.href===c&&(!a||C.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const g=document.createElement("link");if(g.rel=a?"stylesheet":sh,a||(g.as="script"),g.crossOrigin="",g.href=c,u&&g.setAttribute("nonce",u),document.head.appendChild(g),a)return new Promise((m,C)=>{g.addEventListener("load",m),g.addEventListener("error",()=>C(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},oh=(e,t,n)=>{const s=e[t];return s?typeof s=="function"?s():Promise.resolve(s):new Promise((r,o)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(o.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},ih={__name:"ThemePreviewImage",props:{style:Object,scale:{type:Number,default:1}},setup(e){const t=vp(),n=ie(null),s=ie(null);Ct(r(o,200)),vt(()=>e.style,r(o,200)),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",r(o,200));function r(a,d){let f=null,g=!1;return function(...m){g?f=m:(a.apply(this,m),g=!0,setTimeout(()=>{g=!1,f&&(a.apply(this,f),f=null)},d))}}async function o(){if(!s.value)return;let a=s.value.getContext("2d");a.canvas.width=n.value.clientWidth,a.canvas.height=n.value.clientHeight,a.clearRect(0,0,s.value.width,s.value.height);const d=s.value.height,f=s.value.width,g=.03*e.scale*f,m=.045*e.scale*f,C=.195*e.scale*f,R=.045*e.scale*f,E=.03*e.scale*f,x=.285*e.scale*f,v=.105*e.scale*f,k=.015*e.scale*f,w=.03*e.scale*f,P=.025*e.scale*f,z=.03*e.scale*f,D=.004*e.scale*f;if(a.fillStyle=e.style.pageColor??l("#ffffff","#111111"),a.fillRect(0,0,f,d),e.style.wallpaperUrl){const O=new Image;O.src=e.style.wallpaperUrl,await new Promise(ne=>O.onload=ne);const F=f/d,A=O.width/O.height;let N,Q,ee,j;F>A?(N=f,Q=N/A,ee=0,j=(d-Q)/2):(Q=d,N=Q*A,ee=(f-N)/2,j=0),a.globalAlpha=e.style.wallpaperOpacity??.2,a.drawImage(O,ee,j,N,Q),a.globalAlpha=1}if(a.fillStyle=e.style.appbarColor??l(u(...e.style.accentColor,95,47),u(...e.style.accentColor,73,22)),a.fillRect(0,0,m,d),a.fillStyle=e.style.menubarColor??l(u(...e.style.accentColor,95,55),u(...e.style.accentColor,73,30)),a.fillRect(m,0,C,d),e.style.decoration){const O=new Image;O.src=e.style.decoration==="custom"?e.style.decorationUrl:await i(e.style.decoration),await new Promise(fe=>O.onload=fe);const F=C,A=m,N=O.width/O.height,Q=F/d;let ee,j,ne,X;Q>N?(ee=F,j=ee/N,ne=A,X=0-(j-d)/2):(j=d,ee=j*N,ne=A-(ee-F)/2,X=0),a.save(),a.beginPath(),a.rect(A,0,F,d),a.clip(),e.style.decoration!=="custom"&&(a.globalCompositeOperation="lighter"),a.drawImage(O,ne,X,ee,j),a.globalCompositeOperation="source-over",a.restore()}a.fillStyle="#fff",a.beginPath(),a.roundRect(m+E,R,C*.65,g,g/2),a.globalAlpha=.6,a.fill(),a.globalAlpha=1,a.fillStyle=l(u(...e.style.accentColor,78,43),u(...e.style.accentColor,53,55)),a.beginPath(),a.roundRect(m+C+E,R,C,g,g/2),a.fill(),a.fillStyle=l("#ffffffaa","#0c0c0caa"),a.fillRect(f-x,0,x,d),a.strokeStyle=l("#dfdfdfaa","#2e2e2eaa"),a.lineWidth=D,a.beginPath(),a.moveTo(f-x,0),a.lineTo(f-x,d),a.stroke(),a.beginPath(),a.roundRect(f-x+P,w+1.5*v+k,x-P-z,v,e.style.shape/2.5),a.roundRect(f-x+P,w+2.5*v+2*k,x-P-z,v,e.style.shape/2.5),a.fill(),a.stroke();const $=a.createLinearGradient(f-x+P,w,f-x+P+x-P-z,w+v*1.5);$.addColorStop(0,l(u(...e.style.accentColor,95,55),u(...e.style.accentColor,73,30))),$.addColorStop(1,l(u(...e.style.accentColor,95,47),u(...e.style.accentColor,73,22))),a.fillStyle=$,a.beginPath(),a.roundRect(f-x+P,w,x-P-z,v*1.5,e.style.shape/2.5),a.fill(),a.stroke()}async function i(a){return new Promise((d,f)=>{oh(Object.assign({"../assets/decorations/lego.png":()=>Jn(()=>import("./lego-B9XBXV1o.js"),[],import.meta.url),"../assets/decorations/polka-dot.png":()=>Jn(()=>import("./polka-dot-Bk_kYWko.js"),[],import.meta.url),"../assets/decorations/stripes.png":()=>Jn(()=>import("./stripes-CrSqOAWt.js"),[],import.meta.url),"../assets/decorations/waves.png":()=>Jn(()=>import("./waves-BpDb7oY5.js"),[],import.meta.url),"../assets/decorations/zig-zag.png":()=>Jn(()=>import("./zig-zag-BPQTWn5Y.js"),[],import.meta.url)}),`../assets/decorations/${a}.png`,4).then(g=>d(g.default)).catch(f)})}function l(a,d){switch(e.style.colorScheme){case"dark":return d;case"light":return a;default:return t.value==="dark"?d:a}}function u(a,d,f,g,m){return`hsl(${a}, ${c(d,g,95)}%, ${c(f,m,55)}%)`}function c(a,d,f){return a<=f?a/f*d:d+(a-f)/(100-f)*(100-d)}return(a,d)=>(I(),q("div",{ref_key:"wrapper",ref:n},[S("canvas",{ref_key:"canvas",ref:s,width:"300",height:"150"},null,512)],512))}},lh=ft(ih,[["__scopeId","data-v-edc08a77"]]),kt=[{name:"Standaard",author:"Magister & Quinten Althues",ptheme:"auto,207,95,55",pagecolor:"false,0,0,7",wallpaper:"none,","wallpaper-opacity":.2,sidecolor:"false,207,95,55",decoration:"none,","decoration-size":1,appbarcolor:"false,207,95,47",shape:8,"custom-css":"","custom-css2":""},{name:"Zeegroen",author:"Quinten Althues",ptheme:"auto,161,51,41",decoration:"waves,"},{name:"Pastelroze",author:"Quinten Althues",ptheme:"light,341,44,66",decoration:"stripes,"},{name:"Hawaï",author:"Quinten Althues",ptheme:"light,180,50,40",wallpaper:"custom,https://i.imgur.com/qY42IDh.png",decoration:"custom,https://w0.peakpx.com/wallpaper/865/392/HD-wallpaper-hawaii-background-beautiful-colors-nature-outside-palm-trees-portrait-summer-water.jpg"},{name:"Vaporwave",author:"Quinten Althues",ptheme:"dark,275,100,60",wallpaper:"custom,https://i.imgur.com/ss4ty9u.png",decoration:"custom,https://wallpapers.com/images/hd/80s-neon-veqvixadrbra13q4.jpg"},{name:"Wilde Westen",author:"Quinten Althues",ptheme:"dark,10,80,50",wallpaper:"custom,https://i.imgur.com/UgMMNqN.png",decoration:"custom,https://static.vecteezy.com/system/resources/previews/023/592/503/non_2x/american-desert-landscape-western-background-vector.jpg"},{name:"Discord",author:"Quinten Althues",ptheme:"dark,235,48,85",pagecolor:"true,223,6.7,20.6",sidecolor:"true,220,6.5,18",appbarcolor:"true,225,6.3,12.5",shape:10,"custom-css":":root{--st-background-secondary:#232428}#st-start-widgets{background-color:var(--st-side-background);border-left:none;box-shadow:none}#st-start-widget-controls-wrapper,.menu-footer{background-color:#232428;border-top:none}.menu-button figure img{content:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSieyaZb-hSOtWnc6wha3QQlMLL8_cfvr2WIQ&s);display:block !important}"},{name:"Minecraft",author:"TheOakTrees & DaintyDust",thumbnail:"https://i.imgur.com/V5loO5Z.png",ptheme:"dark,0,0,48.2",pagecolor:"false,223,6.7,20.6",wallpaper:"custom,https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/landscape.webp",sidecolor:"true,0,0,43.5",decoration:"custom,https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/dirt.webp","decoration-size":.8,appbarcolor:"true,0,0,43.5",shape:0,"custom-css":`.examen-widget,.main-menu .caption,.st-title,.title,h2,h3{font-family:var(--st-font-family-secondary)!important}@font-face{font-family:Minecraftia;src:url("https://unpkg.com/@south-paw/typeface-minecraft@1.0.0/files/minecraft.woff2") format("woff2"),url("https://unpkg.com/@south-paw/typeface-minecraft@1.0.0/files/minecraft.woff") format("woff");font-weight:600}:root{--st-font-family-primary:Minecraftia!important;--st-font-family-secondary:Minecraftia!important;--st-background-secondary:#000000a6}:host{--title-font:Minecraftia!important;--subtitle-font:Minecraftia!important}body{--dna-font-family-base:Minecraftia!important;--dna-font-family-header:Minecraftia!important}.examen-widget,.title,h2,h3{font:var(--st-font-family-secondary)!important}.main-menu .caption:not(#st-start-header-text-wrapper *),.main-menu li.submenu.ng-scope>a,.main-menu li>a,.st-title:not(#st-start-header-text-wrapper *){font-size:small}dna-button{color:var(--st-contrast-accent)}.menu-host{margin-left:-90px;padding-left:90px;width:calc(240px + 90px)}.menu-host.collapsed-menu{width:calc(64px + 90px)}.appbar-host{z-index:1;background:0 0}.logo .logo-expanded.ng-scope{content:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/magister.webp)!important;scale:1.2!important;margin:21px!important;padding-bottom:15px!important}.logo-collapsed{content:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/m.webp)!important;padding-bottom:15px!important}#st-cc,#st-start-today-view-popover,#st-start-widgets,.ng-isolate-scope .content-container{background:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/dirt.webp)!important}#aanwezigheid thead,#st-cb,#st-cc-open,#st-start-today-view,#st-start-widget-controls-wrapper,#st-start-widget-grades,.appbar .menu-button,.appbar>div>a:not(.st-metric),.block h3,.main-menu a,.st-button.icon,.st-button.segment.st-dropdown-segment,dna-button-bar[slot=actions]>*,dna-button-group[slot=actions]>*,input[type=checkbox]+label>span{cursor:pointer;overflow:hidden;white-space:nowrap;user-select:none;border-radius:0;background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/button.png') center/cover #999;image-rendering:pixelated;border:2px solid #000;box-shadow:inset -2px -4px #0004,inset 2px 2px #fff5!important}.appbar>div>a:not(.st-metric){border:none}.st-button.icon{box-sizing:content-box}#st-start-widget-controls-wrapper,#st-start-widget-grades,.st-button.segment.st-dropdown-segment.active{background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/buttonoff.png') center/cover #999}.appbar .menu-button>*{border-radius:0!important}#aanwezigheid thead *{background-color:transparent!important;border-color:none!important}#aanwezigheid :not(.fold) thead,#aanwezigheid thead:hover,.block h3:hover,.block:not(.fold) h3,.main-menu a:hover{border:2px solid #fff!important;text-shadow:2px 2px #202013CC!important}.block h3{border:2px solid #000!important;text-shadow:none!important}.main-menu li.active>a,.main-menu li.active>a:active,.main-menu li.active>a:hover,.main-menu li.submenu.ng-scope.active>a,.main-menu li.submenu.ng-scope.active>a:active,.main-menu li.submenu.ng-scope.active>a:hover,.main-menu li.submenu.ng-scope>a:active,.main-menu li>a:active{border:2px solid #fff;text-shadow:2px 2px #202013CC!important;font-size:small}ul.tabs li::after{background-color:transparent}input[type=checkbox]:checked+label>span{cursor:pointer;overflow:hidden;white-space:nowrap;user-select:none;border-radius:0;background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/button.png') center/cover #999;image-rendering:pixelated;border:2px solid #fff!important;box-shadow:inset -2px -4px #0004,inset 2px 2px #fff5!important;text-shadow:2px 2px #202013CC!important}.block .content,.fancy-select .k-multiselect-wrap.k-floatwrap,.fancy-select .k-widget.k-multiselect.k-header.select.all-items-selected,.fancy-select .k-widget.k-multiselect.k-header.select.all-items-selected.k-state-hover,.tabsheet .block,.tabsheet .block .content{background-color:transparent!important;border:none!important}.block .content fieldset{background-color:var(--st-background-secondary)!important}.widget.ng-scope .block h3 b{font-size:large;position:absolute;left:50%;top:50%;translate:-50% -50%}#st-start-widget-controls-wrapper{background-color:var(--st-background-secondary);padding:8px!important}#st-start-widget-controls-wrapper>*{color:#fff}#st-start-widget-digital-clock:hover{background-color:#4d3828!important}#faux-label{left:145px!important}`},{name:"Human",author:"DaintyDust",thumbnail:"https://i.imgur.com/EFedQLr.png",ptheme:"dark,212,91,34",pagecolor:"false,45,98,43",wallpaper:"custom,https://i.imgur.com/9oyX79l.jpeg","wallpaper-opacity":1,sidecolor:"false,212,98,24","decoration-size":.8,appbarcolor:"false,212,98,21","custom-css":".appbar .menu-button,.appbar .menu-button a,.fancy-select .k-button,.main-menu a,.main-menu li.submenu.ng-scope>a,.main-menu li>a,.st-button.icon,.st-button.segment.st-dropdown-segment,.tabs>:not(:only-child){transition:.35s,background-color .2s!important}.menu-footer,.table-grid-layout.normaal.ng-scope th{transition:background .4s,width .4s,letter-spacing .4s}#st-cs-subject-filter>:hover,.menu-footer:hover{letter-spacing:6px}#scheduler,#st-cb-ex,#st-cb-im,.menu-host{backdrop-filter:blur(10px)}#st-cb-modal,#st-cc,#st-start-widget-controls,.k-scheduler-table .k-nonwork-hour{background-color:transparent!important}#st-cc-added,#st-cc-prediction,.table-grid-layout:last-child>:last-child{padding-bottom:10px}#st-cc-averages,#st-cc-prediction{margin-right:-6px;margin-left:-16px}:root{--st-background-primary:#1a1a1abd;--st-background-secondary:#1a1a1a7a;--st-background-tertiary:#1a1a1a7a;--st-foreground-primary:#fff;--st-foreground-secondary:#dddddd;--st-foreground-insignificant:#888;--st-foreground-accent:#ffffffbf;--st-accent-primary:#1a1a1a7a;--st-accent-primary-dark:#1a1a1a;--st-accent-tertiary:#1a1a1abd;--st-side-background:#1a1a1a7a;--st-appbar-background:hsla(0, 0%, 0%, 0.3);--st-highlight-primary:#1a1a1a7a;--st-highlight-subtle:#181f24;--st-highlight-ok:#1a4c38;--st-highlight-warn:#511f1f;--st-highlight-info:#0f314d}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1a1a1a41;border-radius:18px}::-webkit-scrollbar-thumb:hover{background:var(--st-background-primary)}.content-container.full-width.ng-isolate-scope::-webkit-scrollbar{width:0!important}#st-start[data-widgets-collapsed=false],#st-start[data-widgets-collapsed]{padding-right:20px!important}#st-start[data-widgets-collapsed=true],.container .view.ng-scope{padding-right:10px!important}.menu-host{background-image:none;background-color:var(--st-background-secondary);border-top-right-radius:18px;border-bottom-right-radius:18px;margin-top:10px}#st-cc-sidebar,#st-start-widgets,.appbar-host,.menu,.menu-footer,ul.tabs li::after{background-color:transparent}.appbar-host{margin-top:10px;margin-left:10px}.appbar-host,.menu-host{height:auto}.appbar-host .ng-isolate-scope{height:100%;display:grid}#st-cc-added,#st-cc-averages,#st-cc-prediction,#st-start-widget-controls-wrapper,#st-start-widgets-list,.appbar,.k-scheduler-layout.k-scheduler-workWeekview .k-scheduler-times .k-scheduler-table tr{background-color:var(--st-background-secondary)}.appbar{z-index:100;border-top-left-radius:18px;border-bottom-left-radius:18px}.menu.ng-scope{border-bottom-left-radius:0}#st-start-widgets{border-left:none;box-shadow:none}#st-start-widgets-list{height:fit-content;border-radius:18px;margin-top:10px;max-height:calc(100vh - 94px)}#st-start-widget-controls{box-shadow:none!important;border-color:transparent!important}#st-start-widget-controls-wrapper{border-radius:18px;margin:10px;padding:8px!important;translate:-10px -10px}.st-button.icon:hover{scale:1.15;box-shadow:0 0 13px rgba(0,0,0,.5)}.st-button.icon:active{scale:0.85;box-shadow:0 0 13px rgba(0,0,0,.5)}.appbar .menu-button,.appbar .menu-button a{border-radius:8px}.appbar .menu-button:hover{scale:1.15;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:8px}#st-cb-ex button:active,#st-cb-im .st-button:active,#st-cc-sidebar .st-button:active,.appbar .menu-button:active{scale:0.95;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:8px}#st-cb-ex button:hover,#st-cb-im .st-button:hover,#st-cc-sidebar .st-button:hover,.fancy-select .k-button:hover,.st-button.segment.st-dropdown-segment:hover{scale:1.05;box-shadow:0 0 13px rgba(0,0,0,.5)}.main-menu a:hover,.main-menu li.active>a,.main-menu li.active>a:hover,.main-menu li.submenu.ng-scope.active>a,.main-menu li.submenu.ng-scope.active>a:hover,.tabs>:not(:only-child):hover{scale:1.05;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:10px}.main-menu li.active>a:active,.main-menu li.submenu.ng-scope.active>a:active,.main-menu li.submenu.ng-scope>a:active,.main-menu li>a:active{scale:0.95;box-shadow:0 0 8px rgba(0,0,0,.3);border-radius:10px}.menu-button{border-radius:50%}.menu-footer,.menu-footer:hover{border-radius:18px}#afsprakenLijst .k-grid-content *,.content-container.full-width.ng-isolate-scope .wide-widget *,.menu-footer,table.table-grid-layout.normaal.ng-scope *{border-top:none}.menu-footer:active{letter-spacing:0;border-radius:18px}input[type=checkbox]+label>span,input[type=checkbox]:checked+label>span{background-color:transparent!important;border:var(--st-border)!important}.fancy-select .k-button:hover{background-color:#63636396!important}.content fieldset .fancy-select:hover .k-dropdown-wrap.k-state-default{transition:.35s,background-color .2s!important;background-color:#63636396!important;scale:1.02;border-radius:3px;box-shadow:0 0 13px rgba(0,0,0,.5)}.table-grid-layout.normaal.ng-scope th{width:30%;padding-top:4px;padding-left:7px}.table-grid-layout.normaal.ng-scope th:hover{width:70%;letter-spacing:3px}.table-grid-layout.normaal.ng-scope th:active{letter-spacing:0;width:70%}.table-grid-layout.normaal.ng-scope th:not(:hover){width:30%}#agenda-section .content-container,.content-container.full-width.ng-isolate-scope{border:none}.table-grid-layout:last-child{border-bottom-left-radius:18px;border-bottom-right-radius:18px;overflow:hidden}#st-start-widget-digital-clock{border-radius:18px;border:none}#st-start-now{border-color:var(--st-foreground-accent);margin-right:3px!important}#st-start-now-label{background-color:var(--st-foreground-accent);color:#000!important}#st-start-now-label::before{color:var(--st-foreground-accent)}#st-appbar-week:hover{scale:1.1;opacity:1;transition:scale .1s,opacity .1s}#st-cs-subject-filter>*,#st-cs-subject-filter>:active,#st-cs-subject-filter>:hover,#st-cs-subject-filter>:hover::before{transition:background .4s,width .4s,letter-spacing .4s,padding .4s}#cijfers-container .main{padding-left:14px}#scheduler{background:var(--st-background-secondary)!important}span.nrblock{background:var(--st-background-primary)!important;color:#fff!important;margin-right:8px!important}.k-scheduler-header.k-state-default{padding-right:0!important}.k-scheduler-content::-webkit-scrollbar{width:0!important}#st-cs-year-filter>:hover{scale:1.1;box-shadow:0 0 13px rgba(0,0,0,.5)}#st-cs-filters{background-color:var(--st-accent-primary-dark)}#st-cs-subject-filter>:hover::before{padding-left:4px}#st-cs-subject-filter>:active{letter-spacing:0}.st-bar-chart-col:hover{background-color:color-mix(in srgb,var(--st-foreground-primary),transparent 90%);border-radius:var(--st-border-radius) var(--st-border-radius) 0 0}#st-cb-ex,#st-cb-im{background:rgba(255,255,255,.1);box-shadow:0 0 45px -22px #fff;border:2px solid rgba(255,255,255,.5)}#st-cb-modal,#st-cc{backdrop-filter:blur(6px)}#st-cc-sidebar{backdrop-filter:blur(1px);border:none;box-shadow:none}#st-cc-added,#st-cc-added-list,#st-cc-averages,#st-cc-prediction{border-radius:var(--st-border-radius)}#st-cc-added{padding-top:10px;margin-right:-6px}#st-cc-averages{padding:10px 23px 10px 21px}#st-cc-prediction{width:430px;padding-left:21px;padding-right:23px;margin-bottom:16px}#st-cc-added-list{background-color:var(--st-background-secondary)!important;margin-left:15px;margin-right:15px}#st-cc-added-list::after{width:100%}.st-event-wrapper{outline:0;border:var(--st-border);border-top-width:calc(var(--st-brm-top-left)* 1px);border-bottom-width:calc(var(--st-brm-bottom-left)* 1px)}#st-start-editor,#st-start-editor-done,#st-start-widgets{border-radius:var(--st-border-radius)}#st-start-widgets{margin-bottom:20px;margin-top:10px}#st-start-editor{translate:-40px;margin-top:22px;margin-bottom:20px;height:-webkit-fill-available}#st-start-widget-controls.editing{padding:0;gap:0}#st-start-editor-done{width:-webkit-fill-available;height:-webkit-fill-available;margin-right:16px;margin-left:16px;background:0 0}#st-start-editor-done:active(){transform:scale(1)}"},{name:"Glasplaten",author:"Astyll",thumbnail:"https://i.imgur.com/V0sugf6.png",ptheme:"auto,207,95,3",wallpaper:"custom,https://i.imgur.com/MAfI42c.jpg","wallpaper-opacity":.85,shape:12,"custom-css":'.sm-grid.k-grid .k-grid-content .k-grouping-row .group-header-content,tr.k-grouping-row.ng-scope{backdrop-filter:blur(5px);margin-left:-25px!important;font-size:large!important;text-align:center!important;background-color:var(--st-appbar-background)}.st-list-item+.st-list-item::before{content:none}::-webkit-scrollbar{display:none}td.ng-binding{font-size:14px}*{-ms-overflow-style:none;scrollbar-width:none}.st-list-item{border:none}.main-menu li,.st-button,.appbar .menu-button,dna-button{transition:all .1s}.main-menu li:active,.st-button:active,.appbar .menu-button:active,dna-button:active{transform:scale(.96)!important}.main-menu li:hover,.st-button:hover,.appbar .menu-button:hover,dna-button:hover{transform:scale(1.04)}.st-button.segment,.st-start-event,a,dna-button{transition:.1s}.main-menu li a{background-color:#00000020;height:42px!important;transition:.1s}.main-menu li.children li.submenu>a:hover,.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li.children.expanded>a,.main-menu>li.children.expanded>a:hover,.main-menu>li>a:hover{background-color:#00000030;backdrop-filter:blur(5px)}.main-menu li.children li.submenu>a:active,.main-menu>li.active>a,.main-menu>li.active>a:active,.main-menu>li.children.expanded>a,.main-menu>li.children.expanded>a:active,.main-menu>li>a:active{background-color:#00000025;backdrop-filter:blur(5px)}.appbar{flex-direction:column-reverse;padding-top:15px}.appbar>div>a,.menu-button figure img,a.appbar-button{border-radius:var(--st-border-radius)}.appbar .menu-button{height:40px!important;width:40px!important;flex:none}.appbar .user-menu{bottom:-187px!important}.appbar .help-popup-menu::after,.appbar .user-menu::after{bottom:200px!important}.appbar .popup-menu{left:45px!important;z-index:1003!important}.menu-host .logo{margin-left:27px!important;margin-top:26px!important;margin-bottom:21px!important}.cijfers-k-grid.k-grid .grade.empty{background:transparent!important}table.table-grid-layout td a{font-size:medium;color:#00d9ff;text-decoration:underline}td.ng-binding[data-ng-bind="leermiddel.Vak.Afkorting"]{font-size:large;font-weight:700;text-align:center}.appbar:has(.user-menu) .menu-button:has(#help-menu){display:none!important}div.menu-button.ng-scope>a>span,a#user-menu>span,#menu-berichten-new>span,.menu-button>a>span{z-index:1002!important;backdrop-filter:blur(5px);background-color:var(--st-appbar-background)!important}.st-title{color:var(--st-foreground-primary)!important}#st-start-widget-homework .st-list-content p,.st-list-content{color:var(--st-foreground-accent)}:root{--st-highlight-primary:#00000025;--st-background-secondary:transparent;--st-appbar-background:#00000050;--st-side-background:#00000025;--st-foreground-accent:#fff;--st-border:none}table.table-grid-layout tr,table.table-grid-layout td,#cijfers-container .main div.content-container-cijfers,div.ngRow:hover>:not(.unselectable),.card,table.table-grid-layout{border:none!important}.ngHeaderSortColumn{background:var(--st-appbar-background);backdrop-filter:blur(5px)}div.loading-overlay{background:var(--st-appbar-background)!important}.block h3,#studiewijzer-container div.studiewijzer-list div.head,table.table-grid-layout th{border:none}.st-segmented-control{background-color:transparent;padding-inline:0;height:auto}table.table-grid-layout td+td{border-left:none}#st-start-widget-controls{width:auto}#st-start-widget-controls-wrapper{justify-content:right}#st-start-header-buttons{backdrop-filter:blur(5px);padding:5px;border-radius:var(--st-border-radius)}#cijfers-container .main div.content-container-cijfers,.cijfers-k-grid.k-grid .k-selectable .k-state-selected .grade{backdrop-filter:blur(5px);background-color:var(--st-side-background);box-shadow:none!important}.k-state-selected,.k-state-selected:link,.k-state-selected:visited,.k-list>.k-state-selected,.k-list>.k-state-highlight,.k-panel>.k-state-selected,.k-ghost-splitbar-vertical,.k-ghost-splitbar-horizontal,.k-draghandle.k-state-selected:hover,.k-scheduler .k-scheduler-toolbar .k-state-selected,.k-scheduler .k-today.k-state-selected,.k-marquee-color{background-color:var(--st-side-background)}.st-event{transition:.3s all;border-radius:var(--st-border-radius)}.st-list-timestamp{color:white}.st-start-col-label{backdrop-filter:blur(5px);background-color:var(--st-side-background);width:100%}div#st-start-today-view-popover,.k-popup.k-list-container,.cijfers-k-grid.k-grid .grade.gemiddeldecolumn{backdrop-filter:blur(5px);background-color:var(--st-side-background)}#st-start-header-buttons>.st-button.icon,#st-start-today-view{background-color:var(--st-side-background);border-radius:var(--st-border-radius);margin-left:0}.st-dropdown>.st-dropdown-current{color:white}.sm-grid.k-grid .k-grid-content td{border:none}.st-chip.important,.st-chip,.st-chip.ok,.st-chip.warn{text-align:center;width:80px;backdrop-filter:blur(5px);background-color:var(--st-side-background);border:2px solid var(--st-chip-info-border)}.st-chip.important{background-color:var(--st-background-tertiary)}.st-snackbar,div#st-start-widget-controls,.st-event-number,.st-widget[data-render-type=Tegel],.subtitle aside{backdrop-filter:blur(5px);background-color:var(--st-side-background)}.st-event-number{font-weight:bold;border:none}.st-event-wrapper{border:none}#st-start-widgets{box-shadow:none}.st-start-widget-grades-item[data-unread="true"]{background-image:none}.menu-host .menu{position:fixed!important;margin-left:64px!important}.menu-footer:hover{background-color:transparent!important}.menu-footer>a{width:10%!important}.appbar-host{z-index:1001!important}.appbar .popup-menu::after{border-right:6px solid var(--st-background-overlay)}span#faux-label{display:none!important}.collapsed-menu .main-menu>li>a>span{color:white!important;background:var(--st-background-overlay);border:none!important;z-index:9999999!important}.appbar .popup-menu h3{text-align:center;padding-left:0}.appbar .popup-menu{border-radius:12px}.main-menu>li.active>a{background-color:var(--st-appbar-background)}.main-menu li.children li.submenu.active>a{background-color:var(--st-appbar-background)}[data-ongoing="true"] .st-event-number{background-color:#fff;color:#000}.st-event-wrapper[data-ongoing="true"]{background-color:transparent}div#aanwezigheid,section.main.opdrachten-section,.content-container.ng-isolate-scope,.content-container.multi-columns.tri-columns.ng-isolate-scope,.content-container,.st-sw-subject{background-color:var(--st-appbar-background);backdrop-filter:blur(5px);border-radius:var(--st-border-radius)}#st-start-widget-digital-clock-wrapper>div[data-done="true"]::after{background-color:var(--st-appbar-background)}#cijfers-laatst-behaalde-resultaten-container .table-grid-layout{background-color:var(--st-appbar-background);backdrop-filter:blur(5px);border-radius:var(--st-border-radius)}.list-view .st-event>*,.menu-host .logo a,.appbar>div>a i,.appbar-icon,#st-start-widgets-list .st-widget,span#st-start-header-text,.loading-animation,a#st-appbar-week>*{user-select:none}.st-start-col-label{font:500 16px var(--st-font-family-primary);line-height:.9}.st-start-col[data-today="true"].st-start-col-label>div{width:15px;background-color:transparent;color:var(--st-contrast-accent)}'},{name:"Bliss",author:"Quinten Althues",thumbnail:"https://i.imgur.com/yf4PdNa.png",ptheme:"light,206,100,41.6",wallpaper:"custom,https://external-preview.redd.it/uhq5zTcMPM3tOW_fbUz4PayDt_5pkEXdyXXoRWs3XOg.jpg?auto=webp&s=e06461124c1ccfdba7e9ece763b644ff68eeb06b","wallpaper-opacity":1,sidecolor:"true,217,60.8,48",decoration:"none,https://preview.redd.it/where-can-i-get-the-windows-vista-wallpaper-in-the-best-v0-1lu31x1angtb1.jpg?auto=webp&s=c4b8113476e2f6b6106aac36c6b88eb1b88868b0",appbarcolor:"true,205,88.7,48.6",shape:4,"custom-css":".appbar-host,.menu-host{background-size:100% 40px;height:40px;width:100%;padding:0;z-index:500}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{display:grid;grid-template:'view view' 1fr 'menu appbar' 40px/1fr auto;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png');container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container>.bottom>img,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png')}.appbar{padding:0 12px;flex-direction:row;justify-content:center;gap:2px}.appbar>.menu-button{width:32px;max-height:none!important;margin-bottom:0!important;scale:0.9;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:transparent!important}#st-appbar-metrics{margin:0 12px;order:1;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{opacity:1!important;font:12px/10px var(--st-font-family-secondary)}.menu-container{margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important;scrollbar-width:auto}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{display:flex;align-items:center;gap:2px;margin-left:0!important}.main-menu>li{height:36px;width:135px;flex-shrink:0;background-color:transparent;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png');background-size:auto 144px;background-repeat:no-repeat;background-position-y:0px}@container (width < 1000px){.main-menu>li{width:36px;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png')}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{height:40px;width:125px!important;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png');background-size:auto 123px;position:sticky;left:0;z-index:1}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:transparent;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu, .appbar .popup-menu{position:fixed;bottom:40px;left:unset;width:180px;font:12px Tahoma;background-color:#fff;border:1px solid #000;border-radius:0;animation:none}.appbar .popup-menu{translate:-50%}.popup-menu>ul{margin-left:0!important;color:#000}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{color:currentColor!important;height:24px;margin:0}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg');background-size:100% 100%}.challenge-container>.top{position:fixed;right:calc(100vw - clamp(120px,40vw,800px) - 20px);top:50%;translate:0 -135%}.challenge-container:after,.podium>*{position:fixed;top:50%;translate:0 -50%}.challenge-container:after{content:'';display:block;right:calc(100vw - clamp(120px,40vw,800px) - (clamp(20px,7vw,150px) * .85));height:75vh;width:1px;background:linear-gradient(to bottom,transparent,#ffffff55,transparent)}.challenge-container>.top>svg{width:clamp(150px,27vw,300px)}.challenge-container>.top>svg>path{fill:#fff}.challenge-container>.bottom{position:fixed;right:10vw;bottom:4vh;padding:0;height:max-content;width:max-content;color:#fff}.challenge-container>.bottom>*{color:#fff}.podium>*{left:20px;right:20px;display:grid;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-template-rows:1fr 1fr 1fr;grid-auto-flow:column}.podium form>h2{grid-column:1;grid-row:3;justify-self:end;color:#fff!important;margin-block:0}.podium>*>div{width:clamp(200px,30vw,500px);grid-column:3;margin-block:0}.challenge-container *{font-family:var(--st-font-family-secondary)}.gripper{scale:0.6;align-content:center;min-width:36px;min-height:36px;margin-bottom:0}.appbar .menu-button>a:hover>span{top:unset;left:unset;bottom:46px;border-radius:0;border-color:#000!important;color:#000;background-color:#ffffe2;font:13px var(--st-font-family-secondary);text-transform:none;box-shadow:2px 2px 3px .75px #00000055;padding:3px}"}],un=["ptheme","pagecolor","wallpaper","wallpaper-opacity","sidecolor","decoration","decoration-size","appbarcolor","shape","custom-css","custom-css2"],ah=["src"],uh={__name:"MagisterThemePreview",props:["preset"],setup(e){const t=e,n=ht("syncedStorage"),s=he(()=>{let i={};return t.preset?un.forEach(l=>{var u;return i[l]=((u=t.preset)==null?void 0:u[l])||kt[0][l]}):un.forEach(l=>i[l]=n.value[l]),i}),r=he(()=>{var i,l,u,c,a,d,f,g,m,C;return{colorScheme:((l=(i=s.value.ptheme)==null?void 0:i.split(","))==null?void 0:l[0])||"auto",accentColor:(u=s.value.ptheme||"auto,207,95,55")==null?void 0:u.split(",").slice(1),pageColor:(c=s.value.pagecolor)!=null&&c.startsWith("true")?`hsl(${s.value.pagecolor.replace("true,","").replace(/,/gi," ")})`:null,appbarColor:(a=s.value.appbarcolor)!=null&&a.startsWith("true")?`hsl(${s.value.appbarcolor.replace("true,","").replace(/,/gi," ")})`:null,menubarColor:(d=s.value.sidecolor)!=null&&d.startsWith("true")?`hsl(${s.value.sidecolor.replace("true,","").replace(/,/gi," ")})`:null,wallpaperOpacity:s.value["wallpaper-opacity"],wallpaperUrl:(f=s.value.wallpaper)!=null&&f.startsWith("custom")?s.value.wallpaper.replace("custom,",""):null,decoration:((g=s.value.decoration)==null?void 0:g.split(",")[0])!=="none"?(m=s.value.decoration)==null?void 0:m.split(",")[0]:null,decorationUrl:(C=s.value.decoration)!=null&&C.startsWith("custom")?s.value.decoration.replace("custom,",""):null,shape:s.value.shape??8}});function o(i){const l=kt[0];return un.every(u=>s.value[u]===((i==null?void 0:i[u])??l[u]))}return(i,l)=>{var c,a,d,f,g;const u=lh;return(c=t.preset)!=null&&c.thumbnail||(a=de(kt).find(o))!=null&&a.thumbnail?(I(),q("img",{key:0,id:"theme-preview",class:"image",src:((d=t.preset)==null?void 0:d.thumbnail)||((f=de(kt).find(o))==null?void 0:f.thumbnail),title:`Dit is een voorbeeld van je thema. Het kan zijn dat -het thema er net anders uitziet dan hier.`},null,8,ah)):(I(),qe(u,{key:1,id:"theme-preview",class:"composition",style:Ve(r.value),title:(g=t.preset)!=null&&g.name?`Dit is een voorbeeld van je thema. Het kan zijn dat +**/const Kf=()=>{},qf=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:wl,BaseTransitionPropsValidators:xo,Comment:Me,DeprecationTypes:lf,EffectScope:ho,ErrorCodes:vc,ErrorTypeStrings:Zd,Fragment:me,KeepAlive:Wc,ReactiveEffect:ls,Static:fn,Suspense:Rd,Teleport:Tc,Text:Xt,TrackOpTypes:cc,Transition:kr,TransitionGroup:Pa,TriggerOpTypes:dc,VueElement:wr,assertNumber:gc,callWithAsyncErrorHandling:yt,callWithErrorHandling:In,camelize:Ge,capitalize:ms,cloneVNode:Pt,compatUtils:of,compile:Kf,computed:he,createApp:tr,createBlock:qe,createCommentVNode:Ve,createElementBlock:q,createElementVNode:S,createHydrationRenderer:Wl,createPropsRestProxy:cd,createRenderer:Hl,createSSRApp:Na,createSlots:Jc,createStaticVNode:Bd,createTextVNode:G,createVNode:W,customRef:al,defineAsyncComponent:Uc,defineComponent:So,defineCustomElement:Ea,defineEmits:ed,defineExpose:td,defineModel:rd,defineOptions:nd,defineProps:Zc,defineSSRCustomElement:Of,defineSlots:sd,devtools:ef,effect:zu,effectScope:Pu,getCurrentInstance:dt,getCurrentScope:mo,getCurrentWatcher:fc,getTransitionRawChildren:pr,guardReactiveProps:aa,h:ha,handleError:bn,hasInjectionContext:yd,hydrate:Hf,hydrateOnIdle:jc,hydrateOnInteraction:Fc,hydrateOnMediaQuery:Lc,hydrateOnVisible:Nc,initCustomFormatter:Jd,initDirectivesForSSR:Wf,inject:ht,isMemoSame:ma,isProxy:jn,isReactive:Qt,isReadonly:en,isRef:$e,isRuntimeOnly:qd,isShallow:pt,isVNode:It,markRaw:il,mergeDefaults:ad,mergeModels:ud,mergeProps:Mo,nextTick:Nn,normalizeClass:ze,normalizeProps:Eu,normalizeStyle:Re,onActivated:xl,onBeforeMount:Eo,onBeforeUnmount:gr,onBeforeUpdate:El,onDeactivated:Sl,onErrorCaptured:Pl,onMounted:Ct,onRenderTracked:Ol,onRenderTriggered:Al,onScopeDispose:Ui,onServerPrefetch:Tl,onUnmounted:vr,onUpdated:mr,onWatcherCleanup:cl,openBlock:I,popScopeId:_c,provide:rs,proxyRefs:ko,pushScopeId:wc,queuePostFlushCb:Hs,reactive:Zt,readonly:gs,ref:ie,registerRuntimeCompiler:Kd,render:Ia,renderList:We,renderSlot:we,resolveComponent:Gc,resolveDirective:Qc,resolveDynamicComponent:Ao,resolveFilter:rf,resolveTransitionHooks:zn,setBlockTracking:eo,setDevtoolsHook:tf,setTransitionHooks:jt,shallowReactive:ol,shallowReadonly:Yu,shallowRef:yo,ssrContextKey:Ql,ssrUtils:sf,stop:Vu,toDisplayString:ke,toHandlerKey:Zn,toHandlers:Xc,toRaw:ve,toRef:lc,toRefs:rc,toValue:tc,transformVNodeArgs:Ld,triggerRef:ec,unref:de,useAttrs:ld,useCssModule:zf,useCssVars:gf,useHost:Ta,useId:Oc,useModel:ea,useSSRContext:Jl,useShadowRoot:$f,useSlots:id,useTemplateRef:Pc,useTransitionState:_o,vModelCheckbox:_r,vModelDynamic:Io,vModelRadio:jo,vModelSelect:$a,vModelText:mn,vShow:Sa,version:ga,warn:Yd,watch:vt,watchEffect:br,watchPostEffect:Xl,watchSyncEffect:Yl,withAsyncContext:dd,withCtx:K,withDefaults:od,withDirectives:Ln,withKeys:Ra,withMemo:Xd,withModifiers:ao,withScopeId:xc},Symbol.toStringTag,{value:"Module"})),ye={__name:"Icon",props:{filled:Boolean},setup(e){return(t,n)=>(I(),q("span",{"aria-hidden":"true",class:ze(["icon material-symbols-outlined",e.filled?"fill":""])},[we(t.$slots,"default")],2))}},Gf={class:"chip-label"},Ba={__name:"Chip",props:["type"],setup(e){const t=e;return(n,s)=>(I(),q("button",{class:ze(["chip",t.type||"assist"])},[W(ye,{class:"chip-icon"},{default:K(()=>[we(n.$slots,"icon")]),_:3}),S("span",Gf,[we(n.$slots,"label")]),s[0]||(s[0]=S("div",{class:"state-layer chip-state-layer"},null,-1))],2))}};function xr(e){return mo()?(Ui(e),!0):!1}function Pi(){const e=new Set,t=r=>{e.delete(r)};return{on:r=>{e.add(r);const o=()=>t(r);return xr(o),{off:o}},off:t,trigger:(...r)=>Promise.all(Array.from(e).map(o=>o(...r)))}}function ut(e){return typeof e=="function"?e():de(e)}const Ua=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Qf=Object.prototype.toString,Jf=e=>Qf.call(e)==="[object Object]",gn=()=>{},Xf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function No(e,t){function n(...s){return new Promise((r,o)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(o)})}return n}const Ha=e=>e();function Yf(e,t={}){let n,s,r=gn;const o=l=>{clearTimeout(l),r(),r=gn};return l=>{const u=ut(e),c=ut(t.maxWait);return n&&o(n),u<=0||c!==void 0&&c<=0?(s&&(o(s),s=null),Promise.resolve(l())):new Promise((a,d)=>{r=t.rejectOnCancel?d:a,c&&!s&&(s=setTimeout(()=>{n&&o(n),s=null,a(l())},c)),n=setTimeout(()=>{s&&o(s),s=null,a(l())},u)})}}function Zf(...e){let t=0,n,s=!0,r=gn,o,i,l,u,c;!$e(e[0])&&typeof e[0]=="object"?{delay:i,trailing:l=!0,leading:u=!0,rejectOnCancel:c=!1}=e[0]:[i,l=!0,u=!0,c=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=gn)};return f=>{const v=ut(i),m=Date.now()-t,C=()=>o=f();return a(),v<=0?(t=Date.now(),C()):(m>v&&(u||!s)?(t=Date.now(),C()):l&&(o=new Promise((V,E)=>{r=c?E:V,n=setTimeout(()=>{t=Date.now(),s=!0,V(C()),a()},Math.max(0,v-m))})),!u&&!n&&(n=setTimeout(()=>s=!0,v)),s=!1,o)}}function ep(e=Ha){const t=ie(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...o)=>{t.value&&e(...o)};return{isActive:gs(t),pause:n,resume:s,eventFilter:r}}function tp(e){return dt()}function Wa(e,t=200,n={}){return No(Yf(t,n),e)}function np(e,t=200,n=!1,s=!0,r=!1){return No(Zf(t,n,s,r),e)}function sp(e,t,n={}){const{eventFilter:s=Ha,...r}=n;return vt(e,No(s,t),r)}function Ka(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:o,pause:i,resume:l,isActive:u}=ep(s);return{stop:sp(e,t,{...r,eventFilter:o}),pause:i,resume:l,isActive:u}}function Lo(e,t=!0,n){tp()?Ct(e,n):t?e():Nn(e)}const Nt=Ua?window:void 0,rp=Ua?window.document:void 0;function Ot(e){var t;const n=ut(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Ke(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Nt):[t,n,s,r]=e,!t)return gn;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const o=[],i=()=>{o.forEach(a=>a()),o.length=0},l=(a,d,f,v)=>(a.addEventListener(d,f,v),()=>a.removeEventListener(d,f,v)),u=vt(()=>[Ot(t),ut(r)],([a,d])=>{if(i(),!a)return;const f=Jf(d)?{...d}:d;o.push(...n.flatMap(v=>s.map(m=>l(a,v,m,f))))},{immediate:!0,flush:"post"}),c=()=>{u(),i()};return xr(c),c}function op(){const e=ie(!1),t=dt();return t&&Ct(()=>{e.value=!0},t),e}function Fo(e){const t=op();return he(()=>(t.value,!!e()))}function $i(e,t={}){const{window:n=Nt}=t,s=Fo(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const o=ie(!1),i=c=>{o.value=c.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",i):r.removeListener(i))},u=br(()=>{s.value&&(l(),r=n.matchMedia(ut(e)),"addEventListener"in r?r.addEventListener("change",i):r.addListener(i),o.value=r.matches)});return xr(()=>{u(),l(),r=void 0}),o}const zs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Vs="__vueuse_ssr_handlers__",ip=lp();function lp(){return Vs in zs||(zs[Vs]=zs[Vs]||{}),zs[Vs]}function ap(e,t){return ip[e]||t}function up(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const cp={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},zi="vueuse-storage";function qa(e,t,n,s={}){var r;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:u=!0,mergeDefaults:c=!1,shallow:a,window:d=Nt,eventFilter:f,onError:v=O=>{console.error(O)},initOnMounted:m}=s,C=(a?yo:ie)(typeof t=="function"?t():t);if(!n)try{n=ap("getDefaultStorage",()=>{var O;return(O=Nt)==null?void 0:O.localStorage})()}catch(O){v(O)}if(!n)return C;const V=ut(t),E=up(V),x=(r=s.serializer)!=null?r:cp[E],{pause:g,resume:k}=Ka(C,()=>P(C.value),{flush:o,deep:i,eventFilter:f});d&&l&&Lo(()=>{n instanceof Storage?Ke(d,"storage",D):Ke(d,zi,z),m&&D()}),m||D();function w(O,F){if(d){const A={key:e,oldValue:O,newValue:F,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",A):new CustomEvent(zi,{detail:A}))}}function P(O){try{const F=n.getItem(e);if(O==null)w(F,null),n.removeItem(e);else{const A=x.write(O);F!==A&&(n.setItem(e,A),w(F,A))}}catch(F){v(F)}}function $(O){const F=O?O.newValue:n.getItem(e);if(F==null)return u&&V!=null&&n.setItem(e,x.write(V)),V;if(!O&&c){const A=x.read(F);return typeof c=="function"?c(A,V):E==="object"&&!Array.isArray(A)?{...V,...A}:A}else return typeof F!="string"?F:x.read(F)}function D(O){if(!(O&&O.storageArea!==n)){if(O&&O.key==null){C.value=V;return}if(!(O&&O.key!==e)){g();try{(O==null?void 0:O.newValue)!==x.write(C.value)&&(C.value=$(O))}catch(F){v(F)}finally{O?Nn(k):k()}}}}function z(O){D(O.detail)}return C}function dp(e,t,n={}){const{window:s=Nt,...r}=n;let o;const i=Fo(()=>s&&"ResizeObserver"in s),l=()=>{o&&(o.disconnect(),o=void 0)},u=he(()=>{const d=ut(e);return Array.isArray(d)?d.map(f=>Ot(f)):[Ot(d)]}),c=vt(u,d=>{if(l(),i.value&&s){o=new ResizeObserver(t);for(const f of d)f&&o.observe(f,r)}},{immediate:!0,flush:"post"}),a=()=>{l(),c()};return xr(a),{isSupported:i,stop:a}}function fp(e,t={width:0,height:0},n={}){const{window:s=Nt,box:r="content-box"}=n,o=he(()=>{var d,f;return(f=(d=Ot(e))==null?void 0:d.namespaceURI)==null?void 0:f.includes("svg")}),i=ie(t.width),l=ie(t.height),{stop:u}=dp(e,([d])=>{const f=r==="border-box"?d.borderBoxSize:r==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(s&&o.value){const v=Ot(e);if(v){const m=v.getBoundingClientRect();i.value=m.width,l.value=m.height}}else if(f){const v=Array.isArray(f)?f:[f];i.value=v.reduce((m,{inlineSize:C})=>m+C,0),l.value=v.reduce((m,{blockSize:C})=>m+C,0)}else i.value=d.contentRect.width,l.value=d.contentRect.height},n);Lo(()=>{const d=Ot(e);d&&(i.value="offsetWidth"in d?d.offsetWidth:t.width,l.value="offsetHeight"in d?d.offsetHeight:t.height)});const c=vt(()=>Ot(e),d=>{i.value=d?t.width:0,l.value=d?t.height:0});function a(){u(),c()}return{width:i,height:l,stop:a}}function pp(e={}){const{initialValue:t=""}=e,n=Fo(()=>typeof window<"u"&&"EyeDropper"in window),s=ie(t);async function r(o){if(!n.value)return;const l=await new window.EyeDropper().open(o);return s.value=l.sRGBHex,l}return{isSupported:n,sRGBHex:s,open:r}}const hp={multiple:!0,accept:"*",reset:!1,directory:!1};function mp(e={}){const{document:t=rp}=e,n=ie(null),{on:s,trigger:r}=Pi(),{on:o,trigger:i}=Pi();let l;t&&(l=t.createElement("input"),l.type="file",l.onchange=a=>{const d=a.target;n.value=d.files,r(n.value)},l.oncancel=()=>{i()});const u=()=>{n.value=null,l&&l.value&&(l.value="",r(null))},c=a=>{if(!l)return;const d={...hp,...e,...a};l.multiple=d.multiple,l.accept=d.accept,l.webkitdirectory=d.directory,Xf(d,"capture")&&(l.capture=d.capture),d.reset&&u(),l.click()};return{files:gs(n),open:c,reset:u,onCancel:o,onChange:s}}function Sr(e,t={}){const{initialValue:n=!1,focusVisible:s=!1,preventScroll:r=!1}=t,o=ie(!1),i=he(()=>Ot(e));Ke(i,"focus",u=>{var c,a;(!s||(a=(c=u.target).matches)!=null&&a.call(c,":focus-visible"))&&(o.value=!0)}),Ke(i,"blur",()=>o.value=!1);const l=he({get:()=>o.value,set(u){var c,a;!u&&o.value?(c=i.value)==null||c.blur():u&&!o.value&&((a=i.value)==null||a.focus({preventScroll:r}))}});return vt(i,()=>{l.value=n},{immediate:!0,flush:"post"}),{focused:l}}const Vi=1;function gp(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=gn,onScroll:o=gn,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:u="auto",window:c=Nt,onError:a=$=>{console.error($)}}=t,d=ie(0),f=ie(0),v=he({get(){return d.value},set($){C($,void 0)}}),m=he({get(){return f.value},set($){C(void 0,$)}});function C($,D){var z,O,F,A;if(!c)return;const N=ut(e);if(!N)return;(F=N instanceof Document?c.document.body:N)==null||F.scrollTo({top:(z=ut(D))!=null?z:m.value,left:(O=ut($))!=null?O:v.value,behavior:ut(u)});const Q=((A=N==null?void 0:N.document)==null?void 0:A.documentElement)||(N==null?void 0:N.documentElement)||N;v!=null&&(d.value=Q.scrollLeft),m!=null&&(f.value=Q.scrollTop)}const V=ie(!1),E=Zt({left:!0,right:!1,top:!0,bottom:!1}),x=Zt({left:!1,right:!1,top:!1,bottom:!1}),g=$=>{V.value&&(V.value=!1,x.left=!1,x.right=!1,x.top=!1,x.bottom=!1,r($))},k=Wa(g,n+s),w=$=>{var D;if(!c)return;const z=((D=$==null?void 0:$.document)==null?void 0:D.documentElement)||($==null?void 0:$.documentElement)||Ot($),{display:O,flexDirection:F}=getComputedStyle(z),A=z.scrollLeft;x.left=Ad.value;const N=Math.abs(A)<=(i.left||0),Q=Math.abs(A)+z.clientWidth>=z.scrollWidth-(i.right||0)-Vi;O==="flex"&&F==="row-reverse"?(E.left=Q,E.right=N):(E.left=N,E.right=Q),d.value=A;let ee=z.scrollTop;$===c.document&&!ee&&(ee=c.document.body.scrollTop),x.top=eef.value;const j=Math.abs(ee)<=(i.top||0),ne=Math.abs(ee)+z.clientHeight>=z.scrollHeight-(i.bottom||0)-Vi;O==="flex"&&F==="column-reverse"?(E.top=ne,E.bottom=j):(E.top=j,E.bottom=ne),f.value=ee},P=$=>{var D;if(!c)return;const z=(D=$.target.documentElement)!=null?D:$.target;w(z),V.value=!0,k($),o($)};return Ke(e,"scroll",n?np(P,n,!0,!1):P,l),Lo(()=>{try{const $=ut(e);if(!$)return;w($)}catch($){a($)}}),Ke(e,"scrollend",g,l),{x:v,y:m,isScrolling:V,arrivedState:E,directions:x,measure(){const $=ut(e);c&&$&&w($)}}}function Fr(e={}){const{touch:t=!0,drag:n=!0,capture:s=!1,initialValue:r=!1,window:o=Nt}=e,i=ie(r),l=ie(null);if(!o)return{pressed:i,sourceType:l};const u=d=>()=>{i.value=!0,l.value=d},c=()=>{i.value=!1,l.value=null},a=he(()=>Ot(e.target)||o);return Ke(a,"mousedown",u("mouse"),{passive:!0,capture:s}),Ke(o,"mouseleave",c,{passive:!0,capture:s}),Ke(o,"mouseup",c,{passive:!0,capture:s}),n&&(Ke(a,"dragstart",u("mouse"),{passive:!0,capture:s}),Ke(o,"drop",c,{passive:!0,capture:s}),Ke(o,"dragend",c,{passive:!0,capture:s})),t&&(Ke(a,"touchstart",u("touch"),{passive:!0,capture:s}),Ke(o,"touchend",c,{passive:!0,capture:s}),Ke(o,"touchcancel",c,{passive:!0,capture:s})),{pressed:i,sourceType:l}}function vp(e){const t=$i("(prefers-color-scheme: light)",e),n=$i("(prefers-color-scheme: dark)",e);return he(()=>n.value?"dark":t.value?"light":"no-preference")}function bp(e="history",t={}){const{initialValue:n={},removeNullishValues:s=!0,removeFalsyValues:r=!1,write:o=!0,window:i=Nt}=t;if(!i)return Zt(n);const l=Zt({});function u(){if(e==="history")return i.location.search||"";if(e==="hash"){const E=i.location.hash||"",x=E.indexOf("?");return x>0?E.slice(x):""}else return(i.location.hash||"").replace(/^#/,"")}function c(E){const x=E.toString();if(e==="history")return`${x?`?${x}`:""}${i.location.hash||""}`;if(e==="hash-params")return`${i.location.search||""}${x?`#${x}`:""}`;const g=i.location.hash||"#",k=g.indexOf("?");return k>0?`${g.slice(0,k)}${x?`?${x}`:""}`:`${g}${x?`?${x}`:""}`}function a(){return new URLSearchParams(u())}function d(E){const x=new Set(Object.keys(l));for(const g of E.keys()){const k=E.getAll(g);l[g]=k.length>1?k:E.get(g)||"",x.delete(g)}Array.from(x).forEach(g=>delete l[g])}const{pause:f,resume:v}=Ka(l,()=>{const E=new URLSearchParams("");Object.keys(l).forEach(x=>{const g=l[x];Array.isArray(g)?g.forEach(k=>E.append(x,k)):s&&g==null||r&&!g?E.delete(x):E.set(x,g)}),m(E)},{deep:!0});function m(E,x){f(),x&&d(E),i.history.replaceState(i.history.state,i.document.title,i.location.pathname+c(E)),v()}function C(){o&&m(a(),!0)}Ke(i,"popstate",C,!1),e!=="history"&&Ke(i,"hashchange",C,!1);const V=a();return V.keys().next().value?d(V):Object.assign(l,n),l}const nr=[{id:"theme",settings:[{id:"ptheme",title:"Algemeen",type:"ThemeColors",default:"auto,207,95,55"},{id:"pagecolor",title:"Achtergrondkleur",subtitle:"Achtergrond",type:"ColorOverrideSetting",default:"false,0,0,7"},{id:"wallpaper",title:"Achtergrondafbeelding",type:"DecorationPickerSetting",default:"none,"},{id:"wallpaper-opacity",title:"Achtergrondtransparantie",type:"Slider",display:"inline",default:.2,format:"percent",decimals:0,min:.05,max:1,step:.05,conditions:[{settingId:"wallpaper",operator:"not starting with",value:"none"}]},{id:"sidecolor",title:"Menubalkkleur",subtitle:"Menubalk",type:"ColorOverrideSetting",default:"false,207,95,55"},{id:"decoration",title:"Menubalkdecoratie",type:"DecorationPickerSetting",default:"none,"},{id:"decoration-size",title:"Menubalkdecoratieformaat",type:"Slider",display:"inline",default:1,format:"percent",decimals:0,min:.5,max:3,step:.1,conditions:[{settingId:"decoration",operator:"not starting with",value:"none"}]},{id:"appbarcolor",title:"Appbalkkleur",subtitle:"Appbalk",type:"ColorOverrideSetting",default:"false,207,95,47"},{id:"shape",title:"Hoekstraal",type:"Slider",default:8,format:"px",decimals:0,min:0,max:20,step:1},{id:"custom-css",title:"Aangepaste CSS",type:"LinkToOptionsTab",default:""},{id:"custom-css2",hide:!0,default:""}]},{id:"login",settings:[{id:"magisterLogin-enabled",title:"Automatisch inloggen",default:!0},{id:"magisterLogin-username",title:"Gebruikersnaam",subtitle:"Je gebruikersnaam wordt vanzelf ingevoerd.",type:"Text",default:"",conditions:[{settingId:"magisterLogin-enabled",operator:"equal",value:!0}]},{id:"magisterLogin-email",title:"Microsoft-account",subtitle:"Vul het e-mailadres in van je Microsoft-schoolaccount—als je school gebruikmaakt van Single Sign On via Microsoft. Dit account wordt tijdens het inloggen aangeklikt.",type:"Text",fieldType:"email",default:"",conditions:[{settingId:"magisterLogin-enabled",operator:"equal",value:!0}]}]},{id:"sidebar",settings:[{id:"magister-appbar-week",title:"Weeknummer in menubalk",default:!0},{id:"shortcuts",title:"Snelkoppelingen menubalk",type:"ShortcutsEditor",default:[{icon:"",href:"$SCHOOLNAAM.zportal.nl/app",hotkey:"z"}]},{id:"magister-picture",title:"Profielfoto",type:"SingleChoice",default:"hide",options:[{value:"show",title:"Schoolfoto",icon:"photo_camera_front"},{value:"custom",title:"Aangepast",icon:"add_photo_alternate"},{value:"hide",title:"Verbergen",icon:"visibility_off"}]},{id:"magister-picture-source",title:"Profielfoto kiezen",type:"ImageInput",default:null,conditions:[{settingId:"magister-picture",operator:"equal",value:"custom"}]},{id:"hotkeys-enabled",title:"Sneltoetsen",subtitle:"Houd Alt ingedrukt en druk op een letter op je toetsenbord voor snelle navigatie.",default:!0}]},{id:"start",settings:[{id:"start-enabled",title:"Pagina Start",subtitle:"De pagina 'Vandaag' is nu 'Start'. Daarin zie je je rooster en gepersonaliseerde widgets. Aanvullende opties op Magister zelf.",default:!0},{id:"start-schedule-view",title:"Rooster in Start",type:"SingleChoice",default:"schedule",conditions:[{settingId:"start-enabled",operator:"equal",value:!0}],options:[{value:"schedule",title:"Agenda",icon:"calendar_view_day"},{value:"list",title:"Lijst",icon:"list"}]},{id:"start-schedule-extra-day",title:"Volgende dag tonen in Start",subtitle:"Springen naar de eerstvolgende dag met lessen wanneer er vandaag geen lessen (meer) zijn. Alleen in de weergavemodus 'Dag'.",default:!0,conditions:[{settingId:"start-enabled",operator:"equal",value:!0},{settingId:"start-schedule-view",operator:"equal",value:"schedule"}]}]},{id:"grades",settings:[{id:"suf-threshold",title:"Voldoendegrens",type:"Slider",default:5.5,decimals:1,min:1,max:10,step:.1},{id:"cc",title:"Cijfercalculator",subtitle:"Zie wat je moet halen of wat je komt te staan op basis van je cijferlijst en/of aangepaste cijfers.",default:!0},{id:"cs",title:"Cijferstatistieken",subtitle:"Nieuw tabblad in het cijferoverzicht met statistieken, grafiekjes en handige filters.",default:!0},{id:"cb",title:"Cijferback-up",subtitle:"Knop in het cijferoverzicht om je cijferlijst te exporteren en te importeren.",default:!0,links:[{icon:"upload",label:"Cijferback-up importeren",href:"https://qkeleq10.github.io/studytools/grades"}]},{id:"insuf-red",title:"Onvoldoendes rood kleuren",subtitle:"Alleen in het cijferoverzicht en in de cijferwidget.",default:!0}]},{id:"studyguide",settings:[{id:"sw-enabled",title:"Studiewijzers rangschikken",subtitle:"Studiewijzers zullen worden gegroepeerd op vak.",default:!0},{id:"sw-cols",title:"Aantal kolommen",type:"Slider",default:3,decimals:0,min:1,max:5,step:1,conditions:[{settingId:"sw-enabled",operator:"equal",value:!0}]},{id:"sw-period",title:"Periodenummers bij studiewijzers",subtitle:"In plaats van de naam van de studiewijzer.",default:!0,conditions:[{settingId:"sw-enabled",operator:"equal",value:!0}]},{id:"sw-current-week-behavior",title:"Huidige week in studiewijzer",type:"SingleChoice",default:"focus",options:[{value:"focus",title:"Scrollen",icon:"bolt"},{value:"highlight",title:"Markeren",icon:"ink_highlighter"},{value:"off",title:"Uit",icon:"block"}]},{id:"sw-resources-auto",title:"Aanbevelingen",subtitle:"Soms wordt er een gecureerde collectie hulpbronnen getoond in de zijbalk.",default:!0}]},{id:"about",settings:[{id:"language",title:"Taal",subtitle:"Experimenteel",type:"SingleChoice",default:"nl-NL",options:[{value:"nl-NL",title:"Nederlands"},{value:"en-GB",title:"English"},{value:"fr-FR",title:"Français"},{value:"de-DE",title:"Deutsch"},{value:"sv-SE",title:"Svenska"},{value:"la-LA",title:"Latina lingua"}]},{id:"beta-options",title:"Ontwikkelaarsopties",subtitle:"Experimenteel",default:!1},{id:"darken-content",title:"Inhoud donker maken",subtitle:"Experimenteel. Studiewijzers en opdrachten donker maken indien het donkere thema actief is.",conditions:[{settingId:"beta-options",operator:"equal",value:!0}],default:!0},{id:"verbosity",title:"Uitgebreide consoleberichten",subtitle:"Experimenteel. Er worden meer activiteiten geplaatst in de console.",default:!1,conditions:[{settingId:"beta-options",operator:"equal",value:!0}]}]}],Pe=window.browser||window.chrome;function yp(){let e=ie({});Ct(()=>{var s,r,o;(s=Pe==null?void 0:Pe.storage)!=null&&s.sync&&(Pe.storage.sync.get().then(i=>{e.value=i,nr.forEach(l=>{l.settings.forEach(u=>{typeof e.value[u.id]>"u"&&(e.value[u.id]=u.default)})}),Pe.storage.sync.onChanged.addListener(l=>{for(let u in l)e.value[u]!==l[u].newValue&&(e.value[u]=l[u].newValue)})}),e.value.v=(o=(r=Pe==null?void 0:Pe.runtime)==null?void 0:r.getManifest())==null?void 0:o.version)});const t=Wa(()=>{var s;if((s=Pe==null?void 0:Pe.storage)!=null&&s.sync){let r={...e.value};jn(r)&&(r=ve(r)),Pe.storage.sync.set(r)}},250,{maxWait:2e3}),n=()=>{var i,l;const s=(i=e.value.ptheme)==null?void 0:i.split(","),r=(s==null?void 0:s[0])==="auto";let o=s;r&&((l=window.matchMedia)!=null&&l.call(window,"(prefers-color-scheme: dark)").matches)?o[0]="dark":r&&(o[0]="light"),document.documentElement.setAttribute("theme",(o==null?void 0:o[0])||"light"),document.documentElement.style.setProperty("--palette-primary-hue",(o==null?void 0:o[1])||207),document.documentElement.style.setProperty("--palette-primary-saturation",`${(o==null?void 0:o[2])||95}%`),document.documentElement.style.setProperty("--palette-primary-luminance",`${(o==null?void 0:o[3])||55}%`)};return br(()=>{({...e.value},t()),n()}),e}function kp(){let e=ie({});return Ct(()=>{var t;(t=Pe==null?void 0:Pe.storage)!=null&&t.local&&(Pe.storage.local.get().then(n=>{e.value=n}),Pe.storage.local.onChanged.addListener(n=>{for(let s in n)e.value[s]!==n[s].newValue&&(e.value[s]=n[s].newValue)}))}),br(()=>{let t={...e.value};jn(t)&&(t=ve(t)),Pe!=null&&Pe.storage&&Pe.storage.local.set(t)}),e}function wp(){let e=ie({});return Ct(()=>{var t;(t=Pe==null?void 0:Pe.runtime)!=null&&t.getManifest&&(e.value=Pe.runtime.getManifest())}),{manifest:e}}const _p=["active"],xp=["active"],Sp={class:"dialog-title center"},Cp={class:"dialog-description"},Ep={class:"dialog-actions"},$n={__name:"Dialog",props:["active"],emits:["update:active"],setup(e,{emit:t}){const n=e,s=t,r=()=>{s("update:active",!1)};return(o,i)=>(I(),q(me,null,[S("div",{class:"scrim",active:n.active,onClick:r},null,8,_p),S("div",{class:"dialog",active:n.active},[W(ye,{class:"dialog-icon"},{default:K(()=>[we(o.$slots,"icon")]),_:3}),S("h2",Sp,[we(o.$slots,"headline")]),S("span",Cp,[we(o.$slots,"text")]),S("div",Ep,[we(o.$slots,"buttons")])],8,xp)],64))}},Tp=["for"],Ap=["id"],Op={class:"border-cutout"},Pp={class:"setting-title"},$p={class:"setting-subtitle"},zp=Object.assign({inheritAttrs:!1},{__name:"InputText",props:["id","modelValue"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue},set(u){s("update:modelValue",u)}}),o=ie(null),{focused:i}=Sr(o),l=he(()=>{var u;return((u=r==null?void 0:r.value)==null?void 0:u.length)>0});return(u,c)=>(I(),q("label",{class:ze(["text-input-label",{focused:de(i),filled:l.value}]),for:e.id},[Ln(S("input",Mo({class:"text-input",type:"input",id:e.id,ref_key:"input",ref:o,"onUpdate:modelValue":c[0]||(c[0]=a=>r.value=a),placeholder:" ",autocomplete:"off"},u.$attrs),null,16,Ap),[[mn,r.value,void 0,{lazy:!0}]]),S("div",Op,[we(u.$slots,"title")]),S("h3",Pp,[we(u.$slots,"title")]),S("span",$p,[we(u.$slots,"subtitle")])],10,Tp))}}),Vp={id:"about"},Rp={id:"about-hero"},Dp={class:"action-row",id:"about-buttons"},Mp={__name:"About",emits:["resetSettings"],setup(e,{emit:t}){const n=t,{manifest:s}=wp(),r=ht("syncedStorage"),o=ie(!1),i=ie(!1),l=ie(!1),u=he({get(){try{return JSON.stringify(r.value)||{}}catch{return{}}},set(d){try{return r.value=JSON.parse(d)||r.value||{},r.value}catch{return r.value=r.value||{},r.value}}});function c(){n("resetSettings"),i.value=!1}function a(d){window.open(d,"_blank","noreferrer")}return(d,f)=>{var v;return I(),q("div",Vp,[S("h4",Rp,[f[16]||(f[16]=G("Study Tools voor Magister (")),S("button",{class:"button text inline",onClick:f[0]||(f[0]=m=>a("https://github.com/QkeleQ10/Study-Tools/blob/dev/updates.json"))},[S("span",null,"versie "+ke(((v=de(s).version)==null?void 0:v.replace(/^([0-9]+(\.[0-9]+){2})(\.[1-9]+)$/gi,"$1-beta$3"))||"onbekend"),1)]),f[17]||(f[17]=G(")"))]),f[44]||(f[44]=S("p",{id:"about-description"},[G(" Ontwikkeld door Quinten Althues"),S("br"),G(" Bedankt voor het gebruiken van Study Tools!"),S("br")],-1)),S("div",Dp,[S("button",{class:"button",onClick:f[1]||(f[1]=m=>a("https://qkeleq10.github.io/studytools"))},[W(ye,null,{default:K(()=>f[18]||(f[18]=[G("captive_portal")])),_:1}),f[19]||(f[19]=S("span",null,"Website",-1))]),S("button",{class:"button tonal",onClick:f[2]||(f[2]=m=>a("mailto:quinten@althues.nl?subject=Study Tools"))},[W(ye,null,{default:K(()=>f[20]||(f[20]=[G("alternate_email")])),_:1}),f[21]||(f[21]=S("span",null,"E-mail",-1))]),S("button",{class:"button tonal",onClick:f[3]||(f[3]=m=>a("https://discord.gg/2rP7pfeAKf"))},[W(ye,null,{default:K(()=>f[22]||(f[22]=[G("forum")])),_:1}),f[23]||(f[23]=S("span",null,"Discord",-1))]),S("button",{class:"button tonal",onClick:f[4]||(f[4]=m=>a("https://paypal.me/QkeleQ10"))},[W(ye,null,{default:K(()=>f[24]||(f[24]=[G("volunteer_activism")])),_:1}),f[25]||(f[25]=S("span",null,"PayPal",-1))]),S("button",{class:"button tonal",onClick:f[5]||(f[5]=m=>o.value=!0)},[W(ye,null,{default:K(()=>f[26]||(f[26]=[G("shield_locked")])),_:1}),f[27]||(f[27]=S("span",null,"Privacybeleid",-1))])]),W($n,{active:o.value,"onUpdate:active":f[7]||(f[7]=m=>o.value=m)},{icon:K(()=>f[28]||(f[28]=[G("info")])),headline:K(()=>f[29]||(f[29]=[G("Informatie")])),text:K(()=>f[30]||(f[30]=[G(" Deze extensie slaat gegevens over je identiteit, je accounts en je instellingen op in de browser. Afhankelijk van je browserinstellingen worden ze al dan niet opgeslagen in de cloud. Er wordt nooit informatie doorgestuurd naar de ontwikkelaar of naar derden."),S("br",null,null,-1),S("br",null,null,-1),G(" Ik kan onder geen enkele omstandigheid je gegevens zien. Ik kan alleen zien hoe veel gebruikers mijn extensie gebruiken en andere statistieken zoals percentages van besturingssystemen. Ik kan dus niet per gebruiker dingen zien en Magister-gegevens zijn compleet ontoegankelijk voor mij. ")])),buttons:K(()=>[S("button",{onClick:f[6]||(f[6]=m=>o.value=!1)},"Begrepen")]),_:1},8,["active"]),S("button",{id:"about-reset",onClick:f[8]||(f[8]=m=>i.value=!0)},[f[32]||(f[32]=S("div",null,[S("h3",{class:"setting-title"}," Voorkeuren wissen ")],-1)),W(ye,null,{default:K(()=>f[31]||(f[31]=[G("chevron_right")])),_:1})]),W($n,{active:i.value,"onUpdate:active":f[10]||(f[10]=m=>i.value=m)},{icon:K(()=>f[33]||(f[33]=[G("restart_alt")])),headline:K(()=>f[34]||(f[34]=[G("Voorkeuren wissen?")])),text:K(()=>f[35]||(f[35]=[G("Hiermee stel je alle instellingen van Study Tools in op de standaardwaarden.")])),buttons:K(()=>[S("button",{onClick:f[9]||(f[9]=m=>i.value=!1)},"Annuleren"),S("button",{onClick:c},"Wissen")]),_:1},8,["active"]),S("button",{id:"about-export",onClick:f[11]||(f[11]=m=>l.value=!0)},[f[37]||(f[37]=S("div",null,[S("h3",{class:"setting-title"}," Voorkeuren kopiëren/plakken ")],-1)),W(ye,null,{default:K(()=>f[36]||(f[36]=[G("chevron_right")])),_:1})]),W($n,{active:l.value,"onUpdate:active":f[15]||(f[15]=m=>l.value=m)},{icon:K(()=>f[38]||(f[38]=[G("copy_all")])),headline:K(()=>f[39]||(f[39]=[G("Voorkeuren kopiëren/plakken")])),text:K(()=>[f[41]||(f[41]=G("Kopieer de inhoud van het tekstvak om je voorkeuren op te slaan op je klembord. Plak in het tekstvak om voorkeuren te wijzigen. Als je plakt, dan gaan al je huidige voorkeuren verloren.")),f[42]||(f[42]=S("br",null,null,-1)),f[43]||(f[43]=S("br",null,null,-1)),W(zp,{id:"settings-paste-input",modelValue:u.value,"onUpdate:modelValue":f[12]||(f[12]=m=>u.value=m),onFocus:f[13]||(f[13]=m=>m.target.select())},{title:K(()=>f[40]||(f[40]=[G("Plak hier")])),_:1},8,["modelValue"])]),buttons:K(()=>[S("button",{onClick:f[14]||(f[14]=m=>l.value=!1)},"Sluiten")]),_:1},8,["active"])])}}},jp=["active"],Ip=["data-visible","data-state"],Cr={__name:"BottomSheet",props:["active","handle"],emits:["update:active"],setup(e,{emit:t}){const n=e,s=t,r=ie("hidden"),o=()=>{r.value="hiding",setTimeout(()=>{s("update:active",!1),r.value="hidden"},200)};return vt(()=>n.active,async i=>{i===!0?(r.value="showing",setTimeout(()=>{r.value="shown"},300)):(r.value="hiding",setTimeout(()=>{s("update:active",!1),r.value="hidden"},200))}),(i,l)=>(I(),q(me,null,[r.value!=="hidden"?(I(),q("div",{key:0,class:"scrim",active:r.value==="shown"||r.value==="showing",onClick:o},null,8,jp)):Ve("",!0),r.value!=="hidden"?(I(),q("div",{key:1,class:"bottom-sheet","data-visible":r.value!=="hidden","data-state":r.value},[e.handle?(I(),q("div",{key:0,class:"bottom-sheet-handle",onClick:o})):Ve("",!0),we(i.$slots,"content")],8,Ip)):Ve("",!0)],64))}},ft=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Np={class:"color-maker"},Lp={id:"hue-wheel-wrapper"},Fp={class:"col-right"},Bp={key:0,class:"swatches"},Up=["title","onClick"],Hp={class:"flex"},Wp={__name:"ColorWheelSheet",props:["modelValue","pickerOpen","swatches"],emits:["update:modelValue","update:pickerOpen"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return typeof n.modelValue=="string"?{h:n.modelValue.split()[0],s:n.modelValue.split()[1],l:n.modelValue.split()[2]}:n.modelValue},set(w){typeof n.modelValue=="string"?s("update:modelValue",w.join(",")):s("update:modelValue",w)}}),o=he({get(){return n.pickerOpen||!1},set(w){s("update:pickerOpen",w)}}),i=ie(null),l=ie(null),u=ie(null),c=Fr({target:i}),a=Fr({target:l}),d=Fr({target:u}),{isSupported:f,open:v,sRGBHex:m}=pp();function C(w){if(w.type==="mousemove"&&!c.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),$=w.clientX-P.left-P.width/2,D=w.clientY-P.top-P.height/2;let z=Math.atan2(D,$);z=z*180/Math.PI+90,z=z<0?360+z:z,r.value={...r.value,h:Math.floor(z)}}function V(w){if(w.type==="mousemove"&&!a.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),$=(w.clientX-P.left)/P.width*100;r.value={...r.value,s:Math.floor($)}}function E(w){if(w.type==="mousemove"&&!d.pressed.value)return;const P=w.currentTarget.getBoundingClientRect(),$=(w.clientX-P.left)/P.width*100;r.value={...r.value,l:Math.floor($)}}async function x(){await v(),m.value&&(r.value=g(m.value))}function g(w){let P=0,$=0,D=0;w.length==4?(P="0x"+w[1]+w[1],$="0x"+w[2]+w[2],D="0x"+w[3]+w[3]):w.length==7&&(P="0x"+w[1]+w[2],$="0x"+w[3]+w[4],D="0x"+w[5]+w[6]),P/=255,$/=255,D/=255;let z=Math.min(P,$,D),O=Math.max(P,$,D),F=O-z,A=0,N=0,Q=0;return F==0?A=0:O==P?A=($-D)/F%6:O==$?A=(D-P)/F+2:A=(P-$)/F+4,A=Math.round(A*60),A<0&&(A+=360),Q=(O+z)/2,N=F==0?0:F/(1-Math.abs(2*Q-1)),N=+(N*100).toFixed(1),Q=+(Q*100).toFixed(1),{h:A,s:N,l:Q}}function k(w){return w.h==r.value.h&&w.s==r.value.s&&w.l==r.value.l}return(w,P)=>(I(),qe(Cr,{active:o.value,"onUpdate:active":P[1]||(P[1]=$=>o.value=$),handle:!0},{content:K(()=>{var $;return[S("div",Np,[S("div",Lp,[S("div",{id:"hue-wheel",ref_key:"hueWheel",ref:i,onMouseup:C,onMousemove:C,style:Re({"background-image":`radial-gradient(var(--color-surface-container) 56%, transparent calc(56% + 1px)), conic-gradient(in hsl longer hue, hsl(0 ${r.value.s}% ${r.value.l}%) 0 0)`})},null,36),S("div",{id:"hue-wheel-knob",class:"knob",style:Re({transform:`rotate(${r.value.h-6}deg)`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4),S("div",{id:"hue-wheel-values",style:Re({"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},[S("span",null,ke(Number(r.value.h).toLocaleString("nl-NL",{style:"unit",unit:"degree",unitDisplay:"short",maximumFractionDigits:0})),1),S("span",null,ke(Number(r.value.s/100).toLocaleString("nl-NL",{style:"percent",maximumFractionDigits:0})),1),S("span",null,ke(Number(r.value.l/100).toLocaleString("nl-NL",{style:"percent",maximumFractionDigits:0})),1)],4)]),S("div",Fp,[S("div",{class:"saturation-bar color-bar",ref_key:"saturationBar",ref:l,onMouseup:V,onMousemove:V,style:Re({"background-image":`linear-gradient(to left, hsl(${r.value.h} 100% ${r.value.l}%), hsl(${r.value.h} 50% ${r.value.l}%), hsl(${r.value.h} 0% ${r.value.l}%))`})},[S("div",{class:"saturation-bar-knob color-bar-knob knob",style:Re({left:`${r.value.s}%`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4)],36),S("div",{class:"luminance-bar color-bar",ref_key:"luminanceBar",ref:u,onMouseup:E,onMousemove:E,style:Re({"background-image":`linear-gradient(to left, hsl(${r.value.h} ${r.value.s}% 100%), hsl(${r.value.h} ${r.value.s}% 50%), hsl(${r.value.h} ${r.value.s}% 0%))`})},[S("div",{class:"luminance-bar-knob color-bar-knob knob",style:Re({left:`${r.value.l}%`,"background-color":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%`})},null,4)],36),(($=e.swatches)==null?void 0:$.length)>0?(I(),q("div",Bp,[(I(!0),q(me,null,We(e.swatches,D=>(I(),q("button",{class:ze(["swatch",{selected:k(D.color)}]),key:D.name,title:D.name,style:Re({"background-color":`hsl(${D.color.h} ${D.color.s}% ${D.color.l}%`}),onClick:z=>r.value=D.color},null,14,Up))),128))])):Ve("",!0),S("div",Hp,[S("button",{class:"button",onClick:P[0]||(P[0]=D=>o.value=!1)},P[2]||(P[2]=[S("span",null,"Gereed",-1)])),de(f)?(I(),q("button",{key:0,class:"button tonal invoke-eyedropper",onClick:x},[W(ye,null,{default:K(()=>P[3]||(P[3]=[G("colorize")])),_:1}),P[4]||(P[4]=S("span",null,"Pipet",-1))])):Ve("",!0)])])])]}),_:1},8,["active"]))}},Ga=ft(Wp,[["__scopeId","data-v-fa94413b"]]),Kp={class:"color-picker"},qp={class:"gallery"},Gp={class:"swatches"},Qp=["title","onClick"],Jp={__name:"ColorPicker",props:["modelValue"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue||i[0].color},set(d){s("update:modelValue",d)}}),o=ie(!1),i=[{name:"Azuurblauw",color:{h:207,s:95,l:55}},{name:"Zeegroen",color:{h:161,s:51,l:41}},{name:"Mosgroen",color:{h:90,s:41,l:41}},{name:"Oranjegeel",color:{h:40,s:51,l:41}},{name:"Bloedrood",color:{h:10,s:51,l:41}},{name:"Rozerood",color:{h:341,s:61,l:41}},{name:"Mauvepaars",color:{h:290,s:41,l:41}},{name:"Diepindigo",color:{h:240,s:41,l:41}},{name:"Babyblauw",color:{h:207,s:52,l:66}},{name:"Mintgroen",color:{h:161,s:44,l:60}},{name:"Pastelgroen",color:{h:90,s:44,l:60}},{name:"Zandbeige",color:{h:40,s:44,l:66}},{name:"Zalmrood",color:{h:10,s:44,l:66}},{name:"Babyroze",color:{h:341,s:44,l:66}},{name:"Lavendelpaars",color:{h:290,s:44,l:66}},{name:"Zachtpaars",color:{h:240,s:44,l:70}}];function l(d){return d.h==r.value.h&&d.s==r.value.s&&d.l==r.value.l}const u=he(()=>i.slice(0,8).some(d=>l(d.color)));function c(d){r.value=d}function a(d){o.value=d}return(d,f)=>(I(),q("div",Kp,[S("div",qp,[S("div",Gp,[(I(!0),q(me,null,We(i.slice(0,8),v=>(I(),q("button",{class:ze(["swatch",{selected:l(v.color)}]),key:v.name,title:v.name,style:Re({"background-color":`hsl(${v.color.h} ${v.color.s}% ${v.color.l}%`}),onClick:m=>r.value=v.color},null,14,Qp))),128))]),S("button",{class:ze(["custom",{selected:!u.value}]),style:Re({"--sel-color":u.value?"transparent":`hsl(${r.value.h} ${r.value.s}% ${r.value.l}%)`}),title:"Kleur kiezen",onClick:f[0]||(f[0]=v=>o.value=!0)},[W(ye,null,{default:K(()=>f[1]||(f[1]=[G("palette")])),_:1})],6)]),W(Ga,{swatches:i,"model-value":r.value,"onUpdate:modelValue":c,pickerOpen:o.value,"onUpdate:pickerOpen":a},null,8,["model-value","pickerOpen"])]))}},Xp=ft(Jp,[["__scopeId","data-v-35bdf943"]]),Yp={class:"segmented-button"},Zp=["onClick","data-state","data-has-icon","title"],eh={key:0,class:"button-segment-text"},th={key:1,class:"button-segment-icon-wrapper last"},nh={__name:"SegmentedButton",props:["modelValue","options","density"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=he({get(){return n.modelValue},set(o){s("update:modelValue",o)}});return(o,i)=>(I(),q("div",Yp,[(I(!0),q(me,null,We(e.options,l=>(I(),q("button",{key:l.value,class:"button-segment",onClick:u=>r.value=l.value,"data-state":l.value===r.value,"data-has-icon":!!l.icon,title:l.tooltip,style:Re({height:`${40+4*(e.density||0)}px`})},[S("div",{class:ze(["button-segment-icon-wrapper",{hidden:!(l.value===r.value||l.icon&&l.title)}])},[W(kr,{name:"icon"},{default:K(()=>[l.value===r.value?(I(),qe(ye,{key:"selected",class:"button-segment-icon selected"},{default:K(()=>i[0]||(i[0]=[G("check ")])),_:1})):l.icon&&l.title?(I(),qe(ye,{key:"icon",class:"button-segment-icon"},{default:K(()=>[G(ke(l.icon),1)]),_:2},1024)):Ve("",!0)]),_:2},1024)],2),l.title?(I(),q("span",eh,ke(l.title),1)):l.icon?(I(),q("div",th,[W(ye,{key:"icon",class:"button-segment-icon"},{default:K(()=>[G(ke(l.icon),1)]),_:2},1024)])):Ve("",!0),i[1]||(i[1]=S("div",{class:"button-segment-state-layer"},null,-1))],12,Zp))),128))]))}},Qa=ft(nh,[["__scopeId","data-v-c7caef6d"]]),sh="modulepreload",rh=function(e,t){return new URL(e,t).href},Ri={},Jn=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=rh(c,s),c in Ri)return;Ri[c]=!0;const a=c.endsWith(".css"),d=a?'[rel="stylesheet"]':"";if(!!s)for(let m=i.length-1;m>=0;m--){const C=i[m];if(C.href===c&&(!a||C.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const v=document.createElement("link");if(v.rel=a?"stylesheet":sh,a||(v.as="script"),v.crossOrigin="",v.href=c,u&&v.setAttribute("nonce",u),document.head.appendChild(v),a)return new Promise((m,C)=>{v.addEventListener("load",m),v.addEventListener("error",()=>C(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},oh=(e,t,n)=>{const s=e[t];return s?typeof s=="function"?s():Promise.resolve(s):new Promise((r,o)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(o.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},ih={__name:"ThemePreviewImage",props:{style:Object,scale:{type:Number,default:1}},setup(e){const t=vp(),n=ie(null),s=ie(null);Ct(r(o,200)),vt(()=>e.style,r(o,200)),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",r(o,200));function r(a,d){let f=null,v=!1;return function(...m){v?f=m:(a.apply(this,m),v=!0,setTimeout(()=>{v=!1,f&&(a.apply(this,f),f=null)},d))}}async function o(){if(!s.value)return;let a=s.value.getContext("2d");a.canvas.width=n.value.clientWidth,a.canvas.height=n.value.clientHeight,a.clearRect(0,0,s.value.width,s.value.height);const d=s.value.height,f=s.value.width,v=.03*e.scale*f,m=.045*e.scale*f,C=.195*e.scale*f,V=.045*e.scale*f,E=.03*e.scale*f,x=.285*e.scale*f,g=.105*e.scale*f,k=.015*e.scale*f,w=.03*e.scale*f,P=.025*e.scale*f,$=.03*e.scale*f,D=.004*e.scale*f;if(a.fillStyle=e.style.pageColor??l("#ffffff","#111111"),a.fillRect(0,0,f,d),e.style.wallpaperUrl){const O=new Image;O.src=e.style.wallpaperUrl,await new Promise(ne=>O.onload=ne);const F=f/d,A=O.width/O.height;let N,Q,ee,j;F>A?(N=f,Q=N/A,ee=0,j=(d-Q)/2):(Q=d,N=Q*A,ee=(f-N)/2,j=0),a.globalAlpha=e.style.wallpaperOpacity??.2,a.drawImage(O,ee,j,N,Q),a.globalAlpha=1}if(a.fillStyle=e.style.appbarColor??l(u(...e.style.accentColor,95,47),u(...e.style.accentColor,73,22)),a.fillRect(0,0,m,d),a.fillStyle=e.style.menubarColor??l(u(...e.style.accentColor,95,55),u(...e.style.accentColor,73,30)),a.fillRect(m,0,C,d),e.style.decoration){const O=new Image;O.src=e.style.decoration==="custom"?e.style.decorationUrl:await i(e.style.decoration),await new Promise(fe=>O.onload=fe);const F=C,A=m,N=O.width/O.height,Q=F/d;let ee,j,ne,X;Q>N?(ee=F,j=ee/N,ne=A,X=0-(j-d)/2):(j=d,ee=j*N,ne=A-(ee-F)/2,X=0),a.save(),a.beginPath(),a.rect(A,0,F,d),a.clip(),e.style.decoration!=="custom"&&(a.globalCompositeOperation="lighter"),a.drawImage(O,ne,X,ee,j),a.globalCompositeOperation="source-over",a.restore()}a.fillStyle="#fff",a.beginPath(),a.roundRect(m+E,V,C*.65,v,v/2),a.globalAlpha=.6,a.fill(),a.globalAlpha=1,a.fillStyle=l(u(...e.style.accentColor,78,43),u(...e.style.accentColor,53,55)),a.beginPath(),a.roundRect(m+C+E,V,C,v,v/2),a.fill(),a.fillStyle=l("#ffffffaa","#0c0c0caa"),a.fillRect(f-x,0,x,d),a.strokeStyle=l("#dfdfdfaa","#2e2e2eaa"),a.lineWidth=D,a.beginPath(),a.moveTo(f-x,0),a.lineTo(f-x,d),a.stroke(),a.beginPath(),a.roundRect(f-x+P,w+1.5*g+k,x-P-$,g,e.style.shape/2.5),a.roundRect(f-x+P,w+2.5*g+2*k,x-P-$,g,e.style.shape/2.5),a.fill(),a.stroke();const z=a.createLinearGradient(f-x+P,w,f-x+P+x-P-$,w+g*1.5);z.addColorStop(0,l(u(...e.style.accentColor,95,55),u(...e.style.accentColor,73,30))),z.addColorStop(1,l(u(...e.style.accentColor,95,47),u(...e.style.accentColor,73,22))),a.fillStyle=z,a.beginPath(),a.roundRect(f-x+P,w,x-P-$,g*1.5,e.style.shape/2.5),a.fill(),a.stroke()}async function i(a){return new Promise((d,f)=>{oh(Object.assign({"../assets/decorations/lego.png":()=>Jn(()=>import("./lego-B9XBXV1o.js"),[],import.meta.url),"../assets/decorations/polka-dot.png":()=>Jn(()=>import("./polka-dot-Bk_kYWko.js"),[],import.meta.url),"../assets/decorations/stripes.png":()=>Jn(()=>import("./stripes-CrSqOAWt.js"),[],import.meta.url),"../assets/decorations/waves.png":()=>Jn(()=>import("./waves-BpDb7oY5.js"),[],import.meta.url),"../assets/decorations/zig-zag.png":()=>Jn(()=>import("./zig-zag-BPQTWn5Y.js"),[],import.meta.url)}),`../assets/decorations/${a}.png`,4).then(v=>d(v.default)).catch(f)})}function l(a,d){switch(e.style.colorScheme){case"dark":return d;case"light":return a;default:return t.value==="dark"?d:a}}function u(a,d,f,v,m){return`hsl(${a}, ${c(d,v,95)}%, ${c(f,m,55)}%)`}function c(a,d,f){return a<=f?a/f*d:d+(a-f)/(100-f)*(100-d)}return(a,d)=>(I(),q("div",{ref_key:"wrapper",ref:n},[S("canvas",{ref_key:"canvas",ref:s,width:"300",height:"150"},null,512)],512))}},lh=ft(ih,[["__scopeId","data-v-edc08a77"]]),kt=[{name:"Standaard",author:"Magister & Quinten Althues",ptheme:"auto,207,95,55",pagecolor:"false,0,0,7",wallpaper:"none,","wallpaper-opacity":.2,sidecolor:"false,207,95,55",decoration:"none,","decoration-size":1,appbarcolor:"false,207,95,47",shape:8,"custom-css":"","custom-css2":""},{name:"Zeegroen",author:"Quinten Althues",ptheme:"auto,161,51,41",decoration:"waves,"},{name:"Pastelroze",author:"Quinten Althues",ptheme:"light,341,44,66",decoration:"stripes,"},{name:"Hawaï",author:"Quinten Althues",ptheme:"light,180,50,40",wallpaper:"custom,https://i.imgur.com/qY42IDh.png",decoration:"custom,https://w0.peakpx.com/wallpaper/865/392/HD-wallpaper-hawaii-background-beautiful-colors-nature-outside-palm-trees-portrait-summer-water.jpg"},{name:"Vaporwave",author:"Quinten Althues",ptheme:"dark,275,100,60",wallpaper:"custom,https://i.imgur.com/ss4ty9u.png",decoration:"custom,https://wallpapers.com/images/hd/80s-neon-veqvixadrbra13q4.jpg"},{name:"Wilde Westen",author:"Quinten Althues",ptheme:"dark,10,80,50",wallpaper:"custom,https://i.imgur.com/UgMMNqN.png",decoration:"custom,https://static.vecteezy.com/system/resources/previews/023/592/503/non_2x/american-desert-landscape-western-background-vector.jpg"},{name:"Discord",author:"Quinten Althues",ptheme:"dark,235,48,85",pagecolor:"true,223,6.7,20.6",sidecolor:"true,220,6.5,18",appbarcolor:"true,225,6.3,12.5",shape:10,"custom-css":":root{--st-background-secondary:#232428}#st-start-widgets{background-color:var(--st-side-background);border-left:none;box-shadow:none}#st-start-widget-controls-wrapper,.menu-footer{background-color:#232428;border-top:none}.menu-button figure img{content:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSieyaZb-hSOtWnc6wha3QQlMLL8_cfvr2WIQ&s);display:block !important}"},{name:"Minecraft",author:"TheOakTrees & Nick Verbruggen",thumbnail:"https://i.imgur.com/V5loO5Z.png",ptheme:"dark,0,0,48.2",pagecolor:"false,223,6.7,20.6",wallpaper:"custom,https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/landscape.webp",sidecolor:"true,0,0,43.5",decoration:"custom,https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/dirt.webp","decoration-size":.8,appbarcolor:"true,0,0,43.5",shape:0,"custom-css":`.examen-widget,.main-menu .caption,.st-title,.title,h2,h3{font-family:var(--st-font-family-secondary)!important}@font-face{font-family:Minecraftia;src:url("https://unpkg.com/@south-paw/typeface-minecraft@1.0.0/files/minecraft.woff2") format("woff2"),url("https://unpkg.com/@south-paw/typeface-minecraft@1.0.0/files/minecraft.woff") format("woff");font-weight:600}:root{--st-font-family-primary:Minecraftia!important;--st-font-family-secondary:Minecraftia!important;--st-background-secondary:#000000a6}:host{--title-font:Minecraftia!important;--subtitle-font:Minecraftia!important}body{--dna-font-family-base:Minecraftia!important;--dna-font-family-header:Minecraftia!important}.examen-widget,.title,h2,h3{font:var(--st-font-family-secondary)!important}.main-menu .caption:not(#st-start-header-text-wrapper *),.main-menu li.submenu.ng-scope>a,.main-menu li>a,.st-title:not(#st-start-header-text-wrapper *){font-size:small}dna-button{color:var(--st-contrast-accent)}.menu-host{margin-left:-90px;padding-left:90px;width:calc(240px + 90px)}.menu-host.collapsed-menu{width:calc(64px + 90px)}.appbar-host{z-index:1;background:0 0}.logo .logo-expanded.ng-scope{content:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/magister.webp)!important;scale:1.2!important;margin:21px!important;padding-bottom:15px!important}.logo-collapsed{content:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/m.webp)!important;padding-bottom:15px!important}#st-cc,#st-start-today-view-popover,#st-start-widgets,.ng-isolate-scope .content-container{background:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/dirt.webp)!important}#aanwezigheid thead,#st-cb,#st-cc-open,#st-start-today-view,#st-start-widget-controls-wrapper,#st-start-widget-grades,.appbar .menu-button,.appbar>div>a:not(.st-metric),.block h3,.main-menu a,.st-button.icon,.st-button.segment.st-dropdown-segment,dna-button-bar[slot=actions]>*,dna-button-group[slot=actions]>*,input[type=checkbox]+label>span{cursor:pointer;overflow:hidden;white-space:nowrap;user-select:none;border-radius:0;background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/button.png') center/cover #999;image-rendering:pixelated;border:2px solid #000;box-shadow:inset -2px -4px #0004,inset 2px 2px #fff5!important}.appbar>div>a:not(.st-metric){border:none}.st-button.icon{box-sizing:content-box}#st-start-widget-controls-wrapper,#st-start-widget-grades,.st-button.segment.st-dropdown-segment.active{background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/buttonoff.png') center/cover #999}.appbar .menu-button>*{border-radius:0!important}#aanwezigheid thead *{background-color:transparent!important;border-color:none!important}#aanwezigheid :not(.fold) thead,#aanwezigheid thead:hover,.block h3:hover,.block:not(.fold) h3,.main-menu a:hover{border:2px solid #fff!important;text-shadow:2px 2px #202013CC!important}.block h3{border:2px solid #000!important;text-shadow:none!important}.main-menu li.active>a,.main-menu li.active>a:active,.main-menu li.active>a:hover,.main-menu li.submenu.ng-scope.active>a,.main-menu li.submenu.ng-scope.active>a:active,.main-menu li.submenu.ng-scope.active>a:hover,.main-menu li.submenu.ng-scope>a:active,.main-menu li>a:active{border:2px solid #fff;text-shadow:2px 2px #202013CC!important;font-size:small}ul.tabs li::after{background-color:transparent}input[type=checkbox]:checked+label>span{cursor:pointer;overflow:hidden;white-space:nowrap;user-select:none;border-radius:0;background:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/main/study-tools/themeassets/minecraft/button.png') center/cover #999;image-rendering:pixelated;border:2px solid #fff!important;box-shadow:inset -2px -4px #0004,inset 2px 2px #fff5!important;text-shadow:2px 2px #202013CC!important}.block .content,.fancy-select .k-multiselect-wrap.k-floatwrap,.fancy-select .k-widget.k-multiselect.k-header.select.all-items-selected,.fancy-select .k-widget.k-multiselect.k-header.select.all-items-selected.k-state-hover,.tabsheet .block,.tabsheet .block .content{background-color:transparent!important;border:none!important}.block .content fieldset{background-color:var(--st-background-secondary)!important}.widget.ng-scope .block h3 b{font-size:large;position:absolute;left:50%;top:50%;translate:-50% -50%}#st-start-widget-controls-wrapper{background-color:var(--st-background-secondary);padding:8px!important}#st-start-widget-controls-wrapper>*{color:#fff}#st-start-widget-digital-clock:hover{background-color:#4d3828!important}#faux-label{left:145px!important}`},{name:"Human",author:"Nick Verbruggen",thumbnail:"https://i.imgur.com/EFedQLr.png",ptheme:"dark,212,91,34",pagecolor:"false,45,98,43",wallpaper:"custom,https://i.imgur.com/9oyX79l.jpeg","wallpaper-opacity":1,sidecolor:"false,212,98,24","decoration-size":.8,appbarcolor:"false,212,98,21","custom-css":".appbar .menu-button,.appbar .menu-button a,.fancy-select .k-button,.main-menu a,.main-menu li.submenu.ng-scope>a,.main-menu li>a,.st-button.icon,.st-button.segment.st-dropdown-segment,.tabs>:not(:only-child){transition:.35s,background-color .2s!important}.menu-footer,.table-grid-layout.normaal.ng-scope th{transition:background .4s,width .4s,letter-spacing .4s}#st-cs-subject-filter>:hover,.menu-footer:hover{letter-spacing:6px}#scheduler,#st-cb-ex,#st-cb-im,.menu-host{backdrop-filter:blur(10px)}#st-cb-modal,#st-cc,#st-start-widget-controls,.k-scheduler-table .k-nonwork-hour{background-color:transparent!important}#st-cc-added,#st-cc-prediction,.table-grid-layout:last-child>:last-child{padding-bottom:10px}#st-cc-averages,#st-cc-prediction{margin-right:-6px;margin-left:-16px}:root{--st-background-primary:#1a1a1abd;--st-background-secondary:#1a1a1a7a;--st-background-tertiary:#1a1a1a7a;--st-foreground-primary:#fff;--st-foreground-secondary:#dddddd;--st-foreground-insignificant:#888;--st-foreground-accent:#ffffffbf;--st-accent-primary:#1a1a1a7a;--st-accent-primary-dark:#1a1a1a;--st-accent-tertiary:#1a1a1abd;--st-side-background:#1a1a1a7a;--st-appbar-background:hsla(0, 0%, 0%, 0.3);--st-highlight-primary:#1a1a1a7a;--st-highlight-subtle:#181f24;--st-highlight-ok:#1a4c38;--st-highlight-warn:#511f1f;--st-highlight-info:#0f314d}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1a1a1a41;border-radius:18px}::-webkit-scrollbar-thumb:hover{background:var(--st-background-primary)}.content-container.full-width.ng-isolate-scope::-webkit-scrollbar{width:0!important}#st-start[data-widgets-collapsed=false],#st-start[data-widgets-collapsed]{padding-right:20px!important}#st-start[data-widgets-collapsed=true],.container .view.ng-scope{padding-right:10px!important}.menu-host{background-image:none;background-color:var(--st-background-secondary);border-top-right-radius:18px;border-bottom-right-radius:18px;margin-top:10px}#st-cc-sidebar,#st-start-widgets,.appbar-host,.menu,.menu-footer,ul.tabs li::after{background-color:transparent}.appbar-host{margin-top:10px;margin-left:10px}.appbar-host,.menu-host{height:auto}.appbar-host .ng-isolate-scope{height:100%;display:grid}#st-cc-added,#st-cc-averages,#st-cc-prediction,#st-start-widget-controls-wrapper,#st-start-widgets-list,.appbar,.k-scheduler-layout.k-scheduler-workWeekview .k-scheduler-times .k-scheduler-table tr{background-color:var(--st-background-secondary)}.appbar{z-index:100;border-top-left-radius:18px;border-bottom-left-radius:18px}.menu.ng-scope{border-bottom-left-radius:0}#st-start-widgets{border-left:none;box-shadow:none}#st-start-widgets-list{height:fit-content;border-radius:18px;margin-top:10px;max-height:calc(100vh - 94px)}#st-start-widget-controls{box-shadow:none!important;border-color:transparent!important}#st-start-widget-controls-wrapper{border-radius:18px;margin:10px;padding:8px!important;translate:-10px -10px}.st-button.icon:hover{scale:1.15;box-shadow:0 0 13px rgba(0,0,0,.5)}.st-button.icon:active{scale:0.85;box-shadow:0 0 13px rgba(0,0,0,.5)}.appbar .menu-button,.appbar .menu-button a{border-radius:8px}.appbar .menu-button:hover{scale:1.15;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:8px}#st-cb-ex button:active,#st-cb-im .st-button:active,#st-cc-sidebar .st-button:active,.appbar .menu-button:active{scale:0.95;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:8px}#st-cb-ex button:hover,#st-cb-im .st-button:hover,#st-cc-sidebar .st-button:hover,.fancy-select .k-button:hover,.st-button.segment.st-dropdown-segment:hover{scale:1.05;box-shadow:0 0 13px rgba(0,0,0,.5)}.main-menu a:hover,.main-menu li.active>a,.main-menu li.active>a:hover,.main-menu li.submenu.ng-scope.active>a,.main-menu li.submenu.ng-scope.active>a:hover,.tabs>:not(:only-child):hover{scale:1.05;box-shadow:0 0 13px rgba(0,0,0,.5);border-radius:10px}.main-menu li.active>a:active,.main-menu li.submenu.ng-scope.active>a:active,.main-menu li.submenu.ng-scope>a:active,.main-menu li>a:active{scale:0.95;box-shadow:0 0 8px rgba(0,0,0,.3);border-radius:10px}.menu-button{border-radius:50%}.menu-footer,.menu-footer:hover{border-radius:18px}#afsprakenLijst .k-grid-content *,.content-container.full-width.ng-isolate-scope .wide-widget *,.menu-footer,table.table-grid-layout.normaal.ng-scope *{border-top:none}.menu-footer:active{letter-spacing:0;border-radius:18px}input[type=checkbox]+label>span,input[type=checkbox]:checked+label>span{background-color:transparent!important;border:var(--st-border)!important}.fancy-select .k-button:hover{background-color:#63636396!important}.content fieldset .fancy-select:hover .k-dropdown-wrap.k-state-default{transition:.35s,background-color .2s!important;background-color:#63636396!important;scale:1.02;border-radius:3px;box-shadow:0 0 13px rgba(0,0,0,.5)}.table-grid-layout.normaal.ng-scope th{width:30%;padding-top:4px;padding-left:7px}.table-grid-layout.normaal.ng-scope th:hover{width:70%;letter-spacing:3px}.table-grid-layout.normaal.ng-scope th:active{letter-spacing:0;width:70%}.table-grid-layout.normaal.ng-scope th:not(:hover){width:30%}#agenda-section .content-container,.content-container.full-width.ng-isolate-scope{border:none}.table-grid-layout:last-child{border-bottom-left-radius:18px;border-bottom-right-radius:18px;overflow:hidden}#st-start-widget-digital-clock{border-radius:18px;border:none}#st-start-now{border-color:var(--st-foreground-accent);margin-right:3px!important}#st-start-now-label{background-color:var(--st-foreground-accent);color:#000!important}#st-start-now-label::before{color:var(--st-foreground-accent)}#st-appbar-week:hover{scale:1.1;opacity:1;transition:scale .1s,opacity .1s}#st-cs-subject-filter>*,#st-cs-subject-filter>:active,#st-cs-subject-filter>:hover,#st-cs-subject-filter>:hover::before{transition:background .4s,width .4s,letter-spacing .4s,padding .4s}#cijfers-container .main{padding-left:14px}#scheduler{background:var(--st-background-secondary)!important}span.nrblock{background:var(--st-background-primary)!important;color:#fff!important;margin-right:8px!important}.k-scheduler-header.k-state-default{padding-right:0!important}.k-scheduler-content::-webkit-scrollbar{width:0!important}#st-cs-year-filter>:hover{scale:1.1;box-shadow:0 0 13px rgba(0,0,0,.5)}#st-cs-filters{background-color:var(--st-accent-primary-dark)}#st-cs-subject-filter>:hover::before{padding-left:4px}#st-cs-subject-filter>:active{letter-spacing:0}.st-bar-chart-col:hover{background-color:color-mix(in srgb,var(--st-foreground-primary),transparent 90%);border-radius:var(--st-border-radius) var(--st-border-radius) 0 0}#st-cb-ex,#st-cb-im{background:rgba(255,255,255,.1);box-shadow:0 0 45px -22px #fff;border:2px solid rgba(255,255,255,.5)}#st-cb-modal,#st-cc{backdrop-filter:blur(6px)}#st-cc-sidebar{backdrop-filter:blur(1px);border:none;box-shadow:none}#st-cc-added,#st-cc-added-list,#st-cc-averages,#st-cc-prediction{border-radius:var(--st-border-radius)}#st-cc-added{padding-top:10px;margin-right:-6px}#st-cc-averages{padding:10px 23px 10px 21px}#st-cc-prediction{width:430px;padding-left:21px;padding-right:23px;margin-bottom:16px}#st-cc-added-list{background-color:var(--st-background-secondary)!important;margin-left:15px;margin-right:15px}#st-cc-added-list::after{width:100%}.st-event-wrapper{outline:0;border:var(--st-border);border-top-width:calc(var(--st-brm-top-left)* 1px);border-bottom-width:calc(var(--st-brm-bottom-left)* 1px)}#st-start-editor,#st-start-editor-done,#st-start-widgets{border-radius:var(--st-border-radius)}#st-start-widgets{margin-bottom:20px;margin-top:10px}#st-start-editor{translate:-40px;margin-top:22px;margin-bottom:20px;height:-webkit-fill-available}#st-start-widget-controls.editing{padding:0;gap:0}#st-start-editor-done{width:-webkit-fill-available;height:-webkit-fill-available;margin-right:16px;margin-left:16px;background:0 0}#st-start-editor-done:active(){transform:scale(1)}"},{name:"Glasplaten",author:"Astyll",thumbnail:"https://i.imgur.com/V0sugf6.png",ptheme:"auto,207,95,3",wallpaper:"custom,https://i.imgur.com/MAfI42c.jpg","wallpaper-opacity":.85,shape:12,"custom-css":'.sm-grid.k-grid .k-grid-content .k-grouping-row .group-header-content,tr.k-grouping-row.ng-scope{backdrop-filter:blur(5px);margin-left:-25px!important;font-size:large!important;text-align:center!important;background-color:var(--st-appbar-background)}.st-list-item+.st-list-item::before{content:none}::-webkit-scrollbar{display:none}td.ng-binding{font-size:14px}*{-ms-overflow-style:none;scrollbar-width:none}.st-list-item{border:none}.main-menu li,.st-button,.appbar .menu-button,dna-button{transition:all .1s}.main-menu li:active,.st-button:active,.appbar .menu-button:active,dna-button:active{transform:scale(.96)!important}.main-menu li:hover,.st-button:hover,.appbar .menu-button:hover,dna-button:hover{transform:scale(1.04)}.st-button.segment,.st-start-event,a,dna-button{transition:.1s}.main-menu li a{background-color:#00000020;height:42px!important;transition:.1s}.main-menu li.children li.submenu>a:hover,.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li.children.expanded>a,.main-menu>li.children.expanded>a:hover,.main-menu>li>a:hover{background-color:#00000030;backdrop-filter:blur(5px)}.main-menu li.children li.submenu>a:active,.main-menu>li.active>a,.main-menu>li.active>a:active,.main-menu>li.children.expanded>a,.main-menu>li.children.expanded>a:active,.main-menu>li>a:active{background-color:#00000025;backdrop-filter:blur(5px)}.appbar{flex-direction:column-reverse;padding-top:15px}.appbar>div>a,.menu-button figure img,a.appbar-button{border-radius:var(--st-border-radius)}.appbar .menu-button{height:40px!important;width:40px!important;flex:none}.appbar .user-menu{bottom:-187px!important}.appbar .help-popup-menu::after,.appbar .user-menu::after{bottom:200px!important}.appbar .popup-menu{left:45px!important;z-index:1003!important}.menu-host .logo{margin-left:27px!important;margin-top:26px!important;margin-bottom:21px!important}.cijfers-k-grid.k-grid .grade.empty{background:transparent!important}table.table-grid-layout td a{font-size:medium;color:#00d9ff;text-decoration:underline}td.ng-binding[data-ng-bind="leermiddel.Vak.Afkorting"]{font-size:large;font-weight:700;text-align:center}.appbar:has(.user-menu) .menu-button:has(#help-menu){display:none!important}div.menu-button.ng-scope>a>span,a#user-menu>span,#menu-berichten-new>span,.menu-button>a>span{z-index:1002!important;backdrop-filter:blur(5px);background-color:var(--st-appbar-background)!important}.st-title{color:var(--st-foreground-primary)!important}#st-start-widget-homework .st-list-content p,.st-list-content{color:var(--st-foreground-accent)}:root{--st-highlight-primary:#00000025;--st-background-secondary:transparent;--st-appbar-background:#00000050;--st-side-background:#00000025;--st-foreground-accent:#fff;--st-border:none}table.table-grid-layout tr,table.table-grid-layout td,#cijfers-container .main div.content-container-cijfers,div.ngRow:hover>:not(.unselectable),.card,table.table-grid-layout{border:none!important}.ngHeaderSortColumn{background:var(--st-appbar-background);backdrop-filter:blur(5px)}div.loading-overlay{background:var(--st-appbar-background)!important}.block h3,#studiewijzer-container div.studiewijzer-list div.head,table.table-grid-layout th{border:none}.st-segmented-control{background-color:transparent;padding-inline:0;height:auto}table.table-grid-layout td+td{border-left:none}#st-start-widget-controls{width:auto}#st-start-widget-controls-wrapper{justify-content:right}#st-start-header-buttons{backdrop-filter:blur(5px);padding:5px;border-radius:var(--st-border-radius)}#cijfers-container .main div.content-container-cijfers,.cijfers-k-grid.k-grid .k-selectable .k-state-selected .grade{backdrop-filter:blur(5px);background-color:var(--st-side-background);box-shadow:none!important}.k-state-selected,.k-state-selected:link,.k-state-selected:visited,.k-list>.k-state-selected,.k-list>.k-state-highlight,.k-panel>.k-state-selected,.k-ghost-splitbar-vertical,.k-ghost-splitbar-horizontal,.k-draghandle.k-state-selected:hover,.k-scheduler .k-scheduler-toolbar .k-state-selected,.k-scheduler .k-today.k-state-selected,.k-marquee-color{background-color:var(--st-side-background)}.st-event{transition:.3s all;border-radius:var(--st-border-radius)}.st-list-timestamp{color:white}.st-start-col-label{backdrop-filter:blur(5px);background-color:var(--st-side-background);width:100%}div#st-start-today-view-popover,.k-popup.k-list-container,.cijfers-k-grid.k-grid .grade.gemiddeldecolumn{backdrop-filter:blur(5px);background-color:var(--st-side-background)}#st-start-header-buttons>.st-button.icon,#st-start-today-view{background-color:var(--st-side-background);border-radius:var(--st-border-radius);margin-left:0}.st-dropdown>.st-dropdown-current{color:white}.sm-grid.k-grid .k-grid-content td{border:none}.st-chip.important,.st-chip,.st-chip.ok,.st-chip.warn{text-align:center;width:80px;backdrop-filter:blur(5px);background-color:var(--st-side-background);border:2px solid var(--st-chip-info-border)}.st-chip.important{background-color:var(--st-background-tertiary)}.st-snackbar,div#st-start-widget-controls,.st-event-number,.st-widget[data-render-type=Tegel],.subtitle aside{backdrop-filter:blur(5px);background-color:var(--st-side-background)}.st-event-number{font-weight:bold;border:none}.st-event-wrapper{border:none}#st-start-widgets{box-shadow:none}.st-start-widget-grades-item[data-unread="true"]{background-image:none}.menu-host .menu{position:fixed!important;margin-left:64px!important}.menu-footer:hover{background-color:transparent!important}.menu-footer>a{width:10%!important}.appbar-host{z-index:1001!important}.appbar .popup-menu::after{border-right:6px solid var(--st-background-overlay)}span#faux-label{display:none!important}.collapsed-menu .main-menu>li>a>span{color:white!important;background:var(--st-background-overlay);border:none!important;z-index:9999999!important}.appbar .popup-menu h3{text-align:center;padding-left:0}.appbar .popup-menu{border-radius:12px}.main-menu>li.active>a{background-color:var(--st-appbar-background)}.main-menu li.children li.submenu.active>a{background-color:var(--st-appbar-background)}[data-ongoing="true"] .st-event-number{background-color:#fff;color:#000}.st-event-wrapper[data-ongoing="true"]{background-color:transparent}div#aanwezigheid,section.main.opdrachten-section,.content-container.ng-isolate-scope,.content-container.multi-columns.tri-columns.ng-isolate-scope,.content-container,.st-sw-subject{background-color:var(--st-appbar-background);backdrop-filter:blur(5px);border-radius:var(--st-border-radius)}#st-start-widget-digital-clock-wrapper>div[data-done="true"]::after{background-color:var(--st-appbar-background)}#cijfers-laatst-behaalde-resultaten-container .table-grid-layout{background-color:var(--st-appbar-background);backdrop-filter:blur(5px);border-radius:var(--st-border-radius)}.list-view .st-event>*,.menu-host .logo a,.appbar>div>a i,.appbar-icon,#st-start-widgets-list .st-widget,span#st-start-header-text,.loading-animation,a#st-appbar-week>*{user-select:none}.st-start-col-label{font:500 16px var(--st-font-family-primary);line-height:.9}.st-start-col[data-today="true"].st-start-col-label>div{width:15px;background-color:transparent;color:var(--st-contrast-accent)}'},{name:"Bliss",author:"Quinten Althues",thumbnail:"https://i.imgur.com/yf4PdNa.png",ptheme:"light,206,100,41.6",wallpaper:"custom,https://external-preview.redd.it/uhq5zTcMPM3tOW_fbUz4PayDt_5pkEXdyXXoRWs3XOg.jpg?auto=webp&s=e06461124c1ccfdba7e9ece763b644ff68eeb06b","wallpaper-opacity":1,sidecolor:"true,217,60.8,48",decoration:"none,https://preview.redd.it/where-can-i-get-the-windows-vista-wallpaper-in-the-best-v0-1lu31x1angtb1.jpg?auto=webp&s=c4b8113476e2f6b6106aac36c6b88eb1b88868b0",appbarcolor:"true,205,88.7,48.6",shape:4,"custom-css":".appbar-host,.menu-host{z-index:500;background-size:100% 40px;width:100%;height:40px;padding:0}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{grid-template:'view view'1fr'menu appbar'40px/1fr auto;display:grid;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png);container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container .bottom-company-logo,.challenge-container+div,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png)}.appbar{flex-direction:row;justify-content:center;gap:2px;padding:0 12px}.appbar>.menu-button{width:32px;scale:.9;max-height:none!important;margin-bottom:0!important;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:#0000!important}#st-appbar-metrics{order:1;margin:0 12px;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{font:12px/10px var(--st-font-family-secondary);opacity:1!important}.menu-container{scrollbar-width:auto;margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{align-items:center;gap:2px;display:flex;margin-left:0!important}.main-menu>li{background-color:#0000;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png);background-position-y:0;background-repeat:no-repeat;background-size:auto 144px;flex-shrink:0;width:135px;height:36px}@container (width<1000px){.main-menu>li{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png);width:36px}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{z-index:1;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png);background-size:auto 123px;height:40px;position:sticky;left:0;width:125px!important}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:#0000;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu,.appbar .popup-menu{bottom:40px;left:unset;background-color:#fff;border:1px solid #000;border-radius:0;width:180px;font:12px Tahoma;animation:none;position:fixed}.appbar .popup-menu{translate:-50%}.popup-menu>ul{color:#000;margin-left:0!important}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{height:24px;margin:0;color:currentColor!important}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg);background-size:100% 100%;& header{position:fixed;top:50%;right:calc(100vw - clamp(120px,40vw,800px) - 20px);translate:0 -135%;& svg{width:clamp(150px,27vw,300px);& path{fill:#fff}}}&:after,& .podium>*{position:fixed;top:50%;translate:0 -50%}&:after{content:'';background:linear-gradient(#0000,#fff5,#0000);width:1px;height:75vh;display:block;right:calc(100vw - clamp(120px,40vw,800px) - clamp(20px,7vw,150px)/1.17647)}& footer{--st-background-secondary:transparent;box-shadow:none;--st-foreground-primary:#fff;--st-foreground-accent:#fff;justify-content:end}& .podium>*{grid-template-rows:1fr 1fr 1fr;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-auto-flow:column;display:grid;left:20px;right:20px}& .podium form>h2{grid-area:2/1;place-self:center end;margin-block:0;color:#fff!important}& .podium>*>div{grid-column:3;width:clamp(200px,30vw,500px);margin-block:0}& *{font-family:var(--st-font-family-secondary)}}.gripper{align-content:center;min-width:36px;min-height:36px;margin-bottom:0;scale:.6}.appbar .menu-button>a:hover>span{top:unset;left:unset;color:#000;font:13px var(--st-font-family-secondary);text-transform:none;background-color:#ffffe2;border-radius:0;padding:3px;bottom:46px;box-shadow:2px 2px 3px .75px #0005;border-color:#000!important}"}],un=["ptheme","pagecolor","wallpaper","wallpaper-opacity","sidecolor","decoration","decoration-size","appbarcolor","shape","custom-css","custom-css2"],ah=["src"],uh={__name:"MagisterThemePreview",props:["preset"],setup(e){const t=e,n=ht("syncedStorage"),s=he(()=>{let i={};return t.preset?un.forEach(l=>{var u;return i[l]=((u=t.preset)==null?void 0:u[l])||kt[0][l]}):un.forEach(l=>i[l]=n.value[l]),i}),r=he(()=>{var i,l,u,c,a,d,f,v,m,C;return{colorScheme:((l=(i=s.value.ptheme)==null?void 0:i.split(","))==null?void 0:l[0])||"auto",accentColor:(u=s.value.ptheme||"auto,207,95,55")==null?void 0:u.split(",").slice(1),pageColor:(c=s.value.pagecolor)!=null&&c.startsWith("true")?`hsl(${s.value.pagecolor.replace("true,","").replace(/,/gi," ")})`:null,appbarColor:(a=s.value.appbarcolor)!=null&&a.startsWith("true")?`hsl(${s.value.appbarcolor.replace("true,","").replace(/,/gi," ")})`:null,menubarColor:(d=s.value.sidecolor)!=null&&d.startsWith("true")?`hsl(${s.value.sidecolor.replace("true,","").replace(/,/gi," ")})`:null,wallpaperOpacity:s.value["wallpaper-opacity"],wallpaperUrl:(f=s.value.wallpaper)!=null&&f.startsWith("custom")?s.value.wallpaper.replace("custom,",""):null,decoration:((v=s.value.decoration)==null?void 0:v.split(",")[0])!=="none"?(m=s.value.decoration)==null?void 0:m.split(",")[0]:null,decorationUrl:(C=s.value.decoration)!=null&&C.startsWith("custom")?s.value.decoration.replace("custom,",""):null,shape:s.value.shape??8}});function o(i){const l=kt[0];return un.every(u=>s.value[u]===((i==null?void 0:i[u])??l[u]))}return(i,l)=>{var c,a,d,f,v;const u=lh;return(c=t.preset)!=null&&c.thumbnail||(a=de(kt).find(o))!=null&&a.thumbnail?(I(),q("img",{key:0,id:"theme-preview",class:"image",src:((d=t.preset)==null?void 0:d.thumbnail)||((f=de(kt).find(o))==null?void 0:f.thumbnail),title:`Dit is een voorbeeld van je thema. Het kan zijn dat +het thema er net anders uitziet dan hier.`},null,8,ah)):(I(),qe(u,{key:1,id:"theme-preview",class:"composition",style:Re(r.value),title:(v=t.preset)!=null&&v.name?`Dit is een voorbeeld van je thema. Het kan zijn dat het thema er net anders uitziet dan hier.`:s.value["custom-css"]||s.value["custom-css"]?`Dit is een voorbeeld van je thema. Aangepaste CSS werkt niet in dit -voorbeeld, dus het kan zijn dat je thema er anders uitziet dan hier.`:"Dit is een voorbeeld van je thema."},null,8,["style","title"]))}}},Ja=ft(uh,[["__scopeId","data-v-9e590e13"]]),ch={id:"theme-colors"},dh={__name:"ThemeColors",props:["modelValue","id"],emits:["update:modelValue"],setup(e,{emit:t}){var c;const n=e,s=t,r=he({get(){let a=n.modelValue||i.codepoint,[d,f,g,m]=a.split(",");return{scheme:d,color:{h:f,s:g,l:m}}},set(a){s("update:modelValue",`${a.scheme},${a.color.h},${a.color.s},${a.color.l}`)}}),o=ie((c=window.matchMedia)==null?void 0:c.call(window,"(prefers-color-scheme: dark)").matches),i={scheme:"auto",color:{h:207,s:95,l:55},codepoint:"auto,207,95,55"};function l(a){r.value={...r.value,scheme:a}}function u(a){r.value={...r.value,color:a}}return(a,d)=>{const f=Ja,g=Qa,m=Xp;return I(),q("div",ch,[W(f,{id:"theme-preview"}),W(g,{id:"theme-scheme","model-value":r.value.scheme,"onUpdate:modelValue":l,options:[{value:"auto",icon:"hdr_auto",tooltip:o.value?"Op basis van browserthema (momenteel donker)":"Op basis van browserthema (momenteel licht)"},{value:"light",icon:"light_mode",tooltip:"Licht thema"},{value:"dark",icon:"dark_mode",tooltip:"Donker thema"}]},null,8,["model-value","options"]),W(m,{id:"theme-color","model-value":r.value.color,"onUpdate:modelValue":u,"swatches-enabled":!0},null,8,["model-value"])])}}},fh=ft(dh,[["__scopeId","data-v-9cbdc942"]]),ph={id:"theme-presets"},hh={key:0,id:"personal-presets",class:"theme-presets-grid"},mh=["title","onClick"],gh={class:"theme-actions"},vh=["onClick"],bh=["href","download"],yh={key:"add-new",class:"personal-presets-actions"},kh={id:"public-presets",class:"theme-presets-grid"},wh=["title","onClick"],_h={class:"theme-preset-info"},xh={class:"theme-preset-name"},Sh={key:0,class:"theme-preset-author"},Ch={__name:"ThemePresets",setup(e){const t=ht("syncedStorage"),n=ht("localStorage"),s=ie(!1),r=ie(!1),o=ie({}),i=ie(0),l=he({get(){var R;return Object.values(((R=n.value)==null?void 0:R.storedThemes)||[])},set(R){n.value.storedThemes=R}}),u=he(()=>[...l.value,...kt]),{open:c,onChange:a}=mp({multiple:!1,accept:".sttheme",reset:!0});a(async R=>{R!=null&&R[0]&&d(R[0])}),document.addEventListener("dragover",R=>R.preventDefault()),document.addEventListener("drop",R=>{R.preventDefault(),d(R.dataTransfer.files[0])});async function d(R){if(l.value.length>=9)return;const E=JSON.parse(await R.text()),x=kt[0];let v={};[...un,"name","author","date"].forEach(k=>{(E==null?void 0:E[k])!==x[k]&&(v[k]=E[k])}),!u.value.some(k=>g(k,v))&&(l.value=[...l.value,{date:new Date().toISOString(),...v}])}function f(){const R=o.value,E=kt[0];un.forEach(x=>t.value[x]=(R==null?void 0:R[x])??E[x])}function g(R,E=t.value){const x=kt[0];return un.every(v=>((E==null?void 0:E[v])??x[v])===((R==null?void 0:R[v])??x[v]))}function m(R){o.value=R,u.value.some(E=>g(E))?f():s.value=!0}function C(R){const E=kt[0];let x={};return[...un,"name","author","date"].forEach(v=>{(R==null?void 0:R[v])!==E[v]&&(x[v]=R[v])}),"data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(x))}return(R,E)=>{const x=Ja,v=ye,k=zn;return I(),q("div",ph,[l.value.length>0?(I(),q("div",hh,[W(Pa,{name:"presets"},{default:K(()=>[(I(!0),q(me,null,We(l.value,(w,P)=>{var z;return I(),q("button",{key:w.name||w.date,class:$e(["theme-preset",{matches:g(w)}]),title:`Persoonlijk thema -`+(w.name||((z=new Date(w.date))==null?void 0:z.toLocaleString("nl-NL")))+` -Klik om toe te passen`,onClick:D=>m(w)},[W(x,{class:"theme-preset-preview",preset:w,scale:1.1},null,8,["preset"]),S("div",gh,[S("button",{class:"theme-preset-remove",onClick:ao(D=>{i.value=P,r.value=!0},["stop"]),title:"Persoonlijk thema verwijderen"},[W(v,null,{default:K(()=>E[8]||(E[8]=[G("delete")])),_:1})],8,vh),S("a",{class:"theme-preset-download",onClick:E[0]||(E[0]=ao(()=>{},["stop"])),title:"Persoonlijk thema exporteren naar bestand",href:C(w),download:w.date+".sttheme"},[W(v,null,{default:K(()=>E[9]||(E[9]=[G("file_export")])),_:1})],8,bh)])],10,mh)}),128)),l.value.length<9?(I(),q("div",yh,[S("button",{class:"theme-preset-upload",title:"Persoonlijk thema importeren vanuit bestand",onClick:E[1]||(E[1]=(...w)=>de(c)&&de(c)(...w))},[W(v,null,{default:K(()=>E[10]||(E[10]=[G("add")])),_:1})])])):Re("",!0)]),_:1})])):Re("",!0),S("div",kh,[(I(!0),q(me,null,We(de(kt),(w,P)=>(I(),q("button",{class:$e(["theme-preset",{matches:g(w)}]),title:w.name,onClick:z=>m(w)},[W(x,{class:"theme-preset-preview",preset:w},null,8,["preset"]),S("div",_h,[S("span",xh,ke(w.name),1),P>=6?(I(),q("span",Sh,ke(w.author),1)):Re("",!0)])],10,wh))),256))]),W(k,{active:s.value,"onUpdate:active":E[4]||(E[4]=w=>s.value=w)},{icon:K(()=>E[11]||(E[11]=[G("format_paint")])),headline:K(()=>E[12]||(E[12]=[G("Let op!")])),text:K(()=>E[13]||(E[13]=[G(" Je hebt wijzigingen aangebracht aan je thema. Als je dit thema nu toepast, dan gaan je huidige thema en al je aangepaste themavoorkeuren verloren. ")])),buttons:K(()=>[S("button",{onClick:E[2]||(E[2]=w=>{f(),s.value=!1})},"Toepassen"),S("button",{onClick:E[3]||(E[3]=w=>s.value=!1)},"Annuleren")]),_:1},8,["active"]),W(k,{active:r.value,"onUpdate:active":E[7]||(E[7]=w=>r.value=w)},{icon:K(()=>E[14]||(E[14]=[G("delete")])),headline:K(()=>E[15]||(E[15]=[G("Thema verwijderen?")])),text:K(()=>E[16]||(E[16]=[G(" Deze actie kan niet ongedaan worden gemaakt. ")])),buttons:K(()=>[S("button",{onClick:E[5]||(E[5]=w=>{l.value=l.value.filter((P,z)=>z!==i.value),r.value=!1})},"Verwijderen"),S("button",{onClick:E[6]||(E[6]=w=>r.value=!1)},"Annuleren")]),_:1},8,["active"])])}}},Eh=ft(Ch,[["__scopeId","data-v-c82f2b8a"]]),Th=["for"],Ah={class:"setting-title"},Oh={class:"setting-subtitle"},Ph=["data-state"],zh=["data-state"],$h=["id"],Xa={__name:"SwitchInput",props:["modelValue","id"],emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=t,r=ie(null),{height:o}=fp(r),i=ie(null),{focused:l}=Sr(i),u=he({get(){return n.modelValue},set(c){s("update:modelValue",c)}});return(c,a)=>(I(),q("label",{class:$e(["setting switch",{tall:de(o)>70,focused:de(l)}]),for:e.id,ref_key:"label",ref:r},[S("div",null,[S("h3",Ah,[we(c.$slots,"title")]),S("span",Oh,[we(c.$slots,"subtitle")])]),S("div",{class:"switch-track","data-state":u.value},[S("div",{class:"switch-thumb","data-state":u.value},[W(ye,{class:"switch-icon","data-state":u.value},{default:K(()=>a[1]||(a[1]=[G("check")])),_:1},8,["data-state"])],8,zh)],8,Ph),Ln(S("input",{type:"checkbox",id:e.id,ref_key:"input",ref:i,"onUpdate:modelValue":a[0]||(a[0]=d=>u.value=d)},null,8,$h),[[_r,u.value]])],10,Th))}};var Rh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Dh(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function s(){return this instanceof s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(s){var r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(n,s,r.get?r:{enumerable:!0,get:function(){return e[s]}})}),n}var Ya={exports:{}};const Mh=Dh(qf);(function(e,t){(function(n,s){e.exports=s(Mh)})(typeof self<"u"?self:Rh,function(n){return function(){var s={388:function(l,u){var c,a,d;(function(f,g){a=[],c=g,d=typeof c=="function"?c.apply(u,a):c,d===void 0||(l.exports=d)})(typeof self<"u"&&self,function(){function f(){var g=Object.getOwnPropertyDescriptor(document,"currentScript");if(!g&&"currentScript"in document&&document.currentScript||g&&g.get!==f&&document.currentScript)return document.currentScript;try{throw new Error}catch($){var m,C,R,E=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,x=/@([^@]*):(\d+):(\d+)\s*$/gi,v=E.exec($.stack)||x.exec($.stack),k=v&&v[1]||!1,w=v&&v[2]||!1,P=document.location.href.replace(document.location.hash,""),z=document.getElementsByTagName("script");k===P&&(m=document.documentElement.outerHTML,C=new RegExp("(?:[^\\n]+?\\n){0,"+(w-2)+"}[^<]* - + + diff --git a/popup/dist/themePresets.js b/popup/dist/themePresets.js index ff20f16..b0b5e65 100644 --- a/popup/dist/themePresets.js +++ b/popup/dist/themePresets.js @@ -60,7 +60,7 @@ export const }, { name: "Minecraft", - author: "TheOakTrees & DaintyDust", + author: "TheOakTrees & Nick Verbruggen", thumbnail: "https://i.imgur.com/V5loO5Z.png", "ptheme": "dark,0,0,48.2", "pagecolor": "false,223,6.7,20.6", @@ -74,7 +74,7 @@ export const }, { name: 'Human', - author: "DaintyDust", + author: "Nick Verbruggen", thumbnail: "https://i.imgur.com/EFedQLr.png", "ptheme": "dark,212,91,34", "pagecolor": "false,45,98,43", @@ -106,7 +106,7 @@ export const "decoration": "none,https://preview.redd.it/where-can-i-get-the-windows-vista-wallpaper-in-the-best-v0-1lu31x1angtb1.jpg?auto=webp&s=c4b8113476e2f6b6106aac36c6b88eb1b88868b0", "appbarcolor": "true,205,88.7,48.6", "shape": 4, - "custom-css": ".appbar-host,.menu-host{background-size:100% 40px;height:40px;width:100%;padding:0;z-index:500}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{display:grid;grid-template:'view view' 1fr 'menu appbar' 40px/1fr auto;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png');container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container>.bottom>img,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png')}.appbar{padding:0 12px;flex-direction:row;justify-content:center;gap:2px}.appbar>.menu-button{width:32px;max-height:none!important;margin-bottom:0!important;scale:0.9;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:transparent!important}#st-appbar-metrics{margin:0 12px;order:1;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{opacity:1!important;font:12px/10px var(--st-font-family-secondary)}.menu-container{margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important;scrollbar-width:auto}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{display:flex;align-items:center;gap:2px;margin-left:0!important}.main-menu>li{height:36px;width:135px;flex-shrink:0;background-color:transparent;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png');background-size:auto 144px;background-repeat:no-repeat;background-position-y:0px}@container (width < 1000px){.main-menu>li{width:36px;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png')}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{height:40px;width:125px!important;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png');background-size:auto 123px;position:sticky;left:0;z-index:1}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:transparent;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu, .appbar .popup-menu{position:fixed;bottom:40px;left:unset;width:180px;font:12px Tahoma;background-color:#fff;border:1px solid #000;border-radius:0;animation:none}.appbar .popup-menu{translate:-50%}.popup-menu>ul{margin-left:0!important;color:#000}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{color:currentColor!important;height:24px;margin:0}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg');background-size:100% 100%}.challenge-container>.top{position:fixed;right:calc(100vw - clamp(120px,40vw,800px) - 20px);top:50%;translate:0 -135%}.challenge-container:after,.podium>*{position:fixed;top:50%;translate:0 -50%}.challenge-container:after{content:'';display:block;right:calc(100vw - clamp(120px,40vw,800px) - (clamp(20px,7vw,150px) * .85));height:75vh;width:1px;background:linear-gradient(to bottom,transparent,#ffffff55,transparent)}.challenge-container>.top>svg{width:clamp(150px,27vw,300px)}.challenge-container>.top>svg>path{fill:#fff}.challenge-container>.bottom{position:fixed;right:10vw;bottom:4vh;padding:0;height:max-content;width:max-content;color:#fff}.challenge-container>.bottom>*{color:#fff}.podium>*{left:20px;right:20px;display:grid;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-template-rows:1fr 1fr 1fr;grid-auto-flow:column}.podium form>h2{grid-column:1;grid-row:3;justify-self:end;color:#fff!important;margin-block:0}.podium>*>div{width:clamp(200px,30vw,500px);grid-column:3;margin-block:0}.challenge-container *{font-family:var(--st-font-family-secondary)}.gripper{scale:0.6;align-content:center;min-width:36px;min-height:36px;margin-bottom:0}.appbar .menu-button>a:hover>span{top:unset;left:unset;bottom:46px;border-radius:0;border-color:#000!important;color:#000;background-color:#ffffe2;font:13px var(--st-font-family-secondary);text-transform:none;box-shadow:2px 2px 3px .75px #00000055;padding:3px}" + "custom-css": ".appbar-host,.menu-host{z-index:500;background-size:100% 40px;width:100%;height:40px;padding:0}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{grid-template:'view view'1fr'menu appbar'40px/1fr auto;display:grid;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png);container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container .bottom-company-logo,.challenge-container+div,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png)}.appbar{flex-direction:row;justify-content:center;gap:2px;padding:0 12px}.appbar>.menu-button{width:32px;scale:.9;max-height:none!important;margin-bottom:0!important;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:#0000!important}#st-appbar-metrics{order:1;margin:0 12px;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{font:12px/10px var(--st-font-family-secondary);opacity:1!important}.menu-container{scrollbar-width:auto;margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{align-items:center;gap:2px;display:flex;margin-left:0!important}.main-menu>li{background-color:#0000;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png);background-position-y:0;background-repeat:no-repeat;background-size:auto 144px;flex-shrink:0;width:135px;height:36px}@container (width<1000px){.main-menu>li{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png);width:36px}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{z-index:1;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png);background-size:auto 123px;height:40px;position:sticky;left:0;width:125px!important}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:#0000;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu,.appbar .popup-menu{bottom:40px;left:unset;background-color:#fff;border:1px solid #000;border-radius:0;width:180px;font:12px Tahoma;animation:none;position:fixed}.appbar .popup-menu{translate:-50%}.popup-menu>ul{color:#000;margin-left:0!important}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{height:24px;margin:0;color:currentColor!important}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg);background-size:100% 100%;& header{position:fixed;top:50%;right:calc(100vw - clamp(120px,40vw,800px) - 20px);translate:0 -135%;& svg{width:clamp(150px,27vw,300px);& path{fill:#fff}}}&:after,& .podium>*{position:fixed;top:50%;translate:0 -50%}&:after{content:'';background:linear-gradient(#0000,#fff5,#0000);width:1px;height:75vh;display:block;right:calc(100vw - clamp(120px,40vw,800px) - clamp(20px,7vw,150px)/1.17647)}& footer{--st-background-secondary:transparent;box-shadow:none;--st-foreground-primary:#fff;--st-foreground-accent:#fff;justify-content:end}& .podium>*{grid-template-rows:1fr 1fr 1fr;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-auto-flow:column;display:grid;left:20px;right:20px}& .podium form>h2{grid-area:2/1;place-self:center end;margin-block:0;color:#fff!important}& .podium>*>div{grid-column:3;width:clamp(200px,30vw,500px);margin-block:0}& *{font-family:var(--st-font-family-secondary)}}.gripper{align-content:center;min-width:36px;min-height:36px;margin-bottom:0;scale:.6}.appbar .menu-button>a:hover>span{top:unset;left:unset;color:#000;font:13px var(--st-font-family-secondary);text-transform:none;background-color:#ffffe2;border-radius:0;padding:3px;bottom:46px;box-shadow:2px 2px 3px .75px #0005;border-color:#000!important}" } ], propertyKeys = ['ptheme', 'pagecolor', 'wallpaper', 'wallpaper-opacity', 'sidecolor', 'decoration', 'decoration-size', 'appbarcolor', 'shape', 'custom-css', 'custom-css2'] diff --git a/popup/package-lock.json b/popup/package-lock.json index fc3d5a1..1239678 100644 --- a/popup/package-lock.json +++ b/popup/package-lock.json @@ -13,7 +13,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.1.3", "unplugin-vue-components": "^0.27.4", - "vite": "^5.4.9" + "vite": "^5.4.10" } }, "node_modules/@antfu/utils": { @@ -1573,9 +1573,9 @@ } }, "node_modules/vite": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", - "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, "license": "MIT", "dependencies": { diff --git a/popup/public/themePresets.js b/popup/public/themePresets.js index ff20f16..b0b5e65 100644 --- a/popup/public/themePresets.js +++ b/popup/public/themePresets.js @@ -60,7 +60,7 @@ export const }, { name: "Minecraft", - author: "TheOakTrees & DaintyDust", + author: "TheOakTrees & Nick Verbruggen", thumbnail: "https://i.imgur.com/V5loO5Z.png", "ptheme": "dark,0,0,48.2", "pagecolor": "false,223,6.7,20.6", @@ -74,7 +74,7 @@ export const }, { name: 'Human', - author: "DaintyDust", + author: "Nick Verbruggen", thumbnail: "https://i.imgur.com/EFedQLr.png", "ptheme": "dark,212,91,34", "pagecolor": "false,45,98,43", @@ -106,7 +106,7 @@ export const "decoration": "none,https://preview.redd.it/where-can-i-get-the-windows-vista-wallpaper-in-the-best-v0-1lu31x1angtb1.jpg?auto=webp&s=c4b8113476e2f6b6106aac36c6b88eb1b88868b0", "appbarcolor": "true,205,88.7,48.6", "shape": 4, - "custom-css": ".appbar-host,.menu-host{background-size:100% 40px;height:40px;width:100%;padding:0;z-index:500}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{display:grid;grid-template:'view view' 1fr 'menu appbar' 40px/1fr auto;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png');container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container>.bottom>img,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png')}.appbar{padding:0 12px;flex-direction:row;justify-content:center;gap:2px}.appbar>.menu-button{width:32px;max-height:none!important;margin-bottom:0!important;scale:0.9;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:transparent!important}#st-appbar-metrics{margin:0 12px;order:1;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{opacity:1!important;font:12px/10px var(--st-font-family-secondary)}.menu-container{margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important;scrollbar-width:auto}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{display:flex;align-items:center;gap:2px;margin-left:0!important}.main-menu>li{height:36px;width:135px;flex-shrink:0;background-color:transparent;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png');background-size:auto 144px;background-repeat:no-repeat;background-position-y:0px}@container (width < 1000px){.main-menu>li{width:36px;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png')}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{height:40px;width:125px!important;background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png');background-size:auto 123px;position:sticky;left:0;z-index:1}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:transparent;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu, .appbar .popup-menu{position:fixed;bottom:40px;left:unset;width:180px;font:12px Tahoma;background-color:#fff;border:1px solid #000;border-radius:0;animation:none}.appbar .popup-menu{translate:-50%}.popup-menu>ul{margin-left:0!important;color:#000}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{color:currentColor!important;height:24px;margin:0}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url('https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg');background-size:100% 100%}.challenge-container>.top{position:fixed;right:calc(100vw - clamp(120px,40vw,800px) - 20px);top:50%;translate:0 -135%}.challenge-container:after,.podium>*{position:fixed;top:50%;translate:0 -50%}.challenge-container:after{content:'';display:block;right:calc(100vw - clamp(120px,40vw,800px) - (clamp(20px,7vw,150px) * .85));height:75vh;width:1px;background:linear-gradient(to bottom,transparent,#ffffff55,transparent)}.challenge-container>.top>svg{width:clamp(150px,27vw,300px)}.challenge-container>.top>svg>path{fill:#fff}.challenge-container>.bottom{position:fixed;right:10vw;bottom:4vh;padding:0;height:max-content;width:max-content;color:#fff}.challenge-container>.bottom>*{color:#fff}.podium>*{left:20px;right:20px;display:grid;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-template-rows:1fr 1fr 1fr;grid-auto-flow:column}.podium form>h2{grid-column:1;grid-row:3;justify-self:end;color:#fff!important;margin-block:0}.podium>*>div{width:clamp(200px,30vw,500px);grid-column:3;margin-block:0}.challenge-container *{font-family:var(--st-font-family-secondary)}.gripper{scale:0.6;align-content:center;min-width:36px;min-height:36px;margin-bottom:0}.appbar .menu-button>a:hover>span{top:unset;left:unset;bottom:46px;border-radius:0;border-color:#000!important;color:#000;background-color:#ffffe2;font:13px var(--st-font-family-secondary);text-transform:none;box-shadow:2px 2px 3px .75px #00000055;padding:3px}" + "custom-css": ".appbar-host,.menu-host{z-index:500;background-size:100% 40px;width:100%;height:40px;padding:0}.appbar,.appbar-host{min-width:max-content}:root{--st-background-secondary:light-dark(#fff,#111);--st-menu-collapse:disallow;--st-font-family-primary:'Franklin Gothic Medium','Franklin Gothic','Verdana','Tahoma',system-ui;--st-font-hero:21px var(--st-font-family-primary);--st-font-family-secondary:'Tahoma',system-ui;--st-foreground-accent:#000}body>.container{grid-template:'view view'1fr'menu appbar'40px/1fr auto;display:grid;padding-right:0!important}body>.container>.view{max-height:calc(100vh - 40px);max-width:none!important}.menu-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/taskbar.png);container-type:size}.appbar .menu-button>a:hover>span:after,.popup-menu:after,.challenge-container .bottom-company-logo,.challenge-container+div,.menu-host .logo,.menu-host .menu-footer,.menu>#faux-label,.podium>*>h1,.spacer{display:none!important}.appbar-host{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/tray.png)}.appbar{flex-direction:row;justify-content:center;gap:2px;padding:0 12px}.appbar>.menu-button{width:32px;scale:.9;max-height:none!important;margin-bottom:0!important;overflow:visible!important}.appbar>.menu-button>a{width:32px;background-color:#0000!important}#st-appbar-metrics{order:1;margin:0 12px;translate:0}#st-appbar-week{display:flex!important}#st-appbar-week,#st-appbar-week:before{font:12px/10px var(--st-font-family-secondary);opacity:1!important}.menu-container{scrollbar-width:auto;margin-top:0;margin-bottom:-15px;padding-top:0;overflow-x:auto;max-height:none!important;overflow-y:hidden!important}.gripper,.main-menu>li>a,.menu-container:hover{margin-bottom:0}.main-menu{align-items:center;gap:2px;display:flex;margin-left:0!important}.main-menu>li{background-color:#0000;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons.png);background-position-y:0;background-repeat:no-repeat;background-size:auto 144px;flex-shrink:0;width:135px;height:36px}@container (width<1000px){.main-menu>li{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/buttons-tiny.png);width:36px}.main-menu>li span{display:none}}.main-menu>li:hover{background-position-y:-36px}.main-menu>li.active,.main-menu>li:active{background-position-y:-72px}.main-menu>li.active:hover{background-position-y:-108px}.main-menu>li:first-of-type{z-index:1;background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/start.png);background-size:auto 123px;height:40px;position:sticky;left:0;width:125px!important}.main-menu>li:first-of-type:hover{background-position-y:-41px}.main-menu>li:first-of-type.active,.main-menu>li:first-of-type:active{background-position-y:-82px}.main-menu>li:first-of-type>*{opacity:0}.main-menu>li>a{background-color:#0000;height:100%}.main-menu>li.active>a,.main-menu>li.active>a:hover,.main-menu>li>a>span{font:12px Tahoma}.main-menu>li:not(.expanded) .popup-menu{display:none}.popup-menu,.appbar .popup-menu{bottom:40px;left:unset;background-color:#fff;border:1px solid #000;border-radius:0;width:180px;font:12px Tahoma;animation:none;position:fixed}.appbar .popup-menu{translate:-50%}.popup-menu>ul{color:#000;margin-left:0!important}.popup-menu>ul>li{margin:2px;margin-left:2px!important}.popup-menu>ul>li>a{height:24px;margin:0;color:currentColor!important}.popup-menu>ul>li.active,.popup-menu>ul>li:hover{background-color:var(--st-side-background);color:#fff}#st-start-header-buttons>.st-button.icon,#st-start-header-greeting,#st-start-header-text{color:var(--st-foreground-accent)!important}.content-container,.view>iframe{background-color:var(--st-background-primary)!important}.view>iframe{height:calc(100vh - 40px)!important}.challenge-container{background-image:url(https://raw.githubusercontent.com/QkeleQ10/http-resources/refs/heads/main/study-tools/themeassets/magisterxp/welcome.jpg);background-size:100% 100%;& header{position:fixed;top:50%;right:calc(100vw - clamp(120px,40vw,800px) - 20px);translate:0 -135%;& svg{width:clamp(150px,27vw,300px);& path{fill:#fff}}}&:after,& .podium>*{position:fixed;top:50%;translate:0 -50%}&:after{content:'';background:linear-gradient(#0000,#fff5,#0000);width:1px;height:75vh;display:block;right:calc(100vw - clamp(120px,40vw,800px) - clamp(20px,7vw,150px)/1.17647)}& footer{--st-background-secondary:transparent;box-shadow:none;--st-foreground-primary:#fff;--st-foreground-accent:#fff;justify-content:end}& .podium>*{grid-template-rows:1fr 1fr 1fr;grid-template-columns:clamp(120px,40vw,800px) clamp(20px,7vw,150px) auto 1fr;grid-auto-flow:column;display:grid;left:20px;right:20px}& .podium form>h2{grid-area:2/1;place-self:center end;margin-block:0;color:#fff!important}& .podium>*>div{grid-column:3;width:clamp(200px,30vw,500px);margin-block:0}& *{font-family:var(--st-font-family-secondary)}}.gripper{align-content:center;min-width:36px;min-height:36px;margin-bottom:0;scale:.6}.appbar .menu-button>a:hover>span{top:unset;left:unset;color:#000;font:13px var(--st-font-family-secondary);text-transform:none;background-color:#ffffe2;border-radius:0;padding:3px;bottom:46px;box-shadow:2px 2px 3px .75px #0005;border-color:#000!important}" } ], propertyKeys = ['ptheme', 'pagecolor', 'wallpaper', 'wallpaper-opacity', 'sidecolor', 'decoration', 'decoration-size', 'appbarcolor', 'shape', 'custom-css', 'custom-css2'] diff --git a/popup/src/App.vue b/popup/src/App.vue index 78d1a6d..8b7c916 100644 --- a/popup/src/App.vue +++ b/popup/src/App.vue @@ -26,6 +26,10 @@ provide('localStorage', localStorage) const params = useUrlSearchParams('history') let selectedCategory = useStorage('selected-tab', 'theme') +if (params.tab) { + selectedCategory.value = params.tab + params.tab = null +} function shouldShowSetting(setting) { let outcome = true diff --git a/popup/src/components/About.vue b/popup/src/components/About.vue index d4b680c..10c667b 100644 --- a/popup/src/components/About.vue +++ b/popup/src/components/About.vue @@ -48,7 +48,7 @@ function openInNewTab(url) {

Study Tools voor Magister ()

Ontwikkeld door Quinten Althues
diff --git a/popup/src/components/settings-views/ThemeView.vue b/popup/src/components/settings-views/ThemeView.vue index 2f47b3b..13c9881 100644 --- a/popup/src/components/settings-views/ThemeView.vue +++ b/popup/src/components/settings-views/ThemeView.vue @@ -99,7 +99,7 @@ async function storeCurrentTheme() {

- + --> diff --git a/src/background.js b/src/background.js index 9ad8bd0..2af7c1a 100644 --- a/src/background.js +++ b/src/background.js @@ -82,27 +82,35 @@ browser.runtime.onMessage.addListener((request, sender, sendResponse) => { console.warn(`Request completion notification requested by ${sender.url} has timed out.`) }, 5000) return true - + case 'uninstallSelf': chrome.management.uninstallSelf({ showConfirmDialog: false }, () => { window.location.reload() }) break - + + case 'openOptions': + chrome.tabs.create({ url: `index.html?${request.data}` }); + break; + default: return 0 } }) -async function sleepUntil(f, timeoutMs) { - return new Promise((resolve, reject) => { - const timeWas = new Date() - const wait = setInterval(function () { - if (f()) { - clearInterval(wait) - resolve() - } else if (new Date() - timeWas > timeoutMs) { - clearInterval(wait) - reject() - } - }, 20) - }) -} +browser.runtime.onMessageExternal.addListener(async (request, sender, sendResponse) => { + switch (request.action) { + case 'addPersonalTheme': + const obj = request.obj + const storedThemes = Object.values((await chrome.storage.local.get('storedThemes')).storedThemes) + if (!storedThemes || storedThemes.length >= 9) return + + storedThemes.push(obj) + + //TODO: only if not exist + + await chrome.storage.local.set({ 'storedThemes': storedThemes }) + break + + default: + return 0 + } +}) diff --git a/src/scripts/api.js b/src/scripts/api.js index 6455068..829159a 100644 --- a/src/scripts/api.js +++ b/src/scripts/api.js @@ -1,394 +1,341 @@ -let magisterApiCache = {}, - magisterApiUserId, - magisterApiUserToken, - magisterApiUserTokenDate, - magisterApiSchoolName = window.location.hostname.split('.')[0], - magisterApiPermissions = [] - -now = new Date() - -const gatherStart = new Date() -gatherStart.setDate(now.getDate() - (now.getDay() + 6) % 7) -gatherStart.setHours(0, 0, 0, 0) - -const gatherEarlyStart = new Date() -gatherEarlyStart.setDate(now.getDate() - 42) -gatherEarlyStart.setHours(0, 0, 0, 0) - -const gatherEnd = new Date() -gatherEnd.setDate(now.getDate() + 42) -gatherEnd.setHours(0, 0, 0, 0) - -const MagisterApi = { - useSampleData: false, - accountInfo: async () => { - return new Promise(async (resolve, reject) => { - magisterApiCache.accountInfo ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/account?noCache=0`, null, 'accountInfo' - ) - resolve( - (await magisterApiCache.accountInfo) - ) - magisterApiPermissions = (await magisterApiCache.accountInfo)?.Groep?.[0]?.Privileges?.filter(p => p.AccessType.includes('Read')).map(p => p.Naam) - }) - }, - years: async () => { - return new Promise(async (resolve, reject) => { - magisterApiCache.years ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/leerlingen/$USERID/aanmeldingen?begin=2013-01-01&einde=${new Date().getFullYear() + 1}-01-01`, null, 'years' - ) - resolve( - (await magisterApiCache.years)?.items || [] - ) - }) - }, - yearInfo: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['yearInfo' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/aanmeldingen/${year?.id}`, null, 'yearInfo' - ) - resolve( - (await magisterApiCache['yearInfo' + year?.id]) - ) - }) - }, - exams: { - list: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['examsList' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/aanmeldingen/${year?.id}/examens`, null, 'examsList' - ) - resolve( - (await magisterApiCache['examsList' + year?.id])?.items || null - ) - }) - }, - info: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['examsInfo' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/aanmeldingen/${year?.id}/examen`, null, 'examsInfo', true - ) - resolve( - (await magisterApiCache['examsInfo' + year?.id]) || {} - ) - }) - } - }, - events: async (start = gatherStart, end = gatherEnd) => { - if (MagisterApi.useSampleData) { - return [{ "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], "Start": now.toISOString().split('T')[0] + " 09:00", "Einde": now.toISOString().split('T')[0] + " 10:00", "Id": 1, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 2, "LesuurVan": 2, "Lokalen": [{ "Naam": "11s" }], "Omschrijving": "fatl - oba", "Lokatie": "11s", "Status": 5, "Vakken": [{ "Naam": "Franse taal" }] }, { "Docenten": [{ "Naam": "G. Gifje", "Docentcode": "GIF" }], "Start": now.toISOString().split('T')[0] + " 10:00", "Einde": now.toISOString().split('T')[0] + " 11:00", "Id": 2, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 3, "LesuurVan": 3, "Lokalen": [{ "Naam": "11s" }], "Omschrijving": "mem - gif", "Lokatie": "11s", "Vakken": [{ "Naam": "memekunde" }] }, { "Docenten": [{ "Naam": "M. Millenial", "Docentcode": "MMI" }], "Start": now.toISOString().split('T')[0] + " 11:30", "Einde": now.toISOString().split('T')[0] + " 12:30", "Id": 3, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 4, "LesuurVan": 4, "Lokalen": [{ "Naam": "11l" }], "Omschrijving": "stk - mmi", "Lokatie": "11l", "Vakken": [{ "Naam": "straattaalkunde" }] }, { "Docenten": [{ "Id": 0, "Naam": "E. Musk", "Docentcode": "EMU" }], "Start": now.toISOString().split('T')[0] + " 12:30", "Einde": now.toISOString().split('T')[0] + " 13:30", "Id": 4, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 5, "LesuurVan": 5, "Lokalen": [{ "Naam": "binas6" }], "Omschrijving": "na - emu", "Lokatie": "binas6", "Vakken": [{ "Naam": "natuurkunde" }] }, { "Docenten": [{ "Id": 0, "Naam": "B. Baan", "Docentcode": "BBA" }], "Start": now.toISOString().split('T')[0] + " 14:00", "Einde": now.toISOString().split('T')[0] + " 15:00", "Id": 5, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 6, "LesuurVan": 6, "Lokalen": [{ "Naam": "at1_ondersteboven" }], "Omschrijving": "ka - bba", "Lokatie": "at1_ondersteboven", "Type": 7, "Vakken": [{ "Naam": "kinderarbeid" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 122400000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 125100000), Inhoud: "

Dit is een onvoltooid huiswerkitem.

", Opmerking: null, InfoType: 1, Afgerond: false, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Niet-bestaand vak" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 297900000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Inhoud: "

In deze les heb je een schriftelijke overhoring. Neem je oortjes mee.

", Opmerking: null, InfoType: 2, Afgerond: false, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Lichamelijke opvoeding" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 297900000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Inhoud: "

Dit item heb je al wel voltooid. Good job.

", Opmerking: null, InfoType: 1, Afgerond: true, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Jouw favoriete vak" }] }] - } - return new Promise(async (resolve, reject) => { - magisterApiCache['events' + start.toISOString().substring(0, 10) + end.toISOString().substring(0, 10)] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/afspraken?van=${start.toISOString().substring(0, 10)}&tot=${end.toISOString().substring(0, 10)}`, null, 'events' - ) - resolve( - (await magisterApiCache['events' + start.toISOString().substring(0, 10) + end.toISOString().substring(0, 10)])?.Items || null - ) - }) - }, - grades: { - recent: async () => { - - if (MagisterApi.useSampleData) { - return [{ omschrijving: "Voorbeeld", ingevoerdOp: new Date(now - 172800000), vak: { code: "netl", omschrijving: "Nederlandse taal" }, waarde: "6,9", weegfactor: 0, isVoldoende: true }, { omschrijving: "Baguette", ingevoerdOp: new Date(now - 691200000), vak: { code: "fatl", omschrijving: "Franse taal" }, waarde: "U", weegfactor: 0, isVoldoende: true }, { omschrijving: "Grade mockery", ingevoerdOp: new Date(now - 6891200000), vak: { code: "entl", omschrijving: "Engelse taal" }, waarde: "5,4", weegfactor: 0 } - ] - } - return new Promise(async (resolve, reject) => { - magisterApiCache.gradesRecent ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/cijfers/laatste?top=20&skip=0`, null, 'grades.recent' - ) - resolve( - (await magisterApiCache.gradesRecent)?.items || [] - ) - }) - }, - forYear: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['gradesYear' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/aanmeldingen/${year?.id}/cijfers/cijferoverzichtvooraanmelding?actievePerioden=false&alleenBerekendeKolommen=false&alleenPTAKolommen=false&peildatum=${year.einde}`, null, 'grades.forYear' - ) - resolve( - (await magisterApiCache['gradesYear' + year?.id])?.Items || [] - ) - }) - }, - columnInfo: async (year, columnId) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['gradesYear' + year?.id + 'Col' + columnId] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/aanmeldingen/${year?.id}/cijfers/extracijferkolominfo/${columnId}`, null, 'grades.columnInfo' - ) - resolve( - (await magisterApiCache['gradesYear' + year?.id + 'Col' + columnId]) || {} - ) - }) - } - }, - assignments: { - top: async () => { - if (MagisterApi.useSampleData) { - return [{ Titel: "Praktische opdracht", Vak: "sk", InleverenVoor: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Omschrijving: "Zorg ervoor dat je toestemming hebt van de TOA voordat je begint met je experiment." }, { Titel: "Boekverslag", Vak: "netl", InleverenVoor: new Date(new Date().setHours(0, 0, 0, 0) + 400500000) }] +class MagisterApi { + constructor() { + this.#initialize(); + } + + async #initialize() { + this.cache = {}; + this.schoolName = window.location.hostname.split('.')[0]; + this.userId = await this.getFromStorage('user-id', 'sync'); + this.userToken = await getFromStorage('token', chrome.storage.session?.get ? 'session' : 'local'); + this.userTokenDate = await getFromStorage('token-date', chrome.storage.session?.get ? 'session' : 'local'); + + this.updateApiCredentials(); + + this.permissions = await this.updateApiPermissions(); + this.gatherStart = midnight(new Date().getDate() - (new Date().getDay() + 6) % 7); + this.gatherEarlyStart = midnight(new Date().getDate() - 42); + this.gatherEnd = midnight(new Date().getDate() + 42); + this.useSampleData = false; + + } + + async updateApiCredentials() { + const calledAt = new Date(); + const storageLocation = chrome.storage.session?.get ? 'session' : 'local'; + + this.userId = await getFromStorage('user-id', 'sync'); + this.userToken = await getFromStorage('token', storageLocation); + this.userTokenDate = await getFromStorage('token-date', storageLocation); + + if (this.userId && this.userToken && this.userTokenDate && new Date(this.userTokenDate)) { + if (Math.abs(new Date() - new Date(this.userTokenDate)) < 60000) { + console.info(`CREDS OK after ${new Date() - calledAt} ms`); + } else { + console.info(`CREDS WARN: Data too old! Retrying...`); + setTimeout(() => this.updateApiCredentials(), 200); } - return new Promise(async (resolve, reject) => { - magisterApiCache.assignments ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/opdrachten?top=20&skip=0&startdatum=${gatherEarlyStart.toISOString().substring(0, 10)}&einddatum=${gatherEnd.toISOString().substring(0, 10)}`, null, 'assignments.top' - ) - resolve( - (await magisterApiCache.assignments)?.Items || [] - ) - }) - }, - forYear: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['assignmentsYear' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/opdrachten?top=250&startdatum=${year.begin}&einddatum=${year.einde}`, null, 'assignments.forYear' - ) - resolve( - (await magisterApiCache['assignmentsYear' + year?.id])?.Items || [] - ) - }) - } - }, - messages: async () => { - if (MagisterApi.useSampleData) { - return [{ onderwerp: "🔥😂💚🍀😔🐜😝🙏👍🪢💀☠️", afzender: { naam: "Quinten Althues (V6E)" }, heeftBijlagen: true, verzondenOp: new Date(now - 3032000000) }, { onderwerp: "Wie gebruikt Berichten in vredesnaam?", afzender: { naam: "Quinten Althues (V6E)" }, heeftPrioriteit: true, verzondenOp: new Date(now - 1000000) } - ] + } else { + console.info(`CREDS INFO: Data incomplete! Retrying...`); + setTimeout(() => this.updateApiCredentials(), 200); } + } + + async updateApiPermissions() { + return new Promise(async (resolve) => { + this.permissions = (await new MagisterApiRequestAccount().get())?.Groep?.[0]?.Privileges?.filter(p => p.AccessType.includes('Read')).map(p => p.Naam); + resolve(this.permissions); + }); + } + + async getFromStorage(key, storageType) { + return new Promise((resolve) => { + chrome.storage[storageType].get(key, (result) => { + resolve(result[key]); + }); + }); + } + + accountInfo() { + return new MagisterApiRequestAccount().get(); + } + + years() { + return new MagisterApiRequestYears().get(); + } + + yearInfo(year) { + return new MagisterApiRequestYearInfo(year).get(); + } + + examsList(year) { + return new MagisterApiRequestExamsList(year).get(); + } + + examsInfo(year) { + return new MagisterApiRequestExamsInfo(year).get(); + } + + events(start = this.gatherStart, end = this.gatherEnd) { + return new MagisterApiRequestEvents(start, end).get(); + } + + gradesRecent() { + return new MagisterApiRequestGradesRecent().get(); + } + + gradesForYear(year) { + return new MagisterApiRequestGradesForYear(year).get(); + } + + gradesColumnInfo(year, columnId) { + return new MagisterApiRequestGradesColumnInfo(year, columnId).get(); + } + + assignmentsTop(start = this.gatherEarlyStart, end = this.gatherEnd) { + return new MagisterApiRequestAssignmentsTop(start, end).get(); + } + + assignmentsForYear(year) { + return new MagisterApiRequestAssignmentsForYear(year).get(); + } + + messages() { + return new MagisterApiRequestMessages().get(); + } + + activities() { + return new MagisterApiRequestActivities().get(); + } + + logs() { + return new MagisterApiRequestLogs().get(); + } + + absencesForYear(year) { + return new MagisterApiRequestAbsencesForYear(year).get(); + } +} + +class MagisterApiRequest { + constructor() { + this.identifier; + this.path; + } + + get() { return new Promise(async (resolve, reject) => { - magisterApiCache.messages ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/berichten/postvakin/berichten?top=20&skip=0&gelezenStatus=ongelezen`, null, 'messages' - ) - resolve( - (await magisterApiCache.messages)?.items || [] - ) - }) - }, - activities: async () => { - if (MagisterApi.useSampleData) { - return [null] - } + if (magisterApi.useSampleData && this.sample) { + resolve(this.sample); + } else if (!this.identifier || !this.path) { + reject(); + } else if (magisterApi.cache[this.identifier] && !magisterApi.cache[this.identifier].then) { + resolve(magisterApi.cache[this.identifier]); + } else { + let res = await this.#fetchWrapper( + `https://${magisterApi.schoolName}.magister.net/${this.path}`, + ); + resolve(res); + } + }); + } + + #fetchWrapper(url, options = {}) { return new Promise(async (resolve, reject) => { - magisterApiCache.activities ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/activiteiten?status=NogNietAanEisVoldaan`, null, 'activities' - ) - resolve( - (await magisterApiCache.activities)?.Items || [] - ) - }) - }, - logs: async () => { - if (MagisterApi.useSampleData) { - return [null] - } + if (!magisterApi.userId || !magisterApi.userToken) { + await magisterApi.updateApiCredentials() + .catch(err => console.error(err)); + } + + try { + let res = await this.#executeRequest(url, options); + resolve(this.#formatOutput(res)); + magisterApi.cache[this.identifier] = this.#formatOutput(res); + } catch (error) { + console.error(error); + try { + await new Promise(resolve => setTimeout(resolve, 100)); + await magisterApi.updateApiCredentials(); + let res2 = await this.#executeRequest(url, options); + resolve(this.#formatOutput(res2)); + magisterApi.cache[this.identifier] = this.#formatOutput(res2); + } catch (error) { + console.error(error); + reject(error); + } + } + }); + } + + #executeRequest(url, options = {}) { + const calledAt = new Date(); return new Promise(async (resolve, reject) => { - magisterApiCache.logs ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/leerlingen/$USERID/logboeken/count`, null, 'logs' - ) - resolve( - Array((await magisterApiCache.logs).count || 0) || [] - ) - }) - }, - absences: { - forYear: async (year) => { - return new Promise(async (resolve, reject) => { - magisterApiCache['absencesYear' + year?.id] ??= - fetchWrapper( - `https://${magisterApiSchoolName}.magister.net/api/personen/$USERID/absenties?van=${year.begin}&tot=${year.einde}`, null, 'absences' - ) - resolve( - (await magisterApiCache['absencesYear' + year?.id])?.Items || [] - ) - }) - } - }, + if (!magisterApi.userId || !magisterApi.userToken) { + await magisterApi.updateApiCredentials() + .catch(err => console.error(err)); + } + let res = await fetch(url.replace(/(\$USERID)/gi, magisterApi.userId), { + headers: { + Authorization: magisterApi.userToken, + 'X-Request-Source': 'study-tools' + }, + ...options + }); + if (res.ok) { + let json = await res.json(); + console.info(`APIRQ OK after ${new Date() - calledAt} ms (@ ${this.identifier})`); + resolve(json); + } else { + console.info(`APIRQ ERR: ${res.status}.`); + reject(res); + } + }); + } + + #formatOutput(res) { + return this.outputFormat(res); + } + + outputFormat = (res) => res; + + sample; } -/** - * Wrapper for fetch().json() - * @param {number} url - * @param {Object} options - * @returns {Promise} - */ -async function fetchWrapper(url, options, identifier = 'unknown', quiet = false) { - const calledAt = new Date() - - const promiseReq = new Promise(async (resolve, reject) => { - if (!magisterApiUserId || !magisterApiUserToken) { - await updateApiCredentials(identifier) - .catch(err => console.error(err)) - } +class MagisterApiRequestAccount extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'accountInfo'; + this.path = 'api/account?noCache=0'; + } +} - const res1 = await fetch(url.replace(/(\$USERID)/gi, magisterApiUserId), { - headers: { - Authorization: magisterApiUserToken, - 'X-Request-Source': 'study-tools' - }, ...options - }) - - // Resolve if no errors - if (res1.ok) { - const json = await res1.json() - if (verbose) console.info(`APIRQ OK after ${new Date() - calledAt} ms (@ ${identifier})`) - return resolve(json) - } +class MagisterApiRequestYears extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'years'; + this.path = `api/leerlingen/$USERID/aanmeldingen?begin=2013-01-01&einde=${new Date().getFullYear() + 1}-01-01`; + } + outputFormat = (res) => res.items; +} - if (verbose) console.info(`APIRQ ERR: ${res1.status}. Retrying... (@ ${identifier})`) +class MagisterApiRequestYearInfo extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `yearInfo${year?.id}`; + this.path = `api/aanmeldingen/${year?.id}`; + } +} - // Reject when forbidden (e.g. feature disabled by school) - if (res1.status === 403) { - return resolve({}) - } +class MagisterApiRequestExamsList extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `examsList${year?.id}`; + this.path = `api/aanmeldingen/${year?.id}/examens`; + } + outputFormat = (res) => res.items; +} - // Reject when ratelimit is hit - if (res1.status === 429 && !quiet) { - notify('snackbar', `Verzoeksquotum overschreden\nWacht even, vernieuw de pagina en probeer het opnieuw`) - return resolve({}) - } +class MagisterApiRequestExamsInfo extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `examsInfo${year?.id}`; + this.path = `api/aanmeldingen/${year?.id}/examen`; + } +} - // If it's not a ratelimit, retry one more time. Also forcibly refresh from memory. - await updateApiCredentials(identifier) - .catch(err => console.error(err)) - - // Retry with a second request - const res2 = await fetch(url.replace(/(\$USERID)/gi, magisterApiUserId), { - headers: { - Authorization: magisterApiUserToken, - 'X-Request-Source': 'study-tools' - }, ...options - }) - - // Resolve if no errors - if (res2.ok) { - const json = await res2.json() - if (verbose) console.info(`APIRQ OK after ${new Date() - calledAt} ms: Succeeded on second try. (@ ${identifier})`) - return resolve(json) - } +class MagisterApiRequestEvents extends MagisterApiRequest { + constructor(start, end) { + super(); + this.identifier = `events${start?.toISOString().substring(0, 10)}${end?.toISOString().substring(0, 10)}`; + this.path = `api/personen/$USERID/afspraken?van=${start?.toISOString().substring(0, 10)}&tot=${end?.toISOString().substring(0, 10)}`; + } + outputFormat = (res) => res.Items; + sample = [{ "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], "Start": now.toISOString().split('T')[0] + " 09:00", "Einde": now.toISOString().split('T')[0] + " 10:00", "Id": 1, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 2, "LesuurVan": 2, "Lokalen": [{ "Naam": "11s" }], "Omschrijving": "fatl - oba", "Lokatie": "11s", "Status": 5, "Vakken": [{ "Naam": "Franse taal" }] }, { "Docenten": [{ "Naam": "G. Gifje", "Docentcode": "GIF" }], "Start": now.toISOString().split('T')[0] + " 10:00", "Einde": now.toISOString().split('T')[0] + " 11:00", "Id": 2, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 3, "LesuurVan": 3, "Lokalen": [{ "Naam": "11s" }], "Omschrijving": "mem - gif", "Lokatie": "11s", "Vakken": [{ "Naam": "memekunde" }] }, { "Docenten": [{ "Naam": "M. Millenial", "Docentcode": "MMI" }], "Start": now.toISOString().split('T')[0] + " 11:30", "Einde": now.toISOString().split('T')[0] + " 12:30", "Id": 3, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 4, "LesuurVan": 4, "Lokalen": [{ "Naam": "11l" }], "Omschrijving": "stk - mmi", "Lokatie": "11l", "Vakken": [{ "Naam": "straattaalkunde" }] }, { "Docenten": [{ "Id": 0, "Naam": "E. Musk", "Docentcode": "EMU" }], "Start": now.toISOString().split('T')[0] + " 12:30", "Einde": now.toISOString().split('T')[0] + " 13:30", "Id": 4, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 5, "LesuurVan": 5, "Lokalen": [{ "Naam": "binas6" }], "Omschrijving": "na - emu", "Lokatie": "binas6", "Vakken": [{ "Naam": "natuurkunde" }] }, { "Docenten": [{ "Id": 0, "Naam": "B. Baan", "Docentcode": "BBA" }], "Start": now.toISOString().split('T')[0] + " 14:00", "Einde": now.toISOString().split('T')[0] + " 15:00", "Id": 5, "InfoType": 0, "Inhoud": null, "LesuurTotMet": 6, "LesuurVan": 6, "Lokalen": [{ "Naam": "at1_ondersteboven" }], "Omschrijving": "ka - bba", "Lokatie": "at1_ondersteboven", "Type": 7, "Vakken": [{ "Naam": "kinderarbeid" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 122400000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 125100000), Inhoud: "

Dit is een onvoltooid huiswerkitem.

", Opmerking: null, InfoType: 1, Afgerond: false, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Niet-bestaand vak" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 297900000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Inhoud: "

In deze les heb je een schriftelijke overhoring. Neem je oortjes mee.

", Opmerking: null, InfoType: 2, Afgerond: false, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Lichamelijke opvoeding" }] }, { Start: new Date(new Date().setHours(0, 0, 0, 0) + 297900000), Einde: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Inhoud: "

Dit item heb je al wel voltooid. Good job.

", Opmerking: null, InfoType: 1, Afgerond: true, "Docenten": [{ "Naam": "O. Baguette", "Docentcode": "OBA" }], Vakken: [{ Naam: "Jouw favoriete vak" }] }]; +} - if (verbose) console.info(`APIRQ ERR: ${res1.status}. Resolving empty. (@ ${identifier})`) +class MagisterApiRequestGradesRecent extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'gradesRecent'; + this.path = `api/personen/$USERID/cijfers/laatste?top=20&skip=0`; + } + outputFormat = (res) => res.items; + sample = [{ omschrijving: "Voorbeeld", ingevoerdOp: new Date(now - 172800000), vak: { code: "netl", omschrijving: "Nederlandse taal" }, waarde: "6,9", weegfactor: 0, isVoldoende: true }, { omschrijving: "Baguette", ingevoerdOp: new Date(now - 691200000), vak: { code: "fatl", omschrijving: "Franse taal" }, waarde: "U", weegfactor: 0, isVoldoende: true }, { omschrijving: "Grade mockery", ingevoerdOp: new Date(now - 6891200000), vak: { code: "entl", omschrijving: "Engelse taal" }, waarde: "5,4", weegfactor: 0 }]; +} - // Reject when forbidden (e.g. feature disabled by school) - if (res2.status === 403) { - return resolve({}) - } +class MagisterApiRequestGradesForYear extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `gradesYear${year?.id}`; + this.path = `api/personen/$USERID/aanmeldingen/${year?.id}/cijfers/cijferoverzichtvooraanmelding?actievePerioden=false&alleenBerekendeKolommen=false&alleenPTAKolommen=false&peildatum=${year?.einde}`; + } + outputFormat = (res) => res.Items; +} - // Reject when ratelimit is hit - if (res2.status === 429 && !quiet) { - notify('snackbar', `Verzoeksquotum overschreden\nWacht even, vernieuw de pagina en probeer het opnieuw`) - return resolve({}) - } +class MagisterApiRequestGradesColumnInfo extends MagisterApiRequest { + constructor(year, columnId) { + super(); + this.identifier = `gradesYear${year?.id}Col${columnId}`; + this.path = `api/personen/$USERID/aanmeldingen/${year?.id}/cijfers/extracijferkolominfo/${columnId}`; + } +} - // Handle other errors - if (!quiet) { - notify( - 'snackbar', - `Fout ${res2.status}. Vernieuw de pagina.`, - [ - { innerText: "Hulp", expandToDialog: "Probeer eerst wat achtergrondprogramma's te sluiten en de pagina te vernieuwen.\n\nBlijf je problemen ervaren? Druk op Ctrl + Shift + J en volg de aanwijzingen in het blauw." } - ], - 120000 - ) - console.log("%cBlijf je problemen ervaren? Neem contact op via e-mail (quinten@althues.nl) of Discord (https://discord.gg/2rP7pfeAKf) en stuur een screenshot van onderstaande foutmelding mee:", 'background-color: hsl(207 95 55); color: #fff; padding: 10px 20px; font: 600 13px system-ui;') - } - console.error(`APIRQ: ${res2.status}\n\nurl: ${url}\nuserId: ${magisterApiUserId}\nuserToken.length: ${magisterApiUserToken?.length} (@ ${identifier})`) - return resolve({}) - }) - - return Promise.race([ - promiseReq, - new Promise((resolve, reject) => { - // Reject after 10 seconds - setTimeout(() => reject(new Error("Request timed out.")), 10000) - }) - ]) - .catch(err => { - if (!quiet) { - notify( - 'snackbar', - `Er is iets misgegaan. Vernieuw de pagina.`, - [ - { innerText: "Hulp", expandToDialog: "Probeer eerst wat achtergrondprogramma's te sluiten en de pagina te vernieuwen.\n\nBlijf je problemen ervaren? Druk op Ctrl + Shift + J en volg de aanwijzingen in het blauw." } - ], - 120000 - ) - console.log("%cBlijf je problemen ervaren? Neem contact op via e-mail (quinten@althues.nl) of Discord (https://discord.gg/2rP7pfeAKf) en stuur een screenshot van onderstaande foutmelding mee:", 'background-color: hsl(207 95 55); color: #fff; padding: 10px 20px; font: 600 13px system-ui;') - } - console.error(`APIRQ: ${err}\n\nurl: ${url}\nuserId: ${magisterApiUserId}\nuserToken.length: ${magisterApiUserToken?.length} (@ ${identifier})`) - return ({}) - }) +class MagisterApiRequestAssignmentsTop extends MagisterApiRequest { + constructor(start, end) { + super(); + this.identifier = 'assignments'; + this.path = `api/personen/$USERID/opdrachten?top=20&skip=0&startdatum=${start?.toISOString().substring(0, 10)}&einddatum=${end?.toISOString().substring(0, 10)}`; + } + outputFormat = (res) => res.Items; + sample = [{ Titel: "Praktische opdracht", Vak: "sk", InleverenVoor: new Date(new Date().setHours(0, 0, 0, 0) + 300600000), Omschrijving: "Zorg ervoor dat je toestemming hebt van de TOA voordat je begint met je experiment." }, { Titel: "Boekverslag", Vak: "netl", InleverenVoor: new Date(new Date().setHours(0, 0, 0, 0) + 400500000) }]; } -/** - * Retrieve the latest credentials information from memory. - * @returns {Promise} Object containing userId and token - */ -async function updateApiCredentials(identifier = 'unknown') { - let isCancelled = false - - now = new Date() - const calledAt = new Date() - - const timeInit = new Date() - - const promiseMemory = new Promise(getApiCredentialsMemory) - - return Promise.race([ - promiseMemory, - new Promise((resolve, reject) => { - // Reject after 4 seconds - setTimeout(() => { - isCancelled = true - reject(new Error("Timed out")) - }, 4000) - }) - ]) - .catch(err => { - console.error(`CREDS ERR: ${err} (@ ${identifier})`) - }) - - async function getApiCredentialsMemory(resolve, reject) { - let storageLocation = chrome.storage.session?.get ? 'session' : 'local' - now = new Date() - - if (!(magisterApiUserId?.length > 1)) { - magisterApiUserId = await getFromStorage('user-id', 'sync') - } +class MagisterApiRequestAssignmentsForYear extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `assignmentsYear${year?.id}`; + this.path = `api/personen/$USERID/opdrachten?top=250&startdatum=${year.begin}&einddatum=${year.einde}`; + } + outputFormat = (res) => res.Items; +} - magisterApiUserToken = await getFromStorage('token', storageLocation) || magisterApiUserToken - magisterApiUserTokenDate = await getFromStorage('token-date', storageLocation) || magisterApiUserTokenDate +class MagisterApiRequestMessages extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'messages'; + this.path = 'api/berichten/postvakin/berichten?top=20&skip=0&gelezenStatus=ongelezen'; + } + outputFormat = (res) => res.items; + sample = [{ onderwerp: "🔥😂💚🍀😔🐜😝🙏👍🪢💀☠️", afzender: { naam: "Quinten Althues (V6E)" }, heeftBijlagen: true, verzondenOp: new Date(now - 3032000000) }, { onderwerp: "Wie gebruikt Berichten in vredesnaam?", afzender: { naam: "Quinten Althues (V6E)" }, heeftPrioriteit: true, verzondenOp: new Date(now - 1000000) }]; +} - if (magisterApiUserId && magisterApiUserToken && magisterApiUserTokenDate && new Date(magisterApiUserTokenDate)) { - if (Math.abs(now - new Date(magisterApiUserTokenDate)) < 60000) { - resolve({ userId: magisterApiUserId, token: magisterApiUserToken }) - if (verbose) console.info(`CREDS OK after ${now - calledAt} ms (@ ${identifier})\nuserId: ${magisterApiUserId}\nuserToken.length: ${magisterApiUserToken?.length}\nuserTokenDate: ${new Date(magisterApiUserTokenDate).toTimeString().split(' ')[0]} (${Math.abs(now - new Date(magisterApiUserTokenDate))} ms ago)`) - } else { - if (new Date() - timeInit < 3000) { - if (verbose) console.info(`CREDS WARN after ${now - calledAt} ms: Data too old! (@ ${identifier})\nuserId: ${magisterApiUserId}\nuserToken.length: ${magisterApiUserToken?.length}\nuserTokenDate: ${new Date(magisterApiUserTokenDate).toTimeString().split(' ')[0]} (${Math.abs(now - new Date(magisterApiUserTokenDate))} ms ago)`) - resolve({ userId: magisterApiUserId, token: magisterApiUserToken }) - } else { - if (isCancelled) return reject(new Error("Timed out")) - if (verbose) console.info(`CREDS WARN: Data too old! Retrying... (@ ${identifier})`) - setTimeout(() => getApiCredentialsMemory(resolve, reject), 200) - } - } - } else { - if (isCancelled) return reject(new Error("Timed out")) - if (verbose) console.info(`CREDS INFO: Data incomplete! Retrying... (@ ${identifier})\nuserId: ${magisterApiUserId}\nuserToken.length: ${magisterApiUserToken?.length}\nuserTokenDate: ${new Date(magisterApiUserTokenDate).toTimeString().split(' ')[0]} (${Math.abs(now - new Date(magisterApiUserTokenDate))} ms ago)`) - setTimeout(() => getApiCredentialsMemory(resolve, reject), 200) - } +class MagisterApiRequestActivities extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'activities'; + this.path = `api/personen/$USERID/activiteiten?status=NogNietAanEisVoldaan`; } + outputFormat = (res) => res.Items; + sample = [null]; } + +class MagisterApiRequestLogs extends MagisterApiRequest { + constructor() { + super(); + this.identifier = 'logs'; + this.path = `api/leerlingen/$USERID/logboeken/count`; + } + outputFormat = (res) => Array(res?.count || 0); + sample = [null]; +} + +class MagisterApiRequestAbsencesForYear extends MagisterApiRequest { + constructor(year) { + super(); + this.identifier = `absencesYear${year?.id}`; + this.path = `api/personen/$USERID/absenties?van=${year.begin}&tot=${year.einde}`; + } + outputFormat = (res) => res.Items; +} + +const magisterApi = new MagisterApi(); diff --git a/src/scripts/gamification.js b/src/scripts/gamification.js index fb341b9..ae99b22 100644 --- a/src/scripts/gamification.js +++ b/src/scripts/gamification.js @@ -19,16 +19,16 @@ window.checkWrapped = checkWrapped() async function checkWrapped() { if ((now >= range1.start && now <= range1.end) ) { - user = await MagisterApi.accountInfo() + user = await magisterApi.accountInfo() - years = (await MagisterApi.years()) + years = (await magisterApi.years()) .filter(year => Number(year.einde.split('-')[0]) <= now.getFullYear()) // Filter years to not include the upcoming school year .sort((a, b) => new Date(a.begin) - new Date(b.begin)) - const examInfo = await MagisterApi.exams.info(years.at(-1)) + const examInfo = await magisterApi.exams.info(years.at(-1)) years[years.length - 1].examInfo = examInfo - const recentGrades = await MagisterApi.grades.recent() + const recentGrades = await magisterApi.gradesRecent() if ((examInfo && Object.keys(examInfo).length > 0 && !examInfo.doetVroegtijdig) ) { // Continue if it's inside 'range 1' and the student has had their final exams @@ -181,9 +181,9 @@ async function constructWrapped(lastYearOnly) { year.absences = years.flatMap(obj => obj.absences) year.assignments = years.flatMap(obj => obj.assignments) } else { - if ((years.length - i) <= 2) year.examInfo ??= await MagisterApi.exams.info(year) || null - if ((years.length - i) <= 2) year.exams = await MagisterApi.exams.list(year) || [] - year.grades = (await MagisterApi.grades.forYear(year) || []) + if ((years.length - i) <= 2) year.examInfo ??= await magisterApi.exams.info(year) || null + if ((years.length - i) <= 2) year.exams = await magisterApi.exams.list(year) || [] + year.grades = (await magisterApi.gradesForYear(year) || []) .filter(grade => grade.CijferKolom.KolomSoort == 1 && !isNaN(Number(grade.CijferStr.replace(',', '.'))) && (Number(grade.CijferStr.replace(',', '.')) <= 10) && (Number(grade.CijferStr.replace(',', '.')) >= 1)) .filter((grade, index, self) => index === self.findIndex((g) => @@ -193,9 +193,9 @@ async function constructWrapped(lastYearOnly) { ) ) .sort((a, b) => new Date(a.DatumIngevoerd) - new Date(b.DatumIngevoerd)) - year.events = (await MagisterApi.events(new Date(year.begin), new Date(year.einde))).filter(event => !event.Omschrijving.includes('DrumWorks')) || [] - year.absences = await MagisterApi.absences.forYear(year) || [] - year.assignments = await MagisterApi.assignments.forYear(year) || [] + year.events = (await magisterApi.events(new Date(year.begin), new Date(year.einde))).filter(event => !event.Omschrijving.includes('DrumWorks')) || [] + year.absences = await magisterApi.absencesForYear(year) || [] + year.assignments = await magisterApi.assignmentsForYear(year) || [] } years[i] = year diff --git a/src/scripts/grades.js b/src/scripts/grades.js index acace5c..c129833 100644 --- a/src/scripts/grades.js +++ b/src/scripts/grades.js @@ -131,7 +131,7 @@ async function gradeCalculator(buttonWrapper) { buttonWrapper.append(clOpen) - let years = (await MagisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) + let years = (await magisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) let apiGrades = {}, gradeColumns = {}, @@ -153,7 +153,7 @@ async function gradeCalculator(buttonWrapper) { if (!document.querySelector('#st-cb-aside')) { let schoolYearId = document.querySelector('#aanmeldingenSelect>option[selected=selected]').value let schoolYear = years.find(y => y.id == schoolYearId) - apiGrades[schoolYearId] ??= await MagisterApi.grades.forYear(schoolYear) + apiGrades[schoolYearId] ??= await magisterApi.gradesForYear(schoolYear) } if (!accessedBefore) { await notify('dialog', "Welkom bij de nieuwe cijfercalculator!\n\nJe kunt cijfers toevoegen door ze aan te klikken. Je kunt ook de naam van een vak aanklikken om meteen alle cijfers\nvan dat vak toe te voegen aan de berekening. Natuurlijk kun je ook handmatig cijfers toevoegen.") @@ -249,7 +249,7 @@ async function gradeCalculator(buttonWrapper) { } else { let schoolYearId = document.querySelector('#aanmeldingenSelect>option[selected=selected]').value let gradeColumnId = apiGrades[schoolYearId].find(item => `${item.Vak.Afkorting}_${item.CijferKolom.KolomNummer}_${item.CijferKolom.KolomNummer}` === id || `${item.Vak.Afkorting}_${item.CijferKolom.KolomKop}_${item.CijferKolom.KolomNummer}` === id).CijferKolom.Id - gradeColumns[gradeColumnId] ??= await MagisterApi.grades.columnInfo({ id: schoolYearId }, gradeColumnId) + gradeColumns[gradeColumnId] ??= await magisterApi.gradesColumnInfo({ id: schoolYearId }, gradeColumnId) weight = gradeColumns[gradeColumnId].Weging gradeElement.parentElement.dataset.weight = weight column = gradeColumns[gradeColumnId].KolomNaam @@ -527,7 +527,7 @@ async function gradeBackup(buttonWrapper) { document.querySelector("#idWeergave > div > div:nth-child(1) > div > div > form > div:nth-child(1) > div > span").click() if (yearsArray?.length > 0) return - yearsArray = (await MagisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) + yearsArray = (await magisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) yearsArray.reverse() yearsArray.forEach((year, i) => { @@ -547,7 +547,7 @@ async function gradeBackup(buttonWrapper) { bkModalExListTitle.dataset.description = "Wachten op cijfers..." - const gradesArray = await MagisterApi.grades.forYear(year) + const gradesArray = await magisterApi.gradesForYear(year) if (!gradesArray?.length > 0) { bkModalExListTitle.dataset.description = "Geen cijfers gevonden!" busy = false @@ -597,7 +597,7 @@ async function gradeBackup(buttonWrapper) { } setTimeout(async () => { - const gradeExtra = await MagisterApi.grades.columnInfo(year, gradeBasis?.CijferKolom?.Id) + const gradeExtra = await magisterApi.gradesColumnInfo(year, gradeBasis?.CijferKolom?.Id) let weight = Number(gradeExtra.Weging), column = gradeExtra.KolomNaam, @@ -863,7 +863,7 @@ async function gradeStatistics() { }) // Gather all years and populate the year filter - years = (await MagisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) + years = (await magisterApi.years()).sort((a, b) => new Date(a.begin) - new Date(b.begin)) years.forEach(async (year, i, a) => { let label = element('label', `st-cs-year-${year.id}-label`, scYearFilter, { class: 'st-checkbox-label', for: `st-cs-year-${year.id}`, innerText: year.studie.code.replace(/\D/gi, ''), title: `${year.groep.omschrijving || year.groep.code} (${year.studie.code} in ${year.lesperiode.code})` }) if (!(label.innerText?.length > 0)) label.innerText = i + 1 @@ -872,7 +872,7 @@ async function gradeStatistics() { if (i === a.length - 1) { input.checked = true - let yearGrades = (await MagisterApi.grades.forYear(year)) + let yearGrades = (await magisterApi.gradesForYear(year)) .filter(grade => grade.CijferKolom.KolomSoort == 1 && !isNaN(Number(grade.CijferStr.replace(',', '.'))) && (Number(grade.CijferStr.replace(',', '.')) <= 10) && (Number(grade.CijferStr.replace(',', '.')) >= 1)) .filter((grade, index, self) => index === self.findIndex((g) => @@ -904,7 +904,7 @@ async function gradeStatistics() { input.addEventListener('input', async () => { if (!gatheredYears.has(year.id)) { - let yearGrades = (await MagisterApi.grades.forYear(year)) + let yearGrades = (await magisterApi.gradesForYear(year)) statsGrades.push(...yearGrades.filter(grade => grade.CijferKolom.KolomSoort == 1 && !isNaN(Number(grade.CijferStr.replace(',', '.')))).map(e => ({ ...e, result: Number(e.CijferStr.replace(',', '.')), year: year.id }))) gatheredYears.add(year.id) @@ -1076,7 +1076,7 @@ async function gradeStatistics() { // Add weighted stats afterwards in case there's only one subject and year selected if (!fromBackup && includedYears.size === 1 && includedSubjects.length === 1) { for (const e of filteredGrades) { - e.weight ??= (await MagisterApi.grades.columnInfo({ id: [...includedYears][0] }, e.CijferKolom.Id)).Weging + e.weight ??= (await magisterApi.gradesColumnInfo({ id: [...includedYears][0] }, e.CijferKolom.Id)).Weging statsGrades[statsGrades.findIndex(f => f.CijferKolom.Id === e.CijferKolom.Id)].weight ??= e.weight } diff --git a/src/scripts/login.js b/src/scripts/login.js index aed0e99..e3670ba 100644 --- a/src/scripts/login.js +++ b/src/scripts/login.js @@ -1,24 +1,39 @@ -login() +login(); async function login() { - if (!syncedStorage['magisterLogin-enabled']) return + chrome.runtime.sendMessage({ action: 'popstateDetected' }); - const username = syncedStorage['magisterLogin-username'] + const footerNotice = element('div', 'bottom-st', null, { + innerHTML: "\xa0|\xa0Autom. inloggen aan", + title: "Meer informatie over automatisch inloggen", + style: "cursor: pointer;", + }); + document.querySelector('footer>.bottom-company-logo, footer>*:last-child')?.before(footerNotice); - const footer = document.querySelector('.bottom') - footer.style.translate = '0 -2rem' - footer.innerText = "Automatisch inloggen is ingeschakeld. Je kunt de instellingen aanpassen via de pop-up van Study Tools." + let autoLoginDisclaimer = "Study Tools is actief en er wordt een poging gedaan om automatisch in te loggen. \n\nControleer je instellingen als het inloggen niet slaagt." + footerNotice.addEventListener('click', () => notify('dialog', autoLoginDisclaimer, [{ + innerText: "Instellingen", + primary: true, + onclick: () => chrome.runtime.sendMessage({ action: 'openOptions', data: 'tab=login' }), + }])); + + if (!syncedStorage['magisterLogin-enabled'] || !syncedStorage['magisterLogin-username']) { + footerNotice.innerHTML = "\xa0|\xa0Autom. inloggen uit"; + autoLoginDisclaimer = "Study Tools is actief, maar automatisch inloggen is nog niet ingesteld. \n\nGebruik onderstaande knop om de instellingen te openen."; + return; + } const forceLogoutTimestamp = await getFromStorage('force-logout', 'local') if (forceLogoutTimestamp && Math.abs(new Date().getTime() - forceLogoutTimestamp) <= 30000) { - footer.innerText = "Automatisch inloggen is tijdelijk gepauzeerd. De volgende keer zal er weer automatisch worden ingelogd." - return + footerNotice.innerHTML = "\xa0|\xa0Autom. inloggen uit"; + autoLoginDisclaimer = "Study Tools is actief, maar automatisch inloggen is tijdelijk gepauzeerd omdat je handmatig hebt uitgelogd. \n\nDe volgende keer zal er weer automatisch worden ingelogd."; + return; } - const usernameInput = await awaitElement('#username') - usernameInput.value = username - usernameInput.dispatchEvent(new Event('input')) + const usernameInput = await awaitElement('#username'); + usernameInput.value = syncedStorage['magisterLogin-username']; + usernameInput.dispatchEvent(new Event('input')); - const usernameSubmit = await awaitElement('#username_submit') - usernameSubmit.click() + const usernameSubmit = await awaitElement('#username_submit'); + usernameSubmit.click(); } \ No newline at end of file diff --git a/src/scripts/main.js b/src/scripts/main.js index b393ee5..d01caec 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -3,8 +3,6 @@ chrome.runtime.sendMessage({ action: 'popstateDetected' }) // Revive the service // Run when the extension and page are loaded main() async function main() { - // if ((await getFromStorage('sampleApiData', 'session')) === 'true') MagisterApi.useSampleData = true - const todayDate = new Date(new Date().setHours(0, 0, 0, 0)) let appbar = await awaitElement('.appbar'), @@ -88,7 +86,7 @@ async function main() { } // Birthday party mode! - const accountInfo = await MagisterApi.accountInfo(), + const accountInfo = await magisterApi.accountInfo(), dateOfBirth = new Date(new Date(accountInfo?.Persoon?.Geboortedatum)?.setHours(0, 0, 0, 0)), birthday = new Date(new Date(dateOfBirth).setYear(now.getFullYear())), firstName = accountInfo?.Persoon?.Roepnaam || accountInfo?.Persoon?.OfficieleVoornamen, diff --git a/src/scripts/style.js b/src/scripts/style.js index 0700a84..d532929 100644 --- a/src/scripts/style.js +++ b/src/scripts/style.js @@ -1686,8 +1686,83 @@ table.table-grid-layout>tbody>tr.selected { outline: 2px solid var(--st-foreground-primary); } -.challenge-container { - color: var(--st-foreground-primary); +.app-container { + display: flex; + justify-content: stretch; + align-items: stretch; + + &>.challenge-container { + flex: 50% 1 1; + display: flex; + flex-direction: column; + align-items: stretch; + + color: var(--st-foreground-primary); + + &>header { + flex: 64px 0 0; + height: auto; + } + + &>.podium_container { + min-height: 0; + flex: 100% 1 1; + width: auto; + } + + &>footer { + flex: 60px 0 0; + height: auto; + width: auto; + + background-color: var(--st-background-secondary); + color: var(--st-foreground-primary); + overflow: hidden; + container-type: size; + + &>* { + flex-shrink: 0; + } + + &>.bottom-conditions { + margin-right: 0; + } + + &>.bottom-company-logo { + margin-left: auto; + + @container (width < 660px) { + width: 14px; + overflow: hidden; + } + + @container (width < 545px) { + display: none; + } + } + + &>.bottom-green dna-icon, .bottom-green-mobile dna-icon { + color: var(--st-foreground-accent); + } + } + } + + &>.challenge-container+div { + flex: 50% 1 1; + position: relative; + display: block; + + &>.splash-container { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + } + + @media (width <= 1150px) { + display: none; + } + } } .podium .completed-challenge { @@ -1709,6 +1784,14 @@ table.table-grid-layout>tbody>tr.selected { .podium h1 { color: var(--st-foreground-accent); + font-family: var(--st-font-family-primary); + margin-bottom: 6px; +} + +.podium h2 { + font-family: var(--st-font-family-primary); + font-weight: 500; + margin-top: 6px; } .podium button { diff --git a/src/scripts/theme-store.js b/src/scripts/theme-store.js index 2f678ca..052bdef 100644 --- a/src/scripts/theme-store.js +++ b/src/scripts/theme-store.js @@ -1,40 +1,8 @@ popstate() window.addEventListener('popstate', popstate) -window.addEventListener('locationchange', popstate) -window.addEventListener('hashchange', popstate) -window.addEventListener('navigate', popstate) -async function popstate(e) { - console.log(e?.type) +async function popstate() { // Only run on the theme store if (! await awaitElement('meta#theme-store-st')) return // Provide the page with this extension's ID element('meta', `st-${chrome.runtime.id}`, document.head) - - const downloadButtons = await awaitElement('.themes>.theme .button.download', true) - downloadButtons.forEach(button => { - const newButton = button.cloneNode(true) - const newButtonText = newButton.querySelector('span:not(.material-symbols-outlined):last-child') - if (newButtonText) newButtonText.innerText = "Toevoegen" - const newButtonIcon = newButton.querySelector('span.material-symbols-outlined') - if (newButtonIcon) newButtonIcon.innerText = 'library_add' - const href = newButton.getAttribute('href') - newButton.removeAttribute('href') - newButton.removeAttribute('download') - newButton.addEventListener('click', async e => { - const obj = JSON.parse(decodeURIComponent(href.replace('data:text/plain;charset=utf-8,', ''))) - const storedThemes = Object.values((await chrome.storage.local.get('storedThemes')).storedThemes) - if (!storedThemes?.[0] || storedThemes.length >= 9) return - - storedThemes.push(obj) - - //TODO: only if not exist - - await chrome.storage.local.set({ 'storedThemes': storedThemes }) - }) - button.before(newButton) - - const buttonText = button.querySelector('span:not(.material-symbols-outlined):last-child') - if (buttonText) buttonText.remove() - button.classList.add('icon') - }) } \ No newline at end of file diff --git a/src/scripts/today.js b/src/scripts/today.js index 980a148..d57439a 100644 --- a/src/scripts/today.js +++ b/src/scripts/today.js @@ -52,7 +52,6 @@ async function today() { now = new Date() const todayDate = new Date(new Date().setHours(0, 0, 0, 0)) - firstName = (await awaitElement('#user-menu > figure > img')).alt.split(' ')[0] const gatherStart = new Date() gatherStart.setDate(now.getDate() - (now.getDay() + 6) % 7) @@ -102,7 +101,7 @@ async function today() { headerText.dataset.state = 'visible' }, 2000) }) - function greetUser() { + async function greetUser() { headerGreeting.dataset.state = 'visible' headerText.dataset.state = 'hidden' const greetingsByHour = [ @@ -112,7 +111,7 @@ async function today() { [6, ...i18n('greetings.morning').split(';'), 'Bonjour#', 'Buenos días#', 'Guten Morgen#'], // 6:00 - 11:59 [0, ...i18n('greetings.earlyNight').split(';'), 'Bonjour#', 'Buenos días#', 'Guten Morgen#'] // 0:00 - 5:59 ], - greetingsGeneric = [...i18n('greetings.generic').split(';'), 'Yooo!', 'Hello, handsome.', 'Guten Tag#', 'Greetings#', 'Hey#', 'Hoi#', '¡Hola!', 'Ahoy!', 'Bonjour#', 'Buongiorno#', 'Namasté#', 'Howdy!', 'G\'day!', 'Oi mate!', 'Aloha!', 'Ciao!', 'Olá!', 'Salut#', 'Saluton!', 'Hei!', 'Hej!', 'Salve!', 'Bom dia#', 'Zdravo!', 'Shalom!', 'Γεια!', 'Привіт!', 'Здравейте!', '你好!', '今日は!', '안녕하세요!', 'Hé buurman!'] + greetingsGeneric = [...i18n('greetings.generic').split(';'), 'Yooo!', 'Hello, handsome.', 'Guten Tag#', 'Greetings#', 'Hey#', 'Hoi#', '¡Hola!', 'Ahoy!', 'Bonjour#', 'Buongiorno#', 'Namasté#', 'Howdy!', 'G\'day!', 'Oi mate!', 'Aloha!', 'Ciao!', 'Olá!', 'Salut#', 'Saluton!', 'Hei!', 'Hej!', 'Salve!', 'Bom dia#', 'Zdravo!', 'Shalom!', 'Γεια!', 'Привіт!', 'Здравейте!', '你好!', '今日は!', '안녕하세요!', 'Hé buur!'] let possibleGreetings = [] for (let i = 0; i < greetingsByHour.length; i++) { @@ -124,8 +123,9 @@ async function today() { } } possibleGreetings.push(...greetingsGeneric) - const punctuation = Math.random() < 0.8 ? '.' : '!', - greeting = possibleGreetings[Math.floor(Math.random() * possibleGreetings.length)].replace('#', punctuation).replace('%s', formattedWeekday).replace('%n', firstName) + const greeting = possibleGreetings.random() + .replace('#', Math.random() < 0.8 ? '.' : '!').replace('%s', formattedWeekday) + .replace('%n', (await magisterApi.accountInfo())?.Persoon?.Roepnaam || '') if (locale === 'fr-FR') greeting.replace(/\s*(!|\?)+/, ' $1') headerGreeting.innerText = greeting.slice(0, -1) headerGreeting.dataset.lastLetter = greeting.slice(-1) @@ -215,18 +215,15 @@ async function today() { agendaDayOffset = newOffset agendaDayOffsetChanged = true - if (schedule.dataset.navigate !== 'still') { + if (newOffset > oldOffset) { schedule.dataset.navigate = 'still' - renderSchedule() - } else if (newOffset > oldOffset) { - schedule.dataset.navigate = 'forw' - setTimeout(renderSchedule, 50) - setTimeout(() => schedule.dataset.navigate = 'still', 200) + setTimeout(() => schedule.dataset.navigate = 'forwards', 10) + setTimeout(renderSchedule, 40) } else if (newOffset < oldOffset) { - schedule.dataset.navigate = 'back' - setTimeout(renderSchedule, 50) - setTimeout(() => schedule.dataset.navigate = 'still', 200) - } else { renderSchedule() } + schedule.dataset.navigate = 'still' + setTimeout(() => schedule.dataset.navigate = 'backwards', 10) + setTimeout(renderSchedule, 40) + } } let todayViewModeDropdown = element('button', 'st-start-today-view', headerButtons, { class: 'st-segmented-control' }) @@ -335,7 +332,7 @@ async function today() { renderSchedule() }) - const events = await MagisterApi.events() + const events = await magisterApi.events() if (!events) return @@ -410,7 +407,7 @@ async function today() { now = new Date() agendaDayOffset = Math.floor((todayDate - gatherStart) / 86400000) - const events = await MagisterApi.events() + const events = await magisterApi.events() // Display error if the result does not exist or if it is not an array if (!events || !Array.isArray(events)) { @@ -486,8 +483,7 @@ async function today() { notify('snackbar', i18n('toasts.jumpedToDate', { date: formatTimestamp(agendaStartDate) }), [], 1500) setTimeout(() => { if (document.querySelector('#st-start-today-offset-zero')) document.querySelector('#st-start-today-offset-zero').classList.add('emphasise') }, 200) - schedule.dataset.navigate = 'jumpforw' - setTimeout(() => schedule.dataset.navigate = 'still', 300) + schedule.dataset.navigate = 'jumpforwards' } if (agendaView === 'day') agendaEndDate = agendaStartDate @@ -706,6 +702,8 @@ async function today() { now = new Date() + await magisterApi.updateApiPermissions() + widgetFunctions = { logs: { title: i18n('widgets.logs'), @@ -714,12 +712,12 @@ async function today() { requiredPermissions: ['Logboeken'], render: async (type, placeholder) => { return new Promise(async resolve => { - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let logs = await MagisterApi.logs() + let logs = await magisterApi.logs() .catch(() => { return reject() }) - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false if (logs.length < 1) return resolve() let widgetElement = element('div', 'st-start-widget-logs', null, { class: 'st-tile st-widget' }) @@ -741,12 +739,12 @@ async function today() { requiredPermissions: ['Activiteiten'], render: async (type, placeholder) => { return new Promise(async resolve => { - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let activities = await MagisterApi.activities() + let activities = await magisterApi.activities() .catch(() => { return reject() }) - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false if (activities.length < 1) return resolve() let widgetElement = element('div', 'st-start-widget-activities', null, { class: 'st-tile st-widget' }) @@ -806,16 +804,16 @@ async function today() { let viewResult = await getFromStorage('start-widget-cf-result', 'local') || 'always' let autoRotate = await getFromStorage('start-widget-cf-rotate', 'local') || 'true' - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let grades = await MagisterApi.grades.recent() + let grades = await magisterApi.gradesRecent() .catch(() => { return reject() }) - let assignments = magisterApiPermissions.includes('EloOpdracht') - ? await MagisterApi.assignments.top() + let assignments = magisterApi.permissions.includes('EloOpdracht') + ? await magisterApi.assignmentsTop() .catch(() => { return reject() }) : [] - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false let hiddenItems = new Set(Object.values((await getFromStorage('hiddenGrades', 'local') || []))) @@ -855,7 +853,13 @@ async function today() { if (type === 'Lijst') widgetTitle.dataset.amount = recentGrades.filter(item => item.unread).length recentGrades.forEach((item, i) => { - const gradeElement = element('div', `st-start-widget-grades-${i}`, widgetItemsContainer, { class: 'st-start-widget-grades-item', 'data-unread': item.unread, 'data-hidden': item.hidden, 'data-assignment': item.assignment }) + const gradeElement = element('div', `st-start-widget-grades-${i}`, widgetItemsContainer, { + class: 'st-start-widget-grades-item', + 'data-unread': item.unread, + 'data-hidden': item.hidden, + 'data-assignment': item.assignment, + style: i == 0 ? '' : 'display: none;' + }) children.push(gradeElement) if (i === 0) widgetElement.dataset.unread = item.unread @@ -935,14 +939,16 @@ async function today() { targetIndex = children.length - 1 } - widgetItemsContainer.scroll((targetIndex) * children[0].clientWidth, 0) - widgetElement.dataset.unread = children[targetIndex]?.dataset.unread || false - visibleChildIndex = targetIndex - - if (!document.querySelector(`#st-start-widget-grades-scroll-pagn>div:nth-child(${targetIndex + 1})`) || !document.querySelector('#st-start-widget-grades-scroll-pagn>div')) return - - document.querySelectorAll('#st-start-widget-grades-scroll-pagn>div').forEach(d => d.dataset.current = false) - document.querySelectorAll(`#st-start-widget-grades-scroll-pagn>div:nth-child(${targetIndex + 1})`).forEach(d => d.dataset.current = true) + widgetItemsContainer.dataset.navigate = 'still' + setTimeout(() => { + widgetItemsContainer.dataset.navigate = targetIndex > visibleChildIndex ? 'forwards' : targetIndex < visibleChildIndex ? 'backwards' : 'still' + visibleChildIndex = targetIndex + setTimeout(() => { + children.forEach((child, index) => child.style.display = index === targetIndex ? 'flex' : 'none'); + document.querySelectorAll('#st-start-widget-grades-scroll-pagn>div').forEach((d, index) => d.dataset.current = index === targetIndex); + widgetElement.dataset.unread = children[targetIndex]?.dataset.unread || false + }, 60); + }, 10); } if (recentGrades.length < 2) { @@ -968,12 +974,12 @@ async function today() { requiredPermissions: ['Berichten'], render: async (type, placeholder) => { return new Promise(async resolve => { - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let unreadMessages = await MagisterApi.messages() + let unreadMessages = await magisterApi.messages() .catch(() => { return reject() }) - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false if (unreadMessages.length < 1) return resolve() let widgetElement = element('div', 'st-start-widget-messages', null, { class: 'st-tile st-widget' }) @@ -1037,12 +1043,12 @@ async function today() { return new Promise(async resolve => { const filterOption = await getFromStorage('start-widget-hw-filter', 'local') || 'incomplete' - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let events = await MagisterApi.events() + let events = await magisterApi.events() .catch(() => { return reject() }) - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false const homeworkEvents = events.filter(item => { if (filterOption === 'incomplete') @@ -1098,12 +1104,12 @@ async function today() { requiredPermissions: ['EloOpdracht'], render: async (type, placeholder) => { return new Promise(async (resolve) => { - if (placeholder) MagisterApi.useSampleData = true + if (placeholder) magisterApi.useSampleData = true - let assignments = await MagisterApi.assignments.top() + let assignments = await magisterApi.assignmentsTop() .catch(() => { return reject() }) - if (placeholder) MagisterApi.useSampleData = false + if (placeholder) magisterApi.useSampleData = false const relevantAssignments = assignments.filter(item => !item.Afgesloten && !item.IngeleverdOp) @@ -1199,7 +1205,7 @@ async function today() { if (placeholder) { events = [] } else { - events = await MagisterApi.events() + events = await magisterApi.events() .catch(() => { return reject() }) } @@ -1253,11 +1259,11 @@ async function today() { } // Ensure the user permission flags are up-to-date - await MagisterApi.accountInfo() + await magisterApi.accountInfo() // Draw the selected widgets in the specified order for (const key of widgetsOrderSetting) { - if (!widgetFunctions?.[key] || !widgetFunctions[key].requiredPermissions?.every(p => magisterApiPermissions?.includes(p))) continue + if (!widgetFunctions?.[key] || !widgetFunctions[key].requiredPermissions?.every(p => magisterApi.permissions?.includes(p))) continue if (!syncedStorage[`widget-${key}-type`] || ![...widgetFunctions[key].types, 'Verborgen'].includes(syncedStorage[`widget-${key}-type`])) { syncedStorage[`widget-${key}-type`] = widgetFunctions[key].types[0] @@ -1305,7 +1311,7 @@ async function today() { if (widgetsCollapsed) todayCollapseWidgets.click() for (const key of widgetsOrderSetting) { - if (!widgetFunctions?.[key] || !widgetFunctions[key].requiredPermissions?.every(p => magisterApiPermissions?.includes(p))) continue + if (!widgetFunctions?.[key] || !widgetFunctions[key].requiredPermissions?.every(p => magisterApi.permissions?.includes(p))) continue if (syncedStorage[`widget-${key}-type`] === 'Verborgen' || (!syncedStorage[`widget-${key}-type`] && widgetFunctions[key].types[0] === 'Verborgen')) { const widgetAddButton = element('button', `st-start-edit-${key}-add`, editorHiddenList, { class: 'st-start-editor-add', innerText: widgetFunctions[key].title, title: i18n('add') }) diff --git a/src/scripts/util.js b/src/scripts/util.js index 490801a..6458ae2 100644 --- a/src/scripts/util.js +++ b/src/scripts/util.js @@ -21,7 +21,6 @@ let eggs = [], if (chrome?.runtime) { locale = syncedStorage['language'] if (!['nl-NL', 'en-GB', 'fr-FR', 'de-DE', 'sv-SE', 'la-LA'].includes(locale)) locale = 'nl-NL' - chrome.storage.sync.onChanged.addListener((changes) => { if (changes.language) window.location.reload() }) const req = await fetch(chrome.runtime.getURL(`src/strings/${locale.split('-')[0]}.json`)) i18nData = await req.json() const reqNl = await fetch(chrome.runtime.getURL(`src/strings/nl.json`)) @@ -234,11 +233,11 @@ setIntervalImmediately(updateTemporalBindings, 1000) let minToMs = (minutes = 1) => minutes * 60000 let daysToMs = (days = 1) => days * 8.64e7 -let midnight = (offset = 0) => { - const date = new Date() - date.setDate(date.getDate() + offset) - date.setHours(23, 59, 59, 999) - return date +function midnight(targetDate) { + const date = new Date(); + date.setDate(targetDate || date.getDate()); + date.setHours(0, 0, 0, 0); + return date; } Date.prototype.getWeek = function () { @@ -259,9 +258,9 @@ Date.prototype.getFormattedDay = function () { Date.prototype.getFormattedTime = function () { return this.toLocaleTimeString(locale, { timeZone: 'Europe/Amsterdam', hour: '2-digit', minute: '2-digit' }) } Date.prototype.getHoursWithDecimals = function () { return this.getHours() + (this.getMinutes() / 60) } -Date.prototype.isTomorrow = function (offset = 0) { return this > midnight(0 + offset) && this < midnight(1 + offset) } -Date.prototype.isToday = function (offset = 0) { return this > midnight(-1 + offset) && this < midnight(0 + offset) } -Date.prototype.isYesterday = function (offset = 0) { return this > midnight(-2 + offset) && this < midnight(-1 + offset) } +Date.prototype.isTomorrow = function (offset = 0) { return this >= midnight(new Date().getDate() + 1 + offset) && this < midnight(new Date().getDate() + 2 + offset) } +Date.prototype.isToday = function (offset = 0) { return this >= midnight(new Date().getDate() + offset) && this < midnight(new Date().getDate() + 1 + offset) } +Date.prototype.isYesterday = function (offset = 0) { return this >= midnight(new Date().getDate() - 1 + offset) && this < midnight(new Date().getDate() + offset) } Array.prototype.random = function (seed) { let randomValue = Math.random() @@ -577,9 +576,10 @@ async function notify(type = 'snackbar', body = 'Notificatie', buttons = [], dur window.open(item.href, '_blank').focus() event.stopPropagation() }) - } else if (item.callback) { + } else if (item.callback || item.onclick) { button.addEventListener('click', event => { - item.callback(event) + if (item.callback) item.callback(event) + if (item.onclick) item.onclick(event) event.stopPropagation() }) } else button.addEventListener('click', event => event.stopPropagation()) diff --git a/src/service-worker.js b/src/service-worker.js index d75f973..34102f4 100644 --- a/src/service-worker.js +++ b/src/service-worker.js @@ -115,22 +115,30 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { chrome.management.uninstallSelf({ showConfirmDialog: false }, () => { window.location.reload() }) break + case 'openOptions': + chrome.tabs.create({ url: `popup/dist/index.html?${request.data}` }); + break; + default: return 0 } }) -async function sleepUntil(f, timeoutMs) { - return new Promise((resolve, reject) => { - const timeWas = new Date() - const wait = setInterval(function () { - if (f()) { - clearInterval(wait) - resolve() - } else if (new Date() - timeWas > timeoutMs) { - clearInterval(wait) - reject() - } - }, 20) - }) -} +chrome.runtime.onMessageExternal.addListener(async (request, sender, sendResponse) => { + switch (request.action) { + case 'addPersonalTheme': + const obj = request.obj + const storedThemes = Object.values((await chrome.storage.local.get('storedThemes')).storedThemes) + if (!storedThemes || storedThemes.length >= 9) return + + storedThemes.push(obj) + + //TODO: only if not exist + + await chrome.storage.local.set({ 'storedThemes': storedThemes }) + break + + default: + return 0 + } +}) diff --git a/src/styles/main.css b/src/styles/main.css index 6289237..f33fe79 100644 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -303,7 +303,7 @@ dialog.st-modal[open]::backdrop { .st-button:focus-visible, .st-dropdown:focus-visible, .st-dropdown>button:focus-visible { - outline: 2px solid var(--st-foreground-primary); + outline: 2px solid var(--st-foreground-accent); } .st-button:hover { @@ -735,7 +735,7 @@ a.st-metric:focus-visible { } a.st-metric:focus-visible { - outline: 2px solid var(--st-foreground-primary); + outline: 2px solid var(--st-foreground-accent); } .st-list { diff --git a/src/styles/today.css b/src/styles/today.css index ec86f6d..fda45a6 100644 --- a/src/styles/today.css +++ b/src/styles/today.css @@ -16,15 +16,9 @@ initial-value: 0; } -#st-start button.st-list-item:hover, -#st-start button.st-event:hover, -#st-start .st-list-item[href]:hover { - background-color: var(--st-highlight-primary); -} - #st-start button.st-list-item:focus-visible, #st-start button.st-event:focus-visible { - outline: 1px solid var(--st-foreground-primary); + outline: 2px solid var(--st-foreground-accent); outline-offset: -2px; } @@ -95,7 +89,8 @@ color: var(--st-foreground-secondary); } -#st-start-header-text:after { +#st-start-header-text:after, +#st-start-header-greeting:after { content: attr(data-last-letter); } @@ -156,47 +151,53 @@ flex-direction: column; height: auto; overflow-y: auto; + --st-anim-mod-scale: 0.97; transition: background-color 200ms, opacity 200ms; } -#st-start-schedule[data-navigate='back'] { - animation: 200ms schedule-navigate-back; +#st-start-schedule[data-navigate='backwards'], +#st-start-widget-grades-items[data-navigate='backwards'] { + animation: 200ms navigation-move-backwards; } -#st-start-schedule[data-navigate='forw'] { - animation: 200ms schedule-navigate-forw; +#st-start-schedule[data-navigate='forwards'], +#st-start-widget-grades-items[data-navigate='forwards'] { + animation: 200ms navigation-move-forwards; } -#st-start-schedule[data-navigate='jumpforw'] { - animation: 300ms schedule-navigate-jump-forw; +#st-start-schedule[data-navigate='jumpforwards'] { + animation: 300ms navigation-move-jump-forwards; } -@keyframes schedule-navigate-back { - 34.9% { +@keyframes navigation-move-backwards { + 30% { translate: 5%; opacity: 0; + scale: var(--st-anim-mod-scale, .9); } - 35% { + 30.1% { translate: -5%; } } -@keyframes schedule-navigate-forw { - 34.9% { +@keyframes navigation-move-forwards { + 30% { translate: -5%; opacity: 0; + scale: var(--st-anim-mod-scale, .9); } - 35% { + 30.1% { translate: 5%; } } -@keyframes schedule-navigate-jump-forw { +@keyframes navigation-move-jump-forwards { 0% { translate: 15%; opacity: 0; + scale: var(--st-anim-mod-scale, .9); } } @@ -501,6 +502,10 @@ overflow: hidden; cursor: pointer; font: 500 12px var(--st-font-family-secondary); + + &:hover { + background-color: var(--st-highlight-primary); + } } .list-view .st-event { @@ -701,22 +706,20 @@ background-color: var(--st-background-secondary); border-left: var(--st-border); box-shadow: 0 0 8px 0 rgba(var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-alpha)); - transition: box-shadow 200ms; - transition-property: opacity, translate, display; - transition-duration: 200ms; - transition-behavior: allow-discrete; + transition: opacity 200ms, translate 200ms, display 200ms allow-discrete; opacity: 1; translate: 0; @starting-style { opacity: 0; - translate: 150px; + translate: 50%; } } #st-start[data-widgets-collapsed=true] #st-start-widgets { - box-shadow: none; + display: none; + opacity: 0; } #st-start:has(#st-start-widgets.editing) #st-start-header, @@ -902,48 +905,60 @@ } } -#st-start-widgets.editing .st-widget { - cursor: pointer; - transition: opacity 200ms; -} +#st-start-widgets.editing { + &:has(.focused) .st-widget { + opacity: .5; + filter: blur(2px); + } -#st-start-widgets.editing .st-widget * { - pointer-events: none; - user-select: none; -} + .st-widget { + cursor: pointer; + transition: opacity 200ms; -#st-start-widgets.editing:has(.focused) .st-widget { - opacity: .5; - filter: blur(2px); -} + * { + pointer-events: none; + user-select: none; + } -#st-start-widgets.editing .st-widget.focused { - opacity: 1 !important; - filter: none !important; - box-shadow: 0 0 8px 0 rgba(var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-alpha)); - cursor: grab; -} + &.focused { + opacity: 1; + outline: 2px solid var(--st-foreground-accent); + filter: none; + box-shadow: 0 0 8px 0 rgba(var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-value), var(--st-shadow-alpha)); + cursor: grab; -#st-start-widgets.editing .st-widget[data-dragging=true] { - max-height: 2px; - overflow: visible; - visibility: hidden; - cursor: grabbing; + &[data-render-type="Lijst"] { + outline-offset: -2px; + } + } - transition-property: none !important; - transition-duration: 0 !important; -} + &:hover { + opacity: 1; + filter: none; + } -#st-start-widgets.editing .st-widget[data-dragging=true]:after { - content: ''; - position: absolute; - top: -1.5px; - left: -6px; - right: -6px; - height: 3px; - background-color: var(--st-foreground-accent); - border-radius: 1.5px; - visibility: visible; + &[data-dragging=true] { + max-height: 2px; + overflow: visible; + visibility: hidden; + cursor: grabbing; + + transition-property: none !important; + transition-duration: 0 !important; + + &:after { + content: ''; + position: absolute; + top: -1.5px; + left: -6px; + right: -6px; + height: 3px; + background-color: var(--st-foreground-accent); + border-radius: 1.5px; + visibility: visible; + } + } + } } .st-widget[data-render-type="Tegel"] { @@ -1012,6 +1027,10 @@ a.st-widget-title { color: var(--st-foreground-primary); border-bottom: var(--st-border); font: 500 16px/24px var(--st-font-family-primary); + + &[href]:hover { + background-color: var(--st-highlight-primary); + } } .st-widget-title[data-amount]:after { @@ -1210,7 +1229,7 @@ a.st-widget-title { #st-start-widget-grades:focus-visible, #st-start-widget-digital-clock:focus-visible, #st-start-widgets *[href]:focus-visible { - outline: 2px solid var(--st-foreground-primary); + outline: 2px solid var(--st-foreground-accent); outline-offset: -4px; } @@ -1288,7 +1307,6 @@ a.st-widget-title { grid-auto-columns: 100%; margin-top: -64px; overflow-x: hidden; - scroll-behavior: smooth; } .st-start-widget-grades-item { @@ -1508,8 +1526,7 @@ a.st-widget-title { cursor: pointer; } -.st-list-item[href]:hover, -.st-event:hover { +.st-list-item[href]:hover { background-color: var(--st-highlight-primary); }